diff --git a/.gitattributes b/.gitattributes
index a996021327876b7ba710a916d84894b7b665b857..9534dc0b9448e0e20cf0a06aee86411dcdeb9140 100644
--- a/.gitattributes
+++ b/.gitattributes
@@ -2603,12 +2603,14 @@ doc/papers/2011/europar/delay.fig -text
 doc/papers/2011/europar/dispersed-signal-data-2.sh -text
 doc/papers/2011/europar/dispersed-signal.jgr -text
 doc/papers/2011/europar/execution_times.jgr -text
+doc/papers/2011/europar/listings.sty -text
 doc/papers/2011/europar/llncs.cls -text
 doc/papers/2011/europar/llncs2e.zip -text
 doc/papers/2011/europar/lofar-stations.fig -text
 doc/papers/2011/europar/lofar.bib -text
 doc/papers/2011/europar/lofar.pdf -text
 doc/papers/2011/europar/lofar.tex -text
+doc/papers/2011/europar/lstpseudo.sty -text
 doc/papers/2011/europar/pencilbeams.svg -text
 doc/papers/2011/europar/processing.fig -text
 doc/papers/2011/europar/stations-beams.jgr -text
diff --git a/doc/papers/2011/europar/listings.sty b/doc/papers/2011/europar/listings.sty
new file mode 100644
index 0000000000000000000000000000000000000000..350429b839533532fd11379ffd1b7daeab0947ff
--- /dev/null
+++ b/doc/papers/2011/europar/listings.sty
@@ -0,0 +1,1753 @@
+%%
+%% This is file `listings.sty',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% listings.dtx  (with options: `kernel')
+%% 
+%% (w)(c) 1996-1998 Carsten Heinz
+%% 
+%% Please read the software license in listings.dtx or listings.dvi.
+%% 
+%% This file is distributed freely. You are not allowed to take money for
+%% the distribution of this file, except for a nominal charge for copying
+%% etc..
+%% 
+%% This file is free for any non-commercial use. Commercial use needs (i)
+%% explicit permission of the author of this package and (ii) the payment
+%% of a license fee. This fee is to be determined in each instance by the
+%% commercial user and the package author and is to be payed as donation
+%% to the LaTeX3 project.
+%% 
+%% This file is distributed without any warranty, express or implied, as
+%% to merchantability or fitness for any particular purpose.
+%% 
+%% Permission is granted to change this file. You are not allowed to
+%% distribute any changed version this file, neither under the same name
+%% nor under a different one.
+%% 
+\NeedsTeXFormat{LaTeX2e}
+\ProvidesPackage{listings}[1998/11/09 v0.19 by Carsten Heinz]
+\RequirePackage{keyval}
+\DeclareOption{0.17}{\@namedef{lst@0.17}{}}
+\DeclareOption{index}{\@namedef{lst@index}{}}
+\DeclareOption{procnames}{\@namedef{lst@prockeywords}{}}
+\DeclareOption{ndkeywords}{\@namedef{lst@ndkeywords}{}}
+\DeclareOption{rdkeywords}{\@namedef{lst@rdkeywords}{}}
+\DeclareOption{doc}{\@namedef{lst@doc}{}}
+\ProcessOptions
+\def\lst@ReplaceIn#1#2{%
+    \bgroup \global\let\@gtempa#1%
+    \lst@ReplaceIn@#2\@empty\@empty %
+    \egroup \let#1\@gtempa}
+\def\lst@ReplaceIn@#1#2{%
+    \ifx\@empty#2\else %
+        \let#2=a%
+        \def\lst@temp##1#1##2{##1%
+            \ifx\@empty##2\else %
+                #2\expandafter\lst@temp %
+            \fi ##2}%
+        \xdef\@gtempa{\expandafter\lst@temp\@gtempa#1\@empty}%
+        \expandafter\lst@ReplaceIn@ %
+    \fi}
+\def\lst@DeleteKeysIn#1#2{%
+    \bgroup \global\let\@gtempa#1%
+    \let\lst@dollar=A\let\lst@minus=B\let\lst@underscore=C%
+    \expandafter\lst@DeleteKeysIn@#2,\relax,%
+    \egroup \let#1\@gtempa}
+\def\lst@DeleteKeysIn@#1,{%
+    \ifx\relax#1\@empty %
+        \expandafter\@gobble %
+    \else %
+        \ifx\@empty#1\@empty\else %
+            \def\lst@temp##1,#1##2{##1\ifx\@empty##2\else %
+                \ifx,##2\else #1\fi \expandafter\lst@temp\fi ##2}%
+            \xdef\@gtempa{%
+                \expandafter\lst@temp\expandafter,\@gtempa,#1\@empty}%
+        \fi %
+    \fi %
+    \lst@DeleteKeysIn@}
+\def\lst@IfNextChars#1#2#3{%
+    \let\lst@tofind#1\def\@tempa{#2}\def\@tempb{#3}%
+    \let\lst@eaten\@empty \lst@IfNextChars@}
+\def\lst@IfNextChars@#1{%
+    \lst@lAddTo\lst@eaten{#1}%
+    \expandafter\lst@IfNextChars@@\lst@tofind\relax %
+    \ifx #1\lst@temp %
+        \ifx\lst@tofind\@empty %
+            \let\lst@next\@tempa %
+        \else %
+            \let\lst@next\lst@IfNextChars@ %
+        \fi %
+        \expandafter\lst@next %
+    \else %
+        \expandafter\@tempb %
+    \fi}
+\def\lst@IfNextChars@@#1#2\relax{\let\lst@temp#1\def\lst@tofind{#2}}
+\def\lst@IfNextCharsArg#1#2#3{%
+    \lst@MakeActive{#1}\let\lst@tofind\lst@arg %
+    \def\@tempa{#2}\def\@tempb{#3}%
+    \let\lst@eaten\@empty \lst@IfNextChars@}
+\def\lst@MakeActive#1{%
+    \let\lst@arg\@empty \lst@MakeActive@#1%
+    \relax\relax\relax\relax\relax\relax\relax\relax\relax}
+\begingroup
+\catcode`\^^@=\active \catcode`\^^A=\active \catcode`\^^B=\active %
+\catcode`\^^C=\active \catcode`\^^D=\active \catcode`\^^E=\active %
+\catcode`\^^F=\active \catcode`\^^G=\active \catcode`\^^H=\active %
+\gdef\lst@MakeActive@#1#2#3#4#5#6#7#8#9{\let\lst@next\relax %
+    \ifx#1\relax %
+    \else \lccode`\^^@=`#1%
+    \ifx#2\relax %
+        \lowercase{\lst@lAddTo\lst@arg{^^@}}%
+    \else \lccode`\^^A=`#2%
+    \ifx#3\relax %
+        \lowercase{\lst@lAddTo\lst@arg{^^@^^A}}%
+    \else \lccode`\^^B=`#3%
+    \ifx#4\relax %
+        \lowercase{\lst@lAddTo\lst@arg{^^@^^A^^B}}%
+    \else \lccode`\^^C=`#4%
+    \ifx#5\relax %
+        \lowercase{\lst@lAddTo\lst@arg{^^@^^A^^B^^C}}%
+    \else \lccode`\^^D=`#5%
+    \ifx#6\relax %
+        \lowercase{\lst@lAddTo\lst@arg{^^@^^A^^B^^C^^D}}%
+    \else \lccode`\^^E=`#6%
+    \ifx#7\relax %
+        \lowercase{\lst@lAddTo\lst@arg{^^@^^A^^B^^C^^D^^E}}%
+    \else \lccode`\^^F=`#7%
+    \ifx#8\relax %
+        \lowercase{\lst@lAddTo\lst@arg{^^@^^A^^B^^C^^D^^E^^F}}%
+    \else \lccode`\^^G=`#8%
+    \ifx#9\relax %
+        \lowercase{\lst@lAddTo\lst@arg{^^@^^A^^B^^C^^D^^E^^F^^G}}%
+    \else \lccode`\^^H=`#9%
+        \lowercase{\lst@lAddTo\lst@arg{^^@^^A^^B^^C^^D^^E^^F^^G^^H}}%
+        \let\lst@next\lst@MakeActive@ %
+    \fi \fi \fi \fi \fi \fi \fi \fi \fi %
+    \lst@next}
+\endgroup
+\def\lst@IfNextCharActive#1#2#3{%
+    \bgroup \lccode`\~=`#3\lowercase{\egroup %
+    \ifx~}#3%
+        \def\lst@next{#1#3}%
+    \else %
+        \def\lst@next{#2#3}%
+    \fi \lst@next}
+\def\lstenv@AddArg#1{\lstenv@AddArg@#1 \@empty}
+\begingroup \lccode`\~=`\ \relax \lowercase{%
+\gdef\lstenv@AddArg@#1 #2{%
+    \lst@MakeActive{#1}%
+    \ifx\@empty#2\expandafter%
+        \lst@lAddTo\expandafter\lstenv@arg\expandafter{\lst@arg}%
+    \else \expandafter%
+        \lst@lAddTo\expandafter\lstenv@arg\expandafter{\lst@arg~}%
+        \expandafter\lstenv@AddArg@ %
+    \fi #2}
+}\endgroup
+\def\lst@Aspect#1{%
+    \@ifundefined{KV@lst@#1}%
+        {\let\lst@ifnew\iftrue}{\let\lst@ifnew\iffalse}%
+    \lst@ifnew %
+    \else %
+        \expandafter\@gobblefour %
+    \fi %
+    \lstdefine@key{lst}{#1}}
+\def\lstdefine@key#1#2{%
+    \@ifnextchar[{\lstKV@def{#1}{#2}}{\global\@namedef{KV@#1@#2}####1}}
+\def\lstKV@def#1#2[#3]{%
+    \global\@namedef{KV@#1@#2@default\expandafter}\expandafter %
+        {\csname KV@#1@#2\endcsname{#3}}%
+    \global\@namedef{KV@#1@#2}##1}
+\let\lst@ifnew\iftrue % init
+\def\lst@AddToHook#1{%
+    \lst@ifnew %
+        \@ifundefined{lsthk@#1}{%
+            \expandafter\gdef\csname lsthk@#1\endcsname{}}{}%
+        \def\lst@next{\lst@AddToHook@\lst@AddTo{#1}}%
+        \expandafter\lst@next %
+    \else %
+        \expandafter\@gobble %
+    \fi}
+\long\def\lst@AddToHook@#1#2#3{%
+    \expandafter#1\csname lsthk@#2\endcsname{#3}}
+\def\lst@AddToHookAtTop#1{%
+    \lst@ifnew %
+        \@ifundefined{lsthk@#1}{%
+            \expandafter\gdef\csname lsthk@#1\endcsname{}}{}%
+        \def\lst@next{\lst@AddToHook@\lst@AddToAtTop{#1}}%
+        \expandafter\lst@next %
+    \else %
+        \expandafter\@gobble %
+    \fi}
+\long\def\lst@AddTo#1#2{%
+    \expandafter\gdef\expandafter#1\expandafter{#1#2}}
+\def\lst@AddToAtTop#1#2{\def\lst@temp{#2}%
+    \expandafter\expandafter\expandafter\gdef %
+    \expandafter\expandafter\expandafter#1%
+    \expandafter\expandafter\expandafter{\expandafter\lst@temp#1}}
+\def\lst@lAddTo#1#2{\expandafter\def\expandafter#1\expandafter{#1#2}}
+\global\let\lsthk@OutputOther\@empty
+\global\let\lsthk@SetStyle\@empty
+\global\let\lsthk@SetLanguage\@empty
+\global\let\lsthk@PreSet\@empty
+\global\let\lsthk@PostSet\@empty
+\def\lstKV@SetIfKey#1#2{\lstKV@SetIfKey@#1#2\relax}
+\def\lstKV@SetIfKey@#1#2#3\relax{\lowercase{%
+    \expandafter\let\expandafter#1%
+        \csname \ifx #2t}iftrue\else iffalse\fi\endcsname}
+\def\lstKV@OptArg#1[#2]#3{\lstKV@OptArg@{#1}{#2}#3\@}
+\def\lstKV@OptArg@#1#2{%
+    \@ifnextchar[{\lstKV@OptArg@@{#1}}%
+                 {\lstKV@OptArg@@{#1}[#2]}}
+\def\lstKV@OptArg@@#1[#2]#3\@{#1[#2]{#3}}
+\def\lstset#1{\lsthk@PreSet\setkeys{lst}{#1}\lsthk@PostSet}
+\newcount\lst@mode
+\def\lst@EnterMode#1#2{%
+    \bgroup \lst@mode=#1\relax #2%
+    \lst@lAddTo\lst@entermodes{\lst@EnterMode{#1}{#2}}}
+\def\lst@LeaveMode{\egroup\lsthk@EndGroup}
+\lst@AddToHook{InitVars}{\let\lst@entermodes\@empty}
+\def\lst@NewMode#1{%
+    \ifx\@undefined#1%
+        \global\mathchardef#1=\lst@newmode\relax %
+        \lst@mode=\lst@newmode\relax \advance\lst@mode\@ne %
+        \edef\lst@newmode{\the\lst@mode}%
+    \fi}
+\def\lst@newmode{0}
+\lst@NewMode\lst@nomode
+\lst@AddToHook{InitVars}{\lst@modefalse \lst@mode\lst@nomode}
+\lst@NewMode\lst@Pmode
+\def\lst@modetrue{\let\lst@ifmode\iftrue}
+\def\lst@modefalse{\let\lst@ifmode\iffalse}
+\def\lst@InterruptModes{%
+    \ifx\lst@entermodes\@empty\else %
+        \global\let\lst@reenter\lst@entermodes %
+        \lst@LeaveAllModes %
+    \fi}
+\def\lst@ReenterModes{%
+    \ifx\lst@reenter\@empty\else %
+        \lst@LeaveAllModes \lst@reenter %
+        \global\let\lst@reenter\@empty %
+    \fi}
+\lst@AddToHook{InitVars}{\global\let\lst@reenter\@empty}
+\def\lst@LeaveAllModes{%
+    \ifnum\lst@mode=\lst@nomode %
+        \expandafter\lsthk@EndGroup %
+    \else %
+        \expandafter\egroup\expandafter\lst@LeaveAllModes %
+    \fi}
+\lst@AddToHook{ExitVars}{\lst@LeaveAllModes}
+\lst@NewMode\lst@egroupmode
+\lst@AddToHook{EOL}
+    {\ifnum\lst@mode=\lst@egroupmode \lst@LeaveMode \fi}
+\def\lst@Normalize#1{%
+    \lowercase\expandafter{\expandafter\edef\expandafter#1%
+    \expandafter{\expandafter\zap@space#1 \@empty}}}
+\newcommand\lstdefinestyle[2]{%
+    \def\lst@temp{lststy@#1}\lst@Normalize\lst@temp %
+    \global\@namedef\lst@temp{\setkeys{lst}{#2}}}
+\lst@Aspect{style}
+    {\def\lst@temp{lststy@#1}\lst@Normalize\lst@temp %
+     \@ifundefined\lst@temp %
+        {\PackageError{Listings}{Style `#1' undefined}%
+         {You might have misspelt the name here or before.^^J%
+          Type <RETURN> to proceed without changing the style.}}%
+        {\lsthk@SetStyle \csname\lst@temp\endcsname %
+        }}
+\newcommand\lstdefinelanguage[3][]{%
+    \def\@tempa{#2@#1}\lst@Normalize\@tempa %
+    \global\@namedef{lstlang@\@tempa}{\lstset{#3}}}
+\newcommand\lstdefinedrvlanguage[3][]{%
+    \def\@tempa{lstlang@#2@#1}\lst@Normalize\@tempa %
+    \ifx\@tempa\lst@requested %
+        \global\@namedef{\@tempa}{\lstset{#3}}%
+    \fi}
+\def\lstloadlanguages#1{\lstloadlanguages@#1,\relax,}
+\def\lstloadlanguages@#1,{%
+    \ifx\relax#1\@empty \else %
+        \lstKV@OptArg\lstloadlanguages@@[]{#1}%
+        \expandafter\lstloadlanguages@ %
+    \fi}
+\def\lstloadlanguages@@[#1]#2{%
+    \lst@LocateLanguage[#1]{#2}%
+    \@ifundefined{\lst@requested}%
+        {{\catcode`\^^M=9\catcode`\"=12\makeatletter %
+          \input{\lst@driver.sty}}}%
+        {}}
+\@onlypreamble\lstloadlanguages
+\lst@Aspect{language}{\lstKV@OptArg\lstlanguage@[]{#1}}
+\def\lstlanguage@[#1]#2{%
+    \lst@LocateLanguage[#1]{#2}%
+    \@ifundefined{\lst@requested}%
+        {{\catcode`\^^M=9\catcode`\"=12\makeatletter %
+          \input{\lst@driver.sty}}}{}%
+    \@ifundefined{\lst@requested}%
+        {\PackageError{Listings}%
+         {\ifx\@empty\lst@dialect@\else \lst@dialect@\space of \fi %
+          \lst@language@\space undefined}{The driver file is not
+          loadable or doesn't support the language.^^J%
+         Type <RETURN> to proceed without changing the language.}}%
+        {\lsthk@SetLanguage %
+         \csname\lst@requested\endcsname %
+         \def\lst@language{#1}\lst@Normalize\lst@language %
+         \def\lst@dialect{#2}\lst@Normalize\lst@dialect}}
+\lst@Aspect{defaultdialect}{\lstKV@OptArg\lstdefaultdialect@[]{#1}}
+\def\lstdefaultdialect@[#1]#2{%
+    \def\lst@temp{#2}\lst@Normalize\lst@temp %
+    \global\@namedef{lstdd@\lst@temp}{#1}}
+\newcommand\lstalias{\@ifnextchar[{\lstalias@}{\lstalias@@}}
+\def\lstalias@[#1]#2[#3]#4{%
+    \def\lst@temp{lsta@#2@#1}\lst@Normalize\lst@temp %
+    \global\@namedef{\lst@temp}{#4@#3}}
+\def\lstalias@@#1#2{%
+    \def\lst@temp{lstaa@#1}\lst@Normalize\lst@temp %
+    \global\@namedef{\lst@temp}{#2}}
+\def\lst@DriverLocation#1#2{%
+    \def\lst@temp{lstloc@#1}\lst@Normalize\lst@temp %
+    \expandafter\gdef\csname\lst@temp\endcsname{#2}%
+    \expandafter\lst@Normalize\csname\lst@temp\endcsname}
+\def\lst@LocateLanguage[#1]#2{%
+    \def\lst@language@{#2}\lst@Normalize\lst@language@ %
+    \@ifundefined{lstaa@\lst@language@}{}%
+        {\edef\lst@language@{\csname lstaa@\lst@language@\endcsname}%
+         \lst@Normalize\lst@language@}%
+    \def\lst@dialect@{#1}%
+    \ifx\@empty\lst@dialect@ %
+        \@ifundefined{lstdd@\lst@language@}{}%
+            {\expandafter\let\expandafter\lst@dialect@ %
+             \csname lstdd@\lst@language@\endcsname}%
+    \fi %
+    \lst@Normalize\lst@dialect@ %
+    \edef\lst@requested{\lst@language@ @\lst@dialect@}%
+    \@ifundefined{lsta@\lst@requested}{}%
+        {\expandafter\let\expandafter\lst@requested %
+         \csname lsta@\lst@requested\endcsname %
+         \lst@Normalize\lst@requested}%
+    \expandafter\lst@LocateLanguage@\lst@requested\relax}
+\def\lst@LocateLanguage@#1@#2\relax{%
+    \edef\lst@driver{\@ifundefined{lstloc@#1}{lst#1}%
+        {\csname lstloc@#1\endcsname}}%
+    \ifx\@empty#2\@empty %
+        \@ifundefined{lstdd@#1}%
+            {\def\lst@dialect@{#2}}%
+            {\expandafter\let\expandafter\lst@dialect@ %
+             \csname lstdd@#1\endcsname}%
+    \fi %
+    \edef\lst@requested{lstlang@#1@\lst@dialect@}%
+    \lst@Normalize\lst@requested}
+\newcount\lst@lineno \global\lst@lineno\@ne % \global
+\lst@AddToHook{InitVars}
+    {\global\lst@lineno\@ne %
+     \expandafter\everypar\expandafter{\the\everypar %
+         \global\advance\lst@lineno\@ne}}
+\lst@AddToHook{ExitVars}
+    {\ifx\lst@NewLine\relax\else %
+         \global\advance\lst@lineno-2\relax %
+         \setbox\@tempboxa\vbox{\lst@NewLine}%
+     \fi}
+\def\lst@PrintFileName#1{%
+    \def\lst@arg{#1}%
+    \lst@ReplaceIn\lst@arg{_\textunderscore $\textdollar -\textendash}%
+    \lst@arg}
+\def\lst@SetName#1{%
+    \gdef\lst@intname{#1}\global\let\lstintname\lst@intname %
+    \let\lst@arg\lst@intname %
+    \lst@ReplaceIn\lst@arg{_\textunderscore $\textdollar -\textendash}%
+    \global\let\lstname\lst@arg}
+\newcommand\listoflistings{\bgroup %
+    \let\contentsname\listlistingsname %
+    \let\lst@temp\@starttoc \def\@starttoc##1{\lst@temp{lol}}%
+    \tableofcontents \egroup}
+\newcommand\listlistingsname{Listings}
+\newcommand\lst@AddToLOL[2]{%
+    \ifx\@empty#1\@empty \else %
+        \addtocontents{lol}{\protect\lstlolline{#1}{#2}%
+            {\lst@language}{\thepage}}%
+    \fi}
+\newcommand\lstlolline[4]{%
+    \@dottedtocline{1}{1.5em}{2.3em}{\lst@PrintFileName{#1}}{#4}}
+\def\lst@Init#1{%
+    \begingroup \normalbaselines \smallbreak %
+    \def\@currentlabel{\the\lst@lineno}%
+    \lst@prelisting %
+    \lsthk@BeforeSelectCharTable %
+    \normalbaselines \everypar{\lsthk@EveryLine}%
+    \lsthk@InitVars \lsthk@InitVarsEOL %
+    \csname lstPre@\lst@language\endcsname %
+    \csname lstPre@\lst@language @\lst@dialect\endcsname %
+    \lstCC@Let{"000D}\lst@MProcessListing %
+    \let\lstCC@Backslash#1%
+    \lst@EnterMode{\lst@Pmode}{\lst@SelectCharTable}}
+\lst@AddToHook{InitVars}
+    {\rightskip\z@ \leftskip\z@ \parfillskip=0pt plus 1fil %
+     \let\par\@@par}
+\def\lst@DeInit{%
+    \lst@PrintToken \lst@EOLUpdate \par\removelastskip %
+    \lsthk@ExitVars %
+    \smallbreak\lst@postlisting %
+    \endgroup}
+\def\lst@EOLUpdate{\lsthk@EOL \lsthk@InitVarsEOL}%
+\def\lst@MProcessListing{%
+    \lst@PrintToken \lst@EOLUpdate %
+    \ifnum\lst@lastline<\lst@lineno \expandafter\endinput \fi %
+    \lst@BOLGobble}
+\let\lst@BOLGobble\relax
+\lst@Aspect{print}[t]{\lstKV@SetIfKey\lst@ifprint{#1}}
+\lst@Aspect{first}{\def\lst@firstline{#1}}
+\lst@Aspect{last}{\def\lst@lastline{#1}}
+\lstset{print=true}% init
+\newcommand\lstinputlisting[2][]{%
+    \begingroup %
+    \def\lst@firstline{1}\def\lst@lastline{9999999}\lstset{#1}%
+    \IfFileExists{#2}{\lst@InputListing{#2}}%
+    {\filename@parse{#2}%
+     \edef\reserved@a{\noexpand\lst@MissingFileError
+         {\filename@area\filename@base}%
+         {\ifx\filename@ext\relax tex\else\filename@ext\fi}}%
+     \reserved@a}%
+    \endgroup %
+    \lsthk@OnExit}
+\def\lst@MissingFileError#1#2{%
+    \typeout{^^J! Package Listings Error: File `#1.#2' not found.^^J^^J%
+        Type X to quit or <RETURN> to proceed,^^J%
+        or enter new name. (Default extension: #2)^^J}%
+    \message{Enter file name: }%
+    {\endlinechar\m@ne \global\read\m@ne to\@gtempa}%
+    \ifx\@gtempa\@empty \else %
+        \def\reserved@a{x}\ifx\reserved@a\@gtempa\batchmode\@@end\fi
+        \def\reserved@a{X}\ifx\reserved@a\@gtempa\batchmode\@@end\fi
+        \filename@parse\@gtempa %
+        \edef\filename@ext{%
+            \ifx\filename@ext\relax#2\else\filename@ext\fi}%
+        \edef\reserved@a{\noexpand\IfFileExists %
+                {\filename@area\filename@base.\filename@ext}%
+            {\noexpand\lst@InputListing %
+                {\filename@area\filename@base.\filename@ext}}%
+            {\noexpand\lst@MissingFileError
+                {\filename@area\filename@base}{\filename@ext}}}%
+        \expandafter\reserved@a %
+    \fi}
+\def\lst@InputListing#1{%
+    \lst@SetName{#1}%
+    \lst@ifprint %
+        \lst@AddToLOL{#1}{}%
+        \lst@Init\relax \lst@SkipUptoFirst \input{#1}\lst@DeInit %
+    \else %
+        \lst@AddToLOL{#1$^\bullet$}{}%
+        \begin{center}%
+        \footnotesize  ---  Listing of #1 has been skipped.  ---
+        \end{center}%
+    \fi}
+\def\lst@SkipUptoFirst{%
+    \ifnum\lst@lineno=\lst@firstline\else %
+        \bgroup \lst@modetrue %
+        \let\lst@Output\relax \let\lst@OutputOther\relax %
+        \let\lst@GotoTabStop\relax %
+        \lstCC@Let{"000D}\lst@MSkipUptoFirst %
+    \fi}
+\def\lst@MSkipUptoFirst{\egroup %
+    \global\advance\lst@lineno\@ne %
+    \ifnum\lst@lineno=\lst@firstline\else %
+        \expandafter\lst@MSkipUptoFirst@ %
+    \fi}
+\begingroup \lccode`\~=`\^^M%
+\lowercase{\gdef\lst@MSkipUptoFirst@#1~}{%
+    \global\advance\lst@lineno\@ne %
+    \ifnum\lst@lineno=\lst@firstline\else %
+        \expandafter\lst@MSkipUptoFirst@ %
+    \fi}
+\endgroup
+\def\lst@Environment#1#2\is#3#4{%
+    \@ifundefined{#1}{\lst@Environment@{#1}{#2}{#3}{#4}}%
+    {%
+    }}
+\def\lst@Environment@#1#2#3#4{%
+    \global\@namedef{end#1}{\lstenv@Error{#1}}%
+    \global\@namedef{#1}{%
+        \def\lstenv@name{#1}%
+        \begingroup \lstCC@Let{"000D}\relax %
+        \csname#1@\endcsname}%
+    \let\l@ngrel@x\global %
+    \expandafter\new@command\csname#1@\endcsname#2%
+        {\def\lst@firstline{1}\def\lst@lastline{9999999}%
+         #3%
+         \ifx\@currenvir\lstenv@name %
+             \edef\lst@temp{end\noexpand\{\lstenv@name\noexpand\}}%
+         \else %
+             \edef\lst@temp{end\lstenv@name}%
+         \fi %
+         \expandafter\lst@MakeActive\expandafter{\lst@temp}%
+         \let\lstenv@endstring\lst@arg %
+         \@namedef{end#1}{\lst@DeInit #4\endgroup \lsthk@OnExit}%
+         \lstenv@Process}}
+\def\lstenv@Error#1{\PackageError{Listings}{Extra \string\end#1}%
+    {I'm ignoring this, since I wasn't doing a \csname#1\endcsname.}}
+\def\lstenv@backslash{%
+    \lst@IfNextChars\lstenv@endstring %
+        {\lstenv@End}%
+        {\lsts@backslash \lst@eaten}}%
+\def\lstenv@End{%
+    \ifx\@currenvir\lstenv@name %
+        \edef\lst@next{\noexpand\end{\lstenv@name}}%
+    \else %
+        \def\lst@next{\csname end\lstenv@name\endcsname}%
+    \fi %
+    \lst@next}
+\def\lstenv@Process{%
+    \lst@Init\lstenv@backslash %
+    \global\lst@lineno\lst@firstline\relax %
+    \let\lstenv@ifdropped\iffalse \lstenv@Process@}
+\def\lstenv@droppedtrue{\let\lstenv@ifdropped\iftrue}
+\begingroup \lccode`\~=`\^^M%
+\lowercase{\gdef\lstenv@Process@#1{%
+    \ifx~#1%
+        \expandafter\lstenv@ProcessM %
+    \else\ifx^^J#1%
+        \expandafter\expandafter\expandafter\lstenv@ProcessJ %
+    \else %
+        \lstenv@droppedtrue %
+        \expandafter\expandafter\expandafter\lstenv@Process@ %
+    \fi \fi}
+}\endgroup
+\def\lstenv@DroppedWarning{%
+    \lstenv@ifdropped %
+        \PackageWarning{Listings}{Text dropped after begin of listing}%
+    \fi}
+\def\lstenv@ProcessM{\lstenv@DroppedWarning \lst@BOLGobble}
+\def\lstenv@ProcessJ{%
+    \lstenv@DroppedWarning %
+    \lst@DontEscapeToLaTeX %
+    \let\lstenv@arg\@empty %
+    \ifx\@currenvir\lstenv@name %
+        \expandafter\lstenv@ProcessJEnv %
+    \else %
+        \expandafter\def\expandafter\lst@temp\expandafter##1%
+        \csname end\lstenv@name\endcsname{%
+            \lstenv@AddArg{##1}\lstenv@ProcessJ@}%
+        \expandafter\lst@temp %
+    \fi}
+\begingroup \lccode`\~=`\\ \lccode`\A=`\A
+\lowercase{\gdef\lstenv@ProcessJ@{%
+    \expandafter\lst@lAddTo\expandafter\lstenv@arg %
+        \expandafter{\expandafter\ \expandafter~\lstenv@endstring}%
+    \lstCC@Let{"000A}\lst@MProcessListing \def\lst@BOLGobble##1{}%
+    \expandafter\lst@BOLGobble\lstenv@arg}
+}\endgroup
+\def\lstenv@ProcessJEnv#1\end#2{\def\lst@temp{#2}%
+    \ifx\lstenv@name\lst@temp %
+        \lstenv@AddArg{#1}%
+        \expandafter\lstenv@ProcessJ@ %
+    \else %
+        \lstenv@AddArg{#1\\end\{#2\}}%
+        \expandafter\lstenv@ProcessJEnv %
+    \fi}
+\lst@Environment{lstlisting}[2][]\is
+    {\lstenv@TestEOLChar{#2}%
+     \expandafter\ifx\csname lstno@\lst@intname\endcsname \relax %
+         \ifx\lst@intname\@empty\else \lst@AddToLOL{#2}{}\fi %
+     \else %
+         \edef\lst@firstline{\csname lstno@\lst@intname\endcsname}%
+         \let\lst@prelisting\lst@@prelisting %
+         \let\lst@postlisting\lst@@postlisting %
+     \fi %
+     \lstset{#1}}
+    {\ifx\lst@intname\@empty %
+         \expandafter\xdef\csname lstno@ \endcsname{\the\lst@lineno}%
+     \else %
+         \expandafter\xdef\csname lstno@\lst@intname\endcsname %
+             {\the\lst@lineno}%
+     \fi}
+\begingroup \lccode`\~=`\^^M\lowercase{%
+\gdef\lstenv@TestEOLChar#1{%
+    \lst@SetName{}%
+    \ifx~#1\lstenv@EOLCharError \else %
+        \ifx^^J#1\lstenv@EOLCharError \else %
+            \lst@SetName{#1}%
+        \fi %
+    \fi}
+}\endgroup
+\def\lstenv@EOLCharError{%
+    \PackageError{Listings}
+    {Oops! It seems you've forgotten the argument to\MessageBreak %
+     a listing environment. Assuming empty argument}%
+    {Type <RETURN> to proceed.}}
+\lst@Aspect{advancelineno}
+    {\global\lst@lineno\lst@firstline\relax %
+     \global\advance\lst@lineno#1\relax %
+     \edef\lst@firstline{\the\lst@lineno}}
+\lst@Aspect{resetlineno}[1]{\def\lst@firstline{#1}}
+\def\lstinline{\hbox\bgroup %
+    \let\smallbreak\relax %
+    \let\lst@prelisting\relax \let\lst@postlisting\relax %
+    \let\lst@ifflexible\iftrue \lst@DontEscapeToLaTeX %
+    \def\lst@firstline{1}\def\lst@lastline{1}%
+    \lst@Init\relax \everypar{}\global\let\lst@NewLine\relax %
+    \lst@IfNextCharActive\lst@InlineM\lst@InlineJ}
+\def\lst@InlineM#1{%
+    \lstCC@Def{`#1}{\lst@DeInit\egroup}%
+    \lstCC@Def{"000D}{\lst@DeInit\egroup %
+        \PackageError{Listings}{lstinline ended by EOL}\@ehc}}
+\def\lst@InlineJ#1{%
+    \def\lst@temp##1#1{%
+        \let\lstenv@arg\@empty \lstenv@AddArg{##1}%
+        \lstenv@arg \lst@DeInit\egroup}%
+    \lst@temp}
+\newcommand\lstbox{%
+    \hbox\bgroup %
+        \let\lst@ifbox\iftrue %
+        \let\smallbreak\relax %
+        \let\lst@prelisting\relax \let\lst@postlisting\relax %
+        \let\lst@@prelisting\relax\let\lst@@postlisting\relax %
+        \lst@outerspread\z@ \lst@innerspread\z@ %
+        \@ifnextchar[{\lstbox@}{\lstbox@[c]}}
+\def\lstbox@[#1]{%
+    \hbox to\z@\bgroup %
+        $\if#1t\vtop \else \if#1b\vbox \else \vcenter \fi\fi %
+        \bgroup}%
+\let\lst@ifbox\iffalse
+\def\lst@EndBox{%
+    \egroup $\hss \egroup %
+    \vrule width\lst@maxwidth height\z@ depth\z@ %
+    \egroup}
+\lst@AddToHook{OnExit}
+    {\lst@ifbox %
+         \global\advance\lst@maxwidth-\lst@innerspread %
+         \global\advance\lst@maxwidth-\lst@outerspread %
+         \ifx\@currenvir\lstenv@name %
+             \expandafter\expandafter\expandafter\aftergroup %
+         \fi %
+         \expandafter\lst@EndBox %
+     \fi}
+\newdimen\lst@maxwidth % \global
+\lst@AddToHook{InitVars}{\global\lst@maxwidth\z@}
+\lst@AddToHook{InitVarsEOL}
+    {\@tempdima \lst@column\lst@width %
+     \advance\@tempdima -\lst@pos\lst@width %
+     \ifdim\lst@lostspace<\z@ \advance\@tempdima -\lst@lostspace \fi %
+     \ifdim\@tempdima>\lst@maxwidth \global\lst@maxwidth\@tempdima \fi}
+\def\lst@SetStyleFor#1\relax{%
+    \def\lst@temp##1,#1,##2\relax{%
+        \ifx\@empty##2\@empty \let\lst@thestyle\lst@nonkeywordstyle %
+                        \else \let\lst@thestyle\lst@keywordstyle\fi}%
+    \expandafter\lst@temp\expandafter,\lst@keywords,#1,\relax}%
+\def\lst@SetStyleForNonSensitive#1\relax{%
+    \uppercase{\def\lst@temp##1,#1},##2\relax{%
+        \ifx\@empty##2\@empty \let\lst@thestyle\lst@nonkeywordstyle %
+                        \else \let\lst@thestyle\lst@keywordstyle\fi}%
+    \uppercase{%
+        \expandafter\lst@temp\expandafter,\lst@keywords,#1},\relax}%
+\lst@AddToHook{Output}
+    {\lst@ifmode %
+         \let\lst@thestyle\relax %
+     \else %
+         \expandafter\lst@SetStyleFor\the\lst@token\relax %
+     \fi}
+\def\lst@IfOneOf#1\relax#2{%
+    \def\lst@temp##1,#1,##2\relax{%
+        \ifx \@empty##2\@empty \expandafter\@secondoftwo %
+        \else \expandafter\@firstoftwo \fi}%
+    \expandafter\lst@temp\expandafter,#2,#1,\relax}%
+\def\lst@IfOneOfNonSensitive#1\relax#2{%
+    \uppercase{\def\lst@temp##1,#1},##2\relax{%
+        \ifx \@empty##2\@empty \expandafter\@secondoftwo %
+        \else \expandafter\@firstoftwo \fi}%
+    \uppercase\expandafter{%
+        \expandafter\lst@temp\expandafter,#2,#1},\relax}%
+\newcommand\lststorekeywords[2]{\gdef#1{#2}}
+\lst@Aspect{sensitive}[t]{\lstKV@SetIfKey\lst@ifsensitive{#1}}
+\lst@AddToHook{SetLanguage}{\let\lst@ifsentitive\iftrue}
+\lst@Aspect{keywords}
+    {\lst@MakeSpecKeywordArg{#1}\let\lst@keywords\lst@arg}
+\lst@AddToHook{SetLanguage}{\let\lst@keywords\@empty}
+\lst@AddToHook{BeforeSelectCharTable}
+    {\lst@ifsensitive\else %
+         \let\lst@SetStyleFor\lst@SetStyleForNonSensitive %
+         \let\lst@IfOneOf\lst@IfOneOfNonSensitive %
+         \lst@MakeMacroUppercase\lst@keywords %
+     \fi}
+\def\lst@MakeMacroUppercase#1{%
+    \ifx#1\@undefined\else \uppercase\expandafter{%
+        \expandafter\def\expandafter#1\expandafter{#1}}%
+    \fi}
+\lst@Aspect{morekeywords}
+    {\lst@MakeMoreSpecKeywordArg{,#1}%
+     \expandafter\lst@lAddTo\expandafter\lst@keywords %
+         \expandafter{\lst@arg}}
+\lst@Aspect{deletekeywords}
+    {\lst@MakeKeywordArg{#1}%
+     \lst@DeleteKeysIn\lst@keywords\lst@arg}
+\def\lst@MakeKeywordArg#1{\edef\lst@arg{\zap@space#1 \@empty}%
+    \lst@ReplaceIn\lst@arg{_\lst@underscore $\lst@dollar -\lst@minus}}
+\def\lst@MakeSpecKeywordArg{%
+    \let\lst@ialsodigit\@empty \let\lst@ialsoletter\@empty %
+    \lst@MakeMoreSpecKeywordArg}
+\def\lst@MakeMoreSpecKeywordArg#1{\edef\lst@arg{\zap@space#1 \@empty}%
+    \lstCC@lettertrue %
+    \expandafter\lst@SpecialKeywordScan\lst@arg\relax %
+    \lst@ReplaceIn\lst@arg{_\lst@underscore $\lst@dollar -\lst@minus}}
+\def\lst@SpecialKeywordScan#1{%
+    \ifx\relax#1%
+        \expandafter\@gobble %
+    \else %
+        \ifx,#1%
+            \lstCC@lettertrue %
+        \else %
+            \ifnum`#1<"40\relax %
+                \ifnum`#1<"30\relax \lst@SKSAdd#1\else %
+                \ifnum`#1>"39\relax \lst@SKSAdd#1\else %
+                    \lst@SKS@#1%
+                \fi \fi %
+            \else %
+                \ifnum`#1<"5B\relax \else %
+                \ifnum`#1="5F\relax \else %
+                \ifnum`#1<"61\relax \lst@SKSAdd#1\else %
+                \ifnum`#1<"7B\relax \else %
+                \ifnum`#1<"80\relax \lst@SKSAdd#1 %
+                \fi \fi \fi \fi \fi %
+            \fi %
+            \lstCC@letterfalse %
+        \fi %
+    \fi \lst@SpecialKeywordScan}
+\def\lst@SKS@#1{\lstCC@ifletter \lst@SKSAdd#1\fi}
+\def\lst@SKSAdd#1{%
+    \lstCC@ifletter %
+        \def\lst@temp##1#1##2\relax{%
+            \ifx\@empty##2\@empty %
+                \lst@lAddTo\lst@ialsoletter{#1}%
+            \fi}%
+        \expandafter\lst@temp\lst@ialsoletter#1\relax %
+    \else %
+        \def\lst@temp##1#1##2\relax{%
+            \ifx\@empty##2\@empty %
+                \lst@lAddTo\lst@ialsodigit{#1}%
+            \fi}%
+        \expandafter\lst@temp\lst@ialsodigit#1\relax %
+    \fi}
+\let\lst@ialsoletter\@empty \let\lst@ialsodigit\@empty % init
+\lst@Aspect{alsoletter}{\def\lst@alsoletter{#1}}
+\lst@Aspect{alsodigit}{\def\lst@alsodigit{#1}}
+\lst@Aspect{alsoother}{\def\lst@alsoother{#1}}
+\lst@AddToHook{SetLanguage}
+    {\let\lst@alsoletter\@empty %
+     \let\lst@alsodigit\@empty %
+     \let\lst@alsoother\@empty}
+\lst@AddToHook{SelectCharTable}
+    {\lstCC@ChangeBasicClass\lstCC@ProcessOther\lst@alsoother %
+     \lstCC@ChangeBasicClass\lstCC@ProcessDigit\lst@ialsodigit %
+     \lstCC@ChangeBasicClass\lstCC@ProcessDigit\lst@alsodigit %
+     \lstCC@ChangeBasicClass\lstCC@ProcessLetter\lst@ialsoletter %
+     \lstCC@ChangeBasicClass\lstCC@ProcessLetter\lst@alsoletter}
+\def\lst@minus{\ifx\f@family\ttdefault-{}\else$-$\fi}
+\def\lst@dollar{\ifx\f@family\ttdefault\textdollar\else\textdollar\fi}
+\def\lst@asterisk{\ifx\f@family\ttdefault*\else\textasteriskcentered\fi}
+\def\lst@less{\ifx\f@family\ttdefault<\else\textless\fi}
+\def\lst@greater{\ifx\f@family\ttdefault>\else\textgreater\fi}
+\def\lst@backslash{\ifx\f@family\ttdefault\char92\else\textbackslash\fi}
+\def\lst@underscore{%
+    \ifx\f@family\ttdefault\char95\else\textunderscore\fi}
+\def\lst@lbrace{\ifx\f@family\ttdefault\char123\else\textbraceleft\fi}
+\def\lst@bar{\ifx\f@family\ttdefault|\else\textbar\fi}
+\def\lst@rbrace{\ifx\f@family\ttdefault\char125\else\textbraceright\fi}
+\lst@AddToHook{BeforeSelectCharTable}{\edef\ttdefault{\ttdefault}}
+\lst@Aspect{basicstyle}{\def\lst@basicstyle{#1}}
+\lst@Aspect{keywordstyle}{\def\lst@keywordstyle{#1}}
+\lst@Aspect{nonkeywordstyle}{\def\lst@nonkeywordstyle{#1}}
+\lst@AddToHook{BeforeSelectCharTable}
+    {\lst@basicstyle %
+     \setbox\@tempboxa\hbox{\lst@loadfd %
+         {\lst@keywordstyle \lst@loadfd}%
+         {\lst@nonkeywordstyle \lst@loadfd}}}
+\def\lst@loadfd{a0\lst@asterisk\lst@less}
+\@ifundefined{lst@ndkeywords}{}{%
+\let\lst@ndkeywords\@empty \let\lst@ndkeywordstyle\@empty % init
+\lst@Aspect{ndkeywords}
+    {\lst@MakeSpecKeywordArg{#1}\let\lst@ndkeywords\lst@arg}
+\lst@AddToHook{SetLanguage}{\let\lst@ndkeywords\@empty}
+\lst@AddToHook{BeforeSelectCharTable}
+    {\lst@ifsensitive\else %
+         \lst@MakeMacroUppercase\lst@ndkeywords %
+     \fi}
+\lst@Aspect{ndkeywordstyle}{\def\lst@ndkeywordstyle{#1}}
+\lst@AddToHook{BeforeSelectCharTable}
+    {\setbox\@tempboxa\hbox{{\lst@ndkeywordstyle \lst@loadfd}}}
+\lst@Aspect{morendkeywords}
+    {\lst@MakeMoreSpecKeywordArg{,#1}%
+     \expandafter\lst@lAddTo\expandafter\lst@ndkeywords %
+         \expandafter{\lst@arg}}
+\lst@Aspect{deletendkeywords}
+    {\lst@MakeKeywordArg{#1}%
+     \lst@DeleteKeysIn\lst@ndkeywords\lst@arg}
+\lst@AddToHook{Output}
+    {\lst@ifmode\else %
+         \expandafter\lst@IfOneOf\the\lst@token\relax \lst@ndkeywords %
+             {\let\lst@thestyle\lst@ndkeywordstyle}{}%
+     \fi}
+}
+\@ifundefined{lst@rdkeywords}{}{%
+\let\lst@rdkeywords\@empty \let\lst@rdkeywordstyle\@empty % init
+\lst@Aspect{rdkeywords}
+    {\lst@MakeSpecKeywordArg{#1}\let\lst@rdkeywords\lst@arg}
+\lst@AddToHook{SetLanguage}{\let\lst@rdkeywords\@empty}
+\lst@AddToHook{BeforeSelectCharTable}
+    {\lst@ifsensitive\else %
+         \lst@MakeMacroUppercase\lst@rdkeywords %
+     \fi}
+\lst@Aspect{rdkeywordstyle}{\def\lst@rdkeywordstyle{#1}}
+\lst@AddToHook{BeforeSelectCharTable}
+    {\setbox\@tempboxa\hbox{{\lst@rdkeywordstyle \lst@loadfd}}}
+\lst@Aspect{morerdkeywords}
+    {\lst@MakeMoreSpecKeywordArg{,#1}%
+     \expandafter\lst@lAddTo\expandafter\lst@rdkeywords %
+         \expandafter{\lst@arg}}
+\lst@Aspect{deleterdkeywords}
+    {\lst@MakeKeywordArg{#1}%
+     \lst@DeleteKeysIn\lst@rdkeywords\lst@arg}
+\lst@AddToHook{Output}
+    {\lst@ifmode\else %
+         \expandafter\lst@IfOneOf\the\lst@token\relax \lst@rdkeywords %
+             {\let\lst@thestyle\lst@rdkeywordstyle}{}%
+     \fi}
+}
+\@ifundefined{lst@index}{}{%
+\lst@Aspect{index}{\lst@MakeSpecKeywordArg{#1}\let\lst@index\lst@arg}
+\lst@AddToHook{BeforeSelectCharTable}
+    {\lst@ifsensitive\else %
+         \lst@MakeMacroUppercase\lst@index %
+     \fi}
+\lst@AddToHook{Output}
+    {\lst@ifmode\else %
+         \expandafter\lst@IfOneOf\the\lst@token\relax \lst@index %
+            {\expandafter\lst@indexmacro\expandafter{\the\lst@token}}{}%
+     \fi}
+\lst@Aspect{indexmacro}{\let\lst@indexmacro#1}
+\newcommand\lstindexmacro[1]{\index{{\ttfamily#1}}}
+\let\lst@index\@empty \let\lst@indexmacro\lstindexmacro % init
+}
+\@ifundefined{lst@prockeywords}{}{%
+\lst@Aspect{prockeywords}{%
+    \lst@MakeSpecKeywordArg{#1}\let\lst@prockeywords\lst@arg}
+\lst@Aspect{procnamestyle}{\def\lst@procnamestyle{#1}}
+\lst@Aspect{indexprocnames}[t]{\lstKV@SetIfKey\lst@ifindexproc{#1}}
+\lst@AddToHook{BeforeSelectCharTable}
+    {\setbox\@tempboxa\hbox{\lst@procnamestyle\lst@loadfd}%
+     \lst@ifsensitive\else %
+         \lst@MakeMacroUppercase\lst@prockeywords %
+     \fi %
+     \lst@ifindexproc \ifx\lst@indexmacro\@undefined %
+         \let\lst@indexmacro\@gobble %
+     \fi \fi}
+\lst@AddToHook{Output}
+    {\lst@ifmode\else %
+         \lst@ifprocname %
+             \let\lst@thestyle\lst@procnamestyle %
+             \expandafter\lst@indexmacro\expandafter{\the\lst@token}%
+             \lst@procnamefalse %
+         \else \expandafter%
+             \lst@IfOneOf\the\lst@token\relax \lst@prockeywords %
+                {\lst@procnametrue}{}%
+         \fi %
+     \fi}
+\def\lst@procnametrue{\global\let\lst@ifprocname\iftrue}
+\def\lst@procnamefalse{\global\let\lst@ifprocname\iffalse}
+\let\lst@prockeywords\@empty % init
+\lstset{procnamestyle={},indexprocnames=false}% init
+\lst@procnamefalse % init
+}
+\lst@Aspect{labelstyle}{\def\lst@labelstyle{#1}}
+\lst@Aspect{labelsep}{\def\lst@labelsep{#1}}
+\lst@Aspect{labelstep}%
+    {\ifnum #1>\m@ne %
+         \def\lst@labelstep{#1}%
+     \else %
+         \PackageError{Listings}{Nonnegative integer expected}%
+         {You can't use `#1' as step count for labels.^^J%
+          I'll forget it and proceed.}%
+     \fi}
+\lst@AddToHook{BeforeSelectCharTable}
+    {\setbox\@tempboxa\hbox{\lst@stringstyle \lst@loadfd}}
+\newcount\lst@skiplabels % \global
+\lst@AddToHook{BeforeSelectCharTable}
+    {\ifnum\lst@labelstep>\z@ %
+         \global\lst@skiplabels\lst@firstline\relax %
+         \global\divide\lst@skiplabels\lst@labelstep %
+         \global\multiply\lst@skiplabels-\lst@labelstep %
+         \global\advance\lst@skiplabels\lst@firstline\relax %
+         \ifnum\lst@skiplabels>\z@ %
+             \global\advance\lst@skiplabels -\lst@labelstep\relax %
+         \fi %
+     \else %
+         \let\lst@SkipOrPrintLabel\relax %
+     \fi}
+\lst@AddToHook{EveryLine}{\lst@SkipOrPrintLabel}
+\def\lst@SkipOrPrintLabel{%
+    \ifnum\lst@skiplabels=\z@ %
+        \global\advance\lst@skiplabels-\lst@labelstep\relax %
+        \llap{\lst@labelstyle{\the\lst@lineno}\kern\lst@labelsep}%
+    \fi %
+    \global\advance\lst@skiplabels\@ne}
+\newdimen\lst@innerspread \newdimen\lst@outerspread
+\lst@Aspect{wholeline}[t]{\lstKV@SetIfKey\lst@ifwholeline{#1}}
+\lst@Aspect{indent}{\def\lst@indent{#1}}
+\lst@Aspect{spread}{\lstspread@#1,,\relax}
+\def\lstspread@#1,#2,#3\relax{%
+    \lst@innerspread#1\relax %
+    \ifx\@empty#2\@empty %
+        \divide\lst@innerspread\tw@\relax %
+        \lst@outerspread\lst@innerspread %
+    \else %
+        \lst@outerspread#2\relax %
+    \fi}
+\lstset{wholeline=false,indent=\z@,spread=\z@}% init
+\def\lst@parshape{%
+    \parshape\@ne %
+        \ifodd\c@page -\lst@innerspread\else -\lst@outerspread\fi %
+        \linewidth}
+\lst@AddToHookAtTop{EveryLine}{\lst@parshape}
+\lst@AddToHookAtTop{EndGroup}{\lst@parshape}
+\lst@AddToHook{BeforeSelectCharTable}
+    {\advance\linewidth\lst@innerspread %
+     \advance\linewidth\lst@outerspread %
+     \advance\linewidth-\lst@indent\relax %
+     \advance\lst@innerspread-\lst@indent\relax %
+     \advance\lst@outerspread-\lst@indent\relax %
+     \lst@ifwholeline %
+         \advance\linewidth\@totalleftmargin %
+     \else %
+         \advance\lst@innerspread-\@totalleftmargin %
+         \advance\lst@outerspread-\@totalleftmargin %
+     \fi %
+     \if@twoside\else \lst@outerspread\lst@innerspread \fi}
+\lst@Aspect{lineskip}{\def\lst@lineskip{#1}}
+\lst@AddToHook{BeforeSelectCharTable}{\parskip\lst@lineskip\relax}
+\lstset{lineskip=\z@}% init
+\lst@Aspect{framerulewidth}{\def\lst@framewidth{#1}}
+\lst@Aspect{framerulesep}{\def\lst@framesep{#1}}
+\lst@Aspect{frametextsep}{\def\lst@frametextsep{#1}}
+\lstset{framerulewidth=.4pt,framerulesep=2pt,frametextsep=3pt}% init
+\lst@Aspect{frame}
+    {\def\lst@frame{#1}%
+     \lstframe@\relax tlrbTLRB\relax %
+     \lstframe@\@empty#1\relax}
+\def\lstframe@#1#2{%
+    \ifx\relax#2\else %
+        \expandafter\let\csname lstf@#2\endcsname#1%
+        \expandafter\lstframe@\expandafter#1%
+    \fi}
+\lstset{frame={}}% init
+\def\lst@framev{\hbox{\strut\vrule width\lst@framewidth}}
+\def\lst@frameV{\hbox{\strut %
+    \vrule width\lst@framewidth\kern\lst@framesep %
+    \vrule width\lst@framewidth}}
+\lst@AddToHook{EveryLine}{\lst@framelr}
+\def\lst@framelr{%
+    \llap{\lst@framel\kern\lst@indent\kern\lst@frametextsep}%
+    \rlap{\kern\linewidth\kern\lst@frametextsep\lst@framer}}
+\def\lst@frameh#1#2#3{%
+    \hbox to\z@{%
+        \kern\ifodd\c@page -\lst@innerspread\else -\lst@outerspread\fi %
+        \kern-\lst@indent %
+        \kern-\lst@frametextsep %
+        \ifx\lstf@L\@empty %
+            \llap{#2#1}%
+        \else \ifx\lstf@l\@empty %
+            \llap{#20}%
+        \fi \fi %
+        \vrule\@width\lst@frametextsep %
+        \vrule\@width\lst@indent %
+        \vrule\@width\linewidth\@height\lst@framewidth %
+        \vrule\@width\lst@frametextsep %
+        \ifx\lstf@R\@empty %
+            \rlap{#3#1}%
+        \else \ifx\lstf@r\@empty %
+            \rlap{#30}%
+        \fi \fi %
+        \hss}}
+\def\lst@framet{\lst@frameh0\lst@frameTL\lst@frameTR}%
+\let\lst@frameb\lst@framet
+\def\lst@frameT{%
+    \lst@frameh1\lst@frameTL\lst@frameTR %
+    \vskip\lst@framesep %
+    \lst@frameh0\lst@frameTL\lst@frameTR}
+\def\lst@frameB{%
+    \lst@frameh0\lst@frameBL\lst@frameBR %
+    \vskip\lst@framesep %
+    \lst@frameh1\lst@frameBL\lst@frameBR}
+\lst@AddToHook{BeforeSelectCharTable}
+    {\ifx\lstf@T\@empty %
+         \offinterlineskip\par\noindent\lst@frameT %
+     \else \ifx\lstf@t\@empty %
+         \offinterlineskip\par\noindent\lst@framet %
+     \else %
+         \let\lst@framet\relax %
+     \fi \fi %
+     \let\lst@framel\relax \let\lst@framer\relax %
+     \ifx\lstf@L\@empty %
+         \let\lst@framel\lst@frameV %
+     \else %
+         \ifx\lstf@l\relax\else \let\lst@framel\lst@framev \fi %
+     \fi %
+     \ifx\lstf@R\@empty %
+         \let\lst@framer\lst@frameV %
+     \else %
+         \ifx\lstf@r\relax\else \let\lst@framer\lst@framev \fi %
+     \fi %
+     \ifx\lst@framel\relax \ifx\lst@framer\relax %
+         \let\lst@framelr\relax %
+     \fi \fi %
+     \ifx\lst@framelr\relax\else \ifx\lst@framet\relax\else %
+         {\setbox\strutbox\hbox{%
+              \vrule\@height0pt\@depth.3\normalbaselineskip\@width\z@}%
+          \kern\ifodd\c@page-\lst@innerspread\else-\lst@outerspread\fi %
+          \lst@framelr}%
+     \fi \fi}
+\lst@AddToHook{ExitVars}
+    {\ifx\lstf@B\@empty %
+         \offinterlineskip\everypar{}\par\noindent\lst@frameB %
+     \else \ifx\lstf@b\@empty %
+         \offinterlineskip\everypar{}\par\noindent\lst@framet %
+     \fi \fi}
+\def\lst@frameTL#1{%
+    \@tempdima\lst@framesep \advance\@tempdima\lst@framewidth %
+    \multiply\@tempdima#1\relax %
+    \setbox\@tempboxa\hbox to\z@{%
+        \vrule\@width\lst@framewidth\@height\z@\@depth\@tempdima\hss}%
+    \dp\@tempboxa\z@ %
+    \advance\@tempdima\lst@framewidth %
+    \box\@tempboxa \vrule\@width\@tempdima\@height\lst@framewidth}
+\def\lst@frameTR#1{%
+    \@tempdima\lst@framesep \advance\@tempdima\lst@framewidth %
+    \multiply\@tempdima#1\relax %
+    \setbox\@tempboxa\hbox to\z@{\hss %
+        \vrule\@width\lst@framewidth\@height\z@\@depth\@tempdima}%
+    \dp\@tempboxa\z@ %
+    \advance\@tempdima\lst@framewidth %
+    \vrule\@width\@tempdima\@height\lst@framewidth \box\@tempboxa}
+\def\lst@frameBL#1{%
+    \@tempdima\lst@framesep \advance\@tempdima\lst@framewidth %
+    \multiply\@tempdima#1\relax %
+    \advance\@tempdima\lst@framewidth %
+    \setbox\@tempboxa\hbox to\z@{%
+        \vrule\@width\lst@framewidth\@height\@tempdima\hss}%
+    \ht\@tempboxa\z@ %
+    \box\@tempboxa \vrule\@width\@tempdima\@height\lst@framewidth}
+\def\lst@frameBR#1{%
+    \@tempdima\lst@framesep \advance\@tempdima\lst@framewidth %
+    \multiply\@tempdima#1\relax %
+    \advance\@tempdima\lst@framewidth %
+    \setbox\@tempboxa\hbox to\z@{\hss %
+        \vrule\@width\lst@framewidth\@height\@tempdima}%
+    \ht\@tempboxa\z@ %
+    \vrule\@width\@tempdima\@height\lst@framewidth \box\@tempboxa}
+\lst@Aspect{pre}{\lstKV@OptArg\lstpre@[]{#1}}
+\lst@Aspect{post}{\lstKV@OptArg\lstpost@[]{#1}}
+\def\lstpre@[#1]#2{%
+    \def\lst@prelisting{#2}\def\lst@@prelisting{#1}}
+\def\lstpost@[#1]#2{%
+    \def\lst@postlisting{#2}\def\lst@@postlisting{#1}}
+\lstset{pre={},post={}}% init
+\lst@Aspect{texcl}[t]{\lstKV@SetIfKey\lst@iftexcl{#1}}
+\lstset{texcl=false}% init
+\lst@NewMode\lst@TeXCLmode
+\lst@NewMode\lst@CLmode
+\lst@AddToHook{EOL}
+    {\ifnum\lst@mode=\lst@TeXCLmode %
+         \lst@LeaveAllModes \lst@ReenterModes %
+     \fi %
+     \ifnum\lst@mode=\lst@CLmode \lst@LeaveMode \fi}
+\def\lstCC@BeginCommentLine#1{%
+    \lst@NewLine \lst@PrintToken %
+    \lst@EnterMode{\lst@CLmode}{\lst@modetrue\lst@commentstyle}%
+    #1\relax %
+    \lst@iftexcl %
+        \lst@PrintToken %
+        \lst@LeaveMode \lst@InterruptModes %
+        \lst@EnterMode{\lst@TeXCLmode}{\lst@modetrue\lst@commentstyle}%
+    \fi}
+\def\lstCC@@BeginCommentLine#1#2{%
+    \lst@NewLine \lst@PrintToken %
+    \lst@EnterMode{\lst@CLmode}{\lst@modetrue\lst@commentstyle}%
+    #1\relax#2\relax %
+    \lst@iftexcl %
+        \lst@PrintToken %
+        \lst@LeaveMode \lst@InterruptModes %
+        \lst@EnterMode{\lst@TeXCLmode}{\lst@modetrue\lst@commentstyle}%
+    \fi}
+\lst@Aspect{flexiblecolumns}[t]{\lstKV@SetIfKey\lst@ifflexible{#1}}
+\lstset{flexiblecolumns=false}% init
+\lst@AddToHook{BeforeSelectCharTable}
+    {\lst@ifflexible %
+         \let\lst@Output\lst@OutputFlexible %
+         \let\lst@OutputOther\lst@OutputOtherFlexible %
+         \let\lst@GotoTabStop\lst@GotoTabStopFlexible %
+     \fi}
+\lst@Aspect{baseem}{\lstbaseem@#1,,\relax}
+\def\lstbaseem@#1,#2,#3\relax{%
+    \def\lst@next{\PackageError{Listings}%
+        {Nonnegative number(s) expected}%
+        {Separate one or two such numbers by a comma, next time.^^J%
+         Now type <RETURN> to proceed.}}%
+    \ifdim #1em<\z@\else %
+        \def\lst@baseemfixed{#1}%
+        \let\lst@baseemflexible\lst@baseemfixed %
+        \ifx\@empty#2\@empty %
+            \let\lst@next\relax %
+        \else \ifdim #2em<\z@\else %
+            \def\lst@baseemflexible{#2}%
+            \let\lst@next\relax %
+        \fi \fi %
+    \fi \lst@next}
+\lstset{baseem={0.6,0.45}}% init
+\newdimen\lst@width
+\lst@AddToHook{InitVars}
+    {\lst@width=\lst@ifflexible\lst@baseemflexible %
+                          \else\lst@baseemfixed\fi em\relax}
+\lst@Aspect{tabsize}
+    {\ifnum#1>\z@ %
+        \def\lst@tabsize{#1}%
+     \else %
+         \PackageError{Listings}{Strict positive integer expected}
+         {You can't use `#1' as tabulator length.^^J%
+          Type <RETURN> to forget it and to proceed.}%
+     \fi}
+\lstset{tabsize=8}% init
+\newtoks\lst@token \newcount\lst@length
+\lst@AddToHook{InitVarsEOL}{\lst@token{}\lst@length\z@}
+\lst@AddToHook{InitVarsEOL}{\let\lst@lastother\@empty}
+\newcount\lst@column \newcount\lst@pos % \global
+\lst@AddToHook{InitVarsEOL}{\global\lst@pos\z@ \global\lst@column\z@}
+\newdimen\lst@lostspace % \global
+\lst@AddToHook{InitVarsEOL}{\global\lst@lostspace\z@}
+\def\lst@UseLostSpace{%
+    \ifdim\lst@lostspace>\z@ %
+        \kern\lst@lostspace \global\lst@lostspace\z@ %
+    \fi}
+\def\lst@InsertLostSpace{\kern\lst@lostspace \global\lst@lostspace\z@}
+\def\lst@InsertHalfLostSpace{%
+    \global\lst@lostspace.5\lst@lostspace \kern\lst@lostspace}
+\lst@Aspect{outputpos}{\lstoutputpos@#1\relax\relax}
+\def\lstoutputpos@#1#2\relax{%
+    \ifx #1l%
+        \let\lst@lefthss\relax \let\lst@righthss\hss %
+        \let\lst@leftinsert\relax %
+    \else\ifx #1c%
+        \let\lst@lefthss\hss \let\lst@righthss\hss %
+        \let\lst@leftinsert\lst@InsertHalfLostSpace %
+    \else %
+        \let\lst@lefthss\hss \let\lst@righthss\relax %
+        \let\lst@leftinsert\lst@InsertLostSpace %
+        \ifx #1r\else \PackageWarning{Listings}%
+            {Unknown positioning for output boxes}%
+        \fi %
+    \fi\fi}
+\lstset{outputpos=c}% init
+\def\lst@NewLineMacro{%
+    \global\let\lst@NewLine\relax \par\noindent\hbox{}}
+\lst@AddToHook{InitVars}{\global\let\lst@NewLine\lst@NewLineMacro}
+\lst@AddToHook{EOL}
+    {\ifx\lst@NewLine\relax %
+        \global\let\lst@NewLine\lst@NewLineMacro %
+     \else %
+         \lst@AddTo\lst@NewLine{\par\noindent\hbox{}}%
+     \fi}
+\def\lst@OutputOther{%
+    \ifnum\lst@length=\z@\else %
+        \lst@NewLine \lst@UseLostSpace %
+        \hbox to \lst@length\lst@width{%
+            \lst@lefthss %
+            \lsthk@OutputOther %
+            \expandafter\lst@FillOutputBox\the\lst@token\relax %
+            \lst@righthss}%
+        \global\advance\lst@pos -\lst@length %
+        \lst@token{}\lst@length\z@ %
+    \fi}
+\def\lst@Output{%
+    \let\lst@lastother\relax %
+    \ifnum\lst@length=\z@\else %
+        \lst@NewLine \lst@UseLostSpace %
+        \hbox to \lst@length\lst@width{%
+            \lst@lefthss %
+            \lsthk@Output \lst@thestyle{%
+                \expandafter\lst@FillOutputBox\the\lst@token\relax}%
+            \lst@righthss}%
+        \global\advance\lst@pos -\lst@length %
+        \lst@token{}\lst@length\z@ %
+    \fi}
+\def\lst@FillOutputBox#1{%
+    \ifx\relax#1\else #1\hss\expandafter\lst@FillOutputBox \fi}
+\def\lst@GotoTabStop{%
+    \global\advance\lst@lostspace \lst@length\lst@width %
+    \global\advance\lst@column\lst@length \lst@length\z@}%
+\def\lst@OutputOtherFlexible{%
+    \ifnum\lst@length=\z@\else %
+        \lst@NewLine \lst@UseLostSpace %
+        \setbox\@tempboxa\hbox{\lsthk@OutputOther\the\lst@token}%
+        \lst@CalcLostSpaceAndOutput %
+    \fi}
+\def\lst@OutputFlexible{%
+    \let\lst@lastother\relax %
+    \ifnum\lst@length=\z@\else %
+        \lst@NewLine \lst@UseLostSpace %
+        \setbox\@tempboxa\hbox{%
+            \lsthk@Output \lst@thestyle{\the\lst@token}}%
+        \lst@CalcLostSpaceAndOutput %
+    \fi}
+\def\lst@GotoTabStopFlexible{%
+    \ifx\lst@NewLine\relax %
+        \setbox\@tempboxa\hbox{\lst@outputblank}\@tempdima\wd\@tempboxa%
+        \setbox\@tempboxa\hbox{}\wd\@tempboxa\@tempdima %
+        \lst@CalcLostSpaceAndOutput %
+        \global\lst@pos\z@ %
+    \else %
+        \global\advance\lst@lostspace \lst@length\lst@width %
+        \global\advance\lst@column\lst@length \lst@length\z@ %
+    \fi}
+\def\lst@CalcLostSpaceAndOutput{%
+    \global\advance\lst@lostspace \lst@length\lst@width %
+    \global\advance\lst@lostspace-\wd\@tempboxa %
+    \global\advance\lst@pos -\lst@length %
+    \lst@token{}\lst@length\z@ %
+    \ifdim\lst@lostspace>\z@ \lst@leftinsert \fi %
+    \box\@tempboxa}
+\def\lst@BeginDropOutput#1{%
+    \let\lst@BDOsave\lst@NewLine %
+    \lst@EnterMode{#1}%
+        {\lst@modetrue %
+         \let\lst@Output\lst@EmptyOutput %
+         \let\lst@OutputOther\lst@EmptyOutputOther %
+         \let\lst@GotoTabStop\lst@EmptyGotoTabStop %
+         \aftergroup\lst@BDORestore}}
+\def\lst@BDORestore{\global\let\lst@NewLine\lst@BDOsave}
+\def\lst@EmptyOutputOther{%
+    \global\advance\lst@pos -\lst@length %
+    \lst@token{}\lst@length\z@}
+\def\lst@EmptyOutput{\let\lst@lastother\relax \lst@EmptyOutputOther}
+\def\lst@EmptyGotoTabStop{%
+    \global\advance\lst@column\lst@length \lst@length\z@}
+\@ifundefined{lst@doc}{}{%
+\newwrite\lstdoc@out
+\def\lst@BeginWriteFile#1{%
+    \begingroup %
+    \lsthk@SetLanguage %
+    \let\lstCC@ifec\iffalse %
+    \let\lst@Output\lstdoc@Output %
+    \let\lst@OutputOther\lstdoc@Output %
+    \let\lst@GotoTabStop\lstdoc@GotoTabStop %
+    \let\lstCC@ProcessSpace\lstdoc@ProcessSpace %
+    \let\lst@MProcessListing\lstdoc@MProcessListing %
+    \let\smallbreak\relax %
+    \let\lst@prelisting\relax \let\lst@postlisting\relax %
+    \let\lst@@prelisting\relax \let\lst@@postlisting\relax %
+    \let\lstCC@Use\lstdoc@Use %
+    \let\lst@DeInit\lstdoc@DeInit %
+    \immediate\openout\lstdoc@out=#1\relax}
+\def\lst@EndWriteFile{\immediate\closeout\lstdoc@out \endgroup}
+\def\lstdoc@Output{\global\advance\lst@pos -\lst@length \lst@length\z@}
+\def\lstdoc@ProcessSpace{\lstCC@Append{ }}
+\def\lstdoc@GotoTabStop{%
+    \@whilenum \lst@length>\z@ \do %
+    {\lstCC@Append{ }\advance\lst@length-2\relax}}
+\def\lstdoc@MProcessListing{%
+    \immediate\write\lstdoc@out{\the\lst@token}%
+    \lst@token{}\lst@length\z@ %
+    \lst@BOLGobble}
+\def\lstdoc@DeInit{%
+    \ifnum\lst@length=\z@\else %
+        \immediate\write\lstdoc@out{\the\lst@token}%
+    \fi %
+    \egroup \smallbreak\lst@postlisting \endgroup}
+\def\lstdoc@Use#1#2#3{%
+    \ifnum#2=\z@ %
+        \expandafter\@gobbletwo %
+    \else %
+        \catcode#2=\active \lccode`\~=#2\lccode`\/=#2%
+        \lowercase{\def~{\lstCC@Append{/}}}%
+    \fi %
+    \lstdoc@Use#1}
+}% of \@ifundefined{lst@doc}{}{%
+\def\lstCC@Append#1{\advance\lst@length\@ne %
+    \expandafter\lst@token\expandafter{\the\lst@token#1}}
+\def\lstCC@AppendOther#1{\advance\lst@length\@ne \let\lst@lastother#1%
+    \expandafter\lst@token\expandafter{\the\lst@token#1}}
+\def\lstCC@lettertrue{\let\lstCC@ifletter\iftrue}
+\def\lstCC@letterfalse{\let\lstCC@ifletter\iffalse}
+\lst@AddToHook{InitVars}{\lstCC@letterfalse}
+\def\lst@PrintToken{%
+    \lstCC@ifletter %
+        \lst@Output\lstCC@letterfalse %
+    \else %
+        \lst@OutputOther \let\lst@lastother\@empty %
+    \fi}
+\def\lstCC@Def#1{\catcode#1=\active\lccode`\~=#1\lowercase{\def~}}
+\def\lstCC@Let#1{\catcode#1=\active\lccode`\~=#1\lowercase{\let~}}
+\begingroup \catcode`\"=12
+\gdef\lst@SelectCharTable{%
+    \lstCC@Tabulator{"09}%
+    \lstCC@Space{"20}%
+    \lstCC@Use \lstCC@ProcessOther %
+        {"21}!{"22}"{"23}\#{"25}\%{"26}\&{"27}'{"28}({"29})%
+        {"2A}\lst@asterisk{"2B}+{"2C},{"2D}\lst@minus{"2E}.%
+        {"2F}/{"3A}:{"3B};{"3C}\lst@less{"3D}={"3E}\lst@greater{"3F}?%
+        {"5B}[{"5C}\lst@backslash{"5D}]{"5E}\textasciicircum{"60}{`}%
+        {"7B}\lst@lbrace{"7C}\lst@bar{"7D}\lst@rbrace %
+        {"7E}\textasciitilde{"7F}-%
+        \z@\@empty %
+    \lstCC@Use \lstCC@ProcessDigit %
+        {"30}0{"31}1{"32}2{"33}3{"34}4{"35}5{"36}6{"37}7{"38}8{"39}9%
+        \z@\@empty %
+    \lstCC@Use \lstCC@ProcessLetter %
+        {"24}\lst@dollar{"40}@%
+        {"41}A{"42}B{"43}C{"44}D{"45}E{"46}F{"47}G{"48}H{"49}I{"4A}J%
+        {"4B}K{"4C}L{"4D}M{"4E}N{"4F}O{"50}P{"51}Q{"52}R{"53}S{"54}T%
+        {"55}U{"56}V{"57}W{"58}X{"59}Y{"5A}Z{"5F}\lst@underscore %
+        {"61}a{"62}b{"63}c{"64}d{"65}e{"66}f{"67}g{"68}h{"69}i{"6A}j%
+        {"6B}k{"6C}l{"6D}m{"6E}n{"6F}o{"70}p{"71}q{"72}r{"73}s{"74}t%
+        {"75}u{"76}v{"77}w{"78}x{"79}y{"7A}z%
+        \z@\@empty %
+    \lstCC@ifec \lstCC@DefEC \fi %
+    \lsthk@SelectCharTable %
+    \csname lstSCT@\lst@language\endcsname %
+    \csname lstSCT@\lst@language @\lst@dialect\endcsname %
+    \ifx\lstCC@Backslash\relax\else %
+        \lccode`\~="5C\lowercase{\let\lsts@backslash~}%
+        \lstCC@Let{"5C}\lstCC@Backslash %
+    \fi}
+\catcode`\^^@=12
+\gdef\lstCC@DefEC{%
+    \lstCC@ECUse \lstCC@ProcessLetter %
+      ^^80^^81^^82^^83^^84^^85^^86^^87^^88^^89^^8a^^8b^^8c^^8d^^8e^^8f%
+      ^^90^^91^^92^^93^^94^^95^^96^^97^^98^^99^^9a^^9b^^9c^^9d^^9e^^9f%
+      ^^a0^^a1^^a2^^a3^^a4^^a5^^a6^^a7^^a8^^a9^^aa^^ab^^ac^^ad^^ae^^af%
+      ^^b0^^b1^^b2^^b3^^b4^^b5^^b6^^b7^^b8^^b9^^ba^^bb^^bc^^bd^^be^^bf%
+      ^^c0^^c1^^c2^^c3^^c4^^c5^^c6^^c7^^c8^^c9^^ca^^cb^^cc^^cd^^ce^^cf%
+      ^^d0^^d1^^d2^^d3^^d4^^d5^^d6^^d7^^d8^^d9^^da^^db^^dc^^dd^^de^^df%
+      ^^e0^^e1^^e2^^e3^^e4^^e5^^e6^^e7^^e8^^e9^^ea^^eb^^ec^^ed^^ee^^ef%
+      ^^f0^^f1^^f2^^f3^^f4^^f5^^f6^^f7^^f8^^f9^^fa^^fb^^fc^^fd^^fe^^ff%
+      ^^00}
+\endgroup
+\lst@Aspect{extendedchars}[t]{\lstKV@SetIfKey\lstCC@ifec{#1}}
+\lstset{extendedchars=false}% init
+\def\lstCC@Use#1#2#3{%
+    \ifnum#2=\z@ %
+        \expandafter\@gobbletwo %
+    \else %
+        \catcode#2=\active \lccode`\~=#2\lowercase{\def~}{#1#3}%
+    \fi %
+    \lstCC@Use#1}
+\def\lstCC@ECUse#1#2{%
+    \ifnum`#2=\z@ %
+        \expandafter\@gobbletwo %
+    \else %
+        \ifnum\catcode`#2=\active %
+            \lccode`\~=`#2\lccode`\/=`#2\lowercase{\lstCC@ECUse@#1~/}%
+        \else %
+            \catcode`#2=\active \lccode`\~=`#2\lowercase{\def~}{#1#2}%
+        \fi %
+    \fi %
+    \lstCC@ECUse#1}
+\def\lstCC@ECUse@#1#2#3{%
+   \expandafter\let\csname lsts@EC#3\endcsname #2%
+   \edef#2{\noexpand#1\expandafter\noexpand\csname lsts@EC#3\endcsname}}
+\def\lstCC@Tabulator#1{\lstCC@Let{#1}\lstCC@ProcessTabulator}
+\def\lstCC@Space#1{\lstCC@Let{#1}\lstCC@ProcessSpace}
+\def\lstCC@ChangeBasicClass#1#2{%
+    \ifx\@empty#2\else %
+        \expandafter\lst@MakeActive\expandafter{#2}%
+        \expandafter\lstCC@CBC@\expandafter#1\lst@arg\@empty %
+    \fi}
+\def\lstCC@CBC@#1#2{%
+    \ifx\@empty#2%
+        \expandafter\@gobbletwo %
+    \else %
+        \expandafter\lstCC@CBC@@#2\lstCC@CBC@@#1#2%
+    \fi %
+    \lstCC@CBC@#1}
+\def\lstCC@CBC@@#1#2\lstCC@CBC@@#3#4{\def#4{#3#2}}
+\def\lstCC@ProcessLetter#1{%
+    \lstCC@ifletter\else \lst@OutputOther\lstCC@lettertrue \fi %
+    \lstCC@Append{#1}}
+\def\lstCC@ProcessOther#1{%
+    \lstCC@ifletter \lst@Output\lstCC@letterfalse \fi %
+    \lstCC@AppendOther{#1}}
+\def\lstCC@ProcessDigit#1{%
+    \lstCC@ifletter \lstCC@Append{#1}\else \lstCC@AppendOther{#1}\fi}
+\def\lstCC@ProcessTabulator{%
+    \lst@PrintToken %
+    \global\advance\lst@column -\lst@pos %
+    \@whilenum \lst@pos<\@ne \do %
+        {\global\advance\lst@pos\lst@tabsize}%
+    \lst@length\lst@pos \global\lst@pos\z@ %}
+    \lst@GotoTabStop}
+\def\lstCC@AppendSpecialSpace{%
+    \ifx\lst@lastother\lst@outputblank %
+        \lst@OutputOther %
+        \global\advance\lst@lostspace\lst@width %
+        \global\advance\lst@pos\m@ne %
+    \else %
+        \lstCC@AppendOther\lst@outputblank %
+    \fi}
+\def\lst@outputblank{\ }
+\def\lstCC@ProcessSpace{%
+    \lstCC@ifletter %
+        \lst@Output\lstCC@letterfalse %
+        \lstCC@AppendOther\lst@outputblank %
+    \else \ifnum\lst@mode=\lst@stringmode %
+        \lstCC@AppendOther\lst@outputblank %
+    \else \ifx\lst@NewLine\relax %
+        \lstCC@AppendSpecialSpace %
+    \else \ifnum\lst@length=\z@ %
+            \global\advance\lst@lostspace\lst@width %
+            \global\advance\lst@pos\m@ne %
+        \else %
+            \lstCC@AppendSpecialSpace %
+        \fi %
+    \fi \fi \fi}
+\def\lst@legalstringizer{d,b,m,bd,db}
+\lst@Aspect{stringizer}{\lstKV@OptArg\lststringizer@[d]{#1}}
+\def\lststringizer@[#1]#2%
+    {\lst@IfOneOf#1\relax \lst@legalstringizer %
+         {\def\lst@DefStrings{\lstCC@Stringizer[#1]#2\@empty}}%
+         {\PackageError{Listings}{Illegal stringizer type `#1'}%
+          {Available types are \lst@legalstringizers.}}}
+\lst@AddToHook{SetLanguage}{\let\lst@DefStrings\@empty}
+\lst@AddToHook{SelectCharTable}{\lst@DefStrings}
+\def\lstCC@Stringizer[#1]{%
+    \expandafter\lstCC@Stringizer@ %
+        \csname lstCC@ProcessStringizer@#1\endcsname}
+\def\lstCC@Stringizer@#1#2{%
+    \ifx\@empty#2%
+        \expandafter\@gobbletwo %
+    \else %
+        \catcode`#2=\active \lccode`\~=`#2\lccode`\/=`#2%
+        \lowercase{%
+           \expandafter\let\csname lsts@s/\endcsname~%
+           \def~{#1/}}%
+    \fi %
+    \lstCC@Stringizer@#1}
+\def\lstCC@ProcessStringizer@d#1{%
+    \lstCC@ifletter \lst@Output\lstCC@letterfalse \fi %
+    \ifnum\lst@mode=\lst@stringmode %
+        \csname lsts@s#1\endcsname %
+        \ifx\lst@lastother\lstCC@closestring %
+            \lstCC@EndString %
+        \fi %
+    \else %
+        \lst@OutputOther %
+        \lst@ifmode\else %
+            \expandafter\expandafter\expandafter\lstCC@BeginString %
+        \fi %
+        \csname lsts@s#1\endcsname %
+    \fi}
+\def\lstCC@ProcessStringizer@b#1{%
+    \lstCC@ifletter \lst@Output\lstCC@letterfalse \fi %
+    \ifnum\lst@mode=\lst@stringmode %
+        \let\lst@temp\lst@lastother \csname lsts@s#1\endcsname %
+        \ifx\lst@temp\lst@backslash\else %!def of "005C
+        \ifx\lst@lastother\lstCC@closestring %
+            \lstCC@EndString %
+        \fi \fi %
+    \else %
+        \lst@OutputOther %
+        \lst@ifmode\else %
+            \expandafter\expandafter\expandafter\lstCC@BeginString %
+        \fi %
+        \csname lsts@s#1\endcsname %
+    \fi}
+\let\lstCC@ProcessStringizer@bd\lstCC@ProcessStringizer@b
+\let\lstCC@ProcessStringizer@db\lstCC@ProcessStringizer@bd
+\def\lstCC@ProcessStringizer@m#1{%
+    \ifnum\lst@mode=\lst@stringmode %
+        \lstCC@ifletter \lst@Output\lstCC@letterfalse \fi %
+        \csname lsts@s#1\endcsname %
+        \ifx\lst@lastother\lstCC@closestring %
+            \lstCC@EndString %
+        \fi %
+    \else %
+        \lstCC@ifletter %
+            \lst@Output\lstCC@letterfalse %
+        \else %
+            \lst@OutputOther %
+            \let\lstCC@next\relax %
+            \ifx\lst@lastother)\else \lst@ifmode\else %
+                \let\lstCC@next\lstCC@BeginString %
+            \fi \fi %
+            \expandafter\expandafter\expandafter\lstCC@next %
+        \fi %
+        \csname lsts@s#1\endcsname %
+    \fi}
+\lst@Aspect{stringstyle}{\def\lst@stringstyle{#1}}
+\lst@Aspect{blankstring}[t]{\lstKV@SetIfKey\lst@ifblankstring{#1}}
+\lstset{blankstring=false}% init
+\lst@AddToHook{BeforeSelectCharTable}
+    {\setbox\@tempboxa\hbox{\lst@stringstyle \lst@loadfd}}
+\lst@NewMode\lst@stringmode
+\def\lstCC@BeginString#1{%
+    \lst@NewLine %
+    \lst@EnterMode{\lst@stringmode}{\lst@modetrue\lst@stringstyle}%
+    #1%
+    \let\lstCC@closestring\lst@lastother %
+    \lst@ifblankstring\else \let\lst@outputblank\textvisiblespace \fi}
+\def\lstCC@EndString{%
+    \lst@OutputOther \lst@LeaveMode \lst@token{}\lst@length\z@}
+\lst@Aspect{stringtest}[t]{\lstKV@SetIfKey\lst@ifstringtest{#1}}
+\lst@AddToHook{SetLanguage}{\let\lst@ifstringtest\iftrue}
+\lst@AddToHook{BeforeSelectCharTable}
+    {\lst@ifstringtest\else \let\lst@TestStringMode\relax \fi}
+\def\lst@TestStringMode{%
+     \ifnum\lst@mode=\lst@stringmode %
+         \PackageWarning{Listings}{String constant exceeds line}%
+         \lst@LeaveMode \lst@token{}\lst@length\z@ %
+     \fi}
+\lst@AddToHook{EOL}{\lst@TestStringMode}
+\lst@Aspect{commentstyle}{\def\lst@commentstyle{#1}}
+\lst@AddToHook{BeforeSelectCharTable}
+    {\setbox\@tempboxa\hbox{\lst@commentstyle \lst@loadfd}}
+\def\lstCC@BeginComment#1{%
+    \lst@NewLine \lst@PrintToken %
+    \lst@EnterMode{#1}{\lst@modetrue\lst@commentstyle}}
+\def\lstCC@@BeginComment#1#2#3{%
+    \lst@NewLine \lst@PrintToken %
+    \lst@EnterMode{#1}{\lst@modetrue\lst@commentstyle}%
+    \lst@mode\lst@nomode #2\relax#3\relax \lst@mode#1\relax}
+\def\lstCC@EndComment{%
+    \lst@PrintToken \lst@LeaveMode \let\lst@lastother\@empty}
+\begingroup \catcode`\^^@=\active
+\gdef\lstCC@TestCArg#1#2#3\relax#4{%
+    \lccode`\~=`#1\lccode`\/=`#1%
+    \ifx\@empty#2%
+        \lowercase{\def\lst@temp{~\@empty/}}%
+    \else \lccode`\^^@=`#2%
+        \lowercase{\def\lst@temp{~^^@/}}%
+    \fi %
+    \ifx\@empty#2\else \ifx\@empty#3\else \lstCC@TestCArgError \fi\fi %
+    \expandafter #4\lst@temp}
+\endgroup
+\def\lstCC@TestCArgError{%
+    \PackageError{Listings}{At most 2 characters allowed}%
+    {The package doesn't provide more than two characters here.^^J%
+     I'll simply use the first two only and proceed.}}
+\lst@AddToHook{BeforeSelectCharTable}
+    {\let\lstCC@next\relax \let\lstCC@bnext\relax\let\lstCC@enext\relax}
+\lst@AddToHook{SetLanguage}
+    {\let\lst@DefSC\relax \let\lst@DefNC\relax \let\lst@DefDC\relax %
+     \let\lst@DefCL\relax \let\lst@DefFCL\relax}
+\lst@AddToHook{SelectCharTable}
+    {\lst@DefSC \lst@DefNC \lst@DefDC \lst@DefCL \lst@DefFCL}
+\lst@Aspect{commentline}{\def\lst@DefCL{\lstCC@CommentLine{#1}}}
+\def\lstCC@CommentLine#1{%
+    \ifx\@empty#1\@empty\else %
+        \lstCC@TestCArg#1\@empty\relax\lstCC@CommentLine@ %
+    \fi}
+\def\lstCC@CommentLine@#1#2#3{%
+    \expandafter\let\csname lsts@CL#3\endcsname#1%
+    \ifx\@empty#2%
+        \def#1{%
+            \lst@ifmode \let\lstCC@next\relax \else %
+                \let\lstCC@next\lstCC@BeginCommentLine %
+            \fi %
+            \expandafter\lstCC@next \csname lsts@CL#3\endcsname}%
+    \else %
+        \def#1##1{%
+            \let\lstCC@next\relax %
+            \lst@ifmode\else \ifx##1#2%
+                \let\lstCC@next\lstCC@@BeginCommentLine %
+            \fi \fi %
+            \expandafter\lstCC@next \csname lsts@CL#3\endcsname##1}%
+    \fi}
+\lst@Aspect{fixedcommentline}{\lstKV@OptArg\lstfcommentline@[0]{#1}}
+\def\lstfcommentline@[#1]#2%
+    {\def\lst@DefFCL{\lstCC@FixedCL[#1]#2\@empty}}
+\lst@NewMode\lst@FCLmode
+\def\lstCC@FixedCL[#1]#2{%
+    \ifx\@empty#2\else %
+        \lccode`\~=`#2\lccode`\/=`#2%
+        \lowercase{\lstCC@FixedCL@~/}{#1}%
+        \def\lstCC@next{\lstCC@FixedCL[#1]}%
+        \expandafter\lstCC@next %
+    \fi}
+\def\lstCC@FixedCL@#1#2#3{%
+    \expandafter\let\csname lsts@FCL#2\endcsname#1%
+    \def#1{\let\lstCC@next\relax %
+        \lst@ifmode\else %
+            \@tempcnta\lst@column %
+            \advance\@tempcnta\lst@length %
+            \advance\@tempcnta-\lst@pos %
+            \ifnum\@tempcnta=#3%
+                \let\lstCC@next\lstCC@BeginCommentLine %
+            \fi %
+        \fi %
+        \expandafter\lstCC@next \csname lsts@FCL#2\endcsname}}
+\lst@Aspect{singlecomment}{\def\lst@DefSC{\lstCC@SingleComment#1{}}}
+\lst@Aspect{doublecomment}{\def\lst@DefDC{\lstCC@DoubleComment#1{}{}{}}}
+\lst@NewMode\lst@SCmode \lst@NewMode\lst@DCmodeA\lst@NewMode\lst@DCmodeB
+\def\lstCC@SingleComment#1#2{%
+    \ifx\@empty#1\@empty\else %
+        \lstCC@TestCArg#1\@empty\relax\lstCC@CommentB{SC}\lst@SCmode %
+        \lstCC@TestCArg#2\@empty\relax\lstCC@CommentE{SC}\lst@SCmode %
+    \fi}
+\def\lstCC@DoubleComment#1#2#3#4{%
+    \ifx\@empty#1\@empty\else %
+        \lstCC@TestCArg#1\@empty\relax\lstCC@CommentB{DCA}\lst@DCmodeA %
+        \lstCC@TestCArg#3\@empty\relax\lstCC@CommentB{DCB}\lst@DCmodeB %
+        \lstCC@TestCArg#2\@empty\relax\lstCC@CommentE{DCA}\lst@DCmodeA %
+        \lstCC@TestCArg#4\@empty\relax\lstCC@CommentE{DCB}\lst@DCmodeB %
+    \fi}
+\def\lstCC@CommentB#1#2#3#4#5{%
+    \expandafter\let\csname lsts@B#4#3\endcsname#1%
+    \ifx\@empty#2%
+        \def#1{%
+            \lst@ifmode \let\lstCC@bnext\relax \else %
+                \def\lstCC@bnext{\lstCC@BeginComment#5}%
+            \fi %
+            \lstCC@bnext \csname lsts@B#4#3\endcsname}%
+    \else %
+        \def#1##1{%
+            \let\lstCC@bnext\relax %
+            \lst@ifmode\else \ifx##1#2%
+                \def\lstCC@bnext{\lstCC@@BeginComment#5}%
+            \fi \fi %
+            \expandafter\lstCC@bnext \csname lsts@B#4#3\endcsname##1}%
+    \fi}
+\def\lstCC@CommentE#1#2#3#4#5{%
+    \expandafter\let\csname lsts@E#4#3\endcsname#1%
+    \ifx\@empty#2%
+        \def#1{%
+            \def\lstCC@enext{\csname lsts@E#4#3\endcsname}%
+            \lst@ifmode \ifnum\lst@mode=#5%
+                \def\lstCC@enext{\csname lsts@E#4#3\endcsname %
+                    \lstCC@EndComment}%
+            \fi \fi %
+            \lstCC@enext}%
+    \else %
+        \def#1##1{%
+            \def\lstCC@enext{\csname lsts@E#4#3\endcsname ##1}%
+            \lst@ifmode \ifnum\lst@mode=#5\ifx##1#2%
+                \def\lstCC@enext{\csname lsts@E#4#3\endcsname ##1%
+                    \lstCC@EndComment}%
+            \fi \fi \fi %
+            \lstCC@enext}%
+    \fi}
+\lst@Aspect{nestedcomment}{\lstnestedcomment@#1}
+\def\lstnestedcomment@#1#2%
+    {\def\@tempa{#1}\def\@tempb{#2}%
+     \ifx\@tempa\@tempb \ifx\@tempa\@empty\else %
+         \PackageError{Listings}{Identical delimitors}%
+         {These delimitors make no sense with nested comments.}%
+     \fi \fi %
+     \def\lst@DefNC{\lstCC@NestedComment{#1}{#2}}}
+\def\lstCC@NestedComment#1#2{%
+    \ifx\@empty#1\@empty\else %
+        \lstCC@TestCArg#2\@empty\relax\lstCC@NCommentE %
+        \lstCC@TestCArg#1\@empty\relax\lstCC@NCommentB %
+    \fi}
+\def\lstCC@NCommentB#1#2#3{%
+    \let\lsts@BNC #1%
+    \ifx\@empty#2%
+        \def#1{%
+            \let\lstCC@bnext\relax %
+            \lst@ifmode %
+                \ifnum\lst@mode<\z@ %
+                    \advance\lst@mode\m@ne %
+                \fi %
+            \else %
+                \def\lstCC@bnext{\lstCC@BeginComment\m@ne}%
+            \fi %
+            \lstCC@bnext \lsts@BNC}%
+    \else %
+        \def#1##1{%
+            \let\lstCC@bnext\relax %
+            \lst@ifmode %
+                \ifnum\lst@mode<\z@ \ifx##1#2%
+                    \advance\lst@mode\m@ne %
+                \fi \fi %
+            \else %
+                \ifx##1#2%
+                    \def\lstCC@bnext{\lstCC@@BeginComment\m@ne}%
+                \fi %
+            \fi %
+            \lstCC@bnext \lsts@BNC ##1}%
+    \fi}
+\def\lstCC@NCommentE#1#2#3{%
+    \let\lsts@ENC #1%
+    \ifx\@empty#2%
+        \def#1{%
+            \let\lstCC@enext\relax %
+            \lst@ifmode \ifnum\lst@mode<\z@ %
+                \ifnum\lst@mode=\m@ne %
+                    \let\lstCC@enext\lstCC@EndComment %
+                \else %
+                    \advance\lst@mode\@ne %
+                \fi
+            \fi \fi %
+            \lsts@ENC \lstCC@enext}%
+    \else %
+        \def#1##1{%
+            \def\lstCC@enext{\lsts@ENC ##1}%
+            \ifx##1#2%
+                \lst@ifmode \ifnum\lst@mode<\z@ %
+                    \ifnum\lst@mode=\m@ne %
+                        \def\lstCC@enext{%
+                            \lsts@ENC ##1\lstCC@EndComment}%
+                    \else %
+                        \advance\lst@mode\@ne %
+                    \fi
+                \fi \fi %
+            \fi %
+            \lstCC@enext}%
+    \fi}
+\def\lstCC@Escape#1{\lccode`\~=`#1\lowercase{\lstCC@Escape@~}}
+\def\lstCC@Escape@#1#2#3{%
+    \def#1{%
+        \lst@NewLine\lst@UseLostSpace \lst@PrintToken %
+        \lst@InterruptModes %
+        \lst@EnterMode{\lst@TeXmode}{\lst@modetrue}%
+        \catcode`#1=\active %
+        \def#1{#3\lst@LeaveAllModes \lst@ReenterModes}%
+        #2}}
+\lst@NewMode\lst@TeXmode
+\lst@Aspect{escapechar}
+    {\ifx\@empty#1\@empty %
+         \let\lst@DefEsc\relax %
+     \else %
+         \def\lst@DefEsc{\lstCC@Escape{#1}\@empty\@empty}%
+     \fi}
+\lstset{escapechar={}}% init
+\lst@AddToHook{SelectCharTable}{\lst@DefEsc}
+\lst@Aspect{mathescape}[t]{\lstKV@SetIfKey\lst@ifmathescape{#1}}
+\lstset{mathescape=false}% init
+\lst@AddToHook{SelectCharTable}
+    {\lst@ifmathescape \lstCC@Escape{\$}{$}{$}\fi}
+\def\lst@DontEscapeToLaTeX{%
+    \let\lst@iftexcl\iffalse %
+    \let\lst@DefEsc\relax %
+    \let\lst@ifmathescape\iffalse}
+\lst@Aspect{formfeed}{\def\lst@formfeed{#1}}
+\lstset{formfeed=\bigbreak}% init
+\lst@AddToHook{SelectCharTable}{\lstCC@Let{`\^^L}\lstCC@FormFeed}
+\def\lstCC@FormFeed{%
+    \lst@PrintToken %
+    \ifx\lst@NewLine\relax %
+        \lst@EOLUpdate \lst@formfeed %
+    \else %
+        \lst@lAddTo\lst@NewLine{\lst@EOLUpdate \lst@formfeed}%
+    \fi}
+\lstset{labelsep=5pt,sensitive=true}
+\lstdefinelanguage{}{}
+\lstdefinestyle{}
+    {basicstyle={},%
+     keywordstyle=\bfseries,nonkeywordstyle={},%
+     commentstyle=\itshape,stringstyle={},%
+     labelstyle={},labelstep=0}
+\lst@mode=\z@
+\lstset{language={},style={}}
+\@ifundefined{lst@0.17}{}{\input{lst017.sty}}
+\InputIfFileExists{lstpatch.sty}{}{}
+\InputIfFileExists{listings.cfg}{}{}
+\lst@Aspect{fancyvrb}[t]{%
+    \lstKV@SetIfKey\lst@iffancyvrb{#1}%
+    \lstfancyvrb@}
+\def\lstfancyvrb@{\input{lstfvrb.sty}\lstfancyvrb@}
+\endinput
+%%
+%% End of file `listings.sty'.
diff --git a/doc/papers/2011/europar/lstpseudo.sty b/doc/papers/2011/europar/lstpseudo.sty
new file mode 100644
index 0000000000000000000000000000000000000000..fbbb07dc5e141c0a8b842b803d6ebadd125709dd
--- /dev/null
+++ b/doc/papers/2011/europar/lstpseudo.sty
@@ -0,0 +1,44 @@
+\lstdefinelanguage{pseudo}
+{
+    keywords=
+    {
+	AND,
+	BOOLEAN,
+	CONTINUE,
+	DEC,
+	DO,
+	EACH,
+	ELSE,
+	ELSIF,
+	END,
+	FALSE,
+	FOR,
+	FUNCTION,
+	IF,
+	IN,
+	INC,
+	INFINITY,
+	INTEGER,
+	IS,
+	MAX,
+	MIN,
+	NOT,
+	NULL,
+	OR,
+	POINTER,
+	PROCEDURE,
+	RECORD,
+	REPEAT,
+	RETURN,
+	THEN,
+	TO,
+	TRUE,
+	UNTIL,
+	WHILE
+    },
+    basicstyle={\fontencoding{T1}\fontfamily{pcr}\fontseries{m}\fontshape{sl}\fontsize{8}{10pt}\selectfont},
+    keywordstyle={\fontencoding{T1}\fontfamily{pcr}\fontseries{b}\fontshape{sl}\fontsize{8}{10pt}\selectfont},
+    commentstyle={\fontencoding{T1}\fontfamily{pcr}\fontseries{m}\fontshape{n}\fontsize{8}{10pt}\selectfont},
+    sensitive=true,
+    commentline={(*}
+}