From 36b2c127c10ab29f62542019b60d51fc3b02df46 Mon Sep 17 00:00:00 2001
From: Eric Cano <Eric.Cano@cern.ch>
Date: Wed, 3 Jul 2013 15:59:32 +0000
Subject: [PATCH] Created a pdf documentation, based on the CASTOR
 documentation template. Used Latex as in CASTOR. Imported the castordoc.cls
 from CASTOR. Fixed left/right page footer mix-up. Imported package
 UseLATEX.cmake to allow its compilation. Started development of a
 SCSI::Device (incomplete). Updated location of the Doxygen configuration
 file. Added compilation of documentation and Doxygen by default in rpm build.

---
 CMakeLists.txt                           |    8 +-
 Documentation/CMakeLists.txt             |    6 +
 Documentation/ProgrammersManual.tex      |   66 +
 Documentation/TapeServer.tex             |   25 +
 Documentation/castordoc.cls              |  227 +++
 Documentation/images/CASTOR_logo_250.eps | 2299 ++++++++++++++++++++++
 Documentation/images/CASTOR_logo_250.png |  Bin 0 -> 12947 bytes
 Documentation/images/cern_logo.eps       |  569 ++++++
 Documentation/images/cern_logo.gif       |  Bin 0 -> 1803 bytes
 Doxyfile.in                              |    3 +-
 Drive/Drive.hh                           |    2 +
 Drive/DriveTest.cc                       |    4 +
 SCSI/Constants.hh                        |  198 ++
 SCSI/Device.cc                           |    5 +
 SCSI/Device.hh                           |   34 +-
 SCSI/DeviceTest.cc                       |    3 +-
 Utils/RegexTest.cc                       |    5 +
 cmake/UseLATEX.cmake                     | 1342 +++++++++++++
 tape-server.spec                         |    4 +-
 19 files changed, 4770 insertions(+), 30 deletions(-)
 create mode 100644 Documentation/CMakeLists.txt
 create mode 100644 Documentation/ProgrammersManual.tex
 create mode 100644 Documentation/TapeServer.tex
 create mode 100644 Documentation/castordoc.cls
 create mode 100644 Documentation/images/CASTOR_logo_250.eps
 create mode 100644 Documentation/images/CASTOR_logo_250.png
 create mode 100644 Documentation/images/cern_logo.eps
 create mode 100644 Documentation/images/cern_logo.gif
 create mode 100644 SCSI/Constants.hh
 create mode 100644 cmake/UseLATEX.cmake

diff --git a/CMakeLists.txt b/CMakeLists.txt
index b5f0aca565..e62ed1ae19 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -85,9 +85,13 @@ set (CMAKE_CXX_FLAGS “${CMAKE_CXX_FLAGS} -Wall -Werror -pedantic”)
 find_package(Doxygen)
 if(DOXYGEN_FOUND)
   configure_file(${CMAKE_CURRENT_SOURCE_DIR}/Doxyfile.in ${CMAKE_CURRENT_BINARY_DIR}/Doxyfile @ONLY)
-  add_custom_target(doc
+  add_custom_target(doxygen
     ${DOXYGEN_EXECUTABLE} ${CMAKE_CURRENT_BINARY_DIR}/Doxyfile
     WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
     COMMENT "Generating API documentation with Doxygen" VERBATIM
 )
-endif(DOXYGEN_FOUND)
\ No newline at end of file
+endif(DOXYGEN_FOUND)
+
+INCLUDE(cmake/UseLATEX.cmake)
+
+add_subdirectory(Documentation)
diff --git a/Documentation/CMakeLists.txt b/Documentation/CMakeLists.txt
new file mode 100644
index 0000000000..b1eef57436
--- /dev/null
+++ b/Documentation/CMakeLists.txt
@@ -0,0 +1,6 @@
+ADD_LATEX_DOCUMENT(
+TapeServer.tex
+INPUTS ProgrammersManual.tex
+IMAGE_DIRS images
+NO_DEFAULT MANGLE_TARGET_NAMES)
+
diff --git a/Documentation/ProgrammersManual.tex b/Documentation/ProgrammersManual.tex
new file mode 100644
index 0000000000..c37cc8eec9
--- /dev/null
+++ b/Documentation/ProgrammersManual.tex
@@ -0,0 +1,66 @@
+\chapter*{Preface}
+
+The Tape server project is targeted at replacing the CASTOR tape server with a new drop-{}in reimplementation. The reimplementation will replace a legacy implementation that is written in C.
+
+% ------- 
+% Chapter 
+% ------- 
+
+\chapter{Developer's manual}
+
+\section{Targeted environment}
+
+CERN SLC5 and SLC6, 64bits. Although it should compile in theory, the 32 bits version is not tested. [ TODO: prevent 32 bits compilation ]
+
+\section{Reference documentations}
+
+The SCSI commands can be found in the SCSI section of hackipedia:
+ \href{http://hackipedia.org/Hardware/SCSI/}{http://hackipedia.org/Hardware/SCSI/}. 
+The most significant sections for tape server development are the stream commands
+ \href{http://hackipedia.org/Hardware/SCSI/Stream%20Commands/SCSI%20Stream%20Commands%20-%203.pdf}{
+    http://hackipedia.org/Hardware/SCSI/Stream Commands/SCSI Stream Commands - 3.pdf} and the 
+\href{http://hackipedia.org/Hardware/SCSI/Primary%20Commands/SCSI%20Primary%20Commands%20-%204.pdf}{SCSI primary commands}.
+
+On the Linux side, the main references are the Linux SCSI Generic (sg) HOWTO 
+ \href{http://tldp.org/HOWTO/SCSI-Generic-HOWTO/index.html}{  http://tldp.org/\-HOWTO/\-SCSI-{}Generic-{}HOWTO/\-index.html  }    , and ... TBC.
+
+http://sg.danny.cz/sg/sg\_io.html
+
+http://sg.danny.cz/sg/index.html
+
+\section{Tools used during development}
+
+\subsection{ Required tools for build}
+\begin{itemize}
+
+\item{}GCC/G++ (Basic SLC version)
+
+
+\item{}CMake (Basic SLC version)
+
+
+\item{}rpmbuild (Basic SLC version)
+
+\end{itemize}
+
+Google Mock/Google test (GTest is provided in EPEL repository for SLC. GMock requires recompilation (TODO: link to source)
+
+Valgrind (Basic SLC version)
+
+Docbook (Basic SLC version)
+
+Doxygen for code documentation
+
+\subsection{Tools used during development}
+\begin{itemize}
+
+\item{}TeamCity for continuous integration
+
+
+\item{}NetBeans as an IDE, including for remote development
+
+Syntext Serna Free for docbook documents edition
+
+\end{itemize}
+
+\end{document}
diff --git a/Documentation/TapeServer.tex b/Documentation/TapeServer.tex
new file mode 100644
index 0000000000..b8b5bb390b
--- /dev/null
+++ b/Documentation/TapeServer.tex
@@ -0,0 +1,25 @@
+\documentclass{castordoc}
+%\usepackage{url}
+% For clickable links and good readability using dvipdf
+\usepackage{times}
+\usepackage{color}
+\usepackage[ps2pdf,colorlinks=true,linkcolor=webred]{hyperref}
+\definecolor{webred}{rgb}{0.5,0,0}
+
+\begin{document}
+\doctyp{CASTOR Tape Server Documentation}
+\dociss{1}
+\docrev{0}
+\docref{http://www.cern.ch/castor}
+\doccre{Wed July 3\textsuperscript{rd}, 2013}
+
+\docmod{\today}
+
+\title{Tape Server's Handbook}
+\author{CASTOR development team}
+\maketitle
+\tableofcontents
+
+\input{ProgrammersManual}
+
+\end{document}
diff --git a/Documentation/castordoc.cls b/Documentation/castordoc.cls
new file mode 100644
index 0000000000..3a6286d731
--- /dev/null
+++ b/Documentation/castordoc.cls
@@ -0,0 +1,227 @@
+%
+% castordoc.cls
+%
+% LaTeX style for castor documentation
+%
+% written by sebastien.ponce@cern.ch, inspired from
+% lhcbnote.cls (See http://lhcb-comp.web.cern.ch/lhcb-comp/Support/LateX/lhcbnote.tex)
+%
+\NeedsTeXFormat{LaTeX2e}
+\ProvidesClass{castordoc}[]
+\LoadClass[twoside,a4paper]{report}
+\RequirePackage{calc}
+\RequirePackage{array}
+\RequirePackage{a4wide}
+\RequirePackage{fancyhdr}
+\RequirePackage{graphicx}
+\renewcommand\chapter{\if@openright\cleardoublepage\else\clearpage\fi
+                    \thispagestyle{fancy}%
+                    \global\@topnum\z@
+                    \@afterindentfalse
+                    \secdef\@chapter\@schapter}
+
+\def\@docref{\mbox{-}}
+\def\@docrev{\mbox{-}}
+\def\@dociss{\mbox{-}}
+\def\@docmod{\mbox{-}}
+\def\@doccre{\mbox{-}}
+\def\@doctyp{\mbox{}}
+\newcommand{\docref}[1]{\def\@docref{\mbox{#1}}}
+\newcommand{\docrev}[1]{\def\@docrev{\mbox{#1}}}
+\newcommand{\dociss}[1]{\def\@dociss{\mbox{#1}}}
+\newcommand{\docmod}[1]{\def\@docmod{\mbox{#1}}}
+\newcommand{\doccre}[1]{\def\@doccre{\mbox{#1}}}
+\newcommand{\doctyp}[1]{\def\@doctyp{\mbox{#1}}}
+
+\setlength{\voffset}{-1in}
+\setlength{\headheight}{2cm}
+\renewcommand{\footrulewidth}{0.4pt}
+\addtolength{\textheight}{1cm}
+%%
+\def\ps@myheadings{%
+    \let\@oddfoot\@empty\let\@evenfoot\@empty
+    \def\@evenhead{\thepage\hfil\slshape\leftmark}%
+    \def\@oddhead{{\slshape\rightmark}\hfil\thepage}%
+    \let\@mkboth\@gobbletwo
+    \let\chaptermark\@gobble
+    \let\sectionmark\@gobble
+    }
+  \if@titlepage
+    \renewcommand\maketitle{\begin{titlepage}%
+      \let\footnotesize\small
+      \let\footnoterule\relax
+      \let \footnote \thanks
+      \includegraphics{images/cern_logo} \hfill
+      \includegraphics{images/CASTOR_logo_250}
+      \null\vfil
+      \vskip 60\p@
+      \begin{center}%
+        {\Huge \@title \par}%
+        \vskip 3em%
+          {\large
+           \lineskip .75em%
+           \begin{tabular}[t]{c}%
+             \@author
+           \end{tabular}\par}%
+        \vskip 1.5em%
+        {\large \@date \par}%       % Set date in \large size.
+      \end{center}\par
+      \@thanks
+      \vfil\null
+	{\Large \@doctyp}
+
+	\begin{tabular}[b]{ll}
+          Issue :         & \@dociss \\
+          Revision :      & \@docrev \\
+          Reference :     & \@docref \\
+          Created :       & \@doccre \\
+          Last modified : & \@docmod \\
+	\end{tabular}
+      \end{titlepage}%
+      \setcounter{footnote}{0}%
+      \global\let\thanks\relax
+      \global\let\maketitle\relax
+      \global\let\@thanks\@empty
+      \global\let\@author\@empty
+      \global\let\@date\@empty
+      \global\let\@title\@empty
+      \global\let\title\relax
+      \global\let\author\relax
+      \global\let\date\relax
+      \global\let\and\relax}
+  \else
+    \renewcommand\maketitle{\par
+      \begingroup
+        \renewcommand\thefootnote{\@fnsymbol\c@footnote}%
+        \def\@makefnmark{\rlap{\@textsuperscript{\normalfont\@thefnmark}}}%
+        \long\def\@makefntext##1{\parindent 1em\noindent
+              \hb@xtt@1.8em{%
+                  \hss\@textsuperscript{\normalfont\@thefnmark}}##1}%
+        \if@twocolumn
+          \ifnum \col@number=\@ne
+            \@maketitle
+          \else
+            \twocolumn[\@maketitle]%
+          \fi
+        \else
+          \newpage
+          \global\@topnum\z@   % Prevents figures from going at top of page.
+          \@maketitle
+        \fi
+        \thispagestyle{plain}\@thanks
+      \endgroup
+      \setcounter{footnote}{0}%
+      \global\let\thanks\relax
+      \global\let\maketitle\relax
+      \global\let\@maketitle\relax
+      \global\let\@thanks\@empty
+      \global\let\@author\@empty
+      \global\let\@date\@empty
+      \global\let\@title\@empty
+      \global\let\title\relax
+      \global\let\author\relax
+      \global\let\date\relax
+      \global\let\and\relax}
+    \def\@maketitle{%
+      \newpage
+      \null
+      \vskip 2em%
+      \begin{center}%
+        \let \footnote \thanks
+        {\HUGE \@title \par}%
+        \vskip 1.5em%
+        {\large
+         \lineskip .5em%
+         \begin{tabular}[t]{c}%
+           \@author
+         \end{tabular}\par}%
+        \vskip 1em%
+        {\large \@date}%
+      \end{center}%
+      \par
+      \vskip 1.5em}
+  \fi
+
+
+\pagestyle{fancy}
+\addtolength{\headwidth}{\marginparsep}
+\addtolength{\headwidth}{\marginparwidth}
+\newcommand{\clearemptydoublepage}{\newpage{\pagestyle{empty}\cleardoublepage}}
+\renewcommand{\chaptermark}[1]{\markboth{#1}{}}
+\renewcommand{\sectionmark}[1]{\markright{\thesection\ #1}}
+\rhead[\fancyplain{}{\bfseries\scriptsize\mbox{%
+              \begin{tabular}{@{}l@{}}
+              Title: \@title \@author\\%
+              \@doctyp\\%
+              Issue: \@dociss\\%
+              \leftmark\end{tabular}}}]
+        {\fancyplain{}{\bfseries\scriptsize\mbox{%
+              \begin{tabular}{@{}l@{}}
+              \setlength{\tabcolsep}{0pt}%
+              \@title\\%
+              \@doctyp\\%
+              Issue: \@dociss\\%
+              \leftmark\end{tabular}}}}
+\lhead[\fancyplain{}{\bfseries\scriptsize\mbox{%
+              \begin{tabular}{@{}lr@{}}%
+                Reference:     & \@docref\\% 
+                Revision:      & \@docrev\\%
+                Last modified: & \@docmod\\
+                               &\end{tabular}}}]
+        {\fancyplain{}{\bfseries\scriptsize\mbox{%
+              \begin{tabular}{@{}lr@{}}%
+                Reference:     & \@docref\\% 
+                Revision:      & \@docrev\\%
+                Last modified: & \@docmod\\
+                               &\end{tabular}}}}
+\lfoot[\fancyplain{}{\bfseries\scriptsize page \thepage}]{}
+\rfoot[]{\fancyplain{}{\bfseries\scriptsize page \thepage}}
+\cfoot{}
+\newenvironment{CompactList}
+{\begin{list}{}{
+  \setlength{\leftmargin}{0.5cm}
+  \setlength{\itemsep}{0pt}
+  \setlength{\parsep}{0pt}
+  \setlength{\topsep}{0pt}
+  \renewcommand{\makelabel}{}}}
+{\end{list}}
+\newenvironment{CompactItemize}
+{
+  \begin{itemize}
+  \setlength{\itemsep}{-3pt}
+  \setlength{\parsep}{0pt}
+  \setlength{\topsep}{0pt}
+  \setlength{\partopsep}{0pt}
+}
+{\end{itemize}}
+\newcommand{\PBS}[1]{\let\temp=\\#1\let\\=\temp}
+\newlength{\tmplength}
+\newenvironment{TabularC}[1]
+{
+\setlength{\tmplength}
+     {\linewidth/(#1)-\tabcolsep*2-\arrayrulewidth*(#1+1)/(#1)}
+      \par\begin{tabular*}{\linewidth}
+             {*{#1}{|>{\PBS\raggedright\hspace{0pt}}p{\the\tmplength}}|}
+}
+{\end{tabular*}\par}
+\newcommand{\entrylabel}[1]{
+   {\parbox[b]{\labelwidth-4pt}{\makebox[0pt][l]{\textbf{#1}}\\}}}
+\newenvironment{Desc}
+{\begin{list}{}
+  {
+    \settowidth{\labelwidth}{40pt}
+    \setlength{\leftmargin}{\labelwidth}
+    \setlength{\parsep}{0pt}
+    \setlength{\itemsep}{-4pt}
+    \renewcommand{\makelabel}{\entrylabel}
+  }
+}
+{\end{list}}
+\newenvironment{Indent}
+  {\begin{list}{}{\setlength{\leftmargin}{0.5cm}}
+      \item[]\ignorespaces}
+  {\unskip\end{list}}
+\setlength{\parindent}{0cm}
+\setlength{\parskip}{0.2cm}
+\addtocounter{secnumdepth}{2}
+\sloppy
diff --git a/Documentation/images/CASTOR_logo_250.eps b/Documentation/images/CASTOR_logo_250.eps
new file mode 100644
index 0000000000..ce0402dba8
--- /dev/null
+++ b/Documentation/images/CASTOR_logo_250.eps
@@ -0,0 +1,2299 @@
+%!PS-Adobe-3.0 EPSF-3.0
+%%Creator: (ImageMagick)
+%%Title: (images/CASTOR_logo_250.eps)
+%%CreationDate: (Wed Jul  3 16:15:08 2013)
+%%BoundingBox: 0 0 236 92
+%%HiResBoundingBox: 0 0 236.22 92
+%%DocumentData: Clean7Bit
+%%LanguageLevel: 1
+%%Pages: 1
+%%EndComments
+
+%%BeginDefaults
+%%EndDefaults
+
+%%BeginProlog
+%
+% Display a color image.  The image is displayed in color on
+% Postscript viewers or printers that support color, otherwise
+% it is displayed as grayscale.
+%
+/DirectClassPacket
+{
+  %
+  % Get a DirectClass packet.
+  %
+  % Parameters:
+  %   red.
+  %   green.
+  %   blue.
+  %   length: number of pixels minus one of this color (optional).
+  %
+  currentfile color_packet readhexstring pop pop
+  compression 0 eq
+  {
+    /number_pixels 3 def
+  }
+  {
+    currentfile byte readhexstring pop 0 get
+    /number_pixels exch 1 add 3 mul def
+  } ifelse
+  0 3 number_pixels 1 sub
+  {
+    pixels exch color_packet putinterval
+  } for
+  pixels 0 number_pixels getinterval
+} bind def
+
+/DirectClassImage
+{
+  %
+  % Display a DirectClass image.
+  %
+  systemdict /colorimage known
+  {
+    columns rows 8
+    [
+      columns 0 0
+      rows neg 0 rows
+    ]
+    { DirectClassPacket } false 3 colorimage
+  }
+  {
+    %
+    % No colorimage operator;  convert to grayscale.
+    %
+    columns rows 8
+    [
+      columns 0 0
+      rows neg 0 rows
+    ]
+    { GrayDirectClassPacket } image
+  } ifelse
+} bind def
+
+/GrayDirectClassPacket
+{
+  %
+  % Get a DirectClass packet;  convert to grayscale.
+  %
+  % Parameters:
+  %   red
+  %   green
+  %   blue
+  %   length: number of pixels minus one of this color (optional).
+  %
+  currentfile color_packet readhexstring pop pop
+  color_packet 0 get 0.299 mul
+  color_packet 1 get 0.587 mul add
+  color_packet 2 get 0.114 mul add
+  cvi
+  /gray_packet exch def
+  compression 0 eq
+  {
+    /number_pixels 1 def
+  }
+  {
+    currentfile byte readhexstring pop 0 get
+    /number_pixels exch 1 add def
+  } ifelse
+  0 1 number_pixels 1 sub
+  {
+    pixels exch gray_packet put
+  } for
+  pixels 0 number_pixels getinterval
+} bind def
+
+/GrayPseudoClassPacket
+{
+  %
+  % Get a PseudoClass packet;  convert to grayscale.
+  %
+  % Parameters:
+  %   index: index into the colormap.
+  %   length: number of pixels minus one of this color (optional).
+  %
+  currentfile byte readhexstring pop 0 get
+  /offset exch 3 mul def
+  /color_packet colormap offset 3 getinterval def
+  color_packet 0 get 0.299 mul
+  color_packet 1 get 0.587 mul add
+  color_packet 2 get 0.114 mul add
+  cvi
+  /gray_packet exch def
+  compression 0 eq
+  {
+    /number_pixels 1 def
+  }
+  {
+    currentfile byte readhexstring pop 0 get
+    /number_pixels exch 1 add def
+  } ifelse
+  0 1 number_pixels 1 sub
+  {
+    pixels exch gray_packet put
+  } for
+  pixels 0 number_pixels getinterval
+} bind def
+
+/PseudoClassPacket
+{
+  %
+  % Get a PseudoClass packet.
+  %
+  % Parameters:
+  %   index: index into the colormap.
+  %   length: number of pixels minus one of this color (optional).
+  %
+  currentfile byte readhexstring pop 0 get
+  /offset exch 3 mul def
+  /color_packet colormap offset 3 getinterval def
+  compression 0 eq
+  {
+    /number_pixels 3 def
+  }
+  {
+    currentfile byte readhexstring pop 0 get
+    /number_pixels exch 1 add 3 mul def
+  } ifelse
+  0 3 number_pixels 1 sub
+  {
+    pixels exch color_packet putinterval
+  } for
+  pixels 0 number_pixels getinterval
+} bind def
+
+/PseudoClassImage
+{
+  %
+  % Display a PseudoClass image.
+  %
+  % Parameters:
+  %   class: 0-PseudoClass or 1-Grayscale.
+  %
+  currentfile buffer readline pop
+  token pop /class exch def pop
+  class 0 gt
+  {
+    currentfile buffer readline pop
+    token pop /depth exch def pop
+    /grays columns 8 add depth sub depth mul 8 idiv string def
+    columns rows depth
+    [
+      columns 0 0
+      rows neg 0 rows
+    ]
+    { currentfile grays readhexstring pop } image
+  }
+  {
+    %
+    % Parameters:
+    %   colors: number of colors in the colormap.
+    %   colormap: red, green, blue color packets.
+    %
+    currentfile buffer readline pop
+    token pop /colors exch def pop
+    /colors colors 3 mul def
+    /colormap colors string def
+    currentfile colormap readhexstring pop pop
+    systemdict /colorimage known
+    {
+      columns rows 8
+      [
+        columns 0 0
+        rows neg 0 rows
+      ]
+      { PseudoClassPacket } false 3 colorimage
+    }
+    {
+      %
+      % No colorimage operator;  convert to grayscale.
+      %
+      columns rows 8
+      [
+        columns 0 0
+        rows neg 0 rows
+      ]
+      { GrayPseudoClassPacket } image
+    } ifelse
+  } ifelse
+} bind def
+
+/DisplayImage
+{
+  %
+  % Display a DirectClass or PseudoClass image.
+  %
+  % Parameters:
+  %   x & y translation.
+  %   x & y scale.
+  %   label pointsize.
+  %   image label.
+  %   image columns & rows.
+  %   class: 0-DirectClass or 1-PseudoClass.
+  %   compression: 0-none or 1-RunlengthEncoded.
+  %   hex color packets.
+  %
+  gsave
+  /buffer 512 string def
+  /byte 1 string def
+  /color_packet 3 string def
+  /pixels 768 string def
+
+  currentfile buffer readline pop
+  token pop /x exch def
+  token pop /y exch def pop
+  x y translate
+  currentfile buffer readline pop
+  token pop /x exch def
+  token pop /y exch def pop
+  currentfile buffer readline pop
+  token pop /pointsize exch def pop
+  /Times-Roman findfont pointsize scalefont setfont
+  x y scale
+  currentfile buffer readline pop
+  token pop /columns exch def
+  token pop /rows exch def pop
+  currentfile buffer readline pop
+  token pop /class exch def pop
+  currentfile buffer readline pop
+  token pop /compression exch def pop
+  class 0 gt { PseudoClassImage } { DirectClassImage } ifelse
+  grestore
+} bind def
+%%EndProlog
+%%Page:  1 1
+%%PageBoundingBox: 0 0 236 92
+userdict begin
+DisplayImage
+0 0
+236.22 91.6535
+12.000000
+250 97
+0
+0
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEF2E9FBC49DF9A162F88939
+F77C22F77B21F77B21F77D25F88D3FF9A567FBC49DFDECDFFFFEFEFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFEFDFBFCDAC0F9A66AF77D25F77B21F77B21F77B21F77B21F77B21
+F77B21F77B21F77B21F77B21F77B21F77B21F89954FCD4B6FEFEFDFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFCFBFDDDC6
+FAB37FF78736F77B21F77B21F77B21F77B21F77B21F77B21F77B21F77B21F77B21F77B21
+F77B21F77B21F77B21F77B21F77B21F77B21F89750FDE5D4FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFEFAF7FDE3D0FBC59EF9A467F7822EF77B21F77B21F77B21
+F77B21F77B21F77B21F77B21F77B21F77B21F77B21F77B21F77B21F77B21F77B21F77B21
+F77B21F77B21F77B21F77B21F77B21F77D25FBC69FFEFEFEFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFEFDFBFDEADDFCDAC2FCD1B2FCCDACFCCCAAFBC8A2FBC095FAB380
+F9A365F89045F77D25F77B21F77B21F77B21F77B21F77B21F77B21F77B21F77B21F77B21
+F77B21F77B21F77B21F77B21F77B21F77B21F77B21F77B21F77B21F77B21F77B21F77B21
+F77B21F77B21F77B21F77B21F77B21FAB482FEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDE8D9
+F9A86DF7822CF77B21F77B21F77B21F77B21F77B21F77B21F77B21F77B21F77B21F77B21
+F77B21F77B21F77B21F77B21F77B21F77B21F77B21F77B21F77B21F77B21F77B21F77B21
+F77B21F77B21F77B21F77B21F77B21F77B21F77B21F77B21F77B21F77B21F77B21F77B21
+F77B21F77B21F77B21F77B21FABA8CFFFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCDAC2F77F28F77B21F77B21
+F77B21F77B21F77B21F77B21F77B21F77B21F77B21F77B21F77B21F77B21F77B21F77B21
+F77B21F77B21F77B21F77B21F77B21F77B21F77B21F77B21F77B21F77B21F77B21F77B21
+F77B21F77B21F77B21F77B21F77B21F77B21F77B21F77B21F77B21F77B21F77B21F77B21
+F77B21F77B21F77B21FCD3B5FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDECDFF7822DF77B21F77B21F77B21F77B21F77B21
+F77B21F77B21F77B21F77B21F77B21F77B21F77B21F77B21F77B21F77B21F77B21F77B21
+F77B21F77B21F77B21F77B21F77B21F77B21F77B21F77B21F77B21F77B21F77B21F77B21
+F77B21F77B21F77B21F77B21F77B21F77B21F77B21F77B21F77B21F77B21F77B21F77B21
+F77B21F7822CFDEBDEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFF9A162F77B21F77B21F77B21F77B21F77B21F77B21F77B21F77B21
+F77B21F77B21F77B21F77B21F77B21F77B21F77B21F77B21F77B21F77B21F77B21F77B21
+F77B21F77B21F77B21F77B21F77B21F77B21F77B21F77B21F77B21F77B21F77B21F77B21
+F77B21F77B21F77B21F77B21F77B21F77B21F77B21F77B21F77B21F77B21F77B21F77B21
+F8944BFEFBF8FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FDEADCF77B21F77B21F77B21F77B21F77B21F77B21F77B21F77B21F77B21F77B21F77B21
+F77B21F77B21F77B21F77B21F77B21F77B21F77B21F77B21F77B21F77B21F77B21F77B21
+F77B21F77B21F77B21F77B21F77B21F77B21F77B21F77B21F77B21F77B21F77B21F77B21
+F77B21F77B21F77B21F77B21F77B21F77B21F77B21F77B21F77B21F77B21F77B21FAB684
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAB787F77B21
+F77B21F77B21F77B21F77B21F77B21F77B21F77B21F77B21F77B21F77B21F77B21F77B21
+F77B21F77B21F77B21F77B21F77B21F77B21F77B21F77B21F77B21F77B21F77B21F77B21
+F77B21F77B21F77B21F77B21F77B21F77B21F77B21F77B21F77B21F77B21F77B21F77B21
+F77B21F77B21F77B21F77B21F77B21F77B21F77B21F77B21F77B21F77C23FDE0CBFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFDFDF78939F77B21F77B21F77B21
+F77B21F77B21F77D24F9A262F9A05FF77D24F77B21F77B21F77B21F77B21F77B21F77B21
+F77B21F77B21F77B21F77B21F77B21F77B21F77B21F77B21F77B21F77B21F77B21F77B21
+F77B21F77B21F77B21F77B21F77B21F77B21F77B21F77B21F77B21F77B21F77B21F77B21
+F77B21F77B21F77B21F77B21F77B21F77B21F77B21F77B21F89146FEFCFAFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDE2CEF77B21F77B21F77B21F77B21F77B21F77B21
+FCCDABFEF6F1FEFEFDFCD9BFF77B21F77B21F77B21F77B21F77B21F77B21F77B21F77B21
+F77B21F77B21F77B21F77B21F77B21F77B21F77B21F77B21F77B21F77B21F77B21F77B21
+F77B21F77B21F77B21F77B21F77B21F77B21F77B21F77B21F77B21F77B21F77B21F77B21
+F77B21F77B21F77B21F77B21F77B21F77B21F77B21FBC69FFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFBBD91F77B21F77B21F77B21F77B21F77B21F77B21FAAC74F77B22
+F99C59FEFAF8F77D24F77B21F77B21F77B21F77B21F77B21F77B21F77B21F77B21F77B21
+F77B21F77B21F77B21F77B21F77B21F77B21F77B21F77B21F77B21F77B21F77B21F77B21
+F77B21F77B21F77B21F77B21F77B21F77B21F77B21F77B21F77B21F77B21F77B21F77B21
+F77B21F77B21F77B21F77B21F77B21F78634FEF9F5FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFF9A05FF77B21F77B21F77B21F77B21F77B21F77B21F77B21F77B21F88B3CF9A76B
+F77B21F77B21F77B21F77B21F77B21F77B21F77B21F77B21F77B21F77B21F77B21F77B21
+F77B21F77B21F77B21F77B21F77B21F77B21F77B21F77B21F77B21F77B21F77B21F77B21
+F77B21F77B21F77B21F77B21F77B21F77B21F77B21F77B21F77B21F77B21F77B21F77B21
+F77B21F77B21F77B21F77B21FBC7A1FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF88A3B
+F77B21F77B21F77B21F77B21F77B21F77B21F77B21F77B21F77B21F77B21F77B21F77B21
+F77B21F77B21F77B21F77B21F77B21F77B21F77B21F77B21F77B21F77B21F77B21F77B21
+F77B21F77B21F77B21F77B21F77B21F77B21F77B21F77B21F77B21F77B21F77B21F77B21
+F77B21F77B21F77B21F77B21F77B21F77B21F77B21F77B21F77B21F77B21F77B21F77B21
+F77B21F77B21F89146FEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFDF77F28F77B21F77B21
+F77B21F77B21F77B21F77B21F77B21F77B21F77B21F77B21F77B21F77B21F77B21F77B21
+F77B21F77B21F77B21F77B21F77B21F77B21F77B21F77B21F77B21F77B21F77B21F77B21
+F77B21F77B21F77B21F77B21F77B21F77B21F77B21F77B21F77B21F77B21F77B21F77B21
+F77B21F77B21F77B21F77B21F77B21F77B21F77B21F77B21F77B21F77B21F77B21F77B21
+F77B21FDE6D6FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFDF78029F77B21F77B21F77B21F77B21
+F77B21F77B21F77B21F77B21F77B21F77B21F77B21F77B21F77B21F77B21F77B21F77B21
+F77B21F77B21F77B21F77B21F77B21F77B21F77B21F77B21F77B21F77B21F77B21F77B21
+F77B21F77B21F77B21F77B21F77B21F77B21F77B21F77B21F77B21F77B21F77B21F77B21
+F77B21F77B21F77B21F77B21F77B21F77B21F77B21F77B21F77B21F77B21F77B21FBC095
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF89146F77B21F77B21F77B21F77B21F77B21F77B21
+F77B21F77B21F77B21F77B21F77B21F77B21F77B21F77B21F77B21F77B21F77B21F77B21
+F77B21F77B21F77B21F77B21F77B21F77B21F77B21F77B21F77B21F77B21F77B21F77B21
+F77B21F77B21F77B21F77B21F77B21F77B21F77B21F77B21F77B21F77B21F77B21F77B21
+F77B21F77B21F77B21F77B21F77B21F77B21F77B21F77B21F77B21F9A161FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFBBD90F77B21F77B21F77B21F77B21F77B21F77B21F77B21F77B21
+F77B21F77B21F77B21F77B21F77B21F77B21F77B21F77B21F77B21F77B21F77B21F77B21
+F77B21F77B21F77B21F77B21F77B21F77B21F77B21F77B21F77B21F77B21F77B21F77B21
+F77B21F77B21F77B21F77B21F77B21F77B21F77B21F77B21F77B21F77B21F77B21F77B21
+F77B21F77B21F77B21F77B21F77B21F77B21F77B21F88A3AFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFEF9F5F89750F77B21F77B21F77B21F77B21F77B21F77B21F77B21F77B21F77B21
+F77B21F77B21F77B21F77B21F77B21F77B21F77B21F77B21F77B21F77B21F77B21F77B21
+F77B21F77B21F77B21F77B21F77B21F77B21F77B21F77B21F77B21F77B21F77B21F77B21
+F77B21F77B21F77B21F77B21F77B21F77B21F77B21F77B21F77B21F77B21F77B21F77B21
+F77B21F77B21F77B21F77B21F77B21F77C22FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FEFBF9FBCBA7FAAA70F8974FF77B21F77B21F77B21F77B21F77B21F77B21F77B21F77B21
+F77B21F77B21F77B21F77B21F77B21F77B21F77B21F77B21F77B21F77B21F77B21F77B21
+F77B21F77B21F77B21F77B21F77B21F77B21F77B21F77B21F77B21F77B21F77B21F77B21
+F77B21F77B21F77B21F77B21F77B21F77B21F77B21F77B21F77B21F77B21F77B21F77B21
+F77B21F77B21F77B21F77B21FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFEFEFBC9A5F77B21F77B21F9AB72FABA8BF7802AF77B21F77B21F77B21F77B21
+F77B21F77B21F77B21F77B21F77B21F77B21F77B21F77B21F77B21F77B21F77B21F77B21
+F77B21F77B21F77B21F77B21F77B21F77B21F77B21F77B21F77B21F77B21F77B21F77B21
+F77B21F77B21F77B21F77B21F77B21F77B21F77B21F77B21F77B21F77B21F77B21F77B21
+F77B21F77B21FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FCD7BCF77B21F77B21FCD9C0FFFFFFFDE3CFF78533F77B21F77B21F77B21F77B21F77B21
+F77B21F77B21F77B21F77B21F77B21F77B21F77B21F77B21F77B21F77B21F77B21F77B21
+F77B21F77B21F77B21F77B21F77B21F77B21F77B21F77B21F77B21F77B21F77B21F77B21
+F77B21F77B21F77B21F77B21F77B21F77B21F77B21F77B21F77B21F77B21F77B21F77B21
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDE7D7FAB787
+FABB8DFDEBDEFFFFFFFFFFFFFDEBDEF88C3EF77B21F77B21F77B21F77B21F77B21F77B21
+F77B21F77B21F77B21F77B21F77B21F77B21F77B21F77B21F77B21F77B21F77B21F77B21
+F77B21F77B21F77B21F77B21F77B21F77B21F77B21F77B21F77B21F77B21F77B21F77B21
+F77B21F77B21F77B21F77B21F77B21F77B21F77B21F77B21F77B21F78431FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFEF2E9F8944BF77B21F77B21F77B21F77B21F77B21F77B21F77B21
+F77B21F77B21F77B21F77B21F77B21F77B21F77B21F77B21F77B21F77B21F77B21F77B21
+F77B21F77B21F77B21F77B21F77B21F77B21F77B21F77B21F77B21F77B21F77B21F77B21
+F77B21F77B21F77B21F77B21F77B21F77B21F77B21F89853FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFEF7F3F8954DF77B21F77B21F77B21F77B21F77B21F77B21F77B21F77B21
+F77B21F77B21F77B21F77B21F77B21F77B21F77B21F77B21F77B21F77B21F77B21F77B21
+F77B21F77B21F77B21F77B21F77B21F77B21F77B21F77B21F77B21F77B21F77B21F77B21
+F77B21F77B21F77B21F77B21F77B21FAB37FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFF9A466F77B21F77B21F77B21F77B21F77B21F77B21F77B21F77B21F77B21F77B21
+F77B21F77B21F77B21F77B21F77B21F77B21F77B21F77B21F77B21F77B21F77B21F77B21
+F77B21F77B21F77B21F77B21F77B21F77B21F77B21F77B21F77B21F77B21F77B21F77B21
+F77B21F77B21F77B21FCD4B7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFAF7F78431
+F77B21F77B21F77B21F77B21F77B21F77B21F78634F77B21F77B21F77B21F77B21F77B21
+F77B21F77B21F77B21F77B21F77B21F77B21F77B21F77B21F77B21F77B21F77B21F77B21
+F77B21F77B21F77B21F77B21F77B21F77B21F77B21F77B21F77B21F77B21F77B21F77B21
+F77E27FEF7F2FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFDFDFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFABB8DF77B21F77B21F77B21
+F9A160FBC096FBBF94FCD9BFFEFCFAFBBE92F77B21F77B21F77B21F77B21F77B21F77B21
+F77B21F77B21F77B21F77B21F77B21F77B21F77B21F77B21F77B21F77B21F77B21F77B21
+F77B21F77B21F77B21F77B21F77B21F77B21F77B21F77B21F77B21F77B21F9A467FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE6E5E6BAB7B9FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFBC39AF77B21F77B21F77B21F78431FEF3EBFFFFFF
+FFFFFFFFFFFFFFFFFFFEFEFEFAB27EF77B21F77B21F77B21F77B21F77B21F77B21F77B21
+F77B21F77B21F77B21F77B21F77B21F77B21F77B21F77B21F77B21F77B21F77B21F77B21
+F77B21F77B21F77B21F77B21F77B21F77B21F77B21F77B21FCD8BDFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA09C9F797379FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFEF1E8F9A264F77B21F77B21F77B21F77B21FCCFAEFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFEFDFCF9A76BF77B21F77B21F77B21F77B21F77B21F77B21F77B21F77B21
+F77B21F77B21F77B21F77B21F77B21F77B21F77B21F77B21F77B21F77B21F77B21F77B21
+F77B21F77B21F77B21F77B21F77B21F88E41FEFDFCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEB6B3B5DAD8DAFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFD
+CFCDCF989397746E74686268645E64726C72918C90C2BFC1F8F7F8FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFDFDFDFEFEFEFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEEBEAEBBFBCBF
+9D999D8580857570756D676D706A6F7C777C8E898EA6A3A6C6C4C6EDECEDFEFEFEFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFD
+FDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF918D91281F28E0DFE0FFFFFFFFFFFFFFFFFFFFFFFFFEF0E6F78634
+F77B21F77B21F77B21F77B21F9A466FEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFEFBF8F99D5BF77B21F77B21F77B21F77B21F77B21F77B21F77B21F77B21F77B21
+F77B21F77B21F77B21F77B21F77B21F77B21F77B21F77B21F77B21F77B21F77B21F77B21
+F77B21F77B21F77B21FCCBA8FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFED9D7D8A4A0A47B767B5D565D4942493F373F
+3A323A443C444E464D5B555B6B656B7F797EA09C9FCBC9CBF7F7F7FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD4D2D42118215A5359FEFEFEFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAFAFAA4A0A3403840211821211821
+2118212118212118212118212118212118212E252E7F7A7FECEBECFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF7A747A3A323A3A323A3A323A3A323A3A323A3A323A362E36332B33
+332B33332B33332B33332B33332B33332B33332B332C232C2C232C2C232C2C232C2C232C
+2C232C2C232C2C232C2A2129271F27EFEEEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDDDE8B868B463E46211821211821211821211821
+2118212118212118212118212118212118212118212118214139417D787DC7C5C7FDFDFD
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF292028261D26261D26261D26261D26261D26261D26261D26261D26
+261D26261D26261D262D242D3F373F5E585E8C878CCCCACCFEFEFEFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFBDBABC2118214C454CF2F2F2FFFFFFFFFFFFFFFFFFFCD8BEF77B21F77B21F77B21
+F77B21F78838FEF4ECFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBCAA6F78430F78735
+F89A56F77B22F77B21F77B21F77B21F77B21F77B21F77B21F77B21F77B21F77B21F77B21
+F77B21F77B21F77B21F77B21F77B21F77B21F77B21F77B21F77B21F77B21F77B21F77B21
+F88D40FEFCFBFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFE9E8E88E898D3E363D211821211821211821211821211821211821211821211821
+211821211821211821211821211821211821292028665F65BDBBBDFEFEFEFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF706B70211821211821D5D3D5FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFD2D0D1463E462118212118212118212B222B534C53585258
+3E363E211821211821211821211821211821362E36D7D5D6FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF8B878B211821211821211821211821211821211821211821211821211821211821
+211821211821211821211821211821211821211821211821211821211821211821211821
+211821211821372F36FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFDEDDDE696369221922211821211821211821312830696369928E92AAA6AAB3B0B3
+AEABAE9D999D7C777C4B444B221922211821211821211821211821453E45B3B0B3FEFEFE
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF231A23211821211821211821231A23231A22211821211821211821211821211821
+211821211821211821211821211821211821494249C5C2C5FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCFCFC
+4E464D2118214E474DE6E5E6FFFFFFFFFFFFFEF2E9F77F27F77B21F77B21F7812BFDE2CE
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9A364F77B21F77B21F77B21F77B21
+F77B21F77B21F77B21F77B21F77B21F77B21F77B21F77B21F77B21F77B21F77B21F77B21
+F77B21F77B21F77B21F77B21F77B21F77B21F77B21F77B21F77B21F77B21F89751FEFCFA
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4F3F3868186281F28
+211821211821211821251C24605A609D999CC6C3C5DDDBDCE0DFE0D3D1D3B8B5B8878287
+484048211821211821211821211821211821211821696268FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+E6E5E6251C25211821211821746E73FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFC3C1C3282028211821211821271E27979296F5F5F5FFFFFFFFFFFFFEFEFEDEDDDE
+736D72211821211821211821221922C7C5C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF868085
+2118212118212118212118213028304B444B615B61746E738A858A9B969A271E27211821
+2118212118216D676C8E8A8E817C816F696F5B545A433C432A222A211821211821211821
+342C34FEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFD9A969A271E27
+211821211821211821474047B5B1B4FAFAFAFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFE5E3E48D898D2F262F21182121182121182121182160595FEDECEDFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF231A23
+2118212118212118216D686DFDFDFDFBFBFBF6F6F6F0EFF0ECEBECDEDCDDBEBBBE847F84
+302830211821211821211821211821221922A19DA1FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE2E1E23A3239
+211821312931ADAAADFEFDFDFFFFFFFDE7D7FCCBA9FBCAA6FDE9DAFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCD8BEF78939F88D40F8954CF99C59F9A365FAAA70
+FAB27DF8954DF77B21F77B21F77B21F77B21F77B21F77B21F77B21F77B21F77B21F77B21
+F77B21F77B21F77B21F77B21F77B21F77B21F77B21F77B21F77B21FABA8AFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCFCDCF3D353D211821211821211821261D26
+837E83E8E7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD6D4D6
+736D73231B23211821211821211821837E83FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF868186211821
+211821211821271E27EAE9EAFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE3E2E32E252E
+2118212118212A212AC8C6C8FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB5B2B5
+261D262118215E575EFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA6A2A5999498BEBBBE
+DAD8DAF0EFF0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2B222B211821211821211821
+AEABAEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEEBEAEBCDCBCDABA8AB888388F0EFF0
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAFAFA706A6F211821211821211821211821
+8A858AFAFAFAFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFEDEDED716B70211821211821211821211821423A42E7E6E7FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF231A23211821211821
+2118216E686EFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEEEDEE6E686E
+211821211821211821211821221922C1BFC1FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6F5F5E7E6E6544D54211821
+2118214E474EBBB8BBFDFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFD
+FCDAC1FAAE77F88F43F77D25F77B21F77B21F77B21F77B21F77B21F77B21F77B21F77B21
+F77B21F77B21F77B21F77B21F77B21F77B21F77B21F77D25FDE9DAFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFB7B4B6271F272118212118212118214A434AD9D8D9FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD4D2D4
+4C444B211821211821C8C6C8FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3F2F32E252E211821211821211821
+2118218E8A8EFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6D666C211821211821211821
+ABA7AAFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9D999D211821
+A5A1A4FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2B222B211821211821211821AEABAEFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFDFCFD6C666C211821211821211821211821A09C9FFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFEFEFEA4A0A3241B24211821211821211821443C44EEEEEEFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF231A232118212118212118216E686E
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFE868185211821
+211821211821211821403840FBFBFBFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD6D4D5ACA9ACFFFFFFFCFCFCA4A0A3352D35211821
+2118213F373F918D91DCDBDCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFEF0E6F9A05FF77B21F77B21F77B21F77B21F77B21F77B21F77B21F77B21F77B21
+F77B21F77B21F77B21F77B21F77B21F77B21F9A76BFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+B9B6B9251C24211821211821211821686268F6F6F6FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9F9F97B767B
+332B33FCFBFBFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9C989C211821211821211821211821211821342B33
+F7F7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7E6E7231B23211821211821413941FDFDFDFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9F9F9494148DEDDDEFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF2B222B211821211821211821AEABAEFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF8680852118212118212118212118217C777CFEFEFEFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFAFACAF2219222118212118212118215A535AFBFBFBFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF231A232118212118212118216E686EFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCFCFC4B444B211821211821
+211821211821BDBABDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF979397666066FFFFFFFFFFFFFFFFFFF6F6F6A4A0A3494149211821
+2118212118214139417C777CB0ADB0DDDCDDFCFCFCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9F8F7FBC7A1F7832E
+F77B21F77B21F77B21F77B21F77B21F77B21F77B21F77B21F77B21F77B21F77B21F77B21
+F77B21F77B21F77B21F77B21F77D24FEF1E7FFFFFFFFFFFFFFFFFFD4D2D4292129211821
+211821211821686167FCFCFCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEDEDDDEFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFBFBFB3C343B2118214D454C251C25211821211821211821A8A5A8FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFA7A3A72118212118212118217F7A7FFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF2B222B211821211821211821AEABAEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB4B1B4211821
+211821211821211821474047F8F7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+8D898D211821211821211821211821918D91FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF231A232118212118212118216E686EFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB6B3B6211821211821211821211821
+827D82FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF959195221922C8C5C7FFFFFFFFFFFFFFFFFFFFFFFFFEFEFED6D5D6908B8F504950
+241B242118212118212118212A21294942496660667D787D908B8F9D999DA6A2A6ACA8AC
+AAA7AAA4A1A49B979A8B878B7872785F585F6B4D40CD6924F77B21F77B21F77B21F77B21
+F77B21F77B21F77B21F77B21F77B21F77B21F77B21F77B21F77B21F77B21F77B21F77B21
+F77B21F77B21F77B21FBC7A2FFFFFFFFFFFFF5F4F5413940211821211821211821473F46
+F6F5F5FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+B2AFB2211821211821B9B6B96A646A211821211821211821484047FEFEFEFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF7B757A211821211821211821938F93FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+2B222B211821211821211821AEABAEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE8E7E830272F211821211821211821
+221922CECBCDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBFBFB4E474E
+211821211821211821261D25DBDADBFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF231A232118212118212118216E686EFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEEEDED211821211821211821211821645E64FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCECCCD
+211821352D35DDDCDDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2F2F2C3C1C3
+979397706A6F4E474E312931211821211821211821211821211821211821211821211821
+2118212118212D1D219B5021F47921F77B21F77B21F77B21F77B21F77B21F77B21F77B21
+F77B21F77B21F77B21F77B21F77B21F77B21F77B21F77B21F77B21F77B21F77B21F77B21
+F77B21FAAA70FFFFFFFFFFFF847F83211821211821211821231A23D1CFD1FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFE4E474E211821
+3C343BFCFCFCC8C5C7211821211821211821211821C3C0C3FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF736D72
+211821211821211821847F83FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2B222B211821
+211821211821AEABAEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6F696F2118212118212118212118216F696EFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCECCCE211821211821
+211821211821655E64FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF231A23
+2118212118212118216E686EFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFEFEFE221922211821211821211821605960FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFE6B656B211821
+332A33C5C3C5FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFEFEFEF6F5F6E1E0E1D1CFD1C6C4C6BEBBBDBDBABCBDBABCBFBCBEC7C4C6D1A588
+E97928F77B21F77B21F77B21F77B21F77B21F77B21F77B21F77B21F77B21F77B21F77B21
+F77B21F77B21F77B21F77B21F77B21F77B21F77B21F77B21F77B21F77B21F77B21F99A56
+FFFFFFE0DFE0251D252118212118212118216F696FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC8C6C8211821211821969195FFFFFF
+FEFEFE474047211821211821211821615B61FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF817C81211821211821
+211821403840FCFCFCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2B222B211821211821211821
+AEABAEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFD6D4D6221922211821211821211821221922DBD9DAFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5C565C211821211821211821
+221922DAD8DAFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF231A23211821211821
+2118216E686EFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFECECEC2118212118212118212118216E686EFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4F4F4575057211821231A23
+7E787DEEEDEEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDEBDEF99F5EF77B21F77B21F77B21
+F77B21F77B21F77B21F77B21F77B21F77B21F77B21F77B21F77B21F77B21F77B21F77B21
+F77B21F77B21F77B21F77B21F77B21F77B21F77B21F77B21F77B21F99A55FFFFFF7A757A
+211821211821211821211821D2D0D1FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF645E64211821271E27ECEBECFFFFFFFFFFFFA4A0A3
+211821211821211821221922DCDBDCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9E9A9E211821211821211821211821
+A4A0A3FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2B222B211821211821211821AEABAEFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+726C722118212118212118212118215D575DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB5B2B4211821211821211821211821847F84
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF231A232118212118212118216E686E
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBFBCBF
+211821211821211821211821959095FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEE7E6E7F9F8F9837D82231A222118212E252E
+8B868AE7E6E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFEFCFBFBBC8EF77E26F77B21F77B21F77B21F77B21F77B21F77B21
+F77B21F77B21F77B21F77B21F77B21F77B21F77B21F77B21F77B21F77B21F77B21F77B21
+F77B21F77B21F77B21F77B21F77B21F77B21F77B21F9A96FF4F4F42B222B211821211821
+211821433C43FEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFDCDBDC221922211821726C71FFFFFFFFFFFFFFFFFFF4F3F42D252D211821
+2118212118217B767BFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC9C7C92118212118212118212118212A212AC5C2C4
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF2B222B211821211821211821AEABAEFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3F3F3292029211821
+211821211821211821B0ACAFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFF5F4F5271E272118212118212118213F373FFEFEFEFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF231A232118212118212118216E686EFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFE615B61211821211821
+211821211821D9D7D8FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFC3C1C3A09CA0FFFFFFFFFFFFD2D0D15C555C211821211821241B24
+615B61ADA9ACEDECECFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FEF9F5F99F5DF77B21F77B21F77B21F77B21F77B21F77B21F77B21F77B21F77B21F77B21
+F77B21F77B21F77B21F77B21F77B21F77B21F77B21F77B21F77B21F77B21F77B21F77B21
+F77B21F77B21F77B21F77B21F77B21FBCBA8B6B3B5211821211821211821211821817B80
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+7A747A211821211821CFCDCFFFFFFFFFFFFFFFFFFFFFFFFF807B80211821211821211821
+2A212AEEEEEEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFF7F7F7292129211821211821211821211821251D25948F94F8F8F8
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF2B222B211821211821211821AEABAEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB6B3B6211821211821211821211821
+241B24F1F0F1FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF544D54211821211821211821211821E3E2E3FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF231A232118212118212118216E686EFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB4B1B42118212118212118212118216A646A
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF928E92514950FEFEFEFFFFFFFFFFFFFFFFFFD3D1D37973782F262F211821211821
+231A234C444B807B80AEAAADD5D4D5F5F5F5FFFFFFFFFFFFFFFFFFFEFEFEF9A86CF77B21
+F77B21F77B21F77B21F77B21F77B21F77B21F77B21F77B21F77B21F77B21F77B21F77B21
+F77B21F77B21F77B21F77B21F77B21F77B21F77B21F77B21F77B21F77B21F77B21F77B21
+F77B21F77B21F78430FEF7F27C777C211821211821211821211821AEABAEFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFECEBEC282028211821
+4E474EFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFDCDADC221922211821211821211821969195
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF7C767B211821211821211821211821211821211821393139948F93E9E8E9
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+2B222B211821211821211821AEABAEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF817B802118212118212118212118214D454CFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF7D787D211821211821211821211821B8B5B8FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF231A232118212118212118216E686EFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFC0BDBF2A2129211821211821211821473F47EFEEEFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9C989B
+211821A7A3A7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9F9F9C0BDBF807B80484047221922
+211821211821211821221922362E364D464D60595F937466F77B21F77B21F77B21F77B21
+F77B21F77B21F77B21F77B21F77B21F77B21F77B21F77B21F77B21F77B21F77B21F77B21
+F77B21F77B21F77B21F77B21F77B21F77B21F77B21F77B21F77B21F77B21F77B21F77B21
+FBCAA5FFFFFF514A51211821211821211821211821CECCCEFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF908B8F211821211821ABA8ABFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFEFEFE5C555C211821211821211821393139FAF9FAFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+F4F3F34E474E211821211821211821211821211821211821211821251C25696369C3C0C2
+FDFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2B222B211821
+211821211821AEABAEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF5952592118212118212118212118217E797EFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF989498
+211821211821211821211821938F93FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF231A23
+2118212118212118216E686EFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3F2F3
+858085231A23211821211821211821524B52EDECECFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE0DEDF241B24261E26
+BBB9BBFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1F1F1C7C4C6A09CA0
+7E787D615A61484047342B33251C257B4221F77B21F77B21F77B21F77B21F77B21F77B21
+F77B21F77B21F77B21F77B21F77B21F77B21F77B21F77B21F77B21F77B21F77B21F77B21
+F77B21F77B21F77B21F77B21F77B21F77B21F77B21F77B21F77B21FAAD76FEFEFEFFFFFF
+332B33211821211821211821211821E2E1E2FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFF7F7F7332B33211821322931F7F7F7FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFB9B6B9211821211821211821211821B0ADB0FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3F3F3
+6F696F2118212118212118212118212118212118212118212118212118214038409C989B
+F6F6F6FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2B222B211821211821211821
+AEABAEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF3B333B211821211821211821211821A39FA3FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA9A5A8211821211821
+2118212118217A747AFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF231A23211821211821
+2118216B656BFFFFFFFFFFFFFCFBFBF1F0F0DAD8DAB5B2B47C767B302830211821211821
+211821261D268A868AF9F9F9FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8F8A8F211821241B24979296
+FCFCFCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFDFDFDF8D5BCF77B21F77B21F77B21F77B21F77B21F77B21F77B21F77B21
+F77B21F77B21F77B21F77B21F77B21F77B21F77B21F77B21F77B21F77B21F77B21F77B21
+F77B21F77B21F77B21F77B21F77B21F77B21FAB07BFEFDFCFFFFFFFFFFFF231A22211821
+211821211821211821E8E8E8FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFA6A2A5211821211821878287FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFBFBFB3B333B2118212118212118214E474EFEFEFEFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEC2C0C2
+514A502118212118212118212118212118212118212118212118212118213B333BC2C0C2
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2B222B211821211821211821AEABAEFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF322932
+211821211821211821211821C2BFC2FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFADAAAD211821211821211821211821
+6D676DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF231A23211821211821211821211821
+251C25251C25241B24211821211821211821211821211821211821372F37878287E3E2E3
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFD827D81211821211821504950CBC9CB
+FEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFEFDFDF89A55F77B21F77B21F77B21F77B21F77B21F77B21F77B21F77B21F77B21
+F77B21F77B21F77B21F77B21F77B21F77B21F77B21F77B21F77B21F77B21F77B21F77B21
+F77B21F77B21F7822DFCCDACFEFEFEFFFFFFFFFFFFFFFFFF211821211821211821211821
+211821E8E8E8FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFD
+433C43211821231A23E2E1E2FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+959195211821211821211821211821CBC8CAFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEC8C6C8
+5F595F211821211821211821211821211821211821211821211821221A22A19EA1FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF2B222B211821211821211821AEABAEFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF322932211821211821
+211821211821D7D6D7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA6A3A62118212118212118212118216A646AFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF231A232118212118212118212F262F4A424A2C232C
+211821211821211821211821322A32A5A1A4D4D2D4FCFCFCFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFF8F8F8D8D6D7FFFFFFB3AFB2332B332118212118215B545ABBB8BA
+FBFBFBFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FEF4ECF8974FF77B21F77B21F77B21F77B21F77B21F77B21F77B21F77B21F77B21F77B21
+F77B21F77B21F77B21F77B21F77B21F77B21F77B21F77B21F77B21F77B21F67A21F7A468
+FEF0E6FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF221922211821211821211821211821E3E2E3
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBCB9BB211821211821
+251D25473F47473F47473F47473F47473F47473F47473F47473F47473F473E363E211821
+211821211821211821696368FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD3D1D2
+6A646A231A23211821211821211821211821211821211821221922BDBABCFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF2B222B211821211821211821AEABAEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF352D35211821211821211821211821
+D3D1D2FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF8E8A8E2118212118212118212118216D676DFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF231A232118212118212118216E686EFFFFFFC1BEC0231A23211821
+2118212118212118219C989BFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFB3B0B3938F93FFFFFFFFFFFFF1F0F18C888C2F272F211821211821352D357C777C
+BFBCBEF5F4F5FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFBF8
+FAB989F77E26F77B21F77B21F77B21F77B21F77B21F77B21F77B21F77B21F77B21F77B21
+F77B21F77B21F77B21F77B21F77B21F77B21F77B22F9A262C6A998AEAAADFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF2F262E211821211821211821211821D4D2D3FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFE585157211821211821211821211821
+211821211821211821211821211821211821211821211821211821211821211821211821
+211821231A23E2E1E2FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDDDBDC
+7A757A281F282118212118212118212118212118213A323AF7F6F6FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+2B222B211821211821211821AEABAEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF453D44211821211821211821211821C2C0C2FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF6F696F2118212118212118212118217D777DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF231A232118212118212118216E686EFFFFFFFFFFFF938F93211821211821211821
+211821241B24C5C3C5FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF908B8F
+3E363EF8F8F8FFFFFFFFFFFFFFFFFFF5F4F4A9A6A9595258231B23211821211821261D26
+5049507D787DA5A1A5C7C5C7E4E3E4FAFAFAFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFEEEE2
+FAB582F78533F77B21F77B21F77B21F77B21F77B21F77B21F77B21F77B21F77B21F77B21
+F77B21F77B21F88E41FABA8BFDEBDEFFFFFF797378757075FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF463F46211821211821211821211821BCB9BCFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFD1CFD12118212118215149508B878B8B878B8B878B8B878B
+8B878B8B878B8B878B8B878B8B878B8B878B8B878B6C666C211821211821211821211821
+837E83FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE1E0E1
+4C454C211821211821211821211821211821A7A4A7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2B222B211821
+211821211821AEABAEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF5D565D211821211821211821211821AAA6A9FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF484048
+211821211821211821211821989397FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF231A23
+2118212118212118216E686EFFFFFFFFFFFFFDFDFD655E64211821211821211821211821
+332A32E4E3E4FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA6A2A5211821827D81
+FEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEDECEDB0ADB0787378463E45231A23211821
+2118212118212118212219223027303D353D463E464B444B4B444B443C443A323A2D232A
+532F21854621AC5821C76521D86D21E37627F88B3DF8934AF9A161FAB481FCCEACFEEDE0
+FFFFFFFFFFFFFFFFFFCDCBCD241B247C777CFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+6962682118212118212118212118219C989CFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF6D676D211821211821C2BFC1FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4F3F32C232C2118212118212118212D252DF2F2F2
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0EFEF3D353D
+211821211821211821211821615A60FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2B222B211821211821211821
+AEABAEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF7F7A7F211821211821211821211821868186FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2F1F1241B24211821211821
+211821211821BFBCBFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF231A23211821211821
+2118216E686EFFFFFFFFFFFFFFFFFFF1F0F14139412118212118212118212118214D454C
+F7F6F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEEEDEE2E262E2118218E8A8EFEFEFE
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4F4F4D0CED0AEAAAD918C91
+787278645E64544D544841484139403C343B3C343C4139414A434A564F566760667C777C
+969195B4B1B4D8D6D8FAF9F9FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+D8D6D8352C34211821C0BDC0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF979296211821
+211821211821211821716B71FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE4E3E3
+241B24211821383038FCFCFCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF7A757A2118212118212118212118219D999DFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB8B5B8211821211821
+211821211821383038FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2B222B211821211821211821AEABAEFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAEAAAD
+211821211821211821211821575057FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB9B6B9211821211821211821211821241B24
+F0EFF0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF231A232118212118212118216E686E
+FFFFFFFFFFFFFFFFFFFFFFFFD8D6D82A222A211821211821211821211821726C72FEFEFE
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB4B0B3221922211821676167ECEBEBFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEB3B0B22D252D211821
+686268FEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD2D0D2211821211821211821
+2118213B333BFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF837E83211821211821
+888388FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFD3D1D32118212118212118212118213E363EFCFCFCFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFD3D353D211821211821211821
+271E27FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF2B222B211821211821211821AEABAEFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE8E7E8221922211821
+211821211821271E26F3F3F3FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF726C72211821211821211821211821595258FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF231A232118212118212118216E686EFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFB2AFB22118212118212118212118212118219F9B9EFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB1ADB02920292118213028309C979BF6F6F6FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD8D6D8635C62211821211821625B61F7F6F7FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFD3F373F211821211821211821211821
+D5D3D5FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2F1F12C242C211821211821DAD9DAFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FEFEFE4E464D211821211821211821211821B8B5B8FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF777277211821211821211821312931FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF2B222B211821211821211821AEABAEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF575057211821211821211821
+211821ADAAADFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFF2F1F22B222B211821211821211821211821ADAAADFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF231A232118212118212118216E686EFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFEFEFE827D82211821211821211821211821251C25C8C5C7FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFEFEEEFC5C2C4FFFFFFDAD9DA564F56211821211821332B338A858ADEDDDEFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FBFBFBC0BDBF655E64221922211821292129989397FCFCFCECEBECF0F0F0FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9995982118212118212118212118217F7A7FFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF9995992118212118214F474EFEFEFEFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA6A2A6
+211821211821211821211821564F56FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF8E8A8E211821211821211821534C52FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+2B222B211821211821211821AEABAEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB5B2B4211821211821211821211821504950
+FEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF989397
+2118212118212118212118213B333BF9F9F9FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF231A232118212118212118216E686EFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FAFAFA564F56211821211821211821211821342C34E5E4E5FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA6A2A6
+847F83FFFFFFFFFFFFFEFEFEBDBABD564F552118212118212118214C454C8F8A8ECAC7C9
+F8F7F8FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEEDEDEDB7B4B7797378352D35211821
+2118212921297D787DE6E5E6FFFFFFFFFFFFBBB8BA9C989BFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFF3F2F2342C34211821211821211821292129E9E8E8FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFAFAFA3A3239211821211821A19DA1FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3F3F32C242C211821
+211821211821211821D2D0D2FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF7F7A7F2118212118212118218A868AFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2B222B211821
+211821211821AEABAEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFDFDFD4E474E211821211821211821211821B9B6B9FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEEEDEE312831211821211821
+211821211821B3AFB2FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF231A23
+2118212118212118216E686EFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEAE9E9
+372F372118212118212118212118214F474EF7F7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF908B8F2F272FECEBEC
+FFFFFFFFFFFFFFFFFFFFFFFFD9D7D9898489423A42211821211821211821261D264D464D
+756F75969296B4B1B3CBC9CBDDDCDDEBEAEBF4F3F4F9F8F9F9F8F9F2F2F2E8E7E7DAD8D9
+C6C3C5ADA9AD8E898E6A646A413940211821211821211821241B24575057A39FA2F0EFF0
+FFFFFFFFFFFFFFFFFFFEFEFE615A60726C72FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFACA8AB2118212118212118212118216A6369FEFEFEFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAFACAF
+211821211821261E26EEEDEDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7A757A211821211821211821
+211821706A70FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF827D82999598FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+4F484F211821211821211821D9D8D9FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2B222B211821211821211821
+AEABAEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFD6D5D6281F28211821211821211821393139EFEEEEFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFE706A6F2118212118212118212118216C666C
+FEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF231A23211821211821
+2118216E686EFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCCCACB261D26
+211821211821211821211821756F74FEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB3B0B32118215E585EFAF9F9FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFEFEFEE0DFE0A8A4A8767075494249261D26211821211821
+211821211821211821211821211821211821211821211821211821211821211821211821
+2118212118212B232B524B52817C81B6B3B5EFEEEEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFADA9AC211821868185FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FEFEFE6B656B211821211821211821211821969296FEFEFEFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFE4C444B211821211821
+676167FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD3D1D3211821211821211821211821261D26
+E8E6E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF696268261D26D2D0D1FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDAD8DA221922211821
+211821686167FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2B222B211821211821211821AEABAEFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFB3B0B3231A232118212118212118215C555CF9F9F9FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFA19DA12118212118212118212118214E474DF4F4F4FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF231A232118212118212118216E686E
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA19DA1211821211821
+211821211821211821A19DA1FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8F8F83F373F211821635C62F4F3F4FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAFAFADEDCDDC1BEC1A8A4A8949094
+847F84787278726C716A646A6B656B726C717A757A868186969296ACA9ACC6C3C5E4E3E4
+FDFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB4B0B3251D25
+221A22D6D4D5FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5F4F5
+514A512118212118212118212118218A858AFDFCFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFD
+9E9A9EF6F6F6FFFFFFFFFFFFFFFFFFFFFFFFC5C3C5211821211821211821BAB7B9FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4D454C2118212118212118212118218B868AFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4F474E2118213C343BEAE9E9FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFE615B612118212118212D242DE2E1E2
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF2B222B211821211821211821AEABAEFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFB2AEB1261D26211821211821211821625C62F5F5F5FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+B0ACAF231A23211821211821211821504950EEEDEDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF231A232118212118212118216E686EFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFE726C71211821211821211821
+211821251C25C9C7C9FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFD3D1D32E252D211821423A41CAC8CAFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6F5F6837E832219222118218E898EFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1F0F1554E55
+2118212118212118212118215B545AE3E1E2FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD9D7D85A5359332B33FEFEFE
+FFFFFFFFFFFFFFFFFFFFFFFF615B61211821211821332B33FAFAFAFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFA6A2A5211821211821211821211821322931F6F6F6FFFFFFFFFFFF
+FFFFFFFFFFFFF9F8F92A222A211821211821463F46E6E5E6FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFEFEFE908B8F211821211821221922B6B2B5FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF2B222B211821211821211821AEABAEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+C7C4C7332B33211821211821211821494148D9D8D9FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCFCFC928D91231A22211821
+2118212118216F696EF6F5F6FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF231A232118212118212118216E686EFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6F6F64A434A211821211821211821211821
+352D35E6E5E6FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFD5D3D53F373F2118212219226B656BD8D6D7FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFAFAFAABA8AB3B333B2118212219228F8B8FFEFEFEFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8F8F8767176211821
+211821211821211821292029878287E7E6E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFDFDFDC7C4C66B656B231A23211821514950FFFFFFFFFFFFFFFFFF
+FFFFFFDAD8DA221922211821211821807B80FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFF3F3F32C232C211821211821211821211821A5A1A5FFFFFFFFFFFFFFFFFFFFFFFF
+BDBABD211821211821211821211821322931969195E0DEDFFEFEFEFFFFFFFFFFFFFEFDFD
+D1CFD16861672118212118212118219F9B9FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+2B222B211821211821211821AEABAEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7E6E7
+5E575D211821211821211821261D26817C81E5E4E5FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFEFEFEC6C3C550484F2118212118212118212F262FAAA6A9
+FEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF231A232118212118212118216E686EFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE1DFE0302730211821211821211821211821504950
+F8F8F8FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFF4F3F4868185271F272118212119215A535AAFACAFF3F3F3FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEE0DEDF908B8F
+3A3139211821211821443D44C6C3C6FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEB6B3B6383037211821
+211821211821211821241B245B545A959195BEBBBED5D3D5DBDADBD8D6D8C1BFC19E9A9E
+716B71362E3621182121182121182140383FC4C2C4FFFFFFFFFFFFFFFFFFFFFFFF777176
+211821211821211821D3D1D2FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+7A747A211821211821211821211821443D44FDFDFDFFFFFFFFFFFFFFFFFFF8F7F77F797E
+221922211821211821211821211821211821342B334D454C4A434A2F272F211821211821
+2118212A212AAFACAFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2B222B211821
+211821211821AEABAEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEB1AEB1
+3D353D211821211821211821231B235C555C999599C5C3C5E2E1E2F0EFEFF0EFF0E2E0E1
+C2BFC18E8A8E484047211821211821211821261D257B757AEAE9EAFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF231A23
+2118212118212118216E686EFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFBEBBBE221922211821211821211821211821777177FEFEFE
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFE6E5E6858085312931211821211821271F275F585E9A969ACECBCDF7F7F7
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFEFEFEEEEDEDBEBCBE8883874941492118212118212118214B444B
+ADA9ACFBFBFBFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4F4F4979397383038211821
+211821211821211821211821211821211821211821211821211821211821211821211821
+221922514950A6A2A6F8F7F8FFFFFFFFFFFFFFFFFFFFFFFFEAE9EA271F27241B24292028
+474047FEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD2D0D2211821
+281F28281F28211821211821BFBDBFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD4D2D36A646A
+271E27211821211821211821211821211821211821211821211821221922686268DFDEDF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2B222B2F262F3F373E292029
+AEABAEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAFAFAB1AEB1
+5D565D251C25211821211821211821211821211821211821211821211821211821211821
+2118212118213F373F8E898DE6E5E6FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF231A233229323C343C
+2F262E6E686EFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF908B902118212B222B3D353D3830382C232CA4A0A3FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFF8F8F8BAB7B9726C71342C34211821211821211821251C25453E45676167
+847E839B979BADAAADBBB9BBC4C2C4C8C5C8C8C5C8C2C0C2B8B5B8AAA6AA9591957D777C
+5E585E3B323A211821211821211821211821443C43868186D3D1D2FEFEFEFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBFBFBC1BFC17F7A7F4A424A
+261D25211821211821211821211821211821231A224139406F696EA29EA1E7E6E7FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBFBFBF5F4F4FAF9F9FEFEFEF9F9F9FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEF5F4F4FDFDFDFDFDFD
+F9F9F9F5F4F4F9F9F9FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0F0F0B3AFB2
+7D787D595259494148473F46514A516E686E9E9A9EE3E2E3FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7F7F7FEFEFEFFFFFFFDFDFDFBFBFBFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3F2F2
+C2BFC18F8A8F6A646A514A51473F46473F46473F464D464D605A607E797EA7A3A7DCDBDC
+FEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7F7F7FEFEFEFFFFFFFEFEFEF9F8F8
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFEFDFDF6F5F6FEFEFEFFFFFFFFFFFFFEFEFEF8F7F7FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFDFDFDD8D6D8A6A2A6797379524B52302730211821211821211821
+211821211821211821211821211821211821211821211821211821211821211821362E36
+5A5359837E83B1AEB1E6E5E6FEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBFBFBE4E2E3
+D2D0D1CECCCECFCDCFDEDCDEF7F6F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1F0F0D8D6D8C4C2C4B4B1B4A8A4A8
+A19DA19B979B9B979BA29EA2AAA6A9B6B3B6C7C4C6DCDADCF5F4F5FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2F1F2FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8934AFBC69FFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBBD90F99D59FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEAE9E9CBC9CBDFDEDFFEFEFEFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+EEEDEED2D0D2D1CFD1E8E7E8FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEAE9EA868186534C52696268676066463E45
+615A61C4C1C3FFFFFFFBB988F88837F88938F88939F88939F88838FEFBF8FFFFFFF9A96F
+F7832EF9A96FF9A569F88C3EF8964EFCDCC5FFFFFFFFFFFFFFFFFFF78838FCCFAEFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAB17CFCCDAAFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFF6F5F63F373FF3F2F2FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF88735FBC196FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAB685F89147FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFF7F6F6726C725049507C777C3A323A5D565CFEFEFEA4A0A3241B23372E36
+4942492219223E363E4038402921295E575DFFFFFFFFFFFFC7C4C6534C52635D63989397
+9793976761673F373F9B979BFDFDFDFFFFFFFFFFFFF3F2F32219224E464D6E686E5E575E
+362D35726C71F1F0F1FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFD1CFD1322A32837D82F5F4F5FFFFFFFFFFFFF5F5F58C888CA09CA0
+FFFFFFFAB07BF78633FEF9F5FFFBF9FEFBF9FEF3ECFEFDFCFFFFFFF9A96FF88E41FFFFFF
+FFFFFFFEFBF8F9A161F7812BFEF5EEFFFFFFFFFFFFF78735F77D25FCD9BFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFAAA71FBC9A3FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFA4A0A32118219E999DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFF88735FBC196FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFAB685F89147FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+8A858A514A50FAFAFAFFFFFFEFEEEF908C90FFFFFFF1F0F1F7F6F6FFFFFFF5F4F4211821
+AEABAEFFFFFFFCFCFCEDECECFFFFFFB4B1B4241B24AFABAEFFFFFFFFFFFFFFFFFFFFFFFF
+D0CECF332B33787378FEFEFEFFFFFFF3F2F32118219A969AFFFFFFFFFFFFD6D4D62B222A
+746E74FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+F0EFF0372F377B767BFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFFFFFFFAB07B
+F78634FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9A96FF88E41FFFFFFFFFFFFFFFFFF
+FCD9BFF77B21FCDCC4FFFFFFFFFFFFF78735F88F42F7802AFDE1CDFFFFFFFFFFFFFFFFFF
+FFFFFFFAAA71FBC9A3FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFCFC
+4C444B6E686E3E373EFCFCFCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFF88735FBC196FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFAB685F89147FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4F484F868186
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5F4F4211821AEABAEFFFFFF
+FFFFFFFFFFFFE3E1E22A222A736D72FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBEBBBE
+211821B9B6B9FFFFFFF3F2F32118219A969AFFFFFFFFFFFFFFFFFF6861673F373EFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF928D91241B24
+EBEAEBFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAB07BF78634FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9A96FF88E41FFFFFFFFFFFFFFFFFFFBC59EF77B21
+FDECDFFFFFFFFFFFFFF78735FDE4D2F89248F78431FDE9DAFFFFFFFFFFFFFFFFFFFAAA71
+FBC9A3FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBAB7B9797479D9D7D8
+211821B8B5B8FFFFFFFFFFFFFFFFFFFFFFFFFEF2EAFAB481F99B58F9A86CFDE0CBF88735
+FBC196FEF1E8F9A66AFCD7BCFFFFFFFFFFFFFFFFFFFEF6F1F9AA71FEFBF9FFFFFFFDEBDE
+FBBC8EFAAB72FAB786FDEBDEFFFFFFFFFFFFFDE1CDF9A364FDE8D8F9A76BF88A3AF9A05F
+FDECE0FFFFFFFFFFFFFFFFFFFEF3ECFBC39AFAAE77FAAD75FBC49DFEF6F0FFFFFFFFFFFF
+FDE6D4FAB583FAAD74FBC197FEF8F3FFFFFFFFFFFFFEFEFDFBC9A5F99F5EF99F5EFBC6A0
+FAB582F89147FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6059603B333BE8E7E8FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5F4F4211821AEABAEFFFFFFFFFFFFFFFFFF
+7E787D211821DCDADCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFE463E46585158
+FFFFFFF3F2F32118219A969AFFFFFFFFFFFFFDFDFD4841485B545AFFFFFFFFFFFFFEFEFE
+FDDCC4FAB481FAAC73FBC298FEF8F4FFFFFFFFFFFFFEFAF6FBC6A0FAB481FAB17CFAB989
+FBBD90FCD5B9FFFFFFFFFFFFFDE0CBFAB37FFAAD75FBC59EFEFAF8FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFBC7A0FBBE92FBC9A4F88E42F88D40FBBB8DFEFDFCFBBE92F88F42
+F88F43FBC69FFFFEFEFFFFFFFFFFFFFDECE0FBBC8FFAAB73FAB785FDEADCFFFFFFFFFFFF
+FDE3CFF9A364FDE8D8F9A86CF88A3AF99F5DFDEBDDFFFFFFFFFFFFFFFEFEFDDFC9FAB582
+FAAB73FBBF94FEF6F1FFFFFFFFFFFFFEFBF9FBC9A4FAB380FAB27DFAB887FBBD90FCD2B3
+FFFFFFFFFFFFFDE3D1FAB481FAAD75FBC39AFEF9F5FFFFFFFFFFFFFBCBA8FCCEADFCD6BA
+F99B57FEFAF6FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF524A51463F46FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAB07BF78430FDE4D1FDE4D1FDDFCA
+FDE3D0FFFFFFFFFFFFF9A96FF88E41FFFFFFFEFBF9FCD0B0F7822DFBC096FFFFFFFFFFFF
+FFFFFFF78735FDECE0FEF1E7F78B3CF78A3AFEEFE5FFFFFFFFFFFFFAAA71FBC9A3FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF564F56D6D4D6FFFFFF585258564F56
+FFFFFFFFFFFFFFFFFFFEF8F4F88E40F9A96FFEF6F0FEF6F0F9A364F77E27FBC196FFFFFF
+F8964FF9A060FFFFFFFFFFFFFFFFFFFCCDACFAAC74FFFFFFFEF3EBF9A364FEF1E8FEF5EF
+F99F5EF78736FEFBF8FFFFFFFCD8BDF77B21F99D5AFDE1CDFDE1CDF88D40F89349FEFEFE
+FFFFFFFDE6D6F78531FBBD90FEF9F5FEF4ECFAAD76FCD1B2FFFFFFFCCEADF78634FDE2CE
+FEFBF9FBC59DF8974FFEFBF9FFFFFFFAB786F78939FDE7D6FEFCFAFBC9A4F7812CF89147
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB8B5B8241B242E262E837E82DBDADBFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFF5F4F4211821AEABAEFFFFFFFFFFFFFFFFFF4139413D353D
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF757075281F28FCFCFCF3F2F3
+2118219A969AFFFFFFE9E8E9736D73383038D7D5D7FFFFFFFFFFFFFCCEACFBBE92FEFAF7
+FDE6D5F78736F9AA70FFFFFFFFFFFFF99E5CF9A364FEFBF9FEF6EFF8944BFCD2B4FEF9F5
+FFFFFFFBC49CF78A3BFDE8D8FEFBF8FAB98AF9A05FFEFEFDFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFAB07BF7832EFBBE92FEF1E8FBCAA6F77D24F99E5CFCCFAEFEF7F2FBC196F77B21
+FCD6BAFFFFFFFEF4EDF9A162FEF1E7FEF6F0F9A161F78633FEFAF6FFFFFFFCDAC0F77B21
+F99C59FDE1CCFDE2CFF88F42F89045FFFEFEFFFFFFFCD5B8FAB888FEF9F5FDEADBF88B3B
+F9A364FFFFFFFFFFFFF9A568F99D5AFEFAF7FEF8F3F89852FCCDAAFEF9F5FFFFFFFBCAA6
+F78836FDE5D3FEFBF8FBC095F89A56FEFDFBFFFFFFF9A86DF89044F9A76BFAB582FEFEFE
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3E363E544D54FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAB07BF78029FAB685FAB684FAAE77FBC39BFFFFFF
+FFFFFFF9A96FF7822DF89852F77D25FAAE76FDE7D7FFFFFFFFFFFFFFFFFFFFFFFFF78735
+FDECE0FFFFFFFDEADCF78532F89045FEF5EEFFFFFFFAAA71FBC9A3FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFCFCDCF413A41CDCBCCCDCBCC8C878B211821D2D0D2FFFFFF
+FFFFFFFBC7A1F77D25FEF4EDFFFFFFFFFFFFFDE8D9F77B21FBC196FFFFFFFCCFAEF77D24
+FEF2EAFFFFFFFFFFFFF99D5BFDE6D5FFFFFFFEFDFDFEFCFAFFFFFFFFFFFFFDE7D7F77B21
+FDE5D3FFFFFFFCD8BDF77B21FDDDC5FFFFFFFFFFFFFCD0B1F77B21FEF2EAFFFFFFF89954
+F89954FEFEFEFFFFFFFFFFFFFEFEFDFEFDFCFEF9F5F7822DFBC49BFFFFFFFFFFFFFEFEFD
+F88A3BFCCEADFEF4EDF77D25FBC7A1FFFFFFFFFFFFFEFEFEF8944CF89147FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD6D4D56B646A231A23221922888387FEFEFEFFFFFF
+FFFFFFFFFFFFF5F4F4211821AEABAEFFFFFFFFFFFFFFFFFF2E252E5C555BFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7B767B211821F3F3F3F3F2F3211821514A51
+332B33302830A5A1A5F2F1F2FFFFFFFFFFFFFFFFFFFEFBF8FFFEFEFFFFFFFFFFFFFBC096
+F78837FFFFFFFEF5EEF77B21FDDEC8FFFFFFFFFFFFFBC39BF89750FFFFFFFEF1E8F77D25
+FCD0B1FFFFFFFFFFFFFEFBF8F7812CFCDAC1FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAB07B
+F88A3AFEFEFEFFFFFFFFFFFFF9A263F9A05FFFFFFFFFFFFFFEFEFEF78939FAB684FFFFFF
+FEFEFDFEFCFAFFFFFFFFFFFFFDE9DBF77B21FDE2CFFFFFFFFCDAC0F77B21FCDAC0FFFFFF
+FFFFFFFCD3B5F77B21FEF0E5FFFFFFFEFBF8FEFEFEFFFFFFFFFFFFFBC7A1F7812BFFFFFF
+FEFCF9F77B22FCD7BCFFFFFFFFFFFFFBCAA7F89044FFFFFFFEF6F0F78029FBC9A5FFFFFF
+FFFFFFFEFDFCF78633FCD4B6FFFFFFF9A86DF89147FEFDFDFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF494149453D44FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFAB07BF78634FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9A96F
+F88E41FEEEE3F78532F8964FFEFBF8FFFFFFFFFFFFFFFFFFFFFFFFF78735FDECE0FFFFFF
+FFFFFFFDE2CEF7802AF89851FEF9F5FAAA71FBC9A3FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF6B656B7772778A858A8A858A8A858A2F272F716B70FFFFFFFFFFFFF9A86D
+F89146FFFFFFFFFFFFFFFFFFFEFEFEF7802AFBC196FFFFFFFEFBF8F78735FBC299FFFFFF
+FEEDE2F99C59FFFEFEFFFFFFFFFFFFFFFFFFFEFAF6FDE1CDFAB685F77B21FDE1CDFFFFFF
+FCD8BDF77B21FEF3EAFFFFFFFFFFFFFDE1CCF77B21FDEBDEFEF7F1F77B22FBC196FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFDDFCAF77B21FAAF79FBC095FBC095FBBF93F88A3BFAB583
+FCD8BEF77B21FDE5D4FFFFFFFFFFFFFFFFFFFAB07AF89147FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDEDCDE564F56211821C9C6C8FFFFFFFFFFFFFFFFFF
+F5F4F4211821AEABAEFFFFFFFFFFFFFFFFFF3E363D514A51FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF60595F261D26FBFBFBF3F2F32118219A969A9C989C211821
+A19DA0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEF4EDFCD9C0F99D5BF78533FFFFFF
+FEFAF6F77D24FDDEC8FFFFFFFFFFFFFBBF94F8964EFFFFFFFCD3B5F77B21FAB684FBC095
+FBC095FBBE93F78431FBC197FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAB07BF8934AFFFFFF
+FFFFFFFFFFFFFAA86DFAAD75FFFFFFFFFFFFFFFFFFF88E42FAB583FFFFFFFFFFFFFFFFFF
+FEFAF7FDE2CEFAB887F77B21FDDFCAFFFFFFFCDAC0F77B21FEF0E6FFFFFFFFFFFFFDE2CF
+F77B21FDE9DBFFFFFFFFFFFFFFFEFEFEF5EFFCDBC2F9A262F77E27FFFFFFFEFDFDF78029
+FCD7BCFFFFFFFFFFFFFBC6A0F88F42FFFFFFFCDAC1F77B21FAB27EFBC095FBC095FBBF93
+F78837FBBA8BFFFFFFF9A86DFAAC74FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF787277251C25F2F1F2FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFAB07BF78634FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9A96FF88E41FFFFFF
+FCDAC2F77C23FAAD75FEFEFEFFFFFFFFFFFFFFFFFFF78735FDECE0FFFFFFFFFFFFFFFFFF
+FCD8BEF77D25F9A05FF9A86CFBC9A3FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE2E1E2
+3C343CFCFCFCFFFFFFFFFFFFFFFFFF807B80261D26E7E6E7FFFFFFF99F5DF8934AFFFFFF
+FFFFFFFFFFFFFFFEFEF78431FBC196FFFFFFFFFFFFFBBC8EF88D40FEFDFCFAB98AFCD4B8
+FFFFFFFFFFFFFEF3EAF9A365F9A161FBCBA8FCD2B3F77B21FDE1CDFFFFFFFCD8BDF77B21
+FEF4ECFFFFFFFFFFFFFDE1CCF77B21FDEBDEFEEFE5F77B21FBC59EFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFCD8BEF77B21FCCDABFDE7D7FDE7D7FDE7D7FDE7D7FEF2E9FCCFAEF77B21
+FDE8D8FFFFFFFFFFFFFFFFFFFAB481F89147FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFE1E0E12118219E9A9EFFFFFFFFFFFFFFFFFFF5F4F4211821
+AEABAEFFFFFFFFFFFFFFFFFF6D676D292129F5F5F5FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFF5F5F52C232C585157FFFFFFF3F2F32118219A969AFEFEFE6D676D251C25C9C7C9
+FFFFFFFFFFFFFFFFFFFDDEC8F8964FFAB07AFCD3B5FAB481F78533FFFFFFFFFFFFFAB786
+F99D5BFDEADBFDDEC7F78A3AFCD1B3FFFFFFFCCCAAF77B21FCD7BCFDE7D7FDE7D7FDE7D7
+FDE7D7FEF4ECFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAB07BF8934AFFFFFFFFFFFFFFFFFF
+FAA86DFAAD75FFFFFFFFFFFFFFFFFFF88E42FAB583FFFFFFFEF4ECF9A567F9A060FBCAA6
+FCD3B4F77B21FDDFCAFFFFFFFCDAC0F77B21FEF2EAFFFFFFFFFFFFFDE2CFF77B21FDE9DB
+FFFFFFFDE3D0F89851FAAD76FCD1B2FAB98AF77E27FFFFFFFFFFFFFBBD90F89954FDE8D8
+FDE0CCF88C3EFBCBA8FFFFFFFCD3B5F77B21FCD2B3FDE7D7FDE7D7FDE7D7FDE7D7FEF3EA
+FFFFFFF9A86DFAAD75FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+D3D1D3231A239A9599FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAB07B
+F78634FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9A96FF88E41FFFFFFFFFFFFFBBF94
+F77B21FBC8A2FFFFFFFFFFFFFFFFFFF78735FDECE0FFFFFFFFFFFFFFFFFFFFFFFFFCCDAB
+F77B22F77C24FBC9A3FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF817C81898488FFFFFF
+FFFFFFFFFFFFFFFFFFD9D7D82118218B868BFFFFFFFAAD76F78531FEFDFCFFFFFFFFFFFF
+FEF1E8F77B21FBC196FFFFFFFFFFFFFEF1E8F77E26FCCEADF89349FEFCFBFFFFFFFFFFFF
+FAAD75F99D5AFEFEFEFFFFFFFEEBDDF77B21FDE1CDFFFFFFFCD8BDF77B21FEF4ECFFFFFF
+FFFFFFFDE1CCF77B21FDEBDEFEFBF9F7802AF9A96FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FEF0E6F77B22FBCAA6FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDDDC6F77B21FCD8BDFFFFFF
+FFFFFFFFFFFFF99D5BF89147FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD9D8D9FFFFFF
+FFFFFFFFFFFFF3F2F2221922C1BEC1FFFFFFFFFFFFFFFFFFF5F4F4211821AEABAEFFFFFF
+FFFFFFFFFFFFCECCCE231A23999599FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF969296
+221922C3C0C2FFFFFFF3F2F32118219A969AFFFFFFF5F4F4463F46352D35E6E5E6FFFFFF
+FEFEFDF78736FBC39BFFFFFFFFFFFFFBC39AF78533FFFFFFFFFFFFFCDAC2FAAB72FBC8A3
+FCCFAFFEEFE4FFFFFFFFFFFFFDE5D3F77B21FCD7BBFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAB07BF8934AFFFFFFFFFFFFFFFFFFFAA86DFAAD75
+FFFFFFFFFFFFFFFFFFF88E42FAB583FFFFFFFAB07AF99B56FEFEFEFFFFFFFDECE0F77B21
+FDDFCAFFFFFFFCDAC0F77B21FEF2EAFFFFFFFFFFFFFDE2CFF77B21FDE9DBFFFFFFF88E41
+FBBD8FFFFFFFFFFFFFFBCAA6F77E27FFFFFFFFFFFFFDDFCAF9A96FFBC8A3FCCFAEFEEDE1
+FFFFFFFFFFFFFDEBDEF77B21FCD0B0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9A86D
+FAAD75FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9F9B9F
+271E26A7A4A7FDFDFDFFFFFFFFFFFFFFFFFFD6D4D6CFCDCFFFFFFFFAB07BF78633FEFEFD
+FFFEFEFEFDFBFEF5EEFEFBF8FFFFFFF9A96FF88E41FFFFFFFFFFFFFEFEFDF9A466F77D25
+FDE0CAFFFFFFFFFFFFF78735FDECE0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBC197F77B21
+FBC9A3FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0EFF02C232CDAD9DAFFFFFFFFFFFFFFFFFF
+FFFFFFFEFEFE544D54312931F6F6F6FDE5D4F77E26FBC49DFFFFFFFEFDFBFAB17CF78029
+FBC196FFFFFFFFFFFFFFFFFFF9A96EF77E26FBBC8FFFFFFFFFFFFFFFFFFFF9A568F99B57
+FEFEFDFFFFFFFBC9A4F77B21FDE1CDFFFFFFFCD8BDF77B21FEF4ECFFFFFFFFFFFFFDE1CC
+F77B21FDEBDEFFFFFFFBBD90F77D25FDE2CEFFFFFFFFFFFFFEF3EBFDE2CEFFFFFFF9A86D
+F89044FEF3ECFFFFFFFFFEFEFDDFC9FDEBDEFEFDFCF8964EF89954FEFAF6FFFFFFFCD8BD
+F78735F89147FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFE423A41CDCBCDFFFFFFFEFEFE
+8E898E585158FDFDFDFFFFFFFFFFFFFFFFFFF5F4F4211821AEABAEFFFFFFFFFFFFFFFFFF
+FFFFFFAEAAAD2C232CACA9ACFEFEFEFFFFFFFFFFFFFEFEFEB3B0B32A212AA4A0A3FFFFFF
+FFFFFFF3F2F32118219A969AFFFFFFFFFFFFDEDCDD2E252D504950F8F8F8FEFDFBF7802A
+FBC197FFFFFFFEFCFAF9A466F78532FFFFFFFFFFFFF9A467FAAB72FDE2CEFDEBDDFDEADC
+FEFDFBFFFFFFFEFEFEF99C58F89953FEF7F2FFFFFFFEFEFEFCD7BCFEF3ECFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFAB07BF8934AFFFFFFFFFFFFFFFFFFFAA86DFAAD75FFFFFFFFFFFF
+FFFFFFF88E42FAB583FFFFFFF9A76CF89953FEFDFCFFFFFFFBCBA8F77B21FDDFCAFFFFFF
+FCDAC0F77B21FEF2EAFFFFFFFFFFFFFDE2CFF77B21FDE9DBFFFFFFF78532FABA8BFFFFFF
+FEFDFCF9AA70F77E27FFFEFEFFFFFFFAAB72F9A66AFDE1CCFDEBDDFDEADCFEFCFBFFFFFF
+FFFEFEF9A364F8944AFEF5EFFFFFFFFFFEFEFCDBC3FEEEE3FFFFFFF9A86DFAAD75FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC0BEC04C454C
+443C447A74797C777C5B545A6E686EE9E8E9FFFFFFFBBB8DF88D3FF89146F89248F88E41
+F88D3FFEEDE1FFFFFFFAB888F9A364FFFFFFFFFFFFFFFFFFFEF7F1F99B57F9A161FEF7F3
+FFFFFFF99D5AFEEFE4FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFAB887FCD0B0FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFACA9AC666066FEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+B3B0B3463E46B8B5B7FFFFFFFCDDC5F8954EF89954F9A86DFDE1CDF99D5AFCCBA8FFFFFF
+FFFFFFFFFFFFFDE2CEF89349FEF0E6FFFFFFFFFFFFFFFFFFFDE4D2F78939F89147F9A96E
+FCCFAEF99B58F9A86DFEFAF8FDDEC8F8934AFEF5EFFFFFFFFFFFFFFDE5D4F8944BFEEEE3
+FFFFFFFEFEFEFBCCAAF8944BF9A263FAAA71F9A76CFEEDE2FFFFFFFEF8F3FAAB72F78532
+F89750F8954DFAAE77FEF6F0FFFFFFFEF4ECF9A96EF89146F9A567FBC39AFBC299F9A669
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCFCFC898489352C344A434A4840476E686EF1F0F0
+FFFFFFFFFFFFFFFFFFFFFFFFF6F6F64A434ABBB9BBFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+D9D7D96C666C574F567F797E847E835E575E6B656BD6D4D5FFFFFFFFFFFFFFFFFFF4F4F4
+4B434AABA8ABFFFFFFFFFFFFFFFFFFBAB7B94942499C989CFFFFFFFBC7A1F7812BF99C59
+FAAD75FCCFAEF88F43FBC59EFFFFFFFCD5B9F77D25F78735F88C3EF77F28F78A3AFDE5D4
+FFFFFFFEF3EBF9A568F78532F89852F8954CFAB482FEFAF6FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFBBE91FAA76BFFFFFFFFFFFFFFFFFFFBB887FBBB8EFFFFFFFFFFFFFFFFFFF9A364
+FBC299FFFFFFFDE6D5F78A3AF89045F9A86DFCCFAEF99C59F9A76BFEFAF6FDDFCAF8934A
+FEF4EDFFFFFFFFFFFFFDE6D6F8944BFEEDE0FFFFFFFBCDABF7812CF99A56FAAC73FCD0B0
+F89044FBC094FFFFFFFCDBC2F77E27F78634F88D3FF78029F78736FDE1CCFFFFFFFEF6EF
+F9A96EF78532F89751F8954DFAB17CFEF7F3FFFFFFFAB787FBBB8DFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEE9E8E8D0CECF
+D8D6D8F9F9F9FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFDFDFEF5EFFEFEFEFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFEFCFAFEFDFCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFCFAFEF3EBFEFCFA
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDECECECF7F6F7FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FCFCFCECECECEDECEDFCFCFCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFBF8FEF7F2FFFFFFFFFFFF
+FFFFFFFFFFFFFEF3ECF88D40FDE4D1FFFEFEFFFFFFFEF7F1F89145F9A86DFFFFFFFFFFFF
+FFFFFFFEFBF9FEF3EBFEFCFBFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFEFDFDFEF5EFFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFBF9FEF7F1FFFFFFFFFFFFFFFFFFFFFFFF
+FEF7F2F88E40FDE0CAFEFEFEFFFFFFFEF8F4F8964EF9A262FFFFFFFFFFFFFFFFFFFEFCFA
+FEF3EBFEFCFAFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FCD5B9F99F5EFFFFFFFFFFFFFFFFFFFFFFFFFAB786F9A66AFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDDCC4F89852
+FFFFFFFFFFFFFFFFFFFFFFFFFBBE92F9A05FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDE7D7F78430
+FDEDE0FFFFFFFFFFFFFEF6F0F89853FDE2CEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEEDE1F7822EFDE9D9FFFFFF
+FFFFFFFEF8F3F99C58FCDCC5FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCD1B1F8954DF9A669
+F9A96EF9A467FDE2CEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCD5B9F8964EF9A568F9A96EF9A466
+FDDEC7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+end
+%%PageTrailer
+%%Trailer
+%%EOF
diff --git a/Documentation/images/CASTOR_logo_250.png b/Documentation/images/CASTOR_logo_250.png
new file mode 100644
index 0000000000000000000000000000000000000000..8b2c4335313614c8cbfd3de222f83be4b44b728d
GIT binary patch
literal 12947
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
JWt~$(698)|cVqwn

literal 0
HcmV?d00001

diff --git a/Documentation/images/cern_logo.eps b/Documentation/images/cern_logo.eps
new file mode 100644
index 0000000000..9469b19302
--- /dev/null
+++ b/Documentation/images/cern_logo.eps
@@ -0,0 +1,569 @@
+%!PS-Adobe-3.0 EPSF-3.0
+%%Creator: (ImageMagick)
+%%Title: (images/cern_logo.eps)
+%%CreationDate: (Tue Aug 31 17:25:21 2004)
+%%BoundingBox: 0 0 96 96
+%%HiResBoundingBox: 0 0 96 96
+%%DocumentData: Clean7Bit
+%%LanguageLevel: 1
+%%Pages: 1
+%%EndComments
+
+%%BeginDefaults
+%%EndDefaults
+
+%%BeginProlog
+%
+% Display a color image.  The image is displayed in color on
+% Postscript viewers or printers that support color, otherwise
+% it is displayed as grayscale.
+%
+/DirectClassPacket
+{
+  %
+  % Get a DirectClass packet.
+  %
+  % Parameters:
+  %   red.
+  %   green.
+  %   blue.
+  %   length: number of pixels minus one of this color (optional).
+  %
+  currentfile color_packet readhexstring pop pop
+  compression 0 eq
+  {
+    /number_pixels 3 def
+  }
+  {
+    currentfile byte readhexstring pop 0 get
+    /number_pixels exch 1 add 3 mul def
+  } ifelse
+  0 3 number_pixels 1 sub
+  {
+    pixels exch color_packet putinterval
+  } for
+  pixels 0 number_pixels getinterval
+} bind def
+
+/DirectClassImage
+{
+  %
+  % Display a DirectClass image.
+  %
+  systemdict /colorimage known
+  {
+    columns rows 8
+    [
+      columns 0 0
+      rows neg 0 rows
+    ]
+    { DirectClassPacket } false 3 colorimage
+  }
+  {
+    %
+    % No colorimage operator;  convert to grayscale.
+    %
+    columns rows 8
+    [
+      columns 0 0
+      rows neg 0 rows
+    ]
+    { GrayDirectClassPacket } image
+  } ifelse
+} bind def
+
+/GrayDirectClassPacket
+{
+  %
+  % Get a DirectClass packet;  convert to grayscale.
+  %
+  % Parameters:
+  %   red
+  %   green
+  %   blue
+  %   length: number of pixels minus one of this color (optional).
+  %
+  currentfile color_packet readhexstring pop pop
+  color_packet 0 get 0.299 mul
+  color_packet 1 get 0.587 mul add
+  color_packet 2 get 0.114 mul add
+  cvi
+  /gray_packet exch def
+  compression 0 eq
+  {
+    /number_pixels 1 def
+  }
+  {
+    currentfile byte readhexstring pop 0 get
+    /number_pixels exch 1 add def
+  } ifelse
+  0 1 number_pixels 1 sub
+  {
+    pixels exch gray_packet put
+  } for
+  pixels 0 number_pixels getinterval
+} bind def
+
+/GrayPseudoClassPacket
+{
+  %
+  % Get a PseudoClass packet;  convert to grayscale.
+  %
+  % Parameters:
+  %   index: index into the colormap.
+  %   length: number of pixels minus one of this color (optional).
+  %
+  currentfile byte readhexstring pop 0 get
+  /offset exch 3 mul def
+  /color_packet colormap offset 3 getinterval def
+  color_packet 0 get 0.299 mul
+  color_packet 1 get 0.587 mul add
+  color_packet 2 get 0.114 mul add
+  cvi
+  /gray_packet exch def
+  compression 0 eq
+  {
+    /number_pixels 1 def
+  }
+  {
+    currentfile byte readhexstring pop 0 get
+    /number_pixels exch 1 add def
+  } ifelse
+  0 1 number_pixels 1 sub
+  {
+    pixels exch gray_packet put
+  } for
+  pixels 0 number_pixels getinterval
+} bind def
+
+/PseudoClassPacket
+{
+  %
+  % Get a PseudoClass packet.
+  %
+  % Parameters:
+  %   index: index into the colormap.
+  %   length: number of pixels minus one of this color (optional).
+  %
+  currentfile byte readhexstring pop 0 get
+  /offset exch 3 mul def
+  /color_packet colormap offset 3 getinterval def
+  compression 0 eq
+  {
+    /number_pixels 3 def
+  }
+  {
+    currentfile byte readhexstring pop 0 get
+    /number_pixels exch 1 add 3 mul def
+  } ifelse
+  0 3 number_pixels 1 sub
+  {
+    pixels exch color_packet putinterval
+  } for
+  pixels 0 number_pixels getinterval
+} bind def
+
+/PseudoClassImage
+{
+  %
+  % Display a PseudoClass image.
+  %
+  % Parameters:
+  %   class: 0-PseudoClass or 1-Grayscale.
+  %
+  currentfile buffer readline pop
+  token pop /class exch def pop
+  class 0 gt
+  {
+    currentfile buffer readline pop
+    token pop /depth exch def pop
+    /grays columns 8 add depth sub depth mul 8 idiv string def
+    columns rows depth
+    [
+      columns 0 0
+      rows neg 0 rows
+    ]
+    { currentfile grays readhexstring pop } image
+  }
+  {
+    %
+    % Parameters:
+    %   colors: number of colors in the colormap.
+    %   colormap: red, green, blue color packets.
+    %
+    currentfile buffer readline pop
+    token pop /colors exch def pop
+    /colors colors 3 mul def
+    /colormap colors string def
+    currentfile colormap readhexstring pop pop
+    systemdict /colorimage known
+    {
+      columns rows 8
+      [
+        columns 0 0
+        rows neg 0 rows
+      ]
+      { PseudoClassPacket } false 3 colorimage
+    }
+    {
+      %
+      % No colorimage operator;  convert to grayscale.
+      %
+      columns rows 8
+      [
+        columns 0 0
+        rows neg 0 rows
+      ]
+      { GrayPseudoClassPacket } image
+    } ifelse
+  } ifelse
+} bind def
+
+/DisplayImage
+{
+  %
+  % Display a DirectClass or PseudoClass image.
+  %
+  % Parameters:
+  %   x & y translation.
+  %   x & y scale.
+  %   label pointsize.
+  %   image label.
+  %   image columns & rows.
+  %   class: 0-DirectClass or 1-PseudoClass.
+  %   compression: 0-none or 1-RunlengthEncoded.
+  %   hex color packets.
+  %
+  gsave
+  /buffer 512 string def
+  /byte 1 string def
+  /color_packet 3 string def
+  /pixels 768 string def
+
+  currentfile buffer readline pop
+  token pop /x exch def
+  token pop /y exch def pop
+  x y translate
+  currentfile buffer readline pop
+  token pop /x exch def
+  token pop /y exch def pop
+  currentfile buffer readline pop
+  token pop /pointsize exch def pop
+  /Times-Roman findfont pointsize scalefont setfont
+  x y scale
+  currentfile buffer readline pop
+  token pop /columns exch def
+  token pop /rows exch def pop
+  currentfile buffer readline pop
+  token pop /class exch def pop
+  currentfile buffer readline pop
+  token pop /compression exch def pop
+  class 0 gt { PseudoClassImage } { DirectClassImage } ifelse
+  grestore
+} bind def
+%%EndProlog
+%%Page:  1 1
+%%PageBoundingBox: 0 0 96 96
+userdict begin
+DisplayImage
+0 0
+96 96
+12.000000
+96 96
+1
+0
+0
+32
+FFFFFF
+EEEEF3
+DCDBE9
+CBCDDF
+BBBED6
+AEAEC9
+9B9FBF
+8B90B5
+7D84AC
+7079A3
+5F6D99
+526190
+465887
+344C7F
+274477
+163A6F
+003368
+000000
+000000
+000000
+000000
+000000
+000000
+000000
+000000
+000000
+000000
+000000
+000000
+000000
+000000
+000000
+090C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C
+0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C
+0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C090C1010101010101010101010
+101010101010101010101010101010101010101010101010101010101010101010101010
+101010101010101010101010101010101010101010101010101010101010101010101010
+10101010101010101010100C0C1010101010101010101010101010101010101010101010
+101010101010101010101010101010101010101010101010101010101010101010101010
+10101010101010101010101010101010101010101010101010101010101010101010100C
+0C1010101010101010101010101010101010101010101010101010101010101010101010
+101010101010101010101010101010101010101010101010101010101010101010101010
+10101010101010101010101010101010101010101010100C0C10100C0000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+00000000000000081010100C0C10100C0410101010101010101010101010101010101010
+101010101010101010101010101010101010101010101010101010101010101010101010
+10101010101010101010101010101010101010101010101010101010101008081010100C
+0C10100C0410101010101010101010101010101010101010101010101010101010101010
+101010101010101010101010101010101010101010101010101010101010101010101010
+10101010101010101010101010101010101008081010100C0C10100C0410101010101010
+101010101010101010101010101010101010101010101010101010101010101010101010
+101010101010101010101010101010101010101010101010101010101010101010101010
+10101010101008081010100C0C10100C0410101010101010101010101010101010101010
+101010101010101010101010101010101010101010101010101010101010101010101010
+10101010101010101010101010101010101010101010101010101010101008081010100C
+0C10100C0410101010101010101010101010101010101010101010101010101010101010
+101010101010101010101010101010101010101010101010101010101010101010101010
+10101010101010101010101010101010101008081010100C0C10100C0410101010101010
+101010101010101010101010101010101010101010101010101010101010101010101010
+101010101010101010101010101010101010101010101010101010101010101010101010
+10101010101008081010100C0C10100C0410101010101010101010101010101010101010
+101010101010101010101010100D0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C
+0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C08081010100C
+0C10100C0410101010101010101010101010101010101010101010101010100F0A070400
+000000000000000000000000000000000000000000000000000000000000000000000000
+00000000000000000000000000000000000008081010100C0C10100C0410101010101010
+101010101010101010101010101010100F09030000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+00000000000008081010100C0C10100C0410101010101010101010101010101010101010
+10100E060000000000000000000000000000000000000000000000000000000000000000
+00000000000000000000000000000000000000000000000000000000000008081010100C
+0C10100C04101010101010101010101010101010101010100E0600000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+00000000000000000000000000000000000008081010100C0C10100C0410101010101010
+1010101010101010101010090100000000000000000307090C0E101010100C0C08050100
+00000000000000020C101010101010101010101010101010101010101010101010101010
+10101010101008081010100C0C10100C04101010101010101010101010101010100E0400
+00000000000003090E10101010101010101010101010100D070100000000000000071010
+10101010101010101010101010101010101010101010101010101010101008081010100C
+0C10100C041010101010101010101010101010100C01000000000000040C101010101010
+10101010101010101010101010100A02000000000000030F101010101010101010101010
+10101010101010101010101010101010101008081010100C0C10100C0410101010101010
+101010101010100A000000000000030C1010101010101010101010101010101010101010
+101010100A010000000000020D1010101010101010101010101010101010101010101010
+10101010101008081010100C0C10100C04101010101010101010101010100A0000000000
+000910101010101010101010101010101010101010100E0C090808080B0F050000000000
+010D1010101010101010101010101010101010101010090C0D101010101008081010100C
+0C10100C041010101010101010101010100A0000000000020D1010101010101010101010
+1010101010100E09050100000000000000050F0A0100000000010D101010101010101010
+1010101010101010100F0000000C1010101008081010100C0C10100C0410101010101010
+101010100D0000000000030F1010101010101010101010101010100F0903000000000000
+000000000000020D0D0100000000030F10101010101010101010101010101010100C0000
+000F1010101008081010100C0C10100C04101010101010101010100F0100000000030F10
+101010101010101010101010100F0801000000000000000001040404040403010A0D0100
+00000004100F1010101010101010101010101010100B000000101010101008081010100C
+0C10100C04101010101010101010100400000000030F1010101010101010101010101010
+080100000000000005090C1010101010101010100E100D0100000000080D050E10101010
+10101010101010101008000003101010101008081010100C0C10100C0410101010101010
+10100900000000020F101010101010101010101010100D030000000000040A0F10101010
+10101010101010101010100C00000000000D080109101010101010101010101010070000
+04101010101008081010100C0C10100C0410101010101010100E01000000000D10101010
+101010101010101010090000000000050D10101010101010101010101010101010101010
+0900000000040F0200040F1010101010101010101004000007101010101008081010100C
+0C10100C0410101010101010100600000000081010101010101010101010101006000000
+00030C1010101010101010101010101010101010101010101004000000000B0A0000020D
+10101010101010101003000008101010101008081010100C0C10100C0410101010101010
+0E0000000003101010101010101010101010100600000000081010101010101010101010
+101010101010101010101010100E000000000210020000010D1010101010101010000000
+0C101010101008081010100C0C10100C041010101010101006000000000C101010101010
+10101010101006000000010C101010101010101010101010101010101010101010101010
+101008000000000B08000000010D1010101010100E0000000C101010101008081010100C
+0C10100C041010101010100F010000000410101010101010101010101006000000010D10
+10101010101010101010101010101010101010101010101010100F010000000410060000
+00010D10101010100C00000010101010101008081010100C0C10100C041010101010100A
+000000000C101010101010101010101009000000010D1010101010101010101010101010
+10101010101010101010101010101007000000000E1006000000030F101010100A000000
+10101010101008081010100C0C10100C0410101010101004000000021010101010101010
+101010100A0000010D101010101010101010101010101010101010101010101010101010
+1010100E000000000910100600000005101010100800000410101010101008081010100C
+0C10100C0410101010100F0000000009101010101010101010101010100D020C10101010
+101010101010101010101010101010101010101010101010101010100300000004101010
+030000000B1010100600000410101010101008081010100C0C10100C0410101010100B00
+0000000E1010101010101010101010101010101010101010101010101010101010101010
+1010101010101010101010101010101009000000001010100E010000010F101004000008
+10101010101008081010100C0C10100C0410101010100800000002101010100A06040404
+05090E0E080808080808080E0E080808080808090E10100E091010101010101010080E10
+101010100D000000000C1010100B0000000710100200000810101010101008081010100C
+0C10100C041010101010040000000610100D0201090E100D0800090C000408080808080D
+0C00060C0C0C0801010C100C000610101010101010000C10101010101000000000091010
+1010040000000E100000000C10101010101008081010100C0C10100C0410101010100200
+000008100D00010E10101010100D0E0C00081010101010100C0008101010100A0005100C
+0000050F1010101010000C1010101010100400000005101010100E000000060E0000000C
+10101010101008081010100C0C10100C041010101010000000000C1002000C1010101010
+1010100C00081010101010100C0008101010100B0005100C000600030F10101010000C10
+101010101007000000021010101010060000000B0000001010101010101008081010100C
+0C10100C04101010100F000000000C0D00021010101010101010100C0008101010101010
+0C00081010100F03000C100C00100600030F101010000C10101010101008000000000E10
+1010100E000000030000011010101010101008081010100C0C10100C04101010100C0000
+00000F0C00041010101010101010100C00020404040407100C000408080601030C10100C
+0010100600030F1010000C10101010101008000000000B10101010100400000000000410
+10101010101008081010100C0C10100C04101010100C00000000100C0004101010101010
+1010100C00060C0C0C0C0D100C00030C030008101010100C001010100600030F10000C10
+10101010100C000000000710101010100A0000000000051010101010101008081010100C
+0C10100C04101010100C00000000100C00021010101010101010100C0008101010101010
+0C0004100D01000A1010100C00101010100600030F000C1010101010100A000000000410
+101010100F0000000000081010101010101008081010100C0C10100C04101010100D0000
+00000E1001000C10101010101010100C00081010101010100C000410100D01010D10100C
+001010101010060003000C10101010101008000000000010101010101004000000000910
+10101010101008081010100C0C10100C041010101010000000000C100900030F10101010
+10100F0C00081010101010100C00041010100B00010D100C001010101010100600000C10
+10101010100800000000000C101010101008000000000C1010101010101008081010100C
+0C10100C041010101010000000000B10100700030B10100F0A020C0C00060C0C0C0C080E
+0C0004101010100900030F0C001010101010101006000C10101010101005000000000009
+10101010100B000000000D1010101010101008081010100C0C10100C0410101010100300
+0000081010100C0603000001040A100D040404040404040D0D040710101010100704070D
+041010101010101010070D1010101010100300000000000610101010100C000000001010
+10101010101008081010100C0C10100C0410101010100500000004101010101010101010
+101010101010101010101010101010101010101010101010101010101010101010101010
+10101010100000000000000210101010101000000001101010101010101008081010100C
+0C10100C0410101010100900000000101010101010100D0C101010101010101010101010
+101010101010101010101010101010101010101010101010101010100B00000000000000
+0F101010101000000004101010101010101008081010100C0C10100C0410101010100D00
+0000000B1010101010100400000810101010101010101010101010101010101010101010
+1010101010101010101010101010101007000000000000000B1010101010000000061010
+10101010101008081010100C0C10100C0410101010101001000000061010101010100400
+000810101010101010101010101010101010101010101010101010101010101010101010
+10101010020000000000000008101010101000000008101010101010101008081010100C
+0C10100C0410101010101006000000010F10101010100400000810101010101010101010
+1010101010101010101010101010101010101010101010101010100B0000000002000000
+0410101010100000000A101010101010101008081010100C0C10100C041010101010100A
+000000000A10101010100500000610101010101010101010101010101010101010101010
+1010101010101010101010101010100400000001090000000010101010100000000C1010
+10101010101008081010100C0C10100C041010101010100E000000000210101010100800
+000410101010101010101010101010101010101010101010101010101010101010101010
+10100C00000000070D000000000D1010100C0000000E101010101010101008081010100C
+0C10100C0410101010101010030000000008101010100900000110101010101010101010
+101010101010101010101010101010101010101010101010101004000000000E10000000
+00091010100B00000010101010101010101008081010100C0C10100C0410101010101010
+0700000000010E1010100C0000000E101010101010101010101010101010101010101010
+101010101010101010101010100A00000000061010040000000610101007000003101010
+10101010101008081010100C0C10100C04101010101010100B0000000000041010100F00
+00000B101010101010101010101010101010101010101010101010101010101010101010
+0F01000000000E101007000000021010100300000610101010101010101008081010100C
+0C10100C0410101010101010100000000000000910101003000006101010101010101010
+1010101010101010101010101010101010101010101010100400000000081010100B0000
+00000F100F0000000A10101010101010101008081010100C0C10100C0410101010101010
+10040000000000000B101007000001101010101010101010101010101010101010101010
+10101010101010101010100600000000020F1010100E000000000B100A0000000E101010
+10101010101008081010100C0C10100C04101010101010101009000000000000010D100D
+0000000B1010101010101010101010101010101010101010101010101010101010100A00
+000000000D1010101010020000000810040000031010101010101010101008081010100C
+0C10100C0410101010101010100D00000000000000010D10020000041010101010101010
+1010101010101010101010101010101010101010100700000000000A1010101010100500
+00000410000000091010101010101010101008081010100C0C10100C0410101010101010
+10100100000000000000010A0E0300000C10101010101010101010101010101010101010
+101010101010101006000000000006101010101010100900000000100300010F10101010
+10101010101008081010100C0C10100C0410101010101010101006000000000000000000
+0710080104101010101010101010101010101010101010101010101010100F0400000000
+000610101010101010100C000000000D060006101010101010101010101008081010100C
+0C10100C041010101010101010100A00000000020000000000030D0E060C101010101010
+10101010101010101010101010101010100A010000000000061010101010101010101000
+000000090A000E101010101010101010101008081010100C0C10100C0410101010101010
+10100E000000000903000000000000060E0F101010101010101010101010101010101010
+1010100C0400000000000006101010101010101010101004000000060D07101010101010
+10101010101008081010100C0C10100C041010101010101010101002000000060F060000
+0000000000060D1010101010101010101010101010101010100B0400000000000000030F
+10101010101010101010100700000002100F10101010101010101010101008081010100C
+0C10100C0410101010101010101010070000000210100A010000000000000002070C1010
+1010101010101010100F0B06010000000000000000030F1010101010101010101010100B
+000000000F1010101010101010101010101008081010100C0C10100C0410101010101010
+1010100B000000000D10100E050000000000000000000004050808080808080402000000
+0000000000000000030F101010101010101010101010100E000000000B10101010101010
+10101010101008081010100C0C10100C04101010101010101010100F0000000009101010
+100C0400000000000000000000000000000000000000000000000000000000010E101010
+10101010101010101010061002000000081010101010101010101010101008081010100C
+0C10100C04101010101010101010101004000000051010101010100C0600000000000000
+000000000000000000000000000000000000010D1010101010101010101010100F06000C
+05000000041010101010101010101010101008081010100C0C10100C0410101010101010
+10101010080000000010101010101010100F0A0501000000000000000000000000000002
+0000000000010D1010101010101010101010100F03000009090000000010101010101010
+10101010101008081010100C0C10100C0410101010101010101010100D000000000C1010
+1010101010101010100D0A080504040404040406080B0E0600000000000C101010101010
+1010101010100B01000000050C000000000D10101010101010101010101008081010100C
+0C10100C041010101010101010101010100100000007101010101010101010100C05080B
+0C0F10101010101010100600000000000A10101010101010101010100E0500000000030E
+10000000000A10101010101010101010101008081010100C0C10100C0410101010101010
+1010101010050000000510101010101010101010100C0100000000020A10101010070000
+0000000A101010101010101010100F080100000000050F10100400000006101010101010
+10101010101008081010100C0C10100C041010101010101010101010100B050A0E101010
+101010101010101010100F050000000000020A100A000000000009101010101010101010
+0B060000000000010910101010070000000310101010101010101010101008081010100C
+0C10100C0410101010101010101010101010101010101010101010101010101010101010
+0B02000000010D0A0000000000061010101010100D0A0601000000000000060F10101010
+100B000000000F101010101010101010101008081010100C0C10100C0410101010101010
+10101010101010101010101010101010101010101010101010100A02010D0A0000000000
+060F0504040401000000000000000000050D101010101010100E000000000C1010101010
+10101010101008081010100C0C10100C0410101010101010101010101010101010101010
+101010101010101010101010101010100E0D000000000006100300000000000000000000
+0002070E101010101010101010100200000008101010101010101010101008081010100C
+0C10100C0410101010101010101010101010101010101010101010101010101010101010
+101010100D0100000000030F0600000000000000000004080D1010101010101010101010
+10100500000004101010101010101010101008081010100C0C10100C0410101010101010
+1010101010101010101010101010101010101010101010101010100D0100000000030F0F
+0B0808080808090C0D101010101010101010101010101010101009000000011010101010
+10101010101008081010100C0C10100C0410101010101010101010101010101010101010
+10101010101010101010101010100F0100000000030F1010101010101010101010101010
+10101010101010101010101010100C000000000D1010101010101010101008081010100C
+0C10100C0410101010101010101010101010101010101010101010101010101010101010
+100F0300000000010E101010101010101010101010101010101010101010101010101010
+101010000000000A1010101010101010101008081010100C0C10100C0410101010101010
+1010101010101010101010101010101010101010101010100F0300000000010D10101010
+101010101010101010101010101010101010101010101010101010030000000610101010
+10101010101008081010100C0C10100C0410101010101010101010101010101010101010
+1010101010101010101010100300000000010D1010101010101010101010101010101010
+10101010101010101010101010101007000000031010101010101010101008081010100C
+0C10100C0410101010101010101010101010101010101010101010101010101010101006
+00000000000D101010101010101010101010101010101010101010101010101010101010
+1010100A000000000F10101010101010101008081010100C0C10100C0410101010101010
+101010101010101010101010101010101010101010100600000000000A10101010101010
+1010101010101010101010101010101010101010101010101010100E000000000C101010
+10101010101008081010100C0C10100C0410101010101010101010101010101010101010
+1010101010101010100600000000000A1010101010101010101010101010101010101010
+10101010101010101010101010101010010000000810101010101010101008081010100C
+0C10100C041010101010101010101010101010101010101010101010101010100A000000
+00000A101010101010101010101010101010101010101010101010101010101010101010
+10101010050000000410101010101010101008081010100C0C10100C0410101010101010
+101010101010101010101010101010101010100A00000000000610101010101010101010
+101010101010101010101010101010101010101010101010101010100800000001101010
+10101010101008081010100C0C10100C0410101010101010101010101010101010101010
+1010101010100A0000000000061010101010101010101010101010101010101010101010
+101010101010101010101010101010100C000000000D101010101010101008081010100C
+0C10100C0208080808080808080808080808080808080808080808080808000000000001
+080808080808080808080808080808080808080808080808080808080808080808080808
+08080808060000000006080808080808080804081010100C0C10100E0808080808080808
+080808080808080808080808080808080808080808080808080808080808080808080808
+080808080808080808080808080808080808080808080808080808080704040404060808
+080808080808080C1010100C0C1010101010101010101010101010101010101010101010
+101010101010101010101010101010101010101010101010101010101010101010101010
+10101010101010101010101010101010101010101010101010101010101010101010100C
+0C1010101010101010101010101010101010101010101010101010101010101010101010
+101010101010101010101010101010101010101010101010101010101010101010101010
+10101010101010101010101010101010101010101010100C0C1010101010101010101010
+101010101010101010101010101010101010101010101010101010101010101010101010
+101010101010101010101010101010101010101010101010101010101010101010101010
+10101010101010101010100C090C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C
+0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C
+0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C09
+
+end
+%%PageTrailer
+%%Trailer
+%%EOF
diff --git a/Documentation/images/cern_logo.gif b/Documentation/images/cern_logo.gif
new file mode 100644
index 0000000000000000000000000000000000000000..d4002f30689095e4ec665b0b185fa36b278b2f1b
GIT binary patch
literal 1803
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
U$K}j2kz-8)yY>y176t}u0D?#Rd;kCd

literal 0
HcmV?d00001

diff --git a/Doxyfile.in b/Doxyfile.in
index 157e91ee4d..7aa7b55cd9 100644
--- a/Doxyfile.in
+++ b/Doxyfile.in
@@ -5,7 +5,8 @@ PROJECT_NAME           = "@CMAKE_PROJECT_NAME@"
 PROJECT_NUMBER         = "@VERSION_MAJOR@.@VERSION_MINOR@.@VERSION_PATCH@-@VERSION_TWEAK@"
 OUTPUT_DIRECTORY       = dox
 CREATE_SUBDIRS         = NO
-INPUT                  = @CMAKE_SOURCE_DIR@/disk_transfer @CMAKE_SOURCE_DIR@/main @CMAKE_SOURCE_DIR@/bandwidth_simulation  
+INPUT                  = @CMAKE_SOURCE_DIR@/Drive @CMAKE_SOURCE_DIR@/Exception @CMAKE_SOURCE_DIR@/SCSI  \
+                          @CMAKE_SOURCE_DIR@/System @CMAKE_SOURCE_DIR@/test @CMAKE_SOURCE_DIR@/Utils
 
 CLASS_GRAPH            = YES
 HAVE_DOT               = YES
diff --git a/Drive/Drive.hh b/Drive/Drive.hh
index ea0ca74577..f9d1d027f9 100644
--- a/Drive/Drive.hh
+++ b/Drive/Drive.hh
@@ -52,6 +52,8 @@ namespace Tape {
       /* Read drive status */
       if (-1 == m_sysWrapper.ioctl(m_tapeFD, MTIOCGET, &m_mtInfo))
         throw Tape::Exceptions::Errnum(std::string("Could not read drive status: "+ m_SCSIInfo.st_dev));
+      /* Read Generic SCSI information (INQUIRY) */
+      
     }
     virtual ~Drive() {
       if(-1 != m_tapeFD)
diff --git a/Drive/DriveTest.cc b/Drive/DriveTest.cc
index 6564cdbc51..e5b550545f 100644
--- a/Drive/DriveTest.cc
+++ b/Drive/DriveTest.cc
@@ -31,6 +31,8 @@ using ::testing::AtLeast;
 using ::testing::Return;
 using ::testing::_;
 
+namespace UnitTests {
+
 TEST(TapeDrive, OpensCorrectly) {
   /* Prepare the test harness */
   Tape::System::mockWrapper sysWrapper;
@@ -59,3 +61,5 @@ TEST(TapeDrive, OpensCorrectly) {
     }
   }
 }
+
+}
diff --git a/SCSI/Constants.hh b/SCSI/Constants.hh
new file mode 100644
index 0000000000..4399a67f5c
--- /dev/null
+++ b/SCSI/Constants.hh
@@ -0,0 +1,198 @@
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        // ----------------------------------------------------------------------
+// File: SCSI/Constants.hh
+// Author: Eric Cano - CERN
+// ----------------------------------------------------------------------
+
+/************************************************************************
+ * Tape Server                                                          *
+ * Copyright (C) 2013 CERN/Switzerland                                  *
+ *                                                                      *
+ * This program is free software: you can redistribute it and/or modify *
+ * it under the terms of the GNU General Public License as published by *
+ * the Free Software Foundation, either version 3 of the License, or    *
+ * (at your option) any later version.                                  *
+ *                                                                      *
+ * This program is distributed in the hope that it will be useful,      *
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of       *
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the        *
+ * GNU General Public License for more details.                         *
+ *                                                                      *
+ * You should have received a copy of the GNU General Public License    *
+ * along with this program.  If not, see <http://www.gnu.org/licenses/>.*
+ ************************************************************************/
+
+namespace SCSI {
+  /* Extracted from linux kernel's include/scsi/scsi.h. System-level include 
+   is less complete */
+  class Types {
+  public:
+
+    enum {
+      disk = 0x00,
+      tape = 0x01,
+      printer = 0x02,
+      processor = 0x03, /* HP scanners use this */
+      worm = 0x04, /* Treated as ROM by our system */
+      rom = 0x05,
+      scanner = 0x06,
+      mod = 0x07, /* Magneto-optical disk -
+                          * - treated as TYPE_DISK */
+      mediumChanger = 0x08,
+      comm = 0x09, /* Communications device */
+      raid = 0x0c,
+      enclosure = 0x0d, /* Enclosure Services Device */
+      rbc = 0x0e,
+      noLun = 0x7f
+    };
+  };
+  
+  class Commands {
+  public:
+
+    enum {
+      /*
+       *      SCSI opcodes, taken from linux kernel sources
+       *      Linux kernel's is more complete than system's
+       *      includes.
+       */
+      TEST_UNIT_READY                               = 0x00,
+      REZERO_UNIT                                   = 0x01,
+      REQUEST_SENSE                                 = 0x03,
+      FORMAT_UNIT                                   = 0x04,
+      READ_BLOCK_LIMITS                             = 0x05,
+      REASSIGN_BLOCKS                               = 0x07,
+      INITIALIZE_ELEMENT_STATUS                     = 0x07,
+      READ_6                                        = 0x08,
+      WRITE_6                                       = 0x0a,
+      SEEK_6                                        = 0x0b,
+      READ_REVERSE                                  = 0x0f,
+      WRITE_FILEMARKS                               = 0x10,
+      SPACE                                         = 0x11,
+      INQUIRY                                       = 0x12,
+      RECOVER_BUFFERED_DATA                         = 0x14,
+      MODE_SELECT                                   = 0x15,
+      RESERVE                                       = 0x16,
+      RELEASE                                       = 0x17,
+      COPY                                          = 0x18,
+      ERASE                                         = 0x19,
+      MODE_SENSE                                    = 0x1a,
+      START_STOP                                    = 0x1b,
+      RECEIVE_DIAGNOSTIC                            = 0x1c,
+      SEND_DIAGNOSTIC                               = 0x1d,
+      ALLOW_MEDIUM_REMOVAL                          = 0x1e,
+      
+      READ_FORMAT_CAPACITIES                        = 0x23,
+      SET_WINDOW                                    = 0x24,
+      READ_CAPACITY                                 = 0x25,
+      READ_10                                       = 0x28,
+      WRITE_10                                      = 0x2a,
+      SEEK_10                                       = 0x2b,
+      POSITION_TO_ELEMENT                           = 0x2b,
+      WRITE_VERIFY                                  = 0x2e,
+      VERIFY                                        = 0x2f,
+      SEARCH_HIGH                                   = 0x30,
+      SEARCH_EQUAL                                  = 0x31,
+      SEARCH_LOW                                    = 0x32,
+      SET_LIMITS                                    = 0x33,
+      PRE_FETCH                                     = 0x34,
+      READ_POSITION                                 = 0x34,
+      SYNCHRONIZE_CACHE                             = 0x35,
+      LOCK_UNLOCK_CACHE                             = 0x36,
+      READ_DEFECT_DATA                              = 0x37,
+      MEDIUM_SCAN                                   = 0x38,
+      COMPARE                                       = 0x39,
+      COPY_VERIFY                                   = 0x3a,
+      WRITE_BUFFER                                  = 0x3b,
+      READ_BUFFER                                   = 0x3c,
+      UPDATE_BLOCK                                  = 0x3d,
+      READ_LONG                                     = 0x3e,
+      WRITE_LONG                                    = 0x3f,
+      CHANGE_DEFINITION                             = 0x40,
+      WRITE_SAME                                    = 0x41,
+      UNMAP                                         = 0x42,
+      READ_TOC                                      = 0x43,
+      READ_HEADER                                   = 0x44,
+      GET_EVENT_STATUS_NOTIFICATION                 = 0x4a,
+      LOG_SELECT                                    = 0x4c,
+      LOG_SENSE                                     = 0x4d,
+      XDWRITEREAD_10                                = 0x53,
+      MODE_SELECT_10                                = 0x55,
+      RESERVE_10                                    = 0x56,
+      RELEASE_10                                    = 0x57,
+      MODE_SENSE_10                                 = 0x5a,
+      PERSISTENT_RESERVE_IN                         = 0x5e,
+      PERSISTENT_RESERVE_OUT                        = 0x5f,
+      VARIABLE_LENGTH_CMD                           = 0x7f,
+      REPORT_LUNS                                   = 0xa0,
+      SECURITY_PROTOCOL_IN                          = 0xa2,
+      MAINTENANCE_IN                                = 0xa3,
+      MAINTENANCE_OUT                               = 0xa4,
+      MOVE_MEDIUM                                   = 0xa5,
+      EXCHANGE_MEDIUM                               = 0xa6,
+      READ_12                                       = 0xa8,
+      WRITE_12                                      = 0xaa,
+      READ_MEDIA_SERIAL_NUMBER                      = 0xab,
+      WRITE_VERIFY_12                               = 0xae,
+      VERIFY_12                                     = 0xaf,
+      SEARCH_HIGH_12                                = 0xb0,
+      SEARCH_EQUAL_12                               = 0xb1,
+      SEARCH_LOW_12                                 = 0xb2,
+      SECURITY_PROTOCOL_OUT                         = 0xb5,
+      READ_ELEMENT_STATUS                           = 0xb8,
+      SEND_VOLUME_TAG                               = 0xb6,
+      WRITE_LONG_2                                  = 0xea,
+      EXTENDED_COPY                                 = 0x83,
+      RECEIVE_COPY_RESULTS                          = 0x84,
+      ACCESS_CONTROL_IN                             = 0x86,
+      ACCESS_CONTROL_OUT                            = 0x87,
+      READ_16                                       = 0x88,
+      WRITE_16                                      = 0x8a,
+      READ_ATTRIBUTE                                = 0x8c,
+      WRITE_ATTRIBUTE                               = 0x8d,
+      VERIFY_16                                     = 0x8f,
+      SYNCHRONIZE_CACHE_16                          = 0x91,
+      WRITE_SAME_16                                 = 0x93,
+      SERVICE_ACTION_IN                             = 0x9e
+    };
+  }; // class commands
+  class OtherConstants {
+  public:
+    enum {
+      /* values for service action in */
+      SAI_READ_CAPACITY_16                          = 0x10,
+      SAI_GET_LBA_STATUS                            = 0x12,
+      /* values for VARIABLE_LENGTH_CMD service action codes
+       * see spc4r17 Section D.3.5, table D.7 and D.8 */
+      VLC_SA_RECEIVE_CREDENTIAL                     = 0x1800,
+      /* values for maintenance in */
+      MI_REPORT_IDENTIFYING_INFORMATION             = 0x05,
+      MI_REPORT_TARGET_PGS                          = 0x0a,
+      MI_REPORT_ALIASES                             = 0x0b,
+      MI_REPORT_SUPPORTED_OPERATION_CODES           = 0x0c,
+      MI_REPORT_SUPPORTED_TASK_MANAGEMENT_FUNCTIONS = 0x0d,
+      MI_REPORT_PRIORITY                            = 0x0e,
+      MI_REPORT_TIMESTAMP                           = 0x0f,
+      MI_MANAGEMENT_PROTOCOL_IN                     = 0x10,
+      /* values for maintenance out */
+      MO_SET_IDENTIFYING_INFORMATION                = 0x06,
+      MO_SET_TARGET_PGS                             = 0x0a,
+      MO_CHANGE_ALIASES                             = 0x0b,
+      MO_SET_PRIORITY                               = 0x0e,
+      MO_SET_TIMESTAMP                              = 0x0f,
+      MO_MANAGEMENT_PROTOCOL_OUT                    = 0x10,
+      /* values for variable length command */
+      XDREAD_32                                     = 0x03,
+      XDWRITE_32                                    = 0x04,
+      XPWRITE_32                                    = 0x06,
+      XDWRITEREAD_32                                = 0x07,
+      READ_32                                       = 0x09,
+      VERIFY_32                                     = 0x0a,
+      WRITE_32                                      = 0x0b,
+      WRITE_SAME_32                                 = 0x0d,
+      
+      /* Values for T10/04-262r7 */
+      ATA_16		                            = 0x85,	/* 16-byte pass-thru */
+      ATA_12		                            = 0xa1	/* 12-byte pass-thru */
+    };
+  }; // class OtherConstans
+}; // namespace SCSI
diff --git a/SCSI/Device.cc b/SCSI/Device.cc
index b267d3b3b9..589ceec09d 100644
--- a/SCSI/Device.cc
+++ b/SCSI/Device.cc
@@ -20,3 +20,8 @@
  * You should have received a copy of the GNU General Public License    *
  * along with this program.  If not, see <http://www.gnu.org/licenses/>.*
  ************************************************************************/
+
+#include <cstdlib>
+#include <scsi/sg.h>
+
+
diff --git a/SCSI/Device.hh b/SCSI/Device.hh
index 04d162c761..bdddbc0ded 100644
--- a/SCSI/Device.hh
+++ b/SCSI/Device.hh
@@ -30,33 +30,9 @@
 #include "../System/Wrapper.hh"
 #include "../Exception/Exception.hh"
 #include "../Utils/Regex.hh"
+#include "Constants.hh"
 
 namespace SCSI {
-
-  /* Extracted from linux kernel's include/scsi/scsi.h. System-level include 
-   is less complete */
-  class Types {
-  public:
-
-    enum {
-      disk = 0x00,
-      tape = 0x01,
-      printer = 0x02,
-      processor = 0x03, /* HP scanners use this */
-      worm = 0x04, /* Treated as ROM by our system */
-      rom = 0x05,
-      scanner = 0x06,
-      mod = 0x07, /* Magneto-optical disk -
-                          * - treated as TYPE_DISK */
-      mediumChanger = 0x08,
-      comm = 0x09, /* Communications device */
-      raid = 0x0c,
-      enclosure = 0x0d, /* Enclosure Services Device */
-      rbc = 0x0e,
-      noLun = 0x7f
-    };
-  };
-
   /**
    * Bare-bones representation of a SCSI device
    */
@@ -274,4 +250,12 @@ namespace SCSI {
     }
 
   }; /* class DeviceVector */
+
+  class Device {
+  public:
+    Device(int fd): m_fd(fd) {};
+    
+  private:
+    int m_fd;
+  }; // class Device
 }; /* namespace SCSI */
diff --git a/SCSI/DeviceTest.cc b/SCSI/DeviceTest.cc
index 8751797b2b..b44429e3a3 100644
--- a/SCSI/DeviceTest.cc
+++ b/SCSI/DeviceTest.cc
@@ -30,6 +30,7 @@ using ::testing::AtLeast;
 using ::testing::Return;
 using ::testing::_;
 
+namespace UnitTests {
 Tape::System::mockWrapper sysWrapper;
 
 TEST(DeviceList, TriesToFind) {
@@ -101,4 +102,4 @@ TEST(DeviceList, ScansCorrectly) {
   ASSERT_EQ(129, dl[2].nst.minor);
 }
 
-
+};
diff --git a/Utils/RegexTest.cc b/Utils/RegexTest.cc
index 3e5a9bec7e..48513a4932 100644
--- a/Utils/RegexTest.cc
+++ b/Utils/RegexTest.cc
@@ -30,6 +30,8 @@ using ::testing::AtLeast;
 using ::testing::Return;
 using ::testing::_;
 
+namespace UnitTests {
+
 TEST(Regex, BasicFunctionality) {
   Tape::Utils::regex re("a(b)");
   std::vector<std::string> ret1, ret2;
@@ -57,3 +59,6 @@ TEST(Regex, OperationalTest) {
   ASSERT_EQ(ret2[1], "st124");
   ASSERT_EQ(ret3.size(), 0);
 }
+
+};
+
diff --git a/cmake/UseLATEX.cmake b/cmake/UseLATEX.cmake
new file mode 100644
index 0000000000..4f34d95a8f
--- /dev/null
+++ b/cmake/UseLATEX.cmake
@@ -0,0 +1,1342 @@
+# File: UseLATEX.cmake
+# CMAKE commands to actually use the LaTeX compiler
+# Version: 1.10.0
+# Author: Kenneth Moreland <kmorel@sandia.gov>
+#
+# Copyright 2004 Sandia Corporation.
+# Under the terms of Contract DE-AC04-94AL85000, there is a non-exclusive
+# license for use of this work by or on behalf of the
+# U.S. Government. Redistribution and use in source and binary forms, with
+# or without modification, are permitted provided that this Notice and any
+# statement of authorship are reproduced on all copies.
+#
+# The following function is defined:
+#
+# ADD_LATEX_DOCUMENT(<tex_file>
+#                    [BIBFILES <bib_files>]
+#                    [INPUTS <input_tex_files>]
+#                    [IMAGE_DIRS] <image_directories>
+#                    [IMAGES] <image_files>
+#                    [CONFIGURE] <tex_files>
+#                    [DEPENDS] <tex_files>
+#                    [MULTIBIB_NEWCITES] <suffix_list>
+#                    [USE_INDEX] [USE_GLOSSARY] [USE_NOMENCL]
+#                    [DEFAULT_PDF] [DEFAULT_SAFEPDF] [DEFAULT_PS] [NO_DEFAULT]
+#                    [MANGLE_TARGET_NAMES])
+#       Adds targets that compile <tex_file>.  The latex output is placed
+#       in LATEX_OUTPUT_PATH or CMAKE_CURRENT_BINARY_DIR if the former is
+#       not set.  The latex program is picky about where files are located,
+#       so all input files are copied from the source directory to the
+#       output directory.  This includes the target tex file, any tex file
+#       listed with the INPUTS option, the bibliography files listed with
+#       the BIBFILES option, and any .cls, .bst, and .clo files found in
+#       the current source directory.  Images found in the IMAGE_DIRS
+#       directories or listed by IMAGES are also copied to the output
+#       directory and coverted to an appropriate format if necessary.  Any
+#       tex files also listed with the CONFIGURE option are also processed
+#       with the CMake CONFIGURE_FILE command (with the @ONLY flag).  Any
+#       file listed in CONFIGURE but not the target tex file or listed with
+#       INPUTS has no effect. DEPENDS can be used to specify generated files
+#       that are needed to compile the latex target.
+#
+#       The following targets are made:
+#               dvi: Makes <name>.dvi
+#               pdf: Makes <name>.pdf using pdflatex.
+#               safepdf: Makes <name>.pdf using ps2pdf.  If using the default
+#                       program arguments, this will ensure all fonts are
+#                       embedded and no lossy compression has been performed
+#                       on images.
+#               ps: Makes <name>.ps
+#               html: Makes <name>.html
+#               auxclean: Deletes <name>.aux and other auxiliary files.
+#                       This is sometimes necessary if a LaTeX error occurs
+#                       and writes a bad aux file.  Unlike the regular clean
+#                       target, it does not delete other input files, such as
+#                       converted images, to save time on the rebuild.
+#
+#       The dvi target is added to the ALL.  That is, it will be the target
+#       built by default.  If the DEFAULT_PDF argument is given, then the
+#       pdf target will be the default instead of dvi.  Likewise,
+#       DEFAULT_SAFEPDF sets the default target to safepdf.  If NO_DEFAULT
+#       is specified, then no target will be added to ALL, which is
+#       convenient when including LaTeX documentation with something else.
+#
+#       If the argument MANGLE_TARGET_NAMES is given, then each of the
+#       target names above will be mangled with the <tex_file> name.  This
+#       is to make the targets unique if ADD_LATEX_DOCUMENT is called for
+#       multiple documents.  If the argument USE_INDEX is given, then
+#       commands to build an index are made.  If the argument USE_GLOSSARY
+#       is given, then commands to build a glossary are made.  If the
+#       argument MULTIBIB_NEWCITES is given, then additional bibtex calls
+#       are added to the build to support the extra auxiliary files created
+#       with the \newcite command in the multibib package.
+#
+# History:
+#
+# 1.10.0 Added NO_DEFAULT and DEFAULT_PS options.
+#       Fixed issue with cleaning files for LaTeX documents originating in
+#       a subdirectory.
+#
+# 1.9.6 Fixed problem with LATEX_SMALL_IMAGES.
+#       Strengthened check to make sure the output directory does not contain
+#       the source files.
+#
+# 1.9.5 Add support for image types not directly supported by either latex
+#       or pdflatex.  (Thanks to Jorge Gerardo Pena Pastor for SVG support.)
+#
+# 1.9.4 Fix issues with filenames containing multiple periods.
+#
+# 1.9.3 Hide some variables that are now cached but should not show up in
+#       the ccmake list of variables.
+#
+# 1.9.2 Changed MACRO declarations to FUNCTION declarations.  The better
+#       FUNCTION scoping will hopefully avoid some common but subtle bugs.
+#       This implicitly increases the minimum CMake version to 4.6 (although
+#       I honestly only test it with the latest 4.8 version).
+#
+#       Since we are updating the minimum CMake version, I'm going to start
+#       using the builtin LIST commands that are now available.
+#
+#       Favor using pdftops from the Poppler package to convert from pdf to
+#       eps.  It does a much better job than ImageMagick or ghostscript.
+#
+# 1.9.1 Fixed typo that caused the LATEX_SMALL_IMAGES option to fail to
+#       activate.
+#
+# 1.9.0 Add support for the multibib package (thanks to Antonio LaTorre).
+#
+# 1.8.2 Fix corner case when an argument name was also a variable containing
+#       the text of an argument.  In this case, the CMake IF was matching
+#       the argument text with the contents of the variable with the same
+#       argument name.
+#
+# 1.8.1 Fix problem where ps2pdf was not getting the appropriate arguments.
+#
+# 1.8.0 Add support for synctex.
+#
+# 1.7.7 Support calling xindy when making glossaries.
+#
+#       Improved make clean support.
+#
+# 1.7.6 Add support for the nomencl package (thanks to Myles English).
+#
+# 1.7.5 Fix issue with bibfiles being copied two different ways, which causes
+#       Problems with dependencies (thanks to Edwin van Leeuwen).
+#
+# 1.7.4 Added the DEFAULT_SAFEPDF option (thanks to Raymond Wan).
+#
+#       Added warnings when image directories are not found (and were
+#       probably not given relative to the source directory).
+#
+# 1.7.3 Fix some issues with interactions between makeglossaries and bibtex
+#       (thanks to Mark de Wever).
+#
+# 1.7.2 Use ps2pdf to convert eps to pdf to get around the problem with
+#       ImageMagick dropping the bounding box (thanks to Lukasz Lis).
+#
+# 1.7.1 Fixed some dependency issues.
+#
+# 1.7.0 Added DEPENDS options (thanks to Theodore Papadopoulo).
+#
+# 1.6.1 Ported the makeglossaries command to CMake and embedded the port
+#       into UseLATEX.cmake.
+#
+# 1.6.0 Allow the use of the makeglossaries command.  Thanks to Oystein
+#       S. Haaland for the patch.
+#
+# 1.5.0 Allow any type of file in the INPUTS lists, not just tex file
+#       (suggested by Eric Noulard).  As a consequence, the ability to
+#       specify tex files without the .tex extension is removed.  The removed
+#       function is of dubious value anyway.
+#
+#       When copying input files, skip over any file that exists in the
+#       binary directory but does not exist in the source directory with the
+#       assumption that these files were added by some other mechanism.  I
+#       find this useful when creating large documents with multiple
+#       chapters that I want to build separately (for speed) as I work on
+#       them.  I use the same boilerplate as the starting point for all
+#       and just copy it with different configurations.  This was what the
+#       separate ADD_LATEX_DOCUMENT method was supposed to originally be for.
+#       Since its external use is pretty much deprecated, I removed that
+#       documentation.
+#
+# 1.4.1 Copy .sty files along with the other class and package files.
+#
+# 1.4.0 Added a MANGLE_TARGET_NAMES option that will mangle the target names.
+#
+#       Fixed problem with copying bib files that became apparent with
+#       CMake 2.4.
+#
+# 1.3.0 Added a LATEX_OUTPUT_PATH variable that allows you or the user to
+#       specify where the built latex documents to go.  This is especially
+#       handy if you want to do in-source builds.
+#
+#       Removed the ADD_LATEX_IMAGES macro and absorbed the functionality
+#       into ADD_LATEX_DOCUMENT.  The old interface was always kind of
+#       clunky anyway since you had to specify the image directory in both
+#       places.  It also made supporting LATEX_OUTPUT_PATH problematic.
+#
+#       Added support for jpeg files.
+#
+# 1.2.0 Changed the configuration options yet again.  Removed the NO_CONFIGURE
+#       Replaced it with a CONFIGURE option that lists input files for which
+#       configure should be run.
+#
+#       The pdf target no longer depends on the dvi target.  This allows you
+#       to build latex documents that require pdflatex.  Also added an option
+#       to make the pdf target the default one.
+#
+# 1.1.1 Added the NO_CONFIGURE option.  The @ character can be used when
+#       specifying table column separators.  If two or more are used, then
+#       will incorrectly substitute them.
+#
+# 1.1.0 Added ability include multiple bib files.  Added ability to do copy
+#       sub-tex files for multipart tex files.
+#
+# 1.0.0 If both ps and pdf type images exist, just copy the one that
+#       matches the current render mode.  Replaced a bunch of STRING
+#       commands with GET_FILENAME_COMPONENT commands that were made to do
+#       the desired function.
+#
+# 0.4.0 First version posted to CMake Wiki.
+#
+
+#############################################################################
+# Find the location of myself while originally executing.  If you do this
+# inside of a macro, it will recode where the macro was invoked.
+#############################################################################
+SET(LATEX_USE_LATEX_LOCATION ${CMAKE_CURRENT_LIST_FILE}
+  CACHE INTERNAL "Location of UseLATEX.cmake file." FORCE
+  )
+
+#############################################################################
+# Generic helper functions
+#############################################################################
+
+FUNCTION(LATEX_LIST_CONTAINS var value)
+  SET(input_list ${ARGN})
+  LIST(FIND input_list "${value}" index)
+  IF (index GREATER -1)
+    SET(${var} TRUE PARENT_SCOPE)
+  ELSE (index GREATER -1)
+    SET(${var} PARENT_SCOPE)
+  ENDIF (index GREATER -1)
+ENDFUNCTION(LATEX_LIST_CONTAINS)
+
+# Parse function arguments.  Variables containing the results are placed
+# in the global scope for historical reasons.
+FUNCTION(LATEX_PARSE_ARGUMENTS prefix arg_names option_names)
+  SET(DEFAULT_ARGS)
+  FOREACH(arg_name ${arg_names})
+    SET(${prefix}_${arg_name} CACHE INTERNAL "${prefix} argument" FORCE)
+  ENDFOREACH(arg_name)
+  FOREACH(option ${option_names})
+    SET(${prefix}_${option} CACHE INTERNAL "${prefix} option" FORCE)
+  ENDFOREACH(option)
+
+  SET(current_arg_name DEFAULT_ARGS)
+  SET(current_arg_list)
+  FOREACH(arg ${ARGN})
+    LATEX_LIST_CONTAINS(is_arg_name ${arg} ${arg_names})
+    LATEX_LIST_CONTAINS(is_option ${arg} ${option_names})
+    IF (is_arg_name)
+      SET(${prefix}_${current_arg_name} ${current_arg_list}
+        CACHE INTERNAL "${prefix} argument" FORCE)
+      SET(current_arg_name ${arg})
+      SET(current_arg_list)
+    ELSEIF (is_option)
+      SET(${prefix}_${arg} TRUE CACHE INTERNAL "${prefix} option" FORCE)
+    ELSE (is_arg_name)
+      SET(current_arg_list ${current_arg_list} ${arg})
+    ENDIF (is_arg_name)
+  ENDFOREACH(arg)
+  SET(${prefix}_${current_arg_name} ${current_arg_list}
+    CACHE INTERNAL "${prefix} argument" FORCE)
+ENDFUNCTION(LATEX_PARSE_ARGUMENTS)
+
+# Match the contents of a file to a regular expression.
+FUNCTION(LATEX_FILE_MATCH variable filename regexp default)
+  # The FILE STRINGS command would be a bit better, but I'm not totally sure
+  # the match will always be to a whole line, and I don't want to break things.
+  FILE(READ ${filename} file_contents)
+  STRING(REGEX MATCHALL "${regexp}"
+    match_result ${file_contents}
+    )
+  IF (match_result)
+    SET(${variable} "${match_result}" PARENT_SCOPE)
+  ELSE (match_result)
+    SET(${variable} "${default}" PARENT_SCOPE)
+  ENDIF (match_result)
+ENDFUNCTION(LATEX_FILE_MATCH)
+
+# A version of GET_FILENAME_COMPONENT that treats extensions after the last
+# period rather than the first.  To the best of my knowledge, all filenames
+# typically used by LaTeX, including image files, have small extensions
+# after the last dot.
+FUNCTION(LATEX_GET_FILENAME_COMPONENT varname filename type)
+  SET(result)
+  IF ("${type}" STREQUAL "NAME_WE")
+    GET_FILENAME_COMPONENT(name ${filename} NAME)
+    STRING(REGEX REPLACE "\\.[^.]*\$" "" result "${name}")
+  ELSEIF ("${type}" STREQUAL "EXT")
+    GET_FILENAME_COMPONENT(name ${filename} NAME)
+    STRING(REGEX MATCH "\\.[^.]*\$" result "${name}")
+  ELSE ("${type}" STREQUAL "NAME_WE")
+    GET_FILENAME_COMPONENT(result ${filename} ${type})
+  ENDIF ("${type}" STREQUAL "NAME_WE")
+  SET(${varname} "${result}" PARENT_SCOPE)
+ENDFUNCTION(LATEX_GET_FILENAME_COMPONENT)
+
+#############################################################################
+# Functions that perform processing during a LaTeX build.
+#############################################################################
+FUNCTION(LATEX_MAKEGLOSSARIES)
+  # This is really a bare bones port of the makeglossaries perl script into
+  # CMake scripting.
+  MESSAGE("**************************** In makeglossaries")
+  IF (NOT LATEX_TARGET)
+    MESSAGE(SEND_ERROR "Need to define LATEX_TARGET")
+  ENDIF (NOT LATEX_TARGET)
+
+  SET(aux_file ${LATEX_TARGET}.aux)
+
+  IF (NOT EXISTS ${aux_file})
+    MESSAGE(SEND_ERROR "${aux_file} does not exist.  Run latex on your target file.")
+  ENDIF (NOT EXISTS ${aux_file})
+
+  LATEX_FILE_MATCH(newglossary_lines ${aux_file}
+    "@newglossary[ \t]*{([^}]*)}{([^}]*)}{([^}]*)}{([^}]*)}"
+    "@newglossary{main}{glg}{gls}{glo}"
+    )
+
+  LATEX_FILE_MATCH(istfile_line ${aux_file}
+    "@istfilename[ \t]*{([^}]*)}"
+    "@istfilename{${LATEX_TARGET}.ist}"
+    )
+  STRING(REGEX REPLACE "@istfilename[ \t]*{([^}]*)}" "\\1"
+    istfile ${istfile_line}
+    )
+
+  STRING(REGEX MATCH ".*\\.xdy" use_xindy "${istfile}")
+  IF (use_xindy)
+    MESSAGE("*************** Using xindy")
+    IF (NOT XINDY_COMPILER)
+      MESSAGE(SEND_ERROR "Need to define XINDY_COMPILER")
+    ENDIF (NOT XINDY_COMPILER)
+  ELSE (use_xindy)
+    MESSAGE("*************** Using makeindex")
+    IF (NOT MAKEINDEX_COMPILER)
+      MESSAGE(SEND_ERROR "Need to define MAKEINDEX_COMPILER")
+    ENDIF (NOT MAKEINDEX_COMPILER)
+  ENDIF (use_xindy)
+
+  FOREACH(newglossary ${newglossary_lines})
+    STRING(REGEX REPLACE
+      "@newglossary[ \t]*{([^}]*)}{([^}]*)}{([^}]*)}{([^}]*)}"
+      "\\1" glossary_name ${newglossary}
+      )
+    STRING(REGEX REPLACE
+      "@newglossary[ \t]*{([^}]*)}{([^}]*)}{([^}]*)}{([^}]*)}"
+      "${LATEX_TARGET}.\\2" glossary_log ${newglossary}
+      )
+    STRING(REGEX REPLACE
+      "@newglossary[ \t]*{([^}]*)}{([^}]*)}{([^}]*)}{([^}]*)}"
+      "${LATEX_TARGET}.\\3" glossary_out ${newglossary}
+      )
+    STRING(REGEX REPLACE
+      "@newglossary[ \t]*{([^}]*)}{([^}]*)}{([^}]*)}{([^}]*)}"
+      "${LATEX_TARGET}.\\4" glossary_in ${newglossary}
+      )
+
+    IF (use_xindy)
+      LATEX_FILE_MATCH(xdylanguage_line ${aux_file}
+        "@xdylanguage[ \t]*{${glossary_name}}{([^}]*)}"
+        "@xdylanguage{${glossary_name}}{english}"
+        )
+      STRING(REGEX REPLACE
+        "@xdylanguage[ \t]*{${glossary_name}}{([^}]*)}"
+        "\\1"
+        language
+        ${xdylanguage_line}
+        )
+      # What crazy person makes a LaTeX index generater that uses different
+      # identifiers for language than babel (or at least does not support
+      # the old ones)?
+      IF (${language} STREQUAL "frenchb")
+        SET(language "french")
+      ELSEIF (${language} MATCHES "^n?germanb?$")
+        SET(language "german")
+      ELSEIF (${language} STREQUAL "magyar")
+        SET(language "hungarian")
+      ELSEIF (${language} STREQUAL "lsorbian")
+        SET(language "lower-sorbian")
+      ELSEIF (${language} STREQUAL "norsk")
+        SET(language "norwegian")
+      ELSEIF (${language} STREQUAL "portuges")
+        SET(language "portuguese")
+      ELSEIF (${language} STREQUAL "russianb")
+        SET(language "russian")
+      ELSEIF (${language} STREQUAL "slovene")
+        SET(language "slovenian")
+      ELSEIF (${language} STREQUAL "ukraineb")
+        SET(language "ukrainian")
+      ELSEIF (${language} STREQUAL "usorbian")
+        SET(language "upper-sorbian")
+      ENDIF (${language} STREQUAL "frenchb")
+      IF (language)
+        SET(language_flags "-L ${language}")
+      ELSE (language)
+        SET(language_flags "")
+      ENDIF (language)
+
+      LATEX_FILE_MATCH(codepage_line ${aux_file}
+        "@gls@codepage[ \t]*{${glossary_name}}{([^}]*)}"
+        "@gls@codepage{${glossary_name}}{utf}"
+        )
+      STRING(REGEX REPLACE
+        "@gls@codepage[ \t]*{${glossary_name}}{([^}]*)}"
+        "\\1"
+        codepage
+        ${codepage_line}
+        )
+      IF (codepage)
+        SET(codepage_flags "-C ${codepage}")
+      ELSE (codepage)
+        # Ideally, we would check that the language is compatible with the
+        # default codepage, but I'm hoping that distributions will be smart
+        # enough to specify their own codepage.  I know, it's asking a lot.
+        SET(codepage_flags "")
+      ENDIF (codepage)
+
+      MESSAGE("${XINDY_COMPILER} ${MAKEGLOSSARIES_COMPILER_FLAGS} ${language_flags} ${codepage_flags} -I xindy -M ${glossary_name} -t ${glossary_log} -o ${glossary_out} ${glossary_in}"
+        )
+      EXEC_PROGRAM(${XINDY_COMPILER}
+        ARGS ${MAKEGLOSSARIES_COMPILER_FLAGS}
+          ${language_flags}
+          ${codepage_flags}
+          -I xindy
+          -M ${glossary_name}
+          -t ${glossary_log}
+          -o ${glossary_out}
+          ${glossary_in}
+        OUTPUT_VARIABLE xindy_output
+        )
+      MESSAGE("${xindy_output}")
+
+      # So, it is possible (perhaps common?) for aux files to specify a
+      # language and codepage that are incompatible with each other.  Check
+      # for that condition, and if it happens run again with the default
+      # codepage.
+      IF ("${xindy_output}" MATCHES "^Cannot locate xindy module for language (.+) in codepage (.+)\\.$")
+        MESSAGE("*************** Retrying xindy with default codepage.")
+        EXEC_PROGRAM(${XINDY_COMPILER}
+          ARGS ${MAKEGLOSSARIES_COMPILER_FLAGS}
+            ${language_flags}
+            -I xindy
+            -M ${glossary_name}
+            -t ${glossary_log}
+            -o ${glossary_out}
+            ${glossary_in}
+          )
+      ENDIF ("${xindy_output}" MATCHES "^Cannot locate xindy module for language (.+) in codepage (.+)\\.$")
+      #ENDIF ("${xindy_output}" MATCHES "Cannot locate xindy module for language (.+) in codepage (.+)\\.")
+      
+    ELSE (use_xindy)
+      MESSAGE("${MAKEINDEX_COMPILER} ${MAKEGLOSSARIES_COMPILER_FLAGS} -s ${istfile} -t ${glossary_log} -o ${glossary_out} ${glossary_in}")
+      EXEC_PROGRAM(${MAKEINDEX_COMPILER} ARGS ${MAKEGLOSSARIES_COMPILER_FLAGS}
+        -s ${istfile} -t ${glossary_log} -o ${glossary_out} ${glossary_in}
+        )
+    ENDIF (use_xindy)
+
+  ENDFOREACH(newglossary)
+ENDFUNCTION(LATEX_MAKEGLOSSARIES)
+
+FUNCTION(LATEX_MAKENOMENCLATURE)
+  MESSAGE("**************************** In makenomenclature")
+  IF (NOT LATEX_TARGET)
+    MESSAGE(SEND_ERROR "Need to define LATEX_TARGET")
+  ENDIF (NOT LATEX_TARGET)
+
+  IF (NOT MAKEINDEX_COMPILER)
+    MESSAGE(SEND_ERROR "Need to define MAKEINDEX_COMPILER")
+  ENDIF (NOT MAKEINDEX_COMPILER)
+
+  SET(nomencl_out ${LATEX_TARGET}.nls)
+  SET(nomencl_in ${LATEX_TARGET}.nlo)
+
+  EXEC_PROGRAM(${MAKEINDEX_COMPILER} ARGS ${MAKENOMENCLATURE_COMPILER_FLAGS}
+    ${nomencl_in} -s "nomencl.ist" -o ${nomencl_out}
+    )
+ENDFUNCTION(LATEX_MAKENOMENCLATURE)
+
+FUNCTION(LATEX_CORRECT_SYNCTEX)
+  MESSAGE("**************************** In correct SyncTeX")
+  IF (NOT LATEX_TARGET)
+    MESSAGE(SEND_ERROR "Need to define LATEX_TARGET")
+  ENDIF (NOT LATEX_TARGET)
+
+  IF (NOT GZIP)
+    MESSAGE(SEND_ERROR "Need to define GZIP")
+  ENDIF (NOT GZIP)
+
+  IF (NOT LATEX_SOURCE_DIRECTORY)
+    MESSAGE(SEND_ERROR "Need to define LATEX_SOURCE_DIRECTORY")
+  ENDIF (NOT LATEX_SOURCE_DIRECTORY)
+
+  IF (NOT LATEX_BINARY_DIRECTORY)
+    MESSAGE(SEND_ERROR "Need to define LATEX_BINARY_DIRECTORY")
+  ENDIF (NOT LATEX_BINARY_DIRECTORY)
+
+  SET(synctex_file ${LATEX_BINARY_DIRECTORY}/${LATEX_TARGET}.synctex)
+  SET(synctex_file_gz ${synctex_file}.gz)
+
+  IF (EXISTS ${synctex_file_gz})
+
+    MESSAGE("Making backup of synctex file.")
+    CONFIGURE_FILE(${synctex_file_gz} ${synctex_file}.bak.gz COPYONLY)
+
+    MESSAGE("Uncompressing synctex file.")
+    EXEC_PROGRAM(${GZIP}
+      ARGS --decompress ${synctex_file_gz}
+      )
+
+    MESSAGE("Reading synctex file.")
+    FILE(READ ${synctex_file} synctex_data)
+
+    MESSAGE("Replacing relative with absolute paths.")
+    STRING(REGEX REPLACE
+      "(Input:[0-9]+:)([^/\n][^\n]*)"
+      "\\1${LATEX_SOURCE_DIRECTORY}/\\2"
+      synctex_data
+      "${synctex_data}"
+      )
+
+    MESSAGE("Writing synctex file.")
+    FILE(WRITE ${synctex_file} "${synctex_data}")
+
+    MESSAGE("Compressing synctex file.")
+    EXEC_PROGRAM(${GZIP}
+      ARGS ${synctex_file}
+      )
+
+  ELSE (EXISTS ${synctex_file_gz})
+
+    MESSAGE(SEND_ERROR "File ${synctex_file_gz} not found.  Perhaps synctex is not supported by your LaTeX compiler.")
+
+  ENDIF (EXISTS ${synctex_file_gz})
+
+ENDFUNCTION(LATEX_CORRECT_SYNCTEX)
+
+#############################################################################
+# Helper functions for establishing LaTeX build.
+#############################################################################
+
+FUNCTION(LATEX_NEEDIT VAR NAME)
+  IF (NOT ${VAR})
+    MESSAGE(SEND_ERROR "I need the ${NAME} command.")
+  ENDIF(NOT ${VAR})
+ENDFUNCTION(LATEX_NEEDIT)
+
+FUNCTION(LATEX_WANTIT VAR NAME)
+  IF (NOT ${VAR})
+    MESSAGE(STATUS "I could not find the ${NAME} command.")
+  ENDIF(NOT ${VAR})
+ENDFUNCTION(LATEX_WANTIT)
+
+FUNCTION(LATEX_SETUP_VARIABLES)
+  SET(LATEX_OUTPUT_PATH "${LATEX_OUTPUT_PATH}"
+    CACHE PATH "If non empty, specifies the location to place LaTeX output."
+    )
+
+  FIND_PACKAGE(LATEX)
+
+  FIND_PROGRAM(XINDY_COMPILER
+    NAME xindy
+    PATHS ${MIKTEX_BINARY_PATH} /usr/bin
+    )
+
+  FIND_PACKAGE(UnixCommands)
+
+  FIND_PROGRAM(PDFTOPS_CONVERTER
+    NAMES pdftops
+    DOC "The pdf to ps converter program from the Poppler package."
+    )
+
+  MARK_AS_ADVANCED(CLEAR
+    LATEX_COMPILER
+    PDFLATEX_COMPILER
+    BIBTEX_COMPILER
+    MAKEINDEX_COMPILER
+    XINDY_COMPILER
+    DVIPS_CONVERTER
+    PS2PDF_CONVERTER
+    PDFTOPS_CONVERTER
+    LATEX2HTML_CONVERTER
+    )
+
+  LATEX_NEEDIT(LATEX_COMPILER latex)
+  LATEX_WANTIT(PDFLATEX_COMPILER pdflatex)
+  LATEX_NEEDIT(BIBTEX_COMPILER bibtex)
+  LATEX_NEEDIT(MAKEINDEX_COMPILER makeindex)
+  LATEX_WANTIT(DVIPS_CONVERTER dvips)
+  LATEX_WANTIT(PS2PDF_CONVERTER ps2pdf)
+  LATEX_WANTIT(PDFTOPS_CONVERTER pdftops)
+  LATEX_WANTIT(LATEX2HTML_CONVERTER latex2html)
+
+  SET(LATEX_COMPILER_FLAGS "-interaction=nonstopmode"
+    CACHE STRING "Flags passed to latex.")
+  SET(PDFLATEX_COMPILER_FLAGS ${LATEX_COMPILER_FLAGS}
+    CACHE STRING "Flags passed to pdflatex.")
+  SET(LATEX_SYNCTEX_FLAGS "-synctex=1"
+    CACHE STRING "latex/pdflatex flags used to create synctex file.")
+  SET(BIBTEX_COMPILER_FLAGS ""
+    CACHE STRING "Flags passed to bibtex.")
+  SET(MAKEINDEX_COMPILER_FLAGS ""
+    CACHE STRING "Flags passed to makeindex.")
+  SET(MAKEGLOSSARIES_COMPILER_FLAGS ""
+    CACHE STRING "Flags passed to makeglossaries.")
+  SET(MAKENOMENCLATURE_COMPILER_FLAGS ""
+    CACHE STRING "Flags passed to makenomenclature.")
+  SET(DVIPS_CONVERTER_FLAGS "-Ppdf -G0 -t letter"
+    CACHE STRING "Flags passed to dvips.")
+  SET(PS2PDF_CONVERTER_FLAGS "-dMaxSubsetPct=100 -dCompatibilityLevel=1.3 -dSubsetFonts=true -dEmbedAllFonts=true -dAutoFilterColorImages=false -dAutoFilterGrayImages=false -dColorImageFilter=/FlateEncode -dGrayImageFilter=/FlateEncode -dMonoImageFilter=/FlateEncode"
+    CACHE STRING "Flags passed to ps2pdf.")
+  SET(PDFTOPS_CONVERTER_FLAGS -r 600
+    CACHE STRING "Flags passed to pdftops.")
+  SET(LATEX2HTML_CONVERTER_FLAGS ""
+    CACHE STRING "Flags passed to latex2html.")
+  MARK_AS_ADVANCED(
+    LATEX_COMPILER_FLAGS
+    PDFLATEX_COMPILER_FLAGS
+    LATEX_SYNCTEX_FLAGS
+    BIBTEX_COMPILER_FLAGS
+    MAKEINDEX_COMPILER_FLAGS
+    MAKEGLOSSARIES_COMPILER_FLAGS
+    MAKENOMENCLATURE_COMPILER_FLAGS
+    DVIPS_CONVERTER_FLAGS
+    PS2PDF_CONVERTER_FLAGS
+    PDFTOPS_CONVERTER_FLAGS
+    LATEX2HTML_CONVERTER_FLAGS
+    )
+  SEPARATE_ARGUMENTS(LATEX_COMPILER_FLAGS)
+  SEPARATE_ARGUMENTS(PDFLATEX_COMPILER_FLAGS)
+  SEPARATE_ARGUMENTS(LATEX_SYNCTEX_FLAGS)
+  SEPARATE_ARGUMENTS(BIBTEX_COMPILER_FLAGS)
+  SEPARATE_ARGUMENTS(MAKEINDEX_COMPILER_FLAGS)
+  SEPARATE_ARGUMENTS(MAKEGLOSSARIES_COMPILER_FLAGS)
+  SEPARATE_ARGUMENTS(MAKENOMENCLATURE_COMPILER_FLAGS)
+  SEPARATE_ARGUMENTS(DVIPS_CONVERTER_FLAGS)
+  SEPARATE_ARGUMENTS(PS2PDF_CONVERTER_FLAGS)
+  SEPARATE_ARGUMENTS(PDFTOPS_CONVERTER_FLAGS)
+  SEPARATE_ARGUMENTS(LATEX2HTML_CONVERTER_FLAGS)
+
+  FIND_PROGRAM(IMAGEMAGICK_CONVERT convert
+    DOC "The convert program that comes with ImageMagick (available at http://www.imagemagick.org)."
+    )
+  IF (NOT IMAGEMAGICK_CONVERT)
+    MESSAGE(SEND_ERROR "Could not find convert program.  Please download ImageMagick from http://www.imagemagick.org and install.")
+  ENDIF (NOT IMAGEMAGICK_CONVERT)
+
+  OPTION(LATEX_USE_SYNCTEX
+    "If on, have LaTeX generate a synctex file, which WYSIWYG editors can use to correlate output files like dvi and pdf with the lines of LaTeX source that generates them.  In addition to adding the LATEX_SYNCTEX_FLAGS to the command line, this option also adds build commands that \"corrects\" the resulting synctex file to point to the original LaTeX files rather than those generated by UseLATEX.cmake."
+    OFF
+    )
+
+  OPTION(LATEX_SMALL_IMAGES
+    "If on, the raster images will be converted to 1/6 the original size.  This is because papers usually require 600 dpi images whereas most monitors only require at most 96 dpi.  Thus, smaller images make smaller files for web distributation and can make it faster to read dvi files."
+    OFF)
+  IF (LATEX_SMALL_IMAGES)
+    SET(LATEX_RASTER_SCALE 16 PARENT_SCOPE)
+    SET(LATEX_OPPOSITE_RASTER_SCALE 100 PARENT_SCOPE)
+  ELSE (LATEX_SMALL_IMAGES)
+    SET(LATEX_RASTER_SCALE 100 PARENT_SCOPE)
+    SET(LATEX_OPPOSITE_RASTER_SCALE 16 PARENT_SCOPE)
+  ENDIF (LATEX_SMALL_IMAGES)
+
+  # Just holds extensions for known image types.  They should all be lower case.
+  # For historical reasons, these are all declared in the global scope.
+  SET(LATEX_DVI_VECTOR_IMAGE_EXTENSIONS .eps CACHE INTERNAL "")
+  SET(LATEX_DVI_RASTER_IMAGE_EXTENSIONS CACHE INTERNAL "")
+  SET(LATEX_DVI_IMAGE_EXTENSIONS
+    ${LATEX_DVI_VECTOR_IMAGE_EXTENSIONS}
+    ${LATEX_DVI_RASTER_IMAGE_EXTENSIONS}
+    CACHE INTERNAL ""
+    )
+
+  SET(LATEX_PDF_VECTOR_IMAGE_EXTENSIONS .pdf CACHE INTERNAL "")
+  SET(LATEX_PDF_RASTER_IMAGE_EXTENSIONS .png .jpeg .jpg CACHE INTERNAL "")
+  SET(LATEX_PDF_IMAGE_EXTENSIONS
+    ${LATEX_PDF_VECTOR_IMAGE_EXTENSIONS}
+    ${LATEX_PDF_RASTER_IMAGE_EXTENSIONS}
+    CACHE INTERNAL ""
+    )
+
+  SET(LATEX_OTHER_VECTOR_IMAGE_EXTENSIONS .svg CACHE INTERNAL "")
+  SET(LATEX_OTHER_RASTER_IMAGE_EXTENSIONS .tif .tiff .gif CACHE INTERNAL "")
+  SET(LATEX_OTHER_IMAGE_EXTENSIONS
+    ${LATEX_OTHER_VECTOR_IMAGE_EXTENSIONS}
+    ${LATEX_OTHER_RASTER_IMAGE_EXTENSIONS}
+    CACHE INTERNAL ""
+    )
+
+  SET(LATEX_VECTOR_IMAGE_EXTENSIONS
+    ${LATEX_DVI_VECTOR_IMAGE_EXTENSIONS}
+    ${LATEX_PDF_VECTOR_IMAGE_EXTENSIONS}
+    ${LATEX_OTHER_VECTOR_IMAGE_EXTENSIONS}
+    CACHE INTERNAL ""
+    )
+  SET(LATEX_RASTER_IMAGE_EXTENSIONS
+    ${LATEX_DVI_RASTER_IMAGE_EXTENSIONS}
+    ${LATEX_PDF_RASTER_IMAGE_EXTENSIONS}
+    ${LATEX_OTHER_RASTER_IMAGE_EXTENSIONS}
+    CACHE INTERNAL ""
+    )
+  SET(LATEX_IMAGE_EXTENSIONS
+    ${LATEX_DVI_IMAGE_EXTENSIONS}
+    ${LATEX_PDF_IMAGE_EXTENSIONS}
+    ${LATEX_OTHER_IMAGE_EXTENSIONS}
+    CACHE INTERNAL ""
+    )
+ENDFUNCTION(LATEX_SETUP_VARIABLES)
+
+FUNCTION(LATEX_GET_OUTPUT_PATH var)
+  SET(latex_output_path)
+  IF (LATEX_OUTPUT_PATH)
+    GET_FILENAME_COMPONENT(
+      LATEX_OUTPUT_PATH_FULL "${LATEX_OUTPUT_PATH}" ABSOLUTE
+      )
+    IF ("${LATEX_OUTPUT_PATH_FULL}" STREQUAL "${CMAKE_CURRENT_SOURCE_DIR}")
+      MESSAGE(SEND_ERROR "You cannot set LATEX_OUTPUT_PATH to the same directory that contains LaTeX input files.")
+    ELSE ("${LATEX_OUTPUT_PATH_FULL}" STREQUAL "${CMAKE_CURRENT_SOURCE_DIR}")
+      SET(latex_output_path "${LATEX_OUTPUT_PATH_FULL}")
+    ENDIF ("${LATEX_OUTPUT_PATH_FULL}" STREQUAL "${CMAKE_CURRENT_SOURCE_DIR}")
+  ELSE (LATEX_OUTPUT_PATH)
+    IF ("${CMAKE_CURRENT_BINARY_DIR}" STREQUAL "${CMAKE_CURRENT_SOURCE_DIR}")
+      MESSAGE(SEND_ERROR "LaTeX files must be built out of source or you must set LATEX_OUTPUT_PATH.")
+    ELSE ("${CMAKE_CURRENT_BINARY_DIR}" STREQUAL "${CMAKE_CURRENT_SOURCE_DIR}")
+      SET(latex_output_path "${CMAKE_CURRENT_BINARY_DIR}")
+    ENDIF ("${CMAKE_CURRENT_BINARY_DIR}" STREQUAL "${CMAKE_CURRENT_SOURCE_DIR}")
+  ENDIF (LATEX_OUTPUT_PATH)
+  SET(${var} ${latex_output_path} PARENT_SCOPE)
+ENDFUNCTION(LATEX_GET_OUTPUT_PATH)
+
+FUNCTION(LATEX_ADD_CONVERT_COMMAND
+    output_path
+    input_path
+    output_extension
+    input_extension
+    flags
+    )
+  SET (converter ${IMAGEMAGICK_CONVERT})
+  SET (convert_flags "")
+  IF (${input_extension} STREQUAL ".eps" AND ${output_extension} STREQUAL ".pdf")
+    # ImageMagick has broken eps to pdf conversion
+    # use ps2pdf instead
+    IF (PS2PDF_CONVERTER)
+      SET (converter ${PS2PDF_CONVERTER})
+      SET (convert_flags -dEPSCrop ${PS2PDF_CONVERTER_FLAGS})
+    ELSE (PS2PDF_CONVERTER)
+      MESSAGE(SEND_ERROR "Using postscript files with pdflatex requires ps2pdf for conversion.")
+    ENDIF (PS2PDF_CONVERTER)
+  ELSEIF (${input_extension} STREQUAL ".pdf" AND ${output_extension} STREQUAL ".eps")
+    # ImageMagick can also be sketchy on pdf to eps conversion.  Not good with
+    # color spaces and tends to unnecessarily rasterize.
+    # use pdftops instead
+    IF (PDFTOPS_CONVERTER)
+      SET(converter ${PDFTOPS_CONVERTER})
+      SET(convert_flags -eps ${PDFTOPS_CONVERTER_FLAGS})
+    ELSE (PDFTOPS_CONVERTER)
+      MESSAGE(STATUS "Consider getting pdftops from Poppler to convert PDF images to EPS images.")
+      SET (convert_flags ${flags})
+    ENDIF (PDFTOPS_CONVERTER)
+  ELSE (${input_extension} STREQUAL ".eps" AND ${output_extension} STREQUAL ".pdf")
+    SET (convert_flags ${flags})
+  ENDIF (${input_extension} STREQUAL ".eps" AND ${output_extension} STREQUAL ".pdf")
+
+  ADD_CUSTOM_COMMAND(OUTPUT ${output_path}
+    COMMAND ${converter}
+      ARGS ${convert_flags} ${input_path} ${output_path}
+    DEPENDS ${input_path}
+    )
+ENDFUNCTION(LATEX_ADD_CONVERT_COMMAND)
+
+# Makes custom commands to convert a file to a particular type.
+FUNCTION(LATEX_CONVERT_IMAGE
+    output_files_var
+    input_file
+    output_extension
+    convert_flags
+    output_extensions
+    other_files
+    )
+  SET(output_file_list)
+  SET(input_dir ${CMAKE_CURRENT_SOURCE_DIR})
+  LATEX_GET_OUTPUT_PATH(output_dir)
+
+  LATEX_GET_FILENAME_COMPONENT(extension "${input_file}" EXT)
+
+  # Check input filename for potential problems with LaTeX.
+  LATEX_GET_FILENAME_COMPONENT(name "${input_file}" NAME_WE)
+  IF (name MATCHES ".*\\..*")
+    STRING(REPLACE "." "-" suggested_name "${name}")
+    SET(suggested_name "${suggested_name}${extension}")
+    MESSAGE(WARNING "Some LaTeX distributions have problems with image file names with multiple extensions.  Consider changing ${name}${extension} to something like ${suggested_name}.")
+  ENDIF (name MATCHES ".*\\..*")
+
+  STRING(REGEX REPLACE "\\.[^.]*\$" ${output_extension} output_file
+    "${input_file}")
+
+  LATEX_LIST_CONTAINS(is_type ${extension} ${output_extensions})
+  IF (is_type)
+    IF (convert_flags)
+      LATEX_ADD_CONVERT_COMMAND(${output_dir}/${output_file}
+        ${input_dir}/${input_file} ${output_extension} ${extension}
+        "${convert_flags}")
+      SET(output_file_list ${output_file_list} ${output_dir}/${output_file})
+    ELSE (convert_flags)
+      # As a shortcut, we can just copy the file.
+      ADD_CUSTOM_COMMAND(OUTPUT ${output_dir}/${input_file}
+        COMMAND ${CMAKE_COMMAND}
+        ARGS -E copy ${input_dir}/${input_file} ${output_dir}/${input_file}
+        DEPENDS ${input_dir}/${input_file}
+        )
+      SET(output_file_list ${output_file_list} ${output_dir}/${input_file})
+    ENDIF (convert_flags)
+  ELSE (is_type)
+    SET(do_convert TRUE)
+    # Check to see if there is another input file of the appropriate type.
+    FOREACH(valid_extension ${output_extensions})
+      STRING(REGEX REPLACE "\\.[^.]*\$" ${output_extension} try_file
+        "${input_file}")
+      LATEX_LIST_CONTAINS(has_native_file "${try_file}" ${other_files})
+      IF (has_native_file)
+        SET(do_convert FALSE)
+      ENDIF (has_native_file)
+    ENDFOREACH(valid_extension)
+
+    # If we still need to convert, do it.
+    IF (do_convert)
+      LATEX_ADD_CONVERT_COMMAND(${output_dir}/${output_file}
+        ${input_dir}/${input_file} ${output_extension} ${extension}
+        "${convert_flags}")
+      SET(output_file_list ${output_file_list} ${output_dir}/${output_file})
+    ENDIF (do_convert)
+  ENDIF (is_type)
+
+  SET(${output_files_var} ${output_file_list} PARENT_SCOPE)
+ENDFUNCTION(LATEX_CONVERT_IMAGE)
+
+# Adds custom commands to process the given files for dvi and pdf builds.
+# Adds the output files to the given variables (does not replace).
+FUNCTION(LATEX_PROCESS_IMAGES dvi_outputs_var pdf_outputs_var)
+  LATEX_GET_OUTPUT_PATH(output_dir)
+  SET(dvi_outputs)
+  SET(pdf_outputs)
+  FOREACH(file ${ARGN})
+    IF (EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/${file}")
+      LATEX_GET_FILENAME_COMPONENT(extension "${file}" EXT)
+      SET(convert_flags)
+
+      # Check to see if we need to downsample the image.
+      LATEX_LIST_CONTAINS(is_raster "${extension}"
+        ${LATEX_RASTER_IMAGE_EXTENSIONS})
+      IF (LATEX_SMALL_IMAGES)
+        IF (is_raster)
+          SET(convert_flags -resize ${LATEX_RASTER_SCALE}%)
+        ENDIF (is_raster)
+      ENDIF (LATEX_SMALL_IMAGES)
+
+      # Make sure the output directory exists.
+      LATEX_GET_FILENAME_COMPONENT(path "${output_dir}/${file}" PATH)
+      MAKE_DIRECTORY("${path}")
+
+      # Do conversions for dvi.
+      LATEX_CONVERT_IMAGE(output_files "${file}" .eps "${convert_flags}"
+        "${LATEX_DVI_IMAGE_EXTENSIONS}" "${ARGN}")
+      SET(dvi_outputs ${dvi_outputs} ${output_files})
+
+      # Do conversions for pdf.
+      IF (is_raster)
+        LATEX_CONVERT_IMAGE(output_files "${file}" .png "${convert_flags}"
+          "${LATEX_PDF_IMAGE_EXTENSIONS}" "${ARGN}")
+        SET(pdf_outputs ${pdf_outputs} ${output_files})
+      ELSE (is_raster)
+        LATEX_CONVERT_IMAGE(output_files "${file}" .pdf "${convert_flags}"
+          "${LATEX_PDF_IMAGE_EXTENSIONS}" "${ARGN}")
+        SET(pdf_outputs ${pdf_outputs} ${output_files})
+      ENDIF (is_raster)
+    ELSE (EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/${file}")
+      MESSAGE(WARNING "Could not find file ${CMAKE_CURRENT_SOURCE_DIR}/${file}.  Are you sure you gave relative paths to IMAGES?")
+    ENDIF (EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/${file}")
+  ENDFOREACH(file)
+
+  SET(${dvi_outputs_var} ${dvi_outputs} PARENT_SCOPE)
+  SET(${pdf_outputs_var} ${pdf_outputs} PARENT_SCOPE)
+ENDFUNCTION(LATEX_PROCESS_IMAGES)
+
+FUNCTION(ADD_LATEX_IMAGES)
+  MESSAGE(SEND_ERROR "The ADD_LATEX_IMAGES function is deprecated.  Image directories are specified with LATEX_ADD_DOCUMENT.")
+ENDFUNCTION(ADD_LATEX_IMAGES)
+
+FUNCTION(LATEX_COPY_GLOBBED_FILES pattern dest)
+  FILE(GLOB file_list ${pattern})
+  FOREACH(in_file ${file_list})
+    LATEX_GET_FILENAME_COMPONENT(out_file ${in_file} NAME)
+    CONFIGURE_FILE(${in_file} ${dest}/${out_file} COPYONLY)
+  ENDFOREACH(in_file)
+ENDFUNCTION(LATEX_COPY_GLOBBED_FILES)
+
+FUNCTION(LATEX_COPY_INPUT_FILE file)
+  LATEX_GET_OUTPUT_PATH(output_dir)
+
+  IF (EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/${file})
+    LATEX_GET_FILENAME_COMPONENT(path ${file} PATH)
+    FILE(MAKE_DIRECTORY ${output_dir}/${path})
+
+    LATEX_LIST_CONTAINS(use_config ${file} ${LATEX_CONFIGURE})
+    IF (use_config)
+      CONFIGURE_FILE(${CMAKE_CURRENT_SOURCE_DIR}/${file}
+        ${output_dir}/${file}
+        @ONLY
+        )
+      ADD_CUSTOM_COMMAND(OUTPUT ${output_dir}/${file}
+        COMMAND ${CMAKE_COMMAND}
+        ARGS ${CMAKE_BINARY_DIR}
+        DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/${file}
+        )
+    ELSE (use_config)
+      ADD_CUSTOM_COMMAND(OUTPUT ${output_dir}/${file}
+        COMMAND ${CMAKE_COMMAND}
+        ARGS -E copy ${CMAKE_CURRENT_SOURCE_DIR}/${file} ${output_dir}/${file}
+        DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/${file}
+        )
+    ENDIF (use_config)
+  ELSE (EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/${file})
+    IF (EXISTS ${output_dir}/${file})
+      # Special case: output exists but input does not.  Assume that it was
+      # created elsewhere and skip the input file copy.
+    ELSE (EXISTS ${output_dir}/${file})
+      MESSAGE("Could not find input file ${CMAKE_CURRENT_SOURCE_DIR}/${file}")
+    ENDIF (EXISTS ${output_dir}/${file})
+  ENDIF (EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/${file})
+ENDFUNCTION(LATEX_COPY_INPUT_FILE)
+
+#############################################################################
+# Commands provided by the UseLATEX.cmake "package"
+#############################################################################
+
+FUNCTION(LATEX_USAGE command message)
+  MESSAGE(SEND_ERROR
+    "${message}\nUsage: ${command}(<tex_file>\n           [BIBFILES <bib_file> <bib_file> ...]\n           [INPUTS <tex_file> <tex_file> ...]\n           [IMAGE_DIRS <directory1> <directory2> ...]\n           [IMAGES <image_file1> <image_file2>\n           [CONFIGURE <tex_file> <tex_file> ...]\n           [DEPENDS <tex_file> <tex_file> ...]\n           [MULTIBIB_NEWCITES] <suffix_list>\n           [USE_INDEX] [USE_GLOSSARY] [USE_NOMENCL]\n           [DEFAULT_PDF] [DEFAULT_SAFEPDF] [DEFAULT_PS] [NO_DEFAULT]\n           [MANGLE_TARGET_NAMES])"
+    )
+ENDFUNCTION(LATEX_USAGE command message)
+
+# Parses arguments to ADD_LATEX_DOCUMENT and ADD_LATEX_TARGETS and sets the
+# variables LATEX_TARGET, LATEX_IMAGE_DIR, LATEX_BIBFILES, LATEX_DEPENDS, and
+# LATEX_INPUTS.
+FUNCTION(PARSE_ADD_LATEX_ARGUMENTS command)
+  LATEX_PARSE_ARGUMENTS(
+    LATEX
+    "BIBFILES;MULTIBIB_NEWCITES;INPUTS;IMAGE_DIRS;IMAGES;CONFIGURE;DEPENDS"
+    "USE_INDEX;USE_GLOSSARY;USE_GLOSSARIES;USE_NOMENCL;DEFAULT_PDF;DEFAULT_SAFEPDF;DEFAULT_PS;NO_DEFAULT;MANGLE_TARGET_NAMES"
+    ${ARGN}
+    )
+
+  # The first argument is the target latex file.
+  IF (LATEX_DEFAULT_ARGS)
+    LIST(GET LATEX_DEFAULT_ARGS 0 latex_main_input)
+    LIST(REMOVE_AT LATEX_DEFAULT_ARGS 0)
+    LATEX_GET_FILENAME_COMPONENT(latex_target ${latex_main_input} NAME_WE)
+    SET(LATEX_MAIN_INPUT ${latex_main_input} CACHE INTERNAL "" FORCE)
+    SET(LATEX_TARGET ${latex_target} CACHE INTERNAL "" FORCE)
+  ELSE (LATEX_DEFAULT_ARGS)
+    LATEX_USAGE(${command} "No tex file target given to ${command}.")
+  ENDIF (LATEX_DEFAULT_ARGS)
+
+  IF (LATEX_DEFAULT_ARGS)
+    LATEX_USAGE(${command} "Invalid or depricated arguments: ${LATEX_DEFAULT_ARGS}")
+  ENDIF (LATEX_DEFAULT_ARGS)
+
+  # Backward compatibility between 1.6.0 and 1.6.1.
+  IF (LATEX_USE_GLOSSARIES)
+    SET(LATEX_USE_GLOSSARY TRUE CACHE INTERNAL "" FORCE)
+  ENDIF (LATEX_USE_GLOSSARIES)
+ENDFUNCTION(PARSE_ADD_LATEX_ARGUMENTS)
+
+FUNCTION(ADD_LATEX_TARGETS_INTERNAL)
+  IF (LATEX_USE_SYNCTEX)
+    SET(synctex_flags ${LATEX_SYNCTEX_FLAGS})
+  ELSE (LATEX_USE_SYNCTEX)
+    SET(synctex_flags)
+  ENDIF (LATEX_USE_SYNCTEX)
+
+  # The commands to run LaTeX.  They are repeated multiple times.
+  SET(latex_build_command
+    ${LATEX_COMPILER} ${LATEX_COMPILER_FLAGS} ${synctex_flags} ${LATEX_MAIN_INPUT}
+    )
+  SET(pdflatex_build_command
+    ${PDFLATEX_COMPILER} ${PDFLATEX_COMPILER_FLAGS} ${synctex_flags} ${LATEX_MAIN_INPUT}
+    )
+
+  # Set up target names.
+  IF (LATEX_MANGLE_TARGET_NAMES)
+    SET(dvi_target      ${LATEX_TARGET}_dvi)
+    SET(pdf_target      ${LATEX_TARGET}_pdf)
+    SET(ps_target       ${LATEX_TARGET}_ps)
+    SET(safepdf_target  ${LATEX_TARGET}_safepdf)
+    SET(html_target     ${LATEX_TARGET}_html)
+    SET(auxclean_target ${LATEX_TARGET}_auxclean)
+  ELSE (LATEX_MANGLE_TARGET_NAMES)
+    SET(dvi_target      dvi)
+    SET(pdf_target      pdf)
+    SET(ps_target       ps)
+    SET(safepdf_target  safepdf)
+    SET(html_target     html)
+    SET(auxclean_target auxclean)
+  ENDIF (LATEX_MANGLE_TARGET_NAMES)
+
+  # Probably not all of these will be generated, but they could be.
+  # Note that the aux file is added later.
+  SET(auxiliary_clean_files
+    ${output_dir}/${LATEX_TARGET}.aux
+    ${output_dir}/${LATEX_TARGET}.bbl
+    ${output_dir}/${LATEX_TARGET}.blg
+    ${output_dir}/${LATEX_TARGET}-blx.bib
+    ${output_dir}/${LATEX_TARGET}.glg
+    ${output_dir}/${LATEX_TARGET}.glo
+    ${output_dir}/${LATEX_TARGET}.gls
+    ${output_dir}/${LATEX_TARGET}.idx
+    ${output_dir}/${LATEX_TARGET}.ilg
+    ${output_dir}/${LATEX_TARGET}.ind
+    ${output_dir}/${LATEX_TARGET}.ist
+    ${output_dir}/${LATEX_TARGET}.log
+    ${output_dir}/${LATEX_TARGET}.out
+    ${output_dir}/${LATEX_TARGET}.toc
+    ${output_dir}/${LATEX_TARGET}.lof
+    ${output_dir}/${LATEX_TARGET}.xdy
+    ${output_dir}/${LATEX_TARGET}.synctex.gz
+    ${output_dir}/${LATEX_TARGET}.synctex.bak.gz
+    ${output_dir}/${LATEX_TARGET}.dvi
+    ${output_dir}/${LATEX_TARGET}.ps
+    ${output_dir}/${LATEX_TARGET}.pdf
+    )
+
+  SET(image_list ${LATEX_IMAGES})
+
+  # For each directory in LATEX_IMAGE_DIRS, glob all the image files and
+  # place them in LATEX_IMAGES.
+  FOREACH(dir ${LATEX_IMAGE_DIRS})
+    IF (NOT EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/${dir})
+      MESSAGE(WARNING "Image directory ${CMAKE_CURRENT_SOURCE_DIR}/${dir} does not exist.  Are you sure you gave relative directories to IMAGE_DIRS?")
+    ENDIF (NOT EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/${dir})
+    FOREACH(extension ${LATEX_IMAGE_EXTENSIONS})
+      FILE(GLOB files ${CMAKE_CURRENT_SOURCE_DIR}/${dir}/*${extension})
+      FOREACH(file ${files})
+        LATEX_GET_FILENAME_COMPONENT(filename ${file} NAME)
+        SET(image_list ${image_list} ${dir}/${filename})
+      ENDFOREACH(file)
+    ENDFOREACH(extension)
+  ENDFOREACH(dir)
+
+  LATEX_PROCESS_IMAGES(dvi_images pdf_images ${image_list})
+
+  SET(make_dvi_command
+    ${CMAKE_COMMAND} -E chdir ${output_dir}
+    ${latex_build_command})
+  SET(make_pdf_command
+    ${CMAKE_COMMAND} -E chdir ${output_dir}
+    ${pdflatex_build_command}
+    )
+
+  SET(make_dvi_depends ${LATEX_DEPENDS} ${dvi_images})
+  SET(make_pdf_depends ${LATEX_DEPENDS} ${pdf_images})
+  FOREACH(input ${LATEX_MAIN_INPUT} ${LATEX_INPUTS})
+    SET(make_dvi_depends ${make_dvi_depends} ${output_dir}/${input})
+    SET(make_pdf_depends ${make_pdf_depends} ${output_dir}/${input})
+    IF (${input} MATCHES "\\.tex$")
+      # Dependent .tex files might have their own .aux files created.  Make
+      # sure these get cleaned as well.  This might replicate the cleaning
+      # of the main .aux file, which is OK.
+      STRING(REGEX REPLACE "\\.tex$" "" input_we ${input})
+      SET(auxiliary_clean_files ${auxiliary_clean_files}
+        ${output_dir}/${input_we}.aux
+        ${output_dir}/${input}.aux
+        )
+    ENDIF (${input} MATCHES "\\.tex$")
+  ENDFOREACH(input)
+
+  IF (LATEX_USE_GLOSSARY)
+    FOREACH(dummy 0 1)   # Repeat these commands twice.
+      SET(make_dvi_command ${make_dvi_command}
+        COMMAND ${CMAKE_COMMAND} -E chdir ${output_dir}
+        ${CMAKE_COMMAND}
+        -D LATEX_BUILD_COMMAND=makeglossaries
+        -D LATEX_TARGET=${LATEX_TARGET}
+        -D MAKEINDEX_COMPILER=${MAKEINDEX_COMPILER}
+        -D XINDY_COMPILER=${XINDY_COMPILER}
+        -D MAKEGLOSSARIES_COMPILER_FLAGS=${MAKEGLOSSARIES_COMPILER_FLAGS}
+        -P ${LATEX_USE_LATEX_LOCATION}
+        COMMAND ${CMAKE_COMMAND} -E chdir ${output_dir}
+        ${latex_build_command}
+        )
+      SET(make_pdf_command ${make_pdf_command}
+        COMMAND ${CMAKE_COMMAND} -E chdir ${output_dir}
+        ${CMAKE_COMMAND}
+        -D LATEX_BUILD_COMMAND=makeglossaries
+        -D LATEX_TARGET=${LATEX_TARGET}
+        -D MAKEINDEX_COMPILER=${MAKEINDEX_COMPILER}
+        -D XINDY_COMPILER=${XINDY_COMPILER}
+        -D MAKEGLOSSARIES_COMPILER_FLAGS=${MAKEGLOSSARIES_COMPILER_FLAGS}
+        -P ${LATEX_USE_LATEX_LOCATION}
+        COMMAND ${CMAKE_COMMAND} -E chdir ${output_dir}
+        ${pdflatex_build_command}
+        )
+    ENDFOREACH(dummy)
+  ENDIF (LATEX_USE_GLOSSARY)
+
+  IF (LATEX_USE_NOMENCL)
+    FOREACH(dummy 0 1)   # Repeat these commands twice.
+      SET(make_dvi_command ${make_dvi_command}
+        COMMAND ${CMAKE_COMMAND} -E chdir ${output_dir}
+        ${CMAKE_COMMAND}
+        -D LATEX_BUILD_COMMAND=makenomenclature
+        -D LATEX_TARGET=${LATEX_TARGET}
+        -D MAKEINDEX_COMPILER=${MAKEINDEX_COMPILER}
+        -D MAKENOMENCLATURE_COMPILER_FLAGS=${MAKENOMENCLATURE_COMPILER_FLAGS}
+        -P ${LATEX_USE_LATEX_LOCATION}
+        COMMAND ${CMAKE_COMMAND} -E chdir ${output_dir}
+        ${latex_build_command}
+        )
+      SET(make_pdf_command ${make_pdf_command}
+        COMMAND ${CMAKE_COMMAND} -E chdir ${output_dir}
+        ${CMAKE_COMMAND}
+        -D LATEX_BUILD_COMMAND=makenomenclature
+        -D LATEX_TARGET=${LATEX_TARGET}
+        -D MAKEINDEX_COMPILER=${MAKEINDEX_COMPILER}
+        -D MAKENOMENCLATURE_COMPILER_FLAGS=${MAKENOMENCLATURE_COMPILER_FLAGS}
+        -P ${LATEX_USE_LATEX_LOCATION}
+        COMMAND ${CMAKE_COMMAND} -E chdir ${output_dir}
+        ${pdflatex_build_command}
+        )
+    ENDFOREACH(dummy)
+  ENDIF (LATEX_USE_NOMENCL)
+
+  IF (LATEX_BIBFILES)
+    IF (LATEX_MULTIBIB_NEWCITES)
+      FOREACH (multibib_auxfile ${LATEX_MULTIBIB_NEWCITES})
+        LATEX_GET_FILENAME_COMPONENT(multibib_target ${multibib_auxfile} NAME_WE)
+        SET(make_dvi_command ${make_dvi_command}
+          COMMAND ${CMAKE_COMMAND} -E chdir ${output_dir}
+          ${BIBTEX_COMPILER} ${BIBTEX_COMPILER_FLAGS} ${multibib_target})
+        SET(make_pdf_command ${make_pdf_command}
+          COMMAND ${CMAKE_COMMAND} -E chdir ${output_dir}
+          ${BIBTEX_COMPILER} ${BIBTEX_COMPILER_FLAGS} ${multibib_target})
+        SET(auxiliary_clean_files ${auxiliary_clean_files}
+          ${output_dir}/${multibib_target}.aux)
+      ENDFOREACH (multibib_auxfile ${LATEX_MULTIBIB_NEWCITES})
+    ELSE (LATEX_MULTIBIB_NEWCITES)
+      SET(make_dvi_command ${make_dvi_command}
+        COMMAND ${CMAKE_COMMAND} -E chdir ${output_dir}
+        ${BIBTEX_COMPILER} ${BIBTEX_COMPILER_FLAGS} ${LATEX_TARGET})
+      SET(make_pdf_command ${make_pdf_command}
+        COMMAND ${CMAKE_COMMAND} -E chdir ${output_dir}
+        ${BIBTEX_COMPILER} ${BIBTEX_COMPILER_FLAGS} ${LATEX_TARGET})
+    ENDIF (LATEX_MULTIBIB_NEWCITES)
+
+    FOREACH (bibfile ${LATEX_BIBFILES})
+      SET(make_dvi_depends ${make_dvi_depends} ${output_dir}/${bibfile})
+      SET(make_pdf_depends ${make_pdf_depends} ${output_dir}/${bibfile})
+    ENDFOREACH (bibfile ${LATEX_BIBFILES})
+  ELSE (LATEX_BIBFILES)
+    IF (LATEX_MULTIBIB_NEWCITES)
+      MESSAGE(WARNING "MULTIBIB_NEWCITES has no effect without BIBFILES option.")
+    ENDIF (LATEX_MULTIBIB_NEWCITES)
+  ENDIF (LATEX_BIBFILES)
+
+  IF (LATEX_USE_INDEX)
+    SET(make_dvi_command ${make_dvi_command}
+      COMMAND ${CMAKE_COMMAND} -E chdir ${output_dir}
+      ${latex_build_command}
+      COMMAND ${CMAKE_COMMAND} -E chdir ${output_dir}
+      ${MAKEINDEX_COMPILER} ${MAKEINDEX_COMPILER_FLAGS} ${LATEX_TARGET}.idx)
+    SET(make_pdf_command ${make_pdf_command}
+      COMMAND ${CMAKE_COMMAND} -E chdir ${output_dir}
+      ${pdflatex_build_command}
+      COMMAND ${CMAKE_COMMAND} -E chdir ${output_dir}
+      ${MAKEINDEX_COMPILER} ${MAKEINDEX_COMPILER_FLAGS} ${LATEX_TARGET}.idx)
+  ENDIF (LATEX_USE_INDEX)
+
+  SET(make_dvi_command ${make_dvi_command}
+    COMMAND ${CMAKE_COMMAND} -E chdir ${output_dir}
+    ${latex_build_command}
+    COMMAND ${CMAKE_COMMAND} -E chdir ${output_dir}
+    ${latex_build_command})
+  SET(make_pdf_command ${make_pdf_command}
+    COMMAND ${CMAKE_COMMAND} -E chdir ${output_dir}
+    ${pdflatex_build_command}
+    COMMAND ${CMAKE_COMMAND} -E chdir ${output_dir}
+    ${pdflatex_build_command})
+
+  IF (LATEX_USE_SYNCTEX)
+    IF (NOT GZIP)
+      MESSAGE(SEND_ERROR "UseLATEX.cmake: USE_SYNTEX option requires gzip program.  Set GZIP variable.")
+    ENDIF (NOT GZIP)
+    SET(make_dvi_command ${make_dvi_command}
+      COMMAND ${CMAKE_COMMAND}
+      -D LATEX_BUILD_COMMAND=correct_synctex
+      -D LATEX_TARGET=${LATEX_TARGET}
+      -D GZIP=${GZIP}
+      -D "LATEX_SOURCE_DIRECTORY=${CMAKE_CURRENT_SOURCE_DIR}"
+      -D "LATEX_BINARY_DIRECTORY=${output_dir}"
+      -P ${LATEX_USE_LATEX_LOCATION}
+      )
+    SET(make_pdf_command ${make_pdf_command}
+      COMMAND ${CMAKE_COMMAND}
+      -D LATEX_BUILD_COMMAND=correct_synctex
+      -D LATEX_TARGET=${LATEX_TARGET}
+      -D GZIP=${GZIP}
+      -D "LATEX_SOURCE_DIRECTORY=${CMAKE_CURRENT_SOURCE_DIR}"
+      -D "LATEX_BINARY_DIRECTORY=${output_dir}"
+      -P ${LATEX_USE_LATEX_LOCATION}
+      )
+  ENDIF (LATEX_USE_SYNCTEX)
+
+  # Add commands and targets for building dvi outputs.
+  ADD_CUSTOM_COMMAND(OUTPUT ${output_dir}/${LATEX_TARGET}.dvi
+    COMMAND ${make_dvi_command}
+    DEPENDS ${make_dvi_depends}
+    )
+  IF (LATEX_NO_DEFAULT OR LATEX_DEFAULT_PDF OR LATEX_DEFAULT_SAFEPDF OR DEFAULT_PS)
+    ADD_CUSTOM_TARGET(${dvi_target}
+      DEPENDS ${output_dir}/${LATEX_TARGET}.dvi)
+  ELSE (LATEX_NO_DEFAULT OR LATEX_DEFAULT_PDF OR LATEX_DEFAULT_SAFEPDF OR DEFAULT_PS)
+    ADD_CUSTOM_TARGET(${dvi_target} ALL
+      DEPENDS ${output_dir}/${LATEX_TARGET}.dvi)
+  ENDIF (LATEX_NO_DEFAULT OR LATEX_DEFAULT_PDF OR LATEX_DEFAULT_SAFEPDF OR DEFAULT_PS)
+
+  # Add commands and targets for building pdf outputs (with pdflatex).
+  IF (PDFLATEX_COMPILER)
+    ADD_CUSTOM_COMMAND(OUTPUT ${output_dir}/${LATEX_TARGET}.pdf
+      COMMAND ${make_pdf_command}
+      DEPENDS ${make_pdf_depends}
+      )
+    IF (LATEX_DEFAULT_PDF)
+      ADD_CUSTOM_TARGET(${pdf_target} ALL
+        DEPENDS ${output_dir}/${LATEX_TARGET}.pdf)
+    ELSE (LATEX_DEFAULT_PDF)
+      ADD_CUSTOM_TARGET(${pdf_target}
+        DEPENDS ${output_dir}/${LATEX_TARGET}.pdf)
+    ENDIF (LATEX_DEFAULT_PDF)
+  ENDIF (PDFLATEX_COMPILER)
+
+  IF (DVIPS_CONVERTER)
+    ADD_CUSTOM_COMMAND(OUTPUT ${output_dir}/${LATEX_TARGET}.ps
+      COMMAND ${CMAKE_COMMAND} -E chdir ${output_dir}
+        ${DVIPS_CONVERTER} ${DVIPS_CONVERTER_FLAGS} -o ${LATEX_TARGET}.ps ${LATEX_TARGET}.dvi
+      DEPENDS ${output_dir}/${LATEX_TARGET}.dvi)
+    IF (LATEX_DEFAULT_PS)
+      ADD_CUSTOM_TARGET(${ps_target} ALL
+        DEPENDS ${output_dir}/${LATEX_TARGET}.ps)
+    ELSE (LATEX_DEFAULT_PS)
+      ADD_CUSTOM_TARGET(${ps_target}
+        DEPENDS ${output_dir}/${LATEX_TARGET}.ps)
+    ENDIF (LATEX_DEFAULT_PS)
+    IF (PS2PDF_CONVERTER)
+      # Since both the pdf and safepdf targets have the same output, we
+      # cannot properly do the dependencies for both.  When selecting safepdf,
+      # simply force a recompile every time.
+      IF (LATEX_DEFAULT_SAFEPDF)
+        ADD_CUSTOM_TARGET(${safepdf_target} ALL
+          ${CMAKE_COMMAND} -E chdir ${output_dir}
+          ${PS2PDF_CONVERTER} ${PS2PDF_CONVERTER_FLAGS} ${LATEX_TARGET}.ps ${LATEX_TARGET}.pdf
+          )
+      ELSE (LATEX_DEFAULT_SAFEPDF)
+        ADD_CUSTOM_TARGET(${safepdf_target}
+          ${CMAKE_COMMAND} -E chdir ${output_dir}
+          ${PS2PDF_CONVERTER} ${PS2PDF_CONVERTER_FLAGS} ${LATEX_TARGET}.ps ${LATEX_TARGET}.pdf
+          )
+      ENDIF (LATEX_DEFAULT_SAFEPDF)
+      ADD_DEPENDENCIES(${safepdf_target} ${ps_target})
+    ENDIF (PS2PDF_CONVERTER)
+  ENDIF (DVIPS_CONVERTER)
+
+  IF (LATEX2HTML_CONVERTER)
+    ADD_CUSTOM_TARGET(${html_target}
+      ${CMAKE_COMMAND} -E chdir ${output_dir}
+      ${LATEX2HTML_CONVERTER} ${LATEX2HTML_CONVERTER_FLAGS} ${LATEX_MAIN_INPUT}
+      )
+    ADD_DEPENDENCIES(${html_target} ${LATEX_MAIN_INPUT} ${LATEX_INPUTS})
+  ENDIF (LATEX2HTML_CONVERTER)
+
+  SET_DIRECTORY_PROPERTIES(.
+    ADDITIONAL_MAKE_CLEAN_FILES "${auxiliary_clean_files}"
+    )
+
+  ADD_CUSTOM_TARGET(${auxclean_target}
+    COMMENT "Cleaning auxiliary LaTeX files."
+    COMMAND ${CMAKE_COMMAND} -E remove ${auxiliary_clean_files}
+    )
+ENDFUNCTION(ADD_LATEX_TARGETS_INTERNAL)
+
+FUNCTION(ADD_LATEX_TARGETS)
+  LATEX_GET_OUTPUT_PATH(output_dir)
+  PARSE_ADD_LATEX_ARGUMENTS(ADD_LATEX_TARGETS ${ARGV})
+
+  ADD_LATEX_TARGETS_INTERNAL()
+ENDFUNCTION(ADD_LATEX_TARGETS)
+
+FUNCTION(ADD_LATEX_DOCUMENT)
+  LATEX_GET_OUTPUT_PATH(output_dir)
+  IF (output_dir)
+    PARSE_ADD_LATEX_ARGUMENTS(ADD_LATEX_DOCUMENT ${ARGV})
+
+    LATEX_COPY_INPUT_FILE(${LATEX_MAIN_INPUT})
+
+    FOREACH (bib_file ${LATEX_BIBFILES})
+      LATEX_COPY_INPUT_FILE(${bib_file})
+    ENDFOREACH (bib_file)
+
+    FOREACH (input ${LATEX_INPUTS})
+      LATEX_COPY_INPUT_FILE(${input})
+    ENDFOREACH(input)
+
+    LATEX_COPY_GLOBBED_FILES(${CMAKE_CURRENT_SOURCE_DIR}/*.cls ${output_dir})
+    LATEX_COPY_GLOBBED_FILES(${CMAKE_CURRENT_SOURCE_DIR}/*.bst ${output_dir})
+    LATEX_COPY_GLOBBED_FILES(${CMAKE_CURRENT_SOURCE_DIR}/*.clo ${output_dir})
+    LATEX_COPY_GLOBBED_FILES(${CMAKE_CURRENT_SOURCE_DIR}/*.sty ${output_dir})
+    LATEX_COPY_GLOBBED_FILES(${CMAKE_CURRENT_SOURCE_DIR}/*.ist ${output_dir})
+
+    ADD_LATEX_TARGETS_INTERNAL()
+  ENDIF (output_dir)
+ENDFUNCTION(ADD_LATEX_DOCUMENT)
+
+#############################################################################
+# Actually do stuff
+#############################################################################
+
+IF (LATEX_BUILD_COMMAND)
+  SET(command_handled)
+
+  IF ("${LATEX_BUILD_COMMAND}" STREQUAL makeglossaries)
+    LATEX_MAKEGLOSSARIES()
+    SET(command_handled TRUE)
+  ENDIF ("${LATEX_BUILD_COMMAND}" STREQUAL makeglossaries)
+
+  IF ("${LATEX_BUILD_COMMAND}" STREQUAL makenomenclature)
+    LATEX_MAKENOMENCLATURE()
+    SET(command_handled TRUE)
+  ENDIF ("${LATEX_BUILD_COMMAND}" STREQUAL makenomenclature)
+
+  IF ("${LATEX_BUILD_COMMAND}" STREQUAL correct_synctex)
+    LATEX_CORRECT_SYNCTEX()
+    SET(command_handled TRUE)
+  ENDIF ("${LATEX_BUILD_COMMAND}" STREQUAL correct_synctex)
+
+  IF (NOT command_handled)
+    MESSAGE(SEND_ERROR "Unknown command: ${LATEX_BUILD_COMMAND}")
+  ENDIF (NOT command_handled)
+
+ELSE (LATEX_BUILD_COMMAND)
+  # Must be part of the actual configure (included from CMakeLists.txt).
+  LATEX_SETUP_VARIABLES()
+ENDIF (LATEX_BUILD_COMMAND)
diff --git a/tape-server.spec b/tape-server.spec
index c3545a8de7..12ac7f6f00 100644
--- a/tape-server.spec
+++ b/tape-server.spec
@@ -15,6 +15,8 @@ BuildRequires: gmock >= 1.5.0
 BuildRequires: gtest-devel >= 1.5.0
 BuildRequires: gmock-devel  >= 1.5.0
 BuildRequires: valgrind >= 3.5.0
+BuildRequires: tetex-latex
+BuildRequires: latex2html
 
 %description
 The CERN tape server project.
@@ -41,7 +43,7 @@ test -e $RPM_BUILD_ROOT && rm -r $RPM_BUILD_ROOT
 mkdir -p build
 cd build
 cmake ../ -DRELEASE=%{release} -DCMAKE_BUILD_TYPE=RelWithDebInfo
-%{__make} %{_smp_mflags} 
+%{__make} %{_smp_mflags} all doxygen TapeServer_pdf 
 
 %install
 cd build
-- 
GitLab