% Arara, the cool TeX automation tool
% Copyright (c) 2012 -- 2020, Island of TeX
% All rights reserved.
%
% Redistribution and  use in source  and binary forms, with  or without
% modification, are  permitted provided  that the  following conditions
% are met:
%
% 1. Redistributions  of source  code must  retain the  above copyright
% notice, this list of conditions and the following disclaimer.
%
% 2. Redistributions in binary form  must reproduce the above copyright
% notice, this list  of conditions and the following  disclaimer in the
% documentation and/or other materials provided with the distribution.
%
% 3. Neither  the name  of the  project's author nor  the names  of its
% contributors may be used to  endorse or promote products derived from
% this software without specific prior written permission.
%
% THIS SOFTWARE IS  PROVIDED BY THE COPYRIGHT  HOLDERS AND CONTRIBUTORS
% "AS IS"  AND ANY  EXPRESS OR IMPLIED  WARRANTIES, INCLUDING,  BUT NOT
% LIMITED  TO, THE  IMPLIED WARRANTIES  OF MERCHANTABILITY  AND FITNESS
% FOR  A PARTICULAR  PURPOSE  ARE  DISCLAIMED. IN  NO  EVENT SHALL  THE
% COPYRIGHT HOLDER OR CONTRIBUTORS BE  LIABLE FOR ANY DIRECT, INDIRECT,
% INCIDENTAL, SPECIAL, EXEMPLARY,  OR CONSEQUENTIAL DAMAGES (INCLUDING,
% BUT  NOT LIMITED  TO, PROCUREMENT  OF SUBSTITUTE  GOODS OR  SERVICES;
% LOSS  OF USE,  DATA, OR  PROFITS; OR  BUSINESS INTERRUPTION)  HOWEVER
% CAUSED AND  ON ANY THEORY  OF LIABILITY, WHETHER IN  CONTRACT, STRICT
% LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY
% WAY  OUT  OF  THE USE  OF  THIS  SOFTWARE,  EVEN  IF ADVISED  OF  THE
% POSSIBILITY OF SUCH DAMAGE.
\NeedsTeXFormat{LaTeX2e}
\ProvidesPackage{arara}[2020/03/01 Arara User Manual Configuration]

\RequirePackage{tikz}
\RequirePackage{xcolor}
\RequirePackage{upquote}

\usetikzlibrary{patterns}

\definecolor{okcolour}{rgb}{0.09, 0.45, 0.27}
\definecolor{araracolour}{rgb}{0, 0.72, 0.28}
\definecolor{warningcolour}{rgb}{0.75, 0.09, 0}
\definecolor{attentioncolour}{rgb}{0.82, 0.86, 0.07}

\RequirePackage{tcolorbox}
\tcbuselibrary{skins}
\tcbuselibrary{breakable}
\tcbuselibrary{listings}

\RequirePackage{amsmath}
\RequirePackage{amssymb}
\RequirePackage{amsfonts}
\RequirePackage{kmath}
\RequirePackage{bookman}
\RequirePackage{comfortaa}
\RequirePackage[regular]{sourcecodepro}

\RequirePackage{fontawesome}

\RequirePackage{forest}
\useforestlibrary{edges}

\RequirePackage{enumitem}
\setlist[description]{font=\sffamily\bfseries,style=nextline,leftmargin=2em}

\RequirePackage{tabularx}
\newcolumntype{Y}{>{\centering\arraybackslash}X}

\RequirePackage[
  colorlinks,
  linkcolor={black},
  citecolor={araracolour},
  urlcolor={araracolour},
  pdfpagelabels
]{hyperref}

\newcommand{\araratext}[1]{{\normalfont\comfortaa\color{araracolour}\bfseries#1}}
\newcommand*\arara{\araratext{ar\kern-.03emar\kern-.03ema}}
\newcommand*\slogan{\araratext{The cool \TeX\ automation tool}}

\newcommand{\icattention}[1]{%
  \begin{scope}[
    y=0.80pt,
    x=0.80pt,
    yscale=-1.000000,
    xscale=1.000000,
    inner sep=0pt,
    outer sep=0pt,
    shift={([xshift=0.35em, yshift=0.31em]frame.north west)},
    scale=.11
  ]

    \path[fill=#1!5] (208.8560,104.4280) .. controls (208.8560,162.1050) and
      (162.1040,208.8610) .. (104.4270,208.8610) .. controls (46.7500,208.8610) and
      (0.0000,162.1050) .. (0.0000,104.4280) .. controls (0.0000,46.7540) and
      (46.7500,0.0000) .. (104.4270,0.0000) .. controls (162.1040,0.0000) and
      (208.8560,46.7540) .. (208.8560,104.4280) -- cycle;

    \begin{scope}[shift={(-46.415,-45.369)}]
      \path[fill=#1] (166.3660,93.4020) -- (165.8010,162.0250) --
        (137.0310,162.0250) -- (135.3300,93.4020) -- cycle;
      \path[fill=#1] (164.4210,200.6400) .. controls (160.6350,204.3420) and
        (156.0710,206.1950) .. (150.7290,206.1950) .. controls (145.1560,206.1950) and
        (140.5820,204.4020) .. (136.9930,200.8000) .. controls (133.3970,197.2110) and
        (131.6020,192.6350) .. (131.6020,187.0710) .. controls (131.6020,181.6690) and
        (133.4650,177.0890) .. (137.1910,173.3350) .. controls (140.9190,169.5810) and
        (145.4270,167.7130) .. (150.7290,167.7130) .. controls (156.0230,167.7130) and
        (160.5790,169.6260) .. (164.3730,173.4640) .. controls (168.1870,177.2980) and
        (170.0840,181.8620) .. (170.0840,187.1560) .. controls (170.0880,192.4580) and
        (168.1950,196.9410) .. (164.4210,200.6400) -- cycle;
    \end{scope}
  \end{scope}%
}

\newcommand{\icerror}[1]{%
  \begin{scope}[
    y=0.80pt,
    x=0.80pt,
    yscale=-1.000000,
    xscale=1.000000,
    inner sep=0pt,
    outer sep=0pt,
    shift={([xshift=0.35em, yshift=0.31em]frame.north west)},
    scale=.11
  ]

  \path[fill=#1!5] (104.4280,104.4280) circle (2.9472cm);
  \path[shift={(-46.913,-45.374)},fill=#1] (88.7990,180.6000) --
    (119.5860,149.8020) -- (88.7990,119.0130) -- (120.5410,87.2560) --
    (151.3380,118.0580) -- (182.1310,87.2560) -- (213.8780,119.0130) --
    (183.0770,149.8020) -- (213.8780,180.6000) -- (182.1310,212.3440) --
    (151.3380,181.5470) -- (120.5410,212.3440) -- cycle;
  \end{scope}%
}

\newcommand{\ichelp}[1]{%
  \begin{scope}[
    y=0.80pt,
    x=0.80pt,
    yscale=-1.000000,
    xscale=1.000000,
    inner sep=0pt,
    outer sep=0pt,
    shift={([xshift=0.35em, yshift=0.31em]frame.north west)},
    scale=.11
  ]

  \path[fill=#1!5] (209.4880,104.7460) .. controls (209.4880,162.5980) and
    (162.5940,209.4910) .. (104.7430,209.4910) .. controls (46.8930,209.4910) and
    (0.0000,162.5970) .. (0.0000,104.7460) .. controls (0.0000,46.8950) and
    (46.8930,0.0000) .. (104.7430,0.0000) .. controls (162.5940,0.0000) and
    (209.4880,46.8940) .. (209.4880,104.7460) -- cycle;
    \begin{scope}[shift={(-46.099,-45.188)}]
      \path[fill=#1] (164.9220,204.1480) .. controls (160.9950,207.9860) and
        (156.2530,209.9090) .. (150.7010,209.9090) .. controls (144.9260,209.9090) and
        (140.1760,208.0510) .. (136.4420,204.3170) .. controls (132.7170,200.5840) and
        (130.8520,195.8340) .. (130.8520,190.0560) .. controls (130.8520,184.4490) and
        (132.7830,179.6940) .. (136.6530,175.7990) .. controls (140.5190,171.9020) and
        (145.2050,169.9540) .. (150.6960,169.9540) .. controls (156.1910,169.9540) and
        (160.9140,171.9450) .. (164.8720,175.9240) .. controls (168.8230,179.9060) and
        (170.8020,184.6460) .. (170.8020,190.1410) .. controls (170.8070,195.6410) and
        (168.8440,200.3070) .. (164.9220,204.1480) -- cycle;
      \path[fill=#1] (172.9950,153.2160) .. controls (169.6370,154.9020) and
        (167.5810,156.3590) .. (166.8560,157.5930) .. controls (166.1250,158.8210) and
        (165.7700,161.4630) .. (165.7700,165.5020) -- (134.5650,165.5020) --
        (134.5650,160.1990) .. controls (134.5650,153.1880) and (135.3450,148.0140) ..
        (136.9200,144.6720) .. controls (138.4870,141.3370) and (141.3490,138.7460) ..
        (145.5030,136.8920) -- (151.2240,134.3740) .. controls (155.5440,132.4630) and
        (157.7010,129.7760) .. (157.7010,126.2960) .. controls (157.7010,124.2730) and
        (156.9890,122.5710) .. (155.5970,121.1590) .. controls (154.1980,119.7670) and
        (152.4800,119.0550) .. (150.4640,119.0550) .. controls (144.9690,119.0550) and
        (142.2170,122.8770) .. (142.2170,130.5000) -- (113.1980,130.5000) .. controls
        (113.1980,120.2900) and (115.5590,111.9670) .. (120.2680,105.5190) .. controls
        (123.7470,100.7520) and (128.2570,96.9670) .. (133.8090,94.1630) .. controls
        (139.3620,91.3630) and (145.1090,89.9550) .. (151.0550,89.9550) .. controls
        (161.6020,89.9550) and (170.4680,93.4510) .. (177.6770,100.4300) .. controls
        (184.8860,107.4090) and (188.4870,116.0620) .. (188.4870,126.3810) .. controls
        (188.4710,139.1080) and (183.3130,148.0590) .. (172.9950,153.2160) -- cycle;
    \end{scope}
  \end{scope}%
}

\newcommand{\icinfo}[1]{%
  \begin{scope}[
    y=0.80pt,
    x=0.80pt,
    yscale=-1.000000,
    xscale=1.000000,
    inner sep=0pt,
    outer sep=0pt,
    shift={([xshift=0.35em, yshift=0.31em]frame.north west)},
    scale=.11
  ]

    \path[fill=#1!5] (104.4310,104.4310) circle (2.9473cm);
    \begin{scope}[shift={(-46.694,-45.371)}]
      \path[fill=#1] (139.1560,93.9220) .. controls (142.1760,91.1310) and
      (145.7940,89.7390) .. (149.9850,89.7390) .. controls (154.1800,89.7390) and
      (157.7700,91.1310) .. (160.7780,93.9220) .. controls (163.7740,96.7260) and
      (165.2740,100.0830) .. (165.2740,104.0130) .. controls (165.2740,107.9440) and
      (163.7570,111.2920) .. (160.7340,114.0640) .. controls (157.7130,116.8320) and
      (154.1320,118.2150) .. (149.9850,118.2150) .. controls (145.8020,118.2150) and
      (142.1840,116.8360) .. (139.1560,114.0640) .. controls (136.1320,111.2930) and
      (134.6200,107.9440) .. (134.6200,104.0130) .. controls (134.6200,100.0830) and
      (136.1320,96.7260) .. (139.1560,93.9220) -- cycle;
    \path[fill=#1] (176.6040,209.8610) -- (127.5580,209.8610) --
      (127.5580,204.1980) .. controls (128.9050,204.0980) and (130.2210,203.9620) ..
      (131.5200,203.8090) .. controls (132.8070,203.6490) and (133.9220,203.3960) ..
      (134.8490,203.0310) .. controls (136.5140,202.4180) and (137.6730,201.5150) ..
      (138.3540,200.3520) .. controls (139.0200,199.1890) and (139.3650,197.6530) ..
      (139.3650,195.7360) -- (139.3650,150.5640) .. controls (139.3650,148.7550) and
      (138.9480,147.1710) .. (138.1260,145.7990) .. controls (137.2960,144.4190) and
      (136.2570,143.3160) .. (135.0180,142.4940) .. controls (134.0920,141.8760) and
      (132.6720,141.2790) .. (130.7910,140.7050) .. controls (128.9060,140.1400) and
      (127.1820,139.7830) .. (125.6330,139.6220) -- (125.6330,133.9630) --
      (163.6620,131.9450) -- (164.8250,133.1040) -- (164.8250,194.7240) .. controls
      (164.8250,196.5370) and (165.2180,198.0690) .. (165.9830,199.3400) .. controls
      (166.7650,200.6080) and (167.8730,201.5460) .. (169.3240,202.1750) .. controls
      (170.3590,202.6410) and (171.5070,203.0620) .. (172.7370,203.4140) .. controls
      (173.9850,203.7790) and (175.2720,204.0320) .. (176.6200,204.1920) --
      (176.6200,209.8590) -- (176.6040,209.8590) -- cycle;
    \end{scope}
  \end{scope}%
}

\newcommand{\icnote}[1]{%
  \begin{scope}[
    y=0.80pt,
    x=0.80pt,
    yscale=-1.000000,
    xscale=1.000000,
    inner sep=0pt,
    outer sep=0pt,
    shift={([xshift=0.35em, yshift=0.31em]frame.north west)},
    scale=.11
  ]

    \path[fill=#1!5] (104.4280,104.4280) circle (2.9472cm);
    \begin{scope}[shift={(-46.08801,-45.37)}]
      \path[fill=#1] (113.9190,187.9100) -- (127.1980,200.4160) --
        (109.7220,205.6600) -- (92.2560,210.9060) -- (96.4470,193.1470) --
        (100.6380,175.3930) -- cycle;
      \path[fill=#1] (133.3760,194.1100) -- (106.7160,169.1000) --
        (182.1210,88.6910) -- (208.7790,113.7040) -- cycle;
    \end{scope}
  \end{scope}%
}

\newcommand{\icok}[1]{%
  \begin{scope}[
    y=0.80pt,
    x=0.80pt,
    yscale=-1.000000,
    xscale=1.000000,
    inner sep=0pt,
    outer sep=0pt,
    shift={([xshift=0.35em, yshift=0.31em]frame.north west)},
    scale=.11
  ]

    \path[fill=#1!5] (209.4910,104.7440) .. controls (209.4910,162.5960) and
      (162.5940,209.4880) .. (104.7470,209.4880) .. controls (46.8950,209.4880) and
      (0.0000,162.5950) .. (0.0000,104.7440) .. controls (0.0000,46.8930) and
      (46.8950,0.0000) .. (104.7470,0.0000) .. controls (162.5930,-0.0010) and
      (209.4910,46.8930) .. (209.4910,104.7440) -- cycle;
    \path[shift={(-45.773,-45.19)},fill=#1] (219.0590,88.4660) --
      (137.2020,211.4010) -- (81.9780,125.9940) -- (81.9780,124.9200) --
      (133.7180,148.3000) -- cycle;
  \end{scope}%
}

% 1 -> title
% 2 -> frame colour
% 3 -> icon description
% 4 -> title colour
\newtcolorbox{messagebox}[4]{
  adjusted title=#1,
  adjusted title after break={\centering #1 (ctd.)},
  halign title=center,
  fonttitle=\bfseries\sffamily,
  enhanced,
  drop lifted shadow,
  colback=#2!5,
  colframe=#2,
  breakable,
  overlay={#3{#2}},
  toptitle=0.2em,
  bottomtitle=.2em,
  coltitle=#4,
  before skip=1em,
  after skip=1.4em
}

% 1 -> title
% 2 -> frame colour
% 3 -> icon description
% 4 -> title colour
\newtcblisting{codebox}[4]{
  adjusted title=#1,
  adjusted title after break={\centering #1 (ctd.)},
  halign title=center,
  fonttitle=\bfseries\sffamily,
  enhanced,
  drop lifted shadow,
  colback=#2!5,
  colframe=#2,
  breakable,
  overlay={#3{#2}},
  toptitle=0.2em,
  bottomtitle=.2em,
  coltitle=#4,
  before skip=1em,
  left=8mm,
  listing only,
  listing options={
    numbers=left,
    numberstyle=\scriptsize\sffamily\color{#2},
    basicstyle=\footnotesize\ttfamily,
  },
  after skip=1.4em
}

\newcommand{\addname}[2]{%
  \begin{scope}[
    y=0.80pt,
    x=0.80pt,
    yscale=-1.000000,
    xscale=1.000000,
    inner sep=0pt,
    outer sep=0pt,
    shift={([xshift=-0.8em, yshift=3.6em]frame.north east)},
  ]
  \node [anchor=east] {\rbox[#2]{#1}};
  \end{scope}
}

% 1 -> title
% 2 -> frame colour
% 3 -> icon description
% 4 -> title colour
% 5 -> code name
\newtcblisting{ncodebox}[5]{
  adjusted title=#1,
  adjusted title after break={\centering #1 (ctd.)},
  halign title=center,
  fonttitle=\bfseries\sffamily,
  enhanced,
  drop lifted shadow,
  colback=#2!5,
  colframe=#2,
  breakable,
  overlay={#3{#2}\addname{#5}{#2}},
  toptitle=0.2em,
  bottomtitle=.2em,
  coltitle=#4,
  before skip=1em,
  left=8mm,
  listing only,
  listing options={
    numbers=left,
    numberstyle=\scriptsize\sffamily\color{#2},
    basicstyle=\footnotesize\ttfamily,
  },
  after skip=1.4em
}

\newtcbox{\abox}[1][teal]{
  on line,
  arc=3pt,
  colback=#1!10,
  tcbox raise=-1.1mm,
  colframe=#1,
  before upper={
    \vphantom{dp}
  },
  boxrule=1pt,
  fontupper=\footnotesize\normalfont\ttfamily\color{#1},
  boxsep=0pt,
  left=2pt,
  right=2pt,
  top=1.6pt,
  bottom=0.8pt
}

\newtcbox{\rbox}[1][teal]{
  on line,
  arc=3pt,
  colback=#1,
  tcbox raise=-1.1mm,
  colframe=#1,
  before upper={
    \vphantom{dp}
  },
  boxrule=1pt,
  fontupper=\footnotesize\normalfont\ttfamily\color{#1!10},
  boxsep=0pt,
  left=2pt,
  right=2pt,
  top=1.6pt,
  bottom=0.8pt
}

\newcommand{\varbox}[1]{\rbox[araracolour]{$\diamondsuit$\,#1}}
\newcommand{\mtbox}[1]{\rbox{$\diamondsuit$\,#1}}
\newcommand{\prbox}[1]{\rbox[attentioncolour]{\color{black}$\rhd$\,#1}}
\newcommand{\opbox}[1]{\rbox[cyan]{\color{black}{-}#1}}
\newcommand{\cdbox}[1]{\rbox{$\star$\,#1}}
\newcommand{\describe}[2]{\rbox[araracolour]{#1}~%
\abox{#2}}
\newcommand{\describecontext}[3]{\rbox[araracolour]{#1}~%
\rbox{#2$\rightarrow$}~\abox{#3}}
\newcommand{\describecontextt}[4]{\rbox[araracolour]{#1}~%
\rbox[araracolour]{#2}~\rbox{#3$\rightarrow$}~\abox{#4}}
\newcommand{\describeconditional}[2]{\rbox[araracolour]%
{\normalfont\itshape\,\,#1\enspace}~\cdbox{#2}}
\newcommand{\describeop}[2]{\opbox{#1}~\opbox{{-}#2}}
\newcommand{\describeopp}[3]{\describeop{#1}{#2}~\prbox{#3}}
\newcommand{\describecf}[4]{\rbox[araracolour]{#1}~%
\rbox{\normalfont\itshape\,\,#2\enspace}~\abox{#3}%
\hfill{\normalfont\itshape default:} \rbox{#4}}
\newcommand{\describecfn}[3]{\rbox[araracolour]{#1}~%
\rbox{\normalfont\itshape\,\,#2\enspace}~\abox{#3}}
\newcommand{\rrbox}[1]{\rbox[araracolour]{$\triangle$\,#1}}
\newcommand{\ctbox}[1]{\rbox[cyan]{#1}}
\newcommand{\mdbox}[3]{\ctbox{#1}~\mtbox{#2}\hfill\rrbox{#3}}
\newcommand{\mddbox}[4]{\ctbox{#1}~\mdbox{#2}{#3}{#4}}
\newcommand{\mdddbox}[5]{\ctbox{#1}~\mddbox{#2}{#3}{#4}{#5}}

\renewcommand{\secheadstyle}{\Large\normalfont\em}
\renewcommand{\subsecheadstyle}{\large\normalfont\em}
\renewcommand{\subsubsecheadstyle}{\normalsize\normalfont\em}
\renewcommand{\paraheadstyle}{\normalsize\normalfont\em}
\renewcommand{\subparaheadstyle}{\normalsize\normalfont\em}
\renewcommand{\partnumfont}{\Large\comfortaa\bfseries}
\renewcommand{\partnamefont}{\Large\comfortaa\bfseries}
\renewcommand{\parttitlefont}{\Huge\normalfont\em}
\renewcommand{\booktitlefont}{\huge\normalfont\em}
\renewcommand{\booknamefont}{\huge\normalfont\em}
\renewcommand{\booknumfont}{\huge\normalfont\em}
\renewcommand{\printpartname}{\centering\includegraphics[scale=.3]{logos/bird.pdf}\par\partnamefont \textcolor{araracolour}{part}}
\renewcommand{\printpartnum}{\partnumfont\textcolor{araracolour}{\numtoname{\c@part}}}
\cftpagenumbersoff{part}
\renewcommand\partnumberline[1]{\hfil\hspace\@tocrmarg#1\hspace{0.5em}---\hspace{0.5em}}
\renewcommand*{\cftpartafterpnum}{}
\setlength\cftchapternumwidth{2em}
\setlength\cftsectionnumwidth{3em}

\renewcommand{\midpartskip}{\par\vskip 3.0\onelineskip}

\makechapterstyle{araraheadings}{%
  \setlength{\beforechapskip}{2\onelineskip}%
  \setlength{\afterchapskip}{1.5\onelineskip%
                            \@plus .1\onelineskip%
                            \@minus 0.167\onelineskip}%
  \renewcommand*{\chapnamefont}{\normalfont}%
  \renewcommand*{\printchaptername}{%
    \centering\includegraphics[scale=.15]{logos/bird.pdf}\par}%
  \renewcommand*{\chapnumfont}{\comfortaa\bfseries}%
  \renewcommand*{\printchapternum}{\centering \chapnumfont \ifanappendix
    \thechapter \else \textcolor{araracolour}{\numtoname{\c@chapter}}\fi}%
  \renewcommand*{\chaptitlefont}{\normalfont\itshape\huge\centering}%
  \renewcommand*{\printchapternonum}{%
    \centering\includegraphics[scale=.15]{logos/bird.pdf}\par%
    \vskip\midchapskip}%
}

\newcommand{\cbyes}[1]{%
\raisebox{#1pt}{\begin{tikzpicture}[
  y=0.80pt,
  x=0.80pt,
  yscale=-1.000000,
  xscale=1.000000,
  inner sep=0pt,
  outer sep=0pt,
  scale=.11
]
  \begin{scope}[
    shift={(-23.18884,-26.87932)}
  ]
    \path[line width=0.212pt,fill=araracolour] (56.2485,74.7821) -- (46.8029,84.2278) --
      (77.1638,114.5887) -- (144.6326,47.1199) -- (135.1870,37.6743) --
      (77.1638,95.6974) -- cycle(131.1388,134.8293) -- (36.6826,134.8293) --
      (36.6826,40.3731) -- (104.1513,40.3731) -- (104.1513,26.8793) --
      (36.6826,26.8793) .. controls (29.2610,26.8793) and (23.1888,32.9515) ..
      (23.1888,40.3731) -- (23.1888,134.8293) .. controls (23.1888,142.2509) and
      (29.2610,148.3231) .. (36.6826,148.3231) -- (131.1388,148.3231) .. controls
      (138.5604,148.3231) and (144.6326,142.2509) .. (144.6326,134.8293) --
      (144.6326,80.8543) -- (131.1388,80.8543) -- cycle;
      \begin{scope}[
        cm={{0.26458,0.0,0.0,0.26458,(23.18884,26.87932)}}
      ]
      \end{scope}
      \begin{scope}[
        cm={{0.26458,0.0,0.0,0.26458,(23.18884,26.87932)}}
      ]
      \end{scope}
      \begin{scope}[
        cm={{0.26458,0.0,0.0,0.26458,(23.18884,26.87932)}}
      ]
      \end{scope}
      \begin{scope}[
        cm={{0.26458,0.0,0.0,0.26458,(23.18884,26.87932)}}
      ]
      \end{scope}
      \begin{scope}[
        cm={{0.26458,0.0,0.0,0.26458,(23.18884,26.87932)}}
      ]
      \end{scope}
      \begin{scope}[
        cm={{0.26458,0.0,0.0,0.26458,(23.18884,26.87932)}}
      ]
      \end{scope}
      \begin{scope}[
        cm={{0.26458,0.0,0.0,0.26458,(23.18884,26.87932)}}
      ]
      \end{scope}
      \begin{scope}[
        cm={{0.26458,0.0,0.0,0.26458,(23.18884,26.87932)}}
      ]
      \end{scope}
      \begin{scope}[
        cm={{0.26458,0.0,0.0,0.26458,(23.18884,26.87932)}}
      ]
      \end{scope}
      \begin{scope}[
        cm={{0.26458,0.0,0.0,0.26458,(23.18884,26.87932)}}
      ]
      \end{scope}
      \begin{scope}[
        cm={{0.26458,0.0,0.0,0.26458,(23.18884,26.87932)}}
      ]
      \end{scope}
      \begin{scope}[
        cm={{0.26458,0.0,0.0,0.26458,(23.18884,26.87932)}}
      ]
      \end{scope}
      \begin{scope}[
        cm={{0.26458,0.0,0.0,0.26458,(23.18884,26.87932)}}
      ]
      \end{scope}
      \begin{scope}[
        cm={{0.26458,0.0,0.0,0.26458,(23.18884,26.87932)}}
      ]
      \end{scope}
      \begin{scope}[
        cm={{0.26458,0.0,0.0,0.26458,(23.18884,26.87932)}}
      ]
      \end{scope}
  \end{scope}
\end{tikzpicture}}}

\newcommand{\cbno}[1]{%
\raisebox{#1pt}{\begin{tikzpicture}[
  y=0.80pt,
  x=0.80pt,
  yscale=-1.000000,
  xscale=1.000000,
  inner sep=0pt,
  outer sep=0pt,
  scale=.11
]
  \begin{scope}[
    shift={(-23.18884,-26.87932)}
  ]
    \path[line width=0.212pt, fill=warningcolour] (131.1388,134.8293) -- (36.6826,134.8293) --
      (36.6826,40.3731) -- (104.1513,40.3731) -- (104.1513,26.8793) --
      (36.6826,26.8793) .. controls (29.2610,26.8793) and (23.1888,32.9515) ..
      (23.1888,40.3731) -- (23.1888,134.8293) .. controls (23.1888,142.2509) and
      (29.2610,148.3231) .. (36.6826,148.3231) -- (131.1388,148.3231) .. controls
      (138.5604,148.3231) and (144.6326,142.2509) .. (144.6326,134.8293) --
      (144.6326,80.8543) -- (131.1388,80.8543) -- cycle;
    \begin{scope}[
      cm={{0.26458,0.0,0.0,0.26458,(23.18884,26.87932)}}
    ]
    \end{scope}
    \begin{scope}[
      cm={{0.26458,0.0,0.0,0.26458,(23.18884,26.87932)}}
    ]
    \end{scope}
    \begin{scope}[
      cm={{0.26458,0.0,0.0,0.26458,(23.18884,26.87932)}}
    ]
    \end{scope}
    \begin{scope}[
      cm={{0.26458,0.0,0.0,0.26458,(23.18884,26.87932)}}
    ]
    \end{scope}
    \begin{scope}[
      cm={{0.26458,0.0,0.0,0.26458,(23.18884,26.87932)}}
    ]
    \end{scope}
    \begin{scope}[
      cm={{0.26458,0.0,0.0,0.26458,(23.18884,26.87932)}}
    ]
    \end{scope}
    \begin{scope}[
      cm={{0.26458,0.0,0.0,0.26458,(23.18884,26.87932)}}
    ]
    \end{scope}
    \begin{scope}[
      cm={{0.26458,0.0,0.0,0.26458,(23.18884,26.87932)}}
    ]
    \end{scope}
    \begin{scope}[
      cm={{0.26458,0.0,0.0,0.26458,(23.18884,26.87932)}}
    ]
    \end{scope}
    \begin{scope}[
      cm={{0.26458,0.0,0.0,0.26458,(23.18884,26.87932)}}
    ]
    \end{scope}
    \begin{scope}[
      cm={{0.26458,0.0,0.0,0.26458,(23.18884,26.87932)}}
    ]
    \end{scope}
    \begin{scope}[
      cm={{0.26458,0.0,0.0,0.26458,(23.18884,26.87932)}}
    ]
    \end{scope}
    \begin{scope}[
      cm={{0.26458,0.0,0.0,0.26458,(23.18884,26.87932)}}
    ]
    \end{scope}
    \begin{scope}[
      cm={{0.26458,0.0,0.0,0.26458,(23.18884,26.87932)}}
    ]
    \end{scope}
    \begin{scope}[
      cm={{0.26458,0.0,0.0,0.26458,(23.18884,26.87932)}}
    ]
    \end{scope}
  \end{scope}
\end{tikzpicture}}}

\newcommand{\uierror}[1]{%
\begin{tikzpicture}[
  y=0.80pt,
  x=0.80pt,
  yscale=-1.000000,
  xscale=1.000000,
  inner sep=0pt,
  outer sep=0pt,
  scale=2.5
]
  \begin{scope}[shift={(-8.53676,-270.7608)}]
    \begin{scope}[
      cm={{0.26458,0.0,0.0,0.26458,(8.53458,270.7608)}}
    ]
        \path [fill=#1]
          (46.1330,20.6880) .. controls (45.3520,19.9070) and (44.0860,19.9070) ..
          (43.3050,20.6880) -- (33.4060,30.5870) -- (23.5060,20.6880) .. controls
          (22.7250,19.9070) and (21.4590,19.9070) .. (20.6780,20.6880) .. controls
          (19.8970,21.4690) and (19.8970,22.7350) .. (20.6780,23.5160) --
          (30.5780,33.4150) -- (20.6780,43.3140) .. controls (19.8970,44.0950) and
          (19.8970,45.3610) .. (20.6780,46.1420) .. controls (21.0690,46.5330) and
          (21.5800,46.7280) .. (22.0920,46.7280) .. controls (22.6040,46.7280) and
          (23.1150,46.5330) .. (23.5060,46.1420) -- (33.4060,36.2430) --
          (43.3050,46.1420) .. controls (43.6960,46.5330) and (44.2070,46.7280) ..
          (44.7190,46.7280) .. controls (45.2310,46.7280) and (45.7420,46.5330) ..
          (46.1330,46.1420) .. controls (46.9140,45.3610) and (46.9140,44.0950) ..
          (46.1330,43.3140) -- (36.2340,33.4150) -- (46.1330,23.5160) .. controls
          (46.9140,22.7350) and (46.9140,21.4680) .. (46.1330,20.6880) -- cycle;
        \path [fill=#1]
          (57.1070,9.8000) .. controls (50.7880,3.4810) and (42.3860,0.0000) ..
          (33.4490,0.0000) .. controls (24.5120,0.0000) and (16.1120,3.4800) ..
          (9.7920,9.8000) .. controls (-3.2530,22.8450) and (-3.2530,44.0710) ..
          (9.7920,57.1150) .. controls (16.1100,63.4340) and (24.5130,66.9150) ..
          (33.4490,66.9150) .. controls (42.3870,66.9150) and (50.7890,63.4350) ..
          (57.1080,57.1150) .. controls (63.4270,50.7970) and (66.9070,42.3940) ..
          (66.9070,33.4570) .. controls (66.9060,24.5210) and (63.4260,16.1190) ..
          (57.1070,9.8000) -- cycle(54.2810,54.2870) .. controls (48.7170,59.8500) and
          (41.3190,62.9150) .. (33.4500,62.9150) .. controls (25.5820,62.9150) and
          (18.1840,59.8510) .. (12.6210,54.2870) .. controls (1.1360,42.8020) and
          (1.1360,24.1130) .. (12.6210,12.6280) .. controls (18.1850,7.0640) and
          (25.5810,4.0000) .. (33.4490,4.0000) .. controls (41.3170,4.0000) and
          (48.7150,7.0640) .. (54.2780,12.6270) .. controls (59.8410,18.1900) and
          (62.9060,25.5880) .. (62.9070,33.4570) .. controls (62.9070,41.3260) and
          (59.8440,48.7240) .. (54.2810,54.2870) -- cycle;
    \end{scope}
  \end{scope}
\end{tikzpicture}}

\newcommand{\uiwarning}[1]{%
\begin{tikzpicture}[
  y=0.80pt,
  x=0.80pt,
  yscale=-1.000000,
  xscale=1.000000,
  inner sep=0pt,
  outer sep=0pt,
  scale=2.55
]
  \begin{scope}[
    shift={(-8.53676,-270.7608)}
  ]
    \begin{scope}[
      cm={{0.26458,0.0,0.0,0.26458,(8.78795,271.01414)}}
    ]
        \path [fill=#1]
          (32.5000,65.0000) .. controls (50.4200,65.0000) and (65.0000,50.4210) ..
          (65.0000,32.5000) .. controls (65.0000,14.5790) and (50.4200,0.0000) ..
          (32.5000,0.0000) .. controls (14.5800,0.0000) and (0.0000,14.5790) ..
          (0.0000,32.5000) .. controls (0.0000,50.4210) and (14.5800,65.0000) ..
          (32.5000,65.0000) -- cycle(32.5000,4.0000) .. controls (48.2150,4.0000) and
          (61.0000,16.7850) .. (61.0000,32.5000) .. controls (61.0000,48.2150) and
          (48.2150,61.0000) .. (32.5000,61.0000) .. controls (16.7850,61.0000) and
          (4.0000,48.2150) .. (4.0000,32.5000) .. controls (4.0000,16.7850) and
          (16.7850,4.0000) .. (32.5000,4.0000) -- cycle;
        \path [fill=#1] (33.0180,43.6550) circle (0.0944cm);
        \path [fill=#1]
          (32.3320,35.3420) .. controls (33.4360,35.3420) and (34.3320,34.4460) ..
          (34.3320,33.3420) -- (34.3320,16.3420) .. controls (34.3320,15.2380) and
          (33.4360,14.3420) .. (32.3320,14.3420) .. controls (31.2280,14.3420) and
          (30.3320,15.2380) .. (30.3320,16.3420) -- (30.3320,33.3420) .. controls
          (30.3320,34.4460) and (31.2280,35.3420) .. (32.3320,35.3420) -- cycle;
    \end{scope}
  \end{scope}
\end{tikzpicture}}

\newcommand{\uiinfo}[1]{%
\begin{tikzpicture}[
  y=0.80pt,
  x=0.80pt,
  yscale=-1.000000,
  xscale=1.000000,
  inner sep=0pt,
  outer sep=0pt,
  scale=2.55]
  \begin{scope}[
    shift={(-8.53676,-270.7608)}
  ]
    \begin{scope}[
      cm={{0.26458,0.0,0.0,0.26458,(8.78795,271.01414)}}
    ]
        \path [fill=#1]
          (32.5000,0.0000) .. controls (14.5800,0.0000) and (0.0000,14.5790) ..
          (0.0000,32.5000) .. controls (0.0000,50.4210) and (14.5800,65.0000) ..
          (32.5000,65.0000) .. controls (50.4200,65.0000) and (65.0000,50.4210) ..
          (65.0000,32.5000) .. controls (65.0000,14.5790) and (50.4200,0.0000) ..
          (32.5000,0.0000) -- cycle(32.5000,61.0000) .. controls (16.7850,61.0000) and
          (4.0000,48.2150) .. (4.0000,32.5000) .. controls (4.0000,16.7850) and
          (16.7850,4.0000) .. (32.5000,4.0000) .. controls (48.2150,4.0000) and
          (61.0000,16.7850) .. (61.0000,32.5000) .. controls (61.0000,48.2150) and
          (48.2150,61.0000) .. (32.5000,61.0000) -- cycle;
        \path [fill=#1] (33.0180,19.5410) circle (0.0944cm);
        \path [fill=#1]
          (32.1370,28.3420) .. controls (31.0330,28.3420) and (30.1370,29.2380) ..
          (30.1370,30.3420) -- (30.1370,47.3420) .. controls (30.1370,48.4460) and
          (31.0330,49.3420) .. (32.1370,49.3420) .. controls (33.2410,49.3420) and
          (34.1370,48.4460) .. (34.1370,47.3420) -- (34.1370,30.3420) .. controls
          (34.1370,29.2370) and (33.2410,28.3420) .. (32.1370,28.3420) -- cycle;
    \end{scope}
  \end{scope}
\end{tikzpicture}}

\newcommand{\uiplain}[1]{%
\begin{tikzpicture}[
  y=0.80pt,
  x=0.80pt,
  yscale=-1.000000,
  xscale=1.000000,
  inner sep=0pt,
  outer sep=0pt,
  scale=2.55]
  \begin{scope}[
    shift={(-8.53676,-270.7608)}
  ]
    \begin{scope}[
      cm={{0.26458,0.0,0.0,0.26458,(8.78795,271.01414)}}
    ]
      \path [fill=#1]
        (32.5000,65.0000) .. controls (50.4200,65.0000) and (65.0000,50.4210) ..
        (65.0000,32.5000) .. controls (65.0000,14.5790) and (50.4200,0.0000) ..
        (32.5000,0.0000) .. controls (14.5800,0.0000) and (0.0000,14.5790) ..
        (0.0000,32.5000) .. controls (0.0000,50.4210) and (14.5800,65.0000) ..
        (32.5000,65.0000) -- cycle(32.5000,4.0000) .. controls (48.2150,4.0000) and
        (61.0000,16.7850) .. (61.0000,32.5000) .. controls (61.0000,48.2150) and
        (48.2150,61.0000) .. (32.5000,61.0000) .. controls (16.7850,61.0000) and
        (4.0000,48.2150) .. (4.0000,32.5000) .. controls (4.0000,16.7850) and
        (16.7850,4.0000) .. (32.5000,4.0000) -- cycle;
    \end{scope}
    \begin{scope}[cm={{0.26458,0.0,0.0,0.26458,(8.78795,271.01414)}}]
    \end{scope}
    \begin{scope}[cm={{0.26458,0.0,0.0,0.26458,(8.78795,271.01414)}}]
    \end{scope}
    \begin{scope}[cm={{0.26458,0.0,0.0,0.26458,(8.78795,271.01414)}}]
    \end{scope}
    \begin{scope}[cm={{0.26458,0.0,0.0,0.26458,(8.78795,271.01414)}}]
    \end{scope}
    \begin{scope}[cm={{0.26458,0.0,0.0,0.26458,(8.78795,271.01414)}}]
    \end{scope}
    \begin{scope}[cm={{0.26458,0.0,0.0,0.26458,(8.78795,271.01414)}}]
    \end{scope}
    \begin{scope}[cm={{0.26458,0.0,0.0,0.26458,(8.78795,271.01414)}}]
    \end{scope}
    \begin{scope}[cm={{0.26458,0.0,0.0,0.26458,(8.78795,271.01414)}}]
    \end{scope}
    \begin{scope}[cm={{0.26458,0.0,0.0,0.26458,(8.78795,271.01414)}}]
    \end{scope}
    \begin{scope}[cm={{0.26458,0.0,0.0,0.26458,(8.78795,271.01414)}}]
    \end{scope}
    \begin{scope}[cm={{0.26458,0.0,0.0,0.26458,(8.78795,271.01414)}}]
    \end{scope}
    \begin{scope}[cm={{0.26458,0.0,0.0,0.26458,(8.78795,271.01414)}}]
    \end{scope}
    \begin{scope}[cm={{0.26458,0.0,0.0,0.26458,(8.78795,271.01414)}}]
    \end{scope}
    \begin{scope}[cm={{0.26458,0.0,0.0,0.26458,(8.78795,271.01414)}}]
    \end{scope}
    \begin{scope}[cm={{0.26458,0.0,0.0,0.26458,(8.78795,271.01414)}}]
    \end{scope}
  \end{scope}
\end{tikzpicture}}

\newcommand{\uiquestion}[1]{%
\begin{tikzpicture}[
  y=0.80pt,
  x=0.80pt,
  yscale=-1.000000,
  xscale=1.000000,
  inner sep=0pt,
  outer sep=0pt,
  scale=2.55
]
  \begin{scope}[
    shift={(-8.53676,-270.7608)}
  ]
    \begin{scope}[
      cm={{0.26458,0.0,0.0,0.26458,(8.78795,271.01414)}}
    ]
        \path [fill=#1]
          (32.5000,0.0000) .. controls (14.5790,0.0000) and (0.0000,14.5790) ..
          (0.0000,32.5000) .. controls (0.0000,50.4210) and (14.5790,65.0000) ..
          (32.5000,65.0000) .. controls (50.4210,65.0000) and (65.0000,50.4210) ..
          (65.0000,32.5000) .. controls (65.0000,14.5790) and (50.4210,0.0000) ..
          (32.5000,0.0000) -- cycle(32.5000,61.0000) .. controls (16.7850,61.0000) and
          (4.0000,48.2150) .. (4.0000,32.5000) .. controls (4.0000,16.7850) and
          (16.7850,4.0000) .. (32.5000,4.0000) .. controls (48.2150,4.0000) and
          (61.0000,16.7850) .. (61.0000,32.5000) .. controls (61.0000,48.2150) and
          (48.2150,61.0000) .. (32.5000,61.0000) -- cycle;
        \path [fill=#1] (33.0170,49.5410) circle (0.0944cm);
        \path [fill=#1]
          (32.3850,12.7890) .. controls (29.3180,12.7890) and (26.3630,14.0890) ..
          (24.0650,16.4490) .. controls (23.2940,17.2410) and (23.3110,18.5070) ..
          (24.1020,19.2770) .. controls (24.8930,20.0480) and (26.1610,20.0310) ..
          (26.9300,19.2400) .. controls (28.4690,17.6590) and (30.4070,16.7890) ..
          (32.3850,16.7890) .. controls (36.7110,16.7890) and (40.2310,20.2300) ..
          (40.2310,24.4600) .. controls (40.2310,28.5450) and (36.4230,32.1280) ..
          (32.3690,32.1280) .. controls (31.2650,32.1280) and (30.1190,33.0240) ..
          (30.1190,34.1280) -- (30.1190,41.3420) .. controls (30.1190,42.4460) and
          (31.0150,43.3420) .. (32.1190,43.3420) .. controls (33.2230,43.3420) and
          (34.1190,42.4460) .. (34.1190,41.3420) -- (34.1190,35.9460) .. controls
          (40.1190,34.9620) and (43.9810,30.1010) .. (43.9810,24.4600) .. controls
          (43.9800,18.0240) and (38.9170,12.7890) .. (32.3850,12.7890) -- cycle;
    \end{scope}
  \end{scope}
\end{tikzpicture}}

\newcommand{\uimethod}[1]{\begin{minipage}{1\textwidth}
\vspace*{.5em}
\hspace{1em}\includegraphics[scale=1.9]{figures/#1.pdf}
\vspace{.5em}
\end{minipage}}

\newcommand{\rulebox}[1]{\rbox{#1}}
\newcommand{\rpbox}[2]{\abox{#1}\hfill%
{\normalfont\itshape default:} \rbox[cyan]{#2}}
\newcommand{\rpsbox}[1]{\abox{#1}~%
\rbox[araracolour]{S}}

\newcommand{\povalue}[1]{\rbox[cyan]{#1}}
\newcommand{\rqbox}{\rbox[araracolour]{R}}
