summaryrefslogtreecommitdiff
path: root/language/french/e-french/texmf/doc/test
diff options
context:
space:
mode:
authorNorbert Preining <norbert@preining.info>2019-09-02 13:46:59 +0900
committerNorbert Preining <norbert@preining.info>2019-09-02 13:46:59 +0900
commite0c6872cf40896c7be36b11dcc744620f10adf1d (patch)
tree60335e10d2f4354b0674ec22d7b53f0f8abee672 /language/french/e-french/texmf/doc/test
Initial commit
Diffstat (limited to 'language/french/e-french/texmf/doc/test')
-rw-r--r--language/french/e-french/texmf/doc/test/README51
-rw-r--r--language/french/e-french/texmf/doc/test/XeLaTeX/frenT1xe.pdfbin0 -> 274788 bytes
-rw-r--r--language/french/e-french/texmf/doc/test/XeLaTeX/frenT1xe.tex85
-rw-r--r--language/french/e-french/texmf/doc/test/XeLaTeX/french.tst3684
-rw-r--r--language/french/e-french/texmf/doc/test/XeLaTeX/lisez-moi.txt2
-rw-r--r--language/french/e-french/texmf/doc/test/french.tst3805
-rw-r--r--language/french/e-french/texmf/doc/test/frenchab.tex68
-rw-r--r--language/french/e-french/texmf/doc/test/frenchla.tex21
-rw-r--r--language/french/e-french/texmf/doc/test/frenchlb.tex84
-rw-r--r--language/french/e-french/texmf/doc/test/frenchll.tex102
-rw-r--r--language/french/e-french/texmf/doc/test/frenchln.tex35
-rw-r--r--language/french/e-french/texmf/doc/test/frenchlr.tex18
-rw-r--r--language/french/e-french/texmf/doc/test/frenchrf.pdfbin0 -> 721224 bytes
-rw-r--r--language/french/e-french/texmf/doc/test/fxench.tst3750
-rw-r--r--language/french/e-french/texmf/doc/test/mya4.sty502
-rw-r--r--language/french/e-french/texmf/doc/test/myfigure.eps12824
-rw-r--r--language/french/e-french/texmf/doc/test/mygglo.ist69
-rw-r--r--language/french/e-french/texmf/doc/test/mylist.sty109
-rw-r--r--language/french/e-french/texmf/doc/test/mysmall.sty136
-rw-r--r--language/french/e-french/texmf/doc/test/tests-formats/EC.def64
-rw-r--r--language/french/e-french/texmf/doc/test/tests-formats/README65
-rw-r--r--language/french/e-french/texmf/doc/test/tests-formats/TSIv5n4.tex154
-rw-r--r--language/french/e-french/texmf/doc/test/tests-formats/TSIv5n48.tex154
-rw-r--r--language/french/e-french/texmf/doc/test/tests-formats/gencoup.tex90
-rw-r--r--language/french/e-french/texmf/doc/test/tests-formats/lgencoup.tex23
-rw-r--r--language/french/e-french/texmf/doc/test/tests-formats/ltesthyp24
-rw-r--r--language/french/e-french/texmf/doc/test/tests-formats/ltstcoup.tex22
-rw-r--r--language/french/e-french/texmf/doc/test/tests-formats/testhyp23
-rw-r--r--language/french/e-french/texmf/doc/test/tests-formats/tstcoup.tex135
-rw-r--r--language/french/e-french/texmf/doc/test/texxetlb.tex27
30 files changed, 26126 insertions, 0 deletions
diff --git a/language/french/e-french/texmf/doc/test/README b/language/french/e-french/texmf/doc/test/README
new file mode 100644
index 0000000000..149f9ac9ed
--- /dev/null
+++ b/language/french/e-french/texmf/doc/test/README
@@ -0,0 +1,51 @@
+% README of the french style distribution (tst sub-directory) 2003/02/17
+% author Bernard Gaulle, adapted Raymond Juillerat
+%
+
+This material was designed to help (La)TeX users to test the french style
+files installation.
+
+Quick description of contents:
+
+README.test : the file you are reading.
+
+fxench.tst : this file has to be converted to 8-bit and renamed french.tst;
+ this is the bi-lingual torture test basic file used to
+ typeset the following documents:
+frenchlb.tex : a french LaTeX book (to be compared at printing level
+ with frenchrf.pdf).
+texxetlb.tex : the same to be run with any TeXXeT engine.
+frenchab.tex : the same with AmsLaTeX.
+
+frenchln.tex : the same, loading the french style before \documentstyle.
+ and testing the "poor man french style" option.
+frenchlr.tex : a french LaTeX report
+frenchla.tex : a french LaTeX article
+frenchll.tex : a french LaTeX letter (just a test)
+
+The previous files require:
+myfigure.eps : an EPS face (not mine)
+mygglo.ist : the file is use with Makeindex to produce my glossary
+mylist.sty : a verbatim style
+frenchlb.ind : for those who don't have makeindex, this is the index produced.
+frenchlb.glo : for those who don't have makeindex, this is the glossary too.
+
+For comparison after installation:
+frenchrf.pdf : the Torture test (frenchlb) document composed by the author.
+ (The program makeindex was used to produce the index
+ i.e. the .ind file and the glossary i.e. the .glo file)
+
+Your "TO DO" list:
+=================
+
+1- Convert the file french.tst to 8-bit.
+2- Ensure your TEXINPUT path pointing to the inputs directory first.
+ For LaTeX users: LaTeX frenchlb.tex
+ For TeX users: TeX frencht.tex
+3- Print the first 45 pages of frenchlb.pdf.
+4- Print the first 45 pages of frenchrf.pdf and then compare the outputs
+5- Go back to the main directory.
+
+Optional tests are provided, look at the files.
+==============================================================================
+
diff --git a/language/french/e-french/texmf/doc/test/XeLaTeX/frenT1xe.pdf b/language/french/e-french/texmf/doc/test/XeLaTeX/frenT1xe.pdf
new file mode 100644
index 0000000000..8bcda89644
--- /dev/null
+++ b/language/french/e-french/texmf/doc/test/XeLaTeX/frenT1xe.pdf
Binary files differ
diff --git a/language/french/e-french/texmf/doc/test/XeLaTeX/frenT1xe.tex b/language/french/e-french/texmf/doc/test/XeLaTeX/frenT1xe.tex
new file mode 100644
index 0000000000..8727598e05
--- /dev/null
+++ b/language/french/e-french/texmf/doc/test/XeLaTeX/frenT1xe.tex
@@ -0,0 +1,85 @@
+% !TeX program =XeLatex
+% This is frenT1lb.tex
+%
+% French Torture Test with LaTeX (main style: book)
+% Copyright Bernard Gaulle as in french.doc
+%
+% last mods 2006/04/25
+%
+\advance\hoffset by -10pt% marge droite (chez moi) pas totalement imprimee
+\documentclass[twocolumn,a4paper]{book}%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%% si vous n'avez pas utilise kbconfig, probablement avez-vous besoin de :
+%\usepackage[T1]{fontenc}% pour utiliser les fontes a la norme Cork (DC,...)
+%\usepackage[utf8]{inputenc}% pour le codage d'entree, ici utf8, XeLaTex s'en passe
+\usepackage{eurosym} % pour euro
+\usepackage{xltxtra}% pour le logo de XeTeX
+\usepackage{fontspec}
+\fontencoding{T1}
+%\DeclareUnicodeCharacter{20AC}\euro de ceci aussi, XeLaTex s'en passe
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\usepackage{mysmall,mylist}
+%\usepackage{epstopdf} %converting to PDF
+%\usepackage{french}% Maintenant on peut utiliser cette syntaxe:
+\usepackage[anglais,francais]{mlp}
+\setlength{\textheight}{225mm}% a4paper is a little shorter...than a4.sty
+\advance\hoffset by 40pt% for better placement
+\listfiles
+
+\setlength{\textwidth}{415pt}%%
+\catcode`\@=11
+\let\Stop\undefined\ifx\@@end\undefined\let\@@end\end\fi
+% Localisation code for numbered \typeout: "\kbAissue% localise it."
+% For debugging one can remove "msg" access, just uncomment
+%\let\kbAissue\relax% this line.
+ \ifx\kbAissue\undefined%
+% Firstly we add the material to use the "msg" package for localization.
+ \def\kb@issue#1#2{\kb@issue@[#1]#2\void}% The local \issuemsg macro.
+ % which will call the real one;
+ % #1 is the macro message required.
+ % #2 is the message header + msg number
+ % such as "^^J -234-", just message
+ % number (234) is kept.
+ \let\kbAissue\kb@issue%
+ \def\kb@issue@[#1]#2-#3-#4\void{\issuemsg[#1]#3(french)}%
+ \ifx\issuemsg\undefined\let\kbAissue\relax\let\typeouA\typeout\fi%
+ \fi%
+%
+\ifx\endfrench\switchtolanguage
+\kbAissue% localise it.
+ \typeout{-37a- ANOMALIE : extension french active ici.}\Stop
+\@@end
+\fi
+\def\LPLAIN{lplain}
+\ifx\fmtname\LPLAIN\else\relax
+ \def\LPLAIN{LaTeX2e}
+ \ifx\fmtname\LPLAIN\else\relax
+ \typeout{**********************************************}
+\kbAissue% localise it.
+ \typeout{-36- ANOMALIE \string: nom de format LaTeX (\fmtname) invalide.}
+ \typeouA{CORRIGER pour avoir \fmtname=\LPLAIN\space ou ancien nom.}
+\Stop% Vous devez avoir dans ltvers.dtx : \def\fmtname{LaTeX2e} !
+\@@end
+ \fi
+\fi
+\catcode`\@=12
+\let\iflatex\iftrue
+\def\SmsG{\typeout%
+ {\string<\string<--------------------------------------------------------}}
+\def\FmsG{\typeout%
+ {--------------------------------------------------------\string>\string>}}
+{\SmsG\obeyspaces
+\typeout{( Test de torture du style \frenchname}
+\typeout{(Ce test genere deliberement quelques messages d'erreur. )}
+\typeout{(Pour vous permettre de distinguer les messages d'erreur )}
+\typeout{(normaux de ceux qui sont anormaux, j'ai encadre, comme )}
+\typeout{(ici, ces messages ; ne vous en preoccupez pas. --bg )}
+\FmsG}%
+\frenchtest
+\ifx\endfrench\switchtolanguage\else
+\kbAissue% localise it.
+ \typeout{-37b- ANOMALIE \string: extension french inactive ici.}\Stop\fi
+\end{document}
+%%
+%% checksum = "56133 79 312 3522"
+%%
diff --git a/language/french/e-french/texmf/doc/test/XeLaTeX/french.tst b/language/french/e-french/texmf/doc/test/XeLaTeX/french.tst
new file mode 100644
index 0000000000..eae5a989f2
--- /dev/null
+++ b/language/french/e-french/texmf/doc/test/XeLaTeX/french.tst
@@ -0,0 +1,3684 @@
+% !TeX encoding = utf8
+% This is the french torture file for all formats.
+% Copyright Bernard Gaulle as in french.doc
+%
+% À passer en 8 bits conformément à votre système
+%
+%% checksum = "25011 3750 14847 120214"
+%%
+%
+% For localisation:
+%
+\makeatletter%
+\ifx\documentclass\undefined\let\kbAissue\relax\let\typeouA\typeout%
+\else%
+ \let\typeouA\@gobble%
+% For debugging one can remove "msg" access, just uncomment
+%\let\kbAissue\relax% this line.
+ \ifx\kbAissue\undefined%
+% Firstly we add the material to use the "msg" package for localization.
+ \def\kb@issue#1#2{\kb@issue@[#1]#2\void}% The local \issuemsg macro.
+ % which will call the real one;
+ % #1 is the macro message required.
+ % #2 is the message header + msg number
+ % such as "^^J -234-", just message
+ % number (234) is kept.
+ \let\kbAissue\kb@issue%
+ \def\kb@issue@[#1]#2-#3-#4\void{\issuemsg[#1]#3(french)}%
+ \ifx\issuemsg\undefined\let\kbAissue\relax\let\typeouA\typeout\fi%
+ \fi%
+\fi%
+\makeatother%
+%
+% For better debugging:
+%\ifx\IeC\undefined code dont XeLaTex se passe
+%\kbAissue% localise it.
+%\typeout{^^J-66- ERROR! This file can't be typeset without any input}
+% \typeouA{-66- encoding declaration (look at keyboard or inputenc packages.)}
+%\expandafter\stop% \usepackage[latin1]{keyboard} should be fine.
+%\fi
+\let\FP\frenchpack\hyphenation{e-french} % anciennement French-Pro
+\wlog{Formating \jobname\space with\space\FP\space(\frenchstyleid)}
+%
+%
+\ifx\ProvidesFile\undefined\def\ProvidesFile#1[#2]{}\fi%
+\ProvidesFile{french.tst}%
+ [2005/05/11 The torture test file for the package \FP]% **last mods**
+\ifx\undefined\FmsG\def\FmsG{}\def\SmsG{}\fi
+%
+{\catcode`\<=\active\catcode`\>=\active%
+% Je veux :
+%\global\def<{\left\langle}\global\def>{\right\rangle}
+% Et pour ne pas pouvoir avoir l'effet que localement,
+% je fais :
+\gdef<{\myinf}\gdef>{\mysup}
+}
+\label{nulllabel}% null \label for AmSTeX test \ref within a \ref
+\iflatex\makeindex \makeglossary
+ \csname frhyphex\endcsname% load (again) the exceptions, outside babel
+ \def\NL#1{\Sauter#1Lignes}
+ \begin{document}
+ \makeatletter
+ \ifx\babel@savevariable\undefined%
+ \let\FRENCH\frenchTeXmods%
+ \else\def\FRENCH{\selectlanguage{french}}% pour babel
+ \fi%
+ \makeatother
+ \csname onecolumn\endcsname % avoid writting \onecolumn
+ % (special effect in frencht.tex)
+ \renewcommand{\thepage}{\roman{page}}%
+ \ifx\documentclass\undefined\else% for 2e
+ % As 2e doesn't accept \verb in arguments:
+ \gdef\myverb|#1|{%\nonfrench
+ \texttt{#1}%
+ %\endnonfrench
+ \relax}%
+ \fi
+\else
+ \let\FRENCH\frenchTeXmods%
+ \def\NL#1{\par}
+\fi
+\ifx\myverb\undefined\let\myverb=\verb\fi%
+% global here is just req. for TeX--XeT tests.
+\global\let\myinf\inferieura% A no-op def
+\global\let\mysup\superieura% for a temporary action
+\ifx\undefined\english\let\english\relax\fi%
+% Les \ldots sont $\ldots$ a cause de AmSLaTeX V1.1
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\def\HyphDiff#1#2{{\setbox0=\vbox{%
+ \pretolerance=-1 \hyphenpenalty=-10000
+ \hsize=0pt \leftskip=0pt \rightskip=0pt \parfillskip=0pt
+ \parindent=0pt \hfuzz=\maxdimen \interlinepenalty=0
+ \clubpenalty=0 \widowpenalty=0 \brokenpenalty=0
+ \hskip 0pt #1}%
+ \setbox2=\hbox{}%
+ \setbox9=\vbox{\unvbox 0 \loop \unskip \setbox1=\lastbox
+ \ifhbox 1
+ \global\setbox 2 = \hbox{%
+ \unhbox 1 \discretionary{}{}{}%
+ \unhbox 2}%
+ \repeat}%
+\setbox3\hbox{#2}\ifnum\wd2=\wd3\else
+\kbAissue% localise it.
+\typeout{-31- Wrong French Hyphenation\string!
+ Are you sure to run with a format ***********}
+\typeouA{-31- in which the french patterns were
+ installed at initex time\string? ***********}
+\ifECM\else%
+\kbAissue% localise it.
+\typeout{-32- if yes try to switch to T1 font
+ encoding (\noexpand\usepackage[T1]{fontenc})***}
+\fi%
+\showhyphens{#1}\typeout{(should be\string: #2)
+ \string<\string<======== *********************************}
+\fi}}
+\HyphDiff{éventualité}{éven-tua-lité}
+\HyphDiff{dégazonnage}{dé-ga-zon-nage}
+\HyphDiff{chromosomique}{chro-mo-so-mique}
+%%%%
+\SmsG%
+\typeout{V\'%
+ erification de la sortie de caract\`%
+ eres 8-bits \string:}
+\message{L'\'% \typeout ne transforme pas en 8bits pour l'instant.
+ et\'%
+ e est l\`%
+ a en ao\^%
+ ut \string!}
+\typeout{Et si les caractères sont en utf8 \string:}
+\message{L'été est en août \string!}
+\typeout{Ce n'est pas mieux}
+\iflatex%
+\typeout{Essai de macro d'accentuation dans un ordre \string\showhyphens %
+ \string:}
+\showhyphens{Faut-il croire \`%
+ a l'\'%
+ ETERNIT\'%
+ E ? \'%
+ eludons ...}
+\showhyphens{Ao\^%
+ ut 2001 ou l'autre \`%
+ ere ...}
+\fi%
+\FmsG%
+%
+\english% Title page is in english
+\ifx\documentclass\undefined % Still Plain! so no \DeclareFontFamily
+\else%
+% To avoid "No file OMScmtt.fd" message 2004/10/29
+\DeclareFontFamily{OMS}{cmtt}{\skewchar\font48 }
+\DeclareFontShape{OMS}{cmtt}{m}{n}%
+ {<->ssub*cmsy/m/n}{}
+\DeclareFontShape{OMS}{cmtt}{m}{it}%
+ {<->ssub*cmsy/m/n}{}
+\DeclareFontShape{OMS}{cmtt}{m}{sl}%
+ {<->ssub*cmsy/m/n}{}
+\DeclareFontShape{OMS}{cmtt}{m}{sc}%
+ {<->ssub*cmsy/m/n}{}
+\DeclareFontShape{OMS}{cmtt}{bx}{n}%
+ {<->ssub*cmsy/b/n}{}
+\DeclareFontShape{OMS}{cmtt}{bx}{it}%
+ {<->ssub*cmsy/b/n}{}
+\DeclareFontShape{OMS}{cmtt}{bx}{sl}%
+ {<->ssub*cmsy/b/n}{}
+\DeclareFontShape{OMS}{cmtt}{bx}{sc}%
+ {<->ssub*cmsy/b/n}{}
+%%%%%%%%%%%%%%%%%%%%%%%
+\fi%
+\makeatletter% for \f@encoding
+\french
+\title{\fbox{ \FP\ avec \XeLaTeX%
+% \thanks{We are here in english, notice the problem when we use,
+% like in \texttt{frenchla}, a
+% {\mdseries\texttt{\textbackslash fnsymbol}}
+% in a box.\newline%
+% \indent \hspace*{0.5em}
+% Notice also that
+% {\mdseries\texttt{\textbackslash backslash}}
+% can't be used.%
+% }%
+ }\\ \ \\%
+ Version \frenchstyleid\\ \ \\
+ ``Torture'' Test (\jobname) \\ with
+ \ifx\encodingdefault\undefined Unknown
+ \else\ifx\f@encoding\undefined\encodingdefault{}
+ \else\f@encoding{} \fi
+ \fi Font Encoding\\\ }
+ \author{Bernard {\sc Gaulle}%
+ \thanks{Thanks to those good guys who helped me.\newline%
+ \indent\hspace*{0.5em}
+ This test note is also referred by a
+ {\mdseries\texttt{\textbackslash refmark}} call.
+ \label{title:thanks}%
+ }%
+ \\ \ \\ et...\refmark{title:thanks}\\[2em]%
+Revisited 2018 by Raymond Juillerat for \XeLaTeX
+ }%
+% AmS \normalparindent no more exists 2000/06/15, so the code is removed.
+%\makeatletter% Don't let AMS change \parindent
+%\ifx\RIfM@\undefined\else\normalparindent=1em\parindent=\normalparindent\fi%
+%\makeatother
+\makeatother%
+\date{Printed on \today}
+% As the titlepage is in English but the date in French we let \ier defined:
+{\def\ier{ier}\maketitle}
+\setcounter{page}{2}\thispagestyle{empty}
+\cleardoublepage\french
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\onecolumn
+\sommaire[4]
+\bigskip
+\begin{center}
+\noindent\fbox{%
+\begin{minipage}[t]{0.5\textwidth}
+\begin{center} \fbox{\parbox{5cm}{{\bf Remarque} : \\ la commande
+\texttt{\backslash som\-maire}\label{pbverb}%
+\footnote{Cette note a été demandée depuis une minipage.}%
+\footnote{Cette deuxième note aussi.}
+%%%%NB : \verb|\sommaire| ou \verb|\tableofcontents| produisent des HORREURS,
+%%%% lorsqu'ils ont utilises dans un \fbox, BUG LATEX !
+ est un apport de \FP.\hfill}}
+\end{center}
+\end{minipage}
+}
+\end{center}
+
+{% Not a LaTeX redefinition : \def\thefootnote{\fnsymbol{footnote}}
+\renewcommand{\thefootnote}{\fnsymbol{footnote}}%
+Essai de note avec \verb|\fnsymbol|
+\footnote{Note avec une étoile.}.
+
+\def\thefootnote{\relax}
+Essai de note de bas de page non numérotée
+\footnote{Note non numérotée.}.
+}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\cleardoublepage
+\chapter*{\prefacename}
+
+{\em Certains croient qu'une préface peut apporter de la valeur au livre,
+moi je pense plutôt que cela apporte de la {\em valeur}
+à l'auteur...} (dans
+tous les sens du terme).
+
+\cleardoublepage
+
+\twocolumn
+\renewcommand{\thepage}{\arabic{page}}\setcounter{page}{1}%
+\chapter*{Introduction}
+
+\begin{motsclef}
+french, style, francisation, francophonie, multilingue,
+english, option, extension.
+\end{motsclef}
+
+\begin{resume}
+Ce document a été conçu
+uniquement pour tester intensivement \FP\ (anciennement appelé
+option de style%
+ \glossary{<< : ; style ? ! >>}\index{<< : ; style ? >>}%
+ \footnote{Cette note a pour but de faire appel à une macro
+ \texttt{\backslash index} contenant des caractères actifs.%
+ \index{<< : ; depuis la note de bas de page ? >>}%
+ }
+\index{french!Le point d'exclamation est un caractère spécial de Makeindex}%
+\index{<@{\tt\protect\inferieura} ({\tt\protect\backslash inferieura})}%
+\index{>@{\tt\protect\superieura} ({\tt\protect\backslash superieura})}%
+\index{Magic di N'Konga (auteur célèbre)}%
+ \texttt{FrenchPro}).
+\end{resume}
+
+\bigskip Notez que les deux environnements \verb|resume| et \verb|motsclef|
+(ainsi que \verb|keywords|)
+sont des apports de \FP.
+
+\bigskip Si le libellé << Résumé >> apparaît dans la partie
+ anglaise, cela
+signifie que \FP\ ne possédait pas de définition
+d'\verb|\abstract| et donc l'a remplacé par \verb|\resume|. Cela signifie
+aussi que les libellés anglais n'ont pas été définis
+%(\verb|\captionnames|%
+%\footnote{Une extension {\tt fenglish} est fournie conjointement avec
+%\FP\ ; {\tt\backslash captionnames} y est défini.
+%Cette extension {\tt
+%fenglish} est automatiquement appelée par \FP\ dans le
+%cas que nous avons cité.}
+% n'était pas défini par les extensions appelées avant
+% \FP).
+Rappelez-vous aussi que \verb|\abstract| ne fait pas partie de la classe
+de document \verb|book|.
+
+Remarquez les différences entre les numéros de notes de bas de page en
+français et en anglais, ainsi que l'impression de ce même numéro en
+bas de la page.
+
+\english\newpage
+\begin{keywords} %???\relax% for AMS which has its own macro with #1
+French, Style, Option, Package, French-Speaking usage, English, Multilingual.
+\end{keywords}
+
+\begin{abstract} The object of this paper is to test intensively \FP.
+\end{abstract}
+\NL1
+
+\bigskip Notice that the three environments
+\verb|resume|, \verb|keywords| and \verb|motsclef|
+are all introduced by \FP.
+
+\bigskip Notice that if the abstract name printed here is not ``Abstract'' you
+are using packages that have no \verb|\abstractname| defined for eng\-lish.
+ The english package defining such captions is loaded only
+if \verb|\captionsnames|%
+\footnote{The {\tt fenglish} package is given with \FP,
+so {\tt$\backslash$captionnames} are normally defined because
+\FP\ is calling automatically the {\tt fenglish} package in the
+pre\-viously cited case.} was
+previously undefined. (Remember also that as \verb|\abstract| is not defined
+in the \verb|book| document class the \FP\ assumes it is a
+\verb|\resume|.)
+
+Notice the different typesetting of the footnote numbers in French and English
+as well as the printing of that numbers before the footnote text.\vfill
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+%\pagebreak
+\french
+\part{Ce qui marche est ici...}
+\disallowuchyph% ce que je prefere...
+
+\chapter{Avertissements}
+
+Seul le document authentique qui est fourni par l'auteur
+ sous une forme composée
+constitue la référence. Cela veut dire que l'installateur de \FP\
+sur un système doit comparer son résultat
+(sous forme papier ou
+fichier \verb|.pdf|) avec la forme authentique fournie par l'auteur.
+
+\bigskip
+
+\bigskip \FP\ a été conçu pour fonctionner
+avec la majorité des formats basés sur \LaTeX{}
+\footnote{Au siècle dernier (XX\ieme), \FP\ était appelé << style
+\texttt{french} >> et pouvait fonctionner en dehors de \LaTeX\ mais
+l'effort pour assurer cette facilité dans de trop nombreux formats
+exotiques était totalement disproportionné ; ceci a donc été
+abandonné (au moment de la sortie de \LaTeXe).}%
+.
+
+\bigskip \AllTeX{} est mon logo ; il symbolise {\em tous les \TeX{}} ; on peut
+l'imprimer correctement dans toutes les polices ({\em \AllTeX}, {\bf \AllTeX},
+{\sf \AllTeX}, {\tt \AllTeX}, ...) grâce à la partie NFSS de \LaTeXe%
+\footnote{Le document de référence ({\tt frenchrf})
+a été produit avec NFSS. Ce document-ci a été composé avec le format
+{\tt \fmtname}.}
+.
+
+\newpage\english Only the authentic author's document in a composed form is
+the reference. That means that the on site \FP\ installator must
+compare his result (paper or \verb|.pdf| file) with the authentic form
+provided by the author.
+\NL2
+
+\bigskip \FP\ was designed to work with all {\em formats\/}
+based on \LaTeX.
+
+\bigskip \AllTeX{} is my logo ; it's a symbol for expressing
+{\em all \TeX{}} ; one can print it correctly in all shapes
+({\em \AllTeX}, {\bf \AllTeX},
+{\sf \AllTeX}, {\tt \AllTeX}, etc.) due to the NFSS part of \LaTeXe%
+\footnote{The
+reference document was produced with NFSS of {\tt \fmtname}.}%
+.
+
+\french
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\chapter{La torture}
+
+\section{Le saviez-vous ?} Nos journaux, livres, revues,
+articles scientifiques ou autres ont été (en gros) durant les trente
+dernières années du vingtième siècle imprimés
+par des machines d'origine
+américaine. Ainsi, petit à petit, nous perdîmes
+l'habitude de lire des
+majuscules accentuées parce que tout simplement les polices
+ de caractères
+utilisables sur ces machines n'en comportaient pas.
+
+L'usage de plus en plus généralisé de l'infor\-ma\-tique
+{\em américaine} fit ainsi disparaître pendant un temps tous
+ les accents de notre langue écrite.
+
+De la même manière un certain nombre de
+{\em mauvaises habitudes} furent
+prises quasiment inconsciemment tout simplement parce que les programmes
+informatiques ne pouvaient pas faire autrement. Ainsi de nombreuses {\it
+coquetteries} de notre typographie sont tombées dans l'oubli.
+
+Saviez-vous par exemple qu'on n'imprime pas des guillemets comme ceci `` '' ni
+même ` ' mais ainsi << >> ? Nous nous autoriserons toutefois
+ à utiliser dans
+ce document ces guillemets %\noenglishquote
+(` ') que nous considérons comme
+{\em techniques}.
+
+\newpage\english \section{Did you know that?}
+Our (french)
+newspapers, books, magazines, scientific articles and other things have
+been printed the last thirty years (roughly)
+of the twentiest century with american machines. So our
+habits to read accented uppercase letters declined because they simply were
+not included in the machinery.\NL2
+
+Together with American computer usage growth, all french
+diacritics disappeared from our french written language.\NL1
+
+In a same way {\em bad
+habits} took place, inconsciously, for the only reason that computer programs
+could not do otherwise. So, a lot of french typographic {\em coquetteries\/}
+are largely forgotten.\NL1
+
+ Did you know for example that we never typeset french
+guillemets like this `` '' neither ` ' but%
+{\makeatletter\def\GOfrench{T1}\ifx\GOfrench\f@encoding\else%
+\footnote{We switched to \emph{French} here to be able %
+ to print valid glyphs.}%
+\fi} %
+\begin{french}<< and >>\end{french}? Instead, we will
+authorised ourselves to use (` ') in this document
+because we consider they are {\em technical} guillemets.
+\french
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\newpage
+*** Cet espace est laissé intentionellement à blanc ***
+\NL3
+\section{Typographie française}
+%\noenglishquote
+La typographie française est spécifique en ce qui concerne
+l'utilisation des signes sui\-vants :
+`\verb|.| \verb|:| \verb|;| \verb|!| \verb|?| \verb|<<| \verb|>>|'.
+
+La répartition des espaces dans une ligne se fait de façon
+équitable entre les
+mots (jamais à l'intérieur des mots) et après
+la ponctuation (c'est le
+\verb|\frenchspacing| de \TeX{}) contrairement à la
+ typographie anglaise.
+
+Les `\verb|; ! ?|' doivent être précédés d'une espace fine
+insécable. C'est
+ce que nous avons appliqué dans \FP.
+Le cas du `\verb|?|'
+a été traité spécialement car l'espace fine ayant
+été jugée trop grande (par
+des spécialistes), a été réduite tout en adjoignant une peu de
+{\em glue} d'extensibilité.
+
+En ce qui concerne le `\verb|:|', le code typogra\-phi\-que%
+\footnote{Nous
+avons choisi d'adopter les recommandations de l'imprimerie nationale
+française.} précise qu'il est précédé
+d'une espace {\em mot\/}
+insécable.
+D'autres ont jugé que c'était inesthétique et cela a été
+remplacé par une espace fine.
+
+Les guillemets français << doivent être suivis d'une espace mot
+insécable qui
+a été remplacée ici par une espace moindre.
+Les guillemets fermants >>
+sont, eux, précédés de la même espace.
+
+\SmsG%
+Lorsque la ligne n'est pas assez remplie et qu'il existe un `:', les
+typographes ont --~semble-\hbox{t-il}~-- l'habitude
+de répartir largement les espaces autour
+des deux points. C'est ce qui a été fait dans \FP\ qui
+pourra éventuellement produire une ligne : peu remplie\footnote{Le cas présenté ici a été
+créé artificiellement et peut donc apparaître exagéré dans
+certaines mises-en-pages.}%
+\penalty-10000%
+ ou aussi bien une ligne se terminant ainsi : << {\em com\-me % \- pour fourier
+font les pros\/} >>
+lorsqu'ils ne trouvent pas d'autre moyen mais il devrait s'agir que de cas
+extrêmes. À noter que cela a pour avantage de réduire les
+\verb|over/under-full hbox| de façon significative.
+
+Paragraphe de remplissage...\\ ...\\... pour vérifier que le `:' ne
+termine ni la page ni la colonne. Ainsi :
+
+%\englishquote
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\begin{itemize}
+\item %qu'il s'agisse de verbatim ou d'une liste d'éléments
+les deux points et le texte qui suit
+sont tous deux sur la même page.
+\end{itemize}
+%\newpage % already done with the previous list
+\FmsG%
+\english
+
+\smallskip
+
+\section{French printing}
+
+French printing use specific typographic rules specially in concern with
+the following: `. : ; ! ?' and french guillemets.
+
+Interword spacing in a line is allways equal (and never modified inside a
+word). It's the same way after punctuation (standard \verb|\frenchspacing|) as
+opposed to the english typography.\NL1
+
+All `; ! ?' are preceeded by a thin and uncuttable space. We apply this
+automatically in \FP. (We have added few stretching {\em glue} to
+the question mark).\NL2
+
+Regarding the `:' we have not inserted an inter-word space but a thin space
+and also have added some glue.\NL2
+
+\smallskip
+French guillemets are processed the same way. \NL3
+
+In an {\em underfull\/} line containing a `:' man has habits to share spaces
+around the double points. This way used in \FP\ can also produce a
+line with a ragged right, as shown in the french column. This technique
+ reduce a lot of {\em overfull} and {\em underfull} {\tt hboxes}
+produced by \TeX{}.
+\NL3
+
+As shown also, \FP\ is reluctant to print a double point at the
+end of a page or a column.\french%\noenglishquote
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\newpage
+\section[Dactylographie française]{Rappels concernant la \newline
+dactylographie}
+
+Les habitudes de saisie c.-à-d. les habitudes dactylographiques,
+ veulent que les signes suivants
+`\verb|:| \verb|;| \verb|!| \verb|?| \verb|>>|'
+soient toujours précédés d'un blanc
+(barre d'espace sur les claviers) et les \verb|<<| toujours
+suivis d'un blanc. \FP\ remplacera
+automatiquement ce blanc (à la composition) par l'espace appropriée.
+
+{\moretolerance\moretolerance\moretolerance
+Les guillemets français << (et respectivement >>)...
+\footnote{\tthyphenation Avec les options fournies
+telles \vers|A4| et \vers|double|\-\vers|column| on obtient
+ là un \vers|overfull| \vers|hbox| difficilement réductible
+de façon automatique mais je l'ai réduit
+avec 3 \texttt{\backslash moretolerance}%
+\notthyphenation.}
+\par}
+%\nooverfullhboxmark
+
+Les vrais guillemets français << (et respectivement >>)
+s'utilisent toujours doublés (\verb|<<| et respectivement
+\verb|>>|). Ainsi $<$ et $>$ ne
+sont que des signes mathématiques et n'ont pas
+d'autre sens en français que : {\em inférieur à} et
+{\em supérieur à}.
+
+Il est fortement conseillé de poursuivre
+ces habitudes dactylographiques qui
+contribuent aussi à éclaircir le texte
+saisi et donc ainsi à faciliter les
+corrections ultérieures.
+\NL1
+
+\subsection[Test de la ponctuation française
+ \mdseries`\protect\myverb|. : ; ! ?|']
+{Test de la ponctuation \newline française
+ \mdseries`\protect\myverb|. : ; ! ?|'}
+
+Le deux points s'imprime comme ceci : s'il est précédé d'un blanc
+(au moins un) sinon rien n'est changé (par ex. 11:33). Notez
+l'espace après le point terminant la phrase ; le point virgule
+est aussi précédé d'une espace fine s'il n'est pas collé
+au mot le précédant (comme dans cet exemple dû à une faute
+de frappe; assez fréquente).\\
+{\moretolerance
+Oh ! Quoi-donc ? Notez ici l'espacement utilisé
+devant le `!' et le `?'. Il ne faut
+pas oublier aussi de taper le blanc avant, sinon? tout est
+%terriblement
+ collé! Voyez-vous la différence ? Bravo !
+}
+
+Mais pour les documents {\em mal\/} saisis (c.-à-d. sans blanc) il est
+toujours possible de spécifier la sous-option \verb|\untypedspaces|
+\untypedspaces pour obtenir une insertion automatique des espaces
+manquants comme ici! où il avait été saisi `\verb|ici!|'.
+Vérifions pour les autres ponctuations :;? \typedspaces que nous
+n'obtenons pas :;? serrées comme ici.
+
+Vérification de l'espacement :
+
+\noindent
+\verb| \typedspaces X~; Y ; Z;| = \typedspaces X~; Y ; Z;
+
+\noindent
+\verb|\untypedspaces X~; Y ; Z;| = \untypedspaces X~; Y ; Z; \typedspaces
+
+\newpage\english
+\section{French typing}
+French typists have some habits. For example they type a space before `: ; ! ?
+\verb|>>|' and after \verb|<<|. \FP\ replace automatically this
+blank space by the appropriate spacing.
+
+There is only one kind of quoting in French by the mean of guillemets which
+are allways typed \verb|<<| and \verb|>>|. Usual english simple and double
+quotes must be prohibited.
+
+\subsection{\mdseries%
+ \texttt{\textbackslash untypedspaces}}%
+This control command offers the ability to repair automatically a document
+badly typed i.e. in which spaces were not typed before french punctuation.
+This bypass can help but is not the good way to use daily because there are
+many cases where, for example, a double point must never be preceeded
+by a space.
+
+Now we verify that the spacing is unchanged in English:
+
+\noindent
+\verb| \typedspaces X~; Y ; Z;| = \typedspaces X~; Y ; Z;
+
+\noindent
+\verb|\untypedspaces X~; Y ; Z;| = \untypedspaces X~; Y ; Z; \typedspaces
+
+\subsection{\mdseries%
+ \texttt{\textbackslash wrongtypedspaces}}
+A french typist may input spaces before
+punctuation as it is usual in French. These unfortunate space
+ can be removed by simply letting \FP\ do it with* the control
+sequence:
+
+\begin{verbatim}
+\letpunctuationactivefor
+ \wrongtypedspaces
+\end{verbatim}
+
+\FRENCH% pour ne pas dire \french
+\letpunctuationactivefor\wrongtypedspaces
+\english
+Let's try the previous example:\par
+\noindent
+\verb| X~; Y ; Z;| = X~; Y ; Z;
+
+Now we say \verb|\nowrongtypedspaces|
+\nowrongtypedspaces to come back to the normal
+situation.
+
+\vfill
+\french
+\nowrongtypedspaces% to be sure it is set when english text is skipped
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\newpage
+\csname StopFrenchLbT\endcsname% special case, temporary.
+
+\section[Test des guillemets français 7-bits (<< >>)
+et utf8 (« »)
+]%
+{Test des guillemets \newline français (<< >>)}
+\hyphenation{nor-ma-le-ment}
+
+Les guillemets français s'écrivent et se saisissent
+<< normalement >> comme ceci :
+\verb|<< |{\tt nor}\-%
+{\tt male}\-{\tt ment }\verb|>>|
+ ou éventuellement en italiques mais toujours
+\bgroup% for frenchle
+<< \em normalement\/ >> %
+\egroup% for frenchle
+; ici nous avons tapé au clavier :
+\verb|<< \em| {\tt normalement}\verb| >>|.
+Et en tapant par contre :\\ \verb|<<\em|
+ {\tt anormale\-ment (sans espace)}\verb|>>| \ on obtient...
+\bgroup% for frenchle
+<<\em anormale\-ment (sans espace)\/>>.
+\egroup% for frenchle
+Re\-mar\-quez que les guillemets font office d'acco\-lades \TeX{} et que donc
+les changements de polices sont restaurés en sortant de la citation.
+
+Pour les documents déjà saisis {\em sans espace} << \FP\ >>
+insérera systématiquement un espace à l'endroit
+désiré si l'on a donné la sous-option \verb|\untypedspaces|.
+\untypedspaces
+Et en tapant à nouveau
+\verb|<<\em| {\tt anormale\-ment (sans espace)}\verb|>>| on obtient
+\bgroup% for frenchle
+<<\em anormalement (sans espace)\/>>.
+\egroup% for frenchle
+\typedspaces
+
+Parfois on désirera remplacer systématiquement tous les
+guillemets anglais (`` et '') d'un texte par de vrais guillemets
+français, il
+suffira alors de fournir l'étrange option :\\
+\texttt{\backslash noenglishdoublequotes}\\
+\noenglishdoublequotes pour obtenir : `` ''.
+
+`` '' (même test en début de paragraphe).\englishdoublequotes
+
+Lorsqu'une citation est faite dans un texte, celle-ci commence
+toujours par des guillemets. << Cette citation peut se poursuivre sur
+plusieurs paragraphes.
+
+Dans ce cas, le style %\verb|french|
+insérera systématiquement les guillemets nécessaires
+en début de
+chaque paragraphe. >>
+
+Mais une citation peut aussi en contenir une autre. << Dans ce cas l'imprimerie
+ nationale précise dans ses {\em Règles typographiques} :
+\ancientguillemets
+ << Lors\-que la première citation est
+elle-même placée entre
+guillemets, chaque ligne de la seconde débutera par un
+guillemet ouvrant. >>
+Ce dispositif, comme on le voit, n'est pas mis en Å“uvre ici
+ (voir son application au paragraphe \ref{noeveryparguillemets}).
+ << La deuxième citation peut aussi...
+
+se poursuivre sur un ou
+plusieurs paragra\-phes. >> Notez bien qu'avant cette citation nous avons
+demandé les \verb|\ancientguillemets|
+pour produire ces guillemets fermants
+en début de ligne. Le \verb|\todayguillemets| rétablit la
+situation une fois
+le deuxième niveau terminé. \todayguillemets
+
+{\makeatletter\def\GOfrench{T1}\ifx\GOfrench\f@encoding
+\enlargethispage{10pt}% increase probably due to EC fonts metrics?
+\fi}
+Il arrive que la fin d'une citation de deux\-ième niveau
+coïncide avec celle
+du premier niveau. << Dans ce cas il faudra coder, comme ici :\\
+\verb|\endguillemets|
+à la place de ``\verb|>>|'' \endguillemets.
+
+Deux tests : \fbox{\begin{guillemets} XXX \end{guillemets}}
+et \fbox{X \begin{guillemets} XXX \end{guillemets} X} servant à
+vérifier l'espacement quand on utilise \verb|\begin| et \verb|\end|.
+
+Le paragraphe suivant va alors démarrer de façon
+tout à fait normale...
+
+On peut aussi coder :
+\begin{verbatim}
+\begin{guillemets}
+Une citation...
+\end{guillemets}
+\end{verbatim}
+ce qui donnera :
+\begin{guillemets}
+Une citation...
+\end{guillemets}
+et en tapant {\em à la \TeX} : \verb|\guillemets{}| \verb|Une citation...|
+\verb|\en|\vers|d|\-\vers|guillemets{}| nous devons obtenir absolument la même chose :
+\guillemets{} Une citation... \endguillemets{}
+
+Vérifions maintenant l'espacement dans les différents cas :
+
+\noindent
+\fbox{\parbox{2cm}{<<X\dotfill X>>}} \%\texttt{\backslash typedspaces}
+ {\em sans blanc}
+
+\noindent
+\fbox{\parbox{2cm}{<< X\dotfill X >>}} \%\texttt{\backslash typedspaces}
+{\em normal}
+
+\noindent\untypedspaces
+\fbox{\parbox{2cm}{<< X\dotfill X >>}} \%\texttt{\backslash untypedspaces}
+{\em avec blanc}
+
+\noindent
+\fbox{\parbox{2cm}{<<X\dotfill X>>}} \%\texttt{\backslash untypedspaces}
+{\em sans blanc}
+\typedspaces
+
+\noindent
+\fbox{\parbox{3cm}{A blabla bla blabla : <<
+Ceci est mon test de césure >>}} <<...>> reste possible.
+
+\begin{flushleft}
+ Ceci est << un test avec \verb|\raggedright| >> qui
+--~théoriquement~-- ne devrait plus nous poser de problème.
+\end{flushleft}
+
+\subsection{{\mdseries%
+\texttt{\textbackslash noeveryparguillemets}}}\label{noeveryparguillemets}
+Cette option permet de gérer correctement les citations de second
+rang mais elle est tout à fait contraire
+ au processus \verb|\everypar| cité précédemment grâce auquel
+ les guillemets sont générés automatiquement à chaque
+début de paragraphe.
+Voici ce que produit l'option {\em normale\/}
+\texttt{\backslash every\-par\-guil\-lemets} sur le paragraphe suivant :
+
+<< Tout le monde s'accorde à trouver légitime la division :
+{\tt extra-ordinaire}. Le cas des mots com\-posés est le seul
+à rencontrer
+cette unanimité. Dans les autres, les opinions sont très partagées.
+ Frey est le plus catégorique : il n'admet de division selon la formation
+que pour des mots de composition complètement française, et la rejette
+sinon... Le {\em Code typographique}, tout en adoptant ce même point
+ de vue << ... [reconnaît] néanmoins que certains auteurs de travaux
+scientifiques préfèrent la division éty\-mologique
+qui fait ressortir
+ la racine grecque ou latine. >> Quant à Gouriou, il avait écrit :
+<< On préfèrera cependant garder la coupure étymologique
+ chaque fois que les composants sont {\em aisément} reconnaissables. >>
+(L'italique est de Gouriou.)
+\marginpar{{\footnotesize Ici on a triché avec des} \texttt{\backslash!}}
+\!Telle \!est aussi \!l'opinion \!de \!Girodet >>.
+
+Et voici l'effet de \verb|\noeveryparguillemets| :
+\noeveryparguillemets
+
+<< Tout le monde s'accorde à trouver légitime la division :
+{\tt extra-ordinaire}. Le cas des mots com\-posés est le seul
+à rencontrer
+cette unanimité. Dans les autres, les opinions sont très partagées.
+ Frey est le plus catégorique : il n'admet de division selon la formation
+que pour des mots de composition complètement française, et la rejette
+sinon... Le {\em Code typo\-graphique}, tout en adoptant ce même point
+ de vue << ... [reconnaît] néanmoins que certains auteurs de travaux
+scientifiques préfèrent la division éty\-mologique
+qui fait ressortir
+ la racine grecque ou latine. >> Quant à Gouriou, il avait écrit :
+<< On préfèrera cependant garder la coupure étymologique
+ chaque fois que les composants sont {\em aisément} re\-connaissables. >>
+(L'itali\-que est de Gouriou.)
+Telle est aussi l'opinion de Girodet >>.
+\everyparguillemets
+
+Il faut noter que cette option impose que le paragraphe commence et se
+termine par des guillemets. % sinon code \guillpar et \parguill
+C'est pour cela que nous n'avons pas mis cette option par défaut.
+
+\subsubsection{Un test assez méchant}
+Voici un exemple d'utilisation dans un environement \verb|quotation|%
+\footnote{Nous avons introduit \texttt{\backslash moretolerance}
+pour obtenir une composition correcte.} :
+\begin{quotation}
+\moretolerance\moretolerance\moretolerance
+<< Je ne peux mieux faire que de citer la définition qu'a donnée
+de la gravure un de nos maîtres fondeurs, Fournier le Jeune :
+
+<< La scien\-ce du graveur, dit-il, consiste à connaître la figure
+la plus parfaite que l'on puisse donner aux caractères, les dimensions
+qu'ils doivent avoir et à les représenter sur l'acier pour les frapper
+sur le cuivre afin d'en former des matrices qui perpétuent des lettres
+à l'infini par la fonte. \endguillemets
+\end{quotation}
+
+Le même exemple sans \verb|quotation| :
+
+<< Je ne peux mieux faire que de citer la définition qu'a donnée
+de la gravure un de nos maîtres fondeurs, Fournier le Jeune :
+
+<< La scien\-ce du graveur, dit-il, consiste à con\-naître la figure
+la plus parfaite que l'on puisse donner aux caractères, les dimensions
+qu'ils doivent avoir et à les représenter sur l'acier pour les frapper
+sur le cuivre afin d'en former des matrices qui perpétuent des lettres
+à l'infini par la fonte. \endguillemets
+\bigskip
+
+\noeveryparguillemets
+Puis avec \verb|\noeveryparguillemets| (c.-à-d. sans \verb|quotation|) :
+
+<< Je ne peux mieux faire que de citer la définition qu'a donnée
+de la gravure un de nos maîtres fondeurs, Fournier le Jeune :
+
+<< La scien\-ce du graveur, dit-il, consiste à connaî\-tre la figure
+la plus parfaite que l'on puisse donner aux caractères, les dimensions
+qu'ils doivent avoir et à les représenter sur l'acier pour les frapper
+sur le cuivre afin d'en former des matrices qui perpétuent des lettres
+à l'infini par la % En cas d'arrêt à cet endroit : le format
+fonte. \endguillemets%.fmt utilisé n'est prob. pas ds le bon codage !
+\bigskip
+
+Et enfin avec \verb|quotation|, voilà
+ce que cela peut donner\label{quotation} :
+%%% La \marginpar suivante pose un pb de ``Lost Float'' qd elle est
+%%% placee plus loin, pourquoi ?
+\marginpar{{\footnotesize Il y a ici un problème à étudier en 2 colonnes !}}
+\begin{quotation}
+<< Je ne peux mieux faire que de citer la définition qu'a donnée
+de la gravure un de nos maîtres fondeurs, Fournier le Jeune :
+
+<< La scien\-ce du graveur, dit-il, consis\-te à connaître la figure
+la plus parfaite que l'on puisse donner aux caractères, les dimensions
+qu'ils doivent avoir et à les représenter sur l'acier pour les frapper
+sur le cuivre afin d'en former des matrices qui perpétuent des lettres
+à l'infini par la fonte.
+ \endguillemets
+\end{quotation}
+\everyparguillemets
+On notera ici les espaces inter-mots beaucoup plus {\em tolérants}. C'est
+la seule solution trouvée pour arriver à imprimer
+quelque chose d'à peu
+près correct en double colonnage.
+
+Essayons les \verb|\og| et \verb|\fg| ainsi :\\
+\verb|Ceci \og est entre guillemets \fg.|\\
+Ceci \og est entre guillemets \fg.
+
+
+\vfill
+Terminons la page en anglais pour tester le haut de page. Les guillemets
+doivent être bons avec le codage T1.
+
+\english
+Let's complete the page with english text in order to test and show
+how will be printed the header.
+\french
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\newpage
+\onecolumn
+\subsubsection{Même test en \mdseries\texttt{\textbackslash onecolumn}}
+Voici un exemple en environement \verb|quotation| :
+\begin{quotation}
+<< Je ne peux mieux faire que de citer la définition qu'a donnée
+de la gravure un de nos maîtres fondeurs, Fournier le Jeune :
+
+<< La scien\-ce du graveur, dit-il, consiste à connaître la figure
+la plus parfaite que l'on puisse donner aux caractères, les dimensions
+qu'ils doivent avoir et à les représenter sur l'acier pour les frapper
+sur le cuivre afin d'en former des matrices qui perpétuent des lettres
+à l'infini par la fonte. \endguillemets
+\end{quotation}
+
+Le même exemple sans \verb|quotation| :
+
+<< Je ne peux mieux faire que de citer la définition qu'a donnée
+de la gravure un de nos maîtres fondeurs, Fournier le Jeune :
+
+<< La scien\-ce du graveur, dit-il, consiste à connaître la figure
+la plus parfaite que l'on puisse donner aux caractères, les dimensions
+qu'ils doivent avoir et à les représenter sur l'acier pour les frapper
+sur le cuivre afin d'en former des matrices qui perpétuent des lettres
+à l'infini par la fonte. \endguillemets
+\bigskip
+
+\noeveryparguillemets
+Puis avec \verb|\noeveryparguillemets| (sans \verb|quotation|) :
+
+<< Je ne peux mieux faire que de citer la définition qu'a donnée
+de la gravure un de nos maîtres fondeurs, Fournier le Jeune :
+
+<< La scien\-ce du graveur, dit-il, consiste à connaître la figure
+la plus parfaite que l'on puisse donner aux caractères, les dimensions
+qu'ils doivent avoir et à les représenter sur l'acier pour les frapper
+sur le cuivre afin d'en former des matrices qui perpétuent des lettres
+à l'infini par la fonte. \endguillemets
+\bigskip
+
+Et enfin avec \verb|quotation| :
+\begin{quotation}
+ \let\bkORI\break
+ %\def\break{\bkORI\hbox to 0pt{/}}% for debug
+ %\ancientguillemets% for debug
+<< Je ne peux mieux faire que de citer la définition qu'a donné
+de la gravure un de nos maîtres fondeurs, Fournier le Jeune :
+
+<< La scien\-ce du graveur, dit-il, consiste à connaître la figure
+la plus parfaite que l'on puisse donner aux caractères, les dimensions
+qu'ils doivent avoir et à les représenter sur l'acier pour les frapper
+sur le cuivre afin d'en former des matrices qui perpétuent des lettres
+à l'infini par la fonte. \endguillemets
+\end{quotation}
+\everyparguillemets
+
+\subsubsection{Test de << stretchability >>}
+
+Les espaces doivent être également répartis sur la ligne :
+
+\medskip
+\hbox to \hsize{etiord-gauche\footnote{En plain \TeX{} l'espacement est ici
+\label{etiord}
+ curieusement incorrect ! ...}
+ << centre-ertnec >> \hbox{}\footnote{... alors qu'il faudrait
+la même répartition
+ de l'espace.}%
+ ehcuag-droite}
+\medskip
+
+\subsection{Test des commandes \mdseries\texttt{\textbackslash ifnum}}
+
+\ifnum 1 < 3 1\verb| < |3 est VRAI, bien sûr !
+ \else 1\verb| < |3 est FAUX ! \fi
+comme
+\ifnum 3 > 1 3\verb| > |1 est aussi VRAI, bien sûr !
+ \else 3\verb| > |1 est FAUX ! \fi
+
+\medskip
+
+\subsection{Test des commandes \mdseries\texttt{\textbackslash everypar}}
+
+{J'ai codé dans cette section \verb|\everypar{$++\,$}| : \everypar{$++\,$}
+
+Paragraphe 1 << citation niveau 1
+
+Paragraphe 2 << citation niveau 2
+
+Paragraphe 3 fin citation niveau 2 >> puis fin niveau 1 >>
+
+Paragraphe 4}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\newpage% tjrs en 1 colonne
+\hbox{}\ifx\itshape\undefined\else% avoid old frencht crash
+\subsection{Test de fermeture prématurée}
+
+Il arrive que les guillemets soient fermés dans un environnement
+plus intérieur qui n'apparie donc pas correctement les blocs.
+Voici un exemple d'utilisation :
+
+\begin{verbatim}
+Maître Corbeau dit à son clerc : << \itshape Cher collègue,
+
+\begin{itemize}
+\item Ah que vous êtes joli !
+\item Ah que vous me semblez beau ! >> \upshape
+et s'enfuit de ce pas...
+\end{itemize}
+
+\endguillemets
+\textsf{Quel homme étrange, n'est-ce pas ?}
+\end{verbatim}
+
+Voici ce que cela donne comme composition :
+
+\medskip
+\bgroup% for frenchle
+Maître Corbeau dit à son clerc : << \itshape Cher collègue,
+
+\SmsG%
+\begin{itemize}
+\item Ah que vous êtes joli !
+\item Ah que vous me semblez beau ! >> \upshape
+et s'enfuit de ce pas...
+\end{itemize}
+\FmsG%
+
+\endguillemets
+\egroup% for frenchle
+\textsf{Quel homme étrange, n'est-ce pas ?}
+
+\medskip
+On notera plusieurs choses. Premièrement il a fallu
+rétablir \verb|\upshape| après les guillemets fermants,
+du fait du mauvais appariement des blocs. Ensuite un message
+sort indiquant une fermeture prématurée des guillemets.
+Cette fermeture restant incomplète on note enfin que l'on a forcé
+un \verb|\endguillemets| pour clore proprement et définitivement
+l'environnement guillemets.
+
+\subsection{\mdseries\texttt{\textbackslash everyparguillemetsremoved}}
+\label{noeveryparguillemetsremoved}
+Dans le même exemple nous pouvons aussi interdire la génération
+automatique des guillemets ouvrants à chaque début de paragraphe ;
+il faut alors saisir \verb|\everyparguillemetsremoved| :
+\everyparguillemetsremoved
+
+\medskip
+\bgroup% for frenchle
+Maître Corbeau dit à son clerc : << \itshape Cher collègue,
+
+\SmsG%
+\begin{itemize}
+\item Ah que vous êtes joli !
+\item Ah que vous me semblez beau ! >> \upshape
+et s'enfuit de ce pas...
+\end{itemize}
+\FmsG%
+
+\endguillemets
+\egroup% for frenchle
+\textsf{Quel homme étrange, n'est-ce pas ?}
+
+\medskip
+Il suffit ensuite de rétablir \verb|\everyparguillemets|.
+\everyparguillemets
+\fi% ifx \itshape
+
+\subsection{Test de l'espacement}
+{\def\marque#1{\vbox{\halign{\hfil##\hfil\cr
+ \llap{\vrule width4.5mm height.4pt}%
+ \rlap{\vrule width4.5mm height.4pt}\cr
+ \noalign{\vskip-1cm}%
+ #1\cr}}}
+ \Huge
+ \def\ecartement{\fbox{a << \marque{\hbox{$|$}} >> b}}
+ \ecartement
+}
+% Difference de taille a voir entre les deux %%%%%%
+\setbox7\hbox{\leftguillemets\ X}
+\setbox8\hbox{X\ \rightguillemets}
+\SmsG%
+\message{Taille des boites page \thepage\space \string:
+ \the\wd7=\string?=\the\wd8}
+\FmsG%
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\onecolumn
+\newpage
+\hbox{}
+\vfill
+\centerline{\Large Page intentionnellement laissée blanche}
+\vfill
+\twocolumn
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\newpage
+
+\subsection{Guillemets interrompus}
+Une citation peut être en anglais et donc se commencer par
+\vers|<< \|\vers|english| et se terminer par \vers|\|\vers|french >>|. Ce cas
+ne doit plus générer de message
+{\em fermeture de guillemets non ouverts} !
+Voici le test, réalisé ici
+tout d'abord avec l'environnement \vers|nonfrench| :
+
+\medskip
+1 \fbox{<< \begin{nonfrench}% LaTeX keeps space
+ Text in English
+ \end{nonfrench}% LaTeX keeps space
+ >>}
+
+
+\medskip
+Puis avec : \\
+\verb|\begin{english}| ... \verb|\end{english}| :
+
+\medskip
+% bypass here our TeX--XeT emulation to avoid message: english environment
+% ended by \end{guillemets}
+\def\temp{\begingroup}
+\ifx\beginL\temp
+\else
+{% local redef of english for plain and our specific test file
+ \ifx\undefined\englishORI\else\let\english\englishORI\fi%
+2 \fbox{<< \begin{english}% LaTeX keeps space
+ Text in English
+ \end{english}% LaTeX keeps space
+ >>}
+
+\medskip
+Et enfin avec \verb|\|\verb|english| ... \verb|\endenglish| :
+
+\medskip
+3 \fbox{<< {\csname english\endcsname
+ Text in English
+ \csname endenglish\endcsname}% space here to remove
+ >>}
+}% local redef of english for plain test
+\fi
+
+\medskip
+Ceci avait aussi pour but de tester ces possibilités de
+changement de langage et de vérifier l'espacement qui
+devrait être ainsi :
+
+\medskip
+0 \fbox{<< Text in English >>}
+
+\noenglishdoublequotes
+\subsection{`` {\mdseries\texttt{\textbackslash noenglishdoublequotes}} ''}
+
+Nous avons mis la commande \vers|\noenglish|\-\vers|doublequotes| juste avant
+le titre de section de façon à remplacer les << quotes >> anglaises
+par des guillemets français dans ce titre.
+Il s'agit de vérifier aussi que la génération des fichiers auxiliaires
+\verb|.aux| et \verb|.toc| ne pose pas de problème lorsque ces fichiers
+sont réutilisés. Bien sûr, si cette option n'est pas activée pour tout le
+document, comme ici, on ne retrouvera pas les guillemets français
+dans la table des matières.
+
+\noenglishdoublequotes
+
+\english% histoire de changer de langue ?
+\french
+%\newpage
+\subsection%{<< no-french guillemets >>}
+ {\mdseries\texttt{\textbackslash nofrenchguillemets}}
+En codant \verb|\nofrenchguillemets|
+\nofrenchguillemets on n'utilise plus
+les guillemets programmés dans l'extension {\tt french}. Si on les utilise
+malgré tout, le résultat dépendra de la police. Ici nous utilisons la
+police \fontname\font{} et nous obtenons :
+
+<%
+ < en 7-bits >%
+ >
+
+et aussi :
+
+<< en 8-bits >>.
+
+Réactivons maintenant les guillemets avec la commande
+\verb|\frenchguillemets|
+\frenchguillemets et faisons le même test :
+
+<%
+ < en 7-bits >%
+ >
+
+et aussi :
+
+<< en 8-bits >>. Voyez-vous ?
+
+Vous ne voyez rien car \XeLaTeX{} ne fait pas de différence. Est-ce mieux
+que Pdf\LaTeX{} ?
+\vfill
+\subsection{Haut de page+guillemets}
+
+\subsubsection{En 8-bits}
+Il ne devrait pas y avoir de problème du tout.
+Car, puisqu'il s'agit d'un guillemet en 8-bits, cela doit
+être forcément un vrai guillemet français. Mais, malheureusement,
+{\em la solution pour l'implémenter n'est pas encore trouvée avec
+le codage OT1 ; mais avec le codage TU de XeTeX il y a une possibilité,
+voir ci-dessous}.
+Le codage de fonte de ce document imprime :
+\nonfrench <%
+ < >%
+ >%
+\endnonfrench{}
+ (doit être parfait en T1 et qui l'est aussi ici sous Xe\LaTeX).
+
+\subsubsection{En 7-bits}
+En codage OT1 les guillemets 7-bits de haut de page ne peuvent être
+bons sur cette page
+ {\bf QUE} parce que nous avons terminé la
+page en français, sinon nous aurions eu :
+\ifx\textexclamdown\undefined
+ \def\textexclamdown{¡}\def\textquestiondown{¿}
+\fi
+\textexclamdown\textexclamdown{} et \textquestiondown\textquestiondown.
+
+\textbf{Remarque :} OT1 concerne une autre version de ce document
+qui était utilisée bien avant \XeLaTeX.
+ \subsubsection{En Utf8 avec \XeLaTeX}
+Pour des guillemets corrects avec \XeLaTeX{} et source en Utf8,
+je propose cette insertion dans le source.\\
+ \verb| \catcode\char|«\verb|\active|\\
+ \verb| \catcode\char|»\verb|\active|\\
+ \verb| \def|«\verb|{\guillemotleft}|\\
+ \verb| \def|»\verb|{\guillemotright}|\\
+
+Ce sont les définitions ici utilisées dans ce document.
+Elles font désormais partie du paquet e-French par
+le petit module \emph{efrenchu.tex}
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\newpage
+\hbox{ }\NL{24}
+
+\subsection{Guillemets et maths}
+
+L'équation suivante ne doit plus produire le fameux message :
+
+{\tt ! Argument of \backslash \string @genG % string pour amslatex
+ has an extra % { pour emacs
+ $\}$% c'est un \delimiter qui pose pb tq avec frencht d'ou mode math
+.}
+
+$$U^{k+1}=U^{k}- {< g_{k},d_{k} >}$$
+
+\section{D'autres guillemets}\label{autres}
+Avec \FP\ il est possible de substituer automatiquement aux
+guillemets `anglais' la forme \noenglishquote `que voici' en donnant la
+sous-option\\ \verb|\noenglishquote|.
+
+Mais attention, les apostrophes disparaissent
+comme dans : {\em il s'agit ici de l'exemple}
+\englishquote qui aurait dû être imprimé :
+{\em il s'agit ici de l'exemple}.
+Un usage intensif de cette option est plutôt à déconseiller.
+
+\newpage
+\english
+\section{French guillemets}
+Using french guillemets in an english document (\verb|<<| and \verb|>>|) will
+give (depending of font encoding) that: << and >>, it is normal!
+
+As you can look in the previous columns, french guillemets have specific
+rules. They are used for quotation when an author is cited or each time an
+emphasis is needed. Normally, italic is not used inside a quoted french
+text, excepted when you really want to show some wording.
+
+When opened, each paragraph of the quoted text will start left
+ with the opening french guillemets.
+
+Another quotated text can take place inside a first level. This second level
+citation is also very specific. Each line must start with guillemets.
+
+The style designer, from time to time, chose to apply here an ancient rule
+by putting here closing guillemets.
+
+The technical tools involved in \FP\
+ disallow to have at the same time
+the \verb|\everypar| possibility and the second level mechanism.
+
+\subsection{Guillemets and maths}
+
+The following equation is always correct:
+
+$$U^{k+1}=U^{k}- {< g_{k},d_{k} >}$$
+
+and never produce an error message.
+\NL1
+
+\section{Other guillemets}
+With \FP\ it is possible to replace english guillemets by
+diacritic caracters. But, be careful, all apostrophes will be diacritics too.
+\french
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\newpage
+\section{Trois petits points}
+Les points de suspension sont : ... et non pas ceux de \TeX{} : $\ldots{}$
+\noTeXdots
+En codant \verb|\noTeXdots| les commandes \verb|\dots| ou \verb|\ldots| de
+\LaTeX{} donneront : $\ldots{}$ Mais l'option par défaut a été
+volontairement maintenue au standard (\verb|\TeXdots|) puisqu'il suffit
+de ne pas les utiliser.\TeXdots
+
+\section{Crochets}
+IBM, en son temps, avait créé l'EBCDIC dans lequel ne figurait pas
+les crochets ([ ]). C'est la raison pour laquelle les utilisateurs IBM
+ont parfois substitué $<$ et $>$ aux crochets. La sous option
+\verb|\EBCDICbrackets| \EBCDICbrackets
+permet de les remplacer comme ici <automatiquement> par des crochets.
+Mais faites attention, les doubles guillemets
+\verb|<|\verb|<| et \verb|>|\verb|>| % pour eviter la conversion 8bits
+ ne donneront jamais des crochets mais << et >>
+(sauf en mode \verb|verbatim|). On peut en général
+se contenter de \verb|< <| et \verb|> >| pour obtenir < < et > >.
+On revient à la situation antérieure en tapant la commande suivante :
+\verb|\normalbrackets|\normalbrackets.
+
+\section{Débordements}
+Nous venons de choisir l'option d'indication de débordement de ligne
+\verb|\overfullhboxmark| et nous voyons son
+effet lorsque la ligne ne peut être coupée grâce à l'impression
+de la petite boîte noire.
+%(cf. page \pageref{debordement}).
+Cette option est activée au minimum pour une page entière.
+Ne pas spécifier l'option et son contraire sur la même page sinon
+l'effet est inchangé.
+
+\labelsinmargin
+\section{\mdseries\texttt{\textbackslash labelsinmargin}}%
+\label{labels: in: margin}
+\FP\ offre la possibilité, comme cela a été demandé
+à partir de cette section, d'imprimer dans la marge le libellé des
+étiquettes utilisées dans les ordres \verb|\label|.
+Cette option, utilisable
+aussi en dehors du français, est la suivante :
+\verb|\labelsinmargin|.
+
+\newpage\english
+\section{Three dots}
+Usual and common \TeX{} and \LaTeX{} dots are not french dots.
+\NL4
+
+\section{Brackets}
+An option is offered to replace \verb|<| and \verb|>| by brackets.
+\NL{11}
+
+\section{\mdseries\texttt{\textbackslash overfullhboxmark}}
+The command \verb|\overfullhboxmark| print a black
+box where your have an overfull \verb|hbox| i.e.\ when a line can't be
+hyphenated. The default is \verb|\nooverfullhboxmark|.
+\NL4
+
+\section{Labels in margin}\label{labels are in margin}
+An option allow you to print the labels you use in a page. These labels are
+printed in margins.
+\french
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\newpage
+\section{Des points sur...}
+Inutile de mettre les points sur les i quand on accentue un i. Tout bon
+éditeur de texte doit faire ce travail pour vous. Sinon il existe la
+sous-option \verb|\idotless| qui produira \idotless
+\let\XX\^% Pour éviter une traduction éventuelle en 8 bits
+\XX{i} si on lui demande d'imprimer \verb|\^i|.
+\iwithdot La valeur par défaut
+dans \FP\ est \verb|\iwithdot| qui donnera malgré tout de
+bons i accentués avec ML\TeX{} (î) s'ils sont saisis directement en 8
+bits (vérifiez dans votre fichier source).
+
+{\makeatletter\def\GOfrench{T1}\ifx\GOfrench\f@encoding
+\section{Ponctuation et mode \protect\linebreak % SPECIAL FONTES EC REELLES
+ mathématique}
+\else
+\section{Ponctuation et mode\\ mathématique}
+\fi}
+Il s'agit de vérifier que les modifications introduites
+par l'extension \FP\
+ne posent aucun genre de problème en mode mathématique.
+\\ Nous définissons une macro \verb|\test| :
+\\ \verb|\def\test#1{#1}|\def\test#1{#1}
+\\ pour voir si le mode mathématique peut être appelé
+sans problème en
+argument de macro-instructions. L'appel de \verb|\test{$x''$}| ne doit
+pas poser de problème%
+\iflatex
+, ni même \verb|\texttt{|\-\verb|[$x''=0$]}|
+\\ Ainsi : \verb|\texttt{[$x''=0$]}|
+\\donne : \texttt{[$x''=0$]} et
+\else%
+. \\Ainsi :
+\fi
+\\ \verb|$A':B''_1<C_{d'}>D^2\ et\,\ !n\ ?\ ;$|
+\\ \verb|\test{$A':B''_1<C_{d'}$}|
+\\donne : $A':B''_1<C_{d'}>D^2\ et\,\ !n\ ?\ ;$
+\\\phantom{donne :} \test{$A':B''_1<C_{d'}$}
+\\Avec \verb|\noenglishquote|\noenglishquote{} cela...
+\\donne : $A':B''_1<C_{d'}>D^2\ et\,\ !n\ ?\ ;$
+\\\phantom{donne :} \test{$A':B''_1<C_{d'}$}
+\englishquote
+\\ puis avec \verb|\noenglishdoublequotes| \noenglishdoublequotes et
+`` mise en vedette '' :
+$$% \begin{displaymath}
+ A':B''_1<C_{d'}>D^2\ et\,\ !n\ ?\ ;
+$$% \end{displaymath}
+$$% \begin{displaymath}
+ \test{A':B''_1<C_{d'}}
+$$% \end{displaymath}
+De même :
+\begin{verbatim}
+{\tt CALL SUBR($<$iopt$<$,ilopt$>%
+ >$)}
+\end{verbatim}
+doit s'imprimer :\\
+{\tt CALL SUBR($<$iopt$<$,ilopt$>%
+ >$)}\\
+sans produire le message d'erreur << Fermeture de guillemets non ouverts ! >>.
+\englishdoublequotes
+
+
+\newpage\english
+\section{An \i dotless}
+Everybody knows that a french ``{\em i circonflexe}'' has no dot on it.
+(In my opinion it is a \TeX{} bug to leave the dot when a diacritic is
+put on.) To suppress the dot automatically the best way is to use a well
+programmed text editor. \FP\ offers another opportunity with
+\verb|\idotless|.
+
+\NL3
+
+\section[Math mode and punctuation]{Math mode and \newline punctuation}
+Here we verify that french modifications about punctation
+does not introduce any problem in printing mathematics.
+\\ We define a new macro \verb|\test| :
+\\ \verb|\def\test#1{#1}|\def\test#1{#1}
+\\ in order to see if there is no more problem when passing maths
+inside a macro argument. Calling \verb|\test{$x''$}| must not
+introduce any problem%
+\iflatex
+, as well as \verb|\texttt{|\-\verb|[$x''=0$]}|
+\NL1\\So: \verb|\texttt{[$x''=0$]}|
+\\gives: \texttt{[$x''=0$]} and
+\else%
+. \NL1\\So:
+\fi
+\\\verb|$A':B''_1<C_{d'}>D^2\ et\,\ !n\ ?\ ;$|
+\\\verb|\test{$A':B''_1<C_{d'}$}|
+\\ gives: $A':B''_1<C_{d'}>D^2\ et\,\ !n\ ?\ ;$
+\\\phantom{gives:} \test{$A':B''_1<C_{d'}$}
+\\With \verb|\noenglishquote|\noenglishquote{} it$\ldots{}$
+\\gives: $A':B''_1<C_{d'}>D^2\ et\,\ !n\ ?\ ;$
+\\\phantom{gives:} \test{$A':B''_1<C_{d'}$}
+\englishquote
+\\ and with \verb|\noenglishdoublequotes|\noenglishdoublequotes{}
+in ``display'' math mode:
+$$% \begin{displaymath}
+ A':B''_1<C_{d'}>D^2\ et\,\ !n\ ?\ ;
+$$% \end{displaymath}
+$$% \begin{displaymath}
+ \test{A':B''_1<C_{d'}}
+$$% \end{displaymath}
+\englishdoublequotes
+Also:
+\ifx\documentclass\undefined\\ % Still Plain!
+\else\\[-2\baselineskip] % to keep the same spacing as in French
+\fi
+\begin{verbatim}
+{\tt CALL SUBR($<$iopt$<$,ilopt$>%
+ >$)}
+\end{verbatim}
+must print:\\
+%\SmsG%
+{\tt CALL SUBR($<$iopt$<$,ilopt$>%
+ >$)}\\
+%\FmsG%
+without producing the error message:
+``Fermeture de guillemets non ouverts !''.
+\french
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\newpage
+Pour ma part lorsque je désire des crochets que je n'ai pas
+au clavier, je préfère taper :\\
+\verb|{\tt CALL SUBR(<iopt<,ilopt> >)}| et utiliser
+l'option \verb|\EBCDICbrackets|\EBCDICbrackets{} :\\
+{\tt CALL SUBR(<iopt<,ilopt> >)}
+
+Cette option n'a pas d'effet en mode mathématique :
+$$ 1233 < 1234 <%
+ < 1235 >%
+ > 1234 > 1233 $$
+\normalbrackets
+
+\makeatletter% we should use \frac with AmS
+\ifx\RIfM@\undefined%\ifx\csname amsmath.sty\endcsname\relax
+ \long\def\text#1{#1}\long\def\frac#1#2{{#1\over#2}}
+\fi
+\makeatother
+
+Vérifions aussi
+($x < {\frac{1}{3}} < {\frac{1}{2}} > {\frac{1}{4}}$) :
+$$x < \frac{1}{3} < \frac{1}{2} > \frac{1}{4} $$
+puis aussi :
+
+ \text{\quad pour $|y| < \frac{111}{444}$}
+
+\bigskip
+La double ponctuation ne doit avoir aucun effet
+(visible) dans une formule en mode
+mathématiques, est-ce bien le cas sur l'exemple ci-dessous :
+
+{\LARGE $$a := b, (c!n=m) \textrm{ ; vrai ?}$$}
+
+On notera que la partie texte de la formule a été saisie avec la
+commande : \\
+\verb|\textrm{ ; vrai ?}|\\
+et que l'espacement français y a été appliqué.
+
+\iflatex
+\subsection{Le cas de la virgule}
+En standard \AllTeX{} (ou alors avec l'option spéciale
+\verb|\regularmathcomma| de \FP) le traitement de la virgule
+est spécifique, ainsi quand on tape ce qui suit en mode
+mathématique de mise en valeur :
+\regularmathcomma%
+\begin{versatim}
+$$\textrm{La fonction}\ f(x,y)\
+ \textrm{ou le Vecteur}\ V(x, y, z)$$
+$$Total=1,255\,\$\ ou\ 1\,500,00\,\textrm{€}$$
+\end{versatim}
+on obtient des espacements après les virgules,
+qu'il y ait ou non des espaces dans le source \TeX\ :
+$$\textrm{La fonction}\ f(x,y)\
+ \textrm{ou le Vecteur}\ V(x, y, z)$$
+$$Total=1,255\,\$\ ou\ 1\,500,00\,\textrm{€}$$
+(ce qui montre une anomalie dans la composition
+des nombres relatifs)
+\frenchmathcomma
+\fi
+
+\newpage\english
+When I have no brackets on my keyboard I prefer to type:\\
+\verb|{\tt CALL SUBR(<iopt<,ilopt> >)}|\\ using
+ the option \verb|\EBCDICbrackets| but the result in english
+remains unchanged\EBCDICbrackets{}:\\
+{\tt CALL SUBR(<iopt<,ilopt> >)}
+
+And within math mode:
+$$ 1233 < 1234 <%
+ < 1235 >%
+ > 1234 > 1233 $$
+\normalbrackets
+
+\makeatletter% we should use \frac with AmS
+\ifx\RIfM@\undefined%\ifx\csname amsmath.sty\endcsname\relax
+ \long\def\text#1{#1}\long\def\frac#1#2{{#1\over#2}}
+\fi
+\makeatother
+
+Let's verify also ($x < {\frac{1}{3}} < {\frac{1}{2}} > {\frac{1}{4}}$) :
+$$x < \frac{1}{3} < \frac{1}{2} > \frac{1}{4}$$
+and:
+
+ \text{\quad pour $|y| < \frac{111}{444}$}
+
+\bigskip
+The ``double punctuation'' should not have any effect
+in maths, which is obviously the case in the following
+English example:
+\NL1
+
+{\LARGE $$a := b, (c!n=m) \textrm{ ; vrai ?}$$}
+
+Though the text part of the formula has been typed
+via a command: \\
+\verb|\textrm{ ; vrai ?}|\\
+the french spacing doesn't apply here.
+
+\iflatex
+\subsection{The comma case}
+With \AllTeX{} standard (or with the special \FP\
+\verb|\regularmathcomma| the processing of comma is really specific.
+So, when you type in the following in display math mode:
+\regularmathcomma%
+\begin{verbatim}
+$$\textrm{La fonction}\ f(x,y)\
+ \textrm{ou le Vecteur}\ V(x, y, z)$$
+$$Total=1,255\,\$\ ou\
+ 1\,500,00\,\textrm{€}$$
+\end{verbatim}
+you will get thin spaces after the commas,
+no matter spaces are given or not in the \TeX\ source:
+$$\textrm{La fonction}\ f(x,y)\
+ \textrm{ou le Vecteur}\ V(x, y, z)$$
+$$Total=1,255\,\$\ ou\ 1\,500,00\,\textrm{€}$$
+(which shows a french typesetting error for
+the relative numbers).
+\frenchmathcomma
+\fi%
+
+\iflatex\french
+\newpage
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+Par contre avec \FP\ on n'obtient
+aucun espacement supplémentaire :
+$$\textrm{La fonction}\ f(x,y)\
+ \textrm{ou le Vecteur}\ V(x, y, z)$$
+$$Total=1,255\,\$\ ou\ 1\,500,00\,\textrm{€}$$
+cela est dû à l'option \verb|\frenchmathcomma| qui est
+activée par défaut avec \FP.
+Mais cela montre alors une anomalie de composition
+dans les listes $(x,y,z)$.
+
+Si l'on veut des espaces il faut alors les indiquer
+explicitement, comme cela est l'usage, plus
+généralement, en mode mathématique :
+\begin{versatim}
+$$\textrm{La fonction}\ f(x,\,y)\
+ \textrm{ou le Vecteur}\ V(x,\,y,\,z)$$
+$$Total=1,255\,\$\ ou\ 1\,500,00\,\textrm{€}$$
+\end{versatim}
+ce qui donnera :
+$$\textrm{La fonction}\ f(x,\,y)\
+ \textrm{ou le Vecteur}\ V(x,\,y,\,z)$$
+$$Total=1,255\,\$\ ou\ 1\,500,00\,\textrm{€}$$
+
+\medskip
+
+On notera que \FP\ obéit à l'extension \texttt{icomma}
+lorsque cette dernière est chargée avant \FP, mais
+seulement en français.
+
+
+\newpage\english
+With the \FP\ package there is no space added
+at all:
+\frenchmathcomma%
+$$\textrm{La fonction}\ f(x,y)\
+ \textrm{ou le Vecteur}\ V(x, y, z)$$
+$$Total=1,255\,\$\ ou\ 1\,500,00\,\textrm{€}$$
+this is due to the option \verb|\frenchmathcomma| which is
+defaultly activated in the \FP\ package.
+People will then distinguish a typesetting error
+in the lists $(x,y,z)$.
+
+If you want spaces you should then give them to \TeX\
+explicitely, as usually done, more generally in math mode:
+\begin{verbatim}
+$$\textrm{La fonction}\ f(x,\,y)\
+ \textrm{ou le Vecteur}\
+ V(x,\,y,\,z)$$
+$$Total=1,255\,\$\ ou\
+ 1\,500,00\,\textrm{€}$$
+\end{verbatim}
+which will give:
+$$\textrm{La fonction}\ f(x,\,y)\
+ \textrm{ou le Vecteur}\ V(x,\,y,\,z)$$
+$$Total=1,255\,\$\ ou\ 1\,500,00\,\textrm{€}$$
+\fi
+
+You should notice that \FP\ respect the choice of
+the \texttt{icomma} package when that last one is loaded before
+\FP; but it only applies in French.
+\french
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\newpage
+\section{Mon antislash est \mdseries\texttt{\backslash}}
+
+L'antislash n'existe pas dans toutes les polices en OT1.
+Que vous utilisiez \verb|\backslash| ou \verb|\textbackslash|
+vous obtiendrez la même chose, ainsi
+en romain droit on obtient :
+
+textbackslash=\textbackslash
+
+backslash=\backslash
+
+\noindent
+mais avec la fonte tt on obtient :
+
+{\tt
+textbackslash=\textbackslash
+
+backslash=\backslash
+}
+\NL2
+
+\section{Notes de bas de page}
+
+\iflatex\makeatletter\xdef\countSAVED{\the\c@footnote}\makeatother\fi
+\long\def\XX{%
+ Numérotation normale\footnote{Une note normalement numérotée.}.
+ {\setcounter{footnote}{0}
+ \renewcommand{\thefootnote}{\fnsymbol{footnote}}
+
+ Voici une note\footnote{Première note.}
+ puis une autre\footnote{Deuxième note.}
+ puis encore une autre\footnote{Troisième note.}
+ }}
+
+Nous comparons ici la composition des notes de bas de page
+(avec et sans \verb|\fnsymbol|)
+dans une langue et dans l'autre. Voyons ce que cela donne :
+
+\XX
+
+\newpage\english
+\section{My antislash is \mdseries\texttt{\textbackslash}}
+
+The antislash glyph doesn't exist in all OT1 font.
+Whatever you use, \verb|\backslash| or \verb|\textbackslash|
+you will obtain the same output, so
+in upright roman you obtain:
+
+textbackslash=\textbackslash
+
+backslash=$\backslash$
+
+\noindent
+but with the tt font you obtain:
+
+{\tt
+textbackslash=\textbackslash
+
+backslash=$\backslash$
+}
+
+\noindent
+but \verb|\backslash| is only available in
+math mode.
+
+\section{Compared footnotes}
+
+We compare the typesetting of footnotes
+(with and without \verb|\fnsymbol|)
+in one language versus the other. Let's look at them.
+
+\iflatex\makeatletter\c@footnote=\countSAVED\makeatother\fi
+
+\XX
+\iflatex\makeatletter\c@footnote=\countSAVED\makeatother\fi
+\addtocounter{footnote}{1}
+\NL1
+
+\french
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\newpage
+
+\section{\mdseries\texttt{\textbackslash guillemetsinarrays}}
+
+Avec \FP\ l'utilisation de guillemets à la
+française en mode texte dans les environnements \texttt{array} ou
+\texttt{eqnarray} est possible
+mais il est nécessaire de protéger les opérateurs
+inférieur (\texttt{<}) et supérieur (\texttt{>}) lorsqu'ils terminent
+une colonne. On rajoute alors une paire d'accolades ou \verb|\relax|
+pour terminer la macro-commande :
+\begin{verbatim}
+$
+\begin{array}{ccc}
+a & \inferieura &b\\
+a & \protect< &b\\
+a & b &<\\
+a & >{} &c\\
+<{}& << >> &c\\
+<{}& \textrm{<< text >>}&c
+\end{array}
+$
+\end{verbatim}
+
+\noindent ce qui donne :
+
+$
+\begin{array}{ccc}
+a & \inferieura &b\\
+a & \protect< &b\\
+a & b &<\\
+a & >{} &c\\
+<{}& << >> &c\\
+<{}& \textrm{<< text >>}&c
+\end{array}
+$
+
+\medskip
+On peut éviter d'avoir à modifier des tableaux existants et dans ce
+cas on codera \verb|\no|\-\verb|guil|\-\verb|lemetsinarrays| :
+
+\begin{verbatim}
+\noguillemetsinarrays
+$
+\begin{array}{ccc}
+a & \inferieura &b\\
+a & < &b\\
+a & b &<\\
+a & > &c\\
+< & << >> &c\\
+< & \textrm{<< text >>}&c
+\end{array}
+$
+\end{verbatim}
+
+\noindent ce qui donne alors :
+
+\noguillemetsinarrays
+$
+\begin{array}{ccc}
+a & \inferieura &b\\
+a & < &b\\
+a & b &<\\
+a & > &c\\
+< & << >> &c\\
+< & \textrm{<< text >>}&c
+\end{array}
+$
+\guillemetsinarrays% reset default
+
+\newpage\english
+\section{Guillemets in arrays}
+The \FP\ package allows people to print french guillemets
+in \texttt{array} environments (but in text mode). This usually breaks
+the code for \texttt{<} or \texttt{>} when they finish an array slot.
+So you should protect them; like this:
+\NL2
+
+\begin{verbatim}
+$
+\begin{array}{ccc}
+a & \inferieura &b\\
+a & \protect< &b\\
+a & b &<\\
+a & >{} &c\\
+<{}& \textrm{<< text >>}&c
+\end{array}
+$
+\end{verbatim}
+\NL1
+
+\noindent which gives:
+
+$
+\begin{array}{ccc}
+a & \inferieura &b\\
+a & \protect< &b\\
+a & b &<\\
+a & >{} &c\\
+<{}& \textrm{<< text >>}&c
+\end{array}
+$
+\NL1
+
+\medskip
+
+One can avoid to modify existing arrays and then just say
+\verb|\noguillemetsinarrays| but this command is not
+interesting in English because the problem doesn't exist
+at all:
+
+\begin{verbatim}
+$
+\begin{array}{ccc}
+a & \inferieura &b\\
+a & < &b\\
+a & b &<\\
+a & > &c\\
+< & \textrm{<< text >> &c
+\end{array}
+$
+\end{verbatim}
+\NL1
+
+\noindent gives the following result:
+
+\def\GOfrench{\let\ifCLA\iffalse}% To allow dmy and frencht to compile
+\ifx\ifCLA\undefined\expandafter\GOfrench\fi% without error.
+$
+\begin{array}{ccc}
+a & \inferieura &b\\
+a &
+\ifCLA\expandafter\protect\fi% To allow \ConstantLayout test file.
+< &b\\
+a & b &<\\
+a &
+\ifCLA\expandafter\protect\fi% To allow \ConstantLayout test file.
+> &c\\
+\ifCLA\expandafter\protect\fi% To allow \ConstantLayout test file.
+< & \textrm{<< text >>}&c
+\end{array}
+$
+\NL1
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\newpage\french
+
+\noguillemetsinarrays% for continuation of column
+Cette commande est aussi valable pour les environnements
+\texttt{eqnarray} :
+
+\begin{eqnarray}
+a & < &b\\
+a & > &c\\
+< & << >> &c\\
+< & \textrm{<< text >>}&c
+\end{eqnarray}
+
+Pour terminer je rétablis la valeur par défaut :
+\verb|\guillemetsinarrays|
+\guillemetsinarrays
+et si j'essaye le même exemple j'obtiendrais
+le message : \\
+{\makeatletter\let\@PreserveBraces={% uggly hack for plain
+\vers|! Argument of \@PreserveBraces has an|\\
+\vers|extra }.|
+}% closing hack.
+
+\section{Guillemets verbatim}
+
+Avec l'option \verb|\nofrenchguillemets| il est possible
+--~si \FP\ travaille en codage de fonte du genre \texttt{T1}
+{\makeatletter\def\GOfrench{T1}\ifx\GOfrench\f@encoding\else
+(mais ca ne semble pas être le cas ici)\fi}%
+~--
+\nofrenchguillemets
+d'imprimer des guillemets 8-bits en verbatim : \verb|<< >>|.
+\frenchguillemets
+
+\iflatex
+\section{Environnement guillemets exclus}
+
+\begin{versatim}
+\guillemets{} Je me suis dit que :
+<< avec l'option [...] les guillemets
+sont inopérants. \endguillemets{}
+\end{versatim}
+\SmsG
+\noeveryparguillemets
+\guillemets{}
+\verb|[\guillemets{}]| Je me suis dit que :
+<< avec l'option \vers|\noevery|\-\vers|par|\-\vers|guillemets|
+on ne doit pas avoir un environnement qui se termine avant la fin
+du paragraphe. C'est pourquoi l'environnement \texttt{guillemets}
+n'est plus autorisé dans ce cadre.
+Désormais un message est émis et ces environnements
+guillemets sont inopérants. \endguillemets{}
+
+On note que \verb|\guillemets{}| n'a aucun effet visible
+et que le début de paragraphe est forcé aux premiers
+caractères-guillemets ouvrants qui suivent. Le
+\verb|\endguillemets{}| de fin d'environnement ferme cependant
+le paragraphe.
+
+\guillemets [\verb|\guillemets{}|]\!
+Ces environnements exclus dans le cadre de cette option
+ peuvent être de premier ou
+/\guillemets{} deuxième \endguillemets{}/ niveau
+comme ici (slashs). [\verb|\endguillemets{}|]
+\endguillemets{}
+
+\FmsG
+\frenchguillemets
+\fi%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\newpage\english
+Notice that with standard \LaTeX\ you obtain a message
+saying that \verb|\guillemotleft| and \verb|\guillemotright|
+are invalid in math mode when you try to use guillemets
+in an \texttt{array} environement.
+\NL{9}
+
+\smallskip
+
+\section{Verbatim Guillemets}
+
+The 8bit french guillemets chars printed within
+a verbatim environnement give here: \verb|<< >>|
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\newpage\french
+\section{Utilisation de la \mdseries\texttt{toc}}
+
+Il n'est pas prévu de pouvoir composer une table des matières ou un
+sommaire dans plus d'une langue.
+On notera que \verb|\sommaire| est un apport de \FP.
+
+\section{Fichiers {\mdseries\texttt{lof}} et {\mdseries\texttt{lot}}}
+On vérifie ici que la ponctuation française n'a pas créé
+d'ennui particulier.
+Nous avons laissé en blanc la figure \ref{x<<:;!?>>x}
+qui n'est qu'un simple
+test. De même le tableau \ref{y`<<:;!?>>'y} n'est là que pour
+créer une entrée dans la liste des tableaux.
+
+Le {\em caption} de la figure
+\ref{x<<:;!?>>x}
+ doit apparaître com\-me ceci :
+ {\it << essai >> ; 2 cm ! pourquoi pas ?}
+\begin{figure}[h]
+\begin{center}
+\begin{tabular}{|c|}
+\hline
+\ \hfill \ \\%\vspace*{2cm}
+\ \\
+\ Peu importe la figure...\\
+\ \\
+\ \\
+\hline
+\end{tabular}
+\end{center}
+\caption{<< essai >> ; 2 cm ! pourquoi pas ?
+ \protect\\ (cf. aussi le tableau \ref{frenchdactylo})}
+\label{x<<:;!?>>x}
+\end{figure}
+
+Le {\em caption} du tableau
+\ref{y`<<:;!?>>'y}
+ doit être comme ceci :
+{\it ` << essai >> ; 2 cm ! pourquoi pas ? '}
+\begin{table}[h]
+\caption{` << essai >> ; 2 cm ! pourquoi pas ? '
+ \protect\\ (cf. aussi le tableau \ref{frenchdactylo})}
+\label{y`<<:;!?>>'y}
+
+\begin{center}
+\begin{tabular}{|c|}
+\hline
+\ \hfill \ \\
+\ \\
+\ Peu importe le tableau\footnote{Une note de tableau.}...\\
+\ \\
+\ \\
+\hline
+\end{tabular}
+\end{center}
+\end{table}
+
+On notera les libellés ({\sc Fig.} et {\sc Tab.}) plus confor\-mes à
+l'usage français. Ne pas oublier non plus que les titres de tableaux sont
+toujours placés, en français, avant ceux-ci contrairement aux figures.
+
+\FP\ ne prévoit pas que l'on puisse composer une
+partie des tables des figures (ou tableaux) en français et une autre
+en anglais par exemple. Les fichiers \verb|.lof| et \verb|.lot| seront
+donc composés entièrement dans la langue présélectionnée.
+
+\newpage\english
+\section{{\mdseries\texttt{toc}} file use}
+No facility is given to typeset the \verb|.toc| in various languages.
+
+Notice that \verb|\sommaire| is a new command brought up with this
+package.
+
+\section{{\mdseries\texttt{lof}} and {\mdseries\texttt{lot}} files}
+Same test in English just to verify that our french modifications
+does not affect the text in English.
+
+You will notice, of course, that the caption names are re-established
+to their original values ({\bf figure} and {\bf table}).
+
+The following figure (not referable) %(\ref{ex<<:;!?>>ex})
+caption must look like:
+<< essai >>; 2 cm! Why not?
+\begin{figure}[h]
+\begin{center}
+\begin{tabular}{|c|}
+\hline
+\ \hfill \ \\
+\ \\
+\ No matter how is the figure$\ldots{}$\\
+\ \\
+\ \\
+\hline
+\end{tabular}
+\end{center}
+\caption{<< essai >>; 2 cm! Why not?
+ \protect\\ (cf. also the table \ref{frenchdactylo})}
+%\label{ex<<:;!?>>ex}% produit un missing \endcsname
+\end{figure}
+
+The {\em caption} of the table (not referable) %\ref{ey`<<:;!?>>'ey}
+must look like:
+` << essai >>; 2 cm! Why not? '
+\begin{table}[h]
+\begin{center}
+\begin{tabular}{|c|}
+\hline
+\ \hfill \ \\
+\ \\
+\ No matter how is the table\footnotemark% \footnotetext est perdu !
+ $\ldots{}$\\
+\ \\
+\ \\
+\hline
+\end{tabular}
+\end{center}
+\caption{` << essai >>; 2 cm! Why not? '
+ \protect\\ (cf. also the table \ref{frenchdactylo})}
+%\label{ey`<<:;!?>>'ey}% generates missing \endcsname
+\end{table}\footnotetext{A note from a table.}
+\NL1
+
+Notice that we have here the standard caption names used by \LaTeX{}.
+
+You can see in the French column the specific labels and places of caption
+titles (under the figure but over the table).
+
+Don't try to compose \verb|.lof| and \verb|.lot| files in more than one
+language, it's not designed in this (stupid?) way!
+
+\french
+\begin{table*}[tb]
+\caption{` << essai >> ; 2 cm ! pourquoi pas ? '
+ (cf. aussi le tableau \ref{frenchdactylo})}
+\label{2`<<:;!?>>'2}
+\begin{center}
+\begin{tabular}{|c|}
+\hline
+\ \hfill \ \\
+\ \\
+\ Peu importe le tableau sur deux colonnes%
+\footnote{Une note de tableau.}...\\
+\ \\
+\ \\
+\hline
+\end{tabular}
+\end{center}
+\end{table*}
+
+\newpage
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\section{Encore un tableau...}
+Mais celui-ci est sur deux colonnes si l'option
+\verb|twocolumn| est active. Vérifions simplement
+que le traitement est le même qu'en une seule
+colonne.
+
+Le {\em caption} du tableau
+\ref{2`<<:;!?>>'2}
+ doit être comme ceci :
+{\it ` << essai >> ; 2 cm ! pourquoi pas ? '}
+
+\section{\sloppy Encore {\mdseries\texttt{\textbackslash labelsinmargin}}}
+
+À nouveau nous utilisons \verb|\labelsinmargin|
+\labelsinmargin
+pour vérifier son fonctionnement dans une figure
+et un titre de figure
+
+\begin{figure}[h]
+\label{label de la figure}
+\begin{center}
+\begin{tabular}{|c|}
+\hline
+\ \hfill \ \\
+\ \\
+\ Peu importe la figure...\\
+\ \\
+\ \\
+\hline
+\end{tabular}
+\end{center}
+\caption{le titre de la figure avec label
+\label{label du titre fig.}}
+\end{figure}
+
+Même test avec un tableau :
+\begin{table}[h]
+\label{label du tableau}
+\caption{le titre du tableau avec label\label{label du titre tab.}}
+\begin{center}
+\begin{tabular}{|c|}
+\hline
+\ \hfill \ \\
+\ \\
+\ Peu importe le tableau...\\
+\ \\
+\ \\
+\hline
+\end{tabular}
+\end{center}
+\end{table}
+
+\sloppypar{
+Désactivons définitivement l'option
+avec \verb!\nolabelsinmargin!.
+}
+\nolabelsinmargin
+
+\newpage\english
+\NL8
+\section{{\mdseries\texttt{\textbackslash labelsinmargin}} again}
+
+Again we test \verb|\labelsinmargin|
+\labelsinmargin
+to verify that it is running within a figure
+and in a figure's caption.
+
+\begin{figure}[h]
+\label{label in a figure}
+\begin{center}
+\begin{tabular}{|c|}
+\hline
+\ \hfill \ \\
+\ \\
+\ No matter the figure$\ldots{}$\\
+\ \\
+\ \\
+\hline
+\end{tabular}
+\end{center}
+\caption{title with a label\label{label in fig. caption}}
+\end{figure}
+
+Same test with a table:
+\begin{table}[h]
+\label{label in a table}
+\begin{center}
+\begin{tabular}{|c|}
+\hline
+\ \hfill \ \\
+\ \\
+\ No matter the table$\ldots{}$\\
+\ \\
+\ \\
+\hline
+\end{tabular}
+\end{center}
+\caption{title with a label\label{label in a tab. caption}}
+\end{table}
+
+Disactivate definitely the option with \verb!\nolabelsinmargin!.
+\nolabelsinmargin
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\newpage\french
+
+\section{Notes dans \mdseries\texttt{\textbackslash caption}}
+
+Si une note dans un tableau doit être imprimée à la fin du
+tableau, une note dans un titre de tableau doit être
+imprimée en fin de page. Malheureusement \LaTeX{} perd
+le texte des notes dans les environnements {\tt figure} et
+{\tt table}. L'ex\-ten\-sion \FP\ prévient l'utilisateur
+que le texte doit être réinséré à l'aide de \verb|\footnotetext|.
+
+\begin{table}[h]
+
+\SmsG%
+\caption[Essai de footnote dans un caption de tableau]
+ {Légende\protect\footnote{Une note de bas de page.}}
+\FmsG%
+
+\begin{center}
+\begin{tabular}{|c|}
+\hline
+\ \hfill \ \\
+%\ \\
+\ Peu importe le tableau...\\
+%\ \\
+\ \\
+\hline
+\end{tabular}
+\end{center}
+\end{table}
+\footnotetext{Une note de bas de page.}
+
+\section{{\mdseries\texttt{\textbackslash caption}} vide}
+
+\begin{table}[h]
+\caption{}
+\begin{center}
+\begin{tabular}{|c|}
+\hline
+\ \hfill \ \\
+%\ \\
+\ Tableau sans légende\\
+%\ \\
+\ \\
+\hline
+\end{tabular}
+\end{center}
+\end{table}
+
+\section{\mdseries\texttt{\textbackslash nombre}}
+
+Les nombres en français sont imprimés correctement lorsque l'on
+utilise \verb|\nombre|, ainsi :
+
+\begin{verbatim}
+\nombre{123 456,123 456}
+\end{verbatim}
+imprime \nombre{123 456,123 456} au lieu de la forme habituelle
+ {\regularmathcomma $123 456,123 456$}
+ou \mbox{123 456,123 456} suivant que l'on est en mode math
+ou en mode texte.
+
+On y voit des espaces fines à chaque millier et (normalement)
+une virgule sans espace supplémentaire comme cela se produit
+en mode math avec \TeX{} standard.
+
+\section{Autre chose ?}
+Non !
+
+[espace libre utilisable]
+
+\newpage\english
+
+\section{Notes within \mdseries\texttt{\textbackslash caption}}
+
+Normally in French we print table's footnotes at the end of the table
+but it can't be the case when a footnote is called from a caption title.
+But unfortunately footnote's text is lost when inside a \LaTeX{} figure
+or table environnement, as shown here.
+Thus {\tt french.sty} warn the user with the appropriate message, but
+in English nothing is done.
+
+\begin{table}[h]
+\begin{center}
+\begin{tabular}{|c|}
+\hline
+\ \hfill \ \\
+%\ \\
+\ No matter the table$\ldots{}$\\
+%\ \\
+\ \\
+\hline
+\end{tabular}
+\end{center}
+\caption[footnote try within a table's caption]
+ {Caption title\protect\footnote{A footnote page.}}
+
+\end{table}
+%\footnotetext{A footnote page.}
+
+\section{Empty \mdseries\texttt{\textbackslash caption}}
+
+\begin{table}[h]
+\begin{center}
+\begin{tabular}{|c|}
+\hline
+\ \hfill \ \\
+%\ \\
+\ Empty caption\\
+%\ \\
+\ \\
+\hline
+\end{tabular}
+\end{center}
+\caption{}
+\end{table}
+
+\section{\mdseries\texttt{\textbackslash nombre}}
+
+French number should be correctly printed using
+\verb|\nombre|, so :
+
+\begin{verbatim}
+\nombre{123 456,123 456}
+\end{verbatim}
+should not print as usual
+$123 456,123 456$ nor \mbox{123 456,123 456}
+(depending you are in math or in text mode)
+but $123\,456{,}123\,456$.
+\NL1
+
+We see here thin spaces between each thousand part and no
+(usual) space after the comma (as it is in math with standard
+\TeX{}).
+
+\smallskip
+
+\section{Anything else?}
+
+No!
+
+\noindent
+[free space to reuse]
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\newpage\french
+\section{Le 1\protect\fup{er} paragraphe}
+Notez bien que le 1\fup{er} paragraphe d'une section
+ne commence jamais au fer à gauche
+en français, comme vous le voyez ici.
+
+Le deuxième paragraphe démarre comme le premier...\footnote{%
+La typographie du titre de section (1\fup{er}) est à noter ;
+ {\tt mysmaller.sty} a été utilisé
+à la compilation de {\tt frenchrf} avec \LaTeX{}.
+Il existe aussi l'extension {\tt relsize} qui fonctionne
+bien avec \FP.}
+
+\section{Test des listes}\label{listes}
+
+Voici un test d'énumération (\verb|itemize|) de \LaTeX{} :
+
+\begin{itemize}
+\item liste de niveau 1 ;
+ \begin{itemize}
+ \item incluant un niveau 2,
+ \begin{itemize}
+ \item mais aussi un niveau 3,
+ \item peu utilisé ;
+ \end{itemize}
+ \item le niveau 2 se terminant ici ;
+ \end{itemize}
+\item suite de la liste de niveau 1 ;
+\item dernier élément de niveau 1.
+\end{itemize}
+
+On remarquera les deux choses suivantes :
+\primo les marqueurs sont identiques quel que soit
+le niveau et \secundo aucun élément ne commence par une majuscule.
+\NL2
+
+\section{Caractères actifs}
+Quelques jeux de macros doivent parfois être chargés
+directement dans le document
+et utilisent les caractères {\em actifs\/} de \FP. Il y
+a alors conflit ouvert. Plusieurs solutions sont offertes, soit utiliser
+l'ordre : \\
+\verb| \originalinput{fichier}|\\
+ soit :
+\begin{verbatim}
+ \begin{nonfrench}
+ ... macros-instructions...
+ \end{nonfrench}
+\end{verbatim}
+
+Mais attention n'utilisez pas en français un code que
+vous auriez chargé
+en anglais ou réciproquement !
+
+
+\newpage\english
+\section{First paragraph}
+In English each paragraph is indented except the first one of a section,
+subsection, etc. as you can see in this example.
+
+Subsequent paragraphs start indented$\ldots{}$\NL1
+
+\section{Itemized lists}
+Here is the same french \verb|itemize| list:\NL1
+
+\begin{itemize}
+\item liste de niveau 1;
+ \begin{itemize}
+ \item incluant un niveau 2,
+ \begin{itemize}
+ \item mais aussi un niveau 3,
+ \item peu utilisé ;
+ \end{itemize}
+ \item le niveau 2 se terminant ici ;
+ \end{itemize}
+\item suite de la liste de niveau 1 ;
+\item dernier élément de niveau 1.
+\end{itemize}
+
+You can compare english and french lists.
+Notice firstly that item markers are identical at each level and secondly
+that each item never starts with an uppercase letter.
+
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\section{Active characters}
+Codes that were designed for English might bring problems when used with
+\FP\ because few characters are {\em activated\/}.
+Few solutions are offered, either:\\
+\verb| \originalinput{file}|
+
+or:
+\begin{verbatim}
+ \begin{nonfrench}
+ ... macros-instructions...
+ \end{nonfrench}
+\end{verbatim}
+% * * *
+
+But be carefull, don't use in French a code that was loaded in English
+or reciprocally!
+
+% * * *
+
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\newpage\french
+
+\section{Abréviations}
+\abbreviations
+Si on demande \verb|\abbreviations| alors on a
+accès à un fichier d'abré\-via\-tions
+typo\-graphi\-ques françaises.
+Ainsi je saisis \verb|"monseigneur"| et j'imprime "monseigneur"\!.
+De même, avec ML\TeX{} je saisis \verb|"deuxième"|
+(vérifiez dans le
+source que ce mot est bien codé en 8bits) et j'imprime "deuxième"\!%
+. %alors que le fichier d'abréviations contient \verb|"deuxi\`|\verb|eme"|.
+Ainsi il n'est plus vraiment indispensable de se rappeler que
+l'abréviation de madame est "madame" (et maître : "maître"\!).
+
+Lorsqu'un mot ne figure pas dans le fichier d'abréviations, il est alors
+imprimé tel que. Ainsi \verb|"GUTenberg"| imprimera
+\SmsG%
+"GUTenberg".
+\FmsG%
+ Mais n'oubliez jamais le double guillemet fermant sinon vous obtiendrez
+ un message du genre :
+\begin{versatim}
+ Paragraph ended before \AbbrevName was complete.
+\end{versatim}
+
+Je peux aussi donner mon fichier personnel d'abréviations en codant :\\
+\verb|\abreviations[mon_fichier_personnel]|
+
+On retire ces possibilités par la commande \verb|\noabbreviations|.
+N'oublions pas que le caractère \verb|"| sert normalement en \TeX{}
+comme en \LaTeX{} à exprimer les nombres en hexadécimal.
+
+\section{Monsieur s'abrège "Monsieur"}
+
+Que je saisisse \verb|"Monsieur"| ou \verb|"monsieur"|
+j'obtiens la même abréviation : "Monsieur" ou "monsieur", respectivement.
+
+Il n'en est pas toujours de même... ainsi lorsqu'on saisit
+\verb|"Numéro"| et \verb|"numéro"| on obtient respectivement :
+"Numéro" et "numéro", car \verb|Numéro|
+est une entrée dans le fichier des abbréviations où il est écrit
+\verb|{Numéro}|.
+
+Il est désormais possible de placer une abréviation dans un titre
+de chapitre ou de section, comme le titre de cette section le
+démontre ; nous avons saisi :
+\begin{verbatim}
+\section{Monsieur s'abrège "Monsieur"}
+\end{verbatim}
+
+\noabbreviations
+
+\newpage\english
+
+\section{Abbreviations}
+The abbreviation facility offered in \FP\ is based on
+an abbreviations file. When requested by \verb|\abbreviations| one
+may call any \verb|"abbreviation"|. If this abbreviation is found in the
+file it will be replaced by the typographic expansion, if not it will
+be printed as is.\NL2
+
+But never forget the ending double quotes otherwise you will obtain the
+terrible message:
+{\tt Paragraph} {\tt ended before} \texttt{\textbackslash AbbrevName}
+{\tt was complete.}
+\NL4
+
+You can have your own abbreviations file by calling:
+\verb|\abreviations[my_file]|.\NL1
+
+Saying \verb|\noabbreviations| this facility is lost. Remember that the
+char \verb|"| is used normally in \TeX{} as in \LaTeX{} to start an
+hexadecimal number.
+
+But used in English, \verb|"monsieur"| will give "monsieur"%
+\footnote{Notice the quoting!}.
+
+\newpage\french
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\section{Autres macros utiles}
+\verb|\fsc{KnUtH}| permet d'imprimer \fsc{KnUtH} et \verb|\lsc{SnCf}|
+donne \lsc{SnCf}. Cela doit aussi marcher si le mot commence par une
+accentuation comme ici avec le mot \fsc{\'% a laisser tq a cause du 7bits
+epinal} et même quand cette accentuation est plus loin dans
+le mot comme ici dans \fsc{ANDR\'% a laisser tq a cause du 7bits
+E}.
+
+\bigskip
+Voici une note%
+\footnote{La note.\label{NOTE}}
+de bas de page commandée par \verb|\footnote{La note.\label{NOTE}}|.
+Je peux faire à nouveau appel à cette note\refmark{NOTE}
+ par l'ordre \verb|\refmark{NOTE}|.
+
+\bigskip
+Par analogie avec l'environnement \verb|verse| :
+\begin{verse}
+%\moretolerance % pour eviter un leger overfull hbox
+1\iere{} ligne : cette ligne est bien trop longue, elle doit être coupée autant de fois que nécessaire...\\
+2\ieme{} ligne : le test terrible de...\\%
+3\ieme{} ligne : `ceci est le test des quotes'\\
+\end{verse}
+\tthyphenation
+voici le même test (sans \verb|\\|)
+avec l'environnement \vers|versatim| qui est
+un environnement \vers|verba|\-\vers|tim| composé
+avec des coupures de lignes
+comme l'est l'environnement \verb|verse| et dont les {\em quotes} peuvent
+être imprimées avec des accents si on précise
+\vers|\noenglishquote| :
+\noenglishquote
+\begin{versatim}
+1\iere{} ligne : cette ligne est bien trop longue, elle doit être coupée autant de fois que nécessaire...
+2\ieme{} ligne : le test terrible de \end{document}
+3\ieme{} ligne : `ceci est le test des quotes'
+\end{versatim}
+\englishquote
+
+\allowuchyph
+Et maintenant voici l'ordre réduit \verb|\vers| qui
+s'utilise comme \verb|\verb| et doit permettre de couper une
+longue chaîne de caractères \texttt{ver\-batim}. Celle-ci
+sera coupée par défaut entre les mots (\vers|\notthyphe|\-\vers|nation|)
+mais pourra l'être à l'intérieur des mots si on précise
+\tthyphenation \vers|\tthyphe|\-\vers|nation| comme ici : <<
+\vers|Longue Chaîne De Caractères À Couper Absolument| >>.
+Les mots commençant en majuscule ne pourront être coupés
+que si \vers|\uchyph=1|, valeur par défaut dans \FP\
+(\vers|\|\vers|allow|\-\vers|uchyph|) qui est utilisée pour cette
+partie uniquement.
+
+\subsection*{Test de {\mdseries\texttt{\textbackslash fsc}}
+(\fsc{French CAPS})}
+Ce paragraphe teste la protection de certaines macro-instructions.
+
+\disallowuchyph\notthyphenation
+\newpage\english
+\section{Other useful macros}
+French patronymic names are printed in small capitals with the first
+letter in uppercase. That is done with the \verb|\fsc| macro.
+Another macro \verb|\lsc| is available to print all the word(s) in small
+capitals, specially usefull for trademark or companies names.
+
+\LaTeX{} is at the current time unable to print a \verb|\ref| as
+a footnotemark, the command \verb|\refmark| is able to do that.
+
+Also, \LaTeX{} doesn't offer any {\tt verbatim} style able to
+hyphenate lines. \FP\ is able to do this with the
+environment {\tt versatim} or the \texttt{\textbackslash vers} order within a
+line.
+
+These environments allow to replace the {\tt tt} quoting
+({\tt ` '}) by more realistic ones ({\tt\`{ } \'{ }}) with
+the order \texttt{\textbackslash noenglishquote}. Of course this environment
+produce nothing different from the standard \verb|verbatim| when
+used in \verb|\english|:
+{\overfullrule=5pt
+
+\hfuzz=30pt
+\begin{versatim}
+1\iere{} ligne : cette ligne est bien trop
+2\ieme{} ligne : le test terrible de...
+3\ieme{} ligne : `ceci est le test des...
+\end{versatim}
+
+\SmsG%
+
+And now this a test of a long string within a \verb|\vers|:
+``\vers|Longue Chaîne De Caractères À Couper A|
+This string would be hyphenated only if someone said
+\verb|\tthyphenation| previously.
+}
+
+\FmsG%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\newpage\french
+\section{Accents et {\mdseries\tt tabbing}}
+\FP\ apporte une solution pour pouvoir introduire
+des lettres accentuées dans un environnement \vers|tabbing| lorsque
+le source \TeX{} est en 7bits ou utilise Ml\TeX{}
+\footnote{%
+Cette option est aussi utile désormais en T1 car les lettres accentuées
+sont traduites avec \FP, de façon interne, en 7-bits à la \TeX.
+ }%
+ ; c'est l'option par défaut
+\vers|\|\vers|tabbing|\-\vers|accents|\tabbingaccents. L'exem\-ple :
+\begin{tabbing}
+Les TYPES : \= Les matieres \= Les genres \kill
+Bidon : \> d'huile \>$A'=B''$\` normal \\
+Caisse : \> \`%
+ a outils \> rustique \\
+Toile : \> \a`%
+ a matelas \> confort
+\end{tabbing}
+\notabbingaccents
+doit s'imprimer ainsi :
+\begin{tabbing}
+Les TYPES : \= Les matieres \= Les genres \kill
+Bidon : \> d'huile \>$A'=B''$\` normal \\
+Caisse : \>\a`a outils \> rustique \\
+Toile : \>\a`a matelas \> confort \\
+\end{tabbing}
+\vspace*{-0.5\baselineskip}
+Nous l'avions saisi comme suit :
+\begin{versatim}
+\begin{tabbing}
+Les TYPES : \= Les matieres \= Les genres \kill
+Bidon : \> d'huile \>$A'=B''$\` normal \\
+Caisse : \> \`%
+ a outils \> rustique \\
+Toile : \> \a`%
+ a matelas \> confort
+\end{tabbing}
+\end{versatim}
+
+\section{Figurettes}
+Le style \verb|french| propose un environnement spécial, appelé
+\verb|figurette|,
+ pour placer les figures à l'enfroit exact où
+ces figures se présentent
+dans le texte. Cela est particulièrement utile pour des petites figures,
+domaine où \LaTeX{} n'est pas adapté en standard.
+Pour réaliser ceci :
+ \begin{figurette}
+ \center\fbox{essai}\endcenter% rajoute pour plain TeX
+ \caption{Ceci est une figurette}
+ \label{figurette}
+ \end{figurette}
+Nous avons écrit :
+\begin{verbatim}
+ \begin{figurette}
+ \center\fbox{essai}
+ \caption{Ceci est une figurette}
+ \label{figurette}
+ \end{figurette}
+\end{verbatim}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\newpage\english
+\section{Diacritics \& {\mdseries\tt tabbing}}
+There is no way in a \LaTeX{} \texttt{tabbing} to put diacritics on letters
+as we use them usually. Here is how is printed the {\tt tabbing}
+you can find in the french part:
+
+\begin{tabbing}
+Les TYPES : \= Les matieres \= Les genres \kill
+Bidon : \> d'huile \>$A'=B''$\` normal \\
+Caisse : \> \`%
+ a outils \> rustique \\
+Toile : \> \`%
+ a matelas \> confort
+\end{tabbing}
+
+and that would normally be printed as follows:
+
+\begin{tabbing}
+Les TYPES : \= Les matieres \= Les genres \kill
+Bidon : \> d'huile \>$A'=B''$\` normal \\
+Caisse : \>\a`a outils \> rustique \\
+Toile : \>\a`a matelas \> confort \\
+\end{tabbing}
+
+ \begin{figurette}
+ \center\fbox{essai}\endcenter% rajoute pour plain TeX
+ \caption{Originally a figurette}
+ \label{engfig}
+ \end{figurette}
+\NL{4}
+
+\section{Little figures}
+
+\FP\ offers a special environment called
+\verb|figurette| which allows to put little figures EXACTLY
+where they appear in the text. This is a lack in the present
+versions of \LaTeX{}. In English the environment \verb|figurette|
+is replaced by an environment \verb|figure[h]|; look at figure
+\ref{engfig} we tried to put here without success and we
+typed like this:
+
+\begin{verbatim}
+ \begin{figurette}
+ \center\fbox{essai}
+ \caption{Originally a figurette}
+ \label{engfig}
+ \end{figurette}
+\end{verbatim}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\newpage\french
+\ifx\drapeaufg\undefined\else
+\section{Composition \protect\linebreak en drapeau}
+À gauche on trouve une composition justifiée standard \LaTeX.
+Dessous, une composition avec l'environnement \texttt{drapeaufg}
+proposé par l'extension \FP, il s'agit d'une composition
+\emph{en drapeau, au fer} à gauche. À droite, il s'agit aussi d'une
+composition \emph{en drapeau, au fer} à gauche mais cette fois-ci avec
+l'environnement \texttt{drapeaufgIN}, sans coupure de mots, comme cela
+est recommandé par l'imprimerie nationale.
+
+\subsection{Tests ordinaires}
+\textbf{\large Texte justifié de référence}
+
+\medskip
+\def\GOfrench{\noindent{\fboxsep 0pt\fboxrule 0.2pt\fbox{\advance\hsize by -2pt
+ \hbox{\vbox{\noindent
+<< Par ailleurs, les lignes n'occupant pas toute la
+ justification (titres ou légendes le plus souvent) peuvent être
+ \emph{centrées} ou se présenter alignées verticalement
+ par la gauche sur la
+ marge de gauche de la page, ou \XX
+ verticalement par la droite sur la marge de
+ droite de la page. On dira alors qu'elles sont composées
+\emph{en drapeau, au fer} à gauche ou \emph{en drapeau, au fer} à droite.
+Dans ce type de composition, les coupures de mots sont proscrites et les
+rejets à la ligne devront obéir à une certaine logique souvent dictée par le
+sens. Ainsi on ne séparera pas l'article du substantif, le pronom personnel
+sujet de son verbe, l'adjectif numéral du nom auquel il se \XX
+rapporte, \etc. >>
+(règles Imprimerie Nationale, p~153)%
+}}\hss}}}
+
+\let\XX\relax
+\GOfrench
+
+\hbox{}
+
+\textbf{\large Drapeau, au fer à gauche}
+
+\medskip
+\begin{drapeaufg}
+\GOfrench
+\end{drapeaufg}
+
+\newpage
+\enlargethispage{20pt}\hbox{}\smallskip
+
+\hbox{}\smallskip\NL5
+Dans ce dernier cas, des débordements dans la marge droite
+sont possibles ; ils sont à traiter
+au cas par cas par de simples coupures de lignes placées aux endroits
+recommandés par l'imprimerie nationale (selon texte encadré). Le
+dernier texte est ainsi corrigé.\NL3\vspace*{-2.5pt}
+
+\textbf{\large Drapeau << fg >>, selon IN}
+
+\medskip
+\begin{drapeaufgIN}
+\GOfrench
+\end{drapeaufgIN}
+
+\medskip
+\textbf{\large Drapeau << fg IN >>, corrigé}
+
+\medskip
+\let\XX\\
+\begin{drapeaufgIN}
+\GOfrench
+\end{drapeaufgIN}
+
+\newpage
+\subsection{Tests en drapeau << fg >>, aux limites}
+Voici deux tests aux limites de la composition
+\emph{en drapeau, au fer} à gauche, sur une colonne
+étroite (2cm) tout d'abord avec l'environnement
+\texttt{drapeaufg} et ensuite avec la recommandation
+de l'imprimerie nationale appliquée à
+\FP\ (ou interprètée par l'environnement \texttt{drapeaufgIN}).
+
+Les coefficients de laideur (\texttt{badness})
+acceptés sont élevés, c'est la raison pour laquelle
+aucun message d'\texttt{underfull hbox}
+(tout comme celui d'\texttt{overfull})
+n'est émis dans les deux cas
+ci-dessous.
+
+\bigskip
+
+\def\temp{\noindent{\fboxsep 0pt\fboxrule 0.2pt\fbox{\advance\hsize by -2pt
+ \hbox{\vbox{\noindent
+ instit instits
+institut instituts
+institution institutions
+institutionnel institutionnels
+institutionnelle institutionnelles
+institutionnellement
+constitutionnellement
+inconstitutionnellement
+}}\hss}}}
+
+\let\XX\relax
+\parbox{2cm}{%
+\begin{drapeaufg}
+\hsize=2cm
+\temp
+\end{drapeaufg}
+}
+\hspace*{0.5cm}
+\parbox{2cm}{%
+\begin{drapeaufgIN}
+\hsize=2cm
+\temp
+\end{drapeaufgIN}
+}
+
+\newpage
+\subsection{Tests en drapeau << fd >>, aux limites}
+Nous effectuons ici les mêmes test mais avec
+les environnements \texttt{drapeaufd} (fer à droite)
+et \texttt{drapeaufdIN} (selon imprimerie nationale).
+En fait, l'environnement
+\texttt{drapeaufd} est tout simplement
+un \texttt{raggedleft}.
+\NL{9}
+
+\let\XX\relax
+\parbox{2cm}{%
+\begin{drapeaufd}
+%\mbox{Avec \the\rightskip :}
+\hsize=2cm
+\temp
+\end{drapeaufd}
+}
+\hspace*{0.5cm}
+\parbox{2cm}{%
+\begin{drapeaufdIN}
+%\mbox{Avec \the\rightskip :}
+\hsize=2cm
+\temp
+\end{drapeaufdIN}
+}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\newpage
+\Large
+\let\XX\relax
+\subsection{Test << fd >> classique}
+
+\begin{drapeaufd}
+\GOfrench
+\end{drapeaufd}
+
+\normalsize\bigskip
+
+L'œil aiguisé sera troublé car
+les deux colonnes ne sont pas alignées horizontalement ;
+cela est dû à la différence de matériel à composer, au total,
+dans chacune des deux colonnes.
+
+\vfill
+
+\newpage
+\Large
+\subsection{Test << fd >> IN}
+\begin{drapeaufdIN}
+\GOfrench
+\end{drapeaufdIN}
+
+\normalsize\bigskip
+
+Quelque soit le corps de la police (dans les limites
+classiques de \LaTeX{}), avec cette largeur de colonne,
+on n'obtient pas de différence
+de mise en page entre les deux environnements. Les règles
+de l'imprimerie nationale sont donc plus largement appliquées
+dans ce cas.
+
+\vfill
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\onecolumn
+\newpage\french
+\hbox{}
+\vfill
+\centerline{\Large Page intentionnellement laissée blanche}
+\vfill
+\twocolumn
+
+\fi% on a saute si drapeaufg est inconnu (frencht)
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\newpage\french
+\section{Lettrines}
+\SmsG% lettrine reduite a 1 seule lettre !
+Voici le test des lettrines proposées en mode semi-automatique
+avec \FP\ :
+
+\bigskip
+\verb| \flettrine{Quoi ?}|
+\flettrine{Quoi ?} {Paris}
+{sera toujours Paris}. Ceci est une lettrine obtenue
+grâce au collègue allemand E.~{\sc Scha\-lück} et
+ aux différents codes qu'il
+m'a donnés.
+
+<< Ici démarre une lettrine dans une citation.
+
+\bigskip
+\lettrine{Paris}
+{sera toujours Paris}. Ceci est une lettrine obtenue
+grâce au collègue allemand E.~{\sc Scha\-lück} et
+ aux différents codes qu'il
+m'a donnés.
+
+\bigskip
+\flettrine{Paris}
+{sera toujours Paris}. Ceci est une lettrine obtenue
+grâce au collègue allemand E.~{\sc Scha\-lück} et
+ aux différents codes qu'il
+m'a donnés.
+
+et la citation se termine ici. >>
+
+\bigskip
+\verb| \font\lettrinefont=cmr17 scaled|\\
+{\font\lettrinefont=cmr17 scaled \magstep5
+\verb| \magstep5\lettrine[`` {Paris} '']|
+\lettrine[`` {Paris} '']
+{sera toujours Paris}. Ceci est une lettrine obtenue
+grâce au collègue allemand E.~{\sc Scha\-lück} et
+ aux différents codes qu'il
+m'a donnés.\par}
+
+\bigskip
+\verb| \lettrine[<< {Paris} >>]|
+\lettrine[<< {Paris} >>]
+{sera toujours Paris}. Ceci est une lettrine obtenue
+grâce au collègue allemand E.~{\sc Scha\-lück} et
+ aux différents codes qu'il
+m'a donnés.
+
+\bigskip
+\verb| \flettrine[<< {Paris} ]|
+\flettrine[<< {Paris} ]
+{sera toujours Paris}. Ceci est une lettrine obtenue
+grâce au collègue allemand E.~{\sc Scha\-lück} et
+ aux différents codes qu'il
+m'a donnés. >>
+
+\bigskip
+\tthyphenation\noindent
+\vers|\|\vers|font\lettrinefont=cmti12 scaled| \!\vers| \magstep4\lettrine|
+{\em \% vérification d'italique.}
+\font\lettrinefont=cmti12 scaled \magstep4\lettrine
+Blalbla {\bf je blablate}, tu blablates, ils blablatent, b...
+(ceci est l'exemple même de ce qu'il ne faut pas faire car ainsi
+le mot n'est pas mis en petites capitales). Ceci avait pour but
+de tester une police italique.
+
+\bigskip
+\lettrine{L'absurdité} de cette lettrine...
+
+\notthyphenation
+\FmsG
+
+\newpage\english
+
+\section{Illuminated letters}
+
+Look at the French part of this document because, in English,
+these macros have no effect:
+
+\bigskip
+\verb| \flettrine{Quoi ?}|
+\flettrine{Quoi ?} {Paris}
+{sera toujours Paris}. Ceci est une lettrine obtenue
+grâce au collègue allemand E.~{\sc Scha\-lück} et
+ aux différents codes qu'il
+m'a donnés.
+
+<< Ici démarre une lettrine dans une citation.
+
+\bigskip
+\lettrine{Paris}
+{sera toujours Paris}. Ceci est une lettrine obtenue
+grâce au collègue allemand E.~{\sc Scha\-lück} et
+ aux différents codes qu'il
+m'a donnés.
+
+\bigskip
+\flettrine{Paris}
+{sera toujours Paris}. Ceci est une lettrine obtenue
+grâce au collègue allemand E.~{\sc Scha\-lück} et
+ aux différents codes qu'il
+m'a donnés.
+
+et la citation se termine ici. >>
+
+\bigskip
+\verb| \font\lettrinefont=cmr17 scaled|\\
+{\font\lettrinefont=cmr17 scaled \magstep5
+\verb| \magstep5\lettrine[`` {Paris} '']|
+\lettrine[`` {Paris} '']
+{sera toujours Paris}. Ceci est une lettrine obtenue
+grâce au collègue allemand E.~{\sc Scha\-lück} et
+ aux différents codes qu'il
+m'a donnés.\par}
+
+\bigskip
+\verb| \lettrine[<< {Paris} >>]|
+\lettrine[<< {Paris} >>]
+{sera toujours Paris}. Ceci est une lettrine obtenue
+grâce au collègue allemand E.~{\sc Scha\-lück} et
+ aux différents codes qu'il
+m'a donnés.
+
+\bigskip
+\verb| \flettrine[<< {Paris} ]|
+\flettrine[<< {Paris} ]
+{sera toujours Paris}. Ceci est une lettrine obtenue
+grâce au collègue allemand E.~{\sc Scha\-lück} et
+ aux différents codes qu'il
+m'a donnés. >>
+
+\bigskip
+\noindent
+\verb|\font\lettrinefont=cmti12 scaled| \verb| \magstep4\lettrine|
+%{\em \% vérification d'italique.}
+\font\lettrinefont=cmti12 scaled \magstep4\lettrine
+Blalbla {\bf je blablate}, tu blablates, ils blablatent, b...
+(ceci est l'exemple même de ce qu'il ne faut pas faire car ainsi
+le mot n'est pas mis en petites capitales). Ceci avait pour but
+de tester une police italique.
+
+\bigskip
+\lettrine{L'absurdité} de cette lettrine...
+
+\onecolumn\newpage%
+\french
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% ===>>>> Il n'y a plus d'anglais au delà de cette limite <<<<===
+\def\lastlinein#1{\expandafter\gdef\csname #1\endcsname{\relax}}
+\lastlinein{english}% this is for frencht.tex
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\newpage\french
+\section{Lettrines automatiques ou non}
+
+\bigskip
+\lettrine{THIS IS A TEST} (a non-automatic one)
+is a piece of text and some more and some more
+and some more and some more and some more and some more and some more
+and some more and some more and some more and some more and some more
+and some more and some more.
+
+\bigskip
+\flettrine{THIS IS A TEST} (a non-automatic one)
+is a piece of text and some more and some more
+and some more and some more and some more and some more and some more
+and some more and some more and some more and some more and some more
+and some more and some more.
+
+\bigskip
+\automaticlettrine
+
+\lettrine{THIS IS A TEST} (a default automatic one)
+is a piece of text and some more and some more
+and some more and some more and some more and some more and some more
+and some more and some more and some more and some more and some more
+and some more and some more.
+
+\bigskip
+\flettrine{THIS IS A TEST} (a default automatic one)
+is a piece of text and some more and some more
+and some more and some more and some more and some more and some more
+and some more and some more and some more and some more and some more
+and some more and some more.
+
+
+\bigskip
+\def\lettrinefontname{cmr17}
+\lettrine{THIS IS A TEST} (a cmr17 automatic one)
+is a piece of text and some more and some more
+and some more and some more and some more and some more and some more
+and some more and some more and some more and some more and some more
+and some more and some more.
+
+\bigskip
+\flettrine{THIS IS A TEST} (a cmr17 automatic one)
+is a piece of text and some more and some more
+and some more and some more and some more and some more and some more
+and some more and some more and some more and some more and some more
+and some more and some more.
+
+\bigskip
+\lettrine{Que vaut ce test ?} (en automatique)
+is a piece of text and some more and some more
+and some more and some more and some more and some more and some more
+and some more and some more and some more and some more and some more
+and some more and some more.
+
+\bigskip
+\noautomaticlettrine
+\lettrine{THIS IS A TEST} (a non-automatic one)
+is a piece of text and some more and some more
+and some more and some more and some more and some more and some more
+and some more and some more and some more and some more and some more
+and some more and some more.
+
+\bigskip
+\lettrine{Que vaut ce test ?} (non-automatique)
+is a piece of text and some more and some more
+and some more and some more and some more and some more and some more
+and some more and some more and some more and some more and some more
+and some more and some more.
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\newpage
+\section{Énumérations}
+L'espacement des énumérations françaises est
+ profondément modifié avec \FP, pour s'en
+convaincre voir le test des listes page \pageref{listes} ou
+l'environnement \texttt{order} ci-après.
+
+\section{L'environnement << {\mdseries\texttt{order}} >>}
+Un environnement spécifique est proposé, il s'agit de l'environnement
+\verb|order| pour \LaTeX{} dont voici un petit exemple :
+
+\begin{order}
+\item Bien regarder ;
+\item l'espacement de chaque élément est spécial ;
+\item l'espacement vertical est aussi différent.
+\item A-D-O-P-T-E-Z \ \ L-E !
+\end{order}
+
+Ce prototype correspond bien aux énumérations
+françaises (je ne
+parle pas uniquement des marqueurs -- primo, secundo, \etc. --
+mais aussi de la gestion des espaces). En voici un autre exemple
+concret :
+\NL1
+
+Les guillemets entrent aussi en ligne de compte : << Je citerai
+3 cas très importants :
+\begin{order}
+\item le premier cas ;
+\item le second ;
+\item le dernier.
+\end{order}
+qui sont [...] >>
+\NL1
+
+À noter que ce mécanisme de rajout des guillemets en début de
+chaque élément de liste marche aussi avec un environnement
+comme \texttt{itemize}.
+
+\expandafter\ifx\csname frenchTeXmods\endcsname\relax
+ \space% ce test ne marche pas en LaTeX standard.
+\else
+ \ifx\frenchTeXmods\empty\space% ni en dummy french !
+ \else
+\section{Tests aux limites des guillemets anglais}
+
+Vérifions qu'il est possible d'activer temporairement
+quelques caractères sans perturber le traitement. Exemple :
+
+\begin{verbatim}
+{\catcode`\'=\active\catcode`\'=\active
+ `` Test guillemets anglais ''
+}
+\end{verbatim}
+
+{\catcode`\'=\active\catcode`\'=\active
+ `` Test guillemets anglais ''
+}
+ \fi
+\fi
+
+Un cas bien spécial avait été rencontré avec l'extension \myverb|amstex|
+qui utilisait une référence avec des mathématiques dans une autre
+référence, ce qui entrainait une boucle infinie avec \FP. Voici
+le test en question :
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% this code generates a loop with versions of french < V3,42 %%%%%%
+\makeatletter
+\def\r@ref{{\ref{nulllabel}$'$}}{1}
+\makeatother
+\ref{ref} = 1 $'$ % boucle garantie si < V3,42
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+Autre test aux limites ?
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\newpage
+\section{<< Autres tests >>}
+Nous sommes ici en une colonne.
+
+\bigskip
+Voici un test d'encadré contenant le mode \verb|centering| :
+\begin{center}\fbox{%
+\parbox{6cm}{\begin{center}Information : si vous voulez me joindre,
+mon tél. : 01 69 35 85 40. Je n'y suis qu'aux horaires de
+bureau.\end{center}}%
+ }\end{center}
+
+Bon ?\footnote{L'objet de cette note de bas de page est
+de vérifier l'espacement des inférieurs et supérieurs,
+\primo en \texttt{\backslash tt} :
+\texttt{XXXX ===> <=== YYYY} et
+\secundo en {\tt verbatim} :
+\myverb|french V4 < french V5 > frenchOLD|%
+.}
+
+\begin{table*}[h]
+\caption{Dactylographie et typographie comparées}
+\label{frenchdactylo}
+\vspace*{1cm}
+\huge
+\begin{tabular}{|r|r|}
+\hline
+dactylographie\ \ \ \ \hfill & \ \ \ typographie\ \ \ \hfill\\
+\hline
+ \verb|use \dots or \ldots| \ & use \dots\ or $\ldots{}$\ \\
+ \verb|utilisez...| \ & utilisez...\ \\
+ \verb|semi-colon;| \ & semi-colon;\ \\
+ \verb|point-virgule ;| \ & point-virgule ;\ \\
+ \verb|My god!| \ & My god!\ \\
+ \verb|Mon dieu !| \ & Mon Dieu !\ \\
+ \verb|Why not?| \ & Why not?\ \\
+ \verb|Pourquoi pas ?| \ & Pourquoi pas ?\ \\
+ \verb|``I say''| \ & ``I say''\ \\
+ \verb|<< Je dis >>| \ & << Je dis >>\ \\
+ \verb|He said: Yes| \ & He said: Yes\ \\
+ \verb|Il dit : non| \ & Il dit : non\ \\
+ \verb|$1\,234,567$| \ & $1\,234,567$\ \\
+ \verb|$f(x,\,y)$| \ & $f(x,\,y)$\ \\
+\hline
+\end{tabular}
+\normalsize
+\end{table*}
+
+\newpage
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\ifx\itshape\undefined\else% avoid old frencht crash
+\subsection{Test des guillemets dans un \mdseries\texttt{\backslash edef}}
+
+Les guillemets peuvent être appelés dans une définition de macro
+telle que \verb|\edef| mais comme les guillemets ne sont pas expansibles
+entièrement il a donc fallu arriver à réaliser une définition acceptable.
+
+Ainsi \verb|\edef\testedef{<< essai >>}|
+\edef\testedef{<< essai >>}
+donnera la curieuse définition suivante : \\
+\hbox{}\hfill\texttt{\meaning\testedef} ; \\
+elle reste complètement expansible (dans certaines conditions)
+ou pas du tout (comme ici appelée en tt on obtiendra
+le résultat suivant : \texttt{\testedef}).
+\fi
+
+\subsection{{\mdseries\tt <{}} et {\mdseries\tt >{}} redéfinis}
+
+Mes utilisateurs sont terribles ! Ils veulent le beurre, l'argent du
+beurre et aussi la fermière... S'ils codent
+\verb9\def\truc<#1|#2>{/#1 OU #2/}9
+ ils veulent pouvoir obtenir
+/Essai OU Erreur/ en saisissant \verb9\truc<Essai|Erreur>9. Faisons
+l'essai réel :
+{\def\truc<#1|#2>{/#1 OU #2/} \truc<Essai|Erreur>}.
+
+Encore plus fort : nous voulons avoir une notation de Backus-Naur
+c'est-à-dire des \verb|\rangle| et \verb|\langle|. Voici la
+définition que nous avons entrée avant le \verb|\begin{document}| :
+\begin{verbatim}
+{\catcode`\<=\active\catcode`\>=\active%
+\global\def<{\left\langle}\global\def>{\right\rangle}
+}
+\end{verbatim}
+
+Pour tester l'efficacité de ces macros il suffit alors de faire
+par exemple :
+\begin{verbatim}
+<< $<assignement>$ >>
+\end{verbatim}
+à condition que l'option \verb|\frenchguillemets| soit
+active (en maths).
+
+Essayons cela :
+% en fait il faut reactiver cela maintenant :
+{%
+ \gdef\myinf{\left\langle}%
+ \gdef\mysup{\right\rangle}%
+<< $\frenchguillemets% on a \nofrenchguillemets avec AmSTeX
+ <assignement>$ >>.
+}%
+% Remettre ici pour frenchle
+\global\let\myinf\inferieura% A no-op def
+\global\let\mysup\superieura% for a temporary action
+
+\subsection{\mdseries\texttt{\textbackslash special}}
+L'inclusion d'une commande \verb|\special| est ici testée :\\
+{%%%%%%%%%%%% attention : commentaires impossible dans cette partie.
+ \catcode`\%=12
+ \texttt{\backslash special}\verb|{ps:|{\tt %%%
+ }\verb| Texte bidon {`<<manuel:C;!?>>'}}|
+ \special{ps:%%%
+ Texte bidon {`<<manuel:C;!?>>'}}
+}
+
+\subsection{{\mdseries\texttt{\textbackslash refmark}} dans un tableau}
+
+Où l'on reparle encore de \verb|\refmark|...
+
+La note \ref{bas} est référencée depuis le tableau ci-dessous, tout comme
+les notes du tableau lui-même.
+
+ \begin{table}[htbp]
+ \begin{center}
+ \begin{tabular}{|c|l|}
+ \hline
+ Lettre & Utilisation\\
+ \hline
+ {\tt h} & petit blabla gentil et anodin \refmark{bas}\\
+ {\tt l} & ici reblabla assez moyen\refmark{bas}$^,$\refmark{refnote}\\
+ {\tt L} & autre grand grand grand blabla
+ \footnote{La note du tableau << refmark >>.\label{refnote}}\\
+ \hline
+ \end{tabular}
+ \caption{Le titre du tableau.}
+ \end{center}
+\end{table}
+
+En dehors du tableau on peut faire appel\footnote{La note de page.\label{bas}}
+à une note qui est, par contre, référencée dans le tableau. Tout cela
+est réalisé grâce à l'ordre \verb|\refmark| introduit par l'extension
+\FP.
+
+\subsection{{\mdseries\texttt{\textbackslash nombre}} en argument}
+
+Voici un test simple permettant de valider \verb|\nombre| lorsqu'il
+est en argument d'une macro-instruction :
+
+\begin{verbatim}
+\noindent
+1\,234 un nombre simple !\\
+$*$\\
+\nombre{1 234} un nombre simple !\\
+\nombre{1 234,5} avec une décimale.\\
+\texttt{\nombre{1 234,56} avec fonte tt.}\\
+\emph{\nombre{1 234,567} en mode emphasé.}\\
+\nombre{1 234,567 8} avec encore une décimale.
+\end{verbatim}
+
+Il faut noter que l'ordre \verb|\nombre| est toujours composé en mode
+mathématique ce qui force l'utilisation des fontes mathématiques.
+Tout changement de fonte doit donc être précisé de façon ad hoc.
+Par ailleurs, la composition n'est garantie que si l'option
+\verb|\nofiles| n'a pas été indiquée en début de document.
+Voici ce que ce test donne :
+
+\noindent
+1\,234 un nombre simple !\\
+$*$\\
+\nombre{1 234} un nombre simple !\\
+\nombre{1 234,5} avec une décimale.\\
+\texttt{\nombre{1 234,56} avec fonte tt.}\\
+\emph{\nombre{1 234,567} en mode emphasé.}\\
+\nombre{1 234,567 8} avec encore une décimale.
+
+\ifx\documentclass\undefined % Still Plain! so no \DeclareFontFamily
+\else%
+\subsection{{\mdseries\texttt{\textbackslash label}} en mode math}
+
+Il s'agit ici de tester la commande \verb|\label| dans un environnement
+\verb|equation| :
+
+\begin{verbatim}
+Vérifions le numéro de l'équation \ref{labelequation} ci-dessous :
+\begin{equation}\label{labelequation}
+V_{Lm}=\frac{L}{t_p}
+\end{equation}
+\end{verbatim}
+
+Voici le résultat du test :
+
+Vérifions le numéro de l'équation \ref{labelequation} ci-dessous :
+\begin{equation}\label{labelequation}
+V_{Lm}=\frac{L}{t_p}
+\end{equation}
+\fi
+
+\csname TexteComplementaire\endcsname
+
+\subsection{Bibliographie}
+Voyons maintenant la bibliographie.
+Dans \cite{`<<manuel:Gaulle;!?>>'} on trouvera...
+\nocite{`<<merci:Ronan;!?>>'}
+Par contre
+\cite[pp.1--3, X \& consorts]{<<blabla>>}
+est beaucoup plus fourni en exemples et commentaires... Mais dans
+\cite[p. 25 \S~13 {{\it et seq.}}]{`<<torture:Gaulle;!?>>'}
+toutes ces informations
+sont plus détaillées.
+
+Ce qui suit n'est pas un exemple de belle bibliographie, juste une
+vérification de bon fonctionnement.
+
+\bibliographystyle{plain}
+
+\begin{thebibliography}{Knuth 99}
+
+\section*{Bibliographie dans le document}
+
+\bibitem[Knuth 99]{<<blabla>>} Le \TeX book ou la << bible >>
+ des gourous \TeX
+\bibitem{`<<manuel:Gaulle;!?>>'} B. {\sc Gaulle}, {\em
+ Le résultat d'une << {\em dure} >> journée de travail !}
+\bibitem{`<<merci:Ronan;!?>>'} R. {\sc Keryell}, {\em
+ Le gentil normalien qui m'a beaucoup aidé grâce à sa thèse...}
+\bibitem{`<<torture:Gaulle;!?>>'} B. {\sc Gaulle}, {\em
+ Notice d'utilisation du style french}, 1991-1999.
+\bibitem{`<<tortureFP:Gaulle;!?>>'} B. {\sc Gaulle}, {\em
+ Notice d'utilisation de l'extension \FP\ pour \LaTeX}, 2000-20xx.
+\end{thebibliography}
+
+\ifx\documentclass\undefined % Still Plain! so skip
+\else%
+\section*{\phantom{\normalsize[Knuth 99]}Bibliographie en dehors du document}
+
+Avec certaines extensions de bibliographie il peut s'avérer utile
+de protéger les caractères actifs à l'intérieur même de la base
+de données bibliographique.
+
+\bibliography{testbib}
+\fi%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\listoffigures
+\listoftables
+\glossary{Façon cordon bleu}
+\glossaires
+\section*{Glossaire des mots techniques}
+\printglossary[\jobname.glo]
+
+\noindent -- magnification
+
+\noindent -- caractères spéciaux : \NL1
+
+{\huge%\frenchmacros n'est pas utile ici
+\begin{tabular}{|c|c|}
+\hline
+Pour imprimer ceci & Saisir cela\\ \hline
+\at & \verb|\at|\\ \hline
+\texttt{\vert} & \verb|\texttt{\vert}|\\ \hline
+\tilde & \verb|\tilde|\\ \hline
+\texttt{\backslash}& \verb|\texttt{\backslash}|\\ \hline
+\chap & \verb|\chap|\\ \hline
+\degre & \verb|\degre| \\ \hline
+\degres & \verb|\degres| \\ \hline
+\normalsize
+1\ier{} étage & \verb|1\ier{} étage| \\ \hline
+\normalsize
+(2\ieme\!) & \verb|(2\ieme\!)| \\ \hline
+\primo & \verb|\primo|\\ \hline
+\secundo) & \verb|\secundo)|\\
+\hline
+\end{tabular}
+} \NL1
+
+On notera que le caractère \verb|\degre| n'est pas le signe typographique
+usuellement utilisé pour exprimer
+des degrés mais que \verb|\degres| est
+plus conforme à la tradition. On remarque bien les différences entre
+\verb|\primo| et \verb|\secundo)|
+(la forme parenthésée n'est pas valable
+en {\em belle} typographie française).
+\primo... \secundo... \tertio... \quarto...
+\primo)... \secundo)... \tertio)... \quarto)...
+
+\section*{Glossaire argotique}
+Le pied
+
+\printindex
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\part{Ce qui ne marche pas (bien)...}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\chapter{Quelques questions à étudier}
+
+Cette partie ne comporte que des << anomalies >> que l'auteur espère
+résoudre d'ici quelque temps,
+grâce à votre aide... peut être ?
+
+En fait il ne reste vraiment
+pas grand chose à règler mais ce sont probablement des
+vieux problèmes sacrément compliqués.
+
+\section{Le << 2 points >>}
+Le << 2 points >> a une fâcheuse tendance
+à rester en bas de page lorsqu'il est
+suivi d'un {\tt verbatim}. Il serait souhaitable d'en trouver la raison.
+
+\section{Les guillemets}
+
+Le problème avec \verb|quotation| page \pageref{quotation}.
+
+%Et la perte d'informations
+%dans le cas de \verb|\noeveryparguillemets| lorsque l'on démarre
+%une citation dans un paragraphe déjà commencé.
+%
+%Vraiment très {\em fragile} ce \verb|\noeveryparguillemets| ! (
+
+Voir le cas des notes
+de bas de page ou en marge qui produis(ai ?)ent des désastres
+avec \verb|\noeveryparguillemets|.
+
+\section{Le cas des extensions mal écrites ...}
+
+... ne se résout souvent que par la modification de l'extension en question.
+Cela a été le cas de nombreuses extensions depuis le début de \frenchname{}
+et j'ai bien peur que cela continue \emph{éternellement}% (et à propos : qui me succèdera ?)
+.
+Ici Bernard Gaulle ajoutait (déjà en 2002) : << et à propos : qui me succédera ? >>.
+Nous pensons que le groupe de travail autour du projet e-french répond à sa question.
+
+Certains cas sont insolubles, par exemple :
+l'extension \verb|here.sty|
+redéfinissait << au vol >>
+l'ordre \LaTeX{} \verb|\table| au lieu
+de modifier l'existant ; cela posait un réel problème à FrenchPro
+qui se base sur la modification d'une commande \verb|\table|
+existante. Heureusement ce style périmé peut être remplacé
+avantageusement par \verb|float|.
+
+Notons qu'aujourd'hui avec les diverses variantes de \texttt{float},
+ce problème n'existe plus (comme bien d'autres d'ailleurs).
+
+\chapter{Améliorations à envisager}
+
+\section{Index et bibliographie}
+Deux thèmes qui n'ont que très peu été abordés.
+
+\section{Abréviations}
+Il est fâcheux d'avoir à connaître quelles sont les mots
+abrégeables pour pouvoir demander leur abréviation ; autant les saisir
+correctement dès le début...
+
+Faut-il arrêter la composition \LaTeX{} quand une abréviation
+n'est pas trouvée ?
+
+Faut-il offrir la possibilité de lister toutes les abréviations ?
+
+\annexes
+\hsize=18cm
+%
+%\chapter{Copyright}
+%\Mylisting{copyrigh.tex}
+%
+%\chapter{Le fichier \mdseries{\tt language.dat}}
+%\Mylisting{language.dat}
+
+\chapter{Le fichier \mdseries{\tt frabbrev-u8.tex}}
+\Mylisting{frabbrev-u8.tex}
+
+% retire pour mettre french.cmd 98/06
+%\chapter{Le fichier \mdseries{\tt french.dmy}}
+%My\listing{french.dmy}
+
+\chapter{Le fichier \mdseries{\tt french.cmd}}
+\Mylisting{french.cmd}
+
+\chapter{Le fichier \mdseries{\tt french.chk}}
+\Mylisting{french.chk}
+%
+%\chapter{Un style english (\mdseries{\tt fenglish})}
+%\Mylisting{fenglish_doc}
+
+%\chapter{Le code de l'extension \FP}
+%
+%\Mylisting{french_doc.txt}
+
+\newpage
+\hsize=15cm
+\abbreviations\noenglishdoublequotes
+\tableofcontents
+\noabbreviations\englishdoublequotes% remove options set for toc.
+
+\english %=\relax if english text (see \lastlinein)
+\endinput
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
diff --git a/language/french/e-french/texmf/doc/test/XeLaTeX/lisez-moi.txt b/language/french/e-french/texmf/doc/test/XeLaTeX/lisez-moi.txt
new file mode 100644
index 0000000000..dd87b0a242
--- /dev/null
+++ b/language/french/e-french/texmf/doc/test/XeLaTeX/lisez-moi.txt
@@ -0,0 +1,2 @@
+Pour compiler ajouter ..\mymaj et ..\mylist ici.
+Ceci est un essai loin de la grande perfection.
diff --git a/language/french/e-french/texmf/doc/test/french.tst b/language/french/e-french/texmf/doc/test/french.tst
new file mode 100644
index 0000000000..7404ef046d
--- /dev/null
+++ b/language/french/e-french/texmf/doc/test/french.tst
@@ -0,0 +1,3805 @@
+% !TeX encoding = latin9
+% This is the french torture file for all formats.
+% Copyright Bernard Gaulle as in french.doc
+%
+% À passer en 8 bits conformément à votre système
+%
+%% checksum = "25011 3750 14847 120214"
+%%
+%
+% For localisation:
+%
+\makeatletter%
+\ifx\documentclass\undefined\let\kbAissue\relax\let\typeouA\typeout%
+\else%
+ \let\typeouA\@gobble%
+% For debugging one can remove "msg" access, just uncomment
+%\let\kbAissue\relax% this line.
+ \ifx\kbAissue\undefined%
+% Firstly we add the material to use the "msg" package for localization.
+ \def\kb@issue#1#2{\kb@issue@[#1]#2\void}% The local \issuemsg macro.
+ % which will call the real one;
+ % #1 is the macro message required.
+ % #2 is the message header + msg number
+ % such as "^^J -234-", just message
+ % number (234) is kept.
+ \let\kbAissue\kb@issue%
+ \def\kb@issue@[#1]#2-#3-#4\void{\issuemsg[#1]#3(french)}%
+ \ifx\issuemsg\undefined\let\kbAissue\relax\let\typeouA\typeout\fi%
+ \fi%
+\fi%
+\makeatother%
+%
+% For better debugging:
+\ifx\IeC\undefined
+\kbAissue% localise it.
+\typeout{^^J-66- ERROR! This file can't be typeset without any input}
+ \typeouA{-66- encoding declaration (look at keyboard or inputenc packages.)}
+\expandafter\stop% \usepackage[latin1]{keyboard} should be fine.
+\fi
+\let\FP\frenchpack\hyphenation{e-french} % anciennement French-Pro
+\wlog{Formating \jobname\space with\space\FP\space(\frenchstyleid)}
+%
+%
+\ifx\ProvidesFile\undefined\def\ProvidesFile#1[#2]{}\fi%
+\ProvidesFile{french.tst}%
+ [2005/05/11 The torture test file for the package \FP]% **last mods**
+\ifx\undefined\FmsG\def\FmsG{}\def\SmsG{}\fi
+%
+{\catcode`\<=\active\catcode`\>=\active%
+% Je veux :
+%\global\def<{\left\langle}\global\def>{\right\rangle}
+% Et pour ne pas pouvoir avoir l'effet que localement,
+% je fais :
+\gdef<{\myinf}\gdef>{\mysup}
+}
+\label{nulllabel}% null \label for AmSTeX test \ref within a \ref
+\iflatex\makeindex \makeglossary
+ \csname frhyphex\endcsname% load (again) the exceptions, outside babel
+ \def\NL#1{\Sauter#1Lignes}
+ \begin{document}
+ \makeatletter
+ \ifx\babel@savevariable\undefined%
+ \let\FRENCH\frenchTeXmods%
+ \else\def\FRENCH{\selectlanguage{french}}% pour babel
+ \fi%
+ \makeatother
+ \csname onecolumn\endcsname % avoid writting \onecolumn
+ % (special effect in frencht.tex)
+ \renewcommand{\thepage}{\roman{page}}%
+ \ifx\documentclass\undefined\else% for 2e
+ % As 2e doesn't accept \verb in arguments:
+ \gdef\myverb|#1|{%\nonfrench
+ \texttt{#1}%
+ %\endnonfrench
+ \relax}%
+ \fi
+\else
+ \let\FRENCH\frenchTeXmods%
+ \def\NL#1{\par}
+\fi
+\ifx\myverb\undefined\let\myverb=\verb\fi%
+% global here is just req. for TeX--XeT tests.
+\global\let\myinf\inferieura% A no-op def
+\global\let\mysup\superieura% for a temporary action
+\ifx\undefined\english\let\english\relax\fi%
+% Les \ldots sont $\ldots$ a cause de AmSLaTeX V1.1
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\def\HyphDiff#1#2{{\setbox0=\vbox{%
+ \pretolerance=-1 \hyphenpenalty=-10000
+ \hsize=0pt \leftskip=0pt \rightskip=0pt \parfillskip=0pt
+ \parindent=0pt \hfuzz=\maxdimen \interlinepenalty=0
+ \clubpenalty=0 \widowpenalty=0 \brokenpenalty=0
+ \hskip 0pt #1}%
+ \setbox2=\hbox{}%
+ \setbox9=\vbox{\unvbox 0 \loop \unskip \setbox1=\lastbox
+ \ifhbox 1
+ \global\setbox 2 = \hbox{%
+ \unhbox 1 \discretionary{}{}{}%
+ \unhbox 2}%
+ \repeat}%
+\setbox3\hbox{#2}\ifnum\wd2=\wd3\else
+\kbAissue% localise it.
+\typeout{-31- Wrong French Hyphenation\string!
+ Are you sure to run with a format ***********}
+\typeouA{-31- in which the french patterns were
+ installed at initex time\string? ***********}
+\ifECM\else%
+\kbAissue% localise it.
+\typeout{-32- if yes try to switch to T1 font
+ encoding (\noexpand\usepackage[T1]{fontenc})***}
+\fi%
+\showhyphens{#1}\typeout{(should be\string: #2)
+ \string<\string<======== *********************************}
+\fi}}
+\HyphDiff{éventualité}{éven-tua-lité}
+\HyphDiff{dégazonnage}{dé-ga-zon-nage}
+\HyphDiff{chromosomique}{chro-mo-so-mique}
+%%%%
+\SmsG%
+\typeout{V\'%
+ erification de la sortie de caract\`%
+ eres 8-bits \string:}
+\message{L'\'% \typeout ne transforme pas en 8bits pour l'instant.
+ et\'%
+ e est l\`%
+ a en ao\^%
+ ut \string!}
+\iflatex%
+\typeout{Essai de macro d'accentuation dans un ordre \string\showhyphens %
+ \string:}
+\showhyphens{Faut-il croire \`%
+ a l'\'%
+ ETERNIT\'%
+ E ? \'%
+ eludons ...}
+\showhyphens{Ao\^%
+ ut 2001 ou l'autre \`%
+ ere ...}
+\fi%
+\FmsG%
+%
+\english% Title page is in english
+\ifx\documentclass\undefined % Still Plain! so no \DeclareFontFamily
+\else%
+% To avoid "No file OMScmtt.fd" message 2004/10/29
+\DeclareFontFamily{OMS}{cmtt}{\skewchar\font48 }
+\DeclareFontShape{OMS}{cmtt}{m}{n}%
+ {<->ssub*cmsy/m/n}{}
+\DeclareFontShape{OMS}{cmtt}{m}{it}%
+ {<->ssub*cmsy/m/n}{}
+\DeclareFontShape{OMS}{cmtt}{m}{sl}%
+ {<->ssub*cmsy/m/n}{}
+\DeclareFontShape{OMS}{cmtt}{m}{sc}%
+ {<->ssub*cmsy/m/n}{}
+\DeclareFontShape{OMS}{cmtt}{bx}{n}%
+ {<->ssub*cmsy/b/n}{}
+\DeclareFontShape{OMS}{cmtt}{bx}{it}%
+ {<->ssub*cmsy/b/n}{}
+\DeclareFontShape{OMS}{cmtt}{bx}{sl}%
+ {<->ssub*cmsy/b/n}{}
+\DeclareFontShape{OMS}{cmtt}{bx}{sc}%
+ {<->ssub*cmsy/b/n}{}
+%%%%%%%%%%%%%%%%%%%%%%%
+\fi%
+\makeatletter% for \f@encoding
+\title{\fbox{ \FP\ \LaTeX%
+ \thanks{We are here in english, notice the problem when we use,
+ like in \texttt{frenchla}, a
+ {\mdseries\texttt{\textbackslash fnsymbol}}
+ in a box.\newline%
+ \indent \hspace*{0.5em}
+ Notice also that
+ {\mdseries\texttt{\textbackslash backslash}}
+ can't be used.%
+ }%
+ }\\ \ \\%
+ Version \frenchstyleid\\ \ \\
+ ``Torture'' Test (\jobname) \\ with
+ \ifx\encodingdefault\undefined Unknown
+ \else\ifx\f@encoding\undefined\encodingdefault{}
+ \else\f@encoding{} \fi
+ \fi Font Encoding\\\ }
+ \author{Bernard {\sc Gaulle}%
+ \thanks{Thanks to those good guys who helped me.\newline%
+ \indent\hspace*{0.5em}
+ This test note is also referred by a
+ {\mdseries\texttt{\textbackslash refmark}} call.
+ \label{title:thanks}%
+ }%
+ \\ \ \\ et...\refmark{title:thanks}%
+ }%
+% AmS \normalparindent no more exists 2000/06/15, so the code is removed.
+%\makeatletter% Don't let AMS change \parindent
+%\ifx\RIfM@\undefined\else\normalparindent=1em\parindent=\normalparindent\fi%
+%\makeatother
+\makeatother%
+\date{Printed on \today}
+% As the titlepage is in English but the date in French we let \ier defined:
+{\def\ier{ier}\maketitle}
+\setcounter{page}{2}\thispagestyle{empty}
+\cleardoublepage\french
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\onecolumn
+\sommaire[4]
+\bigskip
+\begin{center}
+\noindent\fbox{%
+\begin{minipage}[t]{0.5\textwidth}
+\begin{center} \fbox{\parbox{5cm}{{\bf Remarque} : \\ la commande
+\texttt{\backslash som\-maire}\label{pbverb}%
+\footnote{Cette note a été demandée depuis une minipage.}%
+\footnote{Cette deuxième note aussi.}
+%%%%NB : \verb|\sommaire| ou \verb|\tableofcontents| produisent des HORREURS,
+%%%% lorsqu'ils ont utilises dans un \fbox, BUG LATEX !
+ est un apport de \FP.\hfill}}
+\end{center}
+\end{minipage}
+}
+\end{center}
+
+{% Not a LaTeX redefinition : \def\thefootnote{\fnsymbol{footnote}}
+\renewcommand{\thefootnote}{\fnsymbol{footnote}}%
+Essai de note avec \verb|\fnsymbol|
+\footnote{Note avec une étoile.}.
+
+\def\thefootnote{\relax}
+Essai de note de bas de page non numérotée
+\footnote{Note non numérotée.}.
+}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\cleardoublepage
+\chapter*{\prefacename}
+
+{\em Certains croient qu'une préface peut apporter de la valeur au livre,
+moi je pense plutôt que cela apporte de la {\em valeur}
+à l'auteur...} (dans
+tous les sens du terme).
+
+\cleardoublepage
+
+\twocolumn
+\renewcommand{\thepage}{\arabic{page}}\setcounter{page}{1}%
+\chapter*{Introduction}
+
+\begin{motsclef}
+french, style, francisation, francophonie, multilingue,
+english, option, extension.
+\end{motsclef}
+
+\begin{resume}
+Ce document a été conçu
+uniquement pour tester intensivement \FP\ (anciennement appelé
+option de style%
+ \glossary{« : ; style ? ! »}\index{« : ; style ? »}%
+ \footnote{Cette note a pour but de faire appel à une macro
+ \texttt{\backslash index} contenant des caractères actifs.%
+ \index{« : ; depuis la note de bas de page ? »}%
+ }
+\index{french!Le point d'exclamation est un caractère spécial de Makeindex}%
+\index{<@{\tt\protect\inferieura} ({\tt\protect\backslash inferieura})}%
+\index{>@{\tt\protect\superieura} ({\tt\protect\backslash superieura})}%
+\index{Magic di N'Konga (auteur célèbre)}%
+ \texttt{FrenchPro}).
+\end{resume}
+
+\bigskip Notez que les deux environnements \verb|resume| et \verb|motsclef|
+(ainsi que \verb|keywords|)
+sont des apports de \FP.
+
+\bigskip Si le libellé « Résumé » apparaît dans la partie
+ anglaise, cela
+signifie que \FP\ ne possédait pas de définition
+d'\verb|\abstract| et donc l'a remplacé par \verb|\resume|. Cela signifie
+aussi que les libellés anglais n'ont pas été définis
+%(\verb|\captionnames|%
+%\footnote{Une extension {\tt fenglish} est fournie conjointement avec
+%\FP\ ; {\tt\backslash captionnames} y est défini.
+%Cette extension {\tt
+%fenglish} est automatiquement appelée par \FP\ dans le
+%cas que nous avons cité.}
+% n'était pas défini par les extensions appelées avant
+% \FP).
+Rappelez-vous aussi que \verb|\abstract| ne fait pas partie de la classe
+de document \verb|book|.
+
+Remarquez les différences entre les numéros de notes de bas de page en
+français et en anglais, ainsi que l'impression de ce même numéro en
+bas de la page.
+
+\english\newpage
+\begin{keywords} %???\relax% for AMS which has its own macro with #1
+French, Style, Option, Package, French-Speaking usage, English, Multilingual.
+\end{keywords}
+
+\begin{abstract} The object of this paper is to test intensively \FP.
+\end{abstract}
+\NL1
+
+\bigskip Notice that the three environments
+\verb|resume|, \verb|keywords| and \verb|motsclef|
+are all introduced by \FP.
+
+\bigskip Notice that if the abstract name printed here is not ``Abstract'' you
+are using packages that have no \verb|\abstractname| defined for eng\-lish.
+ The english package defining such captions is loaded only
+if \verb|\captionsnames|%
+\footnote{The {\tt fenglish} package is given with \FP,
+so {\tt$\backslash$captionnames} are normally defined because
+\FP\ is calling automatically the {\tt fenglish} package in the
+pre\-viously cited case.} was
+previously undefined. (Remember also that as \verb|\abstract| is not defined
+in the \verb|book| document class the \FP\ assumes it is a
+\verb|\resume|.)
+
+Notice the different typesetting of the footnote numbers in French and English
+as well as the printing of that numbers before the footnote text.\vfill
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+%\pagebreak
+\french
+\part{Ce qui marche est ici...}
+\disallowuchyph% ce que je prefere...
+
+\chapter{Avertissements}
+
+Seul le document authentique qui est fourni par l'auteur
+ sous une forme composée
+constitue la référence. Cela veut dire que l'installateur de \FP\
+sur un système doit comparer son résultat
+(sous forme papier ou
+fichier \verb|.pdf|) avec la forme authentique fournie par l'auteur.
+
+\bigskip
+
+\bigskip \FP\ a été conçu pour fonctionner
+avec la majorité des formats basés sur \LaTeX{}
+\footnote{Au siècle dernier (XX\ieme), \FP\ était appelé « style
+\texttt{french} » et pouvait fonctionner en dehors de \LaTeX\ mais
+l'effort pour assurer cette facilité dans de trop nombreux formats
+exotiques était totalement disproportionné ; ceci a donc été
+abandonné (au moment de la sortie de \LaTeXe).}%
+.
+
+\bigskip \AllTeX{} est mon logo ; il symbolise {\em tous les \TeX{}} ; on peut
+l'imprimer correctement dans toutes les polices ({\em \AllTeX}, {\bf \AllTeX},
+{\sf \AllTeX}, {\tt \AllTeX}, ...) grâce à la partie NFSS de \LaTeXe%
+\footnote{Le document de référence ({\tt frenchrf})
+a été produit avec NFSS. Ce document-ci a été composé avec le format
+{\tt \fmtname}.}
+.
+
+\newpage\english Only the authentic author's document in a composed form is
+the reference. That means that the on site \FP\ installator must
+compare his result (paper or \verb|.pdf| file) with the authentic form
+provided by the author.
+\NL2
+
+\bigskip \FP\ was designed to work with all {\em formats\/}
+based on \LaTeX.
+
+\bigskip \AllTeX{} is my logo ; it's a symbol for expressing
+{\em all \TeX{}} ; one can print it correctly in all shapes
+({\em \AllTeX}, {\bf \AllTeX},
+{\sf \AllTeX}, {\tt \AllTeX}, etc.) due to the NFSS part of \LaTeXe%
+\footnote{The
+reference document was produced with NFSS of {\tt \fmtname}.}%
+.
+
+\french
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\chapter{La torture}
+
+\section{Le saviez-vous ?} Nos journaux, livres, revues,
+articles scientifiques ou autres ont été (en gros) durant les trente
+dernières années du vingtième siècle imprimés
+par des machines d'origine
+américaine. Ainsi, petit à petit, nous perdîmes
+l'habitude de lire des
+majuscules accentuées parce que tout simplement les polices
+ de caractères
+utilisables sur ces machines n'en comportaient pas.
+
+L'usage de plus en plus généralisé de l'infor\-ma\-tique
+{\em américaine} fit ainsi disparaître pendant un temps tous
+ les accents de notre langue écrite.
+
+De la même manière un certain nombre de
+{\em mauvaises habitudes} furent
+prises quasiment inconsciemment tout simplement parce que les programmes
+informatiques ne pouvaient pas faire autrement. Ainsi de nombreuses {\it
+coquetteries} de notre typographie sont tombées dans l'oubli.
+
+Saviez-vous par exemple qu'on n'imprime pas des guillemets comme ceci `` '' ni
+même ` ' mais ainsi « » ? Nous nous autoriserons toutefois
+ à utiliser dans
+ce document ces guillemets %\noenglishquote
+(` ') que nous considérons comme
+{\em techniques}.
+
+\newpage\english \section{Did you know that?}
+Our (french)
+newspapers, books, magazines, scientific articles and other things have
+been printed the last thirty years (roughly)
+of the twentiest century with american machines. So our
+habits to read accented uppercase letters declined because they simply were
+not included in the machinery.\NL2
+
+Together with American computer usage growth, all french
+diacritics disappeared from our french written language.\NL1
+
+In a same way {\em bad
+habits} took place, inconsciously, for the only reason that computer programs
+could not do otherwise. So, a lot of french typographic {\em coquetteries\/}
+are largely forgotten.\NL1
+
+ Did you know for example that we never typeset french
+guillemets like this `` '' neither ` ' but%
+{\makeatletter\def\GOfrench{T1}\ifx\GOfrench\f@encoding\else%
+\footnote{We switched to \emph{French} here to be able %
+ to print valid glyphs.}%
+\fi} %
+\begin{french}« and »\end{french}? Instead, we will
+authorised ourselves to use (` ') in this document
+because we consider they are {\em technical} guillemets.
+\french
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\newpage
+*** Cet espace est laissé intentionellement à blanc ***
+\NL3
+\section{Typographie française}
+%\noenglishquote
+La typographie française est spécifique en ce qui concerne
+l'utilisation des signes sui\-vants :
+`\verb|.| \verb|:| \verb|;| \verb|!| \verb|?| \verb|«| \verb|»|'.
+
+La répartition des espaces dans une ligne se fait de façon
+équitable entre les
+mots (jamais à l'intérieur des mots) et après
+la ponctuation (c'est le
+\verb|\frenchspacing| de \TeX{}) contrairement à la
+ typographie anglaise.
+
+Les `\verb|; ! ?|' doivent être précédés d'une espace fine
+insécable. C'est
+ce que nous avons appliqué dans \FP.
+Le cas du `\verb|?|'
+a été traité spécialement car l'espace fine ayant
+été jugée trop grande (par
+des spécialistes), a été réduite tout en adjoignant une peu de
+{\em glue} d'extensibilité.
+
+En ce qui concerne le `\verb|:|', le code typogra\-phi\-que%
+\footnote{Nous
+avons choisi d'adopter les recommandations de l'imprimerie nationale
+française.} précise qu'il est précédé
+d'une espace {\em mot\/}
+insécable.
+D'autres ont jugé que c'était inesthétique et cela a été
+remplacé par une espace fine.
+
+Les guillemets français « doivent être suivis d'une espace mot
+insécable qui
+a été remplacée ici par une espace moindre.
+Les guillemets fermants »
+sont, eux, précédés de la même espace.
+
+\SmsG%
+Lorsque la ligne n'est pas assez remplie et qu'il existe un `:', les
+typographes ont --~semble-\hbox{t-il}~-- l'habitude
+de répartir largement les espaces autour
+des deux points. C'est ce qui a été fait dans \FP\ qui
+pourra éventuellement produire une ligne : peu remplie\footnote{Le cas présenté ici a été
+créé artificiellement et peut donc apparaître exagéré dans
+certaines mises-en-pages.}%
+\penalty-10000%
+ ou aussi bien une ligne se terminant ainsi : « {\em com\-me % \- pour fourier
+font les pros\/} »
+lorsqu'ils ne trouvent pas d'autre moyen mais il devrait s'agir que de cas
+extrêmes. À noter que cela a pour avantage de réduire les
+\verb|over/under-full hbox| de façon significative.
+
+Paragraphe de remplissage...\\ ...\\... pour vérifier que le `:' ne
+termine ni la page ni la colonne. Ainsi :
+
+%\englishquote
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\begin{itemize}
+\item %qu'il s'agisse de verbatim ou d'une liste d'éléments
+les deux points et le texte qui suit
+sont tous deux sur la même page.
+\end{itemize}
+%\newpage % already done with the previous list
+\FmsG%
+\english
+
+\smallskip
+
+\section{French printing}
+
+French printing use specific typographic rules specially in concern with
+the following: `. : ; ! ?' and french guillemets.
+
+Interword spacing in a line is allways equal (and never modified inside a
+word). It's the same way after punctuation (standard \verb|\frenchspacing|) as
+opposed to the english typography.\NL1
+
+All `; ! ?' are preceeded by a thin and uncuttable space. We apply this
+automatically in \FP. (We have added few stretching {\em glue} to
+the question mark).\NL2
+
+Regarding the `:' we have not inserted an inter-word space but a thin space
+and also have added some glue.\NL2
+
+\smallskip
+French guillemets are processed the same way. \NL3
+
+In an {\em underfull\/} line containing a `:' man has habits to share spaces
+around the double points. This way used in \FP\ can also produce a
+line with a ragged right, as shown in the french column. This technique
+ reduce a lot of {\em overfull} and {\em underfull} {\tt hboxes}
+produced by \TeX{}.
+\NL3
+
+As shown also, \FP\ is reluctant to print a double point at the
+end of a page or a column.\french%\noenglishquote
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\newpage
+\section[Dactylographie française]{Rappels concernant la \newline
+dactylographie}
+
+Les habitudes de saisie c.-à-d. les habitudes dactylographiques,
+ veulent que les signes suivants
+`\verb|:| \verb|;| \verb|!| \verb|?| \verb|»|'
+soient toujours précédés d'un blanc
+(barre d'espace sur les claviers) et les \verb|«| toujours
+suivis d'un blanc. \FP\ remplacera
+automatiquement ce blanc (à la composition) par l'espace appropriée.
+
+{\moretolerance\moretolerance\moretolerance
+Les guillemets français « (et respectivement »)...
+\footnote{\tthyphenation Avec les options fournies
+telles \vers|A4| et \vers|double|\-\vers|column| on obtient
+ là un \vers|overfull| \vers|hbox| difficilement réductible
+de façon automatique mais je l'ai réduit
+avec 3 \texttt{\backslash moretolerance}%
+\notthyphenation.}
+\par}
+%\nooverfullhboxmark
+
+Les vrais guillemets français « (et respectivement »)
+s'utilisent toujours doublés (\verb|«| et respectivement
+\verb|»|). Ainsi $<$ et $>$ ne
+sont que des signes mathématiques et n'ont pas
+d'autre sens en français que : {\em inférieur à} et
+{\em supérieur à}.
+
+Il est fortement conseillé de poursuivre
+ces habitudes dactylographiques qui
+contribuent aussi à éclaircir le texte
+saisi et donc ainsi à faciliter les
+corrections ultérieures.
+\NL1
+
+\subsection[Test de la ponctuation française
+ \mdseries`\protect\myverb|. : ; ! ?|']
+{Test de la ponctuation \newline française
+ \mdseries`\protect\myverb|. : ; ! ?|'}
+
+Le deux points s'imprime comme ceci : s'il est précédé d'un blanc
+(au moins un) sinon rien n'est changé (par ex. 11:33). Notez
+l'espace après le point terminant la phrase ; le point virgule
+est aussi précédé d'une espace fine s'il n'est pas collé
+au mot le précédant (comme dans cet exemple dû à une faute
+de frappe; assez fréquente).\\
+{\moretolerance
+Oh ! Quoi-donc ? Notez ici l'espacement utilisé
+devant le `!' et le `?'. Il ne faut
+pas oublier aussi de taper le blanc avant, sinon? tout est
+%terriblement
+ collé! Voyez-vous la différence ? Bravo !
+}
+
+Mais pour les documents {\em mal\/} saisis (c.-à-d. sans blanc) il est
+toujours possible de spécifier la sous-option \verb|\untypedspaces|
+\untypedspaces pour obtenir une insertion automatique des espaces
+manquants comme ici! où il avait été saisi `\verb|ici!|'.
+Vérifions pour les autres ponctuations :;? \typedspaces que nous
+n'obtenons pas :;? serrées comme ici.
+
+Vérification de l'espacement :
+
+\noindent
+\verb| \typedspaces X~; Y ; Z;| = \typedspaces X~; Y ; Z;
+
+\noindent
+\verb|\untypedspaces X~; Y ; Z;| = \untypedspaces X~; Y ; Z; \typedspaces
+
+\newpage\english
+\section{French typing}
+French typists have some habits. For example they type a space before `: ; ! ?
+\verb|»|' and after \verb|«|. \FP\ replace automatically this
+blank space by the appropriate spacing.
+
+There is only one kind of quoting in French by the mean of guillemets which
+are allways typed \verb|«| and \verb|»|. Usual english simple and double
+quotes must be prohibited.
+
+\subsection{\mdseries%
+ \texttt{\textbackslash untypedspaces}}%
+This control command offers the ability to repair automatically a document
+badly typed i.e. in which spaces were not typed before french punctuation.
+This bypass can help but is not the good way to use daily because there are
+many cases where, for example, a double point must never be preceeded
+by a space.
+
+Now we verify that the spacing is unchanged in English:
+
+\noindent
+\verb| \typedspaces X~; Y ; Z;| = \typedspaces X~; Y ; Z;
+
+\noindent
+\verb|\untypedspaces X~; Y ; Z;| = \untypedspaces X~; Y ; Z; \typedspaces
+
+\subsection{\mdseries%
+ \texttt{\textbackslash wrongtypedspaces}}
+A french typist may input spaces before
+punctuation as it is usual in French. These unfortunate space
+ can be removed by simply letting \FP\ do it with* the control
+sequence:
+
+\begin{verbatim}
+\letpunctuationactivefor
+ \wrongtypedspaces
+\end{verbatim}
+
+\FRENCH% pour ne pas dire \french
+\letpunctuationactivefor\wrongtypedspaces
+\english
+Let's try the previous example:\par
+\noindent
+\verb| X~; Y ; Z;| = X~; Y ; Z;
+
+Now we say \verb|\nowrongtypedspaces|
+\nowrongtypedspaces to come back to the normal
+situation.
+
+\vfill
+\french
+\nowrongtypedspaces% to be sure it is set when english text is skipped
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\newpage
+\csname StopFrenchLbT\endcsname% special case, temporary.
+
+\section[Test des guillemets français, 7 (<%
+ < >%
+ >) et 8-bits (« »)]%
+{Test des guillemets \newline français (« »)}
+\hyphenation{nor-ma-le-ment}
+
+Les guillemets français s'écrivent et se saisissent
+« normalement » comme ceci :
+\verb|« |{\tt nor}\-%
+{\tt male}\-{\tt ment }\verb|»|
+ ou éventuellement en italiques mais toujours
+\bgroup% for frenchle
+« \em normalement\/ » %
+\egroup% for frenchle
+; ici nous avons tapé au clavier :
+\verb|« \em| {\tt normalement}\verb| »|.
+Et en tapant par contre :\\ \verb|«\em|
+ {\tt anormale\-ment (sans espace)}\verb|»| \ on obtient...
+\bgroup% for frenchle
+«\em anormale\-ment (sans espace)\/».
+\egroup% for frenchle
+Re\-mar\-quez que les guillemets font office d'acco\-lades \TeX{} et que donc
+les changements de polices sont restaurés en sortant de la citation.
+
+Pour les documents déjà saisis {\em sans espace} << \FP\ >>
+insérera systématiquement un espace à l'endroit
+désiré si l'on a donné la sous-option \verb|\untypedspaces|.
+\untypedspaces
+Et en tapant à nouveau
+\verb|«\em| {\tt anormale\-ment (sans espace)}\verb|»| on obtient
+\bgroup% for frenchle
+«\em anormalement (sans espace)\/».
+\egroup% for frenchle
+\typedspaces
+
+Parfois on désirera remplacer systématiquement tous les
+guillemets anglais (`` et '') d'un texte par de vrais guillemets
+français, il
+suffira alors de fournir l'étrange option :\\
+\texttt{\backslash noenglishdoublequotes}\\
+\noenglishdoublequotes pour obtenir : `` ''.
+
+`` '' (même test en début de paragraphe).\englishdoublequotes
+
+Lorsqu'une citation est faite dans un texte, celle-ci commence
+toujours par des guillemets. « Cette citation peut se poursuivre sur
+plusieurs paragraphes.
+
+Dans ce cas, le style %\verb|french|
+insérera systématiquement les guillemets nécessaires
+en début de
+chaque paragraphe. »
+
+Mais une citation peut aussi en contenir une autre. « Dans ce cas l'imprimerie
+ nationale précise dans ses {\em Règles typographiques} :
+\ancientguillemets
+ « Lors\-que la première citation est
+elle-même placée entre
+guillemets, chaque ligne de la seconde débutera par un
+guillemet ouvrant. »
+Ce dispositif, comme on le voit, n'est pas mis en ½uvre ici
+ (voir son application au paragraphe \ref{noeveryparguillemets}).
+ « La deuxième citation peut aussi...
+
+se poursuivre sur un ou
+plusieurs paragra\-phes. » Notez bien qu'avant cette citation nous avons
+demandé les \verb|\ancientguillemets|
+pour produire ces guillemets fermants
+en début de ligne. Le \verb|\todayguillemets| rétablit la
+situation une fois
+le deuxième niveau terminé. \todayguillemets
+
+{\makeatletter\def\GOfrench{T1}\ifx\GOfrench\f@encoding
+\enlargethispage{10pt}% increase probably due to EC fonts metrics?
+\fi}
+Il arrive que la fin d'une citation de deux\-ième niveau
+coïncide avec celle
+du premier niveau. « Dans ce cas il faudra coder, comme ici :\\
+\verb|\endguillemets|
+à la place de ``\verb|»|'' \endguillemets.
+
+Deux tests : \fbox{\begin{guillemets} XXX \end{guillemets}}
+et \fbox{X \begin{guillemets} XXX \end{guillemets} X} servant à
+vérifier l'espacement quand on utilise \verb|\begin| et \verb|\end|.
+
+Le paragraphe suivant va alors démarrer de façon
+tout à fait normale...
+
+On peut aussi coder :
+\begin{verbatim}
+\begin{guillemets}
+Une citation...
+\end{guillemets}
+\end{verbatim}
+ce qui donnera :
+\begin{guillemets}
+Une citation...
+\end{guillemets}
+et en tapant {\em à la \TeX} : \verb|\guillemets{}| \verb|Une citation...|
+\verb|\en|\vers|d|\-\vers|guillemets{}| nous devons obtenir absolument la même chose :
+\guillemets{} Une citation... \endguillemets{}
+
+Vérifions maintenant l'espacement dans les différents cas :
+
+\noindent
+\fbox{\parbox{2cm}{«X\dotfill X»}} \%\texttt{\backslash typedspaces}
+ {\em sans blanc}
+
+\noindent
+\fbox{\parbox{2cm}{« X\dotfill X »}} \%\texttt{\backslash typedspaces}
+{\em normal}
+
+\noindent\untypedspaces
+\fbox{\parbox{2cm}{« X\dotfill X »}} \%\texttt{\backslash untypedspaces}
+{\em avec blanc}
+
+\noindent
+\fbox{\parbox{2cm}{«X\dotfill X»}} \%\texttt{\backslash untypedspaces}
+{\em sans blanc}
+\typedspaces
+
+\noindent
+\fbox{\parbox{3cm}{A blabla bla blabla : «
+Ceci est mon test de césure »}} «...» reste possible.
+
+\begin{flushleft}
+ Ceci est « un test avec \verb|\raggedright| » qui
+--~théoriquement~-- ne devrait plus nous poser de problème.
+\end{flushleft}
+
+\subsection{{\mdseries%
+\texttt{\textbackslash noeveryparguillemets}}}\label{noeveryparguillemets}
+Cette option permet de gérer correctement les citations de second
+rang mais elle est tout à fait contraire
+ au processus \verb|\everypar| cité précédemment grâce auquel
+ les guillemets sont générés automatiquement à chaque
+début de paragraphe.
+Voici ce que produit l'option {\em normale\/}
+\texttt{\backslash every\-par\-guil\-lemets} sur le paragraphe suivant :
+
+« Tout le monde s'accorde à trouver légitime la division :
+{\tt extra-ordinaire}. Le cas des mots com\-posés est le seul
+à rencontrer
+cette unanimité. Dans les autres, les opinions sont très partagées.
+ Frey est le plus catégorique : il n'admet de division selon la formation
+que pour des mots de composition complètement française, et la rejette
+sinon... Le {\em Code typographique}, tout en adoptant ce même point
+ de vue « ... [reconnaît] néanmoins que certains auteurs de travaux
+scientifiques préfèrent la division éty\-mologique
+qui fait ressortir
+ la racine grecque ou latine. » Quant à Gouriou, il écrit :
+« On préfèrera cependant garder la coupure étymologique
+ chaque fois que les composants sont {\em aisément} re\-connaissables. »
+(L'italique est de Gouriou.)
+\marginpar{{\footnotesize Ici on a triché avec des} \texttt{\backslash!}}
+\!Telle \!est aussi \!l'opinion \!de \!Girodet ».
+
+Et voici l'effet de \verb|\noeveryparguillemets| :
+\noeveryparguillemets
+
+« Tout le monde s'accorde à trouver légitime la division :
+{\tt extra-ordinaire}. Le cas des mots com\-posés est le seul
+à rencontrer
+cette unanimité. Dans les autres, les opinions sont très partagées.
+ Frey est le plus catégorique : il n'admet de division selon la formation
+que pour des mots de composition complètement française, et la rejette
+sinon... Le {\em Code typo\-graphique}, tout en adoptant ce même point
+ de vue « ... [reconnaît] néanmoins que certains auteurs de travaux
+scientifiques préfèrent la division éty\-mologique
+qui fait ressortir
+ la racine grecque ou latine. » Quant à Gouriou, il écrit :
+« On préfèrera cependant garder la coupure étymologique
+ chaque fois que les composants sont {\em aisément} re\-connaissables. »
+(L'italique est de Gouriou.)
+Telle est aussi l'opinion de Girodet ».
+\everyparguillemets
+
+Il faut noter que cette option impose que le paragraphe commence et se
+termine par des guillemets. % sinon code \guillpar et \parguill
+C'est pour cela que nous n'avons pas mis cette option par défaut.
+
+\subsubsection{Un test assez méchant}
+Voici un exemple d'utilisation dans un environement \verb|quotation|%
+\footnote{Nous avons introduit \texttt{\backslash moretolerance}
+pour obtenir une composition correcte.} :
+\begin{quotation}
+\moretolerance\moretolerance\moretolerance
+« Je ne peux mieux faire que de citer la définition qu'a donnée
+de la gravure un de nos maîtres fondeurs, Fournier le Jeune :
+
+« La scien\-ce du graveur, dit-il, consiste à connaître la figure
+la plus parfaite que l'on puisse donner aux caractères, les dimensions
+qu'ils doivent avoir et à les représenter sur l'acier pour les frapper
+sur le cuivre afin d'en former des matrices qui perpétuent des lettres
+à l'infini par la fonte. \endguillemets
+\end{quotation}
+
+Le même exemple sans \verb|quotation| :
+
+« Je ne peux mieux faire que de citer la définition qu'a donnée
+de la gravure un de nos maîtres fondeurs, Fournier le Jeune :
+
+« La scien\-ce du graveur, dit-il, consiste à con\-naître la figure
+la plus parfaite que l'on puisse donner aux caractères, les dimensions
+qu'ils doivent avoir et à les représenter sur l'acier pour les frapper
+sur le cuivre afin d'en former des matrices qui perpétuent des lettres
+à l'infini par la fonte. \endguillemets
+\bigskip
+
+\noeveryparguillemets
+Puis avec \verb|\noeveryparguillemets| (c.-à-d. sans \verb|quotation|) :
+
+« Je ne peux mieux faire que de citer la définition qu'a donnée
+de la gravure un de nos maîtres fondeurs, Fournier le Jeune :
+
+« La scien\-ce du graveur, dit-il, consiste à connaî\-tre la figure
+la plus parfaite que l'on puisse donner aux caractères, les dimensions
+qu'ils doivent avoir et à les représenter sur l'acier pour les frapper
+sur le cuivre afin d'en former des matrices qui perpétuent des lettres
+à l'infini par la % En cas d'arrêt à cet endroit : le format
+fonte. \endguillemets%.fmt utilisé n'est prob. pas ds le bon codage !
+\bigskip
+
+Et enfin avec \verb|quotation|, voilà
+ce que cela peut donner\label{quotation} :
+%%% La \marginpar suivante pose un pb de ``Lost Float'' qd elle est
+%%% placee plus loin, pourquoi ?
+\marginpar{{\footnotesize Il y a ici un problème à étudier en 2 colonnes !}}
+\begin{quotation}
+« Je ne peux mieux faire que de citer la définition qu'a donnée
+de la gravure un de nos maîtres fondeurs, Fournier le Jeune :
+
+« La scien\-ce du graveur, dit-il, consis\-te à connaître la figure
+la plus parfaite que l'on puisse donner aux caractères, les dimensions
+qu'ils doivent avoir et à les représenter sur l'acier pour les frapper
+sur le cuivre afin d'en former des matrices qui perpétuent des lettres
+à l'infini par la fonte.
+ \endguillemets
+\end{quotation}
+\everyparguillemets
+On notera ici les espaces inter-mots beaucoup plus {\em tolérants}. C'est
+la seule solution trouvée pour arriver à imprimer
+quelque chose d'à peu
+près correct en double colonnage.
+
+\vfill
+Terminons la page en anglais pour tester le haut de page. Les guillemets
+doivent être bons avec le codage T1.
+
+\english
+Let's complete the page with english text in order to test and show
+how will be printed the header.
+\french
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\newpage
+\onecolumn
+\subsubsection{Même test en \mdseries\texttt{\textbackslash onecolumn}}
+Voici un exemple en environement \verb|quotation| :
+\begin{quotation}
+« Je ne peux mieux faire que de citer la définition qu'a donnée
+de la gravure un de nos maîtres fondeurs, Fournier le Jeune :
+
+« La scien\-ce du graveur, dit-il, consiste à connaître la figure
+la plus parfaite que l'on puisse donner aux caractères, les dimensions
+qu'ils doivent avoir et à les représenter sur l'acier pour les frapper
+sur le cuivre afin d'en former des matrices qui perpétuent des lettres
+à l'infini par la fonte. \endguillemets
+\end{quotation}
+
+Le même exemple sans \verb|quotation| :
+
+« Je ne peux mieux faire que de citer la définition qu'a donnée
+de la gravure un de nos maîtres fondeurs, Fournier le Jeune :
+
+« La scien\-ce du graveur, dit-il, consiste à connaître la figure
+la plus parfaite que l'on puisse donner aux caractères, les dimensions
+qu'ils doivent avoir et à les représenter sur l'acier pour les frapper
+sur le cuivre afin d'en former des matrices qui perpétuent des lettres
+à l'infini par la fonte. \endguillemets
+\bigskip
+
+\noeveryparguillemets
+Puis avec \verb|\noeveryparguillemets| (sans \verb|quotation|) :
+
+« Je ne peux mieux faire que de citer la définition qu'a donnée
+de la gravure un de nos maîtres fondeurs, Fournier le Jeune :
+
+« La scien\-ce du graveur, dit-il, consiste à connaître la figure
+la plus parfaite que l'on puisse donner aux caractères, les dimensions
+qu'ils doivent avoir et à les représenter sur l'acier pour les frapper
+sur le cuivre afin d'en former des matrices qui perpétuent des lettres
+à l'infini par la fonte. \endguillemets
+\bigskip
+
+Et enfin avec \verb|quotation| :
+\begin{quotation}
+ \let\bkORI\break
+ %\def\break{\bkORI\hbox to 0pt{/}}% for debug
+ %\ancientguillemets% for debug
+« Je ne peux mieux faire que de citer la définition qu'a donné
+de la gravure un de nos maîtres fondeurs, Fournier le Jeune :
+
+« La scien\-ce du graveur, dit-il, consiste à connaître la figure
+la plus parfaite que l'on puisse donner aux caractères, les dimensions
+qu'ils doivent avoir et à les représenter sur l'acier pour les frapper
+sur le cuivre afin d'en former des matrices qui perpétuent des lettres
+à l'infini par la fonte. \endguillemets
+\end{quotation}
+\everyparguillemets
+
+\subsubsection{Test de « stretchability »}
+
+Les espaces doivent être également répartis sur la ligne :
+
+\medskip
+\hbox to \hsize{etiord-gauche\footnote{En plain \TeX{} l'espacement est ici
+\label{etiord}
+ curieusement incorrect ! ...}
+ « centre-ertnec » \hbox{}\footnote{... alors qu'il faudrait
+la même répartition
+ de l'espace.}%
+ ehcuag-droite}
+\medskip
+
+\subsection{Test des commandes \mdseries\texttt{\textbackslash ifnum}}
+
+\ifnum 1 < 3 1\verb| < |3 est VRAI, bien sûr !
+ \else 1\verb| < |3 est FAUX ! \fi
+comme
+\ifnum 3 > 1 3\verb| > |1 est aussi VRAI, bien sûr !
+ \else 3\verb| > |1 est FAUX ! \fi
+
+\medskip
+
+\subsection{Test des commandes \mdseries\texttt{\textbackslash everypar}}
+
+{J'ai codé dans cette section \verb|\everypar{$++\,$}| : \everypar{$++\,$}
+
+Paragraphe 1 « citation niveau 1
+
+Paragraphe 2 « citation niveau 2
+
+Paragraphe 3 fin citation niveau 2 » puis fin niveau 1 »
+
+Paragraphe 4}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\newpage% tjrs en 1 colonne
+\hbox{}\ifx\itshape\undefined\else% avoid old frencht crash
+\subsection{Test de fermeture prématurée}
+
+Il arrive que les guillemets soient fermés dans un environnement
+plus intérieur qui n'apparie donc pas correctement les blocs.
+Voici un exemple d'utilisation :
+
+\begin{verbatim}
+Maître Corbeau dit à son clerc : « \itshape Cher collègue,
+
+\begin{itemize}
+\item Ah que vous êtes joli !
+\item Ah que vous me semblez beau ! » \upshape
+et s'enfuit de ce pas...
+\end{itemize}
+
+\endguillemets
+\textsf{Quel homme étrange, n'est-ce pas ?}
+\end{verbatim}
+
+Voici ce que cela donne comme composition :
+
+\medskip
+\bgroup% for frenchle
+Maître Corbeau dit à son clerc : « \itshape Cher collègue,
+
+\SmsG%
+\begin{itemize}
+\item Ah que vous êtes joli !
+\item Ah que vous me semblez beau ! » \upshape
+et s'enfuit de ce pas...
+\end{itemize}
+\FmsG%
+
+\endguillemets
+\egroup% for frenchle
+\textsf{Quel homme étrange, n'est-ce pas ?}
+
+\medskip
+On notera plusieurs choses. Premièrement il a fallu
+rétablir \verb|\upshape| après les guillemets fermants,
+du fait du mauvais appariement des blocs. Ensuite un message
+sort indiquant une fermeture prématurée des guillemets.
+Cette fermeture restant incomplète on note enfin que l'on a forcé
+un \verb|\endguillemets| pour clore proprement et définitivement
+l'environnement guillemets.
+
+\subsection{\mdseries\texttt{\textbackslash everyparguillemetsremoved}}
+\label{noeveryparguillemetsremoved}
+Dans le même exemple nous pouvons aussi interdire la génération
+automatique des guillemets ouvrants à chaque début de paragraphe ;
+il faut alors saisir \verb|\everyparguillemetsremoved| :
+\everyparguillemetsremoved
+
+\medskip
+\bgroup% for frenchle
+Maître Corbeau dit à son clerc : « \itshape Cher collègue,
+
+\SmsG%
+\begin{itemize}
+\item Ah que vous êtes joli !
+\item Ah que vous me semblez beau ! » \upshape
+et s'enfuit de ce pas...
+\end{itemize}
+\FmsG%
+
+\endguillemets
+\egroup% for frenchle
+\textsf{Quel homme étrange, n'est-ce pas ?}
+
+\medskip
+Il suffit ensuite de rétablir \verb|\everyparguillemets|.
+\everyparguillemets
+\fi% ifx \itshape
+
+\subsection{Test de l'espacement}
+{\def\marque#1{\vbox{\halign{\hfil##\hfil\cr
+ \llap{\vrule width4.5mm height.4pt}%
+ \rlap{\vrule width4.5mm height.4pt}\cr
+ \noalign{\vskip-1cm}%
+ #1\cr}}}
+ \Huge
+ \def\ecartement{\fbox{a « \marque{\hbox{$|$}} » b}}
+ \ecartement
+}
+% Difference de taille a voir entre les deux %%%%%%
+\setbox7\hbox{\leftguillemets\ X}
+\setbox8\hbox{X\ \rightguillemets}
+\SmsG%
+\message{Taille des boites page \thepage\space \string:
+ \the\wd7=\string?=\the\wd8}
+\FmsG%
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\onecolumn
+\newpage
+\hbox{}
+\vfill
+\centerline{\Large Page intentionnellement laissée blanche}
+\vfill
+\twocolumn
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\newpage
+
+\subsection{Guillemets interrompus}
+Une citation peut être en anglais et donc se commencer par
+\vers|« \|\vers|english| et se terminer par \vers|\|\vers|french »|. Ce cas
+ne doit plus générer de message
+{\em fermeture de guillemets non ouverts} !
+Voici le test, réalisé ici
+tout d'abord avec l'environnement \vers|nonfrench| :
+
+\medskip
+1 \fbox{« \begin{nonfrench}% LaTeX keeps space
+ Text in English
+ \end{nonfrench}% LaTeX keeps space
+ »}
+
+
+\medskip
+Puis avec : \\
+\verb|\begin{english}| ... \verb|\end{english}| :
+
+\medskip
+% bypass here our TeX--XeT emulation to avoid message: english environment
+% ended by \end{guillemets}
+\def\temp{\begingroup}
+\ifx\beginL\temp
+\else
+{% local redef of english for plain and our specific test file
+ \ifx\undefined\englishORI\else\let\english\englishORI\fi%
+2 \fbox{« \begin{english}% LaTeX keeps space
+ Text in English
+ \end{english}% LaTeX keeps space
+ »}
+
+\medskip
+Et enfin avec \verb|\|\verb|english| ... \verb|\endenglish| :
+
+\medskip
+3 \fbox{« {\csname english\endcsname
+ Text in English
+ \csname endenglish\endcsname}% space here to remove
+ »}
+}% local redef of english for plain test
+\fi
+
+\medskip
+Ceci avait aussi pour but de tester ces possibilités de
+changement de langage et de vérifier l'espacement qui
+devrait être ainsi :
+
+\medskip
+0 \fbox{« Text in English »}
+
+\noenglishdoublequotes
+\subsection{`` {\mdseries\texttt{\textbackslash noenglishdoublequotes}} ''}
+
+Nous avons mis la commande \vers|\noenglish|\-\vers|doublequotes| juste avant
+le titre de section de façon à remplacer les « quotes » anglaises
+par des guillemets français dans ce titre.
+Il s'agit de vérifier aussi que la génération des fichiers auxiliaires
+\verb|.aux| et \verb|.toc| ne pose pas de problème lorsque ces fichiers
+sont réutilisés. Bien sûr, si cette option n'est pas activée pour tout le
+document, comme ici, on ne retrouvera pas les guillemets français
+dans la table des matières.
+
+\noenglishdoublequotes
+
+\english% histoire de changer de langue ?
+\french
+%\newpage
+\subsection%{« no-french guillemets »}
+ {\mdseries\texttt{\textbackslash nofrenchguillemets}}
+En codant \verb|\nofrenchguillemets|
+\nofrenchguillemets on n'utilise plus
+les guillemets programmés dans l'extension {\tt french}. Si on les utilise
+malgré tout, le résultat dépendra de la police. Ici nous utilisons la
+police \fontname\font{} et nous obtenons :
+
+<%
+ < en 7-bits >%
+ >
+
+et aussi :
+
+« en 8-bits ».
+
+Réactivons maintenant les guillemets avec la commande
+\verb|\frenchguillemets|
+\frenchguillemets et faisons le même test :
+
+<%
+ < en 7-bits >%
+ >
+
+et aussi :
+
+« en 8-bits ». Voyez-vous ?
+\vfill
+\subsection{Haut de page+guillemets}
+
+\subsubsection{En 8-bits}
+Il ne devrait pas y avoir de problème du tout.
+Car, puisqu'il s'agit d'un guillemet en 8-bits, cela doit
+être forcément un vrai guillemet français. Mais, malheureusement,
+{\em la solution pour l'implémenter n'est pas encore trouvée avec
+le codage OT1}.
+Le codage de fonte de ce document imprime :
+\nonfrench <%
+ < >%
+ >%
+\endnonfrench{}
+ (doit être parfait en T1).
+
+\subsubsection{En 7-bits}
+En codage OT1 les guillemets 7-bits de haut de page ne peuvent être
+bons sur cette page
+ {\bf QUE} parce que nous avons terminé la
+page en français, sinon nous aurions eu :
+\ifx\textexclamdown\undefined
+ \def\textexclamdown{¡}\def\textquestiondown{¿}
+\fi
+\textexclamdown\textexclamdown{} et \textquestiondown\textquestiondown
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\newpage
+\hbox{ }\NL{24}
+
+\subsection{Guillemets et maths}
+
+L'équation suivante ne doit plus produire le fameux message :
+
+{\tt ! Argument of \backslash \string @genG % string pour amslatex
+ has an extra % { pour emacs
+ $\}$% c'est un \delimiter qui pose pb tq avec frencht d'ou mode math
+.}
+
+$$U^{k+1}=U^{k}- {< g_{k},d_{k} >}$$
+
+\section{D'autres guillemets}\label{autres}
+Avec \FP\ il est possible de substituer automatiquement aux
+guillemets `anglais' la forme \noenglishquote `que voici' en donnant la
+sous-option \verb|\noenglishquote|.
+Mais attention, les apostrophes deviennent des accents
+comme dans : {\em il s'agit ici de l'exemple}
+\englishquote qui aurait dû être imprimé :
+{\em il s'agit ici de l'exemple}.
+Un usage intensif de cette option est plutôt à déconseiller.
+
+\newpage
+\english
+\section{French guillemets}
+Using french guillemets in an english document (\verb|«| and \verb|»|) will
+give (depending of font encoding) that: « and », it is normal!
+
+As you can look in the previous columns, french guillemets have specific
+rules. They are used for quotation when an author is cited or each time an
+emphasis is needed. Normally, italic is not used inside a quoted french
+text, excepted when you really want to show some wording.
+
+When opened, each paragraph of the quoted text will start left
+ with the opening french guillemets.
+
+Another quotated text can take place inside a first level. This second level
+citation is also very specific. Each line must start with guillemets.
+
+The style designer, from time to time, chose to apply here an ancient rule
+by putting here closing guillemets.
+
+The technical tools involved in \FP\
+ disallow to have at the same time
+the \verb|\everypar| possibility and the second level mechanism.
+
+\subsection{Guillemets and maths}
+
+The following equation is always correct:
+
+$$U^{k+1}=U^{k}- {< g_{k},d_{k} >}$$
+
+and never produce an error message.
+\NL1
+
+\section{Other guillemets}
+With \FP\ it is possible to replace english guillemets by
+diacritic caracters. But, be careful, all apostrophes will be diacritics too.
+\french
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\newpage
+\section{Trois petits points}
+Les points de suspension sont : ... et non pas ceux de \TeX{} : $\ldots{}$
+\noTeXdots
+En codant \verb|\noTeXdots| les commandes \verb|\dots| ou \verb|\ldots| de
+\LaTeX{} donneront : $\ldots{}$ Mais l'option par défaut a été
+volontairement maintenue au standard (\verb|\TeXdots|) puisqu'il suffit
+de ne pas les utiliser.\TeXdots
+
+\section{Crochets}
+IBM, en son temps, avait créé l'EBCDIC dans lequel ne figurait pas
+les crochets ([ ]). C'est la raison pour laquelle les utilisateurs IBM
+ont parfois substitué $<$ et $>$ aux crochets. La sous option
+\verb|\EBCDICbrackets| \EBCDICbrackets
+permet de les remplacer comme ici <automatiquement> par des crochets.
+Mais faites attention, les doubles guillemets
+\verb|<|\verb|<| et \verb|>|\verb|>| % pour eviter la conversion 8bits
+ ne donneront jamais des crochets mais « et »
+(sauf en mode \verb|verbatim|). On peut en général
+se contenter de \verb|< <| et \verb|> >| pour obtenir < < et > >.
+On revient à la situation antérieure en tapant la commande suivante :
+\verb|\normalbrackets|\normalbrackets.
+
+\section{Débordements}
+Nous venons de choisir l'option d'indication de débordement de ligne
+\verb|\overfullhboxmark| et nous voyons son
+effet lorsque la ligne ne peut être coupée grâce à l'impression
+de la petite boîte noire.
+%(cf. page \pageref{debordement}).
+Cette option est activée au minimum pour une page entière.
+Ne pas spécifier l'option et son contraire sur la même page sinon
+l'effet est inchangé.
+
+\labelsinmargin
+\section{\mdseries\texttt{\textbackslash labelsinmargin}}%
+\label{labels: in: margin}
+\FP\ offre la possibilité, comme cela a été demandé
+à partir de cette section, d'imprimer dans la marge le libellé des
+étiquettes utilisées dans les ordres \verb|\label|.
+Cette option, utilisable
+aussi en dehors du français, est la suivante :
+\verb|\labelsinmargin|.
+
+\newpage\english
+\section{Three dots}
+Usual and common \TeX{} and \LaTeX{} dots are not french dots.
+\NL4
+
+\section{Brackets}
+An option is offered to replace \verb|<| and \verb|>| by brackets.
+\NL{11}
+
+\section{\mdseries\texttt{\textbackslash overfullhboxmark}}
+The command \verb|\overfullhboxmark| print a black
+box where your have an overfull \verb|hbox| i.e.\ when a line can't be
+hyphenated. The default is \verb|\nooverfullhboxmark|.
+\NL4
+
+\section{Labels in margin}\label{labels are in margin}
+An option allow you to print the labels you use in a page. These labels are
+printed in margins.
+\french
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\newpage
+\section{Des points sur...}
+Inutile de mettre les points sur les i quand on accentue un i. Tout bon
+éditeur de texte doit faire ce travail pour vous. Sinon il existe la
+sous-option \verb|\idotless| qui produira \idotless
+\let\XX\^% Pour éviter une traduction éventuelle en 8 bits
+\XX{i} si on lui demande d'imprimer \verb|\^i|.
+\iwithdot La valeur par défaut
+dans \FP\ est \verb|\iwithdot| qui donnera malgré tout de
+bons i accentués avec ML\TeX{} (î) s'ils sont saisis directement en 8
+bits (vérifiez dans votre fichier source).
+
+{\makeatletter\def\GOfrench{T1}\ifx\GOfrench\f@encoding
+\section{Ponctuation et mode \protect\linebreak % SPECIAL FONTES EC REELLES
+ mathématique}
+\else
+\section{Ponctuation et mode mathématique}
+\fi}
+Il s'agit de vérifier que les modifications introduites
+par l'extension \FP\
+ne posent aucun genre de problème en mode mathématique.
+\\ Nous définissons une macro \verb|\test| :
+\\ \verb|\def\test#1{#1}|\def\test#1{#1}
+\\ pour voir si le mode mathématique peut être appelé
+sans problème en
+argument de macro-instructions. L'appel de \verb|\test{$x''$}| ne doit
+pas poser de problème%
+\iflatex
+, ni même \verb|\texttt{|\-\verb|[$x''=0$]}|
+\\ Ainsi : \verb|\texttt{[$x''=0$]}|
+\\donne : \texttt{[$x''=0$]} et
+\else%
+. \\Ainsi :
+\fi
+\\ \verb|$A':B''_1<C_{d'}>D^2\ et\,\ !n\ ?\ ;$|
+\\ \verb|\test{$A':B''_1<C_{d'}$}|
+\\donne : $A':B''_1<C_{d'}>D^2\ et\,\ !n\ ?\ ;$
+\\\phantom{donne :} \test{$A':B''_1<C_{d'}$}
+\\Avec \verb|\noenglishquote|\noenglishquote{} cela...
+\\donne : $A':B''_1<C_{d'}>D^2\ et\,\ !n\ ?\ ;$
+\\\phantom{donne :} \test{$A':B''_1<C_{d'}$}
+\englishquote
+\\ puis avec \verb|\noenglishdoublequotes| \noenglishdoublequotes et
+`` mise en vedette '' :
+$$% \begin{displaymath}
+ A':B''_1<C_{d'}>D^2\ et\,\ !n\ ?\ ;
+$$% \end{displaymath}
+$$% \begin{displaymath}
+ \test{A':B''_1<C_{d'}}
+$$% \end{displaymath}
+De même :
+\begin{verbatim}
+{\tt CALL SUBR($<$iopt$<$,ilopt$>%
+ >$)}
+\end{verbatim}
+doit s'imprimer :\\
+{\tt CALL SUBR($<$iopt$<$,ilopt$>%
+ >$)}\\
+sans produire le message d'erreur « Fermeture de guillemets non ouverts ! ».
+\englishdoublequotes
+
+
+\newpage\english
+\section{An \i dotless}
+Everybody knows that a french ``{\em i circonflexe}'' has no dot on it.
+(In my opinion it is a \TeX{} bug to leave the dot when a diacritic is
+put on.) To suppress the dot automatically the best way is to use a well
+programmed text editor. \FP\ offers another opportunity with
+\verb|\idotless|.
+
+\NL3
+
+\section[Math mode and punctuation]{Math mode and \newline punctuation}
+Here we verify that french modifications about punctation
+does not introduce any problem in printing mathematics.
+\\ We define a new macro \verb|\test| :
+\\ \verb|\def\test#1{#1}|\def\test#1{#1}
+\\ in order to see if there is no more problem when passing maths
+inside a macro argument. Calling \verb|\test{$x''$}| must not
+introduce any problem%
+\iflatex
+, as well as \verb|\texttt{|\-\verb|[$x''=0$]}|
+\NL1\\So: \verb|\texttt{[$x''=0$]}|
+\\gives: \texttt{[$x''=0$]} and
+\else%
+. \NL1\\So:
+\fi
+\\\verb|$A':B''_1<C_{d'}>D^2\ et\,\ !n\ ?\ ;$|
+\\\verb|\test{$A':B''_1<C_{d'}$}|
+\\ gives: $A':B''_1<C_{d'}>D^2\ et\,\ !n\ ?\ ;$
+\\\phantom{gives:} \test{$A':B''_1<C_{d'}$}
+\\With \verb|\noenglishquote|\noenglishquote{} it$\ldots{}$
+\\gives: $A':B''_1<C_{d'}>D^2\ et\,\ !n\ ?\ ;$
+\\\phantom{gives:} \test{$A':B''_1<C_{d'}$}
+\englishquote
+\\ and with \verb|\noenglishdoublequotes|\noenglishdoublequotes{}
+in ``display'' math mode:
+$$% \begin{displaymath}
+ A':B''_1<C_{d'}>D^2\ et\,\ !n\ ?\ ;
+$$% \end{displaymath}
+$$% \begin{displaymath}
+ \test{A':B''_1<C_{d'}}
+$$% \end{displaymath}
+\englishdoublequotes
+Also:
+\ifx\documentclass\undefined\\ % Still Plain!
+\else\\[-2\baselineskip] % to keep the same spacing as in French
+\fi
+\begin{verbatim}
+{\tt CALL SUBR($<$iopt$<$,ilopt$>%
+ >$)}
+\end{verbatim}
+must print:\\
+%\SmsG%
+{\tt CALL SUBR($<$iopt$<$,ilopt$>%
+ >$)}\\
+%\FmsG%
+without producing the error message:
+``Fermeture de guillemets non ouverts !''.
+\french
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\newpage
+Pour ma part lorsque je désire des crochets que je n'ai pas
+au clavier, je préfère taper :\\
+\verb|{\tt CALL SUBR(<iopt<,ilopt> >)}| et utiliser
+l'option \verb|\EBCDICbrackets|\EBCDICbrackets{} :\\
+{\tt CALL SUBR(<iopt<,ilopt> >)}
+
+Cette option n'a pas d'effet en mode mathématique :
+$$ 1233 < 1234 <%
+ < 1235 >%
+ > 1234 > 1233 $$
+\normalbrackets
+
+\makeatletter% we should use \frac with AmS
+\ifx\RIfM@\undefined%\ifx\csname amsmath.sty\endcsname\relax
+ \long\def\text#1{#1}\long\def\frac#1#2{{#1\over#2}}
+\fi
+\makeatother
+
+Vérifions aussi
+($x < {\frac{1}{3}} < {\frac{1}{2}} > {\frac{1}{4}}$) :
+$$x < \frac{1}{3} < \frac{1}{2} > \frac{1}{4} $$
+puis aussi :
+
+ \text{\quad pour $|y| < \frac{111}{444}$}
+
+\bigskip
+La double ponctuation ne doit avoir aucun effet
+(visible) dans une formule en mode
+mathématiques, est-ce bien le cas sur l'exemple ci-dessous :
+
+{\LARGE $$a := b, (c!n=m) \textrm{ ; vrai ?}$$}
+
+On notera que la partie texte de la formule a été saisie avec la
+commande : \\
+\verb|\textrm{ ; vrai ?}|\\
+et que l'espacement français y a été appliqué.
+
+\iflatex
+\subsection{Le cas de la virgule}
+En standard \AllTeX{} (ou alors avec l'option spéciale
+\verb|\regularmathcomma| de \FP) le traitement de la virgule
+est spécifique, ainsi quand on tape ce qui suit en mode
+mathématique de mise en valeur :
+\regularmathcomma%
+\begin{versatim}
+$$\textrm{La fonction}\ f(x,y)\
+ \textrm{ou le Vecteur}\ V(x, y, z)$$
+$$Total=1,255\,\$\ ou\ 1\,500,00\,\textrm{\euro}$$
+\end{versatim}
+on obtient des espacements après les virgules,
+qu'il y ait ou non des espaces dans le source \TeX\ :
+$$\textrm{La fonction}\ f(x,y)\
+ \textrm{ou le Vecteur}\ V(x, y, z)$$
+$$Total=1,255\,\$\ ou\ 1\,500,00\,\textrm{\euro}$$
+(ce qui montre une anomalie dans la composition
+des nombres relatifs)
+\frenchmathcomma
+\fi
+
+\newpage\english
+When I have no brackets on my keyboard I prefer to type:\\
+\verb|{\tt CALL SUBR(<iopt<,ilopt> >)}|\\ using
+ the option \verb|\EBCDICbrackets| but the result in english
+remains unchanged\EBCDICbrackets{}:\\
+{\tt CALL SUBR(<iopt<,ilopt> >)}
+
+And within math mode:
+$$ 1233 < 1234 <%
+ < 1235 >%
+ > 1234 > 1233 $$
+\normalbrackets
+
+\makeatletter% we should use \frac with AmS
+\ifx\RIfM@\undefined%\ifx\csname amsmath.sty\endcsname\relax
+ \long\def\text#1{#1}\long\def\frac#1#2{{#1\over#2}}
+\fi
+\makeatother
+
+Let's verify also ($x < {\frac{1}{3}} < {\frac{1}{2}} > {\frac{1}{4}}$) :
+$$x < \frac{1}{3} < \frac{1}{2} > \frac{1}{4}$$
+and:
+
+ \text{\quad pour $|y| < \frac{111}{444}$}
+
+\bigskip
+The ``double punctuation'' should not have any effect
+in maths, which is obviously the case in the following
+English example:
+\NL1
+
+{\LARGE $$a := b, (c!n=m) \textrm{ ; vrai ?}$$}
+
+Though the text part of the formula has been typed
+via a command: \\
+\verb|\textrm{ ; vrai ?}|\\
+the french spacing doesn't apply here.
+
+\iflatex
+\subsection{The comma case}
+With \AllTeX{} standard (or with the special \FP\
+\verb|\regularmathcomma| the processing of comma is really specific.
+So, when you type in the following in display math mode:
+\regularmathcomma%
+\begin{verbatim}
+$$\textrm{La fonction}\ f(x,y)\
+ \textrm{ou le Vecteur}\ V(x, y, z)$$
+$$Total=1,255\,\$\ ou\
+ 1\,500,00\,\textrm{\euro}$$
+\end{verbatim}
+you will get thin spaces after the commas,
+no matter spaces are given or not in the \TeX\ source:
+$$\textrm{La fonction}\ f(x,y)\
+ \textrm{ou le Vecteur}\ V(x, y, z)$$
+$$Total=1,255\,\$\ ou\ 1\,500,00\,\textrm{\euro}$$
+(which shows a french typesetting error for
+the relative numbers).
+\frenchmathcomma
+\fi%
+
+\iflatex\french
+\newpage
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+Par contre avec \FP\ on n'obtient
+aucun espacement supplémentaire :
+$$\textrm{La fonction}\ f(x,y)\
+ \textrm{ou le Vecteur}\ V(x, y, z)$$
+$$Total=1,255\,\$\ ou\ 1\,500,00\,\textrm{\euro}$$
+cela est dû à l'option \verb|\frenchmathcomma| qui est
+activée par défaut avec \FP.
+Mais cela montre alors une anomalie de composition
+dans les listes $(x,y,z)$.
+
+Si l'on veut des espaces il faut alors les indiquer
+explicitement, comme cela est l'usage, plus
+généralement, en mode mathématique :
+\begin{versatim}
+$$\textrm{La fonction}\ f(x,\,y)\
+ \textrm{ou le Vecteur}\ V(x,\,y,\,z)$$
+$$Total=1,255\,\$\ ou\ 1\,500,00\,\textrm{\euro}$$
+\end{versatim}
+ce qui donnera :
+$$\textrm{La fonction}\ f(x,\,y)\
+ \textrm{ou le Vecteur}\ V(x,\,y,\,z)$$
+$$Total=1,255\,\$\ ou\ 1\,500,00\,\textrm{\euro}$$
+
+\medskip
+
+On notera que \FP\ obéit à l'extension \texttt{icomma}
+lorsque cette dernière est chargée avant \FP, mais
+seulement en français.
+
+
+\newpage\english
+With the \FP\ package there is no space added
+at all:
+\frenchmathcomma%
+$$\textrm{La fonction}\ f(x,y)\
+ \textrm{ou le Vecteur}\ V(x, y, z)$$
+$$Total=1,255\,\$\ ou\ 1\,500,00\,\textrm{\euro}$$
+this is due to the option \verb|\frenchmathcomma| which is
+defaultly activated in the \FP\ package.
+People will then distinguish a typesetting error
+in the lists $(x,y,z)$.
+
+If you want spaces you should then give them to \TeX\
+explicitely, as usually done, more generally in math mode:
+\begin{verbatim}
+$$\textrm{La fonction}\ f(x,\,y)\
+ \textrm{ou le Vecteur}\
+ V(x,\,y,\,z)$$
+$$Total=1,255\,\$\ ou\
+ 1\,500,00\,\textrm{\euro}$$
+\end{verbatim}
+which will give:
+$$\textrm{La fonction}\ f(x,\,y)\
+ \textrm{ou le Vecteur}\ V(x,\,y,\,z)$$
+$$Total=1,255\,\$\ ou\ 1\,500,00\,\textrm{\euro}$$
+\fi
+
+You should notice that \FP\ respect the choice of
+the \texttt{icomma} package when that last one is loaded before
+\FP; but it only applies in French.
+\french
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\newpage
+\section{Mon antislash est \mdseries\texttt{\backslash}}
+
+L'antislash n'existe pas dans toutes les polices en OT1.
+Que vous utilisiez \verb|\backslash| ou \verb|\textbackslash|
+vous obtiendrez la même chose, ainsi
+en romain droit on obtient :
+
+textbackslash=\textbackslash
+
+backslash=\backslash
+
+\noindent
+mais avec la fonte tt on obtient :
+
+{\tt
+textbackslash=\textbackslash
+
+backslash=\backslash
+}
+\NL2
+
+\section{Notes de bas de page}
+
+\iflatex\makeatletter\xdef\countSAVED{\the\c@footnote}\makeatother\fi
+\long\def\XX{%
+ Numérotation normale\footnote{Une note normalement numérotée.}.
+ {\setcounter{footnote}{0}
+ \renewcommand{\thefootnote}{\fnsymbol{footnote}}
+
+ Voici une note\footnote{Première note.}
+ puis une autre\footnote{Deuxième note.}
+ puis encore une autre\footnote{Troisième note.}
+ }}
+
+Nous comparons ici la composition des notes de bas de page
+(avec et sans \verb|\fnsymbol|)
+dans une langue et dans l'autre. Voyons ce que cela donne :
+
+\XX
+
+\newpage\english
+\section{My antislash is \mdseries\texttt{\textbackslash}}
+
+The antislash glyph doesn't exist in all OT1 font.
+Whatever you use, \verb|\backslash| or \verb|\textbackslash|
+you will obtain the same output, so
+in upright roman you obtain:
+
+textbackslash=\textbackslash
+
+backslash=$\backslash$
+
+\noindent
+but with the tt font you obtain:
+
+{\tt
+textbackslash=\textbackslash
+
+backslash=$\backslash$
+}
+
+\noindent
+but \verb|\backslash| is only available in
+math mode.
+
+\section{Compared footnotes}
+
+We compare the typesetting of footnotes
+(with and without \verb|\fnsymbol|)
+in one language versus the other. Let's look at them.
+
+\iflatex\makeatletter\c@footnote=\countSAVED\makeatother\fi
+
+\XX
+\iflatex\makeatletter\c@footnote=\countSAVED\makeatother\fi
+\addtocounter{footnote}{1}
+\NL1
+
+\french
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\newpage
+
+\section{\mdseries\texttt{\textbackslash guillemetsinarrays}}
+
+Avec \FP\ l'utilisation de guillemets à la
+française en mode texte dans les environnements \texttt{array} ou
+\texttt{eqnarray} est possible
+mais il est nécessaire de protéger les opérateurs
+inférieur (\texttt{<}) et supérieur (\texttt{>}) lorsqu'ils terminent
+une colonne. On rajoute alors une paire d'accolades ou \verb|\relax|
+pour terminer la macro-commande :
+\begin{verbatim}
+$
+\begin{array}{ccc}
+a & \inferieura &b\\
+a & \protect< &b\\
+a & b &<\\
+a & >{} &c\\
+<{}& « » &c\\
+<{}& \textrm{« text »}&c
+\end{array}
+$
+\end{verbatim}
+
+\noindent ce qui donne :
+
+$
+\begin{array}{ccc}
+a & \inferieura &b\\
+a & \protect< &b\\
+a & b &<\\
+a & >{} &c\\
+<{}& « » &c\\
+<{}& \textrm{« text »}&c
+\end{array}
+$
+
+\medskip
+On peut éviter d'avoir à modifier des tableaux existants et dans ce
+cas on codera \verb|\no|\-\verb|guil|\-\verb|lemetsinarrays| :
+
+\begin{verbatim}
+\noguillemetsinarrays
+$
+\begin{array}{ccc}
+a & \inferieura &b\\
+a & < &b\\
+a & b &<\\
+a & > &c\\
+< & « » &c\\
+< & \textrm{« text »}&c
+\end{array}
+$
+\end{verbatim}
+
+\noindent ce qui donne alors :
+
+\noguillemetsinarrays
+$
+\begin{array}{ccc}
+a & \inferieura &b\\
+a & < &b\\
+a & b &<\\
+a & > &c\\
+< & « » &c\\
+< & \textrm{« text »}&c
+\end{array}
+$
+\guillemetsinarrays% reset default
+
+\newpage\english
+\section{Guillemets in arrays}
+The \FP\ package allows people to print french guillemets
+in \texttt{array} environments (but in text mode). This usually breaks
+the code for \texttt{<} or \texttt{>} when they finish an array slot.
+So you should protect them; like this:
+\NL2
+
+\begin{verbatim}
+$
+\begin{array}{ccc}
+a & \inferieura &b\\
+a & \protect< &b\\
+a & b &<\\
+a & >{} &c\\
+<{}& \textrm{« text »}&c
+\end{array}
+$
+\end{verbatim}
+\NL1
+
+\noindent which gives:
+
+$
+\begin{array}{ccc}
+a & \inferieura &b\\
+a & \protect< &b\\
+a & b &<\\
+a & >{} &c\\
+<{}& \textrm{« text »}&c
+\end{array}
+$
+\NL1
+
+\medskip
+
+One can avoid to modify existing arrays and then just say
+\verb|\noguillemetsinarrays| but this command is not
+interesting in English because the problem doesn't exist
+at all:
+
+\begin{verbatim}
+$
+\begin{array}{ccc}
+a & \inferieura &b\\
+a & < &b\\
+a & b &<\\
+a & > &c\\
+< & \textrm{<< text >> &c
+\end{array}
+$
+\end{verbatim}
+\NL1
+
+\noindent gives the following result:
+
+\def\GOfrench{\let\ifCLA\iffalse}% To allow dmy and frencht to compile
+\ifx\ifCLA\undefined\expandafter\GOfrench\fi% without error.
+$
+\begin{array}{ccc}
+a & \inferieura &b\\
+a &
+\ifCLA\expandafter\protect\fi% To allow \ConstantLayout test file.
+< &b\\
+a & b &<\\
+a &
+\ifCLA\expandafter\protect\fi% To allow \ConstantLayout test file.
+> &c\\
+\ifCLA\expandafter\protect\fi% To allow \ConstantLayout test file.
+< & \textrm{<< text >>}&c
+\end{array}
+$
+\NL1
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\newpage\french
+
+\noguillemetsinarrays% for continuation of column
+Cette commande est aussi valable pour les environnements
+\texttt{eqnarray} :
+
+\begin{eqnarray}
+a & < &b\\
+a & > &c\\
+< & « » &c\\
+< & \textrm{« text »}&c
+\end{eqnarray}
+
+Pour terminer je rétablis la valeur par défaut :
+\verb|\guillemetsinarrays|
+\guillemetsinarrays
+et si j'essaye le même exemple j'obtiendrais
+le message : \\
+{\makeatletter\let\@PreserveBraces={% uggly hack for plain
+\vers|! Argument of \@PreserveBraces has an|\\
+\vers|extra }.|
+}% closing hack.
+
+\section{Guillemets verbatim}
+
+Avec l'option \verb|\nofrenchguillemets| il est possible
+--~si \FP\ travaille en codage de fonte du genre \texttt{T1}
+{\makeatletter\def\GOfrench{T1}\ifx\GOfrench\f@encoding\else
+(mais ca ne semble pas être le cas ici)\fi}%
+~--
+\nofrenchguillemets
+d'imprimer des guillemets 8-bits en verbatim : \verb|« »|.
+\frenchguillemets
+
+\iflatex
+\section{Environnement guillemets exclus}
+
+\begin{versatim}
+\guillemets{} Je me suis dit que :
+« avec l'option [...] les guillemets
+sont inopérants. \endguillemets{}
+\end{versatim}
+\SmsG
+\noeveryparguillemets
+\guillemets{}
+\verb|[\guillemets{}]| Je me suis dit que :
+« avec l'option \vers|\noevery|\-\vers|par|\-\vers|guillemets|
+on ne doit pas avoir un environnement qui se termine avant la fin
+du paragraphe. C'est pourquoi l'environnement \texttt{guillemets}
+n'est plus autorisé dans ce cadre.
+Désormais un message est émis et ces environnements
+guillemets sont inopérants. \endguillemets{}
+
+On note que \verb|\guillemets{}| n'a aucun effet visible
+et que le début de paragraphe est forcé aux premiers
+caractères-guillemets ouvrants qui suivent. Le
+\verb|\endguillemets{}| de fin d'environnement ferme cependant
+le paragraphe.
+
+\guillemets [\verb|\guillemets{}|]\!
+Ces environnements exclus dans le cadre de cette option
+ peuvent être de premier ou
+/\guillemets{} deuxième \endguillemets{}/ niveau
+comme ici (slashs). [\verb|\endguillemets{}|]
+\endguillemets{}
+
+\FmsG
+\frenchguillemets
+\fi%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\newpage\english
+Notice that with standard \LaTeX\ you obtain a message
+saying that \verb|\guillemotleft| and \verb|\guillemotright|
+are invalid in math mode when you try to use guillemets
+in an \texttt{array} environement.
+\NL{9}
+
+\smallskip
+
+\section{Verbatim Guillemets}
+
+The 8bit french guillemets chars printed within
+a verbatim environnement give here: \verb|« »|
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\newpage\french
+\section{Utilisation de la \mdseries\texttt{toc}}
+
+Il n'est pas prévu de pouvoir composer une table des matières ou un
+sommaire dans plus d'une langue.
+On notera que \verb|\sommaire| est un apport de \FP.
+
+\section{Fichiers {\mdseries\texttt{lof}} et {\mdseries\texttt{lot}}}
+On vérifie ici que la ponctuation française n'a pas créé
+d'ennui particulier.
+Nous avons laissé en blanc la figure \ref{x«:;!?»x}
+qui n'est qu'un simple
+test. De même le tableau \ref{y`«:;!?»'y} n'est là que pour
+créer une entrée dans la liste des tableaux.
+
+Le {\em caption} de la figure
+\ref{x«:;!?»x}
+ doit apparaître com\-me ceci :
+ {\it « essai » ; 2 cm ! pourquoi pas ?}
+\begin{figure}[h]
+\begin{center}
+\begin{tabular}{|c|}
+\hline
+\ \hfill \ \\%\vspace*{2cm}
+\ \\
+\ Peu importe la figure...\\
+\ \\
+\ \\
+\hline
+\end{tabular}
+\end{center}
+\caption{« essai » ; 2 cm ! pourquoi pas ?
+ \protect\\ (cf. aussi le tableau \ref{frenchdactylo})}
+\label{x«:;!?»x}
+\end{figure}
+
+Le {\em caption} du tableau
+\ref{y`«:;!?»'y}
+ doit être comme ceci :
+{\it ` « essai » ; 2 cm ! pourquoi pas ? '}
+\begin{table}[h]
+\caption{` « essai » ; 2 cm ! pourquoi pas ? '
+ \protect\\ (cf. aussi le tableau \ref{frenchdactylo})}
+\label{y`«:;!?»'y}
+
+\begin{center}
+\begin{tabular}{|c|}
+\hline
+\ \hfill \ \\
+\ \\
+\ Peu importe le tableau\footnote{Une note de tableau.}...\\
+\ \\
+\ \\
+\hline
+\end{tabular}
+\end{center}
+\end{table}
+
+On notera les libellés ({\sc Fig.} et {\sc Tab.}) plus confor\-mes à
+l'usage français. Ne pas oublier non plus que les titres de tableaux sont
+toujours placés, en français, avant ceux-ci contrairement aux figures.
+
+\FP\ ne prévoit pas que l'on puisse composer une
+partie des tables des figures (ou tableaux) en français et une autre
+en anglais par exemple. Les fichiers \verb|.lof| et \verb|.lot| seront
+donc composés entièrement dans la langue présélectionnée.
+
+\newpage\english
+\section{{\mdseries\texttt{toc}} file use}
+No facility is given to typeset the \verb|.toc| in various languages.
+
+Notice that \verb|\sommaire| is a new command brought up with this
+package.
+
+\section{{\mdseries\texttt{lof}} and {\mdseries\texttt{lot}} files}
+Same test in English just to verify that our french modifications
+does not affect the text in English.
+
+You will notice, of course, that the caption names are re-established
+to their original values ({\bf figure} and {\bf table}).
+
+The following figure (not referable) %(\ref{ex«:;!?»ex})
+caption must look like:
+« essai »; 2 cm! Why not?
+\begin{figure}[h]
+\begin{center}
+\begin{tabular}{|c|}
+\hline
+\ \hfill \ \\
+\ \\
+\ No matter how is the figure$\ldots{}$\\
+\ \\
+\ \\
+\hline
+\end{tabular}
+\end{center}
+\caption{« essai »; 2 cm! Why not?
+ \protect\\ (cf. also the table \ref{frenchdactylo})}
+%\label{ex«:;!?»ex}% produit un missing \endcsname
+\end{figure}
+
+The {\em caption} of the table (not referable) %\ref{ey`«:;!?»'ey}
+must look like:
+` « essai »; 2 cm! Why not? '
+\begin{table}[h]
+\begin{center}
+\begin{tabular}{|c|}
+\hline
+\ \hfill \ \\
+\ \\
+\ No matter how is the table\footnotemark% \footnotetext est perdu !
+ $\ldots{}$\\
+\ \\
+\ \\
+\hline
+\end{tabular}
+\end{center}
+\caption{` « essai »; 2 cm! Why not? '
+ \protect\\ (cf. also the table \ref{frenchdactylo})}
+%\label{ey`«:;!?»'ey}% generates missing \endcsname
+\end{table}\footnotetext{A note from a table.}
+\NL1
+
+Notice that we have here the standard caption names used by \LaTeX{}.
+
+You can see in the French column the specific labels and places of caption
+titles (under the figure but over the table).
+
+Don't try to compose \verb|.lof| and \verb|.lot| files in more than one
+language, it's not designed in this (stupid?) way!
+
+\french
+\begin{table*}[tb]
+\caption{` « essai » ; 2 cm ! pourquoi pas ? '
+ (cf. aussi le tableau \ref{frenchdactylo})}
+\label{2`«:;!?»'2}
+\begin{center}
+\begin{tabular}{|c|}
+\hline
+\ \hfill \ \\
+\ \\
+\ Peu importe le tableau sur deux colonnes%
+\footnote{Une note de tableau.}...\\
+\ \\
+\ \\
+\hline
+\end{tabular}
+\end{center}
+\end{table*}
+
+\newpage
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\section{Encore un tableau...}
+Mais celui-ci est sur deux colonnes si l'option
+\verb|twocolumn| est active. Vérifions simplement
+que le traitement est le même qu'en une seule
+colonne.
+
+Le {\em caption} du tableau
+\ref{2`«:;!?»'2}
+ doit être comme ceci :
+{\it ` « essai » ; 2 cm ! pourquoi pas ? '}
+
+\section{\sloppy Encore {\mdseries\texttt{\textbackslash labelsinmargin}}}
+
+À nouveau nous utilisons \verb|\labelsinmargin|
+\labelsinmargin
+pour vérifier son fonctionnement dans une figure
+et un titre de figure
+
+\begin{figure}[h]
+\label{label de la figure}
+\begin{center}
+\begin{tabular}{|c|}
+\hline
+\ \hfill \ \\
+\ \\
+\ Peu importe la figure...\\
+\ \\
+\ \\
+\hline
+\end{tabular}
+\end{center}
+\caption{le titre de la figure avec label
+\label{label du titre fig.}}
+\end{figure}
+
+Même test avec un tableau :
+\begin{table}[h]
+\label{label du tableau}
+\caption{le titre du tableau avec label\label{label du titre tab.}}
+\begin{center}
+\begin{tabular}{|c|}
+\hline
+\ \hfill \ \\
+\ \\
+\ Peu importe le tableau...\\
+\ \\
+\ \\
+\hline
+\end{tabular}
+\end{center}
+\end{table}
+
+\sloppypar{
+Désactivons définitivement l'option
+avec \verb!\nolabelsinmargin!.
+}
+\nolabelsinmargin
+
+\newpage\english
+\NL8
+\section{{\mdseries\texttt{\textbackslash labelsinmargin}} again}
+
+Again we test \verb|\labelsinmargin|
+\labelsinmargin
+to verify that it is running within a figure
+and in a figure's caption.
+
+\begin{figure}[h]
+\label{label in a figure}
+\begin{center}
+\begin{tabular}{|c|}
+\hline
+\ \hfill \ \\
+\ \\
+\ No matter the figure$\ldots{}$\\
+\ \\
+\ \\
+\hline
+\end{tabular}
+\end{center}
+\caption{title with a label\label{label in fig. caption}}
+\end{figure}
+
+Same test with a table:
+\begin{table}[h]
+\label{label in a table}
+\begin{center}
+\begin{tabular}{|c|}
+\hline
+\ \hfill \ \\
+\ \\
+\ No matter the table$\ldots{}$\\
+\ \\
+\ \\
+\hline
+\end{tabular}
+\end{center}
+\caption{title with a label\label{label in a tab. caption}}
+\end{table}
+
+Disactivate definitely the option with \verb!\nolabelsinmargin!.
+\nolabelsinmargin
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\newpage\french
+
+\section{Notes dans \mdseries\texttt{\textbackslash caption}}
+
+Si une note dans un tableau doit être imprimée à la fin du
+tableau, une note dans un titre de tableau doit être
+imprimée en fin de page. Malheureusement \LaTeX{} perd
+le texte des notes dans les environnements {\tt figure} et
+{\tt table}. L'ex\-ten\-sion \FP\ prévient l'utilisateur
+que le texte doit être réinséré à l'aide de \verb|\footnotetext|.
+
+\begin{table}[h]
+
+\SmsG%
+\caption[Essai de footnote dans un caption de tableau]
+ {Légende\protect\footnote{Une note de bas de page.}}
+\FmsG%
+
+\begin{center}
+\begin{tabular}{|c|}
+\hline
+\ \hfill \ \\
+%\ \\
+\ Peu importe le tableau...\\
+%\ \\
+\ \\
+\hline
+\end{tabular}
+\end{center}
+\end{table}
+\footnotetext{Une note de bas de page.}
+
+\section{{\mdseries\texttt{\textbackslash caption}} vide}
+
+\begin{table}[h]
+\caption{}
+\begin{center}
+\begin{tabular}{|c|}
+\hline
+\ \hfill \ \\
+%\ \\
+\ Tableau sans légende\\
+%\ \\
+\ \\
+\hline
+\end{tabular}
+\end{center}
+\end{table}
+
+\section{\mdseries\texttt{\textbackslash nombre}}
+
+Les nombres en français sont imprimés correctement lorsque l'on
+utilise \verb|\nombre|, ainsi :
+
+\begin{verbatim}
+\nombre{123 456,123 456}
+\end{verbatim}
+imprime \nombre{123 456,123 456} au lieu de la forme habituelle
+ {\regularmathcomma $123 456,123 456$}
+ou \mbox{123 456,123 456} suivant que l'on est en mode math
+ou en mode texte.
+
+On y voit des espaces fines à chaque millier et (normalement)
+une virgule sans espace supplémentaire comme cela se produit
+en mode math avec \TeX{} standard.
+
+\section{Autre chose ?}
+Non !
+
+[espace libre utilisable]
+
+\newpage\english
+
+\section{Notes within \mdseries\texttt{\textbackslash caption}}
+
+Normally in French we print table's footnotes at the end of the table
+but it can't be the case when a footnote is called from a caption title.
+But unfortunately footnote's text is lost when inside a \LaTeX{} figure
+or table environnement, as shown here.
+Thus {\tt french.sty} warn the user with the appropriate message, but
+in English nothing is done.
+
+\begin{table}[h]
+\begin{center}
+\begin{tabular}{|c|}
+\hline
+\ \hfill \ \\
+%\ \\
+\ No matter the table$\ldots{}$\\
+%\ \\
+\ \\
+\hline
+\end{tabular}
+\end{center}
+\caption[footnote try within a table's caption]
+ {Caption title\protect\footnote{A footnote page.}}
+
+\end{table}
+%\footnotetext{A footnote page.}
+
+\section{Empty \mdseries\texttt{\textbackslash caption}}
+
+\begin{table}[h]
+\begin{center}
+\begin{tabular}{|c|}
+\hline
+\ \hfill \ \\
+%\ \\
+\ Empty caption\\
+%\ \\
+\ \\
+\hline
+\end{tabular}
+\end{center}
+\caption{}
+\end{table}
+
+\section{\mdseries\texttt{\textbackslash nombre}}
+
+French number should be correctly printed using
+\verb|\nombre|, so :
+
+\begin{verbatim}
+\nombre{123 456,123 456}
+\end{verbatim}
+should not print as usual
+$123 456,123 456$ nor \mbox{123 456,123 456}
+(depending you are in math or in text mode)
+but $123\,456{,}123\,456$.
+\NL1
+
+We see here thin spaces between each thousand part and no
+(usual) space after the comma (as it is in math with standard
+\TeX{}).
+
+\smallskip
+
+\section{Anything else?}
+
+No!
+
+\noindent
+[free space to reuse]
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\newpage\french
+\section{Le 1\protect\fup{er} paragraphe}
+Notez bien que le 1\fup{er} paragraphe d'une section
+ne commence jamais au fer à gauche
+en français, comme vous le voyez ici.
+
+Le deuxième paragraphe démarre comme le premier...\footnote{%
+La typographie du titre de section (1\fup{er}) est à noter ;
+ {\tt mysmaller.sty} a été utilisé
+à la compilation de {\tt frenchrf} avec \LaTeX{}.
+Il existe aussi l'extension {\tt relsize} qui fonctionne
+bien avec \FP.}
+
+\section{Test des listes}\label{listes}
+
+Voici un test d'énumération (\verb|itemize|) de \LaTeX{} :
+
+\begin{itemize}
+\item liste de niveau 1 ;
+ \begin{itemize}
+ \item incluant un niveau 2,
+ \begin{itemize}
+ \item mais aussi un niveau 3,
+ \item peu utilisé ;
+ \end{itemize}
+ \item le niveau 2 se terminant ici ;
+ \end{itemize}
+\item suite de la liste de niveau 1 ;
+\item dernier élément de niveau 1.
+\end{itemize}
+
+On remarquera les deux choses suivantes :
+\primo les marqueurs sont identiques quel que soit
+le niveau et \secundo aucun élément ne commence par une majuscule.
+\NL2
+
+\section{Définition de langue}
+
+Cette partie n'a plus de sens (R. J.).
+%On peut se définir une langue comme par exemple le kathmandouais par : \\%
+%\verb|\NouveauLangage[2]|\verb|{kathmandouais}|\\%
+%\global% for TeX--XeT tests
+%\def\kathmandouaisTeXmods{\empty}
+% \NouveauLangage[2]{kathmandouais} %
+%et ensuite on peut écrire kathmandouais en tapant :
+%\verb|\kathmandouais|
+%\SmsG%
+%\kathmandouais%Message a ignorer si vous n'avez que 2 langues definies.
+%bla... blabla... bla%
+%\typeout{I AM WRITING KATMANDOUAIS, Ye\string! (language=\the\language)}%
+%\FmsG%
+%\footnote{Mais bien entendu les césures ne seront pas bonnes car elles
+%seront faites à partir d'un language existant. On notera la typographie
+%du numéro de cette note saisie en {\em Katmandouais}.}
+% et revenir au français par
+%\verb|\french|\french%
+%\footnote{Si le point qui suit n'est pas accolé au mot {\tt french}
+%alors cela signifie que des {\em blank space} traînent dans
+%\FP.}.
+%S'il n'y a pas de commande \verb|\kathmandouaisTeXmods| de définie
+%rien ne se passera
+%vraiment, cela sera équivalent à \verb|\relax|, seul un message
+%d'avertissement sera émis.
+
+\newpage\english
+\section{First paragraph}
+In English each paragraph is indented except the first one of a section,
+subsection, etc. as you can see in this example.
+
+Subsequent paragraphs start indented$\ldots{}$\NL1
+
+\section{Itemized lists}
+Here is the same french \verb|itemize| list:\NL1
+
+\begin{itemize}
+\item liste de niveau 1;
+ \begin{itemize}
+ \item incluant un niveau 2,
+ \begin{itemize}
+ \item mais aussi un niveau 3,
+ \item peu utilisé ;
+ \end{itemize}
+ \item le niveau 2 se terminant ici ;
+ \end{itemize}
+\item suite de la liste de niveau 1 ;
+\item dernier élément de niveau 1.
+\end{itemize}
+
+You can compare english and french lists.
+Notice firstly that item markers are identical at each level and secondly
+that each item never starts with an uppercase letter.
+
+\section{Create a language}
+
+This creation is now obsolete (R. J.).
+%There is a new control sequence to allow {\em the creation} of new language:\\
+%\verb|\NouveauLangage[n]{language}|\\
+%This command is in fact used internally but it can be also used elsewhere
+%to define a new language which rules will be set by:\\
+% \verb|\<language>TeXmods| (if defined.) The internal language number \verb|n|
+%tells \TeX{} what hyphenation table is to use among those defined at
+%\verb|INITEX| time.
+
+\begin{table*}[th]% pour la page suivante
+\begin{center}
+\fbox{Attention : psfig est périmé ; il n'est utilisé ici qu'à des fins de test. (B. G.)}\\[2ex]
+\fbox{Puisque psfig est périmé utilisons graphicx et epstopdf (R. J.)}
+\end{center}
+\end{table*}
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\newpage\french
+\section{Caractères actifs}
+Quelques jeux de macros doivent parfois être chargés
+directement dans le document
+et utilisent les caractères {\em actifs\/} de \FP. Il y
+a alors conflit ouvert. Plusieurs solutions sont offertes, soit utiliser
+l'ordre : \\
+\verb| \originalinput{fichier}|\\
+ soit :
+\begin{verbatim}
+ \begin{nonfrench}
+ ... macros-instructions...
+ \end{nonfrench}
+\end{verbatim}
+%Nous avons adopté la deuxième solution ici :
+%
+%\tthyphenation
+%\begin{versatim}
+%Saluons au passage Trevor Darrell, l'auteur de \verb|psfig| :
+% \begin{nonfrench}
+% \let\psfig\undefined
+% \input mypsfig.sty
+% \begin{center}
+% \ \hbox{\vbox{\psfig{figure=%
+% myfigure.ps,height=1in}}}\
+% \end{center}
+% \end{nonfrench}
+%\end{versatim}
+
+%Saluons au passage Trevor Darrell, l'auteur de \verb|psfig| :
+%\begin{nonfrench}
+% \let\psfig\undefined
+% \input mypsfig.sty
+% \begin{center}
+% \ \hbox{\vbox{\psfig{figure=%
+% myfigure.ps,height=1in}}}\
+% \end{center}
+%\end{nonfrench}
+Mais attention n'utilisez pas en français un code que
+vous auriez chargé
+en anglais ou réciproquement !
+
+
+L'extension \FP\ n'est plus compatible avec \verb|psfig|.
+Mais pour montrer quand même l'image que Bernard Gaule voulait placer ici, la voici
+ayant sous Linux remplacé
+\texttt{myfigure.ps} en son expression encapsulée \texttt{myfigure.eps}
+par « \texttt{convert myfigure.ps myfigure.eps} ».\NL1
+%L'ordre \texttt{convert} est une commande Linux.
+%En voici l'exemple -- sans utiliser \verb|nonfrench| -- avec
+%\verb|\psdraft| :
+% \let\psfig\undefined
+% \input mypsfig.sty
+% \psdraft
+
+Saluons au passage Trevor Darrell, l'auteur de \verb|psfig| : \begin{center}
+ \ \hbox{\vbox{\includegraphics[height=1in]{myfigure.eps}}}
+%{\psfig{figure=%
+% myfigure.ps,height=1in}}}\
+% \ \hbox{\vbox{\psfig{figure=%
+% myfigure.ps,height=1in}}}\
+\NL1
+ \end{center}
+Voici le code modifié :
+\begin{verbatim}
+% \input mypsfig.sty
+% \psdraft
+ \begin{center}
+ \ \hbox{\vbox{\includegraphics%
+ [height=1in]{myfigure.pdf}}}
+% \ \hbox{\vbox{\psfig{figure=%
+% myfigure.ps,height=1in}}}\
+ \end{center}
+\end{verbatim}
+
+\NL1
+Comme vous le voyez l'appel à \texttt{mypsfig.sty} n'est plus nécessaire.
+Mais nous avions chargé \texttt{graphicx} et \texttt{epstopdf} dans les styles chargés à la base.
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\newpage\english
+\section{Active characters}
+Codes that were designed for English might bring problems when used with
+\FP\ because few characters are {\em activated\/}.
+Few solutions are offered, either:\\
+\verb| \originalinput{file}|
+
+or:
+\begin{verbatim}
+ \begin{nonfrench}
+ ... macros-instructions...
+ \end{nonfrench}
+\end{verbatim}
+%We used here the second solution:
+%\begin{verbatim}
+%Saluons au passage Trevor Darrell,
+% l'auteur de \verb|psfig| :
+% \begin{nonfrench}
+% \let\psfig\undefined
+% \input mypsfig.sty
+% \begin{center}
+% \ \hbox{\vbox{\psfig{figure=%
+% myfigure.ps,height=1in}}}\
+% \end{center}
+% \end{nonfrench}
+%\end{verbatim}
+%
+%\notthyphenation
+%%\begin{nonfrench}% inutile d'obtenir un message de warning
+% \let\psfig\undefined
+% \input mypsfig.sty
+But be carefull, don't use in French a code that was loaded in English
+or reciprocally!
+
+The \FP\ extension is no more compatible with \verb|psfig|.
+
+But in order to show the image that Bernard Gaule had in mind to place here, you can see it
+after having converted with the Linux command \texttt{convert myfigure.ps myfigure.eps}
+his original \texttt{myfigure.ps} in an encapsulated version \texttt{myfigure.eps}.
+
+%\NL1
+Saluons au passage Trevor Darrell, %
+ l'auteur de \verb|psfig| :
+ \begin{center}
+ \ \hbox{\vbox{\includegraphics[height=1in]{myfigure.eps}}}
+% \ \hbox{\vbox{\psfig{figure=%
+% myfigure.ps,height=1in}}}\
+ \end{center}
+\NL1
+%%\end{nonfrench}
+Here is the modified code:
+\begin{verbatim}
+% \input mypsfig.sty
+% \psdraft
+ \begin{center}
+ \ \hbox{\vbox{\includegraphics%
+ [height=1in]{myfigure.eps}}}
+% \ \hbox{\vbox{\psfig{figure=%
+% myfigure.ps,height=1in}}}\
+ \end{center}
+\end{verbatim}
+As you can see, a call to \texttt{mypsfig.sty} is no more necessary.
+But \texttt{graphicx} and \texttt{epstopdf} have been loaded in the main module.
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\newpage\french
+
+\section{Abréviations}
+\abbreviations
+Si on demande \verb|\abbreviations| alors on a
+accès à un fichier d'abré\-via\-tions
+typo\-graphi\-ques françaises.
+Ainsi je saisis \verb|"monseigneur"| et j'imprime "monseigneur"\!.
+De même, avec ML\TeX{} je saisis \verb|"deuxième"|
+(vérifiez dans le
+source que ce mot est bien codé en 8bits) et j'imprime "deuxième"\!%
+. %alors que le fichier d'abréviations contient \verb|"deuxi\`|\verb|eme"|.
+Ainsi il n'est plus vraiment indispensable de se rappeler que
+l'abréviation de madame est "madame" (et maître : "maître"\!).
+
+Lorsqu'un mot ne figure pas dans le fichier d'abréviations, il est alors
+imprimé tel que. Ainsi \verb|"GUTenberg"| imprimera
+\SmsG%
+"GUTenberg".
+\FmsG%
+ Mais n'oubliez jamais le double guillemet fermant sinon vous obtiendrez
+ un message du genre :
+\begin{versatim}
+ Paragraph ended before \AbbrevName was complete.
+\end{versatim}
+
+Je peux aussi donner mon fichier personnel d'abréviations en codant :\\
+\verb|\abreviations[mon_fichier_personnel]|
+
+On retire ces possibilités par la commande \verb|\noabbreviations|.
+N'oublions pas que le caractère \verb|"| sert normalement en \TeX{}
+comme en \LaTeX{} à exprimer les nombres en hexadécimal.
+
+\section{Monsieur s'abrège "Monsieur"}
+
+Que je saisisse \verb|"Monsieur"| ou \verb|"monsieur"|
+j'obtiens la même abréviation : "Monsieur" ou "monsieur", respectivement.
+
+Il n'en est pas toujours de même... ainsi lorsqu'on saisit
+\verb|"Numéro"| et \verb|"numéro"| on obtient respectivement :
+"Numéro" et "numéro", car \verb|Numéro|
+est une entrée dans le fichier des abbréviations où il est écrit
+\verb|{Numéro}|.
+
+Il est désormais possible de placer une abréviation dans un titre
+de chapitre ou de section, comme le titre de cette section le
+démontre ; nous avons saisi :
+\begin{verbatim}
+\section{Monsieur s'abrège "Monsieur"}
+\end{verbatim}
+
+\noabbreviations
+
+\newpage\english
+
+\section{Abbreviations}
+The abbreviation facility offered in \FP\ is based on
+an abbreviations file. When requested by \verb|\abbreviations| one
+may call any \verb|"abbreviation"|. If this abbreviation is found in the
+file it will be replaced by the typographic expansion, if not it will
+be printed as is.\NL2
+
+But never forget the ending double quotes otherwise you will obtain the
+terrible message:
+{\tt Paragraph} {\tt ended before} \texttt{\textbackslash AbbrevName}
+{\tt was complete.}
+\NL4
+
+You can have your own abbreviations file by calling:
+\verb|\abreviations[my_file]|.\NL1
+
+Saying \verb|\noabbreviations| this facility is lost. Remember that the
+char \verb|"| is used normally in \TeX{} as in \LaTeX{} to start an
+hexadecimal number.
+
+But used in English, \verb|"monsieur"| will give "monsieur"%
+\footnote{Notice the quoting!}.
+
+\newpage\french
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\section{Autres macros utiles}
+\verb|\fsc{KnUtH}| permet d'imprimer \fsc{KnUtH} et \verb|\lsc{SnCf}|
+donne \lsc{SnCf}. Cela doit aussi marcher si le mot commence par une
+accentuation comme ici avec le mot \fsc{\'% a laisser tq a cause du 7bits
+epinal} et même quand cette accentuation est plus loin dans
+le mot comme ici dans \fsc{ANDR\'% a laisser tq a cause du 7bits
+E}.
+
+\bigskip
+Voici une note%
+\footnote{La note.\label{NOTE}}
+de bas de page commandée par \verb|\footnote{La note.\label{NOTE}}|.
+Je peux faire à nouveau appel à cette note\refmark{NOTE}
+ par l'ordre \verb|\refmark{NOTE}|.
+
+\bigskip
+Par analogie avec l'environnement \verb|verse| :
+\begin{verse}
+%\moretolerance % pour eviter un leger overfull hbox
+1\iere{} ligne : cette ligne est bien trop longue, elle doit être coupée autant de fois que nécessaire...\\
+2\ieme{} ligne : le test terrible de...\\%
+3\ieme{} ligne : `ceci est le test des quotes'\\
+\end{verse}
+\tthyphenation
+voici le même test (sans \verb|\\|)
+avec l'environnement \vers|versatim| qui est
+un environnement \vers|verba|\-\vers|tim| composé
+avec des coupures de lignes
+comme l'est l'environnement \verb|verse| et dont les {\em quotes} peuvent
+être imprimées avec des accents si on précise
+\vers|\noenglishquote| :
+\noenglishquote
+\begin{versatim}
+1\iere{} ligne : cette ligne est bien trop longue, elle doit être coupée autant de fois que nécessaire...
+2\ieme{} ligne : le test terrible de \end{document}
+3\ieme{} ligne : `ceci est le test des quotes'
+\end{versatim}
+\englishquote
+
+\allowuchyph
+Et maintenant voici l'ordre réduit \verb|\vers| qui
+s'utilise comme \verb|\verb| et doit permettre de couper une
+longue chaîne de caractères \texttt{ver\-batim}. Celle-ci
+sera coupée par défaut entre les mots (\vers|\notthyphe|\-\vers|nation|)
+mais pourra l'être à l'intérieur des mots si on précise
+\tthyphenation \vers|\tthyphe|\-\vers|nation| comme ici : «
+\vers|Longue Chaîne De Caractères À Couper Absolument| ».
+Les mots commençant en majuscule ne pourront être coupés
+que si \vers|\uchyph=1|, valeur par défaut dans \FP\
+(\vers|\|\vers|allow|\-\vers|uchyph|) qui est utilisée pour cette
+partie uniquement.
+
+\subsection*{Test de {\mdseries\texttt{\textbackslash fsc}}
+(\fsc{French CAPS})}
+Ce paragraphe teste la protection de certaines macro-instructions.
+
+\disallowuchyph\notthyphenation
+\newpage\english
+\section{Other useful macros}
+French patronymic names are printed in small capitals with the first
+letter in uppercase. That is done with the \verb|\fsc| macro.
+Another macro \verb|\lsc| is available to print all the word(s) in small
+capitals, specially usefull for trademark or companies names.
+
+\LaTeX{} is at the current time unable to print a \verb|\ref| as
+a footnotemark, the command \verb|\refmark| is able to do that.
+
+Also, \LaTeX{} doesn't offer any {\tt verbatim} style able to
+hyphenate lines. \FP\ is able to do this with the
+environment {\tt versatim} or the \texttt{\textbackslash vers} order within a
+line.
+
+These environments allow to replace the {\tt tt} quoting
+({\tt ` '}) by more realistic ones ({\tt\`{ } \'{ }}) with
+the order \texttt{\textbackslash noenglishquote}. Of course this environment
+produce nothing different from the standard \verb|verbatim| when
+used in \verb|\english|:
+{\overfullrule=5pt
+
+\hfuzz=30pt
+\begin{versatim}
+1\iere{} ligne : cette ligne est bien trop
+2\ieme{} ligne : le test terrible de...
+3\ieme{} ligne : `ceci est le test des...
+\end{versatim}
+
+\SmsG%
+
+And now this a test of a long string within a \verb|\vers|:
+``\vers|Longue Chaîne De Caractères À Couper A|
+This string would be hyphenated only if someone said
+\verb|\tthyphenation| previously.
+}
+
+\FmsG%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\newpage\french
+\section{Accents et {\mdseries\tt tabbing}}
+\FP\ apporte une solution pour pouvoir introduire
+des lettres accentuées dans un environnement \vers|tabbing| lorsque
+le source \TeX{} est en 7bits ou utilise Ml\TeX{}
+\footnote{%
+Cette option est aussi utile désormais en T1 car les lettres accentuées
+sont traduites avec \FP, de façon interne, en 7-bits à la \TeX.
+ }%
+ ; c'est l'option par défaut
+\vers|\|\vers|tabbing|\-\vers|accents|\tabbingaccents. L'exem\-ple :
+\begin{tabbing}
+Les TYPES : \= Les matieres \= Les genres \kill
+Bidon : \> d'huile \>$A'=B''$\` normal \\
+Caisse : \> \`%
+ a outils \> rustique \\
+Toile : \> \a`%
+ a matelas \> confort
+\end{tabbing}
+\notabbingaccents
+doit s'imprimer ainsi :
+\begin{tabbing}
+Les TYPES : \= Les matieres \= Les genres \kill
+Bidon : \> d'huile \>$A'=B''$\` normal \\
+Caisse : \>\a`a outils \> rustique \\
+Toile : \>\a`a matelas \> confort \\
+\end{tabbing}
+\vspace*{-0.5\baselineskip}
+Nous l'avions saisi comme suit :
+\begin{versatim}
+\begin{tabbing}
+Les TYPES : \= Les matieres \= Les genres \kill
+Bidon : \> d'huile \>$A'=B''$\` normal \\
+Caisse : \> \`%
+ a outils \> rustique \\
+Toile : \> \a`%
+ a matelas \> confort
+\end{tabbing}
+\end{versatim}
+
+\section{Figurettes}
+Le style \verb|french| propose un environnement spécial, appelé
+\verb|figurette|,
+ pour placer les figures à l'enfroit exact où
+ces figures se présentent
+dans le texte. Cela est particulièrement utile pour des petites figures,
+domaine où \LaTeX{} n'est pas adapté en standard.
+Pour réaliser ceci :
+ \begin{figurette}
+ \center\fbox{essai}\endcenter% rajoute pour plain TeX
+ \caption{Ceci est une figurette}
+ \label{figurette}
+ \end{figurette}
+Nous avons écrit :
+\begin{verbatim}
+ \begin{figurette}
+ \center\fbox{essai}
+ \caption{Ceci est une figurette}
+ \label{figurette}
+ \end{figurette}
+\end{verbatim}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\newpage\english
+\section{Diacritics \& {\mdseries\tt tabbing}}
+There is no way in a \LaTeX{} \texttt{tabbing} to put diacritics on letters
+as we use them usually. Here is how is printed the {\tt tabbing}
+you can find in the french part:
+
+\begin{tabbing}
+Les TYPES : \= Les matieres \= Les genres \kill
+Bidon : \> d'huile \>$A'=B''$\` normal \\
+Caisse : \> \`%
+ a outils \> rustique \\
+Toile : \> \`%
+ a matelas \> confort
+\end{tabbing}
+
+and that would normally be printed as follows:
+
+\begin{tabbing}
+Les TYPES : \= Les matieres \= Les genres \kill
+Bidon : \> d'huile \>$A'=B''$\` normal \\
+Caisse : \>\a`a outils \> rustique \\
+Toile : \>\a`a matelas \> confort \\
+\end{tabbing}
+
+ \begin{figurette}
+ \center\fbox{essai}\endcenter% rajoute pour plain TeX
+ \caption{Originally a figurette}
+ \label{engfig}
+ \end{figurette}
+\NL{4}
+
+\section{Little figures}
+
+\FP\ offers a special environment called
+\verb|figurette| which allows to put little figures EXACTLY
+where they appear in the text. This is a lack in the present
+versions of \LaTeX{}. In English the environment \verb|figurette|
+is replaced by an environment \verb|figure[h]|; look at figure
+\ref{engfig} we tried to put here without success and we
+typed like this:
+
+\begin{verbatim}
+ \begin{figurette}
+ \center\fbox{essai}
+ \caption{Originally a figurette}
+ \label{engfig}
+ \end{figurette}
+\end{verbatim}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\newpage\french
+\ifx\drapeaufg\undefined\else
+\section{Composition \protect\linebreak en drapeau}
+À gauche on trouve une composition justifiée standard \LaTeX.
+Dessous, une composition avec l'environnement \texttt{drapeaufg}
+proposé par l'extension \FP, il s'agit d'une composition
+\emph{en drapeau, au fer} à gauche. À droite, il s'agit aussi d'une
+composition \emph{en drapeau, au fer} à gauche mais cette fois-ci avec
+l'environnement \texttt{drapeaufgIN}, sans coupure de mots, comme cela
+est recommandé par l'imprimerie nationale.
+
+\subsection{Tests ordinaires}
+\textbf{\large Texte justifié de référence}
+
+\medskip
+\def\GOfrench{\noindent{\fboxsep 0pt\fboxrule 0.2pt\fbox{\advance\hsize by -2pt
+ \hbox{\vbox{\noindent
+« Par ailleurs, les lignes n'occupant pas toute la
+ justification (titres ou légendes le plus souvent) peuvent être
+ \emph{centrées} ou se présenter alignées verticalement
+ par la gauche sur la
+ marge de gauche de la page, ou \XX
+ verticalement par la droite sur la marge de
+ droite de la page. On dira alors qu'elles sont composées
+\emph{en drapeau, au fer} à gauche ou \emph{en drapeau, au fer} à droite.
+Dans ce type de composition, les coupures de mots sont proscrites et les
+rejets à la ligne devront obéir à une certaine logique souvent dictée par le
+sens. Ainsi on ne séparera pas l'article du substantif, le pronom personnel
+sujet de son verbe, l'adjectif numéral du nom auquel il se \XX
+rapporte, \etc. »
+(règles Imprimerie Nationale, p~153)%
+}}\hss}}}
+
+\let\XX\relax
+\GOfrench
+
+\hbox{}
+
+\textbf{\large Drapeau, au fer à gauche}
+
+\medskip
+\begin{drapeaufg}
+\GOfrench
+\end{drapeaufg}
+
+\newpage
+\enlargethispage{20pt}\hbox{}\smallskip
+
+\hbox{}\smallskip\NL5
+Dans ce dernier cas, des débordements dans la marge droite
+sont possibles ; ils sont à traiter
+au cas par cas par de simples coupures de lignes placées aux endroits
+recommandés par l'imprimerie nationale (selon texte encadré). Le
+dernier texte est ainsi corrigé.\NL3\vspace*{-2.5pt}
+
+\textbf{\large Drapeau « fg », selon IN}
+
+\medskip
+\begin{drapeaufgIN}
+\GOfrench
+\end{drapeaufgIN}
+
+\medskip
+\textbf{\large Drapeau « fg IN », corrigé}
+
+\medskip
+\let\XX\\
+\begin{drapeaufgIN}
+\GOfrench
+\end{drapeaufgIN}
+
+\newpage
+\subsection{Tests en drapeau « fg », aux limites}
+Voici deux tests aux limites de la composition
+\emph{en drapeau, au fer} à gauche, sur une colonne
+étroite (2cm) tout d'abord avec l'environnement
+\texttt{drapeaufg} et ensuite avec la recommandation
+de l'imprimerie nationale appliquée à
+\FP\ (ou interprètée par l'environnement \texttt{drapeaufgIN}).
+
+Les coefficients de laideur (\texttt{badness})
+acceptés sont élevés, c'est la raison pour laquelle
+aucun message d'\texttt{underfull hbox}
+(tout comme celui d'\texttt{overfull})
+n'est émis dans les deux cas
+ci-dessous.
+
+\bigskip
+
+\def\temp{\noindent{\fboxsep 0pt\fboxrule 0.2pt\fbox{\advance\hsize by -2pt
+ \hbox{\vbox{\noindent
+ instit instits
+institut instituts
+institution institutions
+institutionnel institutionnels
+institutionnelle institutionnelles
+institutionnellement
+constitutionnellement
+inconstitutionnellement
+}}\hss}}}
+
+\let\XX\relax
+\parbox{2cm}{%
+\begin{drapeaufg}
+\hsize=2cm
+\temp
+\end{drapeaufg}
+}
+\hspace*{0.5cm}
+\parbox{2cm}{%
+\begin{drapeaufgIN}
+\hsize=2cm
+\temp
+\end{drapeaufgIN}
+}
+
+\newpage
+\subsection{Tests en drapeau « fd », aux limites}
+Nous effectuons ici les mêmes test mais avec
+les environnements \texttt{drapeaufd} (fer à droite)
+et \texttt{drapeaufdIN} (selon imprimerie nationale).
+En fait, l'environnement
+\texttt{drapeaufd} est tout simplement
+un \texttt{raggedleft}.
+\NL{9}
+
+\let\XX\relax
+\parbox{2cm}{%
+\begin{drapeaufd}
+%\mbox{Avec \the\rightskip :}
+\hsize=2cm
+\temp
+\end{drapeaufd}
+}
+\hspace*{0.5cm}
+\parbox{2cm}{%
+\begin{drapeaufdIN}
+%\mbox{Avec \the\rightskip :}
+\hsize=2cm
+\temp
+\end{drapeaufdIN}
+}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\newpage
+\Large
+\let\XX\relax
+\subsection{Test « fd » classique}
+
+\begin{drapeaufd}
+\GOfrench
+\end{drapeaufd}
+
+\normalsize\bigskip
+
+L'½il aiguisé sera troublé car
+les deux colonnes ne sont pas alignées horizontalement ;
+cela est dû à la différence de matériel à composer, au total,
+dans chacune des deux colonnes.
+
+\vfill
+
+\newpage
+\Large
+\subsection{Test « fd » IN}
+\begin{drapeaufdIN}
+\GOfrench
+\end{drapeaufdIN}
+
+\normalsize\bigskip
+
+Quelque soit le corps de la police (dans les limites
+classiques de \LaTeX{}), avec cette largeur de colonne,
+on n'obtient pas de différence
+de mise en page entre les deux environnements. Les règles
+de l'imprimerie nationale sont donc plus largement appliquées
+dans ce cas.
+
+\vfill
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\onecolumn
+\newpage\french
+\hbox{}
+\vfill
+\centerline{\Large Page intentionnellement laissée blanche}
+\vfill
+\twocolumn
+
+\fi% on a saute si drapeaufg est inconnu (frencht)
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\newpage\french
+\section{Lettrines}
+\SmsG% lettrine reduite a 1 seule lettre !
+Voici le test des lettrines proposées en mode semi-automatique
+avec \FP\ :
+
+\bigskip
+\verb| \flettrine{Quoi ?}|
+\flettrine{Quoi ?} {Paris}
+{sera toujours Paris}. Ceci est une lettrine obtenue
+grâce au collègue allemand E.~{\sc Scha\-lück} et
+ aux différents codes qu'il
+m'a donnés.
+
+« Ici démarre une lettrine dans une citation.
+
+\bigskip
+\lettrine{Paris}
+{sera toujours Paris}. Ceci est une lettrine obtenue
+grâce au collègue allemand E.~{\sc Scha\-lück} et
+ aux différents codes qu'il
+m'a donnés.
+
+\bigskip
+\flettrine{Paris}
+{sera toujours Paris}. Ceci est une lettrine obtenue
+grâce au collègue allemand E.~{\sc Scha\-lück} et
+ aux différents codes qu'il
+m'a donnés.
+
+et la citation se termine ici. »
+
+\bigskip
+\verb| \font\lettrinefont=cmr17 scaled|\\
+{\font\lettrinefont=cmr17 scaled \magstep5
+\verb| \magstep5\lettrine[`` {Paris} '']|
+\lettrine[`` {Paris} '']
+{sera toujours Paris}. Ceci est une lettrine obtenue
+grâce au collègue allemand E.~{\sc Scha\-lück} et
+ aux différents codes qu'il
+m'a donnés.\par}
+
+\bigskip
+\verb| \lettrine[« {Paris} »]|
+\lettrine[« {Paris} »]
+{sera toujours Paris}. Ceci est une lettrine obtenue
+grâce au collègue allemand E.~{\sc Scha\-lück} et
+ aux différents codes qu'il
+m'a donnés.
+
+\bigskip
+\verb| \flettrine[« {Paris} ]|
+\flettrine[« {Paris} ]
+{sera toujours Paris}. Ceci est une lettrine obtenue
+grâce au collègue allemand E.~{\sc Scha\-lück} et
+ aux différents codes qu'il
+m'a donnés. »
+
+\bigskip
+\tthyphenation\noindent
+\vers|\|\vers|font\lettrinefont=cmti12 scaled| \!\vers| \magstep4\lettrine|
+{\em \% vérification d'italique.}
+\font\lettrinefont=cmti12 scaled \magstep4\lettrine
+Blalbla {\bf je blablate}, tu blablates, ils blablatent, b...
+(ceci est l'exemple même de ce qu'il ne faut pas faire car ainsi
+le mot n'est pas mis en petites capitales). Ceci avait pour but
+de tester une police italique.
+
+\bigskip
+\lettrine{L'absurdité} de cette lettrine...
+
+\notthyphenation
+\FmsG
+
+\newpage\english
+
+\section{Illuminated letters}
+
+Look at the French part of this document because, in English,
+these macros have no effect:
+
+\bigskip
+\verb| \flettrine{Quoi ?}|
+\flettrine{Quoi ?} {Paris}
+{sera toujours Paris}. Ceci est une lettrine obtenue
+grâce au collègue allemand E.~{\sc Scha\-lück} et
+ aux différents codes qu'il
+m'a donnés.
+
+« Ici démarre une lettrine dans une citation.
+
+\bigskip
+\lettrine{Paris}
+{sera toujours Paris}. Ceci est une lettrine obtenue
+grâce au collègue allemand E.~{\sc Scha\-lück} et
+ aux différents codes qu'il
+m'a donnés.
+
+\bigskip
+\flettrine{Paris}
+{sera toujours Paris}. Ceci est une lettrine obtenue
+grâce au collègue allemand E.~{\sc Scha\-lück} et
+ aux différents codes qu'il
+m'a donnés.
+
+et la citation se termine ici. »
+
+\bigskip
+\verb| \font\lettrinefont=cmr17 scaled|\\
+{\font\lettrinefont=cmr17 scaled \magstep5
+\verb| \magstep5\lettrine[`` {Paris} '']|
+\lettrine[`` {Paris} '']
+{sera toujours Paris}. Ceci est une lettrine obtenue
+grâce au collègue allemand E.~{\sc Scha\-lück} et
+ aux différents codes qu'il
+m'a donnés.\par}
+
+\bigskip
+\verb| \lettrine[« {Paris} »]|
+\lettrine[« {Paris} »]
+{sera toujours Paris}. Ceci est une lettrine obtenue
+grâce au collègue allemand E.~{\sc Scha\-lück} et
+ aux différents codes qu'il
+m'a donnés.
+
+\bigskip
+\verb| \flettrine[« {Paris} ]|
+\flettrine[« {Paris} ]
+{sera toujours Paris}. Ceci est une lettrine obtenue
+grâce au collègue allemand E.~{\sc Scha\-lück} et
+ aux différents codes qu'il
+m'a donnés. »
+
+\bigskip
+\noindent
+\verb|\font\lettrinefont=cmti12 scaled| \verb| \magstep4\lettrine|
+%{\em \% vérification d'italique.}
+\font\lettrinefont=cmti12 scaled \magstep4\lettrine
+Blalbla {\bf je blablate}, tu blablates, ils blablatent, b...
+(ceci est l'exemple même de ce qu'il ne faut pas faire car ainsi
+le mot n'est pas mis en petites capitales). Ceci avait pour but
+de tester une police italique.
+
+\bigskip
+\lettrine{L'absurdité} de cette lettrine...
+
+\onecolumn\newpage%
+\french
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% ===»» Il n'y a plus d'anglais au delà de cette limite ««===
+\def\lastlinein#1{\expandafter\gdef\csname #1\endcsname{\relax}}
+\lastlinein{english}% this is for frencht.tex
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\newpage\french
+\section{Lettrines automatiques ou non}
+
+\bigskip
+\lettrine{THIS IS A TEST} (a non-automatic one)
+is a piece of text and some more and some more
+and some more and some more and some more and some more and some more
+and some more and some more and some more and some more and some more
+and some more and some more.
+
+\bigskip
+\flettrine{THIS IS A TEST} (a non-automatic one)
+is a piece of text and some more and some more
+and some more and some more and some more and some more and some more
+and some more and some more and some more and some more and some more
+and some more and some more.
+
+\bigskip
+\automaticlettrine
+
+\lettrine{THIS IS A TEST} (a default automatic one)
+is a piece of text and some more and some more
+and some more and some more and some more and some more and some more
+and some more and some more and some more and some more and some more
+and some more and some more.
+
+\bigskip
+\flettrine{THIS IS A TEST} (a default automatic one)
+is a piece of text and some more and some more
+and some more and some more and some more and some more and some more
+and some more and some more and some more and some more and some more
+and some more and some more.
+
+
+\bigskip
+\def\lettrinefontname{cmr17}
+\lettrine{THIS IS A TEST} (a cmr17 automatic one)
+is a piece of text and some more and some more
+and some more and some more and some more and some more and some more
+and some more and some more and some more and some more and some more
+and some more and some more.
+
+\bigskip
+\flettrine{THIS IS A TEST} (a cmr17 automatic one)
+is a piece of text and some more and some more
+and some more and some more and some more and some more and some more
+and some more and some more and some more and some more and some more
+and some more and some more.
+
+\bigskip
+\lettrine{Que vaut ce test ?} (en automatique)
+is a piece of text and some more and some more
+and some more and some more and some more and some more and some more
+and some more and some more and some more and some more and some more
+and some more and some more.
+
+\bigskip
+\noautomaticlettrine
+\lettrine{THIS IS A TEST} (a non-automatic one)
+is a piece of text and some more and some more
+and some more and some more and some more and some more and some more
+and some more and some more and some more and some more and some more
+and some more and some more.
+
+\bigskip
+\lettrine{Que vaut ce test ?} (non-automatique)
+is a piece of text and some more and some more
+and some more and some more and some more and some more and some more
+and some more and some more and some more and some more and some more
+and some more and some more.
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\newpage
+\section{Énumérations}
+L'espacement des énumérations françaises est
+ profondément modifié avec \FP, pour s'en
+convaincre voir le test des listes page \pageref{listes} ou
+l'environnement \texttt{order} ci-après.
+
+\section{L'environnement « {\mdseries\texttt{order}} »}
+Un environnement spécifique est proposé, il s'agit de l'environnement
+\verb|order| pour \LaTeX{} dont voici un petit exemple :
+
+\begin{order}
+\item Bien regarder ;
+\item l'espacement de chaque élément est spécial ;
+\item l'espacement vertical est aussi différent.
+\item A-D-O-P-T-E-Z \ \ L-E !
+\end{order}
+
+Ce prototype correspond bien aux énumérations
+françaises (je ne
+parle pas uniquement des marqueurs -- primo, secundo, \etc. --
+mais aussi de la gestion des espaces). En voici un autre exemple
+concret :
+\NL1
+
+Les guillemets entrent aussi en ligne de compte : « Je citerai
+3 cas très importants :
+\begin{order}
+\item le premier cas ;
+\item le second ;
+\item le dernier.
+\end{order}
+qui sont [...] »
+\NL1
+
+À noter que ce mécanisme de rajout des guillemets en début de
+chaque élément de liste marche aussi avec un environnement
+comme \texttt{itemize}.
+
+\expandafter\ifx\csname frenchTeXmods\endcsname\relax
+ \space% ce test ne marche pas en LaTeX standard.
+\else
+ \ifx\frenchTeXmods\empty\space% ni en dummy french !
+ \else
+\section{Tests aux limites des guillemets anglais}
+
+Vérifions qu'il est possible d'activer temporairement
+quelques caractères sans perturber le traitement. Exemple :
+
+\begin{verbatim}
+{\catcode`\'=\active\catcode`\'=\active
+ `` Test guillemets anglais ''
+}
+\end{verbatim}
+
+{\catcode`\'=\active\catcode`\'=\active
+ `` Test guillemets anglais ''
+}
+ \fi
+\fi
+
+Un cas bien spécial avait été rencontré avec l'extension \myverb|amstex|
+qui utilisait une référence avec des mathématiques dans une autre
+référence, ce qui entrainait une boucle infinie avec \FP. Voici
+le test en question :
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% this code generates a loop with versions of french < V3,42 %%%%%%
+\makeatletter
+\def\r@ref{{\ref{nulllabel}$'$}}{1}
+\makeatother
+\ref{ref} = 1 $'$ % boucle garantie si < V3,42
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+Autre test aux limites ?
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\newpage
+\section{« Autres tests »}
+Nous sommes ici en une colonne.
+
+\bigskip
+Voici un test d'encadré contenant le mode \verb|centering| :
+\begin{center}\fbox{%
+\parbox{6cm}{\begin{center}Information : si vous voulez me joindre,
+mon tél. : 01 69 35 85 40. Je n'y suis qu'aux horaires de
+bureau.\end{center}}%
+ }\end{center}
+
+Bon ?\footnote{L'objet de cette note de bas de page est
+de vérifier l'espacement des inférieurs et supérieurs,
+\primo en \texttt{\backslash tt} :
+\texttt{XXXX ===> <=== YYYY} et
+\secundo en {\tt verbatim} :
+\myverb|french V4 < french V5 > frenchOLD|%
+.}
+
+\begin{table*}[h]
+\caption{Dactylographie et typographie comparées}
+\label{frenchdactylo}
+\vspace*{1cm}
+\huge
+\begin{tabular}{|r|r|}
+\hline
+dactylographie\ \ \ \ \hfill & \ \ \ typographie\ \ \ \hfill\\
+\hline
+ \verb|use \dots or \ldots| \ & use \dots\ or $\ldots{}$\ \\
+ \verb|utilisez...| \ & utilisez...\ \\
+ \verb|semi-colon;| \ & semi-colon;\ \\
+ \verb|point-virgule ;| \ & point-virgule ;\ \\
+ \verb|My god!| \ & My god!\ \\
+ \verb|Mon dieu !| \ & Mon Dieu !\ \\
+ \verb|Why not?| \ & Why not?\ \\
+ \verb|Pourquoi pas ?| \ & Pourquoi pas ?\ \\
+ \verb|``I say''| \ & ``I say''\ \\
+ \verb|« Je dis »| \ & « Je dis »\ \\
+ \verb|He said: Yes| \ & He said: Yes\ \\
+ \verb|Il dit : non| \ & Il dit : non\ \\
+ \verb|$1\,234,567$| \ & $1\,234,567$\ \\
+ \verb|$f(x,\,y)$| \ & $f(x,\,y)$\ \\
+\hline
+\end{tabular}
+\normalsize
+\end{table*}
+
+\newpage
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\ifx\itshape\undefined\else% avoid old frencht crash
+\subsection{Test des guillemets dans un \mdseries\texttt{\backslash edef}}
+
+Les guillemets peuvent être appelés dans une définition de macro
+telle que \verb|\edef| mais comme les guillemets ne sont pas expansibles
+entièrement il a donc fallu arriver à réaliser une définition acceptable.
+
+Ainsi \verb|\edef\testedef{« essai »}|
+\edef\testedef{« essai »}
+donnera la curieuse définition suivante : \\
+\hbox{}\hfill\texttt{\meaning\testedef} ; \\
+elle reste complètement expansible (dans certaines conditions)
+ou pas du tout (comme ici appelée en tt on obtiendra
+le résultat suivant : \texttt{\testedef}).
+\fi
+
+\subsection{{\mdseries\tt <{}} et {\mdseries\tt >{}} redéfinis}
+
+Mes utilisateurs sont terribles ! Ils veulent le beurre, l'argent du
+beurre et aussi la fermière... S'ils codent
+\verb9\def\truc<#1|#2>{/#1 OU #2/}9
+ ils veulent pouvoir obtenir
+/Essai OU Erreur/ en saisissant \verb9\truc<Essai|Erreur>9. Faisons
+l'essai réel :
+{\def\truc<#1|#2>{/#1 OU #2/} \truc<Essai|Erreur>}.
+
+Encore plus fort : nous voulons avoir une notation de Backus-Naur
+c'est-à-dire des \verb|\rangle| et \verb|\langle|. Voici la
+définition que nous avons entrée avant le \verb|\begin{document}| :
+\begin{verbatim}
+{\catcode`\<=\active\catcode`\>=\active%
+\global\def<{\left\langle}\global\def>{\right\rangle}
+}
+\end{verbatim}
+
+Pour tester l'efficacité de ces macros il suffit alors de faire
+par exemple :
+\begin{verbatim}
+« $<assignement>$ »
+\end{verbatim}
+à condition que l'option \verb|\frenchguillemets| soit
+active (en maths).
+
+Essayons cela :
+% en fait il faut reactiver cela maintenant :
+{%
+ \gdef\myinf{\left\langle}%
+ \gdef\mysup{\right\rangle}%
+« $\frenchguillemets% on a \nofrenchguillemets avec AmSTeX
+ <assignement>$ ».
+}%
+% Remettre ici pour frenchle
+\global\let\myinf\inferieura% A no-op def
+\global\let\mysup\superieura% for a temporary action
+
+\subsection{\mdseries\texttt{\textbackslash special}}
+L'inclusion d'une commande \verb|\special| est ici testée :\\
+{%%%%%%%%%%%% attention : commentaires impossible dans cette partie.
+ \catcode`\%=12
+ \texttt{\backslash special}\verb|{ps:|{\tt %%%
+ }\verb| Texte bidon {`«manuel:C;!?»'}}|
+ \special{ps:%%%
+ Texte bidon {`«manuel:C;!?»'}}
+}
+
+\subsection{{\mdseries\texttt{\textbackslash refmark}} dans un tableau}
+
+Où l'on reparle encore de \verb|\refmark|...
+
+La note \ref{bas} est référencée depuis le tableau ci-dessous, tout comme
+les notes du tableau lui-même.
+
+ \begin{table}[htbp]
+ \begin{center}
+ \begin{tabular}{|c|l|}
+ \hline
+ Lettre & Utilisation\\
+ \hline
+ {\tt h} & petit blabla gentil et anodin \refmark{bas}\\
+ {\tt l} & ici reblabla assez moyen\refmark{bas}$^,$\refmark{refnote}\\
+ {\tt L} & autre grand grand grand blabla
+ \footnote{La note du tableau « refmark ».\label{refnote}}\\
+ \hline
+ \end{tabular}
+ \caption{Le titre du tableau.}
+ \end{center}
+\end{table}
+
+En dehors du tableau on peut faire appel\footnote{La note de page.\label{bas}}
+à une note qui est, par contre, référencée dans le tableau. Tout cela
+est réalisé grâce à l'ordre \verb|\refmark| introduit par l'extension
+\FP.
+
+\subsection{{\mdseries\texttt{\textbackslash nombre}} en argument}
+
+Voici un test simple permettant de valider \verb|\nombre| lorsqu'il
+est en argument d'une macro-instruction :
+
+\begin{verbatim}
+\noindent
+1\,234 un nombre simple !\\
+$*$\\
+\nombre{1 234} un nombre simple !\\
+\nombre{1 234,5} avec une décimale.\\
+\texttt{\nombre{1 234,56} avec fonte tt.}\\
+\emph{\nombre{1 234,567} en mode emphasé.}\\
+\nombre{1 234,567 8} avec encore une décimale.
+\end{verbatim}
+
+Il faut noter que l'ordre \verb|\nombre| est toujours composé en mode
+mathématique ce qui force l'utilisation des fontes mathématiques.
+Tout changement de fonte doit donc être précisé de façon ad hoc.
+Par ailleurs, la composition n'est garantie que si l'option
+\verb|\nofiles| n'a pas été indiquée en début de document.
+Voici ce que ce test donne :
+
+\noindent
+1\,234 un nombre simple !\\
+$*$\\
+\nombre{1 234} un nombre simple !\\
+\nombre{1 234,5} avec une décimale.\\
+\texttt{\nombre{1 234,56} avec fonte tt.}\\
+\emph{\nombre{1 234,567} en mode emphasé.}\\
+\nombre{1 234,567 8} avec encore une décimale.
+
+\ifx\documentclass\undefined % Still Plain! so no \DeclareFontFamily
+\else%
+\subsection{{\mdseries\texttt{\textbackslash label}} en mode math}
+
+Il s'agit ici de tester la commande \verb|\label| dans un environnement
+\verb|equation| :
+
+\begin{verbatim}
+Vérifions le numéro de l'équation \ref{labelequation} ci-dessous :
+\begin{equation}\label{labelequation}
+V_{Lm}=\frac{L}{t_p}
+\end{equation}
+\end{verbatim}
+
+Voici le résultat du test :
+
+Vérifions le numéro de l'équation \ref{labelequation} ci-dessous :
+\begin{equation}\label{labelequation}
+V_{Lm}=\frac{L}{t_p}
+\end{equation}
+\fi
+
+\csname TexteComplementaire\endcsname
+
+\subsection{Bibliographie}
+Voyons maintenant la bibliographie.
+Dans \cite{`«manuel:Gaulle;!?»'} on trouvera...
+\nocite{`«merci:Ronan;!?»'}
+Par contre
+\cite[pp.1--3, X \& consorts]{«blabla»}
+est beaucoup plus fourni en exemples et commentaires... Mais dans
+\cite[p. 25 \S~13 {{\it et seq.}}]{`«torture:Gaulle;!?»'}
+toutes ces informations
+sont plus détaillées.
+
+Ce qui suit n'est pas un exemple de belle bibliographie, juste une
+vérification de bon fonctionnement.
+
+\bibliographystyle{plain}
+
+\begin{thebibliography}{Knuth 99}
+
+\section*{Bibliographie dans le document}
+
+\bibitem[Knuth 99]{«blabla»} Le \TeX book ou la « bible »
+ des gourous \TeX
+\bibitem{`«manuel:Gaulle;!?»'} B. {\sc Gaulle}, {\em
+ Le résultat d'une « {\em dure} » journée de travail !}
+\bibitem{`«merci:Ronan;!?»'} R. {\sc Keryell}, {\em
+ Le gentil normalien qui m'a beaucoup aidé grâce à sa thèse...}
+\bibitem{`«torture:Gaulle;!?»'} B. {\sc Gaulle}, {\em
+ Notice d'utilisation du style french}, 1991-1999.
+\bibitem{`«tortureFP:Gaulle;!?»'} B. {\sc Gaulle}, {\em
+ Notice d'utilisation de l'extension \FP\ pour \LaTeX}, 2000-20xx.
+\end{thebibliography}
+
+\ifx\documentclass\undefined % Still Plain! so skip
+\else%
+\section*{\phantom{\normalsize[Knuth 99]}Bibliographie en dehors du document}
+
+Avec certaines extensions de bibliographie il peut s'avérer utile
+de protéger les caractères actifs à l'intérieur même de la base
+de données bibliographique.
+
+\bibliography{testbib}
+\fi%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\listoffigures
+\listoftables
+\glossary{Façon cordon bleu}
+\glossaires
+\section*{Glossaire des mots techniques}
+\printglossary[\jobname.glo]
+
+\noindent -- magnification
+
+\noindent -- caractères spéciaux : \NL1
+
+{\huge%\frenchmacros n'est pas utile ici
+\begin{tabular}{|c|c|}
+\hline
+Pour imprimer ceci & Saisir cela\\ \hline
+\at & \verb|\at|\\ \hline
+\texttt{\vert} & \verb|\texttt{\vert}|\\ \hline
+\tilde & \verb|\tilde|\\ \hline
+\texttt{\backslash}& \verb|\texttt{\backslash}|\\ \hline
+\chap & \verb|\chap|\\ \hline
+\degre & \verb|\degre| \\ \hline
+\degres & \verb|\degres| \\ \hline
+\normalsize
+1\ier{} étage & \verb|1\ier{} étage| \\ \hline
+\normalsize
+(2\ieme\!) & \verb|(2\ieme\!)| \\ \hline
+\primo & \verb|\primo|\\ \hline
+\secundo) & \verb|\secundo)|\\
+\hline
+\end{tabular}
+} \NL1
+
+On notera que le caractère \verb|\degre| n'est pas le signe typographique
+usuellement utilisé pour exprimer
+des degrés mais que \verb|\degres| est
+plus conforme à la tradition. On remarque bien les différences entre
+\verb|\primo| et \verb|\secundo)|
+(la forme parenthésée n'est pas valable
+en {\em belle} typographie française).
+\primo... \secundo... \tertio... \quarto...
+\primo)... \secundo)... \tertio)... \quarto)...
+
+\section*{Glossaire argotique}
+Le pied
+
+\printindex
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\part{Ce qui ne marche pas (bien)...}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\chapter{Quelques questions à étudier}
+
+Cette partie ne comporte que des « anomalies » que l'auteur espère
+résoudre d'ici quelque temps,
+grâce à votre aide... peut être ?
+
+En fait il ne reste vraiment
+pas grand chose à règler mais ce sont probablement des
+vieux problèmes sacrément compliqués.
+
+\section{Le « 2 points »}
+Le « 2 points » a une fâcheuse tendance
+à rester en bas de page lorsqu'il est
+suivi d'un {\tt verbatim}. Il serait souhaitable d'en trouver la raison.
+
+\section{Les guillemets}
+
+Le problème avec \verb|quotation| page \pageref{quotation}.
+
+%Et la perte d'informations
+%dans le cas de \verb|\noeveryparguillemets| lorsque l'on démarre
+%une citation dans un paragraphe déjà commencé.
+%
+%Vraiment très {\em fragile} ce \verb|\noeveryparguillemets| ! (
+
+Voir le cas des notes
+de bas de page ou en marge qui produis(ai ?)ent des désastres
+avec \verb|\noeveryparguillemets|.
+
+\section{Le cas des extensions mal écrites ...}
+
+... ne se résout souvent que par la modification de l'extension en question.
+Cela a été le cas de nombreuses extensions depuis le début de \frenchname{}
+et j'ai bien peur que cela continue \emph{éternellement}% (et à propos : qui me succèdera ?)
+.
+Ici Bernard Gaulle ajoutait (déjà en 2002) : « et à propos : qui me succédera ? ».
+Nous pensons que le groupe de travail autour du projet e-french répond à sa question.
+
+Certains cas sont insolubles, par exemple :
+l'extension \verb|here.sty|
+redéfinissait « au vol »
+l'ordre \LaTeX{} \verb|\table| au lieu
+de modifier l'existant ; cela posait un réel problème à FrenchPro
+qui se base sur la modification d'une commande \verb|\table|
+existante. Heureusement ce style périmé peut être remplacé
+avantageusement par \verb|float|.
+
+Notons qu'aujourd'hui avec les diverses variantes de \texttt{float},
+ce problème n'existe plus (comme bien d'autres d'ailleurs).
+
+\chapter{Améliorations à envisager}
+
+\section{Index et bibliographie}
+Deux thèmes qui n'ont que très peu été abordés.
+
+\section{Abréviations}
+Il est fâcheux d'avoir à connaître quelles sont les mots
+abrégeables pour pouvoir demander leur abréviation ; autant les saisir
+correctement dès le début...
+
+Faut-il arrêter la composition \LaTeX{} quand une abréviation
+n'est pas trouvée ?
+
+Faut-il offrir la possibilité de lister toutes les abréviations ?
+
+\annexes
+\hsize=18cm
+%
+%\chapter{Copyright}
+%\Mylisting{copyrigh.tex}
+%
+%\chapter{Le fichier \mdseries{\tt language.dat}}
+%\Mylisting{language.dat}
+
+\chapter{Le fichier \mdseries{\tt frabbrev.tex}}
+\Mylisting{frabbrev.tex}
+
+% retire pour mettre french.cmd 98/06
+%\chapter{Le fichier \mdseries{\tt french.dmy}}
+%My\listing{french.dmy}
+
+\chapter{Le fichier \mdseries{\tt french.cmd}}
+\Mylisting{french.cmd}
+
+\chapter{Le fichier \mdseries{\tt french.chk}}
+\Mylisting{french.chk}
+%
+%\chapter{Un style english (\mdseries{\tt fenglish})}
+%\Mylisting{fenglish_doc}
+
+%\chapter{Le code de l'extension \FP}
+%
+%\Mylisting{french_doc.txt}
+
+\newpage
+\hsize=15cm
+\abbreviations\noenglishdoublequotes
+\tableofcontents
+\noabbreviations\englishdoublequotes% remove options set for toc.
+
+\english %=\relax if english text (see \lastlinein)
+\endinput
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
diff --git a/language/french/e-french/texmf/doc/test/frenchab.tex b/language/french/e-french/texmf/doc/test/frenchab.tex
new file mode 100644
index 0000000000..3993d1187a
--- /dev/null
+++ b/language/french/e-french/texmf/doc/test/frenchab.tex
@@ -0,0 +1,68 @@
+% !TeX encoding = latin9
+% This is frenchab.tex
+%
+% French Torture Test with AmsLaTeX (main style: book)
+% Copyright Bernard Gaulle as in french.doc
+%
+% last mods 2006/04/25
+%
+\advance\hoffset by -10pt% marge droite (chez moi) pas totalement imprimee
+%
+\documentclass[twocolumn]{book}
+ \usepackage[latin9]{inputenc}% pour le codage d'entrée, ici latin9
+ \usepackage[T1]{fontenc}% pour utiliser les fontes ec (et cm en math)
+\usepackage{amsmath,mylist,mya4,graphicx,french}
+\usepackage{eurosym} %for the ¤
+\usepackage{epstopdf}% so graphicx accepts eps images
+\setlength{\textwidth}{410pt}%%
+\let\Stop\undefined
+% Localisation code for numbered \typeout: "\kbAissue% localise it."
+% For debugging one can remove "msg" access, just uncomment
+%\let\kbAissue\relax% this line.
+\makeatletter
+ \ifx\kbAissue\undefined%
+% Firstly we add the material to use the "msg" package for localization.
+ \def\kb@issue#1#2{\kb@issue@[#1]#2\void}% The local \issuemsg macro.
+ % which will call the real one;
+ % #1 is the macro message required.
+ % #2 is the message header + msg number
+ % such as "^^J -234-", just message
+ % number (234) is kept.
+ \let\kbAissue\kb@issue%
+ \def\kb@issue@[#1]#2-#3-#4\void{\issuemsg[#1]#3(french)}%
+ \ifx\issuemsg\undefined\let\kbAissue\relax\let\typeouA\typeout\fi%
+ \fi%
+\makeatother
+%
+\ifx\endfrench\switchtolanguage
+\kbAissue% localise it.
+ \typeout{-37a- ANOMALIE : french actif.}\Stop\fi
+\def\LPLAIN{lplain}
+\ifx\fmtname\LPLAIN\else\def\LPLAIN{LaTeX2e}\fi
+\ifx\fmtname\LPLAIN\else\relax
+ \typeout{**********************************************}
+\kbAissue% localise it.
+ \typeout{-36- ANOMALIE : format LaTeX (\fmtname) non standard.}
+ \typeout{CORRIGER pour avoir \fmtname=\LPLAIN\space ou ancien nom.}
+\Stop% Vous devez avoir dans ltvers.dtx : \def\fmtname{LaTeX2e} !
+\fi
+\let\iflatex\iftrue
+\def\SmsG{\typeout%
+ {\string<\string<--------------------------------------------------------}}
+\def\FmsG{\typeout%
+ {--------------------------------------------------------\string>\string>}}
+{\SmsG\obeyspaces
+\typeout{( Test de torture du style \frenchname}
+\typeout{(Ce test genere deliberement quelques messages d'erreur. )}
+\typeout{(Pour vous permettre de distinguer les messages d'erreur )}
+\typeout{(normaux de ceux qui sont anormaux, j'ai encadre, comme )}
+\typeout{(ici, ces messages ; ne vous en preoccupez pas. --bg )}
+\FmsG}%
+\frenchtest
+\ifx\endfrench\switchtolanguage\else
+\kbAissue% localise it.
+ \typeout{-37b- ANOMALIE : french inactif.}\Stop\fi
+\end{document}
+%%
+%% checksum = "21525 63 238 2681"
+%%
diff --git a/language/french/e-french/texmf/doc/test/frenchla.tex b/language/french/e-french/texmf/doc/test/frenchla.tex
new file mode 100644
index 0000000000..ed6717aa15
--- /dev/null
+++ b/language/french/e-french/texmf/doc/test/frenchla.tex
@@ -0,0 +1,21 @@
+% !TeX encoding = latin9
+% This is frenchlb.tex
+%
+% French Torture Test with LaTeX (main style article)
+% Copyright Bernard Gaulle as in french.doc
+%
+% last mods 2006/04/25
+%
+\documentclass[twocolumn]{article}
+ \usepackage[latin9]{inputenc}% pour le codage d'entrée, ici latin9
+ \usepackage[T1]{fontenc}% pour utiliser les fontes ec (et cm en math)
+\usepackage{eurosym} %for the ¤
+\usepackage{mylist,mya4,graphicx,french}
+\usepackage{epstopdf}% so graphicx accepts eps images
+\setlength{\textwidth}{410pt}%%
+\let\iflatex\iftrue
+\frenchtest
+\end{document}
+%%
+%% checksum = "13164 16 42 436"
+%%
diff --git a/language/french/e-french/texmf/doc/test/frenchlb.tex b/language/french/e-french/texmf/doc/test/frenchlb.tex
new file mode 100644
index 0000000000..4e0faaf9a8
--- /dev/null
+++ b/language/french/e-french/texmf/doc/test/frenchlb.tex
@@ -0,0 +1,84 @@
+% !TeX encoding = latin9
+% This is frenchlb.tex
+%
+% French Torture Test with LaTeX (main style: book)
+% Copyright Bernard Gaulle as in french.doc
+%
+% last mods 2006/04/25
+%
+\advance\hoffset by 20pt% pour centrer l'ensemble.
+\documentclass[twocolumn,twoside,a4paper]{book}%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% Si vous n'avez pas utilisé kbconfig pour créer le format,
+% probablement avez-vous besoin de :
+ \usepackage[latin9]{inputenc}% pour le codage d'entrée, ici latin9
+ \usepackage[T1]{fontenc}% pour utiliser les fontes ec (et cm en math)
+% Ou alors \usepackage[decmulti]{inputenc}% pour le codage d'entrée mais c'est
+% vous qui l'aurez choisi... Moi je préfère encore keyboard (cad kbconfig).
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\usepackage{mysmall,graphicx,mylist}
+\usepackage{eurosym} %for the ¤
+\usepackage{epstopdf}% so graphicx accepts eps images
+%\usepackage[tracefiles]{msg}% Only usefull for tracing purpose.
+% Plut\^ot que \usepackage{french} on fait appel à mlp pour charger french :
+\usepackage[anglais,francais]{mlp}
+\setlength{\textheight}{225mm}% a4paper is a little shorter...than a4.sty
+\setlength{\textwidth}{410pt}%%
+\listfiles
+
+\catcode`\@=11
+\let\Stop\undefined\ifx\@@end\undefined\let\@@end\end\fi
+% Localisation code for numbered \typeout: "\kbAissue% localise it."
+% For debugging one can remove "msg" access, just uncomment
+%\let\kbAissue\relax% this line.
+ \ifx\kbAissue\undefined%
+% Firstly we add the material to use the "msg" package for localization.
+ \def\kb@issue#1#2{\kb@issue@[#1]#2\void}% The local \issuemsg macro.
+ % which will call the real one;
+ % #1 is the macro message required.
+ % #2 is the message header + msg number
+ % such as "^^J -234-", just message
+ % number (234) is kept.
+ \let\kbAissue\kb@issue%
+ \def\kb@issue@[#1]#2-#3-#4\void{\issuemsg[#1]#3(french)}%
+ \ifx\issuemsg\undefined\let\kbAissue\relax\let\typeouA\typeout\fi%
+ \fi%
+%
+\ifx\endfrench\switchtolanguage
+\kbAissue% localise it.
+ \typeout{-37a- ANOMALIE : extension french active ici.}\Stop
+\@@end
+\fi
+\def\LPLAIN{lplain}
+\ifx\fmtname\LPLAIN\else\relax
+ \def\LPLAIN{LaTeX2e}
+ \ifx\fmtname\LPLAIN\else\relax
+ \typeout{**********************************************}
+\kbAissue% localise it.
+ \typeout{-36- ANOMALIE \string: nom de format LaTeX (\fmtname) invalide.}
+ \typeouA{-36b- CORRIGER pour avoir \fmtname=\LPLAIN\space ou ancien nom.}
+\Stop% Vous devez avoir dans ltvers.dtx : \def\fmtname{LaTeX2e} !
+\@@end
+ \fi
+\fi
+\catcode`\@=12
+\let\iflatex\iftrue
+\def\SmsG{\typeout%
+ {\string<\string<--------------------------------------------------------}}
+\def\FmsG{\typeout{}\typeout%
+ {--------------------------------------------------------\string>\string>}}
+{\SmsG\obeyspaces
+\typeout{( Test de torture du style \frenchname}
+\typeout{(Ce test genere deliberement quelques messages d'erreur. )}
+\typeout{(Pour vous permettre de distinguer les messages d'erreur )}
+\typeout{(normaux de ceux qui sont anormaux, j'ai encadre, comme )}
+\typeout{(ici, ces messages ; ne vous en preoccupez pas. --bg )}
+\FmsG}%
+\frenchtest
+\ifx\endfrench\switchtolanguage\else
+\kbAissue% localise it.
+ \typeout{-37b- ANOMALIE \string: extension french inactive ici.}\Stop\fi%
+\end{document}
+%%
+%% checksum = "10201 81 331 3632"
+%%
diff --git a/language/french/e-french/texmf/doc/test/frenchll.tex b/language/french/e-french/texmf/doc/test/frenchll.tex
new file mode 100644
index 0000000000..7451cb8305
--- /dev/null
+++ b/language/french/e-french/texmf/doc/test/frenchll.tex
@@ -0,0 +1,102 @@
+% This is frenchll.tex
+%
+% French Torture Test with LaTeX (main style: letter)
+% Copyright Bernard Gaulle as in french.doc
+%
+% last mods 2006/04/25
+% 7bits file.
+%
+%%
+%% checksum = "09076 98 267 3191"
+%%
+\advance\hoffset by -10pt% marge droite (chez moi) pas totalement imprimee
+\advance\voffset by -20pt% marge haute (chez moi) pas totalement imprimee
+%
+\def\twocolumn{\relax}% Un peu debile de pouvoir faire une lettre en 2 colonnes
+%
+\def\TT#1{\gdef\TITLE{#1}}
+\def\formhead{\Huge \bf Association GUTenberg}
+\def\formfoot{\bf Si\`ege social : C/o Irisa, campus de Beaulieu,
+ F--35042 Rennes cedex.}
+\def\title#1{\french
+ \begin{letter}{M. Dupond\\
+ 17, rue St. \'Eloi\\
+ 24140 La monzie montastruc}
+ \yourref{votre lettre du 15 courant}
+ \ourref{bg-004-92}
+ \object{Remerciements}
+ \opening{Cher Monsieur X,}
+
+ Voici...
+Blabla habituel, b, khwd djhlheqw lwj wljlwd lkwd wx, jh, 2d
+ wkjyujb 2d, jhgoi2w 1w3dh, jljkwds m, hlwd blhwdl wbwd khw2db
+ bbklwyh, wluw bowdb, wlup ; 4f ; iw
+13, nbjh3d mldfkm, mhowedm mnpi13m eef.
+ \fclosing[7]{Veuillez agr\'eer, cher X, l'expression de mes salutations les
+ plus distingu\'ees.}
+ \cc{Monsieur le directeur Y}
+ \encl{lettre du ministre Z}
+ \PS{J'oubliais de...}
+\vfill
+ \end{letter}
+ \english
+ \begin{letter}{M. Smith\\
+ 17, St. Patrick street\\
+ YORK WZG-21, England}
+ \opening{Dear Sir,}
+ \par
+ Here is...\vfill
+ \closing{Yours,}
+ \cc{Y}
+ \encl{Z}
+ I forgot to say...
+\vfill
+ \end{letter}
+ \french
+ \TT{#1}
+}
+% Pseudo definitions de macros non autorisees dans le style letter
+\def\maketitle{\expandafter\let\csname table*\endcsname\table%
+ \expandafter\let\csname endtable*\endcsname\endtable%
+ \expandafter\let\csname chapter*\endcsname\chapter%
+ \expandafter\let\csname section*\endcsname\section%
+ \TITLE}
+\def\tableofcontents{}
+\def\part{\par}
+\def\chapter{\par}
+\def\section{\par}
+\def\subsection{\par}
+\def\subsubsection{\par}
+\makeatletter
+\def\caption{\@ifnextchar[\@caption\@@caption%]
+ }
+\def\@caption[#1]#2{\@@caption{#2}}
+\def\@@caption#1{\centerline{#1}}
+\makeatother
+\def\figure{}\def\endfigure{}
+\let\table\relax\let\endtable\relax% as in endfloat
+\def\thebibliography{}\def\endthebibliography{}\def\bibitem{}
+\def\listoffigures{}\def\listoftables{}
+\def\printglossary[#1]{\relax}
+\newcounter{chapter}\newcounter{section}
+%
+\documentclass{letter}
+\usepackage[latin9]{inputenc}% pour le codage d'entrée, ici latin9
+ \usepackage[T1]{fontenc}% pour utiliser les fontes ec (et cm en math)
+\usepackage{eurosym} %for the €
+\usepackage{mylist,mya4,graphicx,french}
+\usepackage{epstopdf}% so graphicx accepts eps images
+\address{Bernard {\sc Gaulle}\\4, avenue Cadoux-Girault\\
+ F--92270 Bois-Colombes}
+\location{\em Paris, le}
+\signature{B. {\sc Gaulle} (votre serviteur...)}
+\email{gaulle@idris.fr}
+\setlength{\textwidth}{410pt}%%
+\ifx\documentclass\undefined
+%\input mypsfig.sty
+%\else
+%\usepackage{mypsfig}
+\fi
+\let\iflatex\iftrue
+\frenchtest
+\end{document}
diff --git a/language/french/e-french/texmf/doc/test/frenchln.tex b/language/french/e-french/texmf/doc/test/frenchln.tex
new file mode 100644
index 0000000000..6119e7f812
--- /dev/null
+++ b/language/french/e-french/texmf/doc/test/frenchln.tex
@@ -0,0 +1,35 @@
+% This is frenchln.tex
+%
+% French Torture Test with LaTeX,
+% with the ``Poor Man French'' package.
+% (main style: book)
+% Copyright Bernard Gaulle as in french.doc
+%
+% last mods 2006/04/25
+%
+% 7bits file.
+%
+% (case of a french document sent to another system where there is no
+% french customization. So the french style is sent before the document
+% and that is *that* whole document which is typeset by LaTeX.)
+%
+% I tested it without language.dat nor frenglish.sty nor abbrevfr.tex.
+% and with no language specification coming from INTEX time
+%\let\french\undefined\let\fhyph\undefined
+%\let\english\undefined\let\ehyph\undefined
+%
+\documentclass[twocolumn]{book}
+\usepackage[latin9]{inputenc}% pour le codage d'entrée, ici latin9
+ \usepackage[T1]{fontenc}% pour utiliser les fontes ec (et cm en math)
+\usepackage{eurosym} %for the ¤
+\usepackage{mylist,mya4,graphicx,pmfrench}
+\usepackage{epstopdf}% so graphicx accepts eps images
+\setlength{\textwidth}{410pt}%%
+\let\iflatex\iftrue
+\gdef\listing#1{\leavevmode{\it \% le fichier {\tt #1}
+ est d\'elib\'er\'ement non imprim\'e.}\par}
+\frenchtest
+\end{document}
+%%
+%% checksum = "14399 31 126 1062"
+%%
diff --git a/language/french/e-french/texmf/doc/test/frenchlr.tex b/language/french/e-french/texmf/doc/test/frenchlr.tex
new file mode 100644
index 0000000000..1cc8872554
--- /dev/null
+++ b/language/french/e-french/texmf/doc/test/frenchlr.tex
@@ -0,0 +1,18 @@
+% This is frenchlr.tex
+%
+% French Torture Test with LaTeX (main style: report)
+% Copyright Bernard Gaulle as in french.doc
+%
+% last mods 2006/04/25
+%
+\let\iflatex=\iftrue
+\documentclass[twocolumn]{report}
+\usepackage[latin9]{inputenc}% pour le codage d'entrée, ici latin9
+ \usepackage[T1]{fontenc}% pour utiliser les fontes ec (et cm en math)
+\usepackage{eurosym} %for the ¤
+\usepackage{mylist,mya4,graphicx,french}
+\usepackage{epstopdf}% so graphicx accepts eps images
+\setlength{\textwidth}{410pt}%
+
+\frenchtest
+\end{document}
diff --git a/language/french/e-french/texmf/doc/test/frenchrf.pdf b/language/french/e-french/texmf/doc/test/frenchrf.pdf
new file mode 100644
index 0000000000..61f359e0d5
--- /dev/null
+++ b/language/french/e-french/texmf/doc/test/frenchrf.pdf
Binary files differ
diff --git a/language/french/e-french/texmf/doc/test/fxench.tst b/language/french/e-french/texmf/doc/test/fxench.tst
new file mode 100644
index 0000000000..65d52fc1cf
--- /dev/null
+++ b/language/french/e-french/texmf/doc/test/fxench.tst
@@ -0,0 +1,3750 @@
+% This is the french torture file for all formats.
+% Copyright Bernard Gaulle as in french.doc
+%
+% \`{A} passer en 8 bits conform\'{e}ment \`{a} votre syst\`{e}me
+%
+%% checksum = "26167 3750 15103 125091"
+%%
+%
+% For localisation:
+%
+\makeatletter%
+\ifx\documentclass\undefined\let\kbAissue\relax\let\typeouA\typeout%
+\else%
+ \let\typeouA\@gobble%
+% For debugging one can remove "msg" access, just uncomment
+%\let\kbAissue\relax% this line.
+ \ifx\kbAissue\undefined%
+% Firstly we add the material to use the "msg" package for localization.
+ \def\kb@issue#1#2{\kb@issue@[#1]#2\void}% The local \issuemsg macro.
+ % which will call the real one;
+ % #1 is the macro message required.
+ % #2 is the message header + msg number
+ % such as "^^J -234-", just message
+ % number (234) is kept.
+ \let\kbAissue\kb@issue%
+ \def\kb@issue@[#1]#2-#3-#4\void{\issuemsg[#1]#3(french)}%
+ \ifx\issuemsg\undefined\let\kbAissue\relax\let\typeouA\typeout\fi%
+ \fi%
+\fi%
+\makeatother%
+%
+% For better debugging:
+\ifx\IeC\undefined
+\kbAissue% localise it.
+\typeout{^^J-66- ERROR! This file can't be typeset without any input}
+ \typeouA{-66- encoding declaration (look at keyboard or inputenc packages.)}
+\expandafter\stop% \usepackage[latin1]{keyboard} should be fine.
+\fi
+\let\FP\frenchpack\hyphenation{French-Pro}
+\wlog{Formating \jobname\space with\space\FP\space(\frenchstyleid)}
+%
+%
+\ifx\ProvidesFile\undefined\def\ProvidesFile#1[#2]{}\fi%
+\ProvidesFile{french.tst}%
+ [2005/05/11 The torture test file for the package \FP]% **last mods**
+\ifx\undefined\FmsG\def\FmsG{}\def\SmsG{}\fi
+%
+{\catcode`\<=\active\catcode`\>=\active%
+% Je veux :
+%\global\def<{\left\langle}\global\def>{\right\rangle}
+% Et pour ne pas pouvoir avoir l'effet que localement,
+% je fais :
+\gdef<{\myinf}\gdef>{\mysup}
+}
+\label{nulllabel}% null \label for AmSTeX test \ref within a \ref
+\iflatex\makeindex \makeglossary
+ \csname frhyphex\endcsname% load (again) the exceptions, outside babel
+ \def\NL#1{\Sauter#1Lignes}
+ \begin{document}
+ \makeatletter
+ \ifx\babel@savevariable\undefined%
+ \let\FRENCH\frenchTeXmods%
+ \else\def\FRENCH{\selectlanguage{french}}% pour babel
+ \fi%
+ \makeatother
+ \csname onecolumn\endcsname % avoid writting \onecolumn
+ % (special effect in frencht.tex)
+ \renewcommand{\thepage}{\roman{page}}%
+ \ifx\documentclass\undefined\else% for 2e
+ % As 2e doesn't accept \verb in arguments:
+ \gdef\myverb|#1|{%\nonfrench
+ \texttt{#1}%
+ %\endnonfrench
+ \relax}%
+ \fi
+\else
+ \let\FRENCH\frenchTeXmods%
+ \def\NL#1{\par}
+\fi
+\ifx\myverb\undefined\let\myverb=\verb\fi%
+% global here is just req. for TeX--XeT tests.
+\global\let\myinf\inferieura% A no-op def
+\global\let\mysup\superieura% for a temporary action
+\ifx\undefined\english\let\english\relax\fi%
+% Les \ldots sont $\ldots$ a cause de AmSLaTeX V1.1
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\def\HyphDiff#1#2{{\setbox0=\vbox{%
+ \pretolerance=-1 \hyphenpenalty=-10000
+ \hsize=0pt \leftskip=0pt \rightskip=0pt \parfillskip=0pt
+ \parindent=0pt \hfuzz=\maxdimen \interlinepenalty=0
+ \clubpenalty=0 \widowpenalty=0 \brokenpenalty=0
+ \hskip 0pt #1}%
+ \setbox2=\hbox{}%
+ \setbox9=\vbox{\unvbox 0 \loop \unskip \setbox1=\lastbox
+ \ifhbox 1
+ \global\setbox 2 = \hbox{%
+ \unhbox 1 \discretionary{}{}{}%
+ \unhbox 2}%
+ \repeat}%
+\setbox3\hbox{#2}\ifnum\wd2=\wd3\else
+\kbAissue% localise it.
+\typeout{-31- Wrong French Hyphenation\string!
+ Are you sure to run with a format ***********}
+\typeouA{-31- in which the french patterns were
+ installed at initex time\string? ***********}
+\ifECM\else%
+\kbAissue% localise it.
+\typeout{-32- if yes try to switch to T1 font
+ encoding (\noexpand\usepackage[T1]{fontenc})***}
+\fi%
+\showhyphens{#1}\typeout{(should be\string: #2)
+ \string<\string<======== *********************************}
+\fi}}
+\HyphDiff{\'{e}ventualit\'{e}}{\'{e}ven-tua-lit\'{e}}
+\HyphDiff{d\'{e}gazonnage}{d\'{e}-ga-zon-nage}
+\HyphDiff{chromosomique}{chro-mo-so-mique}
+%%%%
+\SmsG%
+\typeout{V\'%
+ erification de la sortie de caract\`%
+ eres 8-bits \string:}
+\message{L'\'% \typeout ne transforme pas en 8bits pour l'instant.
+ et\'%
+ e est l\`%
+ a en ao\^%
+ ut \string!}
+\iflatex%
+\typeout{Essai de macro d'accentuation dans un ordre \string\showhyphens %
+ \string:}
+\showhyphens{Faut-il croire \`%
+ a l'\'%
+ ETERNIT\'%
+ E ? \'%
+ eludons ...}
+\showhyphens{Ao\^%
+ ut 2001 ou l'autre \`%
+ ere ...}
+\fi%
+\FmsG%
+%
+\english% Title page is in english
+\ifx\documentclass\undefined % Still Plain! so no \DeclareFontFamily
+\else%
+% To avoid "No file OMScmtt.fd" message 2004/10/29
+\DeclareFontFamily{OMS}{cmtt}{\skewchar\font48 }
+\DeclareFontShape{OMS}{cmtt}{m}{n}%
+ {<->ssub*cmsy/m/n}{}
+\DeclareFontShape{OMS}{cmtt}{m}{it}%
+ {<->ssub*cmsy/m/n}{}
+\DeclareFontShape{OMS}{cmtt}{m}{sl}%
+ {<->ssub*cmsy/m/n}{}
+\DeclareFontShape{OMS}{cmtt}{m}{sc}%
+ {<->ssub*cmsy/m/n}{}
+\DeclareFontShape{OMS}{cmtt}{bx}{n}%
+ {<->ssub*cmsy/b/n}{}
+\DeclareFontShape{OMS}{cmtt}{bx}{it}%
+ {<->ssub*cmsy/b/n}{}
+\DeclareFontShape{OMS}{cmtt}{bx}{sl}%
+ {<->ssub*cmsy/b/n}{}
+\DeclareFontShape{OMS}{cmtt}{bx}{sc}%
+ {<->ssub*cmsy/b/n}{}
+%%%%%%%%%%%%%%%%%%%%%%%
+\fi%
+\makeatletter% for \f@encoding
+\title{\fbox{ \FP\ \LaTeX%
+ \thanks{We are here in english, notice the problem when we use,
+ like in \texttt{frenchla}, a
+ {\mdseries\texttt{\textbackslash fnsymbol}}
+ in a box.\newline%
+ \indent \hspace*{0.5em}
+ Notice also that
+ {\mdseries\texttt{\textbackslash backslash}}%
+ can't be used.%
+ }%
+ }\\ \ \\%
+ Version \frenchstyleid\\ \ \\
+ ``Torture'' Test (\jobname) \\ with
+ \ifx\encodingdefault\undefined Unknown
+ \else\ifx\f@encoding\undefined\encodingdefault{}
+ \else\f@encoding{} \fi
+ \fi Font Encoding\\\ }
+ \author{Bernard {\sc Gaulle}%
+ \thanks{Thanks to those good guys who helped me.\newline%
+ \indent\hspace*{0.5em}
+ This test note is also referred by a
+ {\mdseries\texttt{\textbackslash refmark}} call.
+ \label{title:thanks}%
+ }%
+ \\ \ \\ et...\refmark{title:thanks}%
+ }%
+% AmS \normalparindent no more exists 2000/06/15, so the code is removed.
+%\makeatletter% Don't let AMS change \parindent
+%\ifx\RIfM@\undefined\else\normalparindent=1em\parindent=\normalparindent\fi%
+%\makeatother
+\makeatother%
+\date{Printed on \today}
+% As the titlepage is in English but the date in French we let \ier defined:
+{\def\ier{ier}\maketitle}
+\setcounter{page}{2}\thispagestyle{empty}
+\cleardoublepage\french
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\onecolumn
+\sommaire[4]
+\bigskip
+\begin{center}
+\noindent\fbox{%
+\begin{minipage}[t]{0.5\textwidth}
+\begin{center} \fbox{\parbox{5cm}{{\bf Remarque} : \\ la commande
+\texttt{\backslash som\-maire}\label{pbverb}%
+\footnote{Cette note a \'{e}t\'{e} demand\'{e}e depuis une minipage.}%
+\footnote{Cette deuxi\`{e}me note aussi.}
+%%%%NB : \verb|\sommaire| ou \verb|\tableofcontents| produisent des HORREURS,
+%%%% lorsqu'ils ont utilises dans un \fbox, BUG LATEX !
+ est un apport de \FP.\hfill}}
+\end{center}
+\end{minipage}
+}
+\end{center}
+
+{% Not a LaTeX redefinition : \def\thefootnote{\fnsymbol{footnote}}
+\renewcommand{\thefootnote}{\fnsymbol{footnote}}%
+Essai de note avec \verb|\fnsymbol|
+\footnote{Note avec une \'{e}toile.}.
+
+\def\thefootnote{\relax}
+Essai de note de bas de page non num\'{e}rot\'{e}e
+\footnote{Note non num\'{e}rot\'{e}e.}.
+}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\cleardoublepage
+\chapter*{\prefacename}
+
+{\em Certains croient qu'une pr\'{e}face peut apporter de la valeur au livre,
+moi je pense plut\^{o}t que cela apporte de la {\em valeur}
+\`{a} l'auteur...} (dans
+tous les sens du terme).
+
+\cleardoublepage
+
+\twocolumn
+\renewcommand{\thepage}{\arabic{page}}\setcounter{page}{1}%
+\chapter*{Introduction}
+
+\begin{motsclef}
+french, style, francisation, francophonie, multilingue,
+english, option, extension.
+\end{motsclef}
+
+\begin{resume}
+Ce document a \'{e}t\'{e} con\c{c}u
+uniquement pour tester intensivement \FP\ (anciennement appel\'{e}
+option de style%
+ \glossary{<< : ; style ? ! >>}\index{<< : ; style ? >>}%
+ \footnote{Cette note a pour but de faire appel \`{a} une macro
+ \texttt{\backslash index} contenant des caract\`{e}res actifs.%
+ \index{<< : ; depuis la note de bas de page ? >>}%
+ }
+\index{french!Le point d'exclamation est un caract\`{e}re sp\'{e}cial de Makeindex}%
+\index{<@{\tt\protect\inferieura} ({\tt\protect\backslash inferieura})}%
+\index{>@{\tt\protect\superieura} ({\tt\protect\backslash superieura})}%
+\index{Magic di N'Konga (auteur c\'{e}l\`{e}bre)}%
+ \texttt{french}).
+\end{resume}
+
+\bigskip Notez que les deux environnements \verb|resume| et \verb|motsclef|
+(ainsi que \verb|keywords|)
+sont des apports de \FP.
+
+\bigskip Si le libell\'{e} << R\'{e}sum\'{e} >> appara\^{\i}t dans la partie
+ anglaise, cela
+signifie que \FP\ ne poss\'{e}dait pas de d\'{e}finition
+d'\verb|\abstract| et donc l'a remplac\'{e} par \verb|\resume|. Cela signifie
+aussi que les libell\'{e}s anglais n'ont pas \'{e}t\'{e} d\'{e}finis
+(\verb|\captionnames|%
+\footnote{Une extension {\tt fenglish} est fournie conjointement avec
+\FP\ ; {\tt\backslash captionnames} y est d\'{e}fini.
+Cette extension {\tt
+fenglish} est automatiquement appel\'{e}e par \FP\ dans le
+cas que nous avons cit\'{e}.}
+ n'\'{e}tait pas d\'{e}fini par les extensions appel\'{e}es avant
+ \FP).
+Rappelez-vous aussi que \verb|\abstract| ne fait pas partie de la classe
+de document \verb|book|.
+
+Remarquez les diff\'{e}rences entre les num\'{e}ros de notes de bas de page en
+fran\c{c}ais et en anglais, ainsi que l'impression de ce m\^{e}me num\'{e}ro en
+bas de la page.
+
+\english\newpage
+\begin{keywords} %???\relax% for AMS which has its own macro with #1
+French, Style, Option, Package, French-Speaking usage, English, Multilingual.
+\end{keywords}
+
+\begin{abstract} The object of this paper is to test intensively \FP.
+\end{abstract}
+\NL1
+
+\bigskip Notice that the three environments
+\verb|resume|, \verb|keywords| and \verb|motsclef|
+are all introduced by \FP.
+
+\bigskip Notice that if the abstract name printed here is not ``Abstract'' you
+are using packages that have no \verb|\abstractname| defined for eng\-lish.
+ The english package defining such captions is loaded only
+if \verb|\captionsnames|%
+\footnote{The {\tt fenglish} package is given with \FP,
+so {\tt$\backslash$captionnames} are normally defined because
+\FP\ is calling automatically the {\tt fenglish} package in the
+pre\-viously cited case.} was
+previously undefined. (Remember also that as \verb|\abstract| is not defined
+in the \verb|book| document class the \FP\ assumes it is a
+\verb|\resume|.)
+
+Notice the different typesetting of the footnote numbers in French and English
+as well as the printing of that numbers before the footnote text.
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\french
+\part{Ce qui marche est ici...}
+\disallowuchyph% ce que je prefere...
+
+\chapter{Avertissements}
+
+Seul le document authentique qui est fourni par l'auteur
+ sous une forme compos\'{e}e
+constitue la r\'{e}f\'{e}rence. Cela veut dire que l'installateur de \FP\
+sur un syst\`{e}me doit comparer son r\'{e}sultat
+(sous forme papier ou
+fichier \verb|.dvi|) avec la forme authentique fournie par l'auteur.
+
+\bigskip
+
+\bigskip \FP\ a \'{e}t\'{e} con\c{c}u pour fonctionner
+avec la majorit\'{e} bas\'{e}s sur \LaTeX{}
+\footnote{Au si\`{e}cle dernier (XX\ieme), \FP\ \'{e}tait appel\'{e} << style
+\texttt{french} >> et pouvait fonctionner en dehors de \LaTeX\ mais
+l'effort pour assurer cette facilit\'{e} dans de trop nombreux formats
+exotiques \'{e}tait totalement disproportionn\'{e} ; ceci a donc \'{e}t\'{e}
+abandonn\'{e} (au moment de la sortie de \LaTeXe).}%
+.
+
+\bigskip \AllTeX{} est mon logo ; il symbolise {\em tous les \TeX{}} ; on peut
+l'imprimer correctement dans toutes les polices ({\em \AllTeX}, {\bf \AllTeX},
+{\sf \AllTeX}, {\tt \AllTeX}, ...) gr\^{a}ce \`{a} la partie NFSS de \LaTeXe%
+\footnote{Le document de r\'{e}f\'{e}rence ({\tt frenchrf})
+a \'{e}t\'{e} produit avec NFSS. Ce document-ci a \'{e}t\'{e} compos\'{e} avec le format
+{\tt \fmtname}.}
+.
+
+\newpage\english Only the authentic author's document in a composed form is
+the reference. That means that the on site \FP\ installator must
+compare his result (paper or \verb|.dvi| file) with the authentic form
+provided by the author.
+\NL3
+
+\bigskip \FP\ was designed to work with all {\em formats\/}
+based on \LaTeX.
+
+\bigskip \AllTeX{} is my logo ; it's a symbol for expressing
+{\em all \TeX{}} ; one can print it correctly in all shapes
+({\em \AllTeX}, {\bf \AllTeX},
+{\sf \AllTeX}, {\tt \AllTeX}, etc.) due to the NFSS part of \LaTeXe%
+\footnote{The
+reference document was produced with NFSS of {\tt \fmtname}.}%
+.
+
+\french
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\chapter{La torture}
+
+\section{Le saviez-vous ?} Nos journaux, livres, revues,
+articles scientifiques ou autres ont \'{e}t\'{e}
+ pendant ces trente derni\`{e}res ann\'{e}es imprim\'{e}s
+par des machines d'origine
+am\'{e}ricaine. Ainsi, petit \`{a} petit, nous perd\^{\i}mes
+l'habitude de lire des
+majuscules accentu\'{e}es parce que tout simplement les polices
+ de caract\`{e}res
+utilisables sur ces machines n'en comportaient pas.
+
+L'usage de plus en plus g\'{e}n\'{e}ralis\'{e} de l'infor\-ma\-tique
+{\em am\'{e}ricaine} fit ainsi dispara\^{\i}tre pendant un temps tous
+ les accents de notre langue \'{e}crite.
+
+De la m\^{e}me mani\`{e}re un certain nombre de
+{\em mauvaises habitudes} furent
+prises quasiment inconsciemment tout simplement parce que les programmes
+informatiques ne pouvaient pas faire autrement. Ainsi de nombreuses {\it
+coquetteries} de notre typographie sont tomb\'{e}es dans l'oubli.
+
+Saviez-vous par exemple qu'on n'imprime pas des guillemets comme ceci `` '' ni
+m\^{e}me ` ' mais ainsi << >> ? Nous nous autoriserons toutefois
+ \`{a} utiliser dans
+ce document ces guillemets %\noenglishquote
+(` ') que nous consid\'{e}rons comme
+{\em techniques}.
+
+\newpage\english \section{Did you know that?}
+Our (french)
+newspapers, books, magazines, scientific articles and other things have
+been printed with american machines during these last thirty years. So our
+habits to read accented uppercase letters declined because they simply were
+not included in the machinery.\NL2
+
+Together with American computer usage growth, all french
+diacritics disappeared from our french written language.\NL1
+
+In a same way {\em bad
+habits} took place, inconsciously, for the only reason that computer programs
+could not do otherwise. So, a lot of french typographic {\em coquetteries\/}
+are largely forgotten.\NL2
+
+ Did you know for example that we never typeset french
+guillemets like this `` '' neither ` ' but%
+{\makeatletter\def\GOfrench{T1}\ifx\GOfrench\f@encoding\else%
+\footnote{We switched to \emph{French} here to be able %
+ to print valid glyphs.}%
+\fi} %
+\begin{french}<< and >>\end{french}? Instead, we will
+authorised ourselves to use (` ') in this document
+because we consider they are {\em technical} guillemets.
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\newpage\french
+*** Cet espace est laiss\'{e} intentionellement \`{a} blanc ***
+\NL3
+\section{Typographie fran\c{c}aise}
+%\noenglishquote
+La typographie fran\c{c}aise est sp\'{e}cifique en ce qui concerne
+l'utilisation des signes sui\-vants :
+`\verb|.| \verb|:| \verb|;| \verb|!| \verb|?| \verb|<<| \verb|>>|'.
+
+La r\'{e}partition des espaces dans une ligne se fait de fa\c{c}on
+\'{e}quitable entre les
+mots (jamais \`{a} l'int\'{e}rieur des mots) et apr\`{e}s
+la ponctuation (c'est le
+\verb|\frenchspacing| de \TeX{}) contrairement \`{a} la
+ typographie anglaise.
+
+Les `\verb|; ! ?|' doivent \^{e}tre pr\'{e}c\'{e}d\'{e}s d'une espace fine
+ins\'{e}cable. C'est
+ce que nous avons appliqu\'{e} dans \FP.
+Le cas du `\verb|?|'
+a \'{e}t\'{e} trait\'{e} sp\'{e}cialement car l'espace fine ayant
+\'{e}t\'{e} jug\'{e}e trop grande (par
+des sp\'{e}cialistes), a \'{e}t\'{e} r\'{e}duite tout en adjoignant une peu de
+{\em glue} d'extensibilit\'{e}.
+
+En ce qui concerne le `\verb|:|', le code typogra\-phi\-que%
+\footnote{Nous
+avons choisi d'adopter les recommandations de l'imprimerie nationale
+fran\c{c}aise.} pr\'{e}cise qu'il est pr\'{e}c\'{e}d\'{e}
+d'une espace {\em mot\/}
+ins\'{e}cable.
+D'autres ont jug\'{e} que c'\'{e}tait inesth\'{e}tique et cela a \'{e}t\'{e}
+remplac\'{e} par une espace fine.
+
+Les guillemets fran\c{c}ais << doivent \^{e}tre suivis d'une espace mot
+ins\'{e}cable qui
+a \'{e}t\'{e} remplac\'{e}e ici par une espace moindre.
+Les guillemets fermants >>
+sont, eux, pr\'{e}c\'{e}d\'{e}s de la m\^{e}me espace.
+
+\SmsG%
+Lorsque la ligne n'est pas assez remplie et qu'il existe un `:', les
+typographes ont --~semble-\hbox{t-il}~-- l'habitude
+de r\'{e}partir largement les espaces autour
+des deux points. C'est ce qui a \'{e}t\'{e} fait dans \FP\ qui
+pourra \'{e}ventuellement produire une ligne :
+peu remplie\footnote{Le cas pr\'{e}sent\'{e} ici a \'{e}t\'{e}
+cr\'{e}\'{e} artificiellement et peut donc appara\^{\i}tre exag\'{e}r\'{e} dans
+certaines mises-en-pages.}%
+\penalty-10000%
+ ou aussi bien une ligne se terminant ainsi : << {\em com\-me % \- pour fourier
+font les pros\/} >>
+lorsqu'ils ne trouvent pas d'autre moyen mais il devrait s'agir que de cas
+extr\^{e}mes. \`{A} noter que cela a pour avantage de r\'{e}duire les
+\verb|over/under-full hbox| de fa\c{c}on significative.
+
+Paragraphe de remplissage...\\ ...\\... pour v\'{e}rifier que le `:' ne
+termine ni la page ni la colonne. Ainsi :
+
+%\englishquote
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\begin{itemize}
+\item %qu'il s'agisse de verbatim ou d'une liste d'\'{e}l\'{e}ments
+les deux points et le texte qui suit
+sont tous deux sur la m\^{e}me page.
+\end{itemize}
+%\newpage % already done with the previous list
+\FmsG%
+\english
+
+\smallskip
+
+\section{French printing}
+
+French printing use specific typographic rules specially in concern with
+the following: `. : ; ! ?' and french guillemets.
+
+Interword spacing in a line is allways equal (and never modified inside a
+word). It's the same way after punctuation (standard \verb|\frenchspacing|) as
+opposed to the english typography.\NL1
+
+All `; ! ?' are preceeded by a thin and uncuttable space. We apply this
+automatically in \FP. (We have added few stretching {\em glue} to
+the question mark).\NL2
+
+Regarding the `:' we have not inserted an inter-word space but a thin space
+and also have added some glue.\NL2
+
+\smallskip
+French guillemets are processed the same way. \NL3
+
+In an {\em underfull\/} line containing a `:' man has habits to share spaces
+around the double points. This way used in \FP\ can also produce a
+line with a ragged right, as shown in the french column. This technique
+ reduce a lot of {\em overfull} and {\em underfull} {\tt hboxes}
+produced by \TeX{}.
+\NL3
+
+As shown also, \FP\ is reluctant to print a double point at the
+end of a page or a column.
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\newpage\french%\noenglishquote
+\section[Dactylographie fran\c{c}aise]{Rappels concernant la \newline
+dactylographie}
+
+Les habitudes de saisie c.-\`{a}-d. les habitudes dactylographiques,
+ veulent que les signes suivants
+`\verb|:| \verb|;| \verb|!| \verb|?| \verb|>>|'
+soient toujours pr\'{e}c\'{e}d\'{e}s d'un blanc
+(barre d'espace sur les claviers) et les \verb|<<| toujours
+suivis d'un blanc. \FP\ remplacera
+automatiquement ce blanc (\`{a} la composition) par l'espace appropri\'{e}e.
+
+{\moretolerance\moretolerance\moretolerance
+Les guillemets fran\c{c}ais << (et respectivement >>)...
+\footnote{\tthyphenation Avec les options fournies
+telles \vers|A4| et \vers|double|\-\vers|column| on obtient
+ l\`{a} un \vers|overfull| \vers|hbox| difficilement r\'{e}ductible
+de fa\c{c}on automatique mais je l'ai r\'{e}duit
+avec 3 \texttt{\backslash moretolerance}%
+\notthyphenation.}
+\par}
+%\nooverfullhboxmark
+
+Les vrais guillemets fran\c{c}ais << (et respectivement >>)
+s'utilisent toujours doubl\'{e}s (\verb|<<| et respectivement
+\verb|>>|). Ainsi $<$ et $>$ ne
+sont que des signes math\'{e}matiques et n'ont pas
+d'autre sens en fran\c{c}ais que : {\em inf\'{e}rieur \`{a}} et
+{\em sup\'{e}rieur \`{a}}.
+
+Il est fortement conseill\'{e} de poursuivre
+ces habitudes dactylographiques qui
+contribuent aussi \`{a} \'{e}claircir le texte
+saisi et donc ainsi \`{a} faciliter les
+corrections ult\'{e}rieures.
+\NL1
+
+\subsection[Test de la ponctuation fran\c{c}aise
+ \mdseries`\protect\myverb|. : ; ! ?|']
+{Test de la ponctuation \newline fran\c{c}aise
+ \mdseries`\protect\myverb|. : ; ! ?|'}
+
+Le deux points s'imprime comme ceci : s'il est pr\'{e}c\'{e}d\'{e} d'un blanc
+(au moins un) sinon rien n'est chang\'{e} (par ex. 11:33). Notez
+l'espace apr\`{e}s le point terminant la phrase ; le point virgule
+est aussi pr\'{e}c\'{e}d\'{e} d'une espace fine s'il n'est pas coll\'{e}
+au mot le pr\'{e}c\'{e}dant (comme dans cet exemple d\^{u} \`{a} une faute
+de frappe; assez fr\'{e}quente).\\
+{\moretolerance
+Oh ! Quoi-donc ? Notez ici l'espacement utilis\'{e}
+devant le `!' et le `?'. Il ne faut
+pas oublier aussi de taper le blanc avant, sinon? tout est
+%terriblement
+ coll\'{e}! Voyez-vous la diff\'{e}rence ? Bravo !
+}
+
+Mais pour les documents {\em mal\/} saisis (c.-\`{a}-d. sans blanc) il est
+toujours possible de sp\'{e}cifier la sous-option \verb|\untypedspaces|
+\untypedspaces pour obtenir une insertion automatique des espaces
+manquants comme ici! o\`{u} il avait \'{e}t\'{e} saisi `\verb|ici!|'.
+V\'{e}rifions pour les autres ponctuations :;? \typedspaces que nous
+n'obtenons pas :;? serr\'{e}es comme ici.
+
+V\'{e}rification de l'espacement :
+
+\noindent
+\verb| \typedspaces X~; Y ; Z;| = \typedspaces X~; Y ; Z;
+
+\noindent
+\verb|\untypedspaces X~; Y ; Z;| = \untypedspaces X~; Y ; Z; \typedspaces
+
+\newpage\english
+\section{French typing}
+French typists have some habits. For example they type a space before `: ; ! ?
+\verb|>>|' and after \verb|<<|. \FP\ replace automatically this
+blank space by the appropriate spacing.
+
+There is only one kind of quoting in French by the mean of guillemets which
+are allways typed \verb|<<| and \verb|>>|. Usual english simple and double
+quotes must be prohibited.
+
+\subsection{\mdseries%
+ \texttt{\textbackslash untypedspaces}}%
+This control command offers the ability to repair automatically a document
+badly typed i.e. in which spaces were not typed before french punctuation.
+This bypass can help but is not the good way to use daily because there are
+many cases where, for example, a double point must never be preceeded
+by a space.
+
+Now we verify that the spacing is unchanged in English:
+
+\noindent
+\verb| \typedspaces X~; Y ; Z;| = \typedspaces X~; Y ; Z;
+
+\noindent
+\verb|\untypedspaces X~; Y ; Z;| = \untypedspaces X~; Y ; Z; \typedspaces
+
+\subsection{\mdseries%
+ \texttt{\textbackslash wrongtypedspaces}}
+A french typist may input spaces before
+punctuation as it is usual in French. These unfortunate space
+ can be removed by simply letting \FP\ do it with* the control
+sequence:
+
+\begin{verbatim}
+\letpunctuationactivefor
+ \wrongtypedspaces
+\end{verbatim}
+
+\FRENCH% pour ne pas dire \french
+\letpunctuationactivefor\wrongtypedspaces
+\english
+Let's try the previous example:\par
+\noindent
+\verb| X~; Y ; Z;| = X~; Y ; Z;
+
+Now we say \verb|\nowrongtypedspaces|
+\nowrongtypedspaces to come back to the normal
+situation.
+
+\vfill
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\newpage\french
+\nowrongtypedspaces% to be sure it is set when english text is skipped
+\csname StopFrenchLbT\endcsname% special case, temporary.
+
+\section[Test des guillemets fran\c{c}ais, 7 (<%
+ < >%
+ >) et 8-bits (<< >>)]%
+{Test des guillemets \newline fran\c{c}ais (<< >>)}
+\hyphenation{nor-ma-le-ment}
+
+Les guillemets fran\c{c}ais s'\'{e}crivent et se saisissent
+<< normalement >> comme ceci :
+\verb|<< |{\tt nor}\-%
+{\tt male}\-{\tt ment }\verb|>>|
+ ou \'{e}ventuellement en italiques mais toujours
+\bgroup% for frenchle
+<< \em normalement\/ >> %
+\egroup% for frenchle
+; ici nous avons tap\'{e} au clavier :
+\verb|<< \em| {\tt normalement}\verb| >>|.
+Et en tapant par contre :\\ \verb|<<\em|
+ {\tt anormale\-ment (sans espace)}\verb|>>| \ on obtient...
+\bgroup% for frenchle
+<<\em anormale\-ment (sans espace)\/>>.
+\egroup% for frenchle
+Re\-mar\-quez que les guillemets font office d'acco\-lades \TeX{} et que donc
+les changements de polices sont restaur\'{e}s en sortant de la citation.
+
+Pour les documents d\'{e}j\`{a} saisis {\em sans espace} \FP\
+ins\'{e}rera syst\'{e}matiquement un espace \`{a} l'endroit
+d\'{e}sir\'{e} si l'on a donn\'{e} la sous-option \verb|\untypedspaces|.
+\untypedspaces
+Et en tapant \`{a} nouveau
+\verb|<<\em| {\tt anormale\-ment (sans espace)}\verb|>>| on obtient
+\bgroup% for frenchle
+<<\em anormalement (sans espace)\/>>.
+\egroup% for frenchle
+\typedspaces
+
+Parfois on d\'{e}sirera remplacer syst\'{e}matiquement tous les
+guillemets anglais (`` et '') d'un texte par de vrais guillemets
+fran\c{c}ais, il
+suffira alors de fournir l'\'{e}trange option :\\
+\texttt{\backslash noenglishdoublequotes}\\
+\noenglishdoublequotes pour obtenir : `` ''.
+
+`` '' (m\^{e}me test en d\'{e}but de paragraphe).\englishdoublequotes
+
+Lorsqu'une citation est faite dans un texte, celle-ci commence
+toujours par des guillemets. << Cette citation peut se poursuivre sur
+plusieurs paragraphes.
+
+Dans ce cas, le style %\verb|french|
+ins\'{e}rera syst\'{e}matiquement les guillemets n\'{e}cessaires
+en d\'{e}but de
+chaque paragraphe. >>
+
+Mais une citation peut aussi en contenir une autre. << Dans ce cas l'imprimerie
+ nationale pr\'{e}cise dans ses {\em R\`{e}gles typographiques} :
+\ancientguillemets
+ << Lors\-que la premi\`{e}re citation est
+elle-m\^{e}me plac\'{e}e entre
+guillemets, chaque ligne de la seconde d\'{e}butera par un
+guillemet ouvrant. >>
+Ce dispositif, comme on le voit, n'est pas mis en {\oe}uvre ici
+ (voir son application au paragraphe \ref{noeveryparguillemets}).
+ << La deuxi\`{e}me citation peut aussi...
+
+se poursuivre sur un ou
+plusieurs paragra\-phes. >> Notez bien qu'avant cette citation nous avons
+demand\'{e} les \verb|\ancientguillemets|
+pour produire ces guillemets fermants
+en d\'{e}but de ligne. Le \verb|\todayguillemets| r\'{e}tablit la
+situation une fois
+le deuxi\`{e}me niveau termin\'{e}. \todayguillemets
+
+{\makeatletter\def\GOfrench{T1}\ifx\GOfrench\f@encoding
+\enlargethispage{10pt}% increase probably due to EC fonts metrics?
+\fi}
+Il arrive que la fin d'une citation de deux\-i\`{e}me niveau
+co\"{\i}ncide avec celle
+du premier niveau. << Dans ce cas il faudra coder, comme ici :\\
+\verb|\endguillemets|
+\`{a} la place de ``\verb|>>|'' \endguillemets.
+
+Deux tests : \fbox{\begin{guillemets} XXX \end{guillemets}}
+et \fbox{X \begin{guillemets} XXX \end{guillemets} X} servant \`{a}
+v\'{e}rifier l'espacement quand on utilise \verb|\begin| et \verb|\end|.
+
+Le paragraphe suivant va alors d\'{e}marrer de fa\c{c}on
+tout \`{a} fait normale...
+
+On peut aussi coder :
+\begin{verbatim}
+\begin{guillemets}
+Une citation...
+\end{guillemets}
+\end{verbatim}
+ce qui donnera :
+\begin{guillemets}
+Une citation...
+\end{guillemets}
+et en tapant {\em \`{a} la \TeX} : \verb|\guillemets{}| \verb|Une citation...|
+\verb|\en|\vers|d|\-\vers|guillemets{}| nous devons obtenir absolument la m\^{e}me chose :
+\guillemets{} Une citation... \endguillemets{}
+
+V\'{e}rifions maintenant l'espacement dans les diff\'{e}rents cas :
+
+\noindent
+\fbox{\parbox{2cm}{<<X\dotfill X>>}} \%\texttt{\backslash typedspaces}
+ {\em sans blanc}
+
+\noindent
+\fbox{\parbox{2cm}{<< X\dotfill X >>}} \%\texttt{\backslash typedspaces}
+{\em normal}
+
+\noindent\untypedspaces
+\fbox{\parbox{2cm}{<< X\dotfill X >>}} \%\texttt{\backslash untypedspaces}
+{\em avec blanc}
+
+\noindent
+\fbox{\parbox{2cm}{<<X\dotfill X>>}} \%\texttt{\backslash untypedspaces}
+{\em sans blanc}
+\typedspaces
+
+\noindent
+\fbox{\parbox{3cm}{A blabla bla blabla : <<
+Ceci est mon test de c\'{e}sure >>}} <<...>> reste possible.
+
+\begin{flushleft}
+ Ceci est << un test avec \verb|\raggedright| >> qui
+--~th\'{e}oriquement~-- ne devrait plus nous poser de probl\`{e}me.
+\end{flushleft}
+
+\subsection{{\mdseries%
+\texttt{\textbackslash noeveryparguillemets}}}\label{noeveryparguillemets}
+Cette option permet de g\'{e}rer correctement les citations de second
+rang mais elle est tout \`{a} fait contraire
+ au processus \verb|\everypar| cit\'{e} pr\'{e}c\'{e}demment gr\^{a}ce auquel
+ les guillemets sont g\'{e}n\'{e}r\'{e}s automatiquement \`{a} chaque
+d\'{e}but de paragraphe.
+Voici ce que produit l'option {\em normale\/}
+\texttt{\backslash every\-par\-guil\-lemets} sur le paragraphe suivant :
+
+<< Tout le monde s'accorde \`{a} trouver l\'{e}gitime la division :
+{\tt extra-ordinaire}. Le cas des mots com\-pos\'{e}s est le seul
+\`{a} rencontrer
+cette unanimit\'{e}. Dans les autres, les opinions sont tr\`{e}s partag\'{e}es.
+ Frey est le plus cat\'{e}gorique : il n'admet de division selon la formation
+que pour des mots de composition compl\`{e}tement fran\c{c}aise, et la rejette
+sinon... Le {\em Code typographique}, tout en adoptant ce m\^{e}me point
+ de vue << ... [reconna\^{\i}t] n\'{e}anmoins que certains auteurs de travaux
+scientifiques pr\'{e}f\`{e}rent la division \'{e}ty\-mologique
+qui fait ressortir
+ la racine grecque ou latine. >> Quant \`{a} Gouriou, il \'{e}crit :
+<< On pr\'{e}f\`{e}rera cependant garder la coupure \'{e}tymologique
+ chaque fois que les composants sont {\em ais\'{e}ment} re\-connaissables. >>
+(L'italique est de Gouriou.)
+\marginpar{{\footnotesize Ici on a trich\'{e} avec des} \texttt{\backslash!}}
+\!Telle \!est aussi \!l'opinion \!de \!Girodet >>.
+
+Et voici l'effet de \verb|\noeveryparguillemets| :
+\noeveryparguillemets
+
+<< Tout le monde s'accorde \`{a} trouver l\'{e}gitime la division :
+{\tt extra-ordinaire}. Le cas des mots com\-pos\'{e}s est le seul
+\`{a} rencontrer
+cette unanimit\'{e}. Dans les autres, les opinions sont tr\`{e}s partag\'{e}es.
+ Frey est le plus cat\'{e}gorique : il n'admet de division selon la formation
+que pour des mots de composition compl\`{e}tement fran\c{c}aise, et la rejette
+sinon... Le {\em Code typo\-graphique}, tout en adoptant ce m\^{e}me point
+ de vue << ... [reconna\^{\i}t] n\'{e}anmoins que certains auteurs de travaux
+scientifiques pr\'{e}f\`{e}rent la division \'{e}ty\-mologique
+qui fait ressortir
+ la racine grecque ou latine. >> Quant \`{a} Gouriou, il \'{e}crit :
+<< On pr\'{e}f\`{e}rera cependant garder la coupure \'{e}tymologique
+ chaque fois que les composants sont {\em ais\'{e}ment} re\-connaissables. >>
+(L'italique est de Gouriou.)
+Telle est aussi l'opinion de Girodet >>.
+\everyparguillemets
+
+Il faut noter que cette option impose que le paragraphe commence et se
+termine par des guillemets. % sinon code \guillpar et \parguill
+C'est pour cela que nous n'avons pas mis cette option par d\'{e}faut.
+
+\subsubsection{Un test assez m\'{e}chant}
+Voici un exemple d'utilisation dans un environement \verb|quotation|%
+\footnote{Nous avons introduit \texttt{\backslash moretolerance}
+pour obtenir une composition correcte.} :
+\begin{quotation}
+\moretolerance\moretolerance\moretolerance
+<< Je ne peux mieux faire que de citer la d\'{e}finition qu'a donn\'{e}e
+de la gravure un de nos ma\^{\i}tres fondeurs, Fournier le Jeune :
+
+<< La scien\-ce du graveur, dit-il, consiste \`{a} conna\^{\i}tre la figure
+la plus parfaite que l'on puisse donner aux caract\`{e}res, les dimensions
+qu'ils doivent avoir et \`{a} les repr\'{e}senter sur l'acier pour les frapper
+sur le cuivre afin d'en former des matrices qui perp\'{e}tuent des lettres
+\`{a} l'infini par la fonte. \endguillemets
+\end{quotation}
+
+Le m\^{e}me exemple sans \verb|quotation| :
+
+<< Je ne peux mieux faire que de citer la d\'{e}finition qu'a donn\'{e}e
+de la gravure un de nos ma\^{\i}tres fondeurs, Fournier le Jeune :
+
+<< La scien\-ce du graveur, dit-il, consiste \`{a} con\-na\^{\i}tre la figure
+la plus parfaite que l'on puisse donner aux caract\`{e}res, les dimensions
+qu'ils doivent avoir et \`{a} les repr\'{e}senter sur l'acier pour les frapper
+sur le cuivre afin d'en former des matrices qui perp\'{e}tuent des lettres
+\`{a} l'infini par la fonte. \endguillemets
+\bigskip
+
+\noeveryparguillemets
+Puis avec \verb|\noeveryparguillemets| (c.-\`{a}-d. sans \verb|quotation|) :
+
+<< Je ne peux mieux faire que de citer la d\'{e}finition qu'a donn\'{e}e
+de la gravure un de nos ma\^{\i}tres fondeurs, Fournier le Jeune :
+
+<< La scien\-ce du graveur, dit-il, consiste \`{a} conna\^{\i}\-tre la figure
+la plus parfaite que l'on puisse donner aux caract\`{e}res, les dimensions
+qu'ils doivent avoir et \`{a} les repr\'{e}senter sur l'acier pour les frapper
+sur le cuivre afin d'en former des matrices qui perp\'{e}tuent des lettres
+\`{a} l'infini par la % En cas d'arr\^{e}t \`{a} cet endroit : le format
+fonte. \endguillemets%.fmt utilis\'{e} n'est prob. pas ds le bon codage !
+\bigskip
+
+Et enfin avec \verb|quotation|, voil\`{a}
+ce que cela peut donner\label{quotation} :
+%%% La \marginpar suivante pose un pb de ``Lost Float'' qd elle est
+%%% placee plus loin, pourquoi ?
+\marginpar{{\footnotesize Il y a ici un probl\`{e}me \`{a} \'{e}tudier en 2 colonnes !}}
+\begin{quotation}
+<< Je ne peux mieux faire que de citer la d\'{e}finition qu'a donn\'{e}e
+de la gravure un de nos ma\^{\i}tres fondeurs, Fournier le Jeune :
+
+<< La scien\-ce du graveur, dit-il, consis\-te \`{a} conna\^{\i}tre la figure
+la plus parfaite que l'on puisse donner aux caract\`{e}res, les dimensions
+qu'ils doivent avoir et \`{a} les repr\'{e}senter sur l'acier pour les frapper
+sur le cuivre afin d'en former des matrices qui perp\'{e}tuent des lettres
+\`{a} l'infini par la fonte.
+ \endguillemets
+\end{quotation}
+\everyparguillemets
+On notera ici les espaces inter-mots beaucoup plus {\em tol\'{e}rants}. C'est
+la seule solution trouv\'{e}e pour arriver \`{a} imprimer
+quelque chose d'\`{a} peu
+pr\`{e}s correct en double colonnage.
+
+\vfill
+Terminons la page en anglais pour tester le haut de page. Les guillemets
+doivent \^{e}tre bons avec le codage T1.
+
+\english
+Let's complete the page with english text in order to test and show
+how will be printed the header.
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\newpage\french
+\onecolumn
+\subsubsection{M\^{e}me test en \mdseries\texttt{\textbackslash onecolumn}}
+Voici un exemple en environement \verb|quotation| :
+\begin{quotation}
+<< Je ne peux mieux faire que de citer la d\'{e}finition qu'a donn\'{e}e
+de la gravure un de nos ma\^{\i}tres fondeurs, Fournier le Jeune :
+
+<< La scien\-ce du graveur, dit-il, consiste \`{a} conna\^{\i}tre la figure
+la plus parfaite que l'on puisse donner aux caract\`{e}res, les dimensions
+qu'ils doivent avoir et \`{a} les repr\'{e}senter sur l'acier pour les frapper
+sur le cuivre afin d'en former des matrices qui perp\'{e}tuent des lettres
+\`{a} l'infini par la fonte. \endguillemets
+\end{quotation}
+
+Le m\^{e}me exemple sans \verb|quotation| :
+
+<< Je ne peux mieux faire que de citer la d\'{e}finition qu'a donn\'{e}e
+de la gravure un de nos ma\^{\i}tres fondeurs, Fournier le Jeune :
+
+<< La scien\-ce du graveur, dit-il, consiste \`{a} conna\^{\i}tre la figure
+la plus parfaite que l'on puisse donner aux caract\`{e}res, les dimensions
+qu'ils doivent avoir et \`{a} les repr\'{e}senter sur l'acier pour les frapper
+sur le cuivre afin d'en former des matrices qui perp\'{e}tuent des lettres
+\`{a} l'infini par la fonte. \endguillemets
+\bigskip
+
+\noeveryparguillemets
+Puis avec \verb|\noeveryparguillemets| (sans \verb|quotation|) :
+
+<< Je ne peux mieux faire que de citer la d\'{e}finition qu'a donn\'{e}e
+de la gravure un de nos ma\^{\i}tres fondeurs, Fournier le Jeune :
+
+<< La scien\-ce du graveur, dit-il, consiste \`{a} conna\^{\i}tre la figure
+la plus parfaite que l'on puisse donner aux caract\`{e}res, les dimensions
+qu'ils doivent avoir et \`{a} les repr\'{e}senter sur l'acier pour les frapper
+sur le cuivre afin d'en former des matrices qui perp\'{e}tuent des lettres
+\`{a} l'infini par la fonte. \endguillemets
+\bigskip
+
+Et enfin avec \verb|quotation| :
+\begin{quotation}
+ \let\bkORI\break
+ %\def\break{\bkORI\hbox to 0pt{/}}% for debug
+ %\ancientguillemets% for debug
+<< Je ne peux mieux faire que de citer la d\'{e}finition qu'a donn\'{e}
+de la gravure un de nos ma\^{\i}tres fondeurs, Fournier le Jeune :
+
+<< La scien\-ce du graveur, dit-il, consiste \`{a} conna\^{\i}tre la figure
+la plus parfaite que l'on puisse donner aux caract\`{e}res, les dimensions
+qu'ils doivent avoir et \`{a} les repr\'{e}senter sur l'acier pour les frapper
+sur le cuivre afin d'en former des matrices qui perp\'{e}tuent des lettres
+\`{a} l'infini par la fonte. \endguillemets
+\end{quotation}
+\everyparguillemets
+
+\subsubsection{Test de << stretchability >>}
+
+Les espaces doivent \^{e}tre \'{e}galement r\'{e}partis sur la ligne :
+
+\medskip
+\hbox to \hsize{etiord-gauche\footnote{En plain \TeX{} l'espacement est ici
+\label{etiord}
+ curieusement incorrect ! ...}
+ << centre-ertnec >> \hbox{}\footnote{... alors qu'il faudrait
+la m\^{e}me r\'{e}partition
+ de l'espace.}%
+ ehcuag-droite}
+\medskip
+
+\subsection{Test des commandes \mdseries\texttt{\textbackslash ifnum}}
+
+\ifnum 1 < 3 1\verb| < |3 est VRAI, bien s\^{u}r !
+ \else 1\verb| < |3 est FAUX ! \fi
+comme
+\ifnum 3 > 1 3\verb| > |1 est aussi VRAI, bien s\^{u}r !
+ \else 3\verb| > |1 est FAUX ! \fi
+
+\medskip
+
+\subsection{Test des commandes \mdseries\texttt{\textbackslash everypar}}
+
+{J'ai cod\'{e} dans cette section \verb|\everypar{$++\,$}| : \everypar{$++\,$}
+
+Paragraphe 1 << citation niveau 1
+
+Paragraphe 2 << citation niveau 2
+
+Paragraphe 3 fin citation niveau 2 >> puis fin niveau 1 >>
+
+Paragraphe 4}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\newpage% tjrs en 1 colonne
+\hbox{}\ifx\itshape\undefined\else% avoid old frencht crash
+\subsection{Test de fermeture pr\'{e}matur\'{e}e}
+
+Il arrive que les guillemets soient ferm\'{e}s dans un environnement
+plus int\'{e}rieur qui n'apparie donc pas correctement les blocs.
+Voici un exemple d'utilisation :
+
+\begin{verbatim}
+Ma\^{\i}tre Corbeau dit \`{a} son clerc : << \itshape Cher coll\`{e}gue,
+
+\begin{itemize}
+\item Ah que vous \^{e}tes joli !
+\item Ah que vous me semblez beau ! >> \upshape
+et s'enfuit de ce pas...
+\end{itemize}
+
+\endguillemets
+\textsf{Quel homme \'{e}trange, n'est-ce pas ?}
+\end{verbatim}
+
+Voici ce que cela donne comme composition :
+
+\medskip
+\bgroup% for frenchle
+Ma\^{\i}tre Corbeau dit \`{a} son clerc : << \itshape Cher coll\`{e}gue,
+
+\SmsG%
+\begin{itemize}
+\item Ah que vous \^{e}tes joli !
+\item Ah que vous me semblez beau ! >> \upshape
+et s'enfuit de ce pas...
+\end{itemize}
+\FmsG%
+
+\endguillemets
+\egroup% for frenchle
+\textsf{Quel homme \'{e}trange, n'est-ce pas ?}
+
+\medskip
+On notera plusieurs choses. Premi\`{e}rement il a fallu
+r\'{e}tablir \verb|\upshape| apr\`{e}s les guillemets fermants,
+du fait du mauvais appariement des blocs. Ensuite un message
+sort indiquant une fermeture pr\'{e}matur\'{e}e des guillemets.
+Cette fermeture restant incompl\`{e}te on note enfin que l'on a forc\'{e}
+un \verb|\endguillemets| pour clore proprement et d\'{e}finitivement
+l'environnement guillemets.
+
+\subsection{\mdseries\texttt{\textbackslash everyparguillemetsremoved}}
+\label{noeveryparguillemetsremoved}
+Dans le m\^{e}me exemple nous pouvons aussi interdire la g\'{e}n\'{e}ration
+automatique des guillemets ouvrants \`{a} chaque d\'{e}but de paragraphe ;
+il faut alors saisir \verb|\everyparguillemetsremoved| :
+\everyparguillemetsremoved
+
+\medskip
+\bgroup% for frenchle
+Ma\^{\i}tre Corbeau dit \`{a} son clerc : << \itshape Cher coll\`{e}gue,
+
+\SmsG%
+\begin{itemize}
+\item Ah que vous \^{e}tes joli !
+\item Ah que vous me semblez beau ! >> \upshape
+et s'enfuit de ce pas...
+\end{itemize}
+\FmsG%
+
+\endguillemets
+\egroup% for frenchle
+\textsf{Quel homme \'{e}trange, n'est-ce pas ?}
+
+\medskip
+Il suffit ensuite de r\'{e}tablir \verb|\everyparguillemets|.
+\everyparguillemets
+\fi% ifx \itshape
+
+\subsection{Test de l'espacement}
+{\def\marque#1{\vbox{\halign{\hfil##\hfil\cr
+ \llap{\vrule width4.5mm height.4pt}%
+ \rlap{\vrule width4.5mm height.4pt}\cr
+ \noalign{\vskip-1cm}%
+ #1\cr}}}
+ \Huge
+ \def\ecartement{\fbox{a << \marque{\hbox{$|$}} >> b}}
+ \ecartement
+}
+% Difference de taille a voir entre les deux %%%%%%
+\setbox7\hbox{\leftguillemets\ X}
+\setbox8\hbox{X\ \rightguillemets}
+\SmsG%
+\message{Taille des boites page \thepage\space \string:
+ \the\wd7=\string?=\the\wd8}
+\FmsG%
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\onecolumn
+\newpage
+\hbox{}
+\vfill
+\centerline{\Large Page intentionnellement laiss\'{e}e blanche}
+\vfill
+\twocolumn
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\newpage
+
+\subsection{Guillemets interrompus}
+Une citation peut \^{e}tre en anglais et donc se commencer par
+\vers|<< \|\vers|english| et se terminer par \vers|\|\vers|french >>|. Ce cas
+ne doit plus g\'{e}n\'{e}rer de message
+{\em fermeture de guillemets non ouverts} !
+Voici le test, r\'{e}alis\'{e} ici
+tout d'abord avec l'environnement \vers|nonfrench| :
+
+\medskip
+1 \fbox{<< \begin{nonfrench}% LaTeX keeps space
+ Text in English
+ \end{nonfrench}% LaTeX keeps space
+ >>}
+
+
+\medskip
+Puis avec : \\
+\verb|\begin{english}| ... \verb|\end{english}| :
+
+\medskip
+% bypass here our TeX--XeT emulation to avoid message: english environment
+% ended by \end{guillemets}
+\def\temp{\begingroup}
+\ifx\beginL\temp
+\else
+{% local redef of english for plain and our specific test file
+ \ifx\undefined\englishORI\else\let\english\englishORI\fi%
+2 \fbox{<< \begin{english}% LaTeX keeps space
+ Text in English
+ \end{english}% LaTeX keeps space
+ >>}
+
+\medskip
+Et enfin avec \verb|\|\verb|english| ... \verb|\endenglish| :
+
+\medskip
+3 \fbox{<< {\csname english\endcsname
+ Text in English
+ \csname endenglish\endcsname}% space here to remove
+ >>}
+}% local redef of english for plain test
+\fi
+
+\medskip
+Ceci avait aussi pour but de tester ces possibilit\'{e}s de
+changement de langage et de v\'{e}rifier l'espacement qui
+devrait \^{e}tre ainsi :
+
+\medskip
+0 \fbox{<< Text in English >>}
+
+\noenglishdoublequotes
+\subsection{`` {\mdseries\texttt{\textbackslash noenglishdoublequotes}} ''}
+
+Nous avons mis la commande \vers|\noenglish|\-\vers|doublequotes| juste avant
+le titre de section de fa\c{c}on \`{a} remplacer les << quotes >> anglaises
+par des guillemets fran\c{c}ais dans ce titre.
+Il s'agit de v\'{e}rifier aussi que la g\'{e}n\'{e}ration des fichiers auxiliaires
+\verb|.aux| et \verb|.toc| ne pose pas de probl\`{e}me lorsque ces fichiers
+sont r\'{e}utilis\'{e}s. Bien s\^{u}r, si cette option n'est pas activ\'{e}e pour tout le
+document, comme ici, on ne retrouvera pas les guillemets fran\c{c}ais
+dans la table des mati\`{e}res.
+
+\noenglishdoublequotes
+
+\english% histoire de changer de langue ?
+
+\newpage\french
+\subsection%{<< no-french guillemets >>}
+ {\mdseries\texttt{\textbackslash nofrenchguillemets}}
+En codant \verb|\nofrenchguillemets|
+\nofrenchguillemets on n'utilise plus
+les guillemets programm\'{e}s dans l'extension {\tt french}. Si on les utilise
+malgr\'{e} tout, le r\'{e}sultat d\'{e}pendra de la police. Ici nous utilisons la
+police \fontname\font{} et nous obtenons :
+
+<%
+ < en 7-bits >%
+ >
+
+et aussi :
+
+<< en 8-bits >>.
+
+R\'{e}activons maintenant les guillemets avec la commande
+\verb|\frenchguillemets|
+\frenchguillemets et faisons le m\^{e}me test :
+
+<%
+ < en 7-bits >%
+ >
+
+et aussi :
+
+<< en 8-bits >>. Voyez-vous ?
+\vfill
+\subsection{Haut de page+guillemets}
+
+\subsubsection{En 8-bits}
+Il ne devrait pas y avoir de probl\`{e}me du tout.
+Car, puisqu'il s'agit d'un guillemet en 8-bits, cela doit
+\^{e}tre forc\'{e}ment un vrai guillemet fran\c{c}ais. Mais, malheureusement,
+{\em la solution pour l'impl\'{e}menter n'est pas encore trouv\'{e}e avec
+le codage OT1}.
+Le codage de fonte de ce document imprime :
+\nonfrench <%
+ < >%
+ >%
+\endnonfrench{}
+ (doit \^{e}tre parfait en T1).
+
+\subsubsection{En 7-bits}
+En codage OT1 les guillemets 7-bits de haut de page ne peuvent \^{e}tre
+bons sur cette page
+ {\bf QUE} parce que nous avons termin\'{e} la
+page en fran\c{c}ais, sinon nous aurions eu :
+\ifx\textexclamdown\undefined
+ \def\textexclamdown{!`}\def\textquestiondown{?`}
+\fi
+\textexclamdown\textexclamdown{} et \textquestiondown\textquestiondown
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\newpage
+\hbox{ }\NL{25}
+
+\subsection{Guillemets et maths}
+
+L'\'{e}quation suivante ne doit plus produire le fameux message :
+
+{\tt ! Argument of \backslash \string @genG % string pour amslatex
+ has an extra % { pour emacs
+ $\}$% c'est un \delimiter qui pose pb tq avec frencht d'ou mode math
+.}
+
+$$U^{k+1}=U^{k}- {< g_{k},d_{k} >}$$
+
+\section{D'autres guillemets}\label{autres}
+Avec \FP\ il est possible de substituer automatiquement aux
+guillemets `anglais' la forme \noenglishquote `que voici' en donnant la
+sous-option \verb|\noenglishquote|.
+Mais attention, les apostrophes deviennent des accents
+comme dans : {\em il s'agit ici de l'exemple}
+\englishquote qui aurait d\^{u} \^{e}tre imprim\'{e} :
+{\em il s'agit ici de l'exemple}.
+Un usage intensif de cette option est plut\^{o}t \`{a} d\'{e}conseiller.
+
+\newpage\english
+\section{French guillemets}
+Using french guillemets in an english document (\verb|<<| and \verb|>>|) will
+give (depending of font encoding) that: << and >>, it is normal!
+
+As you can look in the previous columns, french guillemets have specific
+rules. They are used for quotation when an author is cited or each time an
+emphasis is needed. Normally, italic is not used inside a quoted french
+text, excepted when you really want to show some wording.
+
+When opened, each paragraph of the quoted text will start left
+ with the opening french guillemets.
+
+Another quotated text can take place inside a first level. This second level
+citation is also very specific. Each line must start with guillemets.
+
+The style designer, from time to time, chose to apply here an ancient rule
+by putting here closing guillemets.
+
+The technical tools involved in \FP\
+ disallow to have at the same time
+the \verb|\everypar| possibility and the second level mechanism.
+
+\subsection{Guillemets and maths}
+
+The following equation is always correct:
+
+$$U^{k+1}=U^{k}- {< g_{k},d_{k} >}$$
+
+and never produce an error message.
+\NL1
+
+\section{Other guillemets}
+With \FP\ it is possible to replace english guillemets by
+diacritic caracters. But, be careful, all apostrophes will be diacritics too.
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\newpage\french
+\section{Trois petits points}
+Les points de suspension sont : ... et non pas ceux de \TeX{} : $\ldots{}$
+\noTeXdots
+En codant \verb|\noTeXdots| les commandes \verb|\dots| ou \verb|\ldots| de
+\LaTeX{} donneront : $\ldots{}$ Mais l'option par d\'{e}faut a \'{e}t\'{e}
+volontairement maintenue au standard (\verb|\TeXdots|) puisqu'il suffit
+de ne pas les utiliser.\TeXdots
+
+\section{Crochets}
+IBM, en son temps, avait cr\'{e}\'{e} l'EBCDIC dans lequel ne figurait pas
+les crochets ([ ]). C'est la raison pour laquelle les utilisateurs IBM
+ont parfois substitu\'{e} $<$ et $>$ aux crochets. La sous option
+\verb|\EBCDICbrackets| \EBCDICbrackets
+permet de les remplacer comme ici <automatiquement> par des crochets.
+Mais faites attention, les doubles guillemets
+\verb|<|\verb|<| et \verb|>|\verb|>| % pour eviter la conversion 8bits
+ ne donneront jamais des crochets mais << et >>
+(sauf en mode \verb|verbatim|). On peut en g\'{e}n\'{e}ral
+se contenter de \verb|< <| et \verb|> >| pour obtenir < < et > >.
+On revient \`{a} la situation ant\'{e}rieure en tapant la commande suivante :
+\verb|\normalbrackets|\normalbrackets.
+
+\section{D\'{e}bordements}
+Nous venons de choisir l'option d'indication de d\'{e}bordement de ligne
+\verb|\overfullhboxmark| et nous voyons son
+effet lorsque la ligne ne peut \^{e}tre coup\'{e}e gr\^{a}ce \`{a} l'impression
+de la petite bo\^{\i}te noire.
+%(cf. page \pageref{debordement}).
+Cette option est activ\'{e}e au minimum pour une page enti\`{e}re.
+Ne pas sp\'{e}cifier l'option et son contraire sur la m\^{e}me page sinon
+l'effet est inchang\'{e}.
+
+\labelsinmargin
+\section{\mdseries\texttt{\textbackslash labelsinmargin}}%
+\label{labels: in: margin}
+\FP\ offre la possibilit\'{e}, comme cela a \'{e}t\'{e} demand\'{e}
+\`{a} partir de cette section, d'imprimer dans la marge le libell\'{e} des
+\'{e}tiquettes utilis\'{e}es dans les ordres \verb|\label|.
+Cette option, utilisable
+aussi en dehors du fran\c{c}ais, est la suivante :
+\verb|\labelsinmargin|.
+
+\newpage\english
+\section{Three dots}
+Usual and common \TeX{} and \LaTeX{} dots are not french dots.
+\NL4
+
+\section{Brackets}
+An option is offered to replace \verb|<| and \verb|>| by brackets.
+\NL{11}
+
+\section{\mdseries\texttt{\textbackslash overfullhboxmark}}
+The command \verb|\overfullhboxmark| print a black
+box where your have an overfull \verb|hbox| i.e.\ when a line can't be
+hyphenated. The default is \verb|\nooverfullhboxmark|.
+\NL4
+
+\section{Labels in margin}\label{labels are in margin}
+An option allow you to print the labels you use in a page. These labels are
+printed in margins.
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\newpage\french
+\section{Des points sur...}
+Inutile de mettre les points sur les i quand on accentue un i. Tout bon
+\'{e}diteur de texte doit faire ce travail pour vous. Sinon il existe la
+sous-option \verb|\idotless| qui produira \idotless
+\let\XX\^% Pour \'{e}viter une traduction \'{e}ventuelle en 8 bits
+\XX{i} si on lui demande d'imprimer \verb|\^i|.
+\iwithdot La valeur par d\'{e}faut
+dans \FP\ est \verb|\iwithdot| qui donnera malgr\'{e} tout de
+bons i accentu\'{e}s avec ML\TeX{} (\^{\i}) s'ils sont saisis directement en 8
+bits (v\'{e}rifiez dans votre fichier source).
+
+{\makeatletter\def\GOfrench{T1}\ifx\GOfrench\f@encoding
+\section{Ponctuation et mode \protect\linebreak % SPECIAL FONTES EC REELLES
+ math\'{e}matique}
+\else
+\section{Ponctuation et mode math\'{e}matique}
+\fi}
+Il s'agit de v\'{e}rifier que les modifications introduites
+par l'extension \FP\
+ne posent aucun genre de probl\`{e}me en mode math\'{e}matique.
+\\ Nous d\'{e}finissons une macro \verb|\test| :
+\\ \verb|\def\test#1{#1}|\def\test#1{#1}
+\\ pour voir si le mode math\'{e}matique peut \^{e}tre appel\'{e}
+sans probl\`{e}me en
+argument de macro-instructions. L'appel de \verb|\test{$x''$}| ne doit
+pas poser de probl\`{e}me%
+\iflatex
+, ni m\^{e}me \verb|\texttt{|\-\verb|[$x''=0$]}|
+\\ Ainsi : \verb|\texttt{[$x''=0$]}|
+\\donne : \texttt{[$x''=0$]} et
+\else%
+. \\Ainsi :
+\fi
+\\ \verb|$A':B''_1<C_{d'}>D^2\ et\,\ !n\ ?\ ;$|
+\\ \verb|\test{$A':B''_1<C_{d'}$}|
+\\donne : $A':B''_1<C_{d'}>D^2\ et\,\ !n\ ?\ ;$
+\\\phantom{donne :} \test{$A':B''_1<C_{d'}$}
+\\Avec \verb|\noenglishquote|\noenglishquote{} cela...
+\\donne : $A':B''_1<C_{d'}>D^2\ et\,\ !n\ ?\ ;$
+\\\phantom{donne :} \test{$A':B''_1<C_{d'}$}
+\englishquote
+\\ puis avec \verb|\noenglishdoublequotes| \noenglishdoublequotes et
+`` mise en vedette '' :
+$$% \begin{displaymath}
+ A':B''_1<C_{d'}>D^2\ et\,\ !n\ ?\ ;
+$$% \end{displaymath}
+$$% \begin{displaymath}
+ \test{A':B''_1<C_{d'}}
+$$% \end{displaymath}
+De m\^{e}me :
+\begin{verbatim}
+{\tt CALL SUBR($<$iopt$<$,ilopt$>%
+ >$)}
+\end{verbatim}
+doit s'imprimer :\\
+{\tt CALL SUBR($<$iopt$<$,ilopt$>%
+ >$)}\\
+sans produire le message d'erreur << Fermeture de guillemets non ouverts ! >>.
+\englishdoublequotes
+
+
+\newpage\english
+\section{An \i dotless}
+Everybody knows that a french ``{\em i circonflexe}'' has no dot on it.
+(In my opinion it is a \TeX{} bug to leave the dot when a diacritic is
+put on.) To suppress the dot automatically the best way is to use a well
+programmed text editor. \FP\ offers another opportunity with
+\verb|\idotless|.
+
+\NL2
+
+\section[Math mode and punctuation]{Math mode and \newline punctuation}
+Here we verify that french modifications about punctation
+does not introduce any problem in printing mathematics.
+\\ We define a new macro \verb|\test| :
+\\ \verb|\def\test#1{#1}|\def\test#1{#1}
+\\ in order to see if there is no more problem when passing maths
+inside a macro argument. Calling \verb|\test{$x''$}| must not
+introduce any problem%
+\iflatex
+, as well as \verb|\texttt{|\-\verb|[$x''=0$]}|
+\NL1\\So: \verb|\texttt{[$x''=0$]}|
+\\gives: \texttt{[$x''=0$]} and
+\else%
+. \NL1\\So:
+\fi
+\\\verb|$A':B''_1<C_{d'}>D^2\ et\,\ !n\ ?\ ;$|
+\\\verb|\test{$A':B''_1<C_{d'}$}|
+\\ gives: $A':B''_1<C_{d'}>D^2\ et\,\ !n\ ?\ ;$
+\\\phantom{gives:} \test{$A':B''_1<C_{d'}$}
+\\With \verb|\noenglishquote|\noenglishquote{} it$\ldots{}$
+\\gives: $A':B''_1<C_{d'}>D^2\ et\,\ !n\ ?\ ;$
+\\\phantom{gives:} \test{$A':B''_1<C_{d'}$}
+\englishquote
+\\ and with \verb|\noenglishdoublequotes|\noenglishdoublequotes{}
+in ``display'' math mode:
+$$% \begin{displaymath}
+ A':B''_1<C_{d'}>D^2\ et\,\ !n\ ?\ ;
+$$% \end{displaymath}
+$$% \begin{displaymath}
+ \test{A':B''_1<C_{d'}}
+$$% \end{displaymath}
+\englishdoublequotes
+Also:
+\ifx\documentclass\undefined\\ % Still Plain!
+\else\\[-2\baselineskip] % to keep the same spacing as in French
+\fi
+\begin{verbatim}
+{\tt CALL SUBR($<$iopt$<$,ilopt$>%
+ >$)}
+\end{verbatim}
+must print:\\
+%\SmsG%
+{\tt CALL SUBR($<$iopt$<$,ilopt$>%
+ >$)}\\
+%\FmsG%
+without producing the error message:
+``Fermeture de guillemets non ouverts !''.
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\newpage\french
+Pour ma part lorsque je d\'{e}sire des crochets que je n'ai pas
+au clavier, je pr\'{e}f\`{e}re taper :\\
+\verb|{\tt CALL SUBR(<iopt<,ilopt> >)}| et utiliser
+l'option \verb|\EBCDICbrackets|\EBCDICbrackets{} :\\
+{\tt CALL SUBR(<iopt<,ilopt> >)}
+
+Cette option n'a pas d'effet en mode math\'{e}matique :
+$$ 1233 < 1234 <%
+ < 1235 >%
+ > 1234 > 1233 $$
+\normalbrackets
+
+\makeatletter% we should use \frac with AmS
+\ifx\RIfM@\undefined%\ifx\csname amsmath.sty\endcsname\relax
+ \long\def\text#1{#1}\long\def\frac#1#2{{#1\over#2}}
+\fi
+\makeatother
+
+V\'{e}rifions aussi
+($x < {\frac{1}{3}} < {\frac{1}{2}} > {\frac{1}{4}}$) :
+$$x < \frac{1}{3} < \frac{1}{2} > \frac{1}{4} $$
+puis aussi :
+
+ \text{\quad pour $|y| < \frac{111}{444}$}
+
+\bigskip
+La double ponctuation ne doit avoir aucun effet
+(visible) dans une formule en mode
+math\'{e}matiques, est-ce bien le cas sur l'exemple ci-dessous :
+
+{\LARGE $$a := b, (c!n=m) \textrm{ ; vrai ?}$$}
+
+On notera que la partie texte de la formule a \'{e}t\'{e} saisie avec la
+commande : \\
+\verb|\textrm{ ; vrai ?}|\\
+et que l'espacement fran\c{c}ais y a \'{e}t\'{e} appliqu\'{e}.
+
+\iflatex
+\subsection{Le cas de la virgule}
+En standard \AllTeX{} (ou alors avec l'option sp\'{e}ciale
+\verb|\regularmathcomma| de \FP) le traitement de la virgule
+est sp\'{e}cifique, ainsi quand on tape ce qui suit en mode
+math\'{e}matique de mise en valeur :
+\regularmathcomma%
+\begin{versatim}
+$$\textrm{La fonction}\ f(x,y)\
+ \textrm{ou le Vecteur}\ V(x, y, z)$$
+$$Total=1,255\,\$\ ou\ 1\,500,00\,\textrm{EUR}$$
+\end{versatim}
+on obtient des espacements apr\`{e}s les virgules,
+qu'il y ait ou non des espaces dans le source \TeX\ :
+$$\textrm{La fonction}\ f(x,y)\
+ \textrm{ou le Vecteur}\ V(x, y, z)$$
+$$Total=1,255\,\$\ ou\ 1\,500,00\,\textrm{EUR}$$
+(ce qui montre une anomalie dans la composition
+des nombres relatifs)
+\frenchmathcomma
+\fi
+
+\newpage\english
+When I have no brackets on my keyboard I prefer to type:\\
+\verb|{\tt CALL SUBR(<iopt<,ilopt> >)}|\\ using
+ the option \verb|\EBCDICbrackets| but the result in english
+remains unchanged\EBCDICbrackets{}:\\
+{\tt CALL SUBR(<iopt<,ilopt> >)}
+
+And within math mode:
+$$ 1233 < 1234 <%
+ < 1235 >%
+ > 1234 > 1233 $$
+\normalbrackets
+
+\makeatletter% we should use \frac with AmS
+\ifx\RIfM@\undefined%\ifx\csname amsmath.sty\endcsname\relax
+ \long\def\text#1{#1}\long\def\frac#1#2{{#1\over#2}}
+\fi
+\makeatother
+
+Let's verify also ($x < {\frac{1}{3}} < {\frac{1}{2}} > {\frac{1}{4}}$) :
+$$x < \frac{1}{3} < \frac{1}{2} > \frac{1}{4}$$
+and:
+
+ \text{\quad pour $|y| < \frac{111}{444}$}
+
+\bigskip
+The ``double punctuation'' should not have any effect
+in maths, which is obviously the case in the following
+English example:
+\NL1
+
+{\LARGE $$a := b, (c!n=m) \textrm{ ; vrai ?}$$}
+
+Though the text part of the formula has been typed
+via a command: \\
+\verb|\textrm{ ; vrai ?}|\\
+the french spacing doesn't apply here.
+
+\iflatex
+\subsection{The comma case}
+With \AllTeX{} standard (or with the special \FP\
+\verb|\regularmathcomma| the processing of comma is really specific.
+So, when you type in the following in display math mode:
+\regularmathcomma%
+\begin{verbatim}
+$$\textrm{La fonction}\ f(x,y)\
+ \textrm{ou le Vecteur}\ V(x, y, z)$$
+$$Total=1,255\,\$\ ou\
+ 1\,500,00\,\textrm{EUR}$$
+\end{verbatim}
+you will get thin spaces after the commas,
+no matter spaces are given or not in the \TeX\ source:
+$$\textrm{La fonction}\ f(x,y)\
+ \textrm{ou le Vecteur}\ V(x, y, z)$$
+$$Total=1,255\,\$\ ou\ 1\,500,00\,\textrm{EUR}$$
+(which shows a french typesetting error for
+the relative numbers).
+\frenchmathcomma
+\fi%
+
+\iflatex
+\newpage\french
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+Par contre avec \FP\ on n'obtient
+aucun espacement suppl\'{e}mentaire :
+$$\textrm{La fonction}\ f(x,y)\
+ \textrm{ou le Vecteur}\ V(x, y, z)$$
+$$Total=1,255\,\$\ ou\ 1\,500,00\,\textrm{EUR}$$
+cela est d\^{u} \`{a} l'option \verb|\frenchmathcomma| qui est
+activ\'{e}e par d\'{e}faut avec \FP.
+Mais cela montre alors une anomalie de composition
+dans les listes $(x,y,z)$.
+
+Si l'on veut des espaces il faut alors les indiquer
+explicitement, comme cela est l'usage, plus
+g\'{e}n\'{e}ralement, en mode math\'{e}matique :
+\begin{versatim}
+$$\textrm{La fonction}\ f(x,\,y)\
+ \textrm{ou le Vecteur}\ V(x,\,y,\,z)$$
+$$Total=1,255\,\$\ ou\ 1\,500,00\,\textrm{EUR}$$
+\end{versatim}
+ce qui donnera :
+$$\textrm{La fonction}\ f(x,\,y)\
+ \textrm{ou le Vecteur}\ V(x,\,y,\,z)$$
+$$Total=1,255\,\$\ ou\ 1\,500,00\,\textrm{EUR}$$
+
+\medskip
+
+On notera que \FP\ ob\'{e}it \`{a} l'extension \texttt{icomma}
+lorsque cette derni\`{e}re est charg\'{e}e avant \FP, mais
+seulement en fran\c{c}ais.
+
+
+\newpage\english
+With the \FP\ package there is no space added
+at all:
+\frenchmathcomma%
+$$\textrm{La fonction}\ f(x,y)\
+ \textrm{ou le Vecteur}\ V(x, y, z)$$
+$$Total=1,255\,\$\ ou\ 1\,500,00\,\textrm{EUR}$$
+this is due to the option \verb|\frenchmathcomma| which is
+defaultly activated in the \FP\ package.
+People will then distinguish a typesetting error
+in the lists $(x,y,z)$.
+
+If you want spaces you should then give them to \TeX\
+explicitely, as usually done, more generally in math mode:
+\begin{verbatim}
+$$\textrm{La fonction}\ f(x,\,y)\
+ \textrm{ou le Vecteur}\
+ V(x,\,y,\,z)$$
+$$Total=1,255\,\$\ ou\
+ 1\,500,00\,\textrm{EUR}$$
+\end{verbatim}
+which will give:
+$$\textrm{La fonction}\ f(x,\,y)\
+ \textrm{ou le Vecteur}\ V(x,\,y,\,z)$$
+$$Total=1,255\,\$\ ou\ 1\,500,00\,\textrm{EUR}$$
+\fi
+
+You should notice that \FP\ respect the choice of
+the \texttt{icomma} package when that last one is loaded before
+\FP; but it only applies in French.
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\newpage\french
+\section{Mon antislash est \mdseries\texttt{\backslash}}
+
+L'antislash n'existe pas dans toutes les polices en OT1.
+Que vous utilisiez \verb|\backslash| ou \verb|\textbackslash|
+vous obtiendrez la m\^{e}me chose, ainsi
+en romain droit on obtient :
+
+textbackslash=\textbackslash
+
+backslash=\backslash
+
+\noindent
+mais avec la fonte tt on obtient :
+
+{\tt
+textbackslash=\textbackslash
+
+backslash=\backslash
+}
+\NL2
+
+\section{Notes de bas de page}
+
+\iflatex\makeatletter\xdef\countSAVED{\the\c@footnote}\makeatother\fi
+\long\def\XX{%
+ Num\'{e}rotation normale\footnote{Une note normalement num\'{e}rot\'{e}e.}.
+ {\setcounter{footnote}{0}
+ \renewcommand{\thefootnote}{\fnsymbol{footnote}}
+
+ Voici une note\footnote{Premi\`{e}re note.}
+ puis une autre\footnote{Deuxi\`{e}me note.}
+ puis encore une autre\footnote{Troisi\`{e}me note.}
+ }}
+
+Nous comparons ici la composition des notes de bas de page
+(avec et sans \verb|\fnsymbol|)
+dans une langue et dans l'autre. Voyons ce que cela donne :
+
+\XX
+
+\newpage\english
+\section{My antislash is \mdseries\texttt{\textbackslash}}
+
+The antislash glyph doesn't exist in all OT1 font.
+Whatever you use, \verb|\backslash| or \verb|\textbackslash|
+you will obtain the same output, so
+in upright roman you obtain:
+
+textbackslash=\textbackslash
+
+backslash=$\backslash$
+
+\noindent
+but with the tt font you obtain:
+
+{\tt
+textbackslash=\textbackslash
+
+backslash=$\backslash$
+}
+
+\noindent
+but \verb|\backslash| is only available in
+math mode.
+
+\section{Compared footnotes}
+
+We compare the typesetting of footnotes
+(with and without \verb|\fnsymbol|)
+in one language versus the other. Let's look at them.
+
+\iflatex\makeatletter\c@footnote=\countSAVED\makeatother\fi
+
+\XX
+\iflatex\makeatletter\c@footnote=\countSAVED\makeatother\fi
+\addtocounter{footnote}{1}
+\NL1
+
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\newpage\french
+
+\section{\mdseries\texttt{\textbackslash guillemetsinarrays}}
+
+Avec \FP\ l'utilisation de guillemets \`{a} la
+fran\c{c}aise en mode texte dans les environnements \texttt{array} ou
+\texttt{eqnarray} est possible
+mais il est n\'{e}cessaire de prot\'{e}ger les op\'{e}rateurs
+inf\'{e}rieur (\texttt{<}) et sup\'{e}rieur (\texttt{>}) lorsqu'ils terminent
+une colonne. On rajoute alors une paire d'accolades ou \verb|\relax|
+pour terminer la macro-commande :
+\begin{verbatim}
+$
+\begin{array}{ccc}
+a & \inferieura &b\\
+a & \protect< &b\\
+a & b &<\\
+a & >{} &c\\
+<{}& << >> &c\\
+<{}& \textrm{<< text >>}&c
+\end{array}
+$
+\end{verbatim}
+
+\noindent ce qui donne :
+
+$
+\begin{array}{ccc}
+a & \inferieura &b\\
+a & \protect< &b\\
+a & b &<\\
+a & >{} &c\\
+<{}& << >> &c\\
+<{}& \textrm{<< text >>}&c
+\end{array}
+$
+
+\medskip
+On peut \'{e}viter d'avoir \`{a} modifier des tableaux existants et dans ce
+cas on codera \verb|\no|\-\verb|guil|\-\verb|lemetsinarrays| :
+
+\begin{verbatim}
+\noguillemetsinarrays
+$
+\begin{array}{ccc}
+a & \inferieura &b\\
+a & < &b\\
+a & b &<\\
+a & > &c\\
+< & << >> &c\\
+< & \textrm{<< text >>}&c
+\end{array}
+$
+\end{verbatim}
+
+\noindent ce qui donne alors :
+
+\noguillemetsinarrays
+$
+\begin{array}{ccc}
+a & \inferieura &b\\
+a & < &b\\
+a & b &<\\
+a & > &c\\
+< & << >> &c\\
+< & \textrm{<< text >>}&c
+\end{array}
+$
+\guillemetsinarrays% reset default
+
+\newpage\english
+\section{Guillemets in arrays}
+The \FP\ package allows people to print french guillemets
+in \texttt{array} environments (but in text mode). This usually breaks
+the code for \texttt{<} or \texttt{>} when they finish an array slot.
+So you should protect them; like this:
+\NL2
+
+\begin{verbatim}
+$
+\begin{array}{ccc}
+a & \inferieura &b\\
+a & \protect< &b\\
+a & b &<\\
+a & >{} &c\\
+<{}& \textrm{<< text >>}&c
+\end{array}
+$
+\end{verbatim}
+\NL1
+
+\noindent which gives:
+
+$
+\begin{array}{ccc}
+a & \inferieura &b\\
+a & \protect< &b\\
+a & b &<\\
+a & >{} &c\\
+<{}& \textrm{<< text >>}&c
+\end{array}
+$
+\NL1
+
+\medskip
+
+One can avoid to modify existing arrays and then just say
+\verb|\noguillemetsinarrays| but this command is not
+interesting in English because the problem doesn't exist
+at all:
+
+\begin{verbatim}
+$
+\begin{array}{ccc}
+a & \inferieura &b\\
+a & < &b\\
+a & b &<\\
+a & > &c\\
+< & \textrm{<< text >>}&c
+\end{array}
+$
+\end{verbatim}
+\NL1
+
+\noindent gives the following result:
+
+\def\GOfrench{\let\ifCLA\iffalse}% To allow dmy and frencht to compile
+\ifx\ifCLA\undefined\expandafter\GOfrench\fi% without error.
+$
+\begin{array}{ccc}
+a & \inferieura &b\\
+a &
+\ifCLA\expandafter\protect\fi% To allow \ConstantLayout test file.
+< &b\\
+a & b &<\\
+a &
+\ifCLA\expandafter\protect\fi% To allow \ConstantLayout test file.
+> &c\\
+\ifCLA\expandafter\protect\fi% To allow \ConstantLayout test file.
+< & \textrm{<< text >>}&c
+\end{array}
+$
+\NL1
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\newpage\french
+
+\noguillemetsinarrays% for continuation of column
+Cette commande est aussi valable pour les environnements
+\texttt{eqnarray} :
+
+\begin{eqnarray}
+a & < &b\\
+a & > &c\\
+< & << >> &c\\
+< & \textrm{<< text >>}&c
+\end{eqnarray}
+
+Pour terminer je r\'{e}tablis la valeur par d\'{e}faut :
+\verb|\guillemetsinarrays|
+\guillemetsinarrays
+et si j'essaye le m\^{e}me exemple j'obtiendrais
+le message : \\
+{\makeatletter\let\@PreserveBraces={% uggly hack for plain
+\vers|! Argument of \@PreserveBraces has an|\\
+\vers|extra }.|
+}% closing hack.
+
+\section{Guillemets verbatim}
+
+Avec l'option \verb|\nofrenchguillemets| il est possible
+--~si \FP\ travaille en codage de fonte du genre \texttt{T1}
+{\makeatletter\def\GOfrench{T1}\ifx\GOfrench\f@encoding\else
+(mais ca ne semble pas \^{e}tre le cas ici)\fi}%
+~--
+\nofrenchguillemets
+d'imprimer des guillemets 8-bits en verbatim : \verb|<< >>|.
+\frenchguillemets
+
+\iflatex
+\section{Environnement guillemets exclus}
+
+\begin{versatim}
+\guillemets{} Je me suis dit que :
+<< avec l'option [...] les guillemets
+sont inop\'{e}rants. \endguillemets{}
+\end{versatim}
+\SmsG
+\noeveryparguillemets
+\guillemets{}
+\verb|[\guillemets{}]| Je me suis dit que :
+<< avec l'option \vers|\noevery|\-\vers|par|\-\vers|guillemets|
+on ne doit pas avoir un environnement qui se termine avant la fin
+du paragraphe. C'est pourquoi l'environnement \texttt{guillemets}
+n'est plus autoris\'{e} dans ce cadre.
+D\'{e}sormais un message est \'{e}mis et ces environnements
+guillemets sont inop\'{e}rants. \endguillemets{}
+
+On note que \verb|\guillemets{}| n'a aucun effet visible
+et que le d\'{e}but de paragraphe est forc\'{e} aux premiers
+caract\`{e}res-guillemets ouvrants qui suivent. Le
+\verb|\endguillemets{}| de fin d'environnement ferme cependant
+le paragraphe.
+
+\guillemets [\verb|\guillemets{}|]\!
+Ces environnements exclus dans le cadre de cette option
+ peuvent \^{e}tre de premier ou
+/\guillemets{} deuxi\`{e}me \endguillemets{}/ niveau
+comme ici (slashs). [\verb|\endguillemets{}|]
+\endguillemets{}
+
+\FmsG
+\frenchguillemets
+\fi%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\newpage\english
+Notice that with standard \LaTeX\ you obtain a message
+saying that \verb|\guillemotleft| and \verb|\guillemotright|
+are invalid in math mode when you try to use guillemets
+in an \texttt{array} environement.
+\NL{9}
+
+\smallskip
+
+\section{Verbatim Guillemets}
+
+The 8bit french guillemets chars printed within
+a verbatim environnement give here: \verb|<< >>|
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\newpage\french
+\section{Utilisation de la \mdseries\texttt{toc}}
+
+Il n'est pas pr\'{e}vu de pouvoir composer une table des mati\`{e}res ou un
+sommaire dans plus d'une langue.
+On notera que \verb|\sommaire| est un apport de \FP.
+
+\section{Fichiers {\mdseries\texttt{lof}} et {\mdseries\texttt{lot}}}
+On v\'{e}rifie ici que la ponctuation fran\c{c}aise n'a pas cr\'{e}\'{e}
+d'ennui particulier.
+Nous avons laiss\'{e} en blanc la figure \ref{x<<:;!?>>x}
+qui n'est qu'un simple
+test. De m\^{e}me le tableau \ref{y`<<:;!?>>'y} n'est l\`{a} que pour
+cr\'{e}er une entr\'{e}e dans la liste des tableaux.
+
+Le {\em caption} de la figure
+\ref{x<<:;!?>>x}
+ doit appara\^{\i}tre com\-me ceci :
+ {\it << essai >> ; 2 cm ! pourquoi pas ?}
+\begin{figure}[h]
+\begin{center}
+\begin{tabular}{|c|}
+\hline
+\ \hfill \ \\%\vspace*{2cm}
+\ \\
+\ Peu importe la figure...\\
+\ \\
+\ \\
+\hline
+\end{tabular}
+\end{center}
+\caption{<< essai >> ; 2 cm ! pourquoi pas ?
+ \protect\\ (cf. aussi le tableau \ref{frenchdactylo})}
+\label{x<<:;!?>>x}
+\end{figure}
+
+Le {\em caption} du tableau
+\ref{y`<<:;!?>>'y}
+ doit \^{e}tre comme ceci :
+{\it ` << essai >> ; 2 cm ! pourquoi pas ? '}
+\begin{table}[h]
+\caption{` << essai >> ; 2 cm ! pourquoi pas ? '
+ \protect\\ (cf. aussi le tableau \ref{frenchdactylo})}
+\label{y`<<:;!?>>'y}
+
+\begin{center}
+\begin{tabular}{|c|}
+\hline
+\ \hfill \ \\
+\ \\
+\ Peu importe le tableau\footnote{Une note de tableau.}...\\
+\ \\
+\ \\
+\hline
+\end{tabular}
+\end{center}
+\end{table}
+
+On notera les libell\'{e}s ({\sc Fig.} et {\sc Tab.}) plus confor\-mes \`{a}
+l'usage fran\c{c}ais. Ne pas oublier non plus que les titres de tableaux sont
+toujours plac\'{e}s, en fran\c{c}ais, avant ceux-ci contrairement aux figures.
+
+\FP\ ne pr\'{e}voit pas que l'on puisse composer une
+partie des tables des figures (ou tableaux) en fran\c{c}ais et une autre
+en anglais par exemple. Les fichiers \verb|.lof| et \verb|.lot| seront
+donc compos\'{e}s enti\`{e}rement dans la langue pr\'{e}s\'{e}lectionn\'{e}e.
+
+\newpage\english
+\section{{\mdseries\texttt{toc}} file use}
+No facility is given to typeset the \verb|.toc| in various languages.
+
+Notice that \verb|\sommaire| is a new command brought up with this
+package.
+
+\section{{\mdseries\texttt{lof}} and {\mdseries\texttt{lot}} files}
+Same test in English just to verify that our french modifications
+does not affect the text in English.
+
+You will notice, of course, that the caption names are re-established
+to their original values ({\bf figure} and {\bf table}).
+
+The following figure (not referable) %(\ref{ex<<:;!?>>ex})
+caption must look like:
+<< essai >>; 2 cm! Why not?
+\begin{figure}[h]
+\begin{center}
+\begin{tabular}{|c|}
+\hline
+\ \hfill \ \\
+\ \\
+\ No matter how is the figure$\ldots{}$\\
+\ \\
+\ \\
+\hline
+\end{tabular}
+\end{center}
+\caption{<< essai >>; 2 cm! Why not?
+ \protect\\ (cf. also the table \ref{frenchdactylo})}
+%\label{ex<<:;!?>>ex}% produit un missing \endcsname
+\end{figure}
+
+The {\em caption} of the table (not referable) %\ref{ey`<<:;!?>>'ey}
+must look like:
+` << essai >>; 2 cm! Why not? '
+\begin{table}[h]
+\begin{center}
+\begin{tabular}{|c|}
+\hline
+\ \hfill \ \\
+\ \\
+\ No matter how is the table\footnotemark% \footnotetext est perdu !
+ $\ldots{}$\\
+\ \\
+\ \\
+\hline
+\end{tabular}
+\end{center}
+\caption{` << essai >>; 2 cm! Why not? '
+ \protect\\ (cf. also the table \ref{frenchdactylo})}
+%\label{ey`<<:;!?>>'ey}% generates missing \endcsname
+\end{table}\footnotetext{A note from a table.}
+\NL1
+
+Notice that we have here the standard caption names used by \LaTeX{}.
+
+You can see in the French column the specific labels and places of caption
+titles (under the figure but over the table).
+
+Don't try to compose \verb|.lof| and \verb|.lot| files in more than one
+language, it's not designed in this (stupid?) way!
+
+\french
+\begin{table*}[tb]
+\caption{` << essai >> ; 2 cm ! pourquoi pas ? '
+ (cf. aussi le tableau \ref{frenchdactylo})}
+\label{2`<<:;!?>>'2}
+\begin{center}
+\begin{tabular}{|c|}
+\hline
+\ \hfill \ \\
+\ \\
+\ Peu importe le tableau sur deux colonnes%
+\footnote{Une note de tableau.}...\\
+\ \\
+\ \\
+\hline
+\end{tabular}
+\end{center}
+\end{table*}
+
+\newpage
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\section{Encore un tableau...}
+Mais celui-ci est sur deux colonnes si l'option
+\verb|twocolumn| est active. V\'{e}rifions simplement
+que le traitement est le m\^{e}me qu'en une seule
+colonne.
+
+Le {\em caption} du tableau
+\ref{2`<<:;!?>>'2}
+ doit \^{e}tre comme ceci :
+{\it ` << essai >> ; 2 cm ! pourquoi pas ? '}
+
+\section{\sloppy Encore {\mdseries\texttt{\textbackslash labelsinmargin}}}
+
+\`{A} nouveau nous utilisons \verb|\labelsinmargin|
+\labelsinmargin
+pour v\'{e}rifier son fonctionnement dans une figure
+et un titre de figure
+
+\begin{figure}[h]
+\label{label de la figure}
+\begin{center}
+\begin{tabular}{|c|}
+\hline
+\ \hfill \ \\
+\ \\
+\ Peu importe la figure...\\
+\ \\
+\ \\
+\hline
+\end{tabular}
+\end{center}
+\caption{le titre de la figure avec label
+\label{label du titre fig.}}
+\end{figure}
+
+M\^{e}me test avec un tableau :
+\begin{table}[h]
+\label{label du tableau}
+\caption{le titre du tableau avec label\label{label du titre tab.}}
+\begin{center}
+\begin{tabular}{|c|}
+\hline
+\ \hfill \ \\
+\ \\
+\ Peu importe le tableau...\\
+\ \\
+\ \\
+\hline
+\end{tabular}
+\end{center}
+\end{table}
+
+\sloppypar{
+D\'{e}sactivons d\'{e}finitivement l'option
+avec \verb!\nolabelsinmargin!.
+}
+\nolabelsinmargin
+
+\newpage\english
+\NL8
+\section{{\mdseries\texttt{\textbackslash labelsinmargin}} again}
+
+Again we test \verb|\labelsinmargin|
+\labelsinmargin
+to verify that it is running within a figure
+and in a figure's caption.
+
+\begin{figure}[h]
+\label{label in a figure}
+\begin{center}
+\begin{tabular}{|c|}
+\hline
+\ \hfill \ \\
+\ \\
+\ No matter the figure$\ldots{}$\\
+\ \\
+\ \\
+\hline
+\end{tabular}
+\end{center}
+\caption{title with a label\label{label in fig. caption}}
+\end{figure}
+
+Same test with a table:
+\begin{table}[h]
+\label{label in a table}
+\begin{center}
+\begin{tabular}{|c|}
+\hline
+\ \hfill \ \\
+\ \\
+\ No matter the table$\ldots{}$\\
+\ \\
+\ \\
+\hline
+\end{tabular}
+\end{center}
+\caption{title with a label\label{label in a tab. caption}}
+\end{table}
+
+Disactivate definitely the option with \verb!\nolabelsinmargin!.
+\nolabelsinmargin
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\newpage\french
+
+\section{Notes dans \mdseries\texttt{\textbackslash caption}}
+
+Si une note dans un tableau doit \^{e}tre imprim\'{e}e \`{a} la fin du
+tableau, une note dans un titre de tableau doit \^{e}tre
+imprim\'{e}e en fin de page. Malheureusement \LaTeX{} perd
+le texte des notes dans les environnements {\tt figure} et
+{\tt table}. L'ex\-ten\-sion \FP\ pr\'{e}vient l'utilisateur
+que le texte doit \^{e}tre r\'{e}ins\'{e}r\'{e} \`{a} l'aide de \verb|\footnotetext|.
+
+\begin{table}[h]
+
+\SmsG%
+\caption[Essai de footnote dans un caption de tableau]
+ {L\'{e}gende\protect\footnote{Une note de bas de page.}}
+\FmsG%
+
+\begin{center}
+\begin{tabular}{|c|}
+\hline
+\ \hfill \ \\
+%\ \\
+\ Peu importe le tableau...\\
+%\ \\
+\ \\
+\hline
+\end{tabular}
+\end{center}
+\end{table}
+\footnotetext{Une note de bas de page.}
+
+\section{{\mdseries\texttt{\textbackslash caption}} vide}
+
+\begin{table}[h]
+\caption{}
+\begin{center}
+\begin{tabular}{|c|}
+\hline
+\ \hfill \ \\
+%\ \\
+\ Tableau sans l\'{e}gende\\
+%\ \\
+\ \\
+\hline
+\end{tabular}
+\end{center}
+\end{table}
+
+\section{\mdseries\texttt{\textbackslash nombre}}
+
+Les nombres en fran\c{c}ais sont imprim\'{e}s correctement lorsque l'on
+utilise \verb|\nombre|, ainsi :
+
+\begin{verbatim}
+\nombre{123 456,123 456}
+\end{verbatim}
+imprime \nombre{123 456,123 456} au lieu de la forme habituelle
+ {\regularmathcomma $123 456,123 456$}
+ou \mbox{123 456,123 456} suivant que l'on est en mode math
+ou en mode texte.
+
+On y voit des espaces fines \`{a} chaque millier et (normalement)
+une virgule sans espace suppl\'{e}mentaire comme cela se produit
+en mode math avec \TeX{} standard.
+
+\section{Autre chose ?}
+Non !
+
+[espace libre utilisable]
+
+\newpage\english
+
+\section{Notes within \mdseries\texttt{\textbackslash caption}}
+
+Normally in French we print table's footnotes at the end of the table
+but it can't be the case when a footnote is called from a caption title.
+But unfortunately footnote's text is lost when inside a \LaTeX{} figure
+or table environnement, as shown here.
+Thus {\tt french.sty} warn the user with the appropriate message, but
+in English nothing is done.
+
+\begin{table}[h]
+\begin{center}
+\begin{tabular}{|c|}
+\hline
+\ \hfill \ \\
+%\ \\
+\ No matter the table$\ldots{}$\\
+%\ \\
+\ \\
+\hline
+\end{tabular}
+\end{center}
+\caption[footnote try within a table's caption]
+ {Caption title\protect\footnote{A footnote page.}}
+
+\end{table}
+%\footnotetext{A footnote page.}
+
+\section{Empty \mdseries\texttt{\textbackslash caption}}
+
+\begin{table}[h]
+\begin{center}
+\begin{tabular}{|c|}
+\hline
+\ \hfill \ \\
+%\ \\
+\ Empty caption\\
+%\ \\
+\ \\
+\hline
+\end{tabular}
+\end{center}
+\caption{}
+\end{table}
+
+\section{\mdseries\texttt{\textbackslash nombre}}
+
+French number should be correctly printed using
+\verb|\nombre|, so :
+
+\begin{verbatim}
+\nombre{123 456,123 456}
+\end{verbatim}
+should not print as usual
+$123 456,123 456$ nor \mbox{123 456,123 456}
+(depending you are in math or in text mode)
+but $123\,456{,}123\,456$.
+\NL1
+
+We see here thin spaces between each thousand part and no
+(usual) space after the comma (as it is in math with standard
+\TeX{}).
+
+\smallskip
+
+\section{Anything else?}
+
+No!
+
+\noindent
+[free space to reuse]
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\newpage\french
+\section{Le 1\protect\fup{er} paragraphe}
+Notez bien que le 1\fup{er} paragraphe d'une section
+ne commence jamais au fer \`{a} gauche
+en fran\c{c}ais, comme vous le voyez ici.
+
+Le deuxi\`{e}me paragraphe d\'{e}marre comme le premier...\footnote{%
+La typographie du titre de section (1\fup{er}) est \`{a} noter ;
+ {\tt mysmaller.sty} a \'{e}t\'{e} utilis\'{e}
+\`{a} la compilation de {\tt frenchrf} avec \LaTeX{}.
+Il existe aussi l'extension {\tt relsize} qui fonctionne
+bien avec \FP.}
+
+\section{Test des listes}\label{listes}
+
+Voici un test d'\'{e}num\'{e}ration (\verb|itemize|) de \LaTeX{} :
+
+\begin{itemize}
+\item liste de niveau 1 ;
+ \begin{itemize}
+ \item incluant un niveau 2,
+ \begin{itemize}
+ \item mais aussi un niveau 3,
+ \item peu utilis\'{e} ;
+ \end{itemize}
+ \item le niveau 2 se terminant ici ;
+ \end{itemize}
+\item suite de la liste de niveau 1 ;
+\item dernier \'{e}l\'{e}ment de niveau 1.
+\end{itemize}
+
+On remarquera les deux choses suivantes :
+\primo les marqueurs sont identiques quel que soit
+le niveau et \secundo aucun \'{e}l\'{e}ment ne commence par une majuscule.
+\NL2
+
+\section{D\'{e}finition de langue}
+
+On peut se d\'{e}finir une langue comme par exemple le kathmandouais par : \\%
+\verb|\NouveauLangage[2]|\verb|{kathmandouais}|\\%
+\global% for TeX--XeT tests
+\def\kathmandouaisTeXmods{\empty}
+ \NouveauLangage[2]{kathmandouais} %
+et ensuite on peut \'{e}crire kathmandouais en tapant :
+\verb|\kathmandouais|
+\SmsG%
+\kathmandouais%Message a ignorer si vous n'avez que 2 langues definies.
+bla... blabla... bla%
+\typeout{I AM WRITING KATMANDOUAIS, Ye\string! (language=\the\language)}%
+\FmsG%
+\footnote{Mais bien entendu les c\'{e}sures ne seront pas bonnes car elles
+seront faites \`{a} partir d'un language existant. On notera la typographie
+du num\'{e}ro de cette note saisie en {\em Katmandouais}.}
+ et revenir au fran\c{c}ais par
+\verb|\french|\french%
+\footnote{Si le point qui suit n'est pas accol\'{e} au mot {\tt french}
+alors cela signifie que des {\em blank space} tra\^{\i}nent dans
+\FP.}.
+S'il n'y a pas de commande \verb|\kathmandouaisTeXmods| de d\'{e}finie
+rien ne se passera
+vraiment, cela sera \'{e}quivalent \`{a} \verb|\relax|, seul un message
+d'avertissement sera \'{e}mis.
+
+\newpage\english
+\section{First paragraph}
+In English each paragraph is indented except the first one of a section,
+subsection, etc. as you can see in this example.
+
+Subsequent paragraphs start indented$\ldots{}$\NL1
+
+\section{Itemized lists}
+Here is the same french \verb|itemize| list:\NL1
+
+\begin{itemize}
+\item liste de niveau 1;
+ \begin{itemize}
+ \item incluant un niveau 2,
+ \begin{itemize}
+ \item mais aussi un niveau 3,
+ \item peu utilis\'{e} ;
+ \end{itemize}
+ \item le niveau 2 se terminant ici ;
+ \end{itemize}
+\item suite de la liste de niveau 1 ;
+\item dernier \'{e}l\'{e}ment de niveau 1.
+\end{itemize}
+
+You can compare english and french lists.
+Notice firstly that item markers are identical at each level and secondly
+that each item never starts with an uppercase letter.
+
+\section{Create a language}
+There is a new control sequence to allow {\em the creation} of new language:\\
+\verb|\NouveauLangage[n]{language}|\\
+This command is in fact used internally but it can be also used elsewhere
+to define a new language which rules will be set by:\\
+ \verb|\<language>TeXmods| (if defined.) The internal language number \verb|n|
+tells \TeX{} what hyphenation table is to use among those defined at
+\verb|INITEX| time.
+
+\begin{table*}[th]% pour la page suivante
+\begin{center}
+\fbox{Attention : psfig est p\'{e}rim\'{e} ; il n'est utilis\'{e} ici
+ qu'\`{a} des fins de test.}
+\end{center}
+\end{table*}
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\newpage\french
+\section{Caract\`{e}res actifs}
+Quelques jeux de macros doivent parfois \^{e}tre charg\'{e}s
+directement dans le document
+et utilisent les caract\`{e}res {\em actifs\/} de \FP. Il y
+a alors conflit ouvert. Plusieurs solutions sont offertes, soit utiliser
+l'ordre : \\
+\verb| \originalinput{fichier}|\\
+ soit :
+\begin{verbatim}
+ \begin{nonfrench}
+ ... macros-instructions...
+ \end{nonfrench}
+\end{verbatim}
+Nous avons adopt\'{e} la deuxi\`{e}me solution ici :
+
+\tthyphenation
+\begin{versatim}
+Saluons au passage Trevor Darrell, l'auteur de \verb|psfig| :
+ \begin{nonfrench}
+ \let\psfig\undefined
+ \input mypsfig.sty
+ \begin{center}
+ \ \hbox{\vbox{\psfig{figure=%
+ myfigure.ps,height=1in}}}\
+ \end{center}
+ \end{nonfrench}
+\end{versatim}
+
+Saluons au passage Trevor Darrell, l'auteur de \verb|psfig| :
+\begin{nonfrench}
+ \let\psfig\undefined
+ \input mypsfig.sty
+ \begin{center}
+ \ \hbox{\vbox{\psfig{figure=%
+ myfigure.ps,height=1in}}}\
+ \end{center}
+\end{nonfrench}
+Mais attention n'utilisez pas en fran\c{c}ais un code que
+vous auriez charg\'{e}
+en anglais ou r\'{e}ciproquement !
+
+En fait, l'extension \FP\ est compatible avec \verb|psfig|.
+En voici l'exemple -- sans utiliser \verb|nonfrench| -- avec
+\verb|\psdraft| :
+ \let\psfig\undefined
+ \input mypsfig.sty
+ \psdraft
+ \begin{center}
+ \ \hbox{\vbox{\psfig{figure=%
+ myfigure.ps,height=1in}}}\
+ \end{center}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\newpage\english
+\section{Active characters}
+Codes that were designed for English might bring problems when used with
+\FP\ because few characters are {\em activated\/}.
+Few solutions are offered, either:\\
+\verb| \originalinput{file}|
+
+or:
+\begin{verbatim}
+ \begin{nonfrench}
+ ... macros-instructions...
+ \end{nonfrench}
+\end{verbatim}
+We used here the second solution:
+\begin{verbatim}
+Saluons au passage Trevor Darrell,
+ l'auteur de \verb|psfig| :
+ \begin{nonfrench}
+ \let\psfig\undefined
+ \input mypsfig.sty
+ \begin{center}
+ \ \hbox{\vbox{\psfig{figure=%
+ myfigure.ps,height=1in}}}\
+ \end{center}
+ \end{nonfrench}
+\end{verbatim}
+
+\notthyphenation
+Saluons au passage Trevor Darrell, %
+ l'auteur de \verb|psfig| :
+%\begin{nonfrench}% inutile d'obtenir un message de warning
+ \let\psfig\undefined
+ \input mypsfig.sty
+ \begin{center}
+ \ \hbox{\vbox{\psfig{figure=%
+ myfigure.ps,height=1in}}}\
+ \end{center}
+%\end{nonfrench}
+But be carefull, don't use in French a code that was loaded in English
+or reciprocally!
+\NL1
+
+In fact the \FP\ is fully compatible with \verb|psfig| once
+\FP\ starts working i.e. after the
+\vers|\|\vers|begin{document}|.
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\newpage\french
+
+\section{Abr\'{e}viations}
+\abbreviations
+Si on demande \verb|\abbreviations| alors on a
+acc\`{e}s \`{a} un fichier d'abr\'{e}\-via\-tions
+typo\-graphi\-ques fran\c{c}aises.
+Ainsi je saisis \verb|"monseigneur"| et j'imprime "monseigneur"\!.
+De m\^{e}me, avec ML\TeX{} je saisis \verb|"deuxi\`{e}me"|
+(v\'{e}rifiez dans le
+source que ce mot est bien cod\'{e} en 8bits) et j'imprime "deuxi\`{e}me"\!%
+. %alors que le fichier d'abr\'{e}viations contient \verb|"deuxi\`|\verb|eme"|.
+Ainsi il n'est plus vraiment indispensable de se rappeler que
+l'abr\'{e}viation de madame est "madame" (et ma\^{\i}tre : "ma\^{\i}tre"\!).
+
+Lorsqu'un mot ne figure pas dans le fichier d'abr\'{e}viations, il est alors
+imprim\'{e} tel que. Ainsi \verb|"GUTenberg"| imprimera
+\SmsG%
+"GUTenberg".
+\FmsG%
+ Mais n'oubliez jamais le double guillemet fermant sinon vous obtiendrez
+ un message du genre :
+\begin{versatim}
+ Paragraph ended before \AbbrevName was complete.
+\end{versatim}
+
+Je peux aussi donner mon fichier personnel d'abr\'{e}viations en codant :\\
+\verb|\abreviations[mon_fichier_personnel]|
+
+On retire ces possibilit\'{e}s par la commande \verb|\noabbreviations|.
+N'oublions pas que le caract\`{e}re \verb|"| sert normalement en \TeX{}
+comme en \LaTeX{} \`{a} exprimer les nombres en hexad\'{e}cimal.
+
+\section{Monsieur s'abr\`{e}ge "Monsieur"}
+
+Que je saisisse \verb|"Monsieur"| ou \verb|"monsieur"|
+j'obtiens la m\^{e}me abr\'{e}viation : "Monsieur" ou "monsieur", respectivement.
+
+Il n'en est pas toujours de m\^{e}me... ainsi lorsqu'on saisit
+\verb|"Num\'{e}ro"| et \verb|"num\'{e}ro"| on obtient respectivement :
+"Num\'{e}ro" et "num\'{e}ro", car \verb|Num\'{e}ro|
+est une entr\'{e}e dans le fichier des abbr\'{e}viations o\`{u} il est \'{e}crit
+\verb|{Num\'{e}ro}|.
+
+Il est d\'{e}sormais possible de placer une abr\'{e}viation dans un titre
+de chapitre ou de section, comme le titre de cette section le
+d\'{e}montre ; nous avons saisi :
+\begin{verbatim}
+\section{Monsieur s'abr\`{e}ge "Monsieur"}
+\end{verbatim}
+
+\noabbreviations
+
+\newpage\english
+
+\section{Abbreviations}
+The abbreviation facility offered in \FP\ is based on
+an abbreviations file. When requested by \verb|\abbreviations| one
+may call any \verb|"abbreviation"|. If this abbreviation is found in the
+file it will be replaced by the typographic expansion, if not it will
+be printed as is.\NL2
+
+But never forget the ending double quotes otherwise you will obtain the
+terrible message:
+{\tt Paragraph} {\tt ended before} \texttt{\textbackslash AbbrevName}
+{\tt was complete.}
+\NL4
+
+You can have your own abbreviations file by calling:
+\verb|\abreviations[my_file]|.\NL1
+
+Saying \verb|\noabbreviations| this facility is lost. Remember that the
+char \verb|"| is used normally in \TeX{} as in \LaTeX{} to start an
+hexadecimal number.
+
+But used in English, \verb|"monsieur"| will give "monsieur"%
+\footnote{Notice the quoting!}.
+
+\newpage\french
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\section{Autres macros utiles}
+\verb|\fsc{KnUtH}| permet d'imprimer \fsc{KnUtH} et \verb|\lsc{SnCf}|
+donne \lsc{SnCf}. Cela doit aussi marcher si le mot commence par une
+accentuation comme ici avec le mot \fsc{\'% a laisser tq a cause du 7bits
+epinal} et m\^{e}me quand cette accentuation est plus loin dans
+le mot comme ici dans \fsc{ANDR\'% a laisser tq a cause du 7bits
+E}.
+
+\bigskip
+Voici une note%
+\footnote{La note.\label{NOTE}}
+de bas de page command\'{e}e par \verb|\footnote{La note.\label{NOTE}}|.
+Je peux faire \`{a} nouveau appel \`{a} cette note\refmark{NOTE}
+ par l'ordre \verb|\refmark{NOTE}|.
+
+\bigskip
+Par analogie avec l'environnement \verb|verse| :
+\begin{verse}
+%\moretolerance % pour eviter un leger overfull hbox
+1\iere{} ligne : cette ligne est bien trop longue, elle doit \^{e}tre coup\'{e}e autant de fois que n\'{e}cessaire...\\
+2\ieme{} ligne : le test terrible de...\\%
+3\ieme{} ligne : `ceci est le test des quotes'\\
+\end{verse}
+\tthyphenation
+voici le m\^{e}me test (sans \verb|\\|)
+avec l'environnement \vers|versatim| qui est
+un environnement \vers|verba|\-\vers|tim| compos\'{e}
+avec des coupures de lignes
+comme l'est l'environnement \verb|verse| et dont les {\em quotes} peuvent
+\^{e}tre imprim\'{e}es avec des accents si on pr\'{e}cise
+\vers|\noenglishquote| :
+\noenglishquote
+\begin{versatim}
+1\iere{} ligne : cette ligne est bien trop longue, elle doit \^{e}tre coup\'{e}e autant de fois que n\'{e}cessaire...
+2\ieme{} ligne : le test terrible de \end{document}
+3\ieme{} ligne : `ceci est le test des quotes'
+\end{versatim}
+\englishquote
+
+\allowuchyph
+Et maintenant voici l'ordre r\'{e}duit \verb|\vers| qui
+s'utilise comme \verb|\verb| et doit permettre de couper une
+longue cha\^{\i}ne de caract\`{e}res \texttt{ver\-batim}. Celle-ci
+sera coup\'{e}e par d\'{e}faut entre les mots (\vers|\notthyphe|\-\vers|nation|)
+mais pourra l'\^{e}tre \`{a} l'int\'{e}rieur des mots si on pr\'{e}cise
+\tthyphenation \vers|\tthyphe|\-\vers|nation| comme ici : <<
+\vers|Longue Cha\^{\i}ne De Caract\`{e}res \`{A} Couper Absolument| >>.
+Les mots commen\c{c}ant en majuscule ne pourront \^{e}tre coup\'{e}s
+que si \vers|\uchyph=1|, valeur par d\'{e}faut dans \FP\
+(\vers|\|\vers|allow|\-\vers|uchyph|) qui est utilis\'{e}e pour cette
+partie uniquement.
+
+\subsection*{Test de {\mdseries\texttt{\textbackslash fsc}}
+(\fsc{French CAPS})}
+Ce paragraphe teste la protection de certaines macro-instructions.
+
+\disallowuchyph\notthyphenation
+\newpage\english
+\section{Other useful macros}
+French patronymic names are printed in small capitals with the first
+letter in uppercase. That is done with the \verb|\fsc| macro.
+Another macro \verb|\lsc| is available to print all the word(s) in small
+capitals, specially usefull for trademark or companies names.
+
+\LaTeX{} is at the current time unable to print a \verb|\ref| as
+a footnotemark, the command \verb|\refmark| is able to do that.
+
+Also, \LaTeX{} doesn't offer any {\tt verbatim} style able to
+hyphenate lines. \FP\ is able to do this with the
+environment {\tt versatim} or the \texttt{\textbackslash vers} order within a
+line.
+
+These environments allow to replace the {\tt tt} quoting
+({\tt ` '}) by more realistic ones ({\tt\`{ } \'{ }}) with
+the order \texttt{\textbackslash noenglishquote}. Of course this environment
+produce nothing different from the standard \verb|verbatim| when
+used in \verb|\english|:
+{\overfullrule=5pt
+
+\hfuzz=30pt
+\begin{versatim}
+1\iere{} ligne : cette ligne est bien trop
+2\ieme{} ligne : le test terrible de...
+3\ieme{} ligne : `ceci est le test des...
+\end{versatim}
+
+\SmsG%
+
+And now this a test of a long string within a \verb|\vers|:
+``\vers|Longue Cha\^{\i}ne De Caract\`{e}res \`{A} Couper A|
+This string would be hyphenated only if someone said
+\verb|\tthyphenation| previously.
+}
+
+\FmsG%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\newpage\french
+\section{Accents et {\mdseries\tt tabbing}}
+\FP\ apporte une solution pour pouvoir introduire
+des lettres accentu\'{e}es dans un environnement \vers|tabbing| lorsque
+le source \TeX{} est en 7bits ou utilise Ml\TeX{}
+\footnote{%
+Cette option est aussi utile d\'{e}sormais en T1 car les lettres accentu\'{e}es
+sont traduites avec \FP, de fa\c{c}on interne, en 7-bits \`{a} la \TeX.
+ }%
+ ; c'est l'option par d\'{e}faut
+\vers|\|\vers|tabbing|\-\vers|accents|\tabbingaccents. L'exem\-ple :
+\begin{tabbing}
+Les TYPES : \= Les matieres \= Les genres \kill
+Bidon : \> d'huile \>$A'=B''$\` normal \\
+Caisse : \> \`%
+ a outils \> rustique \\
+Toile : \> \a`%
+ a matelas \> confort
+\end{tabbing}
+\notabbingaccents
+doit s'imprimer ainsi :
+\begin{tabbing}
+Les TYPES : \= Les matieres \= Les genres \kill
+Bidon : \> d'huile \>$A'=B''$\` normal \\
+Caisse : \>\a`a outils \> rustique \\
+Toile : \>\a`a matelas \> confort \\
+\end{tabbing}
+\vspace*{-0.5\baselineskip}
+Nous l'avions saisi comme suit :
+\begin{versatim}
+\begin{tabbing}
+Les TYPES : \= Les matieres \= Les genres \kill
+Bidon : \> d'huile \>$A'=B''$\` normal \\
+Caisse : \> \`%
+ a outils \> rustique \\
+Toile : \> \a`%
+ a matelas \> confort
+\end{tabbing}
+\end{versatim}
+
+\section{Figurettes}
+Le style \verb|french| propose un environnement sp\'{e}cial, appel\'{e}
+\verb|figurette|,
+ pour placer les figures \`{a} l'enfroit exact o\`{u}
+ces figures se pr\'{e}sentent
+dans le texte. Cela est particuli\`{e}rement utile pour des petites figures,
+domaine o\`{u} \LaTeX{} n'est pas adapt\'{e} en standard.
+Pour r\'{e}aliser ceci :
+ \begin{figurette}
+ \center\fbox{essai}\endcenter% rajoute pour plain TeX
+ \caption{Ceci est une figurette}
+ \label{figurette}
+ \end{figurette}
+Nous avons \'{e}crit :
+\begin{verbatim}
+ \begin{figurette}
+ \center\fbox{essai}
+ \caption{Ceci est une figurette}
+ \label{figurette}
+ \end{figurette}
+\end{verbatim}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\newpage\english
+\section{Diacritics \& {\mdseries\tt tabbing}}
+There is no way in a \LaTeX{} \texttt{tabbing} to put diacritics on letters
+as we use them usually. Here is how is printed the {\tt tabbing}
+you can find in the french part:
+
+\begin{tabbing}
+Les TYPES : \= Les matieres \= Les genres \kill
+Bidon : \> d'huile \>$A'=B''$\` normal \\
+Caisse : \> \`%
+ a outils \> rustique \\
+Toile : \> \`%
+ a matelas \> confort
+\end{tabbing}
+
+and that would normally be printed as follows:
+
+\begin{tabbing}
+Les TYPES : \= Les matieres \= Les genres \kill
+Bidon : \> d'huile \>$A'=B''$\` normal \\
+Caisse : \>\a`a outils \> rustique \\
+Toile : \>\a`a matelas \> confort \\
+\end{tabbing}
+
+ \begin{figurette}
+ \center\fbox{essai}\endcenter% rajoute pour plain TeX
+ \caption{Originally a figurette}
+ \label{engfig}
+ \end{figurette}
+\NL{4}
+
+\section{Little figures}
+
+\FP\ offers a special environment called
+\verb|figurette| which allows to put little figures EXACTLY
+where they appear in the text. This is a lack in the present
+versions of \LaTeX{}. In English the environment \verb|figurette|
+is replaced by an environment \verb|figure[h]|; look at figure
+\ref{engfig} we tried to put here without success and we
+typed like this:
+
+\begin{verbatim}
+ \begin{figurette}
+ \center\fbox{essai}
+ \caption{Originally a figurette}
+ \label{engfig}
+ \end{figurette}
+\end{verbatim}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\newpage\french
+\ifx\drapeaufg\undefined\else
+\section{Composition \protect\linebreak en drapeau}
+\`{A} gauche on trouve une composition justifi\'{e}e standard \LaTeX.
+Dessous, une composition avec l'environnement \texttt{drapeaufg}
+propos\'{e} par l'extension \FP, il s'agit d'une composition
+\emph{en drapeau, au fer} \`{a} gauche. \`{A} droite, il s'agit aussi d'une
+composition \emph{en drapeau, au fer} \`{a} gauche mais cette fois-ci avec
+l'environnement \texttt{drapeaufgIN}, sans coupure de mots, comme cela
+est recommand\'{e} par l'imprimerie nationale.
+
+\subsection{Tests ordinaires}
+\textbf{\large Texte justifi\'{e} de r\'{e}f\'{e}rence}
+
+\medskip
+\def\GOfrench{\noindent{\fboxsep 0pt\fboxrule 0.2pt\fbox{\advance\hsize by -2pt
+ \hbox{\vbox{\noindent
+<< Par ailleurs, les lignes n'occupant pas toute la
+ justification (titres ou l\'{e}gendes le plus souvent) peuvent \^{e}tre
+ \emph{centr\'{e}es} ou se pr\'{e}senter align\'{e}es verticalement
+ par la gauche sur la
+ marge de gauche de la page, ou \XX
+ verticalement par la droite sur la marge de
+ droite de la page. On dira alors qu'elles sont compos\'{e}es
+\emph{en drapeau, au fer} \`{a} gauche ou \emph{en drapeau, au fer} \`{a} droite.
+Dans ce type de composition, les coupures de mots sont proscrites et les
+rejets \`{a} la ligne devront ob\'{e}ir \`{a} une certaine logique souvent dict\'{e}e par le
+sens. Ainsi on ne s\'{e}parera pas l'article du substantif, le pronom personnel
+sujet de son verbe, l'adjectif num\'{e}ral du nom auquel il se \XX
+rapporte, \etc. >>
+(r\`{e}gles Imprimerie Nationale, p~153)%
+}}\hss}}}
+
+\let\XX\relax
+\GOfrench
+
+\hbox{}
+
+\textbf{\large Drapeau, au fer \`{a} gauche}
+
+\medskip
+\begin{drapeaufg}
+\GOfrench
+\end{drapeaufg}
+
+\newpage
+\enlargethispage{20pt}\hbox{}\smallskip
+
+\hbox{}\smallskip\NL5
+Dans ce dernier cas, des d\'{e}bordements dans la marge droite
+sont possibles ; ils sont \`{a} traiter
+au cas par cas par de simples coupures de lignes plac\'{e}es aux endroits
+recommand\'{e}s par l'imprimerie nationale (selon texte encadr\'{e}). Le
+dernier texte est ainsi corrig\'{e}.\NL3\vspace*{-2.5pt}
+
+\textbf{\large Drapeau << fg >>, selon IN}
+
+\medskip
+\begin{drapeaufgIN}
+\GOfrench
+\end{drapeaufgIN}
+
+\medskip
+\textbf{\large Drapeau << fg IN >>, corrig\'{e}}
+
+\medskip
+\let\XX\\
+\begin{drapeaufgIN}
+\GOfrench
+\end{drapeaufgIN}
+
+\newpage
+\subsection{Tests en drapeau << fg >>, aux limites}
+Voici deux tests aux limites de la composition
+\emph{en drapeau, au fer} \`{a} gauche, sur une colonne
+\'{e}troite (2cm) tout d'abord avec l'environnement
+\texttt{drapeaufg} et ensuite avec la recommandation
+de l'imprimerie nationale appliqu\'{e}e \`{a}
+\FP\ (ou interpr\`{e}t\'{e}e par l'environnement \texttt{drapeaufgIN}).
+
+Les coefficients de laideur (\texttt{badness})
+accept\'{e}s sont \'{e}lev\'{e}s, c'est la raison pour laquelle
+aucun message d'\texttt{underfull hbox}
+(tout comme celui d'\texttt{overfull})
+n'est \'{e}mis dans les deux cas
+ci-dessous.
+
+\bigskip
+
+\def\temp{\noindent{\fboxsep 0pt\fboxrule 0.2pt\fbox{\advance\hsize by -2pt
+ \hbox{\vbox{\noindent
+ instit instits
+institut instituts
+institution institutions
+institutionnel institutionnels
+institutionnelle institutionnelles
+institutionnellement
+constitutionnellement
+inconstitutionnellement
+}}\hss}}}
+
+\let\XX\relax
+\parbox{2cm}{%
+\begin{drapeaufg}
+\hsize=2cm
+\temp
+\end{drapeaufg}
+}
+\hspace*{0.5cm}
+\parbox{2cm}{%
+\begin{drapeaufgIN}
+\hsize=2cm
+\temp
+\end{drapeaufgIN}
+}
+
+\newpage
+\subsection{Tests en drapeau << fd >>, aux limites}
+Nous effectuons ici les m\^{e}mes test mais avec
+les environnements \texttt{drapeaufd} (fer \`{a} droite)
+et \texttt{drapeaufdIN} (selon imprimerie nationale).
+En fait, l'environnement
+\texttt{drapeaufd} est tout simplement
+un \texttt{raggedleft}.
+\NL{9}
+
+\let\XX\relax
+\parbox{2cm}{%
+\begin{drapeaufd}
+%\mbox{Avec \the\rightskip :}
+\hsize=2cm
+\temp
+\end{drapeaufd}
+}
+\hspace*{0.5cm}
+\parbox{2cm}{%
+\begin{drapeaufdIN}
+%\mbox{Avec \the\rightskip :}
+\hsize=2cm
+\temp
+\end{drapeaufdIN}
+}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\newpage
+\Large
+\let\XX\relax
+\subsection{Test << fd >> classique}
+
+\begin{drapeaufd}
+\GOfrench
+\end{drapeaufd}
+
+\normalsize\bigskip
+
+L'{\oe}il aiguis\'{e} sera troubl\'{e} car
+les deux colonnes ne sont pas align\'{e}es horizontalement ;
+cela est d\^{u} \`{a} la diff\'{e}rence de mat\'{e}riel \`{a} composer, au total,
+dans chacune des deux colonnes.
+
+\vfill
+
+\newpage
+\Large
+\subsection{Test << fd >> IN}
+\begin{drapeaufdIN}
+\GOfrench
+\end{drapeaufdIN}
+
+\normalsize\bigskip
+
+Quelque soit le corps de la police (dans les limites
+classiques de \LaTeX{}), avec cette largeur de colonne,
+on n'obtient pas de diff\'{e}rence
+de mise en page entre les deux environnements. Les r\`{e}gles
+de l'imprimerie nationale sont donc plus largement appliqu\'{e}es
+dans ce cas.
+
+\vfill
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\onecolumn
+\newpage\french
+\hbox{}
+\vfill
+\centerline{\Large Page intentionnellement laiss\'{e}e blanche}
+\vfill
+\twocolumn
+
+\fi% on a saute si drapeaufg est inconnu (frencht)
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\newpage\french
+\section{Lettrines}
+\SmsG% lettrine reduite a 1 seule lettre !
+Voici le test des lettrines propos\'{e}es en mode semi-automatique
+avec \FP\ :
+
+\bigskip
+\verb| \flettrine{Quoi ?}|
+\flettrine{Quoi ?} {Paris}
+{sera toujours Paris}. Ceci est une lettrine obtenue
+gr\^{a}ce au coll\`{e}gue allemand E.~{\sc Scha\-l\"{u}ck} et
+ aux diff\'{e}rents codes qu'il
+m'a donn\'{e}s.
+
+<< Ici d\'{e}marre une lettrine dans une citation.
+
+\bigskip
+\lettrine{Paris}
+{sera toujours Paris}. Ceci est une lettrine obtenue
+gr\^{a}ce au coll\`{e}gue allemand E.~{\sc Scha\-l\"{u}ck} et
+ aux diff\'{e}rents codes qu'il
+m'a donn\'{e}s.
+
+\bigskip
+\flettrine{Paris}
+{sera toujours Paris}. Ceci est une lettrine obtenue
+gr\^{a}ce au coll\`{e}gue allemand E.~{\sc Scha\-l\"{u}ck} et
+ aux diff\'{e}rents codes qu'il
+m'a donn\'{e}s.
+
+et la citation se termine ici. >>
+
+\bigskip
+\verb| \font\lettrinefont=cmr17 scaled|\\
+{\font\lettrinefont=cmr17 scaled \magstep5
+\verb| \magstep5\lettrine[`` {Paris} '']|
+\lettrine[`` {Paris} '']
+{sera toujours Paris}. Ceci est une lettrine obtenue
+gr\^{a}ce au coll\`{e}gue allemand E.~{\sc Scha\-l\"{u}ck} et
+ aux diff\'{e}rents codes qu'il
+m'a donn\'{e}s.\par}
+
+\bigskip
+\verb| \lettrine[<< {Paris} >>]|
+\lettrine[<< {Paris} >>]
+{sera toujours Paris}. Ceci est une lettrine obtenue
+gr\^{a}ce au coll\`{e}gue allemand E.~{\sc Scha\-l\"{u}ck} et
+ aux diff\'{e}rents codes qu'il
+m'a donn\'{e}s.
+
+\bigskip
+\verb| \flettrine[<< {Paris} ]|
+\flettrine[<< {Paris} ]
+{sera toujours Paris}. Ceci est une lettrine obtenue
+gr\^{a}ce au coll\`{e}gue allemand E.~{\sc Scha\-l\"{u}ck} et
+ aux diff\'{e}rents codes qu'il
+m'a donn\'{e}s. >>
+
+\bigskip
+\tthyphenation\noindent
+\vers|\|\vers|font\lettrinefont=cmti12 scaled| \!\vers| \magstep4\lettrine|
+{\em \% v\'{e}rification d'italique.}
+\font\lettrinefont=cmti12 scaled \magstep4\lettrine
+Blalbla {\bf je blablate}, tu blablates, ils blablatent, b...
+(ceci est l'exemple m\^{e}me de ce qu'il ne faut pas faire car ainsi
+le mot n'est pas mis en petites capitales). Ceci avait pour but
+de tester une police italique.
+
+\bigskip
+\lettrine{L'absurdit\'{e}} de cette lettrine...
+
+\notthyphenation
+\FmsG
+
+\newpage\english
+
+\section{Illuminated letters}
+
+Look at the French part of this document because, in English,
+these macros have no effect:
+
+\bigskip
+\verb| \flettrine{Quoi ?}|
+\flettrine{Quoi ?} {Paris}
+{sera toujours Paris}. Ceci est une lettrine obtenue
+gr\^{a}ce au coll\`{e}gue allemand E.~{\sc Scha\-l\"{u}ck} et
+ aux diff\'{e}rents codes qu'il
+m'a donn\'{e}s.
+
+<< Ici d\'{e}marre une lettrine dans une citation.
+
+\bigskip
+\lettrine{Paris}
+{sera toujours Paris}. Ceci est une lettrine obtenue
+gr\^{a}ce au coll\`{e}gue allemand E.~{\sc Scha\-l\"{u}ck} et
+ aux diff\'{e}rents codes qu'il
+m'a donn\'{e}s.
+
+\bigskip
+\flettrine{Paris}
+{sera toujours Paris}. Ceci est une lettrine obtenue
+gr\^{a}ce au coll\`{e}gue allemand E.~{\sc Scha\-l\"{u}ck} et
+ aux diff\'{e}rents codes qu'il
+m'a donn\'{e}s.
+
+et la citation se termine ici. >>
+
+\bigskip
+\verb| \font\lettrinefont=cmr17 scaled|\\
+{\font\lettrinefont=cmr17 scaled \magstep5
+\verb| \magstep5\lettrine[`` {Paris} '']|
+\lettrine[`` {Paris} '']
+{sera toujours Paris}. Ceci est une lettrine obtenue
+gr\^{a}ce au coll\`{e}gue allemand E.~{\sc Scha\-l\"{u}ck} et
+ aux diff\'{e}rents codes qu'il
+m'a donn\'{e}s.\par}
+
+\bigskip
+\verb| \lettrine[<< {Paris} >>]|
+\lettrine[<< {Paris} >>]
+{sera toujours Paris}. Ceci est une lettrine obtenue
+gr\^{a}ce au coll\`{e}gue allemand E.~{\sc Scha\-l\"{u}ck} et
+ aux diff\'{e}rents codes qu'il
+m'a donn\'{e}s.
+
+\bigskip
+\verb| \flettrine[<< {Paris} ]|
+\flettrine[<< {Paris} ]
+{sera toujours Paris}. Ceci est une lettrine obtenue
+gr\^{a}ce au coll\`{e}gue allemand E.~{\sc Scha\-l\"{u}ck} et
+ aux diff\'{e}rents codes qu'il
+m'a donn\'{e}s. >>
+
+\bigskip
+\noindent
+\verb|\font\lettrinefont=cmti12 scaled| \verb| \magstep4\lettrine|
+%{\em \% v\'{e}rification d'italique.}
+\font\lettrinefont=cmti12 scaled \magstep4\lettrine
+Blalbla {\bf je blablate}, tu blablates, ils blablatent, b...
+(ceci est l'exemple m\^{e}me de ce qu'il ne faut pas faire car ainsi
+le mot n'est pas mis en petites capitales). Ceci avait pour but
+de tester une police italique.
+
+\bigskip
+\lettrine{L'absurdit\'{e}} de cette lettrine...
+
+\onecolumn\newpage%
+\french
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% ===>>>> Il n'y a plus d'anglais au del\`{a} de cette limite <<<<===
+\def\lastlinein#1{\expandafter\gdef\csname #1\endcsname{\relax}}
+\lastlinein{english}% this is for frencht.tex
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\newpage\french
+\section{Lettrines automatiques ou non}
+
+\bigskip
+\lettrine{THIS IS A TEST} (a non-automatic one)
+is a piece of text and some more and some more
+and some more and some more and some more and some more and some more
+and some more and some more and some more and some more and some more
+and some more and some more.
+
+\bigskip
+\flettrine{THIS IS A TEST} (a non-automatic one)
+is a piece of text and some more and some more
+and some more and some more and some more and some more and some more
+and some more and some more and some more and some more and some more
+and some more and some more.
+
+\bigskip
+\automaticlettrine
+\lettrine{THIS IS A TEST} (a default automatic one)
+is a piece of text and some more and some more
+and some more and some more and some more and some more and some more
+and some more and some more and some more and some more and some more
+and some more and some more.
+
+\bigskip
+\flettrine{THIS IS A TEST} (a default automatic one)
+is a piece of text and some more and some more
+and some more and some more and some more and some more and some more
+and some more and some more and some more and some more and some more
+and some more and some more.
+
+
+\bigskip
+\def\lettrinefontname{cmr17}
+\lettrine{THIS IS A TEST} (a cmr17 automatic one)
+is a piece of text and some more and some more
+and some more and some more and some more and some more and some more
+and some more and some more and some more and some more and some more
+and some more and some more.
+
+\bigskip
+\flettrine{THIS IS A TEST} (a cmr17 automatic one)
+is a piece of text and some more and some more
+and some more and some more and some more and some more and some more
+and some more and some more and some more and some more and some more
+and some more and some more.
+
+\bigskip
+\lettrine{Que vaut ce test ?} (en automatique)
+is a piece of text and some more and some more
+and some more and some more and some more and some more and some more
+and some more and some more and some more and some more and some more
+and some more and some more.
+
+\bigskip
+\noautomaticlettrine
+\lettrine{THIS IS A TEST} (a non-automatic one)
+is a piece of text and some more and some more
+and some more and some more and some more and some more and some more
+and some more and some more and some more and some more and some more
+and some more and some more.
+
+\bigskip
+\lettrine{Que vaut ce test ?} (non-automatique)
+is a piece of text and some more and some more
+and some more and some more and some more and some more and some more
+and some more and some more and some more and some more and some more
+and some more and some more.
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\newpage
+\section{\'{E}num\'{e}rations}
+L'espacement des \'{e}num\'{e}rations fran\c{c}aises est
+ profond\'{e}ment modifi\'{e} avec \FP, pour s'en
+convaincre voir le test des listes page \pageref{listes} ou
+l'environnement \texttt{order} ci-apr\`{e}s.
+
+\section{L'environnement << {\mdseries\texttt{order}} >>}
+Un environnement sp\'{e}cifique est propos\'{e}, il s'agit de l'environnement
+\verb|order| pour \LaTeX{} dont voici un petit exemple :
+
+\begin{order}
+\item Bien regarder ;
+\item l'espacement de chaque \'{e}l\'{e}ment est sp\'{e}cial ;
+\item l'espacement vertical est aussi diff\'{e}rent.
+\item A-D-O-P-T-E-Z \ \ L-E !
+\end{order}
+
+Ce prototype correspond bien aux \'{e}num\'{e}rations
+fran\c{c}aises (je ne
+parle pas uniquement des marqueurs -- primo, secundo, \etc. --
+mais aussi de la gestion des espaces). En voici un autre exemple
+concret :
+\NL1
+
+Les guillemets entrent aussi en ligne de compte : << Je citerai
+3 cas tr\`{e}s importants :
+\begin{order}
+\item le premier cas ;
+\item le second ;
+\item le dernier.
+\end{order}
+qui sont [...] >>
+\NL1
+
+\`{A} noter que ce m\'{e}canisme de rajout des guillemets en d\'{e}but de
+chaque \'{e}l\'{e}ment de liste marche aussi avec un environnement
+comme \texttt{itemize}.
+
+\expandafter\ifx\csname frenchTeXmods\endcsname\relax
+ \space% ce test ne marche pas en LaTeX standard.
+\else
+ \ifx\frenchTeXmods\empty\space% ni en dummy french !
+ \else
+\section{Tests aux limites des guillemets anglais}
+
+V\'{e}rifions qu'il est possible d'activer temporairement
+quelques caract\`{e}res sans perturber le traitement. Exemple :
+
+\begin{verbatim}
+{\catcode`\'=\active\catcode`\'=\active
+ `` Test guillemets anglais ''
+}
+\end{verbatim}
+
+{\catcode`\'=\active\catcode`\'=\active
+ `` Test guillemets anglais ''
+}
+ \fi
+\fi
+
+Un cas bien sp\'{e}cial avait \'{e}t\'{e} rencontr\'{e} avec l'extension \myverb|amstex|
+qui utilisait une r\'{e}f\'{e}rence avec des math\'{e}matiques dans une autre
+r\'{e}f\'{e}rence, ce qui entrainait une boucle infinie avec \FP. Voici
+le test en question :
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% this code generates a loop with versions of french < V3,42 %%%%%%
+\makeatletter
+\def\r@ref{{\ref{nulllabel}$'$}}{1}
+\makeatother
+\ref{ref} = 1 $'$ % boucle garantie si < V3,42
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+Autre test aux limites ?
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\newpage
+\section{<< Autres tests >>}
+Nous sommes ici en une colonne.
+
+\bigskip
+Voici un test d'encadr\'{e} contenant le mode \verb|centering| :
+\begin{center}\fbox{%
+\parbox{6cm}{\begin{center}Information : si vous voulez me joindre,
+mon t\'{e}l. : 01 69 35 85 40. Je n'y suis qu'aux horaires de
+bureau.\end{center}}%
+ }\end{center}
+
+Bon ?\footnote{L'objet de cette note de bas de page est
+de v\'{e}rifier l'espacement des inf\'{e}rieurs et sup\'{e}rieurs,
+\primo en \texttt{\backslash tt} :
+\texttt{XXXX ===> <=== YYYY} et
+\secundo en {\tt verbatim} :
+\myverb|french V4 < french V5 > frenchOLD|%
+.}
+
+\begin{table*}[h]
+\caption{Dactylographie et typographie compar\'{e}es}
+\label{frenchdactylo}
+\vspace*{1cm}
+\huge
+\begin{tabular}{|r|r|}
+\hline
+dactylographie\ \ \ \ \hfill & \ \ \ typographie\ \ \ \hfill\\
+\hline
+ \verb|use \dots or \ldots| \ & use \dots\ or $\ldots{}$\ \\
+ \verb|utilisez...| \ & utilisez...\ \\
+ \verb|semi-colon;| \ & semi-colon;\ \\
+ \verb|point-virgule ;| \ & point-virgule ;\ \\
+ \verb|My god!| \ & My god!\ \\
+ \verb|Mon dieu !| \ & Mon Dieu !\ \\
+ \verb|Why not?| \ & Why not?\ \\
+ \verb|Pourquoi pas ?| \ & Pourquoi pas ?\ \\
+ \verb|``I say''| \ & ``I say''\ \\
+ \verb|<< Je dis >>| \ & << Je dis >>\ \\
+ \verb|He said: Yes| \ & He said: Yes\ \\
+ \verb|Il dit : non| \ & Il dit : non\ \\
+ \verb|$1\,234,567$| \ & $1\,234,567$\ \\
+ \verb|$f(x,\,y)$| \ & $f(x,\,y)$\ \\
+\hline
+\end{tabular}
+\normalsize
+\end{table*}
+
+\newpage
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\ifx\itshape\undefined\else% avoid old frencht crash
+\subsection{Test des guillemets dans un \mdseries\texttt{\backslash edef}}
+
+Les guillemets peuvent \^{e}tre appel\'{e}s dans une d\'{e}finition de macro
+telle que \verb|\edef| mais comme les guillemets ne sont pas expansibles
+enti\`{e}rement il a donc fallu arriver \`{a} r\'{e}aliser une d\'{e}finition acceptable.
+
+Ainsi \verb|\edef\testedef{<< essai >>}|
+\edef\testedef{<< essai >>}
+donnera la curieuse d\'{e}finition suivante : \\
+\hbox{}\hfill\texttt{\meaning\testedef} ; \\
+elle reste compl\`{e}tement expansible (dans certaines conditions)
+ou pas du tout (comme ici appel\'{e}e en tt on obtiendra
+le r\'{e}sultat suivant : \texttt{\testedef}).
+\fi
+
+\subsection{{\mdseries\tt <{}} et {\mdseries\tt >{}} red\'{e}finis}
+
+Mes utilisateurs sont terribles ! Ils veulent le beurre, l'argent du
+beurre et aussi la fermi\`{e}re... S'ils codent
+\verb9\def\truc<#1|#2>{/#1 OU #2/}9
+ ils veulent pouvoir obtenir
+/Essai OU Erreur/ en saisissant \verb9\truc<Essai|Erreur>9. Faisons
+l'essai r\'{e}el :
+{\def\truc<#1|#2>{/#1 OU #2/} \truc<Essai|Erreur>}.
+
+Encore plus fort : nous voulons avoir une notation de Backus-Naur
+c'est-\`{a}-dire des \verb|\rangle| et \verb|\langle|. Voici la
+d\'{e}finition que nous avons entr\'{e}e avant le \verb|\begin{document}| :
+\begin{verbatim}
+{\catcode`\<=\active\catcode`\>=\active%
+\global\def<{\left\langle}\global\def>{\right\rangle}
+}
+\end{verbatim}
+
+Pour tester l'efficacit\'{e} de ces macros il suffit alors de faire
+par exemple :
+\begin{verbatim}
+<< $<assignement>$ >>
+\end{verbatim}
+\`{a} condition que l'option \verb|\frenchguillemets| soit
+active (en maths).
+
+Essayons cela :
+% en fait il faut reactiver cela maintenant :
+{%
+ \gdef\myinf{\left\langle}%
+ \gdef\mysup{\right\rangle}%
+<< $\frenchguillemets% on a \nofrenchguillemets avec AmSTeX
+ <assignement>$ >>.
+}%
+% Remettre ici pour frenchle
+\global\let\myinf\inferieura% A no-op def
+\global\let\mysup\superieura% for a temporary action
+
+\subsection{\mdseries\texttt{\textbackslash special}}
+L'inclusion d'une commande \verb|\special| est ici test\'{e}e :\\
+{%%%%%%%%%%%% attention : commentaires impossible dans cette partie.
+ \catcode`\%=12
+ \texttt{\backslash special}\verb|{ps:|{\tt %%%
+ }\verb| Texte bidon {`<<manuel:C;!?>>'}}|
+ \special{ps:%%%
+ Texte bidon {`<<manuel:C;!?>>'}}
+}
+
+\subsection{{\mdseries\texttt{\textbackslash refmark}} dans un tableau}
+
+O\`{u} l'on reparle encore de \verb|\refmark|...
+
+La note \ref{bas} est r\'{e}f\'{e}renc\'{e}e depuis le tableau ci-dessous, tout comme
+les notes du tableau lui-m\^{e}me.
+
+ \begin{table}[htbp]
+ \begin{center}
+ \begin{tabular}{|c|l|}
+ \hline
+ Lettre & Utilisation\\
+ \hline
+ {\tt h} & petit blabla gentil et anodin \refmark{bas}\\
+ {\tt l} & ici reblabla assez moyen\refmark{bas}$^,$\refmark{refnote}\\
+ {\tt L} & autre grand grand grand blabla
+ \footnote{La note du tableau << refmark >>.\label{refnote}}\\
+ \hline
+ \end{tabular}
+ \caption{Le titre du tableau.}
+ \end{center}
+\end{table}
+
+En dehors du tableau on peut faire appel\footnote{La note de page.\label{bas}}
+\`{a} une note qui est, par contre, r\'{e}f\'{e}renc\'{e}e dans le tableau. Tout cela
+est r\'{e}alis\'{e} gr\^{a}ce \`{a} l'ordre \verb|\refmark| introduit par l'extension
+\FP.
+
+\subsection{{\mdseries\texttt{\textbackslash nombre}} en argument}
+
+Voici un test simple permettant de valider \verb|\nombre| lorsqu'il
+est en argument d'une macro-instruction :
+
+\begin{verbatim}
+\noindent
+1\,234 un nombre simple !\\
+$*$\\
+\nombre{1 234} un nombre simple !\\
+\nombre{1 234,5} avec une d\'{e}cimale.\\
+\texttt{\nombre{1 234,56} avec fonte tt.}\\
+\emph{\nombre{1 234,567} en mode emphas\'{e}.}\\
+\nombre{1 234,567 8} avec encore une d\'{e}cimale.
+\end{verbatim}
+
+Il faut noter que l'ordre \verb|\nombre| est toujours compos\'{e} en mode
+math\'{e}matique ce qui force l'utilisation des fontes math\'{e}matiques.
+Tout changement de fonte doit donc \^{e}tre pr\'{e}cis\'{e} de fa\c{c}on ad hoc.
+Par ailleurs, la composition n'est garantie que si l'option
+\verb|\nofiles| n'a pas \'{e}t\'{e} indiqu\'{e}e en d\'{e}but de document.
+Voici ce que ce test donne :
+
+\noindent
+1\,234 un nombre simple !\\
+$*$\\
+\nombre{1 234} un nombre simple !\\
+\nombre{1 234,5} avec une d\'{e}cimale.\\
+\texttt{\nombre{1 234,56} avec fonte tt.}\\
+\emph{\nombre{1 234,567} en mode emphas\'{e}.}\\
+\nombre{1 234,567 8} avec encore une d\'{e}cimale.
+
+\ifx\documentclass\undefined % Still Plain! so no \DeclareFontFamily
+\else%
+\subsection{{\mdseries\texttt{\textbackslash label}} en mode math}
+
+Il s'agit ici de tester la commande \verb|\label| dans un environnement
+\verb|equation| :
+
+\begin{verbatim}
+V\'{e}rifions le num\'{e}ro de l'\'{e}quation \ref{labelequation} ci-dessous :
+\begin{equation}\label{labelequation}
+V_{Lm}=\frac{L}{t_p}
+\end{equation}
+\end{verbatim}
+
+Voici le r\'{e}sultat du test :
+
+V\'{e}rifions le num\'{e}ro de l'\'{e}quation \ref{labelequation} ci-dessous :
+\begin{equation}\label{labelequation}
+V_{Lm}=\frac{L}{t_p}
+\end{equation}
+\fi
+
+\csname TexteComplementaire\endcsname
+
+\subsection{Bibliographie}
+Voyons maintenant la bibliographie.
+Dans \cite{`<<manuel:Gaulle;!?>>'} on trouvera...
+\nocite{`<<merci:Ronan;!?>>'}
+Par contre
+\cite[pp.1--3, X \& consorts]{<<blabla>>}
+est beaucoup plus fourni en exemples et commentaires... Mais dans
+\cite[p. 25 \S~13 {{\it et seq.}}]{`<<torture:Gaulle;!?>>'}
+toutes ces informations
+sont plus d\'{e}taill\'{e}es.
+
+Ce qui suit n'est pas un exemple de belle bibliographie, juste une
+v\'{e}rification de bon fonctionnement.
+
+\bibliographystyle{plain}
+
+\begin{thebibliography}{Knuth 99}
+
+\section*{Bibliographie dans le document}
+
+\bibitem[Knuth 99]{<<blabla>>} Le \TeX book ou la << bible >>
+ des gourous \TeX
+\bibitem{`<<manuel:Gaulle;!?>>'} B. {\sc Gaulle}, {\em
+ Le r\'{e}sultat d'une << {\em dure} >> journ\'{e}e de travail !}
+\bibitem{`<<merci:Ronan;!?>>'} R. {\sc Keryell}, {\em
+ Le gentil normalien qui m'a beaucoup aid\'{e} gr\^{a}ce \`{a} sa th\`{e}se...}
+\bibitem{`<<torture:Gaulle;!?>>'} B. {\sc Gaulle}, {\em
+ Notice d'utilisation du style french}, 1991-1999.
+\bibitem{`<<tortureFP:Gaulle;!?>>'} B. {\sc Gaulle}, {\em
+ Notice d'utilisation de l'extension \FP\ pour \LaTeX}, 2000-20xx.
+\end{thebibliography}
+
+\ifx\documentclass\undefined % Still Plain! so skip
+\else%
+\section*{\phantom{\normalsize[Knuth 99]}Bibliographie en dehors du document}
+
+Avec certaines extensions de bibliographie il peut s'av\'{e}rer utile
+de prot\'{e}ger les caract\`{e}res actifs \`{a} l'int\'{e}rieur m\^{e}me de la base
+de donn\'{e}es bibliographique.
+
+\bibliography{testbib}
+\fi%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\listoffigures
+\listoftables
+\glossary{Fa\c{c}on cordon bleu}
+\glossaires
+\section*{Glossaire des mots techniques}
+\printglossary[\jobname.glo]
+
+\noindent -- magnification
+
+\noindent -- caract\`{e}res sp\'{e}ciaux : \NL1
+
+{\huge%\frenchmacros n'est pas utile ici
+\begin{tabular}{|c|c|}
+\hline
+Pour imprimer ceci & Saisir cela\\ \hline
+\at & \verb|\at|\\ \hline
+\texttt{\vert} & \verb|\texttt{\vert}|\\ \hline
+\tilde & \verb|\tilde|\\ \hline
+\texttt{\backslash}& \verb|\texttt{\backslash}|\\ \hline
+\chap & \verb|\chap|\\ \hline
+\degre & \verb|\degre| \\ \hline
+\degres & \verb|\degres| \\ \hline
+\normalsize
+1\ier{} \'{e}tage & \verb|1\ier{} \'{e}tage| \\ \hline
+\normalsize
+(2\ieme\!) & \verb|(2\ieme\!)| \\ \hline
+\primo & \verb|\primo|\\ \hline
+\secundo) & \verb|\secundo)|\\
+\hline
+\end{tabular}
+} \NL1
+
+On notera que le caract\`{e}re \verb|\degre| n'est pas le signe typographique
+usuellement utilis\'{e} pour exprimer
+des degr\'{e}s mais que \verb|\degres| est
+plus conforme \`{a} la tradition. On remarque bien les diff\'{e}rences entre
+\verb|\primo| et \verb|\secundo)|
+(la forme parenth\'{e}s\'{e}e n'est pas valable
+en {\em belle} typographie fran\c{c}aise).
+\primo... \secundo... \tertio... \quarto...
+\primo)... \secundo)... \tertio)... \quarto)...
+
+\section*{Glossaire argotique}
+Le pied
+
+\printindex
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\part{Ce qui ne marche pas (bien)...}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\chapter{Quelques questions \`{a} \'{e}tudier}
+
+Cette partie ne comporte que des << anomalies >> que l'auteur esp\`{e}re
+r\'{e}soudre d'ici quelque temps,
+gr\^{a}ce \`{a} votre aide... peut \^{e}tre ?
+
+En fait il ne reste vraiment
+pas grand chose \`{a} r\`{e}gler mais ce sont probablement des
+vieux probl\`{e}mes sacr\'{e}ment compliqu\'{e}s.
+
+\section{Le << 2 points >>}
+Le << 2 points >> a une f\^{a}cheuse tendance
+\`{a} rester en bas de page lorsqu'il est
+suivi d'un {\tt verbatim}. Il serait souhaitable d'en trouver la raison.
+
+\section{Les guillemets}
+
+Le probl\`{e}me avec \verb|quotation| page \pageref{quotation}.
+
+%Et la perte d'informations
+%dans le cas de \verb|\noeveryparguillemets| lorsque l'on d\'{e}marre
+%une citation dans un paragraphe d\'{e}j\`{a} commenc\'{e}.
+%
+%Vraiment tr\`{e}s {\em fragile} ce \verb|\noeveryparguillemets| ! (
+
+Voir le cas des notes
+de bas de page ou en marge qui produis(ai ?)ent des d\'{e}sastres
+avec \verb|\noeveryparguillemets|.
+
+\section{Le cas des extensions mal \'{e}crites ...}
+
+... ne se r\'{e}sout souvent que par la modification de l'extension en question.
+Cela a \'{e}t\'{e} le cas de nombreuses extensions depuis le d\'{e}but de \FP\
+et j'ai bien peur que cela continue
+\emph{\'{e}ternellement} (et \`{a} propos : qui me succ\`{e}dera ?).
+
+Certains cas sont insolubles, par exemple :
+l'extension \verb|here.sty|
+red\'{e}finissait << au vol >>
+l'ordre \LaTeX{} \verb|\table| au lieu
+de modifier l'existant ; cela posait un r\'{e}el probl\`{e}me \`{a} \FP\
+qui se base sur la modification d'une commande \verb|\table|
+existante. Heureusement ce style p\'{e}rim\'{e} peut \^{e}tre remplac\'{e}
+avantageusement par \verb|float|.
+
+\chapter{Am\'{e}liorations \`{a} envisager}
+
+\section{Index et bibliographie}
+Deux th\`{e}mes qui n'ont que tr\`{e}s peu \'{e}t\'{e} abord\'{e}s.
+
+\section{Abr\'{e}viations}
+Il est f\^{a}cheux d'avoir \`{a} conna\^{\i}tre quelles sont les mots
+abr\'{e}geables pour pouvoir demander leur abr\'{e}viation ; autant les saisir
+correctement d\`{e}s le d\'{e}but...
+
+Faut-il arr\^{e}ter la composition \LaTeX{} quand une abr\'{e}viation
+n'est pas trouv\'{e}e ?
+
+Faut-il offrir la possibilit\'{e} de lister toutes les abr\'{e}viations ?
+
+\annexes
+\hsize=18cm
+
+\chapter{Copyright}
+\Mylisting{copyrigh.tex}
+
+\chapter{Le fichier \mdseries{\tt language.dat}}
+\Mylisting{language.dat}
+
+\chapter{Le fichier \mdseries{\tt frabbrev.tex}}
+\Mylisting{frabbrev.tex}
+
+% retire pour mettre french.cmd 98/06
+%\chapter{Le fichier \mdseries{\tt french.dmy}}
+%My\listing{french.dmy}
+
+\chapter{Le fichier \mdseries{\tt french.cmd}}
+\Mylisting{french.cmd}
+
+\chapter{Le fichier \mdseries{\tt french.chk}}
+\Mylisting{french.chk}
+
+\chapter{Un style english (\mdseries{\tt fenglish})}
+\Mylisting{fenglish_doc}
+
+\chapter{Le code de l'extension \FP}
+
+\Mylisting{french_doc}
+
+\newpage
+\hsize=15cm
+\abbreviations\noenglishdoublequotes
+\tableofcontents
+\noabbreviations\englishdoublequotes% remove options set for toc.
+
+\english %=\relax if english text (see \lastlinein)
+\endinput
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
diff --git a/language/french/e-french/texmf/doc/test/mya4.sty b/language/french/e-french/texmf/doc/test/mya4.sty
new file mode 100644
index 0000000000..87626f4b28
--- /dev/null
+++ b/language/french/e-french/texmf/doc/test/mya4.sty
@@ -0,0 +1,502 @@
+% mya4.sty for those who don't have any a4.sty on their engine
+\def\fileversion{1.2}
+\def\filedate{26 Feb 90}
+\def\docdate {26 Feb 90}
+%
+%% \CheckSum{134}
+%% \CharacterTable
+%% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z
+%% Lower-case \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z
+%% Digits \0\1\2\3\4\5\6\7\8\9
+%% Exclamation \! Double quote \" Hash (number) \#
+%% Dollar \$ Percent \% Ampersand \&
+%% Acute accent \' Left paren \( Right paren \)
+%% Asterisk \* Plus \+ Comma \,
+%% Minus \- Point \. Solidus \/
+%% Colon \: Semicolon \; Less than \<
+%% Equals \= Greater than \> Question mark \?
+%% Commercial at \@ Left bracket \[ Backslash \\
+%% Right bracket \] Circumflex \| Underscore \_
+%% Grave accent \` Left brace \{ Vertical bar \º
+%% Right brace \} Tilde \%}
+%%
+%
+%\iffalse
+% Style option `A4' to be used with LaTeX V2.09
+%
+% Please report errors to: J.L. Braams
+% JL_Braams@pttrnl.nl (Braams@hlsdnl5.bitnet)
+% or: N.A.F.M. Poppelier
+% Poppelier@hutruu53.bitnet}
+%
+% \changes{v1.0}{10 Jan 90}{Changed the margins for one-sided printing}
+% \changes{v1.1}{23 Jan 90}{Added \WideMargins macros}
+% \changes{v1.2}{26 Feb 90}{Consolidated setting of \marginparwidth}
+%
+%\fi
+%
+% \title{A style option to adapt the standard \LaTeX\ document
+% styles to A4 paper\thanks{This file
+% has version number \fileversion --
+% last revision \filedate, documentation dated \docdate.}}
+%
+% \author{Nico Poppelier}
+% \address{\TeX nique \\
+% Washingtondreef 153\\
+% 3564 KD Utrecht}
+% \netaddress{Poppelier@hutruu53.bitnet}
+% \author{Johannes Braams}
+% \address{PTT Research Neher Laboratories\\
+% P.O. Box 421\\
+% 2260 AK Leidschendam}
+% \netaddress{JL_Braams@pttrnl.nl}
+%
+% \date{Printed \today}
+%
+% \maketitle
+%
+% \begin{abstract}
+% This article describes a new style option that can be used with the
+% document styles that are distributed with the \LaTeX\ distributions.
+% It modifies the page layout to conform to the paper format most
+% commonly used in Europe, portrait A4.
+% \end{abstract}
+%
+% \section{Introduction}
+%
+% This file is based on the document style options \verb+A4.sty+ and
+% \verb+A4wide.sty+, which can be found in the Rochester style archive.
+% The original style option \verb+A4.sty+ we started from was written by
+% John Pavel, and is dated May 1987. This option only changes the vertical
+% size of the text somewhat, by increasing the number of lines on a page.
+% The style option \verb+A4wide.sty+ was written by Jean-Francois Lamy,
+% and is dated July 1986. This option only increases the width of the text.
+%
+% \section{Goals and design decisions}
+%
+% As many people before us, we found the page layout as implemented in the
+% standard \LaTeX\ document styles too much geared towards the
+% American-sized paper, which is somewhat wider than A4 paper, but also
+% noticeably less high.
+%
+% Our goal was to get a page layout that was suitable for A4 paper, and
+% produced legible texts. There are a number of layout parameters that
+% influence the legibility of a text. A parameter of major importance is
+% the number of words (or characters) on a line. The maximum number of
+% words per line is ten to twelve for optimal legibility, a rule-of-thumb
+% that can be found in typographic literature (we used%\cite{treebus}).
+% This results in a number of characters per line which lies somewhere
+% between sixty and seventy.
+%
+% Another important parameter is the amount of white space surrounding the
+% text. Here we have to distinguish between texts that are printed
+% one-sided and texts that are printed two-sided (back to back). In the
+% first case the margins on odd and even pages should be equal; in the
+% latter case care should be taken that the texts on both sides of the
+% paper overlap.
+% Also a printed document is likely to be bound some way or another, so
+% there should be enough white space in the `inner' margin\footnote{For
+% two-sided printing, this is the left margin on odd-numbered pages and the
+% right margin on even-numbered ones; for one-sided printing, this is
+% always the left margin.} of the text to allow this.
+%
+% There is yet one more thing to take into account when designing a page
+% layout. \LaTeX\ offers the possibility of using marginal notes and if
+% someone wants to use marginal notes, they should of course fit on
+% the paper.
+%
+% So, we have the following goals:
+% \begin{enumerate}
+% \item Choose the text width such that there will be sixty to seventy
+% characters on a line;
+% \item See to it that in documents that are printed two-sided, the
+% texts which end up on two sides of one sheet of paper overlap;
+% \item Leave enough white space in the `inner' margin to allow for
+% the binding of the document;
+% \item Leave enough white space in the `outer' margin
+% for marginal notes if they are going to be used.
+% \end{enumerate}
+%
+%
+% \section{The implementation}
+%
+% \subsection{The starting point}
+%
+% Thus we set out to modify some of the design decisions in the standard
+% document styles. Because we knew that we were not the first to tackle
+% the problem, we started by having a look at what was already available.
+% We came up with the two options mentioned earlier, which are publicly
+% available. Undoubtedly there will exist many more such files, some of
+% them maybe modifications of those two files.
+%
+% We had a look at the layout produced by both options and were not
+% satisfied with it. For one thing, both of the original options \verb+A4+
+% and \verb+A4wide+ modify only one aspect of the page layout. The first
+% thing to do was to put these two files together. This resulted in a
+% layout which was still unsatisfactory, since for the 10-point and
+% 11-point options lines in the text contained on the average eighty
+% characters or more.
+%
+% \subsection{What else?}
+%
+% \DescribeMacro\textwidth
+% \DescribeMacro\marginparwidth
+% Because the result so far gave us lines that contained too many
+% characters, we decreased the \verb+\textwidth+ to get lines that
+% contain about sixty to seventy characters for all three size options.
+% Still more work had to be done. As it turned out, using our new
+% \verb+A4.sty+ together with the option \verb+twosided+ had a drawback:
+% when the document was printed two-sided the texts on both side of one
+% piece of paper overlapped only partly, which does not look good. We
+% solved this by modifying the width of the margins for two-sided
+% printing. At the same time we modified the \verb+\marginparwidth+ so
+% that if someone uses a marginal note it would completely fit on the
+% paper instead of falling off the page, which obviously would render
+% the note unreadable.
+%
+% \DescribeMacro\WideMargins
+% The decisions described above allow for marginal notes to be printed
+% along with the normal text, but if someone makes heavy use of marginal
+% notes, the resultant layout will not be very satisfactory, because if
+% the full width of the marginal notes is used, they will take up too
+% much space in the `outer' margin. For this case we provide the macro
+% \verb+\WideMargins+. This macro modifies the page-layout parameters in
+% such a way that the width reserved for marginal notes becomes 1.5
+% inches. To achieve this the width of the main body of the text is
+% decreased. This macro is meant to be used only in the preamble of the
+% document.
+%
+%\StopEventually{
+% \section{Conclusion}
+%
+% We have presented a new approach to adapt the page layout of the
+% document styles that are part of the standard \LaTeX\ distributions to
+% the dimensions of A4 paper. The width of marginal notes has been taken
+% into account and a means to get wider marginal notes at the cost of
+% shorter lines in the main body of the text has been provided.
+%
+% \begin{thebibliography}{9}
+% \bibitem{treebus} K.F. Treebus.
+% {\em Tekstwijzer, een gids voor het grafisch verwerken van tekst.}
+% SDU Uitgeverij ('s-Gravenhage, 1988). A Dutch book on layout
+% design and typography.
+% \end{thebibliography}
+%
+% \makesignature
+% }
+%
+% \subsection{The code}
+%
+% We begin by identifying the version of this file on the terminal and
+% in the transcript file.
+% \begin{macrocode}
+\typeout{Style option `A4' \fileversion\space<\filedate> (NP and JLB)}
+% \typeout{English documentation\space\space\space<\docdate> (JLB)}
+% \end{macrocode}
+%
+% \begin{macro}{\topmargin}
+% First, we redefine the \verb+\textheight+ and \verb+\topmargin+. The
+% \verb+\topmargin+ is the distance from the reference point on the page
+% to the top of the page of text. In most cases extra white space is not
+% necessary since one inch of white space at the top of the page suffices.
+% \begin{macrocode}
+\topmargin 0pt
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\textheight}
+% The dimension parameter \verb+\textheight+ gives the total height of the
+% text, including footnotes and figures, excluding the running head and
+% foot. This height is given as an integral number times the
+% \verb+\baselineskip+, which results in an integral number of lines on a
+% page.
+%
+% \noindent
+% We have to include definitions of all relevant dimension parameters for
+% each of the cases 10-point, 11-point and 12-point. We do this with a
+% case statement:
+%
+% \begin{macrocode}
+\ifcase \@ptsize
+ \textheight 53\baselineskip
+% \end{macrocode}
+% \noindent
+% which modifies the height of the text for texts to be produced
+% with the ten-point typeface:
+% \begin{macrocode}
+\or
+ \textheight 46\baselineskip
+% \end{macrocode}
+% \noindent
+% the same for eleven point:
+% \begin{macrocode}
+\or
+ \textheight 42\baselineskip
+% \end{macrocode}
+% \noindent
+% and for twelve point. Finally we close the \verb+\ifcase+ statement:
+% \begin{macrocode}
+\fi
+% \end{macrocode}
+%
+% \noindent
+% The only thing left to be done is to add the \verb+\topskip+ to
+% the \verb+\textheight+.
+% The value of \verb+\topskip+ appears always to be 10pt.
+%
+% \begin{macrocode}
+\advance\textheight by \topskip
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\textwidth}
+% \begin{macro}{\oddsidemargin}
+% \begin{macro}{\evensidemargin}
+% That was the `vertical part' of the work. Now we have some work to do
+% to get things right horizontally. Again we have to distinguish between
+% the various character sizes because sixty eleven-point characters take
+% up more space than sixty ten-point characters. But there's more to
+% take into account. If documents are printed two-sided, the texts on
+% both sides of the paper should overlap completely. This can be done be
+% assigning appropriate values to \verb+\oddsidemargin+ and
+% \verb+\evensidemargin+, the parameters that define the left margins on
+% odd and even pages respectively.
+%
+% \noindent
+% First we start a case statement to distinguish between the various
+% typeface sizes.
+% \begin{macrocode}
+\ifcase \@ptsize
+% \end{macrocode}
+% Then we specify the width of the text.
+% \begin{macrocode}
+ \textwidth 5.00in
+% \end{macrocode}
+% \noindent
+% Also specify the width of marginal notes. They must have a
+% reasonable width to be of any use, and this should be the same for
+% either one-sided or two-sided printing.
+% \begin{macrocode}
+ \marginparwidth 1.00in
+% \end{macrocode}
+% \noindent
+% Here we need an if statement to test whether the option \verb+twosided+
+% has been specified.
+% \begin{macrocode}
+ \if@twoside
+% \end{macrocode}
+% \noindent
+% If it was, assign appropriate values to the margin parameters
+% \begin{macrocode}
+ \oddsidemargin 0.55in
+ \evensidemargin 0.75in
+ \else
+% \end{macrocode}
+% \noindent
+% If the option \verb+twosided+ was not used, both margin parameters
+% must have the same value, for texts on consecutive pages have to
+% be put in the same place on the paper.
+% \begin{macrocode}
+ \oddsidemargin 0.55in
+ \evensidemargin 0.55in
+% \end{macrocode}
+% \noindent
+% Now we close the if statement.
+% \begin{macrocode}
+ \fi
+% \end{macrocode}
+% \noindent
+% We are ready with the modifications for the ten-point typeface size, so
+% now we do something similar for the eleven-point typeface.
+% \begin{macrocode}
+\or
+ \textwidth 5.20in
+ \marginparwidth 1.00in
+ \if@twoside
+ \oddsidemargin 0.45in
+ \evensidemargin 0.65in
+ \else
+ \oddsidemargin 0.45in
+ \evensidemargin 0.45in
+ \fi
+% \end{macrocode}
+% \noindent
+% One more time, now for the twelve-point typeface.
+% \begin{macrocode}
+\or
+ \textwidth 5.70in
+ \marginparwidth 0.80in
+ \if@twoside
+ \oddsidemargin 0.20in
+ \evensidemargin 0.40in
+ \else
+ \oddsidemargin 0.20in
+ \evensidemargin 0.20in
+ \fi
+% \end{macrocode}
+% \noindent
+% Finally we close the case statement.
+% \begin{macrocode}
+\fi
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\WideMargins}
+% This macro is somewhat tricky: it has to find out
+% which typeface size is used, whether the document should be printed
+% two-sided, and whether the \verb+\reversemarginpar+ is in effect.
+% \verb+\reversemarginpar+ makes the marginal notes appear in the
+% margin on the opposite side of the normal placement.
+% \begin{macrocode}
+\def\WideMargins{%
+% \end{macrocode}
+% \noindent
+% Because for each typeface size the changes to the parameters that
+% need to be made are similar, the macro \verb+\WideMargins+
+% uses an internal macro \verb+\@widemargins+.
+%
+% \begin{macro}{\ExtraWidth}
+% In order to store the amount of extra width needed for the marginal
+% notes an extra dimension parameter is defined.
+%
+% \begin{macrocode}
+ \newdimen\ExtraWidth
+% \end{macrocode}
+% \end{macro}
+%
+% \noindent
+% First find out about the point size, then call \verb+\@widemargins+ to
+% modify the margin widths by the amount given in \verb+\ExtraWidth+.
+% \begin{macrocode}
+ \ifcase \@ptsize
+% \end{macrocode}
+%
+% \noindent
+% For both 10-point and 11-point texts the width for marginal notes is
+% already 1 inch, so we increase it by half an inch. We subtract half an
+% inch from the text width and modify the margins appropriately.
+%
+% \begin{macrocode}
+ \ExtraWidth = 0.5in
+ \@widemargins
+ \or
+ \ExtraWidth = 0.5in
+ \@widemargins
+ \or
+% \end{macrocode}
+%
+% \noindent
+% For 12-point texts the marginal notes are only 0.8 inch wide, so
+% now we have to add 0.7 inch to get them 1.5 inch wide.
+%
+% \begin{macrocode}
+ \ExtraWidth = 0.7in
+ \@widemargins
+% \end{macrocode}
+%
+% \noindent
+% This macro should only be called once, during the preamble of a
+% document, so we \verb+\let+ it be equal to \verb+\relax+ as soon
+% as the work is done.
+% \begin{macrocode}
+ \fi\let\WideMargins\relax\let\@widemargins\relax}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\@preamblecmds}
+% We add \verb+\WideMargins+ to \verb+\@preamblecmds+, which is a
+% list of commands to be used only in the preamble of a document.
+%
+% \begin{macrocode}
+{\def\do{\noexpand\do\noexpand}
+ \xdef\@preamblecmds{\@preamblecmds \do\WideMargins}
+}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\@widemargins}
+% This macro modifies the margin parameters. To do this it uses
+% the dimension variable \verb+\ExtraWidth+, which was defined by
+% \verb+\WideMargins+.
+%
+% \noindent
+% First the \verb+\ExtraWidth+ is subtracted from the \verb+\textwidth+
+% and added to the \verb+\marginparwidth+.
+% \begin{macrocode}
+\def\@widemargins{%
+ \global\advance\textwidth by -\ExtraWidth
+ \global\advance\marginparwidth by \ExtraWidth
+% \end{macrocode}
+%
+% \noindent
+% Then we modify the margins, but the value of the switch
+% \verb+\if@twoside+ has to be taken into account. Because
+% we have to test another switch (\verb+\if@reversemargin+)
+% we add another level of macros to modify the margin parameters%
+%
+% \begin{macrocode}
+ \if@twoside
+ \tw@sidedwidemargins
+ \else
+ \@nesidedwidemargins
+ \fi}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\tw@sidedwidemargins}
+% Normally the marginal notes are printed in the `outer' margins, so
+% we have to increase the \verb+\evensidemargin+ to keep the text
+% balanced on both sides of the paper, but if \verb+\reversemarginpar+
+% is in effect we have to increase the \verb+\oddsidemargin+ and
+% decrease the \verb+\evensidemargin+ accordingly.
+%
+% \begin{macrocode}
+\def\tw@sidedwidemargins{%
+ \if@reversemargin
+% \end{macrocode}
+%
+% \noindent
+% Notice that for documents printed two-sided, the
+% \verb+\evensidemargin+ is wider than the \verb+\oddsidemargin+;
+% this difference in width is transferred to the other margin.
+%
+% \begin{macrocode}
+ \@tempdima=\evensidemargin
+ \advance\@tempdima by -\oddsidemargin
+ \advance\oddsidemargin by \ExtraWidth
+ \advance\oddsidemargin by \@tempdima
+ \advance\evensidemargin by -\@tempdima
+ \else
+% \end{macrocode}
+%
+% \noindent
+% If the marginal notes go on the normal side of the paper, only the
+% \verb+\evensidemargin+ has to be increased.
+%
+% \begin{macrocode}
+ \advance\evensidemargin by \ExtraWidth
+ \fi}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\@nesidedwidemargins}
+% For documents that are printed one-sided, both margins have the same
+% width. The default placement for the marginal notes is in the right
+% margin, so if \verb+\reversemarginpar+ is {\em not\/} in effect the
+% margin parameters need not be modified. If it is in effect, both the
+% \verb+\oddsidemargin+ and the \verb+\evensidemargin+ need to be
+% increased.
+%
+% \begin{macrocode}
+\def\@nesidedwidemargins{%
+ \if@reversemargin
+ \advance\oddsidemargin by \ExtraWidth
+ \advance\evensidemargin by \ExtraWidth
+ \fi}
+% \end{macrocode}
+% \end{macro}
+%
+% \Finale
+\endinput
diff --git a/language/french/e-french/texmf/doc/test/myfigure.eps b/language/french/e-french/texmf/doc/test/myfigure.eps
new file mode 100644
index 0000000000..d4dde79dd4
--- /dev/null
+++ b/language/french/e-french/texmf/doc/test/myfigure.eps
@@ -0,0 +1,12824 @@
+%!PS-Adobe-3.0 EPSF-3.0
+%%Creator: (ImageMagick)
+%%Title: (myfigure.eps)
+%%CreationDate: (2017-02-04T14:34:31+01:00)
+%%BoundingBox: -0 -0 360 453
+%%HiResBoundingBox: 0 0 360 453
+%%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 360 453
+userdict begin
+DisplayImage
+0 0
+360 453
+12
+360 453
+0
+0
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFEFEFEFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FEFEFEFEFEFEFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFEFEFEFEFEFEFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFEFEFEFEFEFEFEFEFEFCFCFCFCFCFCFCFCFCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFEFEFE
+FEFEFEFCFCFCFCFCFCFCFCFCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDFDFDFDFDFDFDEEEEEEEEEEEEEEEEEE
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFDFDFDFDFDFDFDFDFDEEEEEEEEEEEEEEEEEEFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFD
+FDFDFDFDFDFDEEEEEEEEEEEEEEEEEEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDFDFDFDFDFDFDF5F5F5F5F5F5
+F5F5F5FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFDFDFDFDFDFDFDFDFDF5F5F5F5F5F5F5F5F5FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FBFBFBFBFBFBFBFBFBD2D2D2D2D2D2D2D2D2FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBFBFBFBFBFBFBFBFBD2D2D2
+D2D2D2D2D2D2FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBFBFBFBFBFBFBFBFBD2D2D2D2D2D2D2D2D2FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFBFBFBFBFBFBFBFBFBD5D5D5D5D5D5D5D5D5FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBFBFBFBFBFBFBFBFB
+D5D5D5D5D5D5D5D5D5FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBFBFBFBFBFBFBFBFBD5D5D5D5D5D5D5D5D5FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFDFDFDFDFDFDFDFDFD
+FDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFEFEFEFEFEFEFEFEFE
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFEFEFEFEFEFEFEFEFEFCFCFCFCFCFCFCFCFC
+F9F9F9F9F9F9F9F9F9FBFBFBFBFBFBFBFBFBFDFDFDFDFDFDFDFDFDFDFDFDFEFEFEFEFEFEFEFEFE
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFF9F9F9F9F9F9F9F9F9BFBFBFBFBFBFBFBFBFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFD
+FDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFEFEFEFEFEFEFEFEFEFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFEFEFEFEFEFEFEFEFEFEFEFEFCFCFCFCFCFCFCFCFCF9F9F9F9F9F9F9F9F9FBFBFB
+FBFBFBFBFBFBFDFDFDFDFDFDFDFDFDFDFDFDFEFEFEFEFEFEFEFEFEFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9F9F9F9F9F9
+F9F9F9BFBFBFBFBFBFBFBFBFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFEFEFEFEFEFEFEFEFE
+FEFEFEFEFEFEFDFDFDFDFDFDFDFDFDF9F9F9F9F9F9F9F9F9F9F9F9F1F1F1F1F1F1F1F1F1E2E2E2
+E2E2E2E2E2E2D3D3D3D3D3D3D3D3D3CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCD5D5D5
+D5D5D5D5D5D5E0E0E0E0E0E0E0E0E0EAEAEAEAEAEAEAEAEAF2F2F2F2F2F2F2F2F2F4F4F4F4F4F4
+F4F4F4F4F4F4E0E0E0E0E0E0E0E0E0C2C2C2C2C2C2C2C2C2C0C0C0C0C0C0C0C0C0D2D2D2D2D2D2
+D2D2D2D2D2D2E6E6E6E6E6E6E6E6E6F5F5F5F5F5F5F5F5F5F9F9F9F9F9F9F9F9F9FBFBFBFBFBFB
+FBFBFBFEFEFEFEFEFEFEFEFEFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCFCFCFCFCFCFCFCFCDDDDDDDDDDDDDDDDDD
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFDFDFDFDFDFD
+FDFDFDF9F9F9F9F9F9F9F9F9F9F9F9F1F1F1F1F1F1F1F1F1E2E2E2E2E2E2E2E2E2D3D3D3D3D3D3
+D3D3D3CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCD5D5D5D5D5D5D5D5D5E0E0E0E0E0E0
+E0E0E0EAEAEAEAEAEAEAEAEAF2F2F2F2F2F2F2F2F2F4F4F4F4F4F4F4F4F4F4F4F4E0E0E0E0E0E0
+E0E0E0C2C2C2C2C2C2C2C2C2C0C0C0C0C0C0C0C0C0D2D2D2D2D2D2D2D2D2D2D2D2E6E6E6E6E6E6
+E6E6E6F5F5F5F5F5F5F5F5F5F9F9F9F9F9F9F9F9F9FBFBFBFBFBFBFBFBFBFEFEFEFEFEFEFEFEFE
+FEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFCFCFCFCFCFCFCFCFCDDDDDDDDDDDDDDDDDDFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFDFDFDFDFDFDFDFDFDF9F9F9F9F9F9F9F9F9
+F9F9F9F1F1F1F1F1F1F1F1F1E2E2E2E2E2E2E2E2E2D3D3D3D3D3D3D3D3D3CCCCCCCCCCCCCCCCCC
+CCCCCCCCCCCCCCCCCCCCCCCCD5D5D5D5D5D5D5D5D5E0E0E0E0E0E0E0E0E0EAEAEAEAEAEAEAEAEA
+F2F2F2F2F2F2F2F2F2F4F4F4F4F4F4F4F4F4F4F4F4E0E0E0E0E0E0E0E0E0C2C2C2C2C2C2C2C2C2
+C0C0C0C0C0C0C0C0C0D2D2D2D2D2D2D2D2D2D2D2D2E6E6E6E6E6E6E6E6E6F5F5F5F5F5F5F5F5F5
+F9F9F9F9F9F9F9F9F9FBFBFBFBFBFBFBFBFBFEFEFEFEFEFEFEFEFEFEFEFEFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCFCFC
+FCFCFCFCFCFCDDDDDDDDDDDDDDDDDDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFEFEFEFEFEFEFEFEFEFAFAFAFAFAFAFAFAFAFAFAFAF3F3F3F3F3F3F3F3F3
+E4E4E4E4E4E4E4E4E4CECECECECECECECECEB7B7B7B7B7B7B7B7B7B7B7B79F9F9F9F9F9F9F9F9F
+858585858585858585707070707070707070696969696969696969696969696969696969696969
+717171717171717171818181818181818181949494949494949494A5A5A5A5A5A5A5A5A5AEAEAE
+AEAEAEAEAEAEAEAEAE9E9E9E9E9E9E9E9E9E787878787878787878676767676767676767707070
+707070707070707070888888888888888888ABABABABABABABABABC3C3C3C3C3C3C3C3C3D9D9D9
+D9D9D9D9D9D9F7F7F7F7F7F7F7F7F7F7F7F7FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE
+FEFEFEFEFEFEFDFDFDFDFDFDFDFDFDFEFEFEFEFEFEFEFEFEFEFEFEFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBFBFBFBFBFBFBFBFBDBDBDBDBDBDB
+DBDBDBFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFE
+FEFEFEFEFEFEFAFAFAFAFAFAFAFAFAFAFAFAF3F3F3F3F3F3F3F3F3E4E4E4E4E4E4E4E4E4CECECE
+CECECECECECEB7B7B7B7B7B7B7B7B7B7B7B79F9F9F9F9F9F9F9F9F858585858585858585707070
+707070707070696969696969696969696969696969696969696969717171717171717171818181
+818181818181949494949494949494A5A5A5A5A5A5A5A5A5AEAEAEAEAEAEAEAEAEAEAEAE9E9E9E
+9E9E9E9E9E9E787878787878787878676767676767676767707070707070707070707070888888
+888888888888ABABABABABABABABABC3C3C3C3C3C3C3C3C3D9D9D9D9D9D9D9D9D9F7F7F7F7F7F7
+F7F7F7F7F7F7FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFDFDFDFDFDFD
+FDFDFDFEFEFEFEFEFEFEFEFEFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFBFBFBFBFBFBFBFBFBDBDBDBDBDBDBDBDBDBFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFE
+FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFAFAFAFAFAFAFAFAFAE9E9E9E9E9E9E9E9E9CBCBCBCBCBCB
+CBCBCBCBCBCBA9A9A9A9A9A9A9A9A98B8B8B8B8B8B8B8B8B727272727272727272626262626262
+6262626262625656565656565656564E4E4E4E4E4E4E4E4E484848484848484848464646464646
+4646464545454545454545454545454949494949494949495050505050505050505A5A5A5A5A5A
+5A5A5A5D5D5D5D5D5D5D5D5D6161616161616161616161615E5E5E5E5E5E5E5E5E545454545454
+5454544E4E4E4E4E4E4E4E4E4C4C4C4C4C4C4C4C4C4C4C4C4C4C4C4C4C4C4C4C4C5A5A5A5A5A5A
+5A5A5A6D6D6D6D6D6D6D6D6D8A8A8A8A8A8A8A8A8AC7C7C7C7C7C7C7C7C7C7C7C7F3F3F3F3F3F3
+F3F3F3FDFDFDFDFDFDFDFDFDFBFBFBFBFBFBFBFBFBF5F5F5F5F5F5F5F5F5F6F6F6F6F6F6F6F6F6
+F6F6F6FDFDFDFDFDFDFDFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+F8F8F8F8F8F8F8F8F8B1B1B1B1B1B1B1B1B1FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE
+FEFEFEFAFAFAFAFAFAFAFAFAE9E9E9E9E9E9E9E9E9CBCBCBCBCBCBCBCBCBCBCBCBA9A9A9A9A9A9
+A9A9A98B8B8B8B8B8B8B8B8B727272727272727272626262626262626262626262565656565656
+5656564E4E4E4E4E4E4E4E4E484848484848484848464646464646464646454545454545454545
+4545454949494949494949495050505050505050505A5A5A5A5A5A5A5A5A5D5D5D5D5D5D5D5D5D
+6161616161616161616161615E5E5E5E5E5E5E5E5E5454545454545454544E4E4E4E4E4E4E4E4E
+4C4C4C4C4C4C4C4C4C4C4C4C4C4C4C4C4C4C4C4C4C5A5A5A5A5A5A5A5A5A6D6D6D6D6D6D6D6D6D
+8A8A8A8A8A8A8A8A8AC7C7C7C7C7C7C7C7C7C7C7C7F3F3F3F3F3F3F3F3F3FDFDFDFDFDFDFDFDFD
+FBFBFBFBFBFBFBFBFBF5F5F5F5F5F5F5F5F5F6F6F6F6F6F6F6F6F6F6F6F6FDFDFDFDFDFDFDFDFD
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8F8F8F8F8F8F8F8F8B1B1B1
+B1B1B1B1B1B1FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFAFAFAFAFAFAFAFAFA
+E9E9E9E9E9E9E9E9E9CBCBCBCBCBCBCBCBCBCBCBCBA9A9A9A9A9A9A9A9A98B8B8B8B8B8B8B8B8B
+7272727272727272726262626262626262626262625656565656565656564E4E4E4E4E4E4E4E4E
+484848484848484848464646464646464646454545454545454545454545494949494949494949
+5050505050505050505A5A5A5A5A5A5A5A5A5D5D5D5D5D5D5D5D5D616161616161616161616161
+5E5E5E5E5E5E5E5E5E5454545454545454544E4E4E4E4E4E4E4E4E4C4C4C4C4C4C4C4C4C4C4C4C
+4C4C4C4C4C4C4C4C4C5A5A5A5A5A5A5A5A5A6D6D6D6D6D6D6D6D6D8A8A8A8A8A8A8A8A8AC7C7C7
+C7C7C7C7C7C7C7C7C7F3F3F3F3F3F3F3F3F3FDFDFDFDFDFDFDFDFDFBFBFBFBFBFBFBFBFBF5F5F5
+F5F5F5F5F5F5F6F6F6F6F6F6F6F6F6F6F6F6FDFDFDFDFDFDFDFDFDFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8F8F8F8F8F8F8F8F8B1B1B1B1B1B1B1B1B1FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFEFEFEFEFEFEFDFDFDFDFDFDFDFDFDFDFDFD
+F8F8F8F8F8F8F8F8F8E5E5E5E5E5E5E5E5E5C5C5C5C5C5C5C5C5C59D9D9D9D9D9D9D9D9D777777
+7777777777777777775D5D5D5D5D5D5D5D5D505050505050505050494949494949494949484848
+4848484848484848484747474747474747474545454545454545454141414141414141413F3F3F
+3F3F3F3F3F3F3E3E3E3E3E3E3E3E3E3E3E3E404040404040404040444444444444444444474747
+4747474747474848484848484848484949494949494949494949494B4B4B4B4B4B4B4B4B484848
+4848484848484D4D4D4D4D4D4D4D4D505050505050505050505050474747474747474747454545
+454545454545494949494949494949575757575757575757898989898989898989898989D0D0D0
+D0D0D0D0D0D0F1F1F1F1F1F1F1F1F1FCFCFCFCFCFCFCFCFCF9F9F9F9F9F9F9F9F9F3F3F3F3F3F3
+F3F3F3F3F3F3F7F7F7F7F7F7F7F7F7FDFDFDFDFDFDFDFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFF8F8F8F8F8F8F8F8F8B3B3B3B3B3B3B3B3B3FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFEFEFEFEFEFEFEFEFEFDFDFDFDFDFDFDFDFDFDFDFDF8F8F8F8F8F8F8F8F8E5E5E5
+E5E5E5E5E5E5C5C5C5C5C5C5C5C5C59D9D9D9D9D9D9D9D9D7777777777777777777777775D5D5D
+5D5D5D5D5D5D505050505050505050494949494949494949484848484848484848484848474747
+4747474747474545454545454545454141414141414141413F3F3F3F3F3F3F3F3F3E3E3E3E3E3E
+3E3E3E3E3E3E404040404040404040444444444444444444474747474747474747484848484848
+4848484949494949494949494949494B4B4B4B4B4B4B4B4B4848484848484848484D4D4D4D4D4D
+4D4D4D505050505050505050505050474747474747474747454545454545454545494949494949
+494949575757575757575757898989898989898989898989D0D0D0D0D0D0D0D0D0F1F1F1F1F1F1
+F1F1F1FCFCFCFCFCFCFCFCFCF9F9F9F9F9F9F9F9F9F3F3F3F3F3F3F3F3F3F3F3F3F7F7F7F7F7F7
+F7F7F7FDFDFDFDFDFDFDFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8F8F8F8F8F8F8F8F8
+B3B3B3B3B3B3B3B3B3FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFEFEFEFEFEFEF7F7F7F7F7F7
+F7F7F7DFE0DFDFE0DFDFE0DFDFE0DFBCBCBCBCBCBCBCBCBC9292929292929292926E6E6E6E6E6E
+6E6E6E5757575757575757574B4B4B4B4B4B4B4B4B4B4B4B474747474747474747444444444444
+444444414141414141414141424242424242424242424242424242424242424242424242424242
+4242423F3F3F3F3F3F3F3F3F3C3C3C3C3C3C3C3C3C3B3B3B3B3B3B3B3B3B3B3B3B3C3C3C3C3C3C
+3C3C3C3F3F3F3F3F3F3F3F3F404040404040404040424242424242424242464646464646464646
+4646464949494949494949494B4B4B4B4B4B4B4B4B4949494949494949494B4B4B4B4B4B4B4B4B
+4B4B4B4B4B4B4B4B4B4B4B4B454545454545454545464646464646464646484848484848484848
+6161616161616161616161619C9C9C9C9C9C9C9C9CD9D9D9D9D9D9D9D9D9F9F9F9F9F9F9F9F9F9
+FEFEFEFEFEFEFEFEFEFBFBFBFBFBFBFBFBFBFBFBFBF2F2F2F2F2F2F2F2F2F9F9F9F9F9F9F9F9F9
+FEFEFEFEFEFEFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8F8F8F8F8F8F8F8F8B3B3B3B3B3B3B3B3B3FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFEFEFEFEFEFEF7F7F7F7F7F7F7F7F7DFE0DFDFE0DFDFE0DF
+DFE0DFBCBCBCBCBCBCBCBCBC9292929292929292926E6E6E6E6E6E6E6E6E575757575757575757
+4B4B4B4B4B4B4B4B4B4B4B4B474747474747474747444444444444444444414141414141414141
+4242424242424242424242424242424242424242424242424242424242423F3F3F3F3F3F3F3F3F
+3C3C3C3C3C3C3C3C3C3B3B3B3B3B3B3B3B3B3B3B3B3C3C3C3C3C3C3C3C3C3F3F3F3F3F3F3F3F3F
+404040404040404040424242424242424242464646464646464646464646494949494949494949
+4B4B4B4B4B4B4B4B4B4949494949494949494B4B4B4B4B4B4B4B4B4B4B4B4B4B4B4B4B4B4B4B4B
+454545454545454545464646464646464646484848484848484848616161616161616161616161
+9C9C9C9C9C9C9C9C9CD9D9D9D9D9D9D9D9D9F9F9F9F9F9F9F9F9F9FEFEFEFEFEFEFEFEFEFBFBFB
+FBFBFBFBFBFBFBFBFBF2F2F2F2F2F2F2F2F2F9F9F9F9F9F9F9F9F9FEFEFEFEFEFEFEFEFEFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFF8F8F8F8F8F8F8F8F8B3B3B3B3B3B3B3B3B3FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FEFEFEFEFEFEFEFEFEF7F7F7F7F7F7F7F7F7DFE0DFDFE0DFDFE0DFDFE0DFBCBCBCBCBCBCBCBCBC
+9292929292929292926E6E6E6E6E6E6E6E6E5757575757575757574B4B4B4B4B4B4B4B4B4B4B4B
+474747474747474747444444444444444444414141414141414141424242424242424242424242
+4242424242424242424242424242424242423F3F3F3F3F3F3F3F3F3C3C3C3C3C3C3C3C3C3B3B3B
+3B3B3B3B3B3B3B3B3B3C3C3C3C3C3C3C3C3C3F3F3F3F3F3F3F3F3F404040404040404040424242
+4242424242424646464646464646464646464949494949494949494B4B4B4B4B4B4B4B4B494949
+4949494949494B4B4B4B4B4B4B4B4B4B4B4B4B4B4B4B4B4B4B4B4B454545454545454545464646
+4646464646464848484848484848486161616161616161616161619C9C9C9C9C9C9C9C9CD9D9D9
+D9D9D9D9D9D9F9F9F9F9F9F9F9F9F9FEFEFEFEFEFEFEFEFEFBFBFBFBFBFBFBFBFBFBFBFBF2F2F2
+F2F2F2F2F2F2F9F9F9F9F9F9F9F9F9FEFEFEFEFEFEFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8F8F8F8F8F8
+F8F8F8B3B3B3B3B3B3B3B3B3FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFEFEFEFEFEFEFEFEFEFDFDFDFDFDFDFDFDFDEDEDEDEDEDEDEDEDEDC5C5C5
+C5C5C5C5C5C59393939393939393939393936C6C6C6C6C6C6C6C6C5858585858585858584C4C4C
+4C4C4C4C4C4C464646464646464646454545454545454545454545454545454545454545464646
+464646464646454545454545454545464646464646464646464646454545454545454545444444
+4444444444444444444444444444444141414141414141413E3E3E3E3E3E3E3E3E3E3E3E3F3F3F
+3F3F3F3F3F3F4040404040404040403F3F3F3F3F3F3F3F3F414141414141414141444444444444
+4444444444444848484848484848484D4D4D4D4D4D4D4D4D4F4F4F4F4F4F4F4F4F484848484848
+484848484848454545454545454545444444444444444444454545454545454545464646464646
+464646515151515151515151515151707070707070707070B2B2B2B2B2B2B2B2B2EDEDEDEDEDED
+EDEDEDFDFDFDFDFDFDFDFDFDFEFEFEFEFEFEFEFEFEFEFEFEF5F5F5F5F5F5F5F5F5F5F5F5F5F5F5
+F5F5F5FEFEFEFEFEFEFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAFAFAFAFAFAFAFAFAD1D1D1D1D1D1D1D1D1
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFE
+FEFEFEFEFEFEFDFDFDFDFDFDFDFDFDEDEDEDEDEDEDEDEDEDC5C5C5C5C5C5C5C5C5939393939393
+9393939393936C6C6C6C6C6C6C6C6C5858585858585858584C4C4C4C4C4C4C4C4C464646464646
+464646454545454545454545454545454545454545454545464646464646464646454545454545
+454545464646464646464646464646454545454545454545444444444444444444444444444444
+4444444141414141414141413E3E3E3E3E3E3E3E3E3E3E3E3F3F3F3F3F3F3F3F3F404040404040
+4040403F3F3F3F3F3F3F3F3F414141414141414141444444444444444444444444484848484848
+4848484D4D4D4D4D4D4D4D4D4F4F4F4F4F4F4F4F4F484848484848484848484848454545454545
+454545444444444444444444454545454545454545464646464646464646515151515151515151
+515151707070707070707070B2B2B2B2B2B2B2B2B2EDEDEDEDEDEDEDEDEDFDFDFDFDFDFDFDFDFD
+FEFEFEFEFEFEFEFEFEFEFEFEF5F5F5F5F5F5F5F5F5F5F5F5F5F5F5F5F5F5FEFEFEFEFEFEFEFEFE
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFAFAFAFAFAFAFAFAFAD1D1D1D1D1D1D1D1D1FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFEFEFEFEFEFEFDFDFDFDFDFD
+FDFDFDEDEDEDEDEDEDEDEDEDC5C5C5C5C5C5C5C5C59393939393939393939393936C6C6C6C6C6C
+6C6C6C5858585858585858584C4C4C4C4C4C4C4C4C464646464646464646454545454545454545
+454545454545454545454545464646464646464646454545454545454545464646464646464646
+464646454545454545454545444444444444444444444444444444444444414141414141414141
+3E3E3E3E3E3E3E3E3E3E3E3E3F3F3F3F3F3F3F3F3F4040404040404040403F3F3F3F3F3F3F3F3F
+4141414141414141414444444444444444444444444848484848484848484D4D4D4D4D4D4D4D4D
+4F4F4F4F4F4F4F4F4F484848484848484848484848454545454545454545444444444444444444
+454545454545454545464646464646464646515151515151515151515151707070707070707070
+B2B2B2B2B2B2B2B2B2EDEDEDEDEDEDEDEDEDFDFDFDFDFDFDFDFDFDFEFEFEFEFEFEFEFEFEFEFEFE
+F5F5F5F5F5F5F5F5F5F5F5F5F5F5F5F5F5F5FEFEFEFEFEFEFEFEFEFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAFAFA
+FAFAFAFAFAFAD1D1D1D1D1D1D1D1D1FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FEFEFEFEFEFEFEFEFEFEFEFEF7F7F7F7F7F7F7F7F7DDDDDDDDDDDDDDDDDDABABABABABABABABAB
+7777777777777777775B5B5B5B5B5B5B5B5B5B5B5B5151515151515151514C4C4C4C4C4C4C4C4C
+474747474747474747454545454545454545444444444444444444444444444444444444444444
+424242424242424242424242424242424242424242424242424242424242424242424242424242
+4242424242424242424141414141414141414040404040404040403F3F3F3F3F3F3F3F3F3F3F3F
+4242424242424242424545454545454545454141414141414141413E3E3E3E3E3E3E3E3E3F3F3F
+3F3F3F3F3F3F3F3F3F4242424242424242424B4B4B4B4B4B4B4B4B515151515151515151515151
+515151515151515151474747474747474747414141414141414141424242424242424242484848
+4848484848485050505050505050505050505A5A5A5A5A5A5A5A5A818181818181818181CECECE
+CECECECECECEF3F3F3F3F3F3F3F3F3FDFDFDFDFDFDFDFDFDFDFDFDF9F9F9F9F9F9F9F9F9F0F0F0
+F0F0F0F0F0F0FCFCFCFCFCFCFCFCFCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7F7F7F7F7F7F7F7F7ABABABABABAB
+ABABABFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFEFEFEFEFEFEFEFEFE
+F7F7F7F7F7F7F7F7F7DDDDDDDDDDDDDDDDDDABABABABABABABABAB7777777777777777775B5B5B
+5B5B5B5B5B5B5B5B5B5151515151515151514C4C4C4C4C4C4C4C4C474747474747474747454545
+454545454545444444444444444444444444444444444444444444424242424242424242424242
+424242424242424242424242424242424242424242424242424242424242424242424242414141
+4141414141414040404040404040403F3F3F3F3F3F3F3F3F3F3F3F424242424242424242454545
+4545454545454141414141414141413E3E3E3E3E3E3E3E3E3F3F3F3F3F3F3F3F3F3F3F3F424242
+4242424242424B4B4B4B4B4B4B4B4B515151515151515151515151515151515151515151474747
+474747474747414141414141414141424242424242424242484848484848484848505050505050
+5050505050505A5A5A5A5A5A5A5A5A818181818181818181CECECECECECECECECEF3F3F3F3F3F3
+F3F3F3FDFDFDFDFDFDFDFDFDFDFDFDF9F9F9F9F9F9F9F9F9F0F0F0F0F0F0F0F0F0FCFCFCFCFCFC
+FCFCFCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFF7F7F7F7F7F7F7F7F7ABABABABABABABABABFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFE
+FEFEFEFEFEFEFCFCFCFCFCFCFCFCFCEDEDEDEDEDEDEDEDEDEDEDEDC6C6C6C6C6C6C6C6C6909090
+9090909090906363636363636363634E4E4E4E4E4E4E4E4E484848484848484848484848464646
+464646464646444444444444444444414141414141414141414141414141414141424242424242
+4242424242424040404040404040403E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3C3C3C3C3C3C
+3C3C3C3C3C3C3939393939393939393939393939393939393939393939393939393A3A3A3A3A3A
+3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3E3E3E3E3E3E3E3E3E414141414141414141454545454545
+4545454040404040404040403B3B3B3B3B3B3B3B3B3B3B3B3A3A3A3A3A3A3A3A3A3F3F3F3F3F3F
+3F3F3F4848484848484848485151515151515151515151514D4D4D4D4D4D4D4D4D454545454545
+4545454242424242424242424848484848484848484E4E4E4E4E4E4E4E4E4E4E4E515151515151
+5151515F605F5F605F5F605F9D9D9D9D9D9D9D9D9DD9D9D9D9D9D9D9D9D9F4F4F4F4F4F4F4F4F4
+F4F4F4FBFBFBFBFBFBFBFBFBEFEFEFEFEFEFEFEFEFF9F9F9F9F9F9F9F9F9FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+F7F7F7F7F7F7F7F7F7A9A9A9A9A9A9A9A9A9FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFEFEFEFEFEFEFCFCFCFCFCFC
+FCFCFCEDEDEDEDEDEDEDEDEDEDEDEDC6C6C6C6C6C6C6C6C6909090909090909090636363636363
+6363634E4E4E4E4E4E4E4E4E484848484848484848484848464646464646464646444444444444
+444444414141414141414141414141414141414141424242424242424242424242404040404040
+4040403E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3C3C3C3C3C3C3C3C3C3C3C3C393939393939
+3939393939393939393939393939393939393939393A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A
+3A3A3A3E3E3E3E3E3E3E3E3E414141414141414141454545454545454545404040404040404040
+3B3B3B3B3B3B3B3B3B3B3B3B3A3A3A3A3A3A3A3A3A3F3F3F3F3F3F3F3F3F484848484848484848
+5151515151515151515151514D4D4D4D4D4D4D4D4D454545454545454545424242424242424242
+4848484848484848484E4E4E4E4E4E4E4E4E4E4E4E5151515151515151515F605F5F605F5F605F
+9D9D9D9D9D9D9D9D9DD9D9D9D9D9D9D9D9D9F4F4F4F4F4F4F4F4F4F4F4F4FBFBFBFBFBFBFBFBFB
+EFEFEFEFEFEFEFEFEFF9F9F9F9F9F9F9F9F9FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7F7F7F7F7F7F7F7F7A9A9A9
+A9A9A9A9A9A9FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFEFEFEFEFEFEFCFCFCFCFCFCFCFCFCEDEDEDEDEDEDEDEDED
+EDEDEDC6C6C6C6C6C6C6C6C69090909090909090906363636363636363634E4E4E4E4E4E4E4E4E
+484848484848484848484848464646464646464646444444444444444444414141414141414141
+4141414141414141414242424242424242424242424040404040404040403E3E3E3E3E3E3E3E3E
+3E3E3E3E3E3E3E3E3E3C3C3C3C3C3C3C3C3C3C3C3C393939393939393939393939393939393939
+3939393939393939393A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3E3E3E3E3E3E3E3E3E
+4141414141414141414545454545454545454040404040404040403B3B3B3B3B3B3B3B3B3B3B3B
+3A3A3A3A3A3A3A3A3A3F3F3F3F3F3F3F3F3F484848484848484848515151515151515151515151
+4D4D4D4D4D4D4D4D4D4545454545454545454242424242424242424848484848484848484E4E4E
+4E4E4E4E4E4E4E4E4E5151515151515151515F605F5F605F5F605F9D9D9D9D9D9D9D9D9DD9D9D9
+D9D9D9D9D9D9F4F4F4F4F4F4F4F4F4F4F4F4FBFBFBFBFBFBFBFBFBEFEFEFEFEFEFEFEFEFF9F9F9
+F9F9F9F9F9F9FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7F7F7F7F7F7F7F7F7A9A9A9A9A9A9A9A9A9FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFEFEFEFEFEFE
+F7F7F7F7F7F7F7F7F7DADADADADADADADADAA9A9A9A9A9A9A9A9A9A9A9A9787878787878787878
+565656565656565656474747474747474747444444444444444444444444444444444444444444
+4242424242424242423F3F3F3F3F3F3F3F3F3C3C3C3C3C3C3C3C3C3E3E3E3E3E3E3E3E3E404040
+4040404040404040403C3C3C3C3C3C3C3C3C393939393939393939373737373737373737343434
+3434343434343434343232323232323232323434343434343434343737373737373737373A3A3A
+3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3B3B3B3B3B3B3B3B3B404040
+4040404040404545454545454545454242424242424242424242423B3B3B3B3B3B3B3B3B393939
+3939393939393E3E3E3E3E3E3E3E3E4B4B4B4B4B4B4B4B4B4B4B4B4F4F4F4F4F4F4F4F4F484848
+4848484848484444444444444444444141414141414141414B4B4B4B4B4B4B4B4B4B4B4B4E4E4E
+4E4E4E4E4E4E5151515151515151516F6F6F6F6F6F6F6F6FACACACACACACACACACDCDCDCDCDCDC
+DCDCDCDCDCDCF1F1F1F1F1F1F1F1F1F1F1F1F1F1F1F1F1F1FBFBFBFBFBFBFBFBFBFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFF9F9F9F9F9F9F9F9F9CBCBCBCBCBCBCBCBCBFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFEFEFEFEFEFEF7F7F7F7F7F7F7F7F7DADADA
+DADADADADADAA9A9A9A9A9A9A9A9A9A9A9A9787878787878787878565656565656565656474747
+4747474747474444444444444444444444444444444444444444444242424242424242423F3F3F
+3F3F3F3F3F3F3C3C3C3C3C3C3C3C3C3E3E3E3E3E3E3E3E3E4040404040404040404040403C3C3C
+3C3C3C3C3C3C393939393939393939373737373737373737343434343434343434343434323232
+3232323232323434343434343434343737373737373737373A3A3A3A3A3A3A3A3A3A3A3A3A3A3A
+3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3B3B3B3B3B3B3B3B3B404040404040404040454545454545
+4545454242424242424242424242423B3B3B3B3B3B3B3B3B3939393939393939393E3E3E3E3E3E
+3E3E3E4B4B4B4B4B4B4B4B4B4B4B4B4F4F4F4F4F4F4F4F4F484848484848484848444444444444
+4444444141414141414141414B4B4B4B4B4B4B4B4B4B4B4B4E4E4E4E4E4E4E4E4E515151515151
+5151516F6F6F6F6F6F6F6F6FACACACACACACACACACDCDCDCDCDCDCDCDCDCDCDCDCF1F1F1F1F1F1
+F1F1F1F1F1F1F1F1F1F1F1F1FBFBFBFBFBFBFBFBFBFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9F9F9F9F9F9F9F9F9
+CBCBCBCBCBCBCBCBCBFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDFDFDFD
+FDFDFDFDFDFDF0F0F0F0F0F0F0F0F0CACACACACACACACACA909090909090909090626262626262
+6262626262624B4B4B4B4B4B4B4B4B454545454545454545424242424242424242424242424242
+4242424040404040404040404040403C3C3C3C3C3C3C3C3C393939393939393939353535353535
+353535363636363636363636353535353535353535353535323232323232323232303030303030
+303030313131313131313131323232323232323232323232343434343434343434353535353535
+353535363636363636363636363636363636363636363636363636363636363636393939393939
+3939393939393939393939393939393939393939393F3F3F3F3F3F3F3F3F484848484848484848
+4848484545454545454545453C3C3C3C3C3C3C3C3C3939393939393939393F3F3F3F3F3F3F3F3F
+3F3F3F4949494949494949494C4C4C4C4C4C4C4C4C4747474747474747473F3F3F3F3F3F3F3F3F
+4141414141414141414141414B4B4B4B4B4B4B4B4B484848484848484848525252525252525252
+818181818181818181BCBCBCBCBCBCBCBCBCBCBCBCE2E2E2E2E2E2E2E2E2F1F1F1F1F1F1F1F1F1
+FDFDFDFDFDFDFDFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9F9F9F9F9F9F9F9F9C1C1C1C1C1C1C1C1C1FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDFDFDFDFDFDFDFDFDFDF0F0F0F0F0F0
+F0F0F0CACACACACACACACACA9090909090909090906262626262626262626262624B4B4B4B4B4B
+4B4B4B454545454545454545424242424242424242424242424242424242404040404040404040
+4040403C3C3C3C3C3C3C3C3C393939393939393939353535353535353535363636363636363636
+353535353535353535353535323232323232323232303030303030303030313131313131313131
+323232323232323232323232343434343434343434353535353535353535363636363636363636
+363636363636363636363636363636363636363636393939393939393939393939393939393939
+3939393939393939393F3F3F3F3F3F3F3F3F484848484848484848484848454545454545454545
+3C3C3C3C3C3C3C3C3C3939393939393939393F3F3F3F3F3F3F3F3F3F3F3F494949494949494949
+4C4C4C4C4C4C4C4C4C4747474747474747473F3F3F3F3F3F3F3F3F414141414141414141414141
+4B4B4B4B4B4B4B4B4B484848484848484848525252525252525252818181818181818181BCBCBC
+BCBCBCBCBCBCBCBCBCE2E2E2E2E2E2E2E2E2F1F1F1F1F1F1F1F1F1FDFDFDFDFDFDFDFDFDFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFF9F9F9F9F9F9F9F9F9C1C1C1C1C1C1C1C1C1FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFDFDFDFDFDFDFDFDFDFDFDFDF0F0F0F0F0F0F0F0F0CACACACACACACACACA
+9090909090909090906262626262626262626262624B4B4B4B4B4B4B4B4B454545454545454545
+4242424242424242424242424242424242424040404040404040404040403C3C3C3C3C3C3C3C3C
+393939393939393939353535353535353535363636363636363636353535353535353535353535
+323232323232323232303030303030303030313131313131313131323232323232323232323232
+343434343434343434353535353535353535363636363636363636363636363636363636363636
+3636363636363636363939393939393939393939393939393939393939393939393939393F3F3F
+3F3F3F3F3F3F4848484848484848484848484545454545454545453C3C3C3C3C3C3C3C3C393939
+3939393939393F3F3F3F3F3F3F3F3F3F3F3F4949494949494949494C4C4C4C4C4C4C4C4C474747
+4747474747473F3F3F3F3F3F3F3F3F4141414141414141414141414B4B4B4B4B4B4B4B4B484848
+484848484848525252525252525252818181818181818181BCBCBCBCBCBCBCBCBCBCBCBCE2E2E2
+E2E2E2E2E2E2F1F1F1F1F1F1F1F1F1FDFDFDFDFDFDFDFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9F9F9F9F9F9
+F9F9F9C1C1C1C1C1C1C1C1C1FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDFDFDFDFDFDFDEAEAEA
+EAEAEAEAEAEAEAEAEAB8B8B8B8B8B8B8B8B87C7C7C7C7C7C7C7C7C565656565656565656454545
+4545454545454545454040404040404040404141414141414141413F3F3F3F3F3F3F3F3F3C3C3C
+3C3C3C3C3C3C393939393939393939393939363636363636363636353535353535353535343434
+343434343434363636363636363636353535353535353535353535343434343434343434343434
+343434343434343434343434343434363636363636363636363636363636363636363636323232
+3232323232322F2F2F2F2F2F2F2F2F2F2F2F2F2F2F2F2F2F313131313131313131313131343434
+3434343434343A3A3A3A3A3A3A3A3A3E3E3E3E3E3E3E3E3E3C3C3C3C3C3C3C3C3C404040404040
+4040404040404242424242424242423C3C3C3C3C3C3C3C3C393939393939393939363636363636
+3636363636363F3F3F3F3F3F3F3F3F4848484848484848484747474747474747473F3F3F3F3F3F
+3F3F3F3B3B3B3B3B3B3B3B3B3B3B3B444444444444444444464646464646464646474747474747
+474747686868686868686868959595959595959595959595CACACACACACACACACADFE0DFDFE0DF
+DFE0DFF5F5F5F5F5F5F5F5F5FEFEFEFEFEFEFEFEFEFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9F9F9F9F9F9F9F9F9C8C8C8C8C8C8C8C8C8
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDFDFDFDFDFDFDEAEAEAEAEAEAEAEAEAEAEAEAB8B8B8
+B8B8B8B8B8B87C7C7C7C7C7C7C7C7C565656565656565656454545454545454545454545404040
+4040404040404141414141414141413F3F3F3F3F3F3F3F3F3C3C3C3C3C3C3C3C3C393939393939
+393939393939363636363636363636353535353535353535343434343434343434363636363636
+363636353535353535353535353535343434343434343434343434343434343434343434343434
+3434343636363636363636363636363636363636363636363232323232323232322F2F2F2F2F2F
+2F2F2F2F2F2F2F2F2F2F2F2F3131313131313131313131313434343434343434343A3A3A3A3A3A
+3A3A3A3E3E3E3E3E3E3E3E3E3C3C3C3C3C3C3C3C3C404040404040404040404040424242424242
+4242423C3C3C3C3C3C3C3C3C3939393939393939393636363636363636363636363F3F3F3F3F3F
+3F3F3F4848484848484848484747474747474747473F3F3F3F3F3F3F3F3F3B3B3B3B3B3B3B3B3B
+3B3B3B444444444444444444464646464646464646474747474747474747686868686868686868
+959595959595959595959595CACACACACACACACACADFE0DFDFE0DFDFE0DFF5F5F5F5F5F5F5F5F5
+FEFEFEFEFEFEFEFEFEFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFF9F9F9F9F9F9F9F9F9C8C8C8C8C8C8C8C8C8FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFDFDFDFDFDFDFDFDFDEAEAEAEAEAEAEAEAEAEAEAEAB8B8B8B8B8B8B8B8B87C7C7C7C7C7C
+7C7C7C565656565656565656454545454545454545454545404040404040404040414141414141
+4141413F3F3F3F3F3F3F3F3F3C3C3C3C3C3C3C3C3C393939393939393939393939363636363636
+363636353535353535353535343434343434343434363636363636363636353535353535353535
+353535343434343434343434343434343434343434343434343434343434363636363636363636
+3636363636363636363636363232323232323232322F2F2F2F2F2F2F2F2F2F2F2F2F2F2F2F2F2F
+3131313131313131313131313434343434343434343A3A3A3A3A3A3A3A3A3E3E3E3E3E3E3E3E3E
+3C3C3C3C3C3C3C3C3C4040404040404040404040404242424242424242423C3C3C3C3C3C3C3C3C
+3939393939393939393636363636363636363636363F3F3F3F3F3F3F3F3F484848484848484848
+4747474747474747473F3F3F3F3F3F3F3F3F3B3B3B3B3B3B3B3B3B3B3B3B444444444444444444
+464646464646464646474747474747474747686868686868686868959595959595959595959595
+CACACACACACACACACADFE0DFDFE0DFDFE0DFF5F5F5F5F5F5F5F5F5FEFEFEFEFEFEFEFEFEFEFEFE
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9F9F9
+F9F9F9F9F9F9C8C8C8C8C8C8C8C8C8FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDFDFDFDFDFDFDEAEAEAEAEAEAEAEAEA
+B5B5B5B5B5B5B5B5B5B5B5B5777777777777777777505050505050505050444444444444444444
+4242424242424242424242424242424242424242424040404040404040403C3C3C3C3C3C3C3C3C
+3939393939393939393737373737373737373737373737373737373737373A3A3A3A3A3A3A3A3A
+3B3B3B3B3B3B3B3B3B3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3C3C3C3C3C3C3C3C3C
+3B3B3B3B3B3B3B3B3B3C3C3C3C3C3C3C3C3C3E3E3E3E3E3E3E3E3E3E3E3E3B3B3B3B3B3B3B3B3B
+373737373737373737343434343434343434323232323232323232343434343434343434343434
+3636363636363636363B3B3B3B3B3B3B3B3B3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F
+3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F4040404040404040403E3E3E3E3E3E3E3E3E373737
+373737373737373737363636363636363636404040404040404040474747474747474747424242
+4242424242423939393939393939393939393C3C3C3C3C3C3C3C3C414141414141414141424242
+424242424242505050505050505050717171717171717171717171959595959595959595B0B0B0
+B0B0B0B0B0B0CECECECECECECECECEEDEDEDEDEDEDEDEDEDEDEDEDF9F9F9F9F9F9F9F9F9FDFDFD
+FDFDFDFDFDFDFEFEFEFEFEFEFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAFAFAFAFAFAFAFAFAD1D1D1D1D1D1
+D1D1D1FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFDFDFDFDFDFDFDFDFDEAEAEAEAEAEAEAEAEAB5B5B5B5B5B5B5B5B5B5B5B5
+777777777777777777505050505050505050444444444444444444424242424242424242424242
+4242424242424242424040404040404040403C3C3C3C3C3C3C3C3C393939393939393939373737
+3737373737373737373737373737373737373A3A3A3A3A3A3A3A3A3B3B3B3B3B3B3B3B3B3E3E3E
+3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3C3C3C3C3C3C3C3C3C3B3B3B3B3B3B3B3B3B3C3C3C
+3C3C3C3C3C3C3E3E3E3E3E3E3E3E3E3E3E3E3B3B3B3B3B3B3B3B3B373737373737373737343434
+3434343434343232323232323232323434343434343434343434343636363636363636363B3B3B
+3B3B3B3B3B3B3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F
+3F3F3F3F3F3F4040404040404040403E3E3E3E3E3E3E3E3E373737373737373737373737363636
+363636363636404040404040404040474747474747474747424242424242424242393939393939
+3939393939393C3C3C3C3C3C3C3C3C414141414141414141424242424242424242505050505050
+505050717171717171717171717171959595959595959595B0B0B0B0B0B0B0B0B0CECECECECECE
+CECECEEDEDEDEDEDEDEDEDEDEDEDEDF9F9F9F9F9F9F9F9F9FDFDFDFDFDFDFDFDFDFEFEFEFEFEFE
+FEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFAFAFAFAFAFAFAFAFAD1D1D1D1D1D1D1D1D1FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFEFEFEFEFEFEF3F3F3
+F3F3F3F3F3F3BDBDBDBDBDBDBDBDBD7D7D7D7D7D7D7D7D7D7D7D7D565656565656565656464646
+4646464646464242424242424242424242424242424242424242424242424242424242423F3F3F
+3F3F3F3F3F3F3E3E3E3E3E3E3E3E3E3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3C3C3C
+3C3C3C3C3C3C3E3E3E3E3E3E3E3E3E3C3C3C3C3C3C3C3C3C3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B
+3B3B3B3B3B3B3E3E3E3E3E3E3E3E3E3C3C3C3C3C3C3C3C3C3E3E3E3E3E3E3E3E3E3F3F3F3F3F3F
+3F3F3F3F3F3F3C3C3C3C3C3C3C3C3C3B3B3B3B3B3B3B3B3B3A3A3A3A3A3A3A3A3A3B3B3B3B3B3B
+3B3B3B3E3E3E3E3E3E3E3E3E3E3E3E4040404040404040404141414141414141413E3E3E3E3E3E
+3E3E3E3A3A3A3A3A3A3A3A3A3C3C3C3C3C3C3C3C3C3C3C3C414141414141414141444444444444
+4444444242424242424242423A3A3A3A3A3A3A3A3A3A3A3A3434343434343434343A3A3A3A3A3A
+3A3A3A4242424242424242424444444444444444443A3A3A3A3A3A3A3A3A3A3A3A373737373737
+3737373B3B3B3B3B3B3B3B3B3F3F3F3F3F3F3F3F3F414141414141414141505050505050505050
+5050506666666666666666667979797979797979798F8F8F8F8F8F8F8F8FB6B6B6B6B6B6B6B6B6
+B6B6B6D4D4D4D4D4D4D4D4D4E5E5E5E5E5E5E5E5E5F5F5F5F5F5F5F5F5F5FDFDFDFDFDFDFDFDFD
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FBFBFBFBFBFBFBFBFBDBDBDBDBDBDBDBDBDBFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFEFEFEFEFEFEF3F3F3F3F3F3F3F3F3BDBDBDBDBDBD
+BDBDBD7D7D7D7D7D7D7D7D7D7D7D7D565656565656565656464646464646464646424242424242
+4242424242424242424242424242424242424242424242423F3F3F3F3F3F3F3F3F3E3E3E3E3E3E
+3E3E3E3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3C3C3C3C3C3C3C3C3C3E3E3E3E3E3E
+3E3E3E3C3C3C3C3C3C3C3C3C3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3E3E3E3E3E3E
+3E3E3E3C3C3C3C3C3C3C3C3C3E3E3E3E3E3E3E3E3E3F3F3F3F3F3F3F3F3F3F3F3F3C3C3C3C3C3C
+3C3C3C3B3B3B3B3B3B3B3B3B3A3A3A3A3A3A3A3A3A3B3B3B3B3B3B3B3B3B3E3E3E3E3E3E3E3E3E
+3E3E3E4040404040404040404141414141414141413E3E3E3E3E3E3E3E3E3A3A3A3A3A3A3A3A3A
+3C3C3C3C3C3C3C3C3C3C3C3C414141414141414141444444444444444444424242424242424242
+3A3A3A3A3A3A3A3A3A3A3A3A3434343434343434343A3A3A3A3A3A3A3A3A424242424242424242
+4444444444444444443A3A3A3A3A3A3A3A3A3A3A3A3737373737373737373B3B3B3B3B3B3B3B3B
+3F3F3F3F3F3F3F3F3F414141414141414141505050505050505050505050666666666666666666
+7979797979797979798F8F8F8F8F8F8F8F8FB6B6B6B6B6B6B6B6B6B6B6B6D4D4D4D4D4D4D4D4D4
+E5E5E5E5E5E5E5E5E5F5F5F5F5F5F5F5F5F5FDFDFDFDFDFDFDFDFDFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBFBFBFBFBFBFBFBFBDBDBDB
+DBDBDBDBDBDBFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFEFEFEFEFEFEFEFEFEF3F3F3F3F3F3F3F3F3BDBDBDBDBDBDBDBDBD7D7D7D7D7D7D7D7D7D
+7D7D7D565656565656565656464646464646464646424242424242424242424242424242424242
+4242424242424242424242423F3F3F3F3F3F3F3F3F3E3E3E3E3E3E3E3E3E3B3B3B3B3B3B3B3B3B
+3B3B3B3B3B3B3B3B3B3B3B3B3C3C3C3C3C3C3C3C3C3E3E3E3E3E3E3E3E3E3C3C3C3C3C3C3C3C3C
+3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3E3E3E3E3E3E3E3E3E3C3C3C3C3C3C3C3C3C
+3E3E3E3E3E3E3E3E3E3F3F3F3F3F3F3F3F3F3F3F3F3C3C3C3C3C3C3C3C3C3B3B3B3B3B3B3B3B3B
+3A3A3A3A3A3A3A3A3A3B3B3B3B3B3B3B3B3B3E3E3E3E3E3E3E3E3E3E3E3E404040404040404040
+4141414141414141413E3E3E3E3E3E3E3E3E3A3A3A3A3A3A3A3A3A3C3C3C3C3C3C3C3C3C3C3C3C
+4141414141414141414444444444444444444242424242424242423A3A3A3A3A3A3A3A3A3A3A3A
+3434343434343434343A3A3A3A3A3A3A3A3A4242424242424242424444444444444444443A3A3A
+3A3A3A3A3A3A3A3A3A3737373737373737373B3B3B3B3B3B3B3B3B3F3F3F3F3F3F3F3F3F414141
+4141414141415050505050505050505050506666666666666666667979797979797979798F8F8F
+8F8F8F8F8F8FB6B6B6B6B6B6B6B6B6B6B6B6D4D4D4D4D4D4D4D4D4E5E5E5E5E5E5E5E5E5F5F5F5
+F5F5F5F5F5F5FDFDFDFDFDFDFDFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBFBFBFBFBFBFBFBFBDBDBDBDBDBDBDBDBDBFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9F9F9F9F9F9F9F9F9
+D2D2D2D2D2D2D2D2D28A8A8A8A8A8A8A8A8A5D5D5D5D5D5D5D5D5D5D5D5D4C4C4C4C4C4C4C4C4C
+4545454545454545454141414141414141413E3E3E3E3E3E3E3E3E3E3E3E3C3C3C3C3C3C3C3C3C
+3B3B3B3B3B3B3B3B3B3A3A3A3A3A3A3A3A3A3939393939393939393A3A3A3A3A3A3A3A3A3A3A3A
+3B3B3B3B3B3B3B3B3B3E3E3E3E3E3E3E3E3E3B3B3B3B3B3B3B3B3B3939393939393939393A3A3A
+3A3A3A3A3A3A3A3A3A3C3C3C3C3C3C3C3C3C3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3F3F3F
+3F3F3F3F3F3F3F3F3F3E3E3E3E3E3E3E3E3E3C3C3C3C3C3C3C3C3C3B3B3B3B3B3B3B3B3B3B3B3B
+3B3B3B3B3B3B3E3E3E3E3E3E3E3E3E3E3E3E404040404040404040414141414141414141414141
+4141414141413B3B3B3B3B3B3B3B3B3636363636363636363636363B3B3B3B3B3B3B3B3B424242
+424242424242494949494949494949424242424242424242424242353535353535353535393939
+3939393939393C3C3C3C3C3C3C3C3C4141414141414141414040404040404040404040403A3A3A
+3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3C3C3C3C3C3C3C3C3C424242424242
+4242424242424F4F4F4F4F4F4F4F4F5D5D5D5D5D5D5D5D5D6C6C6C6C6C6C6C6C6C878787878787
+878787878787A8A8A8A8A8A8A8A8A8C5C5C5C5C5C5C5C5C5DBDBDBDBDBDBDBDBDBF0F0F0F0F0F0
+F0F0F0FDFDFDFDFDFDFDFDFDFDFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFF9F9F9F9F9F9F9F9F9CBCBCBCBCBCBCBCBCBFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9F9F9F9F9F9F9F9F9D2D2D2D2D2D2D2D2D28A8A8A
+8A8A8A8A8A8A5D5D5D5D5D5D5D5D5D5D5D5D4C4C4C4C4C4C4C4C4C454545454545454545414141
+4141414141413E3E3E3E3E3E3E3E3E3E3E3E3C3C3C3C3C3C3C3C3C3B3B3B3B3B3B3B3B3B3A3A3A
+3A3A3A3A3A3A3939393939393939393A3A3A3A3A3A3A3A3A3A3A3A3B3B3B3B3B3B3B3B3B3E3E3E
+3E3E3E3E3E3E3B3B3B3B3B3B3B3B3B3939393939393939393A3A3A3A3A3A3A3A3A3A3A3A3C3C3C
+3C3C3C3C3C3C3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3F3F3F3F3F3F3F3F3F3F3F3F3E3E3E
+3E3E3E3E3E3E3C3C3C3C3C3C3C3C3C3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3E3E3E3E3E3E
+3E3E3E3E3E3E4040404040404040404141414141414141414141414141414141413B3B3B3B3B3B
+3B3B3B3636363636363636363636363B3B3B3B3B3B3B3B3B424242424242424242494949494949
+4949494242424242424242424242423535353535353535353939393939393939393C3C3C3C3C3C
+3C3C3C4141414141414141414040404040404040404040403A3A3A3A3A3A3A3A3A3A3A3A3A3A3A
+3A3A3A3A3A3A3A3A3A3A3A3A3C3C3C3C3C3C3C3C3C4242424242424242424242424F4F4F4F4F4F
+4F4F4F5D5D5D5D5D5D5D5D5D6C6C6C6C6C6C6C6C6C878787878787878787878787A8A8A8A8A8A8
+A8A8A8C5C5C5C5C5C5C5C5C5DBDBDBDBDBDBDBDBDBF0F0F0F0F0F0F0F0F0FDFDFDFDFDFDFDFDFD
+FDFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9F9F9F9F9F9F9F9F9
+CBCBCBCBCBCBCBCBCBFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFE
+FEFEFEFEFEFEE7E7E7E7E7E7E7E7E79F9F9F9F9F9F9F9F9F6565656565656565654E4E4E4E4E4E
+4E4E4E4E4E4E454545454545454545404040404040404040393939393939393939343434343434
+343434343434313131313131313131313131313131313131313131313131313131303030303030
+303030303030303030303030303030343434343434343434373737373737373737393939393939
+393939373737373737373737373737373737373737373737373737373737373737353535353535
+3535353636363636363636363737373737373737373737373939393939393939393A3A3A3A3A3A
+3A3A3A3939393939393939393939393939393939393A3A3A3A3A3A3A3A3A3A3A3A3C3C3C3C3C3C
+3C3C3C3F3F3F3F3F3F3F3F3F4141414141414141414242424242424242423E3E3E3E3E3E3E3E3E
+3E3E3E3939393939393939393A3A3A3A3A3A3A3A3A444444444444444444484848484848484848
+4848483C3C3C3C3C3C3C3C3C3636363636363636363A3A3A3A3A3A3A3A3A3B3B3B3B3B3B3B3B3B
+3E3E3E3E3E3E3E3E3E3E3E3E3B3B3B3B3B3B3B3B3B3A3A3A3A3A3A3A3A3A373737373737373737
+3B3B3B3B3B3B3B3B3B3E3E3E3E3E3E3E3E3E3E3E3E4242424242424242424C4C4C4C4C4C4C4C4C
+5858585858585858586868686868686868686868687B7B7B7B7B7B7B7B7B9D9D9D9D9D9D9D9D9D
+CBCBCBCBCBCBCBCBCBE4E4E4E4E4E4E4E4E4F5F5F5F5F5F5F5F5F5F5F5F5FDFDFDFDFDFDFDFDFD
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBFBFBFBFBFBFBFBFBD8D8D8D8D8D8D8D8D8FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFEFEFEFEFEFEE7E7E7E7E7E7
+E7E7E79F9F9F9F9F9F9F9F9F6565656565656565654E4E4E4E4E4E4E4E4E4E4E4E454545454545
+454545404040404040404040393939393939393939343434343434343434343434313131313131
+313131313131313131313131313131313131313131303030303030303030303030303030303030
+303030343434343434343434373737373737373737393939393939393939373737373737373737
+373737373737373737373737373737373737373737353535353535353535363636363636363636
+3737373737373737373737373939393939393939393A3A3A3A3A3A3A3A3A393939393939393939
+3939393939393939393A3A3A3A3A3A3A3A3A3A3A3A3C3C3C3C3C3C3C3C3C3F3F3F3F3F3F3F3F3F
+4141414141414141414242424242424242423E3E3E3E3E3E3E3E3E3E3E3E393939393939393939
+3A3A3A3A3A3A3A3A3A4444444444444444444848484848484848484848483C3C3C3C3C3C3C3C3C
+3636363636363636363A3A3A3A3A3A3A3A3A3B3B3B3B3B3B3B3B3B3E3E3E3E3E3E3E3E3E3E3E3E
+3B3B3B3B3B3B3B3B3B3A3A3A3A3A3A3A3A3A3737373737373737373B3B3B3B3B3B3B3B3B3E3E3E
+3E3E3E3E3E3E3E3E3E4242424242424242424C4C4C4C4C4C4C4C4C585858585858585858686868
+6868686868686868687B7B7B7B7B7B7B7B7B9D9D9D9D9D9D9D9D9DCBCBCBCBCBCBCBCBCBE4E4E4
+E4E4E4E4E4E4F5F5F5F5F5F5F5F5F5F5F5F5FDFDFDFDFDFDFDFDFDFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFBFBFBFBFBFBFBFBFBD8D8D8D8D8D8D8D8D8FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFEFEFEFEFEFEE7E7E7E7E7E7E7E7E79F9F9F9F9F9F9F9F9F
+6565656565656565654E4E4E4E4E4E4E4E4E4E4E4E454545454545454545404040404040404040
+393939393939393939343434343434343434343434313131313131313131313131313131313131
+313131313131313131303030303030303030303030303030303030303030343434343434343434
+373737373737373737393939393939393939373737373737373737373737373737373737373737
+373737373737373737353535353535353535363636363636363636373737373737373737373737
+3939393939393939393A3A3A3A3A3A3A3A3A3939393939393939393939393939393939393A3A3A
+3A3A3A3A3A3A3A3A3A3C3C3C3C3C3C3C3C3C3F3F3F3F3F3F3F3F3F414141414141414141424242
+4242424242423E3E3E3E3E3E3E3E3E3E3E3E3939393939393939393A3A3A3A3A3A3A3A3A444444
+4444444444444848484848484848484848483C3C3C3C3C3C3C3C3C3636363636363636363A3A3A
+3A3A3A3A3A3A3B3B3B3B3B3B3B3B3B3E3E3E3E3E3E3E3E3E3E3E3E3B3B3B3B3B3B3B3B3B3A3A3A
+3A3A3A3A3A3A3737373737373737373B3B3B3B3B3B3B3B3B3E3E3E3E3E3E3E3E3E3E3E3E424242
+4242424242424C4C4C4C4C4C4C4C4C5858585858585858586868686868686868686868687B7B7B
+7B7B7B7B7B7B9D9D9D9D9D9D9D9D9DCBCBCBCBCBCBCBCBCBE4E4E4E4E4E4E4E4E4F5F5F5F5F5F5
+F5F5F5F5F5F5FDFDFDFDFDFDFDFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBFBFBFBFBFB
+FBFBFBD8D8D8D8D8D8D8D8D8FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFEFEFEFEFEFEFEFEFE
+F9F9F9F9F9F9F9F9F9C4C4C4C4C4C4C4C4C4767676767676767676505050505050505050424242
+4242424242424242423C3C3C3C3C3C3C3C3C373737373737373737313131313131313131303030
+303030303030303030303030303030303030313131313131313131313131313131313131303030
+3030303030302D2D2D2D2D2D2D2D2D2D2D2D2F2F2F2F2F2F2F2F2F2F2F2F2F2F2F2F2F2F313131
+3131313131313131313131313131313232323232323232323232323030303030303030302C2C2C
+2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2D2D2D2D2D2D2D2D2D2D2D2D303030303030303030323232
+323232323232353535353535353535343434343434343434343434343434343434343434353535
+3535353535353737373737373737373B3B3B3B3B3B3B3B3B454545454545454545474747474747
+4747474747473E3E3E3E3E3E3E3E3E353535353535353535373737373737373737454545454545
+4545454545454848484848484848483A3A3A3A3A3A3A3A3A363636363636363636353535353535
+3535353737373737373737373737373B3B3B3B3B3B3B3B3B3C3C3C3C3C3C3C3C3C3A3A3A3A3A3A
+3A3A3A3939393939393939393C3C3C3C3C3C3C3C3C3C3C3C3E3E3E3E3E3E3E3E3E404040404040
+4040404848484848484848484D4D4D4D4D4D4D4D4D4D4D4D5757575757575757576A6A6A6A6A6A
+6A6A6A969696969696969696CBCBCBCBCBCBCBCBCBE7E7E7E7E7E7E7E7E7E7E7E7F7F7F7F7F7F7
+F7F7F7FEFEFEFEFEFEFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDFDFDFDFDFDFDF4F4F4F4F4F4F4F4F4
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFEFEFEFEFEFEFEFEFEF9F9F9F9F9F9F9F9F9C4C4C4
+C4C4C4C4C4C47676767676767676765050505050505050504242424242424242424242423C3C3C
+3C3C3C3C3C3C373737373737373737313131313131313131303030303030303030303030303030
+3030303030303131313131313131313131313131313131313030303030303030302D2D2D2D2D2D
+2D2D2D2D2D2D2F2F2F2F2F2F2F2F2F2F2F2F2F2F2F2F2F2F313131313131313131313131313131
+3131313232323232323232323232323030303030303030302C2C2C2C2C2C2C2C2C2C2C2C2C2C2C
+2C2C2C2D2D2D2D2D2D2D2D2D2D2D2D303030303030303030323232323232323232353535353535
+353535343434343434343434343434343434343434343434353535353535353535373737373737
+3737373B3B3B3B3B3B3B3B3B4545454545454545454747474747474747474747473E3E3E3E3E3E
+3E3E3E353535353535353535373737373737373737454545454545454545454545484848484848
+4848483A3A3A3A3A3A3A3A3A363636363636363636353535353535353535373737373737373737
+3737373B3B3B3B3B3B3B3B3B3C3C3C3C3C3C3C3C3C3A3A3A3A3A3A3A3A3A393939393939393939
+3C3C3C3C3C3C3C3C3C3C3C3C3E3E3E3E3E3E3E3E3E404040404040404040484848484848484848
+4D4D4D4D4D4D4D4D4D4D4D4D5757575757575757576A6A6A6A6A6A6A6A6A969696969696969696
+CBCBCBCBCBCBCBCBCBE7E7E7E7E7E7E7E7E7E7E7E7F7F7F7F7F7F7F7F7F7FEFEFEFEFEFEFEFEFE
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFDFDFDFDFDFDFDFDFDF4F4F4F4F4F4F4F4F4FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFDFDFDFDFDFDFDFDFDFDFDFDE1E1E1E1E1E1E1E1E1919191919191919191575757575757
+575757414141414141414141373737373737373737373737343434343434343434313131313131
+313131323232323232323232353535353535353535353535353535353535353535353535353535
+353535363636363636363636353535353535353535323232323232323232323232303030303030
+3030302F2F2F2F2F2F2F2F2F323232323232323232343434343434343434323232323232323232
+3232323131313131313131313030303030303030302D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D
+2D2D2D2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2F2F2F2F2F2F2F2F2F313131313131313131
+3434343434343434343434343636363636363636363939393939393939393C3C3C3C3C3C3C3C3C
+404040404040404040424242424242424242424242404040404040404040363636363636363636
+313131313131313131353535353535353535353535404040404040404040404040404040404040
+373737373737373737313131313131313131313131313131313131313131363636363636363636
+3A3A3A3A3A3A3A3A3A3C3C3C3C3C3C3C3C3C3A3A3A3A3A3A3A3A3A393939393939393939393939
+3C3C3C3C3C3C3C3C3C3939393939393939393F3F3F3F3F3F3F3F3F414141414141414141414141
+4545454545454545454D4D4D4D4D4D4D4D4D5F605F5F605F5F605F8A8A8A8A8A8A8A8A8AC0C0C0
+C0C0C0C0C0C0C0C0C0E0E0E0E0E0E0E0E0E0FBFBFBFBFBFBFBFBFBFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCFCFC
+FCFCFCFCFCFCE4E4E4E4E4E4E4E4E4FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDFDFDFDFDFDFD
+FDFDFDE1E1E1E1E1E1E1E1E1919191919191919191575757575757575757414141414141414141
+373737373737373737373737343434343434343434313131313131313131323232323232323232
+353535353535353535353535353535353535353535353535353535353535363636363636363636
+3535353535353535353232323232323232323232323030303030303030302F2F2F2F2F2F2F2F2F
+323232323232323232343434343434343434323232323232323232323232313131313131313131
+3030303030303030302D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2B2B2B2B2B2B2B2B2B
+2B2B2B2B2B2B2B2B2B2F2F2F2F2F2F2F2F2F313131313131313131343434343434343434343434
+3636363636363636363939393939393939393C3C3C3C3C3C3C3C3C404040404040404040424242
+424242424242424242404040404040404040363636363636363636313131313131313131353535
+353535353535353535404040404040404040404040404040404040373737373737373737313131
+3131313131313131313131313131313131313636363636363636363A3A3A3A3A3A3A3A3A3C3C3C
+3C3C3C3C3C3C3A3A3A3A3A3A3A3A3A3939393939393939393939393C3C3C3C3C3C3C3C3C393939
+3939393939393F3F3F3F3F3F3F3F3F4141414141414141414141414545454545454545454D4D4D
+4D4D4D4D4D4D5F605F5F605F5F605F8A8A8A8A8A8A8A8A8AC0C0C0C0C0C0C0C0C0C0C0C0E0E0E0
+E0E0E0E0E0E0FBFBFBFBFBFBFBFBFBFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCFCFCFCFCFCFCFCFCE4E4E4E4E4E4
+E4E4E4FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDFDFDFDFDFDFDFDFDFDE1E1E1E1E1E1E1E1E1
+919191919191919191575757575757575757414141414141414141373737373737373737373737
+343434343434343434313131313131313131323232323232323232353535353535353535353535
+353535353535353535353535353535353535363636363636363636353535353535353535323232
+3232323232323232323030303030303030302F2F2F2F2F2F2F2F2F323232323232323232343434
+3434343434343232323232323232323232323131313131313131313030303030303030302D2D2D
+2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2F2F2F
+2F2F2F2F2F2F313131313131313131343434343434343434343434363636363636363636393939
+3939393939393C3C3C3C3C3C3C3C3C404040404040404040424242424242424242424242404040
+404040404040363636363636363636313131313131313131353535353535353535353535404040
+404040404040404040404040404040373737373737373737313131313131313131313131313131
+3131313131313636363636363636363A3A3A3A3A3A3A3A3A3C3C3C3C3C3C3C3C3C3A3A3A3A3A3A
+3A3A3A3939393939393939393939393C3C3C3C3C3C3C3C3C3939393939393939393F3F3F3F3F3F
+3F3F3F4141414141414141414141414545454545454545454D4D4D4D4D4D4D4D4D5F605F5F605F
+5F605F8A8A8A8A8A8A8A8A8AC0C0C0C0C0C0C0C0C0C0C0C0E0E0E0E0E0E0E0E0E0FBFBFBFBFBFB
+FBFBFBFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFCFCFCFCFCFCFCFCFCE4E4E4E4E4E4E4E4E4FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFE
+FEFEFEFEFEFEF2F2F2F2F2F2F2F2F2F2F2F2B1B1B1B1B1B1B1B1B1666666666666666666454545
+454545454545393939393939393939323232323232323232323232313131313131313131343434
+343434343434353535353535353535323232323232323232323232313131313131313131323232
+323232323232353535353535353535353535353535353535343434343434343434343434353535
+353535353535343434343434343434323232323232323232323232323232323232323232323232
+323232323232353535353535353535373737373737373737323232323232323232303030303030
+3030303030302C2C2C2C2C2C2C2C2C2D2D2D2D2D2D2D2D2D323232323232323232373737373737
+3737373939393939393939393939393636363636363636363636363636363636363A3A3A3A3A3A
+3A3A3A3E3E3E3E3E3E3E3E3E4141414141414141414141414545454545454545453F3F3F3F3F3F
+3F3F3F3232323232323232322F2F2F2F2F2F2F2F2F2F2F2F3232323232323232323B3B3B3B3B3B
+3B3B3B3B3B3B3B3B3B3B3B3B323232323232323232303030303030303030303030323232323232
+3232323636363636363636363C3C3C3C3C3C3C3C3C3B3B3B3B3B3B3B3B3B363636363636363636
+3636363939393939393939393737373737373737373939393939393939393C3C3C3C3C3C3C3C3C
+3C3C3C3E3E3E3E3E3E3E3E3E4242424242424242424C4C4C4C4C4C4C4C4C5C5C5C5C5C5C5C5C5C
+838383838383838383838383B7B7B7B7B7B7B7B7B7EFEFEFEFEFEFEFEFEFFEFEFEFEFEFEFEFEFE
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FBFBFBFBFBFBFBFBFBDDDDDDDDDDDDDDDDDDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFEFEFEFEFEFEF2F2F2F2F2F2
+F2F2F2F2F2F2B1B1B1B1B1B1B1B1B1666666666666666666454545454545454545393939393939
+393939323232323232323232323232313131313131313131343434343434343434353535353535
+353535323232323232323232323232313131313131313131323232323232323232353535353535
+353535353535353535353535343434343434343434343434353535353535353535343434343434
+343434323232323232323232323232323232323232323232323232323232323232353535353535
+3535353737373737373737373232323232323232323030303030303030303030302C2C2C2C2C2C
+2C2C2C2D2D2D2D2D2D2D2D2D323232323232323232373737373737373737393939393939393939
+3939393636363636363636363636363636363636363A3A3A3A3A3A3A3A3A3E3E3E3E3E3E3E3E3E
+4141414141414141414141414545454545454545453F3F3F3F3F3F3F3F3F323232323232323232
+2F2F2F2F2F2F2F2F2F2F2F2F3232323232323232323B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B
+323232323232323232303030303030303030303030323232323232323232363636363636363636
+3C3C3C3C3C3C3C3C3C3B3B3B3B3B3B3B3B3B363636363636363636363636393939393939393939
+3737373737373737373939393939393939393C3C3C3C3C3C3C3C3C3C3C3C3E3E3E3E3E3E3E3E3E
+4242424242424242424C4C4C4C4C4C4C4C4C5C5C5C5C5C5C5C5C5C838383838383838383838383
+B7B7B7B7B7B7B7B7B7EFEFEFEFEFEFEFEFEFFEFEFEFEFEFEFEFEFEFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBFBFBFBFBFBFBFBFBDDDDDD
+DDDDDDDDDDDDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFEFEFEFEFEFEF2F2F2F2F2F2F2F2F2F2F2F2B1B1B1B1B1B1
+B1B1B1666666666666666666454545454545454545393939393939393939323232323232323232
+323232313131313131313131343434343434343434353535353535353535323232323232323232
+323232313131313131313131323232323232323232353535353535353535353535353535353535
+343434343434343434343434353535353535353535343434343434343434323232323232323232
+323232323232323232323232323232323232323232353535353535353535373737373737373737
+3232323232323232323030303030303030303030302C2C2C2C2C2C2C2C2C2D2D2D2D2D2D2D2D2D
+323232323232323232373737373737373737393939393939393939393939363636363636363636
+3636363636363636363A3A3A3A3A3A3A3A3A3E3E3E3E3E3E3E3E3E414141414141414141414141
+4545454545454545453F3F3F3F3F3F3F3F3F3232323232323232322F2F2F2F2F2F2F2F2F2F2F2F
+3232323232323232323B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B323232323232323232303030
+3030303030303030303232323232323232323636363636363636363C3C3C3C3C3C3C3C3C3B3B3B
+3B3B3B3B3B3B363636363636363636363636393939393939393939373737373737373737393939
+3939393939393C3C3C3C3C3C3C3C3C3C3C3C3E3E3E3E3E3E3E3E3E4242424242424242424C4C4C
+4C4C4C4C4C4C5C5C5C5C5C5C5C5C5C838383838383838383838383B7B7B7B7B7B7B7B7B7EFEFEF
+EFEFEFEFEFEFFEFEFEFEFEFEFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBFBFBFBFBFBFBFBFBDDDDDDDDDDDDDDDDDDFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FCFCFCFCFCFCFCFCFCD4D4D4D4D4D4D4D4D4D4D4D4838383838383838383505050505050505050
+3E3E3E3E3E3E3E3E3E363636363636363636323232323232323232323232303030303030303030
+3030303030303030303131313131313131312D2D2D2D2D2D2D2D2D2D2D2D2B2B2B2B2B2B2B2B2B
+2C2C2C2C2C2C2C2C2C2D2D2D2D2D2D2D2D2D2F2F2F2F2F2F2F2F2F303030303030303030303030
+343434343434343434393939393939393939373737373737373737363636363636363636343434
+343434343434343434353535353535353535373737373737373737363636363636363636363636
+3636363636363636363535353535353535353535353535353535353737373737373737373A3A3A
+3A3A3A3A3A3A3B3B3B3B3B3B3B3B3B3B3B3B3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A424242
+4242424242424646464646464646464242424242424242424242424040404040404040403E3E3E
+3E3E3E3E3E3E3737373737373737373232323232323232323232322D2D2D2D2D2D2D2D2D2F2F2F
+2F2F2F2F2F2F343434343434343434353535353535353535323232323232323232323232313131
+3131313131313232323232323232323939393939393939393E3E3E3E3E3E3E3E3E393939393939
+393939393939353535353535353535373737373737373737373737373737373737393939393939
+3939393939393A3A3A3A3A3A3A3A3A3F3F3F3F3F3F3F3F3F4646464646464646464C4C4C4C4C4C
+4C4C4C5A5A5A5A5A5A5A5A5A5A5A5A7E7E7E7E7E7E7E7E7ED2D2D2D2D2D2D2D2D2FCFCFCFCFCFC
+FCFCFCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFAFAFAFAFAFAFAFAFADBDBDBDBDBDBDBDBDBFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCFCFCFCFCFCFCFCFCD4D4D4
+D4D4D4D4D4D4D4D4D48383838383838383835050505050505050503E3E3E3E3E3E3E3E3E363636
+363636363636323232323232323232323232303030303030303030303030303030303030313131
+3131313131312D2D2D2D2D2D2D2D2D2D2D2D2B2B2B2B2B2B2B2B2B2C2C2C2C2C2C2C2C2C2D2D2D
+2D2D2D2D2D2D2F2F2F2F2F2F2F2F2F303030303030303030303030343434343434343434393939
+393939393939373737373737373737363636363636363636343434343434343434343434353535
+353535353535373737373737373737363636363636363636363636363636363636363636353535
+3535353535353535353535353535353737373737373737373A3A3A3A3A3A3A3A3A3B3B3B3B3B3B
+3B3B3B3B3B3B3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A424242424242424242464646464646
+4646464242424242424242424242424040404040404040403E3E3E3E3E3E3E3E3E373737373737
+3737373232323232323232323232322D2D2D2D2D2D2D2D2D2F2F2F2F2F2F2F2F2F343434343434
+343434353535353535353535323232323232323232323232313131313131313131323232323232
+3232323939393939393939393E3E3E3E3E3E3E3E3E393939393939393939393939353535353535
+3535353737373737373737373737373737373737373939393939393939393939393A3A3A3A3A3A
+3A3A3A3F3F3F3F3F3F3F3F3F4646464646464646464C4C4C4C4C4C4C4C4C5A5A5A5A5A5A5A5A5A
+5A5A5A7E7E7E7E7E7E7E7E7ED2D2D2D2D2D2D2D2D2FCFCFCFCFCFCFCFCFCFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAFAFAFAFAFAFAFAFA
+DBDBDBDBDBDBDBDBDBFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFEFEFEFEFEFEFEFEFEECECECECECECECECECA4A4A4A4A4A4A4A4A4A4A4A45E5E5E
+5E5E5E5E5E5E4545454545454545453C3C3C3C3C3C3C3C3C363636363636363636343434343434
+343434343434343434343434343434343434343434343434343434343434343434313131313131
+3131313131312D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2F2F2F2F2F2F
+2F2F2F2D2D2D2D2D2D2D2D2D2D2D2D2C2C2C2C2C2C2C2C2C303030303030303030343434343434
+343434343434343434343434323232323232323232323232353535353535353535393939393939
+393939373737373737373737373737373737373737373737373737373737373737373737373737
+373737393939393939393939393939393939393939363636363636363636363636363636363636
+3636363A3A3A3A3A3A3A3A3A444444444444444444494949494949494949464646464646464646
+4646463C3C3C3C3C3C3C3C3C363636363636363636323232323232323232323232323232323232
+3232322F2F2F2F2F2F2F2F2F2B2B2B2B2B2B2B2B2B2C2C2C2C2C2C2C2C2C303030303030303030
+353535353535353535353535323232323232323232303030303030303030343434343434343434
+393939393939393939393939393939393939393939343434343434343434363636363636363636
+3737373737373737373636363636363636363636363737373737373737373E3E3E3E3E3E3E3E3E
+4242424242424242424646464646464646464E4E4E4E4E4E4E4E4E4E4E4E5E5E5E5E5E5E5E5E5E
+A1A1A1A1A1A1A1A1A1EEEEEEEEEEEEEEEEEEFEFEFEFEFEFEFEFEFEFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAFAFAFAFAFAFAFAFADBDBDBDBDBDBDBDBDBFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFEFEFE
+FEFEFEECECECECECECECECECA4A4A4A4A4A4A4A4A4A4A4A45E5E5E5E5E5E5E5E5E454545454545
+4545453C3C3C3C3C3C3C3C3C363636363636363636343434343434343434343434343434343434
+3434343434343434343434343434343434343434343131313131313131313131312D2D2D2D2D2D
+2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2F2F2F2F2F2F2F2F2F2D2D2D2D2D2D2D2D2D
+2D2D2D2C2C2C2C2C2C2C2C2C303030303030303030343434343434343434343434343434343434
+323232323232323232323232353535353535353535393939393939393939373737373737373737
+373737373737373737373737373737373737373737373737373737373737393939393939393939
+3939393939393939393636363636363636363636363636363636363636363A3A3A3A3A3A3A3A3A
+4444444444444444444949494949494949494646464646464646464646463C3C3C3C3C3C3C3C3C
+3636363636363636363232323232323232323232323232323232323232322F2F2F2F2F2F2F2F2F
+2B2B2B2B2B2B2B2B2B2C2C2C2C2C2C2C2C2C303030303030303030353535353535353535353535
+323232323232323232303030303030303030343434343434343434393939393939393939393939
+393939393939393939343434343434343434363636363636363636373737373737373737363636
+3636363636363636363737373737373737373E3E3E3E3E3E3E3E3E424242424242424242464646
+4646464646464E4E4E4E4E4E4E4E4E4E4E4E5E5E5E5E5E5E5E5E5EA1A1A1A1A1A1A1A1A1EEEEEE
+EEEEEEEEEEEEFEFEFEFEFEFEFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFAFAFAFAFAFAFAFAFADBDBDBDBDBDBDBDBDBFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFEFEFEFEFEFEECECECECECECECECEC
+A4A4A4A4A4A4A4A4A4A4A4A45E5E5E5E5E5E5E5E5E4545454545454545453C3C3C3C3C3C3C3C3C
+363636363636363636343434343434343434343434343434343434343434343434343434343434
+3434343434343434343131313131313131313131312D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D
+2D2D2D2D2D2D2D2D2D2F2F2F2F2F2F2F2F2F2D2D2D2D2D2D2D2D2D2D2D2D2C2C2C2C2C2C2C2C2C
+303030303030303030343434343434343434343434343434343434323232323232323232323232
+353535353535353535393939393939393939373737373737373737373737373737373737373737
+373737373737373737373737373737373737393939393939393939393939393939393939363636
+3636363636363636363636363636363636363A3A3A3A3A3A3A3A3A444444444444444444494949
+4949494949494646464646464646464646463C3C3C3C3C3C3C3C3C363636363636363636323232
+3232323232323232323232323232323232322F2F2F2F2F2F2F2F2F2B2B2B2B2B2B2B2B2B2C2C2C
+2C2C2C2C2C2C303030303030303030353535353535353535353535323232323232323232303030
+303030303030343434343434343434393939393939393939393939393939393939393939343434
+343434343434363636363636363636373737373737373737363636363636363636363636373737
+3737373737373E3E3E3E3E3E3E3E3E4242424242424242424646464646464646464E4E4E4E4E4E
+4E4E4E4E4E4E5E5E5E5E5E5E5E5E5EA1A1A1A1A1A1A1A1A1EEEEEEEEEEEEEEEEEEFEFEFEFEFEFE
+FEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAFAFAFAFAFA
+FAFAFADBDBDBDBDBDBDBDBDBFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFF9F9F9F9F9F9F9F9F9C6C6C6C6C6C6C6C6C6737373737373737373737373
+4848484848484848484040404040404040403B3B3B3B3B3B3B3B3B353535353535353535363636
+3636363636363636363939393939393939393A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A373737
+373737373737373737323232323232323232303030303030303030303030303030303030323232
+3232323232322F2F2F2F2F2F2F2F2F2F2F2F282828282828282828272727272727272727292929
+2929292929292C2C2C2C2C2C2C2C2C2D2D2D2D2D2D2D2D2D2D2D2D313131313131313131353535
+353535353535353535353535353535353535353535353535353535353535353535353535363636
+3636363636363535353535353535353030303030303030302D2D2D2D2D2D2D2D2D2D2D2D2F2F2F
+2F2F2F2F2F2F363636363636363636404040404040404040464646464646464646444444444444
+4444444444443E3E3E3E3E3E3E3E3E3737373737373737373232323232323232322F2F2F2F2F2F
+2F2F2F2F2F2F2C2C2C2C2C2C2C2C2C2D2D2D2D2D2D2D2D2D2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C
+2C2C2C303030303030303030303030303030303030303030303030303030303030323232323232
+323232353535353535353535393939393939393939393939393939393939393939373737373737
+3737373636363636363636363535353535353535353535353535353535353535353A3A3A3A3A3A
+3A3A3A4040404040404040404545454545454545454B4B4B4B4B4B4B4B4B4B4B4B545454545454
+545454737373737373737373C7C7C7C7C7C7C7C7C7FAFAFAFAFAFAFAFAFAFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9F9F9F9F9F9F9F9F9C7C7C7C7C7C7C7C7C7
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9F9F9
+F9F9F9F9F9F9C6C6C6C6C6C6C6C6C6737373737373737373737373484848484848484848404040
+4040404040403B3B3B3B3B3B3B3B3B353535353535353535363636363636363636363636393939
+3939393939393A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A373737373737373737373737323232
+3232323232323030303030303030303030303030303030303232323232323232322F2F2F2F2F2F
+2F2F2F2F2F2F2828282828282828282727272727272727272929292929292929292C2C2C2C2C2C
+2C2C2C2D2D2D2D2D2D2D2D2D2D2D2D313131313131313131353535353535353535353535353535
+353535353535353535353535353535353535353535353535363636363636363636353535353535
+3535353030303030303030302D2D2D2D2D2D2D2D2D2D2D2D2F2F2F2F2F2F2F2F2F363636363636
+3636364040404040404040404646464646464646464444444444444444444444443E3E3E3E3E3E
+3E3E3E3737373737373737373232323232323232322F2F2F2F2F2F2F2F2F2F2F2F2C2C2C2C2C2C
+2C2C2C2D2D2D2D2D2D2D2D2D2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C303030303030303030
+303030303030303030303030303030303030303030323232323232323232353535353535353535
+393939393939393939393939393939393939393939373737373737373737363636363636363636
+3535353535353535353535353535353535353535353A3A3A3A3A3A3A3A3A404040404040404040
+4545454545454545454B4B4B4B4B4B4B4B4B4B4B4B545454545454545454737373737373737373
+C7C7C7C7C7C7C7C7C7FAFAFAFAFAFAFAFAFAFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFF9F9F9F9F9F9F9F9F9C7C7C7C7C7C7C7C7C7FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFEFEFEFEFEFEE5E5E5E5E5E5E5E5E5969696969696
+9696965656565656565656565656564444444444444444444040404040404040403B3B3B3B3B3B
+3B3B3B3939393939393939393A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A
+3A3A3A3A3A3A3A3A3A3A3A3A363636363636363636363636343434343434343434313131313131
+3131313030303030303030303232323232323232323131313131313131313131312D2D2D2D2D2D
+2D2D2D292929292929292929282828282828282828272727272727272727282828282828282828
+2828282C2C2C2C2C2C2C2C2C303030303030303030323232323232323232323232323232323232
+3232323030303030303030303131313131313131313030303030303030302C2C2C2C2C2C2C2C2C
+2B2B2B2B2B2B2B2B2B2B2B2B2D2D2D2D2D2D2D2D2D323232323232323232393939393939393939
+3E3E3E3E3E3E3E3E3E3B3B3B3B3B3B3B3B3B3B3B3B373737373737373737363636363636363636
+3434343434343434343030303030303030303030302B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B
+2C2C2C2C2C2C2C2C2C2B2B2B2B2B2B2B2B2B2D2D2D2D2D2D2D2D2D2D2D2D2F2F2F2F2F2F2F2F2F
+2F2F2F2F2F2F2F2F2F313131313131313131313131313131313131353535353535353535353535
+3737373737373737373B3B3B3B3B3B3B3B3B363636363636363636313131313131313131313131
+3232323232323232323636363636363636363C3C3C3C3C3C3C3C3C4545454545454545454D4D4D
+4D4D4D4D4D4D4D4D4D5252525252525252525D5D5D5D5D5D5D5D5D939393939393939393E7E7E7
+E7E7E7E7E7E7FEFEFEFEFEFEFEFEFEFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9F9F9
+F9F9F9F9F9F9BFBFBFBFBFBFBFBFBFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFEFEFEFEFEFEFEFEFEE5E5E5E5E5E5E5E5E5969696969696969696565656565656565656
+5656564444444444444444444040404040404040403B3B3B3B3B3B3B3B3B393939393939393939
+3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A
+363636363636363636363636343434343434343434313131313131313131303030303030303030
+3232323232323232323131313131313131313131312D2D2D2D2D2D2D2D2D292929292929292929
+2828282828282828282727272727272727272828282828282828282828282C2C2C2C2C2C2C2C2C
+303030303030303030323232323232323232323232323232323232323232303030303030303030
+3131313131313131313030303030303030302C2C2C2C2C2C2C2C2C2B2B2B2B2B2B2B2B2B2B2B2B
+2D2D2D2D2D2D2D2D2D3232323232323232323939393939393939393E3E3E3E3E3E3E3E3E3B3B3B
+3B3B3B3B3B3B3B3B3B373737373737373737363636363636363636343434343434343434303030
+3030303030303030302B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2C2C2C2C2C2C2C2C2C2B2B2B
+2B2B2B2B2B2B2D2D2D2D2D2D2D2D2D2D2D2D2F2F2F2F2F2F2F2F2F2F2F2F2F2F2F2F2F2F313131
+3131313131313131313131313131313535353535353535353535353737373737373737373B3B3B
+3B3B3B3B3B3B363636363636363636313131313131313131313131323232323232323232363636
+3636363636363C3C3C3C3C3C3C3C3C4545454545454545454D4D4D4D4D4D4D4D4D4D4D4D525252
+5252525252525D5D5D5D5D5D5D5D5D939393939393939393E7E7E7E7E7E7E7E7E7FEFEFEFEFEFE
+FEFEFEFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9F9F9F9F9F9F9F9F9BFBFBFBFBFBF
+BFBFBFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFEFEFEFEFEFE
+E5E5E5E5E5E5E5E5E5969696969696969696565656565656565656565656444444444444444444
+4040404040404040403B3B3B3B3B3B3B3B3B3939393939393939393A3A3A3A3A3A3A3A3A3A3A3A
+3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A363636363636363636363636
+343434343434343434313131313131313131303030303030303030323232323232323232313131
+3131313131313131312D2D2D2D2D2D2D2D2D292929292929292929282828282828282828272727
+2727272727272828282828282828282828282C2C2C2C2C2C2C2C2C303030303030303030323232
+323232323232323232323232323232323232303030303030303030313131313131313131303030
+3030303030302C2C2C2C2C2C2C2C2C2B2B2B2B2B2B2B2B2B2B2B2B2D2D2D2D2D2D2D2D2D323232
+3232323232323939393939393939393E3E3E3E3E3E3E3E3E3B3B3B3B3B3B3B3B3B3B3B3B373737
+3737373737373636363636363636363434343434343434343030303030303030303030302B2B2B
+2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2C2C2C2C2C2C2C2C2C2B2B2B2B2B2B2B2B2B2D2D2D2D2D2D
+2D2D2D2D2D2D2F2F2F2F2F2F2F2F2F2F2F2F2F2F2F2F2F2F313131313131313131313131313131
+3131313535353535353535353535353737373737373737373B3B3B3B3B3B3B3B3B363636363636
+3636363131313131313131313131313232323232323232323636363636363636363C3C3C3C3C3C
+3C3C3C4545454545454545454D4D4D4D4D4D4D4D4D4D4D4D5252525252525252525D5D5D5D5D5D
+5D5D5D939393939393939393E7E7E7E7E7E7E7E7E7FEFEFEFEFEFEFEFEFEFEFEFEFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFF9F9F9F9F9F9F9F9F9BFBFBFBFBFBFBFBFBFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAFAFAFAFAFAFAFAFAC4C4C4C4C4C4C4C4C46F6F6F
+6F6F6F6F6F6F4949494949494949494949494444444444444444444040404040404040403C3C3C
+3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C393939393939393939353535
+3535353535353434343434343434343131313131313131313131313030303030303030302D2D2D
+2D2D2D2D2D2D303030303030303030323232323232323232323232323232323232323232313131
+3131313131313131313131313131312C2C2C2C2C2C2C2C2C282828282828282828292929292929
+2929292929292D2D2D2D2D2D2D2D2D313131313131313131363636363636363636363636363636
+3636363636363232323232323232323131313131313131312F2F2F2F2F2F2F2F2F2F2F2F2F2F2F
+2F2F2F3232323232323232323232323A3A3A3A3A3A3A3A3A3C3C3C3C3C3C3C3C3C3E3E3E3E3E3E
+3E3E3E3C3C3C3C3C3C3C3C3C393939393939393939393939353535353535353535313131313131
+3131313030303030303030303030303030303030303030302F2F2F2F2F2F2F2F2F2C2C2C2C2C2C
+2C2C2C2828282828282828282929292929292929292C2C2C2C2C2C2C2C2C2C2C2C2D2D2D2D2D2D
+2D2D2D2F2F2F2F2F2F2F2F2F2D2D2D2D2D2D2D2D2D2F2F2F2F2F2F2F2F2F313131313131313131
+3131313535353535353535353A3A3A3A3A3A3A3A3A373737373737373737323232323232323232
+323232313131313131313131343434343434343434373737373737373737404040404040404040
+4949494949494949494949495151515151515151515959595959595959596E6E6E6E6E6E6E6E6E
+BDBDBDBDBDBDBDBDBDF8F8F8F8F8F8F8F8F8F8F8F8FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+F9F9F9F9F9F9F9F9F9C9C9C9C9C9C9C9C9C9FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFAFAFAFAFAFAFAFAFAC4C4C4C4C4C4C4C4C46F6F6F6F6F6F6F6F6F494949494949
+4949494949494444444444444444444040404040404040403C3C3C3C3C3C3C3C3C3C3C3C3C3C3C
+3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C393939393939393939353535353535353535343434343434
+3434343131313131313131313131313030303030303030302D2D2D2D2D2D2D2D2D303030303030
+303030323232323232323232323232323232323232323232313131313131313131313131313131
+3131312C2C2C2C2C2C2C2C2C2828282828282828282929292929292929292929292D2D2D2D2D2D
+2D2D2D313131313131313131363636363636363636363636363636363636363636323232323232
+3232323131313131313131312F2F2F2F2F2F2F2F2F2F2F2F2F2F2F2F2F2F323232323232323232
+3232323A3A3A3A3A3A3A3A3A3C3C3C3C3C3C3C3C3C3E3E3E3E3E3E3E3E3E3C3C3C3C3C3C3C3C3C
+393939393939393939393939353535353535353535313131313131313131303030303030303030
+3030303030303030303030302F2F2F2F2F2F2F2F2F2C2C2C2C2C2C2C2C2C282828282828282828
+2929292929292929292C2C2C2C2C2C2C2C2C2C2C2C2D2D2D2D2D2D2D2D2D2F2F2F2F2F2F2F2F2F
+2D2D2D2D2D2D2D2D2D2F2F2F2F2F2F2F2F2F313131313131313131313131353535353535353535
+3A3A3A3A3A3A3A3A3A373737373737373737323232323232323232323232313131313131313131
+343434343434343434373737373737373737404040404040404040494949494949494949494949
+5151515151515151515959595959595959596E6E6E6E6E6E6E6E6EBDBDBDBDBDBDBDBDBDF8F8F8
+F8F8F8F8F8F8F8F8F8FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9F9F9F9F9F9F9F9F9C9C9C9
+C9C9C9C9C9C9FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFEFEFEFEFEFEEDEDEDEDEDED
+EDEDED9D9D9D9D9D9D9D9D9D575757575757575757474747474747474747474747454545454545
+4545453F3F3F3F3F3F3F3F3F3C3C3C3C3C3C3C3C3C393939393939393939373737373737373737
+3737373535353535353535353232323232323232323131313131313131312D2D2D2D2D2D2D2D2D
+2D2D2D2D2D2D2D2D2D2D2D2D2F2F2F2F2F2F2F2F2F303030303030303030323232323232323232
+323232323232323232323232343434343434343434343434343434343434303030303030303030
+2D2D2D2D2D2D2D2D2D2F2F2F2F2F2F2F2F2F2F2F2F303030303030303030313131313131313131
+353535353535353535393939393939393939393939353535353535353535313131313131313131
+2F2F2F2F2F2F2F2F2F3030303030303030303535353535353535353535353E3E3E3E3E3E3E3E3E
+4141414141414141414040404040404040403C3C3C3C3C3C3C3C3C373737373737373737373737
+3535353535353535353434343434343434343030303030303030302D2D2D2D2D2D2D2D2D2D2D2D
+2C2C2C2C2C2C2C2C2C2B2B2B2B2B2B2B2B2B282828282828282828272727272727272727292929
+2929292929292929292B2B2B2B2B2B2B2B2B2F2F2F2F2F2F2F2F2F2D2D2D2D2D2D2D2D2D2D2D2D
+2D2D2D2D2D2D303030303030303030303030353535353535353535393939393939393939393939
+393939393939343434343434343434343434323232323232323232353535353535353535373737
+3737373737373B3B3B3B3B3B3B3B3B4242424242424242424242424D4D4D4D4D4D4D4D4D555555
+555555555555616161616161616161939393939393939393E5E5E5E5E5E5E5E5E5E5E5E5FEFEFE
+FEFEFEFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8F8F8F8F8F8F8F8F8B9B9B9B9B9B9B9B9B9FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFEFEFEFEFEFEEDEDEDEDEDEDEDEDED9D9D9D9D9D9D9D9D9D
+5757575757575757574747474747474747474747474545454545454545453F3F3F3F3F3F3F3F3F
+3C3C3C3C3C3C3C3C3C393939393939393939373737373737373737373737353535353535353535
+3232323232323232323131313131313131312D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D
+2F2F2F2F2F2F2F2F2F303030303030303030323232323232323232323232323232323232323232
+3434343434343434343434343434343434343030303030303030302D2D2D2D2D2D2D2D2D2F2F2F
+2F2F2F2F2F2F2F2F2F303030303030303030313131313131313131353535353535353535393939
+3939393939393939393535353535353535353131313131313131312F2F2F2F2F2F2F2F2F303030
+3030303030303535353535353535353535353E3E3E3E3E3E3E3E3E414141414141414141404040
+4040404040403C3C3C3C3C3C3C3C3C373737373737373737373737353535353535353535343434
+3434343434343030303030303030302D2D2D2D2D2D2D2D2D2D2D2D2C2C2C2C2C2C2C2C2C2B2B2B
+2B2B2B2B2B2B2828282828282828282727272727272727272929292929292929292929292B2B2B
+2B2B2B2B2B2B2F2F2F2F2F2F2F2F2F2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D303030303030
+303030303030353535353535353535393939393939393939393939393939393939343434343434
+3434343434343232323232323232323535353535353535353737373737373737373B3B3B3B3B3B
+3B3B3B4242424242424242424242424D4D4D4D4D4D4D4D4D555555555555555555616161616161
+616161939393939393939393E5E5E5E5E5E5E5E5E5E5E5E5FEFEFEFEFEFEFEFEFEFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFF8F8F8F8F8F8F8F8F8B9B9B9B9B9B9B9B9B9FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FEFEFEFEFEFEFEFEFEEDEDEDEDEDEDEDEDED9D9D9D9D9D9D9D9D9D575757575757575757474747
+4747474747474747474545454545454545453F3F3F3F3F3F3F3F3F3C3C3C3C3C3C3C3C3C393939
+393939393939373737373737373737373737353535353535353535323232323232323232313131
+3131313131312D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2F2F2F2F2F2F2F2F2F303030
+303030303030323232323232323232323232323232323232323232343434343434343434343434
+3434343434343030303030303030302D2D2D2D2D2D2D2D2D2F2F2F2F2F2F2F2F2F2F2F2F303030
+303030303030313131313131313131353535353535353535393939393939393939393939353535
+3535353535353131313131313131312F2F2F2F2F2F2F2F2F303030303030303030353535353535
+3535353535353E3E3E3E3E3E3E3E3E4141414141414141414040404040404040403C3C3C3C3C3C
+3C3C3C373737373737373737373737353535353535353535343434343434343434303030303030
+3030302D2D2D2D2D2D2D2D2D2D2D2D2C2C2C2C2C2C2C2C2C2B2B2B2B2B2B2B2B2B282828282828
+2828282727272727272727272929292929292929292929292B2B2B2B2B2B2B2B2B2F2F2F2F2F2F
+2F2F2F2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D303030303030303030303030353535353535
+353535393939393939393939393939393939393939343434343434343434343434323232323232
+3232323535353535353535353737373737373737373B3B3B3B3B3B3B3B3B424242424242424242
+4242424D4D4D4D4D4D4D4D4D555555555555555555616161616161616161939393939393939393
+E5E5E5E5E5E5E5E5E5E5E5E5FEFEFEFEFEFEFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8F8F8F8F8F8F8F8F8
+B9B9B9B9B9B9B9B9B9FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAFAFAFAFAFAFAFAFACACACA
+CACACACACACA7575757575757575754C4C4C4C4C4C4C4C4C464646464646464646464646404040
+4040404040403939393939393939393535353535353535353030303030303030302D2D2D2D2D2D
+2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2F2F2F2F2F2F2F2F2F3030303030303030302F2F2F2F2F2F
+2F2F2F2F2F2F2F2F2F2F2F2F2F2F2F313131313131313131343434343434343434353535353535
+353535323232323232323232323232323232323232323232313131313131313131303030303030
+3030303030303030303030303030303030303030303030302D2D2D2D2D2D2D2D2D2B2B2B2B2B2B
+2B2B2B2D2D2D2D2D2D2D2D2D323232323232323232323232323232323232323232303030303030
+3030302F2F2F2F2F2F2F2F2F2C2C2C2C2C2C2C2C2C2F2F2F2F2F2F2F2F2F2F2F2F353535353535
+3535353A3A3A3A3A3A3A3A3A373737373737373737343434343434343434303030303030303030
+3030302F2F2F2F2F2F2F2F2F2F2F2F2F2F2F2F2F2F2D2D2D2D2D2D2D2D2D2B2B2B2B2B2B2B2B2B
+2B2B2B2B2B2B2B2B2B2B2B2B292929292929292929272727272727272727252525252525252525
+2727272727272727272727272B2B2B2B2B2B2B2B2B2D2D2D2D2D2D2D2D2D2F2F2F2F2F2F2F2F2F
+2F2F2F2F2F2F2F2F2F2D2D2D2D2D2D2D2D2D2D2D2D323232323232323232373737373737373737
+3A3A3A3A3A3A3A3A3A373737373737373737373737323232323232323232323232323232323232
+3535353535353535353939393939393939393E3E3E3E3E3E3E3E3E3E3E3E474747474747474747
+4C4C4C4C4C4C4C4C4C585858585858585858737373737373737373C3C3C3C3C3C3C3C3C3C3C3C3
+F9F9F9F9F9F9F9F9F9FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9F9F9F9F9F9F9F9F9C3C3C3C3C3C3C3C3C3FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAFAFAFAFAFAFAFAFACACACACACACACACACA757575757575
+7575754C4C4C4C4C4C4C4C4C464646464646464646464646404040404040404040393939393939
+3939393535353535353535353030303030303030302D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D
+2D2D2D2F2F2F2F2F2F2F2F2F3030303030303030302F2F2F2F2F2F2F2F2F2F2F2F2F2F2F2F2F2F
+2F2F2F313131313131313131343434343434343434353535353535353535323232323232323232
+323232323232323232323232313131313131313131303030303030303030303030303030303030
+3030303030303030303030302D2D2D2D2D2D2D2D2D2B2B2B2B2B2B2B2B2B2D2D2D2D2D2D2D2D2D
+3232323232323232323232323232323232323232323030303030303030302F2F2F2F2F2F2F2F2F
+2C2C2C2C2C2C2C2C2C2F2F2F2F2F2F2F2F2F2F2F2F3535353535353535353A3A3A3A3A3A3A3A3A
+3737373737373737373434343434343434343030303030303030303030302F2F2F2F2F2F2F2F2F
+2F2F2F2F2F2F2F2F2F2D2D2D2D2D2D2D2D2D2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B
+292929292929292929272727272727272727252525252525252525272727272727272727272727
+2B2B2B2B2B2B2B2B2B2D2D2D2D2D2D2D2D2D2F2F2F2F2F2F2F2F2F2F2F2F2F2F2F2F2F2F2D2D2D
+2D2D2D2D2D2D2D2D2D3232323232323232323737373737373737373A3A3A3A3A3A3A3A3A373737
+373737373737373737323232323232323232323232323232323232353535353535353535393939
+3939393939393E3E3E3E3E3E3E3E3E3E3E3E4747474747474747474C4C4C4C4C4C4C4C4C585858
+585858585858737373737373737373C3C3C3C3C3C3C3C3C3C3C3C3F9F9F9F9F9F9F9F9F9FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFF9F9F9F9F9F9F9F9F9C3C3C3C3C3C3C3C3C3FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFAFAFAFAFAFAFAFAFACACACACACACACACACA7575757575757575754C4C4C4C4C4C4C4C4C
+464646464646464646464646404040404040404040393939393939393939353535353535353535
+3030303030303030302D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2F2F2F2F2F2F2F2F2F
+3030303030303030302F2F2F2F2F2F2F2F2F2F2F2F2F2F2F2F2F2F2F2F2F313131313131313131
+343434343434343434353535353535353535323232323232323232323232323232323232323232
+313131313131313131303030303030303030303030303030303030303030303030303030303030
+2D2D2D2D2D2D2D2D2D2B2B2B2B2B2B2B2B2B2D2D2D2D2D2D2D2D2D323232323232323232323232
+3232323232323232323030303030303030302F2F2F2F2F2F2F2F2F2C2C2C2C2C2C2C2C2C2F2F2F
+2F2F2F2F2F2F2F2F2F3535353535353535353A3A3A3A3A3A3A3A3A373737373737373737343434
+3434343434343030303030303030303030302F2F2F2F2F2F2F2F2F2F2F2F2F2F2F2F2F2F2D2D2D
+2D2D2D2D2D2D2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B292929292929292929272727
+2727272727272525252525252525252727272727272727272727272B2B2B2B2B2B2B2B2B2D2D2D
+2D2D2D2D2D2D2F2F2F2F2F2F2F2F2F2F2F2F2F2F2F2F2F2F2D2D2D2D2D2D2D2D2D2D2D2D323232
+3232323232323737373737373737373A3A3A3A3A3A3A3A3A373737373737373737373737323232
+3232323232323232323232323232323535353535353535353939393939393939393E3E3E3E3E3E
+3E3E3E3E3E3E4747474747474747474C4C4C4C4C4C4C4C4C585858585858585858737373737373
+737373C3C3C3C3C3C3C3C3C3C3C3C3F9F9F9F9F9F9F9F9F9FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9F9F9F9F9F9
+F9F9F9C3C3C3C3C3C3C3C3C3FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFEFEFEFEFEFEFEFEFEEDEDEDEDEDEDEDEDED
+A3A3A3A3A3A3A3A3A35C5C5C5C5C5C5C5C5C474747474747474747414141414141414141414141
+3939393939393939393131313131313131312F2F2F2F2F2F2F2F2F2C2C2C2C2C2C2C2C2C2B2B2B
+2B2B2B2B2B2B2B2B2B2C2C2C2C2C2C2C2C2C2F2F2F2F2F2F2F2F2F323232323232323232303030
+303030303030303030303030303030303030313131313131313131393939393939393939393939
+393939393939343434343434343434343434323232323232323232313131313131313131303030
+3030303030303131313131313131313232323232323232323232322F2F2F2F2F2F2F2F2F2D2D2D
+2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2C2C2C2C2C2C2C2C2C2C2C2C2D2D2D2D2D2D2D2D2D2F2F2F
+2F2F2F2F2F2F2F2F2F2F2F2F2F2F2F2D2D2D2D2D2D2D2D2D2F2F2F2F2F2F2F2F2F2F2F2F303030
+3030303030303232323232323232323636363636363636363A3A3A3A3A3A3A3A3A3C3C3C3C3C3C
+3C3C3C3C3C3C3737373737373737373232323232323232322D2D2D2D2D2D2D2D2D292929292929
+292929292929292929292929292929282828282828282828272727272727272727252525252525
+2525252828282828282828282828282B2B2B2B2B2B2B2B2B2F2F2F2F2F2F2F2F2F303030303030
+3030303030303030303030302F2F2F2F2F2F2F2F2F2F2F2F303030303030303030323232323232
+323232363636363636363636373737373737373737373737343434343434343434313131313131
+3131313434343434343434343939393939393939393C3C3C3C3C3C3C3C3C3C3C3C414141414141
+414141474747474747474747505050505050505050616161616161616161989898989898989898
+989898E9E9E9E9E9E9E9E9E9FEFEFEFEFEFEFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAFAFAFAFAFAFAFAFAD2D2D2D2D2D2D2D2D2
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFEFEFEFEFEFEFEFEFEFEFEFEEDEDEDEDEDEDEDEDEDA3A3A3A3A3A3A3A3A35C5C5C
+5C5C5C5C5C5C474747474747474747414141414141414141414141393939393939393939313131
+3131313131312F2F2F2F2F2F2F2F2F2C2C2C2C2C2C2C2C2C2B2B2B2B2B2B2B2B2B2B2B2B2C2C2C
+2C2C2C2C2C2C2F2F2F2F2F2F2F2F2F323232323232323232303030303030303030303030303030
+303030303030313131313131313131393939393939393939393939393939393939343434343434
+343434343434323232323232323232313131313131313131303030303030303030313131313131
+3131313232323232323232323232322F2F2F2F2F2F2F2F2F2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D
+2D2D2D2C2C2C2C2C2C2C2C2C2C2C2C2D2D2D2D2D2D2D2D2D2F2F2F2F2F2F2F2F2F2F2F2F2F2F2F
+2F2F2F2D2D2D2D2D2D2D2D2D2F2F2F2F2F2F2F2F2F2F2F2F303030303030303030323232323232
+3232323636363636363636363A3A3A3A3A3A3A3A3A3C3C3C3C3C3C3C3C3C3C3C3C373737373737
+3737373232323232323232322D2D2D2D2D2D2D2D2D292929292929292929292929292929292929
+292929282828282828282828272727272727272727252525252525252525282828282828282828
+2828282B2B2B2B2B2B2B2B2B2F2F2F2F2F2F2F2F2F303030303030303030303030303030303030
+2F2F2F2F2F2F2F2F2F2F2F2F303030303030303030323232323232323232363636363636363636
+373737373737373737373737343434343434343434313131313131313131343434343434343434
+3939393939393939393C3C3C3C3C3C3C3C3C3C3C3C414141414141414141474747474747474747
+505050505050505050616161616161616161989898989898989898989898E9E9E9E9E9E9E9E9E9
+FEFEFEFEFEFEFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFAFAFAFAFAFAFAFAFAD2D2D2D2D2D2D2D2D2FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDFDFDFD
+FDFDFDFDFDFDDCDCDCDCDCDCDCDCDC8282828282828282824E4E4E4E4E4E4E4E4E404040404040
+4040403737373737373737373737373030303030303030302D2D2D2D2D2D2D2D2D2D2D2D2D2D2D
+2D2D2D2D2D2D2D2D2D2D2D2D2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2C2C2C2C2C2C
+2C2C2C2F2F2F2F2F2F2F2F2F2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2C2C2C2C2C2C
+2C2C2C303030303030303030323232323232323232323232323232323232323232323232323232
+323232323232323232323232313131313131313131323232323232323232313131313131313131
+3131312F2F2F2F2F2F2F2F2F2D2D2D2D2D2D2D2D2D2C2C2C2C2C2C2C2C2C282828282828282828
+2828282C2C2C2C2C2C2C2C2C2D2D2D2D2D2D2D2D2D2C2C2C2C2C2C2C2C2C2B2B2B2B2B2B2B2B2B
+2929292929292929292929292B2B2B2B2B2B2B2B2B2D2D2D2D2D2D2D2D2D313131313131313131
+3A3A3A3A3A3A3A3A3A4141414141414141414141414242424242424242423C3C3C3C3C3C3C3C3C
+3636363636363636363131313131313131313131312D2D2D2D2D2D2D2D2D292929292929292929
+2727272727272727272828282828282828282B2B2B2B2B2B2B2B2B2B2B2B303030303030303030
+353535353535353535373737373737373737363636363636363636363636363636363636363636
+343434343434343434313131313131313131323232323232323232343434343434343434343434
+3535353535353535353131313131313131313232323232323232323636363636363636363E3E3E
+3E3E3E3E3E3E3E3E3E414141414141414141424242424242424242494949494949494949565656
+565656565656767676767676767676767676CACACACACACACACACAFAFAFAFAFAFAFAFAFAFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCFCFC
+FCFCFCFCFCFCE4E4E4E4E4E4E4E4E4FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDFDFDFDFDFDFDFDFDFDDCDCDCDCDCDC
+DCDCDC8282828282828282824E4E4E4E4E4E4E4E4E404040404040404040373737373737373737
+3737373030303030303030302D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D
+2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2C2C2C2C2C2C2C2C2C2F2F2F2F2F2F2F2F2F
+2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2C2C2C2C2C2C2C2C2C303030303030303030
+323232323232323232323232323232323232323232323232323232323232323232323232323232
+3131313131313131313232323232323232323131313131313131313131312F2F2F2F2F2F2F2F2F
+2D2D2D2D2D2D2D2D2D2C2C2C2C2C2C2C2C2C2828282828282828282828282C2C2C2C2C2C2C2C2C
+2D2D2D2D2D2D2D2D2D2C2C2C2C2C2C2C2C2C2B2B2B2B2B2B2B2B2B292929292929292929292929
+2B2B2B2B2B2B2B2B2B2D2D2D2D2D2D2D2D2D3131313131313131313A3A3A3A3A3A3A3A3A414141
+4141414141414141414242424242424242423C3C3C3C3C3C3C3C3C363636363636363636313131
+3131313131313131312D2D2D2D2D2D2D2D2D292929292929292929272727272727272727282828
+2828282828282B2B2B2B2B2B2B2B2B2B2B2B303030303030303030353535353535353535373737
+373737373737363636363636363636363636363636363636363636343434343434343434313131
+313131313131323232323232323232343434343434343434343434353535353535353535313131
+3131313131313232323232323232323636363636363636363E3E3E3E3E3E3E3E3E3E3E3E414141
+414141414141424242424242424242494949494949494949565656565656565656767676767676
+767676767676CACACACACACACACACAFAFAFAFAFAFAFAFAFAFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCFCFCFCFCFCFCFCFCE4E4E4E4E4E4
+E4E4E4FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFDFDFDFDFDFDFDFDFDFDFDFDDCDCDCDCDCDCDCDCDC828282828282828282
+4E4E4E4E4E4E4E4E4E404040404040404040373737373737373737373737303030303030303030
+2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2B2B2B2B2B2B2B2B2B2B2B2B
+2B2B2B2B2B2B2B2B2B2C2C2C2C2C2C2C2C2C2F2F2F2F2F2F2F2F2F2D2D2D2D2D2D2D2D2D2D2D2D
+2D2D2D2D2D2D2D2D2D2C2C2C2C2C2C2C2C2C303030303030303030323232323232323232323232
+323232323232323232323232323232323232323232323232323232313131313131313131323232
+3232323232323131313131313131313131312F2F2F2F2F2F2F2F2F2D2D2D2D2D2D2D2D2D2C2C2C
+2C2C2C2C2C2C2828282828282828282828282C2C2C2C2C2C2C2C2C2D2D2D2D2D2D2D2D2D2C2C2C
+2C2C2C2C2C2C2B2B2B2B2B2B2B2B2B2929292929292929292929292B2B2B2B2B2B2B2B2B2D2D2D
+2D2D2D2D2D2D3131313131313131313A3A3A3A3A3A3A3A3A414141414141414141414141424242
+4242424242423C3C3C3C3C3C3C3C3C3636363636363636363131313131313131313131312D2D2D
+2D2D2D2D2D2D2929292929292929292727272727272727272828282828282828282B2B2B2B2B2B
+2B2B2B2B2B2B303030303030303030353535353535353535373737373737373737363636363636
+363636363636363636363636363636343434343434343434313131313131313131323232323232
+323232343434343434343434343434353535353535353535313131313131313131323232323232
+3232323636363636363636363E3E3E3E3E3E3E3E3E3E3E3E414141414141414141424242424242
+424242494949494949494949565656565656565656767676767676767676767676CACACACACACA
+CACACAFAFAFAFAFAFAFAFAFAFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFCFCFCFCFCFCFCFCFCE4E4E4E4E4E4E4E4E4FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFEFEFEFEFEFEF9F9F9
+F9F9F9F9F9F9F9F9F9BFBFBFBFBFBFBFBFBF686868686868686868424242424242424242373737
+3737373737373030303030303030303030302D2D2D2D2D2D2D2D2D2C2C2C2C2C2C2C2C2C2C2C2C
+2C2C2C2C2C2C2929292929292929292828282828282828282828282929292929292929292B2B2B
+2B2B2B2B2B2B2D2D2D2D2D2D2D2D2D2F2F2F2F2F2F2F2F2F2F2F2F2D2D2D2D2D2D2D2D2D292929
+2929292929292727272727272727272B2B2B2B2B2B2B2B2B2F2F2F2F2F2F2F2F2F2F2F2F303030
+3030303030303131313131313131313131313131313131313232323232323232322F2F2F2F2F2F
+2F2F2F2F2F2F292929292929292929272727272727272727272727272727272727282828282828
+2828282828283131313131313131313535353535353535353434343434343434342D2D2D2D2D2D
+2D2D2D2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2D2D2D2D2D2D2D2D2D323232323232
+3232323434343434343434343737373737373737373737373C3C3C3C3C3C3C3C3C3B3B3B3B3B3B
+3B3B3B3737373737373737373434343434343434343434342F2F2F2F2F2F2F2F2F2C2C2C2C2C2C
+2C2C2C2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B303030303030303030303030373737373737
+373737404040404040404040464646464646464646464646464646464646444444444444444444
+4444443F3F3F3F3F3F3F3F3F3535353535353535353030303030303030302D2D2D2D2D2D2D2D2D
+2D2D2D303030303030303030323232323232323232323232323232323232323232323232323232
+373737373737373737373737404040404040404040444444444444444444464646464646464646
+4F4F4F4F4F4F4F4F4F626262626262626262626262A0A0A0A0A0A0A0A0A0EDEDEDEDEDEDEDEDED
+FEFEFEFEFEFEFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FBFBFBFBFBFBFBFBFBD9D9D9D9D9D9D9D9D9FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFEFEFEFEFEFEF9F9F9F9F9F9F9F9F9F9F9F9BFBFBF
+BFBFBFBFBFBF686868686868686868424242424242424242373737373737373737303030303030
+3030303030302D2D2D2D2D2D2D2D2D2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C292929292929
+2929292828282828282828282828282929292929292929292B2B2B2B2B2B2B2B2B2D2D2D2D2D2D
+2D2D2D2F2F2F2F2F2F2F2F2F2F2F2F2D2D2D2D2D2D2D2D2D292929292929292929272727272727
+2727272B2B2B2B2B2B2B2B2B2F2F2F2F2F2F2F2F2F2F2F2F303030303030303030313131313131
+3131313131313131313131313232323232323232322F2F2F2F2F2F2F2F2F2F2F2F292929292929
+292929272727272727272727272727272727272727282828282828282828282828313131313131
+3131313535353535353535353434343434343434342D2D2D2D2D2D2D2D2D2B2B2B2B2B2B2B2B2B
+2B2B2B2B2B2B2B2B2B2B2B2B2D2D2D2D2D2D2D2D2D323232323232323232343434343434343434
+3737373737373737373737373C3C3C3C3C3C3C3C3C3B3B3B3B3B3B3B3B3B373737373737373737
+3434343434343434343434342F2F2F2F2F2F2F2F2F2C2C2C2C2C2C2C2C2C2B2B2B2B2B2B2B2B2B
+2B2B2B2B2B2B2B2B2B303030303030303030303030373737373737373737404040404040404040
+4646464646464646464646464646464646464444444444444444444444443F3F3F3F3F3F3F3F3F
+3535353535353535353030303030303030302D2D2D2D2D2D2D2D2D2D2D2D303030303030303030
+323232323232323232323232323232323232323232323232323232373737373737373737373737
+4040404040404040404444444444444444444646464646464646464F4F4F4F4F4F4F4F4F626262
+626262626262626262A0A0A0A0A0A0A0A0A0EDEDEDEDEDEDEDEDEDFEFEFEFEFEFEFEFEFEFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBFBFBFBFBFBFBFBFBD9D9D9
+D9D9D9D9D9D9FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFEFEFEFEFEFEFEFEFEE8E9E8E8E9E8E8E9E8E8E9E8979797979797979797505050505050
+5050503B3B3B3B3B3B3B3B3B3434343434343434342F2F2F2F2F2F2F2F2F2F2F2F2D2D2D2D2D2D
+2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2C2C2C2C2C2C2C2C2C
+2C2C2C2C2C2C2C2C2C2C2C2C2F2F2F2F2F2F2F2F2F323232323232323232323232323232323232
+3232322F2F2F2F2F2F2F2F2F2B2B2B2B2B2B2B2B2B2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C
+2C2C2C2C2C2C2C2C2C2C2C2C2B2B2B2B2B2B2B2B2B2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C
+2F2F2F2F2F2F2F2F2F3030303030303030303030302D2D2D2D2D2D2D2D2D2B2B2B2B2B2B2B2B2B
+2C2C2C2C2C2C2C2C2C2F2F2F2F2F2F2F2F2F2F2F2F3535353535353535353A3A3A3A3A3A3A3A3A
+3F3F3F3F3F3F3F3F3F3E3E3E3E3E3E3E3E3E393939393939393939393939393939393939393939
+3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3939393939393939393A3A3A3A3A3A3A3A3A3A3A3A
+3B3B3B3B3B3B3B3B3B3A3A3A3A3A3A3A3A3A363636363636363636343434343434343434343434
+3131313131313131313131313131313131313030303030303030303232323232323232323C3C3C
+3C3C3C3C3C3C3C3C3C4B4B4B4B4B4B4B4B4B565656565656565656616161616161616161636363
+6363636363635D5D5D5D5D5D5D5D5D5D5D5D565656565656565656454545454545454545363636
+3636363636362F2F2F2F2F2F2F2F2F2F2F2F2C2C2C2C2C2C2C2C2C2F2F2F2F2F2F2F2F2F353535
+3535353535353434343434343434343636363636363636363636363B3B3B3B3B3B3B3B3B414141
+4141414141414646464646464646464B4B4B4B4B4B4B4B4B545454545454545454545454777777
+777777777777CECECECECECECECECEFAFAFAFAFAFAFAFAFAFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9F9F9F9F9F9F9F9F9C9C9C9C9C9C9C9C9C9FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFEFEFEFEFEFE
+E8E9E8E8E9E8E8E9E8E8E9E89797979797979797975050505050505050503B3B3B3B3B3B3B3B3B
+3434343434343434342F2F2F2F2F2F2F2F2F2F2F2F2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D
+2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C
+2F2F2F2F2F2F2F2F2F3232323232323232323232323232323232323232322F2F2F2F2F2F2F2F2F
+2B2B2B2B2B2B2B2B2B2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C
+2B2B2B2B2B2B2B2B2B2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2F2F2F2F2F2F2F2F2F303030
+3030303030303030302D2D2D2D2D2D2D2D2D2B2B2B2B2B2B2B2B2B2C2C2C2C2C2C2C2C2C2F2F2F
+2F2F2F2F2F2F2F2F2F3535353535353535353A3A3A3A3A3A3A3A3A3F3F3F3F3F3F3F3F3F3E3E3E
+3E3E3E3E3E3E3939393939393939393939393939393939393939393A3A3A3A3A3A3A3A3A3A3A3A
+3A3A3A3A3A3A3939393939393939393A3A3A3A3A3A3A3A3A3A3A3A3B3B3B3B3B3B3B3B3B3A3A3A
+3A3A3A3A3A3A363636363636363636343434343434343434343434313131313131313131313131
+3131313131313030303030303030303232323232323232323C3C3C3C3C3C3C3C3C3C3C3C4B4B4B
+4B4B4B4B4B4B5656565656565656566161616161616161616363636363636363635D5D5D5D5D5D
+5D5D5D5D5D5D5656565656565656564545454545454545453636363636363636362F2F2F2F2F2F
+2F2F2F2F2F2F2C2C2C2C2C2C2C2C2C2F2F2F2F2F2F2F2F2F353535353535353535343434343434
+3434343636363636363636363636363B3B3B3B3B3B3B3B3B414141414141414141464646464646
+4646464B4B4B4B4B4B4B4B4B545454545454545454545454777777777777777777CECECECECECE
+CECECEFAFAFAFAFAFAFAFAFAFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFF9F9F9F9F9F9F9F9F9C9C9C9C9C9C9C9C9C9FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFEFEFEFEFEFEE8E9E8E8E9E8E8E9E8E8E9E8
+9797979797979797975050505050505050503B3B3B3B3B3B3B3B3B3434343434343434342F2F2F
+2F2F2F2F2F2F2F2F2F2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D
+2D2D2D2D2D2D2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2F2F2F2F2F2F2F2F2F323232
+3232323232323232323232323232323232322F2F2F2F2F2F2F2F2F2B2B2B2B2B2B2B2B2B2C2C2C
+2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2B2B2B2B2B2B2B2B2B2C2C2C
+2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2F2F2F2F2F2F2F2F2F3030303030303030303030302D2D2D
+2D2D2D2D2D2D2B2B2B2B2B2B2B2B2B2C2C2C2C2C2C2C2C2C2F2F2F2F2F2F2F2F2F2F2F2F353535
+3535353535353A3A3A3A3A3A3A3A3A3F3F3F3F3F3F3F3F3F3E3E3E3E3E3E3E3E3E393939393939
+3939393939393939393939393939393A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A393939393939
+3939393A3A3A3A3A3A3A3A3A3A3A3A3B3B3B3B3B3B3B3B3B3A3A3A3A3A3A3A3A3A363636363636
+363636343434343434343434343434313131313131313131313131313131313131303030303030
+3030303232323232323232323C3C3C3C3C3C3C3C3C3C3C3C4B4B4B4B4B4B4B4B4B565656565656
+5656566161616161616161616363636363636363635D5D5D5D5D5D5D5D5D5D5D5D565656565656
+5656564545454545454545453636363636363636362F2F2F2F2F2F2F2F2F2F2F2F2C2C2C2C2C2C
+2C2C2C2F2F2F2F2F2F2F2F2F353535353535353535343434343434343434363636363636363636
+3636363B3B3B3B3B3B3B3B3B4141414141414141414646464646464646464B4B4B4B4B4B4B4B4B
+545454545454545454545454777777777777777777CECECECECECECECECEFAFAFAFAFAFAFAFAFA
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9F9F9F9F9F9F9F9F9
+C9C9C9C9C9C9C9C9C9FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFF8F8F8F8F8F8F8F8F8C3C3C3C3C3C3C3C3C3C3C3C36C6C6C6C6C6C6C6C6C3F3F3F
+3F3F3F3F3F3F3535353535353535353131313131313131312F2F2F2F2F2F2F2F2F2F2F2F303030
+3030303030303030303030303030303131313131313131313030303030303030302C2C2C2C2C2C
+2C2C2C2C2C2C2F2F2F2F2F2F2F2F2F3232323232323232323232323232323232322D2D2D2D2D2D
+2D2D2D2D2D2D2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2F2F2F2F2F2F2F2F2F2D2D2D2D2D2D
+2D2D2D2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C
+2C2C2C2F2F2F2F2F2F2F2F2F323232323232323232323232353535353535353535343434343434
+343434343434343434343434303030303030303030303030323232323232323232363636363636
+3636363E3E3E3E3E3E3E3E3E444444444444444444404040404040404040404040404040404040
+4040404141414141414141413F3F3F3F3F3F3F3F3F3B3B3B3B3B3B3B3B3B393939393939393939
+393939363636363636363636343434343434343434313131313131313131303030303030303030
+303030313131313131313131313131313131313131363636363636363636404040404040404040
+5151515151515151515151516A6A6A6A6A6A6A6A6A777777777777777777818181818181818181
+8787878787878787877C7C7C7C7C7C7C7C7C7C7C7C6E6E6E6E6E6E6E6E6E5A5A5A5A5A5A5A5A5A
+4141414141414141413232323232323232323232322C2C2C2C2C2C2C2C2C2D2D2D2D2D2D2D2D2D
+3434343434343434343535353535353535353636363636363636363636363A3A3A3A3A3A3A3A3A
+3F3F3F3F3F3F3F3F3F4646464646464646464C4C4C4C4C4C4C4C4C505050505050505050505050
+5D5D5D5D5D5D5D5D5D9D9D9D9D9D9D9D9D9DEDEDEDEDEDEDEDEDEDFEFEFEFEFEFEFEFEFEFEFEFE
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDFDFDFDFDFDFDEDEDEDEDEDEDEDEDEDFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8F8F8F8F8F8
+F8F8F8C3C3C3C3C3C3C3C3C3C3C3C36C6C6C6C6C6C6C6C6C3F3F3F3F3F3F3F3F3F353535353535
+3535353131313131313131312F2F2F2F2F2F2F2F2F2F2F2F303030303030303030303030303030
+3030303131313131313131313030303030303030302C2C2C2C2C2C2C2C2C2C2C2C2F2F2F2F2F2F
+2F2F2F3232323232323232323232323232323232322D2D2D2D2D2D2D2D2D2D2D2D2C2C2C2C2C2C
+2C2C2C2C2C2C2C2C2C2C2C2C2F2F2F2F2F2F2F2F2F2D2D2D2D2D2D2D2D2D2B2B2B2B2B2B2B2B2B
+2B2B2B2B2B2B2B2B2B2B2B2B2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2F2F2F2F2F2F2F2F2F
+323232323232323232323232353535353535353535343434343434343434343434343434343434
+3030303030303030303030303232323232323232323636363636363636363E3E3E3E3E3E3E3E3E
+444444444444444444404040404040404040404040404040404040404040414141414141414141
+3F3F3F3F3F3F3F3F3F3B3B3B3B3B3B3B3B3B393939393939393939393939363636363636363636
+343434343434343434313131313131313131303030303030303030303030313131313131313131
+313131313131313131363636363636363636404040404040404040515151515151515151515151
+6A6A6A6A6A6A6A6A6A7777777777777777778181818181818181818787878787878787877C7C7C
+7C7C7C7C7C7C7C7C7C6E6E6E6E6E6E6E6E6E5A5A5A5A5A5A5A5A5A414141414141414141323232
+3232323232323232322C2C2C2C2C2C2C2C2C2D2D2D2D2D2D2D2D2D343434343434343434353535
+3535353535353636363636363636363636363A3A3A3A3A3A3A3A3A3F3F3F3F3F3F3F3F3F464646
+4646464646464C4C4C4C4C4C4C4C4C5050505050505050505050505D5D5D5D5D5D5D5D5D9D9D9D
+9D9D9D9D9D9DEDEDEDEDEDEDEDEDEDFEFEFEFEFEFEFEFEFEFEFEFEFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFDFDFDFDFDFDFDFDFDEDEDEDEDEDEDEDEDEDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFEFEFEFEFEFEE7E7E7E7E7E7E7E7E7969696969696969696
+9696964D4D4D4D4D4D4D4D4D353535353535353535303030303030303030313131313131313131
+313131313131313131313131313131313131313131313131313131313131313131313131313131
+3030303030303030302F2F2F2F2F2F2F2F2F2F2F2F313131313131313131323232323232323232
+3030303030303030302B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2C2C2C2C2C2C2C2C2C
+2F2F2F2F2F2F2F2F2F2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2C2C2C2C2C2C2C2C2C
+2D2D2D2D2D2D2D2D2D2C2C2C2C2C2C2C2C2C2D2D2D2D2D2D2D2D2D313131313131313131313131
+353535353535353535363636363636363636343434343434343434303030303030303030303030
+2F2F2F2F2F2F2F2F2F2F2F2F2F2F2F2F2F2F343434343434343434373737373737373737373737
+3737373737373737373A3A3A3A3A3A3A3A3A3E3E3E3E3E3E3E3E3E3A3A3A3A3A3A3A3A3A353535
+353535353535323232323232323232323232323232323232323232313131313131313131303030
+3030303030302F2F2F2F2F2F2F2F2F2F2F2F303030303030303030363636363636363636454545
+4545454545455959595959595959597575757575757575757575759191919191919191919D9D9D
+9D9D9D9D9D9DA2A2A2A2A2A2A2A2A2A6A6A6A6A6A6A6A6A69C9C9C9C9C9C9C9C9C9C9C9C888888
+8888888888887171717171717171715252525252525252523939393939393939393939392F2F2F
+2F2F2F2F2F2F2C2C2C2C2C2C2C2C2C313131313131313131363636363636363636363636363636
+3636363636363939393939393939393C3C3C3C3C3C3C3C3C424242424242424242474747474747
+4747474F4F4F4F4F4F4F4F4F4F4F4F565656565656565656747474747474747474CFCFCFCFCFCF
+CFCFCFFDFDFDFDFDFDFDFDFDFDFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDFDFDFD
+FDFDFDEDEDEDEDEDEDEDEDEDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FEFEFEFEFEFEFEFEFEE7E7E7E7E7E7E7E7E79696969696969696969696964D4D4D4D4D4D4D4D4D
+353535353535353535303030303030303030313131313131313131313131313131313131313131
+3131313131313131313131313131313131313131313131313131313030303030303030302F2F2F
+2F2F2F2F2F2F2F2F2F3131313131313131313232323232323232323030303030303030302B2B2B
+2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2C2C2C2C2C2C2C2C2C2F2F2F2F2F2F2F2F2F2D2D2D
+2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2C2C2C2C2C2C2C2C2C2D2D2D2D2D2D2D2D2D2C2C2C
+2C2C2C2C2C2C2D2D2D2D2D2D2D2D2D313131313131313131313131353535353535353535363636
+3636363636363434343434343434343030303030303030303030302F2F2F2F2F2F2F2F2F2F2F2F
+2F2F2F2F2F2F3434343434343434343737373737373737373737373737373737373737373A3A3A
+3A3A3A3A3A3A3E3E3E3E3E3E3E3E3E3A3A3A3A3A3A3A3A3A353535353535353535323232323232
+3232323232323232323232323232323131313131313131313030303030303030302F2F2F2F2F2F
+2F2F2F2F2F2F303030303030303030363636363636363636454545454545454545595959595959
+5959597575757575757575757575759191919191919191919D9D9D9D9D9D9D9D9DA2A2A2A2A2A2
+A2A2A2A6A6A6A6A6A6A6A6A69C9C9C9C9C9C9C9C9C9C9C9C888888888888888888717171717171
+7171715252525252525252523939393939393939393939392F2F2F2F2F2F2F2F2F2C2C2C2C2C2C
+2C2C2C313131313131313131363636363636363636363636363636363636363636393939393939
+3939393C3C3C3C3C3C3C3C3C4242424242424242424747474747474747474F4F4F4F4F4F4F4F4F
+4F4F4F565656565656565656747474747474747474CFCFCFCFCFCFCFCFCFFDFDFDFDFDFDFDFDFD
+FDFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDFDFDFDFDFDFDEDEDEDEDEDEDEDEDED
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFEFEFEFEFEFEE7E7E7
+E7E7E7E7E7E79696969696969696969696964D4D4D4D4D4D4D4D4D353535353535353535303030
+303030303030313131313131313131313131313131313131313131313131313131313131313131
+3131313131313131313131313131313030303030303030302F2F2F2F2F2F2F2F2F2F2F2F313131
+3131313131313232323232323232323030303030303030302B2B2B2B2B2B2B2B2B2B2B2B2B2B2B
+2B2B2B2B2B2B2C2C2C2C2C2C2C2C2C2F2F2F2F2F2F2F2F2F2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D
+2D2D2D2D2D2D2C2C2C2C2C2C2C2C2C2D2D2D2D2D2D2D2D2D2C2C2C2C2C2C2C2C2C2D2D2D2D2D2D
+2D2D2D313131313131313131313131353535353535353535363636363636363636343434343434
+3434343030303030303030303030302F2F2F2F2F2F2F2F2F2F2F2F2F2F2F2F2F2F343434343434
+3434343737373737373737373737373737373737373737373A3A3A3A3A3A3A3A3A3E3E3E3E3E3E
+3E3E3E3A3A3A3A3A3A3A3A3A353535353535353535323232323232323232323232323232323232
+3232323131313131313131313030303030303030302F2F2F2F2F2F2F2F2F2F2F2F303030303030
+303030363636363636363636454545454545454545595959595959595959757575757575757575
+7575759191919191919191919D9D9D9D9D9D9D9D9DA2A2A2A2A2A2A2A2A2A6A6A6A6A6A6A6A6A6
+9C9C9C9C9C9C9C9C9C9C9C9C888888888888888888717171717171717171525252525252525252
+3939393939393939393939392F2F2F2F2F2F2F2F2F2C2C2C2C2C2C2C2C2C313131313131313131
+3636363636363636363636363636363636363636363939393939393939393C3C3C3C3C3C3C3C3C
+4242424242424242424747474747474747474F4F4F4F4F4F4F4F4F4F4F4F565656565656565656
+747474747474747474CFCFCFCFCFCFCFCFCFFDFDFDFDFDFDFDFDFDFDFDFDFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFDFDFDFDFDFDFDFDFDEDEDEDEDEDEDEDEDEDFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBFBFBFBFBFBFBFBFBCBCBCBCBCBCBCBCBCB717171717171
+7171717171713E3E3E3E3E3E3E3E3E313131313131313131303030303030303030303030303030
+3030303131313131313131313131313131313131313131313030303030303030302D2D2D2D2D2D
+2D2D2D2C2C2C2C2C2C2C2C2C2F2F2F2F2F2F2F2F2F2F2F2F313131313131313131313131313131
+3131313030303030303030302F2F2F2F2F2F2F2F2F2F2F2F2D2D2D2D2D2D2D2D2D2C2C2C2C2C2C
+2C2C2C2D2D2D2D2D2D2D2D2D2C2C2C2C2C2C2C2C2C2B2B2B2B2B2B2B2B2B2B2B2B292929292929
+2929292B2B2B2B2B2B2B2B2B2C2C2C2C2C2C2C2C2C2F2F2F2F2F2F2F2F2F313131313131313131
+3131313030303030303030302D2D2D2D2D2D2D2D2D2B2B2B2B2B2B2B2B2B292929292929292929
+2929292929292929292929292929292929292929292C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C
+303030303030303030303030323232323232323232323232323232323232343434343434343434
+343434343434343434353535353535353535353535343434343434343434323232323232323232
+313131313131313131343434343434343434343434373737373737373737474747474747474747
+5E5E5E5E5E5E5E5E5E797979797979797979959595959595959595959595B4B4B4B4B4B4B4B4B4
+BABABABABABABABABAB9B9B9B9B9B9B9B9B9B8B8B8B8B8B8B8B8B8B0B0B0B0B0B0B0B0B0B0B0B0
+A1A1A1A1A1A1A1A1A1878787878787878787676767676767676767464646464646464646464646
+3131313131313131312C2C2C2C2C2C2C2C2C2F2F2F2F2F2F2F2F2F363636363636363636393939
+3939393939393939393939393939393939393B3B3B3B3B3B3B3B3B3F3F3F3F3F3F3F3F3F424242
+4242424242424848484848484848484848484E4E4E4E4E4E4E4E4E5E5E5E5E5E5E5E5E5EA9A9A9
+A9A9A9A9A9A9F4F4F4F4F4F4F4F4F4F4F4F4FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBFBFB
+FBFBFBFBFBFBDFDFDFDFDFDFDFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFBFBFBFBFBFBFBFBFBCBCBCBCBCBCBCBCBCB7171717171717171717171713E3E3E3E3E3E
+3E3E3E313131313131313131303030303030303030303030303030303030313131313131313131
+3131313131313131313131313030303030303030302D2D2D2D2D2D2D2D2D2C2C2C2C2C2C2C2C2C
+2F2F2F2F2F2F2F2F2F2F2F2F313131313131313131313131313131313131303030303030303030
+2F2F2F2F2F2F2F2F2F2F2F2F2D2D2D2D2D2D2D2D2D2C2C2C2C2C2C2C2C2C2D2D2D2D2D2D2D2D2D
+2C2C2C2C2C2C2C2C2C2B2B2B2B2B2B2B2B2B2B2B2B2929292929292929292B2B2B2B2B2B2B2B2B
+2C2C2C2C2C2C2C2C2C2F2F2F2F2F2F2F2F2F313131313131313131313131303030303030303030
+2D2D2D2D2D2D2D2D2D2B2B2B2B2B2B2B2B2B292929292929292929292929292929292929292929
+2929292929292929292C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C303030303030303030303030
+323232323232323232323232323232323232343434343434343434343434343434343434353535
+353535353535353535343434343434343434323232323232323232313131313131313131343434
+3434343434343434343737373737373737374747474747474747475E5E5E5E5E5E5E5E5E797979
+797979797979959595959595959595959595B4B4B4B4B4B4B4B4B4BABABABABABABABABAB9B9B9
+B9B9B9B9B9B9B8B8B8B8B8B8B8B8B8B0B0B0B0B0B0B0B0B0B0B0B0A1A1A1A1A1A1A1A1A1878787
+8787878787876767676767676767674646464646464646464646463131313131313131312C2C2C
+2C2C2C2C2C2C2F2F2F2F2F2F2F2F2F363636363636363636393939393939393939393939393939
+3939393939393B3B3B3B3B3B3B3B3B3F3F3F3F3F3F3F3F3F424242424242424242484848484848
+4848484848484E4E4E4E4E4E4E4E4E5E5E5E5E5E5E5E5E5EA9A9A9A9A9A9A9A9A9F4F4F4F4F4F4
+F4F4F4F4F4F4FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBFBFBFBFBFBFBFBFBDFDFDFDFDFDF
+DFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBFBFBFBFBFBFBFBFB
+CBCBCBCBCBCBCBCBCB7171717171717171717171713E3E3E3E3E3E3E3E3E313131313131313131
+303030303030303030303030303030303030313131313131313131313131313131313131313131
+3030303030303030302D2D2D2D2D2D2D2D2D2C2C2C2C2C2C2C2C2C2F2F2F2F2F2F2F2F2F2F2F2F
+3131313131313131313131313131313131313030303030303030302F2F2F2F2F2F2F2F2F2F2F2F
+2D2D2D2D2D2D2D2D2D2C2C2C2C2C2C2C2C2C2D2D2D2D2D2D2D2D2D2C2C2C2C2C2C2C2C2C2B2B2B
+2B2B2B2B2B2B2B2B2B2929292929292929292B2B2B2B2B2B2B2B2B2C2C2C2C2C2C2C2C2C2F2F2F
+2F2F2F2F2F2F3131313131313131313131313030303030303030302D2D2D2D2D2D2D2D2D2B2B2B
+2B2B2B2B2B2B2929292929292929292929292929292929292929292929292929292929292C2C2C
+2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C303030303030303030303030323232323232323232323232
+323232323232343434343434343434343434343434343434353535353535353535353535343434
+343434343434323232323232323232313131313131313131343434343434343434343434373737
+3737373737374747474747474747475E5E5E5E5E5E5E5E5E797979797979797979959595959595
+959595959595B4B4B4B4B4B4B4B4B4BABABABABABABABABAB9B9B9B9B9B9B9B9B9B8B8B8B8B8B8
+B8B8B8B0B0B0B0B0B0B0B0B0B0B0B0A1A1A1A1A1A1A1A1A1878787878787878787676767676767
+6767674646464646464646464646463131313131313131312C2C2C2C2C2C2C2C2C2F2F2F2F2F2F
+2F2F2F3636363636363636363939393939393939393939393939393939393939393B3B3B3B3B3B
+3B3B3B3F3F3F3F3F3F3F3F3F4242424242424242424848484848484848484848484E4E4E4E4E4E
+4E4E4E5E5E5E5E5E5E5E5E5EA9A9A9A9A9A9A9A9A9F4F4F4F4F4F4F4F4F4F4F4F4FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFBFBFBFBFBFBFBFBFBDFDFDFDFDFDFDFDFDFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFEFEFEFEFEFEFEFEFEF4F4F4F4F4F4F4F4F4A8A8A8A8A8A8A8A8A8555555
+5555555555555555553636363636363636363131313131313131313030303030303030302D2D2D
+2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2F2F2F2F2F2F2F2F2F2D2D2D2D2D2D2D2D2D292929
+2929292929292828282828282828282B2B2B2B2B2B2B2B2B2B2B2B2C2C2C2C2C2C2C2C2C2D2D2D
+2D2D2D2D2D2D2F2F2F2F2F2F2F2F2F3232323232323232323232322F2F2F2F2F2F2F2F2F2B2B2B
+2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C292929
+292929292929282828282828282828292929292929292929303030303030303030323232323232
+3232323232323131313131313131312C2C2C2C2C2C2C2C2C272727272727272727272727272727
+2727272727272828282828282828282929292929292929292C2C2C2C2C2C2C2C2C2C2C2C2C2C2C
+2C2C2C2F2F2F2F2F2F2F2F2F2F2F2F323232323232323232343434343434343434343434343434
+3434343737373737373737373C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3A3A3A3A3A3A
+3A3A3A3939393939393939393B3B3B3B3B3B3B3B3B3B3B3B464646464646464646616161616161
+6161618080808080808080809B9B9B9B9B9B9B9B9BB0B0B0B0B0B0B0B0B0B0B0B0CACACACACACA
+CACACACFCFCFCFCFCFCFCFCFCBCBCBCBCBCBCBCBCBC3C3C3C3C3C3C3C3C3BABABABABABABABABA
+BABABAB0B1B0B0B1B0B0B1B09E9E9E9E9E9E9E9E9E7F7F7F7F7F7F7F7F7F595959595959595959
+5959593A3A3A3A3A3A3A3A3A2D2D2D2D2D2D2D2D2D2C2C2C2C2C2C2C2C2C323232323232323232
+3737373737373737373737373C3C3C3C3C3C3C3C3C3E3E3E3E3E3E3E3E3E3F3F3F3F3F3F3F3F3F
+424242424242424242464646464646464646464646484848484848484848525252525252525252
+848484848484848484DCDCDCDCDCDCDCDCDCDCDCDCFDFDFDFDFDFDFDFDFDFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FAFAFAFAFAFAFAFAFAD3D3D3D3D3D3D3D3D3FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFE
+FEFEFEFEFEFEF4F4F4F4F4F4F4F4F4A8A8A8A8A8A8A8A8A8555555555555555555555555363636
+3636363636363131313131313131313030303030303030302D2D2D2D2D2D2D2D2D2D2D2D2D2D2D
+2D2D2D2D2D2D2F2F2F2F2F2F2F2F2F2D2D2D2D2D2D2D2D2D292929292929292929282828282828
+2828282B2B2B2B2B2B2B2B2B2B2B2B2C2C2C2C2C2C2C2C2C2D2D2D2D2D2D2D2D2D2F2F2F2F2F2F
+2F2F2F3232323232323232323232322F2F2F2F2F2F2F2F2F2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B
+2B2B2B2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C292929292929292929282828282828
+282828292929292929292929303030303030303030323232323232323232323232313131313131
+3131312C2C2C2C2C2C2C2C2C272727272727272727272727272727272727272727282828282828
+2828282929292929292929292C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2F2F2F2F2F2F2F2F2F
+2F2F2F323232323232323232343434343434343434343434343434343434373737373737373737
+3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3A3A3A3A3A3A3A3A3A393939393939393939
+3B3B3B3B3B3B3B3B3B3B3B3B464646464646464646616161616161616161808080808080808080
+9B9B9B9B9B9B9B9B9BB0B0B0B0B0B0B0B0B0B0B0B0CACACACACACACACACACFCFCFCFCFCFCFCFCF
+CBCBCBCBCBCBCBCBCBC3C3C3C3C3C3C3C3C3BABABABABABABABABABABABAB0B1B0B0B1B0B0B1B0
+9E9E9E9E9E9E9E9E9E7F7F7F7F7F7F7F7F7F5959595959595959595959593A3A3A3A3A3A3A3A3A
+2D2D2D2D2D2D2D2D2D2C2C2C2C2C2C2C2C2C323232323232323232373737373737373737373737
+3C3C3C3C3C3C3C3C3C3E3E3E3E3E3E3E3E3E3F3F3F3F3F3F3F3F3F424242424242424242464646
+464646464646464646484848484848484848525252525252525252848484848484848484DCDCDC
+DCDCDCDCDCDCDCDCDCFDFDFDFDFDFDFDFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAFAFAFAFAFAFAFAFAD3D3D3
+D3D3D3D3D3D3FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFEFEFEFEFEFEE6E6E6E6E6E6
+E6E6E6888888888888888888424242424242424242424242353535353535353535323232323232
+3232322F2F2F2F2F2F2F2F2F2C2C2C2C2C2C2C2C2C2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B
+2B2B2B292929292929292929282828282828282828252525252525252525252525252525252525
+2525252727272727272727272828282828282828282D2D2D2D2D2D2D2D2D313131313131313131
+3131313030303030303030302B2B2B2B2B2B2B2B2B2828282828282828282C2C2C2C2C2C2C2C2C
+2D2D2D2D2D2D2D2D2D2D2D2D2B2B2B2B2B2B2B2B2B252525252525252525222222222222222222
+2828282828282828282D2D2D2D2D2D2D2D2D2D2D2D3030303030303030302F2F2F2F2F2F2F2F2F
+2B2B2B2B2B2B2B2B2B2929292929292929292929292C2C2C2C2C2C2C2C2C303030303030303030
+303030303030303030313131313131313131353535353535353535353535393939393939393939
+3E3E3E3E3E3E3E3E3E3F3F3F3F3F3F3F3F3F3E3E3E3E3E3E3E3E3E3F3F3F3F3F3F3F3F3F3F3F3F
+3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3F3F3F3F3F3F3F3F3F484848484848484848484848
+5D5D5D5D5D5D5D5D5D7E7E7E7E7E7E7E7E7E9F9F9F9F9F9F9F9F9FBABABABABABABABABACBCBCB
+CBCBCBCBCBCBCBCBCBD5D5D5D5D5D5D5D5D5D7D7D7D7D7D7D7D7D7D3D3D3D3D3D3D3D3D3CBCBCB
+CBCBCBCBCBCBC1C1C1C1C1C1C1C1C1C1C1C1B8B8B8B8B8B8B8B8B8ABABABABABABABABAB949494
+9494949494947474747474747474747474744E4E4E4E4E4E4E4E4E3232323232323232322C2C2C
+2C2C2C2C2C2C3030303030303030303434343434343434343434343B3B3B3B3B3B3B3B3B3F3F3F
+3F3F3F3F3F3F404040404040404040464646464646464646474747474747474747474747474747
+4747474747474F4F4F4F4F4F4F4F4F727272727272727272B8B8B8B8B8B8B8B8B8B8B8B8F0F0F0
+F0F0F0F0F0F0FEFEFEFEFEFEFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDFDFDFDFDFDFDEAEAEAEAEAEAEAEAEAFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFEFEFEFEFEFEE6E6E6E6E6E6E6E6E6888888888888888888
+4242424242424242424242423535353535353535353232323232323232322F2F2F2F2F2F2F2F2F
+2C2C2C2C2C2C2C2C2C2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B292929292929292929
+282828282828282828252525252525252525252525252525252525252525272727272727272727
+2828282828282828282D2D2D2D2D2D2D2D2D313131313131313131313131303030303030303030
+2B2B2B2B2B2B2B2B2B2828282828282828282C2C2C2C2C2C2C2C2C2D2D2D2D2D2D2D2D2D2D2D2D
+2B2B2B2B2B2B2B2B2B2525252525252525252222222222222222222828282828282828282D2D2D
+2D2D2D2D2D2D2D2D2D3030303030303030302F2F2F2F2F2F2F2F2F2B2B2B2B2B2B2B2B2B292929
+2929292929292929292C2C2C2C2C2C2C2C2C303030303030303030303030303030303030313131
+3131313131313535353535353535353535353939393939393939393E3E3E3E3E3E3E3E3E3F3F3F
+3F3F3F3F3F3F3E3E3E3E3E3E3E3E3E3F3F3F3F3F3F3F3F3F3F3F3F3E3E3E3E3E3E3E3E3E3E3E3E
+3E3E3E3E3E3E3F3F3F3F3F3F3F3F3F4848484848484848484848485D5D5D5D5D5D5D5D5D7E7E7E
+7E7E7E7E7E7E9F9F9F9F9F9F9F9F9FBABABABABABABABABACBCBCBCBCBCBCBCBCBCBCBCBD5D5D5
+D5D5D5D5D5D5D7D7D7D7D7D7D7D7D7D3D3D3D3D3D3D3D3D3CBCBCBCBCBCBCBCBCBC1C1C1C1C1C1
+C1C1C1C1C1C1B8B8B8B8B8B8B8B8B8ABABABABABABABABAB949494949494949494747474747474
+7474747474744E4E4E4E4E4E4E4E4E3232323232323232322C2C2C2C2C2C2C2C2C303030303030
+3030303434343434343434343434343B3B3B3B3B3B3B3B3B3F3F3F3F3F3F3F3F3F404040404040
+4040404646464646464646464747474747474747474747474747474747474747474F4F4F4F4F4F
+4F4F4F727272727272727272B8B8B8B8B8B8B8B8B8B8B8B8F0F0F0F0F0F0F0F0F0FEFEFEFEFEFE
+FEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFDFDFDFDFDFDFDFDFDEAEAEAEAEAEAEAEAEAFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FEFEFEFEFEFEFEFEFEE6E6E6E6E6E6E6E6E6888888888888888888424242424242424242424242
+3535353535353535353232323232323232322F2F2F2F2F2F2F2F2F2C2C2C2C2C2C2C2C2C2B2B2B
+2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B292929292929292929282828282828282828252525
+2525252525252525252525252525252525252727272727272727272828282828282828282D2D2D
+2D2D2D2D2D2D3131313131313131313131313030303030303030302B2B2B2B2B2B2B2B2B282828
+2828282828282C2C2C2C2C2C2C2C2C2D2D2D2D2D2D2D2D2D2D2D2D2B2B2B2B2B2B2B2B2B252525
+2525252525252222222222222222222828282828282828282D2D2D2D2D2D2D2D2D2D2D2D303030
+3030303030302F2F2F2F2F2F2F2F2F2B2B2B2B2B2B2B2B2B2929292929292929292929292C2C2C
+2C2C2C2C2C2C303030303030303030303030303030303030313131313131313131353535353535
+3535353535353939393939393939393E3E3E3E3E3E3E3E3E3F3F3F3F3F3F3F3F3F3E3E3E3E3E3E
+3E3E3E3F3F3F3F3F3F3F3F3F3F3F3F3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3F3F3F3F3F3F
+3F3F3F4848484848484848484848485D5D5D5D5D5D5D5D5D7E7E7E7E7E7E7E7E7E9F9F9F9F9F9F
+9F9F9FBABABABABABABABABACBCBCBCBCBCBCBCBCBCBCBCBD5D5D5D5D5D5D5D5D5D7D7D7D7D7D7
+D7D7D7D3D3D3D3D3D3D3D3D3CBCBCBCBCBCBCBCBCBC1C1C1C1C1C1C1C1C1C1C1C1B8B8B8B8B8B8
+B8B8B8ABABABABABABABABAB9494949494949494947474747474747474747474744E4E4E4E4E4E
+4E4E4E3232323232323232322C2C2C2C2C2C2C2C2C303030303030303030343434343434343434
+3434343B3B3B3B3B3B3B3B3B3F3F3F3F3F3F3F3F3F404040404040404040464646464646464646
+4747474747474747474747474747474747474747474F4F4F4F4F4F4F4F4F727272727272727272
+B8B8B8B8B8B8B8B8B8B8B8B8F0F0F0F0F0F0F0F0F0FEFEFEFEFEFEFEFEFEFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDFDFDFDFDFDFD
+EAEAEAEAEAEAEAEAEAFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCFCFCFCFCFCFCFCFCCECECE
+CECECECECECE6C6C6C6C6C6C6C6C6C3C3C3C3C3C3C3C3C3C3C3C3C353535353535353535303030
+303030303030292929292929292929282828282828282828282828282828282828282828272727
+272727272727282828282828282828272727272727272727252525252525252525252525252525
+2525252525252727272727272727272828282828282828282C2C2C2C2C2C2C2C2C2F2F2F2F2F2F
+2F2F2F2F2F2F2F2F2F2F2F2F2F2F2F2B2B2B2B2B2B2B2B2B292929292929292929292929292929
+292929292929292929292929292929272727272727272727242424242424242424212121212121
+2121212222222222222222222525252525252525252525252828282828282828282B2B2B2B2B2B
+2B2B2B2C2C2C2C2C2C2C2C2C2B2B2B2B2B2B2B2B2B2B2B2B2C2C2C2C2C2C2C2C2C2F2F2F2F2F2F
+2F2F2F303030303030303030313131313131313131353535353535353535353535373737373737
+3737373F3F3F3F3F3F3F3F3F454545454545454545464646464646464646424242424242424242
+4242424242424242424242424444444444444444444C4C4C4C4C4C4C4C4C616161616161616161
+6161617C7C7C7C7C7C7C7C7C9F9F9F9F9F9F9F9F9FC1C1C1C1C1C1C1C1C1D3D3D3D3D3D3D3D3D3
+DADADADADADADADADADADADAD8D8D8D8D8D8D8D8D8D7D7D7D7D7D7D7D7D7D5D5D5D5D5D5D5D5D5
+D0D0D0D0D0D0D0D0D0C6C6C6C6C6C6C6C6C6C6C6C6BABABABABABABABABAAFAFAFAFAFAFAFAFAF
+A2A2A2A2A2A2A2A2A29191919191919191919191916C6C6C6C6C6C6C6C6C404040404040404040
+303030303030303030303030303030303030313131313131313131313131353535353535353535
+3B3B3B3B3B3B3B3B3B4141414141414141414747474747474747474B4B4B4B4B4B4B4B4B4B4B4B
+4848484848484848484F4F4F4F4F4F4F4F4F737373737373737373AFAFAFAFAFAFAFAFAFAFAFAF
+E6E6E6E6E6E6E6E6E6FDFDFDFDFDFDFDFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBFBFBFBFBFBFBFBFBDEDEDEDEDEDEDEDEDEFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCFCFCFCFCFCFCFCFCCECECECECECECECECE6C6C6C6C6C6C
+6C6C6C3C3C3C3C3C3C3C3C3C3C3C3C353535353535353535303030303030303030292929292929
+292929282828282828282828282828282828282828282828272727272727272727282828282828
+282828272727272727272727252525252525252525252525252525252525252525272727272727
+2727272828282828282828282C2C2C2C2C2C2C2C2C2F2F2F2F2F2F2F2F2F2F2F2F2F2F2F2F2F2F
+2F2F2F2B2B2B2B2B2B2B2B2B292929292929292929292929292929292929292929292929292929
+292929272727272727272727242424242424242424212121212121212121222222222222222222
+2525252525252525252525252828282828282828282B2B2B2B2B2B2B2B2B2C2C2C2C2C2C2C2C2C
+2B2B2B2B2B2B2B2B2B2B2B2B2C2C2C2C2C2C2C2C2C2F2F2F2F2F2F2F2F2F303030303030303030
+3131313131313131313535353535353535353535353737373737373737373F3F3F3F3F3F3F3F3F
+454545454545454545464646464646464646424242424242424242424242424242424242424242
+4444444444444444444C4C4C4C4C4C4C4C4C6161616161616161616161617C7C7C7C7C7C7C7C7C
+9F9F9F9F9F9F9F9F9FC1C1C1C1C1C1C1C1C1D3D3D3D3D3D3D3D3D3DADADADADADADADADADADADA
+D8D8D8D8D8D8D8D8D8D7D7D7D7D7D7D7D7D7D5D5D5D5D5D5D5D5D5D0D0D0D0D0D0D0D0D0C6C6C6
+C6C6C6C6C6C6C6C6C6BABABABABABABABABAAFAFAFAFAFAFAFAFAFA2A2A2A2A2A2A2A2A2919191
+9191919191919191916C6C6C6C6C6C6C6C6C404040404040404040303030303030303030303030
+3030303030303131313131313131313131313535353535353535353B3B3B3B3B3B3B3B3B414141
+4141414141414747474747474747474B4B4B4B4B4B4B4B4B4B4B4B4848484848484848484F4F4F
+4F4F4F4F4F4F737373737373737373AFAFAFAFAFAFAFAFAFAFAFAFE6E6E6E6E6E6E6E6E6FDFDFD
+FDFDFDFDFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFBFBFBFBFBFBFBFBFBDEDEDEDEDEDEDEDEDEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFF2F2F2F2F2F2F2F2F2ADADADADADADADADAD575757575757575757393939393939393939
+3939393434343434343434342D2D2D2D2D2D2D2D2D282828282828282828272727272727272727
+242424242424242424242424252525252525252525252525252525252525252525252525252525
+272727272727272727282828282828282828282828282828282828282828282828282828282828
+2C2C2C2C2C2C2C2C2C2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2C2C2C2C2C2C2C2C2C
+2B2B2B2B2B2B2B2B2B282828282828282828252525252525252525252525242424242424242424
+242424242424242424242424242424242424242424242424242424272727272727272727272727
+252525252525252525252525252525252525282828282828282828272727272727272727272727
+2525252525252525252828282828282828282929292929292929292C2C2C2C2C2C2C2C2C2D2D2D
+2D2D2D2D2D2D2D2D2D3030303030303030303434343434343434343C3C3C3C3C3C3C3C3C454545
+454545454545494949494949494949494949525252525252525252626262626262626262777777
+777777777777919191919191919191919191ADADADADADADADADADCBCBCBCBCBCBCBCBCBDFDFDF
+DFDFDFDFDFDFE2E2E2E2E2E2E2E2E2DFE0DFDFE0DFDFE0DFDFE0DFDBDBDBDBDBDBDBDBDBD9D9D9
+D9D9D9D9D9D9D7D7D7D7D7D7D7D7D7D4D4D4D4D4D4D4D4D4CBCBCBCBCBCBCBCBCBCBCBCBBEBEBE
+BEBEBEBEBEBEB3B3B3B3B3B3B3B3B3ACACACACACACACACACA4A4A4A4A4A4A4A4A4A4A4A48B8B8B
+8B8B8B8B8B8B595959595959595959363636363636363636303030303030303030313131313131
+3131313131313030303030303030303636363636363636363F3F3F3F3F3F3F3F3F454545454545
+4545454848484848484848484848484545454545454545454D4D4D4D4D4D4D4D4D6E6E6E6E6E6E
+6E6E6EA7A7A7A7A7A7A7A7A7A7A7A7E3E3E3E3E3E3E3E3E3F9F9F9F9F9F9F9F9F9FEFEFEFEFEFE
+FEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9F9F9F9F9F9
+F9F9F9C5C5C5C5C5C5C5C5C5FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2F2F2F2F2F2F2F2F2
+ADADADADADADADADAD575757575757575757393939393939393939393939343434343434343434
+2D2D2D2D2D2D2D2D2D282828282828282828272727272727272727242424242424242424242424
+252525252525252525252525252525252525252525252525252525272727272727272727282828
+2828282828282828282828282828282828282828282828282828282C2C2C2C2C2C2C2C2C2D2D2D
+2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2C2C2C2C2C2C2C2C2C2B2B2B2B2B2B2B2B2B282828
+282828282828252525252525252525252525242424242424242424242424242424242424242424
+242424242424242424242424242424272727272727272727272727252525252525252525252525
+252525252525282828282828282828272727272727272727272727252525252525252525282828
+2828282828282929292929292929292C2C2C2C2C2C2C2C2C2D2D2D2D2D2D2D2D2D2D2D2D303030
+3030303030303434343434343434343C3C3C3C3C3C3C3C3C454545454545454545494949494949
+494949494949525252525252525252626262626262626262777777777777777777919191919191
+919191919191ADADADADADADADADADCBCBCBCBCBCBCBCBCBDFDFDFDFDFDFDFDFDFE2E2E2E2E2E2
+E2E2E2DFE0DFDFE0DFDFE0DFDFE0DFDBDBDBDBDBDBDBDBDBD9D9D9D9D9D9D9D9D9D7D7D7D7D7D7
+D7D7D7D4D4D4D4D4D4D4D4D4CBCBCBCBCBCBCBCBCBCBCBCBBEBEBEBEBEBEBEBEBEB3B3B3B3B3B3
+B3B3B3ACACACACACACACACACA4A4A4A4A4A4A4A4A4A4A4A48B8B8B8B8B8B8B8B8B595959595959
+595959363636363636363636303030303030303030313131313131313131313131303030303030
+3030303636363636363636363F3F3F3F3F3F3F3F3F454545454545454545484848484848484848
+4848484545454545454545454D4D4D4D4D4D4D4D4D6E6E6E6E6E6E6E6E6EA7A7A7A7A7A7A7A7A7
+A7A7A7E3E3E3E3E3E3E3E3E3F9F9F9F9F9F9F9F9F9FEFEFEFEFEFEFEFEFEFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9F9F9F9F9F9F9F9F9C5C5C5C5C5C5C5C5C5
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2F2F2F2F2F2F2F2F2ADADADADADADADADAD575757
+5757575757573939393939393939393939393434343434343434342D2D2D2D2D2D2D2D2D282828
+282828282828272727272727272727242424242424242424242424252525252525252525252525
+252525252525252525252525252525272727272727272727282828282828282828282828282828
+2828282828282828282828282828282C2C2C2C2C2C2C2C2C2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D
+2D2D2D2D2D2D2C2C2C2C2C2C2C2C2C2B2B2B2B2B2B2B2B2B282828282828282828252525252525
+252525252525242424242424242424242424242424242424242424242424242424242424242424
+242424272727272727272727272727252525252525252525252525252525252525282828282828
+282828272727272727272727272727252525252525252525282828282828282828292929292929
+2929292C2C2C2C2C2C2C2C2C2D2D2D2D2D2D2D2D2D2D2D2D303030303030303030343434343434
+3434343C3C3C3C3C3C3C3C3C454545454545454545494949494949494949494949525252525252
+525252626262626262626262777777777777777777919191919191919191919191ADADADADADAD
+ADADADCBCBCBCBCBCBCBCBCBDFDFDFDFDFDFDFDFDFE2E2E2E2E2E2E2E2E2DFE0DFDFE0DFDFE0DF
+DFE0DFDBDBDBDBDBDBDBDBDBD9D9D9D9D9D9D9D9D9D7D7D7D7D7D7D7D7D7D4D4D4D4D4D4D4D4D4
+CBCBCBCBCBCBCBCBCBCBCBCBBEBEBEBEBEBEBEBEBEB3B3B3B3B3B3B3B3B3ACACACACACACACACAC
+A4A4A4A4A4A4A4A4A4A4A4A48B8B8B8B8B8B8B8B8B595959595959595959363636363636363636
+303030303030303030313131313131313131313131303030303030303030363636363636363636
+3F3F3F3F3F3F3F3F3F454545454545454545484848484848484848484848454545454545454545
+4D4D4D4D4D4D4D4D4D6E6E6E6E6E6E6E6E6EA7A7A7A7A7A7A7A7A7A7A7A7E3E3E3E3E3E3E3E3E3
+F9F9F9F9F9F9F9F9F9FEFEFEFEFEFEFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFF9F9F9F9F9F9F9F9F9C5C5C5C5C5C5C5C5C5FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDFDFDFD
+FDFDFDFDFDFDE0E0E0E0E0E0E0E0E08A8A8A8A8A8A8A8A8A484848484848484848363636363636
+3636363636363030303030303030302B2B2B2B2B2B2B2B2B282828282828282828252525252525
+252525242424242424242424242424242424242424242424242424242424242424252525252525
+252525282828282828282828282828282828282828282828272727272727272727292929292929
+2929292D2D2D2D2D2D2D2D2D2C2C2C2C2C2C2C2C2C2C2C2C2B2B2B2B2B2B2B2B2B292929292929
+292929272727272727272727252525252525252525242424242424242424242424242424242424
+242424252525252525252525252525252525252525282828282828282828292929292929292929
+2929292828282828282828282929292929292929292C2C2C2C2C2C2C2C2C292929292929292929
+2929292727272727272727272828282828282828282929292929292929292B2B2B2B2B2B2B2B2B
+2B2B2B2B2B2B2B2B2B2B2B2B2F2F2F2F2F2F2F2F2F313131313131313131393939393939393939
+4545454545454545455B5B5B5B5B5B5B5B5B5B5B5B787878787878787878919191919191919191
+A7A7A7A7A7A7A7A7A7BCBCBCBCBCBCBCBCBCBCBCBCD3D3D3D3D3D3D3D3D3DFE0DFDFE0DFDFE0DF
+E5E5E5E5E5E5E5E5E5E4E4E4E4E4E4E4E4E4E0E0E0E0E0E0E0E0E0E0E0E0DEDEDEDEDEDEDEDEDE
+DADADADADADADADADAD8D8D8D8D8D8D8D8D8D6D6D6D6D6D6D6D6D6CDCDCDCDCDCDCDCDCDCDCDCD
+C1C1C1C1C1C1C1C1C1B8B8B8B8B8B8B8B8B8B2B2B2B2B2B2B2B2B2AEAEAEAEAEAEAEAEAEAEAEAE
+9F9F9F9F9F9F9F9F9F767676767676767676424242424242424242313131313131313131323232
+3232323232323232322F2F2F2F2F2F2F2F2F303030303030303030393939393939393939404040
+4040404040404141414141414141414141414040404040404040404747474747474747475F605F
+5F605F5F605F959595959595959595959595DBDBDBDBDBDBDBDBDBF4F4F4F4F4F4F4F4F4FDFDFD
+FDFDFDFDFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBFBFB
+FBFBFBFBFBFBDADADADADADADADADAFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDFDFDFDFDFDFDFDFDFDE0E0E0E0E0E0
+E0E0E08A8A8A8A8A8A8A8A8A484848484848484848363636363636363636363636303030303030
+3030302B2B2B2B2B2B2B2B2B282828282828282828252525252525252525242424242424242424
+242424242424242424242424242424242424242424252525252525252525282828282828282828
+2828282828282828282828282727272727272727272929292929292929292D2D2D2D2D2D2D2D2D
+2C2C2C2C2C2C2C2C2C2C2C2C2B2B2B2B2B2B2B2B2B292929292929292929272727272727272727
+252525252525252525242424242424242424242424242424242424242424252525252525252525
+252525252525252525282828282828282828292929292929292929292929282828282828282828
+2929292929292929292C2C2C2C2C2C2C2C2C292929292929292929292929272727272727272727
+2828282828282828282929292929292929292B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B
+2F2F2F2F2F2F2F2F2F3131313131313131313939393939393939394545454545454545455B5B5B
+5B5B5B5B5B5B5B5B5B787878787878787878919191919191919191A7A7A7A7A7A7A7A7A7BCBCBC
+BCBCBCBCBCBCBCBCBCD3D3D3D3D3D3D3D3D3DFE0DFDFE0DFDFE0DFE5E5E5E5E5E5E5E5E5E4E4E4
+E4E4E4E4E4E4E0E0E0E0E0E0E0E0E0E0E0E0DEDEDEDEDEDEDEDEDEDADADADADADADADADAD8D8D8
+D8D8D8D8D8D8D6D6D6D6D6D6D6D6D6CDCDCDCDCDCDCDCDCDCDCDCDC1C1C1C1C1C1C1C1C1B8B8B8
+B8B8B8B8B8B8B2B2B2B2B2B2B2B2B2AEAEAEAEAEAEAEAEAEAEAEAE9F9F9F9F9F9F9F9F9F767676
+7676767676764242424242424242423131313131313131313232323232323232323232322F2F2F
+2F2F2F2F2F2F303030303030303030393939393939393939404040404040404040414141414141
+4141414141414040404040404040404747474747474747475F605F5F605F5F605F959595959595
+959595959595DBDBDBDBDBDBDBDBDBF4F4F4F4F4F4F4F4F4FDFDFDFDFDFDFDFDFDFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBFBFBFBFBFBFBFBFBDADADADADADA
+DADADAFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFDFDFDFDFDFDFDFDFDFDFDFDE0E0E0E0E0E0E0E0E08A8A8A8A8A8A8A8A8A
+4848484848484848483636363636363636363636363030303030303030302B2B2B2B2B2B2B2B2B
+282828282828282828252525252525252525242424242424242424242424242424242424242424
+242424242424242424252525252525252525282828282828282828282828282828282828282828
+2727272727272727272929292929292929292D2D2D2D2D2D2D2D2D2C2C2C2C2C2C2C2C2C2C2C2C
+2B2B2B2B2B2B2B2B2B292929292929292929272727272727272727252525252525252525242424
+242424242424242424242424242424242424252525252525252525252525252525252525282828
+2828282828282929292929292929292929292828282828282828282929292929292929292C2C2C
+2C2C2C2C2C2C292929292929292929292929272727272727272727282828282828282828292929
+2929292929292B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2F2F2F2F2F2F2F2F2F313131
+3131313131313939393939393939394545454545454545455B5B5B5B5B5B5B5B5B5B5B5B787878
+787878787878919191919191919191A7A7A7A7A7A7A7A7A7BCBCBCBCBCBCBCBCBCBCBCBCD3D3D3
+D3D3D3D3D3D3DFE0DFDFE0DFDFE0DFE5E5E5E5E5E5E5E5E5E4E4E4E4E4E4E4E4E4E0E0E0E0E0E0
+E0E0E0E0E0E0DEDEDEDEDEDEDEDEDEDADADADADADADADADAD8D8D8D8D8D8D8D8D8D6D6D6D6D6D6
+D6D6D6CDCDCDCDCDCDCDCDCDCDCDCDC1C1C1C1C1C1C1C1C1B8B8B8B8B8B8B8B8B8B2B2B2B2B2B2
+B2B2B2AEAEAEAEAEAEAEAEAEAEAEAE9F9F9F9F9F9F9F9F9F767676767676767676424242424242
+4242423131313131313131313232323232323232323232322F2F2F2F2F2F2F2F2F303030303030
+303030393939393939393939404040404040404040414141414141414141414141404040404040
+4040404747474747474747475F605F5F605F5F605F959595959595959595959595DBDBDBDBDBDB
+DBDBDBF4F4F4F4F4F4F4F4F4FDFDFDFDFDFDFDFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFBFBFBFBFBFBFBFBFBDADADADADADADADADAFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAFAFA
+FAFAFAFAFAFAFAFAFAC5C5C5C5C5C5C5C5C56F6F6F6F6F6F6F6F6F404040404040404040323232
+3232323232323232322F2F2F2F2F2F2F2F2F282828282828282828272727272727272727252525
+252525252525272727272727272727272727272727272727272727252525252525252525252525
+252525252525252525252525252525252525252525252525252525242424242424242424252525
+252525252525282828282828282828292929292929292929292929282828282828282828272727
+272727272727252525252525252525252525252525252525272727272727272727272727282828
+2828282828282828282828282828282929292929292929292B2B2B2B2B2B2B2B2B2B2B2B2B2B2B
+2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B3030303030303030303434343434343434342D2D2D2D2D2D
+2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D303030303030
+3030303232323232323232323232323737373737373737373E3E3E3E3E3E3E3E3E464646464646
+4646465757575757575757577B7B7B7B7B7B7B7B7B7B7B7B9C9C9C9C9C9C9C9C9CB2B2B2B2B2B2
+B2B2B2C5C5C5C5C5C5C5C5C5D8D8D8D8D8D8D8D8D8D8D8D8E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6
+E6E6E6E3E3E3E3E3E3E3E3E3E2E2E2E2E2E2E2E2E2DFE0DFDFE0DFDFE0DFDFE0DFDFE0DFDFE0DF
+DFE0DFDBDBDBDBDBDBDBDBDBD9D9D9D9D9D9D9D9D9D6D6D6D6D6D6D6D6D6CDCDCDCDCDCDCDCDCD
+CDCDCDC6C6C6C6C6C6C6C6C6BFBFBFBFBFBFBFBFBFB6B6B6B6B6B6B6B6B6B1B1B1B1B1B1B1B1B1
+B1B1B1ACACACACACACACACAC9191919191919191915B5B5B5B5B5B5B5B5B373737373737373737
+353535353535353535353535313131313131313131303030303030303030353535353535353535
+3B3B3B3B3B3B3B3B3B3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E454545454545454545
+5E5E5E5E5E5E5E5E5E8B8B8B8B8B8B8B8B8B8B8B8BCACACACACACACACACAF2F2F2F2F2F2F2F2F2
+FDFDFDFDFDFDFDFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+F9F9F9F9F9F9F9F9F9CCCCCCCCCCCCCCCCCCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAFAFAFAFAFAFAFAFAFAFAFAC5C5C5
+C5C5C5C5C5C56F6F6F6F6F6F6F6F6F4040404040404040403232323232323232323232322F2F2F
+2F2F2F2F2F2F282828282828282828272727272727272727252525252525252525272727272727
+272727272727272727272727272727252525252525252525252525252525252525252525252525
+252525252525252525252525252525242424242424242424252525252525252525282828282828
+282828292929292929292929292929282828282828282828272727272727272727252525252525
+252525252525252525252525272727272727272727272727282828282828282828282828282828
+2828282929292929292929292B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B
+2B2B2B3030303030303030303434343434343434342D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D
+2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D303030303030303030323232323232323232
+3232323737373737373737373E3E3E3E3E3E3E3E3E464646464646464646575757575757575757
+7B7B7B7B7B7B7B7B7B7B7B7B9C9C9C9C9C9C9C9C9CB2B2B2B2B2B2B2B2B2C5C5C5C5C5C5C5C5C5
+D8D8D8D8D8D8D8D8D8D8D8D8E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E3E3E3E3E3E3E3E3E3
+E2E2E2E2E2E2E2E2E2DFE0DFDFE0DFDFE0DFDFE0DFDFE0DFDFE0DFDFE0DFDBDBDBDBDBDBDBDBDB
+D9D9D9D9D9D9D9D9D9D6D6D6D6D6D6D6D6D6CDCDCDCDCDCDCDCDCDCDCDCDC6C6C6C6C6C6C6C6C6
+BFBFBFBFBFBFBFBFBFB6B6B6B6B6B6B6B6B6B1B1B1B1B1B1B1B1B1B1B1B1ACACACACACACACACAC
+9191919191919191915B5B5B5B5B5B5B5B5B373737373737373737353535353535353535353535
+3131313131313131313030303030303030303535353535353535353B3B3B3B3B3B3B3B3B3E3E3E
+3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E4545454545454545455E5E5E5E5E5E5E5E5E8B8B8B
+8B8B8B8B8B8B8B8B8BCACACACACACACACACAF2F2F2F2F2F2F2F2F2FDFDFDFDFDFDFDFDFDFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9F9F9F9F9F9F9F9F9CCCCCC
+CCCCCCCCCCCCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFEFEFEFEFEFEFEFEFEF3F3F3F3F3F3F3F3F3F3F3F3ACACACACACACACACAC5C5C5C5C5C5C
+5C5C5C3A3A3A3A3A3A3A3A3A3131313131313131313131312C2C2C2C2C2C2C2C2C282828282828
+282828272727272727272727272727272727272727272727272727272727272727272727272727
+272727282828282828282828252525252525252525222222222222222222212121212121212121
+2121212222222222222222222727272727272727272B2B2B2B2B2B2B2B2B292929292929292929
+2929292828282828282828282828282828282828282B2B2B2B2B2B2B2B2B2C2C2C2C2C2C2C2C2C
+2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D
+2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2F2F2F2F2F2F2F2F2F313131313131313131
+3030303030303030302C2C2C2C2C2C2C2C2C2C2C2C2F2F2F2F2F2F2F2F2F313131313131313131
+3232323232323232323636363636363636363A3A3A3A3A3A3A3A3A3A3A3A444444444444444444
+4D4D4D4D4D4D4D4D4D575757575757575757707070707070707070979797979797979797979797
+B8B8B8B8B8B8B8B8B8CBCBCBCBCBCBCBCBCBDCDCDCDCDCDCDCDCDCE9E9E9E9E9E9E9E9E9E9E9E9
+EEEEEEEEEEEEEEEEEEEBEBEBEBEBEBEBEBEBE4E4E4E4E4E4E4E4E4E1E1E1E1E1E1E1E1E1E1E1E1
+E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1DDDDDDDDDDDDDDDDDDD9D9D9D9D9D9D9D9D9D6D6D5
+D6D6D5D6D6D5D0D0D0D0D0D0D0D0D0D0D0D0CBCBCBCBCBCBCBCBCBC5C5C5C5C5C5C5C5C5BBBBBB
+BBBBBBBBBBBBB4B4B4B4B4B4B4B4B4B4B4B4B2B2B2B2B2B2B2B2B2A3A3A3A3A3A3A3A3A3767676
+767676767676444444444444444444363636363636363636363636363636363636363636353535
+3535353535353636363636363636363B3B3B3B3B3B3B3B3B3F3F3F3F3F3F3F3F3F3F3F3F3E3E3E
+3E3E3E3E3E3E464646464646464646707070707070707070A6A6A6A6A6A6A6A6A6A6A6A6D9D9D9
+D9D9D9D9D9D9F8F8F8F8F8F8F8F8F8FEFEFEFEFEFEFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAFAFAFAFAFAFAFAFACFCFCFCFCFCFCFCFCFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFEFEFEFEFEFE
+F3F3F3F3F3F3F3F3F3F3F3F3ACACACACACACACACAC5C5C5C5C5C5C5C5C5C3A3A3A3A3A3A3A3A3A
+3131313131313131313131312C2C2C2C2C2C2C2C2C282828282828282828272727272727272727
+272727272727272727272727272727272727272727272727272727272727282828282828282828
+252525252525252525222222222222222222212121212121212121212121222222222222222222
+2727272727272727272B2B2B2B2B2B2B2B2B292929292929292929292929282828282828282828
+2828282828282828282B2B2B2B2B2B2B2B2B2C2C2C2C2C2C2C2C2C2D2D2D2D2D2D2D2D2D2D2D2D
+2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D
+2D2D2D2D2D2D2D2D2D2F2F2F2F2F2F2F2F2F3131313131313131313030303030303030302C2C2C
+2C2C2C2C2C2C2C2C2C2F2F2F2F2F2F2F2F2F313131313131313131323232323232323232363636
+3636363636363A3A3A3A3A3A3A3A3A3A3A3A4444444444444444444D4D4D4D4D4D4D4D4D575757
+575757575757707070707070707070979797979797979797979797B8B8B8B8B8B8B8B8B8CBCBCB
+CBCBCBCBCBCBDCDCDCDCDCDCDCDCDCE9E9E9E9E9E9E9E9E9E9E9E9EEEEEEEEEEEEEEEEEEEBEBEB
+EBEBEBEBEBEBE4E4E4E4E4E4E4E4E4E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1
+E1E1E1E1E1E1DDDDDDDDDDDDDDDDDDD9D9D9D9D9D9D9D9D9D6D6D5D6D6D5D6D6D5D0D0D0D0D0D0
+D0D0D0D0D0D0CBCBCBCBCBCBCBCBCBC5C5C5C5C5C5C5C5C5BBBBBBBBBBBBBBBBBBB4B4B4B4B4B4
+B4B4B4B4B4B4B2B2B2B2B2B2B2B2B2A3A3A3A3A3A3A3A3A3767676767676767676444444444444
+444444363636363636363636363636363636363636363636353535353535353535363636363636
+3636363B3B3B3B3B3B3B3B3B3F3F3F3F3F3F3F3F3F3F3F3F3E3E3E3E3E3E3E3E3E464646464646
+464646707070707070707070A6A6A6A6A6A6A6A6A6A6A6A6D9D9D9D9D9D9D9D9D9F8F8F8F8F8F8
+F8F8F8FEFEFEFEFEFEFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFAFAFAFAFAFAFAFAFACFCFCFCFCFCFCFCFCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFEFEFEFEFEFEF3F3F3F3F3F3F3F3F3F3F3F3
+ACACACACACACACACAC5C5C5C5C5C5C5C5C5C3A3A3A3A3A3A3A3A3A313131313131313131313131
+2C2C2C2C2C2C2C2C2C282828282828282828272727272727272727272727272727272727272727
+272727272727272727272727272727272727282828282828282828252525252525252525222222
+2222222222222121212121212121212121212222222222222222222727272727272727272B2B2B
+2B2B2B2B2B2B2929292929292929292929292828282828282828282828282828282828282B2B2B
+2B2B2B2B2B2B2C2C2C2C2C2C2C2C2C2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D
+2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2F2F2F
+2F2F2F2F2F2F3131313131313131313030303030303030302C2C2C2C2C2C2C2C2C2C2C2C2F2F2F
+2F2F2F2F2F2F3131313131313131313232323232323232323636363636363636363A3A3A3A3A3A
+3A3A3A3A3A3A4444444444444444444D4D4D4D4D4D4D4D4D575757575757575757707070707070
+707070979797979797979797979797B8B8B8B8B8B8B8B8B8CBCBCBCBCBCBCBCBCBDCDCDCDCDCDC
+DCDCDCE9E9E9E9E9E9E9E9E9E9E9E9EEEEEEEEEEEEEEEEEEEBEBEBEBEBEBEBEBEBE4E4E4E4E4E4
+E4E4E4E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1DDDDDDDDDDDD
+DDDDDDD9D9D9D9D9D9D9D9D9D6D6D5D6D6D5D6D6D5D0D0D0D0D0D0D0D0D0D0D0D0CBCBCBCBCBCB
+CBCBCBC5C5C5C5C5C5C5C5C5BBBBBBBBBBBBBBBBBBB4B4B4B4B4B4B4B4B4B4B4B4B2B2B2B2B2B2
+B2B2B2A3A3A3A3A3A3A3A3A3767676767676767676444444444444444444363636363636363636
+3636363636363636363636363535353535353535353636363636363636363B3B3B3B3B3B3B3B3B
+3F3F3F3F3F3F3F3F3F3F3F3F3E3E3E3E3E3E3E3E3E464646464646464646707070707070707070
+A6A6A6A6A6A6A6A6A6A6A6A6D9D9D9D9D9D9D9D9D9F8F8F8F8F8F8F8F8F8FEFEFEFEFEFEFEFEFE
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAFAFAFAFAFAFAFAFA
+CFCFCFCFCFCFCFCFCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFDFDFDFDFDFDFDFDFDE1E1E1E1E1E1E1E1E1E1E1E18E8E8E8E8E8E8E8E8E4F4F4F
+4F4F4F4F4F4F3737373737373737373030303030303030303030302B2B2B2B2B2B2B2B2B282828
+282828282828282828282828282828252525252525252525252525252525252525252525272727
+272727272727282828282828282828252525252525252525222222222222222222212121212121
+212121212121222222222222222222252525252525252525282828282828282828272727272727
+2727272727272727272727272727272929292929292929292D2D2D2D2D2D2D2D2D313131313131
+3131313232323232323232323232323232323232323232323030303030303030302D2D2D2D2D2D
+2D2D2D2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2B2B2B2B2B2B2B2B2B2C2C2C2C2C2C
+2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2F2F2F2F2F2F2F2F2F343434343434
+3434343737373737373737373939393939393939393F3F3F3F3F3F3F3F3F3F3F3F4B4B4B4B4B4B
+4B4B4B5757575757575757576A6A6A6A6A6A6A6A6A8B8B8B8B8B8B8B8B8BB1B1B1B1B1B1B1B1B1
+B1B1B1CECECECECECECECECEDEDEDEDEDEDEDEDEDEE8E8E8E8E8E8E8E8E8EDEDEDEDEDEDEDEDED
+EDEDEDEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE9E9E9E9E9E9E9E9E9E3E3E3E3E3E3E3E3E3
+E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1DEDEDEDEDEDEDEDEDEDADADADADADADADADA
+D6D6D6D6D6D6D6D6D6D5D5D5D5D5D5D5D5D5D5D5D5D0D0D0D0D0D0D0D0D0C8C8C8C8C8C8C8C8C8
+BEBEBEBEBEBEBEBEBEB8B8B8B8B8B8B8B8B8B8B8B8B4B4B4B4B4B4B4B4B4ABABABABABABABABAB
+8A8A8A8A8A8A8A8A8A515151515151515151373737373737373737373737373737373737373737
+3939393939393939393A3A3A3A3A3A3A3A3A3F3F3F3F3F3F3F3F3F444444444444444444444444
+4040404040404040404C4C4C4C4C4C4C4C4C8E8E8E8E8E8E8E8E8ED4D4D4D4D4D4D4D4D4D4D4D4
+F7F7F7F7F7F7F7F7F7FEFEFEFEFEFEFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAFAFAFAFAFAFAFAFACFCFCFCFCFCFCFCFCFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDFDFDFD
+FDFDFDE1E1E1E1E1E1E1E1E1E1E1E18E8E8E8E8E8E8E8E8E4F4F4F4F4F4F4F4F4F373737373737
+3737373030303030303030303030302B2B2B2B2B2B2B2B2B282828282828282828282828282828
+282828252525252525252525252525252525252525252525272727272727272727282828282828
+282828252525252525252525222222222222222222212121212121212121212121222222222222
+222222252525252525252525282828282828282828272727272727272727272727272727272727
+2727272929292929292929292D2D2D2D2D2D2D2D2D313131313131313131323232323232323232
+3232323232323232323232323030303030303030302D2D2D2D2D2D2D2D2D2C2C2C2C2C2C2C2C2C
+2C2C2C2C2C2C2C2C2C2C2C2C2B2B2B2B2B2B2B2B2B2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C
+2C2C2C2C2C2C2C2C2C2C2C2C2F2F2F2F2F2F2F2F2F343434343434343434373737373737373737
+3939393939393939393F3F3F3F3F3F3F3F3F3F3F3F4B4B4B4B4B4B4B4B4B575757575757575757
+6A6A6A6A6A6A6A6A6A8B8B8B8B8B8B8B8B8BB1B1B1B1B1B1B1B1B1B1B1B1CECECECECECECECECE
+DEDEDEDEDEDEDEDEDEE8E8E8E8E8E8E8E8E8EDEDEDEDEDEDEDEDEDEDEDEDEEEEEEEEEEEEEEEEEE
+EEEEEEEEEEEEEEEEEEE9E9E9E9E9E9E9E9E9E3E3E3E3E3E3E3E3E3E1E1E1E1E1E1E1E1E1E1E1E1
+E1E1E1E1E1E1E1E1E1DEDEDEDEDEDEDEDEDEDADADADADADADADADAD6D6D6D6D6D6D6D6D6D5D5D5
+D5D5D5D5D5D5D5D5D5D0D0D0D0D0D0D0D0D0C8C8C8C8C8C8C8C8C8BEBEBEBEBEBEBEBEBEB8B8B8
+B8B8B8B8B8B8B8B8B8B4B4B4B4B4B4B4B4B4ABABABABABABABABAB8A8A8A8A8A8A8A8A8A515151
+5151515151513737373737373737373737373737373737373737373939393939393939393A3A3A
+3A3A3A3A3A3A3F3F3F3F3F3F3F3F3F4444444444444444444444444040404040404040404C4C4C
+4C4C4C4C4C4C8E8E8E8E8E8E8E8E8ED4D4D4D4D4D4D4D4D4D4D4D4F7F7F7F7F7F7F7F7F7FEFEFE
+FEFEFEFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFAFAFAFAFAFAFAFAFACFCFCFCFCFCFCFCFCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBFBFBFBFBFBFBFBFBCBCBCBCBCBCBCBCBCB
+CBCBCB747474747474747474464646464646464646363636363636363636303030303030303030
+3030302B2B2B2B2B2B2B2B2B282828282828282828272727272727272727242424242424242424
+242424242424242424242424272727272727272727282828282828282828272727272727272727
+242424242424242424222222222222222222222222222222222222222222242424242424242424
+2525252525252525252525252525252525252525252828282828282828282B2B2B2B2B2B2B2B2B
+2D2D2D2D2D2D2D2D2D303030303030303030313131313131313131313131303030303030303030
+3030303030303030302C2C2C2C2C2C2C2C2C2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B
+2B2B2B2B2B2B2B2B2B2929292929292929292828282828282828282C2C2C2C2C2C2C2C2C2C2C2C
+3030303030303030303434343434343434343737373737373737373C3C3C3C3C3C3C3C3C464646
+4646464646464646465757575757575757576D6D6D6D6D6D6D6D6D8A8A8A8A8A8A8A8A8AADADAD
+ADADADADADADCBCBCBCBCBCBCBCBCBCBCBCBDDDDDDDDDDDDDDDDDDE5E5E5E5E5E5E5E5E5E8E8E8
+E8E8E8E8E8E8EAEAEAEAEAEAEAEAEAEAEAEAECECECECECECECECECEDEDEDEDEDEDEDEDEDECECEC
+ECECECECECECE5E5E5E5E5E5E5E5E5E3E3E3E3E3E3E3E3E3E3E3E3E1E1E1E1E1E1E1E1E1DFDFDF
+DFDFDFDFDFDFDBDBDBDBDBDBDBDBDBD8D8D8D8D8D8D8D8D8D6D6D6D6D6D6D6D6D6D6D6D6D2D2D2
+D2D2D2D2D2D2CBCBCBCBCBCBCBCBCBBFBFBFBFBFBFBFBFBFB9B9B9B9B9B9B9B9B9B9B9B9B8B8B8
+B8B8B8B8B8B8B0B0B0B0B0B0B0B0B09696969696969696966262626262626262623C3C3C3C3C3C
+3C3C3C3C3C3C3737373737373737373737373737373737373C3C3C3C3C3C3C3C3C414141414141
+414141474747474747474747474747444444444444444444545454545454545454ABABABABABAB
+ABABABF4F4F4F4F4F4F4F4F4F4F4F4FEFEFEFEFEFEFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBFBFBFBFBFB
+FBFBFBDBDBDBDBDBDBDBDBDBFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFBFBFBFBFBFBFBFBFBCBCBCBCBCBCBCBCBCBCBCBCB747474747474747474
+4646464646464646463636363636363636363030303030303030303030302B2B2B2B2B2B2B2B2B
+282828282828282828272727272727272727242424242424242424242424242424242424242424
+272727272727272727282828282828282828272727272727272727242424242424242424222222
+222222222222222222222222222222222222242424242424242424252525252525252525252525
+2525252525252525252828282828282828282B2B2B2B2B2B2B2B2B2D2D2D2D2D2D2D2D2D303030
+3030303030303131313131313131313131313030303030303030303030303030303030302C2C2C
+2C2C2C2C2C2C2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B292929
+2929292929292828282828282828282C2C2C2C2C2C2C2C2C2C2C2C303030303030303030343434
+3434343434343737373737373737373C3C3C3C3C3C3C3C3C464646464646464646464646575757
+5757575757576D6D6D6D6D6D6D6D6D8A8A8A8A8A8A8A8A8AADADADADADADADADADCBCBCBCBCBCB
+CBCBCBCBCBCBDDDDDDDDDDDDDDDDDDE5E5E5E5E5E5E5E5E5E8E8E8E8E8E8E8E8E8EAEAEAEAEAEA
+EAEAEAEAEAEAECECECECECECECECECEDEDEDEDEDEDEDEDEDECECECECECECECECECE5E5E5E5E5E5
+E5E5E5E3E3E3E3E3E3E3E3E3E3E3E3E1E1E1E1E1E1E1E1E1DFDFDFDFDFDFDFDFDFDBDBDBDBDBDB
+DBDBDBD8D8D8D8D8D8D8D8D8D6D6D6D6D6D6D6D6D6D6D6D6D2D2D2D2D2D2D2D2D2CBCBCBCBCBCB
+CBCBCBBFBFBFBFBFBFBFBFBFB9B9B9B9B9B9B9B9B9B9B9B9B8B8B8B8B8B8B8B8B8B0B0B0B0B0B0
+B0B0B09696969696969696966262626262626262623C3C3C3C3C3C3C3C3C3C3C3C373737373737
+3737373737373737373737373C3C3C3C3C3C3C3C3C414141414141414141474747474747474747
+474747444444444444444444545454545454545454ABABABABABABABABABF4F4F4F4F4F4F4F4F4
+F4F4F4FEFEFEFEFEFEFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBFBFBFBFBFBFBFBFBDBDBDBDBDBDBDBDBDB
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBFBFB
+FBFBFBFBFBFBCBCBCBCBCBCBCBCBCBCBCBCB747474747474747474464646464646464646363636
+3636363636363030303030303030303030302B2B2B2B2B2B2B2B2B282828282828282828272727
+272727272727242424242424242424242424242424242424242424272727272727272727282828
+282828282828272727272727272727242424242424242424222222222222222222222222222222
+222222222222242424242424242424252525252525252525252525252525252525252525282828
+2828282828282B2B2B2B2B2B2B2B2B2D2D2D2D2D2D2D2D2D303030303030303030313131313131
+3131313131313030303030303030303030303030303030302C2C2C2C2C2C2C2C2C2B2B2B2B2B2B
+2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B292929292929292929282828282828
+2828282C2C2C2C2C2C2C2C2C2C2C2C303030303030303030343434343434343434373737373737
+3737373C3C3C3C3C3C3C3C3C4646464646464646464646465757575757575757576D6D6D6D6D6D
+6D6D6D8A8A8A8A8A8A8A8A8AADADADADADADADADADCBCBCBCBCBCBCBCBCBCBCBCBDDDDDDDDDDDD
+DDDDDDE5E5E5E5E5E5E5E5E5E8E8E8E8E8E8E8E8E8EAEAEAEAEAEAEAEAEAEAEAEAECECECECECEC
+ECECECEDEDEDEDEDEDEDEDEDECECECECECECECECECE5E5E5E5E5E5E5E5E5E3E3E3E3E3E3E3E3E3
+E3E3E3E1E1E1E1E1E1E1E1E1DFDFDFDFDFDFDFDFDFDBDBDBDBDBDBDBDBDBD8D8D8D8D8D8D8D8D8
+D6D6D6D6D6D6D6D6D6D6D6D6D2D2D2D2D2D2D2D2D2CBCBCBCBCBCBCBCBCBBFBFBFBFBFBFBFBFBF
+B9B9B9B9B9B9B9B9B9B9B9B9B8B8B8B8B8B8B8B8B8B0B0B0B0B0B0B0B0B0969696969696969696
+6262626262626262623C3C3C3C3C3C3C3C3C3C3C3C373737373737373737373737373737373737
+3C3C3C3C3C3C3C3C3C414141414141414141474747474747474747474747444444444444444444
+545454545454545454ABABABABABABABABABF4F4F4F4F4F4F4F4F4F4F4F4FEFEFEFEFEFEFEFEFE
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFBFBFBFBFBFBFBFBFBDBDBDBDBDBDBDBDBDBFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6F6F6F6F6F6F6F6F6B8B8B8B8B8B8
+B8B8B8B8B8B86464646464646464644141414141414141413434343434343434342F2F2F2F2F2F
+2F2F2F2F2F2F292929292929292929282828282828282828252525252525252525242424242424
+242424242424242424242424242424272727272727272727282828282828282828272727272727
+272727242424242424242424222222222222222222222222222222222222222222242424242424
+242424252525252525252525272727272727272727272727282828282828282828292929292929
+2929292B2B2B2B2B2B2B2B2B292929292929292929282828282828282828282828282828282828
+2828282C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2B2B2B2B2B2B2B2B2B292929292929292929
+2929292929292929292929292929292929292929292B2B2B2B2B2B2B2B2B2F2F2F2F2F2F2F2F2F
+2F2F2F3131313131313131313636363636363636363F3F3F3F3F3F3F3F3F4D4D4D4D4D4D4D4D4D
+626262626262626262626262777777777777777777909090909090909090ADADADADADADADADAD
+C7C7C7C7C7C7C7C7C7D9D9D9D9D9D9D9D9D9D9D9D9E0E0E0E0E0E0E0E0E0E3E3E3E3E3E3E3E3E3
+E4E4E4E4E4E4E4E4E4E8E8E8E8E8E8E8E8E8E8E8E8EBEBEBEBEBEBEBEBEBEDEDEDEDEDEDEDEDED
+EBEBEBEBEBEBEBEBEBE8E9E8E8E9E8E8E9E8E5E5E5E5E5E5E5E5E5E5E5E5DFE0DFDFE0DFDFE0DF
+DDDDDDDDDDDDDDDDDDDCDCDCDCDCDCDCDCDCDADADADADADADADADAD8D8D8D8D8D8D8D8D8D8D8D8
+D2D2D2D2D2D2D2D2D2C9C9C9C9C9C9C9C9C9BFBFBFBFBFBFBFBFBFBBBBBBBBBBBBBBBBBBBBBBBB
+BABABABABABABABABAB1B1B1B1B1B1B1B1B19E9E9E9E9E9E9E9E9E717171717171717171424242
+4242424242424242423939393939393939393A3A3A3A3A3A3A3A3A3C3C3C3C3C3C3C3C3C414141
+414141414141484848484848484848484848474747474747474747575757575757575757B7B7B7
+B7B7B7B7B7B7F9F9F9F9F9F9F9F9F9F9F9F9FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAFAFA
+FAFAFAFAFAFAD0D0D0D0D0D0D0D0D0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFF6F6F6F6F6F6F6F6F6B8B8B8B8B8B8B8B8B8B8B8B8646464646464
+6464644141414141414141413434343434343434342F2F2F2F2F2F2F2F2F2F2F2F292929292929
+292929282828282828282828252525252525252525242424242424242424242424242424242424
+242424272727272727272727282828282828282828272727272727272727242424242424242424
+222222222222222222222222222222222222222222242424242424242424252525252525252525
+2727272727272727272727272828282828282828282929292929292929292B2B2B2B2B2B2B2B2B
+2929292929292929292828282828282828282828282828282828282828282C2C2C2C2C2C2C2C2C
+2C2C2C2C2C2C2C2C2C2B2B2B2B2B2B2B2B2B292929292929292929292929292929292929292929
+2929292929292929292B2B2B2B2B2B2B2B2B2F2F2F2F2F2F2F2F2F2F2F2F313131313131313131
+3636363636363636363F3F3F3F3F3F3F3F3F4D4D4D4D4D4D4D4D4D626262626262626262626262
+777777777777777777909090909090909090ADADADADADADADADADC7C7C7C7C7C7C7C7C7D9D9D9
+D9D9D9D9D9D9D9D9D9E0E0E0E0E0E0E0E0E0E3E3E3E3E3E3E3E3E3E4E4E4E4E4E4E4E4E4E8E8E8
+E8E8E8E8E8E8E8E8E8EBEBEBEBEBEBEBEBEBEDEDEDEDEDEDEDEDEDEBEBEBEBEBEBEBEBEBE8E9E8
+E8E9E8E8E9E8E5E5E5E5E5E5E5E5E5E5E5E5DFE0DFDFE0DFDFE0DFDDDDDDDDDDDDDDDDDDDCDCDC
+DCDCDCDCDCDCDADADADADADADADADAD8D8D8D8D8D8D8D8D8D8D8D8D2D2D2D2D2D2D2D2D2C9C9C9
+C9C9C9C9C9C9BFBFBFBFBFBFBFBFBFBBBBBBBBBBBBBBBBBBBBBBBBBABABABABABABABABAB1B1B1
+B1B1B1B1B1B19E9E9E9E9E9E9E9E9E717171717171717171424242424242424242424242393939
+3939393939393A3A3A3A3A3A3A3A3A3C3C3C3C3C3C3C3C3C414141414141414141484848484848
+484848484848474747474747474747575757575757575757B7B7B7B7B7B7B7B7B7F9F9F9F9F9F9
+F9F9F9F9F9F9FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAFAFAFAFAFAFAFAFAD0D0D0D0D0D0
+D0D0D0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+EFEFEFEFEFEFEFEFEFA5A5A5A5A5A5A5A5A5A5A5A55B5B5B5B5B5B5B5B5B3E3E3E3E3E3E3E3E3E
+3131313131313131312C2C2C2C2C2C2C2C2C2C2C2C282828282828282828272727272727272727
+252525252525252525242424242424242424252525252525252525252525252525252525252525
+272727272727272727252525252525252525242424242424242424222222222222222222222222
+222222222222222222252525252525252525272727272727272727272727272727272727272727
+252525252525252525272727272727272727292929292929292929292929292929292929282828
+282828282828282828282828282828282828292929292929292929282828282828282828292929
+2929292929292B2B2B2B2B2B2B2B2B2B2B2B2C2C2C2C2C2C2C2C2C2D2D2D2D2D2D2D2D2D303030
+303030303030323232323232323232323232373737373737373737444444444444444444585858
+5858585858587070707070707070708888888888888888888888889D9D9D9D9D9D9D9D9DB0B0B0
+B0B0B0B0B0B0C1C1C1C1C1C1C1C1C1D1D1D1D1D1D1D1D1D1DADADADADADADADADADADADADCDCDC
+DCDCDCDCDCDCDFE0DFDFE0DFDFE0DFE3E3E3E3E3E3E3E3E3E6E6E6E6E6E6E6E6E6E6E6E6E9E9E9
+E9E9E9E9E9E9EAEAEAEAEAEAEAEAEAEBEBEBEBEBEBEBEBEBEAEAEAEAEAEAEAEAEAE7E7E7E7E7E7
+E7E7E7E7E7E7E0E0E0E0E0E0E0E0E0DEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDCDCDCDCDCDC
+DCDCDCD8D8D8D8D8D8D8D8D8D8D8D8D1D1D1D1D1D1D1D1D1C7C7C7C7C7C7C7C7C7C0C0C0C0C0C0
+C0C0C0BDBDBDBDBDBDBDBDBDBDBDBDBBBBBBBBBBBBBBBBBBB4B4B4B4B4B4B4B4B4A2A2A2A2A2A2
+A2A2A27A7A7A7A7A7A7A7A7A4848484848484848484848483B3B3B3B3B3B3B3B3B3A3A3A3A3A3A
+3A3A3A3636363636363636363C3C3C3C3C3C3C3C3C444444444444444444444444474747474747
+474747555555555555555555AAAAAAAAAAAAAAAAAAF5F5F5F5F5F5F5F5F5F5F5F5FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFBFBFBFBFBFBFBFBFBDBDBDBDBDBDBDBDBDBFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFEFEFEFEFEFEFA5A5A5
+A5A5A5A5A5A5A5A5A55B5B5B5B5B5B5B5B5B3E3E3E3E3E3E3E3E3E3131313131313131312C2C2C
+2C2C2C2C2C2C2C2C2C282828282828282828272727272727272727252525252525252525242424
+242424242424252525252525252525252525252525252525252525272727272727272727252525
+252525252525242424242424242424222222222222222222222222222222222222222222252525
+252525252525272727272727272727272727272727272727272727252525252525252525272727
+272727272727292929292929292929292929292929292929282828282828282828282828282828
+2828282828282929292929292929292828282828282828282929292929292929292B2B2B2B2B2B
+2B2B2B2B2B2B2C2C2C2C2C2C2C2C2C2D2D2D2D2D2D2D2D2D303030303030303030323232323232
+323232323232373737373737373737444444444444444444585858585858585858707070707070
+7070708888888888888888888888889D9D9D9D9D9D9D9D9DB0B0B0B0B0B0B0B0B0C1C1C1C1C1C1
+C1C1C1D1D1D1D1D1D1D1D1D1DADADADADADADADADADADADADCDCDCDCDCDCDCDCDCDFE0DFDFE0DF
+DFE0DFE3E3E3E3E3E3E3E3E3E6E6E6E6E6E6E6E6E6E6E6E6E9E9E9E9E9E9E9E9E9EAEAEAEAEAEA
+EAEAEAEBEBEBEBEBEBEBEBEBEAEAEAEAEAEAEAEAEAE7E7E7E7E7E7E7E7E7E7E7E7E0E0E0E0E0E0
+E0E0E0DEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDCDCDCDCDCDCDCDCDCD8D8D8D8D8D8D8D8D8
+D8D8D8D1D1D1D1D1D1D1D1D1C7C7C7C7C7C7C7C7C7C0C0C0C0C0C0C0C0C0BDBDBDBDBDBDBDBDBD
+BDBDBDBBBBBBBBBBBBBBBBBBB4B4B4B4B4B4B4B4B4A2A2A2A2A2A2A2A2A27A7A7A7A7A7A7A7A7A
+4848484848484848484848483B3B3B3B3B3B3B3B3B3A3A3A3A3A3A3A3A3A363636363636363636
+3C3C3C3C3C3C3C3C3C444444444444444444444444474747474747474747555555555555555555
+AAAAAAAAAAAAAAAAAAF5F5F5F5F5F5F5F5F5F5F5F5FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FBFBFBFBFBFBFBFBFBDBDBDBDBDBDBDBDBDBFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFEFEFEFEFEFEFA5A5A5A5A5A5A5A5A5A5A5A55B5B5B
+5B5B5B5B5B5B3E3E3E3E3E3E3E3E3E3131313131313131312C2C2C2C2C2C2C2C2C2C2C2C282828
+282828282828272727272727272727252525252525252525242424242424242424252525252525
+252525252525252525252525252525272727272727272727252525252525252525242424242424
+242424222222222222222222222222222222222222222222252525252525252525272727272727
+272727272727272727272727272727252525252525252525272727272727272727292929292929
+292929292929292929292929282828282828282828282828282828282828282828292929292929
+2929292828282828282828282929292929292929292B2B2B2B2B2B2B2B2B2B2B2B2C2C2C2C2C2C
+2C2C2C2D2D2D2D2D2D2D2D2D303030303030303030323232323232323232323232373737373737
+373737444444444444444444585858585858585858707070707070707070888888888888888888
+8888889D9D9D9D9D9D9D9D9DB0B0B0B0B0B0B0B0B0C1C1C1C1C1C1C1C1C1D1D1D1D1D1D1D1D1D1
+DADADADADADADADADADADADADCDCDCDCDCDCDCDCDCDFE0DFDFE0DFDFE0DFE3E3E3E3E3E3E3E3E3
+E6E6E6E6E6E6E6E6E6E6E6E6E9E9E9E9E9E9E9E9E9EAEAEAEAEAEAEAEAEAEBEBEBEBEBEBEBEBEB
+EAEAEAEAEAEAEAEAEAE7E7E7E7E7E7E7E7E7E7E7E7E0E0E0E0E0E0E0E0E0DEDEDEDEDEDEDEDEDE
+DEDEDEDEDEDEDEDEDEDCDCDCDCDCDCDCDCDCD8D8D8D8D8D8D8D8D8D8D8D8D1D1D1D1D1D1D1D1D1
+C7C7C7C7C7C7C7C7C7C0C0C0C0C0C0C0C0C0BDBDBDBDBDBDBDBDBDBDBDBDBBBBBBBBBBBBBBBBBB
+B4B4B4B4B4B4B4B4B4A2A2A2A2A2A2A2A2A27A7A7A7A7A7A7A7A7A484848484848484848484848
+3B3B3B3B3B3B3B3B3B3A3A3A3A3A3A3A3A3A3636363636363636363C3C3C3C3C3C3C3C3C444444
+444444444444444444474747474747474747555555555555555555AAAAAAAAAAAAAAAAAAF5F5F5
+F5F5F5F5F5F5F5F5F5FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBFBFBFBFBFBFBFBFBDBDBDB
+DBDBDBDBDBDBFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFEFEFE
+FEFEFEE7E7E7E7E7E7E7E7E79191919191919191919191915252525252525252523C3C3C3C3C3C
+3C3C3C3030303030303030302B2B2B2B2B2B2B2B2B2B2B2B282828282828282828252525252525
+252525242424242424242424252525252525252525282828282828282828282828282828282828
+282828292929292929292929282828282828282828272727272727272727242424242424242424
+242424252525252525252525252525252525252525252525252525252525242424242424242424
+2424242424242424242424242525252525252525252828282828282828282B2B2B2B2B2B2B2B2B
+2B2B2B2B2B2B2B2B2B2B2B2B2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C282828282828282828
+2B2B2B2B2B2B2B2B2B2F2F2F2F2F2F2F2F2F2F2F2F2F2F2F2F2F2F2F2F2F313131313131313131
+353535353535353535393939393939393939393939464646464646464646616161616161616161
+7D7D7D7D7D7D7D7D7D929292929292929292A6A6A6A6A6A6A6A6A6A6A6A6B2B2B2B2B2B2B2B2B2
+BEBEBEBEBEBEBEBEBECACACACACACACACACAD4D4D4D4D4D4D4D4D4DADADADADADADADADADADADA
+DEDEDEDEDEDEDEDEDEE6E6E6E6E6E6E6E6E6EAEAEAEAEAEAEAEAEAEDEDEDEDEDEDEDEDEDEDEDED
+EEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEF0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0EAEAEA
+EAEAEAEAEAEAEAEAEAE4E4E4E4E4E4E4E4E4E1E1E1E1E1E1E1E1E1DFE0DFDFE0DFDFE0DFDFDFDF
+DFDFDFDFDFDFDBDBDBDBDBDBDBDBDBDBDBDBD1D1D1D1D1D1D1D1D1C7C7C7C7C7C7C7C7C7C1C1C1
+C1C1C1C1C1C1BDBDBDBDBDBDBDBDBDBDBDBDB9B9B9B9B9B9B9B9B9B6B6B6B6B6B6B6B6B6A6A6A6
+A6A6A6A6A6A68282828282828282824E4E4E4E4E4E4E4E4E4E4E4E3C3C3C3C3C3C3C3C3C3A3A3A
+3A3A3A3A3A3A3131313131313131313636363636363636363E3E3E3E3E3E3E3E3E3E3E3E424242
+4242424242424E4E4E4E4E4E4E4E4E939393939393939393EDEDEDEDEDEDEDEDEDEDEDEDFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCFCFCFCFCFCFCFCFCE3E3E3E3E3E3E3E3E3FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFEFEFEFEFEFEE7E7E7E7E7E7E7E7E7
+9191919191919191919191915252525252525252523C3C3C3C3C3C3C3C3C303030303030303030
+2B2B2B2B2B2B2B2B2B2B2B2B282828282828282828252525252525252525242424242424242424
+252525252525252525282828282828282828282828282828282828282828292929292929292929
+282828282828282828272727272727272727242424242424242424242424252525252525252525
+252525252525252525252525252525252525242424242424242424242424242424242424242424
+2525252525252525252828282828282828282B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B
+2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2828282828282828282B2B2B2B2B2B2B2B2B2F2F2F
+2F2F2F2F2F2F2F2F2F2F2F2F2F2F2F2F2F2F313131313131313131353535353535353535393939
+3939393939393939394646464646464646466161616161616161617D7D7D7D7D7D7D7D7D929292
+929292929292A6A6A6A6A6A6A6A6A6A6A6A6B2B2B2B2B2B2B2B2B2BEBEBEBEBEBEBEBEBECACACA
+CACACACACACAD4D4D4D4D4D4D4D4D4DADADADADADADADADADADADADEDEDEDEDEDEDEDEDEE6E6E6
+E6E6E6E6E6E6EAEAEAEAEAEAEAEAEAEDEDEDEDEDEDEDEDEDEDEDEDEEEEEEEEEEEEEEEEEEEEEEEE
+EEEEEEEEEEEEF0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0EAEAEAEAEAEAEAEAEAEAEAEAE4E4E4
+E4E4E4E4E4E4E1E1E1E1E1E1E1E1E1DFE0DFDFE0DFDFE0DFDFDFDFDFDFDFDFDFDFDBDBDBDBDBDB
+DBDBDBDBDBDBD1D1D1D1D1D1D1D1D1C7C7C7C7C7C7C7C7C7C1C1C1C1C1C1C1C1C1BDBDBDBDBDBD
+BDBDBDBDBDBDB9B9B9B9B9B9B9B9B9B6B6B6B6B6B6B6B6B6A6A6A6A6A6A6A6A6A6828282828282
+8282824E4E4E4E4E4E4E4E4E4E4E4E3C3C3C3C3C3C3C3C3C3A3A3A3A3A3A3A3A3A313131313131
+3131313636363636363636363E3E3E3E3E3E3E3E3E3E3E3E4242424242424242424E4E4E4E4E4E
+4E4E4E939393939393939393EDEDEDEDEDEDEDEDEDEDEDEDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFCFCFCFCFCFCFCFCFCE3E3E3E3E3E3E3E3E3FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFEFEFEFEFEFEFEFEFEE7E7E7E7E7E7E7E7E7919191919191919191919191
+5252525252525252523C3C3C3C3C3C3C3C3C3030303030303030302B2B2B2B2B2B2B2B2B2B2B2B
+282828282828282828252525252525252525242424242424242424252525252525252525282828
+282828282828282828282828282828282828292929292929292929282828282828282828272727
+272727272727242424242424242424242424252525252525252525252525252525252525252525
+252525252525242424242424242424242424242424242424242424252525252525252525282828
+2828282828282B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2C2C2C2C2C2C2C2C2C2C2C2C
+2C2C2C2C2C2C2828282828282828282B2B2B2B2B2B2B2B2B2F2F2F2F2F2F2F2F2F2F2F2F2F2F2F
+2F2F2F2F2F2F313131313131313131353535353535353535393939393939393939393939464646
+4646464646466161616161616161617D7D7D7D7D7D7D7D7D929292929292929292A6A6A6A6A6A6
+A6A6A6A6A6A6B2B2B2B2B2B2B2B2B2BEBEBEBEBEBEBEBEBECACACACACACACACACAD4D4D4D4D4D4
+D4D4D4DADADADADADADADADADADADADEDEDEDEDEDEDEDEDEE6E6E6E6E6E6E6E6E6EAEAEAEAEAEA
+EAEAEAEDEDEDEDEDEDEDEDEDEDEDEDEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEF0F0F0F0F0F0
+F0F0F0F0F0F0F0F0F0F0F0F0EAEAEAEAEAEAEAEAEAEAEAEAE4E4E4E4E4E4E4E4E4E1E1E1E1E1E1
+E1E1E1DFE0DFDFE0DFDFE0DFDFDFDFDFDFDFDFDFDFDBDBDBDBDBDBDBDBDBDBDBDBD1D1D1D1D1D1
+D1D1D1C7C7C7C7C7C7C7C7C7C1C1C1C1C1C1C1C1C1BDBDBDBDBDBDBDBDBDBDBDBDB9B9B9B9B9B9
+B9B9B9B6B6B6B6B6B6B6B6B6A6A6A6A6A6A6A6A6A68282828282828282824E4E4E4E4E4E4E4E4E
+4E4E4E3C3C3C3C3C3C3C3C3C3A3A3A3A3A3A3A3A3A313131313131313131363636363636363636
+3E3E3E3E3E3E3E3E3E3E3E3E4242424242424242424E4E4E4E4E4E4E4E4E939393939393939393
+EDEDEDEDEDEDEDEDEDEDEDEDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCFCFCFCFCFCFCFCFC
+E3E3E3E3E3E3E3E3E3FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFD
+FDFDFDFDFDFDD8D8D8D8D8D8D8D8D87C7C7C7C7C7C7C7C7C7C7C7C4B4B4B4B4B4B4B4B4B393939
+3939393939392F2F2F2F2F2F2F2F2F2B2B2B2B2B2B2B2B2B2B2B2B282828282828282828242424
+2424242424242424242424242424242B2B2B2B2B2B2B2B2B323232323232323232323232353535
+3535353535353434343434343434343232323232323232322D2D2D2D2D2D2D2D2D2B2B2B2B2B2B
+2B2B2B2B2B2B282828282828282828252525252525252525252525252525252525242424242424
+2424242424242222222222222222222424242424242424242727272727272727272B2B2B2B2B2B
+2B2B2B2F2F2F2F2F2F2F2F2F2F2F2F3030303030303030302C2C2C2C2C2C2C2C2C292929292929
+2929292C2C2C2C2C2C2C2C2C313131313131313131313131353535353535353535373737373737
+3737373E3E3E3E3E3E3E3E3E494949494949494949494949666666666666666666858585858585
+8585859D9D9D9D9D9D9D9D9DAAAAAAAAAAAAAAAAAAB6B6B6B6B6B6B6B6B6B6B6B6BCBCBCBCBCBC
+BCBCBCC2C2C2C2C2C2C2C2C2CCCCCCCCCCCCCCCCCCD5D5D5D5D5D5D5D5D5DBDBDBDBDBDBDBDBDB
+DBDBDBE4E4E4E4E4E4E4E4E4EDEDEDEDEDEDEDEDEDF1F1F1F1F1F1F1F1F1F6F6F6F6F6F6F6F6F6
+F6F6F6F7F7F7F7F7F7F7F7F7F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F6F6F6F6F6F6F6F6F6
+F0F0F0F0F0F0F0F0F0F0F0F0EAEAEAEAEAEAEAEAEAE6E6E6E6E6E6E6E6E6E2E2E2E2E2E2E2E2E2
+DFDFDFDFDFDFDFDFDFDBDBDBDBDBDBDBDBDBDBDBDBD4D4D4D4D4D4D4D4D4C9C9C9C9C9C9C9C9C9
+C3C3C3C3C3C3C3C3C3BEBEBEBEBEBEBEBEBEBEBEBEB8B8B8B8B8B8B8B8B8B3B3B3B3B3B3B3B3B3
+A7A7A7A7A7A7A7A7A7878787878787878787555555555555555555555555404040404040404040
+3C3C3C3C3C3C3C3C3C303030303030303030313131313131313131373737373737373737373737
+3E3E3E3E3E3E3E3E3E474747474747474747838383838383838383E6E6E6E6E6E6E6E6E6E6E6E6
+FEFEFEFEFEFEFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9F9F9F9F9F9F9F9F9C6C6C6C6C6C6C6C6C6FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDFDFDFDFDFDFDD8D8D8D8D8D8
+D8D8D87C7C7C7C7C7C7C7C7C7C7C7C4B4B4B4B4B4B4B4B4B3939393939393939392F2F2F2F2F2F
+2F2F2F2B2B2B2B2B2B2B2B2B2B2B2B282828282828282828242424242424242424242424242424
+2424242B2B2B2B2B2B2B2B2B323232323232323232323232353535353535353535343434343434
+3434343232323232323232322D2D2D2D2D2D2D2D2D2B2B2B2B2B2B2B2B2B2B2B2B282828282828
+282828252525252525252525252525252525252525242424242424242424242424222222222222
+2222222424242424242424242727272727272727272B2B2B2B2B2B2B2B2B2F2F2F2F2F2F2F2F2F
+2F2F2F3030303030303030302C2C2C2C2C2C2C2C2C2929292929292929292C2C2C2C2C2C2C2C2C
+3131313131313131313131313535353535353535353737373737373737373E3E3E3E3E3E3E3E3E
+4949494949494949494949496666666666666666668585858585858585859D9D9D9D9D9D9D9D9D
+AAAAAAAAAAAAAAAAAAB6B6B6B6B6B6B6B6B6B6B6B6BCBCBCBCBCBCBCBCBCC2C2C2C2C2C2C2C2C2
+CCCCCCCCCCCCCCCCCCD5D5D5D5D5D5D5D5D5DBDBDBDBDBDBDBDBDBDBDBDBE4E4E4E4E4E4E4E4E4
+EDEDEDEDEDEDEDEDEDF1F1F1F1F1F1F1F1F1F6F6F6F6F6F6F6F6F6F6F6F6F7F7F7F7F7F7F7F7F7
+F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F6F6F6F6F6F6F6F6F6F0F0F0F0F0F0F0F0F0F0F0F0
+EAEAEAEAEAEAEAEAEAE6E6E6E6E6E6E6E6E6E2E2E2E2E2E2E2E2E2DFDFDFDFDFDFDFDFDFDBDBDB
+DBDBDBDBDBDBDBDBDBD4D4D4D4D4D4D4D4D4C9C9C9C9C9C9C9C9C9C3C3C3C3C3C3C3C3C3BEBEBE
+BEBEBEBEBEBEBEBEBEB8B8B8B8B8B8B8B8B8B3B3B3B3B3B3B3B3B3A7A7A7A7A7A7A7A7A7878787
+8787878787875555555555555555555555554040404040404040403C3C3C3C3C3C3C3C3C303030
+3030303030303131313131313131313737373737373737373737373E3E3E3E3E3E3E3E3E474747
+474747474747838383838383838383E6E6E6E6E6E6E6E6E6E6E6E6FEFEFEFEFEFEFEFEFEFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFF9F9F9F9F9F9F9F9F9C6C6C6C6C6C6C6C6C6FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFF9F9F9F9F9F9F9F9F9BFBFBFBFBFBFBFBFBF696969696969696969
+6969694545454545454545453737373737373737373131313131313131312D2D2D2D2D2D2D2D2D
+2D2D2D282828282828282828242424242424242424272727272727272727373737373737373737
+4C4C4C4C4C4C4C4C4C4C4C4C505050505050505050474747474747474747404040404040404040
+3E3E3E3E3E3E3E3E3E3A3A3A3A3A3A3A3A3A3A3A3A323232323232323232292929292929292929
+272727272727272727242424242424242424242424242424242424242424272727272727272727
+2828282828282828282B2B2B2B2B2B2B2B2B313131313131313131313131313131313131313131
+2C2C2C2C2C2C2C2C2C2B2B2B2B2B2B2B2B2B303030303030303030363636363636363636363636
+3E3E3E3E3E3E3E3E3E474747474747474747505050505050505050676767676767676767676767
+898989898989898989A2A2A2A2A2A2A2A2A2B0B0B0B0B0B0B0B0B0B8B8B8B8B8B8B8B8B8BCBCBC
+BCBCBCBCBCBCBCBCBCC0C0C0C0C0C0C0C0C0C5C5C5C5C5C5C5C5C5CCCCCCCCCCCCCCCCCCD5D5D5
+D5D5D5D5D5D5DEDEDEDEDEDEDEDEDEDEDEDEE8E9E8E8E9E8E8E9E8F1F1F1F1F1F1F1F1F1F5F5F5
+F5F5F5F5F5F5FAFAFAFAFAFAFAFAFAFAFAFAFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFD
+FDFDFDFDFDFDFAFAFAFAFAFAFAFAFAF4F4F4F4F4F4F4F4F4F4F4F4EDEDEDEDEDEDEDEDEDE8E8E8
+E8E8E8E8E8E8E4E4E4E4E4E4E4E4E4DFDFDFDFDFDFDFDFDFDBDBDBDBDBDBDBDBDBDBDBDBD6D6D5
+D6D6D5D6D6D5CFCFCFCFCFCFCFCFCFC6C6C6C6C6C6C6C6C6BFBFBFBFBFBFBFBFBFBFBFBFB8B8B8
+B8B8B8B8B8B8B3B3B3B3B3B3B3B3B3A6A6A6A6A6A6A6A6A68A8A8A8A8A8A8A8A8A5A5A5A5A5A5A
+5A5A5A5A5A5A4242424242424242423F3F3F3F3F3F3F3F3F313131313131313131303030303030
+3030303232323232323232323232323A3A3A3A3A3A3A3A3A424242424242424242767676767676
+767676DFE0DFDFE0DFDFE0DFDFE0DFFEFEFEFEFEFEFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAFAFAFAFAFA
+FAFAFAD3D3D3D3D3D3D3D3D3FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+F9F9F9F9F9F9F9F9F9BFBFBFBFBFBFBFBFBF696969696969696969696969454545454545454545
+3737373737373737373131313131313131312D2D2D2D2D2D2D2D2D2D2D2D282828282828282828
+2424242424242424242727272727272727273737373737373737374C4C4C4C4C4C4C4C4C4C4C4C
+5050505050505050504747474747474747474040404040404040403E3E3E3E3E3E3E3E3E3A3A3A
+3A3A3A3A3A3A3A3A3A323232323232323232292929292929292929272727272727272727242424
+2424242424242424242424242424242424242727272727272727272828282828282828282B2B2B
+2B2B2B2B2B2B3131313131313131313131313131313131313131312C2C2C2C2C2C2C2C2C2B2B2B
+2B2B2B2B2B2B3030303030303030303636363636363636363636363E3E3E3E3E3E3E3E3E474747
+474747474747505050505050505050676767676767676767676767898989898989898989A2A2A2
+A2A2A2A2A2A2B0B0B0B0B0B0B0B0B0B8B8B8B8B8B8B8B8B8BCBCBCBCBCBCBCBCBCBCBCBCC0C0C0
+C0C0C0C0C0C0C5C5C5C5C5C5C5C5C5CCCCCCCCCCCCCCCCCCD5D5D5D5D5D5D5D5D5DEDEDEDEDEDE
+DEDEDEDEDEDEE8E9E8E8E9E8E8E9E8F1F1F1F1F1F1F1F1F1F5F5F5F5F5F5F5F5F5FAFAFAFAFAFA
+FAFAFAFAFAFAFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFAFAFAFAFAFA
+FAFAFAF4F4F4F4F4F4F4F4F4F4F4F4EDEDEDEDEDEDEDEDEDE8E8E8E8E8E8E8E8E8E4E4E4E4E4E4
+E4E4E4DFDFDFDFDFDFDFDFDFDBDBDBDBDBDBDBDBDBDBDBDBD6D6D5D6D6D5D6D6D5CFCFCFCFCFCF
+CFCFCFC6C6C6C6C6C6C6C6C6BFBFBFBFBFBFBFBFBFBFBFBFB8B8B8B8B8B8B8B8B8B3B3B3B3B3B3
+B3B3B3A6A6A6A6A6A6A6A6A68A8A8A8A8A8A8A8A8A5A5A5A5A5A5A5A5A5A5A5A5A424242424242
+4242423F3F3F3F3F3F3F3F3F313131313131313131303030303030303030323232323232323232
+3232323A3A3A3A3A3A3A3A3A424242424242424242767676767676767676DFE0DFDFE0DFDFE0DF
+DFE0DFFEFEFEFEFEFEFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAFAFAFAFAFAFAFAFAD3D3D3D3D3D3D3D3D3
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9F9F9F9F9F9F9F9F9BFBFBF
+BFBFBFBFBFBF696969696969696969696969454545454545454545373737373737373737313131
+3131313131312D2D2D2D2D2D2D2D2D2D2D2D282828282828282828242424242424242424272727
+2727272727273737373737373737374C4C4C4C4C4C4C4C4C4C4C4C505050505050505050474747
+4747474747474040404040404040403E3E3E3E3E3E3E3E3E3A3A3A3A3A3A3A3A3A3A3A3A323232
+323232323232292929292929292929272727272727272727242424242424242424242424242424
+2424242424242727272727272727272828282828282828282B2B2B2B2B2B2B2B2B313131313131
+3131313131313131313131313131312C2C2C2C2C2C2C2C2C2B2B2B2B2B2B2B2B2B303030303030
+3030303636363636363636363636363E3E3E3E3E3E3E3E3E474747474747474747505050505050
+505050676767676767676767676767898989898989898989A2A2A2A2A2A2A2A2A2B0B0B0B0B0B0
+B0B0B0B8B8B8B8B8B8B8B8B8BCBCBCBCBCBCBCBCBCBCBCBCC0C0C0C0C0C0C0C0C0C5C5C5C5C5C5
+C5C5C5CCCCCCCCCCCCCCCCCCD5D5D5D5D5D5D5D5D5DEDEDEDEDEDEDEDEDEDEDEDEE8E9E8E8E9E8
+E8E9E8F1F1F1F1F1F1F1F1F1F5F5F5F5F5F5F5F5F5FAFAFAFAFAFAFAFAFAFAFAFAFDFDFDFDFDFD
+FDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFAFAFAFAFAFAFAFAFAF4F4F4F4F4F4F4F4F4
+F4F4F4EDEDEDEDEDEDEDEDEDE8E8E8E8E8E8E8E8E8E4E4E4E4E4E4E4E4E4DFDFDFDFDFDFDFDFDF
+DBDBDBDBDBDBDBDBDBDBDBDBD6D6D5D6D6D5D6D6D5CFCFCFCFCFCFCFCFCFC6C6C6C6C6C6C6C6C6
+BFBFBFBFBFBFBFBFBFBFBFBFB8B8B8B8B8B8B8B8B8B3B3B3B3B3B3B3B3B3A6A6A6A6A6A6A6A6A6
+8A8A8A8A8A8A8A8A8A5A5A5A5A5A5A5A5A5A5A5A5A4242424242424242423F3F3F3F3F3F3F3F3F
+3131313131313131313030303030303030303232323232323232323232323A3A3A3A3A3A3A3A3A
+424242424242424242767676767676767676DFE0DFDFE0DFDFE0DFDFE0DFFEFEFEFEFEFEFEFEFE
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFAFAFAFAFAFAFAFAFAD3D3D3D3D3D3D3D3D3FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5F5F5F5F5F5F5F5F5A9A9A9A9A9A9A9A9A9565656565656
+5656565656563E3E3E3E3E3E3E3E3E3636363636363636363131313131313131312F2F2F2F2F2F
+2F2F2F2F2F2F2929292929292929292424242424242424242B2B2B2B2B2B2B2B2B454545454545
+4545455D5D5D5D5D5D5D5D5D5D5D5D6666666666666666665F605F5F605F5F605F585858585858
+5858585959595959595959595858585858585858585858584B4B4B4B4B4B4B4B4B393939393939
+3939393131313131313131312B2B2B2B2B2B2B2B2B2B2B2B2828282828282828282C2C2C2C2C2C
+2C2C2C2929292929292929292929292929292929292D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D
+2D2D2D2B2B2B2B2B2B2B2B2B2F2F2F2F2F2F2F2F2F3636363636363636363F3F3F3F3F3F3F3F3F
+3F3F3F4D4D4D4D4D4D4D4D4D5B5B5B5B5B5B5B5B5B666666666666666666878787878787878787
+878787A6A6A6A6A6A6A6A6A6B7B7B7B7B7B7B7B7B7BCBCBCBCBCBCBCBCBCBEBEBEBEBEBEBEBEBE
+C0C0C0C0C0C0C0C0C0C0C0C0C5C5C5C5C5C5C5C5C5CBCBCBCBCBCBCBCBCBD2D2D2D2D2D2D2D2D2
+DDDDDDDDDDDDDDDDDDE8E8E8E8E8E8E8E8E8E8E8E8F1F1F1F1F1F1F1F1F1F9F9F9F9F9F9F9F9F9
+FBFBFBFBFBFBFBFBFBFDFDFDFDFDFDFDFDFDFDFDFDFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE
+FDFDFDFDFDFDFDFDFDFCFCFCFCFCFCFCFCFCF6F6F6F6F6F6F6F6F6F6F6F6EDEDEDEDEDEDEDEDED
+E8E8E8E8E8E8E8E8E8E4E4E4E4E4E4E4E4E4DDDDDDDDDDDDDDDDDDD9D9D9D9D9D9D9D9D9D9D9D9
+D6D6D5D6D6D5D6D6D5D1D1D1D1D1D1D1D1D1CBCBCBCBCBCBCBCBCBC3C3C3C3C3C3C3C3C3C3C3C3
+BBBBBBBBBBBBBBBBBBB2B2B2B2B2B2B2B2B2A4A4A4A4A4A4A4A4A48C8C8C8C8C8C8C8C8C5C5C5C
+5C5C5C5C5C5C5C5C5C4242424242424242423E3E3E3E3E3E3E3E3E3030303030303030302C2C2C
+2C2C2C2C2C2C303030303030303030303030393939393939393939404040404040404040707070
+707070707070DBDBDBDBDBDBDBDBDBDBDBDBFEFEFEFEFEFEFEFEFEFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBFBFB
+FBFBFBFBFBFBDBDBDBDBDBDBDBDBDBFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFF5F5F5F5F5F5F5F5F5A9A9A9A9A9A9A9A9A95656565656565656565656563E3E3E3E3E3E
+3E3E3E3636363636363636363131313131313131312F2F2F2F2F2F2F2F2F2F2F2F292929292929
+2929292424242424242424242B2B2B2B2B2B2B2B2B4545454545454545455D5D5D5D5D5D5D5D5D
+5D5D5D6666666666666666665F605F5F605F5F605F585858585858585858595959595959595959
+5858585858585858585858584B4B4B4B4B4B4B4B4B393939393939393939313131313131313131
+2B2B2B2B2B2B2B2B2B2B2B2B2828282828282828282C2C2C2C2C2C2C2C2C292929292929292929
+2929292929292929292D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2B2B2B2B2B2B2B2B2B
+2F2F2F2F2F2F2F2F2F3636363636363636363F3F3F3F3F3F3F3F3F3F3F3F4D4D4D4D4D4D4D4D4D
+5B5B5B5B5B5B5B5B5B666666666666666666878787878787878787878787A6A6A6A6A6A6A6A6A6
+B7B7B7B7B7B7B7B7B7BCBCBCBCBCBCBCBCBCBEBEBEBEBEBEBEBEBEC0C0C0C0C0C0C0C0C0C0C0C0
+C5C5C5C5C5C5C5C5C5CBCBCBCBCBCBCBCBCBD2D2D2D2D2D2D2D2D2DDDDDDDDDDDDDDDDDDE8E8E8
+E8E8E8E8E8E8E8E8E8F1F1F1F1F1F1F1F1F1F9F9F9F9F9F9F9F9F9FBFBFBFBFBFBFBFBFBFDFDFD
+FDFDFDFDFDFDFDFDFDFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFDFDFDFDFDFDFDFDFDFCFCFC
+FCFCFCFCFCFCF6F6F6F6F6F6F6F6F6F6F6F6EDEDEDEDEDEDEDEDEDE8E8E8E8E8E8E8E8E8E4E4E4
+E4E4E4E4E4E4DDDDDDDDDDDDDDDDDDD9D9D9D9D9D9D9D9D9D9D9D9D6D6D5D6D6D5D6D6D5D1D1D1
+D1D1D1D1D1D1CBCBCBCBCBCBCBCBCBC3C3C3C3C3C3C3C3C3C3C3C3BBBBBBBBBBBBBBBBBBB2B2B2
+B2B2B2B2B2B2A4A4A4A4A4A4A4A4A48C8C8C8C8C8C8C8C8C5C5C5C5C5C5C5C5C5C5C5C5C424242
+4242424242423E3E3E3E3E3E3E3E3E3030303030303030302C2C2C2C2C2C2C2C2C303030303030
+303030303030393939393939393939404040404040404040707070707070707070DBDBDBDBDBDB
+DBDBDBDBDBDBFEFEFEFEFEFEFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBFBFBFBFBFBFBFBFBDBDBDBDBDBDB
+DBDBDBFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFEFEFEFEFEFEEBEBEBEBEBEBEBEBEB
+939393939393939393484848484848484848484848393939393939393939323232323232323232
+3131313131313131313131313131313131313131312B2B2B2B2B2B2B2B2B252525252525252525
+2F2F2F2F2F2F2F2F2F4B4B4B4B4B4B4B4B4B666666666666666666666666717171717171717171
+7171717171717171716D6D6D6D6D6D6D6D6D6F6F6F6F6F6F6F6F6F6F6F6F6F6F6F6F6F6F6F6F6F
+6767676767676767675858585858585858584E4E4E4E4E4E4E4E4E444444444444444444444444
+3737373737373737372F2F2F2F2F2F2F2F2F2F2F2F2F2F2F2F2F2F2D2D2D2D2D2D2D2D2D2D2D2D
+2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D3030303030303030303636363636363636363F3F3F
+3F3F3F3F3F3F4E4E4E4E4E4E4E4E4E4E4E4E6262626262626262626C6C6C6C6C6C6C6C6C828282
+828282828282A6A6A6A6A6A6A6A6A6A6A6A6BABABABABABABABABAC5C5C5C5C5C5C5C5C5C6C6C6
+C6C6C6C6C6C6C5C5C5C5C5C5C5C5C5C9C9C9C9C9C9C9C9C9C9C9C9CDCDCDCDCDCDCDCDCDD5D5D5
+D5D5D5D5D5D5E1E1E1E1E1E1E1E1E1EAEAEAEAEAEAEAEAEAF1F1F1F1F1F1F1F1F1F1F1F1F5F5F5
+F5F5F5F5F5F5FCFCFCFCFCFCFCFCFCFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE
+FEFEFEFEFEFEFFFFFFFFFFFFFFFFFFFEFEFEFEFEFEFEFEFEFCFCFCFCFCFCFCFCFCF7F7F7F7F7F7
+F7F7F7F7F7F7EEEEEEEEEEEEEEEEEEE7E7E7E7E7E7E7E7E7E3E3E3E3E3E3E3E3E3DCDCDCDCDCDC
+DCDCDCD9D9D9D9D9D9D9D9D9D9D9D9D6D6D6D6D6D6D6D6D6D2D2D2D2D2D2D2D2D2CCCCCCCCCCCC
+CCCCCCC5C5C5C5C5C5C5C5C5C5C5C5BDBDBDBDBDBDBDBDBDB1B1B1B1B1B1B1B1B1A4A4A4A4A4A4
+A4A4A48F8F8F8F8F8F8F8F8F5F605F5F605F5F605F5F605F4242424242424242423B3B3B3B3B3B
+3B3B3B2F2F2F2F2F2F2F2F2F2B2B2B2B2B2B2B2B2B303030303030303030303030373737373737
+3737373F3F3F3F3F3F3F3F3F6D6D6D6D6D6D6D6D6DDADADADADADADADADADADADAFDFDFDFDFDFD
+FDFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFAFAFAFAFAFAFAFAFAD5D5D5D5D5D5D5D5D5FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFEFEFEFEFEFEFEFEFEEBEBEBEBEBEBEBEBEB939393939393939393484848
+484848484848484848393939393939393939323232323232323232313131313131313131313131
+3131313131313131312B2B2B2B2B2B2B2B2B2525252525252525252F2F2F2F2F2F2F2F2F4B4B4B
+4B4B4B4B4B4B6666666666666666666666667171717171717171717171717171717171716D6D6D
+6D6D6D6D6D6D6F6F6F6F6F6F6F6F6F6F6F6F6F6F6F6F6F6F6F6F6F676767676767676767585858
+5858585858584E4E4E4E4E4E4E4E4E4444444444444444444444443737373737373737372F2F2F
+2F2F2F2F2F2F2F2F2F2F2F2F2F2F2F2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D
+2D2D2D2D2D2D3030303030303030303636363636363636363F3F3F3F3F3F3F3F3F4E4E4E4E4E4E
+4E4E4E4E4E4E6262626262626262626C6C6C6C6C6C6C6C6C828282828282828282A6A6A6A6A6A6
+A6A6A6A6A6A6BABABABABABABABABAC5C5C5C5C5C5C5C5C5C6C6C6C6C6C6C6C6C6C5C5C5C5C5C5
+C5C5C5C9C9C9C9C9C9C9C9C9C9C9C9CDCDCDCDCDCDCDCDCDD5D5D5D5D5D5D5D5D5E1E1E1E1E1E1
+E1E1E1EAEAEAEAEAEAEAEAEAF1F1F1F1F1F1F1F1F1F1F1F1F5F5F5F5F5F5F5F5F5FCFCFCFCFCFC
+FCFCFCFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFFFFFFFFFFFF
+FFFFFFFEFEFEFEFEFEFEFEFEFCFCFCFCFCFCFCFCFCF7F7F7F7F7F7F7F7F7F7F7F7EEEEEEEEEEEE
+EEEEEEE7E7E7E7E7E7E7E7E7E3E3E3E3E3E3E3E3E3DCDCDCDCDCDCDCDCDCD9D9D9D9D9D9D9D9D9
+D9D9D9D6D6D6D6D6D6D6D6D6D2D2D2D2D2D2D2D2D2CCCCCCCCCCCCCCCCCCC5C5C5C5C5C5C5C5C5
+C5C5C5BDBDBDBDBDBDBDBDBDB1B1B1B1B1B1B1B1B1A4A4A4A4A4A4A4A4A48F8F8F8F8F8F8F8F8F
+5F605F5F605F5F605F5F605F4242424242424242423B3B3B3B3B3B3B3B3B2F2F2F2F2F2F2F2F2F
+2B2B2B2B2B2B2B2B2B3030303030303030303030303737373737373737373F3F3F3F3F3F3F3F3F
+6D6D6D6D6D6D6D6D6DDADADADADADADADADADADADAFDFDFDFDFDFDFDFDFDFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FAFAFAFAFAFAFAFAFAD5D5D5D5D5D5D5D5D5FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFE
+FEFEFEFEFEFEEBEBEBEBEBEBEBEBEB939393939393939393484848484848484848484848393939
+3939393939393232323232323232323131313131313131313131313131313131313131312B2B2B
+2B2B2B2B2B2B2525252525252525252F2F2F2F2F2F2F2F2F4B4B4B4B4B4B4B4B4B666666666666
+6666666666667171717171717171717171717171717171716D6D6D6D6D6D6D6D6D6F6F6F6F6F6F
+6F6F6F6F6F6F6F6F6F6F6F6F6F6F6F6767676767676767675858585858585858584E4E4E4E4E4E
+4E4E4E4444444444444444444444443737373737373737372F2F2F2F2F2F2F2F2F2F2F2F2F2F2F
+2F2F2F2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D303030303030
+3030303636363636363636363F3F3F3F3F3F3F3F3F4E4E4E4E4E4E4E4E4E4E4E4E626262626262
+6262626C6C6C6C6C6C6C6C6C828282828282828282A6A6A6A6A6A6A6A6A6A6A6A6BABABABABABA
+BABABAC5C5C5C5C5C5C5C5C5C6C6C6C6C6C6C6C6C6C5C5C5C5C5C5C5C5C5C9C9C9C9C9C9C9C9C9
+C9C9C9CDCDCDCDCDCDCDCDCDD5D5D5D5D5D5D5D5D5E1E1E1E1E1E1E1E1E1EAEAEAEAEAEAEAEAEA
+F1F1F1F1F1F1F1F1F1F1F1F1F5F5F5F5F5F5F5F5F5FCFCFCFCFCFCFCFCFCFEFEFEFEFEFEFEFEFE
+FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFFFFFFFFFFFFFFFFFFFEFEFEFEFEFEFEFEFE
+FCFCFCFCFCFCFCFCFCF7F7F7F7F7F7F7F7F7F7F7F7EEEEEEEEEEEEEEEEEEE7E7E7E7E7E7E7E7E7
+E3E3E3E3E3E3E3E3E3DCDCDCDCDCDCDCDCDCD9D9D9D9D9D9D9D9D9D9D9D9D6D6D6D6D6D6D6D6D6
+D2D2D2D2D2D2D2D2D2CCCCCCCCCCCCCCCCCCC5C5C5C5C5C5C5C5C5C5C5C5BDBDBDBDBDBDBDBDBD
+B1B1B1B1B1B1B1B1B1A4A4A4A4A4A4A4A4A48F8F8F8F8F8F8F8F8F5F605F5F605F5F605F5F605F
+4242424242424242423B3B3B3B3B3B3B3B3B2F2F2F2F2F2F2F2F2F2B2B2B2B2B2B2B2B2B303030
+3030303030303030303737373737373737373F3F3F3F3F3F3F3F3F6D6D6D6D6D6D6D6D6DDADADA
+DADADADADADADADADAFDFDFDFDFDFDFDFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAFAFAFAFAFAFAFAFAD5D5D5
+D5D5D5D5D5D5FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDFDFDFDFDFDFDDBDBDBDBDBDB
+DBDBDB7D7D7D7D7D7D7D7D7D3E3E3E3E3E3E3E3E3E3E3E3E323232323232323232303030303030
+3030303030303030303030303232323232323232323232322B2B2B2B2B2B2B2B2B252525252525
+2525253131313131313131314E4E4E4E4E4E4E4E4E686868686868686868686868737373737373
+737373767676767676767676777777777777777777797979797979797979797979797979797979
+7979797676767676767676767272727272727272726B6B6B6B6B6B6B6B6B626262626262626262
+6262625151515151515151514444444444444444443F3F3F3F3F3F3F3F3F3B3B3B3B3B3B3B3B3B
+3A3A3A3A3A3A3A3A3A3A3A3A3C3C3C3C3C3C3C3C3C3F3F3F3F3F3F3F3F3F444444444444444444
+4E4E4E4E4E4E4E4E4E5E5E5E5E5E5E5E5E5E5E5E5E6F6F6F6F6F6F6F6F6F878787878787878787
+A9A9A9A9A9A9A9A9A9BDBDBDBDBDBDBDBDBDBDBDBDC6C6C6C6C6C6C6C6C6CDCDCDCDCDCDCDCDCD
+D1D1D1D1D1D1D1D1D1D6D6D5D6D6D5D6D6D5DBDBDBDBDBDBDBDBDBDBDBDBDEDEDEDEDEDEDEDEDE
+E3E3E3E3E3E3E3E3E3EDEDEDEDEDEDEDEDEDF1F1F1F1F1F1F1F1F1F3F3F3F3F3F3F3F3F3F3F3F3
+F8F8F8F8F8F8F8F8F8FDFDFDFDFDFDFDFDFDFEFEFEFEFEFEFEFEFEFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFEFEFEFEFEFEFCFCFCFCFCFCFCFCFCF7F7F7
+F7F7F7F7F7F7F7F7F7F0F0F0F0F0F0F0F0F0EAEAEAEAEAEAEAEAEAE5E5E5E5E5E5E5E5E5DFDFDF
+DFDFDFDFDFDFDBDBDBDBDBDBDBDBDBDBDBDBD9D9D9D9D9D9D9D9D9D5D5D5D5D5D5D5D5D5CECECE
+CECECECECECEC7C7C7C7C7C7C7C7C7C7C7C7BFBFBFBFBFBFBFBFBFB3B3B3B3B3B3B3B3B3A7A7A7
+A7A7A7A7A7A79090909090909090905F605F5F605F5F605F5F605F4242424242424242423A3A3A
+3A3A3A3A3A3A303030303030303030292929292929292929303030303030303030303030363636
+3636363636363E3E3E3E3E3E3E3E3E717171717171717171DEDEDEDEDEDEDEDEDEDEDEDEFEFEFE
+FEFEFEFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9F9F9F9F9F9F9F9F9BFBFBFBFBFBFBFBFBFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFDFDFDFDFDFDFDFDFDDBDBDBDBDBDBDBDBDB7D7D7D7D7D7D7D7D7D
+3E3E3E3E3E3E3E3E3E3E3E3E323232323232323232303030303030303030303030303030303030
+3232323232323232323232322B2B2B2B2B2B2B2B2B252525252525252525313131313131313131
+4E4E4E4E4E4E4E4E4E686868686868686868686868737373737373737373767676767676767676
+777777777777777777797979797979797979797979797979797979797979767676767676767676
+7272727272727272726B6B6B6B6B6B6B6B6B626262626262626262626262515151515151515151
+4444444444444444443F3F3F3F3F3F3F3F3F3B3B3B3B3B3B3B3B3B3A3A3A3A3A3A3A3A3A3A3A3A
+3C3C3C3C3C3C3C3C3C3F3F3F3F3F3F3F3F3F4444444444444444444E4E4E4E4E4E4E4E4E5E5E5E
+5E5E5E5E5E5E5E5E5E6F6F6F6F6F6F6F6F6F878787878787878787A9A9A9A9A9A9A9A9A9BDBDBD
+BDBDBDBDBDBDBDBDBDC6C6C6C6C6C6C6C6C6CDCDCDCDCDCDCDCDCDD1D1D1D1D1D1D1D1D1D6D6D5
+D6D6D5D6D6D5DBDBDBDBDBDBDBDBDBDBDBDBDEDEDEDEDEDEDEDEDEE3E3E3E3E3E3E3E3E3EDEDED
+EDEDEDEDEDEDF1F1F1F1F1F1F1F1F1F3F3F3F3F3F3F3F3F3F3F3F3F8F8F8F8F8F8F8F8F8FDFDFD
+FDFDFDFDFDFDFEFEFEFEFEFEFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFEFEFEFEFEFEFEFEFEFCFCFCFCFCFCFCFCFCF7F7F7F7F7F7F7F7F7F7F7F7F0F0F0
+F0F0F0F0F0F0EAEAEAEAEAEAEAEAEAE5E5E5E5E5E5E5E5E5DFDFDFDFDFDFDFDFDFDBDBDBDBDBDB
+DBDBDBDBDBDBD9D9D9D9D9D9D9D9D9D5D5D5D5D5D5D5D5D5CECECECECECECECECEC7C7C7C7C7C7
+C7C7C7C7C7C7BFBFBFBFBFBFBFBFBFB3B3B3B3B3B3B3B3B3A7A7A7A7A7A7A7A7A7909090909090
+9090905F605F5F605F5F605F5F605F4242424242424242423A3A3A3A3A3A3A3A3A303030303030
+3030302929292929292929293030303030303030303030303636363636363636363E3E3E3E3E3E
+3E3E3E717171717171717171DEDEDEDEDEDEDEDEDEDEDEDEFEFEFEFEFEFEFEFEFEFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFF9F9F9F9F9F9F9F9F9BFBFBFBFBFBFBFBFBFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FDFDFDFDFDFDFDFDFDD6D6D5D6D6D5D6D6D57373737373737373733A3A3A3A3A3A3A3A3A3A3A3A
+2F2F2F2F2F2F2F2F2F2C2C2C2C2C2C2C2C2C2D2D2D2D2D2D2D2D2D323232323232323232323232
+2C2C2C2C2C2C2C2C2C2727272727272727273030303030303030304C4C4C4C4C4C4C4C4C666666
+6666666666666666667272727272727272727676767676767676767979797979797979797C7C7C
+7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7D7D7D7D7D7D7D7D7D7F7F7F7F7F7F7F7F7F7C7C7C
+7C7C7C7C7C7C7979797979797979797979796E6E6E6E6E6E6E6E6E646464646464646464616161
+6161616161615F605F5F605F5F605F5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5E5E5E
+5E5E5E5E5E5E5F605F5F605F5F605F6767676767676767677575757575757575757575758D8D8D
+8D8D8D8D8D8DADADADADADADADADADC3C3C3C3C3C3C3C3C3CCCCCCCCCCCCCCCCCCCCCCCCD4D4D4
+D4D4D4D4D4D4DCDCDCDCDCDCDCDCDCE4E4E4E4E4E4E4E4E4E8E9E8E8E9E8E8E9E8ECECECECECEC
+ECECECECECECEBEBEBEBEBEBEBEBEBECECECECECECECECECF0F0F0F0F0F0F0F0F0F2F2F2F2F2F2
+F2F2F2F6F6F6F6F6F6F6F6F6F6F6F6FCFCFCFCFCFCFCFCFCFEFEFEFEFEFEFEFEFEFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE
+FEFEFEFDFDFDFDFDFDFDFDFDF9F9F9F9F9F9F9F9F9F9F9F9F2F2F2F2F2F2F2F2F2EEEEEEEEEEEE
+EEEEEEE8E9E8E8E9E8E8E9E8E0E0E0E0E0E0E0E0E0DFE0DFDFE0DFDFE0DFDFE0DFDFDFDFDFDFDF
+DFDFDFDBDBDBDBDBDBDBDBDBD4D4D4D4D4D4D4D4D4CACACACACACACACACACACACAC1C1C1C1C1C1
+C1C1C1B6B6B6B6B6B6B6B6B6AAAAAAAAAAAAAAAAAA949494949494949494626262626262626262
+6262624444444444444444443C3C3C3C3C3C3C3C3C303030303030303030292929292929292929
+3030303030303030303030303535353535353535353B3B3B3B3B3B3B3B3B6F6F6F6F6F6F6F6F6F
+DBDBDBDBDBDBDBDBDBDBDBDBFEFEFEFEFEFEFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9F9F9F9F9F9F9F9F9
+C4C4C4C4C4C4C4C4C4FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDFDFDFDFDFDFDD6D6D5
+D6D6D5D6D6D57373737373737373733A3A3A3A3A3A3A3A3A3A3A3A2F2F2F2F2F2F2F2F2F2C2C2C
+2C2C2C2C2C2C2D2D2D2D2D2D2D2D2D3232323232323232323232322C2C2C2C2C2C2C2C2C272727
+2727272727273030303030303030304C4C4C4C4C4C4C4C4C666666666666666666666666727272
+7272727272727676767676767676767979797979797979797C7C7C7C7C7C7C7C7C7C7C7C7C7C7C
+7C7C7C7C7C7C7D7D7D7D7D7D7D7D7D7F7F7F7F7F7F7F7F7F7C7C7C7C7C7C7C7C7C797979797979
+7979797979796E6E6E6E6E6E6E6E6E6464646464646464646161616161616161615F605F5F605F
+5F605F5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5E5E5E5E5E5E5E5E5E5F605F5F605F
+5F605F6767676767676767677575757575757575757575758D8D8D8D8D8D8D8D8DADADADADADAD
+ADADADC3C3C3C3C3C3C3C3C3CCCCCCCCCCCCCCCCCCCCCCCCD4D4D4D4D4D4D4D4D4DCDCDCDCDCDC
+DCDCDCE4E4E4E4E4E4E4E4E4E8E9E8E8E9E8E8E9E8ECECECECECECECECECECECECEBEBEBEBEBEB
+EBEBEBECECECECECECECECECF0F0F0F0F0F0F0F0F0F2F2F2F2F2F2F2F2F2F6F6F6F6F6F6F6F6F6
+F6F6F6FCFCFCFCFCFCFCFCFCFEFEFEFEFEFEFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFDFDFDFDFDFDFDFDFD
+F9F9F9F9F9F9F9F9F9F9F9F9F2F2F2F2F2F2F2F2F2EEEEEEEEEEEEEEEEEEE8E9E8E8E9E8E8E9E8
+E0E0E0E0E0E0E0E0E0DFE0DFDFE0DFDFE0DFDFE0DFDFDFDFDFDFDFDFDFDFDBDBDBDBDBDBDBDBDB
+D4D4D4D4D4D4D4D4D4CACACACACACACACACACACACAC1C1C1C1C1C1C1C1C1B6B6B6B6B6B6B6B6B6
+AAAAAAAAAAAAAAAAAA949494949494949494626262626262626262626262444444444444444444
+3C3C3C3C3C3C3C3C3C303030303030303030292929292929292929303030303030303030303030
+3535353535353535353B3B3B3B3B3B3B3B3B6F6F6F6F6F6F6F6F6FDBDBDBDBDBDBDBDBDBDBDBDB
+FEFEFEFEFEFEFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9F9F9F9F9F9F9F9F9C4C4C4C4C4C4C4C4C4FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDFDFDFDFDFDFDD6D6D5D6D6D5D6D6D5737373737373
+7373733A3A3A3A3A3A3A3A3A3A3A3A2F2F2F2F2F2F2F2F2F2C2C2C2C2C2C2C2C2C2D2D2D2D2D2D
+2D2D2D3232323232323232323232322C2C2C2C2C2C2C2C2C272727272727272727303030303030
+3030304C4C4C4C4C4C4C4C4C666666666666666666666666727272727272727272767676767676
+7676767979797979797979797C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7D7D7D7D7D7D
+7D7D7D7F7F7F7F7F7F7F7F7F7C7C7C7C7C7C7C7C7C7979797979797979797979796E6E6E6E6E6E
+6E6E6E6464646464646464646161616161616161615F605F5F605F5F605F5C5C5C5C5C5C5C5C5C
+5C5C5C5C5C5C5C5C5C5C5C5C5E5E5E5E5E5E5E5E5E5F605F5F605F5F605F676767676767676767
+7575757575757575757575758D8D8D8D8D8D8D8D8DADADADADADADADADADC3C3C3C3C3C3C3C3C3
+CCCCCCCCCCCCCCCCCCCCCCCCD4D4D4D4D4D4D4D4D4DCDCDCDCDCDCDCDCDCE4E4E4E4E4E4E4E4E4
+E8E9E8E8E9E8E8E9E8ECECECECECECECECECECECECEBEBEBEBEBEBEBEBEBECECECECECECECECEC
+F0F0F0F0F0F0F0F0F0F2F2F2F2F2F2F2F2F2F6F6F6F6F6F6F6F6F6F6F6F6FCFCFCFCFCFCFCFCFC
+FEFEFEFEFEFEFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFEFEFEFEFEFE
+FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFDFDFDFDFDFDFDFDFDF9F9F9F9F9F9F9F9F9F9F9F9
+F2F2F2F2F2F2F2F2F2EEEEEEEEEEEEEEEEEEE8E9E8E8E9E8E8E9E8E0E0E0E0E0E0E0E0E0DFE0DF
+DFE0DFDFE0DFDFE0DFDFDFDFDFDFDFDFDFDFDBDBDBDBDBDBDBDBDBD4D4D4D4D4D4D4D4D4CACACA
+CACACACACACACACACAC1C1C1C1C1C1C1C1C1B6B6B6B6B6B6B6B6B6AAAAAAAAAAAAAAAAAA949494
+9494949494946262626262626262626262624444444444444444443C3C3C3C3C3C3C3C3C303030
+3030303030302929292929292929293030303030303030303030303535353535353535353B3B3B
+3B3B3B3B3B3B6F6F6F6F6F6F6F6F6FDBDBDBDBDBDBDBDBDBDBDBDBFEFEFEFEFEFEFEFEFEFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFF9F9F9F9F9F9F9F9F9C4C4C4C4C4C4C4C4C4FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFCFCFCFCFCFCFCFCFCD0D0D0D0D0D0D0D0D06C6C6C6C6C6C6C6C6C363636363636363636
+3636362C2C2C2C2C2C2C2C2C2929292929292929292B2B2B2B2B2B2B2B2B303030303030303030
+3030302D2D2D2D2D2D2D2D2D2828282828282828283030303030303030304B4B4B4B4B4B4B4B4B
+6464646464646464646464647272727272727272727676767676767676767A7A7A7A7A7A7A7A7A
+7D7D7D7D7D7D7D7D7D7E7E7E7E7E7E7E7E7E7E7E7E808080808080808080828282828282828282
+8383838383838383838585858585858585858585858282828282828282827E7E7E7E7E7E7E7E7E
+7F7F7F7F7F7F7F7F7F818181818181818181818181818181818181818181838383838383838383
+868686868686868686888888888888888888919191919191919191A3A3A3A3A3A3A3A3A3A3A3A3
+B8B8B8B8B8B8B8B8B8CBCBCBCBCBCBCBCBCBD6D6D5D6D6D5D6D6D5DDDDDDDDDDDDDDDDDDDDDDDD
+E6E6E6E6E6E6E6E6E6EDEDEDEDEDEDEDEDEDF1F1F1F1F1F1F1F1F1F2F2F2F2F2F2F2F2F2F3F3F3
+F3F3F3F3F3F3F3F3F3F1F1F1F1F1F1F1F1F1F1F1F1F1F1F1F1F1F1F2F2F2F2F2F2F2F2F2F4F4F4
+F4F4F4F4F4F4F8F8F8F8F8F8F8F8F8F8F8F8FDFDFDFDFDFDFDFDFDFEFEFEFEFEFEFEFEFEFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFEFEFEFEFEFEFDFDFDFDFDFDFDFDFDFDFDFD
+FDFDFDFDFDFDFDFDFDFDFDFDFDFDFDF9F9F9F9F9F9F9F9F9F9F9F9F4F4F4F4F4F4F4F4F4EFEFEF
+EFEFEFEFEFEFE8E8E8E8E8E8E8E8E8E2E2E2E2E2E2E2E2E2E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1
+E1E1E1E1E1E1DDDDDDDDDDDDDDDDDDD8D8D8D8D8D8D8D8D8D0D0D0D0D0D0D0D0D0D0D0D0C4C4C4
+C4C4C4C4C4C4B8B8B8B8B8B8B8B8B8AAAAAAAAAAAAAAAAAA9494949494949494945F605F5F605F
+5F605F5F605F3F3F3F3F3F3F3F3F3F3C3C3C3C3C3C3C3C3C3030303030303030302B2B2B2B2B2B
+2B2B2B2F2F2F2F2F2F2F2F2F2F2F2F3434343434343434343939393939393939396C6C6C6C6C6C
+6C6C6CD8D8D8D8D8D8D8D8D8D8D8D8FDFDFDFDFDFDFDFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBFBFBFBFBFB
+FBFBFBD9D9D9D9D9D9D9D9D9FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCFCFCFCFCFCFCFCFC
+D0D0D0D0D0D0D0D0D06C6C6C6C6C6C6C6C6C3636363636363636363636362C2C2C2C2C2C2C2C2C
+2929292929292929292B2B2B2B2B2B2B2B2B3030303030303030303030302D2D2D2D2D2D2D2D2D
+2828282828282828283030303030303030304B4B4B4B4B4B4B4B4B646464646464646464646464
+7272727272727272727676767676767676767A7A7A7A7A7A7A7A7A7D7D7D7D7D7D7D7D7D7E7E7E
+7E7E7E7E7E7E7E7E7E808080808080808080828282828282828282838383838383838383858585
+8585858585858585858282828282828282827E7E7E7E7E7E7E7E7E7F7F7F7F7F7F7F7F7F818181
+818181818181818181818181818181818181838383838383838383868686868686868686888888
+888888888888919191919191919191A3A3A3A3A3A3A3A3A3A3A3A3B8B8B8B8B8B8B8B8B8CBCBCB
+CBCBCBCBCBCBD6D6D5D6D6D5D6D6D5DDDDDDDDDDDDDDDDDDDDDDDDE6E6E6E6E6E6E6E6E6EDEDED
+EDEDEDEDEDEDF1F1F1F1F1F1F1F1F1F2F2F2F2F2F2F2F2F2F3F3F3F3F3F3F3F3F3F3F3F3F1F1F1
+F1F1F1F1F1F1F1F1F1F1F1F1F1F1F1F2F2F2F2F2F2F2F2F2F4F4F4F4F4F4F4F4F4F8F8F8F8F8F8
+F8F8F8F8F8F8FDFDFDFDFDFDFDFDFDFEFEFEFEFEFEFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFEFEFEFEFEFEFEFEFEFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFD
+FDFDFDF9F9F9F9F9F9F9F9F9F9F9F9F4F4F4F4F4F4F4F4F4EFEFEFEFEFEFEFEFEFE8E8E8E8E8E8
+E8E8E8E2E2E2E2E2E2E2E2E2E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1DDDDDDDDDDDD
+DDDDDDD8D8D8D8D8D8D8D8D8D0D0D0D0D0D0D0D0D0D0D0D0C4C4C4C4C4C4C4C4C4B8B8B8B8B8B8
+B8B8B8AAAAAAAAAAAAAAAAAA9494949494949494945F605F5F605F5F605F5F605F3F3F3F3F3F3F
+3F3F3F3C3C3C3C3C3C3C3C3C3030303030303030302B2B2B2B2B2B2B2B2B2F2F2F2F2F2F2F2F2F
+2F2F2F3434343434343434343939393939393939396C6C6C6C6C6C6C6C6CD8D8D8D8D8D8D8D8D8
+D8D8D8FDFDFDFDFDFDFDFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBFBFBFBFBFBFBFBFBD9D9D9D9D9D9D9D9D9
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCFCFCFCFCFCFCFCFCD0D0D0D0D0D0D0D0D06C6C6C
+6C6C6C6C6C6C3636363636363636363636362C2C2C2C2C2C2C2C2C2929292929292929292B2B2B
+2B2B2B2B2B2B3030303030303030303030302D2D2D2D2D2D2D2D2D282828282828282828303030
+3030303030304B4B4B4B4B4B4B4B4B646464646464646464646464727272727272727272767676
+7676767676767A7A7A7A7A7A7A7A7A7D7D7D7D7D7D7D7D7D7E7E7E7E7E7E7E7E7E7E7E7E808080
+808080808080828282828282828282838383838383838383858585858585858585858585828282
+8282828282827E7E7E7E7E7E7E7E7E7F7F7F7F7F7F7F7F7F818181818181818181818181818181
+818181818181838383838383838383868686868686868686888888888888888888919191919191
+919191A3A3A3A3A3A3A3A3A3A3A3A3B8B8B8B8B8B8B8B8B8CBCBCBCBCBCBCBCBCBD6D6D5D6D6D5
+D6D6D5DDDDDDDDDDDDDDDDDDDDDDDDE6E6E6E6E6E6E6E6E6EDEDEDEDEDEDEDEDEDF1F1F1F1F1F1
+F1F1F1F2F2F2F2F2F2F2F2F2F3F3F3F3F3F3F3F3F3F3F3F3F1F1F1F1F1F1F1F1F1F1F1F1F1F1F1
+F1F1F1F2F2F2F2F2F2F2F2F2F4F4F4F4F4F4F4F4F4F8F8F8F8F8F8F8F8F8F8F8F8FDFDFDFDFDFD
+FDFDFDFEFEFEFEFEFEFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFEFEFE
+FEFEFEFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDF9F9F9F9F9F9F9F9F9
+F9F9F9F4F4F4F4F4F4F4F4F4EFEFEFEFEFEFEFEFEFE8E8E8E8E8E8E8E8E8E2E2E2E2E2E2E2E2E2
+E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1DDDDDDDDDDDDDDDDDDD8D8D8D8D8D8D8D8D8
+D0D0D0D0D0D0D0D0D0D0D0D0C4C4C4C4C4C4C4C4C4B8B8B8B8B8B8B8B8B8AAAAAAAAAAAAAAAAAA
+9494949494949494945F605F5F605F5F605F5F605F3F3F3F3F3F3F3F3F3F3C3C3C3C3C3C3C3C3C
+3030303030303030302B2B2B2B2B2B2B2B2B2F2F2F2F2F2F2F2F2F2F2F2F343434343434343434
+3939393939393939396C6C6C6C6C6C6C6C6CD8D8D8D8D8D8D8D8D8D8D8D8FDFDFDFDFDFDFDFDFD
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFBFBFBFBFBFBFBFBFBD9D9D9D9D9D9D9D9D9FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFBFBFBFBFBFBFBFBFBC5C5C5C5C5C5C5C5C55F605F5F605F5F605F323232323232
+3232323232322B2B2B2B2B2B2B2B2B2828282828282828282929292929292929292F2F2F2F2F2F
+2F2F2F2F2F2F2D2D2D2D2D2D2D2D2D2929292929292929292F2F2F2F2F2F2F2F2F484848484848
+4848486363636363636363636363637272727272727272727777777777777777777C7C7C7C7C7C
+7C7C7C7E7E7E7E7E7E7E7E7E7F7F7F7F7F7F7F7F7F7F7F7F818181818181818181838383838383
+8383838686868686868686868888888888888888888888888A8A8A8A8A8A8A8A8A8B8B8B8B8B8B
+8B8B8B8D8D8D8D8D8D8D8D8D9191919191919191919797979797979797979797979E9E9E9E9E9E
+9E9E9EA3A3A3A3A3A3A3A3A3A9A9A9A9A9A9A9A9A9BABABABABABABABABACCCCCCCCCCCCCCCCCC
+CCCCCCD6D6D6D6D6D6D6D6D6DFDFDFDFDFDFDFDFDFE4E4E4E4E4E4E4E4E4EBEBEBEBEBEBEBEBEB
+EBEBEBF1F1F1F1F1F1F1F1F1F4F4F4F4F4F4F4F4F4F5F5F5F5F5F5F5F5F5F5F5F5F5F5F5F5F5F5
+F5F5F5F5F5F5F5F5F5F5F5F5F5F5F5F5F5F5F5F5F5F4F4F4F4F4F4F4F4F4F6F6F6F6F6F6F6F6F6
+F7F7F7F7F7F7F7F7F7F9F9F9F9F9F9F9F9F9F9F9F9FDFDFDFDFDFDFDFDFDFEFEFEFEFEFEFEFEFE
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDFDFDFDFDFDFDF6F6F6F6F6F6F6F6F6
+F7F7F7F7F7F7F7F7F7FBFBFBFBFBFBFBFBFBF9F9F9F9F9F9F9F9F9F9F9F9F5F5F5F5F5F5F5F5F5
+F0F0F0F0F0F0F0F0F0E8E8E8E8E8E8E8E8E8E0E0E0E0E0E0E0E0E0DFE0DFDFE0DFDFE0DFDFE0DF
+E0E0E0E0E0E0E0E0E0DDDDDDDDDDDDDDDDDDD9D9D9D9D9D9D9D9D9D2D2D2D2D2D2D2D2D2D2D2D2
+C7C7C7C7C7C7C7C7C7B9B9B9B9B9B9B9B9B9ABABABABABABABABAB9595959595959595955E5E5E
+5E5E5E5E5E5E5E5E5E3B3B3B3B3B3B3B3B3B3737373737373737373030303030303030302D2D2D
+2D2D2D2D2D2D2F2F2F2F2F2F2F2F2F2F2F2F323232323232323232363636363636363636686868
+686868686868D6D6D5D6D6D5D6D6D5D6D6D5FDFDFDFDFDFDFDFDFDFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9F9F9
+F9F9F9F9F9F9C7C7C7C7C7C7C7C7C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBFBFBFBFBFB
+FBFBFBC5C5C5C5C5C5C5C5C55F605F5F605F5F605F3232323232323232323232322B2B2B2B2B2B
+2B2B2B2828282828282828282929292929292929292F2F2F2F2F2F2F2F2F2F2F2F2D2D2D2D2D2D
+2D2D2D2929292929292929292F2F2F2F2F2F2F2F2F484848484848484848636363636363636363
+6363637272727272727272727777777777777777777C7C7C7C7C7C7C7C7C7E7E7E7E7E7E7E7E7E
+7F7F7F7F7F7F7F7F7F7F7F7F818181818181818181838383838383838383868686868686868686
+8888888888888888888888888A8A8A8A8A8A8A8A8A8B8B8B8B8B8B8B8B8B8D8D8D8D8D8D8D8D8D
+9191919191919191919797979797979797979797979E9E9E9E9E9E9E9E9EA3A3A3A3A3A3A3A3A3
+A9A9A9A9A9A9A9A9A9BABABABABABABABABACCCCCCCCCCCCCCCCCCCCCCCCD6D6D6D6D6D6D6D6D6
+DFDFDFDFDFDFDFDFDFE4E4E4E4E4E4E4E4E4EBEBEBEBEBEBEBEBEBEBEBEBF1F1F1F1F1F1F1F1F1
+F4F4F4F4F4F4F4F4F4F5F5F5F5F5F5F5F5F5F5F5F5F5F5F5F5F5F5F5F5F5F5F5F5F5F5F5F5F5F5
+F5F5F5F5F5F5F5F5F5F4F4F4F4F4F4F4F4F4F6F6F6F6F6F6F6F6F6F7F7F7F7F7F7F7F7F7F9F9F9
+F9F9F9F9F9F9F9F9F9FDFDFDFDFDFDFDFDFDFEFEFEFEFEFEFEFEFEFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFDFDFDFDFDFDFDFDFDF6F6F6F6F6F6F6F6F6F7F7F7F7F7F7F7F7F7FBFBFB
+FBFBFBFBFBFBF9F9F9F9F9F9F9F9F9F9F9F9F5F5F5F5F5F5F5F5F5F0F0F0F0F0F0F0F0F0E8E8E8
+E8E8E8E8E8E8E0E0E0E0E0E0E0E0E0DFE0DFDFE0DFDFE0DFDFE0DFE0E0E0E0E0E0E0E0E0DDDDDD
+DDDDDDDDDDDDD9D9D9D9D9D9D9D9D9D2D2D2D2D2D2D2D2D2D2D2D2C7C7C7C7C7C7C7C7C7B9B9B9
+B9B9B9B9B9B9ABABABABABABABABAB9595959595959595955E5E5E5E5E5E5E5E5E5E5E5E3B3B3B
+3B3B3B3B3B3B3737373737373737373030303030303030302D2D2D2D2D2D2D2D2D2F2F2F2F2F2F
+2F2F2F2F2F2F323232323232323232363636363636363636686868686868686868D6D6D5D6D6D5
+D6D6D5D6D6D5FDFDFDFDFDFDFDFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9F9F9F9F9F9F9F9F9C7C7C7C7C7C7
+C7C7C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAFAFAFAFAFAFAFAFAC0C0C0C0C0C0C0C0C0
+5A5A5A5A5A5A5A5A5A3131313131313131313131312C2C2C2C2C2C2C2C2C282828282828282828
+2828282828282828282D2D2D2D2D2D2D2D2D2D2D2D2F2F2F2F2F2F2F2F2F2B2B2B2B2B2B2B2B2B
+2D2D2D2D2D2D2D2D2D4141414141414141415C5C5C5C5C5C5C5C5C5C5C5C707070707070707070
+7979797979797979797D7D7D7D7D7D7D7D7D7F7F7F7F7F7F7F7F7F7F7F7F7F7F7F7F7F7F7F7F7F
+8282828282828282828585858585858585858888888888888888888B8B8B8B8B8B8B8B8B8B8B8B
+8D8D8D8D8D8D8D8D8D8F8F8F8F8F8F8F8F8F9393939393939393939B9B9B9B9B9B9B9B9BA3A3A3
+A3A3A3A3A3A3A3A3A3AAAAAAAAAAAAAAAAAAB1B1B1B1B1B1B1B1B1BCBCBCBCBCBCBCBCBCCCCCCC
+CCCCCCCCCCCCDBDBDBDBDBDBDBDBDBDBDBDBE3E3E3E3E3E3E3E3E3E9E9E9E9E9E9E9E9E9EDEDED
+EDEDEDEDEDEDF1F1F1F1F1F1F1F1F1F1F1F1F5F5F5F5F5F5F5F5F5F6F6F6F6F6F6F6F6F6F7F7F7
+F7F7F7F7F7F7F6F6F6F6F6F6F6F6F6F5F5F5F5F5F5F5F5F5F5F5F5F7F7F7F7F7F7F7F7F7F8F8F8
+F8F8F8F8F8F8F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9FCFCFCFCFCFCFCFCFCFCFCFCFDFDFD
+FDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFDFDFD
+FDFDFDFDFDFDF9F9F9F9F9F9F9F9F9F7F7F7F7F7F7F7F7F7F9F9F9F9F9F9F9F9F9F5F5F5F5F5F5
+F5F5F5F5F5F5F0F0F0F0F0F0F0F0F0EDEDEDEDEDEDEDEDEDE5E5E5E5E5E5E5E5E5DBDBDBDBDBDB
+DBDBDBD7D7D7D7D7D7D7D7D7D7D7D7D6D6D6D6D6D6D6D6D6D5D5D5D5D5D5D5D5D5D4D4D4D4D4D4
+D4D4D4D0D0D0D0D0D0D0D0D0D0D0D0CACACACACACACACACABDBDBDBDBDBDBDBDBDAFAFAFAFAFAF
+AFAFAF9A9A9A9A9A9A9A9A9A6565656565656565656565653C3C3C3C3C3C3C3C3C373737373737
+3737373131313131313131312D2D2D2D2D2D2D2D2D2F2F2F2F2F2F2F2F2F2F2F2F313131313131
+3131313434343434343434345A5A5A5A5A5A5A5A5AC6C6C6C6C6C6C6C6C6C6C6C6FCFCFCFCFCFC
+FCFCFCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFF9F9F9F9F9F9F9F9F9C6C6C6C6C6C6C6C6C6FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFAFAFAFAFAFAFAFAFAC0C0C0C0C0C0C0C0C05A5A5A5A5A5A5A5A5A313131
+3131313131313131312C2C2C2C2C2C2C2C2C2828282828282828282828282828282828282D2D2D
+2D2D2D2D2D2D2D2D2D2F2F2F2F2F2F2F2F2F2B2B2B2B2B2B2B2B2B2D2D2D2D2D2D2D2D2D414141
+4141414141415C5C5C5C5C5C5C5C5C5C5C5C7070707070707070707979797979797979797D7D7D
+7D7D7D7D7D7D7F7F7F7F7F7F7F7F7F7F7F7F7F7F7F7F7F7F7F7F7F828282828282828282858585
+8585858585858888888888888888888B8B8B8B8B8B8B8B8B8B8B8B8D8D8D8D8D8D8D8D8D8F8F8F
+8F8F8F8F8F8F9393939393939393939B9B9B9B9B9B9B9B9BA3A3A3A3A3A3A3A3A3A3A3A3AAAAAA
+AAAAAAAAAAAAB1B1B1B1B1B1B1B1B1BCBCBCBCBCBCBCBCBCCCCCCCCCCCCCCCCCCCDBDBDBDBDBDB
+DBDBDBDBDBDBE3E3E3E3E3E3E3E3E3E9E9E9E9E9E9E9E9E9EDEDEDEDEDEDEDEDEDF1F1F1F1F1F1
+F1F1F1F1F1F1F5F5F5F5F5F5F5F5F5F6F6F6F6F6F6F6F6F6F7F7F7F7F7F7F7F7F7F6F6F6F6F6F6
+F6F6F6F5F5F5F5F5F5F5F5F5F5F5F5F7F7F7F7F7F7F7F7F7F8F8F8F8F8F8F8F8F8F9F9F9F9F9F9
+F9F9F9F9F9F9F9F9F9F9F9F9FCFCFCFCFCFCFCFCFCFCFCFCFDFDFDFDFDFDFDFDFDFDFDFDFDFDFD
+FDFDFDFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFDFDFDFDFDFDFDFDFDF9F9F9F9F9F9
+F9F9F9F7F7F7F7F7F7F7F7F7F9F9F9F9F9F9F9F9F9F5F5F5F5F5F5F5F5F5F5F5F5F0F0F0F0F0F0
+F0F0F0EDEDEDEDEDEDEDEDEDE5E5E5E5E5E5E5E5E5DBDBDBDBDBDBDBDBDBD7D7D7D7D7D7D7D7D7
+D7D7D7D6D6D6D6D6D6D6D6D6D5D5D5D5D5D5D5D5D5D4D4D4D4D4D4D4D4D4D0D0D0D0D0D0D0D0D0
+D0D0D0CACACACACACACACACABDBDBDBDBDBDBDBDBDAFAFAFAFAFAFAFAFAF9A9A9A9A9A9A9A9A9A
+6565656565656565656565653C3C3C3C3C3C3C3C3C373737373737373737313131313131313131
+2D2D2D2D2D2D2D2D2D2F2F2F2F2F2F2F2F2F2F2F2F313131313131313131343434343434343434
+5A5A5A5A5A5A5A5A5AC6C6C6C6C6C6C6C6C6C6C6C6FCFCFCFCFCFCFCFCFCFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+F9F9F9F9F9F9F9F9F9C6C6C6C6C6C6C6C6C6FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAFAFA
+FAFAFAFAFAFAC0C0C0C0C0C0C0C0C05A5A5A5A5A5A5A5A5A3131313131313131313131312C2C2C
+2C2C2C2C2C2C2828282828282828282828282828282828282D2D2D2D2D2D2D2D2D2D2D2D2F2F2F
+2F2F2F2F2F2F2B2B2B2B2B2B2B2B2B2D2D2D2D2D2D2D2D2D4141414141414141415C5C5C5C5C5C
+5C5C5C5C5C5C7070707070707070707979797979797979797D7D7D7D7D7D7D7D7D7F7F7F7F7F7F
+7F7F7F7F7F7F7F7F7F7F7F7F7F7F7F828282828282828282858585858585858585888888888888
+8888888B8B8B8B8B8B8B8B8B8B8B8B8D8D8D8D8D8D8D8D8D8F8F8F8F8F8F8F8F8F939393939393
+9393939B9B9B9B9B9B9B9B9BA3A3A3A3A3A3A3A3A3A3A3A3AAAAAAAAAAAAAAAAAAB1B1B1B1B1B1
+B1B1B1BCBCBCBCBCBCBCBCBCCCCCCCCCCCCCCCCCCCDBDBDBDBDBDBDBDBDBDBDBDBE3E3E3E3E3E3
+E3E3E3E9E9E9E9E9E9E9E9E9EDEDEDEDEDEDEDEDEDF1F1F1F1F1F1F1F1F1F1F1F1F5F5F5F5F5F5
+F5F5F5F6F6F6F6F6F6F6F6F6F7F7F7F7F7F7F7F7F7F6F6F6F6F6F6F6F6F6F5F5F5F5F5F5F5F5F5
+F5F5F5F7F7F7F7F7F7F7F7F7F8F8F8F8F8F8F8F8F8F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9
+FCFCFCFCFCFCFCFCFCFCFCFCFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFEFEFEFEFEFEFEFEFE
+FEFEFEFEFEFEFEFEFEFEFEFEFDFDFDFDFDFDFDFDFDF9F9F9F9F9F9F9F9F9F7F7F7F7F7F7F7F7F7
+F9F9F9F9F9F9F9F9F9F5F5F5F5F5F5F5F5F5F5F5F5F0F0F0F0F0F0F0F0F0EDEDEDEDEDEDEDEDED
+E5E5E5E5E5E5E5E5E5DBDBDBDBDBDBDBDBDBD7D7D7D7D7D7D7D7D7D7D7D7D6D6D6D6D6D6D6D6D6
+D5D5D5D5D5D5D5D5D5D4D4D4D4D4D4D4D4D4D0D0D0D0D0D0D0D0D0D0D0D0CACACACACACACACACA
+BDBDBDBDBDBDBDBDBDAFAFAFAFAFAFAFAFAF9A9A9A9A9A9A9A9A9A656565656565656565656565
+3C3C3C3C3C3C3C3C3C3737373737373737373131313131313131312D2D2D2D2D2D2D2D2D2F2F2F
+2F2F2F2F2F2F2F2F2F3131313131313131313434343434343434345A5A5A5A5A5A5A5A5AC6C6C6
+C6C6C6C6C6C6C6C6C6FCFCFCFCFCFCFCFCFCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9F9F9F9F9F9F9F9F9C6C6C6
+C6C6C6C6C6C6FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8F8F8F8F8F8F8F8F8B9B9B9B9B9B9
+B9B9B95555555555555555553131313131313131313131312C2C2C2C2C2C2C2C2C282828282828
+2828282727272727272727272C2C2C2C2C2C2C2C2C2C2C2C3131313131313131312C2C2C2C2C2C
+2C2C2C2B2B2B2B2B2B2B2B2B3A3A3A3A3A3A3A3A3A5858585858585858585858586D6D6D6D6D6D
+6D6D6D7878787878787878787D7D7D7D7D7D7D7D7D7F7F7F7F7F7F7F7F7F808080808080808080
+8080808282828282828282828585858585858585858989898989898989898D8D8D8D8D8D8D8D8D
+8D8D8D9191919191919191919494949494949494949B9B9B9B9B9B9B9B9BA2A2A2A2A2A2A2A2A2
+AAAAAAAAAAAAAAAAAAAAAAAAB1B1B1B1B1B1B1B1B1BABABABABABABABABAC4C4C4C4C4C4C4C4C4
+D1D1D1D1D1D1D1D1D1DDDDDDDDDDDDDDDDDDDDDDDDE7E7E7E7E7E7E7E7E7EDEDEDEDEDEDEDEDED
+F1F1F1F1F1F1F1F1F1F3F3F3F3F3F3F3F3F3F3F3F3F5F5F5F5F5F5F5F5F5F5F5F5F5F5F5F5F5F5
+F5F5F5F5F5F5F5F5F5F5F5F5F5F5F5F5F5F5F6F6F6F6F6F6F6F6F6F6F6F6F7F7F7F7F7F7F7F7F7
+F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9
+F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9FDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFD
+FAFAFAFAFAFAFAFAFAF6F6F6F6F6F6F6F6F6F5F5F5F5F5F5F5F5F5F3F3F3F3F3F3F3F3F3EAEAEA
+EAEAEAEAEAEAEAEAEAE1E1E1E1E1E1E1E1E1DCDCDCDCDCDCDCDCDCD0D0D0D0D0D0D0D0D0C5C5C5
+C5C5C5C5C5C5BDBDBDBDBDBDBDBDBDBDBDBDB8B8B8B8B8B8B8B8B8B8B8B8B8B8B8B8B8B8C0C0C0
+C0C0C0C0C0C0C9C9C9C9C9C9C9C9C9C9C9C9C7C7C7C7C7C7C7C7C7BEBEBEBEBEBEBEBEBEB1B1B1
+B1B1B1B1B1B19E9E9E9E9E9E9E9E9E6B6B6B6B6B6B6B6B6B6B6B6B3C3C3C3C3C3C3C3C3C363636
+3636363636363131313131313131312D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2F2F2F
+2F2F2F2F2F2F3232323232323232324F4F4F4F4F4F4F4F4FB8B8B8B8B8B8B8B8B8B8B8B8FAFAFA
+FAFAFAFAFAFAFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9F9F9F9F9F9F9F9F9BBBBBBBBBBBBBBBBBBFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFF8F8F8F8F8F8F8F8F8B9B9B9B9B9B9B9B9B9555555555555555555
+3131313131313131313131312C2C2C2C2C2C2C2C2C282828282828282828272727272727272727
+2C2C2C2C2C2C2C2C2C2C2C2C3131313131313131312C2C2C2C2C2C2C2C2C2B2B2B2B2B2B2B2B2B
+3A3A3A3A3A3A3A3A3A5858585858585858585858586D6D6D6D6D6D6D6D6D787878787878787878
+7D7D7D7D7D7D7D7D7D7F7F7F7F7F7F7F7F7F808080808080808080808080828282828282828282
+8585858585858585858989898989898989898D8D8D8D8D8D8D8D8D8D8D8D919191919191919191
+9494949494949494949B9B9B9B9B9B9B9B9BA2A2A2A2A2A2A2A2A2AAAAAAAAAAAAAAAAAAAAAAAA
+B1B1B1B1B1B1B1B1B1BABABABABABABABABAC4C4C4C4C4C4C4C4C4D1D1D1D1D1D1D1D1D1DDDDDD
+DDDDDDDDDDDDDDDDDDE7E7E7E7E7E7E7E7E7EDEDEDEDEDEDEDEDEDF1F1F1F1F1F1F1F1F1F3F3F3
+F3F3F3F3F3F3F3F3F3F5F5F5F5F5F5F5F5F5F5F5F5F5F5F5F5F5F5F5F5F5F5F5F5F5F5F5F5F5F5
+F5F5F5F5F5F5F6F6F6F6F6F6F6F6F6F6F6F6F7F7F7F7F7F7F7F7F7F9F9F9F9F9F9F9F9F9F9F9F9
+F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9
+F9F9F9F9F9F9FDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFAFAFAFAFAFAFAFAFAF6F6F6
+F6F6F6F6F6F6F5F5F5F5F5F5F5F5F5F3F3F3F3F3F3F3F3F3EAEAEAEAEAEAEAEAEAEAEAEAE1E1E1
+E1E1E1E1E1E1DCDCDCDCDCDCDCDCDCD0D0D0D0D0D0D0D0D0C5C5C5C5C5C5C5C5C5BDBDBDBDBDBD
+BDBDBDBDBDBDB8B8B8B8B8B8B8B8B8B8B8B8B8B8B8B8B8B8C0C0C0C0C0C0C0C0C0C9C9C9C9C9C9
+C9C9C9C9C9C9C7C7C7C7C7C7C7C7C7BEBEBEBEBEBEBEBEBEB1B1B1B1B1B1B1B1B19E9E9E9E9E9E
+9E9E9E6B6B6B6B6B6B6B6B6B6B6B6B3C3C3C3C3C3C3C3C3C363636363636363636313131313131
+3131312D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2F2F2F2F2F2F2F2F2F323232323232
+3232324F4F4F4F4F4F4F4F4FB8B8B8B8B8B8B8B8B8B8B8B8FAFAFAFAFAFAFAFAFAFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFF9F9F9F9F9F9F9F9F9BBBBBBBBBBBBBBBBBBFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE
+FEFEFEFEFEFEFEFEFEFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFEFEFEFEFEFE
+FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE
+F3F3F3F3F3F3F3F3F3ABABABABABABABABAB4E4E4E4E4E4E4E4E4E2F2F2F2F2F2F2F2F2F2F2F2F
+2828282828282828282727272727272727272727272727272727272C2C2C2C2C2C2C2C2C2C2C2C
+313131313131313131292929292929292929252525252525252525353535353535353535545454
+5454545454545454546A6A6A6A6A6A6A6A6A7676767676767676767C7C7C7C7C7C7C7C7C7F7F7F
+7F7F7F7F7F7F8282828282828282828282828282828282828282828686868686868686868B8B8B
+8B8B8B8B8B8B9090909090909090909090909696969696969696969B9B9B9B9B9B9B9B9BA1A1A1
+A1A1A1A1A1A1A7A7A7A7A7A7A7A7A7AEAEAEAEAEAEAEAEAEAEAEAEB4B4B4B4B4B4B4B4B4BCBCBC
+BCBCBCBCBCBCC5C5C5C5C5C5C5C5C5D0D0D0D0D0D0D0D0D0DADADADADADADADADADADADAE3E3E3
+E3E3E3E3E3E3E6E6E6E6E6E6E6E6E6ECECECECECECECECECEDEDEDEDEDEDEDEDEDEDEDEDF1F1F1
+F1F1F1F1F1F1F2F2F2F2F2F2F2F2F2F2F2F2F2F2F2F2F2F2F1F1F1F1F1F1F1F1F1F3F3F3F3F3F3
+F3F3F3F3F3F3F4F4F4F4F4F4F4F4F4F4F4F4F4F4F4F4F4F4F6F6F6F6F6F6F6F6F6F6F6F6F6F6F6
+F6F6F6F5F5F5F5F5F5F5F5F5F5F5F5F5F5F5F5F5F5F5F5F5F5F5F5F5F5F5F5F5F5F8F8F8F8F8F8
+F8F8F8F5F5F5F5F5F5F5F5F5F5F5F5EEEEEEEEEEEEEEEEEEE9E9E9E9E9E9E9E9E9E5E5E5E5E5E5
+E5E5E5DBDBDBDBDBDBDBDBDBCBCBCBCBCBCBCBCBCBCBCBCBBDBDBDBDBDBDBDBDBDB0B1B0B0B1B0
+B0B1B0A1A1A1A1A1A1A1A1A19595959595959595958F8F8F8F8F8F8F8F8F8F8F8F888888888888
+888888898989898989898989949494949494949494A8A8A8A8A8A8A8A8A8A8A8A8B7B7B7B7B7B7
+B7B7B7B8B8B8B8B8B8B8B8B8B0B1B0B0B1B0B0B1B09E9E9E9E9E9E9E9E9E6D6D6D6D6D6D6D6D6D
+6D6D6D3B3B3B3B3B3B3B3B3B3434343434343434343030303030303030302B2B2B2B2B2B2B2B2B
+2929292929292929292929292C2C2C2C2C2C2C2C2C3030303030303030304C4C4C4C4C4C4C4C4C
+B2B2B2B2B2B2B2B2B2B2B2B2F9F9F9F9F9F9F9F9F9FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9F9F9F9F9F9F9F9F9
+C5C5C5C5C5C5C5C5C5FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE
+FEFEFEFEFEFEFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFE
+FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEF3F3F3F3F3F3F3F3F3ABABAB
+ABABABABABAB4E4E4E4E4E4E4E4E4E2F2F2F2F2F2F2F2F2F2F2F2F282828282828282828272727
+2727272727272727272727272727272C2C2C2C2C2C2C2C2C2C2C2C313131313131313131292929
+2929292929292525252525252525253535353535353535355454545454545454545454546A6A6A
+6A6A6A6A6A6A7676767676767676767C7C7C7C7C7C7C7C7C7F7F7F7F7F7F7F7F7F828282828282
+8282828282828282828282828282828686868686868686868B8B8B8B8B8B8B8B8B909090909090
+9090909090909696969696969696969B9B9B9B9B9B9B9B9BA1A1A1A1A1A1A1A1A1A7A7A7A7A7A7
+A7A7A7AEAEAEAEAEAEAEAEAEAEAEAEB4B4B4B4B4B4B4B4B4BCBCBCBCBCBCBCBCBCC5C5C5C5C5C5
+C5C5C5D0D0D0D0D0D0D0D0D0DADADADADADADADADADADADAE3E3E3E3E3E3E3E3E3E6E6E6E6E6E6
+E6E6E6ECECECECECECECECECEDEDEDEDEDEDEDEDEDEDEDEDF1F1F1F1F1F1F1F1F1F2F2F2F2F2F2
+F2F2F2F2F2F2F2F2F2F2F2F2F1F1F1F1F1F1F1F1F1F3F3F3F3F3F3F3F3F3F3F3F3F4F4F4F4F4F4
+F4F4F4F4F4F4F4F4F4F4F4F4F6F6F6F6F6F6F6F6F6F6F6F6F6F6F6F6F6F6F5F5F5F5F5F5F5F5F5
+F5F5F5F5F5F5F5F5F5F5F5F5F5F5F5F5F5F5F5F5F5F8F8F8F8F8F8F8F8F8F5F5F5F5F5F5F5F5F5
+F5F5F5EEEEEEEEEEEEEEEEEEE9E9E9E9E9E9E9E9E9E5E5E5E5E5E5E5E5E5DBDBDBDBDBDBDBDBDB
+CBCBCBCBCBCBCBCBCBCBCBCBBDBDBDBDBDBDBDBDBDB0B1B0B0B1B0B0B1B0A1A1A1A1A1A1A1A1A1
+9595959595959595958F8F8F8F8F8F8F8F8F8F8F8F888888888888888888898989898989898989
+949494949494949494A8A8A8A8A8A8A8A8A8A8A8A8B7B7B7B7B7B7B7B7B7B8B8B8B8B8B8B8B8B8
+B0B1B0B0B1B0B0B1B09E9E9E9E9E9E9E9E9E6D6D6D6D6D6D6D6D6D6D6D6D3B3B3B3B3B3B3B3B3B
+3434343434343434343030303030303030302B2B2B2B2B2B2B2B2B292929292929292929292929
+2C2C2C2C2C2C2C2C2C3030303030303030304C4C4C4C4C4C4C4C4CB2B2B2B2B2B2B2B2B2B2B2B2
+F9F9F9F9F9F9F9F9F9FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9F9F9F9F9F9F9F9F9C5C5C5C5C5C5C5C5C5FEFEFE
+FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE
+FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEF3F3F3F3F3F3F3F3F3ABABABABABABABABAB4E4E4E4E4E4E
+4E4E4E2F2F2F2F2F2F2F2F2F2F2F2F282828282828282828272727272727272727272727272727
+2727272C2C2C2C2C2C2C2C2C2C2C2C313131313131313131292929292929292929252525252525
+2525253535353535353535355454545454545454545454546A6A6A6A6A6A6A6A6A767676767676
+7676767C7C7C7C7C7C7C7C7C7F7F7F7F7F7F7F7F7F828282828282828282828282828282828282
+8282828686868686868686868B8B8B8B8B8B8B8B8B909090909090909090909090969696969696
+9696969B9B9B9B9B9B9B9B9BA1A1A1A1A1A1A1A1A1A7A7A7A7A7A7A7A7A7AEAEAEAEAEAEAEAEAE
+AEAEAEB4B4B4B4B4B4B4B4B4BCBCBCBCBCBCBCBCBCC5C5C5C5C5C5C5C5C5D0D0D0D0D0D0D0D0D0
+DADADADADADADADADADADADAE3E3E3E3E3E3E3E3E3E6E6E6E6E6E6E6E6E6ECECECECECECECECEC
+EDEDEDEDEDEDEDEDEDEDEDEDF1F1F1F1F1F1F1F1F1F2F2F2F2F2F2F2F2F2F2F2F2F2F2F2F2F2F2
+F1F1F1F1F1F1F1F1F1F3F3F3F3F3F3F3F3F3F3F3F3F4F4F4F4F4F4F4F4F4F4F4F4F4F4F4F4F4F4
+F6F6F6F6F6F6F6F6F6F6F6F6F6F6F6F6F6F6F5F5F5F5F5F5F5F5F5F5F5F5F5F5F5F5F5F5F5F5F5
+F5F5F5F5F5F5F5F5F5F8F8F8F8F8F8F8F8F8F5F5F5F5F5F5F5F5F5F5F5F5EEEEEEEEEEEEEEEEEE
+E9E9E9E9E9E9E9E9E9E5E5E5E5E5E5E5E5E5DBDBDBDBDBDBDBDBDBCBCBCBCBCBCBCBCBCBCBCBCB
+BDBDBDBDBDBDBDBDBDB0B1B0B0B1B0B0B1B0A1A1A1A1A1A1A1A1A19595959595959595958F8F8F
+8F8F8F8F8F8F8F8F8F888888888888888888898989898989898989949494949494949494A8A8A8
+A8A8A8A8A8A8A8A8A8B7B7B7B7B7B7B7B7B7B8B8B8B8B8B8B8B8B8B0B1B0B0B1B0B0B1B09E9E9E
+9E9E9E9E9E9E6D6D6D6D6D6D6D6D6D6D6D6D3B3B3B3B3B3B3B3B3B343434343434343434303030
+3030303030302B2B2B2B2B2B2B2B2B2929292929292929292929292C2C2C2C2C2C2C2C2C303030
+3030303030304C4C4C4C4C4C4C4C4CB2B2B2B2B2B2B2B2B2B2B2B2F9F9F9F9F9F9F9F9F9FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFF9F9F9F9F9F9F9F9F9C5C5C5C5C5C5C5C5C5FDFDFDFDFDFDFDFDFDFEFEFEFEFEFE
+FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE
+FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE
+FEFEFEFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE
+FEFEFEFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFD
+FDFDFDF0F0F0F0F0F0F0F0F0A8A8A8A8A8A8A8A8A84E4E4E4E4E4E4E4E4E2F2F2F2F2F2F2F2F2F
+2F2F2F2828282828282828282828282828282828282929292929292929292F2F2F2F2F2F2F2F2F
+2F2F2F3232323232323232322B2B2B2B2B2B2B2B2B252525252525252525303030303030303030
+4D4D4D4D4D4D4D4D4D4D4D4D6767676767676767677676767676767676767D7D7D7D7D7D7D7D7D
+8080808080808080808282828282828282828282828484848484848484848A8A8A8A8A8A8A8A8A
+8F8F8F8F8F8F8F8F8F9595959595959595959595959C9C9C9C9C9C9C9C9CA0A0A0A0A0A0A0A0A0
+A5A5A5A5A5A5A5A5A5AAAAAAAAAAAAAAAAAAB0B1B0B0B1B0B0B1B0B0B1B0B5B5B5B5B5B5B5B5B5
+BBBBBBBBBBBBBBBBBBC2C2C2C2C2C2C2C2C2C9C9C9C9C9C9C9C9C9D0D0D0D0D0D0D0D0D0D0D0D0
+D8D8D8D8D8D8D8D8D8DCDCDCDCDCDCDCDCDCE1E1E1E1E1E1E1E1E1E4E4E4E4E4E4E4E4E4E4E4E4
+E7E7E7E7E7E7E7E7E7EBEBEBEBEBEBEBEBEBEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEFEFEF
+EFEFEFEFEFEFEFEFEFEEEEEEEEEEEEEEEEEEECECECECECECECECECEDEDEDEDEDEDEDEDEDF0F0F0
+F0F0F0F0F0F0F2F2F2F2F2F2F2F2F2F2F2F2F1F1F1F1F1F1F1F1F1EFEFEFEFEFEFEFEFEFEAEAEA
+EAEAEAEAEAEAE4E4E4E4E4E4E4E4E4E4E4E4DFDFDFDFDFDFDFDFDFD6D6D6D6D6D6D6D6D6C4C4C4
+C4C4C4C4C4C4ACACACACACACACACAC9191919191919191919191917F7F7F7F7F7F7F7F7F767676
+7676767676766D6D6D6D6D6D6D6D6D6666666666666666666464646464646464646464645E5E5E
+5E5E5E5E5E5E6161616161616161616666666666666666667575757575757575757575758B8B8B
+8B8B8B8B8B8B9F9F9F9F9F9F9F9F9FA8A8A8A8A8A8A8A8A89F9F9F9F9F9F9F9F9F747474747474
+7474747474743E3E3E3E3E3E3E3E3E3434343434343434342F2F2F2F2F2F2F2F2F2B2B2B2B2B2B
+2B2B2B2929292929292929292929292C2C2C2C2C2C2C2C2C303030303030303030494949494949
+494949AFAFAFAFAFAFAFAFAFAFAFAFF9F9F9F9F9F9F9F9F9FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9F9F9F9F9F9
+F9F9F9C6C6C6C6C6C6C6C6C6FDFDFDFDFDFDFDFDFDFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE
+FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE
+FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFDFDFDFDFDFDFDFDFD
+FDFDFDFDFDFDFDFDFDFDFDFDFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFDFDFDFDFDFDFDFDFD
+FDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDF0F0F0F0F0F0F0F0F0
+A8A8A8A8A8A8A8A8A84E4E4E4E4E4E4E4E4E2F2F2F2F2F2F2F2F2F2F2F2F282828282828282828
+2828282828282828282929292929292929292F2F2F2F2F2F2F2F2F2F2F2F323232323232323232
+2B2B2B2B2B2B2B2B2B2525252525252525253030303030303030304D4D4D4D4D4D4D4D4D4D4D4D
+6767676767676767677676767676767676767D7D7D7D7D7D7D7D7D808080808080808080828282
+8282828282828282828484848484848484848A8A8A8A8A8A8A8A8A8F8F8F8F8F8F8F8F8F959595
+9595959595959595959C9C9C9C9C9C9C9C9CA0A0A0A0A0A0A0A0A0A5A5A5A5A5A5A5A5A5AAAAAA
+AAAAAAAAAAAAB0B1B0B0B1B0B0B1B0B0B1B0B5B5B5B5B5B5B5B5B5BBBBBBBBBBBBBBBBBBC2C2C2
+C2C2C2C2C2C2C9C9C9C9C9C9C9C9C9D0D0D0D0D0D0D0D0D0D0D0D0D8D8D8D8D8D8D8D8D8DCDCDC
+DCDCDCDCDCDCE1E1E1E1E1E1E1E1E1E4E4E4E4E4E4E4E4E4E4E4E4E7E7E7E7E7E7E7E7E7EBEBEB
+EBEBEBEBEBEBEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEFEFEFEFEFEFEFEFEFEFEFEFEEEEEE
+EEEEEEEEEEEEECECECECECECECECECEDEDEDEDEDEDEDEDEDF0F0F0F0F0F0F0F0F0F2F2F2F2F2F2
+F2F2F2F2F2F2F1F1F1F1F1F1F1F1F1EFEFEFEFEFEFEFEFEFEAEAEAEAEAEAEAEAEAE4E4E4E4E4E4
+E4E4E4E4E4E4DFDFDFDFDFDFDFDFDFD6D6D6D6D6D6D6D6D6C4C4C4C4C4C4C4C4C4ACACACACACAC
+ACACAC9191919191919191919191917F7F7F7F7F7F7F7F7F7676767676767676766D6D6D6D6D6D
+6D6D6D6666666666666666666464646464646464646464645E5E5E5E5E5E5E5E5E616161616161
+6161616666666666666666667575757575757575757575758B8B8B8B8B8B8B8B8B9F9F9F9F9F9F
+9F9F9FA8A8A8A8A8A8A8A8A89F9F9F9F9F9F9F9F9F7474747474747474747474743E3E3E3E3E3E
+3E3E3E3434343434343434342F2F2F2F2F2F2F2F2F2B2B2B2B2B2B2B2B2B292929292929292929
+2929292C2C2C2C2C2C2C2C2C303030303030303030494949494949494949AFAFAFAFAFAFAFAFAF
+AFAFAFF9F9F9F9F9F9F9F9F9FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9F9F9F9F9F9F9F9F9C6C6C6C6C6C6C6C6C6
+FCFCFCFCFCFCFCFCFCFDFDFDFDFDFDFDFDFDFCFCFCFCFCFCFCFCFCFCFCFCFDFDFDFDFDFDFDFDFD
+FCFCFCFCFCFCFCFCFCFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFD
+FCFCFCFCFCFCFCFCFCFDFDFDFDFDFDFDFDFDFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFC
+FCFCFCFCFCFCFCFCFCFBFBFBFBFBFBFBFBFBFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFA
+FAFAFAFAFAFAFAFAFAFBFBFBFBFBFBFBFBFBEFEFEFEFEFEFEFEFEFA9A9A9A9A9A9A9A9A9505050
+5050505050502F2F2F2F2F2F2F2F2F2F2F2F2828282828282828282828282828282828282B2B2B
+2B2B2B2B2B2B3131313131313131313131313535353535353535352B2B2B2B2B2B2B2B2B242424
+2424242424242C2C2C2C2C2C2C2C2C474747474747474747474747646464646464646464737373
+7373737373737C7C7C7C7C7C7C7C7C818181818181818181838383838383838383838383858585
+8585858585858C8C8C8C8C8C8C8C8C9393939393939393939B9B9B9B9B9B9B9B9B9B9B9B9F9F9F
+9F9F9F9F9F9FA3A3A3A3A3A3A3A3A3A7A7A7A7A7A7A7A7A7ADADADADADADADADADB1B1B1B1B1B1
+B1B1B1B1B1B1B5B5B5B5B5B5B5B5B5B8B8B8B8B8B8B8B8B8BDBDBDBDBDBDBDBDBDC3C3C3C3C3C3
+C3C3C3C8C8C8C8C8C8C8C8C8C8C8C8CECECECECECECECECED0D0D0D0D0D0D0D0D0D5D5D5D5D5D5
+D5D5D5DADADADADADADADADADADADADDDDDDDDDDDDDDDDDDE2E2E2E2E2E2E2E2E2E7E7E7E7E7E7
+E7E7E7E7E7E7E7E7E7E7E7E7E9E9E9E9E9E9E9E9E9E9E9E9E7E7E7E7E7E7E7E7E7E4E4E4E4E4E4
+E4E4E4E3E3E3E3E3E3E3E3E3E7E7E7E7E7E7E7E7E7EAEAEAEAEAEAEAEAEAEAEAEAE8E8E8E8E8E8
+E8E8E8E2E2E2E2E2E2E2E2E2DBDBDBDBDBDBDBDBDBD0D0D0D0D0D0D0D0D0D0D0D0C7C7C7C7C7C7
+C7C7C7B2B2B2B2B2B2B2B2B29191919191919191917575757575757575755B5B5B5B5B5B5B5B5B
+5B5B5B5050505050505050504E4E4E4E4E4E4E4E4E4C4C4C4C4C4C4C4C4C4C4C4C4C4C4C4C4C4C
+4C4C4C4C4C4C4C4C4C4C4C4C4B4B4B4B4B4B4B4B4B4C4C4C4C4C4C4C4C4C505050505050505050
+595959595959595959595959646464646464646464737373737373737373888888888888888888
+9595959595959595957A7A7A7A7A7A7A7A7A7A7A7A414141414141414141323232323232323232
+2D2D2D2D2D2D2D2D2D2828282828282828282828282828282828282828282B2B2B2B2B2B2B2B2B
+2F2F2F2F2F2F2F2F2F464646464646464646A8A8A8A8A8A8A8A8A8A8A8A8F8F8F8F8F8F8F8F8F8
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFF9F9F9F9F9F9F9F9F9C3C3C3C3C3C3C3C3C3FCFCFCFCFCFCFCFCFCFDFDFD
+FDFDFDFDFDFDFCFCFCFCFCFCFCFCFCFCFCFCFDFDFDFDFDFDFDFDFDFCFCFCFCFCFCFCFCFCFDFDFD
+FDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFCFCFCFCFCFCFCFCFCFDFDFD
+FDFDFDFDFDFDFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFBFBFB
+FBFBFBFBFBFBFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFBFBFB
+FBFBFBFBFBFBEFEFEFEFEFEFEFEFEFA9A9A9A9A9A9A9A9A95050505050505050502F2F2F2F2F2F
+2F2F2F2F2F2F2828282828282828282828282828282828282B2B2B2B2B2B2B2B2B313131313131
+3131313131313535353535353535352B2B2B2B2B2B2B2B2B2424242424242424242C2C2C2C2C2C
+2C2C2C4747474747474747474747476464646464646464647373737373737373737C7C7C7C7C7C
+7C7C7C8181818181818181818383838383838383838383838585858585858585858C8C8C8C8C8C
+8C8C8C9393939393939393939B9B9B9B9B9B9B9B9B9B9B9B9F9F9F9F9F9F9F9F9FA3A3A3A3A3A3
+A3A3A3A7A7A7A7A7A7A7A7A7ADADADADADADADADADB1B1B1B1B1B1B1B1B1B1B1B1B5B5B5B5B5B5
+B5B5B5B8B8B8B8B8B8B8B8B8BDBDBDBDBDBDBDBDBDC3C3C3C3C3C3C3C3C3C8C8C8C8C8C8C8C8C8
+C8C8C8CECECECECECECECECED0D0D0D0D0D0D0D0D0D5D5D5D5D5D5D5D5D5DADADADADADADADADA
+DADADADDDDDDDDDDDDDDDDDDE2E2E2E2E2E2E2E2E2E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7
+E9E9E9E9E9E9E9E9E9E9E9E9E7E7E7E7E7E7E7E7E7E4E4E4E4E4E4E4E4E4E3E3E3E3E3E3E3E3E3
+E7E7E7E7E7E7E7E7E7EAEAEAEAEAEAEAEAEAEAEAEAE8E8E8E8E8E8E8E8E8E2E2E2E2E2E2E2E2E2
+DBDBDBDBDBDBDBDBDBD0D0D0D0D0D0D0D0D0D0D0D0C7C7C7C7C7C7C7C7C7B2B2B2B2B2B2B2B2B2
+9191919191919191917575757575757575755B5B5B5B5B5B5B5B5B5B5B5B505050505050505050
+4E4E4E4E4E4E4E4E4E4C4C4C4C4C4C4C4C4C4C4C4C4C4C4C4C4C4C4C4C4C4C4C4C4C4C4C4C4C4C
+4B4B4B4B4B4B4B4B4B4C4C4C4C4C4C4C4C4C505050505050505050595959595959595959595959
+6464646464646464647373737373737373738888888888888888889595959595959595957A7A7A
+7A7A7A7A7A7A7A7A7A4141414141414141413232323232323232322D2D2D2D2D2D2D2D2D282828
+2828282828282828282828282828282828282B2B2B2B2B2B2B2B2B2F2F2F2F2F2F2F2F2F464646
+464646464646A8A8A8A8A8A8A8A8A8A8A8A8F8F8F8F8F8F8F8F8F8FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9F9F9
+F9F9F9F9F9F9C3C3C3C3C3C3C3C3C3FCFCFCFCFCFCFCFCFCFDFDFDFDFDFDFDFDFDFCFCFCFCFCFC
+FCFCFCFCFCFCFDFDFDFDFDFDFDFDFDFCFCFCFCFCFCFCFCFCFDFDFDFDFDFDFDFDFDFDFDFDFDFDFD
+FDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFCFCFCFCFCFCFCFCFCFDFDFDFDFDFDFDFDFDFCFCFCFCFCFC
+FCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFBFBFBFBFBFBFBFBFBFAFAFAFAFAFA
+FAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFBFBFBFBFBFBFBFBFBEFEFEFEFEFEF
+EFEFEFA9A9A9A9A9A9A9A9A95050505050505050502F2F2F2F2F2F2F2F2F2F2F2F282828282828
+2828282828282828282828282B2B2B2B2B2B2B2B2B313131313131313131313131353535353535
+3535352B2B2B2B2B2B2B2B2B2424242424242424242C2C2C2C2C2C2C2C2C474747474747474747
+4747476464646464646464647373737373737373737C7C7C7C7C7C7C7C7C818181818181818181
+8383838383838383838383838585858585858585858C8C8C8C8C8C8C8C8C939393939393939393
+9B9B9B9B9B9B9B9B9B9B9B9B9F9F9F9F9F9F9F9F9FA3A3A3A3A3A3A3A3A3A7A7A7A7A7A7A7A7A7
+ADADADADADADADADADB1B1B1B1B1B1B1B1B1B1B1B1B5B5B5B5B5B5B5B5B5B8B8B8B8B8B8B8B8B8
+BDBDBDBDBDBDBDBDBDC3C3C3C3C3C3C3C3C3C8C8C8C8C8C8C8C8C8C8C8C8CECECECECECECECECE
+D0D0D0D0D0D0D0D0D0D5D5D5D5D5D5D5D5D5DADADADADADADADADADADADADDDDDDDDDDDDDDDDDD
+E2E2E2E2E2E2E2E2E2E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E9E9E9E9E9E9E9E9E9E9E9E9
+E7E7E7E7E7E7E7E7E7E4E4E4E4E4E4E4E4E4E3E3E3E3E3E3E3E3E3E7E7E7E7E7E7E7E7E7EAEAEA
+EAEAEAEAEAEAEAEAEAE8E8E8E8E8E8E8E8E8E2E2E2E2E2E2E2E2E2DBDBDBDBDBDBDBDBDBD0D0D0
+D0D0D0D0D0D0D0D0D0C7C7C7C7C7C7C7C7C7B2B2B2B2B2B2B2B2B2919191919191919191757575
+7575757575755B5B5B5B5B5B5B5B5B5B5B5B5050505050505050504E4E4E4E4E4E4E4E4E4C4C4C
+4C4C4C4C4C4C4C4C4C4C4C4C4C4C4C4C4C4C4C4C4C4C4C4C4C4C4C4B4B4B4B4B4B4B4B4B4C4C4C
+4C4C4C4C4C4C505050505050505050595959595959595959595959646464646464646464737373
+7373737373738888888888888888889595959595959595957A7A7A7A7A7A7A7A7A7A7A7A414141
+4141414141413232323232323232322D2D2D2D2D2D2D2D2D282828282828282828282828282828
+2828282828282B2B2B2B2B2B2B2B2B2F2F2F2F2F2F2F2F2F464646464646464646A8A8A8A8A8A8
+A8A8A8A8A8A8F8F8F8F8F8F8F8F8F8FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9F9F9F9F9F9F9F9F9C3C3C3C3C3C3
+C3C3C3F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9
+F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F8F8F8F8F8F8F8F8F8
+F8F8F8F8F8F8F8F8F8F8F8F8F9F9F9F9F9F9F9F9F9F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8
+F8F8F8F8F8F8F8F8F8F8F8F8F6F6F6F6F6F6F6F6F6F5F5F5F5F5F5F5F5F5F5F5F5F5F5F5F5F5F5
+F6F6F6F6F6F6F6F6F6F6F6F6F7F7F7F7F7F7F7F7F7EAEAEAEAEAEAEAEAEAA6A6A6A6A6A6A6A6A6
+515151515151515151303030303030303030303030292929292929292929292929292929292929
+2D2D2D2D2D2D2D2D2D3131313131313131313131313232323232323232322B2B2B2B2B2B2B2B2B
+2525252525252525252929292929292929294141414141414141414141415F605F5F605F5F605F
+7070707070707070707979797979797979797F7F7F7F7F7F7F7F7F838383838383838383838383
+8686868686868686868C8C8C8C8C8C8C8C8C9696969696969696969E9E9E9E9E9E9E9E9E9E9E9E
+A1A1A1A1A1A1A1A1A1A4A4A4A4A4A4A4A4A4A8A8A8A8A8A8A8A8A8ACACACACACACACACACAFAFAF
+AFAFAFAFAFAFAFAFAFB0B1B0B0B1B0B0B1B0B4B4B4B4B4B4B4B4B4B8B8B8B8B8B8B8B8B8BCBCBC
+BCBCBCBCBCBCBEBEBEBEBEBEBEBEBEBEBEBEC0C0C0C0C0C0C0C0C0C1C1C1C1C1C1C1C1C1C5C5C5
+C5C5C5C5C5C5CDCDCDCDCDCDCDCDCDCDCDCDD3D3D3D3D3D3D3D3D3D6D6D6D6D6D6D6D6D6DDDDDD
+DDDDDDDDDDDDDFE0DFDFE0DFDFE0DFE3E3E3E3E3E3E3E3E3E3E3E3E0E0E0E0E0E0E0E0E0DBDBDB
+DBDBDBDBDBDBD9D9D9D9D9D9D9D9D9DCDCDCDCDCDCDCDCDCDFE0DFDFE0DFDFE0DFDFE0DFDBDBDB
+DBDBDBDBDBDBD1D1D1D1D1D1D1D1D1C9C9C9C9C9C9C9C9C9BCBCBCBCBCBCBCBCBCBCBCBCA8A8A8
+A8A8A8A8A8A8888888888888888888676767676767676767525252525252525252454545454545
+4545454545453F3F3F3F3F3F3F3F3F3E3E3E3E3E3E3E3E3E3F3F3F3F3F3F3F3F3F454545454545
+4545454B4B4B4B4B4B4B4B4B4B4B4B4D4D4D4D4D4D4D4D4D4E4E4E4E4E4E4E4E4E525252525252
+5252525656565656565656565656565A5A5A5A5A5A5A5A5A6161616161616161616D6D6D6D6D6D
+6D6D6D8383838383838383837D7D7D7D7D7D7D7D7D7D7D7D464646464646464646313131313131
+3131312D2D2D2D2D2D2D2D2D2828282828282828282828282828282828282828282B2B2B2B2B2B
+2B2B2B2D2D2D2D2D2D2D2D2D4141414141414141419E9E9E9E9E9E9E9E9E9E9E9EF5F5F5F5F5F5
+F5F5F5FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFF7F7F7F7F7F7F7F7F7B4B4B4B4B4B4B4B4B4F9F9F9F9F9F9F9F9F9
+F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9
+F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8
+F9F9F9F9F9F9F9F9F9F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8
+F6F6F6F6F6F6F6F6F6F5F5F5F5F5F5F5F5F5F5F5F5F5F5F5F5F5F5F6F6F6F6F6F6F6F6F6F6F6F6
+F7F7F7F7F7F7F7F7F7EAEAEAEAEAEAEAEAEAA6A6A6A6A6A6A6A6A6515151515151515151303030
+3030303030303030302929292929292929292929292929292929292D2D2D2D2D2D2D2D2D313131
+3131313131313131313232323232323232322B2B2B2B2B2B2B2B2B252525252525252525292929
+2929292929294141414141414141414141415F605F5F605F5F605F707070707070707070797979
+7979797979797F7F7F7F7F7F7F7F7F8383838383838383838383838686868686868686868C8C8C
+8C8C8C8C8C8C9696969696969696969E9E9E9E9E9E9E9E9E9E9E9EA1A1A1A1A1A1A1A1A1A4A4A4
+A4A4A4A4A4A4A8A8A8A8A8A8A8A8A8ACACACACACACACACACAFAFAFAFAFAFAFAFAFAFAFAFB0B1B0
+B0B1B0B0B1B0B4B4B4B4B4B4B4B4B4B8B8B8B8B8B8B8B8B8BCBCBCBCBCBCBCBCBCBEBEBEBEBEBE
+BEBEBEBEBEBEC0C0C0C0C0C0C0C0C0C1C1C1C1C1C1C1C1C1C5C5C5C5C5C5C5C5C5CDCDCDCDCDCD
+CDCDCDCDCDCDD3D3D3D3D3D3D3D3D3D6D6D6D6D6D6D6D6D6DDDDDDDDDDDDDDDDDDDFE0DFDFE0DF
+DFE0DFE3E3E3E3E3E3E3E3E3E3E3E3E0E0E0E0E0E0E0E0E0DBDBDBDBDBDBDBDBDBD9D9D9D9D9D9
+D9D9D9DCDCDCDCDCDCDCDCDCDFE0DFDFE0DFDFE0DFDFE0DFDBDBDBDBDBDBDBDBDBD1D1D1D1D1D1
+D1D1D1C9C9C9C9C9C9C9C9C9BCBCBCBCBCBCBCBCBCBCBCBCA8A8A8A8A8A8A8A8A8888888888888
+8888886767676767676767675252525252525252524545454545454545454545453F3F3F3F3F3F
+3F3F3F3E3E3E3E3E3E3E3E3E3F3F3F3F3F3F3F3F3F4545454545454545454B4B4B4B4B4B4B4B4B
+4B4B4B4D4D4D4D4D4D4D4D4D4E4E4E4E4E4E4E4E4E525252525252525252565656565656565656
+5656565A5A5A5A5A5A5A5A5A6161616161616161616D6D6D6D6D6D6D6D6D838383838383838383
+7D7D7D7D7D7D7D7D7D7D7D7D4646464646464646463131313131313131312D2D2D2D2D2D2D2D2D
+2828282828282828282828282828282828282828282B2B2B2B2B2B2B2B2B2D2D2D2D2D2D2D2D2D
+4141414141414141419E9E9E9E9E9E9E9E9E9E9E9EF5F5F5F5F5F5F5F5F5FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+F7F7F7F7F7F7F7F7F7B4B4B4B4B4B4B4B4B4F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9
+F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9
+F9F9F9F9F9F9F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F9F9F9F9F9F9F9F9F9F8F8F8
+F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F6F6F6F6F6F6F6F6F6F5F5F5
+F5F5F5F5F5F5F5F5F5F5F5F5F5F5F5F6F6F6F6F6F6F6F6F6F6F6F6F7F7F7F7F7F7F7F7F7EAEAEA
+EAEAEAEAEAEAA6A6A6A6A6A6A6A6A6515151515151515151303030303030303030303030292929
+2929292929292929292929292929292D2D2D2D2D2D2D2D2D313131313131313131313131323232
+3232323232322B2B2B2B2B2B2B2B2B252525252525252525292929292929292929414141414141
+4141414141415F605F5F605F5F605F7070707070707070707979797979797979797F7F7F7F7F7F
+7F7F7F8383838383838383838383838686868686868686868C8C8C8C8C8C8C8C8C969696969696
+9696969E9E9E9E9E9E9E9E9E9E9E9EA1A1A1A1A1A1A1A1A1A4A4A4A4A4A4A4A4A4A8A8A8A8A8A8
+A8A8A8ACACACACACACACACACAFAFAFAFAFAFAFAFAFAFAFAFB0B1B0B0B1B0B0B1B0B4B4B4B4B4B4
+B4B4B4B8B8B8B8B8B8B8B8B8BCBCBCBCBCBCBCBCBCBEBEBEBEBEBEBEBEBEBEBEBEC0C0C0C0C0C0
+C0C0C0C1C1C1C1C1C1C1C1C1C5C5C5C5C5C5C5C5C5CDCDCDCDCDCDCDCDCDCDCDCDD3D3D3D3D3D3
+D3D3D3D6D6D6D6D6D6D6D6D6DDDDDDDDDDDDDDDDDDDFE0DFDFE0DFDFE0DFE3E3E3E3E3E3E3E3E3
+E3E3E3E0E0E0E0E0E0E0E0E0DBDBDBDBDBDBDBDBDBD9D9D9D9D9D9D9D9D9DCDCDCDCDCDCDCDCDC
+DFE0DFDFE0DFDFE0DFDFE0DFDBDBDBDBDBDBDBDBDBD1D1D1D1D1D1D1D1D1C9C9C9C9C9C9C9C9C9
+BCBCBCBCBCBCBCBCBCBCBCBCA8A8A8A8A8A8A8A8A8888888888888888888676767676767676767
+5252525252525252524545454545454545454545453F3F3F3F3F3F3F3F3F3E3E3E3E3E3E3E3E3E
+3F3F3F3F3F3F3F3F3F4545454545454545454B4B4B4B4B4B4B4B4B4B4B4B4D4D4D4D4D4D4D4D4D
+4E4E4E4E4E4E4E4E4E5252525252525252525656565656565656565656565A5A5A5A5A5A5A5A5A
+6161616161616161616D6D6D6D6D6D6D6D6D8383838383838383837D7D7D7D7D7D7D7D7D7D7D7D
+4646464646464646463131313131313131312D2D2D2D2D2D2D2D2D282828282828282828282828
+2828282828282828282B2B2B2B2B2B2B2B2B2D2D2D2D2D2D2D2D2D4141414141414141419E9E9E
+9E9E9E9E9E9E9E9E9EF5F5F5F5F5F5F5F5F5FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7F7F7F7F7F7F7F7F7B4B4B4
+B4B4B4B4B4B4F5F5F5F5F5F5F5F5F5F5F5F5F5F5F5F5F5F5F7F7F7F7F7F7F7F7F7F7F7F7F6F6F6
+F6F6F6F6F6F6F5F5F5F5F5F5F5F5F5F5F5F5F5F5F5F5F5F5F5F5F5F5F5F5F5F5F5F5F5F5F5F5F5
+F5F5F5F5F5F5F5F5F5F5F5F5F5F5F5F5F5F5F5F5F5F5F5F5F4F4F4F4F4F4F4F4F4F4F4F4F4F4F4
+F4F4F4F4F4F4F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F2F2F2F2F2F2F2F2F2F3F3F3F3F3F3
+F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F1F1F1F1F1F1F1F1F1E2E2E2E2E2E2E2E2E2A1A1A1A1A1A1
+A1A1A1525252525252525252323232323232323232323232292929292929292929292929292929
+2929292C2C2C2C2C2C2C2C2C2F2F2F2F2F2F2F2F2F2F2F2F2F2F2F2F2F2F2F2F2F2B2B2B2B2B2B
+2B2B2B252525252525252525272727272727272727373737373737373737373737585858585858
+5858586D6D6D6D6D6D6D6D6D7777777777777777777E7E7E7E7E7E7E7E7E828282828282828282
+8282828787878787878787878D8D8D8D8D8D8D8D8D9595959595959595959D9D9D9D9D9D9D9D9D
+9D9D9DA1A1A1A1A1A1A1A1A1A2A2A2A2A2A2A2A2A2A3A3A3A3A3A3A3A3A3A5A5A5A5A5A5A5A5A5
+A7A7A7A7A7A7A7A7A7A7A7A7AAAAAAAAAAAAAAAAAAADADADADADADADADADADADADADADADADADAD
+ADADADADADADADADADAFAFAFAFAFAFAFAFAFAFAFAFB0B0B0B0B0B0B0B0B0B3B3B3B3B3B3B3B3B3
+B8B8B8B8B8B8B8B8B8BDBDBDBDBDBDBDBDBDBDBDBDC4C4C4C4C4C4C4C4C4CBCBCBCBCBCBCBCBCB
+D2D2D2D2D2D2D2D2D2D6D6D6D6D6D6D6D6D6D9D9D9D9D9D9D9D9D9D9D9D9D8D8D8D8D8D8D8D8D8
+D3D3D3D3D3D3D3D3D3D0D0D0D0D0D0D0D0D0D3D3D3D3D3D3D3D3D3D5D5D5D5D5D5D5D5D5D5D5D5
+CFCFCFCFCFCFCFCFCFC5C5C5C5C5C5C5C5C5B9B9B9B9B9B9B9B9B9A3A3A3A3A3A3A3A3A3A3A3A3
+8686868686868686866969696969696969695454545454545454544646464646464646463C3C3C
+3C3C3C3C3C3C3C3C3C3939393939393939393C3C3C3C3C3C3C3C3C4B4B4B4B4B4B4B4B4B5C5C5C
+5C5C5C5C5C5C6767676767676767676767676D6D6D6D6D6D6D6D6D6F6F6F6F6F6F6F6F6F6E6E6E
+6E6E6E6E6E6E6B6B6B6B6B6B6B6B6B6B6B6B6B6B6B6B6B6B6B6B6B6A6A6A6A6A6A6A6A6A686868
+6868686868687676767676767676767E7E7E7E7E7E7E7E7E7E7E7E4F4F4F4F4F4F4F4F4F313131
+3131313131312C2C2C2C2C2C2C2C2C2B2B2B2B2B2B2B2B2B2929292929292929292929292B2B2B
+2B2B2B2B2B2B2C2C2C2C2C2C2C2C2C3A3A3A3A3A3A3A3A3A8D8D8D8D8D8D8D8D8D8D8D8DEFEFEF
+EFEFEFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9F9F9F9F9F9F9F9F9C1C1C1C1C1C1C1C1C1F5F5F5F5F5F5
+F5F5F5F5F5F5F5F5F5F5F5F5F7F7F7F7F7F7F7F7F7F7F7F7F6F6F6F6F6F6F6F6F6F5F5F5F5F5F5
+F5F5F5F5F5F5F5F5F5F5F5F5F5F5F5F5F5F5F5F5F5F5F5F5F5F5F5F5F5F5F5F5F5F5F5F5F5F5F5
+F5F5F5F5F5F5F5F5F5F5F5F5F4F4F4F4F4F4F4F4F4F4F4F4F4F4F4F4F4F4F4F4F4F3F3F3F3F3F3
+F3F3F3F3F3F3F3F3F3F3F3F3F2F2F2F2F2F2F2F2F2F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3
+F3F3F3F1F1F1F1F1F1F1F1F1E2E2E2E2E2E2E2E2E2A1A1A1A1A1A1A1A1A1525252525252525252
+3232323232323232323232322929292929292929292929292929292929292C2C2C2C2C2C2C2C2C
+2F2F2F2F2F2F2F2F2F2F2F2F2F2F2F2F2F2F2F2F2F2B2B2B2B2B2B2B2B2B252525252525252525
+2727272727272727273737373737373737373737375858585858585858586D6D6D6D6D6D6D6D6D
+7777777777777777777E7E7E7E7E7E7E7E7E828282828282828282828282878787878787878787
+8D8D8D8D8D8D8D8D8D9595959595959595959D9D9D9D9D9D9D9D9D9D9D9DA1A1A1A1A1A1A1A1A1
+A2A2A2A2A2A2A2A2A2A3A3A3A3A3A3A3A3A3A5A5A5A5A5A5A5A5A5A7A7A7A7A7A7A7A7A7A7A7A7
+AAAAAAAAAAAAAAAAAAADADADADADADADADADADADADADADADADADADADADADADADADADADADAFAFAF
+AFAFAFAFAFAFAFAFAFB0B0B0B0B0B0B0B0B0B3B3B3B3B3B3B3B3B3B8B8B8B8B8B8B8B8B8BDBDBD
+BDBDBDBDBDBDBDBDBDC4C4C4C4C4C4C4C4C4CBCBCBCBCBCBCBCBCBD2D2D2D2D2D2D2D2D2D6D6D6
+D6D6D6D6D6D6D9D9D9D9D9D9D9D9D9D9D9D9D8D8D8D8D8D8D8D8D8D3D3D3D3D3D3D3D3D3D0D0D0
+D0D0D0D0D0D0D3D3D3D3D3D3D3D3D3D5D5D5D5D5D5D5D5D5D5D5D5CFCFCFCFCFCFCFCFCFC5C5C5
+C5C5C5C5C5C5B9B9B9B9B9B9B9B9B9A3A3A3A3A3A3A3A3A3A3A3A3868686868686868686696969
+6969696969695454545454545454544646464646464646463C3C3C3C3C3C3C3C3C3C3C3C393939
+3939393939393C3C3C3C3C3C3C3C3C4B4B4B4B4B4B4B4B4B5C5C5C5C5C5C5C5C5C676767676767
+6767676767676D6D6D6D6D6D6D6D6D6F6F6F6F6F6F6F6F6F6E6E6E6E6E6E6E6E6E6B6B6B6B6B6B
+6B6B6B6B6B6B6B6B6B6B6B6B6B6B6B6A6A6A6A6A6A6A6A6A686868686868686868767676767676
+7676767E7E7E7E7E7E7E7E7E7E7E7E4F4F4F4F4F4F4F4F4F3131313131313131312C2C2C2C2C2C
+2C2C2C2B2B2B2B2B2B2B2B2B2929292929292929292929292B2B2B2B2B2B2B2B2B2C2C2C2C2C2C
+2C2C2C3A3A3A3A3A3A3A3A3A8D8D8D8D8D8D8D8D8D8D8D8DEFEFEFEFEFEFEFEFEFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFF9F9F9F9F9F9F9F9F9C1C1C1C1C1C1C1C1C1F3F3F3F3F3F3F3F3F3F4F4F4F4F4F4F4F4F4
+F4F4F4F4F4F4F4F4F4F4F4F4F4F4F4F4F4F4F4F4F4F3F3F3F3F3F3F3F3F3F2F2F2F2F2F2F2F2F2
+F2F2F2F2F2F2F2F2F2F1F1F1F1F1F1F1F1F1F1F1F1F2F2F2F2F2F2F2F2F2F1F1F1F1F1F1F1F1F1
+F1F1F1F1F1F1F1F1F1F1F1F1F1F1F1F1F1F1F1F1F1F1F1F1F1F1F1F1F1F1F1F1F1F1F1F1F1F1F1
+F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0EFEFEFEFEFEFEFEFEFEFEFEFEDEDEDEDEDEDEDEDED
+D9D9D9D9D9D9D9D9D99C9C9C9C9C9C9C9C9C555555555555555555353535353535353535353535
+2C2C2C2C2C2C2C2C2C2929292929292929292B2B2B2B2B2B2B2B2B2C2C2C2C2C2C2C2C2C2C2C2C
+2C2C2C2C2C2C2C2C2C292929292929292929252525252525252525272727272727272727313131
+3131313131313131315050505050505050506A6A6A6A6A6A6A6A6A7676767676767676767D7D7D
+7D7D7D7D7D7D8181818181818181818181818888888888888888888F8F8F8F8F8F8F8F8F949494
+9494949494949A9A9A9A9A9A9A9A9A9A9A9A9B9B9B9B9B9B9B9B9B969696969696969696949494
+9494949494949292929292929292928F8F8F8F8F8F8F8F8F8F8F8F909090909090909090919191
+9191919191918E8E8E8E8E8E8E8E8E8C8C8C8C8C8C8C8C8C8D8D8D8D8D8D8D8D8D8D8D8D939393
+9393939393939E9E9E9E9E9E9E9E9EA5A5A5A5A5A5A5A5A5A8A8A8A8A8A8A8A8A8A8A8A8B2B2B2
+B2B2B2B2B2B2BEBEBEBEBEBEBEBEBEC5C5C5C5C5C5C5C5C5C9C9C9C9C9C9C9C9C9CDCDCDCDCDCD
+CDCDCDCDCDCDD0D0D0D0D0D0D0D0D0CBCBCBCBCBCBCBCBCBCACACACACACACACACACBCBCBCBCBCB
+CBCBCBCCCCCCCCCCCCCCCCCCCCCCCCC7C7C7C7C7C7C7C7C7BDBDBDBDBDBDBDBDBDAAAAAAAAAAAA
+AAAAAA8A8A8A8A8A8A8A8A8A8A8A8A6B6B6B6B6B6B6B6B6B555555555555555555474747474747
+4747474141414141414141413E3E3E3E3E3E3E3E3E3E3E3E444444444444444444565656565656
+5656566E6E6E6E6E6E6E6E6E7E7E7E7E7E7E7E7E7E8888888888888888888888888E8E8E8E8E8E
+8E8E8E8D8D8D8D8D8D8D8D8D8A8A8A8A8A8A8A8A8A878787878787878787878787828282828282
+8282827979797979797979797474747474747474747B7B7B7B7B7B7B7B7B838383838383838383
+8383835C5C5C5C5C5C5C5C5C3535353535353535352D2D2D2D2D2D2D2D2D2F2F2F2F2F2F2F2F2F
+3030303030303030303030302D2D2D2D2D2D2D2D2D2F2F2F2F2F2F2F2F2F373737373737373737
+7B7B7B7B7B7B7B7B7B7B7B7BE4E4E4E4E4E4E4E4E4FEFEFEFEFEFEFEFEFEFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAFAFAFAFAFAFAFAFA
+D0D0D0D0D0D0D0D0D0F3F3F3F3F3F3F3F3F3F4F4F4F4F4F4F4F4F4F4F4F4F4F4F4F4F4F4F4F4F4
+F4F4F4F4F4F4F4F4F4F3F3F3F3F3F3F3F3F3F2F2F2F2F2F2F2F2F2F2F2F2F2F2F2F2F2F2F1F1F1
+F1F1F1F1F1F1F1F1F1F2F2F2F2F2F2F2F2F2F1F1F1F1F1F1F1F1F1F1F1F1F1F1F1F1F1F1F1F1F1
+F1F1F1F1F1F1F1F1F1F1F1F1F1F1F1F1F1F1F1F1F1F1F1F1F1F1F1F0F0F0F0F0F0F0F0F0F0F0F0
+F0F0F0F0F0F0EFEFEFEFEFEFEFEFEFEFEFEFEDEDEDEDEDEDEDEDEDD9D9D9D9D9D9D9D9D99C9C9C
+9C9C9C9C9C9C5555555555555555553535353535353535353535352C2C2C2C2C2C2C2C2C292929
+2929292929292B2B2B2B2B2B2B2B2B2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C292929
+292929292929252525252525252525272727272727272727313131313131313131313131505050
+5050505050506A6A6A6A6A6A6A6A6A7676767676767676767D7D7D7D7D7D7D7D7D818181818181
+8181818181818888888888888888888F8F8F8F8F8F8F8F8F9494949494949494949A9A9A9A9A9A
+9A9A9A9A9A9A9B9B9B9B9B9B9B9B9B969696969696969696949494949494949494929292929292
+9292928F8F8F8F8F8F8F8F8F8F8F8F9090909090909090909191919191919191918E8E8E8E8E8E
+8E8E8E8C8C8C8C8C8C8C8C8C8D8D8D8D8D8D8D8D8D8D8D8D9393939393939393939E9E9E9E9E9E
+9E9E9EA5A5A5A5A5A5A5A5A5A8A8A8A8A8A8A8A8A8A8A8A8B2B2B2B2B2B2B2B2B2BEBEBEBEBEBE
+BEBEBEC5C5C5C5C5C5C5C5C5C9C9C9C9C9C9C9C9C9CDCDCDCDCDCDCDCDCDCDCDCDD0D0D0D0D0D0
+D0D0D0CBCBCBCBCBCBCBCBCBCACACACACACACACACACBCBCBCBCBCBCBCBCBCCCCCCCCCCCCCCCCCC
+CCCCCCC7C7C7C7C7C7C7C7C7BDBDBDBDBDBDBDBDBDAAAAAAAAAAAAAAAAAA8A8A8A8A8A8A8A8A8A
+8A8A8A6B6B6B6B6B6B6B6B6B555555555555555555474747474747474747414141414141414141
+3E3E3E3E3E3E3E3E3E3E3E3E4444444444444444445656565656565656566E6E6E6E6E6E6E6E6E
+7E7E7E7E7E7E7E7E7E8888888888888888888888888E8E8E8E8E8E8E8E8E8D8D8D8D8D8D8D8D8D
+8A8A8A8A8A8A8A8A8A878787878787878787878787828282828282828282797979797979797979
+7474747474747474747B7B7B7B7B7B7B7B7B8383838383838383838383835C5C5C5C5C5C5C5C5C
+3535353535353535352D2D2D2D2D2D2D2D2D2F2F2F2F2F2F2F2F2F303030303030303030303030
+2D2D2D2D2D2D2D2D2D2F2F2F2F2F2F2F2F2F3737373737373737377B7B7B7B7B7B7B7B7B7B7B7B
+E4E4E4E4E4E4E4E4E4FEFEFEFEFEFEFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAFAFAFAFAFAFAFAFAD0D0D0D0D0D0D0D0D0F3F3F3
+F3F3F3F3F3F3F4F4F4F4F4F4F4F4F4F4F4F4F4F4F4F4F4F4F4F4F4F4F4F4F4F4F4F4F4F4F3F3F3
+F3F3F3F3F3F3F2F2F2F2F2F2F2F2F2F2F2F2F2F2F2F2F2F2F1F1F1F1F1F1F1F1F1F1F1F1F2F2F2
+F2F2F2F2F2F2F1F1F1F1F1F1F1F1F1F1F1F1F1F1F1F1F1F1F1F1F1F1F1F1F1F1F1F1F1F1F1F1F1
+F1F1F1F1F1F1F1F1F1F1F1F1F1F1F1F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0EFEFEFEFEFEF
+EFEFEFEFEFEFEDEDEDEDEDEDEDEDEDD9D9D9D9D9D9D9D9D99C9C9C9C9C9C9C9C9C555555555555
+5555553535353535353535353535352C2C2C2C2C2C2C2C2C2929292929292929292B2B2B2B2B2B
+2B2B2B2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C292929292929292929252525252525
+2525252727272727272727273131313131313131313131315050505050505050506A6A6A6A6A6A
+6A6A6A7676767676767676767D7D7D7D7D7D7D7D7D818181818181818181818181888888888888
+8888888F8F8F8F8F8F8F8F8F9494949494949494949A9A9A9A9A9A9A9A9A9A9A9A9B9B9B9B9B9B
+9B9B9B9696969696969696969494949494949494949292929292929292928F8F8F8F8F8F8F8F8F
+8F8F8F9090909090909090909191919191919191918E8E8E8E8E8E8E8E8E8C8C8C8C8C8C8C8C8C
+8D8D8D8D8D8D8D8D8D8D8D8D9393939393939393939E9E9E9E9E9E9E9E9EA5A5A5A5A5A5A5A5A5
+A8A8A8A8A8A8A8A8A8A8A8A8B2B2B2B2B2B2B2B2B2BEBEBEBEBEBEBEBEBEC5C5C5C5C5C5C5C5C5
+C9C9C9C9C9C9C9C9C9CDCDCDCDCDCDCDCDCDCDCDCDD0D0D0D0D0D0D0D0D0CBCBCBCBCBCBCBCBCB
+CACACACACACACACACACBCBCBCBCBCBCBCBCBCCCCCCCCCCCCCCCCCCCCCCCCC7C7C7C7C7C7C7C7C7
+BDBDBDBDBDBDBDBDBDAAAAAAAAAAAAAAAAAA8A8A8A8A8A8A8A8A8A8A8A8A6B6B6B6B6B6B6B6B6B
+5555555555555555554747474747474747474141414141414141413E3E3E3E3E3E3E3E3E3E3E3E
+4444444444444444445656565656565656566E6E6E6E6E6E6E6E6E7E7E7E7E7E7E7E7E7E888888
+8888888888888888888E8E8E8E8E8E8E8E8E8D8D8D8D8D8D8D8D8D8A8A8A8A8A8A8A8A8A878787
+8787878787878787878282828282828282827979797979797979797474747474747474747B7B7B
+7B7B7B7B7B7B8383838383838383838383835C5C5C5C5C5C5C5C5C3535353535353535352D2D2D
+2D2D2D2D2D2D2F2F2F2F2F2F2F2F2F3030303030303030303030302D2D2D2D2D2D2D2D2D2F2F2F
+2F2F2F2F2F2F3737373737373737377B7B7B7B7B7B7B7B7B7B7B7BE4E4E4E4E4E4E4E4E4FEFEFE
+FEFEFEFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFAFAFAFAFAFAFAFAFAD0D0D0D0D0D0D0D0D0F0F0F0F0F0F0F0F0F0F1F1F1F1F1F1
+F1F1F1F1F1F1F1F1F1F1F1F1F1F1F1F1F1F1F1F1F1F1F1F1F1F1F1F1F1F1F1F1F1F0F0F0F0F0F0
+F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0
+F0F0F0EFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE
+EEEEEEEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEAEAEAEAEAEA
+EAEAEAD6D6D5D6D6D5D6D6D59D9D9D9D9D9D9D9D9D575757575757575757353535353535353535
+3535352C2C2C2C2C2C2C2C2C292929292929292929292929292929292929292929292929292929
+292929282828282828282828272727272727272727252525252525252525242424242424242424
+2B2B2B2B2B2B2B2B2B2B2B2B464646464646464646656565656565656565747474747474747474
+7C7C7C7C7C7C7C7C7C8080808080808080808080808686868686868686868F8F8F8F8F8F8F8F8F
+9393939393939393939191919191919191919191918989898989898989897C7C7C7C7C7C7C7C7C
+7373737373737373736F6F6F6F6F6F6F6F6F6A6A6A6A6A6A6A6A6A6A6A6A696969696969696969
+6868686868686868686262626262626262625F605F5F605F5F605F646464646464646464646464
+6C6C6C6C6C6C6C6C6C7B7B7B7B7B7B7B7B7B8484848484848484848B8B8B8B8B8B8B8B8B8B8B8B
+9A9A9A9A9A9A9A9A9AABABABABABABABABABB7B7B7B7B7B7B7B7B7BBBBBBBBBBBBBBBBBBC3C3C3
+C3C3C3C3C3C3C3C3C3C8C8C8C8C8C8C8C8C8C8C8C8C8C8C8C8C8C8C8C8C8C8C8C8C8C8C8C9C9C9
+C9C9C9C9C9C9C8C8C8C8C8C8C8C8C8C8C8C8C0C0C0C0C0C0C0C0C0B2B2B2B2B2B2B2B2B29D9D9D
+9D9D9D9D9D9D7C7C7C7C7C7C7C7C7C7C7C7C5F605F5F605F5F605F505050505050505050484848
+4848484848484545454545454545454B4B4B4B4B4B4B4B4B4B4B4B5959595959595959596B6B6B
+6B6B6B6B6B6B7C7C7C7C7C7C7C7C7C8686868686868686868D8D8D8D8D8D8D8D8D8D8D8D949494
+9494949494949494949494949494949191919191919191918F8F8F8F8F8F8F8F8F8F8F8F8C8C8C
+8C8C8C8C8C8C8686868686868686868383838383838383838B8B8B8B8B8B8B8B8B929292929292
+9292929292927070707070707070703A3A3A3A3A3A3A3A3A303030303030303030323232323232
+323232353535353535353535353535313131313131313131313131313131313131393939393939
+3939396B6B6B6B6B6B6B6B6B6B6B6BD7D7D7D7D7D7D7D7D7FDFDFDFDFDFDFDFDFDFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9F9F9F9F9F9
+F9F9F9CACACACACACACACACAF0F0F0F0F0F0F0F0F0F1F1F1F1F1F1F1F1F1F1F1F1F1F1F1F1F1F1
+F1F1F1F1F1F1F1F1F1F1F1F1F1F1F1F1F1F1F1F1F1F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0
+F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0EFEFEFEFEFEFEFEFEF
+EFEFEFEFEFEFEFEFEFEFEFEFEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEDEDEDEDEDEDEDEDED
+EDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEAEAEAEAEAEAEAEAEAD6D6D5D6D6D5D6D6D5
+9D9D9D9D9D9D9D9D9D5757575757575757573535353535353535353535352C2C2C2C2C2C2C2C2C
+292929292929292929292929292929292929292929292929292929292929282828282828282828
+2727272727272727272525252525252525252424242424242424242B2B2B2B2B2B2B2B2B2B2B2B
+4646464646464646466565656565656565657474747474747474747C7C7C7C7C7C7C7C7C808080
+8080808080808080808686868686868686868F8F8F8F8F8F8F8F8F939393939393939393919191
+9191919191919191918989898989898989897C7C7C7C7C7C7C7C7C7373737373737373736F6F6F
+6F6F6F6F6F6F6A6A6A6A6A6A6A6A6A6A6A6A696969696969696969686868686868686868626262
+6262626262625F605F5F605F5F605F6464646464646464646464646C6C6C6C6C6C6C6C6C7B7B7B
+7B7B7B7B7B7B8484848484848484848B8B8B8B8B8B8B8B8B8B8B8B9A9A9A9A9A9A9A9A9AABABAB
+ABABABABABABB7B7B7B7B7B7B7B7B7BBBBBBBBBBBBBBBBBBC3C3C3C3C3C3C3C3C3C3C3C3C8C8C8
+C8C8C8C8C8C8C8C8C8C8C8C8C8C8C8C8C8C8C8C8C8C8C8C8C9C9C9C9C9C9C9C9C9C8C8C8C8C8C8
+C8C8C8C8C8C8C0C0C0C0C0C0C0C0C0B2B2B2B2B2B2B2B2B29D9D9D9D9D9D9D9D9D7C7C7C7C7C7C
+7C7C7C7C7C7C5F605F5F605F5F605F505050505050505050484848484848484848454545454545
+4545454B4B4B4B4B4B4B4B4B4B4B4B5959595959595959596B6B6B6B6B6B6B6B6B7C7C7C7C7C7C
+7C7C7C8686868686868686868D8D8D8D8D8D8D8D8D8D8D8D949494949494949494949494949494
+9494949191919191919191918F8F8F8F8F8F8F8F8F8F8F8F8C8C8C8C8C8C8C8C8C868686868686
+8686868383838383838383838B8B8B8B8B8B8B8B8B929292929292929292929292707070707070
+7070703A3A3A3A3A3A3A3A3A303030303030303030323232323232323232353535353535353535
+3535353131313131313131313131313131313131313939393939393939396B6B6B6B6B6B6B6B6B
+6B6B6BD7D7D7D7D7D7D7D7D7FDFDFDFDFDFDFDFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9F9F9F9F9F9F9F9F9CACACACACACACACACA
+EEEEEEEEEEEEEEEEEEEFEFEFEFEFEFEFEFEFEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE
+EEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDED
+EDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDED
+EBEBEBEBEBEBEBEBEBECECECECECECECECECEBEBEBEBEBEBEBEBEBE9E9E9E9E9E9E9E9E9EAEAEA
+EAEAEAEAEAEAEAEAEAE8E8E8E8E8E8E8E8E8D6D6D6D6D6D6D6D6D69E9E9E9E9E9E9E9E9E575757
+5757575757573434343434343434343434342C2C2C2C2C2C2C2C2C292929292929292929272727
+272727272727272727272727272727272727272727272727272727252525252525252525222222
+2222222222222121212121212121212525252525252525252525253E3E3E3E3E3E3E3E3E5F605F
+5F605F5F605F7272727272727272727B7B7B7B7B7B7B7B7B808080808080808080808080858585
+8585858585858B8B8B8B8B8B8B8B8B8787878787878787877A7A7A7A7A7A7A7A7A7A7A7A6E6E6E
+6E6E6E6E6E6E5F605F5F605F5F605F5252525252525252524E4E4E4E4E4E4E4E4E4C4C4C4C4C4C
+4C4C4C4C4C4C494949494949494949464646464646464646414141414141414141424242424242
+4242424848484848484848484848484C4C4C4C4C4C4C4C4C5555555555555555555D5D5D5D5D5D
+5D5D5D6868686868686868686868687B7B7B7B7B7B7B7B7B929292929292929292A4A4A4A4A4A4
+A4A4A4ADADADADADADADADADB8B8B8B8B8B8B8B8B8B8B8B8C2C2C2C2C2C2C2C2C2CACACACACACA
+CACACACFCFCFCFCFCFCFCFCFCECECECECECECECECECACACACACACACACACACACACABFBFBFBFBFBF
+BFBFBFACACACACACACACACAC939393939393939393787878787878787878787878626262626262
+6262625959595959595959595454545454545454544E4E4E4E4E4E4E4E4E525252525252525252
+5252525B5B5B5B5B5B5B5B5B686868686868686868757575757575757575787878787878787878
+777777777777777777777777828282828282828282878787878787878787898989898989898989
+8B8B8B8B8B8B8B8B8B8B8B8B8D8D8D8D8D8D8D8D8D8C8C8C8C8C8C8C8C8C8D8D8D8D8D8D8D8D8D
+9797979797979797979E9E9E9E9E9E9E9E9E9E9E9E7F7F7F7F7F7F7F7F7F404040404040404040
+2F2F2F2F2F2F2F2F2F343434343434343434373737373737373737373737363636363636363636
+3636363636363636363C3C3C3C3C3C3C3C3C656565656565656565656565CECECECECECECECECE
+FDFDFDFDFDFDFDFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFF9F9F9F9F9F9F9F9F9BDBDBDBDBDBDBDBDBDEEEEEEEEEEEEEEEEEEEFEFEF
+EFEFEFEFEFEFEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE
+EEEEEEEEEEEEEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDED
+EDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEBEBEBEBEBEBEBEBEBECECEC
+ECECECECECECEBEBEBEBEBEBEBEBEBE9E9E9E9E9E9E9E9E9EAEAEAEAEAEAEAEAEAEAEAEAE8E8E8
+E8E8E8E8E8E8D6D6D6D6D6D6D6D6D69E9E9E9E9E9E9E9E9E575757575757575757343434343434
+3434343434342C2C2C2C2C2C2C2C2C292929292929292929272727272727272727272727272727
+272727272727272727272727272727252525252525252525222222222222222222212121212121
+2121212525252525252525252525253E3E3E3E3E3E3E3E3E5F605F5F605F5F605F727272727272
+7272727B7B7B7B7B7B7B7B7B8080808080808080808080808585858585858585858B8B8B8B8B8B
+8B8B8B8787878787878787877A7A7A7A7A7A7A7A7A7A7A7A6E6E6E6E6E6E6E6E6E5F605F5F605F
+5F605F5252525252525252524E4E4E4E4E4E4E4E4E4C4C4C4C4C4C4C4C4C4C4C4C494949494949
+494949464646464646464646414141414141414141424242424242424242484848484848484848
+4848484C4C4C4C4C4C4C4C4C5555555555555555555D5D5D5D5D5D5D5D5D686868686868686868
+6868687B7B7B7B7B7B7B7B7B929292929292929292A4A4A4A4A4A4A4A4A4ADADADADADADADADAD
+B8B8B8B8B8B8B8B8B8B8B8B8C2C2C2C2C2C2C2C2C2CACACACACACACACACACFCFCFCFCFCFCFCFCF
+CECECECECECECECECECACACACACACACACACACACACABFBFBFBFBFBFBFBFBFACACACACACACACACAC
+939393939393939393787878787878787878787878626262626262626262595959595959595959
+5454545454545454544E4E4E4E4E4E4E4E4E5252525252525252525252525B5B5B5B5B5B5B5B5B
+686868686868686868757575757575757575787878787878787878777777777777777777777777
+8282828282828282828787878787878787878989898989898989898B8B8B8B8B8B8B8B8B8B8B8B
+8D8D8D8D8D8D8D8D8D8C8C8C8C8C8C8C8C8C8D8D8D8D8D8D8D8D8D9797979797979797979E9E9E
+9E9E9E9E9E9E9E9E9E7F7F7F7F7F7F7F7F7F4040404040404040402F2F2F2F2F2F2F2F2F343434
+3434343434343737373737373737373737373636363636363636363636363636363636363C3C3C
+3C3C3C3C3C3C656565656565656565656565CECECECECECECECECEFDFDFDFDFDFDFDFDFDFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9F9F9
+F9F9F9F9F9F9BDBDBDBDBDBDBDBDBDEEEEEEEEEEEEEEEEEEEFEFEFEFEFEFEFEFEFEEEEEEEEEEEE
+EEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEDEDEDEDEDED
+EDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDED
+EDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEBEBEBEBEBEBEBEBEBECECECECECECECECECEBEBEBEBEBEB
+EBEBEBE9E9E9E9E9E9E9E9E9EAEAEAEAEAEAEAEAEAEAEAEAE8E8E8E8E8E8E8E8E8D6D6D6D6D6D6
+D6D6D69E9E9E9E9E9E9E9E9E5757575757575757573434343434343434343434342C2C2C2C2C2C
+2C2C2C292929292929292929272727272727272727272727272727272727272727272727272727
+272727252525252525252525222222222222222222212121212121212121252525252525252525
+2525253E3E3E3E3E3E3E3E3E5F605F5F605F5F605F7272727272727272727B7B7B7B7B7B7B7B7B
+8080808080808080808080808585858585858585858B8B8B8B8B8B8B8B8B878787878787878787
+7A7A7A7A7A7A7A7A7A7A7A7A6E6E6E6E6E6E6E6E6E5F605F5F605F5F605F525252525252525252
+4E4E4E4E4E4E4E4E4E4C4C4C4C4C4C4C4C4C4C4C4C494949494949494949464646464646464646
+4141414141414141414242424242424242424848484848484848484848484C4C4C4C4C4C4C4C4C
+5555555555555555555D5D5D5D5D5D5D5D5D6868686868686868686868687B7B7B7B7B7B7B7B7B
+929292929292929292A4A4A4A4A4A4A4A4A4ADADADADADADADADADB8B8B8B8B8B8B8B8B8B8B8B8
+C2C2C2C2C2C2C2C2C2CACACACACACACACACACFCFCFCFCFCFCFCFCFCECECECECECECECECECACACA
+CACACACACACACACACABFBFBFBFBFBFBFBFBFACACACACACACACACAC939393939393939393787878
+7878787878787878786262626262626262625959595959595959595454545454545454544E4E4E
+4E4E4E4E4E4E5252525252525252525252525B5B5B5B5B5B5B5B5B686868686868686868757575
+757575757575787878787878787878777777777777777777777777828282828282828282878787
+8787878787878989898989898989898B8B8B8B8B8B8B8B8B8B8B8B8D8D8D8D8D8D8D8D8D8C8C8C
+8C8C8C8C8C8C8D8D8D8D8D8D8D8D8D9797979797979797979E9E9E9E9E9E9E9E9E9E9E9E7F7F7F
+7F7F7F7F7F7F4040404040404040402F2F2F2F2F2F2F2F2F343434343434343434373737373737
+3737373737373636363636363636363636363636363636363C3C3C3C3C3C3C3C3C656565656565
+656565656565CECECECECECECECECEFDFDFDFDFDFDFDFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9F9F9F9F9F9F9F9F9BDBDBDBDBDBD
+BDBDBDEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDED
+EDEDEDEEEEEEEEEEEEEEEEEEEDEDEDEDEDEDEDEDEDEBEBEBEBEBEBEBEBEBECECECECECECECECEC
+ECECECEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBECECECECECECECECEC
+ECECECEAEAEAEAEAEAEAEAEAE9E9E9E9E9E9E9E9E9E8E9E8E8E9E8E8E9E8E8E8E8E8E8E8E8E8E8
+E8E8E8E8E8E8E8E8E8E8E8E8E5E5E5E5E5E5E5E5E5D6D6D5D6D6D5D6D6D59F9F9F9F9F9F9F9F9F
+5656565656565656563434343434343434343434342D2D2D2D2D2D2D2D2D2B2B2B2B2B2B2B2B2B
+282828282828282828252525252525252525252525252525252525252525242424242424242424
+242424242424242424222222222222222222242424242424242424242424373737373737373737
+5C5C5C5C5C5C5C5C5C7272727272727272727C7C7C7C7C7C7C7C7C818181818181818181818181
+8383838383838383837E7E7E7E7E7E7E7E7E6E6E6E6E6E6E6E6E6E5D5D5D5D5D5D5D5D5D5D5D5D
+5151515151515151514747474747474747474040404040404040403B3B3B3B3B3B3B3B3B393939
+393939393939393939373737373737373737343434343434343434323232323232323232353535
+3535353535353A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3C3C3C3C3C3C3C3C3C444444
+4444444444444E4E4E4E4E4E4E4E4E4E4E4E6262626262626262627A7A7A7A7A7A7A7A7A909090
+909090909090A0A0A0A0A0A0A0A0A0B1B1B1B1B1B1B1B1B1B1B1B1C0C0C0C0C0C0C0C0C0CCCCCC
+CCCCCCCCCCCCD7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7CFCFCFCFCFCFCFCFCFCFCFCFBFBFBF
+BFBFBFBFBFBFABABABABABABABABAB9292929292929292927D7D7D7D7D7D7D7D7D7D7D7D6B6B6B
+6B6B6B6B6B6B5D5D5D5D5D5D5D5D5D555555555555555555545454545454545454585858585858
+5858585858585C5C5C5C5C5C5C5C5C5F605F5F605F5F605F656565656565656565646464646464
+6464646565656565656565656565656E6E6E6E6E6E6E6E6E717171717171717171717171717171
+7171717C7C7C7C7C7C7C7C7C7C7C7C8888888888888888888C8C8C8C8C8C8C8C8C909090909090
+9090909B9B9B9B9B9B9B9B9BA3A3A3A3A3A3A3A3A3A3A3A38D8D8D8D8D8D8D8D8D4B4B4B4B4B4B
+4B4B4B2F2F2F2F2F2F2F2F2F3232323232323232323939393939393939393939393B3B3B3B3B3B
+3B3B3B3A3A3A3A3A3A3A3A3A3C3C3C3C3C3C3C3C3C636363636363636363636363CBCBCBCBCBCB
+CBCBCBFCFCFCFCFCFCFCFCFCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFF9F9F9F9F9F9F9F9F9C7C7C7C7C7C7C7C7C7EEEEEEEEEEEEEEEEEE
+EEEEEEEEEEEEEEEEEEEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEEEEEEEEEEEEEEEEEE
+EDEDEDEDEDEDEDEDEDEBEBEBEBEBEBEBEBEBECECECECECECECECECECECECEBEBEBEBEBEBEBEBEB
+EBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBECECECECECECECECECECECECEAEAEAEAEAEAEAEAEA
+E9E9E9E9E9E9E9E9E9E8E9E8E8E9E8E8E9E8E8E8E8E8E8E8E8E8E8E8E8E8E8E8E8E8E8E8E8E8E8
+E5E5E5E5E5E5E5E5E5D6D6D5D6D6D5D6D6D59F9F9F9F9F9F9F9F9F565656565656565656343434
+3434343434343434342D2D2D2D2D2D2D2D2D2B2B2B2B2B2B2B2B2B282828282828282828252525
+252525252525252525252525252525252525242424242424242424242424242424242424222222
+2222222222222424242424242424242424243737373737373737375C5C5C5C5C5C5C5C5C727272
+7272727272727C7C7C7C7C7C7C7C7C8181818181818181818181818383838383838383837E7E7E
+7E7E7E7E7E7E6E6E6E6E6E6E6E6E6E5D5D5D5D5D5D5D5D5D5D5D5D515151515151515151474747
+4747474747474040404040404040403B3B3B3B3B3B3B3B3B393939393939393939393939373737
+3737373737373434343434343434343232323232323232323535353535353535353A3A3A3A3A3A
+3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3C3C3C3C3C3C3C3C3C4444444444444444444E4E4E4E4E4E
+4E4E4E4E4E4E6262626262626262627A7A7A7A7A7A7A7A7A909090909090909090A0A0A0A0A0A0
+A0A0A0B1B1B1B1B1B1B1B1B1B1B1B1C0C0C0C0C0C0C0C0C0CCCCCCCCCCCCCCCCCCD7D7D7D7D7D7
+D7D7D7D7D7D7D7D7D7D7D7D7CFCFCFCFCFCFCFCFCFCFCFCFBFBFBFBFBFBFBFBFBFABABABABABAB
+ABABAB9292929292929292927D7D7D7D7D7D7D7D7D7D7D7D6B6B6B6B6B6B6B6B6B5D5D5D5D5D5D
+5D5D5D5555555555555555555454545454545454545858585858585858585858585C5C5C5C5C5C
+5C5C5C5F605F5F605F5F605F656565656565656565646464646464646464656565656565656565
+6565656E6E6E6E6E6E6E6E6E7171717171717171717171717171717171717C7C7C7C7C7C7C7C7C
+7C7C7C8888888888888888888C8C8C8C8C8C8C8C8C9090909090909090909B9B9B9B9B9B9B9B9B
+A3A3A3A3A3A3A3A3A3A3A3A38D8D8D8D8D8D8D8D8D4B4B4B4B4B4B4B4B4B2F2F2F2F2F2F2F2F2F
+3232323232323232323939393939393939393939393B3B3B3B3B3B3B3B3B3A3A3A3A3A3A3A3A3A
+3C3C3C3C3C3C3C3C3C636363636363636363636363CBCBCBCBCBCBCBCBCBFCFCFCFCFCFCFCFCFC
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+F9F9F9F9F9F9F9F9F9C7C7C7C7C7C7C7C7C7EEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEDEDED
+EDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEEEEEEEEEEEEEEEEEEEDEDEDEDEDEDEDEDEDEBEBEB
+EBEBEBEBEBEBECECECECECECECECECECECECEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEB
+EBEBEBEBEBEBECECECECECECECECECECECECEAEAEAEAEAEAEAEAEAE9E9E9E9E9E9E9E9E9E8E9E8
+E8E9E8E8E9E8E8E8E8E8E8E8E8E8E8E8E8E8E8E8E8E8E8E8E8E8E8E5E5E5E5E5E5E5E5E5D6D6D5
+D6D6D5D6D6D59F9F9F9F9F9F9F9F9F5656565656565656563434343434343434343434342D2D2D
+2D2D2D2D2D2D2B2B2B2B2B2B2B2B2B282828282828282828252525252525252525252525252525
+252525252525242424242424242424242424242424242424222222222222222222242424242424
+2424242424243737373737373737375C5C5C5C5C5C5C5C5C7272727272727272727C7C7C7C7C7C
+7C7C7C8181818181818181818181818383838383838383837E7E7E7E7E7E7E7E7E6E6E6E6E6E6E
+6E6E6E5D5D5D5D5D5D5D5D5D5D5D5D515151515151515151474747474747474747404040404040
+4040403B3B3B3B3B3B3B3B3B393939393939393939393939373737373737373737343434343434
+3434343232323232323232323535353535353535353A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A
+3A3A3A3C3C3C3C3C3C3C3C3C4444444444444444444E4E4E4E4E4E4E4E4E4E4E4E626262626262
+6262627A7A7A7A7A7A7A7A7A909090909090909090A0A0A0A0A0A0A0A0A0B1B1B1B1B1B1B1B1B1
+B1B1B1C0C0C0C0C0C0C0C0C0CCCCCCCCCCCCCCCCCCD7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7
+CFCFCFCFCFCFCFCFCFCFCFCFBFBFBFBFBFBFBFBFBFABABABABABABABABAB929292929292929292
+7D7D7D7D7D7D7D7D7D7D7D7D6B6B6B6B6B6B6B6B6B5D5D5D5D5D5D5D5D5D555555555555555555
+5454545454545454545858585858585858585858585C5C5C5C5C5C5C5C5C5F605F5F605F5F605F
+6565656565656565656464646464646464646565656565656565656565656E6E6E6E6E6E6E6E6E
+7171717171717171717171717171717171717C7C7C7C7C7C7C7C7C7C7C7C888888888888888888
+8C8C8C8C8C8C8C8C8C9090909090909090909B9B9B9B9B9B9B9B9BA3A3A3A3A3A3A3A3A3A3A3A3
+8D8D8D8D8D8D8D8D8D4B4B4B4B4B4B4B4B4B2F2F2F2F2F2F2F2F2F323232323232323232393939
+3939393939393939393B3B3B3B3B3B3B3B3B3A3A3A3A3A3A3A3A3A3C3C3C3C3C3C3C3C3C636363
+636363636363636363CBCBCBCBCBCBCBCBCBFCFCFCFCFCFCFCFCFCFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9F9F9F9F9F9F9F9F9C7C7C7
+C7C7C7C7C7C7EDEDEDEDEDEDEDEDEDEEEEEEEEEEEEEEEEEEEDEDEDEDEDEDEDEDEDEDEDEDECECEC
+ECECECECECECEDEDEDEDEDEDEDEDEDEBEBEBEBEBEBEBEBEBEAEAEAEAEAEAEAEAEAEBEBEBEBEBEB
+EBEBEBEBEBEBE9E9E9E9E9E9E9E9E9EAEAEAEAEAEAEAEAEAE9E9E9E9E9E9E9E9E9E9E9E9E9E9E9
+E9E9E9E9E9E9E8E9E8E8E9E8E8E9E8E8E8E8E8E8E8E8E8E8E7E7E7E7E7E7E7E7E7E6E6E6E6E6E6
+E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E2E2E2E2E2E2E2E2E2CFCFCFCFCFCFCFCFCF999999999999
+9999995454545454545454543636363636363636363636363030303030303030302C2C2C2C2C2C
+2C2C2C292929292929292929272727272727272727272727252525252525252525242424242424
+242424222222222222222222212121212121212121212121212121212121212121313131313131
+3131315959595959595959597272727272727272727B7B7B7B7B7B7B7B7B7F7F7F7F7F7F7F7F7F
+7F7F7F7C7C7C7C7C7C7C7C7C6A6A6A6A6A6A6A6A6A525252525252525252464646464646464646
+4646464040404040404040403A3A3A3A3A3A3A3A3A363636363636363636343434343434343434
+3434343434343434343434343232323232323232322F2F2F2F2F2F2F2F2F2D2D2D2D2D2D2D2D2D
+313131313131313131353535353535353535353535363636363636363636393939393939393939
+3B3B3B3B3B3B3B3B3B444444444444444444444444555555555555555555696969696969696969
+7F7F7F7F7F7F7F7F7F929292929292929292A9A9A9A9A9A9A9A9A9A9A9A9C0C0C0C0C0C0C0C0C0
+D3D3D3D3D3D3D3D3D3DDDDDDDDDDDDDDDDDDDEDEDEDEDEDEDEDEDED6D6D5D6D6D5D6D6D5D6D6D5
+C2C2C2C2C2C2C2C2C2ACACACACACACACACAC979797979797979797818181818181818181818181
+6B6B6B6B6B6B6B6B6B5C5C5C5C5C5C5C5C5C5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A555555
+5555555555555555554E4E4E4E4E4E4E4E4E4C4C4C4C4C4C4C4C4C5959595959595959594D4D4D
+4D4D4D4D4D4D5858585858585858585858585D5D5D5D5D5D5D5D5D646464646464646464626262
+6262626262626767676767676767676767677B7B7B7B7B7B7B7B7B888888888888888888919191
+9191919191919D9D9D9D9D9D9D9D9DA6A6A6A6A6A6A6A6A6A6A6A6969696969696969696585858
+585858585858323232323232323232343434343434343434363636363636363636363636393939
+3939393939393939393939393939393A3A3A3A3A3A3A3A3A656565656565656565656565CDCDCD
+CDCDCDCDCDCDFCFCFCFCFCFCFCFCFCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBFBFBFBFBFBFBFBFBD7D7D7D7D7D7D7D7D7EDEDEDEDEDED
+EDEDEDEEEEEEEEEEEEEEEEEEEDEDEDEDEDEDEDEDEDEDEDEDECECECECECECECECECEDEDEDEDEDED
+EDEDEDEBEBEBEBEBEBEBEBEBEAEAEAEAEAEAEAEAEAEBEBEBEBEBEBEBEBEBEBEBEBE9E9E9E9E9E9
+E9E9E9EAEAEAEAEAEAEAEAEAE9E9E9E9E9E9E9E9E9E9E9E9E9E9E9E9E9E9E9E9E9E8E9E8E8E9E8
+E8E9E8E8E8E8E8E8E8E8E8E8E7E7E7E7E7E7E7E7E7E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6
+E6E6E6E2E2E2E2E2E2E2E2E2CFCFCFCFCFCFCFCFCF999999999999999999545454545454545454
+3636363636363636363636363030303030303030302C2C2C2C2C2C2C2C2C292929292929292929
+272727272727272727272727252525252525252525242424242424242424222222222222222222
+212121212121212121212121212121212121212121313131313131313131595959595959595959
+7272727272727272727B7B7B7B7B7B7B7B7B7F7F7F7F7F7F7F7F7F7F7F7F7C7C7C7C7C7C7C7C7C
+6A6A6A6A6A6A6A6A6A525252525252525252464646464646464646464646404040404040404040
+3A3A3A3A3A3A3A3A3A363636363636363636343434343434343434343434343434343434343434
+3232323232323232322F2F2F2F2F2F2F2F2F2D2D2D2D2D2D2D2D2D313131313131313131353535
+3535353535353535353636363636363636363939393939393939393B3B3B3B3B3B3B3B3B444444
+4444444444444444445555555555555555556969696969696969697F7F7F7F7F7F7F7F7F929292
+929292929292A9A9A9A9A9A9A9A9A9A9A9A9C0C0C0C0C0C0C0C0C0D3D3D3D3D3D3D3D3D3DDDDDD
+DDDDDDDDDDDDDEDEDEDEDEDEDEDEDED6D6D5D6D6D5D6D6D5D6D6D5C2C2C2C2C2C2C2C2C2ACACAC
+ACACACACACAC9797979797979797978181818181818181818181816B6B6B6B6B6B6B6B6B5C5C5C
+5C5C5C5C5C5C5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5555555555555555555555554E4E4E
+4E4E4E4E4E4E4C4C4C4C4C4C4C4C4C5959595959595959594D4D4D4D4D4D4D4D4D585858585858
+5858585858585D5D5D5D5D5D5D5D5D646464646464646464626262626262626262676767676767
+6767676767677B7B7B7B7B7B7B7B7B8888888888888888889191919191919191919D9D9D9D9D9D
+9D9D9DA6A6A6A6A6A6A6A6A6A6A6A6969696969696969696585858585858585858323232323232
+323232343434343434343434363636363636363636363636393939393939393939393939393939
+3939393A3A3A3A3A3A3A3A3A656565656565656565656565CDCDCDCDCDCDCDCDCDFCFCFCFCFCFC
+FCFCFCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFBFBFBFBFBFBFBFBFBD7D7D7D7D7D7D7D7D7EDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDED
+EBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEA
+EBEBEBEBEBEBEBEBEBEAEAEAEAEAEAEAEAEAEAEAEAE8E9E8E8E9E8E8E9E8E9E9E9E9E9E9E9E9E9
+E9E9E9E9E9E9E9E9E9E9E9E9E9E9E9E9E9E9E9E9E9E8E8E8E8E8E8E8E8E8E7E7E7E7E7E7E7E7E7
+E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E1E1E1E1E1E1E1E1E1
+CDCDCDCDCDCDCDCDCD959595959595959595505050505050505050343434343434343434343434
+2F2F2F2F2F2F2F2F2F2F2F2F2F2F2F2F2F2F2B2B2B2B2B2B2B2B2B282828282828282828282828
+252525252525252525222222222222222222222222222222222222222222222222222222222222
+2222222222222222222D2D2D2D2D2D2D2D2D5555555555555555557272727272727272727B7B7B
+7B7B7B7B7B7B7A7A7A7A7A7A7A7A7A7A7A7A6E6E6E6E6E6E6E6E6E565656565656565656424242
+4242424242423B3B3B3B3B3B3B3B3B3B3B3B3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3C3C3C
+3C3C3C3C3C3C3F3F3F3F3F3F3F3F3F4242424242424242424242424141414141414141413E3E3E
+3E3E3E3E3E3E3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3C3C3C
+3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3E3E3E3E3E3E3E3E3E464646464646464646464646545454
+5454545454545F605F5F605F5F605F717171717171717171868686868686868686A1A1A1A1A1A1
+A1A1A1A1A1A1BFBFBFBFBFBFBFBFBFD8D8D8D8D8D8D8D8D8E6E6E6E6E6E6E6E6E6E9E9E9E9E9E9
+E9E9E9DFDFDFDFDFDFDFDFDFDFDFDFC5C5C5C5C5C5C5C5C5ADADADADADADADADAD989898989898
+9898988181818181818181818181816B6B6B6B6B6B6B6B6B636363636363636363626262626262
+6262625B5B5B5B5B5B5B5B5B5454545454545454545454545252525252525252524D4D4D4D4D4D
+4D4D4D7A7A7A7A7A7A7A7A7A585858585858585858686868686868686868686868636363636363
+6363635555555555555555555858585858585858586161616161616161616161616E6E6E6E6E6E
+6E6E6E8282828282828282829191919191919191919E9E9E9E9E9E9E9E9EA7A7A7A7A7A7A7A7A7
+A7A7A79F9F9F9F9F9F9F9F9F676767676767676767373737373737373737363636363636363636
+363636363636363636363636373737373737373737363636363636363636393939393939393939
+6F6F6F6F6F6F6F6F6F6F6F6FD6D6D6D6D6D6D6D6D6FDFDFDFDFDFDFDFDFDFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9F9F9F9F9F9F9F9F9
+CACACACACACACACACAEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEBEBEBEBEBEBEBEBEBEBEBEB
+EBEBEBEBEBEBEBEBEBEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEBEBEBEBEBEBEBEBEBEAEAEA
+EAEAEAEAEAEAEAEAEAE8E9E8E8E9E8E8E9E8E9E9E9E9E9E9E9E9E9E9E9E9E9E9E9E9E9E9E9E9E9
+E9E9E9E9E9E9E9E9E9E8E8E8E8E8E8E8E8E8E7E7E7E7E7E7E7E7E7E6E6E6E6E6E6E6E6E6E6E6E6
+E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E1E1E1E1E1E1E1E1E1CDCDCDCDCDCDCDCDCD959595
+9595959595955050505050505050503434343434343434343434342F2F2F2F2F2F2F2F2F2F2F2F
+2F2F2F2F2F2F2B2B2B2B2B2B2B2B2B282828282828282828282828252525252525252525222222
+2222222222222222222222222222222222222222222222222222222222222222222222222D2D2D
+2D2D2D2D2D2D5555555555555555557272727272727272727B7B7B7B7B7B7B7B7B7A7A7A7A7A7A
+7A7A7A7A7A7A6E6E6E6E6E6E6E6E6E5656565656565656564242424242424242423B3B3B3B3B3B
+3B3B3B3B3B3B3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3C3C3C3C3C3C3C3C3C3F3F3F3F3F3F
+3F3F3F4242424242424242424242424141414141414141413E3E3E3E3E3E3E3E3E3B3B3B3B3B3B
+3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C
+3C3C3C3E3E3E3E3E3E3E3E3E4646464646464646464646465454545454545454545F605F5F605F
+5F605F717171717171717171868686868686868686A1A1A1A1A1A1A1A1A1A1A1A1BFBFBFBFBFBF
+BFBFBFD8D8D8D8D8D8D8D8D8E6E6E6E6E6E6E6E6E6E9E9E9E9E9E9E9E9E9DFDFDFDFDFDFDFDFDF
+DFDFDFC5C5C5C5C5C5C5C5C5ADADADADADADADADAD989898989898989898818181818181818181
+8181816B6B6B6B6B6B6B6B6B6363636363636363636262626262626262625B5B5B5B5B5B5B5B5B
+5454545454545454545454545252525252525252524D4D4D4D4D4D4D4D4D7A7A7A7A7A7A7A7A7A
+585858585858585858686868686868686868686868636363636363636363555555555555555555
+5858585858585858586161616161616161616161616E6E6E6E6E6E6E6E6E828282828282828282
+9191919191919191919E9E9E9E9E9E9E9E9EA7A7A7A7A7A7A7A7A7A7A7A79F9F9F9F9F9F9F9F9F
+676767676767676767373737373737373737363636363636363636363636363636363636363636
+3737373737373737373636363636363636363939393939393939396F6F6F6F6F6F6F6F6F6F6F6F
+D6D6D6D6D6D6D6D6D6FDFDFDFDFDFDFDFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9F9F9F9F9F9F9F9F9CACACACACACACACACAEDEDED
+EDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEAEAEA
+EAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEBEBEBEBEBEBEBEBEBEAEAEAEAEAEAEAEAEAEAEAEAE8E9E8
+E8E9E8E8E9E8E9E9E9E9E9E9E9E9E9E9E9E9E9E9E9E9E9E9E9E9E9E9E9E9E9E9E9E9E9E9E8E8E8
+E8E8E8E8E8E8E7E7E7E7E7E7E7E7E7E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6
+E6E6E6E6E6E6E1E1E1E1E1E1E1E1E1CDCDCDCDCDCDCDCDCD959595959595959595505050505050
+5050503434343434343434343434342F2F2F2F2F2F2F2F2F2F2F2F2F2F2F2F2F2F2B2B2B2B2B2B
+2B2B2B282828282828282828282828252525252525252525222222222222222222222222222222
+2222222222222222222222222222222222222222222222222D2D2D2D2D2D2D2D2D555555555555
+5555557272727272727272727B7B7B7B7B7B7B7B7B7A7A7A7A7A7A7A7A7A7A7A7A6E6E6E6E6E6E
+6E6E6E5656565656565656564242424242424242423B3B3B3B3B3B3B3B3B3B3B3B3A3A3A3A3A3A
+3A3A3A3A3A3A3A3A3A3A3A3A3C3C3C3C3C3C3C3C3C3F3F3F3F3F3F3F3F3F424242424242424242
+4242424141414141414141413E3E3E3E3E3E3E3E3E3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B
+3B3B3B3B3B3B3B3B3B3B3B3B3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3E3E3E3E3E3E3E3E3E
+4646464646464646464646465454545454545454545F605F5F605F5F605F717171717171717171
+868686868686868686A1A1A1A1A1A1A1A1A1A1A1A1BFBFBFBFBFBFBFBFBFD8D8D8D8D8D8D8D8D8
+E6E6E6E6E6E6E6E6E6E9E9E9E9E9E9E9E9E9DFDFDFDFDFDFDFDFDFDFDFDFC5C5C5C5C5C5C5C5C5
+ADADADADADADADADAD9898989898989898988181818181818181818181816B6B6B6B6B6B6B6B6B
+6363636363636363636262626262626262625B5B5B5B5B5B5B5B5B545454545454545454545454
+5252525252525252524D4D4D4D4D4D4D4D4D7A7A7A7A7A7A7A7A7A585858585858585858686868
+686868686868686868636363636363636363555555555555555555585858585858585858616161
+6161616161616161616E6E6E6E6E6E6E6E6E8282828282828282829191919191919191919E9E9E
+9E9E9E9E9E9EA7A7A7A7A7A7A7A7A7A7A7A79F9F9F9F9F9F9F9F9F676767676767676767373737
+373737373737363636363636363636363636363636363636363636373737373737373737363636
+3636363636363939393939393939396F6F6F6F6F6F6F6F6F6F6F6FD6D6D6D6D6D6D6D6D6FDFDFD
+FDFDFDFDFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFF9F9F9F9F9F9F9F9F9CACACACACACACACACAECECECECECECECECECECECECECECEC
+ECECECEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAE9E9E9E9E9E9E9E9E9EAEAEAEAEAEA
+EAEAEAEAEAEAEAEAEAEAEAEAE9E9E9E9E9E9E9E9E9E9E9E9E9E9E9E9E9E9E9E9E9E8E9E8E8E9E8
+E8E9E8E8E9E8E8E9E8E8E9E8E8E9E8E8E9E8E8E9E8E8E9E8E8E8E8E8E8E8E8E8E8E7E7E7E7E7E7
+E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E6E6E6E6E6E6E6E6E6E6E6E6E0E0E0E0E0E0
+E0E0E0CBCBCBCBCBCBCBCBCB9090909090909090904F4F4F4F4F4F4F4F4F343434343434343434
+3434342D2D2D2D2D2D2D2D2D2F2F2F2F2F2F2F2F2F2D2D2D2D2D2D2D2D2D292929292929292929
+292929252525252525252525222222222222222222222222222222222222222222222222222222
+2020202020202020202020202B2B2B2B2B2B2B2B2B525252525252525252727272727272727272
+7979797979797979796F6F6F6F6F6F6F6F6F6F6F6F5B5B5B5B5B5B5B5B5B494949494949494949
+4242424242424242424141414141414141414141414747474747474747474F4F4F4F4F4F4F4F4F
+5656565656565656565C5C5C5C5C5C5C5C5C5E5E5E5E5E5E5E5E5E5E5E5E5A5A5A5A5A5A5A5A5A
+5252525252525252524C4C4C4C4C4C4C4C4C4444444444444444443F3F3F3F3F3F3F3F3F3F3F3F
+3E3E3E3E3E3E3E3E3E3C3C3C3C3C3C3C3C3C3F3F3F3F3F3F3F3F3F474747474747474747474747
+5252525252525252525B5B5B5B5B5B5B5B5B6969696969696969697D7D7D7D7D7D7D7D7D9B9B9B
+9B9B9B9B9B9B9B9B9BBFBFBFBFBFBFBFBFBFDEDEDEDEDEDEDEDEDEEDEDEDEDEDEDEDEDEDF5F5F5
+F5F5F5F5F5F5E5E5E5E5E5E5E5E5E5E5E5E5C7C7C7C7C7C7C7C7C7ADADADADADADADADAD999999
+9999999999998383838383838383838383837373737373737373736D6D6D6D6D6D6D6D6D6B6B6B
+6B6B6B6B6B6B707070707070707070636363636363636363636363595959595959595959474747
+4747474747475F605F5F605F5F605F6161616161616161617F7F7F7F7F7F7F7F7F7F7F7F7C7C7C
+7C7C7C7C7C7C6767676767676767675E5E5E5E5E5E5E5E5E686868686868686868686868727272
+7272727272728080808080808080809292929292929292929F9F9F9F9F9F9F9F9FA8A8A8A8A8A8
+A8A8A8A8A8A8A4A4A4A4A4A4A4A4A47777777777777777773F3F3F3F3F3F3F3F3F363636363636
+3636363636363636363636363636363636363636363636363939393939393939393E3E3E3E3E3E
+3E3E3E848484848484848484848484E4E4E4E4E4E4E4E4E4FDFDFDFDFDFDFDFDFDFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBFBFBFBFBFB
+FBFBFBD4D4D4D4D4D4D4D4D4ECECECECECECECECECECECECECECECECECECEAEAEAEAEAEAEAEAEA
+EAEAEAEAEAEAEAEAEAEAEAEAE9E9E9E9E9E9E9E9E9EAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEA
+E9E9E9E9E9E9E9E9E9E9E9E9E9E9E9E9E9E9E9E9E9E8E9E8E8E9E8E8E9E8E8E9E8E8E9E8E8E9E8
+E8E9E8E8E9E8E8E9E8E8E9E8E8E8E8E8E8E8E8E8E8E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7
+E7E7E7E7E7E7E7E7E7E6E6E6E6E6E6E6E6E6E6E6E6E0E0E0E0E0E0E0E0E0CBCBCBCBCBCBCBCBCB
+9090909090909090904F4F4F4F4F4F4F4F4F3434343434343434343434342D2D2D2D2D2D2D2D2D
+2F2F2F2F2F2F2F2F2F2D2D2D2D2D2D2D2D2D292929292929292929292929252525252525252525
+222222222222222222222222222222222222222222222222222222202020202020202020202020
+2B2B2B2B2B2B2B2B2B5252525252525252527272727272727272727979797979797979796F6F6F
+6F6F6F6F6F6F6F6F6F5B5B5B5B5B5B5B5B5B494949494949494949424242424242424242414141
+4141414141414141414747474747474747474F4F4F4F4F4F4F4F4F5656565656565656565C5C5C
+5C5C5C5C5C5C5E5E5E5E5E5E5E5E5E5E5E5E5A5A5A5A5A5A5A5A5A5252525252525252524C4C4C
+4C4C4C4C4C4C4444444444444444443F3F3F3F3F3F3F3F3F3F3F3F3E3E3E3E3E3E3E3E3E3C3C3C
+3C3C3C3C3C3C3F3F3F3F3F3F3F3F3F4747474747474747474747475252525252525252525B5B5B
+5B5B5B5B5B5B6969696969696969697D7D7D7D7D7D7D7D7D9B9B9B9B9B9B9B9B9B9B9B9BBFBFBF
+BFBFBFBFBFBFDEDEDEDEDEDEDEDEDEEDEDEDEDEDEDEDEDEDF5F5F5F5F5F5F5F5F5E5E5E5E5E5E5
+E5E5E5E5E5E5C7C7C7C7C7C7C7C7C7ADADADADADADADADAD999999999999999999838383838383
+8383838383837373737373737373736D6D6D6D6D6D6D6D6D6B6B6B6B6B6B6B6B6B707070707070
+7070706363636363636363636363635959595959595959594747474747474747475F605F5F605F
+5F605F6161616161616161617F7F7F7F7F7F7F7F7F7F7F7F7C7C7C7C7C7C7C7C7C676767676767
+6767675E5E5E5E5E5E5E5E5E686868686868686868686868727272727272727272808080808080
+8080809292929292929292929F9F9F9F9F9F9F9F9FA8A8A8A8A8A8A8A8A8A8A8A8A4A4A4A4A4A4
+A4A4A47777777777777777773F3F3F3F3F3F3F3F3F363636363636363636363636363636363636
+3636363636363636363636363939393939393939393E3E3E3E3E3E3E3E3E848484848484848484
+848484E4E4E4E4E4E4E4E4E4FDFDFDFDFDFDFDFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBFBFBFBFBFBFBFBFBD4D4D4D4D4D4D4D4D4
+ECECECECECECECECECEBEBEBEBEBEBEBEBEBEAEAEAEAEAEAEAEAEAEAEAEAE9E9E9E9E9E9E9E9E9
+E8E9E8E8E9E8E8E9E8E9E9E9E9E9E9E9E9E9E8E9E8E8E9E8E8E9E8E9E9E9E9E9E9E9E9E9E9E9E9
+E8E9E8E8E9E8E8E9E8E8E9E8E8E9E8E8E9E8E8E9E8E8E9E8E8E9E8E8E9E8E8E9E8E8E9E8E8E9E8
+E8E8E8E8E8E8E8E8E8E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E6E6E6E6E6E6E6E6E6E6E6E6
+E6E6E6E6E6E6E6E6E6E2E2E2E2E2E2E2E2E2CBCBCBCBCBCBCBCBCB919191919191919191515151
+5151515151513434343434343434343434342C2C2C2C2C2C2C2C2C2B2B2B2B2B2B2B2B2B2D2D2D
+2D2D2D2D2D2D2B2B2B2B2B2B2B2B2B2B2B2B242424242424242424202020202020202020212121
+2121212121212121212121212121212121212121212121212121212929292929292929294E4E4E
+4E4E4E4E4E4E717171717171717171747474747474747474636363636363636363636363505050
+5050505050504848484848484848484747474747474747474E4E4E4E4E4E4E4E4E4E4E4E5B5B5B
+5B5B5B5B5B5B6565656565656565656B6B6B6B6B6B6B6B6B6E6E6E6E6E6E6E6E6E6A6A6A6A6A6A
+6A6A6A6A6A6A6262626262626262625858585858585858584F4F4F4F4F4F4F4F4F4B4B4B4B4B4B
+4B4B4B4848484848484848484848484C4C4C4C4C4C4C4C4C484848484848484848444444444444
+4444444646464646464646464646464E4E4E4E4E4E4E4E4E5A5A5A5A5A5A5A5A5A676767676767
+676767787878787878787878929292929292929292929292B8B8B8B8B8B8B8B8B8DBDBDBDBDBDB
+DBDBDBEDEDEDEDEDEDEDEDEDF6F6F6F6F6F6F6F6F6E5E5E5E5E5E5E5E5E5E5E5E5C8C8C8C8C8C8
+C8C8C8B0B1B0B0B1B0B0B1B09D9D9D9D9D9D9D9D9D8E8E8E8E8E8E8E8E8E8E8E8E848484848484
+8484847C7C7C7C7C7C7C7C7C808080808080808080919191919191919191797979797979797979
+7979796262626262626262625656565656565656565D5D5D5D5D5D5D5D5D707070707070707070
+949494949494949494949494949494949494949494828282828282828282797979797979797979
+7A7A7A7A7A7A7A7A7A7A7A7A808080808080808080888888888888888888959595959595959595
+A4A4A4A4A4A4A4A4A4ACACACACACACACACACACACACA8A8A8A8A8A8A8A8A8868686868686868686
+484848484848484848393939393939393939393939393939393939393939373737373737373737
+3B3B3B3B3B3B3B3B3B4848484848484848489B9B9B9B9B9B9B9B9B9B9B9BF0F0F0F0F0F0F0F0F0
+FEFEFEFEFEFEFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFCFCFCFCFCFCFCFCFCE1E1E1E1E1E1E1E1E1ECECECECECECECECECEBEBEB
+EBEBEBEBEBEBEAEAEAEAEAEAEAEAEAEAEAEAE9E9E9E9E9E9E9E9E9E8E9E8E8E9E8E8E9E8E9E9E9
+E9E9E9E9E9E9E8E9E8E8E9E8E8E9E8E9E9E9E9E9E9E9E9E9E9E9E9E8E9E8E8E9E8E8E9E8E8E9E8
+E8E9E8E8E9E8E8E9E8E8E9E8E8E9E8E8E9E8E8E9E8E8E9E8E8E9E8E8E8E8E8E8E8E8E8E8E7E7E7
+E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E2E2E2
+E2E2E2E2E2E2CBCBCBCBCBCBCBCBCB919191919191919191515151515151515151343434343434
+3434343434342C2C2C2C2C2C2C2C2C2B2B2B2B2B2B2B2B2B2D2D2D2D2D2D2D2D2D2B2B2B2B2B2B
+2B2B2B2B2B2B242424242424242424202020202020202020212121212121212121212121212121
+2121212121212121212121212121212929292929292929294E4E4E4E4E4E4E4E4E717171717171
+717171747474747474747474636363636363636363636363505050505050505050484848484848
+4848484747474747474747474E4E4E4E4E4E4E4E4E4E4E4E5B5B5B5B5B5B5B5B5B656565656565
+6565656B6B6B6B6B6B6B6B6B6E6E6E6E6E6E6E6E6E6A6A6A6A6A6A6A6A6A6A6A6A626262626262
+6262625858585858585858584F4F4F4F4F4F4F4F4F4B4B4B4B4B4B4B4B4B484848484848484848
+4848484C4C4C4C4C4C4C4C4C484848484848484848444444444444444444464646464646464646
+4646464E4E4E4E4E4E4E4E4E5A5A5A5A5A5A5A5A5A676767676767676767787878787878787878
+929292929292929292929292B8B8B8B8B8B8B8B8B8DBDBDBDBDBDBDBDBDBEDEDEDEDEDEDEDEDED
+F6F6F6F6F6F6F6F6F6E5E5E5E5E5E5E5E5E5E5E5E5C8C8C8C8C8C8C8C8C8B0B1B0B0B1B0B0B1B0
+9D9D9D9D9D9D9D9D9D8E8E8E8E8E8E8E8E8E8E8E8E8484848484848484847C7C7C7C7C7C7C7C7C
+808080808080808080919191919191919191797979797979797979797979626262626262626262
+5656565656565656565D5D5D5D5D5D5D5D5D707070707070707070949494949494949494949494
+9494949494949494948282828282828282827979797979797979797A7A7A7A7A7A7A7A7A7A7A7A
+808080808080808080888888888888888888959595959595959595A4A4A4A4A4A4A4A4A4ACACAC
+ACACACACACACACACACA8A8A8A8A8A8A8A8A8868686868686868686484848484848484848393939
+3939393939393939393939393939393939393737373737373737373B3B3B3B3B3B3B3B3B484848
+4848484848489B9B9B9B9B9B9B9B9B9B9B9BF0F0F0F0F0F0F0F0F0FEFEFEFEFEFEFEFEFEFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCFCFC
+FCFCFCFCFCFCE1E1E1E1E1E1E1E1E1ECECECECECECECECECEBEBEBEBEBEBEBEBEBEAEAEAEAEAEA
+EAEAEAEAEAEAE9E9E9E9E9E9E9E9E9E8E9E8E8E9E8E8E9E8E9E9E9E9E9E9E9E9E9E8E9E8E8E9E8
+E8E9E8E9E9E9E9E9E9E9E9E9E9E9E9E8E9E8E8E9E8E8E9E8E8E9E8E8E9E8E8E9E8E8E9E8E8E9E8
+E8E9E8E8E9E8E8E9E8E8E9E8E8E9E8E8E8E8E8E8E8E8E8E8E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7
+E7E7E7E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E2E2E2E2E2E2E2E2E2CBCBCBCBCBCB
+CBCBCB9191919191919191915151515151515151513434343434343434343434342C2C2C2C2C2C
+2C2C2C2B2B2B2B2B2B2B2B2B2D2D2D2D2D2D2D2D2D2B2B2B2B2B2B2B2B2B2B2B2B242424242424
+242424202020202020202020212121212121212121212121212121212121212121212121212121
+2121212929292929292929294E4E4E4E4E4E4E4E4E717171717171717171747474747474747474
+636363636363636363636363505050505050505050484848484848484848474747474747474747
+4E4E4E4E4E4E4E4E4E4E4E4E5B5B5B5B5B5B5B5B5B6565656565656565656B6B6B6B6B6B6B6B6B
+6E6E6E6E6E6E6E6E6E6A6A6A6A6A6A6A6A6A6A6A6A626262626262626262585858585858585858
+4F4F4F4F4F4F4F4F4F4B4B4B4B4B4B4B4B4B4848484848484848484848484C4C4C4C4C4C4C4C4C
+4848484848484848484444444444444444444646464646464646464646464E4E4E4E4E4E4E4E4E
+5A5A5A5A5A5A5A5A5A676767676767676767787878787878787878929292929292929292929292
+B8B8B8B8B8B8B8B8B8DBDBDBDBDBDBDBDBDBEDEDEDEDEDEDEDEDEDF6F6F6F6F6F6F6F6F6E5E5E5
+E5E5E5E5E5E5E5E5E5C8C8C8C8C8C8C8C8C8B0B1B0B0B1B0B0B1B09D9D9D9D9D9D9D9D9D8E8E8E
+8E8E8E8E8E8E8E8E8E8484848484848484847C7C7C7C7C7C7C7C7C808080808080808080919191
+9191919191917979797979797979797979796262626262626262625656565656565656565D5D5D
+5D5D5D5D5D5D707070707070707070949494949494949494949494949494949494949494828282
+8282828282827979797979797979797A7A7A7A7A7A7A7A7A7A7A7A808080808080808080888888
+888888888888959595959595959595A4A4A4A4A4A4A4A4A4ACACACACACACACACACACACACA8A8A8
+A8A8A8A8A8A8868686868686868686484848484848484848393939393939393939393939393939
+3939393939393737373737373737373B3B3B3B3B3B3B3B3B4848484848484848489B9B9B9B9B9B
+9B9B9B9B9B9BF0F0F0F0F0F0F0F0F0FEFEFEFEFEFEFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCFCFCFCFCFCFCFCFCE1E1E1E1E1E1
+E1E1E1EBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEA
+EAEAEAE8E9E8E8E9E8E8E9E8E9E9E9E9E9E9E9E9E9E8E9E8E8E9E8E8E9E8E8E9E8E8E9E8E8E9E8
+E8E9E8E8E8E8E8E8E8E8E8E8E8E9E8E8E9E8E8E9E8E8E8E8E8E8E8E8E8E8E8E9E8E8E9E8E8E9E8
+E8E9E8E8E8E8E8E8E8E8E8E8E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E6E6E6E6E6E6E6E6E6
+E5E5E5E5E5E5E5E5E5E5E5E5E1E1E1E1E1E1E1E1E1CCCCCCCCCCCCCCCCCC959595959595959595
+5555555555555555553535353535353535353535352C2C2C2C2C2C2C2C2C292929292929292929
+292929292929292929292929292929292929292929252525252525252525212121212121212121
+212121212121212121212121212121212121212121212121212121212121292929292929292929
+4E4E4E4E4E4E4E4E4E7070707070707070706E6E6E6E6E6E6E6E6E5A5A5A5A5A5A5A5A5A5A5A5A
+4F4F4F4F4F4F4F4F4F5151515151515151515757575757575757575E5E5E5E5E5E5E5E5E5E5E5E
+6868686868686868686D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6767676767676767675A5A5A
+5A5A5A5A5A5A5A5A5A5050505050505050504C4C4C4C4C4C4C4C4C444444444444444444494949
+4949494949494E4E4E4E4E4E4E4E4E4E4E4E585858585858585858595959595959595959565656
+5656565656564F4F4F4F4F4F4F4F4F4F4F4F5050505050505050505A5A5A5A5A5A5A5A5A676767
+6767676767677777777777777777778B8B8B8B8B8B8B8B8B8B8B8BACACACACACACACACACD3D3D3
+D3D3D3D3D3D3E8E9E8E8E9E8E8E9E8F0F0F0F0F0F0F0F0F0E1E1E1E1E1E1E1E1E1E1E1E1C6C6C6
+C6C6C6C6C6C6B4B4B4B4B4B4B4B4B4A4A4A4A4A4A4A4A4A4A0A0A0A0A0A0A0A0A0A0A0A09A9A9A
+9A9A9A9A9A9A929292929292929292959595959595959595A1A1A1A1A1A1A1A1A1909090909090
+9090909090907676767676767676767070707070707070707979797979797979798C8C8C8C8C8C
+8C8C8C9E9E9E9E9E9E9E9E9E9E9E9E9F9F9F9F9F9F9F9F9F959595959595959595959595959595
+9595959999999999999999999999999A9A9A9A9A9A9A9A9A9A9A9A9A9A9A9A9A9AA0A0A0A0A0A0
+A0A0A0AEAEAEAEAEAEAEAEAEB2B2B2B2B2B2B2B2B2B2B2B2ADADADADADADADADAD909090909090
+909090515151515151515151464646464646464646464646464646464646464646404040404040
+4040403F3F3F3F3F3F3F3F3F5B5B5B5B5B5B5B5B5BB9B9B9B9B9B9B9B9B9B9B9B9F9F9F9F9F9F9
+F9F9F9FEFEFEFEFEFEFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFF9F9F9F9F9F9F9F9F9C7C7C7C7C7C7C7C7C7EBEBEBEBEBEBEBEBEB
+EBEBEBEBEBEBEBEBEBEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAE8E9E8E8E9E8E8E9E8
+E9E9E9E9E9E9E9E9E9E8E9E8E8E9E8E8E9E8E8E9E8E8E9E8E8E9E8E8E9E8E8E8E8E8E8E8E8E8E8
+E8E9E8E8E9E8E8E9E8E8E8E8E8E8E8E8E8E8E8E9E8E8E9E8E8E9E8E8E9E8E8E8E8E8E8E8E8E8E8
+E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E6E6E6E6E6E6E6E6E6E5E5E5E5E5E5E5E5E5E5E5E5
+E1E1E1E1E1E1E1E1E1CCCCCCCCCCCCCCCCCC959595959595959595555555555555555555353535
+3535353535353535352C2C2C2C2C2C2C2C2C292929292929292929292929292929292929292929
+292929292929292929252525252525252525212121212121212121212121212121212121212121
+2121212121212121212121212121212121212929292929292929294E4E4E4E4E4E4E4E4E707070
+7070707070706E6E6E6E6E6E6E6E6E5A5A5A5A5A5A5A5A5A5A5A5A4F4F4F4F4F4F4F4F4F515151
+5151515151515757575757575757575E5E5E5E5E5E5E5E5E5E5E5E6868686868686868686D6D6D
+6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6767676767676767675A5A5A5A5A5A5A5A5A5A5A5A505050
+5050505050504C4C4C4C4C4C4C4C4C4444444444444444444949494949494949494E4E4E4E4E4E
+4E4E4E4E4E4E5858585858585858585959595959595959595656565656565656564F4F4F4F4F4F
+4F4F4F4F4F4F5050505050505050505A5A5A5A5A5A5A5A5A676767676767676767777777777777
+7777778B8B8B8B8B8B8B8B8B8B8B8BACACACACACACACACACD3D3D3D3D3D3D3D3D3E8E9E8E8E9E8
+E8E9E8F0F0F0F0F0F0F0F0F0E1E1E1E1E1E1E1E1E1E1E1E1C6C6C6C6C6C6C6C6C6B4B4B4B4B4B4
+B4B4B4A4A4A4A4A4A4A4A4A4A0A0A0A0A0A0A0A0A0A0A0A09A9A9A9A9A9A9A9A9A929292929292
+929292959595959595959595A1A1A1A1A1A1A1A1A1909090909090909090909090767676767676
+7676767070707070707070707979797979797979798C8C8C8C8C8C8C8C8C9E9E9E9E9E9E9E9E9E
+9E9E9E9F9F9F9F9F9F9F9F9F959595959595959595959595959595959595999999999999999999
+9999999A9A9A9A9A9A9A9A9A9A9A9A9A9A9A9A9A9AA0A0A0A0A0A0A0A0A0AEAEAEAEAEAEAEAEAE
+B2B2B2B2B2B2B2B2B2B2B2B2ADADADADADADADADAD909090909090909090515151515151515151
+4646464646464646464646464646464646464646464040404040404040403F3F3F3F3F3F3F3F3F
+5B5B5B5B5B5B5B5B5BB9B9B9B9B9B9B9B9B9B9B9B9F9F9F9F9F9F9F9F9F9FEFEFEFEFEFEFEFEFE
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+F9F9F9F9F9F9F9F9F9C7C7C7C7C7C7C7C7C7EAEAEAEAEAEAEAEAEAE9E9E9E9E9E9E9E9E9EAEAEA
+EAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAE8E9E8E8E9E8E8E9E8E8E9E8E8E9E8E8E9E8E9E9E9
+E9E9E9E9E9E9E8E8E8E8E8E8E8E8E8E8E8E8E8E8E8E8E8E8E8E8E8E8E9E8E8E9E8E8E9E8E7E7E7
+E7E7E7E7E7E7E8E8E8E8E8E8E8E8E8E8E8E8E8E8E8E8E8E8E8E8E8E7E7E7E7E7E7E7E7E7E7E7E7
+E7E7E7E7E7E7E5E5E5E5E5E5E5E5E5E4E4E4E4E4E4E4E4E4E4E4E4E0E0E0E0E0E0E0E0E0CDCDCD
+CDCDCDCDCDCD9D9D9D9D9D9D9D9D9D5D5D5D5D5D5D5D5D5D3737373737373737373737372B2B2B
+2B2B2B2B2B2B282828282828282828282828282828282828252525252525252525252525222222
+222222222222202020202020202020212121212121212121202020202020202020212121212121
+2121212121212929292929292929294F4F4F4F4F4F4F4F4F7070707070707070706D6D6D6D6D6D
+6D6D6D5F605F5F605F5F605F5F605F5B5B5B5B5B5B5B5B5B5D5D5D5D5D5D5D5D5D636363636363
+6363636868686868686868686868686B6B6B6B6B6B6B6B6B6767676767676767675D5D5D5D5D5D
+5D5D5D5555555555555555554848484848484848484848483B3B3B3B3B3B3B3B3B393939393939
+3939393535353535353535355656565656565656565F605F5F605F5F605F5F605F6C6C6C6C6C6C
+6C6C6C6A6A6A6A6A6A6A6A6A5E5E5E5E5E5E5E5E5E6161616161616161616161615D5D5D5D5D5D
+5D5D5D616161616161616161696969696969696969777777777777777777878787878787878787
+878787A6A6A6A6A6A6A6A6A6CDCDCDCDCDCDCDCDCDE5E5E5E5E5E5E5E5E5ECECECECECECECECEC
+DEDEDEDEDEDEDEDEDEDEDEDEC5C5C5C5C5C5C5C5C5B6B6B6B6B6B6B6B6B6AAAAAAAAAAAAAAAAAA
+AEAEAEAEAEAEAEAEAEAEAEAEA8A8A8A8A8A8A8A8A8A1A1A1A1A1A1A1A1A19F9F9F9F9F9F9F9F9F
+9E9E9E9E9E9E9E9E9E9797979797979797979797978D8D8D8D8D8D8D8D8D8B8B8B8B8B8B8B8B8B
+939393939393939393A2A2A2A2A2A2A2A2A2A9A9A9A9A9A9A9A9A9A9A9A9ABABABABABABABABAB
+AAAAAAAAAAAAAAAAAAACACACACACACACACACB0B1B0B0B1B0B0B1B0B0B1B0B2B2B2B2B2B2B2B2B2
+B1B1B1B1B1B1B1B1B1B2B2B2B2B2B2B2B2B2B9B9B9B9B9B9B9B9B9BABABABABABABABABABABABA
+B2B2B2B2B2B2B2B2B29696969696969696965B5B5B5B5B5B5B5B5B5757575757575757575E5E5E
+5E5E5E5E5E5E5E5E5E5454545454545454544E4E4E4E4E4E4E4E4E818181818181818181DEDEDE
+DEDEDEDEDEDEDEDEDEFDFDFDFDFDFDFDFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9F9F9F9F9F9F9F9F9C6C6C6
+C6C6C6C6C6C6EAEAEAEAEAEAEAEAEAE9E9E9E9E9E9E9E9E9EAEAEAEAEAEAEAEAEAEAEAEAEAEAEA
+EAEAEAEAEAEAE8E9E8E8E9E8E8E9E8E8E9E8E8E9E8E8E9E8E9E9E9E9E9E9E9E9E9E8E8E8E8E8E8
+E8E8E8E8E8E8E8E8E8E8E8E8E8E8E8E8E9E8E8E9E8E8E9E8E7E7E7E7E7E7E7E7E7E8E8E8E8E8E8
+E8E8E8E8E8E8E8E8E8E8E8E8E8E8E8E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E5E5E5E5E5E5
+E5E5E5E4E4E4E4E4E4E4E4E4E4E4E4E0E0E0E0E0E0E0E0E0CDCDCDCDCDCDCDCDCD9D9D9D9D9D9D
+9D9D9D5D5D5D5D5D5D5D5D5D3737373737373737373737372B2B2B2B2B2B2B2B2B282828282828
+282828282828282828282828252525252525252525252525222222222222222222202020202020
+202020212121212121212121202020202020202020212121212121212121212121292929292929
+2929294F4F4F4F4F4F4F4F4F7070707070707070706D6D6D6D6D6D6D6D6D5F605F5F605F5F605F
+5F605F5B5B5B5B5B5B5B5B5B5D5D5D5D5D5D5D5D5D636363636363636363686868686868686868
+6868686B6B6B6B6B6B6B6B6B6767676767676767675D5D5D5D5D5D5D5D5D555555555555555555
+4848484848484848484848483B3B3B3B3B3B3B3B3B393939393939393939353535353535353535
+5656565656565656565F605F5F605F5F605F5F605F6C6C6C6C6C6C6C6C6C6A6A6A6A6A6A6A6A6A
+5E5E5E5E5E5E5E5E5E6161616161616161616161615D5D5D5D5D5D5D5D5D616161616161616161
+696969696969696969777777777777777777878787878787878787878787A6A6A6A6A6A6A6A6A6
+CDCDCDCDCDCDCDCDCDE5E5E5E5E5E5E5E5E5ECECECECECECECECECDEDEDEDEDEDEDEDEDEDEDEDE
+C5C5C5C5C5C5C5C5C5B6B6B6B6B6B6B6B6B6AAAAAAAAAAAAAAAAAAAEAEAEAEAEAEAEAEAEAEAEAE
+A8A8A8A8A8A8A8A8A8A1A1A1A1A1A1A1A1A19F9F9F9F9F9F9F9F9F9E9E9E9E9E9E9E9E9E979797
+9797979797979797978D8D8D8D8D8D8D8D8D8B8B8B8B8B8B8B8B8B939393939393939393A2A2A2
+A2A2A2A2A2A2A9A9A9A9A9A9A9A9A9A9A9A9ABABABABABABABABABAAAAAAAAAAAAAAAAAAACACAC
+ACACACACACACB0B1B0B0B1B0B0B1B0B0B1B0B2B2B2B2B2B2B2B2B2B1B1B1B1B1B1B1B1B1B2B2B2
+B2B2B2B2B2B2B9B9B9B9B9B9B9B9B9BABABABABABABABABABABABAB2B2B2B2B2B2B2B2B2969696
+9696969696965B5B5B5B5B5B5B5B5B5757575757575757575E5E5E5E5E5E5E5E5E5E5E5E545454
+5454545454544E4E4E4E4E4E4E4E4E818181818181818181DEDEDEDEDEDEDEDEDEDEDEDEFDFDFD
+FDFDFDFDFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9F9F9F9F9F9F9F9F9C6C6C6C6C6C6C6C6C6EAEAEAEAEAEA
+EAEAEAE9E9E9E9E9E9E9E9E9EAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAE8E9E8E8E9E8
+E8E9E8E8E9E8E8E9E8E8E9E8E9E9E9E9E9E9E9E9E9E8E8E8E8E8E8E8E8E8E8E8E8E8E8E8E8E8E8
+E8E8E8E8E9E8E8E9E8E8E9E8E7E7E7E7E7E7E7E7E7E8E8E8E8E8E8E8E8E8E8E8E8E8E8E8E8E8E8
+E8E8E8E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E5E5E5E5E5E5E5E5E5E4E4E4E4E4E4E4E4E4
+E4E4E4E0E0E0E0E0E0E0E0E0CDCDCDCDCDCDCDCDCD9D9D9D9D9D9D9D9D9D5D5D5D5D5D5D5D5D5D
+3737373737373737373737372B2B2B2B2B2B2B2B2B282828282828282828282828282828282828
+252525252525252525252525222222222222222222202020202020202020212121212121212121
+2020202020202020202121212121212121212121212929292929292929294F4F4F4F4F4F4F4F4F
+7070707070707070706D6D6D6D6D6D6D6D6D5F605F5F605F5F605F5F605F5B5B5B5B5B5B5B5B5B
+5D5D5D5D5D5D5D5D5D6363636363636363636868686868686868686868686B6B6B6B6B6B6B6B6B
+6767676767676767675D5D5D5D5D5D5D5D5D555555555555555555484848484848484848484848
+3B3B3B3B3B3B3B3B3B3939393939393939393535353535353535355656565656565656565F605F
+5F605F5F605F5F605F6C6C6C6C6C6C6C6C6C6A6A6A6A6A6A6A6A6A5E5E5E5E5E5E5E5E5E616161
+6161616161616161615D5D5D5D5D5D5D5D5D616161616161616161696969696969696969777777
+777777777777878787878787878787878787A6A6A6A6A6A6A6A6A6CDCDCDCDCDCDCDCDCDE5E5E5
+E5E5E5E5E5E5ECECECECECECECECECDEDEDEDEDEDEDEDEDEDEDEDEC5C5C5C5C5C5C5C5C5B6B6B6
+B6B6B6B6B6B6AAAAAAAAAAAAAAAAAAAEAEAEAEAEAEAEAEAEAEAEAEA8A8A8A8A8A8A8A8A8A1A1A1
+A1A1A1A1A1A19F9F9F9F9F9F9F9F9F9E9E9E9E9E9E9E9E9E9797979797979797979797978D8D8D
+8D8D8D8D8D8D8B8B8B8B8B8B8B8B8B939393939393939393A2A2A2A2A2A2A2A2A2A9A9A9A9A9A9
+A9A9A9A9A9A9ABABABABABABABABABAAAAAAAAAAAAAAAAAAACACACACACACACACACB0B1B0B0B1B0
+B0B1B0B0B1B0B2B2B2B2B2B2B2B2B2B1B1B1B1B1B1B1B1B1B2B2B2B2B2B2B2B2B2B9B9B9B9B9B9
+B9B9B9BABABABABABABABABABABABAB2B2B2B2B2B2B2B2B29696969696969696965B5B5B5B5B5B
+5B5B5B5757575757575757575E5E5E5E5E5E5E5E5E5E5E5E5454545454545454544E4E4E4E4E4E
+4E4E4E818181818181818181DEDEDEDEDEDEDEDEDEDEDEDEFDFDFDFDFDFDFDFDFDFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFF9F9F9F9F9F9F9F9F9C6C6C6C6C6C6C6C6C6EBEBEBEBEBEBEBEBEBEAEAEAEAEAEAEAEAEA
+EAEAEAEAEAEAEAEAEAEAEAEAE9E9E9E9E9E9E9E9E9E8E9E8E8E9E8E8E9E8E8E8E8E8E8E8E8E8E8
+E8E8E8E8E8E8E8E8E8E8E8E8E8E8E8E8E8E8E8E8E8E8E8E8E8E8E8E8E8E8E7E7E7E7E7E7E7E7E7
+E6E6E6E6E6E6E6E6E6E7E7E7E7E7E7E7E7E7E7E7E7E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6
+E6E6E6E6E6E6E6E6E6E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E3E3E3E3E3E3E3E3E3
+D6D6D5D6D6D5D6D6D5B2B2B2B2B2B2B2B2B27272727272727272723E3E3E3E3E3E3E3E3E3E3E3E
+2B2B2B2B2B2B2B2B2B282828282828282828282828282828282828242424242424242424242424
+222222222222222222202020202020202020202020202020202020212121212121212121222222
+2222222222222222222929292929292929294F4F4F4F4F4F4F4F4F717171717171717171717171
+7171717171716B6B6B6B6B6B6B6B6B6B6B6B696969696969696969676767676767676767676767
+676767676767676767676767676767676767636363636363636363565656565656565656494949
+4949494949494646464646464646464040404040404040404040403B3B3B3B3B3B3B3B3B3B3B3B
+3B3B3B3B3B3B3434343434343434344E4E4E4E4E4E4E4E4E686868686868686868686868949494
+9494949494949D9D9D9D9D9D9D9D9D7474747474747474746666666666666666666666666C6C6C
+6C6C6C6C6C6C6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E757575757575757575848484848484
+848484848484A1A1A1A1A1A1A1A1A1C5C5C5C5C5C5C5C5C5DFE0DFDFE0DFDFE0DFE7E7E7E7E7E7
+E7E7E7DCDCDCDCDCDCDCDCDCDCDCDCC8C8C8C8C8C8C8C8C8B8B8B8B8B8B8B8B8B8ADADADADADAD
+ADADADB0B1B0B0B1B0B0B1B0B0B1B0B2B2B2B2B2B2B2B2B2AFAFAFAFAFAFAFAFAFA7A7A7A7A7A7
+A7A7A79F9F9F9F9F9F9F9F9F9898989898989898989898989595959595959595959A9A9A9A9A9A
+9A9A9AA2A2A2A2A2A2A2A2A2B0B0B0B0B0B0B0B0B0B8B8B8B8B8B8B8B8B8B8B8B8BABABABABABA
+BABABAB8B8B8B8B8B8B8B8B8B8B8B8B8B8B8B8B8B8BCBCBCBCBCBCBCBCBCBCBCBCBFBFBFBFBFBF
+BFBFBFBFBFBFBFBFBFBFBFBFC0C0C0C0C0C0C0C0C0C4C4C4C4C4C4C4C4C4C0C0C0C0C0C0C0C0C0
+C0C0C0B8B8B8B8B8B8B8B8B8A0A0A0A0A0A0A0A0A06D6D6D6D6D6D6D6D6D646464646464646464
+7171717171717171717171716A6A6A6A6A6A6A6A6A6C6C6C6C6C6C6C6C6CB0B1B0B0B1B0B0B1B0
+F3F3F3F3F3F3F3F3F3F3F3F3FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9F9F9F9F9F9F9F9F9
+BBBBBBBBBBBBBBBBBBEBEBEBEBEBEBEBEBEBEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEA
+E9E9E9E9E9E9E9E9E9E8E9E8E8E9E8E8E9E8E8E8E8E8E8E8E8E8E8E8E8E8E8E8E8E8E8E8E8E8E8
+E8E8E8E8E8E8E8E8E8E8E8E8E8E8E8E8E8E8E7E7E7E7E7E7E7E7E7E6E6E6E6E6E6E6E6E6E7E7E7
+E7E7E7E7E7E7E7E7E7E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E4E4E4
+E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E3E3E3E3E3E3E3E3E3D6D6D5D6D6D5D6D6D5B2B2B2
+B2B2B2B2B2B27272727272727272723E3E3E3E3E3E3E3E3E3E3E3E2B2B2B2B2B2B2B2B2B282828
+282828282828282828282828282828242424242424242424242424222222222222222222202020
+202020202020202020202020202020212121212121212121222222222222222222222222292929
+2929292929294F4F4F4F4F4F4F4F4F7171717171717171717171717171717171716B6B6B6B6B6B
+6B6B6B6B6B6B696969696969696969676767676767676767676767676767676767676767676767
+676767676767636363636363636363565656565656565656494949494949494949464646464646
+4646464040404040404040404040403B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B343434343434
+3434344E4E4E4E4E4E4E4E4E6868686868686868686868689494949494949494949D9D9D9D9D9D
+9D9D9D7474747474747474746666666666666666666666666C6C6C6C6C6C6C6C6C6E6E6E6E6E6E
+6E6E6E6E6E6E6E6E6E6E6E6E757575757575757575848484848484848484848484A1A1A1A1A1A1
+A1A1A1C5C5C5C5C5C5C5C5C5DFE0DFDFE0DFDFE0DFE7E7E7E7E7E7E7E7E7DCDCDCDCDCDCDCDCDC
+DCDCDCC8C8C8C8C8C8C8C8C8B8B8B8B8B8B8B8B8B8ADADADADADADADADADB0B1B0B0B1B0B0B1B0
+B0B1B0B2B2B2B2B2B2B2B2B2AFAFAFAFAFAFAFAFAFA7A7A7A7A7A7A7A7A79F9F9F9F9F9F9F9F9F
+9898989898989898989898989595959595959595959A9A9A9A9A9A9A9A9AA2A2A2A2A2A2A2A2A2
+B0B0B0B0B0B0B0B0B0B8B8B8B8B8B8B8B8B8B8B8B8BABABABABABABABABAB8B8B8B8B8B8B8B8B8
+B8B8B8B8B8B8B8B8B8BCBCBCBCBCBCBCBCBCBCBCBCBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBF
+C0C0C0C0C0C0C0C0C0C4C4C4C4C4C4C4C4C4C0C0C0C0C0C0C0C0C0C0C0C0B8B8B8B8B8B8B8B8B8
+A0A0A0A0A0A0A0A0A06D6D6D6D6D6D6D6D6D646464646464646464717171717171717171717171
+6A6A6A6A6A6A6A6A6A6C6C6C6C6C6C6C6C6CB0B1B0B0B1B0B0B1B0F3F3F3F3F3F3F3F3F3F3F3F3
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9F9F9F9F9F9F9F9F9BBBBBBBBBBBBBBBBBBEBEBEB
+EBEBEBEBEBEBEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAE9E9E9E9E9E9E9E9E9E8E9E8
+E8E9E8E8E9E8E8E8E8E8E8E8E8E8E8E8E8E8E8E8E8E8E8E8E8E8E8E8E8E8E8E8E8E8E8E8E8E8E8
+E8E8E8E8E8E8E7E7E7E7E7E7E7E7E7E6E6E6E6E6E6E6E6E6E7E7E7E7E7E7E7E7E7E7E7E7E6E6E6
+E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4
+E4E4E4E4E4E4E3E3E3E3E3E3E3E3E3D6D6D5D6D6D5D6D6D5B2B2B2B2B2B2B2B2B2727272727272
+7272723E3E3E3E3E3E3E3E3E3E3E3E2B2B2B2B2B2B2B2B2B282828282828282828282828282828
+282828242424242424242424242424222222222222222222202020202020202020202020202020
+2020202121212121212121212222222222222222222222222929292929292929294F4F4F4F4F4F
+4F4F4F7171717171717171717171717171717171716B6B6B6B6B6B6B6B6B6B6B6B696969696969
+696969676767676767676767676767676767676767676767676767676767676767636363636363
+636363565656565656565656494949494949494949464646464646464646404040404040404040
+4040403B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3434343434343434344E4E4E4E4E4E4E4E4E
+6868686868686868686868689494949494949494949D9D9D9D9D9D9D9D9D747474747474747474
+6666666666666666666666666C6C6C6C6C6C6C6C6C6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E
+757575757575757575848484848484848484848484A1A1A1A1A1A1A1A1A1C5C5C5C5C5C5C5C5C5
+DFE0DFDFE0DFDFE0DFE7E7E7E7E7E7E7E7E7DCDCDCDCDCDCDCDCDCDCDCDCC8C8C8C8C8C8C8C8C8
+B8B8B8B8B8B8B8B8B8ADADADADADADADADADB0B1B0B0B1B0B0B1B0B0B1B0B2B2B2B2B2B2B2B2B2
+AFAFAFAFAFAFAFAFAFA7A7A7A7A7A7A7A7A79F9F9F9F9F9F9F9F9F989898989898989898989898
+9595959595959595959A9A9A9A9A9A9A9A9AA2A2A2A2A2A2A2A2A2B0B0B0B0B0B0B0B0B0B8B8B8
+B8B8B8B8B8B8B8B8B8BABABABABABABABABAB8B8B8B8B8B8B8B8B8B8B8B8B8B8B8B8B8B8BCBCBC
+BCBCBCBCBCBCBCBCBCBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFC0C0C0C0C0C0C0C0C0C4C4C4
+C4C4C4C4C4C4C0C0C0C0C0C0C0C0C0C0C0C0B8B8B8B8B8B8B8B8B8A0A0A0A0A0A0A0A0A06D6D6D
+6D6D6D6D6D6D6464646464646464647171717171717171717171716A6A6A6A6A6A6A6A6A6C6C6C
+6C6C6C6C6C6CB0B1B0B0B1B0B0B1B0F3F3F3F3F3F3F3F3F3F3F3F3FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFF9F9F9F9F9F9F9F9F9BBBBBBBBBBBBBBBBBBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEB
+EBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEAEAEAEAEAEAEAEAEAE9E9E9E9E9E9E9E9E9E8E8E8E8E8E8
+E8E8E8E8E8E8E8E8E8E8E8E8E8E9E8E8E9E8E8E9E8E8E9E8E8E9E8E8E9E8E8E9E8E8E8E8E8E8E8
+E8E8E8E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E5E5E5E5E5E5E5E5E5E6E6E6E6E6E6
+E6E6E6E7E7E7E7E7E7E7E7E7E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4
+E4E4E4DEDEDEDEDEDEDEDEDEC9C9C9C9C9C9C9C9C98D8D8D8D8D8D8D8D8D494949494949494949
+4949492C2C2C2C2C2C2C2C2C272727272727272727252525252525252525242424242424242424
+2424242424242424242424242020202020202020201E1E1E1E1E1E1E1E1E212121212121212121
+222222222222222222222222292929292929292929505050505050505050747474747474747474
+7878787878787878787373737373737373737373736F6F6F6F6F6F6F6F6F6A6A6A6A6A6A6A6A6A
+666666666666666666626262626262626262626262575757575757575757464646464646464646
+3F3F3F3F3F3F3F3F3F4242424242424242424C4C4C4C4C4C4C4C4C4C4C4C4C4C4C4C4C4C4C4C4C
+4C4C4C4C4C4C4C4C4C464646464646464646515151515151515151707070707070707070707070
+A6A6A6A6A6A6A6A6A6B5B5B5B5B5B5B5B5B59292929292929292927B7B7B7B7B7B7B7B7B7B7B7B
+7A7A7A7A7A7A7A7A7A7C7C7C7C7C7C7C7C7C757575757575757575757575757575757575818181
+8181818181818181819C9C9C9C9C9C9C9C9CBCBCBCBCBCBCBCBCBCD6D6D5D6D6D5D6D6D5DFE0DF
+DFE0DFDFE0DFD7D7D7D7D7D7D7D7D7D7D7D7C6C6C6C6C6C6C6C6C6B8B8B8B8B8B8B8B8B8ACACAC
+ACACACACACACABABABABABABABABABABABABB0B0B0B0B0B0B0B0B0ADADADADADADADADADA3A3A3
+A3A3A3A3A3A39E9E9E9E9E9E9E9E9E9C9C9C9C9C9C9C9C9C9C9C9C9D9D9D9D9D9D9D9D9DA3A3A3
+A3A3A3A3A3A3AFAFAFAFAFAFAFAFAFBABABABABABABABABABFBFBFBFBFBFBFBFBFBFBFBFBFBFBF
+BFBFBFBFBFBFBABABABABABABABABAB8B8B8B8B8B8B8B8B8BFBFBFBFBFBFBFBFBFBFBFBFC7C7C7
+C7C7C7C7C7C7CBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCACACACACACACACACAC3C3C3C3C3C3
+C3C3C3C3C3C3BBBBBBBBBBBBBBBBBBAAAAAAAAAAAAAAAAAA888888888888888888797979797979
+797979797979797979797979797979797979797979797979929292929292929292DDDDDDDDDDDD
+DDDDDDFCFCFCFCFCFCFCFCFCFCFCFCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9F9F9F9F9F9
+F9F9F9C5C5C5C5C5C5C5C5C5EBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEB
+EBEBEBEAEAEAEAEAEAEAEAEAE9E9E9E9E9E9E9E9E9E8E8E8E8E8E8E8E8E8E8E8E8E8E8E8E8E8E8
+E8E9E8E8E9E8E8E9E8E8E9E8E8E9E8E8E9E8E8E9E8E8E8E8E8E8E8E8E8E8E6E6E6E6E6E6E6E6E6
+E6E6E6E6E6E6E6E6E6E6E6E6E5E5E5E5E5E5E5E5E5E6E6E6E6E6E6E6E6E6E7E7E7E7E7E7E7E7E7
+E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4DEDEDEDEDEDEDEDEDE
+C9C9C9C9C9C9C9C9C98D8D8D8D8D8D8D8D8D4949494949494949494949492C2C2C2C2C2C2C2C2C
+272727272727272727252525252525252525242424242424242424242424242424242424242424
+2020202020202020201E1E1E1E1E1E1E1E1E212121212121212121222222222222222222222222
+292929292929292929505050505050505050747474747474747474787878787878787878737373
+7373737373737373736F6F6F6F6F6F6F6F6F6A6A6A6A6A6A6A6A6A666666666666666666626262
+6262626262626262625757575757575757574646464646464646463F3F3F3F3F3F3F3F3F424242
+4242424242424C4C4C4C4C4C4C4C4C4C4C4C4C4C4C4C4C4C4C4C4C4C4C4C4C4C4C4C4C4C464646
+464646464646515151515151515151707070707070707070707070A6A6A6A6A6A6A6A6A6B5B5B5
+B5B5B5B5B5B59292929292929292927B7B7B7B7B7B7B7B7B7B7B7B7A7A7A7A7A7A7A7A7A7C7C7C
+7C7C7C7C7C7C7575757575757575757575757575757575758181818181818181818181819C9C9C
+9C9C9C9C9C9CBCBCBCBCBCBCBCBCBCD6D6D5D6D6D5D6D6D5DFE0DFDFE0DFDFE0DFD7D7D7D7D7D7
+D7D7D7D7D7D7C6C6C6C6C6C6C6C6C6B8B8B8B8B8B8B8B8B8ACACACACACACACACACABABABABABAB
+ABABABABABABB0B0B0B0B0B0B0B0B0ADADADADADADADADADA3A3A3A3A3A3A3A3A39E9E9E9E9E9E
+9E9E9E9C9C9C9C9C9C9C9C9C9C9C9C9D9D9D9D9D9D9D9D9DA3A3A3A3A3A3A3A3A3AFAFAFAFAFAF
+AFAFAFBABABABABABABABABABFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBABABABABABA
+BABABAB8B8B8B8B8B8B8B8B8BFBFBFBFBFBFBFBFBFBFBFBFC7C7C7C7C7C7C7C7C7CBCBCBCBCBCB
+CBCBCBCBCBCBCBCBCBCBCBCBCACACACACACACACACAC3C3C3C3C3C3C3C3C3C3C3C3BBBBBBBBBBBB
+BBBBBBAAAAAAAAAAAAAAAAAA888888888888888888797979797979797979797979797979797979
+797979797979797979797979929292929292929292DDDDDDDDDDDDDDDDDDFCFCFCFCFCFCFCFCFC
+FCFCFCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9F9F9F9F9F9F9F9F9C5C5C5C5C5C5C5C5C5
+EBEBEBEBEBEBEBEBEBECECECECECECECECECEBEBEBEBEBEBEBEBEBEBEBEBEAEAEAEAEAEAEAEAEA
+EBEBEBEBEBEBEBEBEBE8E9E8E8E9E8E8E9E8E8E9E8E8E9E8E8E9E8E8E9E8E8E9E8E8E9E8E8E9E8
+E8E9E8E8E9E8E8E9E8E7E7E7E7E7E7E7E7E7E6E6E6E6E6E6E6E6E6E5E5E5E5E5E5E5E5E5E5E5E5
+E6E6E6E6E6E6E6E6E6E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E4E4E4E4E4E4E4E4E4E5E5E5
+E5E5E5E5E5E5E5E5E5E6E6E6E6E6E6E6E6E6E4E4E4E4E4E4E4E4E4D7D7D7D7D7D7D7D7D7A6A6A6
+A6A6A6A6A6A6585858585858585858585858303030303030303030282828282828282828252525
+252525252525242424242424242424242424242424242424242424212121212121212121202020
+2020202020202121212121212121212222222222222222222222222B2B2B2B2B2B2B2B2B545454
+5454545454547676767676767676767B7B7B7B7B7B7B7B7B777777777777777777777777727272
+7272727272726969696969696969696565656565656565655C5C5C5C5C5C5C5C5C5C5C5C4D4D4D
+4D4D4D4D4D4D424242424242424242414141414141414141505050505050505050636363636363
+6363636363636464646464646464646161616161616161616363636363636363636B6B6B6B6B6B
+6B6B6B838383838383838383838383A1A1A1A1A1A1A1A1A1AFAFAFAFAFAFAFAFAFA4A4A4A4A4A4
+A4A4A49797979797979797979797979090909090909090908686868686868686867A7A7A7A7A7A
+7A7A7A767676767676767676808080808080808080808080969696969696969696B3B3B3B3B3B3
+B3B3B3CECECECECECECECECEDADADADADADADADADAD5D5D5D5D5D5D5D5D5D5D5D5C3C3C3C3C3C3
+C3C3C3B8B8B8B8B8B8B8B8B8ADADADADADADADADADA7A7A7A7A7A7A7A7A7A7A7A7AAAAAAAAAAAA
+AAAAAAABABABABABABABABABA2A2A2A2A2A2A2A2A29B9B9B9B9B9B9B9B9B989898989898989898
+9898989A9A9A9A9A9A9A9A9A9F9F9F9F9F9F9F9F9FA8A8A8A8A8A8A8A8A8B0B0B0B0B0B0B0B0B0
+B4B4B4B4B4B4B4B4B4B4B4B4B4B4B4B4B4B4B4B4B4B4B4B4B4B4B4B4B4B4BABABABABABABABABA
+C7C7C7C7C7C7C7C7C7C7C7C7D0D0D0D0D0D0D0D0D0D4D4D4D4D4D4D4D4D4D0D0D0D0D0D0D0D0D0
+CCCCCCCCCCCCCCCCCCC5C5C5C5C5C5C5C5C5C5C5C5BBBBBBBBBBBBBBBBBBB0B0B0B0B0B0B0B0B0
+A2A2A2A2A2A2A2A2A2979797979797979797888888888888888888888888898989898989898989
+B4B4B4B4B4B4B4B4B4F2F2F2F2F2F2F2F2F2FEFEFEFEFEFEFEFEFEFEFEFEFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFF9F9F9F9F9F9F9F9F9C6C6C6C6C6C6C6C6C6EBEBEBEBEBEBEBEBEBECECEC
+ECECECECECECEBEBEBEBEBEBEBEBEBEBEBEBEAEAEAEAEAEAEAEAEAEBEBEBEBEBEBEBEBEBE8E9E8
+E8E9E8E8E9E8E8E9E8E8E9E8E8E9E8E8E9E8E8E9E8E8E9E8E8E9E8E8E9E8E8E9E8E8E9E8E7E7E7
+E7E7E7E7E7E7E6E6E6E6E6E6E6E6E6E5E5E5E5E5E5E5E5E5E5E5E5E6E6E6E6E6E6E6E6E6E7E7E7
+E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E4E4E4E4E4E4E4E4E4E5E5E5E5E5E5E5E5E5E5E5E5E6E6E6
+E6E6E6E6E6E6E4E4E4E4E4E4E4E4E4D7D7D7D7D7D7D7D7D7A6A6A6A6A6A6A6A6A6585858585858
+585858585858303030303030303030282828282828282828252525252525252525242424242424
+242424242424242424242424242424212121212121212121202020202020202020212121212121
+2121212222222222222222222222222B2B2B2B2B2B2B2B2B545454545454545454767676767676
+7676767B7B7B7B7B7B7B7B7B777777777777777777777777727272727272727272696969696969
+6969696565656565656565655C5C5C5C5C5C5C5C5C5C5C5C4D4D4D4D4D4D4D4D4D424242424242
+424242414141414141414141505050505050505050636363636363636363636363646464646464
+6464646161616161616161616363636363636363636B6B6B6B6B6B6B6B6B838383838383838383
+838383A1A1A1A1A1A1A1A1A1AFAFAFAFAFAFAFAFAFA4A4A4A4A4A4A4A4A4979797979797979797
+9797979090909090909090908686868686868686867A7A7A7A7A7A7A7A7A767676767676767676
+808080808080808080808080969696969696969696B3B3B3B3B3B3B3B3B3CECECECECECECECECE
+DADADADADADADADADAD5D5D5D5D5D5D5D5D5D5D5D5C3C3C3C3C3C3C3C3C3B8B8B8B8B8B8B8B8B8
+ADADADADADADADADADA7A7A7A7A7A7A7A7A7A7A7A7AAAAAAAAAAAAAAAAAAABABABABABABABABAB
+A2A2A2A2A2A2A2A2A29B9B9B9B9B9B9B9B9B9898989898989898989898989A9A9A9A9A9A9A9A9A
+9F9F9F9F9F9F9F9F9FA8A8A8A8A8A8A8A8A8B0B0B0B0B0B0B0B0B0B4B4B4B4B4B4B4B4B4B4B4B4
+B4B4B4B4B4B4B4B4B4B4B4B4B4B4B4B4B4B4BABABABABABABABABAC7C7C7C7C7C7C7C7C7C7C7C7
+D0D0D0D0D0D0D0D0D0D4D4D4D4D4D4D4D4D4D0D0D0D0D0D0D0D0D0CCCCCCCCCCCCCCCCCCC5C5C5
+C5C5C5C5C5C5C5C5C5BBBBBBBBBBBBBBBBBBB0B0B0B0B0B0B0B0B0A2A2A2A2A2A2A2A2A2979797
+979797979797888888888888888888888888898989898989898989B4B4B4B4B4B4B4B4B4F2F2F2
+F2F2F2F2F2F2FEFEFEFEFEFEFEFEFEFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9F9F9
+F9F9F9F9F9F9C6C6C6C6C6C6C6C6C6EBEBEBEBEBEBEBEBEBECECECECECECECECECEBEBEBEBEBEB
+EBEBEBEBEBEBEAEAEAEAEAEAEAEAEAEBEBEBEBEBEBEBEBEBE8E9E8E8E9E8E8E9E8E8E9E8E8E9E8
+E8E9E8E8E9E8E8E9E8E8E9E8E8E9E8E8E9E8E8E9E8E8E9E8E7E7E7E7E7E7E7E7E7E6E6E6E6E6E6
+E6E6E6E5E5E5E5E5E5E5E5E5E5E5E5E6E6E6E6E6E6E6E6E6E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7
+E7E7E7E4E4E4E4E4E4E4E4E4E5E5E5E5E5E5E5E5E5E5E5E5E6E6E6E6E6E6E6E6E6E4E4E4E4E4E4
+E4E4E4D7D7D7D7D7D7D7D7D7A6A6A6A6A6A6A6A6A6585858585858585858585858303030303030
+303030282828282828282828252525252525252525242424242424242424242424242424242424
+242424212121212121212121202020202020202020212121212121212121222222222222222222
+2222222B2B2B2B2B2B2B2B2B5454545454545454547676767676767676767B7B7B7B7B7B7B7B7B
+777777777777777777777777727272727272727272696969696969696969656565656565656565
+5C5C5C5C5C5C5C5C5C5C5C5C4D4D4D4D4D4D4D4D4D424242424242424242414141414141414141
+505050505050505050636363636363636363636363646464646464646464616161616161616161
+6363636363636363636B6B6B6B6B6B6B6B6B838383838383838383838383A1A1A1A1A1A1A1A1A1
+AFAFAFAFAFAFAFAFAFA4A4A4A4A4A4A4A4A4979797979797979797979797909090909090909090
+8686868686868686867A7A7A7A7A7A7A7A7A767676767676767676808080808080808080808080
+969696969696969696B3B3B3B3B3B3B3B3B3CECECECECECECECECEDADADADADADADADADAD5D5D5
+D5D5D5D5D5D5D5D5D5C3C3C3C3C3C3C3C3C3B8B8B8B8B8B8B8B8B8ADADADADADADADADADA7A7A7
+A7A7A7A7A7A7A7A7A7AAAAAAAAAAAAAAAAAAABABABABABABABABABA2A2A2A2A2A2A2A2A29B9B9B
+9B9B9B9B9B9B9898989898989898989898989A9A9A9A9A9A9A9A9A9F9F9F9F9F9F9F9F9FA8A8A8
+A8A8A8A8A8A8B0B0B0B0B0B0B0B0B0B4B4B4B4B4B4B4B4B4B4B4B4B4B4B4B4B4B4B4B4B4B4B4B4
+B4B4B4B4B4B4BABABABABABABABABAC7C7C7C7C7C7C7C7C7C7C7C7D0D0D0D0D0D0D0D0D0D4D4D4
+D4D4D4D4D4D4D0D0D0D0D0D0D0D0D0CCCCCCCCCCCCCCCCCCC5C5C5C5C5C5C5C5C5C5C5C5BBBBBB
+BBBBBBBBBBBBB0B0B0B0B0B0B0B0B0A2A2A2A2A2A2A2A2A2979797979797979797888888888888
+888888888888898989898989898989B4B4B4B4B4B4B4B4B4F2F2F2F2F2F2F2F2F2FEFEFEFEFEFE
+FEFEFEFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9F9F9F9F9F9F9F9F9C6C6C6C6C6C6
+C6C6C6ECECECECECECECECECECECECECECECECECECEBEBEBEBEBEBEBEBEBEBEBEBEAEAEAEAEAEA
+EAEAEAE9E9E9E9E9E9E9E9E9E9E9E9E9E9E9E9E9E9E8E9E8E8E9E8E8E9E8E8E9E8E8E9E8E8E9E8
+E8E9E8E9E9E9E9E9E9E9E9E9E8E9E8E8E9E8E8E9E8E8E8E8E8E8E8E8E8E8E6E6E6E6E6E6E6E6E6
+E6E6E6E7E7E7E7E7E7E7E7E7E8E8E8E8E8E8E8E8E8E7E7E7E7E7E7E7E7E7E5E5E5E5E5E5E5E5E5
+E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E5E5E5E5E5E5E5E5E5DFE0DFDFE0DFDFE0DF
+BABABABABABABABABA6D6D6D6D6D6D6D6D6D6D6D6D373737373737373737292929292929292929
+272727272727272727252525252525252525252525272727272727272727242424242424242424
+2222222222222222222222222222222222222222222222222222222222222C2C2C2C2C2C2C2C2C
+5656565656565656567777777777777777777D7D7D7D7D7D7D7D7D7B7B7B7B7B7B7B7B7B7B7B7B
+7575757575757575756A6A6A6A6A6A6A6A6A646464646464646464595959595959595959595959
+4F4F4F4F4F4F4F4F4F4F4F4F4F4F4F4F4F4F565656565656565656656565656565656565757575
+7575757575757575757A7A7A7A7A7A7A7A7A7979797979797979797D7D7D7D7D7D7D7D7D818181
+8181818181818F8F8F8F8F8F8F8F8F8F8F8F9D9D9D9D9D9D9D9D9DA6A6A6A6A6A6A6A6A6A2A2A2
+A2A2A2A2A2A29D9D9D9D9D9D9D9D9D9D9D9D929292929292929292838383838383838383777777
+777777777777767676767676767676808080808080808080808080919191919191919191ACACAC
+ACACACACACACCBCBCBCBCBCBCBCBCBD9D9D9D9D9D9D9D9D9D6D6D5D6D6D5D6D6D5D6D6D5C7C7C7
+C7C7C7C7C7C7BCBCBCBCBCBCBCBCBCB3B3B3B3B3B3B3B3B3ADADADADADADADADADADADADADADAD
+ADADADADADADB0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0A8A8A8A8A8A8A8A8A8A1A1A1A1A1A1
+A1A1A1A1A1A19D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9F9F9F9F9F9F9F9F9FA5A5A5A5A5A5
+A5A5A5ABABABABABABABABABABABABB2B2B2B2B2B2B2B2B2BCBCBCBCBCBCBCBCBCC8C8C8C8C8C8
+C8C8C8D2D2D2D2D2D2D2D2D2D2D2D2D9D9D9D9D9D9D9D9D9D7D7D7D7D7D7D7D7D7D4D4D4D4D4D4
+D4D4D4CFCFCFCFCFCFCFCFCFC6C6C6C6C6C6C6C6C6C6C6C6BCBCBCBCBCBCBCBCBCB1B1B1B1B1B1
+B1B1B1ACACACACACACACACACABABABABABABABABABA3A3A3A3A3A3A3A3A3A3A3A3A5A5A5A5A5A5
+A5A5A5CCCCCCCCCCCCCCCCCCF9F9F9F9F9F9F9F9F9FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFF9F9F9F9F9F9F9F9F9C3C3C3C3C3C3C3C3C3ECECECECECECECECEC
+ECECECECECECECECECEBEBEBEBEBEBEBEBEBEBEBEBEAEAEAEAEAEAEAEAEAE9E9E9E9E9E9E9E9E9
+E9E9E9E9E9E9E9E9E9E8E9E8E8E9E8E8E9E8E8E9E8E8E9E8E8E9E8E8E9E8E9E9E9E9E9E9E9E9E9
+E8E9E8E8E9E8E8E9E8E8E8E8E8E8E8E8E8E8E6E6E6E6E6E6E6E6E6E6E6E6E7E7E7E7E7E7E7E7E7
+E8E8E8E8E8E8E8E8E8E7E7E7E7E7E7E7E7E7E5E5E5E5E5E5E5E5E5E6E6E6E6E6E6E6E6E6E6E6E6
+E6E6E6E6E6E6E6E6E6E5E5E5E5E5E5E5E5E5DFE0DFDFE0DFDFE0DFBABABABABABABABABA6D6D6D
+6D6D6D6D6D6D6D6D6D373737373737373737292929292929292929272727272727272727252525
+252525252525252525272727272727272727242424242424242424222222222222222222222222
+2222222222222222222222222222222222222C2C2C2C2C2C2C2C2C565656565656565656777777
+7777777777777D7D7D7D7D7D7D7D7D7B7B7B7B7B7B7B7B7B7B7B7B7575757575757575756A6A6A
+6A6A6A6A6A6A6464646464646464645959595959595959595959594F4F4F4F4F4F4F4F4F4F4F4F
+4F4F4F4F4F4F5656565656565656566565656565656565657575757575757575757575757A7A7A
+7A7A7A7A7A7A7979797979797979797D7D7D7D7D7D7D7D7D8181818181818181818F8F8F8F8F8F
+8F8F8F8F8F8F9D9D9D9D9D9D9D9D9DA6A6A6A6A6A6A6A6A6A2A2A2A2A2A2A2A2A29D9D9D9D9D9D
+9D9D9D9D9D9D929292929292929292838383838383838383777777777777777777767676767676
+767676808080808080808080808080919191919191919191ACACACACACACACACACCBCBCBCBCBCB
+CBCBCBD9D9D9D9D9D9D9D9D9D6D6D5D6D6D5D6D6D5D6D6D5C7C7C7C7C7C7C7C7C7BCBCBCBCBCBC
+BCBCBCB3B3B3B3B3B3B3B3B3ADADADADADADADADADADADADADADADADADADADADADB0B0B0B0B0B0
+B0B0B0B0B0B0B0B0B0B0B0B0A8A8A8A8A8A8A8A8A8A1A1A1A1A1A1A1A1A1A1A1A19D9D9D9D9D9D
+9D9D9D9D9D9D9D9D9D9D9D9D9F9F9F9F9F9F9F9F9FA5A5A5A5A5A5A5A5A5ABABABABABABABABAB
+ABABABB2B2B2B2B2B2B2B2B2BCBCBCBCBCBCBCBCBCC8C8C8C8C8C8C8C8C8D2D2D2D2D2D2D2D2D2
+D2D2D2D9D9D9D9D9D9D9D9D9D7D7D7D7D7D7D7D7D7D4D4D4D4D4D4D4D4D4CFCFCFCFCFCFCFCFCF
+C6C6C6C6C6C6C6C6C6C6C6C6BCBCBCBCBCBCBCBCBCB1B1B1B1B1B1B1B1B1ACACACACACACACACAC
+ABABABABABABABABABA3A3A3A3A3A3A3A3A3A3A3A3A5A5A5A5A5A5A5A5A5CCCCCCCCCCCCCCCCCC
+F9F9F9F9F9F9F9F9F9FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+F9F9F9F9F9F9F9F9F9C3C3C3C3C3C3C3C3C3ECECECECECECECECECEDEDEDEDEDEDEDEDEDECECEC
+ECECECECECECECECECEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBE9E9E9E9E9E9E9E9E9EAEAEA
+EAEAEAEAEAEAE9E9E9E9E9E9E9E9E9E9E9E9E9E9E9E9E9E9E9E9E9E8E9E8E8E9E8E8E9E8E8E8E8
+E8E8E8E8E8E8E8E8E8E8E8E8E8E8E8E8E8E8E8E8E8E8E8E8E8E8E8E8E9E8E8E9E8E8E9E8E8E8E8
+E8E8E8E8E8E8E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E6E6E6
+E6E6E6E6E6E6E3E3E3E3E3E3E3E3E3CBCBCBCBCBCBCBCBCB878787878787878787878787444444
+4444444444442D2D2D2D2D2D2D2D2D2929292929292929292929292929292929292929292B2B2B
+2B2B2B2B2B2B282828282828282828252525252525252525242424242424242424242424242424
+2424242424242D2D2D2D2D2D2D2D2D5656565656565656567878787878787878787E7E7E7E7E7E
+7E7E7E7C7C7C7C7C7C7C7C7C7C7C7C7575757575757575756D6D6D6D6D6D6D6D6D636363636363
+6363635B5B5B5B5B5B5B5B5B5B5B5B5E5E5E5E5E5E5E5E5E6767676767676767676F6F6F6F6F6F
+6F6F6F7777777777777777778080808080808080808080808787878787878787878D8D8D8D8D8D
+8D8D8D9191919191919191919292929292929292929696969696969696969696969C9C9C9C9C9C
+9C9C9C9C9C9C9C9C9C9C9C9C979797979797979797939393939393939393939393898989898989
+8989897B7B7B7B7B7B7B7B7B7575757575757575757777777777777777777F7F7F7F7F7F7F7F7F
+7F7F7F8E8E8E8E8E8E8E8E8EA8A8A8A8A8A8A8A8A8CBCBCBCBCBCBCBCBCBDFE0DFDFE0DFDFE0DF
+DBDBDBDBDBDBDBDBDBDBDBDBCBCBCBCBCBCBCBCBCBBFBFBFBFBFBFBFBFBFB8B8B8B8B8B8B8B8B8
+B4B4B4B4B4B4B4B4B4B4B4B4B4B4B4B4B4B4B4B4B4B5B5B5B5B5B5B5B5B5B8B8B8B8B8B8B8B8B8
+B9B9B9B9B9B9B9B9B9B8B8B8B8B8B8B8B8B8B8B8B8B6B6B6B6B6B6B6B6B6B4B4B4B4B4B4B4B4B4
+B8B8B8B8B8B8B8B8B8BBBBBBBBBBBBBBBBBBC0C0C0C0C0C0C0C0C0C0C0C0C6C6C6C6C6C6C6C6C6
+CFCFCFCFCFCFCFCFCFD6D6D5D6D6D5D6D6D5DBDBDBDBDBDBDBDBDBDBDBDBDDDDDDDDDDDDDDDDDD
+DADADADADADADADADAD6D6D5D6D6D5D6D6D5D1D1D1D1D1D1D1D1D1CBCBCBCBCBCBCBCBCBCBCBCB
+C0C0C0C0C0C0C0C0C0B3B3B3B3B3B3B3B3B3ACACACACACACACACACB0B1B0B0B1B0B0B1B0B7B7B7
+B7B7B7B7B7B7B7B7B7BEBEBEBEBEBEBEBEBEDBDBDBDBDBDBDBDBDBFAFAFAFAFAFAFAFAFAFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7F7F7F7F7F7F7F7F7B4B4B4
+B4B4B4B4B4B4ECECECECECECECECECEDEDEDEDEDEDEDEDEDECECECECECECECECECECECECEBEBEB
+EBEBEBEBEBEBEBEBEBEBEBEBEBEBEBE9E9E9E9E9E9E9E9E9EAEAEAEAEAEAEAEAEAE9E9E9E9E9E9
+E9E9E9E9E9E9E9E9E9E9E9E9E9E9E9E8E9E8E8E9E8E8E9E8E8E8E8E8E8E8E8E8E8E8E8E8E8E8E8
+E8E8E8E8E8E8E8E8E8E8E8E8E8E8E8E8E9E8E8E9E8E8E9E8E8E8E8E8E8E8E8E8E8E7E7E7E7E7E7
+E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E6E6E6E6E6E6E6E6E6E3E3E3E3E3E3
+E3E3E3CBCBCBCBCBCBCBCBCB8787878787878787878787874444444444444444442D2D2D2D2D2D
+2D2D2D2929292929292929292929292929292929292929292B2B2B2B2B2B2B2B2B282828282828
+2828282525252525252525252424242424242424242424242424242424242424242D2D2D2D2D2D
+2D2D2D5656565656565656567878787878787878787E7E7E7E7E7E7E7E7E7C7C7C7C7C7C7C7C7C
+7C7C7C7575757575757575756D6D6D6D6D6D6D6D6D6363636363636363635B5B5B5B5B5B5B5B5B
+5B5B5B5E5E5E5E5E5E5E5E5E6767676767676767676F6F6F6F6F6F6F6F6F777777777777777777
+8080808080808080808080808787878787878787878D8D8D8D8D8D8D8D8D919191919191919191
+9292929292929292929696969696969696969696969C9C9C9C9C9C9C9C9C9C9C9C9C9C9C9C9C9C
+9797979797979797979393939393939393939393938989898989898989897B7B7B7B7B7B7B7B7B
+7575757575757575757777777777777777777F7F7F7F7F7F7F7F7F7F7F7F8E8E8E8E8E8E8E8E8E
+A8A8A8A8A8A8A8A8A8CBCBCBCBCBCBCBCBCBDFE0DFDFE0DFDFE0DFDBDBDBDBDBDBDBDBDBDBDBDB
+CBCBCBCBCBCBCBCBCBBFBFBFBFBFBFBFBFBFB8B8B8B8B8B8B8B8B8B4B4B4B4B4B4B4B4B4B4B4B4
+B4B4B4B4B4B4B4B4B4B5B5B5B5B5B5B5B5B5B8B8B8B8B8B8B8B8B8B9B9B9B9B9B9B9B9B9B8B8B8
+B8B8B8B8B8B8B8B8B8B6B6B6B6B6B6B6B6B6B4B4B4B4B4B4B4B4B4B8B8B8B8B8B8B8B8B8BBBBBB
+BBBBBBBBBBBBC0C0C0C0C0C0C0C0C0C0C0C0C6C6C6C6C6C6C6C6C6CFCFCFCFCFCFCFCFCFD6D6D5
+D6D6D5D6D6D5DBDBDBDBDBDBDBDBDBDBDBDBDDDDDDDDDDDDDDDDDDDADADADADADADADADAD6D6D5
+D6D6D5D6D6D5D1D1D1D1D1D1D1D1D1CBCBCBCBCBCBCBCBCBCBCBCBC0C0C0C0C0C0C0C0C0B3B3B3
+B3B3B3B3B3B3ACACACACACACACACACB0B1B0B0B1B0B0B1B0B7B7B7B7B7B7B7B7B7B7B7B7BEBEBE
+BEBEBEBEBEBEDBDBDBDBDBDBDBDBDBFAFAFAFAFAFAFAFAFAFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7F7F7F7F7F7F7F7F7B4B4B4B4B4B4B4B4B4ECECECECECEC
+ECECECEDEDEDEDEDEDEDEDEDECECECECECECECECECECECECEBEBEBEBEBEBEBEBEBEBEBEBEBEBEB
+EBEBEBE9E9E9E9E9E9E9E9E9EAEAEAEAEAEAEAEAEAE9E9E9E9E9E9E9E9E9E9E9E9E9E9E9E9E9E9
+E9E9E9E8E9E8E8E9E8E8E9E8E8E8E8E8E8E8E8E8E8E8E8E8E8E8E8E8E8E8E8E8E8E8E8E8E8E8E8
+E8E8E8E8E9E8E8E9E8E8E9E8E8E8E8E8E8E8E8E8E8E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7
+E7E7E7E7E7E7E7E7E7E7E7E7E6E6E6E6E6E6E6E6E6E3E3E3E3E3E3E3E3E3CBCBCBCBCBCBCBCBCB
+8787878787878787878787874444444444444444442D2D2D2D2D2D2D2D2D292929292929292929
+2929292929292929292929292B2B2B2B2B2B2B2B2B282828282828282828252525252525252525
+2424242424242424242424242424242424242424242D2D2D2D2D2D2D2D2D565656565656565656
+7878787878787878787E7E7E7E7E7E7E7E7E7C7C7C7C7C7C7C7C7C7C7C7C757575757575757575
+6D6D6D6D6D6D6D6D6D6363636363636363635B5B5B5B5B5B5B5B5B5B5B5B5E5E5E5E5E5E5E5E5E
+6767676767676767676F6F6F6F6F6F6F6F6F777777777777777777808080808080808080808080
+8787878787878787878D8D8D8D8D8D8D8D8D919191919191919191929292929292929292969696
+9696969696969696969C9C9C9C9C9C9C9C9C9C9C9C9C9C9C9C9C9C979797979797979797939393
+9393939393939393938989898989898989897B7B7B7B7B7B7B7B7B757575757575757575777777
+7777777777777F7F7F7F7F7F7F7F7F7F7F7F8E8E8E8E8E8E8E8E8EA8A8A8A8A8A8A8A8A8CBCBCB
+CBCBCBCBCBCBDFE0DFDFE0DFDFE0DFDBDBDBDBDBDBDBDBDBDBDBDBCBCBCBCBCBCBCBCBCBBFBFBF
+BFBFBFBFBFBFB8B8B8B8B8B8B8B8B8B4B4B4B4B4B4B4B4B4B4B4B4B4B4B4B4B4B4B4B4B4B5B5B5
+B5B5B5B5B5B5B8B8B8B8B8B8B8B8B8B9B9B9B9B9B9B9B9B9B8B8B8B8B8B8B8B8B8B8B8B8B6B6B6
+B6B6B6B6B6B6B4B4B4B4B4B4B4B4B4B8B8B8B8B8B8B8B8B8BBBBBBBBBBBBBBBBBBC0C0C0C0C0C0
+C0C0C0C0C0C0C6C6C6C6C6C6C6C6C6CFCFCFCFCFCFCFCFCFD6D6D5D6D6D5D6D6D5DBDBDBDBDBDB
+DBDBDBDBDBDBDDDDDDDDDDDDDDDDDDDADADADADADADADADAD6D6D5D6D6D5D6D6D5D1D1D1D1D1D1
+D1D1D1CBCBCBCBCBCBCBCBCBCBCBCBC0C0C0C0C0C0C0C0C0B3B3B3B3B3B3B3B3B3ACACACACACAC
+ACACACB0B1B0B0B1B0B0B1B0B7B7B7B7B7B7B7B7B7B7B7B7BEBEBEBEBEBEBEBEBEDBDBDBDBDBDB
+DBDBDBFAFAFAFAFAFAFAFAFAFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFF7F7F7F7F7F7F7F7F7B4B4B4B4B4B4B4B4B4EDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDED
+EDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEB
+EBEBEBEBEBEBEBEBEBEAEAEAEAEAEAEAEAEAEAEAEAE9E9E9E9E9E9E9E9E9E9E9E9E9E9E9E9E9E9
+E8E9E8E8E9E8E8E9E8E9E9E9E9E9E9E9E9E9E9E9E9E8E9E8E8E9E8E8E9E8E8E8E8E8E8E8E8E8E8
+E7E7E7E7E7E7E7E7E7E8E8E8E8E8E8E8E8E8E8E8E8E8E8E8E8E8E8E8E8E8E7E7E7E7E7E7E7E7E7
+E6E6E6E6E6E6E6E6E6E4E4E4E4E4E4E4E4E4D6D6D5D6D6D5D6D6D59C9C9C9C9C9C9C9C9C9C9C9C
+4E4E4E4E4E4E4E4E4E3131313131313131312C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C
+2B2B2B2B2B2B2B2B2B282828282828282828272727272727272727272727272727272727252525
+2525252525252525253030303030303030305757575757575757577777777777777777777E7E7E
+7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7878787878787878787171717171717171716A6A6A
+6A6A6A6A6A6A6969696969696969696969697171717171717171717777777777777777777D7D7D
+7D7D7D7D7D7D8585858585858585858E8E8E8E8E8E8E8E8E8E8E8E9696969696969696969C9C9C
+9C9C9C9C9C9C9E9E9E9E9E9E9E9E9E9B9B9B9B9B9B9B9B9B979797979797979797979797949494
+949494949494929292929292929292909090909090909090909090909090909090909090868686
+8686868686867B7B7B7B7B7B7B7B7B7878787878787878787A7A7A7A7A7A7A7A7A808080808080
+8080808080808B8B8B8B8B8B8B8B8BA5A5A5A5A5A5A5A5A5C7C7C7C7C7C7C7C7C7DFE0DFDFE0DF
+DFE0DFE0E0E0E0E0E0E0E0E0E0E0E0CECECECECECECECECEC1C1C1C1C1C1C1C1C1BBBBBBBBBBBB
+BBBBBBB8B8B8B8B8B8B8B8B8B8B8B8B9B9B9B9B9B9B9B9B9BDBDBDBDBDBDBDBDBDBFBFBFBFBFBF
+BFBFBFBFBFBFBFBFBFBFBFBFC3C3C3C3C3C3C3C3C3C3C3C3C9C9C9C9C9C9C9C9C9CCCCCCCCCCCC
+CCCCCCD0D0D0D0D0D0D0D0D0D1D1D1D1D1D1D1D1D1D1D1D1D1D1D1D1D1D1D1D1D1D4D4D4D4D4D4
+D4D4D4D6D6D6D6D6D6D6D6D6D9D9D9D9D9D9D9D9D9DDDDDDDDDDDDDDDDDDDDDDDDDFDFDFDFDFDF
+DFDFDFDBDBDBDBDBDBDBDBDBD6D6D6D6D6D6D6D6D6D3D3D3D3D3D3D3D3D3CCCCCCCCCCCCCCCCCC
+CCCCCCC0C0C0C0C0C0C0C0C0B4B4B4B4B4B4B4B4B4AEAEAEAEAEAEAEAEAEB1B1B1B1B1B1B1B1B1
+B9B9B9B9B9B9B9B9B9B9B9B9C8C8C8C8C8C8C8C8C8DFE0DFDFE0DFDFE0DFF9F9F9F9F9F9F9F9F9
+FEFEFEFEFEFEFEFEFEFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9F9F9F9F9F9F9F9F9
+C1C1C1C1C1C1C1C1C1EDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDED
+EDEDEDEDEDEDEDEDEDEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEAEAEA
+EAEAEAEAEAEAEAEAEAE9E9E9E9E9E9E9E9E9E9E9E9E9E9E9E9E9E9E8E9E8E8E9E8E8E9E8E9E9E9
+E9E9E9E9E9E9E9E9E9E8E9E8E8E9E8E8E9E8E8E8E8E8E8E8E8E8E8E7E7E7E7E7E7E7E7E7E8E8E8
+E8E8E8E8E8E8E8E8E8E8E8E8E8E8E8E8E8E8E7E7E7E7E7E7E7E7E7E6E6E6E6E6E6E6E6E6E4E4E4
+E4E4E4E4E4E4D6D6D5D6D6D5D6D6D59C9C9C9C9C9C9C9C9C9C9C9C4E4E4E4E4E4E4E4E4E313131
+3131313131312C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2B2B2B2B2B2B2B2B2B282828
+282828282828272727272727272727272727272727272727252525252525252525252525303030
+3030303030305757575757575757577777777777777777777E7E7E7E7E7E7E7E7E7E7E7E7E7E7E
+7E7E7E7E7E7E7878787878787878787171717171717171716A6A6A6A6A6A6A6A6A696969696969
+6969696969697171717171717171717777777777777777777D7D7D7D7D7D7D7D7D858585858585
+8585858E8E8E8E8E8E8E8E8E8E8E8E9696969696969696969C9C9C9C9C9C9C9C9C9E9E9E9E9E9E
+9E9E9E9B9B9B9B9B9B9B9B9B979797979797979797979797949494949494949494929292929292
+9292929090909090909090909090909090909090909090908686868686868686867B7B7B7B7B7B
+7B7B7B7878787878787878787A7A7A7A7A7A7A7A7A8080808080808080808080808B8B8B8B8B8B
+8B8B8BA5A5A5A5A5A5A5A5A5C7C7C7C7C7C7C7C7C7DFE0DFDFE0DFDFE0DFE0E0E0E0E0E0E0E0E0
+E0E0E0CECECECECECECECECEC1C1C1C1C1C1C1C1C1BBBBBBBBBBBBBBBBBBB8B8B8B8B8B8B8B8B8
+B8B8B8B9B9B9B9B9B9B9B9B9BDBDBDBDBDBDBDBDBDBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBF
+C3C3C3C3C3C3C3C3C3C3C3C3C9C9C9C9C9C9C9C9C9CCCCCCCCCCCCCCCCCCD0D0D0D0D0D0D0D0D0
+D1D1D1D1D1D1D1D1D1D1D1D1D1D1D1D1D1D1D1D1D1D4D4D4D4D4D4D4D4D4D6D6D6D6D6D6D6D6D6
+D9D9D9D9D9D9D9D9D9DDDDDDDDDDDDDDDDDDDDDDDDDFDFDFDFDFDFDFDFDFDBDBDBDBDBDBDBDBDB
+D6D6D6D6D6D6D6D6D6D3D3D3D3D3D3D3D3D3CCCCCCCCCCCCCCCCCCCCCCCCC0C0C0C0C0C0C0C0C0
+B4B4B4B4B4B4B4B4B4AEAEAEAEAEAEAEAEAEB1B1B1B1B1B1B1B1B1B9B9B9B9B9B9B9B9B9B9B9B9
+C8C8C8C8C8C8C8C8C8DFE0DFDFE0DFDFE0DFF9F9F9F9F9F9F9F9F9FEFEFEFEFEFEFEFEFEFEFEFE
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9F9F9F9F9F9F9F9F9C1C1C1C1C1C1C1C1C1EDEDED
+EDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDECECEC
+ECECECECECECEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEAEAEA
+EAEAEAEAEAEAEAEAEAEAEAEAEAEAEAE9E9E9E9E9E9E9E9E9E8E9E8E8E9E8E8E9E8E8E9E8E8E9E8
+E8E9E8E8E9E8E8E9E8E8E9E8E8E9E8E8E8E8E8E8E8E8E8E8E8E8E8E8E8E8E8E8E8E8E8E8E8E8E8
+E8E8E8E8E8E8E7E7E7E7E7E7E7E7E7E6E6E6E6E6E6E6E6E6E4E4E4E4E4E4E4E4E4D9D9D9D9D9D9
+D9D9D9A6A6A6A6A6A6A6A6A6A6A6A65858585858585858583535353535353535352F2F2F2F2F2F
+2F2F2F2D2D2D2D2D2D2D2D2D2D2D2D292929292929292929282828282828282828292929292929
+292929282828282828282828282828282828282828282828303030303030303030545454545454
+5454547575757575757575757F7F7F7F7F7F7F7F7F8181818181818181818181817F7F7F7F7F7F
+7F7F7F7B7B7B7B7B7B7B7B7B7979797979797979797C7C7C7C7C7C7C7C7C7C7C7C808080808080
+8080807E7E7E7E7E7E7E7E7E7D7D7D7D7D7D7D7D7D8282828282828282828A8A8A8A8A8A8A8A8A
+8A8A8A9191919191919191919595959595959595959494949494949494948F8F8F8F8F8F8F8F8F
+8C8C8C8C8C8C8C8C8C8C8C8C8D8D8D8D8D8D8D8D8D909090909090909090959595959595959595
+9696969696969696969696968989898989898989898080808080808080807E7E7E7E7E7E7E7E7E
+7E7E7E7E7E7E7E7E7E8383838383838383838383838D8D8D8D8D8D8D8D8DA4A4A4A4A4A4A4A4A4
+C0C0C0C0C0C0C0C0C0DADADADADADADADADAE4E4E4E4E4E4E4E4E4E4E4E4D6D6D6D6D6D6D6D6D6
+C7C7C7C7C7C7C7C7C7BFBFBFBFBFBFBFBFBFBABABABABABABABABABABABABBBBBBBBBBBBBBBBBB
+C0C0C0C0C0C0C0C0C0C5C5C5C5C5C5C5C5C5C9C9C9C9C9C9C9C9C9CACACACACACACACACACACACA
+CDCDCDCDCDCDCDCDCDD3D3D3D3D3D3D3D3D3D7D7D7D7D7D7D7D7D7D6D6D5D6D6D5D6D6D5D5D5D5
+D5D5D5D5D5D5D5D5D5D6D6D5D6D6D5D6D6D5D6D6D6D6D6D6D6D6D6D7D7D7D7D7D7D7D7D7DCDCDC
+DCDCDCDCDCDCDCDCDCDFDFDFDFDFDFDFDFDFDCDCDCDCDCDCDCDCDCD7D7D7D7D7D7D7D7D7D4D4D4
+D4D4D4D4D4D4CCCCCCCCCCCCCCCCCCCCCCCCC0C0C0C0C0C0C0C0C0B6B6B6B6B6B6B6B6B6B5B5B5
+B5B5B5B5B5B5B8B8B8B8B8B8B8B8B8B6B6B6B6B6B6B6B6B6B6B6B6C5C5C5C5C5C5C5C5C5DBDBDB
+DBDBDBDBDBDBF2F2F2F2F2F2F2F2F2FEFEFEFEFEFEFEFEFEFEFEFEFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFAFAFAFAFAFAFAFAFAD0D0D0D0D0D0D0D0D0EDEDEDEDEDEDEDEDEDEDEDEDEDEDED
+EDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDECECECECECECECECECEBEBEBEBEBEB
+EBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEAEAEAEAEAEAEAEAEAEAEAEAEAEAEA
+EAEAEAE9E9E9E9E9E9E9E9E9E8E9E8E8E9E8E8E9E8E8E9E8E8E9E8E8E9E8E8E9E8E8E9E8E8E9E8
+E8E9E8E8E8E8E8E8E8E8E8E8E8E8E8E8E8E8E8E8E8E8E8E8E8E8E8E8E8E8E8E8E8E7E7E7E7E7E7
+E7E7E7E6E6E6E6E6E6E6E6E6E4E4E4E4E4E4E4E4E4D9D9D9D9D9D9D9D9D9A6A6A6A6A6A6A6A6A6
+A6A6A65858585858585858583535353535353535352F2F2F2F2F2F2F2F2F2D2D2D2D2D2D2D2D2D
+2D2D2D292929292929292929282828282828282828292929292929292929282828282828282828
+282828282828282828282828303030303030303030545454545454545454757575757575757575
+7F7F7F7F7F7F7F7F7F8181818181818181818181817F7F7F7F7F7F7F7F7F7B7B7B7B7B7B7B7B7B
+7979797979797979797C7C7C7C7C7C7C7C7C7C7C7C8080808080808080807E7E7E7E7E7E7E7E7E
+7D7D7D7D7D7D7D7D7D8282828282828282828A8A8A8A8A8A8A8A8A8A8A8A919191919191919191
+9595959595959595959494949494949494948F8F8F8F8F8F8F8F8F8C8C8C8C8C8C8C8C8C8C8C8C
+8D8D8D8D8D8D8D8D8D909090909090909090959595959595959595969696969696969696969696
+8989898989898989898080808080808080807E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E838383
+8383838383838383838D8D8D8D8D8D8D8D8DA4A4A4A4A4A4A4A4A4C0C0C0C0C0C0C0C0C0DADADA
+DADADADADADAE4E4E4E4E4E4E4E4E4E4E4E4D6D6D6D6D6D6D6D6D6C7C7C7C7C7C7C7C7C7BFBFBF
+BFBFBFBFBFBFBABABABABABABABABABABABABBBBBBBBBBBBBBBBBBC0C0C0C0C0C0C0C0C0C5C5C5
+C5C5C5C5C5C5C9C9C9C9C9C9C9C9C9CACACACACACACACACACACACACDCDCDCDCDCDCDCDCDD3D3D3
+D3D3D3D3D3D3D7D7D7D7D7D7D7D7D7D6D6D5D6D6D5D6D6D5D5D5D5D5D5D5D5D5D5D5D5D5D6D6D5
+D6D6D5D6D6D5D6D6D6D6D6D6D6D6D6D7D7D7D7D7D7D7D7D7DCDCDCDCDCDCDCDCDCDCDCDCDFDFDF
+DFDFDFDFDFDFDCDCDCDCDCDCDCDCDCD7D7D7D7D7D7D7D7D7D4D4D4D4D4D4D4D4D4CCCCCCCCCCCC
+CCCCCCCCCCCCC0C0C0C0C0C0C0C0C0B6B6B6B6B6B6B6B6B6B5B5B5B5B5B5B5B5B5B8B8B8B8B8B8
+B8B8B8B6B6B6B6B6B6B6B6B6B6B6B6C5C5C5C5C5C5C5C5C5DBDBDBDBDBDBDBDBDBF2F2F2F2F2F2
+F2F2F2FEFEFEFEFEFEFEFEFEFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAFAFAFAFAFA
+FAFAFAD0D0D0D0D0D0D0D0D0EDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDED
+EDEDEDEDEDEDEDEDEDEDEDEDECECECECECECECECECEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEB
+EBEBEBEBEBEBEBEBEBEBEBEBEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAE9E9E9E9E9E9E9E9E9
+E8E9E8E8E9E8E8E9E8E8E9E8E8E9E8E8E9E8E8E9E8E8E9E8E8E9E8E8E9E8E8E8E8E8E8E8E8E8E8
+E8E8E8E8E8E8E8E8E8E8E8E8E8E8E8E8E8E8E8E8E8E7E7E7E7E7E7E7E7E7E6E6E6E6E6E6E6E6E6
+E4E4E4E4E4E4E4E4E4D9D9D9D9D9D9D9D9D9A6A6A6A6A6A6A6A6A6A6A6A6585858585858585858
+3535353535353535352F2F2F2F2F2F2F2F2F2D2D2D2D2D2D2D2D2D2D2D2D292929292929292929
+282828282828282828292929292929292929282828282828282828282828282828282828282828
+3030303030303030305454545454545454547575757575757575757F7F7F7F7F7F7F7F7F818181
+8181818181818181817F7F7F7F7F7F7F7F7F7B7B7B7B7B7B7B7B7B7979797979797979797C7C7C
+7C7C7C7C7C7C7C7C7C8080808080808080807E7E7E7E7E7E7E7E7E7D7D7D7D7D7D7D7D7D828282
+8282828282828A8A8A8A8A8A8A8A8A8A8A8A919191919191919191959595959595959595949494
+9494949494948F8F8F8F8F8F8F8F8F8C8C8C8C8C8C8C8C8C8C8C8C8D8D8D8D8D8D8D8D8D909090
+909090909090959595959595959595969696969696969696969696898989898989898989808080
+8080808080807E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E8383838383838383838383838D8D8D
+8D8D8D8D8D8DA4A4A4A4A4A4A4A4A4C0C0C0C0C0C0C0C0C0DADADADADADADADADAE4E4E4E4E4E4
+E4E4E4E4E4E4D6D6D6D6D6D6D6D6D6C7C7C7C7C7C7C7C7C7BFBFBFBFBFBFBFBFBFBABABABABABA
+BABABABABABABBBBBBBBBBBBBBBBBBC0C0C0C0C0C0C0C0C0C5C5C5C5C5C5C5C5C5C9C9C9C9C9C9
+C9C9C9CACACACACACACACACACACACACDCDCDCDCDCDCDCDCDD3D3D3D3D3D3D3D3D3D7D7D7D7D7D7
+D7D7D7D6D6D5D6D6D5D6D6D5D5D5D5D5D5D5D5D5D5D5D5D5D6D6D5D6D6D5D6D6D5D6D6D6D6D6D6
+D6D6D6D7D7D7D7D7D7D7D7D7DCDCDCDCDCDCDCDCDCDCDCDCDFDFDFDFDFDFDFDFDFDCDCDCDCDCDC
+DCDCDCD7D7D7D7D7D7D7D7D7D4D4D4D4D4D4D4D4D4CCCCCCCCCCCCCCCCCCCCCCCCC0C0C0C0C0C0
+C0C0C0B6B6B6B6B6B6B6B6B6B5B5B5B5B5B5B5B5B5B8B8B8B8B8B8B8B8B8B6B6B6B6B6B6B6B6B6
+B6B6B6C5C5C5C5C5C5C5C5C5DBDBDBDBDBDBDBDBDBF2F2F2F2F2F2F2F2F2FEFEFEFEFEFEFEFEFE
+FEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAFAFAFAFAFAFAFAFAD0D0D0D0D0D0D0D0D0
+EDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDED
+EBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEA
+EAEAEAEAEAEAEAEAEAE9E9E9E9E9E9E9E9E9E9E9E9E9E9E9E9E9E9E8E9E8E8E9E8E8E9E8E8E9E8
+E8E8E8E8E8E8E8E8E8E8E8E8E8E8E8E8E8E8E8E9E8E8E9E8E8E9E8E8E9E8E8E9E8E8E9E8E7E7E7
+E7E7E7E7E7E7E7E7E7E6E6E6E6E6E6E6E6E6E5E5E5E5E5E5E5E5E5E4E4E4E4E4E4E4E4E4D8D8D8
+D8D8D8D8D8D8ACACACACACACACACACACACAC6565656565656565653A3A3A3A3A3A3A3A3A2F2F2F
+2F2F2F2F2F2F2C2C2C2C2C2C2C2C2C2C2C2C2B2B2B2B2B2B2B2B2B282828282828282828282828
+282828282828292929292929292929282828282828282828282828303030303030303030545454
+545454545454767676767676767676808080808080808080828282828282828282828282848484
+8484848484848686868686868686868A8A8A8A8A8A8A8A8A8B8B8B8B8B8B8B8B8B8B8B8B8A8A8A
+8A8A8A8A8A8A8686868686868686868080808080808080807E7E7E7E7E7E7E7E7E808080808080
+808080808080848484848484848484878787878787878787888888888888888888888888888888
+8888888C8C8C8C8C8C8C8C8C8C8C8C9393939393939393939B9B9B9B9B9B9B9B9B9E9E9E9E9E9E
+9E9E9E9999999999999999999999998D8D8D8D8D8D8D8D8D858585858585858585838383838383
+8383838181818181818181818585858585858585858585858F8F8F8F8F8F8F8F8FA3A3A3A3A3A3
+A3A3A3C3C3C3C3C3C3C3C3C3E0E0E0E0E0E0E0E0E0E9E9E9E9E9E9E9E9E9E9E9E9DCDCDCDCDCDC
+DCDCDCCBCBCBCBCBCBCBCBCBC3C3C3C3C3C3C3C3C3BEBEBEBEBEBEBEBEBEBEBEBEBBBBBBBBBBBB
+BBBBBBBCBCBCBCBCBCBCBCBCC3C3C3C3C3C3C3C3C3CECECECECECECECECED3D3D3D3D3D3D3D3D3
+D3D3D3D4D4D4D4D4D4D4D4D4D6D6D6D6D6D6D6D6D6D9D9D9D9D9D9D9D9D9D8D8D8D8D8D8D8D8D8
+D9D9D9D9D9D9D9D9D9D9D9D9DADADADADADADADADADCDCDCDCDCDCDCDCDCDDDDDDDDDDDDDDDDDD
+E0E0E0E0E0E0E0E0E0E0E0E0E1E1E1E1E1E1E1E1E1DEDEDEDEDEDEDEDEDED9D9D9D9D9D9D9D9D9
+D6D6D5D6D6D5D6D6D5CDCDCDCDCDCDCDCDCDCDCDCDC1C1C1C1C1C1C1C1C1B6B6B6B6B6B6B6B6B6
+B9B9B9B9B9B9B9B9B9C1C1C1C1C1C1C1C1C1B3B3B3B3B3B3B3B3B3B3B3B3BEBEBEBEBEBEBEBEBE
+D4D4D4D4D4D4D4D4D4EEEEEEEEEEEEEEEEEEFDFDFDFDFDFDFDFDFDFDFDFDFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFF9F9F9F9F9F9F9F9F9CACACACACACACACACAEDEDEDEDEDEDEDEDEDEDEDED
+EDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEBEBEBEBEBEBEBEBEBEBEBEB
+EBEBEBEBEBEBEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAE9E9E9
+E9E9E9E9E9E9E9E9E9E9E9E9E9E9E9E8E9E8E8E9E8E8E9E8E8E9E8E8E8E8E8E8E8E8E8E8E8E8E8
+E8E8E8E8E8E8E8E9E8E8E9E8E8E9E8E8E9E8E8E9E8E8E9E8E7E7E7E7E7E7E7E7E7E7E7E7E6E6E6
+E6E6E6E6E6E6E5E5E5E5E5E5E5E5E5E4E4E4E4E4E4E4E4E4D8D8D8D8D8D8D8D8D8ACACACACACAC
+ACACACACACAC6565656565656565653A3A3A3A3A3A3A3A3A2F2F2F2F2F2F2F2F2F2C2C2C2C2C2C
+2C2C2C2C2C2C2B2B2B2B2B2B2B2B2B282828282828282828282828282828282828292929292929
+292929282828282828282828282828303030303030303030545454545454545454767676767676
+767676808080808080808080828282828282828282828282848484848484848484868686868686
+8686868A8A8A8A8A8A8A8A8A8B8B8B8B8B8B8B8B8B8B8B8B8A8A8A8A8A8A8A8A8A868686868686
+8686868080808080808080807E7E7E7E7E7E7E7E7E808080808080808080808080848484848484
+8484848787878787878787878888888888888888888888888888888888888C8C8C8C8C8C8C8C8C
+8C8C8C9393939393939393939B9B9B9B9B9B9B9B9B9E9E9E9E9E9E9E9E9E999999999999999999
+9999998D8D8D8D8D8D8D8D8D858585858585858585838383838383838383818181818181818181
+8585858585858585858585858F8F8F8F8F8F8F8F8FA3A3A3A3A3A3A3A3A3C3C3C3C3C3C3C3C3C3
+E0E0E0E0E0E0E0E0E0E9E9E9E9E9E9E9E9E9E9E9E9DCDCDCDCDCDCDCDCDCCBCBCBCBCBCBCBCBCB
+C3C3C3C3C3C3C3C3C3BEBEBEBEBEBEBEBEBEBEBEBEBBBBBBBBBBBBBBBBBBBCBCBCBCBCBCBCBCBC
+C3C3C3C3C3C3C3C3C3CECECECECECECECECED3D3D3D3D3D3D3D3D3D3D3D3D4D4D4D4D4D4D4D4D4
+D6D6D6D6D6D6D6D6D6D9D9D9D9D9D9D9D9D9D8D8D8D8D8D8D8D8D8D9D9D9D9D9D9D9D9D9D9D9D9
+DADADADADADADADADADCDCDCDCDCDCDCDCDCDDDDDDDDDDDDDDDDDDE0E0E0E0E0E0E0E0E0E0E0E0
+E1E1E1E1E1E1E1E1E1DEDEDEDEDEDEDEDEDED9D9D9D9D9D9D9D9D9D6D6D5D6D6D5D6D6D5CDCDCD
+CDCDCDCDCDCDCDCDCDC1C1C1C1C1C1C1C1C1B6B6B6B6B6B6B6B6B6B9B9B9B9B9B9B9B9B9C1C1C1
+C1C1C1C1C1C1B3B3B3B3B3B3B3B3B3B3B3B3BEBEBEBEBEBEBEBEBED4D4D4D4D4D4D4D4D4EEEEEE
+EEEEEEEEEEEEFDFDFDFDFDFDFDFDFDFDFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9F9F9
+F9F9F9F9F9F9CACACACACACACACACAEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDED
+EDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEAEAEAEAEAEA
+EAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAE9E9E9E9E9E9E9E9E9E9E9E9E9E9E9
+E9E9E9E8E9E8E8E9E8E8E9E8E8E9E8E8E8E8E8E8E8E8E8E8E8E8E8E8E8E8E8E8E8E8E9E8E8E9E8
+E8E9E8E8E9E8E8E9E8E8E9E8E7E7E7E7E7E7E7E7E7E7E7E7E6E6E6E6E6E6E6E6E6E5E5E5E5E5E5
+E5E5E5E4E4E4E4E4E4E4E4E4D8D8D8D8D8D8D8D8D8ACACACACACACACACACACACAC656565656565
+6565653A3A3A3A3A3A3A3A3A2F2F2F2F2F2F2F2F2F2C2C2C2C2C2C2C2C2C2C2C2C2B2B2B2B2B2B
+2B2B2B282828282828282828282828282828282828292929292929292929282828282828282828
+282828303030303030303030545454545454545454767676767676767676808080808080808080
+8282828282828282828282828484848484848484848686868686868686868A8A8A8A8A8A8A8A8A
+8B8B8B8B8B8B8B8B8B8B8B8B8A8A8A8A8A8A8A8A8A868686868686868686808080808080808080
+7E7E7E7E7E7E7E7E7E808080808080808080808080848484848484848484878787878787878787
+8888888888888888888888888888888888888C8C8C8C8C8C8C8C8C8C8C8C939393939393939393
+9B9B9B9B9B9B9B9B9B9E9E9E9E9E9E9E9E9E9999999999999999999999998D8D8D8D8D8D8D8D8D
+858585858585858585838383838383838383818181818181818181858585858585858585858585
+8F8F8F8F8F8F8F8F8FA3A3A3A3A3A3A3A3A3C3C3C3C3C3C3C3C3C3E0E0E0E0E0E0E0E0E0E9E9E9
+E9E9E9E9E9E9E9E9E9DCDCDCDCDCDCDCDCDCCBCBCBCBCBCBCBCBCBC3C3C3C3C3C3C3C3C3BEBEBE
+BEBEBEBEBEBEBEBEBEBBBBBBBBBBBBBBBBBBBCBCBCBCBCBCBCBCBCC3C3C3C3C3C3C3C3C3CECECE
+CECECECECECED3D3D3D3D3D3D3D3D3D3D3D3D4D4D4D4D4D4D4D4D4D6D6D6D6D6D6D6D6D6D9D9D9
+D9D9D9D9D9D9D8D8D8D8D8D8D8D8D8D9D9D9D9D9D9D9D9D9D9D9D9DADADADADADADADADADCDCDC
+DCDCDCDCDCDCDDDDDDDDDDDDDDDDDDE0E0E0E0E0E0E0E0E0E0E0E0E1E1E1E1E1E1E1E1E1DEDEDE
+DEDEDEDEDEDED9D9D9D9D9D9D9D9D9D6D6D5D6D6D5D6D6D5CDCDCDCDCDCDCDCDCDCDCDCDC1C1C1
+C1C1C1C1C1C1B6B6B6B6B6B6B6B6B6B9B9B9B9B9B9B9B9B9C1C1C1C1C1C1C1C1C1B3B3B3B3B3B3
+B3B3B3B3B3B3BEBEBEBEBEBEBEBEBED4D4D4D4D4D4D4D4D4EEEEEEEEEEEEEEEEEEFDFDFDFDFDFD
+FDFDFDFDFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9F9F9F9F9F9F9F9F9CACACACACACA
+CACACAEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDED
+EDEDEDEBEBEBEBEBEBEBEBEBEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEBEBEBEBEBEBEBEBEB
+EBEBEBEBEBEBEBEBEBEBEBEBEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAE8E9E8E8E9E8E8E9E8
+E8E9E8E8E8E8E8E8E8E8E8E8E8E8E8E8E8E8E8E8E8E8E9E8E8E9E8E8E9E8E8E9E8E8E9E8E8E9E8
+E8E8E8E8E8E8E8E8E8E8E8E8E7E7E7E7E7E7E7E7E7E6E6E6E6E6E6E6E6E6E2E2E2E2E2E2E2E2E2
+DBDBDBDBDBDBDBDBDBC1C1C1C1C1C1C1C1C1C1C1C1828282828282828282494949494949494949
+3030303030303030302B2B2B2B2B2B2B2B2B2B2B2B282828282828282828282828282828282828
+2828282828282828282929292929292929292929292929292929292929292F2F2F2F2F2F2F2F2F
+525252525252525252767676767676767676818181818181818181848484848484848484848484
+8989898989898989898E8E8E8E8E8E8E8E8E939393939393939393959595959595959595959595
+9393939393939393939191919191919191918F8F8F8F8F8F8F8F8F8A8A8A8A8A8A8A8A8A8B8B8B
+8B8B8B8B8B8B8B8B8B8F8F8F8F8F8F8F8F8F929292929292929292959595959595959595989898
+9898989898989D9D9D9D9D9D9D9D9D9D9D9DA2A2A2A2A2A2A2A2A2A4A4A4A4A4A4A4A4A4A2A2A2
+A2A2A2A2A2A29C9C9C9C9C9C9C9C9C9C9C9C9090909090909090908A8A8A8A8A8A8A8A8A858585
+8585858585858282828282828282828686868686868686868686868F8F8F8F8F8F8F8F8FA1A1A1
+A1A1A1A1A1A1C2C2C2C2C2C2C2C2C2E3E3E3E3E3E3E3E3E3EDEDEDEDEDEDEDEDEDEDEDEDDFDFDF
+DFDFDFDFDFDFCACACACACACACACACAC3C3C3C3C3C3C3C3C3BFBFBFBFBFBFBFBFBFBFBFBFBFBFBF
+BFBFBFBFBFBFBFBFBFBFBFBFBFBFBFC2C2C2C2C2C2C2C2C2CCCCCCCCCCCCCCCCCCD7D7D7D7D7D7
+D7D7D7D7D7D7DDDDDDDDDDDDDDDDDDDEDEDEDEDEDEDEDEDEDFE0DFDFE0DFDFE0DFE0E0E0E0E0E0
+E0E0E0E1E1E1E1E1E1E1E1E1E1E1E1E4E4E4E4E4E4E4E4E4E8E8E8E8E8E8E8E8E8E8E8E8E8E8E8
+E8E8E8E6E6E6E6E6E6E6E6E6E6E6E6E3E3E3E3E3E3E3E3E3DDDDDDDDDDDDDDDDDDD9D9D9D9D9D9
+D9D9D9D5D5D5D5D5D5D5D5D5CCCCCCCCCCCCCCCCCCCCCCCCC0C0C0C0C0C0C0C0C0B5B5B5B5B5B5
+B5B5B5BBBBBBBBBBBBBBBBBBCBCBCBCBCBCBCBCBCBB7B7B7B7B7B7B7B7B7B7B7B7B2B2B2B2B2B2
+B2B2B2CACACACACACACACACAECECECECECECECECECFDFDFDFDFDFDFDFDFDFDFDFDFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFF9F9F9F9F9F9F9F9F9BDBDBDBDBDBDBDBDBDEDEDEDEDEDEDEDEDED
+EDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEBEBEBEBEBEBEBEBEB
+EAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEB
+EAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAE8E9E8E8E9E8E8E9E8E8E9E8E8E8E8E8E8E8E8E8E8
+E8E8E8E8E8E8E8E8E8E8E9E8E8E9E8E8E9E8E8E9E8E8E9E8E8E9E8E8E8E8E8E8E8E8E8E8E8E8E8
+E7E7E7E7E7E7E7E7E7E6E6E6E6E6E6E6E6E6E2E2E2E2E2E2E2E2E2DBDBDBDBDBDBDBDBDBC1C1C1
+C1C1C1C1C1C1C1C1C18282828282828282824949494949494949493030303030303030302B2B2B
+2B2B2B2B2B2B2B2B2B282828282828282828282828282828282828282828282828282828292929
+2929292929292929292929292929292929292F2F2F2F2F2F2F2F2F525252525252525252767676
+7676767676768181818181818181818484848484848484848484848989898989898989898E8E8E
+8E8E8E8E8E8E939393939393939393959595959595959595959595939393939393939393919191
+9191919191918F8F8F8F8F8F8F8F8F8A8A8A8A8A8A8A8A8A8B8B8B8B8B8B8B8B8B8B8B8B8F8F8F
+8F8F8F8F8F8F9292929292929292929595959595959595959898989898989898989D9D9D9D9D9D
+9D9D9D9D9D9DA2A2A2A2A2A2A2A2A2A4A4A4A4A4A4A4A4A4A2A2A2A2A2A2A2A2A29C9C9C9C9C9C
+9C9C9C9C9C9C9090909090909090908A8A8A8A8A8A8A8A8A858585858585858585828282828282
+8282828686868686868686868686868F8F8F8F8F8F8F8F8FA1A1A1A1A1A1A1A1A1C2C2C2C2C2C2
+C2C2C2E3E3E3E3E3E3E3E3E3EDEDEDEDEDEDEDEDEDEDEDEDDFDFDFDFDFDFDFDFDFCACACACACACA
+CACACAC3C3C3C3C3C3C3C3C3BFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBF
+BFBFBFC2C2C2C2C2C2C2C2C2CCCCCCCCCCCCCCCCCCD7D7D7D7D7D7D7D7D7D7D7D7DDDDDDDDDDDD
+DDDDDDDEDEDEDEDEDEDEDEDEDFE0DFDFE0DFDFE0DFE0E0E0E0E0E0E0E0E0E1E1E1E1E1E1E1E1E1
+E1E1E1E4E4E4E4E4E4E4E4E4E8E8E8E8E8E8E8E8E8E8E8E8E8E8E8E8E8E8E6E6E6E6E6E6E6E6E6
+E6E6E6E3E3E3E3E3E3E3E3E3DDDDDDDDDDDDDDDDDDD9D9D9D9D9D9D9D9D9D5D5D5D5D5D5D5D5D5
+CCCCCCCCCCCCCCCCCCCCCCCCC0C0C0C0C0C0C0C0C0B5B5B5B5B5B5B5B5B5BBBBBBBBBBBBBBBBBB
+CBCBCBCBCBCBCBCBCBB7B7B7B7B7B7B7B7B7B7B7B7B2B2B2B2B2B2B2B2B2CACACACACACACACACA
+ECECECECECECECECECFDFDFDFDFDFDFDFDFDFDFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+F9F9F9F9F9F9F9F9F9BDBDBDBDBDBDBDBDBDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEEEEEE
+EEEEEEEEEEEEEEEEEEEDEDEDEDEDEDEDEDEDECECECECECECECECECEBEBEBEBEBEBEBEBEBEBEBEB
+EBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBECECECECECECECECECEBEBEBEBEBEBEBEBEBEBEBEB
+EBEBEBEBEBEBE9E9E9E9E9E9E9E9E9E9E9E9E8E9E8E8E9E8E8E9E8E8E9E8E8E9E8E8E9E8E8E9E8
+E8E9E8E8E9E8E8E8E8E8E8E8E8E8E8E8E8E8E8E8E8E8E8E8E8E8E8E8E8E8E8E8E8E8E8E8E7E7E7
+E7E7E7E7E7E7E4E4E4E4E4E4E4E4E4DFE0DFDFE0DFDFE0DFD6D6D5D6D6D5D6D6D5D6D6D5A6A6A6
+A6A6A6A6A6A66363636363636363633939393939393939392B2B2B2B2B2B2B2B2B2B2B2B272727
+2727272727272828282828282828282929292929292929292C2C2C2C2C2C2C2C2C2D2D2D2D2D2D
+2D2D2D2D2D2D313131313131313131525252525252525252777777777777777777808080808080
+8080808484848484848484848484848A8A8A8A8A8A8A8A8A919191919191919191989898989898
+9898989B9B9B9B9B9B9B9B9B9B9B9B9C9C9C9C9C9C9C9C9C9E9E9E9E9E9E9E9E9E9E9E9E9E9E9E
+9E9E9E9E9E9E9E9E9E9E9E9E9F9F9F9F9F9F9F9F9F9F9F9FA3A3A3A3A3A3A3A3A3A7A7A7A7A7A7
+A7A7A7A7A7A7A7A7A7A7A7A7A8A8A8A8A8A8A8A8A8AAAAAAAAAAAAAAAAAAAAAAAAABABABABABAB
+ABABABA9A9A9A9A9A9A9A9A9A6A6A6A6A6A6A6A6A6A2A2A2A2A2A2A2A2A2A2A2A2999999999999
+9999998E8E8E8E8E8E8E8E8E868686868686868686848484848484848484878787878787878787
+8787878D8D8D8D8D8D8D8D8D9E9E9E9E9E9E9E9E9EBFBFBFBFBFBFBFBFBFE3E3E3E3E3E3E3E3E3
+EFEFEFEFEFEFEFEFEFEFEFEFE3E3E3E3E3E3E3E3E3CFCFCFCFCFCFCFCFCFC3C3C3C3C3C3C3C3C3
+C0C0C0C0C0C0C0C0C0C0C0C0C4C4C4C4C4C4C4C4C4C7C7C7C7C7C7C7C7C7C9C9C9C9C9C9C9C9C9
+D0D0D0D0D0D0D0D0D0DADADADADADADADADADADADAE2E2E2E2E2E2E2E2E2E4E4E4E4E4E4E4E4E4
+E7E7E7E7E7E7E7E7E7E8E9E8E8E9E8E8E9E8EAEAEAEAEAEAEAEAEAEAEAEAF0F0F0F0F0F0F0F0F0
+F2F2F2F2F2F2F2F2F2F0F0F0F0F0F0F0F0F0EDEDEDEDEDEDEDEDEDEDEDEDE8E9E8E8E9E8E8E9E8
+E0E0E0E0E0E0E0E0E0D9D9D9D9D9D9D9D9D9D0D0D0D0D0D0D0D0D0CACACACACACACACACACACACA
+BFBFBFBFBFBFBFBFBFB5B5B5B5B5B5B5B5B5BDBDBDBDBDBDBDBDBDD2D2D2D2D2D2D2D2D2B9B9B9
+B9B9B9B9B9B9B9B9B9AEAEAEAEAEAEAEAEAEC6C6C6C6C6C6C6C6C6E8E8E8E8E8E8E8E8E8FDFDFD
+FDFDFDFDFDFDFDFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9F9F9F9F9F9F9F9F9C7C7C7
+C7C7C7C7C7C7EDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEEEEEEEEEEEEEEEEEEEEEEEEEDEDED
+EDEDEDEDEDEDECECECECECECECECECEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEB
+EBEBEBEBEBEBECECECECECECECECECEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBE9E9E9E9E9E9
+E9E9E9E9E9E9E8E9E8E8E9E8E8E9E8E8E9E8E8E9E8E8E9E8E8E9E8E8E9E8E8E9E8E8E8E8E8E8E8
+E8E8E8E8E8E8E8E8E8E8E8E8E8E8E8E8E8E8E8E8E8E8E8E8E7E7E7E7E7E7E7E7E7E4E4E4E4E4E4
+E4E4E4DFE0DFDFE0DFDFE0DFD6D6D5D6D6D5D6D6D5D6D6D5A6A6A6A6A6A6A6A6A6636363636363
+6363633939393939393939392B2B2B2B2B2B2B2B2B2B2B2B272727272727272727282828282828
+2828282929292929292929292C2C2C2C2C2C2C2C2C2D2D2D2D2D2D2D2D2D2D2D2D313131313131
+313131525252525252525252777777777777777777808080808080808080848484848484848484
+8484848A8A8A8A8A8A8A8A8A9191919191919191919898989898989898989B9B9B9B9B9B9B9B9B
+9B9B9B9C9C9C9C9C9C9C9C9C9E9E9E9E9E9E9E9E9E9E9E9E9E9E9E9E9E9E9E9E9E9E9E9E9E9E9E
+9F9F9F9F9F9F9F9F9F9F9F9FA3A3A3A3A3A3A3A3A3A7A7A7A7A7A7A7A7A7A7A7A7A7A7A7A7A7A7
+A8A8A8A8A8A8A8A8A8AAAAAAAAAAAAAAAAAAAAAAAAABABABABABABABABABA9A9A9A9A9A9A9A9A9
+A6A6A6A6A6A6A6A6A6A2A2A2A2A2A2A2A2A2A2A2A29999999999999999998E8E8E8E8E8E8E8E8E
+8686868686868686868484848484848484848787878787878787878787878D8D8D8D8D8D8D8D8D
+9E9E9E9E9E9E9E9E9EBFBFBFBFBFBFBFBFBFE3E3E3E3E3E3E3E3E3EFEFEFEFEFEFEFEFEFEFEFEF
+E3E3E3E3E3E3E3E3E3CFCFCFCFCFCFCFCFCFC3C3C3C3C3C3C3C3C3C0C0C0C0C0C0C0C0C0C0C0C0
+C4C4C4C4C4C4C4C4C4C7C7C7C7C7C7C7C7C7C9C9C9C9C9C9C9C9C9D0D0D0D0D0D0D0D0D0DADADA
+DADADADADADADADADAE2E2E2E2E2E2E2E2E2E4E4E4E4E4E4E4E4E4E7E7E7E7E7E7E7E7E7E8E9E8
+E8E9E8E8E9E8EAEAEAEAEAEAEAEAEAEAEAEAF0F0F0F0F0F0F0F0F0F2F2F2F2F2F2F2F2F2F0F0F0
+F0F0F0F0F0F0EDEDEDEDEDEDEDEDEDEDEDEDE8E9E8E8E9E8E8E9E8E0E0E0E0E0E0E0E0E0D9D9D9
+D9D9D9D9D9D9D0D0D0D0D0D0D0D0D0CACACACACACACACACACACACABFBFBFBFBFBFBFBFBFB5B5B5
+B5B5B5B5B5B5BDBDBDBDBDBDBDBDBDD2D2D2D2D2D2D2D2D2B9B9B9B9B9B9B9B9B9B9B9B9AEAEAE
+AEAEAEAEAEAEC6C6C6C6C6C6C6C6C6E8E8E8E8E8E8E8E8E8FDFDFDFDFDFDFDFDFDFDFDFDFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9F9F9F9F9F9F9F9F9C7C7C7C7C7C7C7C7C7EDEDEDEDEDED
+EDEDEDEDEDEDEDEDEDEDEDEDEEEEEEEEEEEEEEEEEEEEEEEEEDEDEDEDEDEDEDEDEDECECECECECEC
+ECECECEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBECECECECECEC
+ECECECEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBE9E9E9E9E9E9E9E9E9E9E9E9E8E9E8E8E9E8
+E8E9E8E8E9E8E8E9E8E8E9E8E8E9E8E8E9E8E8E9E8E8E8E8E8E8E8E8E8E8E8E8E8E8E8E8E8E8E8
+E8E8E8E8E8E8E8E8E8E8E8E8E7E7E7E7E7E7E7E7E7E4E4E4E4E4E4E4E4E4DFE0DFDFE0DFDFE0DF
+D6D6D5D6D6D5D6D6D5D6D6D5A6A6A6A6A6A6A6A6A6636363636363636363393939393939393939
+2B2B2B2B2B2B2B2B2B2B2B2B272727272727272727282828282828282828292929292929292929
+2C2C2C2C2C2C2C2C2C2D2D2D2D2D2D2D2D2D2D2D2D313131313131313131525252525252525252
+7777777777777777778080808080808080808484848484848484848484848A8A8A8A8A8A8A8A8A
+9191919191919191919898989898989898989B9B9B9B9B9B9B9B9B9B9B9B9C9C9C9C9C9C9C9C9C
+9E9E9E9E9E9E9E9E9E9E9E9E9E9E9E9E9E9E9E9E9E9E9E9E9E9E9E9F9F9F9F9F9F9F9F9F9F9F9F
+A3A3A3A3A3A3A3A3A3A7A7A7A7A7A7A7A7A7A7A7A7A7A7A7A7A7A7A8A8A8A8A8A8A8A8A8AAAAAA
+AAAAAAAAAAAAAAAAAAABABABABABABABABABA9A9A9A9A9A9A9A9A9A6A6A6A6A6A6A6A6A6A2A2A2
+A2A2A2A2A2A2A2A2A29999999999999999998E8E8E8E8E8E8E8E8E868686868686868686848484
+8484848484848787878787878787878787878D8D8D8D8D8D8D8D8D9E9E9E9E9E9E9E9E9EBFBFBF
+BFBFBFBFBFBFE3E3E3E3E3E3E3E3E3EFEFEFEFEFEFEFEFEFEFEFEFE3E3E3E3E3E3E3E3E3CFCFCF
+CFCFCFCFCFCFC3C3C3C3C3C3C3C3C3C0C0C0C0C0C0C0C0C0C0C0C0C4C4C4C4C4C4C4C4C4C7C7C7
+C7C7C7C7C7C7C9C9C9C9C9C9C9C9C9D0D0D0D0D0D0D0D0D0DADADADADADADADADADADADAE2E2E2
+E2E2E2E2E2E2E4E4E4E4E4E4E4E4E4E7E7E7E7E7E7E7E7E7E8E9E8E8E9E8E8E9E8EAEAEAEAEAEA
+EAEAEAEAEAEAF0F0F0F0F0F0F0F0F0F2F2F2F2F2F2F2F2F2F0F0F0F0F0F0F0F0F0EDEDEDEDEDED
+EDEDEDEDEDEDE8E9E8E8E9E8E8E9E8E0E0E0E0E0E0E0E0E0D9D9D9D9D9D9D9D9D9D0D0D0D0D0D0
+D0D0D0CACACACACACACACACACACACABFBFBFBFBFBFBFBFBFB5B5B5B5B5B5B5B5B5BDBDBDBDBDBD
+BDBDBDD2D2D2D2D2D2D2D2D2B9B9B9B9B9B9B9B9B9B9B9B9AEAEAEAEAEAEAEAEAEC6C6C6C6C6C6
+C6C6C6E8E8E8E8E8E8E8E8E8FDFDFDFDFDFDFDFDFDFDFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFF9F9F9F9F9F9F9F9F9C7C7C7C7C7C7C7C7C7EDEDEDEDEDEDEDEDEDEEEEEEEEEEEEEEEEEE
+EFEFEFEFEFEFEFEFEFEFEFEFEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEDEDEDEDEDEDEDEDED
+ECECECECECECECECECECECECECECECECECECECECECECECECECECECECECECECECECECECECECECEC
+ECECECECECECECECECEAEAEAEAEAEAEAEAEAEAEAEAE9E9E9E9E9E9E9E9E9E9E9E9E9E9E9E9E9E9
+E8E9E8E8E9E8E8E9E8E8E9E8E8E9E8E8E9E8E8E9E8E8E9E8E8E9E8E8E9E8E8E8E8E8E8E8E8E8E8
+E7E7E7E7E7E7E7E7E7E5E5E5E5E5E5E5E5E5E4E4E4E4E4E4E4E4E4DFDFDFDFDFDFDFDFDFDFDFDF
+C2C2C2C2C2C2C2C2C28383838383838383834646464646464646462D2D2D2D2D2D2D2D2D2D2D2D
+2727272727272727272828282828282828282B2B2B2B2B2B2B2B2B303030303030303030343434
+3434343434343434343B3B3B3B3B3B3B3B3B5A5A5A5A5A5A5A5A5A797979797979797979818181
+8181818181818484848484848484848484848B8B8B8B8B8B8B8B8B9393939393939393939A9A9A
+9A9A9A9A9A9A9D9D9D9D9D9D9D9D9D9D9D9D9E9E9E9E9E9E9E9E9EA1A1A1A1A1A1A1A1A1A5A5A5
+A5A5A5A5A5A5A7A7A7A7A7A7A7A7A7A9A9A9A9A9A9A9A9A9A9A9A9AEAEAEAEAEAEAEAEAEB0B1B0
+B0B1B0B0B1B0AFAFAFAFAFAFAFAFAFB0B0B0B0B0B0B0B0B0B1B1B1B1B1B1B1B1B1B1B1B1B0B1B0
+B0B1B0B0B1B0ADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADA0A0A0
+A0A0A0A0A0A08F8F8F8F8F8F8F8F8F868686868686868686868686868686868686878787878787
+8787878787878B8B8B8B8B8B8B8B8B9E9E9E9E9E9E9E9E9EC2C2C2C2C2C2C2C2C2E3E3E3E3E3E3
+E3E3E3EDEDEDEDEDEDEDEDEDEDEDEDE4E4E4E4E4E4E4E4E4D4D4D4D4D4D4D4D4D4C5C5C5C5C5C5
+C5C5C5BFBFBFBFBFBFBFBFBFBFBFBFC5C5C5C5C5C5C5C5C5CACACACACACACACACACDCDCDCDCDCD
+CDCDCDD4D4D4D4D4D4D4D4D4DDDDDDDDDDDDDDDDDDDDDDDDE6E6E6E6E6E6E6E6E6EAEAEAEAEAEA
+EAEAEAEDEDEDEDEDEDEDEDEDF1F1F1F1F1F1F1F1F1F2F2F2F2F2F2F2F2F2F2F2F2F6F6F6F6F6F6
+F6F6F6F9F9F9F9F9F9F9F9F9F7F7F7F7F7F7F7F7F7F4F4F4F4F4F4F4F4F4F4F4F4EDEDEDEDEDED
+EDEDEDE5E5E5E5E5E5E5E5E5DBDBDBDBDBDBDBDBDBD0D0D0D0D0D0D0D0D0C7C7C7C7C7C7C7C7C7
+C7C7C7BEBEBEBEBEBEBEBEBEB5B5B5B5B5B5B5B5B5BDBDBDBDBDBDBDBDBDCECECECECECECECECE
+B3B3B3B3B3B3B3B3B3B3B3B3B0B1B0B0B1B0B0B1B0C6C6C6C6C6C6C6C6C6E4E4E4E4E4E4E4E4E4
+FDFDFDFDFDFDFDFDFDFDFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBFBFBFBFBFBFBFBFB
+D7D7D7D7D7D7D7D7D7EDEDEDEDEDEDEDEDEDEEEEEEEEEEEEEEEEEEEFEFEFEFEFEFEFEFEFEFEFEF
+EEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEDEDEDEDEDEDEDEDEDECECECECECECECECECECECEC
+ECECECECECECECECECECECECECECECECECECECECECECECECECECECECECECECECECECECECEAEAEA
+EAEAEAEAEAEAEAEAEAE9E9E9E9E9E9E9E9E9E9E9E9E9E9E9E9E9E9E8E9E8E8E9E8E8E9E8E8E9E8
+E8E9E8E8E9E8E8E9E8E8E9E8E8E9E8E8E9E8E8E8E8E8E8E8E8E8E8E7E7E7E7E7E7E7E7E7E5E5E5
+E5E5E5E5E5E5E4E4E4E4E4E4E4E4E4DFDFDFDFDFDFDFDFDFDFDFDFC2C2C2C2C2C2C2C2C2838383
+8383838383834646464646464646462D2D2D2D2D2D2D2D2D2D2D2D272727272727272727282828
+2828282828282B2B2B2B2B2B2B2B2B3030303030303030303434343434343434343434343B3B3B
+3B3B3B3B3B3B5A5A5A5A5A5A5A5A5A797979797979797979818181818181818181848484848484
+8484848484848B8B8B8B8B8B8B8B8B9393939393939393939A9A9A9A9A9A9A9A9A9D9D9D9D9D9D
+9D9D9D9D9D9D9E9E9E9E9E9E9E9E9EA1A1A1A1A1A1A1A1A1A5A5A5A5A5A5A5A5A5A7A7A7A7A7A7
+A7A7A7A9A9A9A9A9A9A9A9A9A9A9A9AEAEAEAEAEAEAEAEAEB0B1B0B0B1B0B0B1B0AFAFAFAFAFAF
+AFAFAFB0B0B0B0B0B0B0B0B0B1B1B1B1B1B1B1B1B1B1B1B1B0B1B0B0B1B0B0B1B0ADADADADADAD
+ADADADADADADADADADADADADADADADADADADADADADADADADA0A0A0A0A0A0A0A0A08F8F8F8F8F8F
+8F8F8F8686868686868686868686868686868686868787878787878787878787878B8B8B8B8B8B
+8B8B8B9E9E9E9E9E9E9E9E9EC2C2C2C2C2C2C2C2C2E3E3E3E3E3E3E3E3E3EDEDEDEDEDEDEDEDED
+EDEDEDE4E4E4E4E4E4E4E4E4D4D4D4D4D4D4D4D4D4C5C5C5C5C5C5C5C5C5BFBFBFBFBFBFBFBFBF
+BFBFBFC5C5C5C5C5C5C5C5C5CACACACACACACACACACDCDCDCDCDCDCDCDCDD4D4D4D4D4D4D4D4D4
+DDDDDDDDDDDDDDDDDDDDDDDDE6E6E6E6E6E6E6E6E6EAEAEAEAEAEAEAEAEAEDEDEDEDEDEDEDEDED
+F1F1F1F1F1F1F1F1F1F2F2F2F2F2F2F2F2F2F2F2F2F6F6F6F6F6F6F6F6F6F9F9F9F9F9F9F9F9F9
+F7F7F7F7F7F7F7F7F7F4F4F4F4F4F4F4F4F4F4F4F4EDEDEDEDEDEDEDEDEDE5E5E5E5E5E5E5E5E5
+DBDBDBDBDBDBDBDBDBD0D0D0D0D0D0D0D0D0C7C7C7C7C7C7C7C7C7C7C7C7BEBEBEBEBEBEBEBEBE
+B5B5B5B5B5B5B5B5B5BDBDBDBDBDBDBDBDBDCECECECECECECECECEB3B3B3B3B3B3B3B3B3B3B3B3
+B0B1B0B0B1B0B0B1B0C6C6C6C6C6C6C6C6C6E4E4E4E4E4E4E4E4E4FDFDFDFDFDFDFDFDFDFDFDFD
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBFBFBFBFBFBFBFBFBD7D7D7D7D7D7D7D7D7EFEFEF
+EFEFEFEFEFEFEFEFEFEFEFEFEFEFEFF0F0F0F0F0F0F0F0F0F0F0F0EFEFEFEFEFEFEFEFEFEEEEEE
+EEEEEEEEEEEEEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDED
+EDEDEDEDEDEDEEEEEEEEEEEEEEEEEEECECECECECECECECECEBEBEBEBEBEBEBEBEBEBEBEBEBEBEB
+EBEBEBEBEBEBE9E9E9E9E9E9E9E9E9E9E9E9E9E9E9E9E9E9E9E9E9E9E9E9E9E9E9EAEAEAEAEAEA
+EAEAEAEAEAEAE9E9E9E9E9E9E9E9E9E8E9E8E8E9E8E8E9E8E7E7E7E7E7E7E7E7E7E5E5E5E5E5E5
+E5E5E5E3E3E3E3E3E3E3E3E3E3E3E3D5D5D5D5D5D5D5D5D5A8A8A8A8A8A8A8A8A85F605F5F605F
+5F605F3434343434343434343434342828282828282828282828282828282828282F2F2F2F2F2F
+2F2F2F3B3B3B3B3B3B3B3B3B4444444444444444444444444B4B4B4B4B4B4B4B4B616161616161
+6161617B7B7B7B7B7B7B7B7B8181818181818181818484848484848484848484848A8A8A8A8A8A
+8A8A8A9090909090909090909A9A9A9A9A9A9A9A9A9F9F9F9F9F9F9F9F9F9F9F9FA1A1A1A1A1A1
+A1A1A1A4A4A4A4A4A4A4A4A4A9A9A9A9A9A9A9A9A9ADADADADADADADADADB0B0B0B0B0B0B0B0B0
+B0B0B0B4B4B4B4B4B4B4B4B4B4B4B4B4B4B4B4B4B4B1B1B1B1B1B1B1B1B1B3B3B3B3B3B3B3B3B3
+B6B6B6B6B6B6B6B6B6B6B6B6B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B9B9B9B9B9B9B9B9B9
+B8B8B8B8B8B8B8B8B8B8B8B8A5A5A5A5A5A5A5A5A5909090909090909090898989898989898989
+8888888888888888888888888888888888888888888A8A8A8A8A8A8A8A8A9E9E9E9E9E9E9E9E9E
+BFBFBFBFBFBFBFBFBFDFDFDFDFDFDFDFDFDFE7E7E7E7E7E7E7E7E7E7E7E7E2E2E2E2E2E2E2E2E2
+D7D7D7D7D7D7D7D7D7C9C9C9C9C9C9C9C9C9BFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBF
+C2C2C2C2C2C2C2C2C2C6C6C6C6C6C6C6C6C6D6D6D6D6D6D6D6D6D6E6E6E6E6E6E6E6E6E6E6E6E6
+EEEEEEEEEEEEEEEEEEF2F2F2F2F2F2F2F2F2F5F5F5F5F5F5F5F5F5F8F8F8F8F8F8F8F8F8F9F9F9
+F9F9F9F9F9F9F9F9F9FAFAFAFAFAFAFAFAFAFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCF9F9F9
+F9F9F9F9F9F9F9F9F9F0F0F0F0F0F0F0F0F0E8E8E8E8E8E8E8E8E8DEDEDEDEDEDEDEDEDED3D3D3
+D3D3D3D3D3D3C8C8C8C8C8C8C8C8C8C8C8C8BDBDBDBDBDBDBDBDBDB5B5B5B5B5B5B5B5B5BABABA
+BABABABABABAC2C2C2C2C2C2C2C2C2AAAAAAAAAAAAAAAAAAAAAAAAB7B7B7B7B7B7B7B7B7C6C6C6
+C6C6C6C6C6C6E1E1E1E1E1E1E1E1E1FCFCFCFCFCFCFCFCFCFCFCFCFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFF9F9F9F9F9F9F9F9F9CACACACACACACACACAEFEFEFEFEFEFEFEFEFEFEFEFEFEFEF
+EFEFEFF0F0F0F0F0F0F0F0F0F0F0F0EFEFEFEFEFEFEFEFEFEEEEEEEEEEEEEEEEEEEDEDEDEDEDED
+EDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEEEEEEEEEEEE
+EEEEEEECECECECECECECECECEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBE9E9E9E9E9E9
+E9E9E9E9E9E9E9E9E9E9E9E9E9E9E9E9E9E9E9E9E9EAEAEAEAEAEAEAEAEAEAEAEAE9E9E9E9E9E9
+E9E9E9E8E9E8E8E9E8E8E9E8E7E7E7E7E7E7E7E7E7E5E5E5E5E5E5E5E5E5E3E3E3E3E3E3E3E3E3
+E3E3E3D5D5D5D5D5D5D5D5D5A8A8A8A8A8A8A8A8A85F605F5F605F5F605F343434343434343434
+3434342828282828282828282828282828282828282F2F2F2F2F2F2F2F2F3B3B3B3B3B3B3B3B3B
+4444444444444444444444444B4B4B4B4B4B4B4B4B6161616161616161617B7B7B7B7B7B7B7B7B
+8181818181818181818484848484848484848484848A8A8A8A8A8A8A8A8A909090909090909090
+9A9A9A9A9A9A9A9A9A9F9F9F9F9F9F9F9F9F9F9F9FA1A1A1A1A1A1A1A1A1A4A4A4A4A4A4A4A4A4
+A9A9A9A9A9A9A9A9A9ADADADADADADADADADB0B0B0B0B0B0B0B0B0B0B0B0B4B4B4B4B4B4B4B4B4
+B4B4B4B4B4B4B4B4B4B1B1B1B1B1B1B1B1B1B3B3B3B3B3B3B3B3B3B6B6B6B6B6B6B6B6B6B6B6B6
+B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B9B9B9B9B9B9B9B9B9B8B8B8B8B8B8B8B8B8B8B8B8
+A5A5A5A5A5A5A5A5A5909090909090909090898989898989898989888888888888888888888888
+8888888888888888888A8A8A8A8A8A8A8A8A9E9E9E9E9E9E9E9E9EBFBFBFBFBFBFBFBFBFDFDFDF
+DFDFDFDFDFDFE7E7E7E7E7E7E7E7E7E7E7E7E2E2E2E2E2E2E2E2E2D7D7D7D7D7D7D7D7D7C9C9C9
+C9C9C9C9C9C9BFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFC2C2C2C2C2C2C2C2C2C6C6C6
+C6C6C6C6C6C6D6D6D6D6D6D6D6D6D6E6E6E6E6E6E6E6E6E6E6E6E6EEEEEEEEEEEEEEEEEEF2F2F2
+F2F2F2F2F2F2F5F5F5F5F5F5F5F5F5F8F8F8F8F8F8F8F8F8F9F9F9F9F9F9F9F9F9F9F9F9FAFAFA
+FAFAFAFAFAFAFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCF9F9F9F9F9F9F9F9F9F9F9F9F0F0F0
+F0F0F0F0F0F0E8E8E8E8E8E8E8E8E8DEDEDEDEDEDEDEDEDED3D3D3D3D3D3D3D3D3C8C8C8C8C8C8
+C8C8C8C8C8C8BDBDBDBDBDBDBDBDBDB5B5B5B5B5B5B5B5B5BABABABABABABABABAC2C2C2C2C2C2
+C2C2C2AAAAAAAAAAAAAAAAAAAAAAAAB7B7B7B7B7B7B7B7B7C6C6C6C6C6C6C6C6C6E1E1E1E1E1E1
+E1E1E1FCFCFCFCFCFCFCFCFCFCFCFCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9F9F9F9F9F9
+F9F9F9CACACACACACACACACAEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFF0F0F0F0F0F0F0F0F0
+F0F0F0EFEFEFEFEFEFEFEFEFEEEEEEEEEEEEEEEEEEEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDED
+EDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEEEEEEEEEEEEEEEEEEECECECECECECECECEC
+EBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBE9E9E9E9E9E9E9E9E9E9E9E9E9E9E9E9E9E9
+E9E9E9E9E9E9E9E9E9EAEAEAEAEAEAEAEAEAEAEAEAE9E9E9E9E9E9E9E9E9E8E9E8E8E9E8E8E9E8
+E7E7E7E7E7E7E7E7E7E5E5E5E5E5E5E5E5E5E3E3E3E3E3E3E3E3E3E3E3E3D5D5D5D5D5D5D5D5D5
+A8A8A8A8A8A8A8A8A85F605F5F605F5F605F343434343434343434343434282828282828282828
+2828282828282828282F2F2F2F2F2F2F2F2F3B3B3B3B3B3B3B3B3B444444444444444444444444
+4B4B4B4B4B4B4B4B4B6161616161616161617B7B7B7B7B7B7B7B7B818181818181818181848484
+8484848484848484848A8A8A8A8A8A8A8A8A9090909090909090909A9A9A9A9A9A9A9A9A9F9F9F
+9F9F9F9F9F9F9F9F9FA1A1A1A1A1A1A1A1A1A4A4A4A4A4A4A4A4A4A9A9A9A9A9A9A9A9A9ADADAD
+ADADADADADADB0B0B0B0B0B0B0B0B0B0B0B0B4B4B4B4B4B4B4B4B4B4B4B4B4B4B4B4B4B4B1B1B1
+B1B1B1B1B1B1B3B3B3B3B3B3B3B3B3B6B6B6B6B6B6B6B6B6B6B6B6B5B5B5B5B5B5B5B5B5B5B5B5
+B5B5B5B5B5B5B9B9B9B9B9B9B9B9B9B8B8B8B8B8B8B8B8B8B8B8B8A5A5A5A5A5A5A5A5A5909090
+9090909090908989898989898989898888888888888888888888888888888888888888888A8A8A
+8A8A8A8A8A8A9E9E9E9E9E9E9E9E9EBFBFBFBFBFBFBFBFBFDFDFDFDFDFDFDFDFDFE7E7E7E7E7E7
+E7E7E7E7E7E7E2E2E2E2E2E2E2E2E2D7D7D7D7D7D7D7D7D7C9C9C9C9C9C9C9C9C9BFBFBFBFBFBF
+BFBFBFBFBFBFBFBFBFBFBFBFBFBFBFC2C2C2C2C2C2C2C2C2C6C6C6C6C6C6C6C6C6D6D6D6D6D6D6
+D6D6D6E6E6E6E6E6E6E6E6E6E6E6E6EEEEEEEEEEEEEEEEEEF2F2F2F2F2F2F2F2F2F5F5F5F5F5F5
+F5F5F5F8F8F8F8F8F8F8F8F8F9F9F9F9F9F9F9F9F9F9F9F9FAFAFAFAFAFAFAFAFAFCFCFCFCFCFC
+FCFCFCFCFCFCFCFCFCFCFCFCF9F9F9F9F9F9F9F9F9F9F9F9F0F0F0F0F0F0F0F0F0E8E8E8E8E8E8
+E8E8E8DEDEDEDEDEDEDEDEDED3D3D3D3D3D3D3D3D3C8C8C8C8C8C8C8C8C8C8C8C8BDBDBDBDBDBD
+BDBDBDB5B5B5B5B5B5B5B5B5BABABABABABABABABAC2C2C2C2C2C2C2C2C2AAAAAAAAAAAAAAAAAA
+AAAAAAB7B7B7B7B7B7B7B7B7C6C6C6C6C6C6C6C6C6E1E1E1E1E1E1E1E1E1FCFCFCFCFCFCFCFCFC
+FCFCFCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9F9F9F9F9F9F9F9F9CACACACACACACACACA
+F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0
+EEEEEEEEEEEEEEEEEEEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDED
+EDEDEDEDEDEDEDEDEDEEEEEEEEEEEEEEEEEEEDEDEDEDEDEDEDEDEDECECECECECECECECECECECEC
+ECECECECECECECECECEBEBEBEBEBEBEBEBEBEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEBEBEB
+EBEBEBEBEBEBEBEBEBEAEAEAEAEAEAEAEAEAE9E9E9E9E9E9E9E9E9E8E9E8E8E9E8E8E9E8E7E7E7
+E7E7E7E7E7E7E4E4E4E4E4E4E4E4E4E4E4E4DEDEDEDEDEDEDEDEDEC5C5C5C5C5C5C5C5C5838383
+8383838383834242424242424242424242422B2B2B2B2B2B2B2B2B292929292929292929363636
+3636363636364D4D4D4D4D4D4D4D4D5B5B5B5B5B5B5B5B5B5B5B5B5C5C5C5C5C5C5C5C5C676767
+6767676767677C7C7C7C7C7C7C7C7C818181818181818181838383838383838383838383878787
+8787878787879090909090909090909C9C9C9C9C9C9C9C9CA1A1A1A1A1A1A1A1A1A1A1A1A3A3A3
+A3A3A3A3A3A3A8A8A8A8A8A8A8A8A8AEAEAEAEAEAEAEAEAEB2B2B2B2B2B2B2B2B2B6B6B6B6B6B6
+B6B6B6B6B6B6B8B8B8B8B8B8B8B8B8B7B7B7B7B7B7B7B7B7B6B6B6B6B6B6B6B6B6B8B8B8B8B8B8
+B8B8B8BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBDBDBDBDBDBDBDBDBDC3C3C3C3C3C3
+C3C3C3BEBEBEBEBEBEBEBEBEBEBEBEA8A8A8A8A8A8A8A8A89191919191919191918B8B8B8B8B8B
+8B8B8B8989898989898989898888888888888888888888888B8B8B8B8B8B8B8B8B9F9F9F9F9F9F
+9F9F9FBFBFBFBFBFBFBFBFBFDBDBDBDBDBDBDBDBDBE3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3
+E3E3E3DFDFDFDFDFDFDFDFDFD0D0D0D0D0D0D0D0D0C1C1C1C1C1C1C1C1C1C1C1C1BCBCBCBCBCBC
+BCBCBCB9B9B9B9B9B9B9B9B9BBBBBBBBBBBBBBBBBBCFCFCFCFCFCFCFCFCFE6E6E6E6E6E6E6E6E6
+E6E6E6F1F1F1F1F1F1F1F1F1F9F9F9F9F9F9F9F9F9FDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFD
+FDFDFDFDFDFDFDFDFDFDFDFDFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE
+FBFBFBFBFBFBFBFBFBFBFBFBF3F3F3F3F3F3F3F3F3E9E9E9E9E9E9E9E9E9DEDEDEDEDEDEDEDEDE
+D5D5D5D5D5D5D5D5D5C8C8C8C8C8C8C8C8C8C8C8C8BCBCBCBCBCBCBCBCBCB3B3B3B3B3B3B3B3B3
+B6B6B6B6B6B6B6B6B6B9B9B9B9B9B9B9B9B9B2B2B2B2B2B2B2B2B2B2B2B2C5C5C5C5C5C5C5C5C5
+C9C9C9C9C9C9C9C9C9E1E1E1E1E1E1E1E1E1FCFCFCFCFCFCFCFCFCFCFCFCFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFBFBFBFBFBFBFBFBFBD4D4D4D4D4D4D4D4D4F0F0F0F0F0F0F0F0F0F0F0F0
+F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0EEEEEEEEEEEEEEEEEEEDEDED
+EDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEEEEEE
+EEEEEEEEEEEEEDEDEDEDEDEDEDEDEDECECECECECECECECECECECECECECECECECECECECECEBEBEB
+EBEBEBEBEBEBEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEBEBEBEBEBEBEBEBEBEBEBEBEAEAEA
+EAEAEAEAEAEAE9E9E9E9E9E9E9E9E9E8E9E8E8E9E8E8E9E8E7E7E7E7E7E7E7E7E7E4E4E4E4E4E4
+E4E4E4E4E4E4DEDEDEDEDEDEDEDEDEC5C5C5C5C5C5C5C5C5838383838383838383424242424242
+4242424242422B2B2B2B2B2B2B2B2B2929292929292929293636363636363636364D4D4D4D4D4D
+4D4D4D5B5B5B5B5B5B5B5B5B5B5B5B5C5C5C5C5C5C5C5C5C6767676767676767677C7C7C7C7C7C
+7C7C7C818181818181818181838383838383838383838383878787878787878787909090909090
+9090909C9C9C9C9C9C9C9C9CA1A1A1A1A1A1A1A1A1A1A1A1A3A3A3A3A3A3A3A3A3A8A8A8A8A8A8
+A8A8A8AEAEAEAEAEAEAEAEAEB2B2B2B2B2B2B2B2B2B6B6B6B6B6B6B6B6B6B6B6B6B8B8B8B8B8B8
+B8B8B8B7B7B7B7B7B7B7B7B7B6B6B6B6B6B6B6B6B6B8B8B8B8B8B8B8B8B8BBBBBBBBBBBBBBBBBB
+BBBBBBBBBBBBBBBBBBBBBBBBBDBDBDBDBDBDBDBDBDC3C3C3C3C3C3C3C3C3BEBEBEBEBEBEBEBEBE
+BEBEBEA8A8A8A8A8A8A8A8A89191919191919191918B8B8B8B8B8B8B8B8B898989898989898989
+8888888888888888888888888B8B8B8B8B8B8B8B8B9F9F9F9F9F9F9F9F9FBFBFBFBFBFBFBFBFBF
+DBDBDBDBDBDBDBDBDBE3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3DFDFDFDFDFDFDFDFDF
+D0D0D0D0D0D0D0D0D0C1C1C1C1C1C1C1C1C1C1C1C1BCBCBCBCBCBCBCBCBCB9B9B9B9B9B9B9B9B9
+BBBBBBBBBBBBBBBBBBCFCFCFCFCFCFCFCFCFE6E6E6E6E6E6E6E6E6E6E6E6F1F1F1F1F1F1F1F1F1
+F9F9F9F9F9F9F9F9F9FDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFD
+FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFBFBFBFBFBFBFBFBFBFBFBFB
+F3F3F3F3F3F3F3F3F3E9E9E9E9E9E9E9E9E9DEDEDEDEDEDEDEDEDED5D5D5D5D5D5D5D5D5C8C8C8
+C8C8C8C8C8C8C8C8C8BCBCBCBCBCBCBCBCBCB3B3B3B3B3B3B3B3B3B6B6B6B6B6B6B6B6B6B9B9B9
+B9B9B9B9B9B9B2B2B2B2B2B2B2B2B2B2B2B2C5C5C5C5C5C5C5C5C5C9C9C9C9C9C9C9C9C9E1E1E1
+E1E1E1E1E1E1FCFCFCFCFCFCFCFCFCFCFCFCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBFBFB
+FBFBFBFBFBFBD4D4D4D4D4D4D4D4D4F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0
+F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0EEEEEEEEEEEEEEEEEEEDEDEDEDEDEDEDEDEDEDEDEDEDEDED
+EDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEEEEEEEEEEEEEEEEEEEDEDEDEDEDED
+EDEDEDECECECECECECECECECECECECECECECECECECECECECEBEBEBEBEBEBEBEBEBEAEAEAEAEAEA
+EAEAEAEAEAEAEAEAEAEAEAEAEBEBEBEBEBEBEBEBEBEBEBEBEAEAEAEAEAEAEAEAEAE9E9E9E9E9E9
+E9E9E9E8E9E8E8E9E8E8E9E8E7E7E7E7E7E7E7E7E7E4E4E4E4E4E4E4E4E4E4E4E4DEDEDEDEDEDE
+DEDEDEC5C5C5C5C5C5C5C5C58383838383838383834242424242424242424242422B2B2B2B2B2B
+2B2B2B2929292929292929293636363636363636364D4D4D4D4D4D4D4D4D5B5B5B5B5B5B5B5B5B
+5B5B5B5C5C5C5C5C5C5C5C5C6767676767676767677C7C7C7C7C7C7C7C7C818181818181818181
+8383838383838383838383838787878787878787879090909090909090909C9C9C9C9C9C9C9C9C
+A1A1A1A1A1A1A1A1A1A1A1A1A3A3A3A3A3A3A3A3A3A8A8A8A8A8A8A8A8A8AEAEAEAEAEAEAEAEAE
+B2B2B2B2B2B2B2B2B2B6B6B6B6B6B6B6B6B6B6B6B6B8B8B8B8B8B8B8B8B8B7B7B7B7B7B7B7B7B7
+B6B6B6B6B6B6B6B6B6B8B8B8B8B8B8B8B8B8BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB
+BDBDBDBDBDBDBDBDBDC3C3C3C3C3C3C3C3C3BEBEBEBEBEBEBEBEBEBEBEBEA8A8A8A8A8A8A8A8A8
+9191919191919191918B8B8B8B8B8B8B8B8B898989898989898989888888888888888888888888
+8B8B8B8B8B8B8B8B8B9F9F9F9F9F9F9F9F9FBFBFBFBFBFBFBFBFBFDBDBDBDBDBDBDBDBDBE3E3E3
+E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3DFDFDFDFDFDFDFDFDFD0D0D0D0D0D0D0D0D0C1C1C1
+C1C1C1C1C1C1C1C1C1BCBCBCBCBCBCBCBCBCB9B9B9B9B9B9B9B9B9BBBBBBBBBBBBBBBBBBCFCFCF
+CFCFCFCFCFCFE6E6E6E6E6E6E6E6E6E6E6E6F1F1F1F1F1F1F1F1F1F9F9F9F9F9F9F9F9F9FDFDFD
+FDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFEFEFEFEFEFEFEFEFEFEFEFE
+FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFBFBFBFBFBFBFBFBFBFBFBFBF3F3F3F3F3F3F3F3F3E9E9E9
+E9E9E9E9E9E9DEDEDEDEDEDEDEDEDED5D5D5D5D5D5D5D5D5C8C8C8C8C8C8C8C8C8C8C8C8BCBCBC
+BCBCBCBCBCBCB3B3B3B3B3B3B3B3B3B6B6B6B6B6B6B6B6B6B9B9B9B9B9B9B9B9B9B2B2B2B2B2B2
+B2B2B2B2B2B2C5C5C5C5C5C5C5C5C5C9C9C9C9C9C9C9C9C9E1E1E1E1E1E1E1E1E1FCFCFCFCFCFC
+FCFCFCFCFCFCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBFBFBFBFBFBFBFBFBD4D4D4D4D4D4
+D4D4D4EFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEEEEEEEEEEEE
+EEEEEEEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDED
+EDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDECECECECECECECECEC
+ECECECECECECECECECECECECECECECECECECECECECEBEBEBEBEBEBEBEBEBEAEAEAEAEAEAEAEAEA
+EAEAEAEAEAEAEAEAEAEAEAEAE9E9E9E9E9E9E9E9E9E8E9E8E8E9E8E8E9E8E8E9E8E8E9E8E8E9E8
+E8E8E8E8E8E8E8E8E8E6E6E6E6E6E6E6E6E6E6E6E6E2E2E2E2E2E2E2E2E2D6D6D5D6D6D5D6D6D5
+A8A8A8A8A8A8A8A8A85C5C5C5C5C5C5C5C5C5C5C5C3232323232323232322F2F2F2F2F2F2F2F2F
+4444444444444444446262626262626262626C6C6C6C6C6C6C6C6C6C6C6C666666666666666666
+6B6B6B6B6B6B6B6B6B7D7D7D7D7D7D7D7D7D808080808080808080828282828282828282828282
+8787878787878787879090909090909090909B9B9B9B9B9B9B9B9BA0A0A0A0A0A0A0A0A0A0A0A0
+A3A3A3A3A3A3A3A3A3A8A8A8A8A8A8A8A8A8B0B0B0B0B0B0B0B0B0B3B3B3B3B3B3B3B3B3B9B9B9
+B9B9B9B9B9B9B9B9B9BCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBFBFBFBFBFBFBFBFBFC0C0C0
+C0C0C0C0C0C0C2C2C2C2C2C2C2C2C2C2C2C2C1C1C1C1C1C1C1C1C1C3C3C3C3C3C3C3C3C3C5C5C5
+C5C5C5C5C5C5BFBFBFBFBFBFBFBFBFBFBFBFA8A8A8A8A8A8A8A8A89292929292929292928A8A8A
+8A8A8A8A8A8A8686868686868686868686868686868686868686868E8E8E8E8E8E8E8E8EA3A3A3
+A3A3A3A3A3A3C2C2C2C2C2C2C2C2C2DDDDDDDDDDDDDDDDDDE4E4E4E4E4E4E4E4E4E4E4E4E5E5E5
+E5E5E5E5E5E5E5E5E5E5E5E5E5E5E5DBDBDBDBDBDBDBDBDBCACACACACACACACACACACACABDBDBD
+BDBDBDBDBDBDB6B6B6B6B6B6B6B6B6B5B5B5B5B5B5B5B5B5BEBEBEBEBEBEBEBEBED2D2D2D2D2D2
+D2D2D2D2D2D2E7E7E7E7E7E7E7E7E7F5F5F5F5F5F5F5F5F5FDFDFDFDFDFDFDFDFDFEFEFEFEFEFE
+FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE
+FEFEFEFCFCFCFCFCFCFCFCFCFCFCFCF5F5F5F5F5F5F5F5F5EAEAEAEAEAEAEAEAEADFDFDFDFDFDF
+DFDFDFD6D6D5D6D6D5D6D6D5C8C8C8C8C8C8C8C8C8C8C8C8BBBBBBBBBBBBBBBBBBB1B1B1B1B1B1
+B1B1B1B1B1B1B1B1B1B1B1B1B8B8B8B8B8B8B8B8B8C3C3C3C3C3C3C3C3C3C3C3C3D3D3D3D3D3D3
+D3D3D3D1D1D1D1D1D1D1D1D1E5E5E5E5E5E5E5E5E5FDFDFDFDFDFDFDFDFDFDFDFDFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFCFCFCFCFCFCFCFCFCE1E1E1E1E1E1E1E1E1EFEFEFEFEFEFEFEFEF
+EFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEEEEEEEEEEEEEEEEEEEDEDEDEDEDEDEDEDED
+EDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDED
+EDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDECECECECECECECECECECECECECECECECECECECECEC
+ECECECECECECECECECEBEBEBEBEBEBEBEBEBEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEA
+E9E9E9E9E9E9E9E9E9E8E9E8E8E9E8E8E9E8E8E9E8E8E9E8E8E9E8E8E8E8E8E8E8E8E8E8E6E6E6
+E6E6E6E6E6E6E6E6E6E2E2E2E2E2E2E2E2E2D6D6D5D6D6D5D6D6D5A8A8A8A8A8A8A8A8A85C5C5C
+5C5C5C5C5C5C5C5C5C3232323232323232322F2F2F2F2F2F2F2F2F444444444444444444626262
+6262626262626C6C6C6C6C6C6C6C6C6C6C6C6666666666666666666B6B6B6B6B6B6B6B6B7D7D7D
+7D7D7D7D7D7D808080808080808080828282828282828282828282878787878787878787909090
+9090909090909B9B9B9B9B9B9B9B9BA0A0A0A0A0A0A0A0A0A0A0A0A3A3A3A3A3A3A3A3A3A8A8A8
+A8A8A8A8A8A8B0B0B0B0B0B0B0B0B0B3B3B3B3B3B3B3B3B3B9B9B9B9B9B9B9B9B9B9B9B9BCBCBC
+BCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBFBFBFBFBFBFBFBFBFC0C0C0C0C0C0C0C0C0C2C2C2C2C2C2
+C2C2C2C2C2C2C1C1C1C1C1C1C1C1C1C3C3C3C3C3C3C3C3C3C5C5C5C5C5C5C5C5C5BFBFBFBFBFBF
+BFBFBFBFBFBFA8A8A8A8A8A8A8A8A89292929292929292928A8A8A8A8A8A8A8A8A868686868686
+8686868686868686868686868686868E8E8E8E8E8E8E8E8EA3A3A3A3A3A3A3A3A3C2C2C2C2C2C2
+C2C2C2DDDDDDDDDDDDDDDDDDE4E4E4E4E4E4E4E4E4E4E4E4E5E5E5E5E5E5E5E5E5E5E5E5E5E5E5
+E5E5E5DBDBDBDBDBDBDBDBDBCACACACACACACACACACACACABDBDBDBDBDBDBDBDBDB6B6B6B6B6B6
+B6B6B6B5B5B5B5B5B5B5B5B5BEBEBEBEBEBEBEBEBED2D2D2D2D2D2D2D2D2D2D2D2E7E7E7E7E7E7
+E7E7E7F5F5F5F5F5F5F5F5F5FDFDFDFDFDFDFDFDFDFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE
+FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFCFCFCFCFCFCFCFCFC
+FCFCFCF5F5F5F5F5F5F5F5F5EAEAEAEAEAEAEAEAEADFDFDFDFDFDFDFDFDFD6D6D5D6D6D5D6D6D5
+C8C8C8C8C8C8C8C8C8C8C8C8BBBBBBBBBBBBBBBBBBB1B1B1B1B1B1B1B1B1B1B1B1B1B1B1B1B1B1
+B8B8B8B8B8B8B8B8B8C3C3C3C3C3C3C3C3C3C3C3C3D3D3D3D3D3D3D3D3D3D1D1D1D1D1D1D1D1D1
+E5E5E5E5E5E5E5E5E5FDFDFDFDFDFDFDFDFDFDFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FCFCFCFCFCFCFCFCFCE1E1E1E1E1E1E1E1E1EEEEEEEEEEEEEEEEEEEDEDEDEDEDEDEDEDEDEEEEEE
+EEEEEEEEEEEEEEEEEEEDEDEDEDEDEDEDEDEDECECECECECECECECECEDEDEDEDEDEDEDEDEDECECEC
+ECECECECECECECECECECECECECECECECECECEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDED
+EDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDECECECECECECECECECEBEBEBEBEBEBEBEBEBEAEAEA
+EAEAEAEAEAEAEAEAEAEAEAEAEAEAEAE9E9E9E9E9E9E9E9E9E9E9E9E8E9E8E8E9E8E8E9E8E8E8E8
+E8E8E8E8E8E8E8E8E8E8E8E8E8E8E8E6E6E6E6E6E6E6E6E6E5E5E5E5E5E5E5E5E5E5E5E5E3E3E3
+E3E3E3E3E3E3DCDCDCDCDCDCDCDCDCC5C5C5C5C5C5C5C5C5808080808080808080808080414141
+414141414141363636363636363636565656565656565656707070707070707070727272727272
+7272727272726A6A6A6A6A6A6A6A6A6E6E6E6E6E6E6E6E6E7D7D7D7D7D7D7D7D7D7F7F7F7F7F7F
+7F7F7F818181818181818181818181878787878787878787909090909090909090999999999999
+9999999F9F9F9F9F9F9F9F9F9F9F9FA2A2A2A2A2A2A2A2A2A8A8A8A8A8A8A8A8A8ADADADADADAD
+ADADADB4B4B4B4B4B4B4B4B4BBBBBBBBBBBBBBBBBBBBBBBBBFBFBFBFBFBFBFBFBFC4C4C4C4C4C4
+C4C4C4C8C8C8C8C8C8C8C8C8CBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBC7C7C7C7C7C7
+C7C7C7C5C5C5C5C5C5C5C5C5CACACACACACACACACAC2C2C2C2C2C2C2C2C2C2C2C2A7A7A7A7A7A7
+A7A7A78F8F8F8F8F8F8F8F8F858585858585858585828282828282828282838383838383838383
+8383838F8F8F8F8F8F8F8F8FA8A8A8A8A8A8A8A8A8C9C9C9C9C9C9C9C9C9DFDFDFDFDFDFDFDFDF
+E6E6E6E6E6E6E6E6E6E6E6E6E9E9E9E9E9E9E9E9E9EBEBEBEBEBEBEBEBEBE1E1E1E1E1E1E1E1E1
+D1D1D1D1D1D1D1D1D1D1D1D1C1C1C1C1C1C1C1C1C1B7B7B7B7B7B7B7B7B7B4B4B4B4B4B4B4B4B4
+B1B1B1B1B1B1B1B1B1BEBEBEBEBEBEBEBEBEBEBEBED1D1D1D1D1D1D1D1D1E3E3E3E3E3E3E3E3E3
+F5F5F5F5F5F5F5F5F5FDFDFDFDFDFDFDFDFDFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE
+FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFDFDFDFDFDFDFDFDFDFDFDFDF6F6F6F6F6F6F6F6F6
+EBEBEBEBEBEBEBEBEBDFDFDFDFDFDFDFDFDFD4D4D4D4D4D4D4D4D4C7C7C7C7C7C7C7C7C7C7C7C7
+BABABABABABABABABAB0B1B0B0B1B0B0B1B0B0B0B0B0B0B0B0B0B0BDBDBDBDBDBDBDBDBDCDCDCD
+CDCDCDCDCDCDCDCDCDDADADADADADADADADAD7D7D7D7D7D7D7D7D7EBEBEBEBEBEBEBEBEBFDFDFD
+FDFDFDFDFDFDFDFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9F9F9F9F9F9F9F9F9C7C7C7
+C7C7C7C7C7C7EEEEEEEEEEEEEEEEEEEDEDEDEDEDEDEDEDEDEEEEEEEEEEEEEEEEEEEEEEEEEDEDED
+EDEDEDEDEDEDECECECECECECECECECEDEDEDEDEDEDEDEDEDECECECECECECECECECECECECECECEC
+ECECECECECECEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDED
+EDEDEDEDEDEDECECECECECECECECECEBEBEBEBEBEBEBEBEBEAEAEAEAEAEAEAEAEAEAEAEAEAEAEA
+EAEAEAE9E9E9E9E9E9E9E9E9E9E9E9E8E9E8E8E9E8E8E9E8E8E8E8E8E8E8E8E8E8E8E8E8E8E8E8
+E8E8E8E6E6E6E6E6E6E6E6E6E5E5E5E5E5E5E5E5E5E5E5E5E3E3E3E3E3E3E3E3E3DCDCDCDCDCDC
+DCDCDCC5C5C5C5C5C5C5C5C5808080808080808080808080414141414141414141363636363636
+3636365656565656565656567070707070707070707272727272727272727272726A6A6A6A6A6A
+6A6A6A6E6E6E6E6E6E6E6E6E7D7D7D7D7D7D7D7D7D7F7F7F7F7F7F7F7F7F818181818181818181
+8181818787878787878787879090909090909090909999999999999999999F9F9F9F9F9F9F9F9F
+9F9F9FA2A2A2A2A2A2A2A2A2A8A8A8A8A8A8A8A8A8ADADADADADADADADADB4B4B4B4B4B4B4B4B4
+BBBBBBBBBBBBBBBBBBBBBBBBBFBFBFBFBFBFBFBFBFC4C4C4C4C4C4C4C4C4C8C8C8C8C8C8C8C8C8
+CBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBC7C7C7C7C7C7C7C7C7C5C5C5C5C5C5C5C5C5
+CACACACACACACACACAC2C2C2C2C2C2C2C2C2C2C2C2A7A7A7A7A7A7A7A7A78F8F8F8F8F8F8F8F8F
+8585858585858585858282828282828282828383838383838383838383838F8F8F8F8F8F8F8F8F
+A8A8A8A8A8A8A8A8A8C9C9C9C9C9C9C9C9C9DFDFDFDFDFDFDFDFDFE6E6E6E6E6E6E6E6E6E6E6E6
+E9E9E9E9E9E9E9E9E9EBEBEBEBEBEBEBEBEBE1E1E1E1E1E1E1E1E1D1D1D1D1D1D1D1D1D1D1D1D1
+C1C1C1C1C1C1C1C1C1B7B7B7B7B7B7B7B7B7B4B4B4B4B4B4B4B4B4B1B1B1B1B1B1B1B1B1BEBEBE
+BEBEBEBEBEBEBEBEBED1D1D1D1D1D1D1D1D1E3E3E3E3E3E3E3E3E3F5F5F5F5F5F5F5F5F5FDFDFD
+FDFDFDFDFDFDFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE
+FEFEFEFEFEFEFDFDFDFDFDFDFDFDFDFDFDFDF6F6F6F6F6F6F6F6F6EBEBEBEBEBEBEBEBEBDFDFDF
+DFDFDFDFDFDFD4D4D4D4D4D4D4D4D4C7C7C7C7C7C7C7C7C7C7C7C7BABABABABABABABABAB0B1B0
+B0B1B0B0B1B0B0B0B0B0B0B0B0B0B0BDBDBDBDBDBDBDBDBDCDCDCDCDCDCDCDCDCDCDCDCDDADADA
+DADADADADADAD7D7D7D7D7D7D7D7D7EBEBEBEBEBEBEBEBEBFDFDFDFDFDFDFDFDFDFDFDFDFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9F9F9F9F9F9F9F9F9C7C7C7C7C7C7C7C7C7EEEEEEEEEEEE
+EEEEEEEDEDEDEDEDEDEDEDEDEEEEEEEEEEEEEEEEEEEEEEEEEDEDEDEDEDEDEDEDEDECECECECECEC
+ECECECEDEDEDEDEDEDEDEDEDECECECECECECECECECECECECECECECECECECECECECEDEDEDEDEDED
+EDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDECECECECECEC
+ECECECEBEBEBEBEBEBEBEBEBEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAE9E9E9E9E9E9E9E9E9
+E9E9E9E8E9E8E8E9E8E8E9E8E8E8E8E8E8E8E8E8E8E8E8E8E8E8E8E8E8E8E6E6E6E6E6E6E6E6E6
+E5E5E5E5E5E5E5E5E5E5E5E5E3E3E3E3E3E3E3E3E3DCDCDCDCDCDCDCDCDCC5C5C5C5C5C5C5C5C5
+808080808080808080808080414141414141414141363636363636363636565656565656565656
+7070707070707070707272727272727272727272726A6A6A6A6A6A6A6A6A6E6E6E6E6E6E6E6E6E
+7D7D7D7D7D7D7D7D7D7F7F7F7F7F7F7F7F7F818181818181818181818181878787878787878787
+9090909090909090909999999999999999999F9F9F9F9F9F9F9F9F9F9F9FA2A2A2A2A2A2A2A2A2
+A8A8A8A8A8A8A8A8A8ADADADADADADADADADB4B4B4B4B4B4B4B4B4BBBBBBBBBBBBBBBBBBBBBBBB
+BFBFBFBFBFBFBFBFBFC4C4C4C4C4C4C4C4C4C8C8C8C8C8C8C8C8C8CBCBCBCBCBCBCBCBCBCBCBCB
+CBCBCBCBCBCBCBCBCBC7C7C7C7C7C7C7C7C7C5C5C5C5C5C5C5C5C5CACACACACACACACACAC2C2C2
+C2C2C2C2C2C2C2C2C2A7A7A7A7A7A7A7A7A78F8F8F8F8F8F8F8F8F858585858585858585828282
+8282828282828383838383838383838383838F8F8F8F8F8F8F8F8FA8A8A8A8A8A8A8A8A8C9C9C9
+C9C9C9C9C9C9DFDFDFDFDFDFDFDFDFE6E6E6E6E6E6E6E6E6E6E6E6E9E9E9E9E9E9E9E9E9EBEBEB
+EBEBEBEBEBEBE1E1E1E1E1E1E1E1E1D1D1D1D1D1D1D1D1D1D1D1D1C1C1C1C1C1C1C1C1C1B7B7B7
+B7B7B7B7B7B7B4B4B4B4B4B4B4B4B4B1B1B1B1B1B1B1B1B1BEBEBEBEBEBEBEBEBEBEBEBED1D1D1
+D1D1D1D1D1D1E3E3E3E3E3E3E3E3E3F5F5F5F5F5F5F5F5F5FDFDFDFDFDFDFDFDFDFEFEFEFEFEFE
+FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFDFDFDFDFDFD
+FDFDFDFDFDFDF6F6F6F6F6F6F6F6F6EBEBEBEBEBEBEBEBEBDFDFDFDFDFDFDFDFDFD4D4D4D4D4D4
+D4D4D4C7C7C7C7C7C7C7C7C7C7C7C7BABABABABABABABABAB0B1B0B0B1B0B0B1B0B0B0B0B0B0B0
+B0B0B0BDBDBDBDBDBDBDBDBDCDCDCDCDCDCDCDCDCDCDCDCDDADADADADADADADADAD7D7D7D7D7D7
+D7D7D7EBEBEBEBEBEBEBEBEBFDFDFDFDFDFDFDFDFDFDFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFF9F9F9F9F9F9F9F9F9C7C7C7C7C7C7C7C7C7EDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDED
+EEEEEEEEEEEEEEEEEEEEEEEEEDEDEDEDEDEDEDEDEDECECECECECECECECECEDEDEDEDEDEDEDEDED
+EBEBEBEBEBEBEBEBEBECECECECECECECECECECECECECECECECECECECECECECECECECECECECECEC
+EDEDEDEDEDEDEDEDEDECECECECECECECECECECECECEBEBEBEBEBEBEBEBEBEAEAEAEAEAEAEAEAEA
+E9E9E9E9E9E9E9E9E9EAEAEAEAEAEAEAEAEAE9E9E9E9E9E9E9E9E9E9E9E9E8E9E8E8E9E8E8E9E8
+E8E8E8E8E8E8E8E8E8E7E7E7E7E7E7E7E7E7E5E5E5E5E5E5E5E5E5E4E4E4E4E4E4E4E4E4E4E4E4
+E3E3E3E3E3E3E3E3E3DFDFDFDFDFDFDFDFDFD5D5D5D5D5D5D5D5D5A3A3A3A3A3A3A3A3A3A3A3A3
+585858585858585858404040404040404040636363636363636363757575757575757575727272
+7272727272727272726C6C6C6C6C6C6C6C6C7373737373737373737F7F7F7F7F7F7F7F7F7F7F7F
+7F7F7F7F7F7F818181818181818181818181888888888888888888919191919191919191979797
+9797979797979D9D9D9D9D9D9D9D9D9D9D9DA2A2A2A2A2A2A2A2A2A8A8A8A8A8A8A8A8A8AEAEAE
+AEAEAEAEAEAEB5B5B5B5B5B5B5B5B5BEBEBEBEBEBEBEBEBEBEBEBEC5C5C5C5C5C5C5C5C5CCCCCC
+CCCCCCCCCCCCD1D1D1D1D1D1D1D1D1D2D2D2D2D2D2D2D2D2D0D0D0D0D0D0D0D0D0D0D0D0CECECE
+CECECECECECECACACACACACACACACACBCBCBCBCBCBCBCBCBBCBCBCBCBCBCBCBCBCBCBCBC9E9E9E
+9E9E9E9E9E9E878787878787878787818181818181818181818181818181818181848484848484
+848484848484909090909090909090ABABABABABABABABABCFCFCFCFCFCFCFCFCFE4E4E4E4E4E4
+E4E4E4ECECECECECECECECECECECECF2F2F2F2F2F2F2F2F2F5F5F5F5F5F5F5F5F5E9E9E9E9E9E9
+E9E9E9D5D5D5D5D5D5D5D5D5D5D5D5C4C4C4C4C4C4C4C4C4BBBBBBBBBBBBBBBBBBB8B8B8B8B8B8
+B8B8B8B0B1B0B0B1B0B0B1B0B0B1B0B0B1B0B0B1B0B0B1B0BBBBBBBBBBBBBBBBBBCBCBCBCBCBCB
+CBCBCBE3E3E3E3E3E3E3E3E3F2F2F2F2F2F2F2F2F2FBFBFBFBFBFBFBFBFBFBFBFBFDFDFDFDFDFD
+FDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFCFCFCFCFCFCFCFCFCFCFCFCF7F7F7F7F7F7
+F7F7F7ECECECECECECECECECDFDFDFDFDFDFDFDFDFD3D3D3D3D3D3D3D3D3C5C5C5C5C5C5C5C5C5
+C5C5C5B8B8B8B8B8B8B8B8B8B0B1B0B0B1B0B0B1B0B0B1B0B0B1B0B0B1B0C5C5C5C5C5C5C5C5C5
+DADADADADADADADADADADADADBDBDBDBDBDBDBDBDBD6D6D5D6D6D5D6D6D5F0F0F0F0F0F0F0F0F0
+FEFEFEFEFEFEFEFEFEFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9F9F9F9F9F9F9F9F9
+C6C6C6C6C6C6C6C6C6EDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEEEEEEEEEEEEEEEEEEEEEEEE
+EDEDEDEDEDEDEDEDEDECECECECECECECECECEDEDEDEDEDEDEDEDEDEBEBEBEBEBEBEBEBEBECECEC
+ECECECECECECECECECECECECECECECECECECECECECECECECECECECEDEDEDEDEDEDEDEDEDECECEC
+ECECECECECECECECECEBEBEBEBEBEBEBEBEBEAEAEAEAEAEAEAEAEAE9E9E9E9E9E9E9E9E9EAEAEA
+EAEAEAEAEAEAE9E9E9E9E9E9E9E9E9E9E9E9E8E9E8E8E9E8E8E9E8E8E8E8E8E8E8E8E8E8E7E7E7
+E7E7E7E7E7E7E5E5E5E5E5E5E5E5E5E4E4E4E4E4E4E4E4E4E4E4E4E3E3E3E3E3E3E3E3E3DFDFDF
+DFDFDFDFDFDFD5D5D5D5D5D5D5D5D5A3A3A3A3A3A3A3A3A3A3A3A3585858585858585858404040
+4040404040406363636363636363637575757575757575757272727272727272727272726C6C6C
+6C6C6C6C6C6C7373737373737373737F7F7F7F7F7F7F7F7F7F7F7F7F7F7F7F7F7F818181818181
+8181818181818888888888888888889191919191919191919797979797979797979D9D9D9D9D9D
+9D9D9D9D9D9DA2A2A2A2A2A2A2A2A2A8A8A8A8A8A8A8A8A8AEAEAEAEAEAEAEAEAEB5B5B5B5B5B5
+B5B5B5BEBEBEBEBEBEBEBEBEBEBEBEC5C5C5C5C5C5C5C5C5CCCCCCCCCCCCCCCCCCD1D1D1D1D1D1
+D1D1D1D2D2D2D2D2D2D2D2D2D0D0D0D0D0D0D0D0D0D0D0D0CECECECECECECECECECACACACACACA
+CACACACBCBCBCBCBCBCBCBCBBCBCBCBCBCBCBCBCBCBCBCBC9E9E9E9E9E9E9E9E9E878787878787
+878787818181818181818181818181818181818181848484848484848484848484909090909090
+909090ABABABABABABABABABCFCFCFCFCFCFCFCFCFE4E4E4E4E4E4E4E4E4ECECECECECECECECEC
+ECECECF2F2F2F2F2F2F2F2F2F5F5F5F5F5F5F5F5F5E9E9E9E9E9E9E9E9E9D5D5D5D5D5D5D5D5D5
+D5D5D5C4C4C4C4C4C4C4C4C4BBBBBBBBBBBBBBBBBBB8B8B8B8B8B8B8B8B8B0B1B0B0B1B0B0B1B0
+B0B1B0B0B1B0B0B1B0B0B1B0BBBBBBBBBBBBBBBBBBCBCBCBCBCBCBCBCBCBE3E3E3E3E3E3E3E3E3
+F2F2F2F2F2F2F2F2F2FBFBFBFBFBFBFBFBFBFBFBFBFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFD
+FDFDFDFDFDFDFDFDFDFCFCFCFCFCFCFCFCFCFCFCFCF7F7F7F7F7F7F7F7F7ECECECECECECECECEC
+DFDFDFDFDFDFDFDFDFD3D3D3D3D3D3D3D3D3C5C5C5C5C5C5C5C5C5C5C5C5B8B8B8B8B8B8B8B8B8
+B0B1B0B0B1B0B0B1B0B0B1B0B0B1B0B0B1B0C5C5C5C5C5C5C5C5C5DADADADADADADADADADADADA
+DBDBDBDBDBDBDBDBDBD6D6D5D6D6D5D6D6D5F0F0F0F0F0F0F0F0F0FEFEFEFEFEFEFEFEFEFEFEFE
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9F9F9F9F9F9F9F9F9C6C6C6C6C6C6C6C6C6ECECEC
+ECECECECECECEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDED
+EDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEB
+EBEBEBEBEBEBECECECECECECECECECEBEBEBEBEBEBEBEBEBEAEAEAEAEAEAEAEAEAEAEAEAEAEAEA
+EAEAEAEAEAEAE9E9E9E9E9E9E9E9E9E8E9E8E8E9E8E8E9E8E9E9E9E9E9E9E9E9E9E8E9E8E8E9E8
+E8E9E8E8E9E8E8E8E8E8E8E8E8E8E8E7E7E7E7E7E7E7E7E7E6E6E6E6E6E6E6E6E6E4E4E4E4E4E4
+E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E1E1E1E1E1E1E1E1E1DFDFDFDFDFDFDFDFDFDBDBDBDBDBDB
+DBDBDBBFBFBFBFBFBFBFBFBFBFBFBF7676767676767676764E4E4E4E4E4E4E4E4E696969696969
+6969697373737373737373736C6C6C6C6C6C6C6C6C6C6C6C6D6D6D6D6D6D6D6D6D797979797979
+797979818181818181818181818181818181818181818181818181818181818181878787878787
+8787879090909090909090909494949494949494949A9A9A9A9A9A9A9A9A9A9A9AA0A0A0A0A0A0
+A0A0A0A7A7A7A7A7A7A7A7A7AEAEAEAEAEAEAEAEAEB7B7B7B7B7B7B7B7B7C2C2C2C2C2C2C2C2C2
+C2C2C2CBCBCBCBCBCBCBCBCBD2D2D2D2D2D2D2D2D2D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6
+D6D6D6D6D6D6D6D6D6D6D6D6D6D6D5D6D6D5D6D6D5D0D0D0D0D0D0D0D0D0C5C5C5C5C5C5C5C5C5
+ADADADADADADADADADADADAD9090909090909090907F7F7F7F7F7F7F7F7F7D7D7D7D7D7D7D7D7D
+818181818181818181868686868686868686868686909090909090909090A8A8A8A8A8A8A8A8A8
+CDCDCDCDCDCDCDCDCDE3E3E3E3E3E3E3E3E3E8E9E8E8E9E8E8E9E8E8E9E8F1F1F1F1F1F1F1F1F1
+F9F9F9F9F9F9F9F9F9E8E8E8E8E8E8E8E8E8CCCCCCCCCCCCCCCCCCCCCCCCBEBEBEBEBEBEBEBEBE
+BABABABABABABABABABCBCBCBCBCBCBCBCBCB7B7B7B7B7B7B7B7B7ADADADADADADADADADADADAD
+ADADADADADADADADADB7B7B7B7B7B7B7B7B7CBCBCBCBCBCBCBCBCBDDDDDDDDDDDDDDDDDDECECEC
+ECECECECECECECECECF5F5F5F5F5F5F5F5F5F6F6F6F6F6F6F6F6F6F8F8F8F8F8F8F8F8F8F9F9F9
+F9F9F9F9F9F9F9F9F9F3F3F3F3F3F3F3F3F3E8E8E8E8E8E8E8E8E8DCDCDCDCDCDCDCDCDCCFCFCF
+CFCFCFCFCFCFC4C4C4C4C4C4C4C4C4C4C4C4B9B9B9B9B9B9B9B9B9B0B1B0B0B1B0B0B1B0B0B1B0
+B0B1B0B0B1B0C4C4C4C4C4C4C4C4C4D2D2D2D2D2D2D2D2D2D2D2D2CDCDCDCDCDCDCDCDCDD2D2D2
+D2D2D2D2D2D2F3F3F3F3F3F3F3F3F3FEFEFEFEFEFEFEFEFEFEFEFEFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFF9F9F9F9F9F9F9F9F9BBBBBBBBBBBBBBBBBBECECECECECECECECECEDEDEDEDEDED
+EDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDED
+EDEDEDEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBECECECECECEC
+ECECECEBEBEBEBEBEBEBEBEBEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAE9E9E9E9E9E9
+E9E9E9E8E9E8E8E9E8E8E9E8E9E9E9E9E9E9E9E9E9E8E9E8E8E9E8E8E9E8E8E9E8E8E8E8E8E8E8
+E8E8E8E7E7E7E7E7E7E7E7E7E6E6E6E6E6E6E6E6E6E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4
+E4E4E4E1E1E1E1E1E1E1E1E1DFDFDFDFDFDFDFDFDFDBDBDBDBDBDBDBDBDBBFBFBFBFBFBFBFBFBF
+BFBFBF7676767676767676764E4E4E4E4E4E4E4E4E696969696969696969737373737373737373
+6C6C6C6C6C6C6C6C6C6C6C6C6D6D6D6D6D6D6D6D6D797979797979797979818181818181818181
+818181818181818181818181818181818181818181878787878787878787909090909090909090
+9494949494949494949A9A9A9A9A9A9A9A9A9A9A9AA0A0A0A0A0A0A0A0A0A7A7A7A7A7A7A7A7A7
+AEAEAEAEAEAEAEAEAEB7B7B7B7B7B7B7B7B7C2C2C2C2C2C2C2C2C2C2C2C2CBCBCBCBCBCBCBCBCB
+D2D2D2D2D2D2D2D2D2D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6
+D6D6D5D6D6D5D6D6D5D0D0D0D0D0D0D0D0D0C5C5C5C5C5C5C5C5C5ADADADADADADADADADADADAD
+9090909090909090907F7F7F7F7F7F7F7F7F7D7D7D7D7D7D7D7D7D818181818181818181868686
+868686868686868686909090909090909090A8A8A8A8A8A8A8A8A8CDCDCDCDCDCDCDCDCDE3E3E3
+E3E3E3E3E3E3E8E9E8E8E9E8E8E9E8E8E9E8F1F1F1F1F1F1F1F1F1F9F9F9F9F9F9F9F9F9E8E8E8
+E8E8E8E8E8E8CCCCCCCCCCCCCCCCCCCCCCCCBEBEBEBEBEBEBEBEBEBABABABABABABABABABCBCBC
+BCBCBCBCBCBCB7B7B7B7B7B7B7B7B7ADADADADADADADADADADADADADADADADADADADADADB7B7B7
+B7B7B7B7B7B7CBCBCBCBCBCBCBCBCBDDDDDDDDDDDDDDDDDDECECECECECECECECECECECECF5F5F5
+F5F5F5F5F5F5F6F6F6F6F6F6F6F6F6F8F8F8F8F8F8F8F8F8F9F9F9F9F9F9F9F9F9F9F9F9F3F3F3
+F3F3F3F3F3F3E8E8E8E8E8E8E8E8E8DCDCDCDCDCDCDCDCDCCFCFCFCFCFCFCFCFCFC4C4C4C4C4C4
+C4C4C4C4C4C4B9B9B9B9B9B9B9B9B9B0B1B0B0B1B0B0B1B0B0B1B0B0B1B0B0B1B0C4C4C4C4C4C4
+C4C4C4D2D2D2D2D2D2D2D2D2D2D2D2CDCDCDCDCDCDCDCDCDD2D2D2D2D2D2D2D2D2F3F3F3F3F3F3
+F3F3F3FEFEFEFEFEFEFEFEFEFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9F9F9F9F9F9
+F9F9F9BBBBBBBBBBBBBBBBBBECECECECECECECECECEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDED
+EDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEBEBEBEBEBEBEBEBEB
+EBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBECECECECECECECECECEBEBEBEBEBEBEBEBEB
+EAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAE9E9E9E9E9E9E9E9E9E8E9E8E8E9E8E8E9E8
+E9E9E9E9E9E9E9E9E9E8E9E8E8E9E8E8E9E8E8E9E8E8E8E8E8E8E8E8E8E8E7E7E7E7E7E7E7E7E7
+E6E6E6E6E6E6E6E6E6E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E1E1E1E1E1E1E1E1E1
+DFDFDFDFDFDFDFDFDFDBDBDBDBDBDBDBDBDBBFBFBFBFBFBFBFBFBFBFBFBF767676767676767676
+4E4E4E4E4E4E4E4E4E6969696969696969697373737373737373736C6C6C6C6C6C6C6C6C6C6C6C
+6D6D6D6D6D6D6D6D6D797979797979797979818181818181818181818181818181818181818181
+8181818181818181818787878787878787879090909090909090909494949494949494949A9A9A
+9A9A9A9A9A9A9A9A9AA0A0A0A0A0A0A0A0A0A7A7A7A7A7A7A7A7A7AEAEAEAEAEAEAEAEAEB7B7B7
+B7B7B7B7B7B7C2C2C2C2C2C2C2C2C2C2C2C2CBCBCBCBCBCBCBCBCBD2D2D2D2D2D2D2D2D2D6D6D6
+D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D5D6D6D5D6D6D5D0D0D0
+D0D0D0D0D0D0C5C5C5C5C5C5C5C5C5ADADADADADADADADADADADAD9090909090909090907F7F7F
+7F7F7F7F7F7F7D7D7D7D7D7D7D7D7D818181818181818181868686868686868686868686909090
+909090909090A8A8A8A8A8A8A8A8A8CDCDCDCDCDCDCDCDCDE3E3E3E3E3E3E3E3E3E8E9E8E8E9E8
+E8E9E8E8E9E8F1F1F1F1F1F1F1F1F1F9F9F9F9F9F9F9F9F9E8E8E8E8E8E8E8E8E8CCCCCCCCCCCC
+CCCCCCCCCCCCBEBEBEBEBEBEBEBEBEBABABABABABABABABABCBCBCBCBCBCBCBCBCB7B7B7B7B7B7
+B7B7B7ADADADADADADADADADADADADADADADADADADADADADB7B7B7B7B7B7B7B7B7CBCBCBCBCBCB
+CBCBCBDDDDDDDDDDDDDDDDDDECECECECECECECECECECECECF5F5F5F5F5F5F5F5F5F6F6F6F6F6F6
+F6F6F6F8F8F8F8F8F8F8F8F8F9F9F9F9F9F9F9F9F9F9F9F9F3F3F3F3F3F3F3F3F3E8E8E8E8E8E8
+E8E8E8DCDCDCDCDCDCDCDCDCCFCFCFCFCFCFCFCFCFC4C4C4C4C4C4C4C4C4C4C4C4B9B9B9B9B9B9
+B9B9B9B0B1B0B0B1B0B0B1B0B0B1B0B0B1B0B0B1B0C4C4C4C4C4C4C4C4C4D2D2D2D2D2D2D2D2D2
+D2D2D2CDCDCDCDCDCDCDCDCDD2D2D2D2D2D2D2D2D2F3F3F3F3F3F3F3F3F3FEFEFEFEFEFEFEFEFE
+FEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9F9F9F9F9F9F9F9F9BBBBBBBBBBBBBBBBBB
+EDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEEEEEEEEEEEEEEEEEEEEEEEEEDEDEDEDEDEDEDEDED
+EDEDEDEDEDEDEDEDEDEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEB
+EBEBEBEBEBEBEBEBEBECECECECECECECECECEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEA
+EBEBEBEBEBEBEBEBEBEAEAEAEAEAEAEAEAEAE8E9E8E8E9E8E8E9E8E8E9E8E8E9E8E8E9E8E8E9E8
+E8E9E8E8E9E8E8E9E8E8E8E8E8E8E8E8E8E8E6E6E6E6E6E6E6E6E6E4E4E4E4E4E4E4E4E4E4E4E4
+E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E2E2E2E2E2E2E2E2E2E1E1E1E1E1E1E1E1E1DFDFDF
+DFDFDFDFDFDFD0D0D0D0D0D0D0D0D0D0D0D09A9A9A9A9A9A9A9A9A6666666666666666666F6F6F
+6F6F6F6F6F6F7171717171717171716A6A6A6A6A6A6A6A6A6A6A6A6F6F6F6F6F6F6F6F6F7E7E7E
+7E7E7E7E7E7E818181818181818181828282828282828282838383838383838383838383888888
+8888888888888E8E8E8E8E8E8E8E8E9292929292929292929797979797979797979797979D9D9D
+9D9D9D9D9D9DA4A4A4A4A4A4A4A4A4AFAFAFAFAFAFAFAFAFB9B9B9B9B9B9B9B9B9C5C5C5C5C5C5
+C5C5C5C5C5C5D0D0D0D0D0D0D0D0D0D7D7D7D7D7D7D7D7D7DBDBDBDBDBDBDBDBDBDBDBDBDBDBDB
+DBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDADADADADADADADADAD1D1D1D1D1D1D1D1D1BFBFBFBFBFBF
+BFBFBF9C9C9C9C9C9C9C9C9C9C9C9C8181818181818181817979797979797979797C7C7C7C7C7C
+7C7C7C8484848484848484848989898989898989898989898F8F8F8F8F8F8F8F8F9F9F9F9F9F9F
+9F9F9FB9B9B9B9B9B9B9B9B9CDCDCDCDCDCDCDCDCDD6D6D5D6D6D5D6D6D5D6D6D5E0E0E0E0E0E0
+E0E0E0E8E9E8E8E9E8E8E9E8D6D6D5D6D6D5D6D6D5BCBCBCBCBCBCBCBCBCBCBCBCB0B1B0B0B1B0
+B0B1B0B4B4B4B4B4B4B4B4B4BABABABABABABABABAB8B8B8B8B8B8B8B8B8AEAEAEAEAEAEAEAEAE
+AEAEAEA8A8A8A8A8A8A8A8A8AAAAAAAAAAAAAAAAAAB5B5B5B5B5B5B5B5B5C6C6C6C6C6C6C6C6C6
+D7D7D7D7D7D7D7D7D7D7D7D7E2E2E2E2E2E2E2E2E2E9E9E9E9E9E9E9E9E9EEEEEEEEEEEEEEEEEE
+F1F1F1F1F1F1F1F1F1F1F1F1EBEBEBEBEBEBEBEBEBE0E0E0E0E0E0E0E0E0D7D7D7D7D7D7D7D7D7
+CBCBCBCBCBCBCBCBCBC0C0C0C0C0C0C0C0C0C0C0C0B9B9B9B9B9B9B9B9B9B0B1B0B0B1B0B0B1B0
+AFAFAFAFAFAFAFAFAFBBBBBBBBBBBBBBBBBBC5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5
+D9D9D9D9D9D9D9D9D9F8F8F8F8F8F8F8F8F8FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFF9F9F9F9F9F9F9F9F9C5C5C5C5C5C5C5C5C5EDEDEDEDEDEDEDEDEDEDEDED
+EDEDEDEDEDEDEEEEEEEEEEEEEEEEEEEEEEEEEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEBEBEB
+EBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBECECEC
+ECECECECECECEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEBEBEBEBEBEBEBEBEBEAEAEA
+EAEAEAEAEAEAE8E9E8E8E9E8E8E9E8E8E9E8E8E9E8E8E9E8E8E9E8E8E9E8E8E9E8E8E9E8E8E8E8
+E8E8E8E8E8E8E6E6E6E6E6E6E6E6E6E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4
+E4E4E4E4E4E4E2E2E2E2E2E2E2E2E2E1E1E1E1E1E1E1E1E1DFDFDFDFDFDFDFDFDFD0D0D0D0D0D0
+D0D0D0D0D0D09A9A9A9A9A9A9A9A9A6666666666666666666F6F6F6F6F6F6F6F6F717171717171
+7171716A6A6A6A6A6A6A6A6A6A6A6A6F6F6F6F6F6F6F6F6F7E7E7E7E7E7E7E7E7E818181818181
+8181818282828282828282828383838383838383838383838888888888888888888E8E8E8E8E8E
+8E8E8E9292929292929292929797979797979797979797979D9D9D9D9D9D9D9D9DA4A4A4A4A4A4
+A4A4A4AFAFAFAFAFAFAFAFAFB9B9B9B9B9B9B9B9B9C5C5C5C5C5C5C5C5C5C5C5C5D0D0D0D0D0D0
+D0D0D0D7D7D7D7D7D7D7D7D7DBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDB
+DBDBDBDADADADADADADADADAD1D1D1D1D1D1D1D1D1BFBFBFBFBFBFBFBFBF9C9C9C9C9C9C9C9C9C
+9C9C9C8181818181818181817979797979797979797C7C7C7C7C7C7C7C7C848484848484848484
+8989898989898989898989898F8F8F8F8F8F8F8F8F9F9F9F9F9F9F9F9F9FB9B9B9B9B9B9B9B9B9
+CDCDCDCDCDCDCDCDCDD6D6D5D6D6D5D6D6D5D6D6D5E0E0E0E0E0E0E0E0E0E8E9E8E8E9E8E8E9E8
+D6D6D5D6D6D5D6D6D5BCBCBCBCBCBCBCBCBCBCBCBCB0B1B0B0B1B0B0B1B0B4B4B4B4B4B4B4B4B4
+BABABABABABABABABAB8B8B8B8B8B8B8B8B8AEAEAEAEAEAEAEAEAEAEAEAEA8A8A8A8A8A8A8A8A8
+AAAAAAAAAAAAAAAAAAB5B5B5B5B5B5B5B5B5C6C6C6C6C6C6C6C6C6D7D7D7D7D7D7D7D7D7D7D7D7
+E2E2E2E2E2E2E2E2E2E9E9E9E9E9E9E9E9E9EEEEEEEEEEEEEEEEEEF1F1F1F1F1F1F1F1F1F1F1F1
+EBEBEBEBEBEBEBEBEBE0E0E0E0E0E0E0E0E0D7D7D7D7D7D7D7D7D7CBCBCBCBCBCBCBCBCBC0C0C0
+C0C0C0C0C0C0C0C0C0B9B9B9B9B9B9B9B9B9B0B1B0B0B1B0B0B1B0AFAFAFAFAFAFAFAFAFBBBBBB
+BBBBBBBBBBBBC5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5D9D9D9D9D9D9D9D9D9F8F8F8
+F8F8F8F8F8F8FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9F9F9
+F9F9F9F9F9F9C5C5C5C5C5C5C5C5C5EDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDED
+EDEDEDEDEDEDECECECECECECECECECEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEB
+EBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEAEAEAEAEAEA
+EAEAEAEBEBEBEBEBEBEBEBEBEBEBEBEAEAEAEAEAEAEAEAEAE9E9E9E9E9E9E9E9E9E8E9E8E8E9E8
+E8E9E8E8E8E8E8E8E8E8E8E8E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E6E6E6E6E6E6
+E6E6E6E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E3E3E3E3E3E3E3E3E3E3E3E3E2E2E2E2E2E2
+E2E2E2E1E1E1E1E1E1E1E1E1E0E0E0E0E0E0E0E0E0D9D9D9D9D9D9D9D9D9D9D9D9B9B9B9B9B9B9
+B9B9B9868686868686868686767676767676767676707070707070707070696969696969696969
+696969707070707070707070828282828282828282838383838383838383838383838383838383
+8484848484848484848484848989898989898989898D8D8D8D8D8D8D8D8D909090909090909090
+9494949494949494949494949A9A9A9A9A9A9A9A9AA1A1A1A1A1A1A1A1A1AEAEAEAEAEAEAEAEAE
+BBBBBBBBBBBBBBBBBBC8C8C8C8C8C8C8C8C8C8C8C8D2D2D2D2D2D2D2D2D2D9D9D9D9D9D9D9D9D9
+DDDDDDDDDDDDDDDDDDDFDFDFDFDFDFDFDFDFDDDDDDDDDDDDDDDDDDDDDDDDD7D7D7D7D7D7D7D7D7
+C9C9C9C9C9C9C9C9C9B0B0B0B0B0B0B0B0B08C8C8C8C8C8C8C8C8C8C8C8C797979797979797979
+7878787878787878787D7D7D7D7D7D7D7D7D858585858585858585888888888888888888888888
+8686868686868686868D8D8D8D8D8D8D8D8D9B9B9B9B9B9B9B9B9BACACACACACACACACACBBBBBB
+BBBBBBBBBBBBBBBBBBC8C8C8C8C8C8C8C8C8CCCCCCCCCCCCCCCCCCBDBDBDBDBDBDBDBDBDA7A7A7
+A7A7A7A7A7A7A7A7A79E9E9E9E9E9E9E9E9EA6A6A6A6A6A6A6A6A6B0B0B0B0B0B0B0B0B0B0B1B0
+B0B1B0B0B1B0ABABABABABABABABABABABABAAAAAAAAAAAAAAAAAAA8A8A8A8A8A8A8A8A8A9A9A9
+A9A9A9A9A9A9B3B3B3B3B3B3B3B3B3C2C2C2C2C2C2C2C2C2C2C2C2CCCCCCCCCCCCCCCCCCD8D8D8
+D8D8D8D8D8D8E3E3E3E3E3E3E3E3E3E8E8E8E8E8E8E8E8E8E8E8E8E4E4E4E4E4E4E4E4E4DBDBDB
+DBDBDBDBDBDBD2D2D2D2D2D2D2D2D2C6C6C6C6C6C6C6C6C6BCBCBCBCBCBCBCBCBCBCBCBCB8B8B8
+B8B8B8B8B8B8B0B1B0B0B1B0B0B1B0AEAEAEAEAEAEAEAEAEBCBCBCBCBCBCBCBCBCC9C9C9C9C9C9
+C9C9C9C9C9C9CACACACACACACACACAE1E1E1E1E1E1E1E1E1FCFCFCFCFCFCFCFCFCFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9F9F9F9F9F9F9F9F9C6C6C6C6C6C6
+C6C6C6EDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDECECECECECEC
+ECECECEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEB
+EBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEAEAEAEAEAEAEAEAEAEBEBEBEBEBEBEBEBEB
+EBEBEBEAEAEAEAEAEAEAEAEAE9E9E9E9E9E9E9E9E9E8E9E8E8E9E8E8E9E8E8E8E8E8E8E8E8E8E8
+E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E6E6E6E6E6E6E6E6E6E4E4E4E4E4E4E4E4E4
+E4E4E4E4E4E4E4E4E4E3E3E3E3E3E3E3E3E3E3E3E3E2E2E2E2E2E2E2E2E2E1E1E1E1E1E1E1E1E1
+E0E0E0E0E0E0E0E0E0D9D9D9D9D9D9D9D9D9D9D9D9B9B9B9B9B9B9B9B9B9868686868686868686
+767676767676767676707070707070707070696969696969696969696969707070707070707070
+828282828282828282838383838383838383838383838383838383848484848484848484848484
+8989898989898989898D8D8D8D8D8D8D8D8D909090909090909090949494949494949494949494
+9A9A9A9A9A9A9A9A9AA1A1A1A1A1A1A1A1A1AEAEAEAEAEAEAEAEAEBBBBBBBBBBBBBBBBBBC8C8C8
+C8C8C8C8C8C8C8C8C8D2D2D2D2D2D2D2D2D2D9D9D9D9D9D9D9D9D9DDDDDDDDDDDDDDDDDDDFDFDF
+DFDFDFDFDFDFDDDDDDDDDDDDDDDDDDDDDDDDD7D7D7D7D7D7D7D7D7C9C9C9C9C9C9C9C9C9B0B0B0
+B0B0B0B0B0B08C8C8C8C8C8C8C8C8C8C8C8C7979797979797979797878787878787878787D7D7D
+7D7D7D7D7D7D8585858585858585858888888888888888888888888686868686868686868D8D8D
+8D8D8D8D8D8D9B9B9B9B9B9B9B9B9BACACACACACACACACACBBBBBBBBBBBBBBBBBBBBBBBBC8C8C8
+C8C8C8C8C8C8CCCCCCCCCCCCCCCCCCBDBDBDBDBDBDBDBDBDA7A7A7A7A7A7A7A7A7A7A7A79E9E9E
+9E9E9E9E9E9EA6A6A6A6A6A6A6A6A6B0B0B0B0B0B0B0B0B0B0B1B0B0B1B0B0B1B0ABABABABABAB
+ABABABABABABAAAAAAAAAAAAAAAAAAA8A8A8A8A8A8A8A8A8A9A9A9A9A9A9A9A9A9B3B3B3B3B3B3
+B3B3B3C2C2C2C2C2C2C2C2C2C2C2C2CCCCCCCCCCCCCCCCCCD8D8D8D8D8D8D8D8D8E3E3E3E3E3E3
+E3E3E3E8E8E8E8E8E8E8E8E8E8E8E8E4E4E4E4E4E4E4E4E4DBDBDBDBDBDBDBDBDBD2D2D2D2D2D2
+D2D2D2C6C6C6C6C6C6C6C6C6BCBCBCBCBCBCBCBCBCBCBCBCB8B8B8B8B8B8B8B8B8B0B1B0B0B1B0
+B0B1B0AEAEAEAEAEAEAEAEAEBCBCBCBCBCBCBCBCBCC9C9C9C9C9C9C9C9C9C9C9C9CACACACACACA
+CACACAE1E1E1E1E1E1E1E1E1FCFCFCFCFCFCFCFCFCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFF9F9F9F9F9F9F9F9F9C6C6C6C6C6C6C6C6C6EDEDEDEDEDEDEDEDED
+EDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDECECECECECECECECECEBEBEBEBEBEBEBEBEB
+EBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEB
+EBEBEBEBEBEBEBEBEBEAEAEAEAEAEAEAEAEAEBEBEBEBEBEBEBEBEBEBEBEBEAEAEAEAEAEAEAEAEA
+E9E9E9E9E9E9E9E9E9E8E9E8E8E9E8E8E9E8E8E8E8E8E8E8E8E8E8E7E7E7E7E7E7E7E7E7E7E7E7
+E7E7E7E7E7E7E7E7E7E6E6E6E6E6E6E6E6E6E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E3E3E3
+E3E3E3E3E3E3E3E3E3E2E2E2E2E2E2E2E2E2E1E1E1E1E1E1E1E1E1E0E0E0E0E0E0E0E0E0D9D9D9
+D9D9D9D9D9D9D9D9D9B9B9B9B9B9B9B9B9B9868686868686868686767676767676767676707070
+707070707070696969696969696969696969707070707070707070828282828282828282838383
+8383838383838383838383838383838484848484848484848484848989898989898989898D8D8D
+8D8D8D8D8D8D9090909090909090909494949494949494949494949A9A9A9A9A9A9A9A9AA1A1A1
+A1A1A1A1A1A1AEAEAEAEAEAEAEAEAEBBBBBBBBBBBBBBBBBBC8C8C8C8C8C8C8C8C8C8C8C8D2D2D2
+D2D2D2D2D2D2D9D9D9D9D9D9D9D9D9DDDDDDDDDDDDDDDDDDDFDFDFDFDFDFDFDFDFDDDDDDDDDDDD
+DDDDDDDDDDDDD7D7D7D7D7D7D7D7D7C9C9C9C9C9C9C9C9C9B0B0B0B0B0B0B0B0B08C8C8C8C8C8C
+8C8C8C8C8C8C7979797979797979797878787878787878787D7D7D7D7D7D7D7D7D858585858585
+8585858888888888888888888888888686868686868686868D8D8D8D8D8D8D8D8D9B9B9B9B9B9B
+9B9B9BACACACACACACACACACBBBBBBBBBBBBBBBBBBBBBBBBC8C8C8C8C8C8C8C8C8CCCCCCCCCCCC
+CCCCCCBDBDBDBDBDBDBDBDBDA7A7A7A7A7A7A7A7A7A7A7A79E9E9E9E9E9E9E9E9EA6A6A6A6A6A6
+A6A6A6B0B0B0B0B0B0B0B0B0B0B1B0B0B1B0B0B1B0ABABABABABABABABABABABABAAAAAAAAAAAA
+AAAAAAA8A8A8A8A8A8A8A8A8A9A9A9A9A9A9A9A9A9B3B3B3B3B3B3B3B3B3C2C2C2C2C2C2C2C2C2
+C2C2C2CCCCCCCCCCCCCCCCCCD8D8D8D8D8D8D8D8D8E3E3E3E3E3E3E3E3E3E8E8E8E8E8E8E8E8E8
+E8E8E8E4E4E4E4E4E4E4E4E4DBDBDBDBDBDBDBDBDBD2D2D2D2D2D2D2D2D2C6C6C6C6C6C6C6C6C6
+BCBCBCBCBCBCBCBCBCBCBCBCB8B8B8B8B8B8B8B8B8B0B1B0B0B1B0B0B1B0AEAEAEAEAEAEAEAEAE
+BCBCBCBCBCBCBCBCBCC9C9C9C9C9C9C9C9C9C9C9C9CACACACACACACACACAE1E1E1E1E1E1E1E1E1
+FCFCFCFCFCFCFCFCFCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+F9F9F9F9F9F9F9F9F9C6C6C6C6C6C6C6C6C6ECECECECECECECECECECECECECECECECECECEBEBEB
+EBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAE9E9E9
+E9E9E9E9E9E9EAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAE9E9E9
+E9E9E9E9E9E9E9E9E9E9E9E9E9E9E9E9E9E9E8E9E8E8E9E8E8E9E8E8E8E8E8E8E8E8E8E8E7E7E7
+E7E7E7E7E7E7E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E5E5E5
+E5E5E5E5E5E5E4E4E4E4E4E4E4E4E4E3E3E3E3E3E3E3E3E3E2E2E2E2E2E2E2E2E2E2E2E2E1E1E1
+E1E1E1E1E1E1E0E0E0E0E0E0E0E0E0DFE0DFDFE0DFDFE0DFDDDDDDDDDDDDDDDDDDDDDDDDCCCCCC
+CCCCCCCCCCCCA1A1A1A1A1A1A1A1A1818181818181818181747474747474747474696969696969
+6969696969696E6E6E6E6E6E6E6E6E818181818181818181858585858585858585848484848484
+8484848484848484848484848484848888888888888888888C8C8C8C8C8C8C8C8C8D8D8D8D8D8D
+8D8D8D9090909090909090909090909797979797979797979F9F9F9F9F9F9F9F9FABABABABABAB
+ABABABBBBBBBBBBBBBBBBBBBC8C8C8C8C8C8C8C8C8C8C8C8D5D5D5D5D5D5D5D5D5DBDBDBDBDBDB
+DBDBDBDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD9D9D9D9D9D9D9D9D9D9D9D9D0D0D0D0D0D0
+D0D0D0BDBDBDBDBDBDBDBDBD9E9E9E9E9E9E9E9E9E808080808080808080808080777777777777
+7777777878787878787878787E7E7E7E7E7E7E7E7E838383838383838383828282828282828282
+8282827B7B7B7B7B7B7B7B7B797979797979797979818181818181818181919191919191919191
+A1A1A1A1A1A1A1A1A1A1A1A1ADADADADADADADADADB0B1B0B0B1B0B0B1B0A7A7A7A7A7A7A7A7A7
+9494949494949494949494948989898989898989898C8C8C8C8C8C8C8C8C969696969696969696
+9C9C9C9C9C9C9C9C9CA5A5A5A5A5A5A5A5A5A5A5A5B0B1B0B0B1B0B0B1B0B0B0B0B0B0B0B0B0B0
+A8A8A8A8A8A8A8A8A8A5A5A5A5A5A5A5A5A5ADADADADADADADADADADADADBBBBBBBBBBBBBBBBBB
+CACACACACACACACACAD8D8D8D8D8D8D8D8D8DFDFDFDFDFDFDFDFDFDFDFDFDCDCDCDCDCDCDCDCDC
+D5D5D5D5D5D5D5D5D5CDCDCDCDCDCDCDCDCDC2C2C2C2C2C2C2C2C2B8B8B8B8B8B8B8B8B8B8B8B8
+B5B5B5B5B5B5B5B5B5B1B1B1B1B1B1B1B1B1AFAFAFAFAFAFAFAFAFC0C0C0C0C0C0C0C0C0CECECE
+CECECECECECECECECECECECECECECECECECEE9E9E9E9E9E9E9E9E9FDFDFDFDFDFDFDFDFDFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9F9F9F9F9F9F9F9F9C3C3C3
+C3C3C3C3C3C3ECECECECECECECECECECECECECECECECECECEBEBEBEBEBEBEBEBEBEBEBEBEBEBEB
+EBEBEBEBEBEBEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAE9E9E9E9E9E9E9E9E9EAEAEAEAEAEA
+EAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAE9E9E9E9E9E9E9E9E9E9E9E9E9E9E9
+E9E9E9E9E9E9E8E9E8E8E9E8E8E9E8E8E8E8E8E8E8E8E8E8E7E7E7E7E7E7E7E7E7E6E6E6E6E6E6
+E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E5E5E5E5E5E5E5E5E5E4E4E4E4E4E4
+E4E4E4E3E3E3E3E3E3E3E3E3E2E2E2E2E2E2E2E2E2E2E2E2E1E1E1E1E1E1E1E1E1E0E0E0E0E0E0
+E0E0E0DFE0DFDFE0DFDFE0DFDDDDDDDDDDDDDDDDDDDDDDDDCCCCCCCCCCCCCCCCCCA1A1A1A1A1A1
+A1A1A18181818181818181817474747474747474746969696969696969696969696E6E6E6E6E6E
+6E6E6E818181818181818181858585858585858585848484848484848484848484848484848484
+8484848888888888888888888C8C8C8C8C8C8C8C8C8D8D8D8D8D8D8D8D8D909090909090909090
+9090909797979797979797979F9F9F9F9F9F9F9F9FABABABABABABABABABBBBBBBBBBBBBBBBBBB
+C8C8C8C8C8C8C8C8C8C8C8C8D5D5D5D5D5D5D5D5D5DBDBDBDBDBDBDBDBDBDDDDDDDDDDDDDDDDDD
+DDDDDDDDDDDDDDDDDDD9D9D9D9D9D9D9D9D9D9D9D9D0D0D0D0D0D0D0D0D0BDBDBDBDBDBDBDBDBD
+9E9E9E9E9E9E9E9E9E808080808080808080808080777777777777777777787878787878787878
+7E7E7E7E7E7E7E7E7E8383838383838383838282828282828282828282827B7B7B7B7B7B7B7B7B
+797979797979797979818181818181818181919191919191919191A1A1A1A1A1A1A1A1A1A1A1A1
+ADADADADADADADADADB0B1B0B0B1B0B0B1B0A7A7A7A7A7A7A7A7A7949494949494949494949494
+8989898989898989898C8C8C8C8C8C8C8C8C9696969696969696969C9C9C9C9C9C9C9C9CA5A5A5
+A5A5A5A5A5A5A5A5A5B0B1B0B0B1B0B0B1B0B0B0B0B0B0B0B0B0B0A8A8A8A8A8A8A8A8A8A5A5A5
+A5A5A5A5A5A5ADADADADADADADADADADADADBBBBBBBBBBBBBBBBBBCACACACACACACACACAD8D8D8
+D8D8D8D8D8D8DFDFDFDFDFDFDFDFDFDFDFDFDCDCDCDCDCDCDCDCDCD5D5D5D5D5D5D5D5D5CDCDCD
+CDCDCDCDCDCDC2C2C2C2C2C2C2C2C2B8B8B8B8B8B8B8B8B8B8B8B8B5B5B5B5B5B5B5B5B5B1B1B1
+B1B1B1B1B1B1AFAFAFAFAFAFAFAFAFC0C0C0C0C0C0C0C0C0CECECECECECECECECECECECECECECE
+CECECECECECEE9E9E9E9E9E9E9E9E9FDFDFDFDFDFDFDFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9F9F9F9F9F9F9F9F9C3C3C3C3C3C3C3C3C3ECECECECECEC
+ECECECECECECECECECECECECEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEAEAEAEAEAEA
+EAEAEAEAEAEAEAEAEAEAEAEAE9E9E9E9E9E9E9E9E9EAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEA
+EAEAEAEAEAEAEAEAEAEAEAEAE9E9E9E9E9E9E9E9E9E9E9E9E9E9E9E9E9E9E9E9E9E8E9E8E8E9E8
+E8E9E8E8E8E8E8E8E8E8E8E8E7E7E7E7E7E7E7E7E7E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6
+E6E6E6E6E6E6E6E6E6E6E6E6E5E5E5E5E5E5E5E5E5E4E4E4E4E4E4E4E4E4E3E3E3E3E3E3E3E3E3
+E2E2E2E2E2E2E2E2E2E2E2E2E1E1E1E1E1E1E1E1E1E0E0E0E0E0E0E0E0E0DFE0DFDFE0DFDFE0DF
+DDDDDDDDDDDDDDDDDDDDDDDDCCCCCCCCCCCCCCCCCCA1A1A1A1A1A1A1A1A1818181818181818181
+7474747474747474746969696969696969696969696E6E6E6E6E6E6E6E6E818181818181818181
+858585858585858585848484848484848484848484848484848484848484888888888888888888
+8C8C8C8C8C8C8C8C8C8D8D8D8D8D8D8D8D8D909090909090909090909090979797979797979797
+9F9F9F9F9F9F9F9F9FABABABABABABABABABBBBBBBBBBBBBBBBBBBC8C8C8C8C8C8C8C8C8C8C8C8
+D5D5D5D5D5D5D5D5D5DBDBDBDBDBDBDBDBDBDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD9D9D9
+D9D9D9D9D9D9D9D9D9D0D0D0D0D0D0D0D0D0BDBDBDBDBDBDBDBDBD9E9E9E9E9E9E9E9E9E808080
+8080808080808080807777777777777777777878787878787878787E7E7E7E7E7E7E7E7E838383
+8383838383838282828282828282828282827B7B7B7B7B7B7B7B7B797979797979797979818181
+818181818181919191919191919191A1A1A1A1A1A1A1A1A1A1A1A1ADADADADADADADADADB0B1B0
+B0B1B0B0B1B0A7A7A7A7A7A7A7A7A79494949494949494949494948989898989898989898C8C8C
+8C8C8C8C8C8C9696969696969696969C9C9C9C9C9C9C9C9CA5A5A5A5A5A5A5A5A5A5A5A5B0B1B0
+B0B1B0B0B1B0B0B0B0B0B0B0B0B0B0A8A8A8A8A8A8A8A8A8A5A5A5A5A5A5A5A5A5ADADADADADAD
+ADADADADADADBBBBBBBBBBBBBBBBBBCACACACACACACACACAD8D8D8D8D8D8D8D8D8DFDFDFDFDFDF
+DFDFDFDFDFDFDCDCDCDCDCDCDCDCDCD5D5D5D5D5D5D5D5D5CDCDCDCDCDCDCDCDCDC2C2C2C2C2C2
+C2C2C2B8B8B8B8B8B8B8B8B8B8B8B8B5B5B5B5B5B5B5B5B5B1B1B1B1B1B1B1B1B1AFAFAFAFAFAF
+AFAFAFC0C0C0C0C0C0C0C0C0CECECECECECECECECECECECECECECECECECECECECEE9E9E9E9E9E9
+E9E9E9FDFDFDFDFDFDFDFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFF9F9F9F9F9F9F9F9F9C3C3C3C3C3C3C3C3C3EBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEB
+EAEAEAEAEAEAEAEAEAEAEAEAE9E9E9E9E9E9E9E9E9E8E9E8E8E9E8E8E9E8E9E9E9E9E9E9E9E9E9
+E8E9E8E8E9E8E8E9E8E8E9E8E8E9E8E8E9E8E8E9E8E8E9E8E8E9E8E8E9E8E8E8E8E8E8E8E8E8E8
+E8E8E8E8E8E8E8E8E8E8E8E8E8E8E8E8E8E8E8E8E8E8E8E8E8E8E8E8E8E8E8E8E8E8E8E8E8E8E8
+E5E5E5E5E5E5E5E5E5E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4
+E4E4E4E4E4E4E4E4E4E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E0E0E0E0E0E0E0E0E0E0E0E0
+DFE0DFDFE0DFDFE0DFDFE0DFDFE0DFDFE0DFDFDFDFDFDFDFDFDFDFDCDCDCDCDCDCDCDCDCDCDCDC
+D3D3D3D3D3D3D3D3D3B3B3B3B3B3B3B3B3B38D8D8D8D8D8D8D8D8D7C7C7C7C7C7C7C7C7C6F6F6F
+6F6F6F6F6F6F6F6F6F696969696969696969797979797979797979838383838383838383848484
+8484848484848585858585858585858585858686868686868686868989898989898989898A8A8A
+8A8A8A8A8A8A8D8D8D8D8D8D8D8D8D8D8D8D9494949494949494949E9E9E9E9E9E9E9E9EAAAAAA
+AAAAAAAAAAAABABABABABABABABABAC6C6C6C6C6C6C6C6C6C6C6C6D5D5D5D5D5D5D5D5D5DDDDDD
+DDDDDDDDDDDDDEDEDEDEDEDEDEDEDEDADADADADADADADADAD1D1D1D1D1D1D1D1D1D1D1D1C5C5C5
+C5C5C5C5C5C5ADADADADADADADADAD8C8C8C8C8C8C8C8C8C767676767676767676767676717171
+7171717171717474747474747474747979797979797979797B7B7B7B7B7B7B7B7B767676767676
+7676767676766D6D6D6D6D6D6D6D6D6A6A6A6A6A6A6A6A6A717171717171717171818181818181
+8181818D8D8D8D8D8D8D8D8D8D8D8D9191919191919191919494949494949494948F8F8F8F8F8F
+8F8F8F7A7A7A7A7A7A7A7A7A7A7A7A6161616161616161615D5D5D5D5D5D5D5D5D6F6F6F6F6F6F
+6F6F6F888888888888888888A7A7A7A7A7A7A7A7A7A7A7A7B7B7B7B7B7B7B7B7B7B7B7B7B7B7B7
+B7B7B7AAAAAAAAAAAAAAAAAAA2A2A2A2A2A2A2A2A2A4A4A4A4A4A4A4A4A4A4A4A4B0B0B0B0B0B0
+B0B0B0BFBFBFBFBFBFBFBFBFCDCDCDCDCDCDCDCDCDD5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5
+D5D5D5CFCFCFCFCFCFCFCFCFC7C7C7C7C7C7C7C7C7BEBEBEBEBEBEBEBEBEB4B4B4B4B4B4B4B4B4
+B4B4B4B1B1B1B1B1B1B1B1B1B0B0B0B0B0B0B0B0B0AEAEAEAEAEAEAEAEAEBCBCBCBCBCBCBCBCBC
+C7C7C7C7C7C7C7C7C7C7C7C7D6D6D5D6D6D5D6D6D5F5F5F5F5F5F5F5F5F5FEFEFEFEFEFEFEFEFE
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7F7F7F7F7F7F7F7F7
+B4B4B4B4B4B4B4B4B4EBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEAEAEAEAEAEAEAEAEAEAEAEA
+E9E9E9E9E9E9E9E9E9E8E9E8E8E9E8E8E9E8E9E9E9E9E9E9E9E9E9E8E9E8E8E9E8E8E9E8E8E9E8
+E8E9E8E8E9E8E8E9E8E8E9E8E8E9E8E8E9E8E8E8E8E8E8E8E8E8E8E8E8E8E8E8E8E8E8E8E8E8E8
+E8E8E8E8E8E8E8E8E8E8E8E8E8E8E8E8E8E8E8E8E8E8E8E8E8E8E8E5E5E5E5E5E5E5E5E5E4E4E4
+E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E2E2E2
+E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E0E0E0E0E0E0E0E0E0E0E0E0DFE0DFDFE0DFDFE0DFDFE0DF
+DFE0DFDFE0DFDFDFDFDFDFDFDFDFDFDCDCDCDCDCDCDCDCDCDCDCDCD3D3D3D3D3D3D3D3D3B3B3B3
+B3B3B3B3B3B38D8D8D8D8D8D8D8D8D7C7C7C7C7C7C7C7C7C6F6F6F6F6F6F6F6F6F6F6F6F696969
+696969696969797979797979797979838383838383838383848484848484848484858585858585
+8585858585858686868686868686868989898989898989898A8A8A8A8A8A8A8A8A8D8D8D8D8D8D
+8D8D8D8D8D8D9494949494949494949E9E9E9E9E9E9E9E9EAAAAAAAAAAAAAAAAAABABABABABABA
+BABABAC6C6C6C6C6C6C6C6C6C6C6C6D5D5D5D5D5D5D5D5D5DDDDDDDDDDDDDDDDDDDEDEDEDEDEDE
+DEDEDEDADADADADADADADADAD1D1D1D1D1D1D1D1D1D1D1D1C5C5C5C5C5C5C5C5C5ADADADADADAD
+ADADAD8C8C8C8C8C8C8C8C8C767676767676767676767676717171717171717171747474747474
+7474747979797979797979797B7B7B7B7B7B7B7B7B7676767676767676767676766D6D6D6D6D6D
+6D6D6D6A6A6A6A6A6A6A6A6A7171717171717171718181818181818181818D8D8D8D8D8D8D8D8D
+8D8D8D9191919191919191919494949494949494948F8F8F8F8F8F8F8F8F7A7A7A7A7A7A7A7A7A
+7A7A7A6161616161616161615D5D5D5D5D5D5D5D5D6F6F6F6F6F6F6F6F6F888888888888888888
+A7A7A7A7A7A7A7A7A7A7A7A7B7B7B7B7B7B7B7B7B7B7B7B7B7B7B7B7B7B7AAAAAAAAAAAAAAAAAA
+A2A2A2A2A2A2A2A2A2A4A4A4A4A4A4A4A4A4A4A4A4B0B0B0B0B0B0B0B0B0BFBFBFBFBFBFBFBFBF
+CDCDCDCDCDCDCDCDCDD5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5CFCFCFCFCFCFCFCFCF
+C7C7C7C7C7C7C7C7C7BEBEBEBEBEBEBEBEBEB4B4B4B4B4B4B4B4B4B4B4B4B1B1B1B1B1B1B1B1B1
+B0B0B0B0B0B0B0B0B0AEAEAEAEAEAEAEAEAEBCBCBCBCBCBCBCBCBCC7C7C7C7C7C7C7C7C7C7C7C7
+D6D6D5D6D6D5D6D6D5F5F5F5F5F5F5F5F5F5FEFEFEFEFEFEFEFEFEFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7F7F7F7F7F7F7F7F7B4B4B4B4B4B4B4B4B4E9E9E9
+E9E9E9E9E9E9EAEAEAEAEAEAEAEAEAE9E9E9E9E9E9E9E9E9E9E9E9E9E9E9E9E9E9E9E9E9E8E8E8
+E8E8E8E8E8E8E8E8E8E8E8E8E8E8E8E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E8E8E8
+E8E8E8E8E8E8E7E7E7E7E7E7E7E7E7E6E6E6E6E6E6E6E6E6E5E5E5E5E5E5E5E5E5E5E5E5E6E6E6
+E6E6E6E6E6E6E5E5E5E5E5E5E5E5E5E5E5E5E5E5E5E5E5E5E4E4E4E4E4E4E4E4E4E3E3E3E3E3E3
+E3E3E3E3E3E3E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1
+E1E1E1DFE0DFDFE0DFDFE0DFDFE0DFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDDDDDDDDDDDD
+DDDDDDDCDCDCDCDCDCDCDCDCDCDCDCD8D8D8D8D8D8D8D8D8C1C1C1C1C1C1C1C1C1999999999999
+9999998585858585858585857B7B7B7B7B7B7B7B7B7B7B7B707070707070707070757575757575
+7575757F7F7F7F7F7F7F7F7F838383838383838383858585858585858585858585868686868686
+8686868787878787878787878787878787878787878A8A8A8A8A8A8A8A8A8A8A8A909090909090
+9090909B9B9B9B9B9B9B9B9BA8A8A8A8A8A8A8A8A8B7B7B7B7B7B7B7B7B7C4C4C4C4C4C4C4C4C4
+C4C4C4D1D1D1D1D1D1D1D1D1DADADADADADADADADADDDDDDDDDDDDDDDDDDD8D8D8D8D8D8D8D8D8
+CCCCCCCCCCCCCCCCCCCCCCCCBBBBBBBBBBBBBBBBBB9D9D9D9D9D9D9D9D9D7C7C7C7C7C7C7C7C7C
+7070707070707070707070706F6F6F6F6F6F6F6F6F6F6F6F6F6F6F6F6F6F6F6F6F6F6F6F6F6F6F
+6D6D6D6D6D6D6D6D6D6363636363636363636363635252525252525252524D4D4D4D4D4D4D4D4D
+5A5A5A5A5A5A5A5A5A6F6F6F6F6F6F6F6F6F7C7C7C7C7C7C7C7C7C7C7C7C7F7F7F7F7F7F7F7F7F
+7E7E7E7E7E7E7E7E7E7B7B7B7B7B7B7B7B7B6A6A6A6A6A6A6A6A6A6A6A6A5F605F5F605F5F605F
+6262626262626262626B6B6B6B6B6B6B6B6B8D8D8D8D8D8D8D8D8DAFAFAFAFAFAFAFAFAFAFAFAF
+B8B8B8B8B8B8B8B8B8B9B9B9B9B9B9B9B9B9B2B2B2B2B2B2B2B2B2AAAAAAAAAAAAAAAAAAA7A7A7
+A7A7A7A7A7A7A7A7A7ADADADADADADADADADBBBBBBBBBBBBBBBBBBC7C7C7C7C7C7C7C7C7CDCDCD
+CDCDCDCDCDCDCDCDCDCFCFCFCFCFCFCFCFCFCACACACACACACACACAC3C3C3C3C3C3C3C3C3BBBBBB
+BBBBBBBBBBBBB2B2B2B2B2B2B2B2B2B2B2B2B0B0B0B0B0B0B0B0B0AEAEAEAEAEAEAEAEAEACACAC
+ACACACACACACB3B3B3B3B3B3B3B3B3C3C3C3C3C3C3C3C3C3C3C3C3E4E4E4E4E4E4E4E4E4FCFCFC
+FCFCFCFCFCFCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFF9F9F9F9F9F9F9F9F9C1C1C1C1C1C1C1C1C1E9E9E9E9E9E9E9E9E9EAEAEAEAEAEA
+EAEAEAE9E9E9E9E9E9E9E9E9E9E9E9E9E9E9E9E9E9E9E9E9E8E8E8E8E8E8E8E8E8E8E8E8E8E8E8
+E8E8E8E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E8E8E8E8E8E8E8E8E8E7E7E7E7E7E7
+E7E7E7E6E6E6E6E6E6E6E6E6E5E5E5E5E5E5E5E5E5E5E5E5E6E6E6E6E6E6E6E6E6E5E5E5E5E5E5
+E5E5E5E5E5E5E5E5E5E5E5E5E4E4E4E4E4E4E4E4E4E3E3E3E3E3E3E3E3E3E3E3E3E4E4E4E4E4E4
+E4E4E4E4E4E4E4E4E4E4E4E4E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1DFE0DFDFE0DFDFE0DF
+DFE0DFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDDDDDDDDDDDDDDDDDDDCDCDCDCDCDCDCDCDC
+DCDCDCD8D8D8D8D8D8D8D8D8C1C1C1C1C1C1C1C1C1999999999999999999858585858585858585
+7B7B7B7B7B7B7B7B7B7B7B7B7070707070707070707575757575757575757F7F7F7F7F7F7F7F7F
+838383838383838383858585858585858585858585868686868686868686878787878787878787
+8787878787878787878A8A8A8A8A8A8A8A8A8A8A8A9090909090909090909B9B9B9B9B9B9B9B9B
+A8A8A8A8A8A8A8A8A8B7B7B7B7B7B7B7B7B7C4C4C4C4C4C4C4C4C4C4C4C4D1D1D1D1D1D1D1D1D1
+DADADADADADADADADADDDDDDDDDDDDDDDDDDD8D8D8D8D8D8D8D8D8CCCCCCCCCCCCCCCCCCCCCCCC
+BBBBBBBBBBBBBBBBBB9D9D9D9D9D9D9D9D9D7C7C7C7C7C7C7C7C7C707070707070707070707070
+6F6F6F6F6F6F6F6F6F6F6F6F6F6F6F6F6F6F6F6F6F6F6F6F6F6F6F6D6D6D6D6D6D6D6D6D636363
+6363636363636363635252525252525252524D4D4D4D4D4D4D4D4D5A5A5A5A5A5A5A5A5A6F6F6F
+6F6F6F6F6F6F7C7C7C7C7C7C7C7C7C7C7C7C7F7F7F7F7F7F7F7F7F7E7E7E7E7E7E7E7E7E7B7B7B
+7B7B7B7B7B7B6A6A6A6A6A6A6A6A6A6A6A6A5F605F5F605F5F605F6262626262626262626B6B6B
+6B6B6B6B6B6B8D8D8D8D8D8D8D8D8DAFAFAFAFAFAFAFAFAFAFAFAFB8B8B8B8B8B8B8B8B8B9B9B9
+B9B9B9B9B9B9B2B2B2B2B2B2B2B2B2AAAAAAAAAAAAAAAAAAA7A7A7A7A7A7A7A7A7A7A7A7ADADAD
+ADADADADADADBBBBBBBBBBBBBBBBBBC7C7C7C7C7C7C7C7C7CDCDCDCDCDCDCDCDCDCDCDCDCFCFCF
+CFCFCFCFCFCFCACACACACACACACACAC3C3C3C3C3C3C3C3C3BBBBBBBBBBBBBBBBBBB2B2B2B2B2B2
+B2B2B2B2B2B2B0B0B0B0B0B0B0B0B0AEAEAEAEAEAEAEAEAEACACACACACACACACACB3B3B3B3B3B3
+B3B3B3C3C3C3C3C3C3C3C3C3C3C3C3E4E4E4E4E4E4E4E4E4FCFCFCFCFCFCFCFCFCFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9F9F9F9F9F9
+F9F9F9C1C1C1C1C1C1C1C1C1E9E9E9E9E9E9E9E9E9EAEAEAEAEAEAEAEAEAE9E9E9E9E9E9E9E9E9
+E9E9E9E9E9E9E9E9E9E9E9E9E8E8E8E8E8E8E8E8E8E8E8E8E8E8E8E8E8E8E7E7E7E7E7E7E7E7E7
+E7E7E7E7E7E7E7E7E7E7E7E7E8E8E8E8E8E8E8E8E8E7E7E7E7E7E7E7E7E7E6E6E6E6E6E6E6E6E6
+E5E5E5E5E5E5E5E5E5E5E5E5E6E6E6E6E6E6E6E6E6E5E5E5E5E5E5E5E5E5E5E5E5E5E5E5E5E5E5
+E4E4E4E4E4E4E4E4E4E3E3E3E3E3E3E3E3E3E3E3E3E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4
+E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1DFE0DFDFE0DFDFE0DFDFE0DFDFDFDFDFDFDFDFDFDF
+DFDFDFDFDFDFDFDFDFDDDDDDDDDDDDDDDDDDDCDCDCDCDCDCDCDCDCDCDCDCD8D8D8D8D8D8D8D8D8
+C1C1C1C1C1C1C1C1C19999999999999999998585858585858585857B7B7B7B7B7B7B7B7B7B7B7B
+7070707070707070707575757575757575757F7F7F7F7F7F7F7F7F838383838383838383858585
+8585858585858585858686868686868686868787878787878787878787878787878787878A8A8A
+8A8A8A8A8A8A8A8A8A9090909090909090909B9B9B9B9B9B9B9B9BA8A8A8A8A8A8A8A8A8B7B7B7
+B7B7B7B7B7B7C4C4C4C4C4C4C4C4C4C4C4C4D1D1D1D1D1D1D1D1D1DADADADADADADADADADDDDDD
+DDDDDDDDDDDDD8D8D8D8D8D8D8D8D8CCCCCCCCCCCCCCCCCCCCCCCCBBBBBBBBBBBBBBBBBB9D9D9D
+9D9D9D9D9D9D7C7C7C7C7C7C7C7C7C7070707070707070707070706F6F6F6F6F6F6F6F6F6F6F6F
+6F6F6F6F6F6F6F6F6F6F6F6F6F6F6F6D6D6D6D6D6D6D6D6D636363636363636363636363525252
+5252525252524D4D4D4D4D4D4D4D4D5A5A5A5A5A5A5A5A5A6F6F6F6F6F6F6F6F6F7C7C7C7C7C7C
+7C7C7C7C7C7C7F7F7F7F7F7F7F7F7F7E7E7E7E7E7E7E7E7E7B7B7B7B7B7B7B7B7B6A6A6A6A6A6A
+6A6A6A6A6A6A5F605F5F605F5F605F6262626262626262626B6B6B6B6B6B6B6B6B8D8D8D8D8D8D
+8D8D8DAFAFAFAFAFAFAFAFAFAFAFAFB8B8B8B8B8B8B8B8B8B9B9B9B9B9B9B9B9B9B2B2B2B2B2B2
+B2B2B2AAAAAAAAAAAAAAAAAAA7A7A7A7A7A7A7A7A7A7A7A7ADADADADADADADADADBBBBBBBBBBBB
+BBBBBBC7C7C7C7C7C7C7C7C7CDCDCDCDCDCDCDCDCDCDCDCDCFCFCFCFCFCFCFCFCFCACACACACACA
+CACACAC3C3C3C3C3C3C3C3C3BBBBBBBBBBBBBBBBBBB2B2B2B2B2B2B2B2B2B2B2B2B0B0B0B0B0B0
+B0B0B0AEAEAEAEAEAEAEAEAEACACACACACACACACACB3B3B3B3B3B3B3B3B3C3C3C3C3C3C3C3C3C3
+C3C3C3E4E4E4E4E4E4E4E4E4FCFCFCFCFCFCFCFCFCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9F9F9F9F9F9F9F9F9C1C1C1C1C1C1C1C1C1
+E9E9E9E9E9E9E9E9E9E8E9E8E8E9E8E8E9E8E8E9E8E8E9E8E8E9E8E8E9E8E8E9E8E8E9E8E8E9E8
+E8E8E8E8E8E8E8E8E8E7E7E7E7E7E7E7E7E7E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6
+E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E5E5E5E5E5E5E5E5E5E4E4E4E4E4E4E4E4E4E4E4E4
+E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E3E3E3E3E3E3E3E3E3E2E2E2E2E2E2E2E2E2E1E1E1
+E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1DFE0DF
+DFE0DFDFE0DFDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDDDDDDDDDDDDDDDDDDDCDCDC
+DCDCDCDCDCDCDBDBDBDBDBDBDBDBDBDBDBDBD9D9D9D9D9D9D9D9D9C7C7C7C7C7C7C7C7C7A1A1A1
+A1A1A1A1A1A18989898989898989898484848484848484848484847E7E7E7E7E7E7E7E7E787878
+7878787878787B7B7B7B7B7B7B7B7B828282828282828282848484848484848484848484858585
+8585858585858686868686868686868585858585858585858686868686868686868686868D8D8D
+8D8D8D8D8D8D979797979797979797A4A4A4A4A4A4A4A4A4B1B1B1B1B1B1B1B1B1BEBEBEBEBEBE
+BEBEBEBEBEBEC9C9C9C9C9C9C9C9C9D1D1D1D1D1D1D1D1D1D5D5D5D5D5D5D5D5D5D0D0D0D0D0D0
+D0D0D0C4C4C4C4C4C4C4C4C4C4C4C4AFAFAFAFAFAFAFAFAF8B8B8B8B8B8B8B8B8B717171717171
+7171716D6D6D6D6D6D6D6D6D6D6D6D727272727272727272707070707070707070676767676767
+6767675E5E5E5E5E5E5E5E5E4D4D4D4D4D4D4D4D4D4D4D4D3B3B3B3B3B3B3B3B3B373737373737
+3737374747474747474747475D5D5D5D5D5D5D5D5D6C6C6C6C6C6C6C6C6C6C6C6C6F6F6F6F6F6F
+6F6F6F7272727272727272727C7C7C7C7C7C7C7C7C848484848484848484848484909090909090
+9090908F8F8F8F8F8F8F8F8F8E8E8E8E8E8E8E8E8EA2A2A2A2A2A2A2A2A2B2B2B2B2B2B2B2B2B2
+B2B2B2B6B6B6B6B6B6B6B6B6B8B8B8B8B8B8B8B8B8B7B7B7B7B7B7B7B7B7B1B1B1B1B1B1B1B1B1
+AEAEAEAEAEAEAEAEAEAEAEAEB0B1B0B0B1B0B0B1B0BDBDBDBDBDBDBDBDBDC7C7C7C7C7C7C7C7C7
+CCCCCCCCCCCCCCCCCCCCCCCCCBCBCBCBCBCBCBCBCBC6C6C6C6C6C6C6C6C6C0C0C0C0C0C0C0C0C0
+B8B8B8B8B8B8B8B8B8B0B0B0B0B0B0B0B0B0B0B0B0B0B1B0B0B1B0B0B1B0AFAFAFAFAFAFAFAFAF
+AAAAAAAAAAAAAAAAAAB1B1B1B1B1B1B1B1B1D0D0D0D0D0D0D0D0D0D0D0D0F5F5F5F5F5F5F5F5F5
+FEFEFEFEFEFEFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFAFAFAFAFAFAFAFAFAD0D0D0D0D0D0D0D0D0E9E9E9E9E9E9E9E9E9E8E9E8
+E8E9E8E8E9E8E8E9E8E8E9E8E8E9E8E8E9E8E8E9E8E8E9E8E8E9E8E8E8E8E8E8E8E8E8E8E7E7E7
+E7E7E7E7E7E7E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6
+E6E6E6E6E6E6E5E5E5E5E5E5E5E5E5E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4
+E4E4E4E4E4E4E3E3E3E3E3E3E3E3E3E2E2E2E2E2E2E2E2E2E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1
+E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1DFE0DFDFE0DFDFE0DFDEDEDEDEDEDE
+DEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDDDDDDDDDDDDDDDDDDDCDCDCDCDCDCDCDCDCDBDBDBDBDBDB
+DBDBDBDBDBDBD9D9D9D9D9D9D9D9D9C7C7C7C7C7C7C7C7C7A1A1A1A1A1A1A1A1A1898989898989
+8989898484848484848484848484847E7E7E7E7E7E7E7E7E7878787878787878787B7B7B7B7B7B
+7B7B7B828282828282828282848484848484848484848484858585858585858585868686868686
+8686868585858585858585858686868686868686868686868D8D8D8D8D8D8D8D8D979797979797
+979797A4A4A4A4A4A4A4A4A4B1B1B1B1B1B1B1B1B1BEBEBEBEBEBEBEBEBEBEBEBEC9C9C9C9C9C9
+C9C9C9D1D1D1D1D1D1D1D1D1D5D5D5D5D5D5D5D5D5D0D0D0D0D0D0D0D0D0C4C4C4C4C4C4C4C4C4
+C4C4C4AFAFAFAFAFAFAFAFAF8B8B8B8B8B8B8B8B8B7171717171717171716D6D6D6D6D6D6D6D6D
+6D6D6D7272727272727272727070707070707070706767676767676767675E5E5E5E5E5E5E5E5E
+4D4D4D4D4D4D4D4D4D4D4D4D3B3B3B3B3B3B3B3B3B373737373737373737474747474747474747
+5D5D5D5D5D5D5D5D5D6C6C6C6C6C6C6C6C6C6C6C6C6F6F6F6F6F6F6F6F6F727272727272727272
+7C7C7C7C7C7C7C7C7C8484848484848484848484849090909090909090908F8F8F8F8F8F8F8F8F
+8E8E8E8E8E8E8E8E8EA2A2A2A2A2A2A2A2A2B2B2B2B2B2B2B2B2B2B2B2B2B6B6B6B6B6B6B6B6B6
+B8B8B8B8B8B8B8B8B8B7B7B7B7B7B7B7B7B7B1B1B1B1B1B1B1B1B1AEAEAEAEAEAEAEAEAEAEAEAE
+B0B1B0B0B1B0B0B1B0BDBDBDBDBDBDBDBDBDC7C7C7C7C7C7C7C7C7CCCCCCCCCCCCCCCCCCCCCCCC
+CBCBCBCBCBCBCBCBCBC6C6C6C6C6C6C6C6C6C0C0C0C0C0C0C0C0C0B8B8B8B8B8B8B8B8B8B0B0B0
+B0B0B0B0B0B0B0B0B0B0B1B0B0B1B0B0B1B0AFAFAFAFAFAFAFAFAFAAAAAAAAAAAAAAAAAAB1B1B1
+B1B1B1B1B1B1D0D0D0D0D0D0D0D0D0D0D0D0F5F5F5F5F5F5F5F5F5FEFEFEFEFEFEFEFEFEFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAFAFA
+FAFAFAFAFAFAD0D0D0D0D0D0D0D0D0E8E9E8E8E9E8E8E9E8E7E7E7E7E7E7E7E7E7E8E8E8E8E8E8
+E8E8E8E8E8E8E8E8E8E8E8E8E8E8E8E6E6E6E6E6E6E6E6E6E5E5E5E5E5E5E5E5E5E5E5E5E5E5E5
+E5E5E5E5E5E5E5E5E5E5E5E5E5E5E5E5E5E5E5E5E5E5E5E5E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4
+E4E4E4E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E1E1E1E1E1E1E1E1E1E0E0E0E0E0E0
+E0E0E0E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E0E0E0E0E0E0E0E0E0DFE0DFDFE0DF
+DFE0DFDFE0DFDFE0DFDFE0DFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDDDDDDDDDDDD
+DDDDDDDCDCDCDCDCDCDCDCDCDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBD8D8D8D8D8D8
+D8D8D8CECECECECECECECECEAEAEAEAEAEAEAEAEAE909090909090909090898989898989898989
+8989898888888888888888887D7D7D7D7D7D7D7D7D7A7A7A7A7A7A7A7A7A818181818181818181
+848484848484848484848484838383838383838383838383838383838383848484848484848484
+848484848484848484848484888888888888888888939393939393939393A1A1A1A1A1A1A1A1A1
+ACACACACACACACACACB5B5B5B5B5B5B5B5B5B5B5B5BEBEBEBEBEBEBEBEBEC6C6C6C6C6C6C6C6C6
+CACACACACACACACACAC5C5C5C5C5C5C5C5C5B9B9B9B9B9B9B9B9B9B9B9B9A0A0A0A0A0A0A0A0A0
+7D7D7D7D7D7D7D7D7D6B6B6B6B6B6B6B6B6B6C6C6C6C6C6C6C6C6C6C6C6C767676767676767676
+7777777777777777776A6A6A6A6A6A6A6A6A585858585858585858494949494949494949494949
+4C4C4C4C4C4C4C4C4C5151515151515151515555555555555555555C5C5C5C5C5C5C5C5C636363
+636363636363636363616161616161616161676767676767676767808080808080808080949494
+9494949494949494949E9E9E9E9E9E9E9E9E9E9E9E9E9E9E9E9E9E9F9F9F9F9F9F9F9F9FA8A8A8
+A8A8A8A8A8A8AAAAAAAAAAAAAAAAAAAAAAAAB0B0B0B0B0B0B0B0B0B2B2B2B2B2B2B2B2B2B6B6B6
+B6B6B6B6B6B6B8B8B8B8B8B8B8B8B8B4B4B4B4B4B4B4B4B4B4B4B4B6B6B6B6B6B6B6B6B6BFBFBF
+BFBFBFBFBFBFC9C9C9C9C9C9C9C9C9CCCCCCCCCCCCCCCCCCCCCCCCC9C9C9C9C9C9C9C9C9C2C2C2
+C2C2C2C2C2C2BDBDBDBDBDBDBDBDBDB5B5B5B5B5B5B5B5B5AFAFAFAFAFAFAFAFAFAFAFAFB0B1B0
+B0B1B0B0B1B0AFAFAFAFAFAFAFAFAFAAAAAAAAAAAAAAAAAAB9B9B9B9B9B9B9B9B9E8E8E8E8E8E8
+E8E8E8E8E8E8FDFDFDFDFDFDFDFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9F9F9F9F9F9F9F9F9CACACACACACA
+CACACAE8E9E8E8E9E8E8E9E8E7E7E7E7E7E7E7E7E7E8E8E8E8E8E8E8E8E8E8E8E8E8E8E8E8E8E8
+E8E8E8E6E6E6E6E6E6E6E6E6E5E5E5E5E5E5E5E5E5E5E5E5E5E5E5E5E5E5E5E5E5E5E5E5E5E5E5
+E5E5E5E5E5E5E5E5E5E5E5E5E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E2E2E2E2E2E2E2E2E2
+E2E2E2E2E2E2E2E2E2E2E2E2E1E1E1E1E1E1E1E1E1E0E0E0E0E0E0E0E0E0E1E1E1E1E1E1E1E1E1
+E1E1E1E1E1E1E1E1E1E1E1E1E0E0E0E0E0E0E0E0E0DFE0DFDFE0DFDFE0DFDFE0DFDFE0DFDFE0DF
+DFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDDDDDDDDDDDDDDDDDDDCDCDCDCDCDCDCDCDC
+DBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBD8D8D8D8D8D8D8D8D8CECECECECECECECECE
+AEAEAEAEAEAEAEAEAE909090909090909090898989898989898989898989888888888888888888
+7D7D7D7D7D7D7D7D7D7A7A7A7A7A7A7A7A7A818181818181818181848484848484848484848484
+838383838383838383838383838383838383848484848484848484848484848484848484848484
+888888888888888888939393939393939393A1A1A1A1A1A1A1A1A1ACACACACACACACACACB5B5B5
+B5B5B5B5B5B5B5B5B5BEBEBEBEBEBEBEBEBEC6C6C6C6C6C6C6C6C6CACACACACACACACACAC5C5C5
+C5C5C5C5C5C5B9B9B9B9B9B9B9B9B9B9B9B9A0A0A0A0A0A0A0A0A07D7D7D7D7D7D7D7D7D6B6B6B
+6B6B6B6B6B6B6C6C6C6C6C6C6C6C6C6C6C6C7676767676767676767777777777777777776A6A6A
+6A6A6A6A6A6A5858585858585858584949494949494949494949494C4C4C4C4C4C4C4C4C515151
+5151515151515555555555555555555C5C5C5C5C5C5C5C5C636363636363636363636363616161
+6161616161616767676767676767678080808080808080809494949494949494949494949E9E9E
+9E9E9E9E9E9E9E9E9E9E9E9E9E9E9E9F9F9F9F9F9F9F9F9FA8A8A8A8A8A8A8A8A8AAAAAAAAAAAA
+AAAAAAAAAAAAB0B0B0B0B0B0B0B0B0B2B2B2B2B2B2B2B2B2B6B6B6B6B6B6B6B6B6B8B8B8B8B8B8
+B8B8B8B4B4B4B4B4B4B4B4B4B4B4B4B6B6B6B6B6B6B6B6B6BFBFBFBFBFBFBFBFBFC9C9C9C9C9C9
+C9C9C9CCCCCCCCCCCCCCCCCCCCCCCCC9C9C9C9C9C9C9C9C9C2C2C2C2C2C2C2C2C2BDBDBDBDBDBD
+BDBDBDB5B5B5B5B5B5B5B5B5AFAFAFAFAFAFAFAFAFAFAFAFB0B1B0B0B1B0B0B1B0AFAFAFAFAFAF
+AFAFAFAAAAAAAAAAAAAAAAAAB9B9B9B9B9B9B9B9B9E8E8E8E8E8E8E8E8E8E8E8E8FDFDFDFDFDFD
+FDFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFF9F9F9F9F9F9F9F9F9CACACACACACACACACAE8E9E8E8E9E8E8E9E8
+E7E7E7E7E7E7E7E7E7E8E8E8E8E8E8E8E8E8E8E8E8E8E8E8E8E8E8E8E8E8E6E6E6E6E6E6E6E6E6
+E5E5E5E5E5E5E5E5E5E5E5E5E5E5E5E5E5E5E5E5E5E5E5E5E5E5E5E5E5E5E5E5E5E5E5E5E5E5E5
+E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2
+E1E1E1E1E1E1E1E1E1E0E0E0E0E0E0E0E0E0E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1
+E0E0E0E0E0E0E0E0E0DFE0DFDFE0DFDFE0DFDFE0DFDFE0DFDFE0DFDFDFDFDFDFDFDFDFDFDFDFDF
+DFDFDFDFDFDFDFDFDFDDDDDDDDDDDDDDDDDDDCDCDCDCDCDCDCDCDCDBDBDBDBDBDBDBDBDBDBDBDB
+DBDBDBDBDBDBDBDBDBD8D8D8D8D8D8D8D8D8CECECECECECECECECEAEAEAEAEAEAEAEAEAE909090
+9090909090908989898989898989898989898888888888888888887D7D7D7D7D7D7D7D7D7A7A7A
+7A7A7A7A7A7A818181818181818181848484848484848484848484838383838383838383838383
+838383838383848484848484848484848484848484848484848484888888888888888888939393
+939393939393A1A1A1A1A1A1A1A1A1ACACACACACACACACACB5B5B5B5B5B5B5B5B5B5B5B5BEBEBE
+BEBEBEBEBEBEC6C6C6C6C6C6C6C6C6CACACACACACACACACAC5C5C5C5C5C5C5C5C5B9B9B9B9B9B9
+B9B9B9B9B9B9A0A0A0A0A0A0A0A0A07D7D7D7D7D7D7D7D7D6B6B6B6B6B6B6B6B6B6C6C6C6C6C6C
+6C6C6C6C6C6C7676767676767676767777777777777777776A6A6A6A6A6A6A6A6A585858585858
+5858584949494949494949494949494C4C4C4C4C4C4C4C4C515151515151515151555555555555
+5555555C5C5C5C5C5C5C5C5C636363636363636363636363616161616161616161676767676767
+6767678080808080808080809494949494949494949494949E9E9E9E9E9E9E9E9E9E9E9E9E9E9E
+9E9E9E9F9F9F9F9F9F9F9F9FA8A8A8A8A8A8A8A8A8AAAAAAAAAAAAAAAAAAAAAAAAB0B0B0B0B0B0
+B0B0B0B2B2B2B2B2B2B2B2B2B6B6B6B6B6B6B6B6B6B8B8B8B8B8B8B8B8B8B4B4B4B4B4B4B4B4B4
+B4B4B4B6B6B6B6B6B6B6B6B6BFBFBFBFBFBFBFBFBFC9C9C9C9C9C9C9C9C9CCCCCCCCCCCCCCCCCC
+CCCCCCC9C9C9C9C9C9C9C9C9C2C2C2C2C2C2C2C2C2BDBDBDBDBDBDBDBDBDB5B5B5B5B5B5B5B5B5
+AFAFAFAFAFAFAFAFAFAFAFAFB0B1B0B0B1B0B0B1B0AFAFAFAFAFAFAFAFAFAAAAAAAAAAAAAAAAAA
+B9B9B9B9B9B9B9B9B9E8E8E8E8E8E8E8E8E8E8E8E8FDFDFDFDFDFDFDFDFDFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+F9F9F9F9F9F9F9F9F9CACACACACACACACACAE8E8E8E8E8E8E8E8E8E7E7E7E7E7E7E7E7E7E8E8E8
+E8E8E8E8E8E8E8E8E8E7E7E7E7E7E7E7E7E7E5E5E5E5E5E5E5E5E5E4E4E4E4E4E4E4E4E4E5E5E5
+E5E5E5E5E5E5E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E2E2E2
+E2E2E2E2E2E2E0E0E0E0E0E0E0E0E0E0E0E0E1E1E1E1E1E1E1E1E1E0E0E0E0E0E0E0E0E0E1E1E1
+E1E1E1E1E1E1E0E0E0E0E0E0E0E0E0DFE0DFDFE0DFDFE0DFDFE0DFDFE0DFDFE0DFDFE0DFDFE0DF
+DFE0DFDFE0DFDFE0DFDFE0DFDFE0DFDEDEDEDEDEDEDEDEDEDDDDDDDDDDDDDDDDDDDDDDDDDCDCDC
+DCDCDCDCDCDCDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDADADADADADADADADADADADAD8D8D8
+D8D8D8D8D8D8D2D2D2D2D2D2D2D2D2BCBCBCBCBCBCBCBCBC9B9B9B9B9B9B9B9B9B8F8F8F8F8F8F
+8F8F8F8F8F8F909090909090909090898989898989898989828282828282828282828282828282
+828282848484848484848484848484828282828282828282828282828282828282838383838383
+8383838282828282828282828282828585858585858585859090909090909090909C9C9C9C9C9C
+9C9C9CA6A6A6A6A6A6A6A6A6ADADADADADADADADADADADADB6B6B6B6B6B6B6B6B6BFBFBFBFBFBF
+BFBFBFC1C1C1C1C1C1C1C1C1BBBBBBBBBBBBBBBBBBAFAFAFAFAFAFAFAFAFAFAFAF919191919191
+9191917272727272727272726969696969696969696F6F6F6F6F6F6F6F6F6F6F6F7B7B7B7B7B7B
+7B7B7B7D7D7D7D7D7D7D7D7D757575757575757575646464646464646464565656565656565656
+5656565D5D5D5D5D5D5D5D5D6666666666666666666363636363636363635D5D5D5D5D5D5D5D5D
+5B5B5B5B5B5B5B5B5B5B5B5B5656565656565656565D5D5D5D5D5D5D5D5D787878787878787878
+8B8B8B8B8B8B8B8B8B8B8B8B9292929292929292929898989898989898989E9E9E9E9E9E9E9E9E
+A2A2A2A2A2A2A2A2A2A3A3A3A3A3A3A3A3A3A3A3A3A9A9A9A9A9A9A9A9A9ADADADADADADADADAD
+B4B4B4B4B4B4B4B4B4B6B6B6B6B6B6B6B6B6B4B4B4B4B4B4B4B4B4B4B4B4B8B8B8B8B8B8B8B8B8
+C3C3C3C3C3C3C3C3C3CBCBCBCBCBCBCBCBCBCCCCCCCCCCCCCCCCCCCCCCCCC7C7C7C7C7C7C7C7C7
+BFBFBFBFBFBFBFBFBFB9B9B9B9B9B9B9B9B9B3B3B3B3B3B3B3B3B3B0B0B0B0B0B0B0B0B0B0B0B0
+B0B1B0B0B1B0B0B1B0AFAFAFAFAFAFAFAFAFABABABABABABABABABBFBFBFBFBFBFBFBFBFF1F1F1
+F1F1F1F1F1F1F1F1F1FEFEFEFEFEFEFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9F9F9F9F9F9F9F9F9BDBDBD
+BDBDBDBDBDBDE8E8E8E8E8E8E8E8E8E7E7E7E7E7E7E7E7E7E8E8E8E8E8E8E8E8E8E8E8E8E7E7E7
+E7E7E7E7E7E7E5E5E5E5E5E5E5E5E5E4E4E4E4E4E4E4E4E4E5E5E5E5E5E5E5E5E5E4E4E4E4E4E4
+E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E2E2E2E2E2E2E2E2E2E0E0E0E0E0E0
+E0E0E0E0E0E0E1E1E1E1E1E1E1E1E1E0E0E0E0E0E0E0E0E0E1E1E1E1E1E1E1E1E1E0E0E0E0E0E0
+E0E0E0DFE0DFDFE0DFDFE0DFDFE0DFDFE0DFDFE0DFDFE0DFDFE0DFDFE0DFDFE0DFDFE0DFDFE0DF
+DFE0DFDEDEDEDEDEDEDEDEDEDDDDDDDDDDDDDDDDDDDDDDDDDCDCDCDCDCDCDCDCDCDBDBDBDBDBDB
+DBDBDBDBDBDBDBDBDBDBDBDBDADADADADADADADADADADADAD8D8D8D8D8D8D8D8D8D2D2D2D2D2D2
+D2D2D2BCBCBCBCBCBCBCBCBC9B9B9B9B9B9B9B9B9B8F8F8F8F8F8F8F8F8F8F8F8F909090909090
+909090898989898989898989828282828282828282828282828282828282848484848484848484
+848484828282828282828282828282828282828282838383838383838383828282828282828282
+8282828585858585858585859090909090909090909C9C9C9C9C9C9C9C9CA6A6A6A6A6A6A6A6A6
+ADADADADADADADADADADADADB6B6B6B6B6B6B6B6B6BFBFBFBFBFBFBFBFBFC1C1C1C1C1C1C1C1C1
+BBBBBBBBBBBBBBBBBBAFAFAFAFAFAFAFAFAFAFAFAF919191919191919191727272727272727272
+6969696969696969696F6F6F6F6F6F6F6F6F6F6F6F7B7B7B7B7B7B7B7B7B7D7D7D7D7D7D7D7D7D
+7575757575757575756464646464646464645656565656565656565656565D5D5D5D5D5D5D5D5D
+6666666666666666666363636363636363635D5D5D5D5D5D5D5D5D5B5B5B5B5B5B5B5B5B5B5B5B
+5656565656565656565D5D5D5D5D5D5D5D5D7878787878787878788B8B8B8B8B8B8B8B8B8B8B8B
+9292929292929292929898989898989898989E9E9E9E9E9E9E9E9EA2A2A2A2A2A2A2A2A2A3A3A3
+A3A3A3A3A3A3A3A3A3A9A9A9A9A9A9A9A9A9ADADADADADADADADADB4B4B4B4B4B4B4B4B4B6B6B6
+B6B6B6B6B6B6B4B4B4B4B4B4B4B4B4B4B4B4B8B8B8B8B8B8B8B8B8C3C3C3C3C3C3C3C3C3CBCBCB
+CBCBCBCBCBCBCCCCCCCCCCCCCCCCCCCCCCCCC7C7C7C7C7C7C7C7C7BFBFBFBFBFBFBFBFBFB9B9B9
+B9B9B9B9B9B9B3B3B3B3B3B3B3B3B3B0B0B0B0B0B0B0B0B0B0B0B0B0B1B0B0B1B0B0B1B0AFAFAF
+AFAFAFAFAFAFABABABABABABABABABBFBFBFBFBFBFBFBFBFF1F1F1F1F1F1F1F1F1F1F1F1FEFEFE
+FEFEFEFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9F9F9F9F9F9F9F9F9BDBDBDBDBDBDBDBDBDE8E9E8E8E9E8
+E8E9E8E7E7E7E7E7E7E7E7E7E8E8E8E8E8E8E8E8E8E8E8E8E6E6E6E6E6E6E6E6E6E4E4E4E4E4E4
+E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E3E3E3E3E3E3
+E3E3E3E3E3E3E3E3E3E3E3E3E1E1E1E1E1E1E1E1E1E0E0E0E0E0E0E0E0E0E0E0E0DFE0DFDFE0DF
+DFE0DFDFDFDFDFDFDFDFDFDFDFE0DFDFE0DFDFE0DFDFDFDFDFDFDFDFDFDFDEDEDEDEDEDEDEDEDE
+DEDEDEDFDFDFDFDFDFDFDFDFDFE0DFDFE0DFDFE0DFDEDEDEDEDEDEDEDEDEDDDDDDDDDDDDDDDDDD
+DCDCDCDCDCDCDCDCDCDCDCDCDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDADADADADADADADADA
+D9D9D9D9D9D9D9D9D9D9D9D9D7D7D7D7D7D7D7D7D7D4D4D4D4D4D4D4D4D4C5C5C5C5C5C5C5C5C5
+A4A4A4A4A4A4A4A4A4929292929292929292929292949494949494949494929292929292929292
+8E8E8E8E8E8E8E8E8E868686868686868686848484848484848484848484818181818181818181
+818181818181818181818181818181818181808080808080808080808080838383838383838383
+8B8B8B8B8B8B8B8B8B969696969696969696A1A1A1A1A1A1A1A1A1A8A8A8A8A8A8A8A8A8A8A8A8
+AFAFAFAFAFAFAFAFAFB6B6B6B6B6B6B6B6B6B8B8B8B8B8B8B8B8B8B5B5B5B5B5B5B5B5B5A6A6A6
+A6A6A6A6A6A6A6A6A68686868686868686866D6D6D6D6D6D6D6D6D6B6B6B6B6B6B6B6B6B747474
+7474747474747474747C7C7C7C7C7C7C7C7C7A7A7A7A7A7A7A7A7A7676767676767676766E6E6E
+6E6E6E6E6E6E656565656565656565656565646464646464646464666666666666666666616161
+6161616161615959595959595959595454545454545454545454545555555555555555555F605F
+5F605F5F605F7171717171717171718181818181818181818181818D8D8D8D8D8D8D8D8D959595
+9595959595959A9A9A9A9A9A9A9A9A9E9E9E9E9E9E9E9E9EA2A2A2A2A2A2A2A2A2A2A2A2A8A8A8
+A8A8A8A8A8A8A9A9A9A9A9A9A9A9A9AEAEAEAEAEAEAEAEAEAFAFAFAFAFAFAFAFAFB0B0B0B0B0B0
+B0B0B0B0B0B0B6B6B6B6B6B6B6B6B6BFBFBFBFBFBFBFBFBFC6C6C6C6C6C6C6C6C6CBCBCBCBCBCB
+CBCBCBCBCBCBC7C7C7C7C7C7C7C7C7C0C0C0C0C0C0C0C0C0B8B8B8B8B8B8B8B8B8B3B3B3B3B3B3
+B3B3B3B1B1B1B1B1B1B1B1B1B1B1B1B2B2B2B2B2B2B2B2B2B0B0B0B0B0B0B0B0B0A9A9A9A9A9A9
+A9A9A9BEBEBEBEBEBEBEBEBEF0F0F0F0F0F0F0F0F0F0F0F0FEFEFEFEFEFEFEFEFEFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFF9F9F9F9F9F9F9F9F9C7C7C7C7C7C7C7C7C7E8E9E8E8E9E8E8E9E8E7E7E7E7E7E7E7E7E7
+E8E8E8E8E8E8E8E8E8E8E8E8E6E6E6E6E6E6E6E6E6E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4
+E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3
+E1E1E1E1E1E1E1E1E1E0E0E0E0E0E0E0E0E0E0E0E0DFE0DFDFE0DFDFE0DFDFDFDFDFDFDFDFDFDF
+DFE0DFDFE0DFDFE0DFDFDFDFDFDFDFDFDFDFDEDEDEDEDEDEDEDEDEDEDEDEDFDFDFDFDFDFDFDFDF
+DFE0DFDFE0DFDFE0DFDEDEDEDEDEDEDEDEDEDDDDDDDDDDDDDDDDDDDCDCDCDCDCDCDCDCDCDCDCDC
+DBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDADADADADADADADADAD9D9D9D9D9D9D9D9D9D9D9D9
+D7D7D7D7D7D7D7D7D7D4D4D4D4D4D4D4D4D4C5C5C5C5C5C5C5C5C5A4A4A4A4A4A4A4A4A4929292
+9292929292929292929494949494949494949292929292929292928E8E8E8E8E8E8E8E8E868686
+868686868686848484848484848484848484818181818181818181818181818181818181818181
+8181818181818080808080808080808080808383838383838383838B8B8B8B8B8B8B8B8B969696
+969696969696A1A1A1A1A1A1A1A1A1A8A8A8A8A8A8A8A8A8A8A8A8AFAFAFAFAFAFAFAFAFB6B6B6
+B6B6B6B6B6B6B8B8B8B8B8B8B8B8B8B5B5B5B5B5B5B5B5B5A6A6A6A6A6A6A6A6A6A6A6A6868686
+8686868686866D6D6D6D6D6D6D6D6D6B6B6B6B6B6B6B6B6B7474747474747474747474747C7C7C
+7C7C7C7C7C7C7A7A7A7A7A7A7A7A7A7676767676767676766E6E6E6E6E6E6E6E6E656565656565
+656565656565646464646464646464666666666666666666616161616161616161595959595959
+5959595454545454545454545454545555555555555555555F605F5F605F5F605F717171717171
+7171718181818181818181818181818D8D8D8D8D8D8D8D8D9595959595959595959A9A9A9A9A9A
+9A9A9A9E9E9E9E9E9E9E9E9EA2A2A2A2A2A2A2A2A2A2A2A2A8A8A8A8A8A8A8A8A8A9A9A9A9A9A9
+A9A9A9AEAEAEAEAEAEAEAEAEAFAFAFAFAFAFAFAFAFB0B0B0B0B0B0B0B0B0B0B0B0B6B6B6B6B6B6
+B6B6B6BFBFBFBFBFBFBFBFBFC6C6C6C6C6C6C6C6C6CBCBCBCBCBCBCBCBCBCBCBCBC7C7C7C7C7C7
+C7C7C7C0C0C0C0C0C0C0C0C0B8B8B8B8B8B8B8B8B8B3B3B3B3B3B3B3B3B3B1B1B1B1B1B1B1B1B1
+B1B1B1B2B2B2B2B2B2B2B2B2B0B0B0B0B0B0B0B0B0A9A9A9A9A9A9A9A9A9BEBEBEBEBEBEBEBEBE
+F0F0F0F0F0F0F0F0F0F0F0F0FEFEFEFEFEFEFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9F9F9F9F9F9F9F9F9
+C7C7C7C7C7C7C7C7C7E8E9E8E8E9E8E8E9E8E7E7E7E7E7E7E7E7E7E8E8E8E8E8E8E8E8E8E8E8E8
+E6E6E6E6E6E6E6E6E6E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4
+E4E4E4E4E4E4E4E4E4E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E1E1E1E1E1E1E1E1E1E0E0E0
+E0E0E0E0E0E0E0E0E0DFE0DFDFE0DFDFE0DFDFDFDFDFDFDFDFDFDFDFE0DFDFE0DFDFE0DFDFDFDF
+DFDFDFDFDFDFDEDEDEDEDEDEDEDEDEDEDEDEDFDFDFDFDFDFDFDFDFDFE0DFDFE0DFDFE0DFDEDEDE
+DEDEDEDEDEDEDDDDDDDDDDDDDDDDDDDCDCDCDCDCDCDCDCDCDCDCDCDBDBDBDBDBDBDBDBDBDBDBDB
+DBDBDBDBDBDBDADADADADADADADADAD9D9D9D9D9D9D9D9D9D9D9D9D7D7D7D7D7D7D7D7D7D4D4D4
+D4D4D4D4D4D4C5C5C5C5C5C5C5C5C5A4A4A4A4A4A4A4A4A4929292929292929292929292949494
+9494949494949292929292929292928E8E8E8E8E8E8E8E8E868686868686868686848484848484
+848484848484818181818181818181818181818181818181818181818181818181808080808080
+8080808080808383838383838383838B8B8B8B8B8B8B8B8B969696969696969696A1A1A1A1A1A1
+A1A1A1A8A8A8A8A8A8A8A8A8A8A8A8AFAFAFAFAFAFAFAFAFB6B6B6B6B6B6B6B6B6B8B8B8B8B8B8
+B8B8B8B5B5B5B5B5B5B5B5B5A6A6A6A6A6A6A6A6A6A6A6A68686868686868686866D6D6D6D6D6D
+6D6D6D6B6B6B6B6B6B6B6B6B7474747474747474747474747C7C7C7C7C7C7C7C7C7A7A7A7A7A7A
+7A7A7A7676767676767676766E6E6E6E6E6E6E6E6E656565656565656565656565646464646464
+646464666666666666666666616161616161616161595959595959595959545454545454545454
+5454545555555555555555555F605F5F605F5F605F717171717171717171818181818181818181
+8181818D8D8D8D8D8D8D8D8D9595959595959595959A9A9A9A9A9A9A9A9A9E9E9E9E9E9E9E9E9E
+A2A2A2A2A2A2A2A2A2A2A2A2A8A8A8A8A8A8A8A8A8A9A9A9A9A9A9A9A9A9AEAEAEAEAEAEAEAEAE
+AFAFAFAFAFAFAFAFAFB0B0B0B0B0B0B0B0B0B0B0B0B6B6B6B6B6B6B6B6B6BFBFBFBFBFBFBFBFBF
+C6C6C6C6C6C6C6C6C6CBCBCBCBCBCBCBCBCBCBCBCBC7C7C7C7C7C7C7C7C7C0C0C0C0C0C0C0C0C0
+B8B8B8B8B8B8B8B8B8B3B3B3B3B3B3B3B3B3B1B1B1B1B1B1B1B1B1B1B1B1B2B2B2B2B2B2B2B2B2
+B0B0B0B0B0B0B0B0B0A9A9A9A9A9A9A9A9A9BEBEBEBEBEBEBEBEBEF0F0F0F0F0F0F0F0F0F0F0F0
+FEFEFEFEFEFEFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9F9F9F9F9F9F9F9F9C7C7C7C7C7C7C7C7C7E7E7E7
+E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E5E5E5E5E5E5E5E5E5E4E4E4
+E4E4E4E4E4E4E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4
+E4E4E4E4E4E4E2E2E2E2E2E2E2E2E2E0E0E0E0E0E0E0E0E0DFE0DFDFE0DFDFE0DFDFE0DFDFDFDF
+DFDFDFDFDFDFDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDDDDDDDDDDDD
+DDDDDDDDDDDDDEDEDEDEDEDEDEDEDEDFE0DFDFE0DFDFE0DFDEDEDEDEDEDEDEDEDEDDDDDDDDDDDD
+DDDDDDDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDADADADADADA
+DADADAD8D8D8D8D8D8D8D8D8D8D8D8D7D7D7D7D7D7D7D7D7D4D4D4D4D4D4D4D4D4C8C8C8C8C8C8
+C8C8C8A6A6A6A6A6A6A6A6A69090909090909090909090909090909090909090908E8E8E8E8E8E
+8E8E8E8E8E8E8E8E8E8E8E8E858585858585858585848484848484848484848484818181818181
+8181817F7F7F7F7F7F7F7F7F7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E818181818181
+8181818686868686868686869090909090909090909B9B9B9B9B9B9B9B9BA2A2A2A2A2A2A2A2A2
+A2A2A2A8A8A8A8A8A8A8A8A8AEAEAEAEAEAEAEAEAEB0B1B0B0B1B0B0B1B0AEAEAEAEAEAEAEAEAE
+9E9E9E9E9E9E9E9E9E9E9E9E8181818181818181816F6F6F6F6F6F6F6F6F707070707070707070
+7878787878787878787878787A7A7A7A7A7A7A7A7A777777777777777777737373737373737373
+707070707070707070696969696969696969696969646464646464646464626262626262626262
+5F605F5F605F5F605F5E5E5E5E5E5E5E5E5E626262626262626262626262676767676767676767
+6E6E6E6E6E6E6E6E6E787878787878787878888888888888888888888888979797979797979797
+9D9D9D9D9D9D9D9D9D9C9C9C9C9C9C9C9C9C9E9E9E9E9E9E9E9E9EA3A3A3A3A3A3A3A3A3A3A3A3
+A4A4A4A4A4A4A4A4A4A6A6A6A6A6A6A6A6A6A8A8A8A8A8A8A8A8A8AAAAAAAAAAAAAAAAAAABABAB
+ABABABABABABABABABACACACACACACACACACB5B5B5B5B5B5B5B5B5BFBFBFBFBFBFBFBFBFC7C7C7
+C7C7C7C7C7C7C7C7C7C6C6C6C6C6C6C6C6C6BFBFBFBFBFBFBFBFBFB8B8B8B8B8B8B8B8B8B4B4B4
+B4B4B4B4B4B4B3B3B3B3B3B3B3B3B3B3B3B3B4B4B4B4B4B4B4B4B4B0B0B0B0B0B0B0B0B0A8A8A8
+A8A8A8A8A8A8BBBBBBBBBBBBBBBBBBEEEEEEEEEEEEEEEEEEEEEEEEFDFDFDFDFDFDFDFDFDFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFBFBFBFBFBFBFBFBFBD7D7D7D7D7D7D7D7D7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7
+E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E5E5E5E5E5E5E5E5E5E4E4E4E4E4E4E4E4E4E3E3E3E3E3E3
+E3E3E3E3E3E3E3E3E3E3E3E3E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E2E2E2E2E2E2
+E2E2E2E0E0E0E0E0E0E0E0E0DFE0DFDFE0DFDFE0DFDFE0DFDFDFDFDFDFDFDFDFDFDEDEDEDEDEDE
+DEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDDDDDDDDDDDDDDDDDDDDDDDDDEDEDEDEDEDE
+DEDEDEDFE0DFDFE0DFDFE0DFDEDEDEDEDEDEDEDEDEDDDDDDDDDDDDDDDDDDDBDBDBDBDBDBDBDBDB
+DBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDADADADADADADADADAD8D8D8D8D8D8D8D8D8
+D8D8D8D7D7D7D7D7D7D7D7D7D4D4D4D4D4D4D4D4D4C8C8C8C8C8C8C8C8C8A6A6A6A6A6A6A6A6A6
+9090909090909090909090909090909090909090908E8E8E8E8E8E8E8E8E8E8E8E8E8E8E8E8E8E
+8585858585858585858484848484848484848484848181818181818181817F7F7F7F7F7F7F7F7F
+7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E818181818181818181868686868686868686
+9090909090909090909B9B9B9B9B9B9B9B9BA2A2A2A2A2A2A2A2A2A2A2A2A8A8A8A8A8A8A8A8A8
+AEAEAEAEAEAEAEAEAEB0B1B0B0B1B0B0B1B0AEAEAEAEAEAEAEAEAE9E9E9E9E9E9E9E9E9E9E9E9E
+8181818181818181816F6F6F6F6F6F6F6F6F707070707070707070787878787878787878787878
+7A7A7A7A7A7A7A7A7A777777777777777777737373737373737373707070707070707070696969
+6969696969696969696464646464646464646262626262626262625F605F5F605F5F605F5E5E5E
+5E5E5E5E5E5E6262626262626262626262626767676767676767676E6E6E6E6E6E6E6E6E787878
+7878787878788888888888888888888888889797979797979797979D9D9D9D9D9D9D9D9D9C9C9C
+9C9C9C9C9C9C9E9E9E9E9E9E9E9E9EA3A3A3A3A3A3A3A3A3A3A3A3A4A4A4A4A4A4A4A4A4A6A6A6
+A6A6A6A6A6A6A8A8A8A8A8A8A8A8A8AAAAAAAAAAAAAAAAAAABABABABABABABABABABABABACACAC
+ACACACACACACB5B5B5B5B5B5B5B5B5BFBFBFBFBFBFBFBFBFC7C7C7C7C7C7C7C7C7C7C7C7C6C6C6
+C6C6C6C6C6C6BFBFBFBFBFBFBFBFBFB8B8B8B8B8B8B8B8B8B4B4B4B4B4B4B4B4B4B3B3B3B3B3B3
+B3B3B3B3B3B3B4B4B4B4B4B4B4B4B4B0B0B0B0B0B0B0B0B0A8A8A8A8A8A8A8A8A8BBBBBBBBBBBB
+BBBBBBEEEEEEEEEEEEEEEEEEEEEEEEFDFDFDFDFDFDFDFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBFBFBFBFBFB
+FBFBFBD7D7D7D7D7D7D7D7D7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7
+E7E7E7E5E5E5E5E5E5E5E5E5E4E4E4E4E4E4E4E4E4E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3
+E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E2E2E2E2E2E2E2E2E2E0E0E0E0E0E0E0E0E0
+DFE0DFDFE0DFDFE0DFDFE0DFDFDFDFDFDFDFDFDFDFDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDE
+DEDEDEDEDEDEDEDEDEDDDDDDDDDDDDDDDDDDDDDDDDDEDEDEDEDEDEDEDEDEDFE0DFDFE0DFDFE0DF
+DEDEDEDEDEDEDEDEDEDDDDDDDDDDDDDDDDDDDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDB
+DBDBDBDBDBDBDBDBDBDADADADADADADADADAD8D8D8D8D8D8D8D8D8D8D8D8D7D7D7D7D7D7D7D7D7
+D4D4D4D4D4D4D4D4D4C8C8C8C8C8C8C8C8C8A6A6A6A6A6A6A6A6A6909090909090909090909090
+9090909090909090908E8E8E8E8E8E8E8E8E8E8E8E8E8E8E8E8E8E858585858585858585848484
+8484848484848484848181818181818181817F7F7F7F7F7F7F7F7F7E7E7E7E7E7E7E7E7E7E7E7E
+7E7E7E7E7E7E7E7E7E8181818181818181818686868686868686869090909090909090909B9B9B
+9B9B9B9B9B9BA2A2A2A2A2A2A2A2A2A2A2A2A8A8A8A8A8A8A8A8A8AEAEAEAEAEAEAEAEAEB0B1B0
+B0B1B0B0B1B0AEAEAEAEAEAEAEAEAE9E9E9E9E9E9E9E9E9E9E9E9E8181818181818181816F6F6F
+6F6F6F6F6F6F7070707070707070707878787878787878787878787A7A7A7A7A7A7A7A7A777777
+777777777777737373737373737373707070707070707070696969696969696969696969646464
+6464646464646262626262626262625F605F5F605F5F605F5E5E5E5E5E5E5E5E5E626262626262
+6262626262626767676767676767676E6E6E6E6E6E6E6E6E787878787878787878888888888888
+8888888888889797979797979797979D9D9D9D9D9D9D9D9D9C9C9C9C9C9C9C9C9C9E9E9E9E9E9E
+9E9E9EA3A3A3A3A3A3A3A3A3A3A3A3A4A4A4A4A4A4A4A4A4A6A6A6A6A6A6A6A6A6A8A8A8A8A8A8
+A8A8A8AAAAAAAAAAAAAAAAAAABABABABABABABABABABABABACACACACACACACACACB5B5B5B5B5B5
+B5B5B5BFBFBFBFBFBFBFBFBFC7C7C7C7C7C7C7C7C7C7C7C7C6C6C6C6C6C6C6C6C6BFBFBFBFBFBF
+BFBFBFB8B8B8B8B8B8B8B8B8B4B4B4B4B4B4B4B4B4B3B3B3B3B3B3B3B3B3B3B3B3B4B4B4B4B4B4
+B4B4B4B0B0B0B0B0B0B0B0B0A8A8A8A8A8A8A8A8A8BBBBBBBBBBBBBBBBBBEEEEEEEEEEEEEEEEEE
+EEEEEEFDFDFDFDFDFDFDFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBFBFBFBFBFBFBFBFBD7D7D7D7D7D7D7D7D7
+E6E6E6E6E6E6E6E6E6E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E5E5E5E5E5E5E5E5E5
+E3E3E3E3E3E3E3E3E3E2E2E2E2E2E2E2E2E2E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1
+E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1DFE0DFDFE0DFDFE0DFDFDFDFDFDFDFDFDFDFDFDFDF
+DEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDFDFDFDFDFDFDFDFDFDDDDDDDDDDDDDDDDDDDDDDDD
+DDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDEDEDEDEDEDEDEDEDEDDDDDDDDDDDDDDDDDDDCDCDC
+DCDCDCDCDCDCDBDBDBDBDBDBDBDBDBDBDBDBD9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9
+D9D9D9D9D9D9D8D8D8D8D8D8D8D8D8D8D8D8D7D7D7D7D7D7D7D7D7D3D3D3D3D3D3D3D3D3C7C7C7
+C7C7C7C7C7C79E9E9E9E9E9E9E9E9E8484848484848484848484848A8A8A8A8A8A8A8A8A8B8B8B
+8B8B8B8B8B8B8B8B8B8B8B8B8B8B8B848484848484848484828282828282828282828282818181
+8181818181817F7F7F7F7F7F7F7F7F7D7D7D7D7D7D7D7D7D7C7C7C7C7C7C7C7C7C7C7C7C7E7E7E
+7E7E7E7E7E7E8383838383838383838C8C8C8C8C8C8C8C8C9595959595959595959E9E9E9E9E9E
+9E9E9E9E9E9EA1A1A1A1A1A1A1A1A1A7A7A7A7A7A7A7A7A7AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAA9B9B9B9B9B9B9B9B9B9B9B9B818181818181818181737373737373737373777777777777
+7777777B7B7B7B7B7B7B7B7B7B7B7B7A7A7A7A7A7A7A7A7A767676767676767676707070707070
+7070706C6C6C6C6C6C6C6C6C696969696969696969696969666666666666666666646464646464
+6464646969696969696969697070707070707070707474747474747474747474747A7A7A7A7A7A
+7A7A7A7E7E7E7E7E7E7E7E7E878787878787878787959595959595959595959595A0A0A0A0A0A0
+A0A0A0A0A0A0A0A0A0A0A0A09E9E9E9E9E9E9E9E9EA1A1A1A1A1A1A1A1A1A3A3A3A3A3A3A3A3A3
+A3A3A3A3A3A3A3A3A3A3A3A3A4A4A4A4A4A4A4A4A4A6A6A6A6A6A6A6A6A6A6A6A6A6A6A6A6A6A6
+A1A1A1A1A1A1A1A1A1A1A1A1A2A2A2A2A2A2A2A2A2ACACACACACACACACACB8B8B8B8B8B8B8B8B8
+C2C2C2C2C2C2C2C2C2C2C2C2C4C4C4C4C4C4C4C4C4BEBEBEBEBEBEBEBEBEB8B8B8B8B8B8B8B8B8
+B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5ADADADADADADADADAD
+A6A6A6A6A6A6A6A6A6BBBBBBBBBBBBBBBBBBEFEFEFEFEFEFEFEFEFEFEFEFFEFEFEFEFEFEFEFEFE
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFF9F9F9F9F9F9F9F9F9CACACACACACACACACAE6E6E6E6E6E6E6E6E6E7E7E7
+E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E5E5E5E5E5E5E5E5E5E3E3E3E3E3E3E3E3E3E2E2E2
+E2E2E2E2E2E2E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1
+E1E1E1E1E1E1DFE0DFDFE0DFDFE0DFDFDFDFDFDFDFDFDFDFDFDFDFDEDEDEDEDEDEDEDEDEDEDEDE
+DEDEDEDEDEDEDFDFDFDFDFDFDFDFDFDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD
+DDDDDDDDDDDDDEDEDEDEDEDEDEDEDEDDDDDDDDDDDDDDDDDDDCDCDCDCDCDCDCDCDCDBDBDBDBDBDB
+DBDBDBDBDBDBD9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D8D8D8D8D8D8
+D8D8D8D8D8D8D7D7D7D7D7D7D7D7D7D3D3D3D3D3D3D3D3D3C7C7C7C7C7C7C7C7C79E9E9E9E9E9E
+9E9E9E8484848484848484848484848A8A8A8A8A8A8A8A8A8B8B8B8B8B8B8B8B8B8B8B8B8B8B8B
+8B8B8B8484848484848484848282828282828282828282828181818181818181817F7F7F7F7F7F
+7F7F7F7D7D7D7D7D7D7D7D7D7C7C7C7C7C7C7C7C7C7C7C7C7E7E7E7E7E7E7E7E7E838383838383
+8383838C8C8C8C8C8C8C8C8C9595959595959595959E9E9E9E9E9E9E9E9E9E9E9EA1A1A1A1A1A1
+A1A1A1A7A7A7A7A7A7A7A7A7AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA9B9B9B9B9B9B9B9B9B
+9B9B9B8181818181818181817373737373737373737777777777777777777B7B7B7B7B7B7B7B7B
+7B7B7B7A7A7A7A7A7A7A7A7A7676767676767676767070707070707070706C6C6C6C6C6C6C6C6C
+696969696969696969696969666666666666666666646464646464646464696969696969696969
+7070707070707070707474747474747474747474747A7A7A7A7A7A7A7A7A7E7E7E7E7E7E7E7E7E
+878787878787878787959595959595959595959595A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0
+9E9E9E9E9E9E9E9E9EA1A1A1A1A1A1A1A1A1A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3
+A4A4A4A4A4A4A4A4A4A6A6A6A6A6A6A6A6A6A6A6A6A6A6A6A6A6A6A1A1A1A1A1A1A1A1A1A1A1A1
+A2A2A2A2A2A2A2A2A2ACACACACACACACACACB8B8B8B8B8B8B8B8B8C2C2C2C2C2C2C2C2C2C2C2C2
+C4C4C4C4C4C4C4C4C4BEBEBEBEBEBEBEBEBEB8B8B8B8B8B8B8B8B8B5B5B5B5B5B5B5B5B5B5B5B5
+B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5ADADADADADADADADADA6A6A6A6A6A6A6A6A6BBBBBB
+BBBBBBBBBBBBEFEFEFEFEFEFEFEFEFEFEFEFFEFEFEFEFEFEFEFEFEFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9F9F9
+F9F9F9F9F9F9CACACACACACACACACAE4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4
+E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E3E3E3E3E3E3E3E3E3E1E1E1E1E1E1E1E1E1DFE0DFDFE0DF
+DFE0DFE1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1DFE0DFDFE0DF
+DFE0DFDEDEDEDEDEDEDEDEDEDEDEDEDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDEDEDEDEDEDE
+DEDEDEDDDDDDDDDDDDDDDDDDDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDC
+DCDCDCDCDCDCDCDCDCDCDCDCDBDBDBDBDBDBDBDBDBDADADADADADADADADADADADAD9D9D9D9D9D9
+D9D9D9D9D9D9D9D9D9D9D9D9D8D8D8D8D8D8D8D8D8D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7
+D7D7D7D5D5D5D5D5D5D5D5D5CACACACACACACACACAA0A0A0A0A0A0A0A0A0767676767676767676
+7676767E7E7E7E7E7E7E7E7E8A8A8A8A8A8A8A8A8A8C8C8C8C8C8C8C8C8C868686868686868686
+8383838383838383838383838181818181818181818080808080808080807E7E7E7E7E7E7E7E7E
+7C7C7C7C7C7C7C7C7C7C7C7C7D7D7D7D7D7D7D7D7D808080808080808080878787878787878787
+9090909090909090909999999999999999999999999D9D9D9D9D9D9D9D9DA1A1A1A1A1A1A1A1A1
+A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A59A9A9A9A9A9A9A9A9A9A9A9A868686868686868686
+7C7C7C7C7C7C7C7C7C7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7B7B7B7B7B7B7B7B7B
+7676767676767676767171717171717171716E6E6E6E6E6E6E6E6E727272727272727272727272
+7171717171717171716F6F6F6F6F6F6F6F6F757575757575757575818181818181818181848484
+8484848484848484848B8B8B8B8B8B8B8B8B929292929292929292999999999999999999A1A1A1
+A1A1A1A1A1A1A1A1A1A8A8A8A8A8A8A8A8A8A6A6A6A6A6A6A6A6A6A2A2A2A2A2A2A2A2A2A7A7A7
+A7A7A7A7A7A7A8A8A8A8A8A8A8A8A8A8A8A8A7A7A7A7A7A7A7A7A7A3A3A3A3A3A3A3A3A3A1A1A1
+A1A1A1A1A1A1A1A1A1A1A1A1A1A1A19A9A9A9A9A9A9A9A9A9A9A9A9A9A9A9A9A9A9A9A9AA4A4A4
+A4A4A4A4A4A4B1B1B1B1B1B1B1B1B1B9B9B9B9B9B9B9B9B9B9B9B9BFBFBFBFBFBFBFBFBFBFBFBF
+BFBFBFBFBFBFB9B9B9B9B9B9B9B9B9B7B7B7B7B7B7B7B7B7B6B6B6B6B6B6B6B6B6B6B6B6B4B4B4
+B4B4B4B4B4B4ABABABABABABABABABA3A3A3A3A3A3A3A3A3BABABABABABABABABAF0F0F0F0F0F0
+F0F0F0F0F0F0FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBFBFBFBFBFBFBFBFBD4D4D4D4D4D4
+D4D4D4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4
+E4E4E4E3E3E3E3E3E3E3E3E3E1E1E1E1E1E1E1E1E1DFE0DFDFE0DFDFE0DFE1E1E1E1E1E1E1E1E1
+E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1DFE0DFDFE0DFDFE0DFDEDEDEDEDEDEDEDEDE
+DEDEDEDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDEDEDEDEDEDEDEDEDEDDDDDDDDDDDDDDDDDD
+DCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDC
+DBDBDBDBDBDBDBDBDBDADADADADADADADADADADADAD9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9
+D8D8D8D8D8D8D8D8D8D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D5D5D5D5D5D5D5D5D5
+CACACACACACACACACAA0A0A0A0A0A0A0A0A07676767676767676767676767E7E7E7E7E7E7E7E7E
+8A8A8A8A8A8A8A8A8A8C8C8C8C8C8C8C8C8C868686868686868686838383838383838383838383
+8181818181818181818080808080808080807E7E7E7E7E7E7E7E7E7C7C7C7C7C7C7C7C7C7C7C7C
+7D7D7D7D7D7D7D7D7D808080808080808080878787878787878787909090909090909090999999
+9999999999999999999D9D9D9D9D9D9D9D9DA1A1A1A1A1A1A1A1A1A5A5A5A5A5A5A5A5A5A5A5A5
+A5A5A5A5A5A59A9A9A9A9A9A9A9A9A9A9A9A8686868686868686867C7C7C7C7C7C7C7C7C7D7D7D
+7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7B7B7B7B7B7B7B7B7B767676767676767676717171
+7171717171716E6E6E6E6E6E6E6E6E7272727272727272727272727171717171717171716F6F6F
+6F6F6F6F6F6F7575757575757575758181818181818181818484848484848484848484848B8B8B
+8B8B8B8B8B8B929292929292929292999999999999999999A1A1A1A1A1A1A1A1A1A1A1A1A8A8A8
+A8A8A8A8A8A8A6A6A6A6A6A6A6A6A6A2A2A2A2A2A2A2A2A2A7A7A7A7A7A7A7A7A7A8A8A8A8A8A8
+A8A8A8A8A8A8A7A7A7A7A7A7A7A7A7A3A3A3A3A3A3A3A3A3A1A1A1A1A1A1A1A1A1A1A1A1A1A1A1
+A1A1A19A9A9A9A9A9A9A9A9A9A9A9A9A9A9A9A9A9A9A9A9AA4A4A4A4A4A4A4A4A4B1B1B1B1B1B1
+B1B1B1B9B9B9B9B9B9B9B9B9B9B9B9BFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFB9B9B9B9B9B9
+B9B9B9B7B7B7B7B7B7B7B7B7B6B6B6B6B6B6B6B6B6B6B6B6B4B4B4B4B4B4B4B4B4ABABABABABAB
+ABABABA3A3A3A3A3A3A3A3A3BABABABABABABABABAF0F0F0F0F0F0F0F0F0F0F0F0FEFEFEFEFEFE
+FEFEFEFEFEFEFEFEFEFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFBFBFBFBFBFBFBFBFBD4D4D4D4D4D4D4D4D4E4E4E4E4E4E4E4E4E4
+E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E3E3E3E3E3E3E3E3E3
+E1E1E1E1E1E1E1E1E1DFE0DFDFE0DFDFE0DFE1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1
+E1E1E1E1E1E1E1E1E1DFE0DFDFE0DFDFE0DFDEDEDEDEDEDEDEDEDEDEDEDEDDDDDDDDDDDDDDDDDD
+DDDDDDDDDDDDDDDDDDDEDEDEDEDEDEDEDEDEDDDDDDDDDDDDDDDDDDDCDCDCDCDCDCDCDCDCDCDCDC
+DCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDBDBDBDBDBDBDBDBDBDADADA
+DADADADADADADADADAD9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D8D8D8D8D8D8D8D8D8D7D7D7
+D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D5D5D5D5D5D5D5D5D5CACACACACACACACACAA0A0A0
+A0A0A0A0A0A07676767676767676767676767E7E7E7E7E7E7E7E7E8A8A8A8A8A8A8A8A8A8C8C8C
+8C8C8C8C8C8C868686868686868686838383838383838383838383818181818181818181808080
+8080808080807E7E7E7E7E7E7E7E7E7C7C7C7C7C7C7C7C7C7C7C7C7D7D7D7D7D7D7D7D7D808080
+8080808080808787878787878787879090909090909090909999999999999999999999999D9D9D
+9D9D9D9D9D9DA1A1A1A1A1A1A1A1A1A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A59A9A9A9A9A9A
+9A9A9A9A9A9A8686868686868686867C7C7C7C7C7C7C7C7C7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D
+7D7D7D7D7D7D7B7B7B7B7B7B7B7B7B7676767676767676767171717171717171716E6E6E6E6E6E
+6E6E6E7272727272727272727272727171717171717171716F6F6F6F6F6F6F6F6F757575757575
+7575758181818181818181818484848484848484848484848B8B8B8B8B8B8B8B8B929292929292
+929292999999999999999999A1A1A1A1A1A1A1A1A1A1A1A1A8A8A8A8A8A8A8A8A8A6A6A6A6A6A6
+A6A6A6A2A2A2A2A2A2A2A2A2A7A7A7A7A7A7A7A7A7A8A8A8A8A8A8A8A8A8A8A8A8A7A7A7A7A7A7
+A7A7A7A3A3A3A3A3A3A3A3A3A1A1A1A1A1A1A1A1A1A1A1A1A1A1A1A1A1A19A9A9A9A9A9A9A9A9A
+9A9A9A9A9A9A9A9A9A9A9A9AA4A4A4A4A4A4A4A4A4B1B1B1B1B1B1B1B1B1B9B9B9B9B9B9B9B9B9
+B9B9B9BFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFB9B9B9B9B9B9B9B9B9B7B7B7B7B7B7B7B7B7
+B6B6B6B6B6B6B6B6B6B6B6B6B4B4B4B4B4B4B4B4B4ABABABABABABABABABA3A3A3A3A3A3A3A3A3
+BABABABABABABABABAF0F0F0F0F0F0F0F0F0F0F0F0FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FBFBFBFBFBFBFBFBFBD4D4D4D4D4D4D4D4D4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4
+E4E4E4E4E4E4E4E4E4E3E3E3E3E3E3E3E3E3E2E2E2E2E2E2E2E2E2E1E1E1E1E1E1E1E1E1DFE0DF
+DFE0DFDFE0DFDFE0DFDFE0DFDFE0DFDFE0DFDFE0DFDFE0DFDFE0DFDFE0DFDFE0DFDFE0DFDEDEDE
+DEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDCDCDCDCDCDCDCDCDCDDDDDDDDDDDDDDDDDDDEDEDE
+DEDEDEDEDEDEDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDBDBDBDBDBDBDBDBDBDBDBDB
+DBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDADADADADADADADADADADADAD9D9D9
+D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D7D7D7D7D7D7D7D7D7D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6
+D6D6D6D6D6D6D5D5D5D5D5D5D5D5D5CECECECECECECECECEB0B0B0B0B0B0B0B0B07A7A7A7A7A7A
+7A7A7A7A7A7A707070707070707070848484848484848484898989898989898989858585858585
+8585858282828282828282828282828181818181818181817F7F7F7F7F7F7F7F7F7D7D7D7D7D7D
+7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D818181818181
+8181818989898989898989899292929292929292929292929999999999999999999E9E9E9E9E9E
+9E9E9EA0A0A0A0A0A0A0A0A0A1A1A1A1A1A1A1A1A19A9A9A9A9A9A9A9A9A9A9A9A8D8D8D8D8D8D
+8D8D8D8585858585858585858181818181818181817E7E7E7E7E7E7E7E7E7E7E7E7C7C7C7C7C7C
+7C7C7C7979797979797979797777777777777777777777777777777777777C7C7C7C7C7C7C7C7C
+7C7C7C7C7C7C7C7C7C7C7C7C7B7B7B7B7B7B7B7B7B828282828282828282919191919191919191
+999999999999999999999999A4A4A4A4A4A4A4A4A4ADADADADADADADADADB0B0B0B0B0B0B0B0B0
+B1B1B1B1B1B1B1B1B1B1B1B1B5B5B5B5B5B5B5B5B5B1B1B1B1B1B1B1B1B1ADADADADADADADADAD
+B0B1B0B0B1B0B0B1B0AFAFAFAFAFAFAFAFAFAFAFAFA8A8A8A8A8A8A8A8A89E9E9E9E9E9E9E9E9E
+9A9A9A9A9A9A9A9A9A999999999999999999909090909090909090909090909090909090909090
+9C9C9C9C9C9C9C9C9CA8A8A8A8A8A8A8A8A8B2B2B2B2B2B2B2B2B2B2B2B2BBBBBBBBBBBBBBBBBB
+BEBEBEBEBEBEBEBEBEB9B9B9B9B9B9B9B9B9B8B8B8B8B8B8B8B8B8B7B7B7B7B7B7B7B7B7B7B7B7
+B2B2B2B2B2B2B2B2B2A8A8A8A8A8A8A8A8A8A1A1A1A1A1A1A1A1A1B8B8B8B8B8B8B8B8B8EEEEEE
+EEEEEEEEEEEEEEEEEEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCFCFCFCFCFCFCFCFCE1E1E1
+E1E1E1E1E1E1E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E3E3E3
+E3E3E3E3E3E3E2E2E2E2E2E2E2E2E2E1E1E1E1E1E1E1E1E1DFE0DFDFE0DFDFE0DFDFE0DFDFE0DF
+DFE0DFDFE0DFDFE0DFDFE0DFDFE0DFDFE0DFDFE0DFDFE0DFDEDEDEDEDEDEDEDEDEDEDEDEDEDEDE
+DEDEDEDEDEDEDCDCDCDCDCDCDCDCDCDDDDDDDDDDDDDDDDDDDEDEDEDEDEDEDEDEDEDCDCDCDCDCDC
+DCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDB
+DBDBDBDBDBDBDBDBDBDBDBDBDADADADADADADADADADADADAD9D9D9D9D9D9D9D9D9D9D9D9D9D9D9
+D9D9D9D7D7D7D7D7D7D7D7D7D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D5D5D5D5D5D5
+D5D5D5CECECECECECECECECEB0B0B0B0B0B0B0B0B07A7A7A7A7A7A7A7A7A7A7A7A707070707070
+707070848484848484848484898989898989898989858585858585858585828282828282828282
+8282828181818181818181817F7F7F7F7F7F7F7F7F7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D
+7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D818181818181818181898989898989898989
+9292929292929292929292929999999999999999999E9E9E9E9E9E9E9E9EA0A0A0A0A0A0A0A0A0
+A1A1A1A1A1A1A1A1A19A9A9A9A9A9A9A9A9A9A9A9A8D8D8D8D8D8D8D8D8D858585858585858585
+8181818181818181817E7E7E7E7E7E7E7E7E7E7E7E7C7C7C7C7C7C7C7C7C797979797979797979
+7777777777777777777777777777777777777C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C
+7B7B7B7B7B7B7B7B7B828282828282828282919191919191919191999999999999999999999999
+A4A4A4A4A4A4A4A4A4ADADADADADADADADADB0B0B0B0B0B0B0B0B0B1B1B1B1B1B1B1B1B1B1B1B1
+B5B5B5B5B5B5B5B5B5B1B1B1B1B1B1B1B1B1ADADADADADADADADADB0B1B0B0B1B0B0B1B0AFAFAF
+AFAFAFAFAFAFAFAFAFA8A8A8A8A8A8A8A8A89E9E9E9E9E9E9E9E9E9A9A9A9A9A9A9A9A9A999999
+9999999999999090909090909090909090909090909090909090909C9C9C9C9C9C9C9C9CA8A8A8
+A8A8A8A8A8A8B2B2B2B2B2B2B2B2B2B2B2B2BBBBBBBBBBBBBBBBBBBEBEBEBEBEBEBEBEBEB9B9B9
+B9B9B9B9B9B9B8B8B8B8B8B8B8B8B8B7B7B7B7B7B7B7B7B7B7B7B7B2B2B2B2B2B2B2B2B2A8A8A8
+A8A8A8A8A8A8A1A1A1A1A1A1A1A1A1B8B8B8B8B8B8B8B8B8EEEEEEEEEEEEEEEEEEEEEEEEFEFEFE
+FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCFCFCFCFCFCFCFCFCE1E1E1E1E1E1E1E1E1E3E3E3E3E3E3
+E3E3E3E4E4E4E4E4E4E4E4E4E3E3E3E3E3E3E3E3E3E3E3E3E2E2E2E2E2E2E2E2E2E1E1E1E1E1E1
+E1E1E1E0E0E0E0E0E0E0E0E0DFDFDFDFDFDFDFDFDFDFE0DFDFE0DFDFE0DFDFE0DFDEDEDEDEDEDE
+DEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD
+DDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDCDCDCDCDCDCDCDCDCDBDBDBDBDBDBDBDBDB
+DBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDADADADADADADADADA
+D9D9D9D9D9D9D9D9D9D9D9D9D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D7D7D7D7D7D7D7D7D7
+D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D5D6D6D5D6D6D5D2D2D2D2D2D2D2D2D2
+C3C3C3C3C3C3C3C3C39B9B9B9B9B9B9B9B9B9B9B9B787878787878787878787878787878787878
+8181818181818181818080808080808080807F7F7F7F7F7F7F7F7F7F7F7F808080808080808080
+7E7E7E7E7E7E7E7E7E7C7C7C7C7C7C7C7C7C7D7D7D7D7D7D7D7D7D7D7D7D7C7C7C7C7C7C7C7C7C
+7B7B7B7B7B7B7B7B7B7E7E7E7E7E7E7E7E7E8484848484848484848F8F8F8F8F8F8F8F8F8F8F8F
+9595959595959595959A9A9A9A9A9A9A9A9A9C9C9C9C9C9C9C9C9C9D9D9D9D9D9D9D9D9D989898
+9898989898989898988F8F8F8F8F8F8F8F8F898989898989898989858585858585858585828282
+8282828282828282828080808080808080807F7F7F7F7F7F7F7F7F7E7E7E7E7E7E7E7E7E7F7F7F
+7F7F7F7F7F7F838383838383838383838383848484848484848484868686868686868686909090
+909090909090A5A5A5A5A5A5A5A5A5B4B4B4B4B4B4B4B4B4B4B4B4BFBFBFBFBFBFBFBFBFC5C5C5
+C5C5C5C5C5C5C3C3C3C3C3C3C3C3C3C2C2C2C2C2C2C2C2C2C2C2C2C5C5C5C5C5C5C5C5C5C2C2C2
+C2C2C2C2C2C2BEBEBEBEBEBEBEBEBEBCBCBCBCBCBCBCBCBCB4B4B4B4B4B4B4B4B4B4B4B4AAAAAA
+AAAAAAAAAAAA9F9F9F9F9F9F9F9F9F979797979797979797909090909090909090898989898989
+898989898989878787878787878787949494949494949494A1A1A1A1A1A1A1A1A1AFAFAFAFAFAF
+AFAFAFAFAFAFBBBBBBBBBBBBBBBBBBBFBFBFBFBFBFBFBFBFBABABABABABABABABAB5B5B5B5B5B5
+B5B5B5B6B6B6B6B6B6B6B6B6B6B6B6B0B1B0B0B1B0B0B1B0A5A5A5A5A5A5A5A5A5A0A0A0A0A0A0
+A0A0A0BBBBBBBBBBBBBBBBBBF0F0F0F0F0F0F0F0F0F0F0F0FEFEFEFEFEFEFEFEFEFEFEFEFEFEFE
+FEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFF9F9F9F9F9F9F9F9F9C7C7C7C7C7C7C7C7C7E3E3E3E3E3E3E3E3E3E4E4E4E4E4E4E4E4E4
+E3E3E3E3E3E3E3E3E3E3E3E3E2E2E2E2E2E2E2E2E2E1E1E1E1E1E1E1E1E1E0E0E0E0E0E0E0E0E0
+DFDFDFDFDFDFDFDFDFDFE0DFDFE0DFDFE0DFDFE0DFDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDE
+DEDEDEDEDEDEDEDEDEDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD
+DDDDDDDDDDDDDDDDDDDCDCDCDCDCDCDCDCDCDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDB
+DBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDADADADADADADADADAD9D9D9D9D9D9D9D9D9D9D9D9
+D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D7D7D7D7D7D7D7D7D7D6D6D6D6D6D6D6D6D6D6D6D6
+D6D6D6D6D6D6D6D6D6D6D6D5D6D6D5D6D6D5D2D2D2D2D2D2D2D2D2C3C3C3C3C3C3C3C3C39B9B9B
+9B9B9B9B9B9B9B9B9B787878787878787878787878787878787878818181818181818181808080
+8080808080807F7F7F7F7F7F7F7F7F7F7F7F8080808080808080807E7E7E7E7E7E7E7E7E7C7C7C
+7C7C7C7C7C7C7D7D7D7D7D7D7D7D7D7D7D7D7C7C7C7C7C7C7C7C7C7B7B7B7B7B7B7B7B7B7E7E7E
+7E7E7E7E7E7E8484848484848484848F8F8F8F8F8F8F8F8F8F8F8F9595959595959595959A9A9A
+9A9A9A9A9A9A9C9C9C9C9C9C9C9C9C9D9D9D9D9D9D9D9D9D9898989898989898989898988F8F8F
+8F8F8F8F8F8F898989898989898989858585858585858585828282828282828282828282808080
+8080808080807F7F7F7F7F7F7F7F7F7E7E7E7E7E7E7E7E7E7F7F7F7F7F7F7F7F7F838383838383
+838383838383848484848484848484868686868686868686909090909090909090A5A5A5A5A5A5
+A5A5A5B4B4B4B4B4B4B4B4B4B4B4B4BFBFBFBFBFBFBFBFBFC5C5C5C5C5C5C5C5C5C3C3C3C3C3C3
+C3C3C3C2C2C2C2C2C2C2C2C2C2C2C2C5C5C5C5C5C5C5C5C5C2C2C2C2C2C2C2C2C2BEBEBEBEBEBE
+BEBEBEBCBCBCBCBCBCBCBCBCB4B4B4B4B4B4B4B4B4B4B4B4AAAAAAAAAAAAAAAAAA9F9F9F9F9F9F
+9F9F9F979797979797979797909090909090909090898989898989898989898989878787878787
+878787949494949494949494A1A1A1A1A1A1A1A1A1AFAFAFAFAFAFAFAFAFAFAFAFBBBBBBBBBBBB
+BBBBBBBFBFBFBFBFBFBFBFBFBABABABABABABABABAB5B5B5B5B5B5B5B5B5B6B6B6B6B6B6B6B6B6
+B6B6B6B0B1B0B0B1B0B0B1B0A5A5A5A5A5A5A5A5A5A0A0A0A0A0A0A0A0A0BBBBBBBBBBBBBBBBBB
+F0F0F0F0F0F0F0F0F0F0F0F0FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9F9F9F9F9F9F9F9F9
+C7C7C7C7C7C7C7C7C7E3E3E3E3E3E3E3E3E3E4E4E4E4E4E4E4E4E4E3E3E3E3E3E3E3E3E3E3E3E3
+E2E2E2E2E2E2E2E2E2E1E1E1E1E1E1E1E1E1E0E0E0E0E0E0E0E0E0DFDFDFDFDFDFDFDFDFDFE0DF
+DFE0DFDFE0DFDFE0DFDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDDDDDD
+DDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDCDCDC
+DCDCDCDCDCDCDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDB
+DBDBDBDBDBDBDADADADADADADADADAD9D9D9D9D9D9D9D9D9D9D9D9D8D8D8D8D8D8D8D8D8D8D8D8
+D8D8D8D8D8D8D7D7D7D7D7D7D7D7D7D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D5
+D6D6D5D6D6D5D2D2D2D2D2D2D2D2D2C3C3C3C3C3C3C3C3C39B9B9B9B9B9B9B9B9B9B9B9B787878
+7878787878787878787878787878788181818181818181818080808080808080807F7F7F7F7F7F
+7F7F7F7F7F7F8080808080808080807E7E7E7E7E7E7E7E7E7C7C7C7C7C7C7C7C7C7D7D7D7D7D7D
+7D7D7D7D7D7D7C7C7C7C7C7C7C7C7C7B7B7B7B7B7B7B7B7B7E7E7E7E7E7E7E7E7E848484848484
+8484848F8F8F8F8F8F8F8F8F8F8F8F9595959595959595959A9A9A9A9A9A9A9A9A9C9C9C9C9C9C
+9C9C9C9D9D9D9D9D9D9D9D9D9898989898989898989898988F8F8F8F8F8F8F8F8F898989898989
+8989898585858585858585858282828282828282828282828080808080808080807F7F7F7F7F7F
+7F7F7F7E7E7E7E7E7E7E7E7E7F7F7F7F7F7F7F7F7F838383838383838383838383848484848484
+848484868686868686868686909090909090909090A5A5A5A5A5A5A5A5A5B4B4B4B4B4B4B4B4B4
+B4B4B4BFBFBFBFBFBFBFBFBFC5C5C5C5C5C5C5C5C5C3C3C3C3C3C3C3C3C3C2C2C2C2C2C2C2C2C2
+C2C2C2C5C5C5C5C5C5C5C5C5C2C2C2C2C2C2C2C2C2BEBEBEBEBEBEBEBEBEBCBCBCBCBCBCBCBCBC
+B4B4B4B4B4B4B4B4B4B4B4B4AAAAAAAAAAAAAAAAAA9F9F9F9F9F9F9F9F9F979797979797979797
+909090909090909090898989898989898989898989878787878787878787949494949494949494
+A1A1A1A1A1A1A1A1A1AFAFAFAFAFAFAFAFAFAFAFAFBBBBBBBBBBBBBBBBBBBFBFBFBFBFBFBFBFBF
+BABABABABABABABABAB5B5B5B5B5B5B5B5B5B6B6B6B6B6B6B6B6B6B6B6B6B0B1B0B0B1B0B0B1B0
+A5A5A5A5A5A5A5A5A5A0A0A0A0A0A0A0A0A0BBBBBBBBBBBBBBBBBBF0F0F0F0F0F0F0F0F0F0F0F0
+FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9F9F9F9F9F9F9F9F9C7C7C7C7C7C7C7C7C7E2E2E2
+E2E2E2E2E2E2E3E3E3E3E3E3E3E3E3E2E2E2E2E2E2E2E2E2E2E2E2E0E0E0E0E0E0E0E0E0E0E0E0
+E0E0E0E0E0E0DFE0DFDFE0DFDFE0DFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDDDDDD
+DDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD
+DDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDCDCDCDCDCDCDCDCDCDBDBDBDBDBDBDBDBDBDBDBDBDBDBDB
+DBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDADADADADADA
+DADADAD9D9D9D9D9D9D9D9D9D9D9D9D8D8D8D8D8D8D8D8D8D7D7D7D7D7D7D7D7D7D6D6D6D6D6D6
+D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D3D3D3D3D3D3
+D3D3D3CECECECECECECECECEBCBCBCBCBCBCBCBCBCBCBCBC989898989898989898737373737373
+7373737171717171717171717474747474747474747777777777777777777777777E7E7E7E7E7E
+7E7E7E7D7D7D7D7D7D7D7D7D7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7A7A7A7A7A7A
+7A7A7A7A7A7A7A7A7A7A7A7A7D7D7D7D7D7D7D7D7D8383838383838383838C8C8C8C8C8C8C8C8C
+8C8C8C9494949494949494949999999999999999999D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D
+9797979797979797979797979191919191919191918E8E8E8E8E8E8E8E8E898989898989898989
+8484848484848484848484848383838383838383838181818181818181817F7F7F7F7F7F7F7F7F
+8181818181818181818686868686868686868686868C8C8C8C8C8C8C8C8C939393939393939393
+A0A0A0A0A0A0A0A0A0B3B3B3B3B3B3B3B3B3C2C2C2C2C2C2C2C2C2C2C2C2CBCBCBCBCBCBCBCBCB
+CDCDCDCDCDCDCDCDCDCACACACACACACACACAC5C5C5C5C5C5C5C5C5C5C5C5C1C1C1C1C1C1C1C1C1
+BEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBBBBBBBBBBBBBBBBBBB3B3B3B3B3B3B3B3B3B3B3B3
+ACACACACACACACACACA1A1A1A1A1A1A1A1A1939393939393939393868686868686868686757575
+7575757575757575757878787878787878788F8F8F8F8F8F8F8F8FA0A0A0A0A0A0A0A0A0AFAFAF
+AFAFAFAFAFAFAFAFAFBBBBBBBBBBBBBBBBBBBFBFBFBFBFBFBFBFBFBABABABABABABABABAB3B3B3
+B3B3B3B3B3B3B4B4B4B4B4B4B4B4B4B4B4B4ADADADADADADADADADA2A2A2A2A2A2A2A2A29F9F9F
+9F9F9F9F9F9FBDBDBDBDBDBDBDBDBDF1F1F1F1F1F1F1F1F1F1F1F1FEFEFEFEFEFEFEFEFEFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFF9F9F9F9F9F9F9F9F9C6C6C6C6C6C6C6C6C6E2E2E2E2E2E2E2E2E2E3E3E3E3E3E3
+E3E3E3E2E2E2E2E2E2E2E2E2E2E2E2E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0DFE0DFDFE0DF
+DFE0DFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD
+DDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD
+DDDDDDDCDCDCDCDCDCDCDCDCDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDB
+DBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDADADADADADADADADAD9D9D9D9D9D9D9D9D9
+D9D9D9D8D8D8D8D8D8D8D8D8D7D7D7D7D7D7D7D7D7D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6
+D6D6D6D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D3D3D3D3D3D3D3D3D3CECECECECECECECECE
+BCBCBCBCBCBCBCBCBCBCBCBC989898989898989898737373737373737373717171717171717171
+7474747474747474747777777777777777777777777E7E7E7E7E7E7E7E7E7D7D7D7D7D7D7D7D7D
+7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7A7A7A7A7A7A7A7A7A7A7A7A7A7A7A7A7A7A
+7D7D7D7D7D7D7D7D7D8383838383838383838C8C8C8C8C8C8C8C8C8C8C8C949494949494949494
+9999999999999999999D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D979797979797979797979797
+9191919191919191918E8E8E8E8E8E8E8E8E898989898989898989848484848484848484848484
+8383838383838383838181818181818181817F7F7F7F7F7F7F7F7F818181818181818181868686
+8686868686868686868C8C8C8C8C8C8C8C8C939393939393939393A0A0A0A0A0A0A0A0A0B3B3B3
+B3B3B3B3B3B3C2C2C2C2C2C2C2C2C2C2C2C2CBCBCBCBCBCBCBCBCBCDCDCDCDCDCDCDCDCDCACACA
+CACACACACACAC5C5C5C5C5C5C5C5C5C5C5C5C1C1C1C1C1C1C1C1C1BEBEBEBEBEBEBEBEBEBEBEBE
+BEBEBEBEBEBEBBBBBBBBBBBBBBBBBBB3B3B3B3B3B3B3B3B3B3B3B3ACACACACACACACACACA1A1A1
+A1A1A1A1A1A1939393939393939393868686868686868686757575757575757575757575787878
+7878787878788F8F8F8F8F8F8F8F8FA0A0A0A0A0A0A0A0A0AFAFAFAFAFAFAFAFAFAFAFAFBBBBBB
+BBBBBBBBBBBBBFBFBFBFBFBFBFBFBFBABABABABABABABABAB3B3B3B3B3B3B3B3B3B4B4B4B4B4B4
+B4B4B4B4B4B4ADADADADADADADADADA2A2A2A2A2A2A2A2A29F9F9F9F9F9F9F9F9FBDBDBDBDBDBD
+BDBDBDF1F1F1F1F1F1F1F1F1F1F1F1FEFEFEFEFEFEFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9F9F9F9F9F9
+F9F9F9C6C6C6C6C6C6C6C6C6E2E2E2E2E2E2E2E2E2E1E1E1E1E1E1E1E1E1E0E0E0E0E0E0E0E0E0
+E0E0E0E0E0E0E0E0E0E0E0E0DFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDEDEDEDEDEDEDEDEDE
+DEDEDEDEDEDEDEDEDEDEDEDEDCDCDCDCDCDCDCDCDCDDDDDDDDDDDDDDDDDDDCDCDCDCDCDCDCDCDC
+DCDCDCDCDCDCDCDCDCDCDCDCDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDCDCDCDCDCDCDCDCDC
+DCDCDCDCDCDCDCDCDCDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDB
+DBDBDBDBDBDBDBDBDBDADADADADADADADADAD8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8
+D7D7D7D7D7D7D7D7D7D6D6D6D6D6D6D6D6D6D6D6D5D6D6D5D6D6D5D6D6D5D5D5D5D5D5D5D5D5D5
+D4D4D4D4D4D4D4D4D4D4D4D4D4D4D4D4D4D4D2D2D2D2D2D2D2D2D2CBCBCBCBCBCBCBCBCBCBCBCB
+B0B0B0B0B0B0B0B0B0787878787878787878585858585858585858575757575757575757636363
+6363636363636363637979797979797979797C7C7C7C7C7C7C7C7C7B7B7B7B7B7B7B7B7B7B7B7B
+7B7B7B7B7B7B7B7B7B7A7A7A7A7A7A7A7A7A7C7C7C7C7C7C7C7C7C7D7D7D7D7D7D7D7D7D828282
+8282828282828B8B8B8B8B8B8B8B8B8B8B8B9494949494949494949A9A9A9A9A9A9A9A9AA0A0A0
+A0A0A0A0A0A09E9E9E9E9E9E9E9E9E9292929292929292929292928E8E8E8E8E8E8E8E8E8B8B8B
+8B8B8B8B8B8B8585858585858585858080808080808080808080807D7D7D7D7D7D7D7D7D7C7C7C
+7C7C7C7C7C7C7E7E7E7E7E7E7E7E7E8282828282828282828C8C8C8C8C8C8C8C8C8C8C8C959595
+9595959595959E9E9E9E9E9E9E9E9EA6A6A6A6A6A6A6A6A6AEAEAEAEAEAEAEAEAEB7B7B7B7B7B7
+B7B7B7B7B7B7B8B8B8B8B8B8B8B8B8B7B7B7B7B7B7B7B7B7B3B3B3B3B3B3B3B3B3ABABABABABAB
+ABABABABABABA4A4A4A4A4A4A4A4A4A1A1A1A1A1A1A1A1A1A1A1A1A1A1A1A1A1A19E9E9E9E9E9E
+9E9E9E9D9D9D9D9D9D9D9D9D9D9D9D9A9A9A9A9A9A9A9A9A929292929292929292858585858585
+8585857272727272727272725F605F5F605F5F605F5F605F737373737373737373999999999999
+999999AAAAAAAAAAAAAAAAAAB2B2B2B2B2B2B2B2B2B2B2B2BDBDBDBDBDBDBDBDBDBFBFBFBFBFBF
+BFBFBFBABABABABABABABABAB6B6B6B6B6B6B6B6B6B4B4B4B4B4B4B4B4B4B4B4B4ACACACACACAC
+ACACACA2A2A2A2A2A2A2A2A29F9F9F9F9F9F9F9F9FC2C2C2C2C2C2C2C2C2F4F4F4F4F4F4F4F4F4
+F4F4F4FEFEFEFEFEFEFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9F9F9F9F9F9F9F9F9BBBBBBBBBBBBBBBBBB
+E2E2E2E2E2E2E2E2E2E1E1E1E1E1E1E1E1E1E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0
+DFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDE
+DCDCDCDCDCDCDCDCDCDDDDDDDDDDDDDDDDDDDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDC
+DDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDBDBDB
+DBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDADADA
+DADADADADADAD8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D7D7D7D7D7D7D7D7D7D6D6D6
+D6D6D6D6D6D6D6D6D5D6D6D5D6D6D5D6D6D5D5D5D5D5D5D5D5D5D5D4D4D4D4D4D4D4D4D4D4D4D4
+D4D4D4D4D4D4D2D2D2D2D2D2D2D2D2CBCBCBCBCBCBCBCBCBCBCBCBB0B0B0B0B0B0B0B0B0787878
+787878787878585858585858585858575757575757575757636363636363636363636363797979
+7979797979797C7C7C7C7C7C7C7C7C7B7B7B7B7B7B7B7B7B7B7B7B7B7B7B7B7B7B7B7B7B7A7A7A
+7A7A7A7A7A7A7C7C7C7C7C7C7C7C7C7D7D7D7D7D7D7D7D7D8282828282828282828B8B8B8B8B8B
+8B8B8B8B8B8B9494949494949494949A9A9A9A9A9A9A9A9AA0A0A0A0A0A0A0A0A09E9E9E9E9E9E
+9E9E9E9292929292929292929292928E8E8E8E8E8E8E8E8E8B8B8B8B8B8B8B8B8B858585858585
+8585858080808080808080808080807D7D7D7D7D7D7D7D7D7C7C7C7C7C7C7C7C7C7E7E7E7E7E7E
+7E7E7E8282828282828282828C8C8C8C8C8C8C8C8C8C8C8C9595959595959595959E9E9E9E9E9E
+9E9E9EA6A6A6A6A6A6A6A6A6AEAEAEAEAEAEAEAEAEB7B7B7B7B7B7B7B7B7B7B7B7B8B8B8B8B8B8
+B8B8B8B7B7B7B7B7B7B7B7B7B3B3B3B3B3B3B3B3B3ABABABABABABABABABABABABA4A4A4A4A4A4
+A4A4A4A1A1A1A1A1A1A1A1A1A1A1A1A1A1A1A1A1A19E9E9E9E9E9E9E9E9E9D9D9D9D9D9D9D9D9D
+9D9D9D9A9A9A9A9A9A9A9A9A929292929292929292858585858585858585727272727272727272
+5F605F5F605F5F605F5F605F737373737373737373999999999999999999AAAAAAAAAAAAAAAAAA
+B2B2B2B2B2B2B2B2B2B2B2B2BDBDBDBDBDBDBDBDBDBFBFBFBFBFBFBFBFBFBABABABABABABABABA
+B6B6B6B6B6B6B6B6B6B4B4B4B4B4B4B4B4B4B4B4B4ACACACACACACACACACA2A2A2A2A2A2A2A2A2
+9F9F9F9F9F9F9F9F9FC2C2C2C2C2C2C2C2C2F4F4F4F4F4F4F4F4F4F4F4F4FEFEFEFEFEFEFEFEFE
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFF9F9F9F9F9F9F9F9F9BBBBBBBBBBBBBBBBBBE2E2E2E2E2E2E2E2E2E1E1E1
+E1E1E1E1E1E1E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0DFDFDFDFDFDFDFDFDFDFDFDF
+DFDFDFDFDFDFDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDCDCDCDCDCDCDCDCDCDDDDDD
+DDDDDDDDDDDDDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDDDDDDDDDDDDDDDDDDDDDDDD
+DDDDDDDDDDDDDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDBDBDBDBDBDBDBDBDBDBDBDBDBDBDB
+DBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDADADADADADADADADAD8D8D8D8D8D8
+D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D7D7D7D7D7D7D7D7D7D6D6D6D6D6D6D6D6D6D6D6D5D6D6D5
+D6D6D5D6D6D5D5D5D5D5D5D5D5D5D5D4D4D4D4D4D4D4D4D4D4D4D4D4D4D4D4D4D4D2D2D2D2D2D2
+D2D2D2CBCBCBCBCBCBCBCBCBCBCBCBB0B0B0B0B0B0B0B0B0787878787878787878585858585858
+5858585757575757575757576363636363636363636363637979797979797979797C7C7C7C7C7C
+7C7C7C7B7B7B7B7B7B7B7B7B7B7B7B7B7B7B7B7B7B7B7B7B7A7A7A7A7A7A7A7A7A7C7C7C7C7C7C
+7C7C7C7D7D7D7D7D7D7D7D7D8282828282828282828B8B8B8B8B8B8B8B8B8B8B8B949494949494
+9494949A9A9A9A9A9A9A9A9AA0A0A0A0A0A0A0A0A09E9E9E9E9E9E9E9E9E929292929292929292
+9292928E8E8E8E8E8E8E8E8E8B8B8B8B8B8B8B8B8B858585858585858585808080808080808080
+8080807D7D7D7D7D7D7D7D7D7C7C7C7C7C7C7C7C7C7E7E7E7E7E7E7E7E7E828282828282828282
+8C8C8C8C8C8C8C8C8C8C8C8C9595959595959595959E9E9E9E9E9E9E9E9EA6A6A6A6A6A6A6A6A6
+AEAEAEAEAEAEAEAEAEB7B7B7B7B7B7B7B7B7B7B7B7B8B8B8B8B8B8B8B8B8B7B7B7B7B7B7B7B7B7
+B3B3B3B3B3B3B3B3B3ABABABABABABABABABABABABA4A4A4A4A4A4A4A4A4A1A1A1A1A1A1A1A1A1
+A1A1A1A1A1A1A1A1A19E9E9E9E9E9E9E9E9E9D9D9D9D9D9D9D9D9D9D9D9D9A9A9A9A9A9A9A9A9A
+9292929292929292928585858585858585857272727272727272725F605F5F605F5F605F5F605F
+737373737373737373999999999999999999AAAAAAAAAAAAAAAAAAB2B2B2B2B2B2B2B2B2B2B2B2
+BDBDBDBDBDBDBDBDBDBFBFBFBFBFBFBFBFBFBABABABABABABABABAB6B6B6B6B6B6B6B6B6B4B4B4
+B4B4B4B4B4B4B4B4B4ACACACACACACACACACA2A2A2A2A2A2A2A2A29F9F9F9F9F9F9F9F9FC2C2C2
+C2C2C2C2C2C2F4F4F4F4F4F4F4F4F4F4F4F4FEFEFEFEFEFEFEFEFEFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9F9F9
+F9F9F9F9F9F9BBBBBBBBBBBBBBBBBBE0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0
+E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0DEDEDEDEDEDEDEDEDEDDDDDDDDDDDDDDDDDDDCDCDCDCDCDC
+DCDCDCDBDBDBDBDBDBDBDBDBDBDBDBDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDBDBDBDBDBDB
+DBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDB
+DBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDB
+DBDBDBDBDBDBDBDBDBDBDBDBD8D8D8D8D8D8D8D8D8D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7
+D7D7D7D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D5D6D6D5D6D6D5D6D6D5D5D5D5D5D5D5
+D5D5D5D4D4D4D4D4D4D4D4D4D3D3D3D3D3D3D3D3D3D1D1D1D1D1D1D1D1D1CFCFCFCFCFCFCFCFCF
+CFCFCFBCBCBCBCBCBCBCBCBC8B8B8B8B8B8B8B8B8B5454545454545454543A3A3A3A3A3A3A3A3A
+4848484848484848484848487070707070707070707C7C7C7C7C7C7C7C7C7A7A7A7A7A7A7A7A7A
+7B7B7B7B7B7B7B7B7B7B7B7B7979797979797979797A7A7A7A7A7A7A7A7A7C7C7C7C7C7C7C7C7C
+808080808080808080898989898989898989898989919191919191919191989898989898989898
+A1A1A1A1A1A1A1A1A19D9D9D9D9D9D9D9D9D8F8F8F8F8F8F8F8F8F8F8F8F888888888888888888
+8383838383838383837C7C7C7C7C7C7C7C7C767676767676767676767676717171717171717171
+7474747474747474747C7C7C7C7C7C7C7C7C8383838383838383838E8E8E8E8E8E8E8E8E8E8E8E
+989898989898989898999999999999999999979797979797979797949494949494949494959595
+959595959595959595919191919191919191919191919191919191919191919191919191909090
+9090909090909090909090909090909090909090909090909090908D8D8D8D8D8D8D8D8D848484
+8484848484847F7F7F7F7F7F7F7F7F7F7F7F7979797979797979797474747474747474746E6E6E
+6E6E6E6E6E6E6A6A6A6A6A6A6A6A6A7171717171717171717171718B8B8B8B8B8B8B8B8BA9A9A9
+A9A9A9A9A9A9B6B6B6B6B6B6B6B6B6BBBBBBBBBBBBBBBBBBBBBBBBBFBFBFBFBFBFBFBFBFBFBFBF
+BFBFBFBFBFBFB8B8B8B8B8B8B8B8B8B5B5B5B5B5B5B5B5B5B2B2B2B2B2B2B2B2B2B2B2B2AAAAAA
+AAAAAAAAAAAAA1A1A1A1A1A1A1A1A19F9F9F9F9F9F9F9F9FCBCBCBCBCBCBCBCBCBF9F9F9F9F9F9
+F9F9F9F9F9F9FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9F9F9F9F9F9F9F9F9C5C5C5C5C5C5
+C5C5C5E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0
+E0E0E0DEDEDEDEDEDEDEDEDEDDDDDDDDDDDDDDDDDDDCDCDCDCDCDCDCDCDCDBDBDBDBDBDBDBDBDB
+DBDBDBDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDB
+DBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDB
+DBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDB
+D8D8D8D8D8D8D8D8D8D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D6D6D6D6D6D6D6D6D6
+D6D6D6D6D6D6D6D6D6D6D6D5D6D6D5D6D6D5D6D6D5D5D5D5D5D5D5D5D5D5D4D4D4D4D4D4D4D4D4
+D3D3D3D3D3D3D3D3D3D1D1D1D1D1D1D1D1D1CFCFCFCFCFCFCFCFCFCFCFCFBCBCBCBCBCBCBCBCBC
+8B8B8B8B8B8B8B8B8B5454545454545454543A3A3A3A3A3A3A3A3A484848484848484848484848
+7070707070707070707C7C7C7C7C7C7C7C7C7A7A7A7A7A7A7A7A7A7B7B7B7B7B7B7B7B7B7B7B7B
+7979797979797979797A7A7A7A7A7A7A7A7A7C7C7C7C7C7C7C7C7C808080808080808080898989
+898989898989898989919191919191919191989898989898989898A1A1A1A1A1A1A1A1A19D9D9D
+9D9D9D9D9D9D8F8F8F8F8F8F8F8F8F8F8F8F8888888888888888888383838383838383837C7C7C
+7C7C7C7C7C7C7676767676767676767676767171717171717171717474747474747474747C7C7C
+7C7C7C7C7C7C8383838383838383838E8E8E8E8E8E8E8E8E8E8E8E989898989898989898999999
+999999999999979797979797979797949494949494949494959595959595959595959595919191
+919191919191919191919191919191919191919191919191909090909090909090909090909090
+9090909090909090909090909090908D8D8D8D8D8D8D8D8D8484848484848484847F7F7F7F7F7F
+7F7F7F7F7F7F7979797979797979797474747474747474746E6E6E6E6E6E6E6E6E6A6A6A6A6A6A
+6A6A6A7171717171717171717171718B8B8B8B8B8B8B8B8BA9A9A9A9A9A9A9A9A9B6B6B6B6B6B6
+B6B6B6BBBBBBBBBBBBBBBBBBBBBBBBBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFB8B8B8B8B8B8
+B8B8B8B5B5B5B5B5B5B5B5B5B2B2B2B2B2B2B2B2B2B2B2B2AAAAAAAAAAAAAAAAAAA1A1A1A1A1A1
+A1A1A19F9F9F9F9F9F9F9F9FCBCBCBCBCBCBCBCBCBF9F9F9F9F9F9F9F9F9F9F9F9FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFF9F9F9F9F9F9F9F9F9C5C5C5C5C5C5C5C5C5E0E0E0E0E0E0E0E0E0
+E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0DEDEDEDEDEDEDEDEDE
+DDDDDDDDDDDDDDDDDDDCDCDCDCDCDCDCDCDCDBDBDBDBDBDBDBDBDBDBDBDBDCDCDCDCDCDCDCDCDC
+DCDCDCDCDCDCDCDCDCDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDB
+DBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDB
+DBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBD8D8D8D8D8D8D8D8D8D7D7D7
+D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D5
+D6D6D5D6D6D5D6D6D5D5D5D5D5D5D5D5D5D5D4D4D4D4D4D4D4D4D4D3D3D3D3D3D3D3D3D3D1D1D1
+D1D1D1D1D1D1CFCFCFCFCFCFCFCFCFCFCFCFBCBCBCBCBCBCBCBCBC8B8B8B8B8B8B8B8B8B545454
+5454545454543A3A3A3A3A3A3A3A3A4848484848484848484848487070707070707070707C7C7C
+7C7C7C7C7C7C7A7A7A7A7A7A7A7A7A7B7B7B7B7B7B7B7B7B7B7B7B7979797979797979797A7A7A
+7A7A7A7A7A7A7C7C7C7C7C7C7C7C7C808080808080808080898989898989898989898989919191
+919191919191989898989898989898A1A1A1A1A1A1A1A1A19D9D9D9D9D9D9D9D9D8F8F8F8F8F8F
+8F8F8F8F8F8F8888888888888888888383838383838383837C7C7C7C7C7C7C7C7C767676767676
+7676767676767171717171717171717474747474747474747C7C7C7C7C7C7C7C7C838383838383
+8383838E8E8E8E8E8E8E8E8E8E8E8E989898989898989898999999999999999999979797979797
+979797949494949494949494959595959595959595959595919191919191919191919191919191
+919191919191919191919191909090909090909090909090909090909090909090909090909090
+9090908D8D8D8D8D8D8D8D8D8484848484848484847F7F7F7F7F7F7F7F7F7F7F7F797979797979
+7979797474747474747474746E6E6E6E6E6E6E6E6E6A6A6A6A6A6A6A6A6A717171717171717171
+7171718B8B8B8B8B8B8B8B8BA9A9A9A9A9A9A9A9A9B6B6B6B6B6B6B6B6B6BBBBBBBBBBBBBBBBBB
+BBBBBBBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFB8B8B8B8B8B8B8B8B8B5B5B5B5B5B5B5B5B5
+B2B2B2B2B2B2B2B2B2B2B2B2AAAAAAAAAAAAAAAAAAA1A1A1A1A1A1A1A1A19F9F9F9F9F9F9F9F9F
+CBCBCBCBCBCBCBCBCBF9F9F9F9F9F9F9F9F9F9F9F9FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+F9F9F9F9F9F9F9F9F9C5C5C5C5C5C5C5C5C5E0E0E0E0E0E0E0E0E0DFE0DFDFE0DFDFE0DFDFE0DF
+DFE0DFDFE0DFDFE0DFDEDEDEDEDEDEDEDEDEDDDDDDDDDDDDDDDDDDDCDCDCDCDCDCDCDCDCDBDBDB
+DBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDCDCDCDCDCDCDCDCDCDBDBDBDBDBDBDBDBDBDBDBDB
+DBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDB
+DBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDB
+DBDBDBDBDBDBDADADADADADADADADAD8D8D8D8D8D8D8D8D8D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7
+D7D7D7D7D7D7D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D4D4D4
+D4D4D4D4D4D4D4D4D4D4D4D4D4D4D4D2D2D2D2D2D2D2D2D2D1D1D1D1D1D1D1D1D1D0D0D0D0D0D0
+D0D0D0D0D0D0C5C5C5C5C5C5C5C5C5A5A5A5A5A5A5A5A5A56C6C6C6C6C6C6C6C6C3E3E3E3E3E3E
+3E3E3E4040404040404040404040406969696969696969697C7C7C7C7C7C7C7C7C7B7B7B7B7B7B
+7B7B7B7979797979797979797979797979797979797979797A7A7A7A7A7A7A7A7A7C7C7C7C7C7C
+7C7C7C828282828282828282898989898989898989898989909090909090909090949494949494
+9494949F9F9F9F9F9F9F9F9F9D9D9D9D9D9D9D9D9D8F8F8F8F8F8F8F8F8F8F8F8F858585858585
+8585857C7C7C7C7C7C7C7C7C7070707070707070706D6D6D6D6D6D6D6D6D6D6D6D6E6E6E6E6E6E
+6E6E6E7373737373737373737D7D7D7D7D7D7D7D7D808080808080808080818181818181818181
+8181818181818181818181817E7E7E7E7E7E7E7E7E7C7C7C7C7C7C7C7C7C7D7D7D7D7D7D7D7D7D
+7E7E7E7E7E7E7E7E7E7E7E7E7B7B7B7B7B7B7B7B7B818181818181818181828282828282828282
+8383838383838383838383838585858585858585858585858585858585857F7F7F7F7F7F7F7F7F
+777777777777777777747474747474747474747474707070707070707070727272727272727272
+757575757575757575838383838383838383999999999999999999999999A8A8A8A8A8A8A8A8A8
+B7B7B7B7B7B7B7B7B7BBBBBBBBBBBBBBBBBBC0C0C0C0C0C0C0C0C0C0C0C0C3C3C3C3C3C3C3C3C3
+BEBEBEBEBEBEBEBEBEB7B7B7B7B7B7B7B7B7B5B5B5B5B5B5B5B5B5B0B1B0B0B1B0B0B1B0B0B1B0
+A7A7A7A7A7A7A7A7A79E9E9E9E9E9E9E9E9EA2A2A2A2A2A2A2A2A2D6D6D6D6D6D6D6D6D6FCFCFC
+FCFCFCFCFCFCFCFCFCFEFEFEFEFEFEFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9F9F9F9F9F9F9F9F9C6C6C6
+C6C6C6C6C6C6E0E0E0E0E0E0E0E0E0DFE0DFDFE0DFDFE0DFDFE0DFDFE0DFDFE0DFDFE0DFDEDEDE
+DEDEDEDEDEDEDDDDDDDDDDDDDDDDDDDCDCDCDCDCDCDCDCDCDBDBDBDBDBDBDBDBDBDBDBDBDBDBDB
+DBDBDBDBDBDBDCDCDCDCDCDCDCDCDCDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDB
+DBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDB
+DBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDADADADADADA
+DADADAD8D8D8D8D8D8D8D8D8D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D6D6D6D6D6D6
+D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D4D4D4D4D4D4D4D4D4D4D4D4D4D4D4
+D4D4D4D2D2D2D2D2D2D2D2D2D1D1D1D1D1D1D1D1D1D0D0D0D0D0D0D0D0D0D0D0D0C5C5C5C5C5C5
+C5C5C5A5A5A5A5A5A5A5A5A56C6C6C6C6C6C6C6C6C3E3E3E3E3E3E3E3E3E404040404040404040
+4040406969696969696969697C7C7C7C7C7C7C7C7C7B7B7B7B7B7B7B7B7B797979797979797979
+7979797979797979797979797A7A7A7A7A7A7A7A7A7C7C7C7C7C7C7C7C7C828282828282828282
+8989898989898989898989899090909090909090909494949494949494949F9F9F9F9F9F9F9F9F
+9D9D9D9D9D9D9D9D9D8F8F8F8F8F8F8F8F8F8F8F8F8585858585858585857C7C7C7C7C7C7C7C7C
+7070707070707070706D6D6D6D6D6D6D6D6D6D6D6D6E6E6E6E6E6E6E6E6E737373737373737373
+7D7D7D7D7D7D7D7D7D808080808080808080818181818181818181818181818181818181818181
+7E7E7E7E7E7E7E7E7E7C7C7C7C7C7C7C7C7C7D7D7D7D7D7D7D7D7D7E7E7E7E7E7E7E7E7E7E7E7E
+7B7B7B7B7B7B7B7B7B818181818181818181828282828282828282838383838383838383838383
+8585858585858585858585858585858585857F7F7F7F7F7F7F7F7F777777777777777777747474
+747474747474747474707070707070707070727272727272727272757575757575757575838383
+838383838383999999999999999999999999A8A8A8A8A8A8A8A8A8B7B7B7B7B7B7B7B7B7BBBBBB
+BBBBBBBBBBBBC0C0C0C0C0C0C0C0C0C0C0C0C3C3C3C3C3C3C3C3C3BEBEBEBEBEBEBEBEBEB7B7B7
+B7B7B7B7B7B7B5B5B5B5B5B5B5B5B5B0B1B0B0B1B0B0B1B0B0B1B0A7A7A7A7A7A7A7A7A79E9E9E
+9E9E9E9E9E9EA2A2A2A2A2A2A2A2A2D6D6D6D6D6D6D6D6D6FCFCFCFCFCFCFCFCFCFCFCFCFEFEFE
+FEFEFEFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9F9F9F9F9F9F9F9F9C6C6C6C6C6C6C6C6C6DFE0DFDFE0DF
+DFE0DFDFDFDFDFDFDFDFDFDFDDDDDDDDDDDDDDDDDDDDDDDDDCDCDCDCDCDCDCDCDCDBDBDBDBDBDB
+DBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDB
+DBDBDBDBDBDBDBDBDBDBDBDBD9D9D9D9D9D9D9D9D9DADADADADADADADADADADADAD9D9D9D9D9D9
+D9D9D9DADADADADADADADADADBDBDBDBDBDBDBDBDBDADADADADADADADADAD9D9D9D9D9D9D9D9D9
+D9D9D9DADADADADADADADADADBDBDBDBDBDBDBDBDBD8D8D8D8D8D8D8D8D8D6D6D6D6D6D6D6D6D6
+D6D6D5D6D6D5D6D6D5D6D6D5D6D6D5D6D6D5D6D6D5D6D6D5D6D6D5D6D6D5D5D5D5D5D5D5D5D5D5
+D5D5D5D5D5D5D5D5D5D5D5D5D4D4D4D4D4D4D4D4D4D3D3D3D3D3D3D3D3D3D1D1D1D1D1D1D1D1D1
+D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0C9C9C9C9C9C9C9C9C9BBBBBBBBBBBBBBBBBB
+909090909090909090545454545454545454414141414141414141414141616161616161616161
+7979797979797979797B7B7B7B7B7B7B7B7B797979797979797979797979787878787878787878
+7878787878787878787B7B7B7B7B7B7B7B7B8282828282828282828A8A8A8A8A8A8A8A8A8A8A8A
+9090909090909090909090909090909090909999999999999999999C9C9C9C9C9C9C9C9C949494
+9494949494949494948A8A8A8A8A8A8A8A8A7474747474747474745B5B5B5B5B5B5B5B5B5C5C5C
+5C5C5C5C5C5C5C5C5C6666666666666666666C6C6C6C6C6C6C6C6C6F6F6F6F6F6F6F6F6F6C6C6C
+6C6C6C6C6C6C6868686868686868686868686666666666666666666767676767676767676B6B6B
+6B6B6B6B6B6B6E6E6E6E6E6E6E6E6E717171717171717171717171727272727272727272767676
+7676767676767777777777777777777777777777777777777777777C7C7C7C7C7C7C7C7C818181
+8181818181818181818181818181818585858585858585858B8B8B8B8B8B8B8B8B8B8B8B8C8C8C
+8C8C8C8C8C8C8C8C8C8C8C8C8C8C8C8E8E8E8E8E8E8E8E8E9F9F9F9F9F9F9F9F9FB4B4B4B4B4B4
+B4B4B4B4B4B4BEBEBEBEBEBEBEBEBEBFBFBFBFBFBFBFBFBFBCBCBCBCBCBCBCBCBCBFBFBFBFBFBF
+BFBFBFBFBFBFC0C0C0C0C0C0C0C0C0BABABABABABABABABAB6B6B6B6B6B6B6B6B6B4B4B4B4B4B4
+B4B4B4AEAEAEAEAEAEAEAEAEAEAEAEA2A2A2A2A2A2A2A2A29B9B9B9B9B9B9B9B9BA6A6A6A6A6A6
+A6A6A6DEDEDEDEDEDEDEDEDEFCFCFCFCFCFCFCFCFCFCFCFCFEFEFEFEFEFEFEFEFEFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFF9F9F9F9F9F9F9F9F9C3C3C3C3C3C3C3C3C3DFE0DFDFE0DFDFE0DFDFDFDFDFDFDFDFDFDF
+DDDDDDDDDDDDDDDDDDDDDDDDDCDCDCDCDCDCDCDCDCDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDB
+DBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDB
+D9D9D9D9D9D9D9D9D9DADADADADADADADADADADADAD9D9D9D9D9D9D9D9D9DADADADADADADADADA
+DBDBDBDBDBDBDBDBDBDADADADADADADADADAD9D9D9D9D9D9D9D9D9D9D9D9DADADADADADADADADA
+DBDBDBDBDBDBDBDBDBD8D8D8D8D8D8D8D8D8D6D6D6D6D6D6D6D6D6D6D6D5D6D6D5D6D6D5D6D6D5
+D6D6D5D6D6D5D6D6D5D6D6D5D6D6D5D6D6D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5
+D4D4D4D4D4D4D4D4D4D3D3D3D3D3D3D3D3D3D1D1D1D1D1D1D1D1D1D0D0D0D0D0D0D0D0D0D0D0D0
+D0D0D0D0D0D0D0D0D0C9C9C9C9C9C9C9C9C9BBBBBBBBBBBBBBBBBB909090909090909090545454
+5454545454544141414141414141414141416161616161616161617979797979797979797B7B7B
+7B7B7B7B7B7B7979797979797979797979797878787878787878787878787878787878787B7B7B
+7B7B7B7B7B7B8282828282828282828A8A8A8A8A8A8A8A8A8A8A8A909090909090909090909090
+9090909090909999999999999999999C9C9C9C9C9C9C9C9C9494949494949494949494948A8A8A
+8A8A8A8A8A8A7474747474747474745B5B5B5B5B5B5B5B5B5C5C5C5C5C5C5C5C5C5C5C5C666666
+6666666666666C6C6C6C6C6C6C6C6C6F6F6F6F6F6F6F6F6F6C6C6C6C6C6C6C6C6C686868686868
+6868686868686666666666666666666767676767676767676B6B6B6B6B6B6B6B6B6E6E6E6E6E6E
+6E6E6E717171717171717171717171727272727272727272767676767676767676777777777777
+7777777777777777777777777777777C7C7C7C7C7C7C7C7C818181818181818181818181818181
+8181818585858585858585858B8B8B8B8B8B8B8B8B8B8B8B8C8C8C8C8C8C8C8C8C8C8C8C8C8C8C
+8C8C8C8E8E8E8E8E8E8E8E8E9F9F9F9F9F9F9F9F9FB4B4B4B4B4B4B4B4B4B4B4B4BEBEBEBEBEBE
+BEBEBEBFBFBFBFBFBFBFBFBFBCBCBCBCBCBCBCBCBCBFBFBFBFBFBFBFBFBFBFBFBFC0C0C0C0C0C0
+C0C0C0BABABABABABABABABAB6B6B6B6B6B6B6B6B6B4B4B4B4B4B4B4B4B4AEAEAEAEAEAEAEAEAE
+AEAEAEA2A2A2A2A2A2A2A2A29B9B9B9B9B9B9B9B9BA6A6A6A6A6A6A6A6A6DEDEDEDEDEDEDEDEDE
+FCFCFCFCFCFCFCFCFCFCFCFCFEFEFEFEFEFEFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9F9F9F9F9F9F9F9F9
+C3C3C3C3C3C3C3C3C3DFE0DFDFE0DFDFE0DFDFDFDFDFDFDFDFDFDFDDDDDDDDDDDDDDDDDDDDDDDD
+DCDCDCDCDCDCDCDCDCDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDB
+DBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBD9D9D9D9D9D9D9D9D9DADADA
+DADADADADADADADADAD9D9D9D9D9D9D9D9D9DADADADADADADADADADBDBDBDBDBDBDBDBDBDADADA
+DADADADADADAD9D9D9D9D9D9D9D9D9D9D9D9DADADADADADADADADADBDBDBDBDBDBDBDBDBD8D8D8
+D8D8D8D8D8D8D6D6D6D6D6D6D6D6D6D6D6D5D6D6D5D6D6D5D6D6D5D6D6D5D6D6D5D6D6D5D6D6D5
+D6D6D5D6D6D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D4D4D4D4D4D4D4D4D4D3D3D3
+D3D3D3D3D3D3D1D1D1D1D1D1D1D1D1D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0C9C9C9
+C9C9C9C9C9C9BBBBBBBBBBBBBBBBBB909090909090909090545454545454545454414141414141
+4141414141416161616161616161617979797979797979797B7B7B7B7B7B7B7B7B797979797979
+7979797979797878787878787878787878787878787878787B7B7B7B7B7B7B7B7B828282828282
+8282828A8A8A8A8A8A8A8A8A8A8A8A909090909090909090909090909090909090999999999999
+9999999C9C9C9C9C9C9C9C9C9494949494949494949494948A8A8A8A8A8A8A8A8A747474747474
+7474745B5B5B5B5B5B5B5B5B5C5C5C5C5C5C5C5C5C5C5C5C6666666666666666666C6C6C6C6C6C
+6C6C6C6F6F6F6F6F6F6F6F6F6C6C6C6C6C6C6C6C6C686868686868686868686868666666666666
+6666666767676767676767676B6B6B6B6B6B6B6B6B6E6E6E6E6E6E6E6E6E717171717171717171
+717171727272727272727272767676767676767676777777777777777777777777777777777777
+7777777C7C7C7C7C7C7C7C7C818181818181818181818181818181818181858585858585858585
+8B8B8B8B8B8B8B8B8B8B8B8B8C8C8C8C8C8C8C8C8C8C8C8C8C8C8C8C8C8C8E8E8E8E8E8E8E8E8E
+9F9F9F9F9F9F9F9F9FB4B4B4B4B4B4B4B4B4B4B4B4BEBEBEBEBEBEBEBEBEBFBFBFBFBFBFBFBFBF
+BCBCBCBCBCBCBCBCBCBFBFBFBFBFBFBFBFBFBFBFBFC0C0C0C0C0C0C0C0C0BABABABABABABABABA
+B6B6B6B6B6B6B6B6B6B4B4B4B4B4B4B4B4B4AEAEAEAEAEAEAEAEAEAEAEAEA2A2A2A2A2A2A2A2A2
+9B9B9B9B9B9B9B9B9BA6A6A6A6A6A6A6A6A6DEDEDEDEDEDEDEDEDEFCFCFCFCFCFCFCFCFCFCFCFC
+FEFEFEFEFEFEFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9F9F9F9F9F9F9F9F9C3C3C3C3C3C3C3C3C3DEDEDE
+DEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDDDDDDDDDDDDDDDDDDDDDDDDDBDBDBDBDBDBDBDBDBDBDBDB
+DBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDADADADADADADADADADADADADBDBDB
+DBDBDBDBDBDBDADADADADADADADADAD9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9
+D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9DADADADADADADADADAD9D9D9D9D9D9D9D9D9D8D8D8D8D8D8
+D8D8D8D8D8D8D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D7D7D7D7D7D7D7D7D7D6D6D6D6D6D6
+D6D6D6D6D6D5D6D6D5D6D6D5D6D6D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D6D6D5D6D6D5
+D6D6D5D6D6D5D6D6D5D6D6D5D6D6D5D4D4D4D4D4D4D4D4D4D2D2D2D2D2D2D2D2D2D0D0D0D0D0D0
+D0D0D0D0D0D0D0D0D0D0D0D0CFCFCFCFCFCFCFCFCFCFCFCFCBCBCBCBCBCBCBCBCBC8C8C8C8C8C8
+C8C8C8B1B1B1B1B1B1B1B1B17878787878787878785151515151515151515151515D5D5D5D5D5D
+5D5D5D7777777777777777777A7A7A7A7A7A7A7A7A787878787878787878787878777777777777
+7777777777777777777777777C7C7C7C7C7C7C7C7C8282828282828282828C8C8C8C8C8C8C8C8C
+8C8C8C9191919191919191918F8F8F8F8F8F8F8F8F9494949494949494949C9C9C9C9C9C9C9C9C
+9B9B9B9B9B9B9B9B9B9B9B9B9494949494949494947C7C7C7C7C7C7C7C7C565656565656565656
+494949494949494949494949525252525252525252585858585858585858595959595959595959
+5757575757575757575858585858585858585858585B5B5B5B5B5B5B5B5B626262626262626262
+6767676767676767676E6E6E6E6E6E6E6E6E7676767676767676767676767D7D7D7D7D7D7D7D7D
+7F7F7F7F7F7F7F7F7F8484848484848484849090909090909090909090909A9A9A9A9A9A9A9A9A
+A1A1A1A1A1A1A1A1A1A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A1A1A1A1A1A1A1A1A1A1A1A1
+9E9E9E9E9E9E9E9E9E9999999999999999999E9E9E9E9E9E9E9E9EB1B1B1B1B1B1B1B1B1C2C2C2
+C2C2C2C2C2C2C2C2C2C7C7C7C7C7C7C7C7C7C0C0C0C0C0C0C0C0C0B8B8B8B8B8B8B8B8B8B9B9B9
+B9B9B9B9B9B9B9B9B9BBBBBBBBBBBBBBBBBBB6B6B6B6B6B6B6B6B6B3B3B3B3B3B3B3B3B3B1B1B1
+B1B1B1B1B1B1ACACACACACACACACACACACACA0A0A0A0A0A0A0A0A09A9A9A9A9A9A9A9A9AACACAC
+ACACACACACACE6E6E6E6E6E6E6E6E6FCFCFCFCFCFCFCFCFCFCFCFCFEFEFEFEFEFEFEFEFEFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFF7F7F7F7F7F7F7F7F7B4B4B4B4B4B4B4B4B4DEDEDEDEDEDEDEDEDEDEDEDEDEDEDE
+DEDEDEDDDDDDDDDDDDDDDDDDDDDDDDDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDB
+DBDBDBDBDBDBDBDBDBDBDBDBDADADADADADADADADADADADADBDBDBDBDBDBDBDBDBDADADADADADA
+DADADAD9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9
+D9D9D9DADADADADADADADADAD9D9D9D9D9D9D9D9D9D8D8D8D8D8D8D8D8D8D8D8D8D9D9D9D9D9D9
+D9D9D9D9D9D9D9D9D9D9D9D9D7D7D7D7D7D7D7D7D7D6D6D6D6D6D6D6D6D6D6D6D5D6D6D5D6D6D5
+D6D6D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D6D6D5D6D6D5D6D6D5D6D6D5D6D6D5D6D6D5
+D6D6D5D4D4D4D4D4D4D4D4D4D2D2D2D2D2D2D2D2D2D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0
+CFCFCFCFCFCFCFCFCFCFCFCFCBCBCBCBCBCBCBCBCBC8C8C8C8C8C8C8C8C8B1B1B1B1B1B1B1B1B1
+7878787878787878785151515151515151515151515D5D5D5D5D5D5D5D5D777777777777777777
+7A7A7A7A7A7A7A7A7A787878787878787878787878777777777777777777777777777777777777
+7C7C7C7C7C7C7C7C7C8282828282828282828C8C8C8C8C8C8C8C8C8C8C8C919191919191919191
+8F8F8F8F8F8F8F8F8F9494949494949494949C9C9C9C9C9C9C9C9C9B9B9B9B9B9B9B9B9B9B9B9B
+9494949494949494947C7C7C7C7C7C7C7C7C565656565656565656494949494949494949494949
+525252525252525252585858585858585858595959595959595959575757575757575757585858
+5858585858585858585B5B5B5B5B5B5B5B5B6262626262626262626767676767676767676E6E6E
+6E6E6E6E6E6E7676767676767676767676767D7D7D7D7D7D7D7D7D7F7F7F7F7F7F7F7F7F848484
+8484848484849090909090909090909090909A9A9A9A9A9A9A9A9AA1A1A1A1A1A1A1A1A1A2A2A2
+A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A1A1A1A1A1A1A1A1A1A1A1A19E9E9E9E9E9E9E9E9E999999
+9999999999999E9E9E9E9E9E9E9E9EB1B1B1B1B1B1B1B1B1C2C2C2C2C2C2C2C2C2C2C2C2C7C7C7
+C7C7C7C7C7C7C0C0C0C0C0C0C0C0C0B8B8B8B8B8B8B8B8B8B9B9B9B9B9B9B9B9B9B9B9B9BBBBBB
+BBBBBBBBBBBBB6B6B6B6B6B6B6B6B6B3B3B3B3B3B3B3B3B3B1B1B1B1B1B1B1B1B1ACACACACACAC
+ACACACACACACA0A0A0A0A0A0A0A0A09A9A9A9A9A9A9A9A9AACACACACACACACACACE6E6E6E6E6E6
+E6E6E6FCFCFCFCFCFCFCFCFCFCFCFCFEFEFEFEFEFEFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7F7F7F7F7F7
+F7F7F7B4B4B4B4B4B4B4B4B4DEDEDEDEDEDEDEDEDEDDDDDDDDDDDDDDDDDDDBDBDBDBDBDBDBDBDB
+DBDBDBDBDBDBDBDBDBDBDBDBDADADADADADADADADADADADADADADADADADADBDBDBDBDBDBDBDBDB
+DADADADADADADADADADADADAD9D9D9D9D9D9D9D9D9D8D8D8D8D8D8D8D8D8D9D9D9D9D9D9D9D9D9
+D9D9D9D9D9D9D9D9D9D9D9D9DADADADADADADADADAD9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9
+D9D9D9D9D9D9D9D9D9D8D8D8D8D8D8D8D8D8D8D8D8D9D9D9D9D9D9D9D9D9D8D8D8D8D8D8D8D8D8
+D6D6D6D6D6D6D6D6D6D6D6D5D6D6D5D6D6D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5
+D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D3D3D3D3D3D3D3D3D3D3D3D3D2D2D2D2D2D2D2D2D2
+D1D1D1D1D1D1D1D1D1D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0CECECECECECECECECECECECE
+CDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDC5C5C5C5C5C5C5C5C5A5A5A5A5A5A5A5A5A57A7A7A
+7A7A7A7A7A7A7A7A7A666666666666666666747474747474747474797979797979797979787878
+7878787878787878787676767676767676767575757575757575757B7B7B7B7B7B7B7B7B808080
+8080808080808B8B8B8B8B8B8B8B8B8B8B8B959595959595959595939393939393939393919191
+9191919191919A9A9A9A9A9A9A9A9AA0A0A0A0A0A0A0A0A0A0A0A0A2A2A2A2A2A2A2A2A2989898
+989898989898767676767676767676585858585858585858585858515151515151515151545454
+5454545454545858585858585858585C5C5C5C5C5C5C5C5C6161616161616161616161616C6C6C
+6C6C6C6C6C6C7878787878787878788383838383838383838F8F8F8F8F8F8F8F8F9C9C9C9C9C9C
+9C9C9C9C9C9CA5A5A5A5A5A5A5A5A5A8A8A8A8A8A8A8A8A8ACACACACACACACACACB3B3B3B3B3B3
+B3B3B3B3B3B3BCBCBCBCBCBCBCBCBCC1C1C1C1C1C1C1C1C1B8B8B8B8B8B8B8B8B8AAAAAAAAAAAA
+AAAAAAA4A4A4A4A4A4A4A4A4A4A4A49E9E9E9E9E9E9E9E9EA0A0A0A0A0A0A0A0A0ADADADADADAD
+ADADADBEBEBEBEBEBEBEBEBEC6C6C6C6C6C6C6C6C6C6C6C6C9C9C9C9C9C9C9C9C9BDBDBDBDBDBD
+BDBDBDB0B1B0B0B1B0B0B1B0B0B1B0B0B1B0B0B1B0B0B1B0B3B3B3B3B3B3B3B3B3B1B1B1B1B1B1
+B1B1B1B2B2B2B2B2B2B2B2B2B0B1B0B0B1B0B0B1B0A8A8A8A8A8A8A8A8A8A8A8A89D9D9D9D9D9D
+9D9D9D979797979797979797B7B7B7B7B7B7B7B7B7F1F1F1F1F1F1F1F1F1FDFDFDFDFDFDFDFDFD
+FDFDFDFEFEFEFEFEFEFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9F9F9F9F9F9F9F9F9C1C1C1C1C1C1C1C1C1
+DEDEDEDEDEDEDEDEDEDDDDDDDDDDDDDDDDDDDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDB
+DADADADADADADADADADADADADADADADADADADBDBDBDBDBDBDBDBDBDADADADADADADADADADADADA
+D9D9D9D9D9D9D9D9D9D8D8D8D8D8D8D8D8D8D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9
+DADADADADADADADADAD9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D8D8D8
+D8D8D8D8D8D8D8D8D8D9D9D9D9D9D9D9D9D9D8D8D8D8D8D8D8D8D8D6D6D6D6D6D6D6D6D6D6D6D5
+D6D6D5D6D6D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5
+D5D5D5D5D5D5D3D3D3D3D3D3D3D3D3D3D3D3D2D2D2D2D2D2D2D2D2D1D1D1D1D1D1D1D1D1D0D0D0
+D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0CECECECECECECECECECECECECDCDCDCDCDCDCDCDCDCDCDCD
+CDCDCDCDCDCDC5C5C5C5C5C5C5C5C5A5A5A5A5A5A5A5A5A57A7A7A7A7A7A7A7A7A7A7A7A666666
+666666666666747474747474747474797979797979797979787878787878787878787878767676
+7676767676767575757575757575757B7B7B7B7B7B7B7B7B8080808080808080808B8B8B8B8B8B
+8B8B8B8B8B8B9595959595959595959393939393939393939191919191919191919A9A9A9A9A9A
+9A9A9AA0A0A0A0A0A0A0A0A0A0A0A0A2A2A2A2A2A2A2A2A2989898989898989898767676767676
+767676585858585858585858585858515151515151515151545454545454545454585858585858
+5858585C5C5C5C5C5C5C5C5C6161616161616161616161616C6C6C6C6C6C6C6C6C787878787878
+7878788383838383838383838F8F8F8F8F8F8F8F8F9C9C9C9C9C9C9C9C9C9C9C9CA5A5A5A5A5A5
+A5A5A5A8A8A8A8A8A8A8A8A8ACACACACACACACACACB3B3B3B3B3B3B3B3B3B3B3B3BCBCBCBCBCBC
+BCBCBCC1C1C1C1C1C1C1C1C1B8B8B8B8B8B8B8B8B8AAAAAAAAAAAAAAAAAAA4A4A4A4A4A4A4A4A4
+A4A4A49E9E9E9E9E9E9E9E9EA0A0A0A0A0A0A0A0A0ADADADADADADADADADBEBEBEBEBEBEBEBEBE
+C6C6C6C6C6C6C6C6C6C6C6C6C9C9C9C9C9C9C9C9C9BDBDBDBDBDBDBDBDBDB0B1B0B0B1B0B0B1B0
+B0B1B0B0B1B0B0B1B0B0B1B0B3B3B3B3B3B3B3B3B3B1B1B1B1B1B1B1B1B1B2B2B2B2B2B2B2B2B2
+B0B1B0B0B1B0B0B1B0A8A8A8A8A8A8A8A8A8A8A8A89D9D9D9D9D9D9D9D9D979797979797979797
+B7B7B7B7B7B7B7B7B7F1F1F1F1F1F1F1F1F1FDFDFDFDFDFDFDFDFDFDFDFDFEFEFEFEFEFEFEFEFE
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFF9F9F9F9F9F9F9F9F9C1C1C1C1C1C1C1C1C1DEDEDEDEDEDEDEDEDEDDDDDD
+DDDDDDDDDDDDDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDADADADADADADADADADADADA
+DADADADADADADBDBDBDBDBDBDBDBDBDADADADADADADADADADADADAD9D9D9D9D9D9D9D9D9D8D8D8
+D8D8D8D8D8D8D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9DADADADADADADADADAD9D9D9
+D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D8D8D8D8D8D8D8D8D8D8D8D8D9D9D9
+D9D9D9D9D9D9D8D8D8D8D8D8D8D8D8D6D6D6D6D6D6D6D6D6D6D6D5D6D6D5D6D6D5D5D5D5D5D5D5
+D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D3D3D3D3D3D3
+D3D3D3D3D3D3D2D2D2D2D2D2D2D2D2D1D1D1D1D1D1D1D1D1D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0
+D0D0D0CECECECECECECECECECECECECDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDC5C5C5C5C5C5
+C5C5C5A5A5A5A5A5A5A5A5A57A7A7A7A7A7A7A7A7A7A7A7A666666666666666666747474747474
+747474797979797979797979787878787878787878787878767676767676767676757575757575
+7575757B7B7B7B7B7B7B7B7B8080808080808080808B8B8B8B8B8B8B8B8B8B8B8B959595959595
+9595959393939393939393939191919191919191919A9A9A9A9A9A9A9A9AA0A0A0A0A0A0A0A0A0
+A0A0A0A2A2A2A2A2A2A2A2A2989898989898989898767676767676767676585858585858585858
+5858585151515151515151515454545454545454545858585858585858585C5C5C5C5C5C5C5C5C
+6161616161616161616161616C6C6C6C6C6C6C6C6C787878787878787878838383838383838383
+8F8F8F8F8F8F8F8F8F9C9C9C9C9C9C9C9C9C9C9C9CA5A5A5A5A5A5A5A5A5A8A8A8A8A8A8A8A8A8
+ACACACACACACACACACB3B3B3B3B3B3B3B3B3B3B3B3BCBCBCBCBCBCBCBCBCC1C1C1C1C1C1C1C1C1
+B8B8B8B8B8B8B8B8B8AAAAAAAAAAAAAAAAAAA4A4A4A4A4A4A4A4A4A4A4A49E9E9E9E9E9E9E9E9E
+A0A0A0A0A0A0A0A0A0ADADADADADADADADADBEBEBEBEBEBEBEBEBEC6C6C6C6C6C6C6C6C6C6C6C6
+C9C9C9C9C9C9C9C9C9BDBDBDBDBDBDBDBDBDB0B1B0B0B1B0B0B1B0B0B1B0B0B1B0B0B1B0B0B1B0
+B3B3B3B3B3B3B3B3B3B1B1B1B1B1B1B1B1B1B2B2B2B2B2B2B2B2B2B0B1B0B0B1B0B0B1B0A8A8A8
+A8A8A8A8A8A8A8A8A89D9D9D9D9D9D9D9D9D979797979797979797B7B7B7B7B7B7B7B7B7F1F1F1
+F1F1F1F1F1F1FDFDFDFDFDFDFDFDFDFDFDFDFEFEFEFEFEFEFEFEFEFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9F9F9
+F9F9F9F9F9F9C1C1C1C1C1C1C1C1C1DCDCDCDCDCDCDCDCDCDBDBDBDBDBDBDBDBDBDBDBDBDBDBDB
+DBDBDBDBDBDBDADADADADADADADADADADADADADADADADADAD9D9D9D9D9D9D9D9D9DADADADADADA
+DADADAD9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8
+D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9
+D9D9D9D8D8D8D8D8D8D8D8D8D7D7D7D7D7D7D7D7D7D7D7D7D9D9D9D9D9D9D9D9D9D7D7D7D7D7D7
+D7D7D7D6D6D5D6D6D5D6D6D5D6D6D6D6D6D6D6D6D6D4D4D4D4D4D4D4D4D4D4D4D4D4D4D4D4D4D4
+D4D4D4D4D4D4D4D4D4D4D4D4D4D4D4D4D4D4D4D4D4D1D1D1D1D1D1D1D1D1D1D1D1D0D0D0D0D0D0
+D0D0D0D0D0D0D0D0D0D0D0D0CFCFCFCFCFCFCFCFCFCECECECECECECECECECDCDCDCDCDCDCDCDCD
+CDCDCDCECECECECECECECECECFCFCFCFCFCFCFCFCFCECECECECECECECECEC5C5C5C5C5C5C5C5C5
+A9A9A9A9A9A9A9A9A9A9A9A97D7D7D7D7D7D7D7D7D727272727272727272787878787878787878
+777777777777777777777777767676767676767676757575757575757575797979797979797979
+7F7F7F7F7F7F7F7F7F898989898989898989898989959595959595959595989898989898989898
+919191919191919191999999999999999999A4A4A4A4A4A4A4A4A4A4A4A4AAAAAAAAAAAAAAAAAA
+ABABABABABABABABAB9C9C9C9C9C9C9C9C9C838383838383838383838383717171717171717171
+6969696969696969696D6D6D6D6D6D6D6D6D747474747474747474797979797979797979797979
+8383838383838383839090909090909090909D9D9D9D9D9D9D9D9DA8A8A8A8A8A8A8A8A8B1B1B1
+B1B1B1B1B1B1B1B1B1B7B7B7B7B7B7B7B7B7BCBCBCBCBCBCBCBCBCBDBDBDBDBDBDBDBDBDBEBEBE
+BEBEBEBEBEBEBEBEBECBCBCBCBCBCBCBCBCBD0D0D0D0D0D0D0D0D0BBBBBBBBBBBBBBBBBBA9A9A9
+A9A9A9A9A9A9A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0ADADADADADADADADADBBBBBB
+BBBBBBBBBBBBC4C4C4C4C4C4C4C4C4C9C9C9C9C9C9C9C9C9C9C9C9C7C7C7C7C7C7C7C7C7B8B8B8
+B8B8B8B8B8B8A8A8A8A8A8A8A8A8A8A8A8A8A8A8A8A8A8A8A8A8A8AEAEAEAEAEAEAEAEAEB0B1B0
+B0B1B0B0B1B0B0B1B0B0B1B0B0B1B0ACACACACACACACACACA1A1A1A1A1A1A1A1A1A1A1A1989898
+989898989898979797979797979797C4C4C4C4C4C4C4C4C4F9F9F9F9F9F9F9F9F9FDFDFDFDFDFD
+FDFDFDFDFDFDFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAFAFAFAFAFAFAFAFAD0D0D0D0D0D0
+D0D0D0DCDCDCDCDCDCDCDCDCDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDADADADADADA
+DADADADADADADADADADADADAD9D9D9D9D9D9D9D9D9DADADADADADADADADAD9D9D9D9D9D9D9D9D9
+D9D9D9D9D9D9D9D9D9D9D9D9D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8
+D8D8D8D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D8D8D8D8D8D8D8D8D8
+D7D7D7D7D7D7D7D7D7D7D7D7D9D9D9D9D9D9D9D9D9D7D7D7D7D7D7D7D7D7D6D6D5D6D6D5D6D6D5
+D6D6D6D6D6D6D6D6D6D4D4D4D4D4D4D4D4D4D4D4D4D4D4D4D4D4D4D4D4D4D4D4D4D4D4D4D4D4D4
+D4D4D4D4D4D4D4D4D4D1D1D1D1D1D1D1D1D1D1D1D1D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0
+CFCFCFCFCFCFCFCFCFCECECECECECECECECECDCDCDCDCDCDCDCDCDCDCDCDCECECECECECECECECE
+CFCFCFCFCFCFCFCFCFCECECECECECECECECEC5C5C5C5C5C5C5C5C5A9A9A9A9A9A9A9A9A9A9A9A9
+7D7D7D7D7D7D7D7D7D727272727272727272787878787878787878777777777777777777777777
+7676767676767676767575757575757575757979797979797979797F7F7F7F7F7F7F7F7F898989
+898989898989898989959595959595959595989898989898989898919191919191919191999999
+999999999999A4A4A4A4A4A4A4A4A4A4A4A4AAAAAAAAAAAAAAAAAAABABABABABABABABAB9C9C9C
+9C9C9C9C9C9C8383838383838383838383837171717171717171716969696969696969696D6D6D
+6D6D6D6D6D6D747474747474747474797979797979797979797979838383838383838383909090
+9090909090909D9D9D9D9D9D9D9D9DA8A8A8A8A8A8A8A8A8B1B1B1B1B1B1B1B1B1B1B1B1B7B7B7
+B7B7B7B7B7B7BCBCBCBCBCBCBCBCBCBDBDBDBDBDBDBDBDBDBEBEBEBEBEBEBEBEBEBEBEBECBCBCB
+CBCBCBCBCBCBD0D0D0D0D0D0D0D0D0BBBBBBBBBBBBBBBBBBA9A9A9A9A9A9A9A9A9A0A0A0A0A0A0
+A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0ADADADADADADADADADBBBBBBBBBBBBBBBBBBC4C4C4C4C4C4
+C4C4C4C9C9C9C9C9C9C9C9C9C9C9C9C7C7C7C7C7C7C7C7C7B8B8B8B8B8B8B8B8B8A8A8A8A8A8A8
+A8A8A8A8A8A8A8A8A8A8A8A8A8A8A8AEAEAEAEAEAEAEAEAEB0B1B0B0B1B0B0B1B0B0B1B0B0B1B0
+B0B1B0ACACACACACACACACACA1A1A1A1A1A1A1A1A1A1A1A1989898989898989898979797979797
+979797C4C4C4C4C4C4C4C4C4F9F9F9F9F9F9F9F9F9FDFDFDFDFDFDFDFDFDFDFDFDFEFEFEFEFEFE
+FEFEFEFEFEFEFEFEFEFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFAFAFAFAFAFAFAFAFAD0D0D0D0D0D0D0D0D0DCDCDCDCDCDCDCDCDC
+DBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDADADADADADADADADADADADADADADADADADA
+D9D9D9D9D9D9D9D9D9DADADADADADADADADAD9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9
+D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D9D9D9D9D9D9D9D9D9
+D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D8D8D8D8D8D8D8D8D8D7D7D7D7D7D7D7D7D7D7D7D7
+D9D9D9D9D9D9D9D9D9D7D7D7D7D7D7D7D7D7D6D6D5D6D6D5D6D6D5D6D6D6D6D6D6D6D6D6D4D4D4
+D4D4D4D4D4D4D4D4D4D4D4D4D4D4D4D4D4D4D4D4D4D4D4D4D4D4D4D4D4D4D4D4D4D4D4D4D1D1D1
+D1D1D1D1D1D1D1D1D1D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0CFCFCFCFCFCFCFCFCFCECECE
+CECECECECECECDCDCDCDCDCDCDCDCDCDCDCDCECECECECECECECECECFCFCFCFCFCFCFCFCFCECECE
+CECECECECECEC5C5C5C5C5C5C5C5C5A9A9A9A9A9A9A9A9A9A9A9A97D7D7D7D7D7D7D7D7D727272
+727272727272787878787878787878777777777777777777777777767676767676767676757575
+7575757575757979797979797979797F7F7F7F7F7F7F7F7F898989898989898989898989959595
+959595959595989898989898989898919191919191919191999999999999999999A4A4A4A4A4A4
+A4A4A4A4A4A4AAAAAAAAAAAAAAAAAAABABABABABABABABAB9C9C9C9C9C9C9C9C9C838383838383
+8383838383837171717171717171716969696969696969696D6D6D6D6D6D6D6D6D747474747474
+7474747979797979797979797979798383838383838383839090909090909090909D9D9D9D9D9D
+9D9D9DA8A8A8A8A8A8A8A8A8B1B1B1B1B1B1B1B1B1B1B1B1B7B7B7B7B7B7B7B7B7BCBCBCBCBCBC
+BCBCBCBDBDBDBDBDBDBDBDBDBEBEBEBEBEBEBEBEBEBEBEBECBCBCBCBCBCBCBCBCBD0D0D0D0D0D0
+D0D0D0BBBBBBBBBBBBBBBBBBA9A9A9A9A9A9A9A9A9A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0
+A0A0A0ADADADADADADADADADBBBBBBBBBBBBBBBBBBC4C4C4C4C4C4C4C4C4C9C9C9C9C9C9C9C9C9
+C9C9C9C7C7C7C7C7C7C7C7C7B8B8B8B8B8B8B8B8B8A8A8A8A8A8A8A8A8A8A8A8A8A8A8A8A8A8A8
+A8A8A8AEAEAEAEAEAEAEAEAEB0B1B0B0B1B0B0B1B0B0B1B0B0B1B0B0B1B0ACACACACACACACACAC
+A1A1A1A1A1A1A1A1A1A1A1A1989898989898989898979797979797979797C4C4C4C4C4C4C4C4C4
+F9F9F9F9F9F9F9F9F9FDFDFDFDFDFDFDFDFDFDFDFDFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FAFAFAFAFAFAFAFAFAD0D0D0D0D0D0D0D0D0DBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDB
+DBDBDBDBDBDBDBDBDBDADADADADADADADADADADADADADADADADADAD9D9D9D9D9D9D9D9D9D9D9D9
+D9D9D9D9D9D9D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8
+D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D8D8D8
+D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D6D6D6
+D6D6D6D6D6D6D6D6D5D6D6D5D6D6D5D5D5D5D5D5D5D5D5D5D4D4D4D4D4D4D4D4D4D4D4D4D4D4D4
+D4D4D4D4D4D4D4D4D4D4D4D4D4D4D4D3D3D3D3D3D3D3D3D3D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0
+D0D0D0D0D0D0CFCFCFCFCFCFCFCFCFCECECECECECECECECECECECECECECECECECECECECECECECE
+CECECECECECECFCFCFCFCFCFCFCFCFD0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D1D1D1D1D1D1
+D1D1D1C4C4C4C4C4C4C4C4C4C4C4C4919191919191919191737373737373737373767676767676
+7676767676767676767676767676767676767676767676767676767676767676767A7A7A7A7A7A
+7A7A7A7D7D7D7D7D7D7D7D7D868686868686868686868686919191919191919191999999999999
+999999949494949494949494979797979797979797A3A3A3A3A3A3A3A3A3A3A3A3A9A9A9A9A9A9
+A9A9A9AEAEAEAEAEAEAEAEAEAFAFAFAFAFAFAFAFAFA4A4A4A4A4A4A4A4A4A4A4A4969696969696
+9696968585858585858585857D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7E7E7E7E7E7E7E7E7E
+7E7E7E8484848484848484848E8E8E8E8E8E8E8E8E9E9E9E9E9E9E9E9E9EA9A9A9A9A9A9A9A9A9
+B0B0B0B0B0B0B0B0B0B0B0B0B1B1B1B1B1B1B1B1B1B9B9B9B9B9B9B9B9B9BEBEBEBEBEBEBEBEBE
+BFBFBFBFBFBFBFBFBFBFBFBFC5C5C5C5C5C5C5C5C5C2C2C2C2C2C2C2C2C2B1B1B1B1B1B1B1B1B1
+A8A8A8A8A8A8A8A8A8A6A6A6A6A6A6A6A6A6A6A6A6ADADADADADADADADADBCBCBCBCBCBCBCBCBC
+C2C2C2C2C2C2C2C2C2C3C3C3C3C3C3C3C3C3C7C7C7C7C7C7C7C7C7C7C7C7C4C4C4C4C4C4C4C4C4
+B7B7B7B7B7B7B7B7B7A6A6A6A6A6A6A6A6A6A1A1A1A1A1A1A1A1A1A1A1A1A8A8A8A8A8A8A8A8A8
+ACACACACACACACACACACACACACACACACACACA8A8A8A8A8A8A8A8A89E9E9E9E9E9E9E9E9E9E9E9E
+939393939393939393999999999999999999D0D0D0D0D0D0D0D0D0FBFBFBFBFBFBFBFBFBFEFEFE
+FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9F9F9F9F9F9F9F9F9CACACA
+CACACACACACADBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDADADA
+DADADADADADADADADADADADADADADAD9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D8D8D8D8D8D8
+D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8
+D8D8D8D8D8D8D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8
+D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D6D6D6D6D6D6D6D6D6D6D6D5D6D6D5
+D6D6D5D5D5D5D5D5D5D5D5D5D4D4D4D4D4D4D4D4D4D4D4D4D4D4D4D4D4D4D4D4D4D4D4D4D4D4D4
+D4D4D4D3D3D3D3D3D3D3D3D3D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0CFCFCFCFCFCF
+CFCFCFCECECECECECECECECECECECECECECECECECECECECECECECECECECECECECECFCFCFCFCFCF
+CFCFCFD0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D1D1D1D1D1D1D1D1D1C4C4C4C4C4C4C4C4C4
+C4C4C4919191919191919191737373737373737373767676767676767676767676767676767676
+7676767676767676767676767676767676767676767A7A7A7A7A7A7A7A7A7D7D7D7D7D7D7D7D7D
+868686868686868686868686919191919191919191999999999999999999949494949494949494
+979797979797979797A3A3A3A3A3A3A3A3A3A3A3A3A9A9A9A9A9A9A9A9A9AEAEAEAEAEAEAEAEAE
+AFAFAFAFAFAFAFAFAFA4A4A4A4A4A4A4A4A4A4A4A4969696969696969696858585858585858585
+7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7E7E7E7E7E7E7E7E7E7E7E7E848484848484848484
+8E8E8E8E8E8E8E8E8E9E9E9E9E9E9E9E9E9EA9A9A9A9A9A9A9A9A9B0B0B0B0B0B0B0B0B0B0B0B0
+B1B1B1B1B1B1B1B1B1B9B9B9B9B9B9B9B9B9BEBEBEBEBEBEBEBEBEBFBFBFBFBFBFBFBFBFBFBFBF
+C5C5C5C5C5C5C5C5C5C2C2C2C2C2C2C2C2C2B1B1B1B1B1B1B1B1B1A8A8A8A8A8A8A8A8A8A6A6A6
+A6A6A6A6A6A6A6A6A6ADADADADADADADADADBCBCBCBCBCBCBCBCBCC2C2C2C2C2C2C2C2C2C3C3C3
+C3C3C3C3C3C3C7C7C7C7C7C7C7C7C7C7C7C7C4C4C4C4C4C4C4C4C4B7B7B7B7B7B7B7B7B7A6A6A6
+A6A6A6A6A6A6A1A1A1A1A1A1A1A1A1A1A1A1A8A8A8A8A8A8A8A8A8ACACACACACACACACACACACAC
+ACACACACACACA8A8A8A8A8A8A8A8A89E9E9E9E9E9E9E9E9E9E9E9E939393939393939393999999
+999999999999D0D0D0D0D0D0D0D0D0FBFBFBFBFBFBFBFBFBFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE
+FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9F9F9F9F9F9F9F9F9CACACACACACACACACADBDBDBDBDBDB
+DBDBDBDADADADADADADADADAD9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D8D8D8D8D8D8
+D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8
+D8D8D8D7D7D7D7D7D7D7D7D7D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8
+D8D8D8D8D8D8D8D8D8D8D8D8D7D7D7D7D7D7D7D7D7D6D6D6D6D6D6D6D6D6D7D7D7D7D7D7D7D7D7
+D7D7D7D7D7D7D7D7D7D7D7D7D6D6D6D6D6D6D6D6D6D5D5D5D5D5D5D5D5D5D4D4D4D4D4D4D4D4D4
+D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D3D3D3D3D3D3D3D3D3D2D2D2D2D2D2D2D2D2
+D1D1D1D1D1D1D1D1D1D1D1D1D0D0D0D0D0D0D0D0D0CFCFCFCFCFCFCFCFCFCDCDCDCDCDCDCDCDCD
+CECECECECECECECECECECECECECECECECECECECECECECECECECECECECECED0D0D0D0D0D0D0D0D0
+D1D1D1D1D1D1D1D1D1D4D4D4D4D4D4D4D4D4CBCBCBCBCBCBCBCBCBCBCBCB999999999999999999
+737373737373737373747474747474747474757575757575757575757575747474747474747474
+7777777777777777777979797979797979797C7C7C7C7C7C7C7C7C848484848484848484848484
+8E8E8E8E8E8E8E8E8E9696969696969696969696969696969696969494949494949494949D9D9D
+9D9D9D9D9D9D9D9D9DA4A4A4A4A4A4A4A4A4ABABABABABABABABABB1B1B1B1B1B1B1B1B1AFAFAF
+AFAFAFAFAFAFAFAFAFA8A8A8A8A8A8A8A8A8969696969696969696868686868686868686808080
+8080808080807E7E7E7E7E7E7E7E7E7E7E7E808080808080808080848484848484848484909090
+9090909090909C9C9C9C9C9C9C9C9CA3A3A3A3A3A3A3A3A3A3A3A3A6A6A6A6A6A6A6A6A6ADADAD
+ADADADADADADB6B6B6B6B6B6B6B6B6B9B9B9B9B9B9B9B9B9B9B9B9BABABABABABABABABAB8B8B8
+B8B8B8B8B8B8B3B3B3B3B3B3B3B3B3B4B4B4B4B4B4B4B4B4B7B7B7B7B7B7B7B7B7B7B7B7BCBCBC
+BCBCBCBCBCBCC1C1C1C1C1C1C1C1C1C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C1C1C1C1C1C1
+C1C1C1C1C1C1BEBEBEBEBEBEBEBEBEB2B2B2B2B2B2B2B2B29F9F9F9F9F9F9F9F9F9C9C9C9C9C9C
+9C9C9C9C9C9CA5A5A5A5A5A5A5A5A5A8A8A8A8A8A8A8A8A8AAAAAAAAAAAAAAAAAAA6A6A6A6A6A6
+A6A6A69A9A9A9A9A9A9A9A9A9A9A9A8D8D8D8D8D8D8D8D8D9F9F9F9F9F9F9F9F9FE1E1E1E1E1E1
+E1E1E1FCFCFCFCFCFCFCFCFCFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE
+FEFEFEFEFEFEFEFEFEFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFF9F9F9F9F9F9F9F9F9BDBDBDBDBDBDBDBDBDDBDBDBDBDBDBDBDBDBDADADADADADADADADA
+D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8
+D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D7D7D7D7D7D7D7D7D7
+D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8
+D7D7D7D7D7D7D7D7D7D6D6D6D6D6D6D6D6D6D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7
+D6D6D6D6D6D6D6D6D6D5D5D5D5D5D5D5D5D5D4D4D4D4D4D4D4D4D4D2D2D2D2D2D2D2D2D2D2D2D2
+D2D2D2D2D2D2D2D2D2D3D3D3D3D3D3D3D3D3D2D2D2D2D2D2D2D2D2D1D1D1D1D1D1D1D1D1D1D1D1
+D0D0D0D0D0D0D0D0D0CFCFCFCFCFCFCFCFCFCDCDCDCDCDCDCDCDCDCECECECECECECECECECECECE
+CECECECECECECECECECECECECECECECECECED0D0D0D0D0D0D0D0D0D1D1D1D1D1D1D1D1D1D4D4D4
+D4D4D4D4D4D4CBCBCBCBCBCBCBCBCBCBCBCB999999999999999999737373737373737373747474
+747474747474757575757575757575757575747474747474747474777777777777777777797979
+7979797979797C7C7C7C7C7C7C7C7C8484848484848484848484848E8E8E8E8E8E8E8E8E969696
+9696969696969696969696969696969494949494949494949D9D9D9D9D9D9D9D9D9D9D9DA4A4A4
+A4A4A4A4A4A4ABABABABABABABABABB1B1B1B1B1B1B1B1B1AFAFAFAFAFAFAFAFAFAFAFAFA8A8A8
+A8A8A8A8A8A89696969696969696968686868686868686868080808080808080807E7E7E7E7E7E
+7E7E7E7E7E7E8080808080808080808484848484848484849090909090909090909C9C9C9C9C9C
+9C9C9CA3A3A3A3A3A3A3A3A3A3A3A3A6A6A6A6A6A6A6A6A6ADADADADADADADADADB6B6B6B6B6B6
+B6B6B6B9B9B9B9B9B9B9B9B9B9B9B9BABABABABABABABABAB8B8B8B8B8B8B8B8B8B3B3B3B3B3B3
+B3B3B3B4B4B4B4B4B4B4B4B4B7B7B7B7B7B7B7B7B7B7B7B7BCBCBCBCBCBCBCBCBCC1C1C1C1C1C1
+C1C1C1C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C1C1C1C1C1C1C1C1C1C1C1C1BEBEBEBEBEBE
+BEBEBEB2B2B2B2B2B2B2B2B29F9F9F9F9F9F9F9F9F9C9C9C9C9C9C9C9C9C9C9C9CA5A5A5A5A5A5
+A5A5A5A8A8A8A8A8A8A8A8A8AAAAAAAAAAAAAAAAAAA6A6A6A6A6A6A6A6A69A9A9A9A9A9A9A9A9A
+9A9A9A8D8D8D8D8D8D8D8D8D9F9F9F9F9F9F9F9F9FE1E1E1E1E1E1E1E1E1FCFCFCFCFCFCFCFCFC
+FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9F9F9F9F9F9F9F9F9
+BDBDBDBDBDBDBDBDBDDBDBDBDBDBDBDBDBDBDADADADADADADADADAD9D9D9D9D9D9D9D9D9D9D9D9
+D9D9D9D9D9D9D9D9D9D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8
+D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D7D7D7D7D7D7D7D7D7D8D8D8D8D8D8D8D8D8D8D8D8
+D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D7D7D7D7D7D7D7D7D7D6D6D6
+D6D6D6D6D6D6D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D6D6D6D6D6D6D6D6D6D5D5D5
+D5D5D5D5D5D5D4D4D4D4D4D4D4D4D4D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D3D3D3
+D3D3D3D3D3D3D2D2D2D2D2D2D2D2D2D1D1D1D1D1D1D1D1D1D1D1D1D0D0D0D0D0D0D0D0D0CFCFCF
+CFCFCFCFCFCFCDCDCDCDCDCDCDCDCDCECECECECECECECECECECECECECECECECECECECECECECECE
+CECECECECECED0D0D0D0D0D0D0D0D0D1D1D1D1D1D1D1D1D1D4D4D4D4D4D4D4D4D4CBCBCBCBCBCB
+CBCBCBCBCBCB999999999999999999737373737373737373747474747474747474757575757575
+7575757575757474747474747474747777777777777777777979797979797979797C7C7C7C7C7C
+7C7C7C8484848484848484848484848E8E8E8E8E8E8E8E8E969696969696969696969696969696
+9696969494949494949494949D9D9D9D9D9D9D9D9D9D9D9DA4A4A4A4A4A4A4A4A4ABABABABABAB
+ABABABB1B1B1B1B1B1B1B1B1AFAFAFAFAFAFAFAFAFAFAFAFA8A8A8A8A8A8A8A8A8969696969696
+9696968686868686868686868080808080808080807E7E7E7E7E7E7E7E7E7E7E7E808080808080
+8080808484848484848484849090909090909090909C9C9C9C9C9C9C9C9CA3A3A3A3A3A3A3A3A3
+A3A3A3A6A6A6A6A6A6A6A6A6ADADADADADADADADADB6B6B6B6B6B6B6B6B6B9B9B9B9B9B9B9B9B9
+B9B9B9BABABABABABABABABAB8B8B8B8B8B8B8B8B8B3B3B3B3B3B3B3B3B3B4B4B4B4B4B4B4B4B4
+B7B7B7B7B7B7B7B7B7B7B7B7BCBCBCBCBCBCBCBCBCC1C1C1C1C1C1C1C1C1C0C0C0C0C0C0C0C0C0
+C0C0C0C0C0C0C0C0C0C1C1C1C1C1C1C1C1C1C1C1C1BEBEBEBEBEBEBEBEBEB2B2B2B2B2B2B2B2B2
+9F9F9F9F9F9F9F9F9F9C9C9C9C9C9C9C9C9C9C9C9CA5A5A5A5A5A5A5A5A5A8A8A8A8A8A8A8A8A8
+AAAAAAAAAAAAAAAAAAA6A6A6A6A6A6A6A6A69A9A9A9A9A9A9A9A9A9A9A9A8D8D8D8D8D8D8D8D8D
+9F9F9F9F9F9F9F9F9FE1E1E1E1E1E1E1E1E1FCFCFCFCFCFCFCFCFCFEFEFEFEFEFEFEFEFEFEFEFE
+FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9F9F9F9F9F9F9F9F9BDBDBDBDBDBDBDBDBDD9D9D9
+D9D9D9D9D9D9D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8
+D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8
+D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D8D8D8
+D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D7D7D7D7D7D7D7D7D7D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6
+D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D5D6D6D5D6D6D5D3D3D3D3D3D3
+D3D3D3D1D1D1D1D1D1D1D1D1D1D1D1D1D1D1D1D1D1D1D1D1D2D2D2D2D2D2D2D2D2D1D1D1D1D1D1
+D1D1D1D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0CECECECECECECECECECDCDCDCDCDCD
+CDCDCDCECECECECECECECECECFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFD0D0D0D0D0D0
+D0D0D0D2D2D2D2D2D2D2D2D2D4D4D4D4D4D4D4D4D4CDCDCDCDCDCDCDCDCDCDCDCD9D9D9D9D9D9D
+9D9D9D747474747474747474757575757575757575757575757575757575757575757575757575
+7575757575757575757575757979797979797979797D7D7D7D7D7D7D7D7D818181818181818181
+818181898989898989898989909090909090909090969696969696969696959595959595959595
+9797979797979797979797979C9C9C9C9C9C9C9C9CA3A3A3A3A3A3A3A3A3AAAAAAAAAAAAAAAAAA
+AEAEAEAEAEAEAEAEAEAEAEAEAAAAAAAAAAAAAAAAAA9E9E9E9E9E9E9E9E9E919191919191919191
+8C8C8C8C8C8C8C8C8C8A8A8A8A8A8A8A8A8A8A8A8A888888888888888888878787878787878787
+8D8D8D8D8D8D8D8D8D9696969696969696969E9E9E9E9E9E9E9E9E9E9E9EA3A3A3A3A3A3A3A3A3
+A8A8A8A8A8A8A8A8A8B2B2B2B2B2B2B2B2B2B8B8B8B8B8B8B8B8B8B8B8B8BABABABABABABABABA
+BBBBBBBBBBBBBBBBBBBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBCBCBCBCBCBCBCBCBCBCBCBC
+BCBCBCBCBCBCBCBCBCBDBDBDBDBDBDBDBDBDBFBFBFBFBFBFBFBFBFC0C0C0C0C0C0C0C0C0BFBFBF
+BFBFBFBFBFBFBFBFBFB7B7B7B7B7B7B7B7B7ACACACACACACACACAC9B9B9B9B9B9B9B9B9B989898
+989898989898989898A1A1A1A1A1A1A1A1A1A6A6A6A6A6A6A6A6A6A9A9A9A9A9A9A9A9A9A5A5A5
+A5A5A5A5A5A59696969696969696969696968D8D8D8D8D8D8D8D8DB0B0B0B0B0B0B0B0B0EDEDED
+EDEDEDEDEDEDFDFDFDFDFDFDFDFDFDFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE
+FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFF9F9F9F9F9F9F9F9F9C7C7C7C7C7C7C7C7C7D9D9D9D9D9D9D9D9D9D8D8D8D8D8D8
+D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8
+D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8
+D8D8D8D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8
+D8D8D8D7D7D7D7D7D7D7D7D7D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6
+D6D6D6D6D6D6D6D6D6D6D6D6D6D6D5D6D6D5D6D6D5D3D3D3D3D3D3D3D3D3D1D1D1D1D1D1D1D1D1
+D1D1D1D1D1D1D1D1D1D1D1D1D2D2D2D2D2D2D2D2D2D1D1D1D1D1D1D1D1D1D0D0D0D0D0D0D0D0D0
+D0D0D0D0D0D0D0D0D0D0D0D0CECECECECECECECECECDCDCDCDCDCDCDCDCDCECECECECECECECECE
+CFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFD0D0D0D0D0D0D0D0D0D2D2D2D2D2D2D2D2D2
+D4D4D4D4D4D4D4D4D4CDCDCDCDCDCDCDCDCDCDCDCD9D9D9D9D9D9D9D9D9D747474747474747474
+757575757575757575757575757575757575757575757575757575757575757575757575757575
+7979797979797979797D7D7D7D7D7D7D7D7D818181818181818181818181898989898989898989
+909090909090909090969696969696969696959595959595959595979797979797979797979797
+9C9C9C9C9C9C9C9C9CA3A3A3A3A3A3A3A3A3AAAAAAAAAAAAAAAAAAAEAEAEAEAEAEAEAEAEAEAEAE
+AAAAAAAAAAAAAAAAAA9E9E9E9E9E9E9E9E9E9191919191919191918C8C8C8C8C8C8C8C8C8A8A8A
+8A8A8A8A8A8A8A8A8A8888888888888888888787878787878787878D8D8D8D8D8D8D8D8D969696
+9696969696969E9E9E9E9E9E9E9E9E9E9E9EA3A3A3A3A3A3A3A3A3A8A8A8A8A8A8A8A8A8B2B2B2
+B2B2B2B2B2B2B8B8B8B8B8B8B8B8B8B8B8B8BABABABABABABABABABBBBBBBBBBBBBBBBBBBDBDBD
+BDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBDBDBD
+BDBDBDBDBDBDBFBFBFBFBFBFBFBFBFC0C0C0C0C0C0C0C0C0BFBFBFBFBFBFBFBFBFBFBFBFB7B7B7
+B7B7B7B7B7B7ACACACACACACACACAC9B9B9B9B9B9B9B9B9B989898989898989898989898A1A1A1
+A1A1A1A1A1A1A6A6A6A6A6A6A6A6A6A9A9A9A9A9A9A9A9A9A5A5A5A5A5A5A5A5A5969696969696
+9696969696968D8D8D8D8D8D8D8D8DB0B0B0B0B0B0B0B0B0EDEDEDEDEDEDEDEDEDFDFDFDFDFDFD
+FDFDFDFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE
+FEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9F9F9F9F9F9
+F9F9F9C7C7C7C7C7C7C7C7C7D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8
+D8D8D8D7D7D7D7D7D7D7D7D7D6D6D6D6D6D6D6D6D6D7D7D7D7D7D7D7D7D7D8D8D8D8D8D8D8D8D8
+D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7
+D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7
+D6D6D5D6D6D5D6D6D5D6D6D5D6D6D5D6D6D5D6D6D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5
+D5D5D5D5D5D5D5D5D5D3D3D3D3D3D3D3D3D3D1D1D1D1D1D1D1D1D1D1D1D1D0D0D0D0D0D0D0D0D0
+D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0CFCFCFCFCFCFCFCFCF
+CFCFCFCFCFCFCFCFCFCECECECECECECECECECDCDCDCDCDCDCDCDCDCECECECECECECECECECECECE
+CFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCBCBCBCBCBCBCBCBCBC5C5C5C5C5C5C5C5C5BEBEBE
+BEBEBEBEBEBEBEBEBE969696969696969696717171717171717171757575757575757575757575
+7575757575757575757575757575757575757575757575757575757777777777777777777A7A7A
+7A7A7A7A7A7A7D7D7D7D7D7D7D7D7D7D7D7D8383838383838383838A8A8A8A8A8A8A8A8A909090
+909090909090939393939393939393959595959595959595959595959595959595959595989898
+9898989898989E9E9E9E9E9E9E9E9EA4A4A4A4A4A4A4A4A4A4A4A4A4A4A4A4A4A4A4A4A49D9D9D
+9D9D9D9D9D9D969696969696969696939393939393939393949494949494949494949494949494
+9494949494949595959595959595959A9A9A9A9A9A9A9A9A9F9F9F9F9F9F9F9F9FA5A5A5A5A5A5
+A5A5A5A5A5A5A9A9A9A9A9A9A9A9A9ACACACACACACACACACB0B1B0B0B1B0B0B1B0B3B3B3B3B3B3
+B3B3B3B3B3B3B4B4B4B4B4B4B4B4B4B6B6B6B6B6B6B6B6B6B5B5B5B5B5B5B5B5B5B3B3B3B3B3B3
+B3B3B3B1B1B1B1B1B1B1B1B1B1B1B1B4B4B4B4B4B4B4B4B4B8B8B8B8B8B8B8B8B8BABABABABABA
+BABABABDBDBDBDBDBDBDBDBDBBBBBBBBBBBBBBBBBBBBBBBBB1B1B1B1B1B1B1B1B1A6A6A6A6A6A6
+A6A6A6999999999999999999989898989898989898989898A0A0A0A0A0A0A0A0A0A4A4A4A4A4A4
+A4A4A4A7A7A7A7A7A7A7A7A7A2A2A2A2A2A2A2A2A2959595959595959595959595929292929292
+929292C4C4C4C4C4C4C4C4C4F6F6F6F6F6F6F6F6F6FDFDFDFDFDFDFDFDFDFEFEFEFEFEFEFEFEFE
+FEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBFBFBFBFBFBFBFBFBD7D7D7D7D7D7D7D7D7
+D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D7D7D7D7D7D7D7D7D7
+D6D6D6D6D6D6D6D6D6D7D7D7D7D7D7D7D7D7D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8
+D8D8D8D8D8D8D8D8D8D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7
+D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D6D6D5D6D6D5D6D6D5D6D6D5
+D6D6D5D6D6D5D6D6D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D3D3D3
+D3D3D3D3D3D3D1D1D1D1D1D1D1D1D1D1D1D1D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0
+D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0CFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCECECE
+CECECECECECECDCDCDCDCDCDCDCDCDCECECECECECECECECECECECECFCFCFCFCFCFCFCFCFCFCFCF
+CFCFCFCFCFCFCBCBCBCBCBCBCBCBCBC5C5C5C5C5C5C5C5C5BEBEBEBEBEBEBEBEBEBEBEBE969696
+969696969696717171717171717171757575757575757575757575757575757575757575757575
+7575757575757575757575757575757777777777777777777A7A7A7A7A7A7A7A7A7D7D7D7D7D7D
+7D7D7D7D7D7D8383838383838383838A8A8A8A8A8A8A8A8A909090909090909090939393939393
+9393939595959595959595959595959595959595959595959898989898989898989E9E9E9E9E9E
+9E9E9EA4A4A4A4A4A4A4A4A4A4A4A4A4A4A4A4A4A4A4A4A49D9D9D9D9D9D9D9D9D969696969696
+969696939393939393939393949494949494949494949494949494949494949494959595959595
+9595959A9A9A9A9A9A9A9A9A9F9F9F9F9F9F9F9F9FA5A5A5A5A5A5A5A5A5A5A5A5A9A9A9A9A9A9
+A9A9A9ACACACACACACACACACB0B1B0B0B1B0B0B1B0B3B3B3B3B3B3B3B3B3B3B3B3B4B4B4B4B4B4
+B4B4B4B6B6B6B6B6B6B6B6B6B5B5B5B5B5B5B5B5B5B3B3B3B3B3B3B3B3B3B1B1B1B1B1B1B1B1B1
+B1B1B1B4B4B4B4B4B4B4B4B4B8B8B8B8B8B8B8B8B8BABABABABABABABABABDBDBDBDBDBDBDBDBD
+BBBBBBBBBBBBBBBBBBBBBBBBB1B1B1B1B1B1B1B1B1A6A6A6A6A6A6A6A6A6999999999999999999
+989898989898989898989898A0A0A0A0A0A0A0A0A0A4A4A4A4A4A4A4A4A4A7A7A7A7A7A7A7A7A7
+A2A2A2A2A2A2A2A2A2959595959595959595959595929292929292929292C4C4C4C4C4C4C4C4C4
+F6F6F6F6F6F6F6F6F6FDFDFDFDFDFDFDFDFDFEFEFEFEFEFEFEFEFEFEFEFEFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFBFBFBFBFBFBFBFBFBD7D7D7D7D7D7D7D7D7D8D8D8D8D8D8D8D8D8D8D8D8
+D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D7D7D7D7D7D7D7D7D7D6D6D6D6D6D6D6D6D6D7D7D7
+D7D7D7D7D7D7D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D7D7D7
+D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7
+D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D6D6D5D6D6D5D6D6D5D6D6D5D6D6D5D6D6D5D6D6D5D5D5D5
+D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D3D3D3D3D3D3D3D3D3D1D1D1D1D1D1
+D1D1D1D1D1D1D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0
+D0D0D0D0D0D0CFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCECECECECECECECECECDCDCDCDCDCD
+CDCDCDCECECECECECECECECECECECECFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCBCBCBCBCBCB
+CBCBCBC5C5C5C5C5C5C5C5C5BEBEBEBEBEBEBEBEBEBEBEBE969696969696969696717171717171
+717171757575757575757575757575757575757575757575757575757575757575757575757575
+7575757777777777777777777A7A7A7A7A7A7A7A7A7D7D7D7D7D7D7D7D7D7D7D7D838383838383
+8383838A8A8A8A8A8A8A8A8A909090909090909090939393939393939393959595959595959595
+9595959595959595959595959898989898989898989E9E9E9E9E9E9E9E9EA4A4A4A4A4A4A4A4A4
+A4A4A4A4A4A4A4A4A4A4A4A49D9D9D9D9D9D9D9D9D969696969696969696939393939393939393
+9494949494949494949494949494949494949494949595959595959595959A9A9A9A9A9A9A9A9A
+9F9F9F9F9F9F9F9F9FA5A5A5A5A5A5A5A5A5A5A5A5A9A9A9A9A9A9A9A9A9ACACACACACACACACAC
+B0B1B0B0B1B0B0B1B0B3B3B3B3B3B3B3B3B3B3B3B3B4B4B4B4B4B4B4B4B4B6B6B6B6B6B6B6B6B6
+B5B5B5B5B5B5B5B5B5B3B3B3B3B3B3B3B3B3B1B1B1B1B1B1B1B1B1B1B1B1B4B4B4B4B4B4B4B4B4
+B8B8B8B8B8B8B8B8B8BABABABABABABABABABDBDBDBDBDBDBDBDBDBBBBBBBBBBBBBBBBBBBBBBBB
+B1B1B1B1B1B1B1B1B1A6A6A6A6A6A6A6A6A6999999999999999999989898989898989898989898
+A0A0A0A0A0A0A0A0A0A4A4A4A4A4A4A4A4A4A7A7A7A7A7A7A7A7A7A2A2A2A2A2A2A2A2A2959595
+959595959595959595929292929292929292C4C4C4C4C4C4C4C4C4F6F6F6F6F6F6F6F6F6FDFDFD
+FDFDFDFDFDFDFEFEFEFEFEFEFEFEFEFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBFBFB
+FBFBFBFBFBFBD7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8
+D8D8D8D8D8D8D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7
+D7D7D7D9D9D9D9D9D9D9D9D9D9D9D9D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D7D7D7D7D7D7
+D7D7D7D6D6D6D6D6D6D6D6D6D6D6D6D7D7D7D7D7D7D7D7D7D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6
+D6D6D6D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5
+D5D5D5D4D4D4D4D4D4D4D4D4D1D1D1D1D1D1D1D1D1D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0
+D0D0D0D0D0D0D0D0D0D0D0D0D1D1D1D1D1D1D1D1D1D0D0D0D0D0D0D0D0D0D0D0D0CFCFCFCFCFCF
+CFCFCFCECECECECECECECECECECECECECECECECECECECECECECECECECECECFCFCFCFCFCFCFCFCF
+CFCFCFCFCFCFCFCFCFCFCFCFCBCBCBCBCBCBCBCBCBB3B3B3B3B3B3B3B3B3959595959595959595
+8383838383838383838383836C6C6C6C6C6C6C6C6C626262626262626262727272727272727272
+757575757575757575757575747474747474747474757575757575757575757575757575757575
+7676767676767676767B7B7B7B7B7B7B7B7B7B7B7B7E7E7E7E7E7E7E7E7E848484848484848484
+8A8A8A8A8A8A8A8A8A8F8F8F8F8F8F8F8F8F919191919191919191919191909090909090909090
+9292929292929292929898989898989898989C9C9C9C9C9C9C9C9C9C9C9C9B9B9B9B9B9B9B9B9B
+969696969696969696949494949494949494959595959595959595949494949494949494949494
+9696969696969696969797979797979797979797979797979797979B9B9B9B9B9B9B9B9B9F9F9F
+9F9F9F9F9F9F9F9F9FA1A1A1A1A1A1A1A1A19C9C9C9C9C9C9C9C9C949494949494949494909090
+9090909090909090909696969696969696969E9E9E9E9E9E9E9E9E9E9E9E9E9E9E9E9E9E9F9F9F
+9F9F9F9F9F9FA5A5A5A5A5A5A5A5A5A5A5A5B0B0B0B0B0B0B0B0B0B8B8B8B8B8B8B8B8B8B8B8B8
+B8B8B8B8B8B8B8B8B8B8B8B8B8B8B8B5B5B5B5B5B5B5B5B5B5B5B5ABABABABABABABABABA0A0A0
+A0A0A0A0A0A0969696969696969696999999999999999999999999A2A2A2A2A2A2A2A2A2A5A5A5
+A5A5A5A5A5A5A5A5A5A5A5A5A5A5A59E9E9E9E9E9E9E9E9E9393939393939393939393939E9E9E
+9E9E9E9E9E9EDBDBDBDBDBDBDBDBDBF9F9F9F9F9F9F9F9F9FDFDFDFDFDFDFDFDFDFEFEFEFEFEFE
+FEFEFEFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9F9F9F9F9F9F9F9F9CACACACACACA
+CACACAD7D7D7D7D7D7D7D7D7D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D7D7D7D7D7D7
+D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D9D9D9D9D9D9D9D9D9
+D9D9D9D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D7D7D7D7D7D7D7D7D7D6D6D6D6D6D6D6D6D6
+D6D6D6D7D7D7D7D7D7D7D7D7D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D5D5D5D5D5D5D5D5D5
+D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D4D4D4D4D4D4D4D4D4
+D1D1D1D1D1D1D1D1D1D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0
+D1D1D1D1D1D1D1D1D1D0D0D0D0D0D0D0D0D0D0D0D0CFCFCFCFCFCFCFCFCFCECECECECECECECECE
+CECECECECECECECECECECECECECECECECECECFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCF
+CBCBCBCBCBCBCBCBCBB3B3B3B3B3B3B3B3B3959595959595959595838383838383838383838383
+6C6C6C6C6C6C6C6C6C626262626262626262727272727272727272757575757575757575757575
+7474747474747474747575757575757575757575757575757575757676767676767676767B7B7B
+7B7B7B7B7B7B7B7B7B7E7E7E7E7E7E7E7E7E8484848484848484848A8A8A8A8A8A8A8A8A8F8F8F
+8F8F8F8F8F8F919191919191919191919191909090909090909090929292929292929292989898
+9898989898989C9C9C9C9C9C9C9C9C9C9C9C9B9B9B9B9B9B9B9B9B969696969696969696949494
+949494949494959595959595959595949494949494949494949494969696969696969696979797
+9797979797979797979797979797979B9B9B9B9B9B9B9B9B9F9F9F9F9F9F9F9F9F9F9F9FA1A1A1
+A1A1A1A1A1A19C9C9C9C9C9C9C9C9C949494949494949494909090909090909090909090969696
+9696969696969E9E9E9E9E9E9E9E9E9E9E9E9E9E9E9E9E9E9F9F9F9F9F9F9F9F9FA5A5A5A5A5A5
+A5A5A5A5A5A5B0B0B0B0B0B0B0B0B0B8B8B8B8B8B8B8B8B8B8B8B8B8B8B8B8B8B8B8B8B8B8B8B8
+B8B8B8B5B5B5B5B5B5B5B5B5B5B5B5ABABABABABABABABABA0A0A0A0A0A0A0A0A0969696969696
+969696999999999999999999999999A2A2A2A2A2A2A2A2A2A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5
+A5A5A59E9E9E9E9E9E9E9E9E9393939393939393939393939E9E9E9E9E9E9E9E9EDBDBDBDBDBDB
+DBDBDBF9F9F9F9F9F9F9F9F9FDFDFDFDFDFDFDFDFDFEFEFEFEFEFEFEFEFEFEFEFEFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFF9F9F9F9F9F9F9F9F9CACACACACACACACACAD7D7D7D7D7D7D7D7D7
+D7D7D7D7D7D7D7D7D7D8D8D8D8D8D8D8D8D8D8D8D8D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7
+D7D7D7D7D7D7D7D7D7D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D7D7D7D7D7D7D7D7D7
+D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6
+D6D6D6D6D6D6D6D6D6D6D6D5D6D6D5D6D6D5D5D5D5D5D5D5D5D5D5D6D6D5D6D6D5D6D6D5D6D6D5
+D6D6D5D6D6D5D6D6D5D6D6D5D6D6D5D6D6D5D4D4D4D4D4D4D4D4D4D1D1D1D1D1D1D1D1D1D0D0D0
+D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0
+D0D0D0D0D0D0D0D0D0CECECECECECECECECECECECECECECECECECECDCDCDCDCDCDCDCDCDCECECE
+CECECECECECECFCFCFCFCFCFCFCFCFCFCFCFD0D0D0D0D0D0D0D0D0C2C2C2C2C2C2C2C2C29A9A9A
+9A9A9A9A9A9A666666666666666666484848484848484848484848404040404040404040555555
+555555555555717171717171717171757575757575757575757575727272727272727272737373
+7373737373737474747474747474747676767676767676767979797979797979797979797C7C7C
+7C7C7C7C7C7C8181818181818181818585858585858585858B8B8B8B8B8B8B8B8B8D8D8D8D8D8D
+8D8D8D8D8D8D8888888888888888888C8C8C8C8C8C8C8C8C949494949494949494969696969696
+9696969696969090909090909090908F8F8F8F8F8F8F8F8F909090909090909090939393939393
+9393939090909090909090909090909090909090909090908D8D8D8D8D8D8D8D8D888888888888
+888888888888888888888888888888888888888888888888878787878787878787808080808080
+8080807373737373737373737171717171717171717171717D7D7D7D7D7D7D7D7D898989898989
+8989898D8D8D8D8D8D8D8D8D959595959595959595A3A3A3A3A3A3A3A3A3A3A3A3B2B2B2B2B2B2
+B2B2B2BABABABABABABABABAB7B7B7B7B7B7B7B7B7B5B5B5B5B5B5B5B5B5B0B0B0B0B0B0B0B0B0
+B0B0B0A8A8A8A8A8A8A8A8A8A0A0A0A0A0A0A0A0A09A9A9A9A9A9A9A9A9A9A9A9A9A9A9A9A9A9A
+9A9A9AA3A3A3A3A3A3A3A3A3A8A8A8A8A8A8A8A8A8A4A4A4A4A4A4A4A4A49B9B9B9B9B9B9B9B9B
+939393939393939393939393B7B7B7B7B7B7B7B7B7F0F0F0F0F0F0F0F0F0FDFDFDFDFDFDFDFDFD
+FDFDFDFDFDFDFDFDFDFEFEFEFEFEFEFEFEFEFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FBFBFBFBFBFBFBFBFBD4D4D4D4D4D4D4D4D4D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D8D8D8
+D8D8D8D8D8D8D8D8D8D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D8D8D8
+D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D7D7D7D7D7D7D7D7D7D6D6D6D6D6D6D6D6D6D6D6D6
+D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D5
+D6D6D5D6D6D5D5D5D5D5D5D5D5D5D5D6D6D5D6D6D5D6D6D5D6D6D5D6D6D5D6D6D5D6D6D5D6D6D5
+D6D6D5D6D6D5D4D4D4D4D4D4D4D4D4D1D1D1D1D1D1D1D1D1D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0
+D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0CECECE
+CECECECECECECECECECECECECECECECDCDCDCDCDCDCDCDCDCECECECECECECECECECFCFCFCFCFCF
+CFCFCFCFCFCFD0D0D0D0D0D0D0D0D0C2C2C2C2C2C2C2C2C29A9A9A9A9A9A9A9A9A666666666666
+666666484848484848484848484848404040404040404040555555555555555555717171717171
+717171757575757575757575757575727272727272727272737373737373737373747474747474
+7474747676767676767676767979797979797979797979797C7C7C7C7C7C7C7C7C818181818181
+8181818585858585858585858B8B8B8B8B8B8B8B8B8D8D8D8D8D8D8D8D8D8D8D8D888888888888
+8888888C8C8C8C8C8C8C8C8C949494949494949494969696969696969696969696909090909090
+9090908F8F8F8F8F8F8F8F8F909090909090909090939393939393939393909090909090909090
+9090909090909090909090908D8D8D8D8D8D8D8D8D888888888888888888888888888888888888
+888888888888888888888888878787878787878787808080808080808080737373737373737373
+7171717171717171717171717D7D7D7D7D7D7D7D7D8989898989898989898D8D8D8D8D8D8D8D8D
+959595959595959595A3A3A3A3A3A3A3A3A3A3A3A3B2B2B2B2B2B2B2B2B2BABABABABABABABABA
+B7B7B7B7B7B7B7B7B7B5B5B5B5B5B5B5B5B5B0B0B0B0B0B0B0B0B0B0B0B0A8A8A8A8A8A8A8A8A8
+A0A0A0A0A0A0A0A0A09A9A9A9A9A9A9A9A9A9A9A9A9A9A9A9A9A9A9A9A9AA3A3A3A3A3A3A3A3A3
+A8A8A8A8A8A8A8A8A8A4A4A4A4A4A4A4A4A49B9B9B9B9B9B9B9B9B939393939393939393939393
+B7B7B7B7B7B7B7B7B7F0F0F0F0F0F0F0F0F0FDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFEFEFE
+FEFEFEFEFEFEFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBFBFBFBFBFBFBFBFBD4D4D4
+D4D4D4D4D4D4D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D8D8D8D8D8D8D8D8D8D8D8D8D7D7D7
+D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8
+D8D8D8D8D8D8D7D7D7D7D7D7D7D7D7D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6
+D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D5D6D6D5D6D6D5D5D5D5D5D5D5
+D5D5D5D6D6D5D6D6D5D6D6D5D6D6D5D6D6D5D6D6D5D6D6D5D6D6D5D6D6D5D6D6D5D4D4D4D4D4D4
+D4D4D4D1D1D1D1D1D1D1D1D1D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0
+D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0CECECECECECECECECECECECECECECE
+CECECECDCDCDCDCDCDCDCDCDCECECECECECECECECECFCFCFCFCFCFCFCFCFCFCFCFD0D0D0D0D0D0
+D0D0D0C2C2C2C2C2C2C2C2C29A9A9A9A9A9A9A9A9A666666666666666666484848484848484848
+484848404040404040404040555555555555555555717171717171717171757575757575757575
+757575727272727272727272737373737373737373747474747474747474767676767676767676
+7979797979797979797979797C7C7C7C7C7C7C7C7C818181818181818181858585858585858585
+8B8B8B8B8B8B8B8B8B8D8D8D8D8D8D8D8D8D8D8D8D8888888888888888888C8C8C8C8C8C8C8C8C
+9494949494949494949696969696969696969696969090909090909090908F8F8F8F8F8F8F8F8F
+909090909090909090939393939393939393909090909090909090909090909090909090909090
+8D8D8D8D8D8D8D8D8D888888888888888888888888888888888888888888888888888888888888
+878787878787878787808080808080808080737373737373737373717171717171717171717171
+7D7D7D7D7D7D7D7D7D8989898989898989898D8D8D8D8D8D8D8D8D959595959595959595A3A3A3
+A3A3A3A3A3A3A3A3A3B2B2B2B2B2B2B2B2B2BABABABABABABABABAB7B7B7B7B7B7B7B7B7B5B5B5
+B5B5B5B5B5B5B0B0B0B0B0B0B0B0B0B0B0B0A8A8A8A8A8A8A8A8A8A0A0A0A0A0A0A0A0A09A9A9A
+9A9A9A9A9A9A9A9A9A9A9A9A9A9A9A9A9A9AA3A3A3A3A3A3A3A3A3A8A8A8A8A8A8A8A8A8A4A4A4
+A4A4A4A4A4A49B9B9B9B9B9B9B9B9B939393939393939393939393B7B7B7B7B7B7B7B7B7F0F0F0
+F0F0F0F0F0F0FDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFEFEFEFEFEFEFEFEFEFEFEFEFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBFBFBFBFBFBFBFBFBD4D4D4D4D4D4D4D4D4D7D7D7D7D7D7
+D7D7D7D7D7D7D7D7D7D7D7D7D8D8D8D8D8D8D8D8D8D8D8D8D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7
+D7D7D7D7D7D7D7D7D7D7D7D7D8D8D8D8D8D8D8D8D8D7D7D7D7D7D7D7D7D7D7D7D7D6D6D6D6D6D6
+D6D6D6D6D6D5D6D6D5D6D6D5D6D6D5D6D6D5D6D6D5D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6
+D6D6D6D6D6D6D6D6D6D6D6D6D5D5D5D5D5D5D5D5D5D4D4D4D4D4D4D4D4D4D5D5D5D5D5D5D5D5D5
+D5D5D5D5D5D5D5D5D5D5D5D5D4D4D4D4D4D4D4D4D4D3D3D3D3D3D3D3D3D3D0D0D0D0D0D0D0D0D0
+D0D0D0D0D0D0D0D0D0D0D0D0CFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFD0D0D0D0D0D0D0D0D0
+D0D0D0D0D0D0D0D0D0D0D0D0CECECECECECECECECECECECECECECECECECECDCDCDCDCDCDCDCDCD
+CECECECECECECECECED0D0D0D0D0D0D0D0D0D0D0D0CFCFCFCFCFCFCFCFCFC0C0C0C0C0C0C0C0C0
+A2A2A2A2A2A2A2A2A2767676767676767676454545454545454545454545353535353535353535
+4F4F4F4F4F4F4F4F4F707070707070707070787878787878787878787878737373737373737373
+737373737373737373747474747474747474767676767676767676777777777777777777777777
+7A7A7A7A7A7A7A7A7A7C7C7C7C7C7C7C7C7C808080808080808080868686868686868686888888
+8888888888888888888383838383838383838484848484848484848A8A8A8A8A8A8A8A8A8E8E8E
+8E8E8E8E8E8E8E8E8E8B8B8B8B8B8B8B8B8B8989898989898989898989898989898989898B8B8B
+8B8B8B8B8B8B8C8C8C8C8C8C8C8C8C8C8C8C8D8D8D8D8D8D8D8D8D8787878787878787877F7F7F
+7F7F7F7F7F7F7B7B7B7B7B7B7B7B7B7979797979797979797979797B7B7B7B7B7B7B7B7B7B7B7B
+7B7B7B7B7B7B7777777777777777777676767676767676767676767D7D7D7D7D7D7D7D7D888888
+8888888888888F8F8F8F8F8F8F8F8F999999999999999999A8A8A8A8A8A8A8A8A8A8A8A8B5B5B5
+B5B5B5B5B5B5B9B9B9B9B9B9B9B9B9B5B5B5B5B5B5B5B5B5B0B0B0B0B0B0B0B0B0A9A9A9A9A9A9
+A9A9A9A9A9A9A9A9A9A9A9A9A9A9A9A5A5A5A5A5A5A5A5A59E9E9E9E9E9E9E9E9E9E9E9E9E9E9E
+9E9E9E9E9E9EA6A6A6A6A6A6A6A6A6A9A9A9A9A9A9A9A9A9A1A1A1A1A1A1A1A1A1979797979797
+9797979A9A9A9A9A9A9A9A9A9A9A9AD4D4D4D4D4D4D4D4D4FAFAFAFAFAFAFAFAFAFEFEFEFEFEFE
+FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFCFCFCFCFCFCFCFCFCE1E1E1E1E1E1E1E1E1D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7
+D8D8D8D8D8D8D8D8D8D8D8D8D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7
+D8D8D8D8D8D8D8D8D8D7D7D7D7D7D7D7D7D7D7D7D7D6D6D6D6D6D6D6D6D6D6D6D5D6D6D5D6D6D5
+D6D6D5D6D6D5D6D6D5D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6
+D5D5D5D5D5D5D5D5D5D4D4D4D4D4D4D4D4D4D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5
+D4D4D4D4D4D4D4D4D4D3D3D3D3D3D3D3D3D3D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0
+CFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFD0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0
+CECECECECECECECECECECECECECECECECECECDCDCDCDCDCDCDCDCDCECECECECECECECECED0D0D0
+D0D0D0D0D0D0D0D0D0CFCFCFCFCFCFCFCFCFC0C0C0C0C0C0C0C0C0A2A2A2A2A2A2A2A2A2767676
+7676767676764545454545454545454545453535353535353535354F4F4F4F4F4F4F4F4F707070
+707070707070787878787878787878787878737373737373737373737373737373737373747474
+7474747474747676767676767676767777777777777777777777777A7A7A7A7A7A7A7A7A7C7C7C
+7C7C7C7C7C7C808080808080808080868686868686868686888888888888888888888888838383
+8383838383838484848484848484848A8A8A8A8A8A8A8A8A8E8E8E8E8E8E8E8E8E8E8E8E8B8B8B
+8B8B8B8B8B8B8989898989898989898989898989898989898B8B8B8B8B8B8B8B8B8C8C8C8C8C8C
+8C8C8C8C8C8C8D8D8D8D8D8D8D8D8D8787878787878787877F7F7F7F7F7F7F7F7F7B7B7B7B7B7B
+7B7B7B7979797979797979797979797B7B7B7B7B7B7B7B7B7B7B7B7B7B7B7B7B7B777777777777
+7777777676767676767676767676767D7D7D7D7D7D7D7D7D8888888888888888888F8F8F8F8F8F
+8F8F8F999999999999999999A8A8A8A8A8A8A8A8A8A8A8A8B5B5B5B5B5B5B5B5B5B9B9B9B9B9B9
+B9B9B9B5B5B5B5B5B5B5B5B5B0B0B0B0B0B0B0B0B0A9A9A9A9A9A9A9A9A9A9A9A9A9A9A9A9A9A9
+A9A9A9A5A5A5A5A5A5A5A5A59E9E9E9E9E9E9E9E9E9E9E9E9E9E9E9E9E9E9E9E9EA6A6A6A6A6A6
+A6A6A6A9A9A9A9A9A9A9A9A9A1A1A1A1A1A1A1A1A19797979797979797979A9A9A9A9A9A9A9A9A
+9A9A9AD4D4D4D4D4D4D4D4D4FAFAFAFAFAFAFAFAFAFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE
+FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCFCFCFCFCFCFCFCFC
+E1E1E1E1E1E1E1E1E1D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D8D8D8D8D8D8D8D8D8D8D8D8
+D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D8D8D8D8D8D8D8D8D8D7D7D7
+D7D7D7D7D7D7D7D7D7D6D6D6D6D6D6D6D6D6D6D6D5D6D6D5D6D6D5D6D6D5D6D6D5D6D6D5D6D6D6
+D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D5D5D5D5D5D5D5D5D5D4D4D4
+D4D4D4D4D4D4D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D4D4D4D4D4D4D4D4D4D3D3D3
+D3D3D3D3D3D3D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0CFCFCFCFCFCFCFCFCFCFCFCF
+CFCFCFCFCFCFD0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0CECECECECECECECECECECECE
+CECECECECECECDCDCDCDCDCDCDCDCDCECECECECECECECECED0D0D0D0D0D0D0D0D0D0D0D0CFCFCF
+CFCFCFCFCFCFC0C0C0C0C0C0C0C0C0A2A2A2A2A2A2A2A2A2767676767676767676454545454545
+4545454545453535353535353535354F4F4F4F4F4F4F4F4F707070707070707070787878787878
+787878787878737373737373737373737373737373737373747474747474747474767676767676
+7676767777777777777777777777777A7A7A7A7A7A7A7A7A7C7C7C7C7C7C7C7C7C808080808080
+808080868686868686868686888888888888888888888888838383838383838383848484848484
+8484848A8A8A8A8A8A8A8A8A8E8E8E8E8E8E8E8E8E8E8E8E8B8B8B8B8B8B8B8B8B898989898989
+8989898989898989898989898B8B8B8B8B8B8B8B8B8C8C8C8C8C8C8C8C8C8C8C8C8D8D8D8D8D8D
+8D8D8D8787878787878787877F7F7F7F7F7F7F7F7F7B7B7B7B7B7B7B7B7B797979797979797979
+7979797B7B7B7B7B7B7B7B7B7B7B7B7B7B7B7B7B7B777777777777777777767676767676767676
+7676767D7D7D7D7D7D7D7D7D8888888888888888888F8F8F8F8F8F8F8F8F999999999999999999
+A8A8A8A8A8A8A8A8A8A8A8A8B5B5B5B5B5B5B5B5B5B9B9B9B9B9B9B9B9B9B5B5B5B5B5B5B5B5B5
+B0B0B0B0B0B0B0B0B0A9A9A9A9A9A9A9A9A9A9A9A9A9A9A9A9A9A9A9A9A9A5A5A5A5A5A5A5A5A5
+9E9E9E9E9E9E9E9E9E9E9E9E9E9E9E9E9E9E9E9E9EA6A6A6A6A6A6A6A6A6A9A9A9A9A9A9A9A9A9
+A1A1A1A1A1A1A1A1A19797979797979797979A9A9A9A9A9A9A9A9A9A9A9AD4D4D4D4D4D4D4D4D4
+FAFAFAFAFAFAFAFAFAFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE
+FEFEFEFEFEFEFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCFCFCFCFCFCFCFCFCE1E1E1E1E1E1E1E1E1D7D7D7
+D7D7D7D7D7D7D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D7D7D7D7D7D7D7D7D7D6D6D6
+D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7
+D7D7D7D7D7D7D6D6D5D6D6D5D6D6D5D6D6D5D6D6D5D6D6D5D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6
+D6D6D6D6D6D6D6D6D5D6D6D5D6D6D5D5D5D5D5D5D5D5D5D5D4D4D4D4D4D4D4D4D4D4D4D4D4D4D4
+D4D4D4D4D4D4D4D4D4D4D4D4D4D4D4D3D3D3D3D3D3D3D3D3D2D2D2D2D2D2D2D2D2D0D0D0D0D0D0
+D0D0D0CFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFD0D0D0D0D0D0
+D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0CFCFCFCFCFCFCFCFCFCDCDCDCDCDCDCDCDCDCDCDCDCDCDCD
+CDCDCDCECECECECECECECECED0D0D0D0D0D0D0D0D0D0D0D0CFCFCFCFCFCFCFCFCFC4C4C4C4C4C4
+C4C4C4B1B1B1B1B1B1B1B1B19A9A9A9A9A9A9A9A9A6161616161616161616161613A3A3A3A3A3A
+3A3A3A4D4D4D4D4D4D4D4D4D6F6F6F6F6F6F6F6F6F7B7B7B7B7B7B7B7B7B7B7B7B767676767676
+767676727272727272727272737373737373737373747474747474747474757575757575757575
+7575757878787878787878787979797979797979797B7B7B7B7B7B7B7B7B7F7F7F7F7F7F7F7F7F
+8282828282828282828282827E7E7E7E7E7E7E7E7E7C7C7C7C7C7C7C7C7C808080808080808080
+868686868686868686868686858585858585858585858585858585858585868686868686868686
+8888888888888888888989898989898989898989898B8B8B8B8B8B8B8B8B898989898989898989
+8282828282828282827E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7F7F7F7F7F7F7F7F7F
+808080808080808080818181818181818181808080808080808080808080868686868686868686
+909090909090909090979797979797979797A3A3A3A3A3A3A3A3A3AFAFAFAFAFAFAFAFAFAFAFAF
+B7B7B7B7B7B7B7B7B7B8B8B8B8B8B8B8B8B8B3B3B3B3B3B3B3B3B3AFAFAFAFAFAFAFAFAFA8A8A8
+A8A8A8A8A8A8A8A8A8ABABABABABABABABABA8A8A8A8A8A8A8A8A8A2A2A2A2A2A2A2A2A2A3A3A3
+A3A3A3A3A3A3A3A3A3A8A8A8A8A8A8A8A8A8A9A9A9A9A9A9A9A9A9A0A0A0A0A0A0A0A0A0969696
+969696969696A9A9A9A9A9A9A9A9A9A9A9A9E8E8E8E8E8E8E8E8E8FCFCFCFCFCFCFCFCFCFDFDFD
+FDFDFDFDFDFDFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE
+FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFF9F9F9F9F9F9F9F9F9C7C7C7C7C7C7C7C7C7D7D7D7D7D7D7D7D7D7D8D8D8D8D8D8
+D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D7D7D7D7D7D7D7D7D7D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6
+D6D6D6D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D6D6D5D6D6D5
+D6D6D5D6D6D5D6D6D5D6D6D5D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D5D6D6D5
+D6D6D5D5D5D5D5D5D5D5D5D5D4D4D4D4D4D4D4D4D4D4D4D4D4D4D4D4D4D4D4D4D4D4D4D4D4D4D4
+D4D4D4D3D3D3D3D3D3D3D3D3D2D2D2D2D2D2D2D2D2D0D0D0D0D0D0D0D0D0CFCFCFCFCFCFCFCFCF
+CFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFD0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0
+D0D0D0CFCFCFCFCFCFCFCFCFCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCECECECECECECECECE
+D0D0D0D0D0D0D0D0D0D0D0D0CFCFCFCFCFCFCFCFCFC4C4C4C4C4C4C4C4C4B1B1B1B1B1B1B1B1B1
+9A9A9A9A9A9A9A9A9A6161616161616161616161613A3A3A3A3A3A3A3A3A4D4D4D4D4D4D4D4D4D
+6F6F6F6F6F6F6F6F6F7B7B7B7B7B7B7B7B7B7B7B7B767676767676767676727272727272727272
+737373737373737373747474747474747474757575757575757575757575787878787878787878
+7979797979797979797B7B7B7B7B7B7B7B7B7F7F7F7F7F7F7F7F7F828282828282828282828282
+7E7E7E7E7E7E7E7E7E7C7C7C7C7C7C7C7C7C808080808080808080868686868686868686868686
+858585858585858585858585858585858585868686868686868686888888888888888888898989
+8989898989898989898B8B8B8B8B8B8B8B8B8989898989898989898282828282828282827E7E7E
+7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7F7F7F7F7F7F7F7F7F808080808080808080818181
+818181818181808080808080808080808080868686868686868686909090909090909090979797
+979797979797A3A3A3A3A3A3A3A3A3AFAFAFAFAFAFAFAFAFAFAFAFB7B7B7B7B7B7B7B7B7B8B8B8
+B8B8B8B8B8B8B3B3B3B3B3B3B3B3B3AFAFAFAFAFAFAFAFAFA8A8A8A8A8A8A8A8A8A8A8A8ABABAB
+ABABABABABABA8A8A8A8A8A8A8A8A8A2A2A2A2A2A2A2A2A2A3A3A3A3A3A3A3A3A3A3A3A3A8A8A8
+A8A8A8A8A8A8A9A9A9A9A9A9A9A9A9A0A0A0A0A0A0A0A0A0969696969696969696A9A9A9A9A9A9
+A9A9A9A9A9A9E8E8E8E8E8E8E8E8E8FCFCFCFCFCFCFCFCFCFDFDFDFDFDFDFDFDFDFEFEFEFEFEFE
+FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE
+FEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9F9F9F9F9F9
+F9F9F9C7C7C7C7C7C7C7C7C7D7D7D7D7D7D7D7D7D7D9D9D9D9D9D9D9D9D9D7D7D7D7D7D7D7D7D7
+D7D7D7D7D7D7D7D7D7D7D7D7D6D6D6D6D6D6D6D6D6D6D6D5D6D6D5D6D6D5D6D6D6D6D6D6D6D6D6
+D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D5D6D6D5D6D6D5D6D6D5D6D6D5D6D6D5
+D6D6D5D6D6D5D6D6D5D6D6D5D6D6D5D6D6D5D6D6D5D5D5D5D5D5D5D5D5D5D4D4D4D4D4D4D4D4D4
+D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D2D2D2D2D2D2D2D2D2
+D2D2D2D2D2D2D2D2D2D0D0D0D0D0D0D0D0D0CFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCF
+CFCFCFCFCFCFCFCFCFD0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0CECECECECECECECECE
+CDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCECECECECECECECECED0D0D0D0D0D0D0D0D0D0D0D0
+CFCFCFCFCFCFCFCFCFC6C6C6C6C6C6C6C6C6B6B6B6B6B6B6B6B6B6ACACACACACACACACAC808080
+8080808080808080804949494949494949494C4C4C4C4C4C4C4C4C6C6C6C6C6C6C6C6C6C7B7B7B
+7B7B7B7B7B7B7B7B7B797979797979797979727272727272727272727272727272727272737373
+737373737373757575757575757575757575777777777777777777777777777777777777797979
+7979797979797A7A7A7A7A7A7A7A7A7E7E7E7E7E7E7E7E7E7E7E7E7B7B7B7B7B7B7B7B7B777777
+7777777777777979797979797979797E7E7E7E7E7E7E7E7E7E7E7E7F7F7F7F7F7F7F7F7F818181
+8181818181818383838383838383838888888888888888888A8A8A8A8A8A8A8A8A8A8A8A8C8C8C
+8C8C8C8C8C8C8E8E8E8E8E8E8E8E8E898989898989898989868686868686868686858585858585
+858585858585838383838383838383818181818181818181858585858585858585878787878787
+8787878787878F8F8F8F8F8F8F8F8F999999999999999999A1A1A1A1A1A1A1A1A1ACACACACACAC
+ACACACB8B8B8B8B8B8B8B8B8B8B8B8BBBBBBBBBBBBBBBBBBB8B8B8B8B8B8B8B8B8B5B5B5B5B5B5
+B5B5B5B3B3B3B3B3B3B3B3B3B0B0B0B0B0B0B0B0B0B0B0B0AEAEAEAEAEAEAEAEAEAAAAAAAAAAAA
+AAAAAAA8A8A8A8A8A8A8A8A8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8A8A8A8A8A8
+A8A8A89E9E9E9E9E9E9E9E9E959595959595959595B5B5B5B5B5B5B5B5B5B5B5B5F0F0F0F0F0F0
+F0F0F0FDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFEFEFEFEFEFEFEFEFEFFFFFFFFFFFFFFFFFF
+FFFFFFFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9F9F9F9F9F9F9F9F9C6C6C6C6C6C6C6C6C6
+D7D7D7D7D7D7D7D7D7D9D9D9D9D9D9D9D9D9D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7
+D6D6D6D6D6D6D6D6D6D6D6D5D6D6D5D6D6D5D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6
+D6D6D6D6D6D6D6D6D6D6D6D5D6D6D5D6D6D5D6D6D5D6D6D5D6D6D5D6D6D5D6D6D5D6D6D5D6D6D5
+D6D6D5D6D6D5D6D6D5D5D5D5D5D5D5D5D5D5D4D4D4D4D4D4D4D4D4D3D3D3D3D3D3D3D3D3D3D3D3
+D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D0D0D0
+D0D0D0D0D0D0CFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFD0D0D0
+D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0CECECECECECECECECECDCDCDCDCDCDCDCDCDCDCDCD
+CDCDCDCDCDCDCECECECECECECECECED0D0D0D0D0D0D0D0D0D0D0D0CFCFCFCFCFCFCFCFCFC6C6C6
+C6C6C6C6C6C6B6B6B6B6B6B6B6B6B6ACACACACACACACACAC808080808080808080808080494949
+4949494949494C4C4C4C4C4C4C4C4C6C6C6C6C6C6C6C6C6C7B7B7B7B7B7B7B7B7B7B7B7B797979
+797979797979727272727272727272727272727272727272737373737373737373757575757575
+7575757575757777777777777777777777777777777777777979797979797979797A7A7A7A7A7A
+7A7A7A7E7E7E7E7E7E7E7E7E7E7E7E7B7B7B7B7B7B7B7B7B777777777777777777797979797979
+7979797E7E7E7E7E7E7E7E7E7E7E7E7F7F7F7F7F7F7F7F7F818181818181818181838383838383
+8383838888888888888888888A8A8A8A8A8A8A8A8A8A8A8A8C8C8C8C8C8C8C8C8C8E8E8E8E8E8E
+8E8E8E898989898989898989868686868686868686858585858585858585858585838383838383
+8383838181818181818181818585858585858585858787878787878787878787878F8F8F8F8F8F
+8F8F8F999999999999999999A1A1A1A1A1A1A1A1A1ACACACACACACACACACB8B8B8B8B8B8B8B8B8
+B8B8B8BBBBBBBBBBBBBBBBBBB8B8B8B8B8B8B8B8B8B5B5B5B5B5B5B5B5B5B3B3B3B3B3B3B3B3B3
+B0B0B0B0B0B0B0B0B0B0B0B0AEAEAEAEAEAEAEAEAEAAAAAAAAAAAAAAAAAAA8A8A8A8A8A8A8A8A8
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8A8A8A8A8A8A8A8A89E9E9E9E9E9E9E9E9E
+959595959595959595B5B5B5B5B5B5B5B5B5B5B5B5F0F0F0F0F0F0F0F0F0FDFDFDFDFDFDFDFDFD
+FDFDFDFDFDFDFDFDFDFEFEFEFEFEFEFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFEFEFEFEFEFE
+FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFF9F9F9F9F9F9F9F9F9C6C6C6C6C6C6C6C6C6D7D7D7D7D7D7D7D7D7D9D9D9
+D9D9D9D9D9D9D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D6D6D6D6D6D6D6D6D6D6D6D5
+D6D6D5D6D6D5D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D5
+D6D6D5D6D6D5D6D6D5D6D6D5D6D6D5D6D6D5D6D6D5D6D6D5D6D6D5D6D6D5D6D6D5D6D6D5D5D5D5
+D5D5D5D5D5D5D4D4D4D4D4D4D4D4D4D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3
+D3D3D3D3D3D3D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D0D0D0D0D0D0D0D0D0CFCFCFCFCFCF
+CFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFD0D0D0D0D0D0D0D0D0D0D0D0D0D0D0
+D0D0D0D0D0D0CECECECECECECECECECDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCECECECECECE
+CECECED0D0D0D0D0D0D0D0D0D0D0D0CFCFCFCFCFCFCFCFCFC6C6C6C6C6C6C6C6C6B6B6B6B6B6B6
+B6B6B6ACACACACACACACACAC8080808080808080808080804949494949494949494C4C4C4C4C4C
+4C4C4C6C6C6C6C6C6C6C6C6C7B7B7B7B7B7B7B7B7B7B7B7B797979797979797979727272727272
+727272727272727272727272737373737373737373757575757575757575757575777777777777
+7777777777777777777777777979797979797979797A7A7A7A7A7A7A7A7A7E7E7E7E7E7E7E7E7E
+7E7E7E7B7B7B7B7B7B7B7B7B7777777777777777777979797979797979797E7E7E7E7E7E7E7E7E
+7E7E7E7F7F7F7F7F7F7F7F7F818181818181818181838383838383838383888888888888888888
+8A8A8A8A8A8A8A8A8A8A8A8A8C8C8C8C8C8C8C8C8C8E8E8E8E8E8E8E8E8E898989898989898989
+868686868686868686858585858585858585858585838383838383838383818181818181818181
+8585858585858585858787878787878787878787878F8F8F8F8F8F8F8F8F999999999999999999
+A1A1A1A1A1A1A1A1A1ACACACACACACACACACB8B8B8B8B8B8B8B8B8B8B8B8BBBBBBBBBBBBBBBBBB
+B8B8B8B8B8B8B8B8B8B5B5B5B5B5B5B5B5B5B3B3B3B3B3B3B3B3B3B0B0B0B0B0B0B0B0B0B0B0B0
+AEAEAEAEAEAEAEAEAEAAAAAAAAAAAAAAAAAAA8A8A8A8A8A8A8A8A8AAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAA8A8A8A8A8A8A8A8A89E9E9E9E9E9E9E9E9E959595959595959595B5B5B5
+B5B5B5B5B5B5B5B5B5F0F0F0F0F0F0F0F0F0FDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFEFEFE
+FEFEFEFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE
+FEFEFEFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9F9F9
+F9F9F9F9F9F9C6C6C6C6C6C6C6C6C6D6D6D6D6D6D6D6D6D6D7D7D7D7D7D7D7D7D7D6D6D6D6D6D6
+D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D5D6D6D5D6D6D5D5D5D5D5D5D5D5D5D5D6D6D5D6D6D5
+D6D6D5D6D6D5D6D6D5D6D6D5D6D6D5D6D6D5D6D6D5D6D6D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5
+D5D5D5D4D4D4D4D4D4D4D4D4D4D4D4D4D4D4D4D4D4D4D4D4D4D4D4D4D4D4D4D4D4D3D3D3D3D3D3
+D3D3D3D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D1D1D1D1D1D1D1D1D1D2D2D2D2D2D2
+D2D2D2D2D2D2D2D2D2D2D2D2D0D0D0D0D0D0D0D0D0CFCFCFCFCFCFCFCFCFCFCFCFCECECECECECE
+CECECECECECECECECECECECECECECECECECECECECECECECECECECECECECECECECECECECECECECE
+CECECECDCDCDCDCDCDCDCDCDCECECECECECECECECECECECECECECECECECED0D0D0D0D0D0D0D0D0
+D0D0D0CFCFCFCFCFCFCFCFCFC6C6C6C6C6C6C6C6C6B8B8B8B8B8B8B8B8B8B3B3B3B3B3B3B3B3B3
+9B9B9B9B9B9B9B9B9B9B9B9B666666666666666666515151515151515151686868686868686868
+7979797979797979797979797B7B7B7B7B7B7B7B7B747474747474747474707070707070707070
+717171717171717171737373737373737373737373757575757575757575767676767676767676
+7878787878787878787979797979797979797B7B7B7B7B7B7B7B7B7B7B7B787878787878787878
+747474747474747474737373737373737373757575757575757575757575777777777777777777
+7D7D7D7D7D7D7D7D7D8181818181818181818585858585858585858A8A8A8A8A8A8A8A8A8A8A8A
+8F8F8F8F8F8F8F8F8F9090909090909090908B8B8B8B8B8B8B8B8B888888888888888888898989
+8989898989898989898888888888888888888A8A8A8A8A8A8A8A8A8F8F8F8F8F8F8F8F8F979797
+979797979797979797A2A2A2A2A2A2A2A2A2A8A8A8A8A8A8A8A8A8B0B0B0B0B0B0B0B0B0B9B9B9
+B9B9B9B9B9B9C0C0C0C0C0C0C0C0C0C0C0C0BFBFBFBFBFBFBFBFBFBEBEBEBEBEBEBEBEBEBEBEBE
+BEBEBEBEBEBEBCBCBCBCBCBCBCBCBCB7B7B7B7B7B7B7B7B7B7B7B7B0B0B0B0B0B0B0B0B0AEAEAE
+AEAEAEAEAEAEADADADADADADADADADADADADADADADADADADADADADAAAAAAAAAAAAAAAAAAA4A4A4
+A4A4A4A4A4A4999999999999999999929292929292929292BABABABABABABABABABABABAF1F1F1
+F1F1F1F1F1F1FDFDFDFDFDFDFDFDFDFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE
+FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFEFEFE
+FEFEFEFEFEFEFEFEFEFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9F9F9F9F9F9F9F9F9BBBBBBBBBBBB
+BBBBBBD6D6D6D6D6D6D6D6D6D7D7D7D7D7D7D7D7D7D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6
+D6D6D6D6D6D5D6D6D5D6D6D5D5D5D5D5D5D5D5D5D5D6D6D5D6D6D5D6D6D5D6D6D5D6D6D5D6D6D5
+D6D6D5D6D6D5D6D6D5D6D6D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D4D4D4D4D4D4D4D4D4
+D4D4D4D4D4D4D4D4D4D4D4D4D4D4D4D4D4D4D4D4D4D3D3D3D3D3D3D3D3D3D2D2D2D2D2D2D2D2D2
+D2D2D2D2D2D2D2D2D2D2D2D2D1D1D1D1D1D1D1D1D1D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2
+D0D0D0D0D0D0D0D0D0CFCFCFCFCFCFCFCFCFCFCFCFCECECECECECECECECECECECECECECECECECE
+CECECECECECECECECECECECECECECECECECECECECECECECECECECECECECECDCDCDCDCDCDCDCDCD
+CECECECECECECECECECECECECECECECECECED0D0D0D0D0D0D0D0D0D0D0D0CFCFCFCFCFCFCFCFCF
+C6C6C6C6C6C6C6C6C6B8B8B8B8B8B8B8B8B8B3B3B3B3B3B3B3B3B39B9B9B9B9B9B9B9B9B9B9B9B
+666666666666666666515151515151515151686868686868686868797979797979797979797979
+7B7B7B7B7B7B7B7B7B747474747474747474707070707070707070717171717171717171737373
+737373737373737373757575757575757575767676767676767676787878787878787878797979
+7979797979797B7B7B7B7B7B7B7B7B7B7B7B787878787878787878747474747474747474737373
+7373737373737575757575757575757575757777777777777777777D7D7D7D7D7D7D7D7D818181
+8181818181818585858585858585858A8A8A8A8A8A8A8A8A8A8A8A8F8F8F8F8F8F8F8F8F909090
+9090909090908B8B8B8B8B8B8B8B8B888888888888888888898989898989898989898989888888
+8888888888888A8A8A8A8A8A8A8A8A8F8F8F8F8F8F8F8F8F979797979797979797979797A2A2A2
+A2A2A2A2A2A2A8A8A8A8A8A8A8A8A8B0B0B0B0B0B0B0B0B0B9B9B9B9B9B9B9B9B9C0C0C0C0C0C0
+C0C0C0C0C0C0BFBFBFBFBFBFBFBFBFBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBCBCBCBCBCBC
+BCBCBCB7B7B7B7B7B7B7B7B7B7B7B7B0B0B0B0B0B0B0B0B0AEAEAEAEAEAEAEAEAEADADADADADAD
+ADADADADADADADADADADADADADADADAAAAAAAAAAAAAAAAAAA4A4A4A4A4A4A4A4A4999999999999
+999999929292929292929292BABABABABABABABABABABABAF1F1F1F1F1F1F1F1F1FDFDFDFDFDFD
+FDFDFDFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE
+FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFF9F9F9F9F9F9F9F9F9BBBBBBBBBBBBBBBBBBD6D6D5D6D6D5D6D6D5
+D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D5D6D6D5D6D6D5
+D5D5D5D5D5D5D5D5D5D6D6D5D6D6D5D6D6D5D6D6D5D6D6D5D6D6D5D6D6D5D6D6D5D6D6D5D6D6D5
+D5D5D5D5D5D5D5D5D5D4D4D4D4D4D4D4D4D4D3D3D3D3D3D3D3D3D3D3D3D3D2D2D2D2D2D2D2D2D2
+D3D3D3D3D3D3D3D3D3D2D2D2D2D2D2D2D2D2D1D1D1D1D1D1D1D1D1D1D1D1D1D1D1D1D1D1D1D1D1
+D1D1D1D1D1D1D1D1D1D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2CFCFCFCFCFCFCFCFCFCECECE
+CECECECECECECECECECECECECECECECECECECECECECECECECECECECDCDCDCDCDCDCDCDCDCECECE
+CECECECECECECECECECECECECECECECECECECECECECECECECECECECFCFCFCFCFCFCFCFCFCFCFCF
+CFCFCFCFCFCFD0D0D0D0D0D0D0D0D0D0D0D0CECECECECECECECECEC6C6C6C6C6C6C6C6C6B9B9B9
+B9B9B9B9B9B9B4B4B4B4B4B4B4B4B4ADADADADADADADADADADADAD8A8A8A8A8A8A8A8A8A646464
+6464646464646565656565656565657676767676767676767676767C7C7C7C7C7C7C7C7C757575
+7575757575756F6F6F6F6F6F6F6F6F6F6F6F6F6F6F6F6F6F707070707070707070707070727272
+7272727272727575757575757575757878787878787878787A7A7A7A7A7A7A7A7A7B7B7B7B7B7B
+7B7B7B7B7B7B7878787878787878787373737373737373736E6E6E6E6E6E6E6E6E6D6D6D6D6D6D
+6D6D6D6D6D6D7474747474747474747C7C7C7C7C7C7C7C7C808080808080808080838383838383
+838383888888888888888888888888909090909090909090949494949494949494909090909090
+9090908F8F8F8F8F8F8F8F8F929292929292929292929292909090909090909090999999999999
+999999A3A3A3A3A3A3A3A3A3ABABABABABABABABABABABABB4B4B4B4B4B4B4B4B4B7B7B7B7B7B7
+B7B7B7C0C0C0C0C0C0C0C0C0C5C5C5C5C5C5C5C5C5C6C6C6C6C6C6C6C6C6C6C6C6C5C5C5C5C5C5
+C5C5C5C5C5C5C5C5C5C5C5C5C6C6C6C6C6C6C6C6C6C3C3C3C3C3C3C3C3C3B9B9B9B9B9B9B9B9B9
+B9B9B9B3B3B3B3B3B3B3B3B3B2B2B2B2B2B2B2B2B2AFAFAFAFAFAFAFAFAFA8A8A8A8A8A8A8A8A8
+A8A8A8A3A3A3A3A3A3A3A3A39E9E9E9E9E9E9E9E9E959595959595959595949494949494949494
+BCBCBCBCBCBCBCBCBCBCBCBCF1F1F1F1F1F1F1F1F1FDFDFDFDFDFDFDFDFDFEFEFEFEFEFEFEFEFE
+FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE
+FEFEFEFEFEFEFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+F9F9F9F9F9F9F9F9F9C5C5C5C5C5C5C5C5C5D6D6D5D6D6D5D6D6D5D6D6D6D6D6D6D6D6D6D6D6D6
+D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D5D6D6D5D6D6D5D5D5D5D5D5D5D5D5D5D6D6D5
+D6D6D5D6D6D5D6D6D5D6D6D5D6D6D5D6D6D5D6D6D5D6D6D5D6D6D5D5D5D5D5D5D5D5D5D5D4D4D4
+D4D4D4D4D4D4D3D3D3D3D3D3D3D3D3D3D3D3D2D2D2D2D2D2D2D2D2D3D3D3D3D3D3D3D3D3D2D2D2
+D2D2D2D2D2D2D1D1D1D1D1D1D1D1D1D1D1D1D1D1D1D1D1D1D1D1D1D1D1D1D1D1D1D1D1D1D2D2D2
+D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2CFCFCFCFCFCFCFCFCFCECECECECECECECECECECECECECECE
+CECECECECECECECECECECECECECECECDCDCDCDCDCDCDCDCDCECECECECECECECECECECECECECECE
+CECECECECECECECECECECECECECECECFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFD0D0D0D0D0D0
+D0D0D0D0D0D0CECECECECECECECECEC6C6C6C6C6C6C6C6C6B9B9B9B9B9B9B9B9B9B4B4B4B4B4B4
+B4B4B4ADADADADADADADADADADADAD8A8A8A8A8A8A8A8A8A646464646464646464656565656565
+6565657676767676767676767676767C7C7C7C7C7C7C7C7C7575757575757575756F6F6F6F6F6F
+6F6F6F6F6F6F6F6F6F6F6F6F707070707070707070707070727272727272727272757575757575
+7575757878787878787878787A7A7A7A7A7A7A7A7A7B7B7B7B7B7B7B7B7B7B7B7B787878787878
+7878787373737373737373736E6E6E6E6E6E6E6E6E6D6D6D6D6D6D6D6D6D6D6D6D747474747474
+7474747C7C7C7C7C7C7C7C7C808080808080808080838383838383838383888888888888888888
+8888889090909090909090909494949494949494949090909090909090908F8F8F8F8F8F8F8F8F
+929292929292929292929292909090909090909090999999999999999999A3A3A3A3A3A3A3A3A3
+ABABABABABABABABABABABABB4B4B4B4B4B4B4B4B4B7B7B7B7B7B7B7B7B7C0C0C0C0C0C0C0C0C0
+C5C5C5C5C5C5C5C5C5C6C6C6C6C6C6C6C6C6C6C6C6C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5
+C6C6C6C6C6C6C6C6C6C3C3C3C3C3C3C3C3C3B9B9B9B9B9B9B9B9B9B9B9B9B3B3B3B3B3B3B3B3B3
+B2B2B2B2B2B2B2B2B2AFAFAFAFAFAFAFAFAFA8A8A8A8A8A8A8A8A8A8A8A8A3A3A3A3A3A3A3A3A3
+9E9E9E9E9E9E9E9E9E959595959595959595949494949494949494BCBCBCBCBCBCBCBCBCBCBCBC
+F1F1F1F1F1F1F1F1F1FDFDFDFDFDFDFDFDFDFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE
+FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFE
+FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9F9F9F9F9F9F9F9F9C5C5C5
+C5C5C5C5C5C5D6D6D5D6D6D5D6D6D5D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6
+D6D6D6D6D6D6D6D6D5D6D6D5D6D6D5D5D5D5D5D5D5D5D5D5D6D6D5D6D6D5D6D6D5D6D6D5D6D6D5
+D6D6D5D6D6D5D6D6D5D6D6D5D6D6D5D5D5D5D5D5D5D5D5D5D4D4D4D4D4D4D4D4D4D3D3D3D3D3D3
+D3D3D3D3D3D3D2D2D2D2D2D2D2D2D2D3D3D3D3D3D3D3D3D3D2D2D2D2D2D2D2D2D2D1D1D1D1D1D1
+D1D1D1D1D1D1D1D1D1D1D1D1D1D1D1D1D1D1D1D1D1D1D1D1D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2
+D2D2D2CFCFCFCFCFCFCFCFCFCECECECECECECECECECECECECECECECECECECECECECECECECECECE
+CECECECDCDCDCDCDCDCDCDCDCECECECECECECECECECECECECECECECECECECECECECECECECECECE
+CECECECFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFD0D0D0D0D0D0D0D0D0D0D0D0CECECECECECE
+CECECEC6C6C6C6C6C6C6C6C6B9B9B9B9B9B9B9B9B9B4B4B4B4B4B4B4B4B4ADADADADADADADADAD
+ADADAD8A8A8A8A8A8A8A8A8A646464646464646464656565656565656565767676767676767676
+7676767C7C7C7C7C7C7C7C7C7575757575757575756F6F6F6F6F6F6F6F6F6F6F6F6F6F6F6F6F6F
+707070707070707070707070727272727272727272757575757575757575787878787878787878
+7A7A7A7A7A7A7A7A7A7B7B7B7B7B7B7B7B7B7B7B7B787878787878787878737373737373737373
+6E6E6E6E6E6E6E6E6E6D6D6D6D6D6D6D6D6D6D6D6D7474747474747474747C7C7C7C7C7C7C7C7C
+808080808080808080838383838383838383888888888888888888888888909090909090909090
+9494949494949494949090909090909090908F8F8F8F8F8F8F8F8F929292929292929292929292
+909090909090909090999999999999999999A3A3A3A3A3A3A3A3A3ABABABABABABABABABABABAB
+B4B4B4B4B4B4B4B4B4B7B7B7B7B7B7B7B7B7C0C0C0C0C0C0C0C0C0C5C5C5C5C5C5C5C5C5C6C6C6
+C6C6C6C6C6C6C6C6C6C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C6C6C6C6C6C6C6C6C6C3C3C3
+C3C3C3C3C3C3B9B9B9B9B9B9B9B9B9B9B9B9B3B3B3B3B3B3B3B3B3B2B2B2B2B2B2B2B2B2AFAFAF
+AFAFAFAFAFAFA8A8A8A8A8A8A8A8A8A8A8A8A3A3A3A3A3A3A3A3A39E9E9E9E9E9E9E9E9E959595
+959595959595949494949494949494BCBCBCBCBCBCBCBCBCBCBCBCF1F1F1F1F1F1F1F1F1FDFDFD
+FDFDFDFDFDFDFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE
+FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE
+FEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9F9F9F9F9F9F9F9F9C5C5C5C5C5C5C5C5C5D6D6D6D6D6D6
+D6D6D6D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D6D6D5D6D6D5
+D6D6D5D6D6D5D6D6D5D6D6D5D6D6D5D6D6D5D6D6D5D6D6D5D6D6D5D6D6D5D6D6D5D6D6D5D6D6D5
+D6D6D5D6D6D5D6D6D5D6D6D5D5D5D5D5D5D5D5D5D5D3D3D3D3D3D3D3D3D3D3D3D3D1D1D1D1D1D1
+D1D1D1D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2
+D2D2D2D1D1D1D1D1D1D1D1D1D2D2D2D2D2D2D2D2D2D1D1D1D1D1D1D1D1D1D0D0D0D0D0D0D0D0D0
+CECECECECECECECECECECECECECECECECECECECECECECECECECECECECECECECECECECECECECECE
+D0D0D0D0D0D0D0D0D0D0D0D0CECECECECECECECECECFCFCFCFCFCFCFCFCFD0D0D0D0D0D0D0D0D0
+CFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCDCDCDCDCDCDCDCDCDC5C5C5C5C5C5C5C5C5
+BCBCBCBCBCBCBCBCBCB5B5B5B5B5B5B5B5B5B6B6B6B6B6B6B6B6B6B6B6B6A4A4A4A4A4A4A4A4A4
+8383838383838383836A6A6A6A6A6A6A6A6A707070707070707070707070797979797979797979
+7777777777777777777070707070707070706E6E6E6E6E6E6E6E6E707070707070707070707070
+7070707070707070707474747474747474747878787878787878787B7B7B7B7B7B7B7B7B7C7C7C
+7C7C7C7C7C7C7C7C7C7A7A7A7A7A7A7A7A7A7575757575757575756F6F6F6F6F6F6F6F6F6E6E6E
+6E6E6E6E6E6E6E6E6E7575757575757575757D7D7D7D7D7D7D7D7D828282828282828282848484
+8484848484848888888888888888888888889090909090909090909797979797979797979A9A9A
+9A9A9A9A9A9A9A9A9A9A9A9A9A9A9A9E9E9E9E9E9E9E9E9E9E9E9E9A9A9A9A9A9A9A9A9A9F9F9F
+9F9F9F9F9F9FABABABABABABABABABB0B1B0B0B1B0B0B1B0B0B1B0B6B6B6B6B6B6B6B6B6BDBDBD
+BDBDBDBDBDBDC7C7C7C7C7C7C7C7C7CBCBCBCBCBCBCBCBCBC5C5C5C5C5C5C5C5C5C5C5C5C4C4C4
+C4C4C4C4C4C4C8C8C8C8C8C8C8C8C8CACACACACACACACACAC5C5C5C5C5C5C5C5C5BEBEBEBEBEBE
+BEBEBEBEBEBEBBBBBBBBBBBBBBBBBBB8B8B8B8B8B8B8B8B8AEAEAEAEAEAEAEAEAEA4A4A4A4A4A4
+A4A4A4A4A4A49E9E9E9E9E9E9E9E9E989898989898989898919191919191919191969696969696
+969696BBBBBBBBBBBBBBBBBBBBBBBBF1F1F1F1F1F1F1F1F1FDFDFDFDFDFDFDFDFDFEFEFEFEFEFE
+FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFF9F9F9F9F9F9F9F9F9C6C6C6C6C6C6C6C6C6D6D6D6D6D6D6D6D6D6D7D7D7D7D7D7D7D7D7
+D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D6D6D5D6D6D5D6D6D5D6D6D5D6D6D5D6D6D5
+D6D6D5D6D6D5D6D6D5D6D6D5D6D6D5D6D6D5D6D6D5D6D6D5D6D6D5D6D6D5D6D6D5D6D6D5D6D6D5
+D5D5D5D5D5D5D5D5D5D3D3D3D3D3D3D3D3D3D3D3D3D1D1D1D1D1D1D1D1D1D2D2D2D2D2D2D2D2D2
+D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D1D1D1D1D1D1D1D1D1
+D2D2D2D2D2D2D2D2D2D1D1D1D1D1D1D1D1D1D0D0D0D0D0D0D0D0D0CECECECECECECECECECECECE
+CECECECECECECECECECECECECECECECECECECECECECECECECECECED0D0D0D0D0D0D0D0D0D0D0D0
+CECECECECECECECECECFCFCFCFCFCFCFCFCFD0D0D0D0D0D0D0D0D0CFCFCFCFCFCFCFCFCFCFCFCF
+CFCFCFCFCFCFCFCFCFCDCDCDCDCDCDCDCDCDC5C5C5C5C5C5C5C5C5BCBCBCBCBCBCBCBCBCB5B5B5
+B5B5B5B5B5B5B6B6B6B6B6B6B6B6B6B6B6B6A4A4A4A4A4A4A4A4A48383838383838383836A6A6A
+6A6A6A6A6A6A707070707070707070707070797979797979797979777777777777777777707070
+7070707070706E6E6E6E6E6E6E6E6E707070707070707070707070707070707070707070747474
+7474747474747878787878787878787B7B7B7B7B7B7B7B7B7C7C7C7C7C7C7C7C7C7C7C7C7A7A7A
+7A7A7A7A7A7A7575757575757575756F6F6F6F6F6F6F6F6F6E6E6E6E6E6E6E6E6E6E6E6E757575
+7575757575757D7D7D7D7D7D7D7D7D828282828282828282848484848484848484888888888888
+8888888888889090909090909090909797979797979797979A9A9A9A9A9A9A9A9A9A9A9A9A9A9A
+9A9A9A9E9E9E9E9E9E9E9E9E9E9E9E9A9A9A9A9A9A9A9A9A9F9F9F9F9F9F9F9F9FABABABABABAB
+ABABABB0B1B0B0B1B0B0B1B0B0B1B0B6B6B6B6B6B6B6B6B6BDBDBDBDBDBDBDBDBDC7C7C7C7C7C7
+C7C7C7CBCBCBCBCBCBCBCBCBC5C5C5C5C5C5C5C5C5C5C5C5C4C4C4C4C4C4C4C4C4C8C8C8C8C8C8
+C8C8C8CACACACACACACACACAC5C5C5C5C5C5C5C5C5BEBEBEBEBEBEBEBEBEBEBEBEBBBBBBBBBBBB
+BBBBBBB8B8B8B8B8B8B8B8B8AEAEAEAEAEAEAEAEAEA4A4A4A4A4A4A4A4A4A4A4A49E9E9E9E9E9E
+9E9E9E989898989898989898919191919191919191969696969696969696BBBBBBBBBBBBBBBBBB
+BBBBBBF1F1F1F1F1F1F1F1F1FDFDFDFDFDFDFDFDFDFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE
+FEFEFEFEFEFEFEFEFEFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9F9F9F9F9F9F9F9F9
+C6C6C6C6C6C6C6C6C6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D7D7D7D7D7D7D7D7D7D7D7D7
+D6D6D6D6D6D6D6D6D6D6D6D5D6D6D5D6D6D5D6D6D5D6D6D5D6D6D5D5D5D5D5D5D5D5D5D5D4D4D4
+D4D4D4D4D4D4D4D4D4D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D3D3D3
+D3D3D3D3D3D3D3D3D3D1D1D1D1D1D1D1D1D1D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2
+D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D1D1D1D1D1D1D1D1D1D2D2D2D2D2D2D2D2D2D2D2D2
+D2D2D2D2D2D2D0D0D0D0D0D0D0D0D0CECECECECECECECECECECECECECECECECECECECECECFCFCF
+CFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFD0D0D0
+D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0CDCDCD
+CDCDCDCDCDCDC3C3C3C3C3C3C3C3C3BDBDBDBDBDBDBDBDBDB7B7B7B7B7B7B7B7B7B8B8B8B8B8B8
+B8B8B8B8B8B8B2B2B2B2B2B2B2B2B2A2A2A2A2A2A2A2A2A28282828282828282826E6E6E6E6E6E
+6E6E6E6E6E6E7474747474747474747777777777777777776F6F6F6F6F6F6F6F6F6D6D6D6D6D6D
+6D6D6D717171717171717171717171727272727272727272737373737373737373777777777777
+7777777A7A7A7A7A7A7A7A7A7B7B7B7B7B7B7B7B7B7B7B7B7C7C7C7C7C7C7C7C7C787878787878
+7878787272727272727272727070707070707070707070707676767676767676767C7C7C7C7C7C
+7C7C7C7F7F7F7F7F7F7F7F7F828282828282828282898989898989898989898989909090909090
+9090909595959595959595959B9B9B9B9B9B9B9B9B9E9E9E9E9E9E9E9E9EA2A2A2A2A2A2A2A2A2
+A2A2A2A2A2A2A2A2A2A2A2A2A6A6A6A6A6A6A6A6A6ACACACACACACACACACB0B0B0B0B0B0B0B0B0
+B0B0B0B8B8B8B8B8B8B8B8B8BFBFBFBFBFBFBFBFBFC5C5C5C5C5C5C5C5C5C8C8C8C8C8C8C8C8C8
+C5C5C5C5C5C5C5C5C5C5C5C5C3C3C3C3C3C3C3C3C3C8C8C8C8C8C8C8C8C8CACACACACACACACACA
+C5C5C5C5C5C5C5C5C5BFBFBFBFBFBFBFBFBFBFBFBFBABABABABABABABABAB3B3B3B3B3B3B3B3B3
+A9A9A9A9A9A9A9A9A99F9F9F9F9F9F9F9F9F9F9F9F989898989898989898929292929292929292
+909090909090909090959595959595959595B7B7B7B7B7B7B7B7B7B7B7B7F0F0F0F0F0F0F0F0F0
+FDFDFDFDFDFDFDFDFDFEFEFEFEFEFEFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9F9F9F9F9F9F9F9F9C3C3C3C3C3C3C3C3C3D6D6D6
+D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D7D7D7D7D7D7D7D7D7D7D7D7D6D6D6D6D6D6D6D6D6D6D6D5
+D6D6D5D6D6D5D6D6D5D6D6D5D6D6D5D5D5D5D5D5D5D5D5D5D4D4D4D4D4D4D4D4D4D4D4D4D5D5D5
+D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D3D3D3D3D3D3D3D3D3D3D3D3D1D1D1
+D1D1D1D1D1D1D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2
+D2D2D2D2D2D2D1D1D1D1D1D1D1D1D1D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D0D0D0D0D0D0
+D0D0D0CECECECECECECECECECECECECECECECECECECECECECFCFCFCFCFCFCFCFCFCFCFCFCFCFCF
+CFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFD0D0D0D0D0D0D0D0D0D0D0D0D0D0D0
+D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0CDCDCDCDCDCDCDCDCDC3C3C3C3C3C3
+C3C3C3BDBDBDBDBDBDBDBDBDB7B7B7B7B7B7B7B7B7B8B8B8B8B8B8B8B8B8B8B8B8B2B2B2B2B2B2
+B2B2B2A2A2A2A2A2A2A2A2A28282828282828282826E6E6E6E6E6E6E6E6E6E6E6E747474747474
+7474747777777777777777776F6F6F6F6F6F6F6F6F6D6D6D6D6D6D6D6D6D717171717171717171
+7171717272727272727272727373737373737373737777777777777777777A7A7A7A7A7A7A7A7A
+7B7B7B7B7B7B7B7B7B7B7B7B7C7C7C7C7C7C7C7C7C787878787878787878727272727272727272
+7070707070707070707070707676767676767676767C7C7C7C7C7C7C7C7C7F7F7F7F7F7F7F7F7F
+828282828282828282898989898989898989898989909090909090909090959595959595959595
+9B9B9B9B9B9B9B9B9B9E9E9E9E9E9E9E9E9EA2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2
+A6A6A6A6A6A6A6A6A6ACACACACACACACACACB0B0B0B0B0B0B0B0B0B0B0B0B8B8B8B8B8B8B8B8B8
+BFBFBFBFBFBFBFBFBFC5C5C5C5C5C5C5C5C5C8C8C8C8C8C8C8C8C8C5C5C5C5C5C5C5C5C5C5C5C5
+C3C3C3C3C3C3C3C3C3C8C8C8C8C8C8C8C8C8CACACACACACACACACAC5C5C5C5C5C5C5C5C5BFBFBF
+BFBFBFBFBFBFBFBFBFBABABABABABABABABAB3B3B3B3B3B3B3B3B3A9A9A9A9A9A9A9A9A99F9F9F
+9F9F9F9F9F9F9F9F9F989898989898989898929292929292929292909090909090909090959595
+959595959595B7B7B7B7B7B7B7B7B7B7B7B7F0F0F0F0F0F0F0F0F0FDFDFDFDFDFDFDFDFDFEFEFE
+FEFEFEFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFEFEFEFEFEFEFEFEFE
+FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFF9F9F9F9F9F9F9F9F9C3C3C3C3C3C3C3C3C3D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6
+D6D6D6D7D7D7D7D7D7D7D7D7D7D7D7D6D6D6D6D6D6D6D6D6D6D6D5D6D6D5D6D6D5D6D6D5D6D6D5
+D6D6D5D5D5D5D5D5D5D5D5D5D4D4D4D4D4D4D4D4D4D4D4D4D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5
+D5D5D5D5D5D5D5D5D5D5D5D5D3D3D3D3D3D3D3D3D3D3D3D3D1D1D1D1D1D1D1D1D1D2D2D2D2D2D2
+D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D1D1D1D1D1D1
+D1D1D1D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D0D0D0D0D0D0D0D0D0CECECECECECECECECE
+CECECECECECECECECECECECECFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCF
+CFCFCFCFCFCFCFCFCFCFCFCFD0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0
+D0D0D0D0D0D0D0D0D0D0D0D0CDCDCDCDCDCDCDCDCDC3C3C3C3C3C3C3C3C3BDBDBDBDBDBDBDBDBD
+B7B7B7B7B7B7B7B7B7B8B8B8B8B8B8B8B8B8B8B8B8B2B2B2B2B2B2B2B2B2A2A2A2A2A2A2A2A2A2
+8282828282828282826E6E6E6E6E6E6E6E6E6E6E6E747474747474747474777777777777777777
+6F6F6F6F6F6F6F6F6F6D6D6D6D6D6D6D6D6D717171717171717171717171727272727272727272
+7373737373737373737777777777777777777A7A7A7A7A7A7A7A7A7B7B7B7B7B7B7B7B7B7B7B7B
+7C7C7C7C7C7C7C7C7C787878787878787878727272727272727272707070707070707070707070
+7676767676767676767C7C7C7C7C7C7C7C7C7F7F7F7F7F7F7F7F7F828282828282828282898989
+8989898989898989899090909090909090909595959595959595959B9B9B9B9B9B9B9B9B9E9E9E
+9E9E9E9E9E9EA2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A6A6A6A6A6A6A6A6A6ACACAC
+ACACACACACACB0B0B0B0B0B0B0B0B0B0B0B0B8B8B8B8B8B8B8B8B8BFBFBFBFBFBFBFBFBFC5C5C5
+C5C5C5C5C5C5C8C8C8C8C8C8C8C8C8C5C5C5C5C5C5C5C5C5C5C5C5C3C3C3C3C3C3C3C3C3C8C8C8
+C8C8C8C8C8C8CACACACACACACACACAC5C5C5C5C5C5C5C5C5BFBFBFBFBFBFBFBFBFBFBFBFBABABA
+BABABABABABAB3B3B3B3B3B3B3B3B3A9A9A9A9A9A9A9A9A99F9F9F9F9F9F9F9F9F9F9F9F989898
+989898989898929292929292929292909090909090909090959595959595959595B7B7B7B7B7B7
+B7B7B7B7B7B7F0F0F0F0F0F0F0F0F0FDFDFDFDFDFDFDFDFDFEFEFEFEFEFEFEFEFEFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE
+FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9F9F9F9F9F9
+F9F9F9C3C3C3C3C3C3C3C3C3D6D6D5D6D6D5D6D6D5D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6
+D6D6D6D6D6D5D6D6D5D6D6D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D4D4D4D4D4D4D4D4D4
+D4D4D4D4D4D4D4D4D4D4D4D4D4D4D4D4D4D4D4D4D4D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3
+D4D4D4D4D4D4D4D4D4D4D4D4D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D1D1D1D1D1D1D1D1D1
+D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D1D1D1D1D1D1D1D1D1
+D1D1D1D1D1D1D1D1D1D0D0D0D0D0D0D0D0D0CECECECECECECECECECECECECDCDCDCDCDCDCDCDCD
+CECECECECECECECECECFCFCFCFCFCFCFCFCFCECECECECECECECECECECECECDCDCDCDCDCDCDCDCD
+CECECECECECECECECECFCFCFCFCFCFCFCFCFD0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0
+CBCBCBCBCBCBCBCBCBC0C0C0C0C0C0C0C0C0BCBCBCBCBCBCBCBCBCB8B8B8B8B8B8B8B8B8B6B6B6
+B6B6B6B6B6B6B6B6B6B8B8B8B8B8B8B8B8B8B0B1B0B0B1B0B0B1B0A1A1A1A1A1A1A1A1A1797979
+7979797979797979796C6C6C6C6C6C6C6C6C7272727272727272726E6E6E6E6E6E6E6E6E6B6B6B
+6B6B6B6B6B6B6D6D6D6D6D6D6D6D6D6D6D6D707070707070707070737373737373737373767676
+7676767676767878787878787878787878787878787878787878787B7B7B7B7B7B7B7B7B7A7A7A
+7A7A7A7A7A7A7575757575757575757474747474747474747474747979797979797979797B7B7B
+7B7B7B7B7B7B7C7C7C7C7C7C7C7C7C8080808080808080808A8A8A8A8A8A8A8A8A8A8A8A909090
+9090909090909797979797979797979A9A9A9A9A9A9A9A9A9B9B9B9B9B9B9B9B9BA0A0A0A0A0A0
+A0A0A0A0A0A0A7A7A7A7A7A7A7A7A7AEAEAEAEAEAEAEAEAEB2B2B2B2B2B2B2B2B2B5B5B5B5B5B5
+B5B5B5B5B5B5B8B8B8B8B8B8B8B8B8BDBDBDBDBDBDBDBDBDC1C1C1C1C1C1C1C1C1C4C4C4C4C4C4
+C4C4C4C2C2C2C2C2C2C2C2C2C2C2C2C1C1C1C1C1C1C1C1C1C4C4C4C4C4C4C4C4C4C7C7C7C7C7C7
+C7C7C7C2C2C2C2C2C2C2C2C2BABABABABABABABABABABABAB6B6B6B6B6B6B6B6B6AEAEAEAEAEAE
+AEAEAEA3A3A3A3A3A3A3A3A3999999999999999999999999909090909090909090909090909090
+909090959595959595959595989898989898989898B4B4B4B4B4B4B4B4B4B4B4B4E8E9E8E8E9E8
+E8E9E8FBFBFBFBFBFBFBFBFBFEFEFEFEFEFEFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE
+FEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEF7F7F7F7F7F7F7F7F7B4B4B4B4B4B4B4B4B4
+D6D6D5D6D6D5D6D6D5D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D5D6D6D5D6D6D5
+D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D4D4D4D4D4D4D4D4D4D4D4D4D4D4D4D4D4D4D4D4D4
+D4D4D4D4D4D4D4D4D4D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D4D4D4D4D4D4D4D4D4D4D4D4
+D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D1D1D1D1D1D1D1D1D1D0D0D0D0D0D0D0D0D0D0D0D0
+D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D1D1D1D1D1D1D1D1D1D1D1D1D1D1D1D1D1D1D0D0D0
+D0D0D0D0D0D0CECECECECECECECECECECECECDCDCDCDCDCDCDCDCDCECECECECECECECECECFCFCF
+CFCFCFCFCFCFCECECECECECECECECECECECECDCDCDCDCDCDCDCDCDCECECECECECECECECECFCFCF
+CFCFCFCFCFCFD0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0CBCBCBCBCBCBCBCBCBC0C0C0
+C0C0C0C0C0C0BCBCBCBCBCBCBCBCBCB8B8B8B8B8B8B8B8B8B6B6B6B6B6B6B6B6B6B6B6B6B8B8B8
+B8B8B8B8B8B8B0B1B0B0B1B0B0B1B0A1A1A1A1A1A1A1A1A17979797979797979797979796C6C6C
+6C6C6C6C6C6C7272727272727272726E6E6E6E6E6E6E6E6E6B6B6B6B6B6B6B6B6B6D6D6D6D6D6D
+6D6D6D6D6D6D707070707070707070737373737373737373767676767676767676787878787878
+7878787878787878787878787878787B7B7B7B7B7B7B7B7B7A7A7A7A7A7A7A7A7A757575757575
+7575757474747474747474747474747979797979797979797B7B7B7B7B7B7B7B7B7C7C7C7C7C7C
+7C7C7C8080808080808080808A8A8A8A8A8A8A8A8A8A8A8A909090909090909090979797979797
+9797979A9A9A9A9A9A9A9A9A9B9B9B9B9B9B9B9B9BA0A0A0A0A0A0A0A0A0A0A0A0A7A7A7A7A7A7
+A7A7A7AEAEAEAEAEAEAEAEAEB2B2B2B2B2B2B2B2B2B5B5B5B5B5B5B5B5B5B5B5B5B8B8B8B8B8B8
+B8B8B8BDBDBDBDBDBDBDBDBDC1C1C1C1C1C1C1C1C1C4C4C4C4C4C4C4C4C4C2C2C2C2C2C2C2C2C2
+C2C2C2C1C1C1C1C1C1C1C1C1C4C4C4C4C4C4C4C4C4C7C7C7C7C7C7C7C7C7C2C2C2C2C2C2C2C2C2
+BABABABABABABABABABABABAB6B6B6B6B6B6B6B6B6AEAEAEAEAEAEAEAEAEA3A3A3A3A3A3A3A3A3
+999999999999999999999999909090909090909090909090909090909090959595959595959595
+989898989898989898B4B4B4B4B4B4B4B4B4B4B4B4E8E9E8E8E9E8E8E9E8FBFBFBFBFBFBFBFBFB
+FEFEFEFEFEFEFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFEFEFEFEFEFE
+FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFEFEFEFEFEFEFEFEFE
+FEFEFEFEFEFEFEFEFEF7F7F7F7F7F7F7F7F7B4B4B4B4B4B4B4B4B4D6D6D5D6D6D5D6D6D5D6D6D6
+D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D5D6D6D5D6D6D5D5D5D5D5D5D5D5D5D5D5D5D5
+D5D5D5D5D5D5D4D4D4D4D4D4D4D4D4D4D4D4D4D4D4D4D4D4D4D4D4D4D4D4D4D4D4D4D4D4D3D3D3
+D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D4D4D4D4D4D4D4D4D4D4D4D4D2D2D2D2D2D2D2D2D2D2D2D2
+D2D2D2D2D2D2D1D1D1D1D1D1D1D1D1D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0
+D0D0D0D0D0D0D1D1D1D1D1D1D1D1D1D1D1D1D1D1D1D1D1D1D0D0D0D0D0D0D0D0D0CECECECECECE
+CECECECECECECDCDCDCDCDCDCDCDCDCECECECECECECECECECFCFCFCFCFCFCFCFCFCECECECECECE
+CECECECECECECDCDCDCDCDCDCDCDCDCECECECECECECECECECFCFCFCFCFCFCFCFCFD0D0D0D0D0D0
+D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0CBCBCBCBCBCBCBCBCBC0C0C0C0C0C0C0C0C0BCBCBCBCBCBC
+BCBCBCB8B8B8B8B8B8B8B8B8B6B6B6B6B6B6B6B6B6B6B6B6B8B8B8B8B8B8B8B8B8B0B1B0B0B1B0
+B0B1B0A1A1A1A1A1A1A1A1A17979797979797979797979796C6C6C6C6C6C6C6C6C727272727272
+7272726E6E6E6E6E6E6E6E6E6B6B6B6B6B6B6B6B6B6D6D6D6D6D6D6D6D6D6D6D6D707070707070
+707070737373737373737373767676767676767676787878787878787878787878787878787878
+7878787B7B7B7B7B7B7B7B7B7A7A7A7A7A7A7A7A7A757575757575757575747474747474747474
+7474747979797979797979797B7B7B7B7B7B7B7B7B7C7C7C7C7C7C7C7C7C808080808080808080
+8A8A8A8A8A8A8A8A8A8A8A8A9090909090909090909797979797979797979A9A9A9A9A9A9A9A9A
+9B9B9B9B9B9B9B9B9BA0A0A0A0A0A0A0A0A0A0A0A0A7A7A7A7A7A7A7A7A7AEAEAEAEAEAEAEAEAE
+B2B2B2B2B2B2B2B2B2B5B5B5B5B5B5B5B5B5B5B5B5B8B8B8B8B8B8B8B8B8BDBDBDBDBDBDBDBDBD
+C1C1C1C1C1C1C1C1C1C4C4C4C4C4C4C4C4C4C2C2C2C2C2C2C2C2C2C2C2C2C1C1C1C1C1C1C1C1C1
+C4C4C4C4C4C4C4C4C4C7C7C7C7C7C7C7C7C7C2C2C2C2C2C2C2C2C2BABABABABABABABABABABABA
+B6B6B6B6B6B6B6B6B6AEAEAEAEAEAEAEAEAEA3A3A3A3A3A3A3A3A3999999999999999999999999
+909090909090909090909090909090909090959595959595959595989898989898989898B4B4B4
+B4B4B4B4B4B4B4B4B4E8E9E8E8E9E8E8E9E8FBFBFBFBFBFBFBFBFBFEFEFEFEFEFEFEFEFEFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE
+FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEF7F7F7
+F7F7F7F7F7F7B4B4B4B4B4B4B4B4B4D6D6D5D6D6D5D6D6D5D6D6D6D6D6D6D6D6D6D6D6D5D6D6D5
+D6D6D5D6D6D5D5D5D5D5D5D5D5D5D5D4D4D4D4D4D4D4D4D4D4D4D4D4D4D4D4D4D4D3D3D3D3D3D3
+D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D4D4D4D4D4D4D4D4D4D3D3D3D3D3D3D3D3D3D2D2D2D2D2D2
+D2D2D2D3D3D3D3D3D3D3D3D3D3D3D3D2D2D2D2D2D2D2D2D2D1D1D1D1D1D1D1D1D1D1D1D1D1D1D1
+D1D1D1D1D1D1D1D1D1D1D1D1D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0
+D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0CECECECECECECECECECECECECCCCCCCCCCCC
+CCCCCCCECECECECECECECECECFCFCFCFCFCFCFCFCFCECECECECECECECECECECECECDCDCDCDCDCD
+CDCDCDCECECECECECECECECED0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0CECECECECECECECECE
+CECECEC7C7C7C7C7C7C7C7C7BFBFBFBFBFBFBFBFBFBBBBBBBBBBBBBBBBBBB9B9B9B9B9B9B9B9B9
+B8B8B8B8B8B8B8B8B8B8B8B8B8B8B8B8B8B8B8B8B8B4B4B4B4B4B4B4B4B4B2B2B2B2B2B2B2B2B2
+9696969696969696969696966E6E6E6E6E6E6E6E6E6A6A6A6A6A6A6A6A6A6C6C6C6C6C6C6C6C6C
+6A6A6A6A6A6A6A6A6A6969696969696969696969696E6E6E6E6E6E6E6E6E727272727272727272
+7474747474747474747777777777777777777878787878787878787878787B7B7B7B7B7B7B7B7B
+7A7A7A7A7A7A7A7A7A7878787878787878787878787878787878787878787C7C7C7C7C7C7C7C7C
+7D7D7D7D7D7D7D7D7D7E7E7E7E7E7E7E7E7E8383838383838383838C8C8C8C8C8C8C8C8C8C8C8C
+9393939393939393939B9B9B9B9B9B9B9B9B9898989898989898989898989898989898989E9E9E
+9E9E9E9E9E9E9E9E9EA8A8A8A8A8A8A8A8A8B2B2B2B2B2B2B2B2B2B7B7B7B7B7B7B7B7B7B8B8B8
+B8B8B8B8B8B8B8B8B8B6B6B6B6B6B6B6B6B6B9B9B9B9B9B9B9B9B9BFBFBFBFBFBFBFBFBFC2C2C2
+C2C2C2C2C2C2BFBFBFBFBFBFBFBFBFBFBFBFBDBDBDBDBDBDBDBDBDBEBEBEBEBEBEBEBEBEBFBFBF
+BFBFBFBFBFBFB8B8B8B8B8B8B8B8B8B1B1B1B1B1B1B1B1B1B1B1B1B3B3B3B3B3B3B3B3B3ACACAC
+ACACACACACAC9E9E9E9E9E9E9E9E9E9191919191919191919191918E8E8E8E8E8E8E8E8E929292
+929292929292969696969696969696969696969696969696A7A7A7A7A7A7A7A7A7A7A7A7D0D0D0
+D0D0D0D0D0D0EEEEEEEEEEEEEEEEEEFCFCFCFCFCFCFCFCFCFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE
+FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE
+FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE
+FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEF9F9F9F9F9F9F9F9F9C1C1C1C1C1C1
+C1C1C1D6D6D5D6D6D5D6D6D5D6D6D6D6D6D6D6D6D6D6D6D5D6D6D5D6D6D5D6D6D5D5D5D5D5D5D5
+D5D5D5D4D4D4D4D4D4D4D4D4D4D4D4D4D4D4D4D4D4D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3
+D3D3D3D4D4D4D4D4D4D4D4D4D3D3D3D3D3D3D3D3D3D2D2D2D2D2D2D2D2D2D3D3D3D3D3D3D3D3D3
+D3D3D3D2D2D2D2D2D2D2D2D2D1D1D1D1D1D1D1D1D1D1D1D1D1D1D1D1D1D1D1D1D1D1D1D1D1D1D1
+D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0
+D0D0D0D0D0D0D0D0D0CECECECECECECECECECECECECCCCCCCCCCCCCCCCCCCECECECECECECECECE
+CFCFCFCFCFCFCFCFCFCECECECECECECECECECECECECDCDCDCDCDCDCDCDCDCECECECECECECECECE
+D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0CECECECECECECECECECECECEC7C7C7C7C7C7C7C7C7
+BFBFBFBFBFBFBFBFBFBBBBBBBBBBBBBBBBBBB9B9B9B9B9B9B9B9B9B8B8B8B8B8B8B8B8B8B8B8B8
+B8B8B8B8B8B8B8B8B8B4B4B4B4B4B4B4B4B4B2B2B2B2B2B2B2B2B2969696969696969696969696
+6E6E6E6E6E6E6E6E6E6A6A6A6A6A6A6A6A6A6C6C6C6C6C6C6C6C6C6A6A6A6A6A6A6A6A6A696969
+6969696969696969696E6E6E6E6E6E6E6E6E727272727272727272747474747474747474777777
+7777777777777878787878787878787878787B7B7B7B7B7B7B7B7B7A7A7A7A7A7A7A7A7A787878
+7878787878787878787878787878787878787C7C7C7C7C7C7C7C7C7D7D7D7D7D7D7D7D7D7E7E7E
+7E7E7E7E7E7E8383838383838383838C8C8C8C8C8C8C8C8C8C8C8C9393939393939393939B9B9B
+9B9B9B9B9B9B9898989898989898989898989898989898989E9E9E9E9E9E9E9E9E9E9E9EA8A8A8
+A8A8A8A8A8A8B2B2B2B2B2B2B2B2B2B7B7B7B7B7B7B7B7B7B8B8B8B8B8B8B8B8B8B8B8B8B6B6B6
+B6B6B6B6B6B6B9B9B9B9B9B9B9B9B9BFBFBFBFBFBFBFBFBFC2C2C2C2C2C2C2C2C2BFBFBFBFBFBF
+BFBFBFBFBFBFBDBDBDBDBDBDBDBDBDBEBEBEBEBEBEBEBEBEBFBFBFBFBFBFBFBFBFB8B8B8B8B8B8
+B8B8B8B1B1B1B1B1B1B1B1B1B1B1B1B3B3B3B3B3B3B3B3B3ACACACACACACACACAC9E9E9E9E9E9E
+9E9E9E9191919191919191919191918E8E8E8E8E8E8E8E8E929292929292929292969696969696
+969696969696969696969696A7A7A7A7A7A7A7A7A7A7A7A7D0D0D0D0D0D0D0D0D0EEEEEEEEEEEE
+EEEEEEFCFCFCFCFCFCFCFCFCFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE
+FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE
+FEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE
+FEFEFEFEFEFEFEFEFEFEFEFEF9F9F9F9F9F9F9F9F9C1C1C1C1C1C1C1C1C1D5D5D5D5D5D5D5D5D5
+D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D3D3D3D3D3D3D3D3D3
+D3D3D3D3D3D3D3D3D3D2D2D2D2D2D2D2D2D2D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3
+D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D0D0D0D0D0D0D0D0D0
+D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0
+D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0CFCFCFCFCFCFCFCFCFCFCFCF
+CFCFCFCFCFCFCFCFCFCCCCCCCCCCCCCCCCCCCECECECECECECECECECECECECECECECECECECECECE
+CECECECECECECECECECDCDCDCDCDCDCDCDCDCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCECECE
+CECECECECECECCCCCCCCCCCCCCCCCCCCCCCCC3C3C3C3C3C3C3C3C3BDBDBDBDBDBDBDBDBDBBBBBB
+BBBBBBBBBBBBB9B9B9B9B9B9B9B9B9BBBBBBBBBBBBBBBBBBBBBBBBB9B9B9B9B9B9B9B9B9B8B8B8
+B8B8B8B8B8B8B5B5B5B5B5B5B5B5B5B1B1B1B1B1B1B1B1B1B1B1B1888888888888888888666666
+666666666666676767676767676767696969696969696969676767676767676767676767686868
+6868686868686E6E6E6E6E6E6E6E6E7373737373737373737878787878787878787B7B7B7B7B7B
+7B7B7B7B7B7B7C7C7C7C7C7C7C7C7C7A7A7A7A7A7A7A7A7A777777777777777777777777777777
+7777777777777B7B7B7B7B7B7B7B7B808080808080808080808080808080808080848484848484
+8484848A8A8A8A8A8A8A8A8A8A8A8A929292929292929292989898989898989898959595959595
+9595959595959595959595959C9C9C9C9C9C9C9C9C9C9C9CA4A4A4A4A4A4A4A4A4AFAFAFAFAFAF
+AFAFAFB1B1B1B1B1B1B1B1B1B3B3B3B3B3B3B3B3B3B3B3B3B0B1B0B0B1B0B0B1B0B2B2B2B2B2B2
+B2B2B2B7B7B7B7B7B7B7B7B7BABABABABABABABABAB5B5B5B5B5B5B5B5B5B5B5B5B2B2B2B2B2B2
+B2B2B2B2B2B2B2B2B2B2B2B2B4B4B4B4B4B4B4B4B4ABABABABABABABABABAAAAAAAAAAAAAAAAAA
+AAAAAAACACACACACACACACACA4A4A4A4A4A4A4A4A49595959595959595958B8B8B8B8B8B8B8B8B
+8B8B8B8C8C8C8C8C8C8C8C8C929292929292929292949494949494949494939393939393939393
+959595959595959595959595A2A2A2A2A2A2A2A2A2C4C4C4C4C4C4C4C4C4E8E9E8E8E9E8E8E9E8
+FBFBFBFBFBFBFBFBFBFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE
+FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFDFDFDFDFDFDFDFDFDFDFDFD
+FAFAFAFAFAFAFAFAFAD0D0D0D0D0D0D0D0D0D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5
+D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D2D2D2
+D2D2D2D2D2D2D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D2D2D2D2D2D2D2D2D2D2D2D2
+D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0
+D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0
+D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0CFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCCCCCC
+CCCCCCCCCCCCCECECECECECECECECECECECECECECECECECECECECECECECECECECECECECECDCDCD
+CDCDCDCDCDCDCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCECECECECECECECECECCCCCCCCCCCC
+CCCCCCCCCCCCC3C3C3C3C3C3C3C3C3BDBDBDBDBDBDBDBDBDBBBBBBBBBBBBBBBBBBB9B9B9B9B9B9
+B9B9B9BBBBBBBBBBBBBBBBBBBBBBBBB9B9B9B9B9B9B9B9B9B8B8B8B8B8B8B8B8B8B5B5B5B5B5B5
+B5B5B5B1B1B1B1B1B1B1B1B1B1B1B1888888888888888888666666666666666666676767676767
+6767676969696969696969696767676767676767676767676868686868686868686E6E6E6E6E6E
+6E6E6E7373737373737373737878787878787878787B7B7B7B7B7B7B7B7B7B7B7B7C7C7C7C7C7C
+7C7C7C7A7A7A7A7A7A7A7A7A7777777777777777777777777777777777777777777B7B7B7B7B7B
+7B7B7B8080808080808080808080808080808080808484848484848484848A8A8A8A8A8A8A8A8A
+8A8A8A929292929292929292989898989898989898959595959595959595959595959595959595
+9C9C9C9C9C9C9C9C9C9C9C9CA4A4A4A4A4A4A4A4A4AFAFAFAFAFAFAFAFAFB1B1B1B1B1B1B1B1B1
+B3B3B3B3B3B3B3B3B3B3B3B3B0B1B0B0B1B0B0B1B0B2B2B2B2B2B2B2B2B2B7B7B7B7B7B7B7B7B7
+BABABABABABABABABAB5B5B5B5B5B5B5B5B5B5B5B5B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2
+B4B4B4B4B4B4B4B4B4ABABABABABABABABABAAAAAAAAAAAAAAAAAAAAAAAAACACACACACACACACAC
+A4A4A4A4A4A4A4A4A49595959595959595958B8B8B8B8B8B8B8B8B8B8B8B8C8C8C8C8C8C8C8C8C
+929292929292929292949494949494949494939393939393939393959595959595959595959595
+A2A2A2A2A2A2A2A2A2C4C4C4C4C4C4C4C4C4E8E9E8E8E9E8E8E9E8FBFBFBFBFBFBFBFBFBFEFEFE
+FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE
+FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFEFEFEFEFEFEFEFEFE
+FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFDFDFDFDFDFDFDFDFDFDFDFDFAFAFAFAFAFAFAFAFAD0D0D0
+D0D0D0D0D0D0D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5
+D5D5D5D5D5D5D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D2D2D2D2D2D2D2D2D2D3D3D3D3D3D3
+D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2
+D2D2D2D2D2D2D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0
+D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0
+D0D0D0CFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCCCCCCCCCCCCCCCCCCCECECECECECE
+CECECECECECECECECECECECECECECECECECECECECECECECECDCDCDCDCDCDCDCDCDCFCFCFCFCFCF
+CFCFCFCFCFCFCFCFCFCFCFCFCECECECECECECECECECCCCCCCCCCCCCCCCCCCCCCCCC3C3C3C3C3C3
+C3C3C3BDBDBDBDBDBDBDBDBDBBBBBBBBBBBBBBBBBBB9B9B9B9B9B9B9B9B9BBBBBBBBBBBBBBBBBB
+BBBBBBB9B9B9B9B9B9B9B9B9B8B8B8B8B8B8B8B8B8B5B5B5B5B5B5B5B5B5B1B1B1B1B1B1B1B1B1
+B1B1B1888888888888888888666666666666666666676767676767676767696969696969696969
+6767676767676767676767676868686868686868686E6E6E6E6E6E6E6E6E737373737373737373
+7878787878787878787B7B7B7B7B7B7B7B7B7B7B7B7C7C7C7C7C7C7C7C7C7A7A7A7A7A7A7A7A7A
+7777777777777777777777777777777777777777777B7B7B7B7B7B7B7B7B808080808080808080
+8080808080808080808484848484848484848A8A8A8A8A8A8A8A8A8A8A8A929292929292929292
+9898989898989898989595959595959595959595959595959595959C9C9C9C9C9C9C9C9C9C9C9C
+A4A4A4A4A4A4A4A4A4AFAFAFAFAFAFAFAFAFB1B1B1B1B1B1B1B1B1B3B3B3B3B3B3B3B3B3B3B3B3
+B0B1B0B0B1B0B0B1B0B2B2B2B2B2B2B2B2B2B7B7B7B7B7B7B7B7B7BABABABABABABABABAB5B5B5
+B5B5B5B5B5B5B5B5B5B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B4B4B4B4B4B4B4B4B4ABABAB
+ABABABABABABAAAAAAAAAAAAAAAAAAAAAAAAACACACACACACACACACA4A4A4A4A4A4A4A4A4959595
+9595959595958B8B8B8B8B8B8B8B8B8B8B8B8C8C8C8C8C8C8C8C8C929292929292929292949494
+949494949494939393939393939393959595959595959595959595A2A2A2A2A2A2A2A2A2C4C4C4
+C4C4C4C4C4C4E8E9E8E8E9E8E8E9E8FBFBFBFBFBFBFBFBFBFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE
+FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE
+FEFEFEFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE
+FEFEFEFDFDFDFDFDFDFDFDFDFDFDFDFAFAFAFAFAFAFAFAFAD0D0D0D0D0D0D0D0D0D4D4D4D4D4D4
+D4D4D4D5D5D5D5D5D5D5D5D5D4D4D4D4D4D4D4D4D4D4D4D4D4D4D4D4D4D4D4D4D4D3D3D3D3D3D3
+D3D3D3D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2
+D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D1D1D1D1D1D1D1D1D1D1D1D1D0D0D0D0D0D0
+D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0
+D0D0D0D0D0D0D0D0D0D0D0D0CFCFCFCFCFCFCFCFCFD0D0D0D0D0D0D0D0D0CFCFCFCFCFCFCFCFCF
+CDCDCDCDCDCDCDCDCDCDCDCDCCCCCCCCCCCCCCCCCCCECECECECECECECECECECECECECECECECECE
+CECECECECECECECECECECECECDCDCDCDCDCDCDCDCDCCCCCCCCCCCCCCCCCCC9C9C9C9C9C9C9C9C9
+C4C4C4C4C4C4C4C4C4C2C2C2C2C2C2C2C2C2C2C2C2BDBDBDBDBDBDBDBDBDB9B9B9B9B9B9B9B9B9
+BABABABABABABABABAB9B9B9B9B9B9B9B9B9BDBDBDBDBDBDBDBDBDBDBDBDBEBEBEBEBEBEBEBEBE
+B8B8B8B8B8B8B8B8B8B6B6B6B6B6B6B6B6B6B8B8B8B8B8B8B8B8B8B8B8B8A8A8A8A8A8A8A8A8A8
+777777777777777777616161616161616161646464646464646464666666666666666666666666
+6363636363636363636868686868686868686F6F6F6F6F6F6F6F6F767676767676767676797979
+797979797979797979797979797979797979787878787878787878767676767676767676757575
+7575757575757575757A7A7A7A7A7A7A7A7A808080808080808080828282828282828282858585
+8585858585858A8A8A8A8A8A8A8A8A8A8A8A909090909090909090919191919191919191939393
+939393939393949494949494949494949494949494949494949494979797979797979797A3A3A3
+A3A3A3A3A3A3A9A9A9A9A9A9A9A9A9ABABABABABABABABABABABABACACACACACACACACACAFAFAF
+AFAFAFAFAFAFB0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0ABABABABABABABABABABABABABABAB
+ABABABABABABABABABABABABABABABA8A8A8A8A8A8A8A8A8A1A1A1A1A1A1A1A1A1A4A4A4A4A4A4
+A4A4A4A4A4A4A1A1A1A1A1A1A1A1A19797979797979797978C8C8C8C8C8C8C8C8C888888888888
+8888888888888F8F8F8F8F8F8F8F8F939393939393939393939393939393939393919191919191
+9191918C8C8C8C8C8C8C8C8C8C8C8C888888888888888888989898989898989898BEBEBEBEBEBE
+BEBEBEE7E7E7E7E7E7E7E7E7FBFBFBFBFBFBFBFBFBFBFBFBFDFDFDFDFDFDFDFDFDFDFDFDFDFDFD
+FDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFEFEFEFEFEFEFEFEFEFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFEFEFEFEFEFE
+FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE
+FEFEFEF9F9F9F9F9F9F9F9F9CACACACACACACACACAD4D4D4D4D4D4D4D4D4D5D5D5D5D5D5D5D5D5
+D4D4D4D4D4D4D4D4D4D4D4D4D4D4D4D4D4D4D4D4D4D3D3D3D3D3D3D3D3D3D2D2D2D2D2D2D2D2D2
+D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2
+D2D2D2D2D2D2D2D2D2D1D1D1D1D1D1D1D1D1D1D1D1D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0
+D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0
+CFCFCFCFCFCFCFCFCFD0D0D0D0D0D0D0D0D0CFCFCFCFCFCFCFCFCFCDCDCDCDCDCDCDCDCDCDCDCD
+CCCCCCCCCCCCCCCCCCCECECECECECECECECECECECECECECECECECECECECECECECECECECECECECE
+CDCDCDCDCDCDCDCDCDCCCCCCCCCCCCCCCCCCC9C9C9C9C9C9C9C9C9C4C4C4C4C4C4C4C4C4C2C2C2
+C2C2C2C2C2C2C2C2C2BDBDBDBDBDBDBDBDBDB9B9B9B9B9B9B9B9B9BABABABABABABABABAB9B9B9
+B9B9B9B9B9B9BDBDBDBDBDBDBDBDBDBDBDBDBEBEBEBEBEBEBEBEBEB8B8B8B8B8B8B8B8B8B6B6B6
+B6B6B6B6B6B6B8B8B8B8B8B8B8B8B8B8B8B8A8A8A8A8A8A8A8A8A8777777777777777777616161
+616161616161646464646464646464666666666666666666666666636363636363636363686868
+6868686868686F6F6F6F6F6F6F6F6F767676767676767676797979797979797979797979797979
+7979797979797878787878787878787676767676767676767575757575757575757575757A7A7A
+7A7A7A7A7A7A8080808080808080808282828282828282828585858585858585858A8A8A8A8A8A
+8A8A8A8A8A8A909090909090909090919191919191919191939393939393939393949494949494
+949494949494949494949494949494979797979797979797A3A3A3A3A3A3A3A3A3A9A9A9A9A9A9
+A9A9A9ABABABABABABABABABABABABACACACACACACACACACAFAFAFAFAFAFAFAFAFB0B0B0B0B0B0
+B0B0B0B0B0B0B0B0B0B0B0B0ABABABABABABABABABABABABABABABABABABABABABABABABABABAB
+ABABABA8A8A8A8A8A8A8A8A8A1A1A1A1A1A1A1A1A1A4A4A4A4A4A4A4A4A4A4A4A4A1A1A1A1A1A1
+A1A1A19797979797979797978C8C8C8C8C8C8C8C8C8888888888888888888888888F8F8F8F8F8F
+8F8F8F9393939393939393939393939393939393939191919191919191918C8C8C8C8C8C8C8C8C
+8C8C8C888888888888888888989898989898989898BEBEBEBEBEBEBEBEBEE7E7E7E7E7E7E7E7E7
+FBFBFBFBFBFBFBFBFBFBFBFBFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFD
+FDFDFDFDFDFDFDFDFDFDFDFDFEFEFEFEFEFEFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE
+FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEF9F9F9F9F9F9F9F9F9
+CACACACACACACACACAD3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D2D2D2D2D2D2D2D2D2D2D2D2
+D3D3D3D3D3D3D3D3D3D1D1D1D1D1D1D1D1D1D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0
+D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0
+D0D0D0D0D0D0D0D0D0CFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCECECECECECECECECECECECE
+CECECECECECECECECECECECECECECECECECECFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCF
+CFCFCFCFCFCFCECECECECECECECECECCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCDCDCD
+CDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDC7C7C7C7C7C7C7C7C7BFBFBF
+BFBFBFBFBFBFB8B8B8B8B8B8B8B8B8B2B2B2B2B2B2B2B2B2ADADADADADADADADADADADADB0B0B0
+B0B0B0B0B0B0B6B6B6B6B6B6B6B6B6B8B8B8B8B8B8B8B8B8B8B8B8B8B8B8B8B8B8B9B9B9B9B9B9
+B9B9B9B9B9B9BFBFBFBFBFBFBFBFBFBABABABABABABABABAB8B8B8B8B8B8B8B8B8B5B5B5B5B5B5
+B5B5B5B5B5B5B8B8B8B8B8B8B8B8B89D9D9D9D9D9D9D9D9D6D6D6D6D6D6D6D6D6D5E5E5E5E5E5E
+5E5E5E6262626262626262626262626262626262626262625F605F5F605F5F605F656565656565
+6565656F6F6F6F6F6F6F6F6F757575757575757575757575767676767676767676757575757575
+7575757474747474747474747575757575757575757575757878787878787878787D7D7D7D7D7D
+7D7D7D8080808080808080808383838383838383838787878787878787878787878C8C8C8C8C8C
+8C8C8C8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8F8F8F8F8F8F8F8F8F
+8F8F8F9191919191919191919B9B9B9B9B9B9B9B9B9E9E9E9E9E9E9E9E9E9E9E9E9E9E9E9E9E9E
+9E9E9E9E9E9E9E9E9E9E9E9EA3A3A3A3A3A3A3A3A3A4A4A4A4A4A4A4A4A4A6A6A6A6A6A6A6A6A6
+A4A4A4A4A4A4A4A4A4A4A4A4A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A29E9E9E9E9E9E9E9E9E
+9898989898989898989999999999999999999999999494949494949494948C8C8C8C8C8C8C8C8C
+848484848484848484898989898989898989898989919191919191919191939393939393939393
+9292929292929292928F8F8F8F8F8F8F8F8F848484848484848484848484757575757575757575
+808080808080808080979797979797979797B9B9B9B9B9B9B9B9B9DFE0DFDFE0DFDFE0DFDFE0DF
+F6F6F6F6F6F6F6F6F6FDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFD
+FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFFFFFFFFFFFFFFFFFFFEFEFE
+FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE
+FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFDFDFDFDFDFDFDFDFDFDFDFD
+FDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDF9F9F9F9F9F9F9F9F9BDBDBDBDBDBDBDBDBDD3D3D3
+D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D2D2D2D2D2D2D2D2D2D2D2D2D3D3D3D3D3D3D3D3D3D1D1D1
+D1D1D1D1D1D1D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0
+D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0CFCFCF
+CFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCECECECECECECECECECECECECECECECECECECECECECECECE
+CECECECECECECFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCECECECECECE
+CECECECCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCDCDCDCDCDCDCDCDCDCDCDCDCDCDCD
+CDCDCDCDCDCDCDCDCDCDCDCDCDCDCDC7C7C7C7C7C7C7C7C7BFBFBFBFBFBFBFBFBFB8B8B8B8B8B8
+B8B8B8B2B2B2B2B2B2B2B2B2ADADADADADADADADADADADADB0B0B0B0B0B0B0B0B0B6B6B6B6B6B6
+B6B6B6B8B8B8B8B8B8B8B8B8B8B8B8B8B8B8B8B8B8B9B9B9B9B9B9B9B9B9B9B9B9BFBFBFBFBFBF
+BFBFBFBABABABABABABABABAB8B8B8B8B8B8B8B8B8B5B5B5B5B5B5B5B5B5B5B5B5B8B8B8B8B8B8
+B8B8B89D9D9D9D9D9D9D9D9D6D6D6D6D6D6D6D6D6D5E5E5E5E5E5E5E5E5E626262626262626262
+6262626262626262626262625F605F5F605F5F605F6565656565656565656F6F6F6F6F6F6F6F6F
+757575757575757575757575767676767676767676757575757575757575747474747474747474
+7575757575757575757575757878787878787878787D7D7D7D7D7D7D7D7D808080808080808080
+8383838383838383838787878787878787878787878C8C8C8C8C8C8C8C8C8D8D8D8D8D8D8D8D8D
+8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8F8F8F8F8F8F8F8F8F8F8F8F919191919191919191
+9B9B9B9B9B9B9B9B9B9E9E9E9E9E9E9E9E9E9E9E9E9E9E9E9E9E9E9E9E9E9E9E9E9E9E9E9E9E9E
+A3A3A3A3A3A3A3A3A3A4A4A4A4A4A4A4A4A4A6A6A6A6A6A6A6A6A6A4A4A4A4A4A4A4A4A4A4A4A4
+A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A29E9E9E9E9E9E9E9E9E989898989898989898999999
+9999999999999999999494949494949494948C8C8C8C8C8C8C8C8C848484848484848484898989
+8989898989898989899191919191919191919393939393939393939292929292929292928F8F8F
+8F8F8F8F8F8F848484848484848484848484757575757575757575808080808080808080979797
+979797979797B9B9B9B9B9B9B9B9B9DFE0DFDFE0DFDFE0DFDFE0DFF6F6F6F6F6F6F6F6F6FDFDFD
+FDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFEFEFEFEFEFEFEFEFEFEFEFE
+FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFFFFFFFFFFFFFFFFFFFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE
+FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE
+FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFD
+FDFDFDFDFDFDF9F9F9F9F9F9F9F9F9BDBDBDBDBDBDBDBDBDD3D3D3D3D3D3D3D3D3D3D3D3D3D3D3
+D3D3D3D2D2D2D2D2D2D2D2D2D2D2D2D3D3D3D3D3D3D3D3D3D1D1D1D1D1D1D1D1D1D0D0D0D0D0D0
+D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0
+D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0CFCFCFCFCFCFCFCFCFCFCFCFCFCFCF
+CFCFCFCECECECECECECECECECECECECECECECECECECECECECECECECECECECECECECFCFCFCFCFCF
+CFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCECECECECECECECECECCCCCCCCCCCCCCCCCC
+CCCCCCCCCCCCCCCCCCCCCCCCCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCD
+CDCDCDC7C7C7C7C7C7C7C7C7BFBFBFBFBFBFBFBFBFB8B8B8B8B8B8B8B8B8B2B2B2B2B2B2B2B2B2
+ADADADADADADADADADADADADB0B0B0B0B0B0B0B0B0B6B6B6B6B6B6B6B6B6B8B8B8B8B8B8B8B8B8
+B8B8B8B8B8B8B8B8B8B9B9B9B9B9B9B9B9B9B9B9B9BFBFBFBFBFBFBFBFBFBABABABABABABABABA
+B8B8B8B8B8B8B8B8B8B5B5B5B5B5B5B5B5B5B5B5B5B8B8B8B8B8B8B8B8B89D9D9D9D9D9D9D9D9D
+6D6D6D6D6D6D6D6D6D5E5E5E5E5E5E5E5E5E626262626262626262626262626262626262626262
+5F605F5F605F5F605F6565656565656565656F6F6F6F6F6F6F6F6F757575757575757575757575
+767676767676767676757575757575757575747474747474747474757575757575757575757575
+7878787878787878787D7D7D7D7D7D7D7D7D808080808080808080838383838383838383878787
+8787878787878787878C8C8C8C8C8C8C8C8C8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D
+8D8D8D8D8D8D8F8F8F8F8F8F8F8F8F8F8F8F9191919191919191919B9B9B9B9B9B9B9B9B9E9E9E
+9E9E9E9E9E9E9E9E9E9E9E9E9E9E9E9E9E9E9E9E9E9E9E9E9E9E9EA3A3A3A3A3A3A3A3A3A4A4A4
+A4A4A4A4A4A4A6A6A6A6A6A6A6A6A6A4A4A4A4A4A4A4A4A4A4A4A4A2A2A2A2A2A2A2A2A2A2A2A2
+A2A2A2A2A2A29E9E9E9E9E9E9E9E9E989898989898989898999999999999999999999999949494
+9494949494948C8C8C8C8C8C8C8C8C848484848484848484898989898989898989898989919191
+9191919191919393939393939393939292929292929292928F8F8F8F8F8F8F8F8F848484848484
+848484848484757575757575757575808080808080808080979797979797979797B9B9B9B9B9B9
+B9B9B9DFE0DFDFE0DFDFE0DFDFE0DFF6F6F6F6F6F6F6F6F6FDFDFDFDFDFDFDFDFDFDFDFDFDFDFD
+FDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE
+FEFEFEFFFFFFFFFFFFFFFFFFFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE
+FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE
+FEFEFEFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDF9F9F9F9F9F9
+F9F9F9BDBDBDBDBDBDBDBDBDD2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D1D1D1D1D1D1D1D1D1
+D1D1D1D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0
+D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0
+D0D0D0D0D0D0D0D0D0D0D0D0CFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCDCDCDCDCDCDCDCDCD
+CDCDCDCDCDCDCDCDCDCECECECECECECECECECECECED0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0
+CFCFCFCFCFCFCFCFCFCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC
+CDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCBCBCBCBCBCBCBCBCBCBCBCBBFBFBFBFBFBFBFBFBF
+AFAFAFAFAFAFAFAFAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA5A5A5A5A5A5A5A5A5A5A5A5
+A2A2A2A2A2A2A2A2A2B2B2B2B2B2B2B2B2B2B8B8B8B8B8B8B8B8B8B8B8B8B8B8B8B8B8B8BBBBBB
+BBBBBBBBBBBBBBBBBBBEBEBEBEBEBEBEBEBEBFBFBFBFBFBFBFBFBFB8B8B8B8B8B8B8B8B8B7B7B7
+B7B7B7B7B7B7B7B7B7B7B7B7B7B7B7B7B7B7B5B5B5B5B5B5B5B5B58F8F8F8F8F8F8F8F8F666666
+6666666666665C5C5C5C5C5C5C5C5C5C5C5C6161616161616161615C5C5C5C5C5C5C5C5C5C5C5C
+5C5C5C5C5C5C6565656565656565656F6F6F6F6F6F6F6F6F6F6F6F737373737373737373757575
+7575757575757575757575757575757575757575757575757575757777777777777777777B7B7B
+7B7B7B7B7B7B7F7F7F7F7F7F7F7F7F818181818181818181828282828282828282828282848484
+848484848484858585858585858585828282828282828282828282828282828282898989898989
+898989898989909090909090909090969696969696969696989898989898989898989898989898
+9898989898989090909090909090909494949494949494949898989898989898989D9D9D9D9D9D
+9D9D9D9C9C9C9C9C9C9C9C9C9C9C9C9797979797979797979090909090909090908D8D8D8D8D8D
+8D8D8D8D8D8D8D8D8D8D8D8D8C8C8C8C8C8C8C8C8C8C8C8C898989898989898989818181818181
+8181818383838383838383838C8C8C8C8C8C8C8C8C8C8C8C909090909090909090939393939393
+9393939292929292929292928C8C8C8C8C8C8C8C8C7E7E7E7E7E7E7E7E7E7E7E7E686868686868
+6868686E6E6E6E6E6E6E6E6E7F7F7F7F7F7F7F7F7F959595959595959595B2B2B2B2B2B2B2B2B2
+B2B2B2D6D6D6D6D6D6D6D6D6EFEFEFEFEFEFEFEFEFF9F9F9F9F9F9F9F9F9FDFDFDFDFDFDFDFDFD
+FDFDFDFDFDFDFDFDFDFDFDFDFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFFFFFFFFFFFFFFFFFF
+FEFEFEFEFEFEFEFEFEFEFEFEFDFDFDFDFDFDFDFDFDFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE
+FEFEFEFEFEFEFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFEFEFEFEFEFEFDFDFDFDFDFDFDFDFD
+FDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDF9F9F9F9F9F9F9F9F9C7C7C7C7C7C7C7C7C7
+D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D1D1D1D1D1D1D1D1D1D1D1D1D0D0D0D0D0D0D0D0D0
+D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0
+D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0
+CFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCECECE
+CECECECECECECECECED0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0CFCFCFCFCFCFCFCFCFCCCCCC
+CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCDCDCDCDCDCDCDCDCDCDCDCD
+CDCDCDCDCDCDCBCBCBCBCBCBCBCBCBCBCBCBBFBFBFBFBFBFBFBFBFAFAFAFAFAFAFAFAFAFAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA5A5A5A5A5A5A5A5A5A5A5A5A2A2A2A2A2A2A2A2A2B2B2B2
+B2B2B2B2B2B2B8B8B8B8B8B8B8B8B8B8B8B8B8B8B8B8B8B8BBBBBBBBBBBBBBBBBBBBBBBBBEBEBE
+BEBEBEBEBEBEBFBFBFBFBFBFBFBFBFB8B8B8B8B8B8B8B8B8B7B7B7B7B7B7B7B7B7B7B7B7B7B7B7
+B7B7B7B7B7B7B5B5B5B5B5B5B5B5B58F8F8F8F8F8F8F8F8F6666666666666666665C5C5C5C5C5C
+5C5C5C5C5C5C6161616161616161615C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C656565656565
+6565656F6F6F6F6F6F6F6F6F6F6F6F737373737373737373757575757575757575757575757575
+7575757575757575757575757575757777777777777777777B7B7B7B7B7B7B7B7B7F7F7F7F7F7F
+7F7F7F818181818181818181828282828282828282828282848484848484848484858585858585
+858585828282828282828282828282828282828282898989898989898989898989909090909090
+909090969696969696969696989898989898989898989898989898989898989898909090909090
+9090909494949494949494949898989898989898989D9D9D9D9D9D9D9D9D9C9C9C9C9C9C9C9C9C
+9C9C9C9797979797979797979090909090909090908D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D
+8C8C8C8C8C8C8C8C8C8C8C8C898989898989898989818181818181818181838383838383838383
+8C8C8C8C8C8C8C8C8C8C8C8C909090909090909090939393939393939393929292929292929292
+8C8C8C8C8C8C8C8C8C7E7E7E7E7E7E7E7E7E7E7E7E6868686868686868686E6E6E6E6E6E6E6E6E
+7F7F7F7F7F7F7F7F7F959595959595959595B2B2B2B2B2B2B2B2B2B2B2B2D6D6D6D6D6D6D6D6D6
+EFEFEFEFEFEFEFEFEFF9F9F9F9F9F9F9F9F9FDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFD
+FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFFFFFFFFFFFFFFFFFFFEFEFEFEFEFEFEFEFEFEFEFE
+FDFDFDFDFDFDFDFDFDFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFFFFFF
+FFFFFFFFFFFFFFFFFFFEFEFEFEFEFEFEFEFEFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFD
+FDFDFDFDFDFDFDFDFDF9F9F9F9F9F9F9F9F9C7C7C7C7C7C7C7C7C7D2D2D2D2D2D2D2D2D2D1D1D1
+D1D1D1D1D1D1D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0CFCFCF
+CFCFCFCFCFCFD0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0
+D0D0D0D0D0D0CFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCECECE
+CECECECECECECDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDD0D0D0D0D0D0D0D0D0D0D0D0D0D0D0
+D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0CFCFCFCFCFCFCFCFCFCBCBCBCBCBCBCBCBCBCBCBCBCBCBCB
+CBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC8C8C8C8C8C8
+C8C8C8C8C8C8BABABABABABABABABAAAAAAAAAAAAAAAAAAAABABABABABABABABABAFAFAFAFAFAF
+AFAFAFA8A8A8A8A8A8A8A8A8A8A8A89F9F9F9F9F9F9F9F9FACACACACACACACACACB6B6B6B6B6B6
+B6B6B6B8B8B8B8B8B8B8B8B8BBBBBBBBBBBBBBBBBBBBBBBBBDBDBDBDBDBDBDBDBDC0C0C0C0C0C0
+C0C0C0BEBEBEBEBEBEBEBEBEB9B9B9B9B9B9B9B9B9B9B9B9B6B6B6B6B6B6B6B6B6B6B6B6B6B6B6
+B6B6B6AEAEAEAEAEAEAEAEAE8989898989898989896767676767676767676767675E5E5E5E5E5E
+5E5E5E5D5D5D5D5D5D5D5D5D5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B656565656565656565
+6565656E6E6E6E6E6E6E6E6E757575757575757575767676767676767676757575757575757575
+7575757777777777777777777B7B7B7B7B7B7B7B7B7D7D7D7D7D7D7D7D7D7E7E7E7E7E7E7E7E7E
+7E7E7E7E7E7E7E7E7E7E7E7E7F7F7F7F7F7F7F7F7F8181818181818181817F7F7F7F7F7F7F7F7F
+7D7D7D7D7D7D7D7D7D8181818181818181818181818989898989898989898F8F8F8F8F8F8F8F8F
+9191919191919191919292929292929292929292928C8C8C8C8C8C8C8C8C8A8A8A8A8A8A8A8A8A
+8C8C8C8C8C8C8C8C8C8F8F8F8F8F8F8F8F8F8D8D8D8D8D8D8D8D8D8D8D8D8A8A8A8A8A8A8A8A8A
+8585858585858585858383838383838383838181818181818181817E7E7E7E7E7E7E7E7E7E7E7E
+7B7B7B7B7B7B7B7B7B7C7C7C7C7C7C7C7C7C8686868686868686868E8E8E8E8E8E8E8E8E8E8E8E
+9191919191919191919292929292929292929090909090909090908B8B8B8B8B8B8B8B8B7D7D7D
+7D7D7D7D7D7D7D7D7D6565656565656565656262626262626262626A6A6A6A6A6A6A6A6A797979
+7979797979798F8F8F8F8F8F8F8F8F8F8F8FA8A8A8A8A8A8A8A8A8C1C1C1C1C1C1C1C1C1E4E4E4
+E4E4E4E4E4E4FAFAFAFAFAFAFAFAFAFAFAFAFDFDFDFDFDFDFDFDFDFEFEFEFEFEFEFEFEFEFEFEFE
+FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFDFDFDFDFDFDFDFDFDFEFEFE
+FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFEFEFE
+FEFEFEFEFEFEFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFAFAFA
+FAFAFAFAFAFAD7D7D7D7D7D7D7D7D7D2D2D2D2D2D2D2D2D2D1D1D1D1D1D1D1D1D1D0D0D0D0D0D0
+D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0CFCFCFCFCFCFCFCFCFD0D0D0D0D0D0
+D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0CFCFCFCFCFCF
+CFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCECECECECECECECECECDCDCDCDCDCD
+CDCDCDCDCDCDCDCDCDCDCDCDD0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0
+D0D0D0CFCFCFCFCFCFCFCFCFCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCB
+CBCBCBCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC8C8C8C8C8C8C8C8C8C8C8C8BABABABABABA
+BABABAAAAAAAAAAAAAAAAAAAABABABABABABABABABAFAFAFAFAFAFAFAFAFA8A8A8A8A8A8A8A8A8
+A8A8A89F9F9F9F9F9F9F9F9FACACACACACACACACACB6B6B6B6B6B6B6B6B6B8B8B8B8B8B8B8B8B8
+BBBBBBBBBBBBBBBBBBBBBBBBBDBDBDBDBDBDBDBDBDC0C0C0C0C0C0C0C0C0BEBEBEBEBEBEBEBEBE
+B9B9B9B9B9B9B9B9B9B9B9B9B6B6B6B6B6B6B6B6B6B6B6B6B6B6B6B6B6B6AEAEAEAEAEAEAEAEAE
+8989898989898989896767676767676767676767675E5E5E5E5E5E5E5E5E5D5D5D5D5D5D5D5D5D
+5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B6565656565656565656565656E6E6E6E6E6E6E6E6E
+757575757575757575767676767676767676757575757575757575757575777777777777777777
+7B7B7B7B7B7B7B7B7B7D7D7D7D7D7D7D7D7D7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E
+7F7F7F7F7F7F7F7F7F8181818181818181817F7F7F7F7F7F7F7F7F7D7D7D7D7D7D7D7D7D818181
+8181818181818181818989898989898989898F8F8F8F8F8F8F8F8F919191919191919191929292
+9292929292929292928C8C8C8C8C8C8C8C8C8A8A8A8A8A8A8A8A8A8C8C8C8C8C8C8C8C8C8F8F8F
+8F8F8F8F8F8F8D8D8D8D8D8D8D8D8D8D8D8D8A8A8A8A8A8A8A8A8A858585858585858585838383
+8383838383838181818181818181817E7E7E7E7E7E7E7E7E7E7E7E7B7B7B7B7B7B7B7B7B7C7C7C
+7C7C7C7C7C7C8686868686868686868E8E8E8E8E8E8E8E8E8E8E8E919191919191919191929292
+9292929292929090909090909090908B8B8B8B8B8B8B8B8B7D7D7D7D7D7D7D7D7D7D7D7D656565
+6565656565656262626262626262626A6A6A6A6A6A6A6A6A7979797979797979798F8F8F8F8F8F
+8F8F8F8F8F8FA8A8A8A8A8A8A8A8A8C1C1C1C1C1C1C1C1C1E4E4E4E4E4E4E4E4E4FAFAFAFAFAFA
+FAFAFAFAFAFAFDFDFDFDFDFDFDFDFDFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE
+FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFDFDFDFDFDFDFDFDFDFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE
+FEFEFEFEFEFEFEFEFEFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFEFEFEFEFEFEFDFDFDFDFDFD
+FDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFAFAFAFAFAFAFAFAFAD7D7D7D7D7D7
+D7D7D7D2D2D2D2D2D2D2D2D2D1D1D1D1D1D1D1D1D1D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0
+D0D0D0D0D0D0D0D0D0D0D0D0CFCFCFCFCFCFCFCFCFD0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0
+D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0CFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCF
+CFCFCFCFCFCFCFCFCFCFCFCFCECECECECECECECECECDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCD
+D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0CFCFCFCFCFCFCFCFCF
+CBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCCCCCCCCCCCCCCCCCC
+CCCCCCCCCCCCCCCCCCC8C8C8C8C8C8C8C8C8C8C8C8BABABABABABABABABAAAAAAAAAAAAAAAAAAA
+ABABABABABABABABABAFAFAFAFAFAFAFAFAFA8A8A8A8A8A8A8A8A8A8A8A89F9F9F9F9F9F9F9F9F
+ACACACACACACACACACB6B6B6B6B6B6B6B6B6B8B8B8B8B8B8B8B8B8BBBBBBBBBBBBBBBBBBBBBBBB
+BDBDBDBDBDBDBDBDBDC0C0C0C0C0C0C0C0C0BEBEBEBEBEBEBEBEBEB9B9B9B9B9B9B9B9B9B9B9B9
+B6B6B6B6B6B6B6B6B6B6B6B6B6B6B6B6B6B6AEAEAEAEAEAEAEAEAE898989898989898989676767
+6767676767676767675E5E5E5E5E5E5E5E5E5D5D5D5D5D5D5D5D5D5B5B5B5B5B5B5B5B5B5B5B5B
+5B5B5B5B5B5B6565656565656565656565656E6E6E6E6E6E6E6E6E757575757575757575767676
+7676767676767575757575757575757575757777777777777777777B7B7B7B7B7B7B7B7B7D7D7D
+7D7D7D7D7D7D7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7F7F7F7F7F7F7F7F7F818181
+8181818181817F7F7F7F7F7F7F7F7F7D7D7D7D7D7D7D7D7D818181818181818181818181898989
+8989898989898F8F8F8F8F8F8F8F8F9191919191919191919292929292929292929292928C8C8C
+8C8C8C8C8C8C8A8A8A8A8A8A8A8A8A8C8C8C8C8C8C8C8C8C8F8F8F8F8F8F8F8F8F8D8D8D8D8D8D
+8D8D8D8D8D8D8A8A8A8A8A8A8A8A8A858585858585858585838383838383838383818181818181
+8181817E7E7E7E7E7E7E7E7E7E7E7E7B7B7B7B7B7B7B7B7B7C7C7C7C7C7C7C7C7C868686868686
+8686868E8E8E8E8E8E8E8E8E8E8E8E919191919191919191929292929292929292909090909090
+9090908B8B8B8B8B8B8B8B8B7D7D7D7D7D7D7D7D7D7D7D7D656565656565656565626262626262
+6262626A6A6A6A6A6A6A6A6A7979797979797979798F8F8F8F8F8F8F8F8F8F8F8FA8A8A8A8A8A8
+A8A8A8C1C1C1C1C1C1C1C1C1E4E4E4E4E4E4E4E4E4FAFAFAFAFAFAFAFAFAFAFAFAFDFDFDFDFDFD
+FDFDFDFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE
+FEFEFEFDFDFDFDFDFDFDFDFDFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE
+FFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFEFEFEFEFEFEFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFD
+FDFDFDFDFDFDFDFDFDFDFDFDFAFAFAFAFAFAFAFAFAD7D7D7D7D7D7D7D7D7D1D1D1D1D1D1D1D1D1
+D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0CFCFCFCFCFCFCFCFCF
+CECECECECECECECECECFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCF
+CFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCECECECECECECECECE
+CDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCECECECECECECECECECFCFCFCFCFCFCFCFCFCFCFCF
+CFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCECECECECECECECECECBCBCBCBCBCBCBCBCBCBCBCB
+CBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC6C6C6
+C6C6C6C6C6C6C6C6C6B8B8B8B8B8B8B8B8B8ACACACACACACACACACADADADADADADADADADADADAD
+ADADADADADADAAAAAAAAAAAAAAAAAAAAAAAAA2A2A2A2A2A2A2A2A2A1A1A1A1A1A1A1A1A1A9A9A9
+A9A9A9A9A9A9B1B1B1B1B1B1B1B1B1B7B7B7B7B7B7B7B7B7B7B7B7BEBEBEBEBEBEBEBEBEBEBEBE
+BEBEBEBEBEBEC3C3C3C3C3C3C3C3C3BBBBBBBBBBBBBBBBBBBBBBBBB9B9B9B9B9B9B9B9B9B4B4B4
+B4B4B4B4B4B4B6B6B6B6B6B6B6B6B6AAAAAAAAAAAAAAAAAA8787878787878787878787876B6B6B
+6B6B6B6B6B6B5E5E5E5E5E5E5E5E5E5C5C5C5C5C5C5C5C5C595959595959595959595959595959
+5959595959596262626262626262626C6C6C6C6C6C6C6C6C727272727272727272737373737373
+737373737373757575757575757575767676767676767676777777777777777777767676767676
+7676767878787878787878787878787B7B7B7B7B7B7B7B7B7A7A7A7A7A7A7A7A7A797979797979
+7979797A7A7A7A7A7A7A7A7A7979797979797979797979797A7A7A7A7A7A7A7A7A7D7D7D7D7D7D
+7D7D7D848484848484848484888888888888888888888888858585858585858585828282828282
+828282828282828282828282818181818181818181808080808080808080808080808080808080
+8080807D7D7D7D7D7D7D7D7D7A7A7A7A7A7A7A7A7A767676767676767676737373737373737373
+7373737474747474747474748080808080808080808B8B8B8B8B8B8B8B8B8F8F8F8F8F8F8F8F8F
+8F8F8F9292929292929292929090909090909090908E8E8E8E8E8E8E8E8E8C8C8C8C8C8C8C8C8C
+7F7F7F7F7F7F7F7F7F7F7F7F6666666666666666665F605F5F605F5F605F626262626262626262
+676767676767676767747474747474747474747474868686868686868686A0A0A0A0A0A0A0A0A0
+D3D3D3D3D3D3D3D3D3F7F7F7F7F7F7F7F7F7F7F7F7FDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFD
+FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFD
+FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE
+FEFEFEFEFEFEFEFEFEFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFD
+F9F9F9F9F9F9F9F9F9CACACACACACACACACAD1D1D1D1D1D1D1D1D1D0D0D0D0D0D0D0D0D0D0D0D0
+D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0CFCFCFCFCFCFCFCFCFCECECECECECECECECECFCFCF
+CFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCF
+CFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCECECECECECECECECECDCDCDCDCDCDCDCDCDCDCDCD
+CDCDCDCDCDCDCECECECECECECECECECFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCF
+CFCFCFCFCFCFCECECECECECECECECECBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCB
+CBCBCBCBCBCBCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC6C6C6C6C6C6C6C6C6C6C6C6B8B8B8
+B8B8B8B8B8B8ACACACACACACACACACADADADADADADADADADADADADADADADADADADAAAAAAAAAAAA
+AAAAAAAAAAAAA2A2A2A2A2A2A2A2A2A1A1A1A1A1A1A1A1A1A9A9A9A9A9A9A9A9A9B1B1B1B1B1B1
+B1B1B1B7B7B7B7B7B7B7B7B7B7B7B7BEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEC3C3C3C3C3C3
+C3C3C3BBBBBBBBBBBBBBBBBBBBBBBBB9B9B9B9B9B9B9B9B9B4B4B4B4B4B4B4B4B4B6B6B6B6B6B6
+B6B6B6AAAAAAAAAAAAAAAAAA8787878787878787878787876B6B6B6B6B6B6B6B6B5E5E5E5E5E5E
+5E5E5E5C5C5C5C5C5C5C5C5C595959595959595959595959595959595959595959626262626262
+6262626C6C6C6C6C6C6C6C6C727272727272727272737373737373737373737373757575757575
+757575767676767676767676777777777777777777767676767676767676787878787878787878
+7878787B7B7B7B7B7B7B7B7B7A7A7A7A7A7A7A7A7A7979797979797979797A7A7A7A7A7A7A7A7A
+7979797979797979797979797A7A7A7A7A7A7A7A7A7D7D7D7D7D7D7D7D7D848484848484848484
+888888888888888888888888858585858585858585828282828282828282828282828282828282
+8181818181818181818080808080808080808080808080808080808080807D7D7D7D7D7D7D7D7D
+7A7A7A7A7A7A7A7A7A767676767676767676737373737373737373737373747474747474747474
+8080808080808080808B8B8B8B8B8B8B8B8B8F8F8F8F8F8F8F8F8F8F8F8F929292929292929292
+9090909090909090908E8E8E8E8E8E8E8E8E8C8C8C8C8C8C8C8C8C7F7F7F7F7F7F7F7F7F7F7F7F
+6666666666666666665F605F5F605F5F605F626262626262626262676767676767676767747474
+747474747474747474868686868686868686A0A0A0A0A0A0A0A0A0D3D3D3D3D3D3D3D3D3F7F7F7
+F7F7F7F7F7F7F7F7F7FDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFEFEFEFEFEFEFEFEFEFEFEFE
+FEFEFEFEFEFEFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFEFEFEFEFEFEFEFEFEFEFEFE
+FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFDFDFD
+FDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDF9F9F9F9F9F9F9F9F9CACACA
+CACACACACACAD1D1D1D1D1D1D1D1D1D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0
+D0D0D0D0D0D0CFCFCFCFCFCFCFCFCFCECECECECECECECECECFCFCFCFCFCFCFCFCFCFCFCFCFCFCF
+CFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCF
+CFCFCFCFCFCFCECECECECECECECECECDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCECECECECECE
+CECECECFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCECECECECECE
+CECECECBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCCCCCCCCCCCC
+CCCCCCCCCCCCCCCCCCCCCCCCC6C6C6C6C6C6C6C6C6C6C6C6B8B8B8B8B8B8B8B8B8ACACACACACAC
+ACACACADADADADADADADADADADADADADADADADADADAAAAAAAAAAAAAAAAAAAAAAAAA2A2A2A2A2A2
+A2A2A2A1A1A1A1A1A1A1A1A1A9A9A9A9A9A9A9A9A9B1B1B1B1B1B1B1B1B1B7B7B7B7B7B7B7B7B7
+B7B7B7BEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEC3C3C3C3C3C3C3C3C3BBBBBBBBBBBBBBBBBB
+BBBBBBB9B9B9B9B9B9B9B9B9B4B4B4B4B4B4B4B4B4B6B6B6B6B6B6B6B6B6AAAAAAAAAAAAAAAAAA
+8787878787878787878787876B6B6B6B6B6B6B6B6B5E5E5E5E5E5E5E5E5E5C5C5C5C5C5C5C5C5C
+5959595959595959595959595959595959595959596262626262626262626C6C6C6C6C6C6C6C6C
+727272727272727272737373737373737373737373757575757575757575767676767676767676
+7777777777777777777676767676767676767878787878787878787878787B7B7B7B7B7B7B7B7B
+7A7A7A7A7A7A7A7A7A7979797979797979797A7A7A7A7A7A7A7A7A797979797979797979797979
+7A7A7A7A7A7A7A7A7A7D7D7D7D7D7D7D7D7D848484848484848484888888888888888888888888
+858585858585858585828282828282828282828282828282828282818181818181818181808080
+8080808080808080808080808080808080807D7D7D7D7D7D7D7D7D7A7A7A7A7A7A7A7A7A767676
+7676767676767373737373737373737373737474747474747474748080808080808080808B8B8B
+8B8B8B8B8B8B8F8F8F8F8F8F8F8F8F8F8F8F9292929292929292929090909090909090908E8E8E
+8E8E8E8E8E8E8C8C8C8C8C8C8C8C8C7F7F7F7F7F7F7F7F7F7F7F7F6666666666666666665F605F
+5F605F5F605F626262626262626262676767676767676767747474747474747474747474868686
+868686868686A0A0A0A0A0A0A0A0A0D3D3D3D3D3D3D3D3D3F7F7F7F7F7F7F7F7F7F7F7F7FDFDFD
+FDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFDFDFDFDFDFD
+FDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE
+FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFDFDFDFDFDFDFDFDFDFDFDFDFDFDFD
+FDFDFDFDFDFDFDFDFDFDFDFDFDFDFDF9F9F9F9F9F9F9F9F9CACACACACACACACACAD1D1D1D1D1D1
+D1D1D1D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0CFCFCFCFCFCFCFCFCFCFCFCFCFCFCF
+CFCFCFCFCFCFCFCFCFCFCFCFD0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0CFCFCFCFCFCF
+CFCFCFCECECECECECECECECECFCFCFCFCFCFCFCFCFD0D0D0D0D0D0D0D0D0D0D0D0CFCFCFCFCFCF
+CFCFCFCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCECECECECECECECECECECECECECECECECECE
+CECECECECECECECECECECECECECECECECECECECECECECECECECECECECECECBCBCBCBCBCBCBCBCB
+CCCCCCCCCCCCCCCCCCCCCCCCCDCDCDCDCDCDCDCDCDCCCCCCCCCCCCCCCCCCCBCBCBCBCBCBCBCBCB
+C2C2C2C2C2C2C2C2C2C2C2C2B5B5B5B5B5B5B5B5B5ABABABABABABABABABACACACACACACACACAC
+AEAEAEAEAEAEAEAEAEAAAAAAAAAAAAAAAAAAAAAAAAA1A1A1A1A1A1A1A1A19B9B9B9B9B9B9B9B9B
+9D9D9D9D9D9D9D9D9DA7A7A7A7A7A7A7A7A7B5B5B5B5B5B5B5B5B5B5B5B5BBBBBBBBBBBBBBBBBB
+BEBEBEBEBEBEBEBEBEC1C1C1C1C1C1C1C1C1C3C3C3C3C3C3C3C3C3C3C3C3BBBBBBBBBBBBBBBBBB
+BCBCBCBCBCBCBCBCBCB4B4B4B4B4B4B4B4B4B6B6B6B6B6B6B6B6B6A8A8A8A8A8A8A8A8A8A8A8A8
+8D8D8D8D8D8D8D8D8D7676767676767676766464646464646464645A5A5A5A5A5A5A5A5A565656
+5656565656565656565656565656565656565D5D5D5D5D5D5D5D5D6767676767676767676F6F6F
+6F6F6F6F6F6F6F6F6F7171717171717171716E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6F6F6F
+6F6F6F6F6F6F737373737373737373737373757575757575757575727272727272727272707070
+707070707070737373737373737373767676767676767676767676737373737373737373707070
+7070707070707979797979797979797E7E7E7E7E7E7E7E7E7E7E7E7D7D7D7D7D7D7D7D7D7A7A7A
+7A7A7A7A7A7A777777777777777777767676767676767676777777777777777777777777767676
+7676767676767373737373737373737171717171717171716C6C6C6C6C6C6C6C6C6D6D6D6D6D6D
+6D6D6D6D6D6D7B7B7B7B7B7B7B7B7B888888888888888888909090909090909090919191919191
+9191919191919191919191919191918E8E8E8E8E8E8E8E8E8D8D8D8D8D8D8D8D8D8C8C8C8C8C8C
+8C8C8C878787878787878787878787787878787878787878696969696969696969626262626262
+626262626262626262626262696969696969696969696969757575757575757575A5A5A5A5A5A5
+A5A5A5DBDBDBDBDBDBDBDBDBF5F5F5F5F5F5F5F5F5F5F5F5FDFDFDFDFDFDFDFDFDFDFDFDFDFDFD
+FDFDFDFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFD
+FDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE
+FEFEFEFEFEFEFEFEFEFEFEFEFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFD
+FDFDFDFAFAFAFAFAFAFAFAFAD4D4D4D4D4D4D4D4D4D1D1D1D1D1D1D1D1D1D0D0D0D0D0D0D0D0D0
+D0D0D0D0D0D0D0D0D0D0D0D0CFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCF
+D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0CFCFCFCFCFCFCFCFCFCECECECECECECECECE
+CFCFCFCFCFCFCFCFCFD0D0D0D0D0D0D0D0D0D0D0D0CFCFCFCFCFCFCFCFCFCDCDCDCDCDCDCDCDCD
+CDCDCDCDCDCDCDCDCDCECECECECECECECECECECECECECECECECECECECECECECECECECECECECECE
+CECECECECECECECECECECECECECECECECECECBCBCBCBCBCBCBCBCBCCCCCCCCCCCCCCCCCCCCCCCC
+CDCDCDCDCDCDCDCDCDCCCCCCCCCCCCCCCCCCCBCBCBCBCBCBCBCBCBC2C2C2C2C2C2C2C2C2C2C2C2
+B5B5B5B5B5B5B5B5B5ABABABABABABABABABACACACACACACACACACAEAEAEAEAEAEAEAEAEAAAAAA
+AAAAAAAAAAAAAAAAAAA1A1A1A1A1A1A1A1A19B9B9B9B9B9B9B9B9B9D9D9D9D9D9D9D9D9DA7A7A7
+A7A7A7A7A7A7B5B5B5B5B5B5B5B5B5B5B5B5BBBBBBBBBBBBBBBBBBBEBEBEBEBEBEBEBEBEC1C1C1
+C1C1C1C1C1C1C3C3C3C3C3C3C3C3C3C3C3C3BBBBBBBBBBBBBBBBBBBCBCBCBCBCBCBCBCBCB4B4B4
+B4B4B4B4B4B4B6B6B6B6B6B6B6B6B6A8A8A8A8A8A8A8A8A8A8A8A88D8D8D8D8D8D8D8D8D767676
+7676767676766464646464646464645A5A5A5A5A5A5A5A5A565656565656565656565656565656
+5656565656565D5D5D5D5D5D5D5D5D6767676767676767676F6F6F6F6F6F6F6F6F6F6F6F717171
+7171717171716E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6F6F6F6F6F6F6F6F6F737373737373
+737373737373757575757575757575727272727272727272707070707070707070737373737373
+737373767676767676767676767676737373737373737373707070707070707070797979797979
+7979797E7E7E7E7E7E7E7E7E7E7E7E7D7D7D7D7D7D7D7D7D7A7A7A7A7A7A7A7A7A777777777777
+777777767676767676767676777777777777777777777777767676767676767676737373737373
+7373737171717171717171716C6C6C6C6C6C6C6C6C6D6D6D6D6D6D6D6D6D6D6D6D7B7B7B7B7B7B
+7B7B7B888888888888888888909090909090909090919191919191919191919191919191919191
+9191918E8E8E8E8E8E8E8E8E8D8D8D8D8D8D8D8D8D8C8C8C8C8C8C8C8C8C878787878787878787
+878787787878787878787878696969696969696969626262626262626262626262626262626262
+696969696969696969696969757575757575757575A5A5A5A5A5A5A5A5A5DBDBDBDBDBDBDBDBDB
+F5F5F5F5F5F5F5F5F5F5F5F5FDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFEFEFEFEFEFEFEFEFE
+FEFEFEFEFEFEFEFEFEFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFD
+FDFDFDFDFDFDFDFDFDFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE
+FDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFAFAFAFAFAFAFAFAFA
+D4D4D4D4D4D4D4D4D4D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0
+CFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCECECE
+CECECECECECECECECECFCFCFCFCFCFCFCFCFCECECECECECECECECECFCFCFCFCFCFCFCFCFD0D0D0
+D0D0D0D0D0D0D0D0D0CFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCDCDCDCDCDCDCDCDCDCECECE
+CECECECECECECDCDCDCDCDCDCDCDCDCDCDCDCCCCCCCCCCCCCCCCCCCDCDCDCDCDCDCDCDCDCECECE
+CECECECECECECCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCBCBCBCBCBCBCBCBCBCBCBCB
+CBCBCBCBCBCBC8C8C8C8C8C8C8C8C8BCBCBCBCBCBCBCBCBCBCBCBCB0B1B0B0B1B0B0B1B0AAAAAA
+AAAAAAAAAAAAAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFABABABABABABABABABABABABA1A1A1
+A1A1A1A1A1A19A9A9A9A9A9A9A9A9A989898989898989898999999999999999999B1B1B1B1B1B1
+B1B1B1B1B1B1B8B8B8B8B8B8B8B8B8BEBEBEBEBEBEBEBEBEBDBDBDBDBDBDBDBDBDC5C5C5C5C5C5
+C5C5C5C5C5C5C1C1C1C1C1C1C1C1C1BDBDBDBDBDBDBDBDBDBABABABABABABABABAB2B2B2B2B2B2
+B2B2B2B8B8B8B8B8B8B8B8B8B8B8B8A8A8A8A8A8A8A8A8A8929292929292929292808080808080
+808080666666666666666666575757575757575757575757545454545454545454545454545454
+5454545858585858585858586464646464646464646464646B6B6B6B6B6B6B6B6B6B6B6B6B6B6B
+6B6B6B6B6B6B6B6B6B6B6B6B6C6C6C6C6C6C6C6C6C6D6D6D6D6D6D6D6D6D6D6D6D6E6E6E6E6E6E
+6E6E6E6C6C6C6C6C6C6C6C6C6B6B6B6B6B6B6B6B6B6E6E6E6E6E6E6E6E6E727272727272727272
+7272726F6F6F6F6F6F6F6F6F6B6B6B6B6B6B6B6B6B707070707070707070717171717171717171
+7171717070707070707070706F6F6F6F6F6F6F6F6F6E6E6E6E6E6E6E6E6E6B6B6B6B6B6B6B6B6B
+6C6C6C6C6C6C6C6C6C6C6C6C6B6B6B6B6B6B6B6B6B6A6A6A6A6A6A6A6A6A676767676767676767
+6767676767676767677474747474747474747474748484848484848484848C8C8C8C8C8C8C8C8C
+9090909090909090909292929292929292929292929191919191919191918F8F8F8F8F8F8F8F8F
+8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8B8B8B8B8B8B8B8B8B8B8B8B878787878787878787
+838383838383838383707070707070707070646464646464646464666666666666666666666666
+777777777777777777B1B1B1B1B1B1B1B1B1E5E5E5E5E5E5E5E5E5F1F1F1F1F1F1F1F1F1F1F1F1
+FBFBFBFBFBFBFBFBFBFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFD
+FDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFEFEFE
+FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFD
+FDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFBFBFBFBFBFBFBFBFBE0E0E0E0E0E0E0E0E0D0D0D0
+D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0CFCFCFCFCFCFCFCFCFCFCFCF
+CFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCECECECECECECECECECECECECFCFCF
+CFCFCFCFCFCFCECECECECECECECECECFCFCFCFCFCFCFCFCFD0D0D0D0D0D0D0D0D0D0D0D0CFCFCF
+CFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCDCDCDCDCDCDCDCDCDCECECECECECECECECECDCDCDCDCDCD
+CDCDCDCDCDCDCCCCCCCCCCCCCCCCCCCDCDCDCDCDCDCDCDCDCECECECECECECECECECCCCCCCCCCCC
+CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBC8C8C8C8C8C8
+C8C8C8BCBCBCBCBCBCBCBCBCBCBCBCB0B1B0B0B1B0B0B1B0AAAAAAAAAAAAAAAAAAAFAFAFAFAFAF
+AFAFAFAFAFAFAFAFAFAFAFAFABABABABABABABABABABABABA1A1A1A1A1A1A1A1A19A9A9A9A9A9A
+9A9A9A989898989898989898999999999999999999B1B1B1B1B1B1B1B1B1B1B1B1B8B8B8B8B8B8
+B8B8B8BEBEBEBEBEBEBEBEBEBDBDBDBDBDBDBDBDBDC5C5C5C5C5C5C5C5C5C5C5C5C1C1C1C1C1C1
+C1C1C1BDBDBDBDBDBDBDBDBDBABABABABABABABABAB2B2B2B2B2B2B2B2B2B8B8B8B8B8B8B8B8B8
+B8B8B8A8A8A8A8A8A8A8A8A8929292929292929292808080808080808080666666666666666666
+575757575757575757575757545454545454545454545454545454545454585858585858585858
+6464646464646464646464646B6B6B6B6B6B6B6B6B6B6B6B6B6B6B6B6B6B6B6B6B6B6B6B6B6B6B
+6C6C6C6C6C6C6C6C6C6D6D6D6D6D6D6D6D6D6D6D6D6E6E6E6E6E6E6E6E6E6C6C6C6C6C6C6C6C6C
+6B6B6B6B6B6B6B6B6B6E6E6E6E6E6E6E6E6E7272727272727272727272726F6F6F6F6F6F6F6F6F
+6B6B6B6B6B6B6B6B6B707070707070707070717171717171717171717171707070707070707070
+6F6F6F6F6F6F6F6F6F6E6E6E6E6E6E6E6E6E6B6B6B6B6B6B6B6B6B6C6C6C6C6C6C6C6C6C6C6C6C
+6B6B6B6B6B6B6B6B6B6A6A6A6A6A6A6A6A6A676767676767676767676767676767676767747474
+7474747474747474748484848484848484848C8C8C8C8C8C8C8C8C909090909090909090929292
+9292929292929292929191919191919191918F8F8F8F8F8F8F8F8F8D8D8D8D8D8D8D8D8D8D8D8D
+8D8D8D8D8D8D8B8B8B8B8B8B8B8B8B8B8B8B878787878787878787838383838383838383707070
+707070707070646464646464646464666666666666666666666666777777777777777777B1B1B1
+B1B1B1B1B1B1E5E5E5E5E5E5E5E5E5F1F1F1F1F1F1F1F1F1F1F1F1FBFBFBFBFBFBFBFBFBFDFDFD
+FDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFD
+FDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE
+FEFEFEFEFEFEFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFD
+FDFDFDFDFDFDFBFBFBFBFBFBFBFBFBE0E0E0E0E0E0E0E0E0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0
+D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0CFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCF
+CFCFCFCFCFCFCFCFCFCFCFCFCECECECECECECECECECECECECFCFCFCFCFCFCFCFCFCECECECECECE
+CECECECFCFCFCFCFCFCFCFCFD0D0D0D0D0D0D0D0D0D0D0D0CFCFCFCFCFCFCFCFCFCFCFCFCFCFCF
+CFCFCFCDCDCDCDCDCDCDCDCDCECECECECECECECECECDCDCDCDCDCDCDCDCDCDCDCDCCCCCCCCCCCC
+CCCCCCCDCDCDCDCDCDCDCDCDCECECECECECECECECECCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC
+CCCCCCCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBC8C8C8C8C8C8C8C8C8BCBCBCBCBCBCBCBCBC
+BCBCBCB0B1B0B0B1B0B0B1B0AAAAAAAAAAAAAAAAAAAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAF
+ABABABABABABABABABABABABA1A1A1A1A1A1A1A1A19A9A9A9A9A9A9A9A9A989898989898989898
+999999999999999999B1B1B1B1B1B1B1B1B1B1B1B1B8B8B8B8B8B8B8B8B8BEBEBEBEBEBEBEBEBE
+BDBDBDBDBDBDBDBDBDC5C5C5C5C5C5C5C5C5C5C5C5C1C1C1C1C1C1C1C1C1BDBDBDBDBDBDBDBDBD
+BABABABABABABABABAB2B2B2B2B2B2B2B2B2B8B8B8B8B8B8B8B8B8B8B8B8A8A8A8A8A8A8A8A8A8
+929292929292929292808080808080808080666666666666666666575757575757575757575757
+545454545454545454545454545454545454585858585858585858646464646464646464646464
+6B6B6B6B6B6B6B6B6B6B6B6B6B6B6B6B6B6B6B6B6B6B6B6B6B6B6B6C6C6C6C6C6C6C6C6C6D6D6D
+6D6D6D6D6D6D6D6D6D6E6E6E6E6E6E6E6E6E6C6C6C6C6C6C6C6C6C6B6B6B6B6B6B6B6B6B6E6E6E
+6E6E6E6E6E6E7272727272727272727272726F6F6F6F6F6F6F6F6F6B6B6B6B6B6B6B6B6B707070
+7070707070707171717171717171717171717070707070707070706F6F6F6F6F6F6F6F6F6E6E6E
+6E6E6E6E6E6E6B6B6B6B6B6B6B6B6B6C6C6C6C6C6C6C6C6C6C6C6C6B6B6B6B6B6B6B6B6B6A6A6A
+6A6A6A6A6A6A676767676767676767676767676767676767747474747474747474747474848484
+8484848484848C8C8C8C8C8C8C8C8C909090909090909090929292929292929292929292919191
+9191919191918F8F8F8F8F8F8F8F8F8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8B8B8B8B8B8B
+8B8B8B8B8B8B878787878787878787838383838383838383707070707070707070646464646464
+646464666666666666666666666666777777777777777777B1B1B1B1B1B1B1B1B1E5E5E5E5E5E5
+E5E5E5F1F1F1F1F1F1F1F1F1F1F1F1FBFBFBFBFBFBFBFBFBFDFDFDFDFDFDFDFDFDFDFDFDFDFDFD
+FDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFD
+FDFDFDFDFDFDFDFDFDFDFDFDFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFDFDFDFDFDFD
+FDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFBFBFBFBFBFB
+FBFBFBE0E0E0E0E0E0E0E0E0CFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCF
+CFCFCFCECECECECECECECECECDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCECECECECECECECECE
+CECECECECECECECECECECECECFCFCFCFCFCFCFCFCFCECECECECECECECECECECECECECECECECECE
+CFCFCFCFCFCFCFCFCFCFCFCFCECECECECECECECECECFCFCFCFCFCFCFCFCFCDCDCDCDCDCDCDCDCD
+CCCCCCCCCCCCCCCCCCCECECECECECECECECECECECECDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCD
+CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCBCBCBCBCBCBCBCBCB
+C7C7C7C7C7C7C7C7C7C2C2C2C2C2C2C2C2C2B7B7B7B7B7B7B7B7B7B7B7B7B0B0B0B0B0B0B0B0B0
+ACACACACACACACACACA9A9A9A9A9A9A9A9A9A8A8A8A8A8A8A8A8A8ADADADADADADADADADADADAD
+9C9C9C9C9C9C9C9C9C939393939393939393989898989898989898959595959595959595A3A3A3
+A3A3A3A3A3A3A3A3A3B6B6B6B6B6B6B6B6B6B8B8B8B8B8B8B8B8B8BDBDBDBDBDBDBDBDBDBFBFBF
+BFBFBFBFBFBFBFBFBFC6C6C6C6C6C6C6C6C6BCBCBCBCBCBCBCBCBCBDBDBDBDBDBDBDBDBDB8B8B8
+B8B8B8B8B8B8B4B4B4B4B4B4B4B4B4B4B4B4B7B7B7B7B7B7B7B7B7A4A4A4A4A4A4A4A4A4989898
+9898989898988686868686868686866464646464646464646464645151515151515151514F4F4F
+4F4F4F4F4F4F5151515151515151515555555555555555555555555C5C5C5C5C5C5C5C5C646464
+646464646464686868686868686868696969696969696969676767676767676767676767676767
+676767676767666666666666666666656565656565656565666666666666666666686868686868
+6868686868686767676767676767676868686868686868686B6B6B6B6B6B6B6B6B6A6A6A6A6A6A
+6A6A6A6A6A6A686868686868686868676767676767676767676767676767676767666666666666
+6666666363636363636363636363635F605F5F605F5F605F5E5E5E5E5E5E5E5E5E636363636363
+6363637070707070707070708080808080808080808080808787878787878787878B8B8B8B8B8B
+8B8B8B8F8F8F8F8F8F8F8F8F9090909090909090909090909090909090909090908E8E8E8E8E8E
+8E8E8E8E8E8E8E8E8E8E8E8E8C8C8C8C8C8C8C8C8C8585858585858585858585857E7E7E7E7E7E
+7E7E7E9090909090909090908484848484848484846D6D6D6D6D6D6D6D6D646464646464646464
+646464787878787878787878B1B1B1B1B1B1B1B1B1EAEAEAEAEAEAEAEAEAF1F1F1F1F1F1F1F1F1
+F1F1F1F9F9F9F9F9F9F9F9F9FCFCFCFCFCFCFCFCFCFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFD
+FDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFD
+FDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFD
+FDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDF9F9F9F9F9F9F9F9F9C7C7C7C7C7C7C7C7C7
+CFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCECECECECECECECECE
+CDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCECECECECECECECECECECECECECECECECECECECECE
+CFCFCFCFCFCFCFCFCFCECECECECECECECECECECECECECECECECECECFCFCFCFCFCFCFCFCFCFCFCF
+CECECECECECECECECECFCFCFCFCFCFCFCFCFCDCDCDCDCDCDCDCDCDCCCCCCCCCCCCCCCCCCCECECE
+CECECECECECECECECECDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCCCCCCCCCCCCCCCCCCCCCCCC
+CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCBCBCBCBCBCBCBCBCBC7C7C7C7C7C7C7C7C7C2C2C2
+C2C2C2C2C2C2B7B7B7B7B7B7B7B7B7B7B7B7B0B0B0B0B0B0B0B0B0ACACACACACACACACACA9A9A9
+A9A9A9A9A9A9A8A8A8A8A8A8A8A8A8ADADADADADADADADADADADAD9C9C9C9C9C9C9C9C9C939393
+939393939393989898989898989898959595959595959595A3A3A3A3A3A3A3A3A3A3A3A3B6B6B6
+B6B6B6B6B6B6B8B8B8B8B8B8B8B8B8BDBDBDBDBDBDBDBDBDBFBFBFBFBFBFBFBFBFBFBFBFC6C6C6
+C6C6C6C6C6C6BCBCBCBCBCBCBCBCBCBDBDBDBDBDBDBDBDBDB8B8B8B8B8B8B8B8B8B4B4B4B4B4B4
+B4B4B4B4B4B4B7B7B7B7B7B7B7B7B7A4A4A4A4A4A4A4A4A4989898989898989898868686868686
+8686866464646464646464646464645151515151515151514F4F4F4F4F4F4F4F4F515151515151
+5151515555555555555555555555555C5C5C5C5C5C5C5C5C646464646464646464686868686868
+686868696969696969696969676767676767676767676767676767676767676767666666666666
+666666656565656565656565666666666666666666686868686868686868686868676767676767
+6767676868686868686868686B6B6B6B6B6B6B6B6B6A6A6A6A6A6A6A6A6A6A6A6A686868686868
+686868676767676767676767676767676767676767666666666666666666636363636363636363
+6363635F605F5F605F5F605F5E5E5E5E5E5E5E5E5E636363636363636363707070707070707070
+8080808080808080808080808787878787878787878B8B8B8B8B8B8B8B8B8F8F8F8F8F8F8F8F8F
+9090909090909090909090909090909090909090908E8E8E8E8E8E8E8E8E8E8E8E8E8E8E8E8E8E
+8C8C8C8C8C8C8C8C8C8585858585858585858585857E7E7E7E7E7E7E7E7E909090909090909090
+8484848484848484846D6D6D6D6D6D6D6D6D646464646464646464646464787878787878787878
+B1B1B1B1B1B1B1B1B1EAEAEAEAEAEAEAEAEAF1F1F1F1F1F1F1F1F1F1F1F1F9F9F9F9F9F9F9F9F9
+FCFCFCFCFCFCFCFCFCFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFD
+FDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFD
+FDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFD
+FDFDFDFDFDFDFDFDFDF9F9F9F9F9F9F9F9F9C7C7C7C7C7C7C7C7C7CFCFCFCFCFCFCFCFCFCFCFCF
+CFCFCFCFCFCFCECECECECECECECECECECECECECECECECECECECECECECECECECECECECECECECECE
+CECECECECECECECECECECECECECECECECECECECECECECECECECECECECECECECECECECECECECECE
+CECECECECECECFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCDCDCDCDCDCDCDCDCDCDCDCD
+CDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCECECECECECECECECECECECECECECE
+CECECECECECECECECECECECECECECECCCCCCCCCCCCCCCCCCCBCBCBCBCBCBCBCBCBCBCBCBCBCBCB
+CBCBCBCBCBCBC6C6C6C6C6C6C6C6C6C1C1C1C1C1C1C1C1C1BDBDBDBDBDBDBDBDBDB2B2B2B2B2B2
+B2B2B2B2B2B2AEAEAEAEAEAEAEAEAEAAAAAAAAAAAAAAAAAA9E9E9E9E9E9E9E9E9EA1A1A1A1A1A1
+A1A1A1A6A6A6A6A6A6A6A6A6A6A6A69595959595959595959898989898989898989E9E9E9E9E9E
+9E9E9E9B9B9B9B9B9B9B9B9B949494949494949494949494A9A9A9A9A9A9A9A9A9B4B4B4B4B4B4
+B4B4B4B8B8B8B8B8B8B8B8B8BDBDBDBDBDBDBDBDBDBDBDBDC0C0C0C0C0C0C0C0C0C3C3C3C3C3C3
+C3C3C3B8B8B8B8B8B8B8B8B8BEBEBEBEBEBEBEBEBEB7B7B7B7B7B7B7B7B7B7B7B7B7B7B7B7B7B7
+B7B7B7B7B7B7B7B7B7B7B7B7A2A2A2A2A2A2A2A2A29B9B9B9B9B9B9B9B9B888888888888888888
+8888886262626262626262624E4E4E4E4E4E4E4E4E505050505050505050515151515151515151
+5151515252525252525252525757575757575757575F605F5F605F5F605F646464646464646464
+646464646464646464646464616161616161616161616161616161616161616161616161616161
+6262626262626262626262626262626262626262625E5E5E5E5E5E5E5E5E636363636363636363
+6666666666666666666565656565656565656565655F605F5F605F5F605F5D5D5D5D5D5D5D5D5D
+5B5B5B5B5B5B5B5B5B595959595959595959565656565656565656565656575757575757575757
+5F605F5F605F5F605F717171717171717171818181818181818181888888888888888888888888
+8989898989898989898989898989898989898C8C8C8C8C8C8C8C8C8E8E8E8E8E8E8E8E8E8E8E8E
+9191919191919191919090909090909090908E8E8E8E8E8E8E8E8E8D8D8D8D8D8D8D8D8D848484
+8484848484848484847878787878787878788484848484848484847F7F7F7F7F7F7F7F7F6F6F6F
+6F6F6F6F6F6F676767676767676767676767787878787878787878A9A9A9A9A9A9A9A9A9E8E8E8
+E8E8E8E8E8E8F5F5F5F5F5F5F5F5F5F5F5F5F9F9F9F9F9F9F9F9F9FCFCFCFCFCFCFCFCFCFDFDFD
+FDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFD
+FDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFD
+FDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDF9F9F9
+F9F9F9F9F9F9C6C6C6C6C6C6C6C6C6CFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCECECECECECE
+CECECECECECECECECECECECECECECECECECECECECECECECECECECECECECECECECECECECECECECE
+CECECECECECECECECECECECECECECECECECECECECECECECECECECECECECECECECECFCFCFCFCFCF
+CFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCD
+CDCDCDCDCDCDCDCDCDCDCDCDCECECECECECECECECECECECECECECECECECECECECECECECECECECE
+CECECECCCCCCCCCCCCCCCCCCCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBC6C6C6C6C6C6
+C6C6C6C1C1C1C1C1C1C1C1C1BDBDBDBDBDBDBDBDBDB2B2B2B2B2B2B2B2B2B2B2B2AEAEAEAEAEAE
+AEAEAEAAAAAAAAAAAAAAAAAA9E9E9E9E9E9E9E9E9EA1A1A1A1A1A1A1A1A1A6A6A6A6A6A6A6A6A6
+A6A6A69595959595959595959898989898989898989E9E9E9E9E9E9E9E9E9B9B9B9B9B9B9B9B9B
+949494949494949494949494A9A9A9A9A9A9A9A9A9B4B4B4B4B4B4B4B4B4B8B8B8B8B8B8B8B8B8
+BDBDBDBDBDBDBDBDBDBDBDBDC0C0C0C0C0C0C0C0C0C3C3C3C3C3C3C3C3C3B8B8B8B8B8B8B8B8B8
+BEBEBEBEBEBEBEBEBEB7B7B7B7B7B7B7B7B7B7B7B7B7B7B7B7B7B7B7B7B7B7B7B7B7B7B7B7B7B7
+A2A2A2A2A2A2A2A2A29B9B9B9B9B9B9B9B9B888888888888888888888888626262626262626262
+4E4E4E4E4E4E4E4E4E505050505050505050515151515151515151515151525252525252525252
+5757575757575757575F605F5F605F5F605F646464646464646464646464646464646464646464
+616161616161616161616161616161616161616161616161616161626262626262626262626262
+6262626262626262625E5E5E5E5E5E5E5E5E636363636363636363666666666666666666656565
+6565656565656565655F605F5F605F5F605F5D5D5D5D5D5D5D5D5D5B5B5B5B5B5B5B5B5B595959
+5959595959595656565656565656565656565757575757575757575F605F5F605F5F605F717171
+717171717171818181818181818181888888888888888888888888898989898989898989898989
+8989898989898C8C8C8C8C8C8C8C8C8E8E8E8E8E8E8E8E8E8E8E8E919191919191919191909090
+9090909090908E8E8E8E8E8E8E8E8E8D8D8D8D8D8D8D8D8D848484848484848484848484787878
+7878787878788484848484848484847F7F7F7F7F7F7F7F7F6F6F6F6F6F6F6F6F6F676767676767
+676767676767787878787878787878A9A9A9A9A9A9A9A9A9E8E8E8E8E8E8E8E8E8F5F5F5F5F5F5
+F5F5F5F5F5F5F9F9F9F9F9F9F9F9F9FCFCFCFCFCFCFCFCFCFDFDFDFDFDFDFDFDFDFDFDFDFDFDFD
+FDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFD
+FDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFD
+FDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDF9F9F9F9F9F9F9F9F9C6C6C6C6C6C6
+C6C6C6CFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCECECECECECECECECECECECECECECECECECE
+CECECECECECECECECECECECECECECECECECECECECECECECECECECECECECECECECECECECECECECE
+CECECECECECECECECECECECECECECECECECECECECECFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCF
+CFCFCFCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCD
+CECECECECECECECECECECECECECECECECECECECECECECECECECECECECECECCCCCCCCCCCCCCCCCC
+CBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBC6C6C6C6C6C6C6C6C6C1C1C1C1C1C1C1C1C1
+BDBDBDBDBDBDBDBDBDB2B2B2B2B2B2B2B2B2B2B2B2AEAEAEAEAEAEAEAEAEAAAAAAAAAAAAAAAAAA
+9E9E9E9E9E9E9E9E9EA1A1A1A1A1A1A1A1A1A6A6A6A6A6A6A6A6A6A6A6A6959595959595959595
+9898989898989898989E9E9E9E9E9E9E9E9E9B9B9B9B9B9B9B9B9B949494949494949494949494
+A9A9A9A9A9A9A9A9A9B4B4B4B4B4B4B4B4B4B8B8B8B8B8B8B8B8B8BDBDBDBDBDBDBDBDBDBDBDBD
+C0C0C0C0C0C0C0C0C0C3C3C3C3C3C3C3C3C3B8B8B8B8B8B8B8B8B8BEBEBEBEBEBEBEBEBEB7B7B7
+B7B7B7B7B7B7B7B7B7B7B7B7B7B7B7B7B7B7B7B7B7B7B7B7B7B7B7A2A2A2A2A2A2A2A2A29B9B9B
+9B9B9B9B9B9B8888888888888888888888886262626262626262624E4E4E4E4E4E4E4E4E505050
+5050505050505151515151515151515151515252525252525252525757575757575757575F605F
+5F605F5F605F646464646464646464646464646464646464646464616161616161616161616161
+6161616161616161616161616161616262626262626262626262626262626262626262625E5E5E
+5E5E5E5E5E5E6363636363636363636666666666666666666565656565656565656565655F605F
+5F605F5F605F5D5D5D5D5D5D5D5D5D5B5B5B5B5B5B5B5B5B595959595959595959565656565656
+5656565656565757575757575757575F605F5F605F5F605F717171717171717171818181818181
+8181818888888888888888888888888989898989898989898989898989898989898C8C8C8C8C8C
+8C8C8C8E8E8E8E8E8E8E8E8E8E8E8E9191919191919191919090909090909090908E8E8E8E8E8E
+8E8E8E8D8D8D8D8D8D8D8D8D848484848484848484848484787878787878787878848484848484
+8484847F7F7F7F7F7F7F7F7F6F6F6F6F6F6F6F6F6F676767676767676767676767787878787878
+787878A9A9A9A9A9A9A9A9A9E8E8E8E8E8E8E8E8E8F5F5F5F5F5F5F5F5F5F5F5F5F9F9F9F9F9F9
+F9F9F9FCFCFCFCFCFCFCFCFCFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFD
+FDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFD
+FDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFD
+FDFDFDFDFDFDFDFDFDFDFDFDF9F9F9F9F9F9F9F9F9C6C6C6C6C6C6C6C6C6CECECECECECECECECE
+CDCDCDCDCDCDCDCDCDCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC
+CCCCCCCCCCCCCCCCCCCDCDCDCDCDCDCDCDCDCCCCCCCCCCCCCCCCCCCCCCCCCDCDCDCDCDCDCDCDCD
+CDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCECECECECECECECECECECECECCCCCCCCCCCCCCCCCC
+CBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCB
+CBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBC5C5C5C5C5C5C5C5C5C1C1C1C1C1C1C1C1C1C5C5C5
+C5C5C5C5C5C5C5C5C5C4C4C4C4C4C4C4C4C4BFBFBFBFBFBFBFBFBFB4B4B4B4B4B4B4B4B4AEAEAE
+AEAEAEAEAEAEAEAEAEB1B1B1B1B1B1B1B1B1A7A7A7A7A7A7A7A7A79C9C9C9C9C9C9C9C9CA3A3A3
+A3A3A3A3A3A39E9E9E9E9E9E9E9E9E9E9E9E9D9D9D9D9D9D9D9D9DA4A4A4A4A4A4A4A4A49D9D9D
+9D9D9D9D9D9D909090909090909090898989898989898989898989929292929292929292ADADAD
+ADADADADADADB0B0B0B0B0B0B0B0B0B8B8B8B8B8B8B8B8B8B8B8B8B9B9B9B9B9B9B9B9B9BFBFBF
+BFBFBFBFBFBFBCBCBCBCBCBCBCBCBCB8B8B8B8B8B8B8B8B8BFBFBFBFBFBFBFBFBFBFBFBFB3B3B3
+B3B3B3B3B3B3B9B9B9B9B9B9B9B9B9B1B1B1B1B1B1B1B1B19F9F9F9F9F9F9F9F9F9E9E9E9E9E9E
+9E9E9E9E9E9E8787878787878787875C5C5C5C5C5C5C5C5C4949494949494949494D4D4D4D4D4D
+4D4D4D4D4D4D4F4F4F4F4F4F4F4F4F4E4E4E4E4E4E4E4E4E515151515151515151575757575757
+5757575A5A5A5A5A5A5A5A5A5A5A5A5B5B5B5B5B5B5B5B5B5A5A5A5A5A5A5A5A5A5B5B5B5B5B5B
+5B5B5B5C5C5C5C5C5C5C5C5C595959595959595959595959575757575757575757575757575757
+575757585858585858585858565656565656565656565656525252525252525252505050505050
+5050504D4D4D4D4D4D4D4D4D4C4C4C4C4C4C4C4C4C525252525252525252525252636363636363
+6363637373737373737373737E7E7E7E7E7E7E7E7E858585858585858585888888888888888888
+8888888989898989898989898888888888888888888C8C8C8C8C8C8C8C8C8E8E8E8E8E8E8E8E8E
+8E8E8E9090909090909090908F8F8F8F8F8F8F8F8F9090909090909090908E8E8E8E8E8E8E8E8E
+8484848484848484848484847979797979797979797B7B7B7B7B7B7B7B7B6E6E6E6E6E6E6E6E6E
+6767676767676767676C6C6C6C6C6C6C6C6C6C6C6C787878787878787878A1A1A1A1A1A1A1A1A1
+E0E0E0E0E0E0E0E0E0F7F7F7F7F7F7F7F7F7F7F7F7F9F9F9F9F9F9F9F9F9FCFCFCFCFCFCFCFCFC
+FBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFC
+FCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFDFDFDFDFDFDFDFDFDFDFDFD
+FCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFDFDFDFDFDFDFDFDFDFCFCFCFCFCFCFCFCFCFCFCFC
+F6F6F6F6F6F6F6F6F6BBBBBBBBBBBBBBBBBBCECECECECECECECECECDCDCDCDCDCDCDCDCDCCCCCC
+CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCDCDCD
+CDCDCDCDCDCDCCCCCCCCCCCCCCCCCCCCCCCCCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCD
+CDCDCDCDCDCDCECECECECECECECECECECECECCCCCCCCCCCCCCCCCCCBCBCBCBCBCBCBCBCBCBCBCB
+CBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCB
+CBCBCBCBCBCBC5C5C5C5C5C5C5C5C5C1C1C1C1C1C1C1C1C1C5C5C5C5C5C5C5C5C5C5C5C5C4C4C4
+C4C4C4C4C4C4BFBFBFBFBFBFBFBFBFB4B4B4B4B4B4B4B4B4AEAEAEAEAEAEAEAEAEAEAEAEB1B1B1
+B1B1B1B1B1B1A7A7A7A7A7A7A7A7A79C9C9C9C9C9C9C9C9CA3A3A3A3A3A3A3A3A39E9E9E9E9E9E
+9E9E9E9E9E9E9D9D9D9D9D9D9D9D9DA4A4A4A4A4A4A4A4A49D9D9D9D9D9D9D9D9D909090909090
+909090898989898989898989898989929292929292929292ADADADADADADADADADB0B0B0B0B0B0
+B0B0B0B8B8B8B8B8B8B8B8B8B8B8B8B9B9B9B9B9B9B9B9B9BFBFBFBFBFBFBFBFBFBCBCBCBCBCBC
+BCBCBCB8B8B8B8B8B8B8B8B8BFBFBFBFBFBFBFBFBFBFBFBFB3B3B3B3B3B3B3B3B3B9B9B9B9B9B9
+B9B9B9B1B1B1B1B1B1B1B1B19F9F9F9F9F9F9F9F9F9E9E9E9E9E9E9E9E9E9E9E9E878787878787
+8787875C5C5C5C5C5C5C5C5C4949494949494949494D4D4D4D4D4D4D4D4D4D4D4D4F4F4F4F4F4F
+4F4F4F4E4E4E4E4E4E4E4E4E5151515151515151515757575757575757575A5A5A5A5A5A5A5A5A
+5A5A5A5B5B5B5B5B5B5B5B5B5A5A5A5A5A5A5A5A5A5B5B5B5B5B5B5B5B5B5C5C5C5C5C5C5C5C5C
+595959595959595959595959575757575757575757575757575757575757585858585858585858
+5656565656565656565656565252525252525252525050505050505050504D4D4D4D4D4D4D4D4D
+4C4C4C4C4C4C4C4C4C525252525252525252525252636363636363636363737373737373737373
+7E7E7E7E7E7E7E7E7E858585858585858585888888888888888888888888898989898989898989
+8888888888888888888C8C8C8C8C8C8C8C8C8E8E8E8E8E8E8E8E8E8E8E8E909090909090909090
+8F8F8F8F8F8F8F8F8F9090909090909090908E8E8E8E8E8E8E8E8E848484848484848484848484
+7979797979797979797B7B7B7B7B7B7B7B7B6E6E6E6E6E6E6E6E6E6767676767676767676C6C6C
+6C6C6C6C6C6C6C6C6C787878787878787878A1A1A1A1A1A1A1A1A1E0E0E0E0E0E0E0E0E0F7F7F7
+F7F7F7F7F7F7F7F7F7F9F9F9F9F9F9F9F9F9FCFCFCFCFCFCFCFCFCFBFBFBFBFBFBFBFBFBFBFBFB
+FBFBFBFBFBFBFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFC
+FCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFDFDFDFDFDFDFDFDFDFDFDFDFCFCFCFCFCFCFCFCFCFCFCFC
+FCFCFCFCFCFCFDFDFDFDFDFDFDFDFDFCFCFCFCFCFCFCFCFCFCFCFCF6F6F6F6F6F6F6F6F6BBBBBB
+BBBBBBBBBBBBCECECECECECECECECECDCDCDCDCDCDCDCDCDCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC
+CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCDCDCDCDCDCDCDCDCDCCCCCCCCCCCC
+CCCCCCCCCCCCCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCECECECECECE
+CECECECECECECCCCCCCCCCCCCCCCCCCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCB
+CBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBC5C5C5C5C5C5
+C5C5C5C1C1C1C1C1C1C1C1C1C5C5C5C5C5C5C5C5C5C5C5C5C4C4C4C4C4C4C4C4C4BFBFBFBFBFBF
+BFBFBFB4B4B4B4B4B4B4B4B4AEAEAEAEAEAEAEAEAEAEAEAEB1B1B1B1B1B1B1B1B1A7A7A7A7A7A7
+A7A7A79C9C9C9C9C9C9C9C9CA3A3A3A3A3A3A3A3A39E9E9E9E9E9E9E9E9E9E9E9E9D9D9D9D9D9D
+9D9D9DA4A4A4A4A4A4A4A4A49D9D9D9D9D9D9D9D9D909090909090909090898989898989898989
+898989929292929292929292ADADADADADADADADADB0B0B0B0B0B0B0B0B0B8B8B8B8B8B8B8B8B8
+B8B8B8B9B9B9B9B9B9B9B9B9BFBFBFBFBFBFBFBFBFBCBCBCBCBCBCBCBCBCB8B8B8B8B8B8B8B8B8
+BFBFBFBFBFBFBFBFBFBFBFBFB3B3B3B3B3B3B3B3B3B9B9B9B9B9B9B9B9B9B1B1B1B1B1B1B1B1B1
+9F9F9F9F9F9F9F9F9F9E9E9E9E9E9E9E9E9E9E9E9E8787878787878787875C5C5C5C5C5C5C5C5C
+4949494949494949494D4D4D4D4D4D4D4D4D4D4D4D4F4F4F4F4F4F4F4F4F4E4E4E4E4E4E4E4E4E
+5151515151515151515757575757575757575A5A5A5A5A5A5A5A5A5A5A5A5B5B5B5B5B5B5B5B5B
+5A5A5A5A5A5A5A5A5A5B5B5B5B5B5B5B5B5B5C5C5C5C5C5C5C5C5C595959595959595959595959
+575757575757575757575757575757575757585858585858585858565656565656565656565656
+5252525252525252525050505050505050504D4D4D4D4D4D4D4D4D4C4C4C4C4C4C4C4C4C525252
+5252525252525252526363636363636363637373737373737373737E7E7E7E7E7E7E7E7E858585
+8585858585858888888888888888888888888989898989898989898888888888888888888C8C8C
+8C8C8C8C8C8C8E8E8E8E8E8E8E8E8E8E8E8E9090909090909090908F8F8F8F8F8F8F8F8F909090
+9090909090908E8E8E8E8E8E8E8E8E8484848484848484848484847979797979797979797B7B7B
+7B7B7B7B7B7B6E6E6E6E6E6E6E6E6E6767676767676767676C6C6C6C6C6C6C6C6C6C6C6C787878
+787878787878A1A1A1A1A1A1A1A1A1E0E0E0E0E0E0E0E0E0F7F7F7F7F7F7F7F7F7F7F7F7F9F9F9
+F9F9F9F9F9F9FCFCFCFCFCFCFCFCFCFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFCFCFCFCFCFC
+FCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFC
+FCFCFCFDFDFDFDFDFDFDFDFDFDFDFDFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFDFDFDFDFDFD
+FDFDFDFCFCFCFCFCFCFCFCFCFCFCFCF6F6F6F6F6F6F6F6F6BBBBBBBBBBBBBBBBBBCDCDCDCDCDCD
+CDCDCDCDCDCDCDCDCDCDCDCDCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC
+CCCCCCCCCCCCCCCCCCCCCCCCCDCDCDCDCDCDCDCDCDCCCCCCCCCCCCCCCCCCCCCCCCCDCDCDCDCDCD
+CDCDCDCDCDCDCDCDCDCDCDCDCECECECECECECECECECECECECECECECECECECECECECCCCCCCCCCCC
+CCCCCCCBCBCBCBCBCBCBCBCBCACACACACACACACACACBCBCBCBCBCBCBCBCBC6C6C6C6C6C6C6C6C6
+C6C6C6C4C4C4C4C4C4C4C4C4BFBFBFBFBFBFBFBFBFA7A7A7A7A7A7A7A7A79E9E9E9E9E9E9E9E9E
+B4B4B4B4B4B4B4B4B4B4B4B4BFBFBFBFBFBFBFBFBFBEBEBEBEBEBEBEBEBEB5B5B5B5B5B5B5B5B5
+B6B6B6B6B6B6B6B6B6B6B6B6B7B7B7B7B7B7B7B7B7A5A5A5A5A5A5A5A5A5A7A7A7A7A7A7A7A7A7
+A8A8A8A8A8A8A8A8A89E9E9E9E9E9E9E9E9E9E9E9EA8A8A8A8A8A8A8A8A8A9A9A9A9A9A9A9A9A9
+9696969696969696968F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8A8A8A8A8A8A8A8A8A
+9C9C9C9C9C9C9C9C9CACACACACACACACACACB0B1B0B0B1B0B0B1B0B0B1B0B8B8B8B8B8B8B8B8B8
+B6B6B6B6B6B6B6B6B6BDBDBDBDBDBDBDBDBDB6B6B6B6B6B6B6B6B6BABABABABABABABABABABABA
+BABABABABABABABABAB2B2B2B2B2B2B2B2B2B9B9B9B9B9B9B9B9B9AEAEAEAEAEAEAEAEAEA2A2A2
+A2A2A2A2A2A2A2A2A2A0A0A0A0A0A0A0A0A0828282828282828282575757575757575757444444
+4444444444444444444747474747474747474C4C4C4C4C4C4C4C4C4D4D4D4D4D4D4D4D4D4C4C4C
+4C4C4C4C4C4C4F4F4F4F4F4F4F4F4F4F4F4F515151515151515151525252525252525252525252
+5252525252525454545454545454545050505050505050505050504E4E4E4E4E4E4E4E4E4C4C4C
+4C4C4C4C4C4C4C4C4C4C4C4C4C4C4C494949494949494949494949484848484848484848474747
+474747474747474747474747474747515151515151515151656565656565656565656565777777
+7777777777777F7F7F7F7F7F7F7F7F848484848484848484858585858585858585878787878787
+8787878787878888888888888888888989898989898989898C8C8C8C8C8C8C8C8C8D8D8D8D8D8D
+8D8D8D8D8D8D8E8E8E8E8E8E8E8E8E8F8F8F8F8F8F8F8F8F9090909090909090908E8E8E8E8E8E
+8E8E8E8282828282828282828282827171717171717171716F6F6F6F6F6F6F6F6F686868686868
+6868686666666666666666667070707070707070707070707A7A7A7A7A7A7A7A7A9F9F9F9F9F9F
+9F9F9FD8D8D8D8D8D8D8D8D8F5F5F5F5F5F5F5F5F5F5F5F5F8F8F8F8F8F8F8F8F8FCFCFCFCFCFC
+FCFCFCFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFAFAFAFAFAFA
+FAFAFAFBFBFBFBFBFBFBFBFBFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFBFBFBFBFBFBFBFBFB
+FBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFDFDFDFDFDFDFDFDFDFCFCFCFCFCFCFCFCFC
+FCFCFCF6F6F6F6F6F6F6F6F6C5C5C5C5C5C5C5C5C5CDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCD
+CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC
+CDCDCDCDCDCDCDCDCDCCCCCCCCCCCCCCCCCCCCCCCCCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCD
+CECECECECECECECECECECECECECECECECECECECECECCCCCCCCCCCCCCCCCCCBCBCBCBCBCBCBCBCB
+CACACACACACACACACACBCBCBCBCBCBCBCBCBC6C6C6C6C6C6C6C6C6C6C6C6C4C4C4C4C4C4C4C4C4
+BFBFBFBFBFBFBFBFBFA7A7A7A7A7A7A7A7A79E9E9E9E9E9E9E9E9EB4B4B4B4B4B4B4B4B4B4B4B4
+BFBFBFBFBFBFBFBFBFBEBEBEBEBEBEBEBEBEB5B5B5B5B5B5B5B5B5B6B6B6B6B6B6B6B6B6B6B6B6
+B7B7B7B7B7B7B7B7B7A5A5A5A5A5A5A5A5A5A7A7A7A7A7A7A7A7A7A8A8A8A8A8A8A8A8A89E9E9E
+9E9E9E9E9E9E9E9E9EA8A8A8A8A8A8A8A8A8A9A9A9A9A9A9A9A9A99696969696969696968F8F8F
+8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8A8A8A8A8A8A8A8A8A9C9C9C9C9C9C9C9C9CACACAC
+ACACACACACACB0B1B0B0B1B0B0B1B0B0B1B0B8B8B8B8B8B8B8B8B8B6B6B6B6B6B6B6B6B6BDBDBD
+BDBDBDBDBDBDB6B6B6B6B6B6B6B6B6BABABABABABABABABABABABABABABABABABABABABAB2B2B2
+B2B2B2B2B2B2B9B9B9B9B9B9B9B9B9AEAEAEAEAEAEAEAEAEA2A2A2A2A2A2A2A2A2A2A2A2A0A0A0
+A0A0A0A0A0A0828282828282828282575757575757575757444444444444444444444444474747
+4747474747474C4C4C4C4C4C4C4C4C4D4D4D4D4D4D4D4D4D4C4C4C4C4C4C4C4C4C4F4F4F4F4F4F
+4F4F4F4F4F4F515151515151515151525252525252525252525252525252525252545454545454
+5454545050505050505050505050504E4E4E4E4E4E4E4E4E4C4C4C4C4C4C4C4C4C4C4C4C4C4C4C
+4C4C4C494949494949494949494949484848484848484848474747474747474747474747474747
+4747475151515151515151516565656565656565656565657777777777777777777F7F7F7F7F7F
+7F7F7F848484848484848484858585858585858585878787878787878787878787888888888888
+8888888989898989898989898C8C8C8C8C8C8C8C8C8D8D8D8D8D8D8D8D8D8D8D8D8E8E8E8E8E8E
+8E8E8E8F8F8F8F8F8F8F8F8F9090909090909090908E8E8E8E8E8E8E8E8E828282828282828282
+8282827171717171717171716F6F6F6F6F6F6F6F6F686868686868686868666666666666666666
+7070707070707070707070707A7A7A7A7A7A7A7A7A9F9F9F9F9F9F9F9F9FD8D8D8D8D8D8D8D8D8
+F5F5F5F5F5F5F5F5F5F5F5F5F8F8F8F8F8F8F8F8F8FCFCFCFCFCFCFCFCFCFBFBFBFBFBFBFBFBFB
+FBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFAFAFAFAFAFAFAFAFAFBFBFBFBFBFBFBFBFB
+FCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFB
+FBFBFBFBFBFBFBFBFBFDFDFDFDFDFDFDFDFDFCFCFCFCFCFCFCFCFCFCFCFCF6F6F6F6F6F6F6F6F6
+C5C5C5C5C5C5C5C5C5CDCDCDCDCDCDCDCDCDCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC
+CDCDCDCDCDCDCDCDCDCCCCCCCCCCCCCCCCCCCBCBCBCBCBCBCBCBCBCECECECECECECECECECDCDCD
+CDCDCDCDCDCDCDCDCDCCCCCCCCCCCCCCCCCCCDCDCDCDCDCDCDCDCDCFCFCFCFCFCFCFCFCFCECECE
+CECECECECECECECECECCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCBCBCBCBCBCBCBCBCBC9C9C9
+C9C9C9C9C9C9BEBEBEBEBEBEBEBEBEBEBEBEBABABABABABABABABAAEAEAEAEAEAEAEAEAE868686
+868686868686838383838383838383A7A7A7A7A7A7A7A7A7A7A7A7C2C2C2C2C2C2C2C2C2CCCCCC
+CCCCCCCCCCCCC1C1C1C1C1C1C1C1C1B9B9B9B9B9B9B9B9B9B9B9B9B9B9B9B9B9B9B9B9B9B0B1B0
+B0B1B0B0B1B0AFAFAFAFAFAFAFAFAFABABABABABABABABABA8A8A8A8A8A8A8A8A8A8A8A8AEAEAE
+AEAEAEAEAEAEA8A8A8A8A8A8A8A8A89E9E9E9E9E9E9E9E9EA4A4A4A4A4A4A4A4A4A1A1A1A1A1A1
+A1A1A1A1A1A18F8F8F8F8F8F8F8F8F898989898989898989A2A2A2A2A2A2A2A2A2B0B0B0B0B0B0
+B0B0B0B0B0B0B1B1B1B1B1B1B1B1B1B4B4B4B4B4B4B4B4B4B4B4B4B4B4B4B4B4B4B8B8B8B8B8B8
+B8B8B8B1B1B1B1B1B1B1B1B1B1B1B1B9B9B9B9B9B9B9B9B9B6B6B6B6B6B6B6B6B6B2B2B2B2B2B2
+B2B2B2BABABABABABABABABAACACACACACACACACACACACACA4A4A4A4A4A4A4A4A49E9E9E9E9E9E
+9E9E9E7777777777777777774F4F4F4F4F4F4F4F4F4F4F4F414141414141414141474747474747
+4747474E4E4E4E4E4E4E4E4E4D4D4D4D4D4D4D4D4D4D4D4D4D4D4D4D4D4D4D4D4D4C4C4C4C4C4C
+4C4C4C4C4C4C4C4C4C4C4C4C4B4B4B4B4B4B4B4B4B494949494949494949464646464646464646
+464646444444444444444444454545454545454545444444444444444444444444444444444444
+4444444242424242424242424545454545454545454E4E4E4E4E4E4E4E4E616161616161616161
+757575757575757575757575818181818181818181848484848484848484868686868686868686
+8686868686868686868787878787878787878787878888888888888888888C8C8C8C8C8C8C8C8C
+8D8D8D8D8D8D8D8D8D8E8E8E8E8E8E8E8E8E8E8E8E909090909090909090909090909090909090
+9090909090909090908D8D8D8D8D8D8D8D8D808080808080808080808080646464646464646464
+5D5D5D5D5D5D5D5D5D6262626262626262626A6A6A6A6A6A6A6A6A757575757575757575757575
+7E7E7E7E7E7E7E7E7EA4A4A4A4A4A4A4A4A4D3D3D3D3D3D3D3D3D3F2F2F2F2F2F2F2F2F2F2F2F2
+F9F9F9F9F9F9F9F9F9FBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFAFAFA
+FAFAFAFAFAFAFAFAFAF9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9FBFBFBFBFBFBFBFBFBFBFBFB
+FBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFCFCFC
+FCFCFCFCFCFCFBFBFBFBFBFBFBFBFBFBFBFBF7F7F7F7F7F7F7F7F7C5C5C5C5C5C5C5C5C5CDCDCD
+CDCDCDCDCDCDCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCDCDCDCDCDCDCDCDCDCCCCCC
+CCCCCCCCCCCCCBCBCBCBCBCBCBCBCBCECECECECECECECECECDCDCDCDCDCDCDCDCDCDCDCDCCCCCC
+CCCCCCCCCCCCCDCDCDCDCDCDCDCDCDCFCFCFCFCFCFCFCFCFCECECECECECECECECECECECECCCCCC
+CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCBCBCBCBCBCBCBCBCBC9C9C9C9C9C9C9C9C9BEBEBEBEBEBE
+BEBEBEBEBEBEBABABABABABABABABAAEAEAEAEAEAEAEAEAE868686868686868686838383838383
+838383A7A7A7A7A7A7A7A7A7A7A7A7C2C2C2C2C2C2C2C2C2CCCCCCCCCCCCCCCCCCC1C1C1C1C1C1
+C1C1C1B9B9B9B9B9B9B9B9B9B9B9B9B9B9B9B9B9B9B9B9B9B0B1B0B0B1B0B0B1B0AFAFAFAFAFAF
+AFAFAFABABABABABABABABABA8A8A8A8A8A8A8A8A8A8A8A8AEAEAEAEAEAEAEAEAEA8A8A8A8A8A8
+A8A8A89E9E9E9E9E9E9E9E9EA4A4A4A4A4A4A4A4A4A1A1A1A1A1A1A1A1A1A1A1A18F8F8F8F8F8F
+8F8F8F898989898989898989A2A2A2A2A2A2A2A2A2B0B0B0B0B0B0B0B0B0B0B0B0B1B1B1B1B1B1
+B1B1B1B4B4B4B4B4B4B4B4B4B4B4B4B4B4B4B4B4B4B8B8B8B8B8B8B8B8B8B1B1B1B1B1B1B1B1B1
+B1B1B1B9B9B9B9B9B9B9B9B9B6B6B6B6B6B6B6B6B6B2B2B2B2B2B2B2B2B2BABABABABABABABABA
+ACACACACACACACACACACACACA4A4A4A4A4A4A4A4A49E9E9E9E9E9E9E9E9E777777777777777777
+4F4F4F4F4F4F4F4F4F4F4F4F4141414141414141414747474747474747474E4E4E4E4E4E4E4E4E
+4D4D4D4D4D4D4D4D4D4D4D4D4D4D4D4D4D4D4D4D4D4C4C4C4C4C4C4C4C4C4C4C4C4C4C4C4C4C4C
+4B4B4B4B4B4B4B4B4B494949494949494949464646464646464646464646444444444444444444
+454545454545454545444444444444444444444444444444444444444444424242424242424242
+4545454545454545454E4E4E4E4E4E4E4E4E616161616161616161757575757575757575757575
+818181818181818181848484848484848484868686868686868686868686868686868686878787
+8787878787878787878888888888888888888C8C8C8C8C8C8C8C8C8D8D8D8D8D8D8D8D8D8E8E8E
+8E8E8E8E8E8E8E8E8E9090909090909090909090909090909090909090909090909090908D8D8D
+8D8D8D8D8D8D8080808080808080808080806464646464646464645D5D5D5D5D5D5D5D5D626262
+6262626262626A6A6A6A6A6A6A6A6A7575757575757575757575757E7E7E7E7E7E7E7E7EA4A4A4
+A4A4A4A4A4A4D3D3D3D3D3D3D3D3D3F2F2F2F2F2F2F2F2F2F2F2F2F9F9F9F9F9F9F9F9F9FBFBFB
+FBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFAFAFAFAFAFAFAFAFAFAFAFAF9F9F9
+F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9FBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFB
+FBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFCFCFCFCFCFCFCFCFCFBFBFBFBFBFB
+FBFBFBFBFBFBF7F7F7F7F7F7F7F7F7C5C5C5C5C5C5C5C5C5CDCDCDCDCDCDCDCDCDCCCCCCCCCCCC
+CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCDCDCDCDCDCDCDCDCDCCCCCCCCCCCCCCCCCCCBCBCBCBCBCB
+CBCBCBCECECECECECECECECECDCDCDCDCDCDCDCDCDCDCDCDCCCCCCCCCCCCCCCCCCCDCDCDCDCDCD
+CDCDCDCFCFCFCFCFCFCFCFCFCECECECECECECECECECECECECCCCCCCCCCCCCCCCCCCCCCCCCCCCCC
+CCCCCCCBCBCBCBCBCBCBCBCBC9C9C9C9C9C9C9C9C9BEBEBEBEBEBEBEBEBEBEBEBEBABABABABABA
+BABABAAEAEAEAEAEAEAEAEAE868686868686868686838383838383838383A7A7A7A7A7A7A7A7A7
+A7A7A7C2C2C2C2C2C2C2C2C2CCCCCCCCCCCCCCCCCCC1C1C1C1C1C1C1C1C1B9B9B9B9B9B9B9B9B9
+B9B9B9B9B9B9B9B9B9B9B9B9B0B1B0B0B1B0B0B1B0AFAFAFAFAFAFAFAFAFABABABABABABABABAB
+A8A8A8A8A8A8A8A8A8A8A8A8AEAEAEAEAEAEAEAEAEA8A8A8A8A8A8A8A8A89E9E9E9E9E9E9E9E9E
+A4A4A4A4A4A4A4A4A4A1A1A1A1A1A1A1A1A1A1A1A18F8F8F8F8F8F8F8F8F898989898989898989
+A2A2A2A2A2A2A2A2A2B0B0B0B0B0B0B0B0B0B0B0B0B1B1B1B1B1B1B1B1B1B4B4B4B4B4B4B4B4B4
+B4B4B4B4B4B4B4B4B4B8B8B8B8B8B8B8B8B8B1B1B1B1B1B1B1B1B1B1B1B1B9B9B9B9B9B9B9B9B9
+B6B6B6B6B6B6B6B6B6B2B2B2B2B2B2B2B2B2BABABABABABABABABAACACACACACACACACACACACAC
+A4A4A4A4A4A4A4A4A49E9E9E9E9E9E9E9E9E7777777777777777774F4F4F4F4F4F4F4F4F4F4F4F
+4141414141414141414747474747474747474E4E4E4E4E4E4E4E4E4D4D4D4D4D4D4D4D4D4D4D4D
+4D4D4D4D4D4D4D4D4D4C4C4C4C4C4C4C4C4C4C4C4C4C4C4C4C4C4C4B4B4B4B4B4B4B4B4B494949
+494949494949464646464646464646464646444444444444444444454545454545454545444444
+4444444444444444444444444444444444444242424242424242424545454545454545454E4E4E
+4E4E4E4E4E4E616161616161616161757575757575757575757575818181818181818181848484
+848484848484868686868686868686868686868686868686878787878787878787878787888888
+8888888888888C8C8C8C8C8C8C8C8C8D8D8D8D8D8D8D8D8D8E8E8E8E8E8E8E8E8E8E8E8E909090
+9090909090909090909090909090909090909090909090908D8D8D8D8D8D8D8D8D808080808080
+8080808080806464646464646464645D5D5D5D5D5D5D5D5D6262626262626262626A6A6A6A6A6A
+6A6A6A7575757575757575757575757E7E7E7E7E7E7E7E7EA4A4A4A4A4A4A4A4A4D3D3D3D3D3D3
+D3D3D3F2F2F2F2F2F2F2F2F2F2F2F2F9F9F9F9F9F9F9F9F9FBFBFBFBFBFBFBFBFBFBFBFBFBFBFB
+FBFBFBFBFBFBFBFBFBFBFBFBFAFAFAFAFAFAFAFAFAFAFAFAF9F9F9F9F9F9F9F9F9F9F9F9F9F9F9
+F9F9F9FBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFB
+FBFBFBFBFBFBFBFBFBFBFBFBFCFCFCFCFCFCFCFCFCFBFBFBFBFBFBFBFBFBFBFBFBF7F7F7F7F7F7
+F7F7F7C5C5C5C5C5C5C5C5C5CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCBCBCBCBCBCBCBCBCB
+CBCBCBCDCDCDCDCDCDCDCDCDCCCCCCCCCCCCCCCCCCCBCBCBCBCBCBCBCBCBCCCCCCCCCCCCCCCCCC
+CDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCECECECECECECECECE
+CDCDCDCDCDCDCDCDCDCDCDCDCCCCCCCCCCCCCCCCCCCBCBCBCBCBCBCBCBCBCDCDCDCDCDCDCDCDCD
+CBCBCBCBCBCBCBCBCBC6C6C6C6C6C6C6C6C6C6C6C6C7C7C7C7C7C7C7C7C7B1B1B1B1B1B1B1B1B1
+919191919191919191A2A2A2A2A2A2A2A2A2BFBFBFBFBFBFBFBFBFBFBFBFCFCFCFCFCFCFCFCFCF
+D1D1D1D1D1D1D1D1D1C0C0C0C0C0C0C0C0C0B7B7B7B7B7B7B7B7B7B7B7B7BFBFBFBFBFBFBFBFBF
+BABABABABABABABABAB0B0B0B0B0B0B0B0B0ACACACACACACACACACB2B2B2B2B2B2B2B2B2B2B2B2
+ACACACACACACACACACAAAAAAAAAAAAAAAAAAAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFA4A4A4
+A4A4A4A4A4A4A4A4A49191919191919191918D8D8D8D8D8D8D8D8D929292929292929292ABABAB
+ABABABABABABABABABAEAEAEAEAEAEAEAEAEB0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0AFAFAF
+AFAFAFAFAFAFB1B1B1B1B1B1B1B1B1B1B1B1AEAEAEAEAEAEAEAEAEB6B6B6B6B6B6B6B6B6B2B2B2
+B2B2B2B2B2B2B4B4B4B4B4B4B4B4B4B7B7B7B7B7B7B7B7B7B7B7B7A7A7A7A7A7A7A7A7A7A5A5A5
+A5A5A5A5A5A59898989898989898986F6F6F6F6F6F6F6F6F6F6F6F4E4E4E4E4E4E4E4E4E3E3E3E
+3E3E3E3E3E3E4141414141414141414B4B4B4B4B4B4B4B4B505050505050505050505050505050
+5050505050505050505050505050504D4D4D4D4D4D4D4D4D494949494949494949444444444444
+4444444444444040404040404040403F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F
+3F3F3F3F3F3F4444444444444444444E4E4E4E4E4E4E4E4E5D5D5D5D5D5D5D5D5D6F6F6F6F6F6F
+6F6F6F7C7C7C7C7C7C7C7C7C7C7C7C848484848484848484858585858585858585858585858585
+8585858484848484848484848787878787878787878787878989898989898989898F8F8F8F8F8F
+8F8F8F9090909090909090909393939393939393939393939393939393939393938E8E8E8E8E8E
+8E8E8E8D8D8D8D8D8D8D8D8D8E8E8E8E8E8E8E8E8E7E7E7E7E7E7E7E7E7E7E7E7E575757575757
+5757575151515151515151515F605F5F605F5F605F6D6D6D6D6D6D6D6D6D777777777777777777
+7777777E7E7E7E7E7E7E7E7EA5A5A5A5A5A5A5A5A5D8D8D8D8D8D8D8D8D8EFEFEFEFEFEFEFEFEF
+EFEFEFF9F9F9F9F9F9F9F9F9FBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFAFAFAFAFAFAFAFAFA
+F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9FBFBFBFBFBFBFBFBFB
+FBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBF9F9F9F9F9F9F9F9F9FAFAFAFAFAFAFAFAFA
+FBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBF6F6F6F6F6F6F6F6F6C1C1C1C1C1C1C1C1C1
+CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCBCBCBCBCBCBCBCBCBCBCBCBCDCDCDCDCDCDCDCDCD
+CCCCCCCCCCCCCCCCCCCBCBCBCBCBCBCBCBCBCCCCCCCCCCCCCCCCCCCDCDCDCDCDCDCDCDCDCDCDCD
+CDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCECECECECECECECECECDCDCDCDCDCDCDCDCDCDCDCD
+CCCCCCCCCCCCCCCCCCCBCBCBCBCBCBCBCBCBCDCDCDCDCDCDCDCDCDCBCBCBCBCBCBCBCBCBC6C6C6
+C6C6C6C6C6C6C6C6C6C7C7C7C7C7C7C7C7C7B1B1B1B1B1B1B1B1B1919191919191919191A2A2A2
+A2A2A2A2A2A2BFBFBFBFBFBFBFBFBFBFBFBFCFCFCFCFCFCFCFCFCFD1D1D1D1D1D1D1D1D1C0C0C0
+C0C0C0C0C0C0B7B7B7B7B7B7B7B7B7B7B7B7BFBFBFBFBFBFBFBFBFBABABABABABABABABAB0B0B0
+B0B0B0B0B0B0ACACACACACACACACACB2B2B2B2B2B2B2B2B2B2B2B2ACACACACACACACACACAAAAAA
+AAAAAAAAAAAAAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFA4A4A4A4A4A4A4A4A4A4A4A4919191
+9191919191918D8D8D8D8D8D8D8D8D929292929292929292ABABABABABABABABABABABABAEAEAE
+AEAEAEAEAEAEB0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0AFAFAFAFAFAFAFAFAFB1B1B1B1B1B1
+B1B1B1B1B1B1AEAEAEAEAEAEAEAEAEB6B6B6B6B6B6B6B6B6B2B2B2B2B2B2B2B2B2B4B4B4B4B4B4
+B4B4B4B7B7B7B7B7B7B7B7B7B7B7B7A7A7A7A7A7A7A7A7A7A5A5A5A5A5A5A5A5A5989898989898
+9898986F6F6F6F6F6F6F6F6F6F6F6F4E4E4E4E4E4E4E4E4E3E3E3E3E3E3E3E3E3E414141414141
+4141414B4B4B4B4B4B4B4B4B505050505050505050505050505050505050505050505050505050
+5050504D4D4D4D4D4D4D4D4D494949494949494949444444444444444444444444404040404040
+4040403F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F444444444444
+4444444E4E4E4E4E4E4E4E4E5D5D5D5D5D5D5D5D5D6F6F6F6F6F6F6F6F6F7C7C7C7C7C7C7C7C7C
+7C7C7C848484848484848484858585858585858585858585858585858585848484848484848484
+8787878787878787878787878989898989898989898F8F8F8F8F8F8F8F8F909090909090909090
+9393939393939393939393939393939393939393938E8E8E8E8E8E8E8E8E8D8D8D8D8D8D8D8D8D
+8E8E8E8E8E8E8E8E8E7E7E7E7E7E7E7E7E7E7E7E7E575757575757575757515151515151515151
+5F605F5F605F5F605F6D6D6D6D6D6D6D6D6D7777777777777777777777777E7E7E7E7E7E7E7E7E
+A5A5A5A5A5A5A5A5A5D8D8D8D8D8D8D8D8D8EFEFEFEFEFEFEFEFEFEFEFEFF9F9F9F9F9F9F9F9F9
+FBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFAFAFAFAFAFAFAFAFAF9F9F9F9F9F9F9F9F9F9F9F9
+F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9FBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFB
+FBFBFBFBFBFBFBFBFBF9F9F9F9F9F9F9F9F9FAFAFAFAFAFAFAFAFAFBFBFBFBFBFBFBFBFBFBFBFB
+FBFBFBFBFBFBFBFBFBF6F6F6F6F6F6F6F6F6C1C1C1C1C1C1C1C1C1CBCBCBCBCBCBCBCBCBCBCBCB
+CBCBCBCBCBCBCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCBCBCB
+CBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCD
+CDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCFCFCF
+CFCFCFCFCFCFC7C7C7C7C7C7C7C7C7BDBDBDBDBDBDBDBDBDC9C9C9C9C9C9C9C9C9C9C9C9D6D6D5
+D6D6D5D6D6D5C9C9C9C9C9C9C9C9C9B8B8B8B8B8B8B8B8B8B7B7B7B7B7B7B7B7B7B8B8B8B8B8B8
+B8B8B8B8B8B8C5C5C5C5C5C5C5C5C5CBCBCBCBCBCBCBCBCBC8C8C8C8C8C8C8C8C8C6C6C6C6C6C6
+C6C6C6C6C6C6C5C5C5C5C5C5C5C5C5BFBFBFBFBFBFBFBFBFB4B4B4B4B4B4B4B4B4B0B1B0B0B1B0
+B0B1B0B0B0B0B0B0B0B0B0B0B0B0B0A6A6A6A6A6A6A6A6A6ADADADADADADADADADB5B5B5B5B5B5
+B5B5B5ACACACACACACACACACA5A5A5A5A5A5A5A5A5A5A5A5A1A1A1A1A1A1A1A1A1A4A4A4A4A4A4
+A4A4A4979797979797979797979797979797979797979797A5A5A5A5A5A5A5A5A5A7A7A7A7A7A7
+A7A7A7A8A8A8A8A8A8A8A8A8A8A8A8A8A8A8A8A8A8ABABABABABABABABABABABABADADADADADAD
+ADADADABABABABABABABABABB2B2B2B2B2B2B2B2B2AFAFAFAFAFAFAFAFAFB2B2B2B2B2B2B2B2B2
+B2B2B2B1B1B1B1B1B1B1B1B1A4A4A4A4A4A4A4A4A4A5A5A5A5A5A5A5A5A5919191919191919191
+9191916C6C6C6C6C6C6C6C6C4D4D4D4D4D4D4D4D4D3C3C3C3C3C3C3C3C3C414141414141414141
+4C4C4C4C4C4C4C4C4C4C4C4C505050505050505050515151515151515151515151515151515151
+5050505050505050504E4E4E4E4E4E4E4E4E4E4E4E484848484848484848444444444444444444
+4242424242424242424545454545454545454545454F4F4F4F4F4F4F4F4F5E5E5E5E5E5E5E5E5E
+6E6E6E6E6E6E6E6E6E7878787878787878787E7E7E7E7E7E7E7E7E7E7E7E838383838383838383
+818181818181818181818181818181818181828282828282828282848484848484848484848484
+8A8A8A8A8A8A8A8A8A909090909090909090949494949494949494989898989898989898989898
+9595959595959595958F8F8F8F8F8F8F8F8F8D8D8D8D8D8D8D8D8D8F8F8F8F8F8F8F8F8F7C7C7C
+7C7C7C7C7C7C7C7C7C4E4E4E4E4E4E4E4E4E4C4C4C4C4C4C4C4C4C626262626262626262727272
+727272727272797979797979797979797979808080808080808080ADADADADADADADADADE4E4E4
+E4E4E4E4E4E4EFEFEFEFEFEFEFEFEFEFEFEFF7F7F7F7F7F7F7F7F7FAFAFAFAFAFAFAFAFAFBFBFB
+FBFBFBFBFBFBFAFAFAFAFAFAFAFAFAF9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9
+F9F9F9F9F9F9FAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAF9F9F9
+F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9FAFAFAFAFAFAFAFAFAFBFBFBFBFBFBFBFBFBFBFBFBF4F4F4
+F4F4F4F4F4F4B2B2B2B2B2B2B2B2B2CBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCCCCCCCCCCCC
+CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCBCBCBCBCBCBCBCBCBCBCBCBCBCBCB
+CBCBCBCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCD
+CDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCFCFCFCFCFCFCFCFCFC7C7C7C7C7C7
+C7C7C7BDBDBDBDBDBDBDBDBDC9C9C9C9C9C9C9C9C9C9C9C9D6D6D5D6D6D5D6D6D5C9C9C9C9C9C9
+C9C9C9B8B8B8B8B8B8B8B8B8B7B7B7B7B7B7B7B7B7B8B8B8B8B8B8B8B8B8B8B8B8C5C5C5C5C5C5
+C5C5C5CBCBCBCBCBCBCBCBCBC8C8C8C8C8C8C8C8C8C6C6C6C6C6C6C6C6C6C6C6C6C5C5C5C5C5C5
+C5C5C5BFBFBFBFBFBFBFBFBFB4B4B4B4B4B4B4B4B4B0B1B0B0B1B0B0B1B0B0B0B0B0B0B0B0B0B0
+B0B0B0A6A6A6A6A6A6A6A6A6ADADADADADADADADADB5B5B5B5B5B5B5B5B5ACACACACACACACACAC
+A5A5A5A5A5A5A5A5A5A5A5A5A1A1A1A1A1A1A1A1A1A4A4A4A4A4A4A4A4A4979797979797979797
+979797979797979797979797A5A5A5A5A5A5A5A5A5A7A7A7A7A7A7A7A7A7A8A8A8A8A8A8A8A8A8
+A8A8A8A8A8A8A8A8A8ABABABABABABABABABABABABADADADADADADADADADABABABABABABABABAB
+B2B2B2B2B2B2B2B2B2AFAFAFAFAFAFAFAFAFB2B2B2B2B2B2B2B2B2B2B2B2B1B1B1B1B1B1B1B1B1
+A4A4A4A4A4A4A4A4A4A5A5A5A5A5A5A5A5A59191919191919191919191916C6C6C6C6C6C6C6C6C
+4D4D4D4D4D4D4D4D4D3C3C3C3C3C3C3C3C3C4141414141414141414C4C4C4C4C4C4C4C4C4C4C4C
+5050505050505050505151515151515151515151515151515151515050505050505050504E4E4E
+4E4E4E4E4E4E4E4E4E484848484848484848444444444444444444424242424242424242454545
+4545454545454545454F4F4F4F4F4F4F4F4F5E5E5E5E5E5E5E5E5E6E6E6E6E6E6E6E6E6E787878
+7878787878787E7E7E7E7E7E7E7E7E7E7E7E838383838383838383818181818181818181818181
+8181818181818282828282828282828484848484848484848484848A8A8A8A8A8A8A8A8A909090
+9090909090909494949494949494949898989898989898989898989595959595959595958F8F8F
+8F8F8F8F8F8F8D8D8D8D8D8D8D8D8D8F8F8F8F8F8F8F8F8F7C7C7C7C7C7C7C7C7C7C7C7C4E4E4E
+4E4E4E4E4E4E4C4C4C4C4C4C4C4C4C626262626262626262727272727272727272797979797979
+797979797979808080808080808080ADADADADADADADADADE4E4E4E4E4E4E4E4E4EFEFEFEFEFEF
+EFEFEFEFEFEFF7F7F7F7F7F7F7F7F7FAFAFAFAFAFAFAFAFAFBFBFBFBFBFBFBFBFBFAFAFAFAFAFA
+FAFAFAF9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9FAFAFAFAFAFA
+FAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAF9F9F9F9F9F9F9F9F9F9F9F9F9F9F9
+F9F9F9FAFAFAFAFAFAFAFAFAFBFBFBFBFBFBFBFBFBFBFBFBF4F4F4F4F4F4F4F4F4B2B2B2B2B2B2
+B2B2B2CBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC
+CCCCCCCCCCCCCCCCCCCCCCCCCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCDCDCDCDCDCDCDCDCD
+CDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCD
+CDCDCDCDCDCDCDCDCDCDCDCDCFCFCFCFCFCFCFCFCFC7C7C7C7C7C7C7C7C7BDBDBDBDBDBDBDBDBD
+C9C9C9C9C9C9C9C9C9C9C9C9D6D6D5D6D6D5D6D6D5C9C9C9C9C9C9C9C9C9B8B8B8B8B8B8B8B8B8
+B7B7B7B7B7B7B7B7B7B8B8B8B8B8B8B8B8B8B8B8B8C5C5C5C5C5C5C5C5C5CBCBCBCBCBCBCBCBCB
+C8C8C8C8C8C8C8C8C8C6C6C6C6C6C6C6C6C6C6C6C6C5C5C5C5C5C5C5C5C5BFBFBFBFBFBFBFBFBF
+B4B4B4B4B4B4B4B4B4B0B1B0B0B1B0B0B1B0B0B0B0B0B0B0B0B0B0B0B0B0A6A6A6A6A6A6A6A6A6
+ADADADADADADADADADB5B5B5B5B5B5B5B5B5ACACACACACACACACACA5A5A5A5A5A5A5A5A5A5A5A5
+A1A1A1A1A1A1A1A1A1A4A4A4A4A4A4A4A4A4979797979797979797979797979797979797979797
+A5A5A5A5A5A5A5A5A5A7A7A7A7A7A7A7A7A7A8A8A8A8A8A8A8A8A8A8A8A8A8A8A8A8A8A8ABABAB
+ABABABABABABABABABADADADADADADADADADABABABABABABABABABB2B2B2B2B2B2B2B2B2AFAFAF
+AFAFAFAFAFAFB2B2B2B2B2B2B2B2B2B2B2B2B1B1B1B1B1B1B1B1B1A4A4A4A4A4A4A4A4A4A5A5A5
+A5A5A5A5A5A59191919191919191919191916C6C6C6C6C6C6C6C6C4D4D4D4D4D4D4D4D4D3C3C3C
+3C3C3C3C3C3C4141414141414141414C4C4C4C4C4C4C4C4C4C4C4C505050505050505050515151
+5151515151515151515151515151515050505050505050504E4E4E4E4E4E4E4E4E4E4E4E484848
+4848484848484444444444444444444242424242424242424545454545454545454545454F4F4F
+4F4F4F4F4F4F5E5E5E5E5E5E5E5E5E6E6E6E6E6E6E6E6E6E7878787878787878787E7E7E7E7E7E
+7E7E7E7E7E7E838383838383838383818181818181818181818181818181818181828282828282
+8282828484848484848484848484848A8A8A8A8A8A8A8A8A909090909090909090949494949494
+9494949898989898989898989898989595959595959595958F8F8F8F8F8F8F8F8F8D8D8D8D8D8D
+8D8D8D8F8F8F8F8F8F8F8F8F7C7C7C7C7C7C7C7C7C7C7C7C4E4E4E4E4E4E4E4E4E4C4C4C4C4C4C
+4C4C4C626262626262626262727272727272727272797979797979797979797979808080808080
+808080ADADADADADADADADADE4E4E4E4E4E4E4E4E4EFEFEFEFEFEFEFEFEFEFEFEFF7F7F7F7F7F7
+F7F7F7FAFAFAFAFAFAFAFAFAFBFBFBFBFBFBFBFBFBFAFAFAFAFAFAFAFAFAF9F9F9F9F9F9F9F9F9
+F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9FAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFA
+FAFAFAFAFAFAFAFAFAFAFAFAF9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9FAFAFAFAFAFAFAFAFA
+FBFBFBFBFBFBFBFBFBFBFBFBF4F4F4F4F4F4F4F4F4B2B2B2B2B2B2B2B2B2CCCCCCCCCCCCCCCCCC
+CACACACACACACACACACBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCB
+CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCBCBCBCBCBCBCBCBCB
+CBCBCBCBCBCBCBCBCBCCCCCCCCCCCCCCCCCCCBCBCBCBCBCBCBCBCBCBCBCBD0D0D0D0D0D0D0D0D0
+CFCFCFCFCFCFCFCFCFAEAEAEAEAEAEAEAEAE9D9D9D9D9D9D9D9D9DBABABABABABABABABABABABA
+CDCDCDCDCDCDCDCDCDC7C7C7C7C7C7C7C7C7BCBCBCBCBCBCBCBCBCA0A0A0A0A0A0A0A0A07C7C7C
+7C7C7C7C7C7C7C7C7C9E9E9E9E9E9E9E9E9ECDCDCDCDCDCDCDCDCDD5D5D5D5D5D5D5D5D5D2D2D2
+D2D2D2D2D2D2D2D2D2C6C6C6C6C6C6C6C6C6C0C0C0C0C0C0C0C0C0BFBFBFBFBFBFBFBFBFBABABA
+BABABABABABAA9A9A9A9A9A9A9A9A9A9A9A9A2A2A2A2A2A2A2A2A2ACACACACACACACACACA8A8A8
+A8A8A8A8A8A8A3A3A3A3A3A3A3A3A3AFAFAFAFAFAFAFAFAFAFAFAFB3B3B3B3B3B3B3B3B3ADADAD
+ADADADADADAD9797979797979797978888888888888888888888888F8F8F8F8F8F8F8F8FA0A0A0
+A0A0A0A0A0A09E9E9E9E9E9E9E9E9EA4A4A4A4A4A4A4A4A4A5A5A5A5A5A5A5A5A5A5A5A5A8A8A8
+A8A8A8A8A8A8A8A8A8A8A8A8A8A8A8A9A9A9A9A9A9A9A9A9AFAFAFAFAFAFAFAFAFAAAAAAAAAAAA
+AAAAAAAAAAAAB0B0B0B0B0B0B0B0B0ABABABABABABABABABA5A5A5A5A5A5A5A5A5A8A8A8A8A8A8
+A8A8A8A8A8A88E8E8E8E8E8E8E8E8E6D6D6D6D6D6D6D6D6D5151515151515151513B3B3B3B3B3B
+3B3B3B4040404040404040404040404C4C4C4C4C4C4C4C4C515151515151515151525252525252
+5252525252525252525252525252525252525252525252525050505050505050504E4E4E4E4E4E
+4E4E4E4D4D4D4D4D4D4D4D4D5555555555555555555555555F605F5F605F5F605F6E6E6E6E6E6E
+6E6E6E7A7A7A7A7A7A7A7A7A7D7D7D7D7D7D7D7D7D7E7E7E7E7E7E7E7E7E7E7E7E7F7F7F7F7F7F
+7F7F7F7C7C7C7C7C7C7C7C7C7E7E7E7E7E7E7E7E7E808080808080808080828282828282828282
+8282828C8C8C8C8C8C8C8C8C949494949494949494989898989898989898949494949494949494
+9494948F8F8F8F8F8F8F8F8F8E8E8E8E8E8E8E8E8E8F8F8F8F8F8F8F8F8F909090909090909090
+7C7C7C7C7C7C7C7C7C7C7C7C4C4C4C4C4C4C4C4C4C484848484848484848636363636363636363
+757575757575757575797979797979797979797979888888888888888888B3B3B3B3B3B3B3B3B3
+ECECECECECECECECECF2F2F2F2F2F2F2F2F2F2F2F2F5F5F5F5F5F5F5F5F5F9F9F9F9F9F9F9F9F9
+F9F9F9F9F9F9F9F9F9FAFAFAFAFAFAFAFAFAF9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9
+F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9FAFAFAFAFAFAFAFAFAF9F9F9F9F9F9F9F9F9F9F9F9
+F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9
+F4F4F4F4F4F4F4F4F4BFBFBFBFBFBFBFBFBFCCCCCCCCCCCCCCCCCCCACACACACACACACACACBCBCB
+CBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCCCCCCCCCCCCCCCCCCCCCCCC
+CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCCCCCC
+CCCCCCCCCCCCCBCBCBCBCBCBCBCBCBCBCBCBD0D0D0D0D0D0D0D0D0CFCFCFCFCFCFCFCFCFAEAEAE
+AEAEAEAEAEAE9D9D9D9D9D9D9D9D9DBABABABABABABABABABABABACDCDCDCDCDCDCDCDCDC7C7C7
+C7C7C7C7C7C7BCBCBCBCBCBCBCBCBCA0A0A0A0A0A0A0A0A07C7C7C7C7C7C7C7C7C7C7C7C9E9E9E
+9E9E9E9E9E9ECDCDCDCDCDCDCDCDCDD5D5D5D5D5D5D5D5D5D2D2D2D2D2D2D2D2D2D2D2D2C6C6C6
+C6C6C6C6C6C6C0C0C0C0C0C0C0C0C0BFBFBFBFBFBFBFBFBFBABABABABABABABABAA9A9A9A9A9A9
+A9A9A9A9A9A9A2A2A2A2A2A2A2A2A2ACACACACACACACACACA8A8A8A8A8A8A8A8A8A3A3A3A3A3A3
+A3A3A3AFAFAFAFAFAFAFAFAFAFAFAFB3B3B3B3B3B3B3B3B3ADADADADADADADADAD979797979797
+9797978888888888888888888888888F8F8F8F8F8F8F8F8FA0A0A0A0A0A0A0A0A09E9E9E9E9E9E
+9E9E9EA4A4A4A4A4A4A4A4A4A5A5A5A5A5A5A5A5A5A5A5A5A8A8A8A8A8A8A8A8A8A8A8A8A8A8A8
+A8A8A8A9A9A9A9A9A9A9A9A9AFAFAFAFAFAFAFAFAFAAAAAAAAAAAAAAAAAAAAAAAAB0B0B0B0B0B0
+B0B0B0ABABABABABABABABABA5A5A5A5A5A5A5A5A5A8A8A8A8A8A8A8A8A8A8A8A88E8E8E8E8E8E
+8E8E8E6D6D6D6D6D6D6D6D6D5151515151515151513B3B3B3B3B3B3B3B3B404040404040404040
+4040404C4C4C4C4C4C4C4C4C515151515151515151525252525252525252525252525252525252
+5252525252525252525252525050505050505050504E4E4E4E4E4E4E4E4E4D4D4D4D4D4D4D4D4D
+5555555555555555555555555F605F5F605F5F605F6E6E6E6E6E6E6E6E6E7A7A7A7A7A7A7A7A7A
+7D7D7D7D7D7D7D7D7D7E7E7E7E7E7E7E7E7E7E7E7E7F7F7F7F7F7F7F7F7F7C7C7C7C7C7C7C7C7C
+7E7E7E7E7E7E7E7E7E8080808080808080808282828282828282828282828C8C8C8C8C8C8C8C8C
+9494949494949494949898989898989898989494949494949494949494948F8F8F8F8F8F8F8F8F
+8E8E8E8E8E8E8E8E8E8F8F8F8F8F8F8F8F8F9090909090909090907C7C7C7C7C7C7C7C7C7C7C7C
+4C4C4C4C4C4C4C4C4C484848484848484848636363636363636363757575757575757575797979
+797979797979797979888888888888888888B3B3B3B3B3B3B3B3B3ECECECECECECECECECF2F2F2
+F2F2F2F2F2F2F2F2F2F5F5F5F5F5F5F5F5F5F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9FAFAFA
+FAFAFAFAFAFAF9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9
+F9F9F9F9F9F9FAFAFAFAFAFAFAFAFAF9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9
+F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F4F4F4F4F4F4F4F4F4BFBFBF
+BFBFBFBFBFBFCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCCCCCCCCCCCCCCCCCCCCCCCCCBCBCB
+CBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCBCBCBCBCBCB
+CBCBCBCBCBCBCACACACACACACACACAC6C6C6C6C6C6C6C6C6C5C5C5C5C5C5C5C5C5C2C2C2C2C2C2
+C2C2C2C2C2C2D0D0D0D0D0D0D0D0D0CBCBCBCBCBCBCBCBCBA1A1A1A1A1A1A1A1A1A6A6A6A6A6A6
+A6A6A6C3C3C3C3C3C3C3C3C3C3C3C3C8C8C8C8C8C8C8C8C8C7C7C7C7C7C7C7C7C7BBBBBBBBBBBB
+BBBBBB9494949494949494945D5D5D5D5D5D5D5D5D5D5D5D838383838383838383CCCCCCCCCCCC
+CCCCCCDFDFDFDFDFDFDFDFDFD6D6D5D6D6D5D6D6D5D6D6D5C8C8C8C8C8C8C8C8C8C8C8C8C8C8C8
+C8C8C8CACACACACACACACACAB9B9B9B9B9B9B9B9B9A4A4A4A4A4A4A4A4A4A4A4A4A9A9A9A9A9A9
+A9A9A9B0B1B0B0B1B0B0B1B0A8A8A8A8A8A8A8A8A8A8A8A8A8A8A8A8A8A8B5B5B5B5B5B5B5B5B5
+B5B5B5B4B4B4B4B4B4B4B4B4A6A6A6A6A6A6A6A6A69A9A9A9A9A9A9A9A9A969696969696969696
+9696968D8D8D8D8D8D8D8D8D9191919191919191919999999999999999999B9B9B9B9B9B9B9B9B
+A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A5A5A5A5A5A5A5A5A5A8A8A8A8A8A8A8A8A8
+A7A7A7A7A7A7A7A7A7AAAAAAAAAAAAAAAAAAAAAAAAA9A9A9A9A9A9A9A9A9AEAEAEAEAEAEAEAEAE
+A8A8A8A8A8A8A8A8A8ADADADADADADADADADADADADA9A9A9A9A9A9A9A9A9888888888888888888
+6969696969696969694444444444444444443535353535353535353535353E3E3E3E3E3E3E3E3E
+4949494949494949494F4F4F4F4F4F4F4F4F545454545454545454545454545454545454545454
+5555555555555555555757575757575757575B5B5B5B5B5B5B5B5B666666666666666666666666
+707070707070707070797979797979797979808080808080808080808080808080808080808080
+8080808080808080807E7E7E7E7E7E7E7E7E7D7D7D7D7D7D7D7D7D808080808080808080818181
+8181818181818383838383838383838383839090909090909090909999999999999999999C9C9C
+9C9C9C9C9C9C9393939393939393939393938E8E8E8E8E8E8E8E8E8F8F8F8F8F8F8F8F8F919191
+9191919191919191919191919191917E7E7E7E7E7E7E7E7E7E7E7E4D4D4D4D4D4D4D4D4D474747
+4747474747476565656565656565657979797979797979797E7E7E7E7E7E7E7E7E7E7E7E969696
+969696969696BABABABABABABABABAEBEBEBEBEBEBEBEBEBF5F5F5F5F5F5F5F5F5F5F5F5F1F1F1
+F1F1F1F1F1F1F7F7F7F7F7F7F7F7F7F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9
+F9F9F9F9F9F9F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9
+F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9
+F9F9F9F8F8F8F8F8F8F8F8F8F8F8F8F5F5F5F5F5F5F5F5F5CECECECECECECECECECBCBCBCBCBCB
+CBCBCBCBCBCBCBCBCBCBCBCBCCCCCCCCCCCCCCCCCCCCCCCCCBCBCBCBCBCBCBCBCBCBCBCBCBCBCB
+CBCBCBCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCBCBCBCBCBCBCBCBCBCBCBCBCACACACACACA
+CACACAC6C6C6C6C6C6C6C6C6C5C5C5C5C5C5C5C5C5C2C2C2C2C2C2C2C2C2C2C2C2D0D0D0D0D0D0
+D0D0D0CBCBCBCBCBCBCBCBCBA1A1A1A1A1A1A1A1A1A6A6A6A6A6A6A6A6A6C3C3C3C3C3C3C3C3C3
+C3C3C3C8C8C8C8C8C8C8C8C8C7C7C7C7C7C7C7C7C7BBBBBBBBBBBBBBBBBB949494949494949494
+5D5D5D5D5D5D5D5D5D5D5D5D838383838383838383CCCCCCCCCCCCCCCCCCDFDFDFDFDFDFDFDFDF
+D6D6D5D6D6D5D6D6D5D6D6D5C8C8C8C8C8C8C8C8C8C8C8C8C8C8C8C8C8C8CACACACACACACACACA
+B9B9B9B9B9B9B9B9B9A4A4A4A4A4A4A4A4A4A4A4A4A9A9A9A9A9A9A9A9A9B0B1B0B0B1B0B0B1B0
+A8A8A8A8A8A8A8A8A8A8A8A8A8A8A8A8A8A8B5B5B5B5B5B5B5B5B5B5B5B5B4B4B4B4B4B4B4B4B4
+A6A6A6A6A6A6A6A6A69A9A9A9A9A9A9A9A9A9696969696969696969696968D8D8D8D8D8D8D8D8D
+9191919191919191919999999999999999999B9B9B9B9B9B9B9B9BA0A0A0A0A0A0A0A0A0A0A0A0
+A0A0A0A0A0A0A0A0A0A5A5A5A5A5A5A5A5A5A8A8A8A8A8A8A8A8A8A7A7A7A7A7A7A7A7A7AAAAAA
+AAAAAAAAAAAAAAAAAAA9A9A9A9A9A9A9A9A9AEAEAEAEAEAEAEAEAEA8A8A8A8A8A8A8A8A8ADADAD
+ADADADADADADADADADA9A9A9A9A9A9A9A9A9888888888888888888696969696969696969444444
+4444444444443535353535353535353535353E3E3E3E3E3E3E3E3E4949494949494949494F4F4F
+4F4F4F4F4F4F545454545454545454545454545454545454545454555555555555555555575757
+5757575757575B5B5B5B5B5B5B5B5B666666666666666666666666707070707070707070797979
+7979797979798080808080808080808080808080808080808080808080808080808080807E7E7E
+7E7E7E7E7E7E7D7D7D7D7D7D7D7D7D808080808080808080818181818181818181838383838383
+8383838383839090909090909090909999999999999999999C9C9C9C9C9C9C9C9C939393939393
+9393939393938E8E8E8E8E8E8E8E8E8F8F8F8F8F8F8F8F8F919191919191919191919191919191
+9191917E7E7E7E7E7E7E7E7E7E7E7E4D4D4D4D4D4D4D4D4D474747474747474747656565656565
+6565657979797979797979797E7E7E7E7E7E7E7E7E7E7E7E969696969696969696BABABABABABA
+BABABAEBEBEBEBEBEBEBEBEBF5F5F5F5F5F5F5F5F5F5F5F5F1F1F1F1F1F1F1F1F1F7F7F7F7F7F7
+F7F7F7F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F8F8F8F8F8F8
+F8F8F8F8F8F8F8F8F8F8F8F8F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9
+F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F8F8F8F8F8F8F8F8F8
+F8F8F8F5F5F5F5F5F5F5F5F5CECECECECECECECECECBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCB
+CCCCCCCCCCCCCCCCCCCCCCCCCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCCCCCCCCCCCCCCCCCC
+CCCCCCCCCCCCCCCCCCCBCBCBCBCBCBCBCBCBCBCBCBCACACACACACACACACAC6C6C6C6C6C6C6C6C6
+C5C5C5C5C5C5C5C5C5C2C2C2C2C2C2C2C2C2C2C2C2D0D0D0D0D0D0D0D0D0CBCBCBCBCBCBCBCBCB
+A1A1A1A1A1A1A1A1A1A6A6A6A6A6A6A6A6A6C3C3C3C3C3C3C3C3C3C3C3C3C8C8C8C8C8C8C8C8C8
+C7C7C7C7C7C7C7C7C7BBBBBBBBBBBBBBBBBB9494949494949494945D5D5D5D5D5D5D5D5D5D5D5D
+838383838383838383CCCCCCCCCCCCCCCCCCDFDFDFDFDFDFDFDFDFD6D6D5D6D6D5D6D6D5D6D6D5
+C8C8C8C8C8C8C8C8C8C8C8C8C8C8C8C8C8C8CACACACACACACACACAB9B9B9B9B9B9B9B9B9A4A4A4
+A4A4A4A4A4A4A4A4A4A9A9A9A9A9A9A9A9A9B0B1B0B0B1B0B0B1B0A8A8A8A8A8A8A8A8A8A8A8A8
+A8A8A8A8A8A8B5B5B5B5B5B5B5B5B5B5B5B5B4B4B4B4B4B4B4B4B4A6A6A6A6A6A6A6A6A69A9A9A
+9A9A9A9A9A9A9696969696969696969696968D8D8D8D8D8D8D8D8D919191919191919191999999
+9999999999999B9B9B9B9B9B9B9B9BA0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A5A5A5
+A5A5A5A5A5A5A8A8A8A8A8A8A8A8A8A7A7A7A7A7A7A7A7A7AAAAAAAAAAAAAAAAAAAAAAAAA9A9A9
+A9A9A9A9A9A9AEAEAEAEAEAEAEAEAEA8A8A8A8A8A8A8A8A8ADADADADADADADADADADADADA9A9A9
+A9A9A9A9A9A9888888888888888888696969696969696969444444444444444444353535353535
+3535353535353E3E3E3E3E3E3E3E3E4949494949494949494F4F4F4F4F4F4F4F4F545454545454
+5454545454545454545454545454545555555555555555555757575757575757575B5B5B5B5B5B
+5B5B5B666666666666666666666666707070707070707070797979797979797979808080808080
+8080808080808080808080808080808080808080808080807E7E7E7E7E7E7E7E7E7D7D7D7D7D7D
+7D7D7D808080808080808080818181818181818181838383838383838383838383909090909090
+9090909999999999999999999C9C9C9C9C9C9C9C9C9393939393939393939393938E8E8E8E8E8E
+8E8E8E8F8F8F8F8F8F8F8F8F9191919191919191919191919191919191917E7E7E7E7E7E7E7E7E
+7E7E7E4D4D4D4D4D4D4D4D4D474747474747474747656565656565656565797979797979797979
+7E7E7E7E7E7E7E7E7E7E7E7E969696969696969696BABABABABABABABABAEBEBEBEBEBEBEBEBEB
+F5F5F5F5F5F5F5F5F5F5F5F5F1F1F1F1F1F1F1F1F1F7F7F7F7F7F7F7F7F7F9F9F9F9F9F9F9F9F9
+F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8
+F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9
+F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F8F8F8F8F8F8F8F8F8F8F8F8F5F5F5F5F5F5F5F5F5
+CECECECECECECECECECBCBCBCBCBCBCBCBCBCACACACACACACACACACBCBCBCBCBCBCBCBCBCBCBCB
+CBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCCCCCCCCCCCCCCCCCCCBCBCBCBCBCBCBCBCBCBCBCB
+CBCBCBCBCBCBCBCBCBC5C5C5C5C5C5C5C5C5B6B6B6B6B6B6B6B6B6AEAEAEAEAEAEAEAEAEBCBCBC
+BCBCBCBCBCBCBCBCBCD6D6D6D6D6D6D6D6D6D8D8D8D8D8D8D8D8D8C3C3C3C3C3C3C3C3C3B7B7B7
+B7B7B7B7B7B7B0B0B0B0B0B0B0B0B0B0B0B0C0C0C0C0C0C0C0C0C0CDCDCDCDCDCDCDCDCDC9C9C9
+C9C9C9C9C9C9979797979797979797676767676767676767676767919191919191919191CACACA
+CACACACACACADFDFDFDFDFDFDFDFDFDCDCDCDCDCDCDCDCDCDCDCDCD3D3D3D3D3D3D3D3D3C5C5C5
+C5C5C5C5C5C5BEBEBEBEBEBEBEBEBEAFAFAFAFAFAFAFAFAFA3A3A3A3A3A3A3A3A3A3A3A3ABABAB
+ABABABABABABACACACACACACACACACA7A7A7A7A7A7A7A7A7B0B0B0B0B0B0B0B0B0B4B4B4B4B4B4
+B4B4B4B4B4B4ADADADADADADADADADA8A8A8A8A8A8A8A8A8A7A7A7A7A7A7A7A7A7A1A1A1A1A1A1
+A1A1A1A1A1A1999999999999999999888888888888888888878787878787878787949494949494
+9494949696969696969696969696969999999999999999999B9B9B9B9B9B9B9B9BA3A3A3A3A3A3
+A3A3A3A5A5A5A5A5A5A5A5A5A8A8A8A8A8A8A8A8A8A8A8A8ACACACACACACACACACABABABABABAB
+ABABABAFAFAFAFAFAFAFAFAFABABABABABABABABABABABABB2B2B2B2B2B2B2B2B29A9A9A9A9A9A
+9A9A9A686868686868686868424242424242424242313131313131313131313131313131313131
+3131313B3B3B3B3B3B3B3B3B474747474747474747525252525252525252565656565656565656
+5656565858585858585858585D5D5D5D5D5D5D5D5D6464646464646464646E6E6E6E6E6E6E6E6E
+6E6E6E7777777777777777777E7E7E7E7E7E7E7E7E8282828282828282827F7F7F7F7F7F7F7F7F
+7E7E7E7E7E7E7E7E7E7E7E7E7B7B7B7B7B7B7B7B7B7A7A7A7A7A7A7A7A7A818181818181818181
+8484848484848484848787878787878787878787879292929292929292929C9C9C9C9C9C9C9C9C
+9E9E9E9E9E9E9E9E9E999999999999999999999999939393939393939393919191919191919191
+9393939393939393939393939393939393938080808080808080808080804F4F4F4F4F4F4F4F4F
+4646464646464646466666666666666666667A7A7A7A7A7A7A7A7A868686868686868686868686
+A3A3A3A3A3A3A3A3A3C6C6C6C6C6C6C6C6C6E7E7E7E7E7E7E7E7E7F3F3F3F3F3F3F3F3F3F3F3F3
+E4E4E4E4E4E4E4E4E4EDEDEDEDEDEDEDEDEDF7F7F7F7F7F7F7F7F7F8F8F8F8F8F8F8F8F8F8F8F8
+F8F8F8F8F8F8F8F8F8F7F7F7F7F7F7F7F7F7F7F7F7F7F7F7F7F7F7F7F7F7F7F7F7F7F7F7F9F9F9
+F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F8F8F8F8F8F8F8F8F8F7F7F7F7F7F7F7F7F7F8F8F8
+F8F8F8F8F8F8F7F7F7F7F7F7F7F7F7F7F7F7F4F4F4F4F4F4F4F4F4C8C8C8C8C8C8C8C8C8CBCBCB
+CBCBCBCBCBCBCACACACACACACACACACBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCB
+CBCBCBCBCBCBCCCCCCCCCCCCCCCCCCCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBC5C5C5
+C5C5C5C5C5C5B6B6B6B6B6B6B6B6B6AEAEAEAEAEAEAEAEAEBCBCBCBCBCBCBCBCBCBCBCBCD6D6D6
+D6D6D6D6D6D6D8D8D8D8D8D8D8D8D8C3C3C3C3C3C3C3C3C3B7B7B7B7B7B7B7B7B7B0B0B0B0B0B0
+B0B0B0B0B0B0C0C0C0C0C0C0C0C0C0CDCDCDCDCDCDCDCDCDC9C9C9C9C9C9C9C9C9979797979797
+979797676767676767676767676767919191919191919191CACACACACACACACACADFDFDFDFDFDF
+DFDFDFDCDCDCDCDCDCDCDCDCDCDCDCD3D3D3D3D3D3D3D3D3C5C5C5C5C5C5C5C5C5BEBEBEBEBEBE
+BEBEBEAFAFAFAFAFAFAFAFAFA3A3A3A3A3A3A3A3A3A3A3A3ABABABABABABABABABACACACACACAC
+ACACACA7A7A7A7A7A7A7A7A7B0B0B0B0B0B0B0B0B0B4B4B4B4B4B4B4B4B4B4B4B4ADADADADADAD
+ADADADA8A8A8A8A8A8A8A8A8A7A7A7A7A7A7A7A7A7A1A1A1A1A1A1A1A1A1A1A1A1999999999999
+999999888888888888888888878787878787878787949494949494949494969696969696969696
+9696969999999999999999999B9B9B9B9B9B9B9B9BA3A3A3A3A3A3A3A3A3A5A5A5A5A5A5A5A5A5
+A8A8A8A8A8A8A8A8A8A8A8A8ACACACACACACACACACABABABABABABABABABAFAFAFAFAFAFAFAFAF
+ABABABABABABABABABABABABB2B2B2B2B2B2B2B2B29A9A9A9A9A9A9A9A9A686868686868686868
+4242424242424242423131313131313131313131313131313131313131313B3B3B3B3B3B3B3B3B
+474747474747474747525252525252525252565656565656565656565656585858585858585858
+5D5D5D5D5D5D5D5D5D6464646464646464646E6E6E6E6E6E6E6E6E6E6E6E777777777777777777
+7E7E7E7E7E7E7E7E7E8282828282828282827F7F7F7F7F7F7F7F7F7E7E7E7E7E7E7E7E7E7E7E7E
+7B7B7B7B7B7B7B7B7B7A7A7A7A7A7A7A7A7A818181818181818181848484848484848484878787
+8787878787878787879292929292929292929C9C9C9C9C9C9C9C9C9E9E9E9E9E9E9E9E9E999999
+999999999999999999939393939393939393919191919191919191939393939393939393939393
+9393939393938080808080808080808080804F4F4F4F4F4F4F4F4F464646464646464646666666
+6666666666667A7A7A7A7A7A7A7A7A868686868686868686868686A3A3A3A3A3A3A3A3A3C6C6C6
+C6C6C6C6C6C6E7E7E7E7E7E7E7E7E7F3F3F3F3F3F3F3F3F3F3F3F3E4E4E4E4E4E4E4E4E4EDEDED
+EDEDEDEDEDEDF7F7F7F7F7F7F7F7F7F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F7F7F7
+F7F7F7F7F7F7F7F7F7F7F7F7F7F7F7F7F7F7F7F7F7F7F7F7F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9
+F9F9F9F9F9F9F8F8F8F8F8F8F8F8F8F7F7F7F7F7F7F7F7F7F8F8F8F8F8F8F8F8F8F7F7F7F7F7F7
+F7F7F7F7F7F7F4F4F4F4F4F4F4F4F4C8C8C8C8C8C8C8C8C8CBCBCBCBCBCBCBCBCBCACACACACACA
+CACACACBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCCCCCCCCCCCC
+CCCCCCCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBC5C5C5C5C5C5C5C5C5B6B6B6B6B6B6
+B6B6B6AEAEAEAEAEAEAEAEAEBCBCBCBCBCBCBCBCBCBCBCBCD6D6D6D6D6D6D6D6D6D8D8D8D8D8D8
+D8D8D8C3C3C3C3C3C3C3C3C3B7B7B7B7B7B7B7B7B7B0B0B0B0B0B0B0B0B0B0B0B0C0C0C0C0C0C0
+C0C0C0CDCDCDCDCDCDCDCDCDC9C9C9C9C9C9C9C9C9979797979797979797676767676767676767
+676767919191919191919191CACACACACACACACACADFDFDFDFDFDFDFDFDFDCDCDCDCDCDCDCDCDC
+DCDCDCD3D3D3D3D3D3D3D3D3C5C5C5C5C5C5C5C5C5BEBEBEBEBEBEBEBEBEAFAFAFAFAFAFAFAFAF
+A3A3A3A3A3A3A3A3A3A3A3A3ABABABABABABABABABACACACACACACACACACA7A7A7A7A7A7A7A7A7
+B0B0B0B0B0B0B0B0B0B4B4B4B4B4B4B4B4B4B4B4B4ADADADADADADADADADA8A8A8A8A8A8A8A8A8
+A7A7A7A7A7A7A7A7A7A1A1A1A1A1A1A1A1A1A1A1A1999999999999999999888888888888888888
+878787878787878787949494949494949494969696969696969696969696999999999999999999
+9B9B9B9B9B9B9B9B9BA3A3A3A3A3A3A3A3A3A5A5A5A5A5A5A5A5A5A8A8A8A8A8A8A8A8A8A8A8A8
+ACACACACACACACACACABABABABABABABABABAFAFAFAFAFAFAFAFAFABABABABABABABABABABABAB
+B2B2B2B2B2B2B2B2B29A9A9A9A9A9A9A9A9A686868686868686868424242424242424242313131
+3131313131313131313131313131313131313B3B3B3B3B3B3B3B3B474747474747474747525252
+5252525252525656565656565656565656565858585858585858585D5D5D5D5D5D5D5D5D646464
+6464646464646E6E6E6E6E6E6E6E6E6E6E6E7777777777777777777E7E7E7E7E7E7E7E7E828282
+8282828282827F7F7F7F7F7F7F7F7F7E7E7E7E7E7E7E7E7E7E7E7E7B7B7B7B7B7B7B7B7B7A7A7A
+7A7A7A7A7A7A818181818181818181848484848484848484878787878787878787878787929292
+9292929292929C9C9C9C9C9C9C9C9C9E9E9E9E9E9E9E9E9E999999999999999999999999939393
+939393939393919191919191919191939393939393939393939393939393939393808080808080
+8080808080804F4F4F4F4F4F4F4F4F4646464646464646466666666666666666667A7A7A7A7A7A
+7A7A7A868686868686868686868686A3A3A3A3A3A3A3A3A3C6C6C6C6C6C6C6C6C6E7E7E7E7E7E7
+E7E7E7F3F3F3F3F3F3F3F3F3F3F3F3E4E4E4E4E4E4E4E4E4EDEDEDEDEDEDEDEDEDF7F7F7F7F7F7
+F7F7F7F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F7F7F7F7F7F7F7F7F7F7F7F7F7F7F7
+F7F7F7F7F7F7F7F7F7F7F7F7F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F8F8F8F8F8F8
+F8F8F8F7F7F7F7F7F7F7F7F7F8F8F8F8F8F8F8F8F8F7F7F7F7F7F7F7F7F7F7F7F7F4F4F4F4F4F4
+F4F4F4C8C8C8C8C8C8C8C8C8CACACACACACACACACACACACACACACACACACACACACACACACACACACA
+CACACACBCBCBCBCBCBCBCBCBCDCDCDCDCDCDCDCDCDCCCCCCCCCCCCCCCCCCCBCBCBCBCBCBCBCBCB
+CECECECECECECECECECECECEC2C2C2C2C2C2C2C2C2A6A6A6A6A6A6A6A6A69C9C9C9C9C9C9C9C9C
+BBBBBBBBBBBBBBBBBBBBBBBBDBDBDBDBDBDBDBDBDBE4E4E4E4E4E4E4E4E4DADADADADADADADADA
+A9A9A9A9A9A9A9A9A9848484848484848484848484B0B1B0B0B1B0B0B1B0DEDEDEDEDEDEDEDEDE
+E1E1E1E1E1E1E1E1E1B3B3B3B3B3B3B3B3B3828282828282828282828282A8A8A8A8A8A8A8A8A8
+C7C7C7C7C7C7C7C7C7CDCDCDCDCDCDCDCDCDD1D1D1D1D1D1D1D1D1D1D1D1CCCCCCCCCCCCCCCCCC
+B7B7B7B7B7B7B7B7B7B1B1B1B1B1B1B1B1B1B4B4B4B4B4B4B4B4B4B0B1B0B0B1B0B0B1B0B0B1B0
+B0B0B0B0B0B0B0B0B0A7A7A7A7A7A7A7A7A79E9E9E9E9E9E9E9E9EA7A7A7A7A7A7A7A7A7A8A8A8
+A8A8A8A8A8A8A8A8A8A5A5A5A5A5A5A5A5A5AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA0A0A0
+A0A0A0A0A0A0A0A0A09292929292929292928383838383838383837C7C7C7C7C7C7C7C7C858585
+858585858585919191919191919191919191909090909090909090929292929292929292989898
+989898989898A2A2A2A2A2A2A2A2A2A7A7A7A7A7A7A7A7A7A7A7A7ABABABABABABABABABADADAD
+ADADADADADADAFAFAFAFAFAFAFAFAFB0B1B0B0B1B0B0B1B0B0B1B0ADADADADADADADADAD9B9B9B
+9B9B9B9B9B9B5A5A5A5A5A5A5A5A5A3C3C3C3C3C3C3C3C3C373737373737373737373737363636
+3636363636363636363636363636363C3C3C3C3C3C3C3C3C4C4C4C4C4C4C4C4C4C585858585858
+5858585858586161616161616161616565656565656565656868686868686868686F6F6F6F6F6F
+6F6F6F6F6F6F7878787878787878787E7E7E7E7E7E7E7E7E8080808080808080807B7B7B7B7B7B
+7B7B7B7B7B7B7B7B7B7B7B7B7B7B7B7979797979797979797A7A7A7A7A7A7A7A7A838383838383
+8383838888888888888888889090909090909090909090909898989898989898989C9C9C9C9C9C
+9C9C9C9C9C9C9C9C9C9C9C9C9B9B9B9B9B9B9B9B9B9B9B9B999999999999999999939393939393
+9393939696969696969696969595959595959595958080808080808080808080804E4E4E4E4E4E
+4E4E4E424242424242424242666666666666666666828282828282828282949494949494949494
+949494AAAAAAAAAAAAAAAAAACACACACACACACACACADADADADADADADADADAEDEDEDEDEDEDEDEDED
+EDEDEDDBDBDBDBDBDBDBDBDBD3D3D3D3D3D3D3D3D3EAEAEAEAEAEAEAEAEAF5F5F5F5F5F5F5F5F5
+F6F6F6F6F6F6F6F6F6F6F6F6F5F5F5F5F5F5F5F5F5F5F5F5F5F5F5F5F5F5F6F6F6F6F6F6F6F6F6
+F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F7F7F7F7F7F7F7F7F7F7F7F7F7F7F7F7F7F7
+F7F7F7F7F7F7F7F7F7F8F8F8F8F8F8F8F8F8F8F8F8F3F3F3F3F3F3F3F3F3BBBBBBBBBBBBBBBBBB
+CACACACACACACACACACACACACACACACACACACACACACACACACACACACACACACBCBCBCBCBCBCBCBCB
+CDCDCDCDCDCDCDCDCDCCCCCCCCCCCCCCCCCCCBCBCBCBCBCBCBCBCBCECECECECECECECECECECECE
+C2C2C2C2C2C2C2C2C2A6A6A6A6A6A6A6A6A69C9C9C9C9C9C9C9C9CBBBBBBBBBBBBBBBBBBBBBBBB
+DBDBDBDBDBDBDBDBDBE4E4E4E4E4E4E4E4E4DADADADADADADADADAA9A9A9A9A9A9A9A9A9848484
+848484848484848484B0B1B0B0B1B0B0B1B0DEDEDEDEDEDEDEDEDEE1E1E1E1E1E1E1E1E1B3B3B3
+B3B3B3B3B3B3828282828282828282828282A8A8A8A8A8A8A8A8A8C7C7C7C7C7C7C7C7C7CDCDCD
+CDCDCDCDCDCDD1D1D1D1D1D1D1D1D1D1D1D1CCCCCCCCCCCCCCCCCCB7B7B7B7B7B7B7B7B7B1B1B1
+B1B1B1B1B1B1B4B4B4B4B4B4B4B4B4B0B1B0B0B1B0B0B1B0B0B1B0B0B0B0B0B0B0B0B0B0A7A7A7
+A7A7A7A7A7A79E9E9E9E9E9E9E9E9EA7A7A7A7A7A7A7A7A7A8A8A8A8A8A8A8A8A8A8A8A8A5A5A5
+A5A5A5A5A5A5AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA0A0A0A0A0A0A0A0A0A0A0A0929292
+9292929292928383838383838383837C7C7C7C7C7C7C7C7C858585858585858585919191919191
+919191919191909090909090909090929292929292929292989898989898989898A2A2A2A2A2A2
+A2A2A2A7A7A7A7A7A7A7A7A7A7A7A7ABABABABABABABABABADADADADADADADADADAFAFAFAFAFAF
+AFAFAFB0B1B0B0B1B0B0B1B0B0B1B0ADADADADADADADADAD9B9B9B9B9B9B9B9B9B5A5A5A5A5A5A
+5A5A5A3C3C3C3C3C3C3C3C3C373737373737373737373737363636363636363636363636363636
+3636363C3C3C3C3C3C3C3C3C4C4C4C4C4C4C4C4C4C585858585858585858585858616161616161
+6161616565656565656565656868686868686868686F6F6F6F6F6F6F6F6F6F6F6F787878787878
+7878787E7E7E7E7E7E7E7E7E8080808080808080807B7B7B7B7B7B7B7B7B7B7B7B7B7B7B7B7B7B
+7B7B7B7979797979797979797A7A7A7A7A7A7A7A7A838383838383838383888888888888888888
+9090909090909090909090909898989898989898989C9C9C9C9C9C9C9C9C9C9C9C9C9C9C9C9C9C
+9B9B9B9B9B9B9B9B9B9B9B9B999999999999999999939393939393939393969696969696969696
+9595959595959595958080808080808080808080804E4E4E4E4E4E4E4E4E424242424242424242
+666666666666666666828282828282828282949494949494949494949494AAAAAAAAAAAAAAAAAA
+CACACACACACACACACADADADADADADADADADAEDEDEDEDEDEDEDEDEDEDEDEDDBDBDBDBDBDBDBDBDB
+D3D3D3D3D3D3D3D3D3EAEAEAEAEAEAEAEAEAF5F5F5F5F5F5F5F5F5F6F6F6F6F6F6F6F6F6F6F6F6
+F5F5F5F5F5F5F5F5F5F5F5F5F5F5F5F5F5F5F6F6F6F6F6F6F6F6F6F8F8F8F8F8F8F8F8F8F8F8F8
+F8F8F8F8F8F8F8F8F8F7F7F7F7F7F7F7F7F7F7F7F7F7F7F7F7F7F7F7F7F7F7F7F7F7F7F7F8F8F8
+F8F8F8F8F8F8F8F8F8F3F3F3F3F3F3F3F3F3BBBBBBBBBBBBBBBBBBC9C9C9C9C9C9C9C9C9CACACA
+CACACACACACACACACACACACACACACACACACACBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCFCFCF
+CFCFCFCFCFCFD6D6D5D6D6D5D6D6D5D6D6D6D6D6D6D6D6D6D6D6D6CBCBCBCBCBCBCBCBCBB5B5B5
+B5B5B5B5B5B5AFAFAFAFAFAFAFAFAFC3C3C3C3C3C3C3C3C3C3C3C3D7D7D7D7D7D7D7D7D7E1E1E1
+E1E1E1E1E1E1D3D3D3D3D3D3D3D3D39B9B9B9B9B9B9B9B9B717171717171717171717171A6A6A6
+A6A6A6A6A6A6DEDEDEDEDEDEDEDEDEEAEAEAEAEAEAEAEAEADDDDDDDDDDDDDDDDDDBABABABABABA
+BABABABABABAC5C5C5C5C5C5C5C5C5D6D6D5D6D6D5D6D6D5CBCBCBCBCBCBCBCBCBB7B7B7B7B7B7
+B7B7B7B7B7B7B1B1B1B1B1B1B1B1B1B5B5B5B5B5B5B5B5B5BBBBBBBBBBBBBBBBBBC4C4C4C4C4C4
+C4C4C4C7C7C7C7C7C7C7C7C7C7C7C7BDBDBDBDBDBDBDBDBDAAAAAAAAAAAAAAAAAAA6A6A6A6A6A6
+A6A6A6A1A1A1A1A1A1A1A1A19C9C9C9C9C9C9C9C9C9C9C9C9C9C9C9C9C9C9C9C9CA8A8A8A8A8A8
+A8A8A8A7A7A7A7A7A7A7A7A79797979797979797979797978D8D8D8D8D8D8D8D8D888888888888
+8888888888888888888888887C7C7C7C7C7C7C7C7C8080808080808080808080808C8C8C8C8C8C
+8C8C8C919191919191919191929292929292929292999999999999999999A5A5A5A5A5A5A5A5A5
+A5A5A5A8A8A8A8A8A8A8A8A8ADADADADADADADADADAFAFAFAFAFAFAFAFAFB2B2B2B2B2B2B2B2B2
+B2B2B2A8A8A8A8A8A8A8A8A88484848484848484844B4B4B4B4B4B4B4B4B3C3C3C3C3C3C3C3C3C
+4646464646464646464646465757575757575757575252525252525252524B4B4B4B4B4B4B4B4B
+4F4F4F4F4F4F4F4F4F5959595959595959595959596565656565656565656A6A6A6A6A6A6A6A6A
+6A6A6A6A6A6A6A6A6A6C6C6C6C6C6C6C6C6C6C6C6C737373737373737373797979797979797979
+7B7B7B7B7B7B7B7B7B787878787878787878787878787878787878787878787878787878787878
+7D7D7D7D7D7D7D7D7D8686868686868686868E8E8E8E8E8E8E8E8E979797979797979797979797
+9B9B9B9B9B9B9B9B9B9B9B9B9B9B9B9B9B9B9A9A9A9A9A9A9A9A9A9D9D9D9D9D9D9D9D9D9D9D9D
+9A9A9A9A9A9A9A9A9A9696969696969696969999999999999999999696969696969696967D7D7D
+7D7D7D7D7D7D7D7D7D4B4B4B4B4B4B4B4B4B464646464646464646707070707070707070949494
+949494949494A5A5A5A5A5A5A5A5A5A5A5A5A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A6A6A6
+A6A6A6A6A6A6D0D0D0D0D0D0D0D0D0D0D0D0C6C6C6C6C6C6C6C6C6A8A8A8A8A8A8A8A8A8CBCBCB
+CBCBCBCBCBCBE8E8E8E8E8E8E8E8E8F1F1F1F1F1F1F1F1F1F1F1F1F3F3F3F3F3F3F3F3F3F4F4F4
+F4F4F4F4F4F4F5F5F5F5F5F5F5F5F5F6F6F6F6F6F6F6F6F6F5F5F5F5F5F5F5F5F5F5F5F5F5F5F5
+F5F5F5F5F5F5F6F6F6F6F6F6F6F6F6F6F6F6F6F6F6F6F6F6F6F6F6F6F6F6F6F6F6F6F6F6F3F3F3
+F3F3F3F3F3F3C5C5C5C5C5C5C5C5C5C9C9C9C9C9C9C9C9C9CACACACACACACACACACACACACACACA
+CACACACACACACBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCFCFCFCFCFCFCFCFCFD6D6D5D6D6D5
+D6D6D5D6D6D6D6D6D6D6D6D6D6D6D6CBCBCBCBCBCBCBCBCBB5B5B5B5B5B5B5B5B5AFAFAFAFAFAF
+AFAFAFC3C3C3C3C3C3C3C3C3C3C3C3D7D7D7D7D7D7D7D7D7E1E1E1E1E1E1E1E1E1D3D3D3D3D3D3
+D3D3D39B9B9B9B9B9B9B9B9B717171717171717171717171A6A6A6A6A6A6A6A6A6DEDEDEDEDEDE
+DEDEDEEAEAEAEAEAEAEAEAEADDDDDDDDDDDDDDDDDDBABABABABABABABABABABABAC5C5C5C5C5C5
+C5C5C5D6D6D5D6D6D5D6D6D5CBCBCBCBCBCBCBCBCBB7B7B7B7B7B7B7B7B7B7B7B7B1B1B1B1B1B1
+B1B1B1B5B5B5B5B5B5B5B5B5BBBBBBBBBBBBBBBBBBC4C4C4C4C4C4C4C4C4C7C7C7C7C7C7C7C7C7
+C7C7C7BDBDBDBDBDBDBDBDBDAAAAAAAAAAAAAAAAAAA6A6A6A6A6A6A6A6A6A1A1A1A1A1A1A1A1A1
+9C9C9C9C9C9C9C9C9C9C9C9C9C9C9C9C9C9C9C9C9CA8A8A8A8A8A8A8A8A8A7A7A7A7A7A7A7A7A7
+9797979797979797979797978D8D8D8D8D8D8D8D8D888888888888888888888888888888888888
+7C7C7C7C7C7C7C7C7C8080808080808080808080808C8C8C8C8C8C8C8C8C919191919191919191
+929292929292929292999999999999999999A5A5A5A5A5A5A5A5A5A5A5A5A8A8A8A8A8A8A8A8A8
+ADADADADADADADADADAFAFAFAFAFAFAFAFAFB2B2B2B2B2B2B2B2B2B2B2B2A8A8A8A8A8A8A8A8A8
+8484848484848484844B4B4B4B4B4B4B4B4B3C3C3C3C3C3C3C3C3C464646464646464646464646
+5757575757575757575252525252525252524B4B4B4B4B4B4B4B4B4F4F4F4F4F4F4F4F4F595959
+5959595959595959596565656565656565656A6A6A6A6A6A6A6A6A6A6A6A6A6A6A6A6A6A6C6C6C
+6C6C6C6C6C6C6C6C6C7373737373737373737979797979797979797B7B7B7B7B7B7B7B7B787878
+7878787878787878787878787878787878787878787878787878787D7D7D7D7D7D7D7D7D868686
+8686868686868E8E8E8E8E8E8E8E8E9797979797979797979797979B9B9B9B9B9B9B9B9B9B9B9B
+9B9B9B9B9B9B9A9A9A9A9A9A9A9A9A9D9D9D9D9D9D9D9D9D9D9D9D9A9A9A9A9A9A9A9A9A969696
+9696969696969999999999999999999696969696969696967D7D7D7D7D7D7D7D7D7D7D7D4B4B4B
+4B4B4B4B4B4B464646464646464646707070707070707070949494949494949494A5A5A5A5A5A5
+A5A5A5A5A5A5A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A6A6A6A6A6A6A6A6A6D0D0D0D0D0D0
+D0D0D0D0D0D0C6C6C6C6C6C6C6C6C6A8A8A8A8A8A8A8A8A8CBCBCBCBCBCBCBCBCBE8E8E8E8E8E8
+E8E8E8F1F1F1F1F1F1F1F1F1F1F1F1F3F3F3F3F3F3F3F3F3F4F4F4F4F4F4F4F4F4F5F5F5F5F5F5
+F5F5F5F6F6F6F6F6F6F6F6F6F5F5F5F5F5F5F5F5F5F5F5F5F5F5F5F5F5F5F5F5F5F6F6F6F6F6F6
+F6F6F6F6F6F6F6F6F6F6F6F6F6F6F6F6F6F6F6F6F6F6F6F6F3F3F3F3F3F3F3F3F3C5C5C5C5C5C5
+C5C5C5C9C9C9C9C9C9C9C9C9CACACACACACACACACACACACACACACACACACACACACACBCBCBCBCBCB
+CBCBCBCBCBCBCBCBCBCBCBCBCFCFCFCFCFCFCFCFCFD6D6D5D6D6D5D6D6D5D6D6D6D6D6D6D6D6D6
+D6D6D6CBCBCBCBCBCBCBCBCBB5B5B5B5B5B5B5B5B5AFAFAFAFAFAFAFAFAFC3C3C3C3C3C3C3C3C3
+C3C3C3D7D7D7D7D7D7D7D7D7E1E1E1E1E1E1E1E1E1D3D3D3D3D3D3D3D3D39B9B9B9B9B9B9B9B9B
+717171717171717171717171A6A6A6A6A6A6A6A6A6DEDEDEDEDEDEDEDEDEEAEAEAEAEAEAEAEAEA
+DDDDDDDDDDDDDDDDDDBABABABABABABABABABABABAC5C5C5C5C5C5C5C5C5D6D6D5D6D6D5D6D6D5
+CBCBCBCBCBCBCBCBCBB7B7B7B7B7B7B7B7B7B7B7B7B1B1B1B1B1B1B1B1B1B5B5B5B5B5B5B5B5B5
+BBBBBBBBBBBBBBBBBBC4C4C4C4C4C4C4C4C4C7C7C7C7C7C7C7C7C7C7C7C7BDBDBDBDBDBDBDBDBD
+AAAAAAAAAAAAAAAAAAA6A6A6A6A6A6A6A6A6A1A1A1A1A1A1A1A1A19C9C9C9C9C9C9C9C9C9C9C9C
+9C9C9C9C9C9C9C9C9CA8A8A8A8A8A8A8A8A8A7A7A7A7A7A7A7A7A7979797979797979797979797
+8D8D8D8D8D8D8D8D8D8888888888888888888888888888888888887C7C7C7C7C7C7C7C7C808080
+8080808080808080808C8C8C8C8C8C8C8C8C919191919191919191929292929292929292999999
+999999999999A5A5A5A5A5A5A5A5A5A5A5A5A8A8A8A8A8A8A8A8A8ADADADADADADADADADAFAFAF
+AFAFAFAFAFAFB2B2B2B2B2B2B2B2B2B2B2B2A8A8A8A8A8A8A8A8A88484848484848484844B4B4B
+4B4B4B4B4B4B3C3C3C3C3C3C3C3C3C464646464646464646464646575757575757575757525252
+5252525252524B4B4B4B4B4B4B4B4B4F4F4F4F4F4F4F4F4F595959595959595959595959656565
+6565656565656A6A6A6A6A6A6A6A6A6A6A6A6A6A6A6A6A6A6C6C6C6C6C6C6C6C6C6C6C6C737373
+7373737373737979797979797979797B7B7B7B7B7B7B7B7B787878787878787878787878787878
+7878787878787878787878787878787D7D7D7D7D7D7D7D7D8686868686868686868E8E8E8E8E8E
+8E8E8E9797979797979797979797979B9B9B9B9B9B9B9B9B9B9B9B9B9B9B9B9B9B9A9A9A9A9A9A
+9A9A9A9D9D9D9D9D9D9D9D9D9D9D9D9A9A9A9A9A9A9A9A9A969696969696969696999999999999
+9999999696969696969696967D7D7D7D7D7D7D7D7D7D7D7D4B4B4B4B4B4B4B4B4B464646464646
+464646707070707070707070949494949494949494A5A5A5A5A5A5A5A5A5A5A5A5A2A2A2A2A2A2
+A2A2A2A2A2A2A2A2A2A2A2A2A6A6A6A6A6A6A6A6A6D0D0D0D0D0D0D0D0D0D0D0D0C6C6C6C6C6C6
+C6C6C6A8A8A8A8A8A8A8A8A8CBCBCBCBCBCBCBCBCBE8E8E8E8E8E8E8E8E8F1F1F1F1F1F1F1F1F1
+F1F1F1F3F3F3F3F3F3F3F3F3F4F4F4F4F4F4F4F4F4F5F5F5F5F5F5F5F5F5F6F6F6F6F6F6F6F6F6
+F5F5F5F5F5F5F5F5F5F5F5F5F5F5F5F5F5F5F5F5F5F6F6F6F6F6F6F6F6F6F6F6F6F6F6F6F6F6F6
+F6F6F6F6F6F6F6F6F6F6F6F6F3F3F3F3F3F3F3F3F3C5C5C5C5C5C5C5C5C5CBCBCBCBCBCBCBCBCB
+CBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBBFBFBFBFBFBFBFBFBFB7B7B7B7B7B7B7B7B7
+CACACACACACACACACADEDEDEDEDEDEDEDEDED7D7D7D7D7D7D7D7D7D7D7D7CECECECECECECECECE
+B8B8B8B8B8B8B8B8B89696969696969696969D9D9D9D9D9D9D9D9D9D9D9DCBCBCBCBCBCBCBCBCB
+DBDBDBDBDBDBDBDBDBBEBEBEBEBEBEBEBEBE8A8A8A8A8A8A8A8A8A7D7D7D7D7D7D7D7D7D7D7D7D
+ACACACACACACACACACCFCFCFCFCFCFCFCFCFDFDFDFDFDFDFDFDFDFE9E9E9E9E9E9E9E9E9D3D3D3
+D3D3D3D3D3D3D3D3D3D6D6D6D6D6D6D6D6D6E4E4E4E4E4E4E4E4E4C9C9C9C9C9C9C9C9C98B8B8B
+8B8B8B8B8B8B8B8B8B757575757575757575A7A7A7A7A7A7A7A7A7C5C5C5C5C5C5C5C5C5CBCBCB
+CBCBCBCBCBCBD0D0D0D0D0D0D0D0D0D0D0D0C2C2C2C2C2C2C2C2C2B5B5B5B5B5B5B5B5B5B6B6B6
+B6B6B6B6B6B6A5A5A5A5A5A5A5A5A59494949494949494949494949D9D9D9D9D9D9D9D9DA8A8A8
+A8A8A8A8A8A8A5A5A5A5A5A5A5A5A59999999999999999999999999C9C9C9C9C9C9C9C9C999999
+9999999999998D8D8D8D8D8D8D8D8D7C7C7C7C7C7C7C7C7C7979797979797979797979797E7E7E
+7E7E7E7E7E7E9090909090909090909292929292929292929696969696969696969F9F9F9F9F9F
+9F9F9F9F9F9FA7A7A7A7A7A7A7A7A7A9A9A9A9A9A9A9A9A9ADADADADADADADADADAFAFAFAFAFAF
+AFAFAFAFAFAFA8A8A8A8A8A8A8A8A8767676767676767676494949494949494949464646464646
+4646465858585858585858585858587D7D7D7D7D7D7D7D7D898989898989898989878787878787
+8787877E7E7E7E7E7E7E7E7E6B6B6B6B6B6B6B6B6B6B6B6B6969696969696969696C6C6C6C6C6C
+6C6C6C6969696969696969696767676767676767676767676868686868686868686D6D6D6D6D6D
+6D6D6D717171717171717171727272727272727272757575757575757575757575797979797979
+7979798181818181818181818D8D8D8D8D8D8D8D8D9696969696969696969D9D9D9D9D9D9D9D9D
+9D9D9D9E9E9E9E9E9E9E9E9E9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9E9E9E9E9E9E9E9E9E
+9E9E9E9C9C9C9C9C9C9C9C9C9A9A9A9A9A9A9A9A9A9B9B9B9B9B9B9B9B9B979797979797979797
+7D7D7D7D7D7D7D7D7D7D7D7D4C4C4C4C4C4C4C4C4C5050505050505050507F7F7F7F7F7F7F7F7F
+9E9E9E9E9E9E9E9E9EAAAAAAAAAAAAAAAAAAAAAAAA8989898989898989895E5E5E5E5E5E5E5E5E
+5F605F5F605F5F605F8A8A8A8A8A8A8A8A8A8A8A8A9C9C9C9C9C9C9C9C9C8A8A8A8A8A8A8A8A8A
+B5B5B5B5B5B5B5B5B5D5D5D5D5D5D5D5D5D5E4E4E4E4E4E4E4E4E4E4E4E4EEEEEEEEEEEEEEEEEE
+F3F3F3F3F3F3F3F3F3F5F5F5F5F5F5F5F5F5F6F6F6F6F6F6F6F6F6F5F5F5F5F5F5F5F5F5F5F5F5
+F6F6F6F6F6F6F6F6F6F5F5F5F5F5F5F5F5F5F5F5F5F5F5F5F5F5F5F6F6F6F6F6F6F6F6F6F6F6F6
+F5F5F5F5F5F5F5F5F5D6D6D5D6D6D5D6D6D5CBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCB
+CBCBCBCBCBCBCBCBCBBFBFBFBFBFBFBFBFBFB7B7B7B7B7B7B7B7B7CACACACACACACACACADEDEDE
+DEDEDEDEDEDED7D7D7D7D7D7D7D7D7D7D7D7CECECECECECECECECEB8B8B8B8B8B8B8B8B8969696
+9696969696969D9D9D9D9D9D9D9D9D9D9D9DCBCBCBCBCBCBCBCBCBDBDBDBDBDBDBDBDBDBBEBEBE
+BEBEBEBEBEBE8A8A8A8A8A8A8A8A8A7D7D7D7D7D7D7D7D7D7D7D7DACACACACACACACACACCFCFCF
+CFCFCFCFCFCFDFDFDFDFDFDFDFDFDFE9E9E9E9E9E9E9E9E9D3D3D3D3D3D3D3D3D3D3D3D3D6D6D6
+D6D6D6D6D6D6E4E4E4E4E4E4E4E4E4C9C9C9C9C9C9C9C9C98B8B8B8B8B8B8B8B8B8B8B8B757575
+757575757575A7A7A7A7A7A7A7A7A7C5C5C5C5C5C5C5C5C5CBCBCBCBCBCBCBCBCBD0D0D0D0D0D0
+D0D0D0D0D0D0C2C2C2C2C2C2C2C2C2B5B5B5B5B5B5B5B5B5B6B6B6B6B6B6B6B6B6A5A5A5A5A5A5
+A5A5A59494949494949494949494949D9D9D9D9D9D9D9D9DA8A8A8A8A8A8A8A8A8A5A5A5A5A5A5
+A5A5A59999999999999999999999999C9C9C9C9C9C9C9C9C9999999999999999998D8D8D8D8D8D
+8D8D8D7C7C7C7C7C7C7C7C7C7979797979797979797979797E7E7E7E7E7E7E7E7E909090909090
+9090909292929292929292929696969696969696969F9F9F9F9F9F9F9F9F9F9F9FA7A7A7A7A7A7
+A7A7A7A9A9A9A9A9A9A9A9A9ADADADADADADADADADAFAFAFAFAFAFAFAFAFAFAFAFA8A8A8A8A8A8
+A8A8A8767676767676767676494949494949494949464646464646464646585858585858585858
+5858587D7D7D7D7D7D7D7D7D8989898989898989898787878787878787877E7E7E7E7E7E7E7E7E
+6B6B6B6B6B6B6B6B6B6B6B6B6969696969696969696C6C6C6C6C6C6C6C6C696969696969696969
+6767676767676767676767676868686868686868686D6D6D6D6D6D6D6D6D717171717171717171
+727272727272727272757575757575757575757575797979797979797979818181818181818181
+8D8D8D8D8D8D8D8D8D9696969696969696969D9D9D9D9D9D9D9D9D9D9D9D9E9E9E9E9E9E9E9E9E
+9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9E9E9E9E9E9E9E9E9E9E9E9E9C9C9C9C9C9C9C9C9C
+9A9A9A9A9A9A9A9A9A9B9B9B9B9B9B9B9B9B9797979797979797977D7D7D7D7D7D7D7D7D7D7D7D
+4C4C4C4C4C4C4C4C4C5050505050505050507F7F7F7F7F7F7F7F7F9E9E9E9E9E9E9E9E9EAAAAAA
+AAAAAAAAAAAAAAAAAA8989898989898989895E5E5E5E5E5E5E5E5E5F605F5F605F5F605F8A8A8A
+8A8A8A8A8A8A8A8A8A9C9C9C9C9C9C9C9C9C8A8A8A8A8A8A8A8A8AB5B5B5B5B5B5B5B5B5D5D5D5
+D5D5D5D5D5D5E4E4E4E4E4E4E4E4E4E4E4E4EEEEEEEEEEEEEEEEEEF3F3F3F3F3F3F3F3F3F5F5F5
+F5F5F5F5F5F5F6F6F6F6F6F6F6F6F6F5F5F5F5F5F5F5F5F5F5F5F5F6F6F6F6F6F6F6F6F6F5F5F5
+F5F5F5F5F5F5F5F5F5F5F5F5F5F5F5F6F6F6F6F6F6F6F6F6F6F6F6F5F5F5F5F5F5F5F5F5D6D6D5
+D6D6D5D6D6D5CECECECECECECECECED2D2D2D2D2D2D2D2D2D0D0D0D0D0D0D0D0D0D0D0D0B9B9B9
+B9B9B9B9B9B9AFAFAFAFAFAFAFAFAFC0C0C0C0C0C0C0C0C0D2D2D2D2D2D2D2D2D2D9D9D9D9D9D9
+D9D9D9D9D9D9D7D7D7D7D7D7D7D7D7B8B8B8B8B8B8B8B8B88484848484848484848E8E8E8E8E8E
+8E8E8E8E8E8ECECECECECECECECECEDFDFDFDFDFDFDFDFDFC8C8C8C8C8C8C8C8C8A8A8A8A8A8A8
+A8A8A89F9F9F9F9F9F9F9F9F9F9F9FB9B9B9B9B9B9B9B9B9C0C0C0C0C0C0C0C0C0C7C7C7C7C7C7
+C7C7C7CACACACACACACACACACACACACACACACACACACACACADDDDDDDDDDDDDDDDDDE3E3E3E3E3E3
+E3E3E3BABABABABABABABABA787878787878787878787878676767676767676767A2A2A2A2A2A2
+A2A2A2CCCCCCCCCCCCCCCCCCD0D0D0D0D0D0D0D0D0CDCDCDCDCDCDCDCDCDCDCDCDC5C5C5C5C5C5
+C5C5C5BABABABABABABABABAB2B2B2B2B2B2B2B2B29F9F9F9F9F9F9F9F9F959595959595959595
+9595959E9E9E9E9E9E9E9E9EA0A0A0A0A0A0A0A0A0A2A2A2A2A2A2A2A2A2ADADADADADADADADAD
+ADADADB2B2B2B2B2B2B2B2B2A2A2A2A2A2A2A2A2A28B8B8B8B8B8B8B8B8B858585858585858585
+898989898989898989898989818181818181818181818181818181818181878787878787878787
+9090909090909090909D9D9D9D9D9D9D9D9D9D9D9DA1A1A1A1A1A1A1A1A1A8A8A8A8A8A8A8A8A8
+A8A8A8A8A8A8A8A8A8AAAAAAAAAAAAAAAAAAAAAAAAA4A4A4A4A4A4A4A4A4767676767676767676
+4C4C4C4C4C4C4C4C4C505050505050505050717171717171717171717171A5A5A5A5A5A5A5A5A5
+BFBFBFBFBFBFBFBFBFC6C6C6C6C6C6C6C6C6BABABABABABABABABA9F9F9F9F9F9F9F9F9F9F9F9F
+848484848484848484707070707070707070686868686868686868656565656565656565656565
+6262626262626262626565656565656565656B6B6B6B6B6B6B6B6B6F6F6F6F6F6F6F6F6F767676
+7676767676767676768080808080808080808C8C8C8C8C8C8C8C8C9696969696969696969D9D9D
+9D9D9D9D9D9DA0A0A0A0A0A0A0A0A0A0A0A0A2A2A2A2A2A2A2A2A2A3A3A3A3A3A3A3A3A3A2A2A2
+A2A2A2A2A2A2A0A0A0A0A0A0A0A0A0A0A0A09D9D9D9D9D9D9D9D9D9C9C9C9C9C9C9C9C9C9D9D9D
+9D9D9D9D9D9D959595959595959595767676767676767676767676505050505050505050646464
+646464646464888888888888888888A5A5A5A5A5A5A5A5A5ABABABABABABABABABABABAB777777
+7777777777774545454545454545454848484848484848486A6A6A6A6A6A6A6A6A6A6A6A969696
+969696969696A1A1A1A1A1A1A1A1A1C0C0C0C0C0C0C0C0C0CBCBCBCBCBCBCBCBCBCFCFCFCFCFCF
+CFCFCFCFCFCFDCDCDCDCDCDCDCDCDCEAEAEAEAEAEAEAEAEAEFEFEFEFEFEFEFEFEFF5F5F5F5F5F5
+F5F5F5F6F6F6F6F6F6F6F6F6F6F6F6F7F7F7F7F7F7F7F7F7F5F5F5F5F5F5F5F5F5F5F5F5F5F5F5
+F5F5F5F6F6F6F6F6F6F6F6F6F6F6F6F3F3F3F3F3F3F3F3F3C8C8C8C8C8C8C8C8C8CECECECECECE
+CECECED2D2D2D2D2D2D2D2D2D0D0D0D0D0D0D0D0D0D0D0D0B9B9B9B9B9B9B9B9B9AFAFAFAFAFAF
+AFAFAFC0C0C0C0C0C0C0C0C0D2D2D2D2D2D2D2D2D2D9D9D9D9D9D9D9D9D9D9D9D9D7D7D7D7D7D7
+D7D7D7B8B8B8B8B8B8B8B8B88484848484848484848E8E8E8E8E8E8E8E8E8E8E8ECECECECECECE
+CECECEDFDFDFDFDFDFDFDFDFC8C8C8C8C8C8C8C8C8A8A8A8A8A8A8A8A8A89F9F9F9F9F9F9F9F9F
+9F9F9FB9B9B9B9B9B9B9B9B9C0C0C0C0C0C0C0C0C0C7C7C7C7C7C7C7C7C7CACACACACACACACACA
+CACACACACACACACACACACACADDDDDDDDDDDDDDDDDDE3E3E3E3E3E3E3E3E3BABABABABABABABABA
+787878787878787878787878676767676767676767A2A2A2A2A2A2A2A2A2CCCCCCCCCCCCCCCCCC
+D0D0D0D0D0D0D0D0D0CDCDCDCDCDCDCDCDCDCDCDCDC5C5C5C5C5C5C5C5C5BABABABABABABABABA
+B2B2B2B2B2B2B2B2B29F9F9F9F9F9F9F9F9F9595959595959595959595959E9E9E9E9E9E9E9E9E
+A0A0A0A0A0A0A0A0A0A2A2A2A2A2A2A2A2A2ADADADADADADADADADADADADB2B2B2B2B2B2B2B2B2
+A2A2A2A2A2A2A2A2A28B8B8B8B8B8B8B8B8B858585858585858585898989898989898989898989
+8181818181818181818181818181818181818787878787878787879090909090909090909D9D9D
+9D9D9D9D9D9D9D9D9DA1A1A1A1A1A1A1A1A1A8A8A8A8A8A8A8A8A8A8A8A8A8A8A8A8A8A8AAAAAA
+AAAAAAAAAAAAAAAAAAA4A4A4A4A4A4A4A4A47676767676767676764C4C4C4C4C4C4C4C4C505050
+505050505050717171717171717171717171A5A5A5A5A5A5A5A5A5BFBFBFBFBFBFBFBFBFC6C6C6
+C6C6C6C6C6C6BABABABABABABABABA9F9F9F9F9F9F9F9F9F9F9F9F848484848484848484707070
+707070707070686868686868686868656565656565656565656565626262626262626262656565
+6565656565656B6B6B6B6B6B6B6B6B6F6F6F6F6F6F6F6F6F767676767676767676767676808080
+8080808080808C8C8C8C8C8C8C8C8C9696969696969696969D9D9D9D9D9D9D9D9DA0A0A0A0A0A0
+A0A0A0A0A0A0A2A2A2A2A2A2A2A2A2A3A3A3A3A3A3A3A3A3A2A2A2A2A2A2A2A2A2A0A0A0A0A0A0
+A0A0A0A0A0A09D9D9D9D9D9D9D9D9D9C9C9C9C9C9C9C9C9C9D9D9D9D9D9D9D9D9D959595959595
+959595767676767676767676767676505050505050505050646464646464646464888888888888
+888888A5A5A5A5A5A5A5A5A5ABABABABABABABABABABABAB777777777777777777454545454545
+4545454848484848484848486A6A6A6A6A6A6A6A6A6A6A6A969696969696969696A1A1A1A1A1A1
+A1A1A1C0C0C0C0C0C0C0C0C0CBCBCBCBCBCBCBCBCBCFCFCFCFCFCFCFCFCFCFCFCFDCDCDCDCDCDC
+DCDCDCEAEAEAEAEAEAEAEAEAEFEFEFEFEFEFEFEFEFF5F5F5F5F5F5F5F5F5F6F6F6F6F6F6F6F6F6
+F6F6F6F7F7F7F7F7F7F7F7F7F5F5F5F5F5F5F5F5F5F5F5F5F5F5F5F5F5F5F6F6F6F6F6F6F6F6F6
+F6F6F6F3F3F3F3F3F3F3F3F3C8C8C8C8C8C8C8C8C8CECECECECECECECECED2D2D2D2D2D2D2D2D2
+D0D0D0D0D0D0D0D0D0D0D0D0B9B9B9B9B9B9B9B9B9AFAFAFAFAFAFAFAFAFC0C0C0C0C0C0C0C0C0
+D2D2D2D2D2D2D2D2D2D9D9D9D9D9D9D9D9D9D9D9D9D7D7D7D7D7D7D7D7D7B8B8B8B8B8B8B8B8B8
+8484848484848484848E8E8E8E8E8E8E8E8E8E8E8ECECECECECECECECECEDFDFDFDFDFDFDFDFDF
+C8C8C8C8C8C8C8C8C8A8A8A8A8A8A8A8A8A89F9F9F9F9F9F9F9F9F9F9F9FB9B9B9B9B9B9B9B9B9
+C0C0C0C0C0C0C0C0C0C7C7C7C7C7C7C7C7C7CACACACACACACACACACACACACACACACACACACACACA
+DDDDDDDDDDDDDDDDDDE3E3E3E3E3E3E3E3E3BABABABABABABABABA787878787878787878787878
+676767676767676767A2A2A2A2A2A2A2A2A2CCCCCCCCCCCCCCCCCCD0D0D0D0D0D0D0D0D0CDCDCD
+CDCDCDCDCDCDCDCDCDC5C5C5C5C5C5C5C5C5BABABABABABABABABAB2B2B2B2B2B2B2B2B29F9F9F
+9F9F9F9F9F9F9595959595959595959595959E9E9E9E9E9E9E9E9EA0A0A0A0A0A0A0A0A0A2A2A2
+A2A2A2A2A2A2ADADADADADADADADADADADADB2B2B2B2B2B2B2B2B2A2A2A2A2A2A2A2A2A28B8B8B
+8B8B8B8B8B8B858585858585858585898989898989898989898989818181818181818181818181
+8181818181818787878787878787879090909090909090909D9D9D9D9D9D9D9D9D9D9D9DA1A1A1
+A1A1A1A1A1A1A8A8A8A8A8A8A8A8A8A8A8A8A8A8A8A8A8A8AAAAAAAAAAAAAAAAAAAAAAAAA4A4A4
+A4A4A4A4A4A47676767676767676764C4C4C4C4C4C4C4C4C505050505050505050717171717171
+717171717171A5A5A5A5A5A5A5A5A5BFBFBFBFBFBFBFBFBFC6C6C6C6C6C6C6C6C6BABABABABABA
+BABABA9F9F9F9F9F9F9F9F9F9F9F9F848484848484848484707070707070707070686868686868
+6868686565656565656565656565656262626262626262626565656565656565656B6B6B6B6B6B
+6B6B6B6F6F6F6F6F6F6F6F6F7676767676767676767676768080808080808080808C8C8C8C8C8C
+8C8C8C9696969696969696969D9D9D9D9D9D9D9D9DA0A0A0A0A0A0A0A0A0A0A0A0A2A2A2A2A2A2
+A2A2A2A3A3A3A3A3A3A3A3A3A2A2A2A2A2A2A2A2A2A0A0A0A0A0A0A0A0A0A0A0A09D9D9D9D9D9D
+9D9D9D9C9C9C9C9C9C9C9C9C9D9D9D9D9D9D9D9D9D959595959595959595767676767676767676
+767676505050505050505050646464646464646464888888888888888888A5A5A5A5A5A5A5A5A5
+ABABABABABABABABABABABAB777777777777777777454545454545454545484848484848484848
+6A6A6A6A6A6A6A6A6A6A6A6A969696969696969696A1A1A1A1A1A1A1A1A1C0C0C0C0C0C0C0C0C0
+CBCBCBCBCBCBCBCBCBCFCFCFCFCFCFCFCFCFCFCFCFDCDCDCDCDCDCDCDCDCEAEAEAEAEAEAEAEAEA
+EFEFEFEFEFEFEFEFEFF5F5F5F5F5F5F5F5F5F6F6F6F6F6F6F6F6F6F6F6F6F7F7F7F7F7F7F7F7F7
+F5F5F5F5F5F5F5F5F5F5F5F5F5F5F5F5F5F5F6F6F6F6F6F6F6F6F6F6F6F6F3F3F3F3F3F3F3F3F3
+C8C8C8C8C8C8C8C8C8D3D3D3D3D3D3D3D3D3DBDBDBDBDBDBDBDBDBD8D8D8D8D8D8D8D8D8D8D8D8
+C4C4C4C4C4C4C4C4C4A8A8A8A8A8A8A8A8A8929292929292929292B1B1B1B1B1B1B1B1B1DDDDDD
+DDDDDDDDDDDDDDDDDDE7E7E7E7E7E7E7E7E7CECECECECECECECECEA1A1A1A1A1A1A1A1A1AFAFAF
+AFAFAFAFAFAFAFAFAFD4D4D4D4D4D4D4D4D4DEDEDEDEDEDEDEDEDED2D2D2D2D2D2D2D2D2CDCDCD
+CDCDCDCDCDCDC9C9C9C9C9C9C9C9C9C9C9C9C8C8C8C8C8C8C8C8C8BBBBBBBBBBBBBBBBBBA7A7A7
+A7A7A7A7A7A78B8B8B8B8B8B8B8B8BA8A8A8A8A8A8A8A8A8A8A8A8DADADADADADADADADAE8E8E8
+E8E8E8E8E8E8B2B2B2B2B2B2B2B2B2707070707070707070707070868686868686868686BCBCBC
+BCBCBCBCBCBCCFCFCFCFCFCFCFCFCFD7D7D7D7D7D7D7D7D7D1D1D1D1D1D1D1D1D1D1D1D1C7C7C7
+C7C7C7C7C7C7B8B8B8B8B8B8B8B8B8A4A4A4A4A4A4A4A4A49A9A9A9A9A9A9A9A9A999999999999
+999999999999979797979797979797949494949494949494A0A0A0A0A0A0A0A0A0B0B0B0B0B0B0
+B0B0B0B0B0B0B1B1B1B1B1B1B1B1B19D9D9D9D9D9D9D9D9D9090909090909090908E8E8E8E8E8E
+8E8E8E8686868686868686868686867E7E7E7E7E7E7E7E7E767676767676767676717171717171
+7171718484848484848484849393939393939393939393939B9B9B9B9B9B9B9B9B9E9E9E9E9E9E
+9E9E9EA2A2A2A2A2A2A2A2A2A4A4A4A4A4A4A4A4A4A4A4A49D9D9D9D9D9D9D9D9D787878787878
+7878785454545454545454545E5E5E5E5E5E5E5E5E858585858585858585858585B4B4B4B4B4B4
+B4B4B4CCCCCCCCCCCCCCCCCCE0E0E0E0E0E0E0E0E0E4E4E4E4E4E4E4E4E4D3D3D3D3D3D3D3D3D3
+D3D3D3B8B8B8B8B8B8B8B8B8828282828282828282696969696969696969656565656565656565
+6565656464646464646464646767676767676767676E6E6E6E6E6E6E6E6E777777777777777777
+8080808080808080808080808A8A8A8A8A8A8A8A8A9292929292929292929A9A9A9A9A9A9A9A9A
+A1A1A1A1A1A1A1A1A1A6A6A6A6A6A6A6A6A6A6A6A6A8A8A8A8A8A8A8A8A8A8A8A8A8A8A8A8A8A8
+A6A6A6A6A6A6A6A6A6A3A3A3A3A3A3A3A3A3A3A3A39E9E9E9E9E9E9E9E9E9D9D9D9D9D9D9D9D9D
+9E9E9E9E9E9E9E9E9E9292929292929292926D6D6D6D6D6D6D6D6D6D6D6D5C5C5C5C5C5C5C5C5C
+7676767676767676768F8F8F8F8F8F8F8F8FB3B3B3B3B3B3B3B3B3ACACACACACACACACACACACAC
+6F6F6F6F6F6F6F6F6F4747474747474747474F4F4F4F4F4F4F4F4F707070707070707070707070
+9C9C9C9C9C9C9C9C9CB1B1B1B1B1B1B1B1B1CACACACACACACACACAC3C3C3C3C3C3C3C3C3AEAEAE
+AEAEAEAEAEAEAEAEAEBCBCBCBCBCBCBCBCBCD4D4D4D4D4D4D4D4D4DBDBDBDBDBDBDBDBDBEDEDED
+EDEDEDEDEDEDF5F5F5F5F5F5F5F5F5F5F5F5F7F7F7F7F7F7F7F7F7F6F6F6F6F6F6F6F6F6F5F5F5
+F5F5F5F5F5F5F6F6F6F6F6F6F6F6F6F6F6F6F5F5F5F5F5F5F5F5F5D2D2D2D2D2D2D2D2D2D3D3D3
+D3D3D3D3D3D3DBDBDBDBDBDBDBDBDBD8D8D8D8D8D8D8D8D8D8D8D8C4C4C4C4C4C4C4C4C4A8A8A8
+A8A8A8A8A8A8929292929292929292B1B1B1B1B1B1B1B1B1DDDDDDDDDDDDDDDDDDDDDDDDE7E7E7
+E7E7E7E7E7E7CECECECECECECECECEA1A1A1A1A1A1A1A1A1AFAFAFAFAFAFAFAFAFAFAFAFD4D4D4
+D4D4D4D4D4D4DEDEDEDEDEDEDEDEDED2D2D2D2D2D2D2D2D2CDCDCDCDCDCDCDCDCDC9C9C9C9C9C9
+C9C9C9C9C9C9C8C8C8C8C8C8C8C8C8BBBBBBBBBBBBBBBBBBA7A7A7A7A7A7A7A7A78B8B8B8B8B8B
+8B8B8BA8A8A8A8A8A8A8A8A8A8A8A8DADADADADADADADADAE8E8E8E8E8E8E8E8E8B2B2B2B2B2B2
+B2B2B2707070707070707070707070868686868686868686BCBCBCBCBCBCBCBCBCCFCFCFCFCFCF
+CFCFCFD7D7D7D7D7D7D7D7D7D1D1D1D1D1D1D1D1D1D1D1D1C7C7C7C7C7C7C7C7C7B8B8B8B8B8B8
+B8B8B8A4A4A4A4A4A4A4A4A49A9A9A9A9A9A9A9A9A999999999999999999999999979797979797
+979797949494949494949494A0A0A0A0A0A0A0A0A0B0B0B0B0B0B0B0B0B0B0B0B0B1B1B1B1B1B1
+B1B1B19D9D9D9D9D9D9D9D9D9090909090909090908E8E8E8E8E8E8E8E8E868686868686868686
+8686867E7E7E7E7E7E7E7E7E767676767676767676717171717171717171848484848484848484
+9393939393939393939393939B9B9B9B9B9B9B9B9B9E9E9E9E9E9E9E9E9EA2A2A2A2A2A2A2A2A2
+A4A4A4A4A4A4A4A4A4A4A4A49D9D9D9D9D9D9D9D9D787878787878787878545454545454545454
+5E5E5E5E5E5E5E5E5E858585858585858585858585B4B4B4B4B4B4B4B4B4CCCCCCCCCCCCCCCCCC
+E0E0E0E0E0E0E0E0E0E4E4E4E4E4E4E4E4E4D3D3D3D3D3D3D3D3D3D3D3D3B8B8B8B8B8B8B8B8B8
+828282828282828282696969696969696969656565656565656565656565646464646464646464
+6767676767676767676E6E6E6E6E6E6E6E6E777777777777777777808080808080808080808080
+8A8A8A8A8A8A8A8A8A9292929292929292929A9A9A9A9A9A9A9A9AA1A1A1A1A1A1A1A1A1A6A6A6
+A6A6A6A6A6A6A6A6A6A8A8A8A8A8A8A8A8A8A8A8A8A8A8A8A8A8A8A6A6A6A6A6A6A6A6A6A3A3A3
+A3A3A3A3A3A3A3A3A39E9E9E9E9E9E9E9E9E9D9D9D9D9D9D9D9D9D9E9E9E9E9E9E9E9E9E929292
+9292929292926D6D6D6D6D6D6D6D6D6D6D6D5C5C5C5C5C5C5C5C5C7676767676767676768F8F8F
+8F8F8F8F8F8FB3B3B3B3B3B3B3B3B3ACACACACACACACACACACACAC6F6F6F6F6F6F6F6F6F474747
+4747474747474F4F4F4F4F4F4F4F4F7070707070707070707070709C9C9C9C9C9C9C9C9CB1B1B1
+B1B1B1B1B1B1CACACACACACACACACAC3C3C3C3C3C3C3C3C3AEAEAEAEAEAEAEAEAEAEAEAEBCBCBC
+BCBCBCBCBCBCD4D4D4D4D4D4D4D4D4DBDBDBDBDBDBDBDBDBEDEDEDEDEDEDEDEDEDF5F5F5F5F5F5
+F5F5F5F5F5F5F7F7F7F7F7F7F7F7F7F6F6F6F6F6F6F6F6F6F5F5F5F5F5F5F5F5F5F6F6F6F6F6F6
+F6F6F6F6F6F6F5F5F5F5F5F5F5F5F5D2D2D2D2D2D2D2D2D2D7D7D7D7D7D7D7D7D7DFDFDFDFDFDF
+DFDFDFD7D7D7D7D7D7D7D7D7D7D7D7C2C2C2C2C2C2C2C2C2949494949494949494848484848484
+848484B3B3B3B3B3B3B3B3B3DBDBDBDBDBDBDBDBDBDBDBDBE1E1E1E1E1E1E1E1E1E1E1E1E1E1E1
+E1E1E1D4D4D4D4D4D4D4D4D4D3D3D3D3D3D3D3D3D3D3D3D3D9D9D9D9D9D9D9D9D9D0D0D0D0D0D0
+D0D0D0B8B8B8B8B8B8B8B8B8B9B9B9B9B9B9B9B9B9D0D0D0D0D0D0D0D0D0D0D0D0D2D2D2D2D2D2
+D2D2D2BFBFBFBFBFBFBFBFBF9393939393939393936969696969696969698F8F8F8F8F8F8F8F8F
+8F8F8FC9C9C9C9C9C9C9C9C9E3E3E3E3E3E3E3E3E3D1D1D1D1D1D1D1D1D19B9B9B9B9B9B9B9B9B
+9B9B9BAEAEAEAEAEAEAEAEAED6D6D6D6D6D6D6D6D6DADADADADADADADADADEDEDEDEDEDEDEDEDE
+DBDBDBDBDBDBDBDBDBDBDBDBCBCBCBCBCBCBCBCBCBAEAEAEAEAEAEAEAEAE9F9F9F9F9F9F9F9F9F
+A9A9A9A9A9A9A9A9A9A5A5A5A5A5A5A5A5A5A5A5A5999999999999999999919191919191919191
+9F9F9F9F9F9F9F9F9FAAAAAAAAAAAAAAAAAAAAAAAAA8A8A8A8A8A8A8A8A89B9B9B9B9B9B9B9B9B
+9D9D9D9D9D9D9D9D9D979797979797979797858585858585858585858585777777777777777777
+7676767676767676767676767676767676768181818181818181818B8B8B8B8B8B8B8B8B8B8B8B
+8E8E8E8E8E8E8E8E8E9595959595959595959C9C9C9C9C9C9C9C9CA2A2A2A2A2A2A2A2A2A2A2A2
+A0A0A0A0A0A0A0A0A0868686868686868686595959595959595959656565656565656565949494
+949494949494949494BABABABABABABABABAC2C2C2C2C2C2C2C2C2C4C4C4C4C4C4C4C4C4D6D6D6
+D6D6D6D6D6D6D9D9D9D9D9D9D9D9D9D9D9D9CECECECECECECECECEA5A5A5A5A5A5A5A5A57B7B7B
+7B7B7B7B7B7B6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D7373737373737373737A7A7A
+7A7A7A7A7A7A8383838383838383838989898989898989898989898F8F8F8F8F8F8F8F8F979797
+9797979797979E9E9E9E9E9E9E9E9EA6A6A6A6A6A6A6A6A6ABABABABABABABABABABABABADADAD
+ADADADADADADAAAAAAAAAAAAAAAAAAA7A7A7A7A7A7A7A7A7A2A2A2A2A2A2A2A2A2A2A2A29F9F9F
+9F9F9F9F9F9F9E9E9E9E9E9E9E9E9E9E9E9E9E9E9E9E9E9E898989898989898989696969696969
+696969696969787878787878787878939393939393939393AAAAAAAAAAAAAAAAAACCCCCCCCCCCC
+CCCCCCB2B2B2B2B2B2B2B2B2B2B2B27272727272727272725959595959595959596F6F6F6F6F6F
+6F6F6F949494949494949494949494A5A5A5A5A5A5A5A5A5AFAFAFAFAFAFAFAFAFC1C1C1C1C1C1
+C1C1C1B3B3B3B3B3B3B3B3B39E9E9E9E9E9E9E9E9E9E9E9EAFAFAFAFAFAFAFAFAFCCCCCCCCCCCC
+CCCCCCD0D0D0D0D0D0D0D0D0DDDDDDDDDDDDDDDDDDF0F0F0F0F0F0F0F0F0F0F0F0F5F5F5F5F5F5
+F5F5F5F5F5F5F5F5F5F5F5F5F6F6F6F6F6F6F6F6F6F6F6F6F6F6F6F6F6F6F6F6F6F5F5F5F5F5F5
+F5F5F5DFE0DFDFE0DFDFE0DFD7D7D7D7D7D7D7D7D7DFDFDFDFDFDFDFDFDFD7D7D7D7D7D7D7D7D7
+D7D7D7C2C2C2C2C2C2C2C2C2949494949494949494848484848484848484B3B3B3B3B3B3B3B3B3
+DBDBDBDBDBDBDBDBDBDBDBDBE1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1D4D4D4D4D4D4D4D4D4
+D3D3D3D3D3D3D3D3D3D3D3D3D9D9D9D9D9D9D9D9D9D0D0D0D0D0D0D0D0D0B8B8B8B8B8B8B8B8B8
+B9B9B9B9B9B9B9B9B9D0D0D0D0D0D0D0D0D0D0D0D0D2D2D2D2D2D2D2D2D2BFBFBFBFBFBFBFBFBF
+9393939393939393936969696969696969698F8F8F8F8F8F8F8F8F8F8F8FC9C9C9C9C9C9C9C9C9
+E3E3E3E3E3E3E3E3E3D1D1D1D1D1D1D1D1D19B9B9B9B9B9B9B9B9B9B9B9BAEAEAEAEAEAEAEAEAE
+D6D6D6D6D6D6D6D6D6DADADADADADADADADADEDEDEDEDEDEDEDEDEDBDBDBDBDBDBDBDBDBDBDBDB
+CBCBCBCBCBCBCBCBCBAEAEAEAEAEAEAEAEAE9F9F9F9F9F9F9F9F9FA9A9A9A9A9A9A9A9A9A5A5A5
+A5A5A5A5A5A5A5A5A59999999999999999999191919191919191919F9F9F9F9F9F9F9F9FAAAAAA
+AAAAAAAAAAAAAAAAAAA8A8A8A8A8A8A8A8A89B9B9B9B9B9B9B9B9B9D9D9D9D9D9D9D9D9D979797
+979797979797858585858585858585858585777777777777777777767676767676767676767676
+7676767676768181818181818181818B8B8B8B8B8B8B8B8B8B8B8B8E8E8E8E8E8E8E8E8E959595
+9595959595959C9C9C9C9C9C9C9C9CA2A2A2A2A2A2A2A2A2A2A2A2A0A0A0A0A0A0A0A0A0868686
+868686868686595959595959595959656565656565656565949494949494949494949494BABABA
+BABABABABABAC2C2C2C2C2C2C2C2C2C4C4C4C4C4C4C4C4C4D6D6D6D6D6D6D6D6D6D9D9D9D9D9D9
+D9D9D9D9D9D9CECECECECECECECECEA5A5A5A5A5A5A5A5A57B7B7B7B7B7B7B7B7B6D6D6D6D6D6D
+6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D7373737373737373737A7A7A7A7A7A7A7A7A838383838383
+8383838989898989898989898989898F8F8F8F8F8F8F8F8F9797979797979797979E9E9E9E9E9E
+9E9E9EA6A6A6A6A6A6A6A6A6ABABABABABABABABABABABABADADADADADADADADADAAAAAAAAAAAA
+AAAAAAA7A7A7A7A7A7A7A7A7A2A2A2A2A2A2A2A2A2A2A2A29F9F9F9F9F9F9F9F9F9E9E9E9E9E9E
+9E9E9E9E9E9E9E9E9E9E9E9E898989898989898989696969696969696969696969787878787878
+787878939393939393939393AAAAAAAAAAAAAAAAAACCCCCCCCCCCCCCCCCCB2B2B2B2B2B2B2B2B2
+B2B2B27272727272727272725959595959595959596F6F6F6F6F6F6F6F6F949494949494949494
+949494A5A5A5A5A5A5A5A5A5AFAFAFAFAFAFAFAFAFC1C1C1C1C1C1C1C1C1B3B3B3B3B3B3B3B3B3
+9E9E9E9E9E9E9E9E9E9E9E9EAFAFAFAFAFAFAFAFAFCCCCCCCCCCCCCCCCCCD0D0D0D0D0D0D0D0D0
+DDDDDDDDDDDDDDDDDDF0F0F0F0F0F0F0F0F0F0F0F0F5F5F5F5F5F5F5F5F5F5F5F5F5F5F5F5F5F5
+F6F6F6F6F6F6F6F6F6F6F6F6F6F6F6F6F6F6F6F6F6F5F5F5F5F5F5F5F5F5DFE0DFDFE0DFDFE0DF
+D7D7D7D7D7D7D7D7D7DFDFDFDFDFDFDFDFDFD7D7D7D7D7D7D7D7D7D7D7D7C2C2C2C2C2C2C2C2C2
+949494949494949494848484848484848484B3B3B3B3B3B3B3B3B3DBDBDBDBDBDBDBDBDBDBDBDB
+E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1D4D4D4D4D4D4D4D4D4D3D3D3D3D3D3D3D3D3D3D3D3
+D9D9D9D9D9D9D9D9D9D0D0D0D0D0D0D0D0D0B8B8B8B8B8B8B8B8B8B9B9B9B9B9B9B9B9B9D0D0D0
+D0D0D0D0D0D0D0D0D0D2D2D2D2D2D2D2D2D2BFBFBFBFBFBFBFBFBF939393939393939393696969
+6969696969698F8F8F8F8F8F8F8F8F8F8F8FC9C9C9C9C9C9C9C9C9E3E3E3E3E3E3E3E3E3D1D1D1
+D1D1D1D1D1D19B9B9B9B9B9B9B9B9B9B9B9BAEAEAEAEAEAEAEAEAED6D6D6D6D6D6D6D6D6DADADA
+DADADADADADADEDEDEDEDEDEDEDEDEDBDBDBDBDBDBDBDBDBDBDBDBCBCBCBCBCBCBCBCBCBAEAEAE
+AEAEAEAEAEAE9F9F9F9F9F9F9F9F9FA9A9A9A9A9A9A9A9A9A5A5A5A5A5A5A5A5A5A5A5A5999999
+9999999999999191919191919191919F9F9F9F9F9F9F9F9FAAAAAAAAAAAAAAAAAAAAAAAAA8A8A8
+A8A8A8A8A8A89B9B9B9B9B9B9B9B9B9D9D9D9D9D9D9D9D9D979797979797979797858585858585
+858585858585777777777777777777767676767676767676767676767676767676818181818181
+8181818B8B8B8B8B8B8B8B8B8B8B8B8E8E8E8E8E8E8E8E8E9595959595959595959C9C9C9C9C9C
+9C9C9CA2A2A2A2A2A2A2A2A2A2A2A2A0A0A0A0A0A0A0A0A0868686868686868686595959595959
+595959656565656565656565949494949494949494949494BABABABABABABABABAC2C2C2C2C2C2
+C2C2C2C4C4C4C4C4C4C4C4C4D6D6D6D6D6D6D6D6D6D9D9D9D9D9D9D9D9D9D9D9D9CECECECECECE
+CECECEA5A5A5A5A5A5A5A5A57B7B7B7B7B7B7B7B7B6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D
+6D6D6D7373737373737373737A7A7A7A7A7A7A7A7A838383838383838383898989898989898989
+8989898F8F8F8F8F8F8F8F8F9797979797979797979E9E9E9E9E9E9E9E9EA6A6A6A6A6A6A6A6A6
+ABABABABABABABABABABABABADADADADADADADADADAAAAAAAAAAAAAAAAAAA7A7A7A7A7A7A7A7A7
+A2A2A2A2A2A2A2A2A2A2A2A29F9F9F9F9F9F9F9F9F9E9E9E9E9E9E9E9E9E9E9E9E9E9E9E9E9E9E
+898989898989898989696969696969696969696969787878787878787878939393939393939393
+AAAAAAAAAAAAAAAAAACCCCCCCCCCCCCCCCCCB2B2B2B2B2B2B2B2B2B2B2B2727272727272727272
+5959595959595959596F6F6F6F6F6F6F6F6F949494949494949494949494A5A5A5A5A5A5A5A5A5
+AFAFAFAFAFAFAFAFAFC1C1C1C1C1C1C1C1C1B3B3B3B3B3B3B3B3B39E9E9E9E9E9E9E9E9E9E9E9E
+AFAFAFAFAFAFAFAFAFCCCCCCCCCCCCCCCCCCD0D0D0D0D0D0D0D0D0DDDDDDDDDDDDDDDDDDF0F0F0
+F0F0F0F0F0F0F0F0F0F5F5F5F5F5F5F5F5F5F5F5F5F5F5F5F5F5F5F6F6F6F6F6F6F6F6F6F6F6F6
+F6F6F6F6F6F6F6F6F6F5F5F5F5F5F5F5F5F5DFE0DFDFE0DFDFE0DFCBCBCBCBCBCBCBCBCBDFE0DF
+DFE0DFDFE0DFDBDBDBDBDBDBDBDBDBDBDBDBCBCBCBCBCBCBCBCBCBA9A9A9A9A9A9A9A9A9B0B0B0
+B0B0B0B0B0B0D6D6D5D6D6D5D6D6D5D2D2D2D2D2D2D2D2D2D2D2D2C0C0C0C0C0C0C0C0C0C3C3C3
+C3C3C3C3C3C3D3D3D3D3D3D3D3D3D3DADADADADADADADADADADADAD5D5D5D5D5D5D5D5D5BBBBBB
+BBBBBBBBBBBB8B8B8B8B8B8B8B8B8B838383838383838383BBBBBBBBBBBBBBBBBBBBBBBBD2D2D2
+D2D2D2D2D2D2C3C3C3C3C3C3C3C3C38A8A8A8A8A8A8A8A8A777777777777777777AAAAAAAAAAAA
+AAAAAAAAAAAACBCBCBCBCBCBCBCBCBD9D9D9D9D9D9D9D9D9E0E0E0E0E0E0E0E0E0D5D5D5D5D5D5
+D5D5D5D5D5D5D6D6D5D6D6D5D6D6D5D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0E3E3E3E3E3E3
+E3E3E3E2E2E2E2E2E2E2E2E2E2E2E2DADADADADADADADADABDBDBDBDBDBDBDBDBDB0B0B0B0B0B0
+B0B0B0BDBDBDBDBDBDBDBDBDB4B4B4B4B4B4B4B4B4B4B4B4A3A3A3A3A3A3A3A3A39A9A9A9A9A9A
+9A9A9A9F9F9F9F9F9F9F9F9FA5A5A5A5A5A5A5A5A5A5A5A59F9F9F9F9F9F9F9F9F9D9D9D9D9D9D
+9D9D9DA0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0909090909090909090909090898989898989
+8989898E8E8E8E8E8E8E8E8E8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D848484848484848484
+8484848181818181818181818A8A8A8A8A8A8A8A8A9696969696969696969E9E9E9E9E9E9E9E9E
+9E9E9EA4A4A4A4A4A4A4A4A4919191919191919191646464646464646464636363636363636363
+979797979797979797979797BBBBBBBBBBBBBBBBBBBDBDBDBDBDBDBDBDBDB8B8B8B8B8B8B8B8B8
+CECECECECECECECECEE4E4E4E4E4E4E4E4E4E4E4E4ECECECECECECECECECD3D3D3D3D3D3D3D3D3
+9F9F9F9F9F9F9F9F9F7C7C7C7C7C7C7C7C7C7C7C7C7777777777777777777A7A7A7A7A7A7A7A7A
+8080808080808080808585858585858585858A8A8A8A8A8A8A8A8A8A8A8A919191919191919191
+9A9A9A9A9A9A9A9A9AA2A2A2A2A2A2A2A2A2A8A8A8A8A8A8A8A8A8AEAEAEAEAEAEAEAEAEAEAEAE
+B0B0B0B0B0B0B0B0B0ADADADADADADADADADA8A8A8A8A8A8A8A8A8A1A1A1A1A1A1A1A1A1A1A1A1
+9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9D9D9D9D9D9D9D9D9D8B8B8B8B8B8B8B8B8B8F8F8F
+8F8F8F8F8F8F8F8F8FB4B4B4B4B4B4B4B4B4CACACACACACACACACAD6D6D6D6D6D6D6D6D6E0E0E0
+E0E0E0E0E0E0AEAEAEAEAEAEAEAEAEAEAEAE7878787878787878787B7B7B7B7B7B7B7B7B989898
+989898989898B6B6B6B6B6B6B6B6B6B6B6B6BBBBBBBBBBBBBBBBBBB3B3B3B3B3B3B3B3B3A9A9A9
+A9A9A9A9A9A9919191919191919191949494949494949494949494BBBBBBBBBBBBBBBBBBD0D0D0
+D0D0D0D0D0D0C5C5C5C5C5C5C5C5C5BFBFBFBFBFBFBFBFBFDCDCDCDCDCDCDCDCDCDCDCDCECECEC
+ECECECECECECECECECECECECECECECEEEEEEEEEEEEEEEEEEF3F3F3F3F3F3F3F3F3F3F3F3F2F2F2
+F2F2F2F2F2F2C5C5C5C5C5C5C5C5C5CBCBCBCBCBCBCBCBCBDFE0DFDFE0DFDFE0DFDBDBDBDBDBDB
+DBDBDBDBDBDBCBCBCBCBCBCBCBCBCBA9A9A9A9A9A9A9A9A9B0B0B0B0B0B0B0B0B0D6D6D5D6D6D5
+D6D6D5D2D2D2D2D2D2D2D2D2D2D2D2C0C0C0C0C0C0C0C0C0C3C3C3C3C3C3C3C3C3D3D3D3D3D3D3
+D3D3D3DADADADADADADADADADADADAD5D5D5D5D5D5D5D5D5BBBBBBBBBBBBBBBBBB8B8B8B8B8B8B
+8B8B8B838383838383838383BBBBBBBBBBBBBBBBBBBBBBBBD2D2D2D2D2D2D2D2D2C3C3C3C3C3C3
+C3C3C38A8A8A8A8A8A8A8A8A777777777777777777AAAAAAAAAAAAAAAAAAAAAAAACBCBCBCBCBCB
+CBCBCBD9D9D9D9D9D9D9D9D9E0E0E0E0E0E0E0E0E0D5D5D5D5D5D5D5D5D5D5D5D5D6D6D5D6D6D5
+D6D6D5D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0E3E3E3E3E3E3E3E3E3E2E2E2E2E2E2E2E2E2
+E2E2E2DADADADADADADADADABDBDBDBDBDBDBDBDBDB0B0B0B0B0B0B0B0B0BDBDBDBDBDBDBDBDBD
+B4B4B4B4B4B4B4B4B4B4B4B4A3A3A3A3A3A3A3A3A39A9A9A9A9A9A9A9A9A9F9F9F9F9F9F9F9F9F
+A5A5A5A5A5A5A5A5A5A5A5A59F9F9F9F9F9F9F9F9F9D9D9D9D9D9D9D9D9DA0A0A0A0A0A0A0A0A0
+A0A0A0A0A0A0A0A0A09090909090909090909090908989898989898989898E8E8E8E8E8E8E8E8E
+8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D848484848484848484848484818181818181818181
+8A8A8A8A8A8A8A8A8A9696969696969696969E9E9E9E9E9E9E9E9E9E9E9EA4A4A4A4A4A4A4A4A4
+919191919191919191646464646464646464636363636363636363979797979797979797979797
+BBBBBBBBBBBBBBBBBBBDBDBDBDBDBDBDBDBDB8B8B8B8B8B8B8B8B8CECECECECECECECECEE4E4E4
+E4E4E4E4E4E4E4E4E4ECECECECECECECECECD3D3D3D3D3D3D3D3D39F9F9F9F9F9F9F9F9F7C7C7C
+7C7C7C7C7C7C7C7C7C7777777777777777777A7A7A7A7A7A7A7A7A808080808080808080858585
+8585858585858A8A8A8A8A8A8A8A8A8A8A8A9191919191919191919A9A9A9A9A9A9A9A9AA2A2A2
+A2A2A2A2A2A2A8A8A8A8A8A8A8A8A8AEAEAEAEAEAEAEAEAEAEAEAEB0B0B0B0B0B0B0B0B0ADADAD
+ADADADADADADA8A8A8A8A8A8A8A8A8A1A1A1A1A1A1A1A1A1A1A1A19F9F9F9F9F9F9F9F9F9F9F9F
+9F9F9F9F9F9F9D9D9D9D9D9D9D9D9D8B8B8B8B8B8B8B8B8B8F8F8F8F8F8F8F8F8F8F8F8FB4B4B4
+B4B4B4B4B4B4CACACACACACACACACAD6D6D6D6D6D6D6D6D6E0E0E0E0E0E0E0E0E0AEAEAEAEAEAE
+AEAEAEAEAEAE7878787878787878787B7B7B7B7B7B7B7B7B989898989898989898B6B6B6B6B6B6
+B6B6B6B6B6B6BBBBBBBBBBBBBBBBBBB3B3B3B3B3B3B3B3B3A9A9A9A9A9A9A9A9A9919191919191
+919191949494949494949494949494BBBBBBBBBBBBBBBBBBD0D0D0D0D0D0D0D0D0C5C5C5C5C5C5
+C5C5C5BFBFBFBFBFBFBFBFBFDCDCDCDCDCDCDCDCDCDCDCDCECECECECECECECECECECECECECECEC
+ECECECEEEEEEEEEEEEEEEEEEF3F3F3F3F3F3F3F3F3F3F3F3F2F2F2F2F2F2F2F2F2C5C5C5C5C5C5
+C5C5C5CBCBCBCBCBCBCBCBCBDFE0DFDFE0DFDFE0DFDBDBDBDBDBDBDBDBDBDBDBDBCBCBCBCBCBCB
+CBCBCBA9A9A9A9A9A9A9A9A9B0B0B0B0B0B0B0B0B0D6D6D5D6D6D5D6D6D5D2D2D2D2D2D2D2D2D2
+D2D2D2C0C0C0C0C0C0C0C0C0C3C3C3C3C3C3C3C3C3D3D3D3D3D3D3D3D3D3DADADADADADADADADA
+DADADAD5D5D5D5D5D5D5D5D5BBBBBBBBBBBBBBBBBB8B8B8B8B8B8B8B8B8B838383838383838383
+BBBBBBBBBBBBBBBBBBBBBBBBD2D2D2D2D2D2D2D2D2C3C3C3C3C3C3C3C3C38A8A8A8A8A8A8A8A8A
+777777777777777777AAAAAAAAAAAAAAAAAAAAAAAACBCBCBCBCBCBCBCBCBD9D9D9D9D9D9D9D9D9
+E0E0E0E0E0E0E0E0E0D5D5D5D5D5D5D5D5D5D5D5D5D6D6D5D6D6D5D6D6D5D0D0D0D0D0D0D0D0D0
+D0D0D0D0D0D0D0D0D0E3E3E3E3E3E3E3E3E3E2E2E2E2E2E2E2E2E2E2E2E2DADADADADADADADADA
+BDBDBDBDBDBDBDBDBDB0B0B0B0B0B0B0B0B0BDBDBDBDBDBDBDBDBDB4B4B4B4B4B4B4B4B4B4B4B4
+A3A3A3A3A3A3A3A3A39A9A9A9A9A9A9A9A9A9F9F9F9F9F9F9F9F9FA5A5A5A5A5A5A5A5A5A5A5A5
+9F9F9F9F9F9F9F9F9F9D9D9D9D9D9D9D9D9DA0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0909090
+9090909090909090908989898989898989898E8E8E8E8E8E8E8E8E8D8D8D8D8D8D8D8D8D8D8D8D
+8D8D8D8D8D8D8484848484848484848484848181818181818181818A8A8A8A8A8A8A8A8A969696
+9696969696969E9E9E9E9E9E9E9E9E9E9E9EA4A4A4A4A4A4A4A4A4919191919191919191646464
+646464646464636363636363636363979797979797979797979797BBBBBBBBBBBBBBBBBBBDBDBD
+BDBDBDBDBDBDB8B8B8B8B8B8B8B8B8CECECECECECECECECEE4E4E4E4E4E4E4E4E4E4E4E4ECECEC
+ECECECECECECD3D3D3D3D3D3D3D3D39F9F9F9F9F9F9F9F9F7C7C7C7C7C7C7C7C7C7C7C7C777777
+7777777777777A7A7A7A7A7A7A7A7A8080808080808080808585858585858585858A8A8A8A8A8A
+8A8A8A8A8A8A9191919191919191919A9A9A9A9A9A9A9A9AA2A2A2A2A2A2A2A2A2A8A8A8A8A8A8
+A8A8A8AEAEAEAEAEAEAEAEAEAEAEAEB0B0B0B0B0B0B0B0B0ADADADADADADADADADA8A8A8A8A8A8
+A8A8A8A1A1A1A1A1A1A1A1A1A1A1A19F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9D9D9D9D9D9D
+9D9D9D8B8B8B8B8B8B8B8B8B8F8F8F8F8F8F8F8F8F8F8F8FB4B4B4B4B4B4B4B4B4CACACACACACA
+CACACAD6D6D6D6D6D6D6D6D6E0E0E0E0E0E0E0E0E0AEAEAEAEAEAEAEAEAEAEAEAE787878787878
+7878787B7B7B7B7B7B7B7B7B989898989898989898B6B6B6B6B6B6B6B6B6B6B6B6BBBBBBBBBBBB
+BBBBBBB3B3B3B3B3B3B3B3B3A9A9A9A9A9A9A9A9A9919191919191919191949494949494949494
+949494BBBBBBBBBBBBBBBBBBD0D0D0D0D0D0D0D0D0C5C5C5C5C5C5C5C5C5BFBFBFBFBFBFBFBFBF
+DCDCDCDCDCDCDCDCDCDCDCDCECECECECECECECECECECECECECECECECECECEEEEEEEEEEEEEEEEEE
+F3F3F3F3F3F3F3F3F3F3F3F3F2F2F2F2F2F2F2F2F2C5C5C5C5C5C5C5C5C5ACACACACACACACACAC
+DEDEDEDEDEDEDEDEDEE6E6E6E6E6E6E6E6E6E6E6E6D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9
+E3E3E3E3E3E3E3E3E3E8E9E8E8E9E8E8E9E8CECECECECECECECECECECECE989898989898989898
+7B7B7B7B7B7B7B7B7BA8A8A8A8A8A8A8A8A8D4D4D4D4D4D4D4D4D4D4D4D4D7D7D7D7D7D7D7D7D7
+A8A8A8A8A8A8A8A8A8717171717171717171707070707070707070AEAEAEAEAEAEAEAEAEAEAEAE
+D4D4D4D4D4D4D4D4D4D5D5D5D5D5D5D5D5D5A2A2A2A2A2A2A2A2A2949494949494949494CBCBCB
+CBCBCBCBCBCBCBCBCBD7D7D7D7D7D7D7D7D7D0D0D0D0D0D0D0D0D0DBDBDBDBDBDBDBDBDBECECEC
+ECECECECECECECECECDADADADADADADADADAACACACACACACACACACA8A8A8A8A8A8A8A8A8D5D5D5
+D5D5D5D5D5D5E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4CCCCCCCCCCCCCCCCCCAFAFAF
+AFAFAFAFAFAFAEAEAEAEAEAEAEAEAEA8A8A8A8A8A8A8A8A8A8A8A8A3A3A3A3A3A3A3A3A3989898
+9898989898989999999999999999999D9D9D9D9D9D9D9D9D9D9D9D9999999999999999999E9E9E
+9E9E9E9E9E9EA1A1A1A1A1A1A1A1A1A0A0A0A0A0A0A0A0A09595959595959595959595959E9E9E
+9E9E9E9E9E9EA2A2A2A2A2A2A2A2A29F9F9F9F9F9F9F9F9F9E9E9E9E9E9E9E9E9E9E9E9E9E9E9E
+9E9E9E9E9E9E9797979797979797979393939393939393939292929292929292929C9C9C9C9C9C
+9C9C9C9C9C9CA3A3A3A3A3A3A3A3A39D9D9D9D9D9D9D9D9D7272727272727272725C5C5C5C5C5C
+5C5C5C8C8C8C8C8C8C8C8C8C8C8C8CB4B4B4B4B4B4B4B4B4AFAFAFAFAFAFAFAFAFA4A4A4A4A4A4
+A4A4A4BABABABABABABABABAD1D1D1D1D1D1D1D1D1D1D1D1DFDFDFDFDFDFDFDFDFDBDBDBDBDBDB
+DBDBDBB6B6B6B6B6B6B6B6B68787878787878787878787877B7B7B7B7B7B7B7B7B7A7A7A7A7A7A
+7A7A7A7F7F7F7F7F7F7F7F7F828282828282828282888888888888888888888888949494949494
+9494949F9F9F9F9F9F9F9F9FA7A7A7A7A7A7A7A7A7ADADADADADADADADADB0B1B0B0B1B0B0B1B0
+B0B1B0B3B3B3B3B3B3B3B3B3B1B1B1B1B1B1B1B1B1A8A8A8A8A8A8A8A8A89F9F9F9F9F9F9F9F9F
+9F9F9F9E9E9E9E9E9E9E9E9EA1A1A1A1A1A1A1A1A1A4A4A4A4A4A4A4A4A4B1B1B1B1B1B1B1B1B1
+CECECECECECECECECECECECEE6E6E6E6E6E6E6E6E6F2F2F2F2F2F2F2F2F2EDEDEDEDEDEDEDEDED
+D2D2D2D2D2D2D2D2D29A9A9A9A9A9A9A9A9A9A9A9A888888888888888888A2A2A2A2A2A2A2A2A2
+B8B8B8B8B8B8B8B8B8C2C2C2C2C2C2C2C2C2C2C2C2CACACACACACACACACABCBCBCBCBCBCBCBCBC
+9B9B9B9B9B9B9B9B9B7676767676767676768B8B8B8B8B8B8B8B8B8B8B8BBDBDBDBDBDBDBDBDBD
+CACACACACACACACACAB4B4B4B4B4B4B4B4B49D9D9D9D9D9D9D9D9DBABABABABABABABABABABABA
+D8D8D8D8D8D8D8D8D8D7D7D7D7D7D7D7D7D7DCDCDCDCDCDCDCDCDCE8E9E8E8E9E8E8E9E8E8E9E8
+EEEEEEEEEEEEEEEEEEC3C3C3C3C3C3C3C3C3ACACACACACACACACACDEDEDEDEDEDEDEDEDEE6E6E6
+E6E6E6E6E6E6E6E6E6D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9E3E3E3E3E3E3E3E3E3E8E9E8
+E8E9E8E8E9E8CECECECECECECECECECECECE9898989898989898987B7B7B7B7B7B7B7B7BA8A8A8
+A8A8A8A8A8A8D4D4D4D4D4D4D4D4D4D4D4D4D7D7D7D7D7D7D7D7D7A8A8A8A8A8A8A8A8A8717171
+717171717171707070707070707070AEAEAEAEAEAEAEAEAEAEAEAED4D4D4D4D4D4D4D4D4D5D5D5
+D5D5D5D5D5D5A2A2A2A2A2A2A2A2A2949494949494949494CBCBCBCBCBCBCBCBCBCBCBCBD7D7D7
+D7D7D7D7D7D7D0D0D0D0D0D0D0D0D0DBDBDBDBDBDBDBDBDBECECECECECECECECECECECECDADADA
+DADADADADADAACACACACACACACACACA8A8A8A8A8A8A8A8A8D5D5D5D5D5D5D5D5D5E4E4E4E4E4E4
+E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4CCCCCCCCCCCCCCCCCCAFAFAFAFAFAFAFAFAFAEAEAEAEAEAE
+AEAEAEA8A8A8A8A8A8A8A8A8A8A8A8A3A3A3A3A3A3A3A3A3989898989898989898999999999999
+9999999D9D9D9D9D9D9D9D9D9D9D9D9999999999999999999E9E9E9E9E9E9E9E9EA1A1A1A1A1A1
+A1A1A1A0A0A0A0A0A0A0A0A09595959595959595959595959E9E9E9E9E9E9E9E9EA2A2A2A2A2A2
+A2A2A29F9F9F9F9F9F9F9F9F9E9E9E9E9E9E9E9E9E9E9E9E9E9E9E9E9E9E9E9E9E979797979797
+9797979393939393939393939292929292929292929C9C9C9C9C9C9C9C9C9C9C9CA3A3A3A3A3A3
+A3A3A39D9D9D9D9D9D9D9D9D7272727272727272725C5C5C5C5C5C5C5C5C8C8C8C8C8C8C8C8C8C
+8C8C8CB4B4B4B4B4B4B4B4B4AFAFAFAFAFAFAFAFAFA4A4A4A4A4A4A4A4A4BABABABABABABABABA
+D1D1D1D1D1D1D1D1D1D1D1D1DFDFDFDFDFDFDFDFDFDBDBDBDBDBDBDBDBDBB6B6B6B6B6B6B6B6B6
+8787878787878787878787877B7B7B7B7B7B7B7B7B7A7A7A7A7A7A7A7A7A7F7F7F7F7F7F7F7F7F
+8282828282828282828888888888888888888888889494949494949494949F9F9F9F9F9F9F9F9F
+A7A7A7A7A7A7A7A7A7ADADADADADADADADADB0B1B0B0B1B0B0B1B0B0B1B0B3B3B3B3B3B3B3B3B3
+B1B1B1B1B1B1B1B1B1A8A8A8A8A8A8A8A8A89F9F9F9F9F9F9F9F9F9F9F9F9E9E9E9E9E9E9E9E9E
+A1A1A1A1A1A1A1A1A1A4A4A4A4A4A4A4A4A4B1B1B1B1B1B1B1B1B1CECECECECECECECECECECECE
+E6E6E6E6E6E6E6E6E6F2F2F2F2F2F2F2F2F2EDEDEDEDEDEDEDEDEDD2D2D2D2D2D2D2D2D29A9A9A
+9A9A9A9A9A9A9A9A9A888888888888888888A2A2A2A2A2A2A2A2A2B8B8B8B8B8B8B8B8B8C2C2C2
+C2C2C2C2C2C2C2C2C2CACACACACACACACACABCBCBCBCBCBCBCBCBC9B9B9B9B9B9B9B9B9B767676
+7676767676768B8B8B8B8B8B8B8B8B8B8B8BBDBDBDBDBDBDBDBDBDCACACACACACACACACAB4B4B4
+B4B4B4B4B4B49D9D9D9D9D9D9D9D9DBABABABABABABABABABABABAD8D8D8D8D8D8D8D8D8D7D7D7
+D7D7D7D7D7D7DCDCDCDCDCDCDCDCDCE8E9E8E8E9E8E8E9E8E8E9E8EEEEEEEEEEEEEEEEEEC3C3C3
+C3C3C3C3C3C3BABABABABABABABABAD5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5BDBDBD
+BDBDBDBDBDBDCACACACACACACACACAE8E9E8E8E9E8E8E9E8E9E9E9E9E9E9E9E9E9CACACACACACA
+CACACACACACA8686868686868686866868686868686868689E9E9E9E9E9E9E9E9ED1D1D1D1D1D1
+D1D1D1D1D1D1D6D6D6D6D6D6D6D6D6B0B0B0B0B0B0B0B0B0868686868686868686969696969696
+969696C0C0C0C0C0C0C0C0C0C0C0C0DEDEDEDEDEDEDEDEDEE1E1E1E1E1E1E1E1E1D2D2D2D2D2D2
+D2D2D2CFCFCFCFCFCFCFCFCFD6D6D6D6D6D6D6D6D6D6D6D6CCCCCCCCCCCCCCCCCCCDCDCDCDCDCD
+CDCDCDE4E4E4E4E4E4E4E4E4EDEDEDEDEDEDEDEDEDEDEDEDC1C1C1C1C1C1C1C1C17C7C7C7C7C7C
+7C7C7C808080808080808080CBCBCBCBCBCBCBCBCBE9E9E9E9E9E9E9E9E9E9E9E9DFDFDFDFDFDF
+DFDFDFB6B6B6B6B6B6B6B6B68A8A8A8A8A8A8A8A8A868686868686868686999999999999999999
+999999A8A8A8A8A8A8A8A8A89C9C9C9C9C9C9C9C9C959595959595959595979797979797979797
+9797979E9E9E9E9E9E9E9E9EA0A0A0A0A0A0A0A0A09F9F9F9F9F9F9F9F9F999999999999999999
+9A9A9A9A9A9A9A9A9A9A9A9AA8A8A8A8A8A8A8A8A89F9F9F9F9F9F9F9F9F989898989898989898
+A2A2A2A2A2A2A2A2A2B7B7B7B7B7B7B7B7B7B7B7B7B7B7B7B7B7B7B7B7B7B4B4B4B4B4B4B4B4B4
+A2A2A2A2A2A2A2A2A2989898989898989898989898A3A3A3A3A3A3A3A3A3A5A5A5A5A5A5A5A5A5
+7F7F7F7F7F7F7F7F7F5656565656565656566C6C6C6C6C6C6C6C6C6C6C6C9A9A9A9A9A9A9A9A9A
+A4A4A4A4A4A4A4A4A49B9B9B9B9B9B9B9B9BA1A1A1A1A1A1A1A1A1AAAAAAAAAAAAAAAAAAAAAAAA
+BBBBBBBBBBBBBBBBBBD2D2D2D2D2D2D2D2D2CBCBCBCBCBCBCBCBCB959595959595959595959595
+7F7F7F7F7F7F7F7F7F7D7D7D7D7D7D7D7D7D808080808080808080818181818181818181878787
+878787878787878787949494949494949494A3A3A3A3A3A3A3A3A3ADADADADADADADADADB4B4B4
+B4B4B4B4B4B4B7B7B7B7B7B7B7B7B7B7B7B7B8B8B8B8B8B8B8B8B8B3B3B3B3B3B3B3B3B3A8A8A8
+A8A8A8A8A8A89E9E9E9E9E9E9E9E9E9E9E9EA0A0A0A0A0A0A0A0A0ADADADADADADADADADB8B8B8
+B8B8B8B8B8B8D7D7D7D7D7D7D7D7D7EEEEEEEEEEEEEEEEEEEEEEEEF5F5F5F5F5F5F5F5F5EDEDED
+EDEDEDEDEDEDD6D6D5D6D6D5D6D6D5A7A7A7A7A7A7A7A7A7909090909090909090909090A2A2A2
+A2A2A2A2A2A2B2B2B2B2B2B2B2B2B2BEBEBEBEBEBEBEBEBEC4C4C4C4C4C4C4C4C4C4C4C4C9C9C9
+C9C9C9C9C9C9C1C1C1C1C1C1C1C1C1B1B1B1B1B1B1B1B1B19A9A9A9A9A9A9A9A9AACACACACACAC
+ACACACACACACCACACACACACACACACAC4C4C4C4C4C4C4C4C4ACACACACACACACACACA2A2A2A2A2A2
+A2A2A2AFAFAFAFAFAFAFAFAFAFAFAFC6C6C6C6C6C6C6C6C6C9C9C9C9C9C9C9C9C9C2C2C2C2C2C2
+C2C2C2C6C6C6C6C6C6C6C6C6C6C6C6D9D9D9D9D9D9D9D9D9B4B4B4B4B4B4B4B4B4BABABABABABA
+BABABAD5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5BDBDBDBDBDBDBDBDBDCACACACACACA
+CACACAE8E9E8E8E9E8E8E9E8E9E9E9E9E9E9E9E9E9CACACACACACACACACACACACA868686868686
+8686866868686868686868689E9E9E9E9E9E9E9E9ED1D1D1D1D1D1D1D1D1D1D1D1D6D6D6D6D6D6
+D6D6D6B0B0B0B0B0B0B0B0B0868686868686868686969696969696969696C0C0C0C0C0C0C0C0C0
+C0C0C0DEDEDEDEDEDEDEDEDEE1E1E1E1E1E1E1E1E1D2D2D2D2D2D2D2D2D2CFCFCFCFCFCFCFCFCF
+D6D6D6D6D6D6D6D6D6D6D6D6CCCCCCCCCCCCCCCCCCCDCDCDCDCDCDCDCDCDE4E4E4E4E4E4E4E4E4
+EDEDEDEDEDEDEDEDEDEDEDEDC1C1C1C1C1C1C1C1C17C7C7C7C7C7C7C7C7C808080808080808080
+CBCBCBCBCBCBCBCBCBE9E9E9E9E9E9E9E9E9E9E9E9DFDFDFDFDFDFDFDFDFB6B6B6B6B6B6B6B6B6
+8A8A8A8A8A8A8A8A8A868686868686868686999999999999999999999999A8A8A8A8A8A8A8A8A8
+9C9C9C9C9C9C9C9C9C9595959595959595959797979797979797979797979E9E9E9E9E9E9E9E9E
+A0A0A0A0A0A0A0A0A09F9F9F9F9F9F9F9F9F9999999999999999999A9A9A9A9A9A9A9A9A9A9A9A
+A8A8A8A8A8A8A8A8A89F9F9F9F9F9F9F9F9F989898989898989898A2A2A2A2A2A2A2A2A2B7B7B7
+B7B7B7B7B7B7B7B7B7B7B7B7B7B7B7B7B7B7B4B4B4B4B4B4B4B4B4A2A2A2A2A2A2A2A2A2989898
+989898989898989898A3A3A3A3A3A3A3A3A3A5A5A5A5A5A5A5A5A57F7F7F7F7F7F7F7F7F565656
+5656565656566C6C6C6C6C6C6C6C6C6C6C6C9A9A9A9A9A9A9A9A9AA4A4A4A4A4A4A4A4A49B9B9B
+9B9B9B9B9B9BA1A1A1A1A1A1A1A1A1AAAAAAAAAAAAAAAAAAAAAAAABBBBBBBBBBBBBBBBBBD2D2D2
+D2D2D2D2D2D2CBCBCBCBCBCBCBCBCB9595959595959595959595957F7F7F7F7F7F7F7F7F7D7D7D
+7D7D7D7D7D7D808080808080808080818181818181818181878787878787878787878787949494
+949494949494A3A3A3A3A3A3A3A3A3ADADADADADADADADADB4B4B4B4B4B4B4B4B4B7B7B7B7B7B7
+B7B7B7B7B7B7B8B8B8B8B8B8B8B8B8B3B3B3B3B3B3B3B3B3A8A8A8A8A8A8A8A8A89E9E9E9E9E9E
+9E9E9E9E9E9EA0A0A0A0A0A0A0A0A0ADADADADADADADADADB8B8B8B8B8B8B8B8B8D7D7D7D7D7D7
+D7D7D7EEEEEEEEEEEEEEEEEEEEEEEEF5F5F5F5F5F5F5F5F5EDEDEDEDEDEDEDEDEDD6D6D5D6D6D5
+D6D6D5A7A7A7A7A7A7A7A7A7909090909090909090909090A2A2A2A2A2A2A2A2A2B2B2B2B2B2B2
+B2B2B2BEBEBEBEBEBEBEBEBEC4C4C4C4C4C4C4C4C4C4C4C4C9C9C9C9C9C9C9C9C9C1C1C1C1C1C1
+C1C1C1B1B1B1B1B1B1B1B1B19A9A9A9A9A9A9A9A9AACACACACACACACACACACACACCACACACACACA
+CACACAC4C4C4C4C4C4C4C4C4ACACACACACACACACACA2A2A2A2A2A2A2A2A2AFAFAFAFAFAFAFAFAF
+AFAFAFC6C6C6C6C6C6C6C6C6C9C9C9C9C9C9C9C9C9C2C2C2C2C2C2C2C2C2C6C6C6C6C6C6C6C6C6
+C6C6C6D9D9D9D9D9D9D9D9D9B4B4B4B4B4B4B4B4B4BABABABABABABABABAD5D5D5D5D5D5D5D5D5
+D5D5D5D5D5D5D5D5D5D5D5D5BDBDBDBDBDBDBDBDBDCACACACACACACACACAE8E9E8E8E9E8E8E9E8
+E9E9E9E9E9E9E9E9E9CACACACACACACACACACACACA868686868686868686686868686868686868
+9E9E9E9E9E9E9E9E9ED1D1D1D1D1D1D1D1D1D1D1D1D6D6D6D6D6D6D6D6D6B0B0B0B0B0B0B0B0B0
+868686868686868686969696969696969696C0C0C0C0C0C0C0C0C0C0C0C0DEDEDEDEDEDEDEDEDE
+E1E1E1E1E1E1E1E1E1D2D2D2D2D2D2D2D2D2CFCFCFCFCFCFCFCFCFD6D6D6D6D6D6D6D6D6D6D6D6
+CCCCCCCCCCCCCCCCCCCDCDCDCDCDCDCDCDCDE4E4E4E4E4E4E4E4E4EDEDEDEDEDEDEDEDEDEDEDED
+C1C1C1C1C1C1C1C1C17C7C7C7C7C7C7C7C7C808080808080808080CBCBCBCBCBCBCBCBCBE9E9E9
+E9E9E9E9E9E9E9E9E9DFDFDFDFDFDFDFDFDFB6B6B6B6B6B6B6B6B68A8A8A8A8A8A8A8A8A868686
+868686868686999999999999999999999999A8A8A8A8A8A8A8A8A89C9C9C9C9C9C9C9C9C959595
+9595959595959797979797979797979797979E9E9E9E9E9E9E9E9EA0A0A0A0A0A0A0A0A09F9F9F
+9F9F9F9F9F9F9999999999999999999A9A9A9A9A9A9A9A9A9A9A9AA8A8A8A8A8A8A8A8A89F9F9F
+9F9F9F9F9F9F989898989898989898A2A2A2A2A2A2A2A2A2B7B7B7B7B7B7B7B7B7B7B7B7B7B7B7
+B7B7B7B7B7B7B4B4B4B4B4B4B4B4B4A2A2A2A2A2A2A2A2A2989898989898989898989898A3A3A3
+A3A3A3A3A3A3A5A5A5A5A5A5A5A5A57F7F7F7F7F7F7F7F7F5656565656565656566C6C6C6C6C6C
+6C6C6C6C6C6C9A9A9A9A9A9A9A9A9AA4A4A4A4A4A4A4A4A49B9B9B9B9B9B9B9B9BA1A1A1A1A1A1
+A1A1A1AAAAAAAAAAAAAAAAAAAAAAAABBBBBBBBBBBBBBBBBBD2D2D2D2D2D2D2D2D2CBCBCBCBCBCB
+CBCBCB9595959595959595959595957F7F7F7F7F7F7F7F7F7D7D7D7D7D7D7D7D7D808080808080
+808080818181818181818181878787878787878787878787949494949494949494A3A3A3A3A3A3
+A3A3A3ADADADADADADADADADB4B4B4B4B4B4B4B4B4B7B7B7B7B7B7B7B7B7B7B7B7B8B8B8B8B8B8
+B8B8B8B3B3B3B3B3B3B3B3B3A8A8A8A8A8A8A8A8A89E9E9E9E9E9E9E9E9E9E9E9EA0A0A0A0A0A0
+A0A0A0ADADADADADADADADADB8B8B8B8B8B8B8B8B8D7D7D7D7D7D7D7D7D7EEEEEEEEEEEEEEEEEE
+EEEEEEF5F5F5F5F5F5F5F5F5EDEDEDEDEDEDEDEDEDD6D6D5D6D6D5D6D6D5A7A7A7A7A7A7A7A7A7
+909090909090909090909090A2A2A2A2A2A2A2A2A2B2B2B2B2B2B2B2B2B2BEBEBEBEBEBEBEBEBE
+C4C4C4C4C4C4C4C4C4C4C4C4C9C9C9C9C9C9C9C9C9C1C1C1C1C1C1C1C1C1B1B1B1B1B1B1B1B1B1
+9A9A9A9A9A9A9A9A9AACACACACACACACACACACACACCACACACACACACACACAC4C4C4C4C4C4C4C4C4
+ACACACACACACACACACA2A2A2A2A2A2A2A2A2AFAFAFAFAFAFAFAFAFAFAFAFC6C6C6C6C6C6C6C6C6
+C9C9C9C9C9C9C9C9C9C2C2C2C2C2C2C2C2C2C6C6C6C6C6C6C6C6C6C6C6C6D9D9D9D9D9D9D9D9D9
+B4B4B4B4B4B4B4B4B4D1D1D1D1D1D1D1D1D1CECECECECECECECECEADADADADADADADADADADADAD
+838383838383838383A3A3A3A3A3A3A3A3A3D6D6D6D6D6D6D6D6D6E0E0E0E0E0E0E0E0E0D0D0D0
+D0D0D0D0D0D0D0D0D09A9A9A9A9A9A9A9A9A919191919191919191BDBDBDBDBDBDBDBDBDD6D6D5
+D6D6D5D6D6D5D6D6D5D9D9D9D9D9D9D9D9D9D0D0D0D0D0D0D0D0D0C2C2C2C2C2C2C2C2C2C5C5C5
+C5C5C5C5C5C5D3D3D3D3D3D3D3D3D3D3D3D3DBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDFDFDF
+DFDFDFDFDFDFE0E0E0E0E0E0E0E0E0B8B8B8B8B8B8B8B8B8B8B8B8A8A8A8A8A8A8A8A8A8CACACA
+CACACACACACAE5E5E5E5E5E5E5E5E5E3E3E3E3E3E3E3E3E3E3E3E3ACACACACACACACACAC646464
+6464646464646B6B6B6B6B6B6B6B6BB8B8B8B8B8B8B8B8B8E4E4E4E4E4E4E4E4E4E4E4E4DADADA
+DADADADADADAA9A9A9A9A9A9A9A9A97474747474747474747878787878787878789E9E9E9E9E9E
+9E9E9E9E9E9EB5B5B5B5B5B5B5B5B5B3B3B3B3B3B3B3B3B3A7A7A7A7A7A7A7A7A79B9B9B9B9B9B
+9B9B9B9B9B9BA1A1A1A1A1A1A1A1A19D9D9D9D9D9D9D9D9D999999999999999999919191919191
+9191919A9A9A9A9A9A9A9A9A9A9A9AA5A5A5A5A5A5A5A5A5989898989898989898999999999999
+999999A7A7A7A7A7A7A7A7A7B4B4B4B4B4B4B4B4B4B4B4B4B9B9B9B9B9B9B9B9B9C5C5C5C5C5C5
+C5C5C5C3C3C3C3C3C3C3C3C3B0B1B0B0B1B0B0B1B0B0B1B0AAAAAAAAAAAAAAAAAAAEAEAEAEAEAE
+AEAEAE898989898989898989565656565656565656656565656565656565656565949494949494
+949494ABABABABABABABABABACACACACACACACACACABABABABABABABABABABABABABABABABABAB
+ABABABB5B5B5B5B5B5B5B5B5CDCDCDCDCDCDCDCDCDC7C7C7C7C7C7C7C7C7969696969696969696
+969696828282828282828282818181818181818181818181818181818181838383838383838383
+8A8A8A8A8A8A8A8A8A8A8A8A959595959595959595A2A2A2A2A2A2A2A2A2AFAFAFAFAFAFAFAFAF
+B8B8B8B8B8B8B8B8B8BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB4B4B4B4B4B4B4B4B4
+ACACACACACACACACACAAAAAAAAAAAAAAAAAAAAAAAAB9B9B9B9B9B9B9B9B9CBCBCBCBCBCBCBCBCB
+D2D2D2D2D2D2D2D2D2EBEBEBEBEBEBEBEBEBECECECECECECECECECECECECDEDEDEDEDEDEDEDEDE
+B4B4B4B4B4B4B4B4B49090909090909090908E8E8E8E8E8E8E8E8E989898989898989898989898
+AEAEAEAEAEAEAEAEAEB9B9B9B9B9B9B9B9B9BBBBBBBBBBBBBBBBBBC1C1C1C1C1C1C1C1C1C1C1C1
+C1C1C1C1C1C1C1C1C1BABABABABABABABABABABABABABABABABABAB7B7B7B7B7B7B7B7B7C7C7C7
+C7C7C7C7C7C7C7C7C7D1D1D1D1D1D1D1D1D1B3B3B3B3B3B3B3B3B38E8E8E8E8E8E8E8E8EA1A1A1
+A1A1A1A1A1A1B6B6B6B6B6B6B6B6B6B6B6B6BFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFAAAAAA
+AAAAAAAAAAAA9E9E9E9E9E9E9E9E9E9E9E9EBBBBBBBBBBBBBBBBBBB7B7B7B7B7B7B7B7B7D1D1D1
+D1D1D1D1D1D1CECECECECECECECECEADADADADADADADADADADADAD838383838383838383A3A3A3
+A3A3A3A3A3A3D6D6D6D6D6D6D6D6D6E0E0E0E0E0E0E0E0E0D0D0D0D0D0D0D0D0D0D0D0D09A9A9A
+9A9A9A9A9A9A919191919191919191BDBDBDBDBDBDBDBDBDD6D6D5D6D6D5D6D6D5D6D6D5D9D9D9
+D9D9D9D9D9D9D0D0D0D0D0D0D0D0D0C2C2C2C2C2C2C2C2C2C5C5C5C5C5C5C5C5C5D3D3D3D3D3D3
+D3D3D3D3D3D3DBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDFDFDFDFDFDFDFDFDFE0E0E0E0E0E0
+E0E0E0B8B8B8B8B8B8B8B8B8B8B8B8A8A8A8A8A8A8A8A8A8CACACACACACACACACAE5E5E5E5E5E5
+E5E5E5E3E3E3E3E3E3E3E3E3E3E3E3ACACACACACACACACAC6464646464646464646B6B6B6B6B6B
+6B6B6BB8B8B8B8B8B8B8B8B8E4E4E4E4E4E4E4E4E4E4E4E4DADADADADADADADADAA9A9A9A9A9A9
+A9A9A97474747474747474747878787878787878789E9E9E9E9E9E9E9E9E9E9E9EB5B5B5B5B5B5
+B5B5B5B3B3B3B3B3B3B3B3B3A7A7A7A7A7A7A7A7A79B9B9B9B9B9B9B9B9B9B9B9BA1A1A1A1A1A1
+A1A1A19D9D9D9D9D9D9D9D9D9999999999999999999191919191919191919A9A9A9A9A9A9A9A9A
+9A9A9AA5A5A5A5A5A5A5A5A5989898989898989898999999999999999999A7A7A7A7A7A7A7A7A7
+B4B4B4B4B4B4B4B4B4B4B4B4B9B9B9B9B9B9B9B9B9C5C5C5C5C5C5C5C5C5C3C3C3C3C3C3C3C3C3
+B0B1B0B0B1B0B0B1B0B0B1B0AAAAAAAAAAAAAAAAAAAEAEAEAEAEAEAEAEAE898989898989898989
+565656565656565656656565656565656565656565949494949494949494ABABABABABABABABAB
+ACACACACACACACACACABABABABABABABABABABABABABABABABABABABABABB5B5B5B5B5B5B5B5B5
+CDCDCDCDCDCDCDCDCDC7C7C7C7C7C7C7C7C7969696969696969696969696828282828282828282
+8181818181818181818181818181818181818383838383838383838A8A8A8A8A8A8A8A8A8A8A8A
+959595959595959595A2A2A2A2A2A2A2A2A2AFAFAFAFAFAFAFAFAFB8B8B8B8B8B8B8B8B8BBBBBB
+BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB4B4B4B4B4B4B4B4B4ACACACACACACACACACAAAAAA
+AAAAAAAAAAAAAAAAAAB9B9B9B9B9B9B9B9B9CBCBCBCBCBCBCBCBCBD2D2D2D2D2D2D2D2D2EBEBEB
+EBEBEBEBEBEBECECECECECECECECECECECECDEDEDEDEDEDEDEDEDEB4B4B4B4B4B4B4B4B4909090
+9090909090908E8E8E8E8E8E8E8E8E989898989898989898989898AEAEAEAEAEAEAEAEAEB9B9B9
+B9B9B9B9B9B9BBBBBBBBBBBBBBBBBBC1C1C1C1C1C1C1C1C1C1C1C1C1C1C1C1C1C1C1C1C1BABABA
+BABABABABABABABABABABABABABABAB7B7B7B7B7B7B7B7B7C7C7C7C7C7C7C7C7C7C7C7C7D1D1D1
+D1D1D1D1D1D1B3B3B3B3B3B3B3B3B38E8E8E8E8E8E8E8E8EA1A1A1A1A1A1A1A1A1B6B6B6B6B6B6
+B6B6B6B6B6B6BFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFAAAAAAAAAAAAAAAAAA9E9E9E9E9E9E
+9E9E9E9E9E9EBBBBBBBBBBBBBBBBBBB7B7B7B7B7B7B7B7B7D6D6D5D6D6D5D6D6D5C1C1C1C1C1C1
+C1C1C1929292929292929292929292868686868686868686B7B7B7B7B7B7B7B7B7D4D4D4D4D4D4
+D4D4D4D8D8D8D8D8D8D8D8D8D7D7D7D7D7D7D7D7D7D7D7D7C5C5C5C5C5C5C5C5C5C3C3C3C3C3C3
+C3C3C3D1D1D1D1D1D1D1D1D1D8D8D8D8D8D8D8D8D8D8D8D8D6D6D6D6D6D6D6D6D6D7D7D7D7D7D7
+D7D7D7D1D1D1D1D1D1D1D1D1C3C3C3C3C3C3C3C3C3BDBDBDBDBDBDBDBDBDBDBDBDCBCBCBCBCBCB
+CBCBCBDADADADADADADADADAE6E6E6E6E6E6E6E6E6DBDBDBDBDBDBDBDBDB909090909090909090
+909090777777777777777777B6B6B6B6B6B6B6B6B6E1E1E1E1E1E1E1E1E1D8D8D8D8D8D8D8D8D8
+D8D8D89292929292929292925D5D5D5D5D5D5D5D5D7E7E7E7E7E7E7E7E7EBFBFBFBFBFBFBFBFBF
+E6E6E6E6E6E6E6E6E6E6E6E6DBDBDBDBDBDBDBDBDBBABABABABABABABABA9E9E9E9E9E9E9E9E9E
+A8A8A8A8A8A8A8A8A8C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2B8B8B8B8B8B8B8B8B8
+A8A8A8A8A8A8A8A8A8A3A3A3A3A3A3A3A3A3A3A3A3A5A5A5A5A5A5A5A5A59A9A9A9A9A9A9A9A9A
+9393939393939393939696969696969696969C9C9C9C9C9C9C9C9C9C9C9C9E9E9E9E9E9E9E9E9E
+9090909090909090909F9F9F9F9F9F9F9F9FB0B0B0B0B0B0B0B0B0B0B1B0B0B1B0B0B1B0B0B1B0
+B2B2B2B2B2B2B2B2B2C9C9C9C9C9C9C9C9C9D6D6D6D6D6D6D6D6D6CFCFCFCFCFCFCFCFCFCFCFCF
+C4C4C4C4C4C4C4C4C4B2B2B2B2B2B2B2B2B2909090909090909090616161616161616161616161
+6161616161616161618B8B8B8B8B8B8B8B8BAEAEAEAEAEAEAEAEAEB9B9B9B9B9B9B9B9B9B4B4B4
+B4B4B4B4B4B4A8A8A8A8A8A8A8A8A8A8A8A8A2A2A2A2A2A2A2A2A2A8A8A8A8A8A8A8A8A8ADADAD
+ADADADADADAD909090909090909090909090848484848484848484838383838383838383848484
+8484848484848787878787878787878B8B8B8B8B8B8B8B8B8B8B8B9393939393939393939F9F9F
+9F9F9F9F9F9FADADADADADADADADADB8B8B8B8B8B8B8B8B8BEBEBEBEBEBEBEBEBEBEBEBEBFBFBF
+BFBFBFBFBFBFBDBDBDBDBDBDBDBDBDC3C3C3C3C3C3C3C3C3D0D0D0D0D0D0D0D0D0D0D0D0DBDBDB
+DBDBDBDBDBDBDDDDDDDDDDDDDDDDDDD2D2D2D2D2D2D2D2D2D4D4D4D4D4D4D4D4D4B1B1B1B1B1B1
+B1B1B1B1B1B18989898989898989896A6A6A6A6A6A6A6A6A7A7A7A7A7A7A7A7A7A979797979797
+9797979B9B9B9B9B9B9B9B9B9B9B9BAAAAAAAAAAAAAAAAAAB8B8B8B8B8B8B8B8B8BABABABABABA
+BABABABBBBBBBBBBBBBBBBBBBBBBBBB8B8B8B8B8B8B8B8B8ADADADADADADADADADA9A9A9A9A9A9
+A9A9A99E9E9E9E9E9E9E9E9EAEAEAEAEAEAEAEAEAEAEAEAEC5C5C5C5C5C5C5C5C5B0B0B0B0B0B0
+B0B0B0909090909090909090ABABABABABABABABABBDBDBDBDBDBDBDBDBDBDBDBDB8B8B8B8B8B8
+B8B8B8ABABABABABABABABABACACACACACACACACACB5B5B5B5B5B5B5B5B5B5B5B5C5C5C5C5C5C5
+C5C5C5B8B8B8B8B8B8B8B8B8D6D6D5D6D6D5D6D6D5C1C1C1C1C1C1C1C1C1929292929292929292
+929292868686868686868686B7B7B7B7B7B7B7B7B7D4D4D4D4D4D4D4D4D4D8D8D8D8D8D8D8D8D8
+D7D7D7D7D7D7D7D7D7D7D7D7C5C5C5C5C5C5C5C5C5C3C3C3C3C3C3C3C3C3D1D1D1D1D1D1D1D1D1
+D8D8D8D8D8D8D8D8D8D8D8D8D6D6D6D6D6D6D6D6D6D7D7D7D7D7D7D7D7D7D1D1D1D1D1D1D1D1D1
+C3C3C3C3C3C3C3C3C3BDBDBDBDBDBDBDBDBDBDBDBDCBCBCBCBCBCBCBCBCBDADADADADADADADADA
+E6E6E6E6E6E6E6E6E6DBDBDBDBDBDBDBDBDB909090909090909090909090777777777777777777
+B6B6B6B6B6B6B6B6B6E1E1E1E1E1E1E1E1E1D8D8D8D8D8D8D8D8D8D8D8D8929292929292929292
+5D5D5D5D5D5D5D5D5D7E7E7E7E7E7E7E7E7EBFBFBFBFBFBFBFBFBFE6E6E6E6E6E6E6E6E6E6E6E6
+DBDBDBDBDBDBDBDBDBBABABABABABABABABA9E9E9E9E9E9E9E9E9EA8A8A8A8A8A8A8A8A8C2C2C2
+C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2B8B8B8B8B8B8B8B8B8A8A8A8A8A8A8A8A8A8A3A3A3
+A3A3A3A3A3A3A3A3A3A5A5A5A5A5A5A5A5A59A9A9A9A9A9A9A9A9A939393939393939393969696
+9696969696969C9C9C9C9C9C9C9C9C9C9C9C9E9E9E9E9E9E9E9E9E9090909090909090909F9F9F
+9F9F9F9F9F9FB0B0B0B0B0B0B0B0B0B0B1B0B0B1B0B0B1B0B0B1B0B2B2B2B2B2B2B2B2B2C9C9C9
+C9C9C9C9C9C9D6D6D6D6D6D6D6D6D6CFCFCFCFCFCFCFCFCFCFCFCFC4C4C4C4C4C4C4C4C4B2B2B2
+B2B2B2B2B2B29090909090909090906161616161616161616161616161616161616161618B8B8B
+8B8B8B8B8B8BAEAEAEAEAEAEAEAEAEB9B9B9B9B9B9B9B9B9B4B4B4B4B4B4B4B4B4A8A8A8A8A8A8
+A8A8A8A8A8A8A2A2A2A2A2A2A2A2A2A8A8A8A8A8A8A8A8A8ADADADADADADADADAD909090909090
+909090909090848484848484848484838383838383838383848484848484848484878787878787
+8787878B8B8B8B8B8B8B8B8B8B8B8B9393939393939393939F9F9F9F9F9F9F9F9FADADADADADAD
+ADADADB8B8B8B8B8B8B8B8B8BEBEBEBEBEBEBEBEBEBEBEBEBFBFBFBFBFBFBFBFBFBDBDBDBDBDBD
+BDBDBDC3C3C3C3C3C3C3C3C3D0D0D0D0D0D0D0D0D0D0D0D0DBDBDBDBDBDBDBDBDBDDDDDDDDDDDD
+DDDDDDD2D2D2D2D2D2D2D2D2D4D4D4D4D4D4D4D4D4B1B1B1B1B1B1B1B1B1B1B1B1898989898989
+8989896A6A6A6A6A6A6A6A6A7A7A7A7A7A7A7A7A7A9797979797979797979B9B9B9B9B9B9B9B9B
+9B9B9BAAAAAAAAAAAAAAAAAAB8B8B8B8B8B8B8B8B8BABABABABABABABABABBBBBBBBBBBBBBBBBB
+BBBBBBB8B8B8B8B8B8B8B8B8ADADADADADADADADADA9A9A9A9A9A9A9A9A99E9E9E9E9E9E9E9E9E
+AEAEAEAEAEAEAEAEAEAEAEAEC5C5C5C5C5C5C5C5C5B0B0B0B0B0B0B0B0B0909090909090909090
+ABABABABABABABABABBDBDBDBDBDBDBDBDBDBDBDBDB8B8B8B8B8B8B8B8B8ABABABABABABABABAB
+ACACACACACACACACACB5B5B5B5B5B5B5B5B5B5B5B5C5C5C5C5C5C5C5C5C5B8B8B8B8B8B8B8B8B8
+D6D6D5D6D6D5D6D6D5C1C1C1C1C1C1C1C1C1929292929292929292929292868686868686868686
+B7B7B7B7B7B7B7B7B7D4D4D4D4D4D4D4D4D4D8D8D8D8D8D8D8D8D8D7D7D7D7D7D7D7D7D7D7D7D7
+C5C5C5C5C5C5C5C5C5C3C3C3C3C3C3C3C3C3D1D1D1D1D1D1D1D1D1D8D8D8D8D8D8D8D8D8D8D8D8
+D6D6D6D6D6D6D6D6D6D7D7D7D7D7D7D7D7D7D1D1D1D1D1D1D1D1D1C3C3C3C3C3C3C3C3C3BDBDBD
+BDBDBDBDBDBDBDBDBDCBCBCBCBCBCBCBCBCBDADADADADADADADADAE6E6E6E6E6E6E6E6E6DBDBDB
+DBDBDBDBDBDB909090909090909090909090777777777777777777B6B6B6B6B6B6B6B6B6E1E1E1
+E1E1E1E1E1E1D8D8D8D8D8D8D8D8D8D8D8D89292929292929292925D5D5D5D5D5D5D5D5D7E7E7E
+7E7E7E7E7E7EBFBFBFBFBFBFBFBFBFE6E6E6E6E6E6E6E6E6E6E6E6DBDBDBDBDBDBDBDBDBBABABA
+BABABABABABA9E9E9E9E9E9E9E9E9EA8A8A8A8A8A8A8A8A8C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2
+C2C2C2C2C2C2B8B8B8B8B8B8B8B8B8A8A8A8A8A8A8A8A8A8A3A3A3A3A3A3A3A3A3A3A3A3A5A5A5
+A5A5A5A5A5A59A9A9A9A9A9A9A9A9A9393939393939393939696969696969696969C9C9C9C9C9C
+9C9C9C9C9C9C9E9E9E9E9E9E9E9E9E9090909090909090909F9F9F9F9F9F9F9F9FB0B0B0B0B0B0
+B0B0B0B0B1B0B0B1B0B0B1B0B0B1B0B2B2B2B2B2B2B2B2B2C9C9C9C9C9C9C9C9C9D6D6D6D6D6D6
+D6D6D6CFCFCFCFCFCFCFCFCFCFCFCFC4C4C4C4C4C4C4C4C4B2B2B2B2B2B2B2B2B2909090909090
+9090906161616161616161616161616161616161616161618B8B8B8B8B8B8B8B8BAEAEAEAEAEAE
+AEAEAEB9B9B9B9B9B9B9B9B9B4B4B4B4B4B4B4B4B4A8A8A8A8A8A8A8A8A8A8A8A8A2A2A2A2A2A2
+A2A2A2A8A8A8A8A8A8A8A8A8ADADADADADADADADAD909090909090909090909090848484848484
+8484848383838383838383838484848484848484848787878787878787878B8B8B8B8B8B8B8B8B
+8B8B8B9393939393939393939F9F9F9F9F9F9F9F9FADADADADADADADADADB8B8B8B8B8B8B8B8B8
+BEBEBEBEBEBEBEBEBEBEBEBEBFBFBFBFBFBFBFBFBFBDBDBDBDBDBDBDBDBDC3C3C3C3C3C3C3C3C3
+D0D0D0D0D0D0D0D0D0D0D0D0DBDBDBDBDBDBDBDBDBDDDDDDDDDDDDDDDDDDD2D2D2D2D2D2D2D2D2
+D4D4D4D4D4D4D4D4D4B1B1B1B1B1B1B1B1B1B1B1B18989898989898989896A6A6A6A6A6A6A6A6A
+7A7A7A7A7A7A7A7A7A9797979797979797979B9B9B9B9B9B9B9B9B9B9B9BAAAAAAAAAAAAAAAAAA
+B8B8B8B8B8B8B8B8B8BABABABABABABABABABBBBBBBBBBBBBBBBBBBBBBBBB8B8B8B8B8B8B8B8B8
+ADADADADADADADADADA9A9A9A9A9A9A9A9A99E9E9E9E9E9E9E9E9EAEAEAEAEAEAEAEAEAEAEAEAE
+C5C5C5C5C5C5C5C5C5B0B0B0B0B0B0B0B0B0909090909090909090ABABABABABABABABABBDBDBD
+BDBDBDBDBDBDBDBDBDB8B8B8B8B8B8B8B8B8ABABABABABABABABABACACACACACACACACACB5B5B5
+B5B5B5B5B5B5B5B5B5C5C5C5C5C5C5C5C5C5B8B8B8B8B8B8B8B8B8E1E1E1E1E1E1E1E1E1CACACA
+CACACACACACAA1A1A1A1A1A1A1A1A1A1A1A19E9E9E9E9E9E9E9E9EC5C5C5C5C5C5C5C5C5D0D0D0
+D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0DDDDDDDDDDDDDDDDDDDDDDDDD0D0D0D0D0D0D0D0D0C0C0C0
+C0C0C0C0C0C0B7B7B7B7B7B7B7B7B7C1C1C1C1C1C1C1C1C1C1C1C1D5D5D5D5D5D5D5D5D5D0D0D0
+D0D0D0D0D0D0BEBEBEBEBEBEBEBEBE9393939393939393937D7D7D7D7D7D7D7D7D7D7D7DA8A8A8
+A8A8A8A8A8A8D8D8D8D8D8D8D8D8D8E0E0E0E0E0E0E0E0E0C4C4C4C4C4C4C4C4C4828282828282
+8282828282826D6D6D6D6D6D6D6D6DAEAEAEAEAEAEAEAEAEE0E0E0E0E0E0E0E0E0CFCFCFCFCFCF
+CFCFCFCFCFCF969696969696969696676767676767676767979797979797979797D5D5D5D5D5D5
+D5D5D5E8E9E8E8E9E8E8E9E8E8E9E8DEDEDEDEDEDEDEDEDEC6C6C6C6C6C6C6C6C6CCCCCCCCCCCC
+CCCCCCE0E0E0E0E0E0E0E0E0E6E6E6E6E6E6E6E6E6E6E6E6D1D1D1D1D1D1D1D1D1B7B7B7B7B7B7
+B7B7B7B0B1B0B0B1B0B0B1B0B3B3B3B3B3B3B3B3B3B3B3B3B0B0B0B0B0B0B0B0B0A1A1A1A1A1A1
+A1A1A19A9A9A9A9A9A9A9A9A9696969696969696969999999999999999999999999A9A9A9A9A9A
+9A9A9A8F8F8F8F8F8F8F8F8F9A9A9A9A9A9A9A9A9AADADADADADADADADADB3B3B3B3B3B3B3B3B3
+B3B3B3B1B1B1B1B1B1B1B1B1BEBEBEBEBEBEBEBEBED1D1D1D1D1D1D1D1D1D5D5D5D5D5D5D5D5D5
+D5D5D5CBCBCBCBCBCBCBCBCBC5C5C5C5C5C5C5C5C5B7B7B7B7B7B7B7B7B7939393939393939393
+757575757575757575757575707070707070707070797979797979797979797979797979797979
+7878787878787878787B7B7B7B7B7B7B7B7B7B7B7B818181818181818181898989898989898989
+9696969696969696968D8D8D8D8D8D8D8D8D8D8D8D898989898989898989878787878787878787
+8686868686868686868787878787878787878B8B8B8B8B8B8B8B8B8B8B8B939393939393939393
+9C9C9C9C9C9C9C9C9CA9A9A9A9A9A9A9A9A9B6B6B6B6B6B6B6B6B6B9B9B9B9B9B9B9B9B9B9B9B9
+AFAFAFAFAFAFAFAFAF9A9A9A9A9A9A9A9A9A9999999999999999999E9E9E9E9E9E9E9E9E9E9E9E
+9B9B9B9B9B9B9B9B9B9999999999999999999090909090909090908E8E8E8E8E8E8E8E8E727272
+7272727272727272724F4F4F4F4F4F4F4F4F6868686868686868688A8A8A8A8A8A8A8A8A939393
+939393939393A3A3A3A3A3A3A3A3A3A3A3A3B0B1B0B0B1B0B0B1B0B6B6B6B6B6B6B6B6B6B1B1B1
+B1B1B1B1B1B1B6B6B6B6B6B6B6B6B6B6B6B6B4B4B4B4B4B4B4B4B4A2A2A2A2A2A2A2A2A28E8E8E
+8E8E8E8E8E8E797979797979797979898989898989898989898989B9B9B9B9B9B9B9B9B9BFBFBF
+BFBFBFBFBFBFB1B1B1B1B1B1B1B1B1C0C0C0C0C0C0C0C0C0C5C5C5C5C5C5C5C5C5C5C5C5A6A6A6
+A6A6A6A6A6A68787878787878787879F9F9F9F9F9F9F9F9FC3C3C3C3C3C3C3C3C3C3C3C3D0D0D0
+D0D0D0D0D0D0B4B4B4B4B4B4B4B4B4E1E1E1E1E1E1E1E1E1CACACACACACACACACAA1A1A1A1A1A1
+A1A1A1A1A1A19E9E9E9E9E9E9E9E9EC5C5C5C5C5C5C5C5C5D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0
+D0D0D0DDDDDDDDDDDDDDDDDDDDDDDDD0D0D0D0D0D0D0D0D0C0C0C0C0C0C0C0C0C0B7B7B7B7B7B7
+B7B7B7C1C1C1C1C1C1C1C1C1C1C1C1D5D5D5D5D5D5D5D5D5D0D0D0D0D0D0D0D0D0BEBEBEBEBEBE
+BEBEBE9393939393939393937D7D7D7D7D7D7D7D7D7D7D7DA8A8A8A8A8A8A8A8A8D8D8D8D8D8D8
+D8D8D8E0E0E0E0E0E0E0E0E0C4C4C4C4C4C4C4C4C48282828282828282828282826D6D6D6D6D6D
+6D6D6DAEAEAEAEAEAEAEAEAEE0E0E0E0E0E0E0E0E0CFCFCFCFCFCFCFCFCFCFCFCF969696969696
+969696676767676767676767979797979797979797D5D5D5D5D5D5D5D5D5E8E9E8E8E9E8E8E9E8
+E8E9E8DEDEDEDEDEDEDEDEDEC6C6C6C6C6C6C6C6C6CCCCCCCCCCCCCCCCCCE0E0E0E0E0E0E0E0E0
+E6E6E6E6E6E6E6E6E6E6E6E6D1D1D1D1D1D1D1D1D1B7B7B7B7B7B7B7B7B7B0B1B0B0B1B0B0B1B0
+B3B3B3B3B3B3B3B3B3B3B3B3B0B0B0B0B0B0B0B0B0A1A1A1A1A1A1A1A1A19A9A9A9A9A9A9A9A9A
+9696969696969696969999999999999999999999999A9A9A9A9A9A9A9A9A8F8F8F8F8F8F8F8F8F
+9A9A9A9A9A9A9A9A9AADADADADADADADADADB3B3B3B3B3B3B3B3B3B3B3B3B1B1B1B1B1B1B1B1B1
+BEBEBEBEBEBEBEBEBED1D1D1D1D1D1D1D1D1D5D5D5D5D5D5D5D5D5D5D5D5CBCBCBCBCBCBCBCBCB
+C5C5C5C5C5C5C5C5C5B7B7B7B7B7B7B7B7B7939393939393939393757575757575757575757575
+7070707070707070707979797979797979797979797979797979797878787878787878787B7B7B
+7B7B7B7B7B7B7B7B7B8181818181818181818989898989898989899696969696969696968D8D8D
+8D8D8D8D8D8D8D8D8D898989898989898989878787878787878787868686868686868686878787
+8787878787878B8B8B8B8B8B8B8B8B8B8B8B9393939393939393939C9C9C9C9C9C9C9C9CA9A9A9
+A9A9A9A9A9A9B6B6B6B6B6B6B6B6B6B9B9B9B9B9B9B9B9B9B9B9B9AFAFAFAFAFAFAFAFAF9A9A9A
+9A9A9A9A9A9A9999999999999999999E9E9E9E9E9E9E9E9E9E9E9E9B9B9B9B9B9B9B9B9B999999
+9999999999999090909090909090908E8E8E8E8E8E8E8E8E7272727272727272727272724F4F4F
+4F4F4F4F4F4F6868686868686868688A8A8A8A8A8A8A8A8A939393939393939393A3A3A3A3A3A3
+A3A3A3A3A3A3B0B1B0B0B1B0B0B1B0B6B6B6B6B6B6B6B6B6B1B1B1B1B1B1B1B1B1B6B6B6B6B6B6
+B6B6B6B6B6B6B4B4B4B4B4B4B4B4B4A2A2A2A2A2A2A2A2A28E8E8E8E8E8E8E8E8E797979797979
+797979898989898989898989898989B9B9B9B9B9B9B9B9B9BFBFBFBFBFBFBFBFBFB1B1B1B1B1B1
+B1B1B1C0C0C0C0C0C0C0C0C0C5C5C5C5C5C5C5C5C5C5C5C5A6A6A6A6A6A6A6A6A6878787878787
+8787879F9F9F9F9F9F9F9F9FC3C3C3C3C3C3C3C3C3C3C3C3D0D0D0D0D0D0D0D0D0B4B4B4B4B4B4
+B4B4B4EDEDEDEDEDEDEDEDEDDDDDDDDDDDDDDDDDDDCDCDCDCDCDCDCDCDCDCDCDCDC0C0C0C0C0C0
+C0C0C0BBBBBBBBBBBBBBBBBBC1C1C1C1C1C1C1C1C1CECECECECECECECECEDEDEDEDEDEDEDEDEDE
+DEDEDED5D5D5D5D5D5D5D5D5B4B4B4B4B4B4B4B4B4838383838383838383999999999999999999
+999999D1D1D1D1D1D1D1D1D1D5D5D5D5D5D5D5D5D5C1C1C1C1C1C1C1C1C1828282828282828282
+6C6C6C6C6C6C6C6C6C6C6C6CA3A3A3A3A3A3A3A3A3D8D8D8D8D8D8D8D8D8D2D2D2D2D2D2D2D2D2
+ACACACACACACACACAC7B7B7B7B7B7B7B7B7B7B7B7B929292929292929292C5C5C5C5C5C5C5C5C5
+E2E2E2E2E2E2E2E2E2D6D6D6D6D6D6D6D6D6D6D6D6AEAEAEAEAEAEAEAEAE949494949494949494
+AEAEAEAEAEAEAEAEAED5D5D5D5D5D5D5D5D5DBDBDBDBDBDBDBDBDBDBDBDBD6D6D5D6D6D5D6D6D5
+C6C6C6C6C6C6C6C6C6D4D4D4D4D4D4D4D4D4EDEDEDEDEDEDEDEDEDE7E7E7E7E7E7E7E7E7E7E7E7
+D4D4D4D4D4D4D4D4D4C1C1C1C1C1C1C1C1C1B5B5B5B5B5B5B5B5B5C6C6C6C6C6C6C6C6C6C6C6C6
+C1C1C1C1C1C1C1C1C1AEAEAEAEAEAEAEAEAEA7A7A7A7A7A7A7A7A79A9A9A9A9A9A9A9A9A9E9E9E
+9E9E9E9E9E9E9E9E9E9C9C9C9C9C9C9C9C9C939393939393939393989898989898989898A0A0A0
+A0A0A0A0A0A0ADADADADADADADADADADADADB5B5B5B5B5B5B5B5B5BEBEBEBEBEBEBEBEBECDCDCD
+CDCDCDCDCDCDCFCFCFCFCFCFCFCFCFCFCFCFBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBECECECE
+CECECECECECEC2C2C2C2C2C2C2C2C2A7A7A7A7A7A7A7A7A7A7A7A79898989898989898988B8B8B
+8B8B8B8B8B8B7979797979797979796868686868686868686A6A6A6A6A6A6A6A6A6A6A6A6C6C6C
+6C6C6C6C6C6C6E6E6E6E6E6E6E6E6E737373737373737373797979797979797979797979868686
+8686868686868989898989898989898787878787878787878989898989898989898E8E8E8E8E8E
+8E8E8E8E8E8E9393939393939393939797979797979797979F9F9F9F9F9F9F9F9FB0B1B0B0B1B0
+B0B1B0A2A2A2A2A2A2A2A2A2A2A2A27B7B7B7B7B7B7B7B7B5E5E5E5E5E5E5E5E5E575757575757
+575757555555555555555555555555545454545454545454585858585858585858636363636363
+6363637676767676767676766464646464646464646464645151515151515151517C7C7C7C7C7C
+7C7C7C9B9B9B9B9B9B9B9B9BA3A3A3A3A3A3A3A3A3B2B2B2B2B2B2B2B2B2B2B2B2B8B8B8B8B8B8
+B8B8B8B3B3B3B3B3B3B3B3B3ACACACACACACACACACB5B5B5B5B5B5B5B5B5B5B5B5B4B4B4B4B4B4
+B4B4B4A8A8A8A8A8A8A8A8A89797979797979797978B8B8B8B8B8B8B8B8BA0A0A0A0A0A0A0A0A0
+A0A0A0C1C1C1C1C1C1C1C1C1C5C5C5C5C5C5C5C5C5B0B0B0B0B0B0B0B0B0B8B8B8B8B8B8B8B8B8
+CACACACACACACACACACACACAB0B1B0B0B1B0B0B1B09B9B9B9B9B9B9B9B9BACACACACACACACACAC
+C6C6C6C6C6C6C6C6C6C6C6C6C5C5C5C5C5C5C5C5C59F9F9F9F9F9F9F9F9FEDEDEDEDEDEDEDEDED
+DDDDDDDDDDDDDDDDDDCDCDCDCDCDCDCDCDCDCDCDCDC0C0C0C0C0C0C0C0C0BBBBBBBBBBBBBBBBBB
+C1C1C1C1C1C1C1C1C1CECECECECECECECECEDEDEDEDEDEDEDEDEDEDEDEDED5D5D5D5D5D5D5D5D5
+B4B4B4B4B4B4B4B4B4838383838383838383999999999999999999999999D1D1D1D1D1D1D1D1D1
+D5D5D5D5D5D5D5D5D5C1C1C1C1C1C1C1C1C18282828282828282826C6C6C6C6C6C6C6C6C6C6C6C
+A3A3A3A3A3A3A3A3A3D8D8D8D8D8D8D8D8D8D2D2D2D2D2D2D2D2D2ACACACACACACACACAC7B7B7B
+7B7B7B7B7B7B7B7B7B929292929292929292C5C5C5C5C5C5C5C5C5E2E2E2E2E2E2E2E2E2D6D6D6
+D6D6D6D6D6D6D6D6D6AEAEAEAEAEAEAEAEAE949494949494949494AEAEAEAEAEAEAEAEAED5D5D5
+D5D5D5D5D5D5DBDBDBDBDBDBDBDBDBDBDBDBD6D6D5D6D6D5D6D6D5C6C6C6C6C6C6C6C6C6D4D4D4
+D4D4D4D4D4D4EDEDEDEDEDEDEDEDEDE7E7E7E7E7E7E7E7E7E7E7E7D4D4D4D4D4D4D4D4D4C1C1C1
+C1C1C1C1C1C1B5B5B5B5B5B5B5B5B5C6C6C6C6C6C6C6C6C6C6C6C6C1C1C1C1C1C1C1C1C1AEAEAE
+AEAEAEAEAEAEA7A7A7A7A7A7A7A7A79A9A9A9A9A9A9A9A9A9E9E9E9E9E9E9E9E9E9E9E9E9C9C9C
+9C9C9C9C9C9C939393939393939393989898989898989898A0A0A0A0A0A0A0A0A0ADADADADADAD
+ADADADADADADB5B5B5B5B5B5B5B5B5BEBEBEBEBEBEBEBEBECDCDCDCDCDCDCDCDCDCFCFCFCFCFCF
+CFCFCFCFCFCFBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBECECECECECECECECECEC2C2C2C2C2C2
+C2C2C2A7A7A7A7A7A7A7A7A7A7A7A79898989898989898988B8B8B8B8B8B8B8B8B797979797979
+7979796868686868686868686A6A6A6A6A6A6A6A6A6A6A6A6C6C6C6C6C6C6C6C6C6E6E6E6E6E6E
+6E6E6E737373737373737373797979797979797979797979868686868686868686898989898989
+8989898787878787878787878989898989898989898E8E8E8E8E8E8E8E8E8E8E8E939393939393
+9393939797979797979797979F9F9F9F9F9F9F9F9FB0B1B0B0B1B0B0B1B0A2A2A2A2A2A2A2A2A2
+A2A2A27B7B7B7B7B7B7B7B7B5E5E5E5E5E5E5E5E5E575757575757575757555555555555555555
+555555545454545454545454585858585858585858636363636363636363767676767676767676
+6464646464646464646464645151515151515151517C7C7C7C7C7C7C7C7C9B9B9B9B9B9B9B9B9B
+A3A3A3A3A3A3A3A3A3B2B2B2B2B2B2B2B2B2B2B2B2B8B8B8B8B8B8B8B8B8B3B3B3B3B3B3B3B3B3
+ACACACACACACACACACB5B5B5B5B5B5B5B5B5B5B5B5B4B4B4B4B4B4B4B4B4A8A8A8A8A8A8A8A8A8
+9797979797979797978B8B8B8B8B8B8B8B8BA0A0A0A0A0A0A0A0A0A0A0A0C1C1C1C1C1C1C1C1C1
+C5C5C5C5C5C5C5C5C5B0B0B0B0B0B0B0B0B0B8B8B8B8B8B8B8B8B8CACACACACACACACACACACACA
+B0B1B0B0B1B0B0B1B09B9B9B9B9B9B9B9B9BACACACACACACACACACC6C6C6C6C6C6C6C6C6C6C6C6
+C5C5C5C5C5C5C5C5C59F9F9F9F9F9F9F9F9FEDEDEDEDEDEDEDEDEDDDDDDDDDDDDDDDDDDDCDCDCD
+CDCDCDCDCDCDCDCDCDC0C0C0C0C0C0C0C0C0BBBBBBBBBBBBBBBBBBC1C1C1C1C1C1C1C1C1CECECE
+CECECECECECEDEDEDEDEDEDEDEDEDEDEDEDED5D5D5D5D5D5D5D5D5B4B4B4B4B4B4B4B4B4838383
+838383838383999999999999999999999999D1D1D1D1D1D1D1D1D1D5D5D5D5D5D5D5D5D5C1C1C1
+C1C1C1C1C1C18282828282828282826C6C6C6C6C6C6C6C6C6C6C6CA3A3A3A3A3A3A3A3A3D8D8D8
+D8D8D8D8D8D8D2D2D2D2D2D2D2D2D2ACACACACACACACACAC7B7B7B7B7B7B7B7B7B7B7B7B929292
+929292929292C5C5C5C5C5C5C5C5C5E2E2E2E2E2E2E2E2E2D6D6D6D6D6D6D6D6D6D6D6D6AEAEAE
+AEAEAEAEAEAE949494949494949494AEAEAEAEAEAEAEAEAED5D5D5D5D5D5D5D5D5DBDBDBDBDBDB
+DBDBDBDBDBDBD6D6D5D6D6D5D6D6D5C6C6C6C6C6C6C6C6C6D4D4D4D4D4D4D4D4D4EDEDEDEDEDED
+EDEDEDE7E7E7E7E7E7E7E7E7E7E7E7D4D4D4D4D4D4D4D4D4C1C1C1C1C1C1C1C1C1B5B5B5B5B5B5
+B5B5B5C6C6C6C6C6C6C6C6C6C6C6C6C1C1C1C1C1C1C1C1C1AEAEAEAEAEAEAEAEAEA7A7A7A7A7A7
+A7A7A79A9A9A9A9A9A9A9A9A9E9E9E9E9E9E9E9E9E9E9E9E9C9C9C9C9C9C9C9C9C939393939393
+939393989898989898989898A0A0A0A0A0A0A0A0A0ADADADADADADADADADADADADB5B5B5B5B5B5
+B5B5B5BEBEBEBEBEBEBEBEBECDCDCDCDCDCDCDCDCDCFCFCFCFCFCFCFCFCFCFCFCFBEBEBEBEBEBE
+BEBEBEBEBEBEBEBEBEBEBEBECECECECECECECECECEC2C2C2C2C2C2C2C2C2A7A7A7A7A7A7A7A7A7
+A7A7A79898989898989898988B8B8B8B8B8B8B8B8B797979797979797979686868686868686868
+6A6A6A6A6A6A6A6A6A6A6A6A6C6C6C6C6C6C6C6C6C6E6E6E6E6E6E6E6E6E737373737373737373
+797979797979797979797979868686868686868686898989898989898989878787878787878787
+8989898989898989898E8E8E8E8E8E8E8E8E8E8E8E939393939393939393979797979797979797
+9F9F9F9F9F9F9F9F9FB0B1B0B0B1B0B0B1B0A2A2A2A2A2A2A2A2A2A2A2A27B7B7B7B7B7B7B7B7B
+5E5E5E5E5E5E5E5E5E575757575757575757555555555555555555555555545454545454545454
+585858585858585858636363636363636363767676767676767676646464646464646464646464
+5151515151515151517C7C7C7C7C7C7C7C7C9B9B9B9B9B9B9B9B9BA3A3A3A3A3A3A3A3A3B2B2B2
+B2B2B2B2B2B2B2B2B2B8B8B8B8B8B8B8B8B8B3B3B3B3B3B3B3B3B3ACACACACACACACACACB5B5B5
+B5B5B5B5B5B5B5B5B5B4B4B4B4B4B4B4B4B4A8A8A8A8A8A8A8A8A89797979797979797978B8B8B
+8B8B8B8B8B8BA0A0A0A0A0A0A0A0A0A0A0A0C1C1C1C1C1C1C1C1C1C5C5C5C5C5C5C5C5C5B0B0B0
+B0B0B0B0B0B0B8B8B8B8B8B8B8B8B8CACACACACACACACACACACACAB0B1B0B0B1B0B0B1B09B9B9B
+9B9B9B9B9B9BACACACACACACACACACC6C6C6C6C6C6C6C6C6C6C6C6C5C5C5C5C5C5C5C5C59F9F9F
+9F9F9F9F9F9FE5E5E5E5E5E5E5E5E5E0E0E0E0E0E0E0E0E0D1D1D1D1D1D1D1D1D1D1D1D1B0B0B0
+B0B0B0B0B0B08282828282828282828A8A8A8A8A8A8A8A8ABCBCBCBCBCBCBCBCBCD6D6D5D6D6D5
+D6D6D5D6D6D5C8C8C8C8C8C8C8C8C89797979797979797977272727272727272729C9C9C9C9C9C
+9C9C9C9C9C9CD8D8D8D8D8D8D8D8D8DBDBDBDBDBDBDBDBDBD3D3D3D3D3D3D3D3D3A1A1A1A1A1A1
+A1A1A1939393939393939393939393C1C1C1C1C1C1C1C1C1DFE0DFDFE0DFDFE0DFD5D5D5D5D5D5
+D5D5D5C5C5C5C5C5C5C5C5C5AAAAAAAAAAAAAAAAAAAAAAAAB4B4B4B4B4B4B4B4B4D3D3D3D3D3D3
+D3D3D3DFE0DFDFE0DFDFE0DFDCDCDCDCDCDCDCDCDCDCDCDCBEBEBEBEBEBEBEBEBEB2B2B2B2B2B2
+B2B2B2BABABABABABABABABABFBFBFBFBFBFBFBFBFBEBEBEBEBEBEBEBEBEBEBEBEB0B0B0B0B0B0
+B0B0B08C8C8C8C8C8C8C8C8CA2A2A2A2A2A2A2A2A2DBDBDBDBDBDBDBDBDBE3E3E3E3E3E3E3E3E3
+E3E3E3CECECECECECECECECEBDBDBDBDBDBDBDBDBD9C9C9C9C9C9C9C9C9CA0A0A0A0A0A0A0A0A0
+A0A0A0B4B4B4B4B4B4B4B4B4BCBCBCBCBCBCBCBCBCBABABABABABABABABAA8A8A8A8A8A8A8A8A8
+AAAAAAAAAAAAAAAAAAAAAAAA9B9B9B9B9B9B9B9B9B9A9A9A9A9A9A9A9A9A9B9B9B9B9B9B9B9B9B
+9E9E9E9E9E9E9E9E9EA3A3A3A3A3A3A3A3A3A3A3A3A6A6A6A6A6A6A6A6A6B0B1B0B0B1B0B0B1B0
+BBBBBBBBBBBBBBBBBBBABABABABABABABABABABABAAAAAAAAAAAAAAAAAAAADADADADADADADADAD
+C9C9C9C9C9C9C9C9C9CBCBCBCBCBCBCBCBCBC4C4C4C4C4C4C4C4C4C4C4C4C5C5C5C5C5C5C5C5C5
+B9B9B9B9B9B9B9B9B9AEAEAEAEAEAEAEAEAE9E9E9E9E9E9E9E9E9E959595959595959595959595
+8989898989898989897D7D7D7D7D7D7D7D7D7C7C7C7C7C7C7C7C7C797979797979797979797979
+8787878787878787879292929292929292928D8D8D8D8D8D8D8D8D8A8A8A8A8A8A8A8A8A8C8C8C
+8C8C8C8C8C8C8C8C8C8D8D8D8D8D8D8D8D8D888888888888888888969696969696969696AFAFAF
+AFAFAFAFAFAFABABABABABABABABABABABAB8D8D8D8D8D8D8D8D8D676767676767676767545454
+5454545454544D4D4D4D4D4D4D4D4D4D4D4D5050505050505050506161616161616161617C7C7C
+7C7C7C7C7C7C8484848484848484846C6C6C6C6C6C6C6C6C6C6C6C787878787878787878919191
+919191919191A5A5A5A5A5A5A5A5A5B0B1B0B0B1B0B0B1B0B2B2B2B2B2B2B2B2B2B2B2B2B3B3B3
+B3B3B3B3B3B3ADADADADADADADADADAEAEAEAEAEAEAEAEAEB9B9B9B9B9B9B9B9B9B9B9B9B5B5B5
+B5B5B5B5B5B5B6B6B6B6B6B6B6B6B6BDBDBDBDBDBDBDBDBDB7B7B7B7B7B7B7B7B7BEBEBEBEBEBE
+BEBEBEBEBEBEC7C7C7C7C7C7C7C7C7BDBDBDBDBDBDBDBDBD929292929292929292969696969696
+969696BFBFBFBFBFBFBFBFBFBFBFBFBEBEBEBEBEBEBEBEBEB4B4B4B4B4B4B4B4B4B8B8B8B8B8B8
+B8B8B8C8C8C8C8C8C8C8C8C8C8C8C8C3C3C3C3C3C3C3C3C3ABABABABABABABABABE5E5E5E5E5E5
+E5E5E5E0E0E0E0E0E0E0E0E0D1D1D1D1D1D1D1D1D1D1D1D1B0B0B0B0B0B0B0B0B0828282828282
+8282828A8A8A8A8A8A8A8A8ABCBCBCBCBCBCBCBCBCD6D6D5D6D6D5D6D6D5D6D6D5C8C8C8C8C8C8
+C8C8C89797979797979797977272727272727272729C9C9C9C9C9C9C9C9C9C9C9CD8D8D8D8D8D8
+D8D8D8DBDBDBDBDBDBDBDBDBD3D3D3D3D3D3D3D3D3A1A1A1A1A1A1A1A1A1939393939393939393
+939393C1C1C1C1C1C1C1C1C1DFE0DFDFE0DFDFE0DFD5D5D5D5D5D5D5D5D5C5C5C5C5C5C5C5C5C5
+AAAAAAAAAAAAAAAAAAAAAAAAB4B4B4B4B4B4B4B4B4D3D3D3D3D3D3D3D3D3DFE0DFDFE0DFDFE0DF
+DCDCDCDCDCDCDCDCDCDCDCDCBEBEBEBEBEBEBEBEBEB2B2B2B2B2B2B2B2B2BABABABABABABABABA
+BFBFBFBFBFBFBFBFBFBEBEBEBEBEBEBEBEBEBEBEBEB0B0B0B0B0B0B0B0B08C8C8C8C8C8C8C8C8C
+A2A2A2A2A2A2A2A2A2DBDBDBDBDBDBDBDBDBE3E3E3E3E3E3E3E3E3E3E3E3CECECECECECECECECE
+BDBDBDBDBDBDBDBDBD9C9C9C9C9C9C9C9C9CA0A0A0A0A0A0A0A0A0A0A0A0B4B4B4B4B4B4B4B4B4
+BCBCBCBCBCBCBCBCBCBABABABABABABABABAA8A8A8A8A8A8A8A8A8AAAAAAAAAAAAAAAAAAAAAAAA
+9B9B9B9B9B9B9B9B9B9A9A9A9A9A9A9A9A9A9B9B9B9B9B9B9B9B9B9E9E9E9E9E9E9E9E9EA3A3A3
+A3A3A3A3A3A3A3A3A3A6A6A6A6A6A6A6A6A6B0B1B0B0B1B0B0B1B0BBBBBBBBBBBBBBBBBBBABABA
+BABABABABABABABABAAAAAAAAAAAAAAAAAAAADADADADADADADADADC9C9C9C9C9C9C9C9C9CBCBCB
+CBCBCBCBCBCBC4C4C4C4C4C4C4C4C4C4C4C4C5C5C5C5C5C5C5C5C5B9B9B9B9B9B9B9B9B9AEAEAE
+AEAEAEAEAEAE9E9E9E9E9E9E9E9E9E9595959595959595959595958989898989898989897D7D7D
+7D7D7D7D7D7D7C7C7C7C7C7C7C7C7C797979797979797979797979878787878787878787929292
+9292929292928D8D8D8D8D8D8D8D8D8A8A8A8A8A8A8A8A8A8C8C8C8C8C8C8C8C8C8C8C8C8D8D8D
+8D8D8D8D8D8D888888888888888888969696969696969696AFAFAFAFAFAFAFAFAFABABABABABAB
+ABABABABABAB8D8D8D8D8D8D8D8D8D6767676767676767675454545454545454544D4D4D4D4D4D
+4D4D4D4D4D4D5050505050505050506161616161616161617C7C7C7C7C7C7C7C7C848484848484
+8484846C6C6C6C6C6C6C6C6C6C6C6C787878787878787878919191919191919191A5A5A5A5A5A5
+A5A5A5B0B1B0B0B1B0B0B1B0B2B2B2B2B2B2B2B2B2B2B2B2B3B3B3B3B3B3B3B3B3ADADADADADAD
+ADADADAEAEAEAEAEAEAEAEAEB9B9B9B9B9B9B9B9B9B9B9B9B5B5B5B5B5B5B5B5B5B6B6B6B6B6B6
+B6B6B6BDBDBDBDBDBDBDBDBDB7B7B7B7B7B7B7B7B7BEBEBEBEBEBEBEBEBEBEBEBEC7C7C7C7C7C7
+C7C7C7BDBDBDBDBDBDBDBDBD929292929292929292969696969696969696BFBFBFBFBFBFBFBFBF
+BFBFBFBEBEBEBEBEBEBEBEBEB4B4B4B4B4B4B4B4B4B8B8B8B8B8B8B8B8B8C8C8C8C8C8C8C8C8C8
+C8C8C8C3C3C3C3C3C3C3C3C3ABABABABABABABABABE5E5E5E5E5E5E5E5E5E0E0E0E0E0E0E0E0E0
+D1D1D1D1D1D1D1D1D1D1D1D1B0B0B0B0B0B0B0B0B08282828282828282828A8A8A8A8A8A8A8A8A
+BCBCBCBCBCBCBCBCBCD6D6D5D6D6D5D6D6D5D6D6D5C8C8C8C8C8C8C8C8C8979797979797979797
+7272727272727272729C9C9C9C9C9C9C9C9C9C9C9CD8D8D8D8D8D8D8D8D8DBDBDBDBDBDBDBDBDB
+D3D3D3D3D3D3D3D3D3A1A1A1A1A1A1A1A1A1939393939393939393939393C1C1C1C1C1C1C1C1C1
+DFE0DFDFE0DFDFE0DFD5D5D5D5D5D5D5D5D5C5C5C5C5C5C5C5C5C5AAAAAAAAAAAAAAAAAAAAAAAA
+B4B4B4B4B4B4B4B4B4D3D3D3D3D3D3D3D3D3DFE0DFDFE0DFDFE0DFDCDCDCDCDCDCDCDCDCDCDCDC
+BEBEBEBEBEBEBEBEBEB2B2B2B2B2B2B2B2B2BABABABABABABABABABFBFBFBFBFBFBFBFBFBEBEBE
+BEBEBEBEBEBEBEBEBEB0B0B0B0B0B0B0B0B08C8C8C8C8C8C8C8C8CA2A2A2A2A2A2A2A2A2DBDBDB
+DBDBDBDBDBDBE3E3E3E3E3E3E3E3E3E3E3E3CECECECECECECECECEBDBDBDBDBDBDBDBDBD9C9C9C
+9C9C9C9C9C9CA0A0A0A0A0A0A0A0A0A0A0A0B4B4B4B4B4B4B4B4B4BCBCBCBCBCBCBCBCBCBABABA
+BABABABABABAA8A8A8A8A8A8A8A8A8AAAAAAAAAAAAAAAAAAAAAAAA9B9B9B9B9B9B9B9B9B9A9A9A
+9A9A9A9A9A9A9B9B9B9B9B9B9B9B9B9E9E9E9E9E9E9E9E9EA3A3A3A3A3A3A3A3A3A3A3A3A6A6A6
+A6A6A6A6A6A6B0B1B0B0B1B0B0B1B0BBBBBBBBBBBBBBBBBBBABABABABABABABABABABABAAAAAAA
+AAAAAAAAAAAAADADADADADADADADADC9C9C9C9C9C9C9C9C9CBCBCBCBCBCBCBCBCBC4C4C4C4C4C4
+C4C4C4C4C4C4C5C5C5C5C5C5C5C5C5B9B9B9B9B9B9B9B9B9AEAEAEAEAEAEAEAEAE9E9E9E9E9E9E
+9E9E9E9595959595959595959595958989898989898989897D7D7D7D7D7D7D7D7D7C7C7C7C7C7C
+7C7C7C7979797979797979797979798787878787878787879292929292929292928D8D8D8D8D8D
+8D8D8D8A8A8A8A8A8A8A8A8A8C8C8C8C8C8C8C8C8C8C8C8C8D8D8D8D8D8D8D8D8D888888888888
+888888969696969696969696AFAFAFAFAFAFAFAFAFABABABABABABABABABABABAB8D8D8D8D8D8D
+8D8D8D6767676767676767675454545454545454544D4D4D4D4D4D4D4D4D4D4D4D505050505050
+5050506161616161616161617C7C7C7C7C7C7C7C7C8484848484848484846C6C6C6C6C6C6C6C6C
+6C6C6C787878787878787878919191919191919191A5A5A5A5A5A5A5A5A5B0B1B0B0B1B0B0B1B0
+B2B2B2B2B2B2B2B2B2B2B2B2B3B3B3B3B3B3B3B3B3ADADADADADADADADADAEAEAEAEAEAEAEAEAE
+B9B9B9B9B9B9B9B9B9B9B9B9B5B5B5B5B5B5B5B5B5B6B6B6B6B6B6B6B6B6BDBDBDBDBDBDBDBDBD
+B7B7B7B7B7B7B7B7B7BEBEBEBEBEBEBEBEBEBEBEBEC7C7C7C7C7C7C7C7C7BDBDBDBDBDBDBDBDBD
+929292929292929292969696969696969696BFBFBFBFBFBFBFBFBFBFBFBFBEBEBEBEBEBEBEBEBE
+B4B4B4B4B4B4B4B4B4B8B8B8B8B8B8B8B8B8C8C8C8C8C8C8C8C8C8C8C8C8C3C3C3C3C3C3C3C3C3
+ABABABABABABABABABD6D6D5D6D6D5D6D6D5D6D6D5D6D6D5D6D6D5C0C0C0C0C0C0C0C0C0C0C0C0
+8E8E8E8E8E8E8E8E8E6161616161616161617B7B7B7B7B7B7B7B7BBABABABABABABABABAD0D0D0
+D0D0D0D0D0D0D0D0D0CCCCCCCCCCCCCCCCCCA1A1A1A1A1A1A1A1A1909090909090909090C1C1C1
+C1C1C1C1C1C1C1C1C1DFDFDFDFDFDFDFDFDFDBDBDBDBDBDBDBDBDBD2D2D2D2D2D2D2D2D2CBCBCB
+CBCBCBCBCBCBC1C1C1C1C1C1C1C1C1C1C1C1CDCDCDCDCDCDCDCDCDD3D3D3D3D3D3D3D3D3C4C4C4
+C4C4C4C4C4C4C5C5C5C5C5C5C5C5C5CBCBCBCBCBCBCBCBCBCBCBCBD6D6D6D6D6D6D6D6D6D8D8D8
+D8D8D8D8D8D8D2D2D2D2D2D2D2D2D2CACACACACACACACACACACACAB3B3B3B3B3B3B3B3B3B7B7B7
+B7B7B7B7B7B7C5C5C5C5C5C5C5C5C5C1C1C1C1C1C1C1C1C1B2B2B2B2B2B2B2B2B2B2B2B2959595
+959595959595616161616161616161757575757575757575C8C8C8C8C8C8C8C8C8E1E1E1E1E1E1
+E1E1E1E1E1E1D3D3D3D3D3D3D3D3D3A9A9A9A9A9A9A9A9A9707070707070707070676767676767
+6767676767679A9A9A9A9A9A9A9A9AC0C0C0C0C0C0C0C0C0C5C5C5C5C5C5C5C5C5B6B6B6B6B6B6
+B6B6B6A9A9A9A9A9A9A9A9A9A9A9A9A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A29F9F9F9F9F9F
+9F9F9F9B9B9B9B9B9B9B9B9B9E9E9E9E9E9E9E9E9E9E9E9E9E9E9E9E9E9E9E9E9E9E9E9E9E9E9E
+9E9E9EA0A0A0A0A0A0A0A0A0A7A7A7A7A7A7A7A7A7A7A7A7A8A8A8A8A8A8A8A8A8ABABABABABAB
+ABABABB7B7B7B7B7B7B7B7B7C3C3C3C3C3C3C3C3C3C5C5C5C5C5C5C5C5C5C5C5C5BFBFBFBFBFBF
+BFBFBFC5C5C5C5C5C5C5C5C5C8C8C8C8C8C8C8C8C8CFCFCFCFCFCFCFCFCFC7C7C7C7C7C7C7C7C7
+C7C7C7BABABABABABABABABAB0B1B0B0B1B0B0B1B0AFAFAFAFAFAFAFAFAFACACACACACACACACAC
+ACACACB4B4B4B4B4B4B4B4B4B3B3B3B3B3B3B3B3B39B9B9B9B9B9B9B9B9B909090909090909090
+8C8C8C8C8C8C8C8C8C8C8C8C8383838383838383837E7E7E7E7E7E7E7E7E9F9F9F9F9F9F9F9F9F
+B0B1B0B0B1B0B0B1B0C1C1C1C1C1C1C1C1C1C1C1C1B6B6B6B6B6B6B6B6B68F8F8F8F8F8F8F8F8F
+6767676767676767675D5D5D5D5D5D5D5D5D5D5D5D6B6B6B6B6B6B6B6B6B888888888888888888
+999999999999999999939393939393939393999999999999999999999999B2B2B2B2B2B2B2B2B2
+BDBDBDBDBDBDBDBDBDB8B8B8B8B8B8B8B8B8BBBBBBBBBBBBBBBBBBB3B3B3B3B3B3B3B3B3B3B3B3
+ADADADADADADADADADABABABABABABABABABB1B1B1B1B1B1B1B1B1B9B9B9B9B9B9B9B9B9B9B9B9
+A8A8A8A8A8A8A8A8A8A1A1A1A1A1A1A1A1A1BDBDBDBDBDBDBDBDBDC9C9C9C9C9C9C9C9C9C9C9C9
+C9C9C9C9C9C9C9C9C9C3C3C3C3C3C3C3C3C3B7B7B7B7B7B7B7B7B7909090909090909090989898
+989898989898BFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFA3A3A3A3A3A3A3A3A39B9B9B
+9B9B9B9B9B9BBCBCBCBCBCBCBCBCBCBCBCBCC5C5C5C5C5C5C5C5C5BDBDBDBDBDBDBDBDBDD6D6D5
+D6D6D5D6D6D5D6D6D5D6D6D5D6D6D5C0C0C0C0C0C0C0C0C0C0C0C08E8E8E8E8E8E8E8E8E616161
+6161616161617B7B7B7B7B7B7B7B7BBABABABABABABABABAD0D0D0D0D0D0D0D0D0D0D0D0CCCCCC
+CCCCCCCCCCCCA1A1A1A1A1A1A1A1A1909090909090909090C1C1C1C1C1C1C1C1C1C1C1C1DFDFDF
+DFDFDFDFDFDFDBDBDBDBDBDBDBDBDBD2D2D2D2D2D2D2D2D2CBCBCBCBCBCBCBCBCBC1C1C1C1C1C1
+C1C1C1C1C1C1CDCDCDCDCDCDCDCDCDD3D3D3D3D3D3D3D3D3C4C4C4C4C4C4C4C4C4C5C5C5C5C5C5
+C5C5C5CBCBCBCBCBCBCBCBCBCBCBCBD6D6D6D6D6D6D6D6D6D8D8D8D8D8D8D8D8D8D2D2D2D2D2D2
+D2D2D2CACACACACACACACACACACACAB3B3B3B3B3B3B3B3B3B7B7B7B7B7B7B7B7B7C5C5C5C5C5C5
+C5C5C5C1C1C1C1C1C1C1C1C1B2B2B2B2B2B2B2B2B2B2B2B2959595959595959595616161616161
+616161757575757575757575C8C8C8C8C8C8C8C8C8E1E1E1E1E1E1E1E1E1E1E1E1D3D3D3D3D3D3
+D3D3D3A9A9A9A9A9A9A9A9A97070707070707070706767676767676767676767679A9A9A9A9A9A
+9A9A9AC0C0C0C0C0C0C0C0C0C5C5C5C5C5C5C5C5C5B6B6B6B6B6B6B6B6B6A9A9A9A9A9A9A9A9A9
+A9A9A9A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A29F9F9F9F9F9F9F9F9F9B9B9B9B9B9B9B9B9B
+9E9E9E9E9E9E9E9E9E9E9E9E9E9E9E9E9E9E9E9E9E9E9E9E9E9E9E9E9E9EA0A0A0A0A0A0A0A0A0
+A7A7A7A7A7A7A7A7A7A7A7A7A8A8A8A8A8A8A8A8A8ABABABABABABABABABB7B7B7B7B7B7B7B7B7
+C3C3C3C3C3C3C3C3C3C5C5C5C5C5C5C5C5C5C5C5C5BFBFBFBFBFBFBFBFBFC5C5C5C5C5C5C5C5C5
+C8C8C8C8C8C8C8C8C8CFCFCFCFCFCFCFCFCFC7C7C7C7C7C7C7C7C7C7C7C7BABABABABABABABABA
+B0B1B0B0B1B0B0B1B0AFAFAFAFAFAFAFAFAFACACACACACACACACACACACACB4B4B4B4B4B4B4B4B4
+B3B3B3B3B3B3B3B3B39B9B9B9B9B9B9B9B9B9090909090909090908C8C8C8C8C8C8C8C8C8C8C8C
+8383838383838383837E7E7E7E7E7E7E7E7E9F9F9F9F9F9F9F9F9FB0B1B0B0B1B0B0B1B0C1C1C1
+C1C1C1C1C1C1C1C1C1B6B6B6B6B6B6B6B6B68F8F8F8F8F8F8F8F8F6767676767676767675D5D5D
+5D5D5D5D5D5D5D5D5D6B6B6B6B6B6B6B6B6B888888888888888888999999999999999999939393
+939393939393999999999999999999999999B2B2B2B2B2B2B2B2B2BDBDBDBDBDBDBDBDBDB8B8B8
+B8B8B8B8B8B8BBBBBBBBBBBBBBBBBBB3B3B3B3B3B3B3B3B3B3B3B3ADADADADADADADADADABABAB
+ABABABABABABB1B1B1B1B1B1B1B1B1B9B9B9B9B9B9B9B9B9B9B9B9A8A8A8A8A8A8A8A8A8A1A1A1
+A1A1A1A1A1A1BDBDBDBDBDBDBDBDBDC9C9C9C9C9C9C9C9C9C9C9C9C9C9C9C9C9C9C9C9C9C3C3C3
+C3C3C3C3C3C3B7B7B7B7B7B7B7B7B7909090909090909090989898989898989898BFBFBFBFBFBF
+BFBFBFBFBFBFBFBFBFBFBFBFBFBFBFA3A3A3A3A3A3A3A3A39B9B9B9B9B9B9B9B9BBCBCBCBCBCBC
+BCBCBCBCBCBCC5C5C5C5C5C5C5C5C5BDBDBDBDBDBDBDBDBDBFBFBFBFBFBFBFBFBFC9C9C9C9C9C9
+C9C9C9BBBBBBBBBBBBBBBBBBBBBBBB8B8B8B8B8B8B8B8B8B7D7D7D7D7D7D7D7D7DA6A6A6A6A6A6
+A6A6A6C9C9C9C9C9C9C9C9C9CBCBCBCBCBCBCBCBCBCBCBCBC4C4C4C4C4C4C4C4C4C8C8C8C8C8C8
+C8C8C8CECECECECECECECECEE1E1E1E1E1E1E1E1E1E1E1E1D9D9D9D9D9D9D9D9D9CDCDCDCDCDCD
+CDCDCDC6C6C6C6C6C6C6C6C6CDCDCDCDCDCDCDCDCDD6D6D6D6D6D6D6D6D6D6D6D6D7D7D7D7D7D7
+D7D7D7CECECECECECECECECEABABABABABABABABAB9E9E9E9E9E9E9E9E9EB7B7B7B7B7B7B7B7B7
+B7B7B7DBDBDBDBDBDBDBDBDBE9E9E9E9E9E9E9E9E9D6D6D5D6D6D5D6D6D5A8A8A8A8A8A8A8A8A8
+A8A8A87E7E7E7E7E7E7E7E7E999999999999999999C7C7C7C7C7C7C7C7C7C5C5C5C5C5C5C5C5C5
+B2B2B2B2B2B2B2B2B2B2B2B28888888888888888885A5A5A5A5A5A5A5A5A717171717171717171
+BCBCBCBCBCBCBCBCBCDDDDDDDDDDDDDDDDDDDDDDDDE1E1E1E1E1E1E1E1E1BDBDBDBDBDBDBDBDBD
+888888888888888888818181818181818181818181B2B2B2B2B2B2B2B2B2C7C7C7C7C7C7C7C7C7
+C4C4C4C4C4C4C4C4C4B6B6B6B6B6B6B6B6B6B1B1B1B1B1B1B1B1B1B1B1B1B1B1B1B1B1B1B1B1B1
+A5A5A5A5A5A5A5A5A59E9E9E9E9E9E9E9E9E9D9D9D9D9D9D9D9D9D9E9E9E9E9E9E9E9E9E9E9E9E
+9D9D9D9D9D9D9D9D9D9B9B9B9B9B9B9B9B9B9999999999999999999C9C9C9C9C9C9C9C9C9C9C9C
+AAAAAAAAAAAAAAAAAAA8A8A8A8A8A8A8A8A8A7A7A7A7A7A7A7A7A7BBBBBBBBBBBBBBBBBBC0C0C0
+C0C0C0C0C0C0C0C0C0B4B4B4B4B4B4B4B4B4B9B9B9B9B9B9B9B9B9C0C0C0C0C0C0C0C0C0CACACA
+CACACACACACAD1D1D1D1D1D1D1D1D1D1D1D1CBCBCBCBCBCBCBCBCBC1C1C1C1C1C1C1C1C1BFBFBF
+BFBFBFBFBFBFC5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C1C1C1C1C1C1C1C1C1B3B3B3
+B3B3B3B3B3B3AFAFAFAFAFAFAFAFAFA7A7A7A7A7A7A7A7A7A7A7A79B9B9B9B9B9B9B9B9B9F9F9F
+9F9F9F9F9F9FB7B7B7B7B7B7B7B7B7BDBDBDBDBDBDBDBDBDCACACACACACACACACACACACABFBFBF
+BFBFBFBFBFBFA8A8A8A8A8A8A8A8A89292929292929292928F8F8F8F8F8F8F8F8F8F8F8F959595
+959595959595A8A8A8A8A8A8A8A8A8AEAEAEAEAEAEAEAEAEB0B0B0B0B0B0B0B0B0B9B9B9B9B9B9
+B9B9B9B9B9B9BFBFBFBFBFBFBFBFBFC4C4C4C4C4C4C4C4C4BABABABABABABABABAAEAEAEAEAEAE
+AEAEAEACACACACACACACACACACACACA8A8A8A8A8A8A8A8A8A8A8A8A8A8A8A8A8A8B2B2B2B2B2B2
+B2B2B2AFAFAFAFAFAFAFAFAFAFAFAF818181818181818181727272727272727272AEAEAEAEAEAE
+AEAEAED3D3D3D3D3D3D3D3D3CDCDCDCDCDCDCDCDCDCDCDCDB0B1B0B0B1B0B0B1B0ABABABABABAB
+ABABABB2B2B2B2B2B2B2B2B2BABABABABABABABABACFCFCFCFCFCFCFCFCFCFCFCFC7C7C7C7C7C7
+C7C7C78F8F8F8F8F8F8F8F8F838383838383838383B6B6B6B6B6B6B6B6B6B6B6B6C8C8C8C8C8C8
+C8C8C8B8B8B8B8B8B8B8B8B8BFBFBFBFBFBFBFBFBFC9C9C9C9C9C9C9C9C9BBBBBBBBBBBBBBBBBB
+BBBBBB8B8B8B8B8B8B8B8B8B7D7D7D7D7D7D7D7D7DA6A6A6A6A6A6A6A6A6C9C9C9C9C9C9C9C9C9
+CBCBCBCBCBCBCBCBCBCBCBCBC4C4C4C4C4C4C4C4C4C8C8C8C8C8C8C8C8C8CECECECECECECECECE
+E1E1E1E1E1E1E1E1E1E1E1E1D9D9D9D9D9D9D9D9D9CDCDCDCDCDCDCDCDCDC6C6C6C6C6C6C6C6C6
+CDCDCDCDCDCDCDCDCDD6D6D6D6D6D6D6D6D6D6D6D6D7D7D7D7D7D7D7D7D7CECECECECECECECECE
+ABABABABABABABABAB9E9E9E9E9E9E9E9E9EB7B7B7B7B7B7B7B7B7B7B7B7DBDBDBDBDBDBDBDBDB
+E9E9E9E9E9E9E9E9E9D6D6D5D6D6D5D6D6D5A8A8A8A8A8A8A8A8A8A8A8A87E7E7E7E7E7E7E7E7E
+999999999999999999C7C7C7C7C7C7C7C7C7C5C5C5C5C5C5C5C5C5B2B2B2B2B2B2B2B2B2B2B2B2
+8888888888888888885A5A5A5A5A5A5A5A5A717171717171717171BCBCBCBCBCBCBCBCBCDDDDDD
+DDDDDDDDDDDDDDDDDDE1E1E1E1E1E1E1E1E1BDBDBDBDBDBDBDBDBD888888888888888888818181
+818181818181818181B2B2B2B2B2B2B2B2B2C7C7C7C7C7C7C7C7C7C4C4C4C4C4C4C4C4C4B6B6B6
+B6B6B6B6B6B6B1B1B1B1B1B1B1B1B1B1B1B1B1B1B1B1B1B1B1B1B1A5A5A5A5A5A5A5A5A59E9E9E
+9E9E9E9E9E9E9D9D9D9D9D9D9D9D9D9E9E9E9E9E9E9E9E9E9E9E9E9D9D9D9D9D9D9D9D9D9B9B9B
+9B9B9B9B9B9B9999999999999999999C9C9C9C9C9C9C9C9C9C9C9CAAAAAAAAAAAAAAAAAAA8A8A8
+A8A8A8A8A8A8A7A7A7A7A7A7A7A7A7BBBBBBBBBBBBBBBBBBC0C0C0C0C0C0C0C0C0C0C0C0B4B4B4
+B4B4B4B4B4B4B9B9B9B9B9B9B9B9B9C0C0C0C0C0C0C0C0C0CACACACACACACACACAD1D1D1D1D1D1
+D1D1D1D1D1D1CBCBCBCBCBCBCBCBCBC1C1C1C1C1C1C1C1C1BFBFBFBFBFBFBFBFBFC5C5C5C5C5C5
+C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C1C1C1C1C1C1C1C1C1B3B3B3B3B3B3B3B3B3AFAFAFAFAFAF
+AFAFAFA7A7A7A7A7A7A7A7A7A7A7A79B9B9B9B9B9B9B9B9B9F9F9F9F9F9F9F9F9FB7B7B7B7B7B7
+B7B7B7BDBDBDBDBDBDBDBDBDCACACACACACACACACACACACABFBFBFBFBFBFBFBFBFA8A8A8A8A8A8
+A8A8A89292929292929292928F8F8F8F8F8F8F8F8F8F8F8F959595959595959595A8A8A8A8A8A8
+A8A8A8AEAEAEAEAEAEAEAEAEB0B0B0B0B0B0B0B0B0B9B9B9B9B9B9B9B9B9B9B9B9BFBFBFBFBFBF
+BFBFBFC4C4C4C4C4C4C4C4C4BABABABABABABABABAAEAEAEAEAEAEAEAEAEACACACACACACACACAC
+ACACACA8A8A8A8A8A8A8A8A8A8A8A8A8A8A8A8A8A8B2B2B2B2B2B2B2B2B2AFAFAFAFAFAFAFAFAF
+AFAFAF818181818181818181727272727272727272AEAEAEAEAEAEAEAEAED3D3D3D3D3D3D3D3D3
+CDCDCDCDCDCDCDCDCDCDCDCDB0B1B0B0B1B0B0B1B0ABABABABABABABABABB2B2B2B2B2B2B2B2B2
+BABABABABABABABABACFCFCFCFCFCFCFCFCFCFCFCFC7C7C7C7C7C7C7C7C78F8F8F8F8F8F8F8F8F
+838383838383838383B6B6B6B6B6B6B6B6B6B6B6B6C8C8C8C8C8C8C8C8C8B8B8B8B8B8B8B8B8B8
+BFBFBFBFBFBFBFBFBFC9C9C9C9C9C9C9C9C9BBBBBBBBBBBBBBBBBBBBBBBB8B8B8B8B8B8B8B8B8B
+7D7D7D7D7D7D7D7D7DA6A6A6A6A6A6A6A6A6C9C9C9C9C9C9C9C9C9CBCBCBCBCBCBCBCBCBCBCBCB
+C4C4C4C4C4C4C4C4C4C8C8C8C8C8C8C8C8C8CECECECECECECECECEE1E1E1E1E1E1E1E1E1E1E1E1
+D9D9D9D9D9D9D9D9D9CDCDCDCDCDCDCDCDCDC6C6C6C6C6C6C6C6C6CDCDCDCDCDCDCDCDCDD6D6D6
+D6D6D6D6D6D6D6D6D6D7D7D7D7D7D7D7D7D7CECECECECECECECECEABABABABABABABABAB9E9E9E
+9E9E9E9E9E9EB7B7B7B7B7B7B7B7B7B7B7B7DBDBDBDBDBDBDBDBDBE9E9E9E9E9E9E9E9E9D6D6D5
+D6D6D5D6D6D5A8A8A8A8A8A8A8A8A8A8A8A87E7E7E7E7E7E7E7E7E999999999999999999C7C7C7
+C7C7C7C7C7C7C5C5C5C5C5C5C5C5C5B2B2B2B2B2B2B2B2B2B2B2B28888888888888888885A5A5A
+5A5A5A5A5A5A717171717171717171BCBCBCBCBCBCBCBCBCDDDDDDDDDDDDDDDDDDDDDDDDE1E1E1
+E1E1E1E1E1E1BDBDBDBDBDBDBDBDBD888888888888888888818181818181818181818181B2B2B2
+B2B2B2B2B2B2C7C7C7C7C7C7C7C7C7C4C4C4C4C4C4C4C4C4B6B6B6B6B6B6B6B6B6B1B1B1B1B1B1
+B1B1B1B1B1B1B1B1B1B1B1B1B1B1B1A5A5A5A5A5A5A5A5A59E9E9E9E9E9E9E9E9E9D9D9D9D9D9D
+9D9D9D9E9E9E9E9E9E9E9E9E9E9E9E9D9D9D9D9D9D9D9D9D9B9B9B9B9B9B9B9B9B999999999999
+9999999C9C9C9C9C9C9C9C9C9C9C9CAAAAAAAAAAAAAAAAAAA8A8A8A8A8A8A8A8A8A7A7A7A7A7A7
+A7A7A7BBBBBBBBBBBBBBBBBBC0C0C0C0C0C0C0C0C0C0C0C0B4B4B4B4B4B4B4B4B4B9B9B9B9B9B9
+B9B9B9C0C0C0C0C0C0C0C0C0CACACACACACACACACAD1D1D1D1D1D1D1D1D1D1D1D1CBCBCBCBCBCB
+CBCBCBC1C1C1C1C1C1C1C1C1BFBFBFBFBFBFBFBFBFC5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5
+C5C5C5C1C1C1C1C1C1C1C1C1B3B3B3B3B3B3B3B3B3AFAFAFAFAFAFAFAFAFA7A7A7A7A7A7A7A7A7
+A7A7A79B9B9B9B9B9B9B9B9B9F9F9F9F9F9F9F9F9FB7B7B7B7B7B7B7B7B7BDBDBDBDBDBDBDBDBD
+CACACACACACACACACACACACABFBFBFBFBFBFBFBFBFA8A8A8A8A8A8A8A8A8929292929292929292
+8F8F8F8F8F8F8F8F8F8F8F8F959595959595959595A8A8A8A8A8A8A8A8A8AEAEAEAEAEAEAEAEAE
+B0B0B0B0B0B0B0B0B0B9B9B9B9B9B9B9B9B9B9B9B9BFBFBFBFBFBFBFBFBFC4C4C4C4C4C4C4C4C4
+BABABABABABABABABAAEAEAEAEAEAEAEAEAEACACACACACACACACACACACACA8A8A8A8A8A8A8A8A8
+A8A8A8A8A8A8A8A8A8B2B2B2B2B2B2B2B2B2AFAFAFAFAFAFAFAFAFAFAFAF818181818181818181
+727272727272727272AEAEAEAEAEAEAEAEAED3D3D3D3D3D3D3D3D3CDCDCDCDCDCDCDCDCDCDCDCD
+B0B1B0B0B1B0B0B1B0ABABABABABABABABABB2B2B2B2B2B2B2B2B2BABABABABABABABABACFCFCF
+CFCFCFCFCFCFCFCFCFC7C7C7C7C7C7C7C7C78F8F8F8F8F8F8F8F8F838383838383838383B6B6B6
+B6B6B6B6B6B6B6B6B6C8C8C8C8C8C8C8C8C8B8B8B8B8B8B8B8B8B8C7C7C7C7C7C7C7C7C7C5C5C5
+C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5BABABABABABABABABABDBDBDBDBDBDBDBDBDD2D2D2
+D2D2D2D2D2D2D3D3D3D3D3D3D3D3D3C5C5C5C5C5C5C5C5C5C5C5C5B3B3B3B3B3B3B3B3B3B9B9B9
+B9B9B9B9B9B9D7D7D7D7D7D7D7D7D7EDEDEDEDEDEDEDEDEDEDEDEDD0D0D0D0D0D0D0D0D0B8B8B8
+B8B8B8B8B8B8A1A1A1A1A1A1A1A1A1A6A6A6A6A6A6A6A6A6CBCBCBCBCBCBCBCBCBCBCBCBD5D5D5
+D5D5D5D5D5D5BFBFBFBFBFBFBFBFBF9595959595959595956969696969696969698B8B8B8B8B8B
+8B8B8B8B8B8BD0D0D0D0D0D0D0D0D0E4E4E4E4E4E4E4E4E4D2D2D2D2D2D2D2D2D2979797979797
+9797979797975E5E5E5E5E5E5E5E5E7E7E7E7E7E7E7E7E7EBEBEBEBEBEBEBEBEBEC5C5C5C5C5C5
+C5C5C5C3C3C3C3C3C3C3C3C3C3C3C38C8C8C8C8C8C8C8C8C636363636363636363909090909090
+909090BEBEBEBEBEBEBEBEBED1D1D1D1D1D1D1D1D1D1D1D1E4E4E4E4E4E4E4E4E4D0D0D0D0D0D0
+D0D0D0C3C3C3C3C3C3C3C3C3C1C1C1C1C1C1C1C1C1C1C1C1D5D5D5D5D5D5D5D5D5DCDCDCDCDCDC
+DCDCDCD6D6D6D6D6D6D6D6D6C8C8C8C8C8C8C8C8C8C4C4C4C4C4C4C4C4C4C4C4C4C5C5C5C5C5C5
+C5C5C5B1B1B1B1B1B1B1B1B1A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5999999999999999999
+9999999C9C9C9C9C9C9C9C9CA6A6A6A6A6A6A6A6A69B9B9B9B9B9B9B9B9B949494949494949494
+949494A6A6A6A6A6A6A6A6A6A5A5A5A5A5A5A5A5A5A1A1A1A1A1A1A1A1A1AEAEAEAEAEAEAEAEAE
+B4B4B4B4B4B4B4B4B4B4B4B4A2A2A2A2A2A2A2A2A2A3A3A3A3A3A3A3A3A3A9A9A9A9A9A9A9A9A9
+B8B8B8B8B8B8B8B8B8C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2BCBCBCBCBCBCBCBCBC
+BABABABABABABABABAC8C8C8C8C8C8C8C8C8C8C8C8C5C5C5C5C5C5C5C5C5C4C4C4C4C4C4C4C4C4
+C3C3C3C3C3C3C3C3C3CCCCCCCCCCCCCCCCCCCACACACACACACACACACACACACBCBCBCBCBCBCBCBCB
+CECECECECECECECECECDCDCDCDCDCDCDCDCDC9C9C9C9C9C9C9C9C9CECECECECECECECECECECECE
+CACACACACACACACACABEBEBEBEBEBEBEBEBEBFBFBFBFBFBFBFBFBFC3C3C3C3C3C3C3C3C3C3C3C3
+B9B9B9B9B9B9B9B9B9BFBFBFBFBFBFBFBFBFB9B9B9B9B9B9B9B9B9B4B4B4B4B4B4B4B4B4B6B6B6
+B6B6B6B6B6B6B6B6B6B0B1B0B0B1B0B0B1B0B1B1B1B1B1B1B1B1B1AAAAAAAAAAAAAAAAAAA1A1A1
+A1A1A1A1A1A1A8A8A8A8A8A8A8A8A8A8A8A8AAAAAAAAAAAAAAAAAAA8A8A8A8A8A8A8A8A8B3B3B3
+B3B3B3B3B3B3A0A0A0A0A0A0A0A0A0A0A0A06D6D6D6D6D6D6D6D6D7B7B7B7B7B7B7B7B7BB7B7B7
+B7B7B7B7B7B7D9D9D9D9D9D9D9D9D9C5C5C5C5C5C5C5C5C5C5C5C58E8E8E8E8E8E8E8E8E888888
+888888888888BABABABABABABABABAC1C1C1C1C1C1C1C1C1CECECECECECECECECECECECECCCCCC
+CCCCCCCCCCCCA3A3A3A3A3A3A3A3A3A7A7A7A7A7A7A7A7A7C5C5C5C5C5C5C5C5C5C5C5C5CECECE
+CECECECECECEACACACACACACACACACC7C7C7C7C7C7C7C7C7C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5
+C5C5C5C5C5C5BABABABABABABABABABDBDBDBDBDBDBDBDBDD2D2D2D2D2D2D2D2D2D3D3D3D3D3D3
+D3D3D3C5C5C5C5C5C5C5C5C5C5C5C5B3B3B3B3B3B3B3B3B3B9B9B9B9B9B9B9B9B9D7D7D7D7D7D7
+D7D7D7EDEDEDEDEDEDEDEDEDEDEDEDD0D0D0D0D0D0D0D0D0B8B8B8B8B8B8B8B8B8A1A1A1A1A1A1
+A1A1A1A6A6A6A6A6A6A6A6A6CBCBCBCBCBCBCBCBCBCBCBCBD5D5D5D5D5D5D5D5D5BFBFBFBFBFBF
+BFBFBF9595959595959595956969696969696969698B8B8B8B8B8B8B8B8B8B8B8BD0D0D0D0D0D0
+D0D0D0E4E4E4E4E4E4E4E4E4D2D2D2D2D2D2D2D2D29797979797979797979797975E5E5E5E5E5E
+5E5E5E7E7E7E7E7E7E7E7E7EBEBEBEBEBEBEBEBEBEC5C5C5C5C5C5C5C5C5C3C3C3C3C3C3C3C3C3
+C3C3C38C8C8C8C8C8C8C8C8C636363636363636363909090909090909090BEBEBEBEBEBEBEBEBE
+D1D1D1D1D1D1D1D1D1D1D1D1E4E4E4E4E4E4E4E4E4D0D0D0D0D0D0D0D0D0C3C3C3C3C3C3C3C3C3
+C1C1C1C1C1C1C1C1C1C1C1C1D5D5D5D5D5D5D5D5D5DCDCDCDCDCDCDCDCDCD6D6D6D6D6D6D6D6D6
+C8C8C8C8C8C8C8C8C8C4C4C4C4C4C4C4C4C4C4C4C4C5C5C5C5C5C5C5C5C5B1B1B1B1B1B1B1B1B1
+A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A59999999999999999999999999C9C9C9C9C9C9C9C9C
+A6A6A6A6A6A6A6A6A69B9B9B9B9B9B9B9B9B949494949494949494949494A6A6A6A6A6A6A6A6A6
+A5A5A5A5A5A5A5A5A5A1A1A1A1A1A1A1A1A1AEAEAEAEAEAEAEAEAEB4B4B4B4B4B4B4B4B4B4B4B4
+A2A2A2A2A2A2A2A2A2A3A3A3A3A3A3A3A3A3A9A9A9A9A9A9A9A9A9B8B8B8B8B8B8B8B8B8C2C2C2
+C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2BCBCBCBCBCBCBCBCBCBABABABABABABABABAC8C8C8
+C8C8C8C8C8C8C8C8C8C5C5C5C5C5C5C5C5C5C4C4C4C4C4C4C4C4C4C3C3C3C3C3C3C3C3C3CCCCCC
+CCCCCCCCCCCCCACACACACACACACACACACACACBCBCBCBCBCBCBCBCBCECECECECECECECECECDCDCD
+CDCDCDCDCDCDC9C9C9C9C9C9C9C9C9CECECECECECECECECECECECECACACACACACACACACABEBEBE
+BEBEBEBEBEBEBFBFBFBFBFBFBFBFBFC3C3C3C3C3C3C3C3C3C3C3C3B9B9B9B9B9B9B9B9B9BFBFBF
+BFBFBFBFBFBFB9B9B9B9B9B9B9B9B9B4B4B4B4B4B4B4B4B4B6B6B6B6B6B6B6B6B6B6B6B6B0B1B0
+B0B1B0B0B1B0B1B1B1B1B1B1B1B1B1AAAAAAAAAAAAAAAAAAA1A1A1A1A1A1A1A1A1A8A8A8A8A8A8
+A8A8A8A8A8A8AAAAAAAAAAAAAAAAAAA8A8A8A8A8A8A8A8A8B3B3B3B3B3B3B3B3B3A0A0A0A0A0A0
+A0A0A0A0A0A06D6D6D6D6D6D6D6D6D7B7B7B7B7B7B7B7B7BB7B7B7B7B7B7B7B7B7D9D9D9D9D9D9
+D9D9D9C5C5C5C5C5C5C5C5C5C5C5C58E8E8E8E8E8E8E8E8E888888888888888888BABABABABABA
+BABABAC1C1C1C1C1C1C1C1C1CECECECECECECECECECECECECCCCCCCCCCCCCCCCCCA3A3A3A3A3A3
+A3A3A3A7A7A7A7A7A7A7A7A7C5C5C5C5C5C5C5C5C5C5C5C5CECECECECECECECECEACACACACACAC
+ACACACCECECECECECECECECEC7C7C7C7C7C7C7C7C7C5C5C5C5C5C5C5C5C5C5C5C5C7C7C7C7C7C7
+C7C7C7D3D3D3D3D3D3D3D3D3DEDEDEDEDEDEDEDEDED6D6D6D6D6D6D6D6D6B8B8B8B8B8B8B8B8B8
+B8B8B88A8A8A8A8A8A8A8A8A858585858585858585BABABABABABABABABAE8E9E8E8E9E8E8E9E8
+E8E9E8D7D7D7D7D7D7D7D7D7ACACACACACACACACAC7B7B7B7B7B7B7B7B7B747474747474747474
+B3B3B3B3B3B3B3B3B3B3B3B3D6D6D6D6D6D6D6D6D6C5C5C5C5C5C5C5C5C58C8C8C8C8C8C8C8C8C
+5A5A5A5A5A5A5A5A5A7B7B7B7B7B7B7B7B7B7B7B7BC6C6C6C6C6C6C6C6C6DBDBDBDBDBDBDBDBDB
+D2D2D2D2D2D2D2D2D29C9C9C9C9C9C9C9C9C9C9C9C6E6E6E6E6E6E6E6E6E929292929292929292
+BDBDBDBDBDBDBDBDBDC1C1C1C1C1C1C1C1C1D0D0D0D0D0D0D0D0D0D0D0D0C0C0C0C0C0C0C0C0C0
+9C9C9C9C9C9C9C9C9CADADADADADADADADADC3C3C3C3C3C3C3C3C3CFCFCFCFCFCFCFCFCFCFCFCF
+DFE0DFDFE0DFDFE0DFD6D6D6D6D6D6D6D6D6DADADADADADADADADADFE0DFDFE0DFDFE0DFDFE0DF
+CACACACACACACACACAC8C8C8C8C8C8C8C8C8D8D8D8D8D8D8D8D8D8D5D5D5D5D5D5D5D5D5D2D2D2
+D2D2D2D2D2D2D2D2D2C8C8C8C8C8C8C8C8C8B2B2B2B2B2B2B2B2B2A9A9A9A9A9A9A9A9A9AFAFAF
+AFAFAFAFAFAFA0A0A0A0A0A0A0A0A0A0A0A0A4A4A4A4A4A4A4A4A4B0B0B0B0B0B0B0B0B0A2A2A2
+A2A2A2A2A2A29898989898989898989898989A9A9A9A9A9A9A9A9A9B9B9B9B9B9B9B9B9B9B9B9B
+9B9B9B9B9B9B9B9B9B9B9B9B9B9B9BA8A8A8A8A8A8A8A8A8A8A8A89C9C9C9C9C9C9C9C9C939393
+9393939393939E9E9E9E9E9E9E9E9EAFAFAFAFAFAFAFAFAFB8B8B8B8B8B8B8B8B8B8B8B8B3B3B3
+B3B3B3B3B3B3B4B4B4B4B4B4B4B4B4B2B2B2B2B2B2B2B2B2BEBEBEBEBEBEBEBEBEBEBEBEC3C3C3
+C3C3C3C3C3C3C4C4C4C4C4C4C4C4C4BABABABABABABABABAC5C5C5C5C5C5C5C5C5C8C8C8C8C8C8
+C8C8C8C8C8C8CDCDCDCDCDCDCDCDCDD2D2D2D2D2D2D2D2D2CECECECECECECECECECACACACACACA
+CACACACDCDCDCDCDCDCDCDCDCDCDCDD3D3D3D3D3D3D3D3D3CDCDCDCDCDCDCDCDCDD1D1D1D1D1D1
+D1D1D1D5D5D5D5D5D5D5D5D5D5D5D5C3C3C3C3C3C3C3C3C3BFBFBFBFBFBFBFBFBFBABABABABABA
+BABABAACACACACACACACACACA7A7A7A7A7A7A7A7A7A7A7A7A3A3A3A3A3A3A3A3A39F9F9F9F9F9F
+9F9F9F9E9E9E9E9E9E9E9E9EA1A1A1A1A1A1A1A1A1A9A9A9A9A9A9A9A9A9A9A9A9AEAEAEAEAEAE
+AEAEAEAFAFAFAFAFAFAFAFAFB2B2B2B2B2B2B2B2B2959595959595959595959595787878787878
+787878999999999999999999C1C1C1C1C1C1C1C1C1DADADADADADADADADAC0C0C0C0C0C0C0C0C0
+C0C0C08C8C8C8C8C8C8C8C8C8C8C8C8C8C8C8C8C8CBDBDBDBDBDBDBDBDBDBFBFBFBFBFBFBFBFBF
+BBBBBBBBBBBBBBBBBBBBBBBBC5C5C5C5C5C5C5C5C5CCCCCCCCCCCCCCCCCCD0D0D0D0D0D0D0D0D0
+CFCFCFCFCFCFCFCFCFCFCFCFD0D0D0D0D0D0D0D0D0B8B8B8B8B8B8B8B8B8CECECECECECECECECE
+C7C7C7C7C7C7C7C7C7C5C5C5C5C5C5C5C5C5C5C5C5C7C7C7C7C7C7C7C7C7D3D3D3D3D3D3D3D3D3
+DEDEDEDEDEDEDEDEDED6D6D6D6D6D6D6D6D6B8B8B8B8B8B8B8B8B8B8B8B88A8A8A8A8A8A8A8A8A
+858585858585858585BABABABABABABABABAE8E9E8E8E9E8E8E9E8E8E9E8D7D7D7D7D7D7D7D7D7
+ACACACACACACACACAC7B7B7B7B7B7B7B7B7B747474747474747474B3B3B3B3B3B3B3B3B3B3B3B3
+D6D6D6D6D6D6D6D6D6C5C5C5C5C5C5C5C5C58C8C8C8C8C8C8C8C8C5A5A5A5A5A5A5A5A5A7B7B7B
+7B7B7B7B7B7B7B7B7BC6C6C6C6C6C6C6C6C6DBDBDBDBDBDBDBDBDBD2D2D2D2D2D2D2D2D29C9C9C
+9C9C9C9C9C9C9C9C9C6E6E6E6E6E6E6E6E6E929292929292929292BDBDBDBDBDBDBDBDBDC1C1C1
+C1C1C1C1C1C1D0D0D0D0D0D0D0D0D0D0D0D0C0C0C0C0C0C0C0C0C09C9C9C9C9C9C9C9C9CADADAD
+ADADADADADADC3C3C3C3C3C3C3C3C3CFCFCFCFCFCFCFCFCFCFCFCFDFE0DFDFE0DFDFE0DFD6D6D6
+D6D6D6D6D6D6DADADADADADADADADADFE0DFDFE0DFDFE0DFDFE0DFCACACACACACACACACAC8C8C8
+C8C8C8C8C8C8D8D8D8D8D8D8D8D8D8D5D5D5D5D5D5D5D5D5D2D2D2D2D2D2D2D2D2D2D2D2C8C8C8
+C8C8C8C8C8C8B2B2B2B2B2B2B2B2B2A9A9A9A9A9A9A9A9A9AFAFAFAFAFAFAFAFAFA0A0A0A0A0A0
+A0A0A0A0A0A0A4A4A4A4A4A4A4A4A4B0B0B0B0B0B0B0B0B0A2A2A2A2A2A2A2A2A2989898989898
+9898989898989A9A9A9A9A9A9A9A9A9B9B9B9B9B9B9B9B9B9B9B9B9B9B9B9B9B9B9B9B9B9B9B9B
+9B9B9BA8A8A8A8A8A8A8A8A8A8A8A89C9C9C9C9C9C9C9C9C9393939393939393939E9E9E9E9E9E
+9E9E9EAFAFAFAFAFAFAFAFAFB8B8B8B8B8B8B8B8B8B8B8B8B3B3B3B3B3B3B3B3B3B4B4B4B4B4B4
+B4B4B4B2B2B2B2B2B2B2B2B2BEBEBEBEBEBEBEBEBEBEBEBEC3C3C3C3C3C3C3C3C3C4C4C4C4C4C4
+C4C4C4BABABABABABABABABAC5C5C5C5C5C5C5C5C5C8C8C8C8C8C8C8C8C8C8C8C8CDCDCDCDCDCD
+CDCDCDD2D2D2D2D2D2D2D2D2CECECECECECECECECECACACACACACACACACACDCDCDCDCDCDCDCDCD
+CDCDCDD3D3D3D3D3D3D3D3D3CDCDCDCDCDCDCDCDCDD1D1D1D1D1D1D1D1D1D5D5D5D5D5D5D5D5D5
+D5D5D5C3C3C3C3C3C3C3C3C3BFBFBFBFBFBFBFBFBFBABABABABABABABABAACACACACACACACACAC
+A7A7A7A7A7A7A7A7A7A7A7A7A3A3A3A3A3A3A3A3A39F9F9F9F9F9F9F9F9F9E9E9E9E9E9E9E9E9E
+A1A1A1A1A1A1A1A1A1A9A9A9A9A9A9A9A9A9A9A9A9AEAEAEAEAEAEAEAEAEAFAFAFAFAFAFAFAFAF
+B2B2B2B2B2B2B2B2B2959595959595959595959595787878787878787878999999999999999999
+C1C1C1C1C1C1C1C1C1DADADADADADADADADAC0C0C0C0C0C0C0C0C0C0C0C08C8C8C8C8C8C8C8C8C
+8C8C8C8C8C8C8C8C8CBDBDBDBDBDBDBDBDBDBFBFBFBFBFBFBFBFBFBBBBBBBBBBBBBBBBBBBBBBBB
+C5C5C5C5C5C5C5C5C5CCCCCCCCCCCCCCCCCCD0D0D0D0D0D0D0D0D0CFCFCFCFCFCFCFCFCFCFCFCF
+D0D0D0D0D0D0D0D0D0B8B8B8B8B8B8B8B8B8CECECECECECECECECEC7C7C7C7C7C7C7C7C7C5C5C5
+C5C5C5C5C5C5C5C5C5C7C7C7C7C7C7C7C7C7D3D3D3D3D3D3D3D3D3DEDEDEDEDEDEDEDEDED6D6D6
+D6D6D6D6D6D6B8B8B8B8B8B8B8B8B8B8B8B88A8A8A8A8A8A8A8A8A858585858585858585BABABA
+BABABABABABAE8E9E8E8E9E8E8E9E8E8E9E8D7D7D7D7D7D7D7D7D7ACACACACACACACACAC7B7B7B
+7B7B7B7B7B7B747474747474747474B3B3B3B3B3B3B3B3B3B3B3B3D6D6D6D6D6D6D6D6D6C5C5C5
+C5C5C5C5C5C58C8C8C8C8C8C8C8C8C5A5A5A5A5A5A5A5A5A7B7B7B7B7B7B7B7B7B7B7B7BC6C6C6
+C6C6C6C6C6C6DBDBDBDBDBDBDBDBDBD2D2D2D2D2D2D2D2D29C9C9C9C9C9C9C9C9C9C9C9C6E6E6E
+6E6E6E6E6E6E929292929292929292BDBDBDBDBDBDBDBDBDC1C1C1C1C1C1C1C1C1D0D0D0D0D0D0
+D0D0D0D0D0D0C0C0C0C0C0C0C0C0C09C9C9C9C9C9C9C9C9CADADADADADADADADADC3C3C3C3C3C3
+C3C3C3CFCFCFCFCFCFCFCFCFCFCFCFDFE0DFDFE0DFDFE0DFD6D6D6D6D6D6D6D6D6DADADADADADA
+DADADADFE0DFDFE0DFDFE0DFDFE0DFCACACACACACACACACAC8C8C8C8C8C8C8C8C8D8D8D8D8D8D8
+D8D8D8D5D5D5D5D5D5D5D5D5D2D2D2D2D2D2D2D2D2D2D2D2C8C8C8C8C8C8C8C8C8B2B2B2B2B2B2
+B2B2B2A9A9A9A9A9A9A9A9A9AFAFAFAFAFAFAFAFAFA0A0A0A0A0A0A0A0A0A0A0A0A4A4A4A4A4A4
+A4A4A4B0B0B0B0B0B0B0B0B0A2A2A2A2A2A2A2A2A29898989898989898989898989A9A9A9A9A9A
+9A9A9A9B9B9B9B9B9B9B9B9B9B9B9B9B9B9B9B9B9B9B9B9B9B9B9B9B9B9BA8A8A8A8A8A8A8A8A8
+A8A8A89C9C9C9C9C9C9C9C9C9393939393939393939E9E9E9E9E9E9E9E9EAFAFAFAFAFAFAFAFAF
+B8B8B8B8B8B8B8B8B8B8B8B8B3B3B3B3B3B3B3B3B3B4B4B4B4B4B4B4B4B4B2B2B2B2B2B2B2B2B2
+BEBEBEBEBEBEBEBEBEBEBEBEC3C3C3C3C3C3C3C3C3C4C4C4C4C4C4C4C4C4BABABABABABABABABA
+C5C5C5C5C5C5C5C5C5C8C8C8C8C8C8C8C8C8C8C8C8CDCDCDCDCDCDCDCDCDD2D2D2D2D2D2D2D2D2
+CECECECECECECECECECACACACACACACACACACDCDCDCDCDCDCDCDCDCDCDCDD3D3D3D3D3D3D3D3D3
+CDCDCDCDCDCDCDCDCDD1D1D1D1D1D1D1D1D1D5D5D5D5D5D5D5D5D5D5D5D5C3C3C3C3C3C3C3C3C3
+BFBFBFBFBFBFBFBFBFBABABABABABABABABAACACACACACACACACACA7A7A7A7A7A7A7A7A7A7A7A7
+A3A3A3A3A3A3A3A3A39F9F9F9F9F9F9F9F9F9E9E9E9E9E9E9E9E9EA1A1A1A1A1A1A1A1A1A9A9A9
+A9A9A9A9A9A9A9A9A9AEAEAEAEAEAEAEAEAEAFAFAFAFAFAFAFAFAFB2B2B2B2B2B2B2B2B2959595
+959595959595959595787878787878787878999999999999999999C1C1C1C1C1C1C1C1C1DADADA
+DADADADADADAC0C0C0C0C0C0C0C0C0C0C0C08C8C8C8C8C8C8C8C8C8C8C8C8C8C8C8C8C8CBDBDBD
+BDBDBDBDBDBDBFBFBFBFBFBFBFBFBFBBBBBBBBBBBBBBBBBBBBBBBBC5C5C5C5C5C5C5C5C5CCCCCC
+CCCCCCCCCCCCD0D0D0D0D0D0D0D0D0CFCFCFCFCFCFCFCFCFCFCFCFD0D0D0D0D0D0D0D0D0B8B8B8
+B8B8B8B8B8B8D4D4D4D4D4D4D4D4D4C5C5C5C5C5C5C5C5C5A3A3A3A3A3A3A3A3A3A3A3A3A2A2A2
+A2A2A2A2A2A2C6C6C6C6C6C6C6C6C6DBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBB0B1B0B0B1B0
+B0B1B0B0B1B06F6F6F6F6F6F6F6F6F626262626262626262A8A8A8A8A8A8A8A8A8E2E2E2E2E2E2
+E2E2E2E2E2E2E4E4E4E4E4E4E4E4E4A9A9A9A9A9A9A9A9A96E6E6E6E6E6E6E6E6E7D7D7D7D7D7D
+7D7D7DBBBBBBBBBBBBBBBBBBBBBBBBE0E0E0E0E0E0E0E0E0DFE0DFDFE0DFDFE0DFA8A8A8A8A8A8
+A8A8A8737373737373737373969696969696969696969696CCCCCCCCCCCCCCCCCCDDDDDDDDDDDD
+DDDDDDD6D6D6D6D6D6D6D6D6C4C4C4C4C4C4C4C4C4C4C4C4A1A1A1A1A1A1A1A1A1AFAFAFAFAFAF
+AFAFAFCBCBCBCBCBCBCBCBCBCFCFCFCFCFCFCFCFCFCCCCCCCCCCCCCCCCCCCCCCCCCECECECECECE
+CECECEC9C9C9C9C9C9C9C9C9C6C6C6C6C6C6C6C6C6CCCCCCCCCCCCCCCCCCDFDFDFDFDFDFDFDFDF
+DFDFDFE8E8E8E8E8E8E8E8E8E1E1E1E1E1E1E1E1E1E2E2E2E2E2E2E2E2E2DBDBDBDBDBDBDBDBDB
+DBDBDBACACACACACACACACAC9A9A9A9A9A9A9A9A9ABDBDBDBDBDBDBDBDBDD3D3D3D3D3D3D3D3D3
+D7D7D7D7D7D7D7D7D7D7D7D7C3C3C3C3C3C3C3C3C3B2B2B2B2B2B2B2B2B2B8B8B8B8B8B8B8B8B8
+BEBEBEBEBEBEBEBEBEB6B6B6B6B6B6B6B6B6B6B6B6B8B8B8B8B8B8B8B8B8BDBDBDBDBDBDBDBDBD
+ADADADADADADADADAD9A9A9A9A9A9A9A9A9A9A9A9A939393939393939393969696969696969696
+9A9A9A9A9A9A9A9A9A9898989898989898989B9B9B9B9B9B9B9B9B9B9B9B979797979797979797
+959595959595959595A1A1A1A1A1A1A1A1A1A7A7A7A7A7A7A7A7A7B0B1B0B0B1B0B0B1B0B0B1B0
+ACACACACACACACACACA8A8A8A8A8A8A8A8A8AAAAAAAAAAAAAAAAAAB0B1B0B0B1B0B0B1B0B0B1B0
+BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB0B0B0B0B0B0B0B0B0B1B1B1B1B1B1B1B1B1B7B7B7
+B7B7B7B7B7B7B7B7B7BFBFBFBFBFBFBFBFBFC7C7C7C7C7C7C7C7C7C3C3C3C3C3C3C3C3C3B7B7B7
+B7B7B7B7B7B7C7C7C7C7C7C7C7C7C7C7C7C7CECECECECECECECECEC2C2C2C2C2C2C2C2C2CCCCCC
+CCCCCCCCCCCCD2D2D2D2D2D2D2D2D2D2D2D2BEBEBEBEBEBEBEBEBEB3B3B3B3B3B3B3B3B3AFAFAF
+AFAFAFAFAFAFA5A5A5A5A5A5A5A5A5A6A6A6A6A6A6A6A6A6A6A6A69F9F9F9F9F9F9F9F9F979797
+9797979797979E9E9E9E9E9E9E9E9EA5A5A5A5A5A5A5A5A5A6A6A6A6A6A6A6A6A6A6A6A6B0B0B0
+B0B0B0B0B0B0B4B4B4B4B4B4B4B4B4B2B2B2B2B2B2B2B2B29B9B9B9B9B9B9B9B9B9B9B9B919191
+919191919191A2A2A2A2A2A2A2A2A2B8B8B8B8B8B8B8B8B8D7D7D7D7D7D7D7D7D7C7C7C7C7C7C7
+C7C7C7C7C7C7B0B1B0B0B1B0B0B1B0B2B2B2B2B2B2B2B2B2C6C6C6C6C6C6C6C6C6BDBDBDBDBDBD
+BDBDBD9898989898989898989898989C9C9C9C9C9C9C9C9CCCCCCCCCCCCCCCCCCCD1D1D1D1D1D1
+D1D1D1BEBEBEBEBEBEBEBEBEBEBEBEB5B5B5B5B5B5B5B5B5C0C0C0C0C0C0C0C0C0D4D4D4D4D4D4
+D4D4D4C5C5C5C5C5C5C5C5C5A3A3A3A3A3A3A3A3A3A3A3A3A2A2A2A2A2A2A2A2A2C6C6C6C6C6C6
+C6C6C6DBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBB0B1B0B0B1B0B0B1B0B0B1B06F6F6F6F6F6F
+6F6F6F626262626262626262A8A8A8A8A8A8A8A8A8E2E2E2E2E2E2E2E2E2E2E2E2E4E4E4E4E4E4
+E4E4E4A9A9A9A9A9A9A9A9A96E6E6E6E6E6E6E6E6E7D7D7D7D7D7D7D7D7DBBBBBBBBBBBBBBBBBB
+BBBBBBE0E0E0E0E0E0E0E0E0DFE0DFDFE0DFDFE0DFA8A8A8A8A8A8A8A8A8737373737373737373
+969696969696969696969696CCCCCCCCCCCCCCCCCCDDDDDDDDDDDDDDDDDDD6D6D6D6D6D6D6D6D6
+C4C4C4C4C4C4C4C4C4C4C4C4A1A1A1A1A1A1A1A1A1AFAFAFAFAFAFAFAFAFCBCBCBCBCBCBCBCBCB
+CFCFCFCFCFCFCFCFCFCCCCCCCCCCCCCCCCCCCCCCCCCECECECECECECECECEC9C9C9C9C9C9C9C9C9
+C6C6C6C6C6C6C6C6C6CCCCCCCCCCCCCCCCCCDFDFDFDFDFDFDFDFDFDFDFDFE8E8E8E8E8E8E8E8E8
+E1E1E1E1E1E1E1E1E1E2E2E2E2E2E2E2E2E2DBDBDBDBDBDBDBDBDBDBDBDBACACACACACACACACAC
+9A9A9A9A9A9A9A9A9ABDBDBDBDBDBDBDBDBDD3D3D3D3D3D3D3D3D3D7D7D7D7D7D7D7D7D7D7D7D7
+C3C3C3C3C3C3C3C3C3B2B2B2B2B2B2B2B2B2B8B8B8B8B8B8B8B8B8BEBEBEBEBEBEBEBEBEB6B6B6
+B6B6B6B6B6B6B6B6B6B8B8B8B8B8B8B8B8B8BDBDBDBDBDBDBDBDBDADADADADADADADADAD9A9A9A
+9A9A9A9A9A9A9A9A9A9393939393939393939696969696969696969A9A9A9A9A9A9A9A9A989898
+9898989898989B9B9B9B9B9B9B9B9B9B9B9B979797979797979797959595959595959595A1A1A1
+A1A1A1A1A1A1A7A7A7A7A7A7A7A7A7B0B1B0B0B1B0B0B1B0B0B1B0ACACACACACACACACACA8A8A8
+A8A8A8A8A8A8AAAAAAAAAAAAAAAAAAB0B1B0B0B1B0B0B1B0B0B1B0BBBBBBBBBBBBBBBBBBBBBBBB
+BBBBBBBBBBBBB0B0B0B0B0B0B0B0B0B1B1B1B1B1B1B1B1B1B7B7B7B7B7B7B7B7B7B7B7B7BFBFBF
+BFBFBFBFBFBFC7C7C7C7C7C7C7C7C7C3C3C3C3C3C3C3C3C3B7B7B7B7B7B7B7B7B7C7C7C7C7C7C7
+C7C7C7C7C7C7CECECECECECECECECEC2C2C2C2C2C2C2C2C2CCCCCCCCCCCCCCCCCCD2D2D2D2D2D2
+D2D2D2D2D2D2BEBEBEBEBEBEBEBEBEB3B3B3B3B3B3B3B3B3AFAFAFAFAFAFAFAFAFA5A5A5A5A5A5
+A5A5A5A6A6A6A6A6A6A6A6A6A6A6A69F9F9F9F9F9F9F9F9F9797979797979797979E9E9E9E9E9E
+9E9E9EA5A5A5A5A5A5A5A5A5A6A6A6A6A6A6A6A6A6A6A6A6B0B0B0B0B0B0B0B0B0B4B4B4B4B4B4
+B4B4B4B2B2B2B2B2B2B2B2B29B9B9B9B9B9B9B9B9B9B9B9B919191919191919191A2A2A2A2A2A2
+A2A2A2B8B8B8B8B8B8B8B8B8D7D7D7D7D7D7D7D7D7C7C7C7C7C7C7C7C7C7C7C7C7B0B1B0B0B1B0
+B0B1B0B2B2B2B2B2B2B2B2B2C6C6C6C6C6C6C6C6C6BDBDBDBDBDBDBDBDBD989898989898989898
+9898989C9C9C9C9C9C9C9C9CCCCCCCCCCCCCCCCCCCD1D1D1D1D1D1D1D1D1BEBEBEBEBEBEBEBEBE
+BEBEBEB5B5B5B5B5B5B5B5B5C0C0C0C0C0C0C0C0C0D4D4D4D4D4D4D4D4D4C5C5C5C5C5C5C5C5C5
+A3A3A3A3A3A3A3A3A3A3A3A3A2A2A2A2A2A2A2A2A2C6C6C6C6C6C6C6C6C6DBDBDBDBDBDBDBDBDB
+DBDBDBDBDBDBDBDBDBB0B1B0B0B1B0B0B1B0B0B1B06F6F6F6F6F6F6F6F6F626262626262626262
+A8A8A8A8A8A8A8A8A8E2E2E2E2E2E2E2E2E2E2E2E2E4E4E4E4E4E4E4E4E4A9A9A9A9A9A9A9A9A9
+6E6E6E6E6E6E6E6E6E7D7D7D7D7D7D7D7D7DBBBBBBBBBBBBBBBBBBBBBBBBE0E0E0E0E0E0E0E0E0
+DFE0DFDFE0DFDFE0DFA8A8A8A8A8A8A8A8A8737373737373737373969696969696969696969696
+CCCCCCCCCCCCCCCCCCDDDDDDDDDDDDDDDDDDD6D6D6D6D6D6D6D6D6C4C4C4C4C4C4C4C4C4C4C4C4
+A1A1A1A1A1A1A1A1A1AFAFAFAFAFAFAFAFAFCBCBCBCBCBCBCBCBCBCFCFCFCFCFCFCFCFCFCCCCCC
+CCCCCCCCCCCCCCCCCCCECECECECECECECECEC9C9C9C9C9C9C9C9C9C6C6C6C6C6C6C6C6C6CCCCCC
+CCCCCCCCCCCCDFDFDFDFDFDFDFDFDFDFDFDFE8E8E8E8E8E8E8E8E8E1E1E1E1E1E1E1E1E1E2E2E2
+E2E2E2E2E2E2DBDBDBDBDBDBDBDBDBDBDBDBACACACACACACACACAC9A9A9A9A9A9A9A9A9ABDBDBD
+BDBDBDBDBDBDD3D3D3D3D3D3D3D3D3D7D7D7D7D7D7D7D7D7D7D7D7C3C3C3C3C3C3C3C3C3B2B2B2
+B2B2B2B2B2B2B8B8B8B8B8B8B8B8B8BEBEBEBEBEBEBEBEBEB6B6B6B6B6B6B6B6B6B6B6B6B8B8B8
+B8B8B8B8B8B8BDBDBDBDBDBDBDBDBDADADADADADADADADAD9A9A9A9A9A9A9A9A9A9A9A9A939393
+9393939393939696969696969696969A9A9A9A9A9A9A9A9A9898989898989898989B9B9B9B9B9B
+9B9B9B9B9B9B979797979797979797959595959595959595A1A1A1A1A1A1A1A1A1A7A7A7A7A7A7
+A7A7A7B0B1B0B0B1B0B0B1B0B0B1B0ACACACACACACACACACA8A8A8A8A8A8A8A8A8AAAAAAAAAAAA
+AAAAAAB0B1B0B0B1B0B0B1B0B0B1B0BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB0B0B0B0B0B0
+B0B0B0B1B1B1B1B1B1B1B1B1B7B7B7B7B7B7B7B7B7B7B7B7BFBFBFBFBFBFBFBFBFC7C7C7C7C7C7
+C7C7C7C3C3C3C3C3C3C3C3C3B7B7B7B7B7B7B7B7B7C7C7C7C7C7C7C7C7C7C7C7C7CECECECECECE
+CECECEC2C2C2C2C2C2C2C2C2CCCCCCCCCCCCCCCCCCD2D2D2D2D2D2D2D2D2D2D2D2BEBEBEBEBEBE
+BEBEBEB3B3B3B3B3B3B3B3B3AFAFAFAFAFAFAFAFAFA5A5A5A5A5A5A5A5A5A6A6A6A6A6A6A6A6A6
+A6A6A69F9F9F9F9F9F9F9F9F9797979797979797979E9E9E9E9E9E9E9E9EA5A5A5A5A5A5A5A5A5
+A6A6A6A6A6A6A6A6A6A6A6A6B0B0B0B0B0B0B0B0B0B4B4B4B4B4B4B4B4B4B2B2B2B2B2B2B2B2B2
+9B9B9B9B9B9B9B9B9B9B9B9B919191919191919191A2A2A2A2A2A2A2A2A2B8B8B8B8B8B8B8B8B8
+D7D7D7D7D7D7D7D7D7C7C7C7C7C7C7C7C7C7C7C7C7B0B1B0B0B1B0B0B1B0B2B2B2B2B2B2B2B2B2
+C6C6C6C6C6C6C6C6C6BDBDBDBDBDBDBDBDBD9898989898989898989898989C9C9C9C9C9C9C9C9C
+CCCCCCCCCCCCCCCCCCD1D1D1D1D1D1D1D1D1BEBEBEBEBEBEBEBEBEBEBEBEB5B5B5B5B5B5B5B5B5
+C0C0C0C0C0C0C0C0C0DBDBDBDBDBDBDBDBDBBDBDBDBDBDBDBDBDBD797979797979797979797979
+6E6E6E6E6E6E6E6E6EB3B3B3B3B3B3B3B3B3D6D6D5D6D6D5D6D6D5DADADADADADADADADAA6A6A6
+A6A6A6A6A6A6A6A6A66C6C6C6C6C6C6C6C6C7E7E7E7E7E7E7E7E7EB6B6B6B6B6B6B6B6B6DBDBDB
+DBDBDBDBDBDBDBDBDBE9E9E9E9E9E9E9E9E9C2C2C2C2C2C2C2C2C28E8E8E8E8E8E8E8E8EA7A7A7
+A7A7A7A7A7A7DADADADADADADADADADADADAEEEEEEEEEEEEEEEEEEE8E8E8E8E8E8E8E8E8CBCBCB
+CBCBCBCBCBCBABABABABABABABABABB8B8B8B8B8B8B8B8B8B8B8B8D6D6D6D6D6D6D6D6D6DDDDDD
+DDDDDDDDDDDDD6D6D5D6D6D5D6D6D5D5D5D5D5D5D5D5D5D5D5D5D5C4C4C4C4C4C4C4C4C4BDBDBD
+BDBDBDBDBDBDCBCBCBCBCBCBCBCBCBE0E0E0E0E0E0E0E0E0D6D6D6D6D6D6D6D6D6D6D6D6C5C5C5
+C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5B9B9B9B9B9B9B9B9B9B4B4B4B4B4B4B4B4B4CECECECECECE
+CECECECECECEE5E5E5E5E5E5E5E5E5E2E2E2E2E2E2E2E2E2DDDDDDDDDDDDDDDDDDCBCBCBCBCBCB
+CBCBCBCBCBCB8686868686868686865B5B5B5B5B5B5B5B5B8C8C8C8C8C8C8C8C8CCFCFCFCFCFCF
+CFCFCFE3E3E3E3E3E3E3E3E3E3E3E3CDCDCDCDCDCDCDCDCDB0B0B0B0B0B0B0B0B0B0B1B0B0B1B0
+B0B1B0BFBFBFBFBFBFBFBFBFC5C5C5C5C5C5C5C5C5C5C5C5C6C6C6C6C6C6C6C6C6BDBDBDBDBDBD
+BDBDBDB0B0B0B0B0B0B0B0B09E9E9E9E9E9E9E9E9E9E9E9EA1A1A1A1A1A1A1A1A1AAAAAAAAAAAA
+AAAAAAB0B0B0B0B0B0B0B0B0A7A7A7A7A7A7A7A7A79C9C9C9C9C9C9C9C9C9C9C9C9A9A9A9A9A9A
+9A9A9A9797979797979797979C9C9C9C9C9C9C9C9C9E9E9E9E9E9E9E9E9EA0A0A0A0A0A0A0A0A0
+A0A0A09D9D9D9D9D9D9D9D9D9E9E9E9E9E9E9E9E9EA1A1A1A1A1A1A1A1A1AAAAAAAAAAAAAAAAAA
+AAAAAAAEAEAEAEAEAEAEAEAEA2A2A2A2A2A2A2A2A2AEAEAEAEAEAEAEAEAEB8B8B8B8B8B8B8B8B8
+BCBCBCBCBCBCBCBCBCBCBCBCC1C1C1C1C1C1C1C1C1C9C9C9C9C9C9C9C9C9BFBFBFBFBFBFBFBFBF
+B0B1B0B0B1B0B0B1B0C2C2C2C2C2C2C2C2C2C2C2C2C4C4C4C4C4C4C4C4C4B0B1B0B0B1B0B0B1B0
+C1C1C1C1C1C1C1C1C1C7C7C7C7C7C7C7C7C7C7C7C7B3B3B3B3B3B3B3B3B3A8A8A8A8A8A8A8A8A8
+A6A6A6A6A6A6A6A6A6A5A5A5A5A5A5A5A5A5A8A8A8A8A8A8A8A8A8A8A8A89B9B9B9B9B9B9B9B9B
+9898989898989898989F9F9F9F9F9F9F9F9FA6A6A6A6A6A6A6A6A6A8A8A8A8A8A8A8A8A8A8A8A8
+B2B2B2B2B2B2B2B2B2B8B8B8B8B8B8B8B8B8B1B1B1B1B1B1B1B1B1A0A0A0A0A0A0A0A0A0A0A0A0
+8A8A8A8A8A8A8A8A8A7F7F7F7F7F7F7F7F7FA1A1A1A1A1A1A1A1A1CDCDCDCDCDCDCDCDCDC3C3C3
+C3C3C3C3C3C3C3C3C3B7B7B7B7B7B7B7B7B7BEBEBEBEBEBEBEBEBECBCBCBCBCBCBCBCBCBBEBEBE
+BEBEBEBEBEBE8C8C8C8C8C8C8C8C8C8C8C8C949494949494949494C7C7C7C7C7C7C7C7C7C8C8C8
+C8C8C8C8C8C8A6A6A6A6A6A6A6A6A6A6A6A68383838383838383839E9E9E9E9E9E9E9E9EDBDBDB
+DBDBDBDBDBDBBDBDBDBDBDBDBDBDBD7979797979797979797979796E6E6E6E6E6E6E6E6EB3B3B3
+B3B3B3B3B3B3D6D6D5D6D6D5D6D6D5DADADADADADADADADAA6A6A6A6A6A6A6A6A6A6A6A66C6C6C
+6C6C6C6C6C6C7E7E7E7E7E7E7E7E7EB6B6B6B6B6B6B6B6B6DBDBDBDBDBDBDBDBDBDBDBDBE9E9E9
+E9E9E9E9E9E9C2C2C2C2C2C2C2C2C28E8E8E8E8E8E8E8E8EA7A7A7A7A7A7A7A7A7DADADADADADA
+DADADADADADAEEEEEEEEEEEEEEEEEEE8E8E8E8E8E8E8E8E8CBCBCBCBCBCBCBCBCBABABABABABAB
+ABABABB8B8B8B8B8B8B8B8B8B8B8B8D6D6D6D6D6D6D6D6D6DDDDDDDDDDDDDDDDDDD6D6D5D6D6D5
+D6D6D5D5D5D5D5D5D5D5D5D5D5D5D5C4C4C4C4C4C4C4C4C4BDBDBDBDBDBDBDBDBDCBCBCBCBCBCB
+CBCBCBE0E0E0E0E0E0E0E0E0D6D6D6D6D6D6D6D6D6D6D6D6C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5
+C5C5C5B9B9B9B9B9B9B9B9B9B4B4B4B4B4B4B4B4B4CECECECECECECECECECECECEE5E5E5E5E5E5
+E5E5E5E2E2E2E2E2E2E2E2E2DDDDDDDDDDDDDDDDDDCBCBCBCBCBCBCBCBCBCBCBCB868686868686
+8686865B5B5B5B5B5B5B5B5B8C8C8C8C8C8C8C8C8CCFCFCFCFCFCFCFCFCFE3E3E3E3E3E3E3E3E3
+E3E3E3CDCDCDCDCDCDCDCDCDB0B0B0B0B0B0B0B0B0B0B1B0B0B1B0B0B1B0BFBFBFBFBFBFBFBFBF
+C5C5C5C5C5C5C5C5C5C5C5C5C6C6C6C6C6C6C6C6C6BDBDBDBDBDBDBDBDBDB0B0B0B0B0B0B0B0B0
+9E9E9E9E9E9E9E9E9E9E9E9EA1A1A1A1A1A1A1A1A1AAAAAAAAAAAAAAAAAAB0B0B0B0B0B0B0B0B0
+A7A7A7A7A7A7A7A7A79C9C9C9C9C9C9C9C9C9C9C9C9A9A9A9A9A9A9A9A9A979797979797979797
+9C9C9C9C9C9C9C9C9C9E9E9E9E9E9E9E9E9EA0A0A0A0A0A0A0A0A0A0A0A09D9D9D9D9D9D9D9D9D
+9E9E9E9E9E9E9E9E9EA1A1A1A1A1A1A1A1A1AAAAAAAAAAAAAAAAAAAAAAAAAEAEAEAEAEAEAEAEAE
+A2A2A2A2A2A2A2A2A2AEAEAEAEAEAEAEAEAEB8B8B8B8B8B8B8B8B8BCBCBCBCBCBCBCBCBCBCBCBC
+C1C1C1C1C1C1C1C1C1C9C9C9C9C9C9C9C9C9BFBFBFBFBFBFBFBFBFB0B1B0B0B1B0B0B1B0C2C2C2
+C2C2C2C2C2C2C2C2C2C4C4C4C4C4C4C4C4C4B0B1B0B0B1B0B0B1B0C1C1C1C1C1C1C1C1C1C7C7C7
+C7C7C7C7C7C7C7C7C7B3B3B3B3B3B3B3B3B3A8A8A8A8A8A8A8A8A8A6A6A6A6A6A6A6A6A6A5A5A5
+A5A5A5A5A5A5A8A8A8A8A8A8A8A8A8A8A8A89B9B9B9B9B9B9B9B9B9898989898989898989F9F9F
+9F9F9F9F9F9FA6A6A6A6A6A6A6A6A6A8A8A8A8A8A8A8A8A8A8A8A8B2B2B2B2B2B2B2B2B2B8B8B8
+B8B8B8B8B8B8B1B1B1B1B1B1B1B1B1A0A0A0A0A0A0A0A0A0A0A0A08A8A8A8A8A8A8A8A8A7F7F7F
+7F7F7F7F7F7FA1A1A1A1A1A1A1A1A1CDCDCDCDCDCDCDCDCDC3C3C3C3C3C3C3C3C3C3C3C3B7B7B7
+B7B7B7B7B7B7BEBEBEBEBEBEBEBEBECBCBCBCBCBCBCBCBCBBEBEBEBEBEBEBEBEBE8C8C8C8C8C8C
+8C8C8C8C8C8C949494949494949494C7C7C7C7C7C7C7C7C7C8C8C8C8C8C8C8C8C8A6A6A6A6A6A6
+A6A6A6A6A6A68383838383838383839E9E9E9E9E9E9E9E9ED0D0D0D0D0D0D0D0D0A7A7A7A7A7A7
+A7A7A7707070707070707070707070737373737373737373B1B1B1B1B1B1B1B1B1D9D9D9D9D9D9
+D9D9D9E1E1E1E1E1E1E1E1E1C1C1C1C1C1C1C1C1C1C1C1C1979797979797979797B4B4B4B4B4B4
+B4B4B4DBDBDBDBDBDBDBDBDBE2E2E2E2E2E2E2E2E2E2E2E2E4E4E4E4E4E4E4E4E4DCDCDCDCDCDC
+DCDCDCCBCBCBCBCBCBCBCBCBD2D2D2D2D2D2D2D2D2E6E6E6E6E6E6E6E6E6E6E6E6EDEDEDEDEDED
+EDEDEDE9E9E9E9E9E9E9E9E9DADADADADADADADADAC8C8C8C8C8C8C8C8C8BFBFBFBFBFBFBFBFBF
+BFBFBFD0D0D0D0D0D0D0D0D0D9D9D9D9D9D9D9D9D9D4D4D4D4D4D4D4D4D4D0D0D0D0D0D0D0D0D0
+D0D0D0C7C7C7C7C7C7C7C7C7B3B3B3B3B3B3B3B3B3AEAEAEAEAEAEAEAEAED3D3D3D3D3D3D3D3D3
+D0D0D0D0D0D0D0D0D0D0D0D0C8C8C8C8C8C8C8C8C8C0C0C0C0C0C0C0C0C09A9A9A9A9A9A9A9A9A
+717171717171717171848484848484848484848484C2C2C2C2C2C2C2C2C2DEDEDEDEDEDEDEDEDE
+D6D6D5D6D6D5D6D6D5A8A8A8A8A8A8A8A8A8A8A8A86B6B6B6B6B6B6B6B6B4E4E4E4E4E4E4E4E4E
+7C7C7C7C7C7C7C7C7CD0D0D0D0D0D0D0D0D0E9E9E9E9E9E9E9E9E9E9E9E9D3D3D3D3D3D3D3D3D3
+A0A0A0A0A0A0A0A0A08686868686868686869D9D9D9D9D9D9D9D9DB9B9B9B9B9B9B9B9B9B9B9B9
+C7C7C7C7C7C7C7C7C7C0C0C0C0C0C0C0C0C0B8B8B8B8B8B8B8B8B8ADADADADADADADADADADADAD
+AEAEAEAEAEAEAEAEAEB4B4B4B4B4B4B4B4B4B9B9B9B9B9B9B9B9B9B0B0B0B0B0B0B0B0B0ACACAC
+ACACACACACACACACACA2A2A2A2A2A2A2A2A29E9E9E9E9E9E9E9E9E9E9E9E9E9E9E9E9E9E9F9F9F
+9F9F9F9F9F9F9E9E9E9E9E9E9E9E9E9E9E9E9191919191919191919B9B9B9B9B9B9B9B9BA4A4A4
+A4A4A4A4A4A4AAAAAAAAAAAAAAAAAAAAAAAAA6A6A6A6A6A6A6A6A6A7A7A7A7A7A7A7A7A7B8B8B8
+B8B8B8B8B8B8B9B9B9B9B9B9B9B9B9B4B4B4B4B4B4B4B4B4B4B4B4BBBBBBBBBBBBBBBBBBBEBEBE
+BEBEBEBEBEBEB5B5B5B5B5B5B5B5B5B3B3B3B3B3B3B3B3B3B7B7B7B7B7B7B7B7B7B7B7B7B4B4B4
+B4B4B4B4B4B4AAAAAAAAAAAAAAAAAAB2B2B2B2B2B2B2B2B2B7B7B7B7B7B7B7B7B7B7B7B7AEAEAE
+AEAEAEAEAEAEA8A8A8A8A8A8A8A8A8A8A8A8A8A8A8A8A8A8A2A2A2A2A2A2A2A2A2A3A3A3A3A3A3
+A3A3A3A3A3A39B9B9B9B9B9B9B9B9BA2A2A2A2A2A2A2A2A2A6A6A6A6A6A6A6A6A6ABABABABABAB
+ABABABB1B1B1B1B1B1B1B1B1B1B1B1BABABABABABABABABABFBFBFBFBFBFBFBFBFAFAFAFAFAFAF
+AFAFAF9191919191919191919191916F6F6F6F6F6F6F6F6F6A6A6A6A6A6A6A6A6A9E9E9E9E9E9E
+9E9E9EC5C5C5C5C5C5C5C5C5B4B4B4B4B4B4B4B4B4B4B4B49191919191919191919A9A9A9A9A9A
+9A9A9AC6C6C6C6C6C6C6C6C6CCCCCCCCCCCCCCCCCCB0B0B0B0B0B0B0B0B0B0B0B0BEBEBEBEBEBE
+BEBEBEDDDDDDDDDDDDDDDDDDD5D5D5D5D5D5D5D5D5A7A7A7A7A7A7A7A7A7A7A7A77D7D7D7D7D7D
+7D7D7DA8A8A8A8A8A8A8A8A8D0D0D0D0D0D0D0D0D0A7A7A7A7A7A7A7A7A7707070707070707070
+707070737373737373737373B1B1B1B1B1B1B1B1B1D9D9D9D9D9D9D9D9D9E1E1E1E1E1E1E1E1E1
+C1C1C1C1C1C1C1C1C1C1C1C1979797979797979797B4B4B4B4B4B4B4B4B4DBDBDBDBDBDBDBDBDB
+E2E2E2E2E2E2E2E2E2E2E2E2E4E4E4E4E4E4E4E4E4DCDCDCDCDCDCDCDCDCCBCBCBCBCBCBCBCBCB
+D2D2D2D2D2D2D2D2D2E6E6E6E6E6E6E6E6E6E6E6E6EDEDEDEDEDEDEDEDEDE9E9E9E9E9E9E9E9E9
+DADADADADADADADADAC8C8C8C8C8C8C8C8C8BFBFBFBFBFBFBFBFBFBFBFBFD0D0D0D0D0D0D0D0D0
+D9D9D9D9D9D9D9D9D9D4D4D4D4D4D4D4D4D4D0D0D0D0D0D0D0D0D0D0D0D0C7C7C7C7C7C7C7C7C7
+B3B3B3B3B3B3B3B3B3AEAEAEAEAEAEAEAEAED3D3D3D3D3D3D3D3D3D0D0D0D0D0D0D0D0D0D0D0D0
+C8C8C8C8C8C8C8C8C8C0C0C0C0C0C0C0C0C09A9A9A9A9A9A9A9A9A717171717171717171848484
+848484848484848484C2C2C2C2C2C2C2C2C2DEDEDEDEDEDEDEDEDED6D6D5D6D6D5D6D6D5A8A8A8
+A8A8A8A8A8A8A8A8A86B6B6B6B6B6B6B6B6B4E4E4E4E4E4E4E4E4E7C7C7C7C7C7C7C7C7CD0D0D0
+D0D0D0D0D0D0E9E9E9E9E9E9E9E9E9E9E9E9D3D3D3D3D3D3D3D3D3A0A0A0A0A0A0A0A0A0868686
+8686868686869D9D9D9D9D9D9D9D9DB9B9B9B9B9B9B9B9B9B9B9B9C7C7C7C7C7C7C7C7C7C0C0C0
+C0C0C0C0C0C0B8B8B8B8B8B8B8B8B8ADADADADADADADADADADADADAEAEAEAEAEAEAEAEAEB4B4B4
+B4B4B4B4B4B4B9B9B9B9B9B9B9B9B9B0B0B0B0B0B0B0B0B0ACACACACACACACACACACACACA2A2A2
+A2A2A2A2A2A29E9E9E9E9E9E9E9E9E9E9E9E9E9E9E9E9E9E9F9F9F9F9F9F9F9F9F9E9E9E9E9E9E
+9E9E9E9E9E9E9191919191919191919B9B9B9B9B9B9B9B9BA4A4A4A4A4A4A4A4A4AAAAAAAAAAAA
+AAAAAAAAAAAAA6A6A6A6A6A6A6A6A6A7A7A7A7A7A7A7A7A7B8B8B8B8B8B8B8B8B8B9B9B9B9B9B9
+B9B9B9B4B4B4B4B4B4B4B4B4B4B4B4BBBBBBBBBBBBBBBBBBBEBEBEBEBEBEBEBEBEB5B5B5B5B5B5
+B5B5B5B3B3B3B3B3B3B3B3B3B7B7B7B7B7B7B7B7B7B7B7B7B4B4B4B4B4B4B4B4B4AAAAAAAAAAAA
+AAAAAAB2B2B2B2B2B2B2B2B2B7B7B7B7B7B7B7B7B7B7B7B7AEAEAEAEAEAEAEAEAEA8A8A8A8A8A8
+A8A8A8A8A8A8A8A8A8A8A8A8A2A2A2A2A2A2A2A2A2A3A3A3A3A3A3A3A3A3A3A3A39B9B9B9B9B9B
+9B9B9BA2A2A2A2A2A2A2A2A2A6A6A6A6A6A6A6A6A6ABABABABABABABABABB1B1B1B1B1B1B1B1B1
+B1B1B1BABABABABABABABABABFBFBFBFBFBFBFBFBFAFAFAFAFAFAFAFAFAF919191919191919191
+9191916F6F6F6F6F6F6F6F6F6A6A6A6A6A6A6A6A6A9E9E9E9E9E9E9E9E9EC5C5C5C5C5C5C5C5C5
+B4B4B4B4B4B4B4B4B4B4B4B49191919191919191919A9A9A9A9A9A9A9A9AC6C6C6C6C6C6C6C6C6
+CCCCCCCCCCCCCCCCCCB0B0B0B0B0B0B0B0B0B0B0B0BEBEBEBEBEBEBEBEBEDDDDDDDDDDDDDDDDDD
+D5D5D5D5D5D5D5D5D5A7A7A7A7A7A7A7A7A7A7A7A77D7D7D7D7D7D7D7D7DA8A8A8A8A8A8A8A8A8
+D0D0D0D0D0D0D0D0D0A7A7A7A7A7A7A7A7A7707070707070707070707070737373737373737373
+B1B1B1B1B1B1B1B1B1D9D9D9D9D9D9D9D9D9E1E1E1E1E1E1E1E1E1C1C1C1C1C1C1C1C1C1C1C1C1
+979797979797979797B4B4B4B4B4B4B4B4B4DBDBDBDBDBDBDBDBDBE2E2E2E2E2E2E2E2E2E2E2E2
+E4E4E4E4E4E4E4E4E4DCDCDCDCDCDCDCDCDCCBCBCBCBCBCBCBCBCBD2D2D2D2D2D2D2D2D2E6E6E6
+E6E6E6E6E6E6E6E6E6EDEDEDEDEDEDEDEDEDE9E9E9E9E9E9E9E9E9DADADADADADADADADAC8C8C8
+C8C8C8C8C8C8BFBFBFBFBFBFBFBFBFBFBFBFD0D0D0D0D0D0D0D0D0D9D9D9D9D9D9D9D9D9D4D4D4
+D4D4D4D4D4D4D0D0D0D0D0D0D0D0D0D0D0D0C7C7C7C7C7C7C7C7C7B3B3B3B3B3B3B3B3B3AEAEAE
+AEAEAEAEAEAED3D3D3D3D3D3D3D3D3D0D0D0D0D0D0D0D0D0D0D0D0C8C8C8C8C8C8C8C8C8C0C0C0
+C0C0C0C0C0C09A9A9A9A9A9A9A9A9A717171717171717171848484848484848484848484C2C2C2
+C2C2C2C2C2C2DEDEDEDEDEDEDEDEDED6D6D5D6D6D5D6D6D5A8A8A8A8A8A8A8A8A8A8A8A86B6B6B
+6B6B6B6B6B6B4E4E4E4E4E4E4E4E4E7C7C7C7C7C7C7C7C7CD0D0D0D0D0D0D0D0D0E9E9E9E9E9E9
+E9E9E9E9E9E9D3D3D3D3D3D3D3D3D3A0A0A0A0A0A0A0A0A08686868686868686869D9D9D9D9D9D
+9D9D9DB9B9B9B9B9B9B9B9B9B9B9B9C7C7C7C7C7C7C7C7C7C0C0C0C0C0C0C0C0C0B8B8B8B8B8B8
+B8B8B8ADADADADADADADADADADADADAEAEAEAEAEAEAEAEAEB4B4B4B4B4B4B4B4B4B9B9B9B9B9B9
+B9B9B9B0B0B0B0B0B0B0B0B0ACACACACACACACACACACACACA2A2A2A2A2A2A2A2A29E9E9E9E9E9E
+9E9E9E9E9E9E9E9E9E9E9E9E9F9F9F9F9F9F9F9F9F9E9E9E9E9E9E9E9E9E9E9E9E919191919191
+9191919B9B9B9B9B9B9B9B9BA4A4A4A4A4A4A4A4A4AAAAAAAAAAAAAAAAAAAAAAAAA6A6A6A6A6A6
+A6A6A6A7A7A7A7A7A7A7A7A7B8B8B8B8B8B8B8B8B8B9B9B9B9B9B9B9B9B9B4B4B4B4B4B4B4B4B4
+B4B4B4BBBBBBBBBBBBBBBBBBBEBEBEBEBEBEBEBEBEB5B5B5B5B5B5B5B5B5B3B3B3B3B3B3B3B3B3
+B7B7B7B7B7B7B7B7B7B7B7B7B4B4B4B4B4B4B4B4B4AAAAAAAAAAAAAAAAAAB2B2B2B2B2B2B2B2B2
+B7B7B7B7B7B7B7B7B7B7B7B7AEAEAEAEAEAEAEAEAEA8A8A8A8A8A8A8A8A8A8A8A8A8A8A8A8A8A8
+A2A2A2A2A2A2A2A2A2A3A3A3A3A3A3A3A3A3A3A3A39B9B9B9B9B9B9B9B9BA2A2A2A2A2A2A2A2A2
+A6A6A6A6A6A6A6A6A6ABABABABABABABABABB1B1B1B1B1B1B1B1B1B1B1B1BABABABABABABABABA
+BFBFBFBFBFBFBFBFBFAFAFAFAFAFAFAFAFAF9191919191919191919191916F6F6F6F6F6F6F6F6F
+6A6A6A6A6A6A6A6A6A9E9E9E9E9E9E9E9E9EC5C5C5C5C5C5C5C5C5B4B4B4B4B4B4B4B4B4B4B4B4
+9191919191919191919A9A9A9A9A9A9A9A9AC6C6C6C6C6C6C6C6C6CCCCCCCCCCCCCCCCCCB0B0B0
+B0B0B0B0B0B0B0B0B0BEBEBEBEBEBEBEBEBEDDDDDDDDDDDDDDDDDDD5D5D5D5D5D5D5D5D5A7A7A7
+A7A7A7A7A7A7A7A7A77D7D7D7D7D7D7D7D7DA8A8A8A8A8A8A8A8A8E2E2E2E2E2E2E2E2E2BABABA
+BABABABABABA8E8E8E8E8E8E8E8E8E8E8E8E9E9E9E9E9E9E9E9E9EC9C9C9C9C9C9C9C9C9E0E0E0
+E0E0E0E0E0E0E8E8E8E8E8E8E8E8E8D7D7D7D7D7D7D7D7D7D7D7D7CECECECECECECECECED6D6D5
+D6D6D5D6D6D5E7E7E7E7E7E7E7E7E7E8E9E8E8E9E8E8E9E8E8E9E8E1E1E1E1E1E1E1E1E1DBDBDB
+DBDBDBDBDBDBD1D1D1D1D1D1D1D1D1C2C2C2C2C2C2C2C2C2C5C5C5C5C5C5C5C5C5C5C5C5D6D6D6
+D6D6D6D6D6D6E7E7E7E7E7E7E7E7E7DADADADADADADADADAC3C3C3C3C3C3C3C3C39A9A9A9A9A9A
+9A9A9A9A9A9A989898989898989898C1C1C1C1C1C1C1C1C1DADADADADADADADADACBCBCBCBCBCB
+CBCBCBCBCBCBBBBBBBBBBBBBBBBBBB979797979797979797787878787878787878AAAAAAAAAAAA
+AAAAAACECECECECECECECECECECECED7D7D7D7D7D7D7D7D7C4C4C4C4C4C4C4C4C48E8E8E8E8E8E
+8E8E8E5A5A5A5A5A5A5A5A5A626262626262626262626262AAAAAAAAAAAAAAAAAAD8D8D8D8D8D8
+D8D8D8D5D5D5D5D5D5D5D5D5A2A2A2A2A2A2A2A2A2A2A2A26B6B6B6B6B6B6B6B6B727272727272
+727272969696969696969696CFCFCFCFCFCFCFCFCFE0E0E0E0E0E0E0E0E0E0E0E0D6D6D5D6D6D5
+D6D6D5C0C0C0C0C0C0C0C0C0A1A1A1A1A1A1A1A1A1A2A2A2A2A2A2A2A2A2BDBDBDBDBDBDBDBDBD
+BDBDBDD0D0D0D0D0D0D0D0D0CBCBCBCBCBCBCBCBCBBEBEBEBEBEBEBEBEBEB7B7B7B7B7B7B7B7B7
+B7B7B7B4B4B4B4B4B4B4B4B4B5B5B5B5B5B5B5B5B5B7B7B7B7B7B7B7B7B7B3B3B3B3B3B3B3B3B3
+BCBCBCBCBCBCBCBCBCBCBCBCB2B2B2B2B2B2B2B2B2A7A7A7A7A7A7A7A7A7A1A1A1A1A1A1A1A1A1
+ABABABABABABABABABACACACACACACACACACACACACA3A3A3A3A3A3A3A3A3AAAAAAAAAAAAAAAAAA
+ABABABABABABABABABAEAEAEAEAEAEAEAEAEAEAEAEA6A6A6A6A6A6A6A6A6AFAFAFAFAFAFAFAFAF
+BBBBBBBBBBBBBBBBBBB7B7B7B7B7B7B7B7B7A3A3A3A3A3A3A3A3A3A3A3A3AEAEAEAEAEAEAEAEAE
+B1B1B1B1B1B1B1B1B1ACACACACACACACACACB0B0B0B0B0B0B0B0B0B2B2B2B2B2B2B2B2B2B2B2B2
+AEAEAEAEAEAEAEAEAEA9A9A9A9A9A9A9A9A9ADADADADADADADADADAAAAAAAAAAAAAAAAAAAAAAAA
+B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0A7A7A7A7A7A7A7A7A79D9D9D9D9D9D9D9D9D989898
+989898989898989898999999999999999999A7A7A7A7A7A7A7A7A7AAAAAAAAAAAAAAAAAAB3B3B3
+B3B3B3B3B3B3B8B8B8B8B8B8B8B8B8B8B8B8BBBBBBBBBBBBBBBBBBBDBDBDBDBDBDBDBDBDB0B0B0
+B0B0B0B0B0B08888888888888888888888887272727272727272729B9B9B9B9B9B9B9B9BBDBDBD
+BDBDBDBDBDBDC9C9C9C9C9C9C9C9C9A9A9A9A9A9A9A9A9A9A9A9A9767676767676767676858585
+858585858585C4C4C4C4C4C4C4C4C4D2D2D2D2D2D2D2D2D2BFBFBFBFBFBFBFBFBFBFBFBFCACACA
+CACACACACACAE6E6E6E6E6E6E6E6E6E2E2E2E2E2E2E2E2E2C7C7C7C7C7C7C7C7C7C7C7C7B3B3B3
+B3B3B3B3B3B3C7C7C7C7C7C7C7C7C7E2E2E2E2E2E2E2E2E2BABABABABABABABABA8E8E8E8E8E8E
+8E8E8E8E8E8E9E9E9E9E9E9E9E9E9EC9C9C9C9C9C9C9C9C9E0E0E0E0E0E0E0E0E0E8E8E8E8E8E8
+E8E8E8D7D7D7D7D7D7D7D7D7D7D7D7CECECECECECECECECED6D6D5D6D6D5D6D6D5E7E7E7E7E7E7
+E7E7E7E8E9E8E8E9E8E8E9E8E8E9E8E1E1E1E1E1E1E1E1E1DBDBDBDBDBDBDBDBDBD1D1D1D1D1D1
+D1D1D1C2C2C2C2C2C2C2C2C2C5C5C5C5C5C5C5C5C5C5C5C5D6D6D6D6D6D6D6D6D6E7E7E7E7E7E7
+E7E7E7DADADADADADADADADAC3C3C3C3C3C3C3C3C39A9A9A9A9A9A9A9A9A9A9A9A989898989898
+989898C1C1C1C1C1C1C1C1C1DADADADADADADADADACBCBCBCBCBCBCBCBCBCBCBCBBBBBBBBBBBBB
+BBBBBB979797979797979797787878787878787878AAAAAAAAAAAAAAAAAACECECECECECECECECE
+CECECED7D7D7D7D7D7D7D7D7C4C4C4C4C4C4C4C4C48E8E8E8E8E8E8E8E8E5A5A5A5A5A5A5A5A5A
+626262626262626262626262AAAAAAAAAAAAAAAAAAD8D8D8D8D8D8D8D8D8D5D5D5D5D5D5D5D5D5
+A2A2A2A2A2A2A2A2A2A2A2A26B6B6B6B6B6B6B6B6B727272727272727272969696969696969696
+CFCFCFCFCFCFCFCFCFE0E0E0E0E0E0E0E0E0E0E0E0D6D6D5D6D6D5D6D6D5C0C0C0C0C0C0C0C0C0
+A1A1A1A1A1A1A1A1A1A2A2A2A2A2A2A2A2A2BDBDBDBDBDBDBDBDBDBDBDBDD0D0D0D0D0D0D0D0D0
+CBCBCBCBCBCBCBCBCBBEBEBEBEBEBEBEBEBEB7B7B7B7B7B7B7B7B7B7B7B7B4B4B4B4B4B4B4B4B4
+B5B5B5B5B5B5B5B5B5B7B7B7B7B7B7B7B7B7B3B3B3B3B3B3B3B3B3BCBCBCBCBCBCBCBCBCBCBCBC
+B2B2B2B2B2B2B2B2B2A7A7A7A7A7A7A7A7A7A1A1A1A1A1A1A1A1A1ABABABABABABABABABACACAC
+ACACACACACACACACACA3A3A3A3A3A3A3A3A3AAAAAAAAAAAAAAAAAAABABABABABABABABABAEAEAE
+AEAEAEAEAEAEAEAEAEA6A6A6A6A6A6A6A6A6AFAFAFAFAFAFAFAFAFBBBBBBBBBBBBBBBBBBB7B7B7
+B7B7B7B7B7B7A3A3A3A3A3A3A3A3A3A3A3A3AEAEAEAEAEAEAEAEAEB1B1B1B1B1B1B1B1B1ACACAC
+ACACACACACACB0B0B0B0B0B0B0B0B0B2B2B2B2B2B2B2B2B2B2B2B2AEAEAEAEAEAEAEAEAEA9A9A9
+A9A9A9A9A9A9ADADADADADADADADADAAAAAAAAAAAAAAAAAAAAAAAAB0B0B0B0B0B0B0B0B0B0B0B0
+B0B0B0B0B0B0A7A7A7A7A7A7A7A7A79D9D9D9D9D9D9D9D9D989898989898989898989898999999
+999999999999A7A7A7A7A7A7A7A7A7AAAAAAAAAAAAAAAAAAB3B3B3B3B3B3B3B3B3B8B8B8B8B8B8
+B8B8B8B8B8B8BBBBBBBBBBBBBBBBBBBDBDBDBDBDBDBDBDBDB0B0B0B0B0B0B0B0B0888888888888
+8888888888887272727272727272729B9B9B9B9B9B9B9B9BBDBDBDBDBDBDBDBDBDC9C9C9C9C9C9
+C9C9C9A9A9A9A9A9A9A9A9A9A9A9A9767676767676767676858585858585858585C4C4C4C4C4C4
+C4C4C4D2D2D2D2D2D2D2D2D2BFBFBFBFBFBFBFBFBFBFBFBFCACACACACACACACACAE6E6E6E6E6E6
+E6E6E6E2E2E2E2E2E2E2E2E2C7C7C7C7C7C7C7C7C7C7C7C7B3B3B3B3B3B3B3B3B3C7C7C7C7C7C7
+C7C7C7F1F1F1F1F1F1F1F1F1E4E4E4E4E4E4E4E4E4C0C0C0C0C0C0C0C0C0C0C0C0B1B1B1B1B1B1
+B1B1B1C4C4C4C4C4C4C4C4C4D8D8D8D8D8D8D8D8D8EDEDEDEDEDEDEDEDEDE5E5E5E5E5E5E5E5E5
+E5E5E5D9D9D9D9D9D9D9D9D9C6C6C6C6C6C6C6C6C6B8B8B8B8B8B8B8B8B8BDBDBDBDBDBDBDBDBD
+BDBDBDD0D0D0D0D0D0D0D0D0D8D8D8D8D8D8D8D8D8CCCCCCCCCCCCCCCCCC9A9A9A9A9A9A9A9A9A
+7979797979797979797979799E9E9E9E9E9E9E9E9ED3D3D3D3D3D3D3D3D3CACACACACACACACACA
+B4B4B4B4B4B4B4B4B48686868686868686868686865F605F5F605F5F605F939393939393939393
+CBCBCBCBCBCBCBCBCBC5C5C5C5C5C5C5C5C5C5C5C5A6A6A6A6A6A6A6A6A67A7A7A7A7A7A7A7A7A
+636363636363636363939393939393939393CFCFCFCFCFCFCFCFCFCFCFCFE4E4E4E4E4E4E4E4E4
+C8C8C8C8C8C8C8C8C87F7F7F7F7F7F7F7F7F6767676767676767678A8A8A8A8A8A8A8A8A8A8A8A
+B1B1B1B1B1B1B1B1B1D3D3D3D3D3D3D3D3D3D8D8D8D8D8D8D8D8D8C5C5C5C5C5C5C5C5C5C5C5C5
+A3A3A3A3A3A3A3A3A3A2A2A2A2A2A2A2A2A2ADADADADADADADADADC3C3C3C3C3C3C3C3C3D0D0D0
+D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0DEDEDEDEDEDEDEDEDED3D3D3D3D3D3D3D3D3C7C7C7
+C7C7C7C7C7C7D9D9D9D9D9D9D9D9D9D9D9D9E2E2E2E2E2E2E2E2E2D2D2D2D2D2D2D2D2D2C0C0C0
+C0C0C0C0C0C0BDBDBDBDBDBDBDBDBDBDBDBDBEBEBEBEBEBEBEBEBEC0C0C0C0C0C0C0C0C0BEBEBE
+BEBEBEBEBEBEBFBFBFBFBFBFBFBFBFC4C4C4C4C4C4C4C4C4C4C4C4BABABABABABABABABAA8A8A8
+A8A8A8A8A8A8A4A4A4A4A4A4A4A4A4AFAFAFAFAFAFAFAFAFB6B6B6B6B6B6B6B6B6B6B6B6B4B4B4
+B4B4B4B4B4B4B6B6B6B6B6B6B6B6B6B2B2B2B2B2B2B2B2B2A8A8A8A8A8A8A8A8A8A8A8A8A2A2A2
+A2A2A2A2A2A2ADADADADADADADADADC0C0C0C0C0C0C0C0C0B8B8B8B8B8B8B8B8B8AFAFAFAFAFAF
+AFAFAFAFAFAFB0B1B0B0B1B0B0B1B0AAAAAAAAAAAAAAAAAAA4A4A4A4A4A4A4A4A4B1B1B1B1B1B1
+B1B1B1B5B5B5B5B5B5B5B5B5B5B5B5A9A9A9A9A9A9A9A9A9AAAAAAAAAAAAAAAAAAB0B1B0B0B1B0
+B0B1B0AAAAAAAAAAAAAAAAAAAAAAAAB0B1B0B0B1B0B0B1B0B0B0B0B0B0B0B0B0B0A0A0A0A0A0A0
+A0A0A09A9A9A9A9A9A9A9A9A949494949494949494949494A3A3A3A3A3A3A3A3A3AEAEAEAEAEAE
+AEAEAEADADADADADADADADADB1B1B1B1B1B1B1B1B1B3B3B3B3B3B3B3B3B3B3B3B3B7B7B7B7B7B7
+B7B7B7BABABABABABABABABABEBEBEBEBEBEBEBEBEB3B3B3B3B3B3B3B3B3B3B3B3B0B1B0B0B1B0
+B0B1B0D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2CBCBCBCBCBCBCBCBCBB8B8B8B8B8B8B8B8B8
+B8B8B8979797979797979797A3A3A3A3A3A3A3A3A3C9C9C9C9C9C9C9C9C9CACACACACACACACACA
+A1A1A1A1A1A1A1A1A1A1A1A1A8A8A8A8A8A8A8A8A8D3D3D3D3D3D3D3D3D3D9D9D9D9D9D9D9D9D9
+D6D6D6D6D6D6D6D6D6D6D6D6CECECECECECECECECEB7B7B7B7B7B7B7B7B7F1F1F1F1F1F1F1F1F1
+E4E4E4E4E4E4E4E4E4C0C0C0C0C0C0C0C0C0C0C0C0B1B1B1B1B1B1B1B1B1C4C4C4C4C4C4C4C4C4
+D8D8D8D8D8D8D8D8D8EDEDEDEDEDEDEDEDEDE5E5E5E5E5E5E5E5E5E5E5E5D9D9D9D9D9D9D9D9D9
+C6C6C6C6C6C6C6C6C6B8B8B8B8B8B8B8B8B8BDBDBDBDBDBDBDBDBDBDBDBDD0D0D0D0D0D0D0D0D0
+D8D8D8D8D8D8D8D8D8CCCCCCCCCCCCCCCCCC9A9A9A9A9A9A9A9A9A797979797979797979797979
+9E9E9E9E9E9E9E9E9ED3D3D3D3D3D3D3D3D3CACACACACACACACACAB4B4B4B4B4B4B4B4B4868686
+8686868686868686865F605F5F605F5F605F939393939393939393CBCBCBCBCBCBCBCBCBC5C5C5
+C5C5C5C5C5C5C5C5C5A6A6A6A6A6A6A6A6A67A7A7A7A7A7A7A7A7A636363636363636363939393
+939393939393CFCFCFCFCFCFCFCFCFCFCFCFE4E4E4E4E4E4E4E4E4C8C8C8C8C8C8C8C8C87F7F7F
+7F7F7F7F7F7F6767676767676767678A8A8A8A8A8A8A8A8A8A8A8AB1B1B1B1B1B1B1B1B1D3D3D3
+D3D3D3D3D3D3D8D8D8D8D8D8D8D8D8C5C5C5C5C5C5C5C5C5C5C5C5A3A3A3A3A3A3A3A3A3A2A2A2
+A2A2A2A2A2A2ADADADADADADADADADC3C3C3C3C3C3C3C3C3D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0
+D0D0D0D0D0D0DEDEDEDEDEDEDEDEDED3D3D3D3D3D3D3D3D3C7C7C7C7C7C7C7C7C7D9D9D9D9D9D9
+D9D9D9D9D9D9E2E2E2E2E2E2E2E2E2D2D2D2D2D2D2D2D2D2C0C0C0C0C0C0C0C0C0BDBDBDBDBDBD
+BDBDBDBDBDBDBEBEBEBEBEBEBEBEBEC0C0C0C0C0C0C0C0C0BEBEBEBEBEBEBEBEBEBFBFBFBFBFBF
+BFBFBFC4C4C4C4C4C4C4C4C4C4C4C4BABABABABABABABABAA8A8A8A8A8A8A8A8A8A4A4A4A4A4A4
+A4A4A4AFAFAFAFAFAFAFAFAFB6B6B6B6B6B6B6B6B6B6B6B6B4B4B4B4B4B4B4B4B4B6B6B6B6B6B6
+B6B6B6B2B2B2B2B2B2B2B2B2A8A8A8A8A8A8A8A8A8A8A8A8A2A2A2A2A2A2A2A2A2ADADADADADAD
+ADADADC0C0C0C0C0C0C0C0C0B8B8B8B8B8B8B8B8B8AFAFAFAFAFAFAFAFAFAFAFAFB0B1B0B0B1B0
+B0B1B0AAAAAAAAAAAAAAAAAAA4A4A4A4A4A4A4A4A4B1B1B1B1B1B1B1B1B1B5B5B5B5B5B5B5B5B5
+B5B5B5A9A9A9A9A9A9A9A9A9AAAAAAAAAAAAAAAAAAB0B1B0B0B1B0B0B1B0AAAAAAAAAAAAAAAAAA
+AAAAAAB0B1B0B0B1B0B0B1B0B0B0B0B0B0B0B0B0B0A0A0A0A0A0A0A0A0A09A9A9A9A9A9A9A9A9A
+949494949494949494949494A3A3A3A3A3A3A3A3A3AEAEAEAEAEAEAEAEAEADADADADADADADADAD
+B1B1B1B1B1B1B1B1B1B3B3B3B3B3B3B3B3B3B3B3B3B7B7B7B7B7B7B7B7B7BABABABABABABABABA
+BEBEBEBEBEBEBEBEBEB3B3B3B3B3B3B3B3B3B3B3B3B0B1B0B0B1B0B0B1B0D2D2D2D2D2D2D2D2D2
+D2D2D2D2D2D2D2D2D2CBCBCBCBCBCBCBCBCBB8B8B8B8B8B8B8B8B8B8B8B8979797979797979797
+A3A3A3A3A3A3A3A3A3C9C9C9C9C9C9C9C9C9CACACACACACACACACAA1A1A1A1A1A1A1A1A1A1A1A1
+A8A8A8A8A8A8A8A8A8D3D3D3D3D3D3D3D3D3D9D9D9D9D9D9D9D9D9D6D6D6D6D6D6D6D6D6D6D6D6
+CECECECECECECECECEB7B7B7B7B7B7B7B7B7F1F1F1F1F1F1F1F1F1E4E4E4E4E4E4E4E4E4C0C0C0
+C0C0C0C0C0C0C0C0C0B1B1B1B1B1B1B1B1B1C4C4C4C4C4C4C4C4C4D8D8D8D8D8D8D8D8D8EDEDED
+EDEDEDEDEDEDE5E5E5E5E5E5E5E5E5E5E5E5D9D9D9D9D9D9D9D9D9C6C6C6C6C6C6C6C6C6B8B8B8
+B8B8B8B8B8B8BDBDBDBDBDBDBDBDBDBDBDBDD0D0D0D0D0D0D0D0D0D8D8D8D8D8D8D8D8D8CCCCCC
+CCCCCCCCCCCC9A9A9A9A9A9A9A9A9A7979797979797979797979799E9E9E9E9E9E9E9E9ED3D3D3
+D3D3D3D3D3D3CACACACACACACACACAB4B4B4B4B4B4B4B4B48686868686868686868686865F605F
+5F605F5F605F939393939393939393CBCBCBCBCBCBCBCBCBC5C5C5C5C5C5C5C5C5C5C5C5A6A6A6
+A6A6A6A6A6A67A7A7A7A7A7A7A7A7A636363636363636363939393939393939393CFCFCFCFCFCF
+CFCFCFCFCFCFE4E4E4E4E4E4E4E4E4C8C8C8C8C8C8C8C8C87F7F7F7F7F7F7F7F7F676767676767
+6767678A8A8A8A8A8A8A8A8A8A8A8AB1B1B1B1B1B1B1B1B1D3D3D3D3D3D3D3D3D3D8D8D8D8D8D8
+D8D8D8C5C5C5C5C5C5C5C5C5C5C5C5A3A3A3A3A3A3A3A3A3A2A2A2A2A2A2A2A2A2ADADADADADAD
+ADADADC3C3C3C3C3C3C3C3C3D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0DEDEDEDEDEDE
+DEDEDED3D3D3D3D3D3D3D3D3C7C7C7C7C7C7C7C7C7D9D9D9D9D9D9D9D9D9D9D9D9E2E2E2E2E2E2
+E2E2E2D2D2D2D2D2D2D2D2D2C0C0C0C0C0C0C0C0C0BDBDBDBDBDBDBDBDBDBDBDBDBEBEBEBEBEBE
+BEBEBEC0C0C0C0C0C0C0C0C0BEBEBEBEBEBEBEBEBEBFBFBFBFBFBFBFBFBFC4C4C4C4C4C4C4C4C4
+C4C4C4BABABABABABABABABAA8A8A8A8A8A8A8A8A8A4A4A4A4A4A4A4A4A4AFAFAFAFAFAFAFAFAF
+B6B6B6B6B6B6B6B6B6B6B6B6B4B4B4B4B4B4B4B4B4B6B6B6B6B6B6B6B6B6B2B2B2B2B2B2B2B2B2
+A8A8A8A8A8A8A8A8A8A8A8A8A2A2A2A2A2A2A2A2A2ADADADADADADADADADC0C0C0C0C0C0C0C0C0
+B8B8B8B8B8B8B8B8B8AFAFAFAFAFAFAFAFAFAFAFAFB0B1B0B0B1B0B0B1B0AAAAAAAAAAAAAAAAAA
+A4A4A4A4A4A4A4A4A4B1B1B1B1B1B1B1B1B1B5B5B5B5B5B5B5B5B5B5B5B5A9A9A9A9A9A9A9A9A9
+AAAAAAAAAAAAAAAAAAB0B1B0B0B1B0B0B1B0AAAAAAAAAAAAAAAAAAAAAAAAB0B1B0B0B1B0B0B1B0
+B0B0B0B0B0B0B0B0B0A0A0A0A0A0A0A0A0A09A9A9A9A9A9A9A9A9A949494949494949494949494
+A3A3A3A3A3A3A3A3A3AEAEAEAEAEAEAEAEAEADADADADADADADADADB1B1B1B1B1B1B1B1B1B3B3B3
+B3B3B3B3B3B3B3B3B3B7B7B7B7B7B7B7B7B7BABABABABABABABABABEBEBEBEBEBEBEBEBEB3B3B3
+B3B3B3B3B3B3B3B3B3B0B1B0B0B1B0B0B1B0D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2CBCBCB
+CBCBCBCBCBCBB8B8B8B8B8B8B8B8B8B8B8B8979797979797979797A3A3A3A3A3A3A3A3A3C9C9C9
+C9C9C9C9C9C9CACACACACACACACACAA1A1A1A1A1A1A1A1A1A1A1A1A8A8A8A8A8A8A8A8A8D3D3D3
+D3D3D3D3D3D3D9D9D9D9D9D9D9D9D9D6D6D6D6D6D6D6D6D6D6D6D6CECECECECECECECECEB7B7B7
+B7B7B7B7B7B7DFE0DFDFE0DFDFE0DFE2E2E2E2E2E2E2E2E2D1D1D1D1D1D1D1D1D1D1D1D1A8A8A8
+A8A8A8A8A8A88E8E8E8E8E8E8E8E8EA9A9A9A9A9A9A9A9A9DEDEDEDEDEDEDEDEDEE4E4E4E4E4E4
+E4E4E4E4E4E4D0D0D0D0D0D0D0D0D0A2A2A2A2A2A2A2A2A2727272727272727272898989898989
+898989898989B8B8B8B8B8B8B8B8B8C6C6C6C6C6C6C6C6C6BFBFBFBFBFBFBFBFBF8D8D8D8D8D8D
+8D8D8D5F605F5F605F5F605F5F605F828282828282828282C3C3C3C3C3C3C3C3C3C6C6C6C6C6C6
+C6C6C6A7A7A7A7A7A7A7A7A77474747474747474747474745F605F5F605F5F605F878787878787
+878787BFBFBFBFBFBFBFBFBFCACACACACACACACACACACACAA9A9A9A9A9A9A9A9A9767676767676
+767676848484848484848484B8B8B8B8B8B8B8B8B8DBDBDBDBDBDBDBDBDBDBDBDBE8E8E8E8E8E8
+E8E8E8E0E0E0E0E0E0E0E0E0ADADADADADADADADAD909090909090909090B0B0B0B0B0B0B0B0B0
+B0B0B0C0C0C0C0C0C0C0C0C0CECECECECECECECECEDBDBDBDBDBDBDBDBDBD5D5D5D5D5D5D5D5D5
+D5D5D5C5C5C5C5C5C5C5C5C5BDBDBDBDBDBDBDBDBDBEBEBEBEBEBEBEBEBEC7C7C7C7C7C7C7C7C7
+D0D0D0D0D0D0D0D0D0D0D0D0C8C8C8C8C8C8C8C8C8D0D0D0D0D0D0D0D0D0DADADADADADADADADA
+DCDCDCDCDCDCDCDCDCEAEAEAEAEAEAEAEAEAEAEAEAE6E6E6E6E6E6E6E6E6D0D0D0D0D0D0D0D0D0
+B9B9B9B9B9B9B9B9B9B6B6B6B6B6B6B6B6B6B6B6B6BBBBBBBBBBBBBBBBBBC0C0C0C0C0C0C0C0C0
+BCBCBCBCBCBCBCBCBCC6C6C6C6C6C6C6C6C6C8C8C8C8C8C8C8C8C8C8C8C8BABABABABABABABABA
+ABABABABABABABABABB0B1B0B0B1B0B0B1B0B1B1B1B1B1B1B1B1B1B1B1B1B1B1B1B1B1B1B1B1B1
+AFAFAFAFAFAFAFAFAFB1B1B1B1B1B1B1B1B1B5B5B5B5B5B5B5B5B5AAAAAAAAAAAAAAAAAAAAAAAA
+A6A6A6A6A6A6A6A6A6ADADADADADADADADADC2C2C2C2C2C2C2C2C2BDBDBDBDBDBDBDBDBDC1C1C1
+C1C1C1C1C1C1C1C1C1B8B8B8B8B8B8B8B8B8B2B2B2B2B2B2B2B2B2B0B1B0B0B1B0B0B1B0B8B8B8
+B8B8B8B8B8B8B4B4B4B4B4B4B4B4B4B4B4B4A8A8A8A8A8A8A8A8A8A9A9A9A9A9A9A9A9A9AEAEAE
+AEAEAEAEAEAEA9A9A9A9A9A9A9A9A9A9A9A9ABABABABABABABABABABABABABABABABABABA1A1A1
+A1A1A1A1A1A1A0A0A0A0A0A0A0A0A09F9F9F9F9F9F9F9F9F9F9F9FB0B1B0B0B1B0B0B1B0B8B8B8
+B8B8B8B8B8B8B8B8B8B8B8B8B8B8B8B5B5B5B5B5B5B5B5B5B7B7B7B7B7B7B7B7B7B7B7B7B8B8B8
+B8B8B8B8B8B8B5B5B5B5B5B5B5B5B5BFBFBFBFBFBFBFBFBFCACACACACACACACACACACACAD6D6D5
+D6D6D5D6D6D5D9D9D9D9D9D9D9D9D9C4C4C4C4C4C4C4C4C4BDBDBDBDBDBDBDBDBDCACACACACACA
+CACACACACACABCBCBCBCBCBCBCBCBCB0B1B0B0B1B0B0B1B0BBBBBBBBBBBBBBBBBBB2B2B2B2B2B2
+B2B2B27B7B7B7B7B7B7B7B7B7B7B7B818181818181818181BDBDBDBDBDBDBDBDBDCBCBCBCBCBCB
+CBCBCBC2C2C2C2C2C2C2C2C2C2C2C2A4A4A4A4A4A4A4A4A4A4A4A4A4A4A4A4A4A4DFE0DFDFE0DF
+DFE0DFE2E2E2E2E2E2E2E2E2D1D1D1D1D1D1D1D1D1D1D1D1A8A8A8A8A8A8A8A8A88E8E8E8E8E8E
+8E8E8EA9A9A9A9A9A9A9A9A9DEDEDEDEDEDEDEDEDEE4E4E4E4E4E4E4E4E4E4E4E4D0D0D0D0D0D0
+D0D0D0A2A2A2A2A2A2A2A2A2727272727272727272898989898989898989898989B8B8B8B8B8B8
+B8B8B8C6C6C6C6C6C6C6C6C6BFBFBFBFBFBFBFBFBF8D8D8D8D8D8D8D8D8D5F605F5F605F5F605F
+5F605F828282828282828282C3C3C3C3C3C3C3C3C3C6C6C6C6C6C6C6C6C6A7A7A7A7A7A7A7A7A7
+7474747474747474747474745F605F5F605F5F605F878787878787878787BFBFBFBFBFBFBFBFBF
+CACACACACACACACACACACACAA9A9A9A9A9A9A9A9A9767676767676767676848484848484848484
+B8B8B8B8B8B8B8B8B8DBDBDBDBDBDBDBDBDBDBDBDBE8E8E8E8E8E8E8E8E8E0E0E0E0E0E0E0E0E0
+ADADADADADADADADAD909090909090909090B0B0B0B0B0B0B0B0B0B0B0B0C0C0C0C0C0C0C0C0C0
+CECECECECECECECECEDBDBDBDBDBDBDBDBDBD5D5D5D5D5D5D5D5D5D5D5D5C5C5C5C5C5C5C5C5C5
+BDBDBDBDBDBDBDBDBDBEBEBEBEBEBEBEBEBEC7C7C7C7C7C7C7C7C7D0D0D0D0D0D0D0D0D0D0D0D0
+C8C8C8C8C8C8C8C8C8D0D0D0D0D0D0D0D0D0DADADADADADADADADADCDCDCDCDCDCDCDCDCEAEAEA
+EAEAEAEAEAEAEAEAEAE6E6E6E6E6E6E6E6E6D0D0D0D0D0D0D0D0D0B9B9B9B9B9B9B9B9B9B6B6B6
+B6B6B6B6B6B6B6B6B6BBBBBBBBBBBBBBBBBBC0C0C0C0C0C0C0C0C0BCBCBCBCBCBCBCBCBCC6C6C6
+C6C6C6C6C6C6C8C8C8C8C8C8C8C8C8C8C8C8BABABABABABABABABAABABABABABABABABABB0B1B0
+B0B1B0B0B1B0B1B1B1B1B1B1B1B1B1B1B1B1B1B1B1B1B1B1B1B1B1AFAFAFAFAFAFAFAFAFB1B1B1
+B1B1B1B1B1B1B5B5B5B5B5B5B5B5B5AAAAAAAAAAAAAAAAAAAAAAAAA6A6A6A6A6A6A6A6A6ADADAD
+ADADADADADADC2C2C2C2C2C2C2C2C2BDBDBDBDBDBDBDBDBDC1C1C1C1C1C1C1C1C1C1C1C1B8B8B8
+B8B8B8B8B8B8B2B2B2B2B2B2B2B2B2B0B1B0B0B1B0B0B1B0B8B8B8B8B8B8B8B8B8B4B4B4B4B4B4
+B4B4B4B4B4B4A8A8A8A8A8A8A8A8A8A9A9A9A9A9A9A9A9A9AEAEAEAEAEAEAEAEAEA9A9A9A9A9A9
+A9A9A9A9A9A9ABABABABABABABABABABABABABABABABABABA1A1A1A1A1A1A1A1A1A0A0A0A0A0A0
+A0A0A09F9F9F9F9F9F9F9F9F9F9F9FB0B1B0B0B1B0B0B1B0B8B8B8B8B8B8B8B8B8B8B8B8B8B8B8
+B8B8B8B5B5B5B5B5B5B5B5B5B7B7B7B7B7B7B7B7B7B7B7B7B8B8B8B8B8B8B8B8B8B5B5B5B5B5B5
+B5B5B5BFBFBFBFBFBFBFBFBFCACACACACACACACACACACACAD6D6D5D6D6D5D6D6D5D9D9D9D9D9D9
+D9D9D9C4C4C4C4C4C4C4C4C4BDBDBDBDBDBDBDBDBDCACACACACACACACACACACACABCBCBCBCBCBC
+BCBCBCB0B1B0B0B1B0B0B1B0BBBBBBBBBBBBBBBBBBB2B2B2B2B2B2B2B2B27B7B7B7B7B7B7B7B7B
+7B7B7B818181818181818181BDBDBDBDBDBDBDBDBDCBCBCBCBCBCBCBCBCBC2C2C2C2C2C2C2C2C2
+C2C2C2A4A4A4A4A4A4A4A4A4A4A4A4A4A4A4A4A4A4B0B1B0B0B1B0B0B1B0B7B7B7B7B7B7B7B7B7
+B3B3B3B3B3B3B3B3B3B3B3B39E9E9E9E9E9E9E9E9E8C8C8C8C8C8C8C8C8C959595959595959595
+B0B1B0B0B1B0B0B1B0BFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFB0B1B0B0B1B0B0B1B0
+9D9D9D9D9D9D9D9D9DA5A5A5A5A5A5A5A5A5A5A5A5B8B8B8B8B8B8B8B8B8BBBBBBBBBBBBBBBBBB
+B7B7B7B7B7B7B7B7B79E9E9E9E9E9E9E9E9E9292929292929292929292929E9E9E9E9E9E9E9E9E
+B4B4B4B4B4B4B4B4B4B8B8B8B8B8B8B8B8B8ABABABABABABABABAB969696969696969696969696
+8E8E8E8E8E8E8E8E8E929292929292929292A2A2A2A2A2A2A2A2A2ABABABABABABABABABABABAB
+A4A4A4A4A4A4A4A4A4979797979797979797A0A0A0A0A0A0A0A0A0BEBEBEBEBEBEBEBEBED4D4D4
+D4D4D4D4D4D4D4D4D4E4E4E4E4E4E4E4E4E4E8E9E8E8E9E8E8E9E8DFDFDFDFDFDFDFDFDFCFCFCF
+CFCFCFCFCFCFCBCBCBCBCBCBCBCBCBCBCBCBD4D4D4D4D4D4D4D4D4DCDCDCDCDCDCDCDCDCDDDDDD
+DDDDDDDDDDDDD9D9D9D9D9D9D9D9D9D9D9D9D2D2D2D2D2D2D2D2D2CDCDCDCDCDCDCDCDCDD0D0D0
+D0D0D0D0D0D0D3D3D3D3D3D3D3D3D3CFCFCFCFCFCFCFCFCFCFCFCFC8C8C8C8C8C8C8C8C8CACACA
+CACACACACACAC3C3C3C3C3C3C3C3C3C5C5C5C5C5C5C5C5C5CCCCCCCCCCCCCCCCCCCCCCCCC5C5C5
+C5C5C5C5C5C5B8B8B8B8B8B8B8B8B8ADADADADADADADADADAFAFAFAFAFAFAFAFAFAFAFAFAFAFAF
+AFAFAFAFAFAFB7B7B7B7B7B7B7B7B7B8B8B8B8B8B8B8B8B8BCBCBCBCBCBCBCBCBCBFBFBFBFBFBF
+BFBFBFBFBFBFB9B9B9B9B9B9B9B9B9B8B8B8B8B8B8B8B8B8B9B9B9B9B9B9B9B9B9B9B9B9B9B9B9
+B9B9B9B7B7B7B7B7B7B7B7B7B7B7B7AFAFAFAFAFAFAFAFAFB0B1B0B0B1B0B0B1B0ABABABABABAB
+ABABAB9A9A9A9A9A9A9A9A9A9A9A9A9A9A9A9A9A9A9A9A9A9E9E9E9E9E9E9E9E9EA8A8A8A8A8A8
+A8A8A8A3A3A3A3A3A3A3A3A39F9F9F9F9F9F9F9F9F9F9F9F9A9A9A9A9A9A9A9A9A9C9C9C9C9C9C
+9C9C9C9B9B9B9B9B9B9B9B9B9999999999999999999999999999999999999999999C9C9C9C9C9C
+9C9C9C9A9A9A9A9A9A9A9A9A989898989898989898939393939393939393939393979797979797
+9797979595959595959595958E8E8E8E8E8E8E8E8E8E8E8E8E8E8E8E8E8E989898989898989898
+989898A8A8A8A8A8A8A8A8A8ABABABABABABABABABB0B1B0B0B1B0B0B1B0AFAFAFAFAFAFAFAFAF
+B0B1B0B0B1B0B0B1B0B0B1B0ADADADADADADADADADACACACACACACACACACB3B3B3B3B3B3B3B3B3
+B3B3B3B3B3B3B3B3B3B3B3B3BDBDBDBDBDBDBDBDBDBABABABABABABABABAA9A9A9A9A9A9A9A9A9
+A7A7A7A7A7A7A7A7A7A6A6A6A6A6A6A6A6A6A6A6A6959595959595959595818181818181818181
+7777777777777777777676767676767676766A6A6A6A6A6A6A6A6A6A6A6A717171717171717171
+8A8A8A8A8A8A8A8A8A9090909090909090909090909090909090909090908C8C8C8C8C8C8C8C8C
+949494949494949494B0B1B0B0B1B0B0B1B0B7B7B7B7B7B7B7B7B7B3B3B3B3B3B3B3B3B3B3B3B3
+9E9E9E9E9E9E9E9E9E8C8C8C8C8C8C8C8C8C959595959595959595B0B1B0B0B1B0B0B1B0BFBFBF
+BFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFB0B1B0B0B1B0B0B1B09D9D9D9D9D9D9D9D9DA5A5A5
+A5A5A5A5A5A5A5A5A5B8B8B8B8B8B8B8B8B8BBBBBBBBBBBBBBBBBBB7B7B7B7B7B7B7B7B79E9E9E
+9E9E9E9E9E9E9292929292929292929292929E9E9E9E9E9E9E9E9EB4B4B4B4B4B4B4B4B4B8B8B8
+B8B8B8B8B8B8ABABABABABABABABAB9696969696969696969696968E8E8E8E8E8E8E8E8E929292
+929292929292A2A2A2A2A2A2A2A2A2ABABABABABABABABABABABABA4A4A4A4A4A4A4A4A4979797
+979797979797A0A0A0A0A0A0A0A0A0BEBEBEBEBEBEBEBEBED4D4D4D4D4D4D4D4D4D4D4D4E4E4E4
+E4E4E4E4E4E4E8E9E8E8E9E8E8E9E8DFDFDFDFDFDFDFDFDFCFCFCFCFCFCFCFCFCFCBCBCBCBCBCB
+CBCBCBCBCBCBD4D4D4D4D4D4D4D4D4DCDCDCDCDCDCDCDCDCDDDDDDDDDDDDDDDDDDD9D9D9D9D9D9
+D9D9D9D9D9D9D2D2D2D2D2D2D2D2D2CDCDCDCDCDCDCDCDCDD0D0D0D0D0D0D0D0D0D3D3D3D3D3D3
+D3D3D3CFCFCFCFCFCFCFCFCFCFCFCFC8C8C8C8C8C8C8C8C8CACACACACACACACACAC3C3C3C3C3C3
+C3C3C3C5C5C5C5C5C5C5C5C5CCCCCCCCCCCCCCCCCCCCCCCCC5C5C5C5C5C5C5C5C5B8B8B8B8B8B8
+B8B8B8ADADADADADADADADADAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFB7B7B7B7B7B7
+B7B7B7B8B8B8B8B8B8B8B8B8BCBCBCBCBCBCBCBCBCBFBFBFBFBFBFBFBFBFBFBFBFB9B9B9B9B9B9
+B9B9B9B8B8B8B8B8B8B8B8B8B9B9B9B9B9B9B9B9B9B9B9B9B9B9B9B9B9B9B7B7B7B7B7B7B7B7B7
+B7B7B7AFAFAFAFAFAFAFAFAFB0B1B0B0B1B0B0B1B0ABABABABABABABABAB9A9A9A9A9A9A9A9A9A
+9A9A9A9A9A9A9A9A9A9A9A9A9E9E9E9E9E9E9E9E9EA8A8A8A8A8A8A8A8A8A3A3A3A3A3A3A3A3A3
+9F9F9F9F9F9F9F9F9F9F9F9F9A9A9A9A9A9A9A9A9A9C9C9C9C9C9C9C9C9C9B9B9B9B9B9B9B9B9B
+9999999999999999999999999999999999999999999C9C9C9C9C9C9C9C9C9A9A9A9A9A9A9A9A9A
+989898989898989898939393939393939393939393979797979797979797959595959595959595
+8E8E8E8E8E8E8E8E8E8E8E8E8E8E8E8E8E8E989898989898989898989898A8A8A8A8A8A8A8A8A8
+ABABABABABABABABABB0B1B0B0B1B0B0B1B0AFAFAFAFAFAFAFAFAFB0B1B0B0B1B0B0B1B0B0B1B0
+ADADADADADADADADADACACACACACACACACACB3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3
+BDBDBDBDBDBDBDBDBDBABABABABABABABABAA9A9A9A9A9A9A9A9A9A7A7A7A7A7A7A7A7A7A6A6A6
+A6A6A6A6A6A6A6A6A6959595959595959595818181818181818181777777777777777777767676
+7676767676766A6A6A6A6A6A6A6A6A6A6A6A7171717171717171718A8A8A8A8A8A8A8A8A909090
+9090909090909090909090909090909090908C8C8C8C8C8C8C8C8C949494949494949494B0B1B0
+B0B1B0B0B1B0B7B7B7B7B7B7B7B7B7B3B3B3B3B3B3B3B3B3B3B3B39E9E9E9E9E9E9E9E9E8C8C8C
+8C8C8C8C8C8C959595959595959595B0B1B0B0B1B0B0B1B0BFBFBFBFBFBFBFBFBFBFBFBFBFBFBF
+BFBFBFBFBFBFB0B1B0B0B1B0B0B1B09D9D9D9D9D9D9D9D9DA5A5A5A5A5A5A5A5A5A5A5A5B8B8B8
+B8B8B8B8B8B8BBBBBBBBBBBBBBBBBBB7B7B7B7B7B7B7B7B79E9E9E9E9E9E9E9E9E929292929292
+9292929292929E9E9E9E9E9E9E9E9EB4B4B4B4B4B4B4B4B4B8B8B8B8B8B8B8B8B8ABABABABABAB
+ABABAB9696969696969696969696968E8E8E8E8E8E8E8E8E929292929292929292A2A2A2A2A2A2
+A2A2A2ABABABABABABABABABABABABA4A4A4A4A4A4A4A4A4979797979797979797A0A0A0A0A0A0
+A0A0A0BEBEBEBEBEBEBEBEBED4D4D4D4D4D4D4D4D4D4D4D4E4E4E4E4E4E4E4E4E4E8E9E8E8E9E8
+E8E9E8DFDFDFDFDFDFDFDFDFCFCFCFCFCFCFCFCFCFCBCBCBCBCBCBCBCBCBCBCBCBD4D4D4D4D4D4
+D4D4D4DCDCDCDCDCDCDCDCDCDDDDDDDDDDDDDDDDDDD9D9D9D9D9D9D9D9D9D9D9D9D2D2D2D2D2D2
+D2D2D2CDCDCDCDCDCDCDCDCDD0D0D0D0D0D0D0D0D0D3D3D3D3D3D3D3D3D3CFCFCFCFCFCFCFCFCF
+CFCFCFC8C8C8C8C8C8C8C8C8CACACACACACACACACAC3C3C3C3C3C3C3C3C3C5C5C5C5C5C5C5C5C5
+CCCCCCCCCCCCCCCCCCCCCCCCC5C5C5C5C5C5C5C5C5B8B8B8B8B8B8B8B8B8ADADADADADADADADAD
+AFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFB7B7B7B7B7B7B7B7B7B8B8B8B8B8B8B8B8B8
+BCBCBCBCBCBCBCBCBCBFBFBFBFBFBFBFBFBFBFBFBFB9B9B9B9B9B9B9B9B9B8B8B8B8B8B8B8B8B8
+B9B9B9B9B9B9B9B9B9B9B9B9B9B9B9B9B9B9B7B7B7B7B7B7B7B7B7B7B7B7AFAFAFAFAFAFAFAFAF
+B0B1B0B0B1B0B0B1B0ABABABABABABABABAB9A9A9A9A9A9A9A9A9A9A9A9A9A9A9A9A9A9A9A9A9A
+9E9E9E9E9E9E9E9E9EA8A8A8A8A8A8A8A8A8A3A3A3A3A3A3A3A3A39F9F9F9F9F9F9F9F9F9F9F9F
+9A9A9A9A9A9A9A9A9A9C9C9C9C9C9C9C9C9C9B9B9B9B9B9B9B9B9B999999999999999999999999
+9999999999999999999C9C9C9C9C9C9C9C9C9A9A9A9A9A9A9A9A9A989898989898989898939393
+9393939393939393939797979797979797979595959595959595958E8E8E8E8E8E8E8E8E8E8E8E
+8E8E8E8E8E8E989898989898989898989898A8A8A8A8A8A8A8A8A8ABABABABABABABABABB0B1B0
+B0B1B0B0B1B0AFAFAFAFAFAFAFAFAFB0B1B0B0B1B0B0B1B0B0B1B0ADADADADADADADADADACACAC
+ACACACACACACB3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3BDBDBDBDBDBDBDBDBDBABABA
+BABABABABABAA9A9A9A9A9A9A9A9A9A7A7A7A7A7A7A7A7A7A6A6A6A6A6A6A6A6A6A6A6A6959595
+9595959595958181818181818181817777777777777777777676767676767676766A6A6A6A6A6A
+6A6A6A6A6A6A7171717171717171718A8A8A8A8A8A8A8A8A909090909090909090909090909090
+9090909090908C8C8C8C8C8C8C8C8C949494949494949494
+
+end
+%%PageTrailer
+%%Trailer
+%%EOF
diff --git a/language/french/e-french/texmf/doc/test/mygglo.ist b/language/french/e-french/texmf/doc/test/mygglo.ist
new file mode 100644
index 0000000000..9748168e9e
--- /dev/null
+++ b/language/french/e-french/texmf/doc/test/mygglo.ist
@@ -0,0 +1,69 @@
+%% mods --bg 10/09/92
+%% This is file `gglo.ist' generated
+%% on <1990/2/24> with the docstrip utility (v1.1f).
+%%
+%% The original source file was `gglo.doc'.
+%%
+%%
+%% Copyright (C) 1989,1990 by Frank Mittelbach. All rights reserved.
+%%
+%% IMPORTANT NOTICE:
+%%
+%% You are not allowed to change this file.
+%% You may however copy this file to a different name and then
+%% change this copy.
+%%
+%% You are allowed to distribute this file under the condition that it is
+%% distributed together with all files mentioned in readme.mz1.
+%% If you receive only some of these files from someone, complain!
+%%
+%% Error Reports in case of UNCHANGED versions to
+%%
+%% F. Mittelbach
+%% Eichenweg 29
+%% D-6500 Mainz 1
+%% Federal Republic of Germany
+%% Bitnet: <PZF5HZ@DRUEDS2>
+%%
+
+%% This is a MAKEINDEX style file which should be used to generate the
+%% formatted change history for use with the doc style option. The TeX
+%% commands used below are defined in doc.sty. The commands for MAKEINDEX
+%% like `level' `item_x1' are described in `` Makeindex, A General Purpose,
+%% Formatter-Independent Index Processor'' by Poheng Chen.
+
+%% Since the standard MAKEINDEX implementation have very limited space for
+%% their items some of the change entries might fall through. This is
+%% unfortunate but I think I can live with it for the moment.
+
+level '>'
+actual '='
+quote '!'
+
+delim_0 "\\pfill "
+delim_1 "\\pfill "
+delim_2 "\\pfill "
+
+item_x1 "\\efill \n \\subitem "
+item_x2 "\\efill \n \\subsubitem "
+
+%% The following is commented (makeindex complains "unknown specifiers) --bg
+%%lethead_prefix "{\\bf\\hfil "
+%%lethead_suffix "\\hfil}\\nopagebreak\n"
+%%lethead_flag 1 % Generate Headings
+
+%% We disable scanning of macro names inside the index because there
+%% exists a style option to work with doc.sty which is capable of scanning
+%% every \verb command. This would otherwise produce recursion.
+
+preamble
+"\n \\begin{theglossary} \n \\makeatletter\\scan@allowedfalse\n"
+
+postamble
+"\n\n \\end{theglossary}\n"
+
+%% Note this difference to gind.ist. This is necessary if you have an
+%% up-to-date LaTeX. Otherwise comment it out.
+
+keyword "\\glossaryentry"
+
diff --git a/language/french/e-french/texmf/doc/test/mylist.sty b/language/french/e-french/texmf/doc/test/mylist.sty
new file mode 100644
index 0000000000..e6930bf2da
--- /dev/null
+++ b/language/french/e-french/texmf/doc/test/mylist.sty
@@ -0,0 +1,109 @@
+%-------mylist.sty
+%
+% Utilisation : \Mylisting{nom_de_fichier}
+%
+% last mods --bg 2000/03/07
+%%
+%% checksum = "30783 109 227 3815"
+%%
+\def\uncatcodespecials{\def\do##1{\catcode`##1=12 }\dospecials}
+% Listing is defined later
+%\ifx\Mylisting\undefined% if no listing style already loaded
+%\def\Mylisting#1{\par\begingroup%
+%\setupverbatim\input #1 \endgroup}
+%\fi
+
+\font\ttlisting=cmtt8 scaled 700
+
+\def\setupverbatim{\baselineskip=0pt\ttlisting %\lineo=0
+ \def\par{\leavevmode\endgraf}
+ \catcode`\`=\active
+ \obeylines\uncatcodespecials\obeyspaces
+ \parskip=0pt plus 1pt}
+
+{\obeyspaces\global\let =\ } % let active space = control space
+{\catcode`\`=\active
+ \ifx`\undefined\gdef\Gdef{\def`{\relax\lq}}
+ \else\gdef\Gdef{}\fi
+}\Gdef
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%SUPERVERBATIM.STY
+\def\uncatcodespecials{\def\do##1{\catcode`##1=12 }\dospecials}
+\ifx\Mylisting\undefined%
+\def\Mylisting#1{\par\begingroup\makeatletter% obscurely needed now for AmSLaTeX
+ \setupverbatim\IfFileExists{#1}{\input #1}%
+ {Fichier non trouv\'e.}\endgroup}
+\else\ifx\prelisting\undefined\else\prelisting{\tt\footnotesize}%
+ \labelstyle[1]{}\spreadlisting{2cm}\fi%
+ \def\Mylisting#1{% just for using listings package but will
+ \IfFileExists{#1}{%
+ \inputlisting{#1}}% remove its listing environnement
+ }{Fichier non trouv\'e.}%
+\fi%
+\def\copyfile#1{\par\begingroup\setupinclure\input #1 \endgroup}
+%
+\newcount\lineno % the number of the file lines listed
+\def\setupverbatim{\tt \lineno=0
+ \def\par{\leavevmode\endgraf} \catcode`\`=\active
+ \obeylines \uncatcodespecials \obeyspaces
+ \parskip=0pt plus 1pt
+ \everypar{\advance\lineno by1 \llap{\rm\the\lineno\ \ }}}
+{\obeyspaces\global\let =\ } % let active space = control space
+%{\catcode`\`=\active \gdef`{\relax\lq}}
+{\catcode`\`=\active
+ \ifx`\undefined\gdef\Gdef{\def`{\relax\lq}}
+ \else\gdef\Gdef{}\fi
+}\Gdef
+%
+\def\sautpar{\par\medskip}
+
+\def\setupinclure{\tt \lineno=0
+ \def\par{\leavevmode\endgraf} \catcode`\`=\active
+ \obeylines \uncatcodespecials \obeyspaces
+ \parskip=0pt plus 1pt}
+
+\def\lignett#1{\noindent\hskip 2truecm{\tt#1}\par}
+
+\def\ttligne{\begingroup\Setupverbatim\doverbatim}
+\def\doverbatim#1{\def\next##1#1{##1\endgroup}\next}
+\def\Setupverbatim{\tt
+ \def\par{\leavevmode\endgraf} \catcode`\`=\active
+ \obeylines \uncatcodespecials \obeyspaces
+ \parskip=0pt plus 1pt}
+%
+\def\debuttt{\medskip
+ \begingroup
+ \obeylines \tt
+ \obeyspaces
+ \parskip=0pt
+ \baselineskip=12pt plus .1pt
+ \parindent=0pt}
+\def\fintt{\endgroup\par}
+\def\termtype{\medskip
+ \trivlist \item[]
+ \def\par{\hbox{}\@@par}
+ \obeylines
+ \tt
+ \obeyspaces
+ \obeycr
+ \@vobeyspaces
+ \parskip=0pt
+ \baselineskip=12pt plus .1pt
+ \parindent=0pt}
+\let\endtermtype=\endtrivlist
+{\catcode`\ =\active\gdef\@vobeyspaces{\catcode`\ \active\let \@xobeysp}}
+\def\@xobeysp{\leavevmode\penalty10000\ }
+{\catcode`\^^M=13 \gdef\@gobblecr{\@ifnextchar
+{\@gobble}{\ignorespaces}}}
+\def\envprog{\trivlist \item[]\vskip\parskip
+\parindent0pt\parskip\z@
+\def\par{\hbox{}\@@par}\obeylines \tt
+\catcode``=13\catcode`\^^M=13
+\frenchspacing\@vobeyspaces}
+\let\endenvprog=\endtrivlist
+\ifx\ProvidesPackage\undefined\else%
+ \ProvidesPackage{mylist}[1998/06/10 Temporary ``list'' package %
+ from the french dist.]%
+\fi%
+\endinput
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
diff --git a/language/french/e-french/texmf/doc/test/mysmall.sty b/language/french/e-french/texmf/doc/test/mysmall.sty
new file mode 100644
index 0000000000..726b1d837a
--- /dev/null
+++ b/language/french/e-french/texmf/doc/test/mysmall.sty
@@ -0,0 +1,136 @@
+% smaller.sty %
+%
+% Original author: ??? (appeared in an old TeXhax)
+% Adrian Clark's dates.sty
+% Changes: -- Paul L. Allen, Feb 1990 (UKTeX 91, 6)
+% -- Bernd Raichle, Oct 1991 (added NFSS V1 support)
+% -- Bernard Gaulle, Jan 1992 (environment protected,@ restored)
+% -- Daniel Taupin & BG, 3/94 (simulation of \sm@ller for NFSS2)
+% -- Bernard Gaulle 03/28/94 (\l@rger simulated for NFSS2 too)
+% -- Removing superfluous spaces. --bg 05/10/94
+%
+% Usage: {\smaller TEXT}
+% - sets TEXT in a smaller size in the same typeface.
+% {\larger TEXT}
+% - sets TEXT in a larger size in the same typeface.
+\ifx\larger\undefined\else\expandafter\endinput\fi%
+{\gdef\makeatletter{\catcode`\@=11\relax}%
+ \gdef\makeatother{\catcode`\@=12\relax}%
+\ifcat/@ \makeatletter\let\resetat\makeatother%
+ \else\let\resetat\relax\fi%
+%\@ifundefined{selectfont}{...}{...}%
+\expandafter\ifx\csname selectfont\endcsname\relax%
+%
+% Old Font Selection:
+%
+\csname newcount\endcsname\f@m%
+\gdef\sm@ller{\relax\f@m\fam%
+ % \ifx\@currsize\tiny \tiny\fi%
+ \ifx\@currsize\scriptsize \tiny\fi%
+ \ifx\@currsize\footnotesize \scriptsize\fi%
+ \ifx\@currsize\small \footnotesize\fi%
+ \ifx\@currsize\normalsize \small\fi%
+ \ifx\@currsize\large \normalsize\fi%
+ \ifx\@currsize\Large \large\fi%
+ \ifx\@currsize\LARGE \Large\fi%
+ \ifx\@currsize\huge \LARGE\fi%
+ \ifx\@currsize\Huge \huge\fi%
+ \ifcase\f@m\rm\or\mit\or\cal\or\tenex % not sure about the tenex%
+ \or\it\or\sl\or\bf\or\tt\or\sf\or\sc\or\ly\fi}%
+\gdef\l@rger{\relax\f@m\fam%
+ % \ifx\@currsize\Huge \Huge\fi%
+ \ifx\@currsize\huge \Huge\fi%
+ \ifx\@currsize\LARGE \huge\fi%
+ \ifx\@currsize\Large \LARGE\fi%
+ \ifx\@currsize\large \Large\fi%
+ \ifx\@currsize\normalsize \large\fi%
+ \ifx\@currsize\small \normalsize\fi%
+ \ifx\@currsize\footnotesize \small\fi%
+ \ifx\@currsize\scriptsize \footnotesize\fi%
+ \ifx\@currsize\tiny \scriptsize\fi%
+ \ifcase\f@m\rm\or\mit\or\cal\or\tenex % not sure about the tenex%
+ \or\it\or\sl\or\bf\or\tt\or\sf\or\sc\or\ly\fi}%
+%%
+\else%
+%%
+% New Font Selection V1:
+%
+% Perhaps it would be better to use different macros for
+% the different \@ptsize 10pt, 11pt and 12pt.
+% (Now for 12pt: {\normalsize {\smaller a}} = {\footnotsize a})
+%
+\ifx\DeclareFontShape\undefined% the following for NFSS V1%
+\gdef\sm@ller{\relax\@nomath\smaller%
+ \ifx\f@size\@vpt \else%
+ \ifx\f@size\@vipt \size\@vpt{6pt}\fi%
+ \ifx\f@size\@viipt \size\@vpt{6pt}\fi%
+ \ifx\f@size\@viiipt \size\@viipt{8pt}\fi %\@vipt%
+ \ifx\f@size\@ixpt \size\@viiipt{9.5pt}\fi%
+ \ifx\f@size\@xpt \size\@ixpt{11pt}\fi%
+ \ifx\f@size\@xipt \size\@xpt{12pt}\fi%
+ \ifx\f@size\@xiipt \size\@xpt{12pt}\fi%
+ \ifx\f@size\@xivpt \size\@xiipt{14pt}\fi%
+ \ifx\f@size\@xviipt \size\@xivpt{18pt}\fi%
+ \ifx\f@size\@xxpt \size\@xviipt{22pt}\fi%
+ \ifx\f@size\@xxvpt \size\@xxpt{25pt}\fi%
+ \selectfont%
+ \fi}%
+\gdef\l@rger{\relax\@nomath\larger%
+ \ifx\f@size\@xxvpt \else%
+ \ifx\f@size\@xxpt \size\@xxvpt{30pt}\fi%
+ \ifx\f@size\@xviipt \size\@xxpt{25pt}\fi%
+ \ifx\f@size\@xivpt \size\@xviip{22pt}\fi%
+ \ifx\f@size\@xiipt \size\@xivpt{18pt}\fi%
+ \ifx\f@size\@xipt \size\@xiipt{14pt}\fi%
+ \ifx\f@size\@xpt \size\@xiipt{14pt}\fi%
+ \ifx\f@size\@ixpt \size\@xpt{12pt}\fi%
+ \ifx\f@size\@viiipt \size\@ixp{11pt}\fi%
+ \ifx\f@size\@viipt \size\@viiipt{9.5pt}\fi%
+ \ifx\f@size\@vipt \size\@viiipt{9.5pt}\fi%
+ \ifx\f@size\@vpt \size\@viipt{8pt}\fi%
+ \selectfont%
+ \fi}%
+\else% Now for NFSS V2 %%%%%%%%%%%%%%%%%%%%%%%%%%%
+\gdef\sm@ller{\small}% how to proceed?%
+\gdef\l@rger{\relax}%
+ % proposed by D. Taupin on Mar, 24, 1994:
+ \global\let\tiny@ORI\tiny\gdef\tiny{\tiny@ORI\def\sm@ller{\tiny}%
+ \def\l@rger{\scriptsize}}%
+ \global\let\scriptsize@ORI\scriptsize%
+ \gdef\scriptsize{\scriptsize@ORI\def\sm@ller{\tiny}%
+ \def\l@rger{\footnotesize}}%
+ \global\let\footnotesize@ORI\footnotesize%
+ \gdef\footnotesize{\footnotesize@ORI\def\sm@ller{\scriptsize}%
+ \def\l@rger{\small}}%
+ \global\let\small@ORI\small%
+ \gdef\small{\small@ORI\def\sm@ller{\footnotesize}%
+ \def\l@rger{\normalsize}}%
+ \global\let\normalsize@ORI\normalsize%
+ \gdef\normalsize{\normalsize@ORI\def\sm@ller{\small}%
+ \def\l@rger{\large}}%
+ \global\let\large@ORI\large%
+ \gdef\large{\large@ORI\def\sm@ller{\normalsize}%
+ \def\l@rger{\Large}}%
+ \global\let\Large@ORI\Large%
+ \gdef\Large{\Large@ORI\def\sm@ller{\large}%
+ \def\l@rger{\LARGE}}%
+ \global\let\LARGE@ORI\LARGE%
+ \gdef\LARGE{\LARGE@ORI\def\sm@ller{\Large}%
+ \def\l@rger{\huge}}%
+ \global\let\huge@ORI\huge%
+ \gdef\huge{\huge@ORI\def\sm@ller{\LARGE}%
+ \def\l@rger{\Huge}}%
+ \global\let\Huge@ORI\Huge%
+ \gdef\Huge{\Huge@ORI\def\sm@ller{\huge}%
+ \def\l@rger{\Huge}}%
+\fi%
+%%
+\fi%
+\gdef\smaller{\protect\sm@ller}%
+\gdef\larger{\protect\l@rger}%
+\resetat}%
+\ifx\ProvidesPackage\undefined\else%
+ \ProvidesPackage{mysmall}[1994/12/12 Temporary ``smaller'' package %
+ from the french dist.]%
+\fi%
+\endinput%%%%%%%%%%%%%%%%%%%%%%%
diff --git a/language/french/e-french/texmf/doc/test/tests-formats/EC.def b/language/french/e-french/texmf/doc/test/tests-formats/EC.def
new file mode 100644
index 0000000000..9e719ea17b
--- /dev/null
+++ b/language/french/e-french/texmf/doc/test/tests-formats/EC.def
@@ -0,0 +1,64 @@
+% EC.def file going from latin1. All chars haven't been updated
+% according to the CORK standard. Input text is assumed to be typed in
+% that standard.
+\ProvideTextCommandDefault{\textregistered}{\textcircled{\textsc r}}
+\ProvideTextCommandDefault{\textonequarter}{$\frac14$}
+\ProvideTextCommandDefault{\textonehalf}{$\frac12$}
+\ProvideTextCommandDefault{\textthreequarters}{$\frac34$}
+\providecommand{\mathdegree}{{{}^\circ}}
+\providecommand{\mathonesuperior}{{{}^1}}
+\providecommand{\mathtwosuperior}{{{}^2}}
+\providecommand{\maththreesuperior}{{{}^3}}
+\providecommand{\mathordmasculine}{{{}^o}}
+\providecommand{\mathordfeminine}{{{}^a}}
+\DeclareInputText{"0A0}{~} \DeclareInputMath{"0B0}{\mathdegree}
+\DeclareInputText{"0A1}{\textexclamdown} \DeclareInputMath{"0B1}{\pm}
+\DeclareInputText{"0A2}{\textcent} \DeclareInputMath{"0B2}{\mathtwosuperior}
+\DeclareInputText{"0A3}{\textsterling} \DeclareInputMath{"0B3}{\maththreesuperior}
+\DeclareInputText{"0A4}{\textcurrency} \DeclareInputText{"0B4}{\'{}}
+\DeclareInputText{"0A5}{\textyen} \DeclareInputMath{"0B5}{\mu}
+\DeclareInputText{"0A6}{\textbrokenbar} \DeclareInputText{"0B6}{\P}
+\DeclareInputText{"0A7}{\S} \DeclareInputMath{"0B7}{\cdot}
+\DeclareInputText{"0A8}{\"{}} \DeclareInputText{"0B8}{\c{}}
+\DeclareInputText{"0A9}{\copyright} \DeclareInputMath{"0B9}{\mathonesuperior}
+\DeclareInputMath{"0AA}{\mathordmasculine} \DeclareInputMath{"0BA}{\mathordfeminine}
+\DeclareInputText{"0AB}{\guillemotleft} \DeclareInputText{"0BB}{\guillemotright}
+\DeclareInputMath{"0AC}{\lnot} \DeclareInputText{"0BC}{\textonequarter}
+\DeclareInputText{"0AD}{\textendash} \DeclareInputText{"0BD}{\textonehalf}
+\DeclareInputText{"0AE}{\textregistered} \DeclareInputText{"0BE}{\textthreequarters}
+\DeclareInputText{"0AF}{\={}} \DeclareInputText{"0BF}{\textquestiondown}
+\DeclareInputText{"0C0}{\`A} \DeclareInputText{"0D0}{\DH}
+\DeclareInputText{"0C1}{\'A} \DeclareInputText{"0D1}{\~N}
+\DeclareInputText{"0C2}{\^A} \DeclareInputText{"0D2}{\`O}
+\DeclareInputText{"0C3}{\~A} \DeclareInputText{"0D3}{\'O}
+\DeclareInputText{"0C4}{\"A} \DeclareInputText{"0D4}{\^O}
+\DeclareInputText{"0C5}{\AA} \DeclareInputText{"0D5}{\~O}
+\DeclareInputText{"0C6}{\AE} \DeclareInputText{"0D6}{\"O}
+\DeclareInputText{"0C7}{\c C} \DeclareInputMath{"0D7}{\OE}% --bg
+\DeclareInputText{"0C8}{\`E} \DeclareInputText{"0D8}{\O}
+\DeclareInputText{"0C9}{\'E} \DeclareInputText{"0D9}{\`U}
+\DeclareInputText{"0CA}{\^E} \DeclareInputText{"0DA}{\'U}
+\DeclareInputText{"0CB}{\"E} \DeclareInputText{"0DB}{\^U}
+\DeclareInputText{"0CC}{\`I} \DeclareInputText{"0DC}{\"U}
+\DeclareInputText{"0CD}{\'I} \DeclareInputText{"0DD}{\'Y}
+\DeclareInputText{"0CE}{\^I} \DeclareInputText{"0DE}{\TH}
+\DeclareInputText{"0CF}{\"I} \DeclareInputText{"0DF}{\ss}
+\DeclareInputText{"0E0}{\`a} \DeclareInputText{"0F0}{\dh}
+\DeclareInputText{"0E1}{\'a} \DeclareInputText{"0F1}{\~n}
+\DeclareInputText{"0E2}{\^a} \DeclareInputText{"0F2}{\`o}
+\DeclareInputText{"0E3}{\~a} \DeclareInputText{"0F3}{\'o}
+\DeclareInputText{"0E4}{\"a} \DeclareInputText{"0F4}{\^o}
+\DeclareInputText{"0E5}{\aa} \DeclareInputText{"0F5}{\~o}
+\DeclareInputText{"0E6}{\ae} \DeclareInputText{"0F6}{\"o}
+\DeclareInputText{"0E7}{\c c} \DeclareInputMath{"0F7}{\oe}% --bg
+\DeclareInputText{"0E8}{\`e} \DeclareInputText{"0F8}{\o}
+\DeclareInputText{"0E9}{\'e} \DeclareInputText{"0F9}{\`u}
+\DeclareInputText{"0EA}{\^e} \DeclareInputText{"0FA}{\'u}
+\DeclareInputText{"0EB}{\"e} \DeclareInputText{"0FB}{\^u}
+\DeclareInputText{"0EC}{\`\i} \DeclareInputText{"0FC}{\"u}
+\DeclareInputText{"0ED}{\'\i} \DeclareInputText{"0FD}{\'y}
+\DeclareInputText{"0EE}{\^\i} \DeclareInputText{"0FE}{\th}
+\DeclareInputText{"0EF}{\"\i} \DeclareInputText{"0FF}{\"y}
+\endinput
+%%
+%% End of file `DC.def'.
diff --git a/language/french/e-french/texmf/doc/test/tests-formats/README b/language/french/e-french/texmf/doc/test/tests-formats/README
new file mode 100644
index 0000000000..a6c4209b2e
--- /dev/null
+++ b/language/french/e-french/texmf/doc/test/tests-formats/README
@@ -0,0 +1,65 @@
+README_tests (in sub-directory initex) last mods: 2000/11/23
+============
+The following files are given in order:
+ A) to verify TeX hyphenation on 500 french words.
+ B) to provide a sample for testing your keyboard.
+These tests have to be used after installation i.e. creation of the format
+file.
+
+These files were fully tested using MlTeX/TeX V3 with EC or CM fonts.
+
+Here are the corresponding files for part A:
+===========================================
+EC.def an internal file, for input encoding just like EC.
+TSIv5n4.tex 500 words hyphenated (Desarmenien's reference)
+ This is a 7-bit file to transform to your 8-bit keyboard-screen.
+ gencoup.tex to hyphenate these words with TeX at your site (log file)
+lgencoup.tex " " " " " LaTeX " " "
+ tstcoup.tex to read the log file produced with TeX & compare with ideal list
+ltstcoup.tex " " " " " LaTeX " " " "
+ testhyp a shell script to do this with TeX
+ltesthyp " " " " " LaTeX
+
+Operation:
+ - convert TSIv5n4.tex to 8-bit accordingly to your own keyboard (use kb7to8 !)
+ - run the l/testhyp procedure to look if your installation is ok at
+ the hyphenation level. Any system with TeX-only i.e. without Multi-lingual
+ modifications or without 8-bit fonts can't be called a french system and
+ this test would be a non-sense.
+ This script gives normally 0 bad hyphenated words with MlTeX+CM
+ or TeX+EC fonts. No difference should occur.
+
+Here are the corresponding files for part B:
+===========================================
+kbtest.tex the test code (8-bit file) to be adapted to your keyboard.
+
+Operation:
+ - update this file accordingly to your own keyboard and run it with your
+ TeX engine. You will obtain a print sheet with a comparison of 7-bit and
+ 8-bit inputs.
+
+Hope it helps,
+ Bernard GAULLE first issue 2000/11/23
+
+Here is a directory listing at the time of distribution:
+ (The number of bytes of this README may differ)
+%%>============================================================================
+total 200
+-rw-r--r-- 1 bernard bernard 3888 Jun 28 15:09 EC.def
+-r--r--r-- 1 bernard bernard 3214 Jun 28 15:57 README
+-rw-r--r-- 1 bernard bernard 20860 Jun 28 15:22 README_tests.pdf
+-rw-r--r-- 1 bernard bernard 8155 Jun 28 15:22 TSIv5n4.tex
+-rw-r--r-- 1 bernard bernard 4320 Jun 28 15:22 gencoup.tex
+-rw-r--r-- 1 bernard bernard 22955 Jun 28 15:22 kbtest.tex
+-rw-r--r-- 1 bernard bernard 828 Jun 28 15:22 lgencoup.tex
+lrwxr-xr-x 1 root bernard 6 Jun 24 18:57 link_to_README -> README
+-rw-r--r-- 1 bernard bernard 836 Jun 28 15:22 ltesthyp
+-rw-r--r-- 1 bernard bernard 853 Jun 28 15:22 ltstcoup.tex
+-rw-r--r-- 1 bernard bernard 799 Jun 28 15:22 testhyp
+-rw-r--r-- 1 bernard bernard 5425 Jun 28 15:22 tstcoup.tex
+%%<============================================================================
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%
+%% checksum = "52817 65 435 3214"
+%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
diff --git a/language/french/e-french/texmf/doc/test/tests-formats/TSIv5n4.tex b/language/french/e-french/texmf/doc/test/tests-formats/TSIv5n4.tex
new file mode 100644
index 0000000000..8a55797233
--- /dev/null
+++ b/language/french/e-french/texmf/doc/test/tests-formats/TSIv5n4.tex
@@ -0,0 +1,154 @@
+% Extrait du vocabulaire divise TSI Vol. 5 No 4 1986, Jacques Desarmenien
+% saisie --bg 30/03/92
+% \`{A} passer en 8 bits conform\'{e}ment \`{a} votre syst\`{e}me
+% maj sug. DF 19/06/92
+% maj sug. DF 11/09/92
+% Changement : d\'{e}sami-don-ner en d\'{e}sa-mi-don-ner (f*hyph.tex V1.10 BG 27/12/93)
+% maj 8-bits bg 98/02/05
+% Ajouts : abhor-rer adh\'{e}-sion r\'{e}dhi-bi-toire for frhyph.tex V2.4 bg 98/02/06
+% d\'{e}s-{\oe}u-vre-ment,% have a long name with {\oe} V2.5 bg 98/12/22
+% added a 7-bits word test "maitrise" with \^ \i. V2.6 bg 99/02/01
+% Maj pour frhyph1.tex (dis-conve-nance) V2.7 2003/02/12
+% Maj pour ig-ni-vome (igni-vome n'est pas correct) V2.8 2003/02/13
+%
+%% checksum = "18445 154 305 8155"
+%%
+%
+abon-dam-ment,abs-ti-nence,ac-com-mo-da-tion,ac\'{e}-ti-fier,%
+acre,ad\'{e}-qua-tion,adu-la-teur,af-fai-rer,%
+af-front,ago-nie,ai-guayer,al-bi-nisme,%
+al-g\`{e}bre,al-li-ga-tor,al-ti-port,am-bu-la-toire,%
+amon-ce-ler,ana-chro-nique,an-dr\`{e}ne,an-h\'{e}-ler,%
+anor-ma-lit\'{e},an-ti-com-mu-nisme,an-ti-po-lio-my\'{e}-li-tique,ape-tis-ser,%
+ap-pa-reille-ment,ap-pro-fon-dir,ar-bi-tral,ar\'{e}ique,%
+ar-mon,ar-s\'{e}-niure,asexuel,as-si-mil\'{e},%
+as-tro-nef,at-te-lage,au-dio-fr\'{e}-quence,au-to-cen-sure,%
+au-to-strade,avia-tion,azur\'{e},ba-gue-naude,%
+bal-ka-nique,ban-nir,bar-gui-gner,bas-sine,%
+ba-va-roise,b\^{e}-le-ment,ber-line,bi-blio-bus,%
+bi-gleux,bio-d\'{e}-gra-dable,bi-sec-tion,blas-tula,%
+bo\"{e}sse,bo-nite,bou-ca-ner,boul-do-zeur,%
+bourse,brah-ma-nique,bre-telle,bro-can-tage,%
+bruine,Bulgare,ca-ban,caddy,%
+cairn,ca-life,ca-mer,cange,%
+cap,ca-puce,carde,ca-rot-ter,%
+ca-s\'{e}a-tion,ca-ta-pulte,ca-val-cade,ce-nelle,%
+c\'{e}-r\'{e}-mo-nial,chaintre,chan-latte,char-mille,%
+chauf-feur,che-va-le-ment,chi-m\'{e}-rique,choi-sir,%
+chro-mo-so-mique,cin\'{e},ci-ta-din,cla-ri-fier,%
+clin-foc,coas-se-ment,cof-fret,col-lec-tion,%
+com-bat,com-mun,com-plexe,concen-trique,%
+condi-ment,confron-ter,conno-ta-tion,constant,%
+conti-gu\"{\i}t\'{e},contre-marque,convoi-ter,co-que-rie,%
+cor-ni\`{e}re,cor-v\'{e}e,cou-d\'{e}e,cou-ronne,%
+cra-chi-ner,cr\'{e}-dence,cri-bl\'{e},cro-qui-gno-let,%
+cu-bi-lot,cu-mul,cy-clo-mo-to-riste,da-leau,%
+d\'{e}-am-bu-la-tion,d\'{e}-bou-cler,d\'{e}-can-ta-tion,d\'{e}-chaus-se-ment,%
+d\'{e}-clor,d\'{e}-cou-pler,d\'{e}-dire,d\'{e}-fi-lage,%
+d\'{e}-ga-zon-nage,d\'{e}-gri-ser,d\'{e}-l\'{e}-gu\'{e},d\'{e}-ma-go-gique,%
+d\'{e}-mis-sion,d\'{e}-na-zi-fier,den-tiste,d\'{e}-piau-ter,%
+d\'{e}-pouiller,der-ma-to-lo-gique,d\'{e}sa-mi-don-ner,d\'{e}sen-flure,%
+d\'{e}shy-dro-g\'{e}-ner,d\'{e}so-rien-ter,d\'{e}-sto-ckage,d\'{e}-to-na-tion,%
+d\'{e}-ver-dis-sage,dharma,di-amine,di-duc-tion,%
+di-gon,dio-ny-sien,dis-conve-nance,dis-pu-taille-rie,%
+dis-tri-buable,do-ci-mo-lo-gie,do-mes-ti-quer,do-ter,%
+dra-gon-net,dr\^{o}-le-ment,du-per,dys-en-do-cri-nie,%
+\'{e}bou-rif-fer,\'{e}charde,\'{e}clanche,\'{e}cra-bouille-ment,%
+\'{e}dit,ef-fri-te-ment,ei-der,\'{e}lec-tro-ma-gn\'{e}-tique,%
+\'{e}lu-ci-da-tion,em-bot-te-ler,\'{e}miet-te-ment,em-par-rer,%
+em-prunt,en-chaus-ser,en-dia-bler,en-flam-mer,%
+en-har-mo-nie,en-r\'{e}-gi-men-ter,en-t\'{e}-rique,en-tre-lacs,%
+en-voyeur,\'{e}piage,\'{e}pi-phy-tie,\'{e}pui-se-ment,%
+\'{e}reint\'{e},es-ca-drille,es-pion,es-th\'{e}-tisme,%
+\'{e}ta-tisme,\'{e}tole,eu-pep-tique,\'{e}ven-tua-lit\'{e},%
+ex-ci-ser,exi-gi-bi-lit\'{e},ex-pli-ca-tion,ex-tir-pa-tion,%
+fac-teur,fal-si-fi-ca-teur,fa-rouche,faux,%
+fen-deur,f\'{e}-rule,fi-ce-ler,fi-li-grane,%
+fixe,fl\'{e}-chis-seur,fluc-tuant,fon-ci\'{e}-re-ment,%
+for-lon-ger,fouilleur,frac-tion-niste,fre-don-ner,%
+frire,fruit,fu-rioso,ga\"{\i}a-col,%
+ga-lure,gare,gaur,ge-n\'{e}pi,%
+g\'{e}o-phage,gi-boyeux,glai-seux,glu-co-li-pide,%
+go\"{\i},gou-g\`{e}re,graillon,gra-ti-ner,%
+gre-nouille,gri-ser,gu\`{e}de,gui-per,%
+hadji,ha-pax,h\^{a}-te-reau,h\'{e}-lio-chro-mie,%
+hen-d\'{e}-ca-syl-labe,h\'{e}-ron,hi\'{e}-rar-chi-que-ment,ho,%
+ho-no-ra-bi-lit\'{e},hou-leux,hu-mus,hy-dro-pneu-ma-tique,%
+hyp-na-go-gique,icaque,ig-ni-vome,imit\'{e},%
+im-pala,im-plan-ter,im-pu-bliable,in-avouable,%
+in-com-mu-ni-ca-bi-lit\'{e},in-croyable,in-dexer,in-du-bi-ta-ble-ment,%
+in-ex-p\'{e}-ri-ment\'{e},in-flexi-bi-lit\'{e},in-hu-mer,in-quar-ta-tion,%
+ins-pec-teur,in-t\`{e}gre,in-ter-fo-liage,in-tu-ba-tion,%
+in-ter-stel-laire,in-vrai-sem-blance,ir-r\'{e}-pa-ra-ble-ment,iso-phase,%
+ja\"{\i}n,jau-n\^{a}tre,jo-liesse,ju-gu-ler,%
+ka-l\'{e}i-do-scope,ki-lo-m\'{e}-trer,la-bium,lai-neuse,%
+lan-ceur,lar-gage,la-ve-rie,l\'{e}-ni-tif,%
+leu-cose,li-brai-rie,li-mette,li-po-thy-mie,%
+lit-t\'{e}-ral,lo-go-ma-chique,lou-cheur,lu-mi-neu-se-ment,%
+lyn-cheur,ma-cro-phage,ma-gni-fique,ma-la-bar,%
+mal-ter,man-gous-tan,map-pe-monde,mar-gis,%
+mar-que-te-rie,mas-ti-ca-toire,ma-trone,m\'{e}-daille,%
+me\"{\i}ji,men-d\'{e}-l\'{e}-vium,mer-cure,me-sure,%
+m\'{e}-tis-sage,mi-cro-m\'{e}-trique,mil-lier,mi-nu-tieu-se-ment,%
+mi-traillade,moi-nillon,mon-der,mo-no-po-liste,%
+mor-dache,mo-tion-ner,mous-que-te-rie,mul-ti-carte,%
+mus-cat,myo-pie,na-po-l\'{e}o-nien,na-va-rin,%
+neige,neu-ro-psy-chiatre,ni\^{o}le,no-made,%
+noue,nu-m\'{e}-ra-tion,obli-t\'{e}-rer,oc\'{e}a-no-graphe,%
+{\oe}uvre,oli-go-pole,on-gl\'{e}e,opi-nion,%
+or-chi-da-c\'{e}es,ori-peau,os-cule,ouille,%
+ovo-g\'{e}-n\`{e}se,pa-geo-ter,pa-l\'{e}o-his-to-lo-gie,pa-lus,%
+pa-no-ra-mi-quer,para,pa-ra-si-ti-cide,pa-ri-sette,%
+par-ti-ci-pant,pas-teu-ri-ser,pa-toi-ser,paye-ment,%
+pei-gnage,pe-nalty,pen-tho-tal,p\'{e}-r\'{e}qua-tion,%
+per-lim-pin-pin,per-son-na-lit\'{e},p\'{e}-toire,phar-ma-ceu-tique,%
+pholx,pho-to-ma-ton,phy-toph-thora,pi\'{e}-ti-ner,%
+pin-ce-lier,pi-so-lithe,plaie,plas-ti-que-ment,%
+pliage,plu-t\^{o}t,poin-teur,po-li-ti-quer,%
+po-ly-style,pontet,po-s\'{e}-ment,po-ti-quet,%
+pour-voi,pr\'{e}-cis,pr\'{e}-ju-di-ciable,pr\'{e}-s\'{e}ance,%
+pr\'{e}-va-lence,pri-vi-l\'{e}-gier,pro-fi-leur,pro-na-teur,%
+pros-pec-tif,pro-vi-dence,psy-cho-lin-guis-tique,pu\'{e}-ri-lit\'{e},%
+pur-pura,py-tha-go-risme,quart-zite,quin-tes-sen-ci\'{e},%
+rac-cour-cir,ra-dio-co-balt,rage,ram\'{e},%
+ra-pi\'{e}-cage,r\^{a}-te-lier,rayon-nant,re-bours,%
+re-chi-gner,re-cor-dage,r\'{e}-cu-sable,r\'{e}-\'{e}va-lua-tion,%
+re-fu-ser,r\'{e}-gu-la-rit\'{e},re-laxe,re-met-tant,%
+re-nar-di\`{e}re,ren-ta-mer,r\'{e}-p\'{e}-ti-tion,repu,%
+r\'{e}-son-nance,re-sur-gir,r\'{e}-trac-tile,r\'{e}-veil,%
+re-vo-ter,rhu-me-rie,ri-mer,robre,%
+ron-chon,ro-tengle,rous-p\'{e}-ter,rui-ni-forme,%
+sa-brage,sa-gesse,sa-li-nit\'{e},sand-jak,%
+sar-clette,sau-cisse,Saxon,schi-zo-go-nie,%
+sco-las-ti-cat,s\'{e}-che-resse,sei-gneu-riage,se-mou-le-rie,%
+sep-tem-vir,ser-pent,sexto,si-gil-lo-gra-phie,%
+si-mu-lie,ski,s{\oe}ur,so-ma-to-trope,%
+sot,soulte,spal-ter,sph\'{e}-rique,%
+spo-ro-gone,star-let,st\'{e}-r\'{e}o-duc,sto-ma-chique,%
+stro-phan-tine,sub-jec-ti-ve-ment,suc-ci-nique,sul-fa-ter,%
+su-pin,sur-d\'{e}-ve-lopp\'{e},sur-mon-ter,sur-vol-ter,%
+sym-pho-nie,sy-phi-lis,tact,tam-pico,%
+ta-quon,t\^{a}-ter,tech-ni-que-ment,t\'{e}-l\'{e}os-t\'{e}ens,%
+ten-dan-ciel,ter-mi-nal,t\'{e}-te-relle,th\'{e}o-lo-gal,%
+thalspi,tilleul,to-co-ph\'{e}-rol,ton-nerre,%
+tor-tille,tour-men-ter,trac-ter,trans-cas-pien,%
+trans-plant,tr\'{e}-fi-lage,tr\'{e}-vi-rer,tri-fo-rium,%
+tri-plure,tron-ca-ture,truite,tu-mul-tueu-se-ment,%
+tuyau-ter,ul-tra-vi-rus,ura-no-gra-phie,uti-li-taire,%
+va-lable,va-quer,ve-dette,v\'{e}-n\'{e}-rer,%
+ver-get\'{e},ver-seuse,vian-der,vi-gnoble,%
+vi-reux,vi-treux,vo-lage,vo-ter,%
+we-ber,yt-trique,zo-nure,%
+%% liste compl\'{e}mentaire %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+cor-rec-te-ment,% 1ct retir\'{e}
+abhor-rer,adh\'{e}-sion,r\'{e}dhi-bi-toire,% modifs frhyp V2.4
+d\'{e}s-{\oe}u-vre-ment,% have a long name with {\oe}V2.5
+ma\^% add a 7 bits word with accent \^ on \i
+ \i-tris\'% which is a good idea
+ e,% of Michel Bovani.
+}% don't run this file alone! Go through gencoup.tex
+%
+\CheckSevenBits/\`{A}/% check it, will stop here if 7-bits.
+ {\STOP un retour charriot permet de continuer...}
+%
+\endinput
diff --git a/language/french/e-french/texmf/doc/test/tests-formats/TSIv5n48.tex b/language/french/e-french/texmf/doc/test/tests-formats/TSIv5n48.tex
new file mode 100644
index 0000000000..9516961597
--- /dev/null
+++ b/language/french/e-french/texmf/doc/test/tests-formats/TSIv5n48.tex
@@ -0,0 +1,154 @@
+% Extrait du vocabulaire divise TSI Vol. 5 No 4 1986, Jacques Desarmenien
+% saisie --bg 30/03/92
+% À passer en 8 bits conformément à votre système
+% maj sug. DF 19/06/92
+% maj sug. DF 11/09/92
+% Changement : désami-don-ner en désa-mi-don-ner (f*hyph.tex V1.10 BG 27/12/93)
+% maj 8-bits bg 98/02/05
+% Ajouts : abhor-rer adhé-sion rédhi-bi-toire for frhyph.tex V2.4 bg 98/02/06
+% dés-œu-vre-ment,% have a long name with œ V2.5 bg 98/12/22
+% added a 7-bits word test "maitrise" with \^ \i. V2.6 bg 99/02/01
+% Maj pour frhyph1.tex (dis-conve-nance) V2.7 2003/02/12
+% Maj pour ig-ni-vome (igni-vome n'est pas correct) V2.8 2003/02/13
+%
+%% checksum = "56856 154 302 7386"
+%%
+%
+abon-dam-ment,abs-ti-nence,ac-com-mo-da-tion,acé-ti-fier,%
+acre,adé-qua-tion,adu-la-teur,af-fai-rer,%
+af-front,ago-nie,ai-guayer,al-bi-nisme,%
+al-gèbre,al-li-ga-tor,al-ti-port,am-bu-la-toire,%
+amon-ce-ler,ana-chro-nique,an-drène,an-hé-ler,%
+anor-ma-lité,an-ti-com-mu-nisme,an-ti-po-lio-myé-li-tique,ape-tis-ser,%
+ap-pa-reille-ment,ap-pro-fon-dir,ar-bi-tral,aréique,%
+ar-mon,ar-sé-niure,asexuel,as-si-milé,%
+as-tro-nef,at-te-lage,au-dio-fré-quence,au-to-cen-sure,%
+au-to-strade,avia-tion,azuré,ba-gue-naude,%
+bal-ka-nique,ban-nir,bar-gui-gner,bas-sine,%
+ba-va-roise,bê-le-ment,ber-line,bi-blio-bus,%
+bi-gleux,bio-dé-gra-dable,bi-sec-tion,blas-tula,%
+boësse,bo-nite,bou-ca-ner,boul-do-zeur,%
+bourse,brah-ma-nique,bre-telle,bro-can-tage,%
+bruine,Bulgare,ca-ban,caddy,%
+cairn,ca-life,ca-mer,cange,%
+cap,ca-puce,carde,ca-rot-ter,%
+ca-séa-tion,ca-ta-pulte,ca-val-cade,ce-nelle,%
+cé-ré-mo-nial,chaintre,chan-latte,char-mille,%
+chauf-feur,che-va-le-ment,chi-mé-rique,choi-sir,%
+chro-mo-so-mique,ciné,ci-ta-din,cla-ri-fier,%
+clin-foc,coas-se-ment,cof-fret,col-lec-tion,%
+com-bat,com-mun,com-plexe,concen-trique,%
+condi-ment,confron-ter,conno-ta-tion,constant,%
+conti-guïté,contre-marque,convoi-ter,co-que-rie,%
+cor-nière,cor-vée,cou-dée,cou-ronne,%
+cra-chi-ner,cré-dence,cri-blé,cro-qui-gno-let,%
+cu-bi-lot,cu-mul,cy-clo-mo-to-riste,da-leau,%
+dé-am-bu-la-tion,dé-bou-cler,dé-can-ta-tion,dé-chaus-se-ment,%
+dé-clor,dé-cou-pler,dé-dire,dé-fi-lage,%
+dé-ga-zon-nage,dé-gri-ser,dé-lé-gué,dé-ma-go-gique,%
+dé-mis-sion,dé-na-zi-fier,den-tiste,dé-piau-ter,%
+dé-pouiller,der-ma-to-lo-gique,désa-mi-don-ner,désen-flure,%
+déshy-dro-gé-ner,déso-rien-ter,dé-sto-ckage,dé-to-na-tion,%
+dé-ver-dis-sage,dharma,di-amine,di-duc-tion,%
+di-gon,dio-ny-sien,dis-conve-nance,dis-pu-taille-rie,%
+dis-tri-buable,do-ci-mo-lo-gie,do-mes-ti-quer,do-ter,%
+dra-gon-net,drô-le-ment,du-per,dys-en-do-cri-nie,%
+ébou-rif-fer,écharde,éclanche,écra-bouille-ment,%
+édit,ef-fri-te-ment,ei-der,élec-tro-ma-gné-tique,%
+élu-ci-da-tion,em-bot-te-ler,émiet-te-ment,em-par-rer,%
+em-prunt,en-chaus-ser,en-dia-bler,en-flam-mer,%
+en-har-mo-nie,en-ré-gi-men-ter,en-té-rique,en-tre-lacs,%
+en-voyeur,épiage,épi-phy-tie,épui-se-ment,%
+éreinté,es-ca-drille,es-pion,es-thé-tisme,%
+éta-tisme,étole,eu-pep-tique,éven-tua-lité,%
+ex-ci-ser,exi-gi-bi-lité,ex-pli-ca-tion,ex-tir-pa-tion,%
+fac-teur,fal-si-fi-ca-teur,fa-rouche,faux,%
+fen-deur,fé-rule,fi-ce-ler,fi-li-grane,%
+fixe,flé-chis-seur,fluc-tuant,fon-cié-re-ment,%
+for-lon-ger,fouilleur,frac-tion-niste,fre-don-ner,%
+frire,fruit,fu-rioso,gaïa-col,%
+ga-lure,gare,gaur,ge-népi,%
+géo-phage,gi-boyeux,glai-seux,glu-co-li-pide,%
+goï,gou-gère,graillon,gra-ti-ner,%
+gre-nouille,gri-ser,guède,gui-per,%
+hadji,ha-pax,hâ-te-reau,hé-lio-chro-mie,%
+hen-dé-ca-syl-labe,hé-ron,hié-rar-chi-que-ment,ho,%
+ho-no-ra-bi-lité,hou-leux,hu-mus,hy-dro-pneu-ma-tique,%
+hyp-na-go-gique,icaque,ig-ni-vome,imité,%
+im-pala,im-plan-ter,im-pu-bliable,in-avouable,%
+in-com-mu-ni-ca-bi-lité,in-croyable,in-dexer,in-du-bi-ta-ble-ment,%
+in-ex-pé-ri-menté,in-flexi-bi-lité,in-hu-mer,in-quar-ta-tion,%
+ins-pec-teur,in-tègre,in-ter-fo-liage,in-tu-ba-tion,%
+in-ter-stel-laire,in-vrai-sem-blance,ir-ré-pa-ra-ble-ment,iso-phase,%
+jaïn,jau-nâtre,jo-liesse,ju-gu-ler,%
+ka-léi-do-scope,ki-lo-mé-trer,la-bium,lai-neuse,%
+lan-ceur,lar-gage,la-ve-rie,lé-ni-tif,%
+leu-cose,li-brai-rie,li-mette,li-po-thy-mie,%
+lit-té-ral,lo-go-ma-chique,lou-cheur,lu-mi-neu-se-ment,%
+lyn-cheur,ma-cro-phage,ma-gni-fique,ma-la-bar,%
+mal-ter,man-gous-tan,map-pe-monde,mar-gis,%
+mar-que-te-rie,mas-ti-ca-toire,ma-trone,mé-daille,%
+meïji,men-dé-lé-vium,mer-cure,me-sure,%
+mé-tis-sage,mi-cro-mé-trique,mil-lier,mi-nu-tieu-se-ment,%
+mi-traillade,moi-nillon,mon-der,mo-no-po-liste,%
+mor-dache,mo-tion-ner,mous-que-te-rie,mul-ti-carte,%
+mus-cat,myo-pie,na-po-léo-nien,na-va-rin,%
+neige,neu-ro-psy-chiatre,niôle,no-made,%
+noue,nu-mé-ra-tion,obli-té-rer,océa-no-graphe,%
+œuvre,oli-go-pole,on-glée,opi-nion,%
+or-chi-da-cées,ori-peau,os-cule,ouille,%
+ovo-gé-nèse,pa-geo-ter,pa-léo-his-to-lo-gie,pa-lus,%
+pa-no-ra-mi-quer,para,pa-ra-si-ti-cide,pa-ri-sette,%
+par-ti-ci-pant,pas-teu-ri-ser,pa-toi-ser,paye-ment,%
+pei-gnage,pe-nalty,pen-tho-tal,pé-réqua-tion,%
+per-lim-pin-pin,per-son-na-lité,pé-toire,phar-ma-ceu-tique,%
+pholx,pho-to-ma-ton,phy-toph-thora,pié-ti-ner,%
+pin-ce-lier,pi-so-lithe,plaie,plas-ti-que-ment,%
+pliage,plu-tôt,poin-teur,po-li-ti-quer,%
+po-ly-style,pontet,po-sé-ment,po-ti-quet,%
+pour-voi,pré-cis,pré-ju-di-ciable,pré-séance,%
+pré-va-lence,pri-vi-lé-gier,pro-fi-leur,pro-na-teur,%
+pros-pec-tif,pro-vi-dence,psy-cho-lin-guis-tique,pué-ri-lité,%
+pur-pura,py-tha-go-risme,quart-zite,quin-tes-sen-cié,%
+rac-cour-cir,ra-dio-co-balt,rage,ramé,%
+ra-pié-cage,râ-te-lier,rayon-nant,re-bours,%
+re-chi-gner,re-cor-dage,ré-cu-sable,ré-éva-lua-tion,%
+re-fu-ser,ré-gu-la-rité,re-laxe,re-met-tant,%
+re-nar-dière,ren-ta-mer,ré-pé-ti-tion,repu,%
+ré-son-nance,re-sur-gir,ré-trac-tile,ré-veil,%
+re-vo-ter,rhu-me-rie,ri-mer,robre,%
+ron-chon,ro-tengle,rous-pé-ter,rui-ni-forme,%
+sa-brage,sa-gesse,sa-li-nité,sand-jak,%
+sar-clette,sau-cisse,Saxon,schi-zo-go-nie,%
+sco-las-ti-cat,sé-che-resse,sei-gneu-riage,se-mou-le-rie,%
+sep-tem-vir,ser-pent,sexto,si-gil-lo-gra-phie,%
+si-mu-lie,ski,sœur,so-ma-to-trope,%
+sot,soulte,spal-ter,sphé-rique,%
+spo-ro-gone,star-let,sté-réo-duc,sto-ma-chique,%
+stro-phan-tine,sub-jec-ti-ve-ment,suc-ci-nique,sul-fa-ter,%
+su-pin,sur-dé-ve-loppé,sur-mon-ter,sur-vol-ter,%
+sym-pho-nie,sy-phi-lis,tact,tam-pico,%
+ta-quon,tâ-ter,tech-ni-que-ment,té-léos-téens,%
+ten-dan-ciel,ter-mi-nal,té-te-relle,théo-lo-gal,%
+thalspi,tilleul,to-co-phé-rol,ton-nerre,%
+tor-tille,tour-men-ter,trac-ter,trans-cas-pien,%
+trans-plant,tré-fi-lage,tré-vi-rer,tri-fo-rium,%
+tri-plure,tron-ca-ture,truite,tu-mul-tueu-se-ment,%
+tuyau-ter,ul-tra-vi-rus,ura-no-gra-phie,uti-li-taire,%
+va-lable,va-quer,ve-dette,vé-né-rer,%
+ver-geté,ver-seuse,vian-der,vi-gnoble,%
+vi-reux,vi-treux,vo-lage,vo-ter,%
+we-ber,yt-trique,zo-nure,%
+%% liste complémentaire %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+cor-rec-te-ment,% 1ct retiré
+abhor-rer,adhé-sion,rédhi-bi-toire,% modifs frhyp V2.4
+dés-œu-vre-ment,% have a long name with œV2.5
+ma\^% add a 7 bits word with accent \^ on \i
+ \i-tris\'% which is a good idea
+ e,% of Michel Bovani.
+}% don't run this file alone! Go through gencoup.tex
+%
+\CheckSevenBits/À/% check it, will stop here if 7-bits.
+ {\STOP un retour charriot permet de continuer...}
+%
+\endinput
diff --git a/language/french/e-french/texmf/doc/test/tests-formats/gencoup.tex b/language/french/e-french/texmf/doc/test/tests-formats/gencoup.tex
new file mode 100644
index 0000000000..3d1fd5bd00
--- /dev/null
+++ b/language/french/e-french/texmf/doc/test/tests-formats/gencoup.tex
@@ -0,0 +1,90 @@
+%OZT%&frtex / This is a TeX code to generate a log file
+% showing french hyphenated words.
+% gencoup.tex Copyright Bernard Gaulle as in french_doc.pdf
+%%
+% This code was developped for MlTeX and TeX V3 --bg 03/27/92
+% with CM or EC fonts (but don't use it with TeX V2)
+% last mods: --bg 2000/03/09
+%
+%%
+%% checksum = "41383 90 338 4320"
+%%
+%
+%For testing purposes ........................................ \CheckSevenBits
+\ifx\STOP\undefined\def\STOP{\csname bye\endcsname}\fi%
+\catcode`@=11
+\def\CheckSevenBits/#1{\def\@tempa##1##2/##3{\ifx##2\empty\else%
+ \message{gencoup.tex
+ -51- ERREUR : ce document n'a pas \'et\'e converti en 8-bits...}%
+ \expandafter ##3\fi}\expandafter\@tempa\noexpand#1}%
+\catcode`@=12
+%
+\ifx\french\undefined
+ \ifx\l@french\undefined
+ \message{Erreur : le langage french est inconnu !}
+ \ifx\fhyph\undefined\else\message{Heureusement fhyph est connu !}
+ \def\french{\fhyph}\fi
+ \else\def\french{\language=\l@french}\fi% for babel
+\fi
+\french% set the language
+%\message{Language=\the\language\space
+% Left=\the\lefthyphenmin\space Right=\the\righthyphenmin}
+\uchyph=-1% don't hyphenate upper case words
+%\ifx\stophyph\undefined\else% was just for a confirmation test
+%% \message{\message{\string\stophyph\space a\space
+%% ete\space mis\space a\space 4}}
+% \stophyph=4\fi%pb with end of accent.words (MlTeX2)
+
+%\hyphenchar\font='177 % for tests of DC v1.2, EC
+\edef\LeHC{\the\hyphenchar\font}\edef\DConePOINTtwo{127}%
+% Here are Included LaTeX compatible definitions.
+\catcode`@=11
+\ifx\DOinput\undefined\let\DOinput\input\fi%
+\gdef\newwrite{\alloc@7\write\chardef\sixt@@n}% not an outer def
+\newwrite\@unused%..............................................\@unused
+\message{()}
+\long\gdef\@ifundefined#1#2#3{\expandafter\ifx\csname%......... \@ifundefined
+ #1\endcsname\relax#2\else#3\fi}%
+\ifx\protect\undefined\let\protect\relax\fi%....................\protect
+\def\IeC#1{\protect #1}% for plain .............................\IeC
+\@ifundefined{typeout}{%........................................\typeout
+ \global\newlinechar`\^^J%
+ \gdef\typeout#1{{\let\protect\string\immediate\write\@unused{#1}}}%
+ }{}%
+\typeout{Le caract\`ere de c\'esure (hyphen char) est \string'\LeHC}
+% let the original showhyphen work, otherwise there is a mess.
+\ifx\s@owhyphens\undefined\else\let\showhyphens\s@owhyphens\fi%
+{\catcode`\]=13\def]{}\catcode`,=\active\def,{\egroup\space%no need of ^^J
+ \showhyphens\bgroup%
+ }%
+\def\DmyDeF#1{\let\protect\relax% for 2e
+ \showhyphens\bgroup#1}%
+\def\Dmydef#1,#2]{\DmyDeF#1%
+ \def\temp{#2}\ifx\temp\empty\let\Dmydef\relax\fi%
+ \Dmydef#2]}%
+\def\dummydef[{\Dmydef}%
+\catcode`-=\active\def-{}%
+% for this font:
+\rm% use lgencoup.tex with LaTeX
+\let\protect\noexpand% specially for NFSS
+%
+% Here are all the 499 french dictionnary names used by J. Desarmenien
+% plus n other words that were inapropriately hyphenated in the past.
+\edef\mots{\DOinput TSIv5n4 %
+\def\writeEND{\message{\noexpand\endinput}}%
+\typeout{^^J ************************************************************}
+\typeout{^^J G\'en\'eration des cesures 8-bits (jeu test de 500 mots env.}
+\typeout{^^J ************************************************************}
+\dummydef[\mots\writeEND,]}}%
+\typeout{^^J ************************************************************}
+\typeout{^^J La generation de cesures sur un jeu test de plus de 500 mots}
+\typeout{^^J \space\space\space\space\space\space\space\space\space E S T
+ \space\space\space\space F A I T E}
+\typeout{^^J Renommer maintenant le fichier \jobname.log en myhyph.log}
+\typeout{^^J Valider l'accentuation dans ce fichier (circonflexes)}
+\typeout{^^J Puis faire le test de validite (cf README.initex)}
+\typeout{^^J ************************************************************}
+\typeout{^^J }
+\bye
+\endinput
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
diff --git a/language/french/e-french/texmf/doc/test/tests-formats/lgencoup.tex b/language/french/e-french/texmf/doc/test/tests-formats/lgencoup.tex
new file mode 100644
index 0000000000..1546f5a894
--- /dev/null
+++ b/language/french/e-french/texmf/doc/test/tests-formats/lgencoup.tex
@@ -0,0 +1,23 @@
+%OZT%&frlatex / This is a LaTeX code to generate a log file showing
+% french hyphenated words
+% Copyright Bernard Gaulle as in french_doc.pdf
+%
+% to be used only for testing/debugging purposes
+%
+% last mods: 2000/03/03
+\catcode`@=11
+\gdef\iORI{\@@input}
+\global\let\bye\enddocument
+\documentclass{article}
+%\usepackage[T1]{fontenc}%%%%% codage de sortie (pour fontes EC)
+\wlog{\noexpand\input{EC.def}}% my auxiliary input encoding for tstcoup
+%\usepackage{french}% no need to use it, \french should be enough
+\begin{document}
+\global\let\DOinput\iORI
+\let\STOP\stop% stop if error
+\DOinput gencoup.tex
+\endinput
+%%
+%% checksum = "31401 23 85 828"
+%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
diff --git a/language/french/e-french/texmf/doc/test/tests-formats/ltesthyp b/language/french/e-french/texmf/doc/test/tests-formats/ltesthyp
new file mode 100644
index 0000000000..8193a6dfe6
--- /dev/null
+++ b/language/french/e-french/texmf/doc/test/tests-formats/ltesthyp
@@ -0,0 +1,24 @@
+#! /bin/csh -xv
+# Test LaTeX des cesures appliquees sur le site sur plus de 500 mots
+# et comparaison avec avec la liste ideale des coupures. maj --bg 2000/02/18
+
+echo "latex lgencoup >/dev/null"
+ latex lgencoup >/dev/null
+if (`grep -e "-51- ERREUR" lgencoup.log`) then
+ echo "-51- ERREUR le document n'a pas ete converti en 8-bits"
+ exit
+endif
+
+# to avoid finding ^ instead of \^
+sed -e 's/\^\^\[/\\oe\{\}\{\}/g' <lgencoup.log | sed -e 's/\^a/\\\^a/g' -e 's/\^e/\\\^e/g' -e 's/\^i/\\\^\\i/g' -e 's/\^o/\\\^o/g' -e 's/\^u/\\\^u/g' -e 's/\^A/\\\^A/g' -e 's/\^E/\\\^E/g' -e 's/\^I/\\\^I/g' -e 's/\^O/\\\^O/g' -e 's/\^U/\\\^U/g' >myhyph.log
+
+latex ltstcoup
+rm ltstcoup.dvi
+rm lgencoup.aux
+mv ltstcoup.log ltesthyp.log
+rm lgencoup.log
+rm ltstcoup.idx myhyph.log
+###########
+#%%
+#%% checksum = "52841 25 117 836"
+#%%
diff --git a/language/french/e-french/texmf/doc/test/tests-formats/ltstcoup.tex b/language/french/e-french/texmf/doc/test/tests-formats/ltstcoup.tex
new file mode 100644
index 0000000000..a60acd4221
--- /dev/null
+++ b/language/french/e-french/texmf/doc/test/tests-formats/ltstcoup.tex
@@ -0,0 +1,22 @@
+%OZT%&frlatex / This is a TeX code to test if french words are well hyphenated
+% Copyright Bernard Gaulle as in french_doc.pdf
+%
+% last mods: 99/02/23
+\catcode`@=11
+\gdef\iORI{\@@input}
+\gdef\bye{\egroup% to avoid message \end inside level 1...
+ \end{document}}
+\documentclass{article}
+\usepackage{inputenc}%%%%%% to define \inputencoding
+%\usepackage[T1]{fontenc}%%% here is the font encoding
+\nofiles
+\begin{document}
+\global\let\DOinput\iORI
+\makeatletter\let\@inpenc@test\relax\makeatother% avoid a warning about EC
+\DOinput tstcoup.tex
+\endinput
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%
+%% checksum = "00515 22 72 853"
+%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
diff --git a/language/french/e-french/texmf/doc/test/tests-formats/testhyp b/language/french/e-french/texmf/doc/test/tests-formats/testhyp
new file mode 100644
index 0000000000..42b2a271ac
--- /dev/null
+++ b/language/french/e-french/texmf/doc/test/tests-formats/testhyp
@@ -0,0 +1,23 @@
+#! /bin/csh
+# Test TeX des cesures appliquees sur le site sur plus de 500 mots
+# et comparaison avec avec la liste ideale des coupures. maj --bg 2000/02/18
+
+echo "tex gencoup >/dev/null"
+ tex gencoup >/dev/null
+if (`grep -e "-51- ERREUR" gencoup.log`) then
+ echo "-51- ERREUR le document n'a pas ete converti en 8-bits"
+ exit
+endif
+
+# to avoid finding ^ instead of \^
+sed -e 's/\^\^\[/\\oe\{\}\{\}/g' <gencoup.log | sed -e 's/\^a/\\\^a/g' -e 's/\^e/\\\^e/g' -e 's/\^i/\\\^\\i/g' -e 's/\^o/\\\^o/g' -e 's/\^u/\\\^u/g' -e 's/\^A/\\\^A/g' -e 's/\^E/\\\^E/g' -e 's/\^I/\\\^I/g' -e 's/\^O/\\\^O/g' -e 's/\^U/\\\^U/g' >myhyph.log
+
+tex tstcoup
+rm tstcoup.dvi
+mv tstcoup.log testhyp.log
+rm gencoup.log
+rm tstcoup.idx myhyph.log
+###########
+#%%
+#%% checksum = "46975 24 113 799"
+#%%
diff --git a/language/french/e-french/texmf/doc/test/tests-formats/tstcoup.tex b/language/french/e-french/texmf/doc/test/tests-formats/tstcoup.tex
new file mode 100644
index 0000000000..23e2fae1cc
--- /dev/null
+++ b/language/french/e-french/texmf/doc/test/tests-formats/tstcoup.tex
@@ -0,0 +1,135 @@
+%OZT%&frtex / This is a TeX code to test if french words are well hyphenated
+% tstcoup.tex Copyright Bernard Gaulle as in french_doc.pdf
+%
+% This code was developped for MlTeX and TeX V3 --bg 03/27/92
+% with CMR or EC fonts.
+% last mods 2005/03/08
+%
+%%
+%% checksum = "32747 135 375 5425"
+%%
+% Here are included LaTeX compatible definitions.
+%\scrollmode
+\catcode`@=11
+\ifx\@gobble\undefined\let\@gobble#1{}\fi% .......................... \@gobble
+%
+%For testing purposes ........................................ \CheckSevenBits
+\def\STOP{}% non stop...
+\def\CheckSevenBits/#1{\def\@tempa##1##2/##3{}%
+ \expandafter\@tempa#1}%
+%
+\ifx\DOinput\undefined\let\DOinput\input\fi%
+\gdef\newwrite{\alloc@7\write\chardef\sixt@@n}% not an outer def
+\gdef\newread{\alloc@6\read\chardef\sixt@@n}% not an outer def
+\newwrite\@unused%..............................................\@unused
+\long\gdef\@ifundefined#1#2#3{\expandafter\ifx\csname%......... \@ifundefined
+ #1\endcsname\relax#2\else#3\fi}
+\ifx\protect\undefined\let\protect\relax\fi%....................\protect
+\@ifundefined{typeout}{%........................................\typeout
+ \global\newlinechar`\^^J%
+ \gdef\typeout#1{{\let\protect\string\immediate\write\@unused{#1}}}%
+ }{}%
+\typeout{^^J Test de validite des cesures sur le jeu de plus de 500 mots}
+%
+%---------------
+\newif\ifnewhyph\newhyphfalse
+%\hyphenchar\font='177 % for tests of DC v1.2
+\edef\LeHC{\the\hyphenchar\font}\edef\DConePOINTtwo{127}
+\ifx\LeHC\DConePOINTtwo\newhyphtrue\fi
+\message{Le caract\`ere de c\'esure (hyphen char) est \string'\LeHC}
+%---------------
+%
+% creation fichier .idx
+%
+\def\cleanit#1#2/{\ifx #2\empty#1\else #1#2\fi}%
+\def\IeC#1{\cleanit #1/}% remove any superfluous {}
+\newwrite\@mainidx
+\immediate\openout\@mainidx\jobname.idx %
+\begingroup%[[
+\catcode`\]=13\def]{}
+\let\bidon\relax
+\catcode`,=\active
+\def,{^^J}%
+\def\DmyDeF#1{\immediate\write\@mainidx{#1}}%
+%[
+\def\Dmydef#1,#2]{\DmyDeF#1%[
+ \def\temp{#2}\ifx\temp\empty\let\Dmydef\relax\fi%
+ \Dmydef#2]}%
+\def\dummydef[{\Dmydef}%]
+\ifx\documentclass\undefined\def\tempa{T1}
+ \ifx\encodingdefault\tempa\def\oe{^^f7}
+ \else\def\oe{\string\oe\space\string{\string}}%
+ \fi%
+\else%
+\expandafter\def\csname OT\string 1\string\oe\endcsname% for 2e
+ {\string\oe\space\string{\string}}% for 2e
+\expandafter\def\csname T\string 1\string\oe\endcsname% No better follow. way?
+ {\string ^^f7\@gobble}% go back to original char.
+% (i've not found a correct way for reverse engeneering)
+\fi%
+\edef\mots{\@@input TSIv5n4 %}
+\dummydef[\mots,]
+\endgroup
+\closeout\@mainidx%
+Jeu reduit : (voir page suivante)\vfill\eject
+\@@input \jobname.idx\vfill\eject
+%
+% Relecture et comparaison
+%
+\newread\@lidx
+\immediate\openin\@lidx \jobname.idx %
+\newcount\NB\NB=0
+\catcode`[=\active\catcode`-=\active\def-{\string-}%]
+\catcode`\^^7f=\active\ifnewhyph\def^^7f{\string-}\fi%
+\def\@MSG#1#2{\typeout{^^J /\the\NB/ Le mot #1 (\site)
+ devrait etre coupe #2\space!}}
+\def\ATsite#1#2/{\edef\site{#2}%
+ \def-{}\ifnewhyph\def^^7f{}\fi%
+ \xdef\ENTIER{#2}%
+ \def-{\string-}\ifnewhyph\def^^7f{\string-}\fi%
+ \immediate\read\@lidx to\Mustbe%
+ \def\Tobe##1 /{\edef\mustbe{##1}}\expandafter\Tobe\Mustbe /%
+ \ifx \site \mustbe \else\def-{\string-}\ifnewhyph\def^^7f{\string-}\fi%
+ \global\advance\NB by 1
+ \bgroup\def\accent ##1 ##2{##2}\@MSG{.\ENTIER.}{.\mustbe.}\egroup%
+%\expandafter\show\site\show\Mustbe\expandafter\show\mustbe
+ \fi\let\hbox\hboxDUM}
+%
+% A adapter eventuellement a votre site :
+ \long\def[] []#1 \par{\ATsite#1/} % for TeX V3
+%OZT \long\def[] #1 \par{\ATsite#1/} %OZT for OzTeX 3.0
+%STD \long\def[] []#1 \par{\ATsite#1/} %STD for TeX V3
+%%%\ifx\undefined\new@fontshape\else%
+%%% \long\def\ATsitE#1 #2/{\ATsite{}#2/}
+%%% \long\def[]#1/10 #2 \par{\ATsitE#2/}\fi% for NFSS
+\ifx\documentclass\undefined\else% for LaTeX2e
+ \long\def\ATsitE#1/{\ATsite{}#1/%
+ \long\def\ATsitE##1 ##2/{\ATsite{}##2/}}%
+ \long\def[]#1/10 #2 \par{\ATsite{}#2/}%
+ \let\mathbf\relax\let\mathsf\relax%
+ \let\mathtt\relax\let\mathit\relax%
+ \let\lgroup\relax\let\rgroup\relax\let\bracevert\relax%
+\fi%
+%
+\catcode`&=\active\def&{}\catcode`(=1\catcode`)=2
+\let\hboxORI\hbox
+\def\hboxDUM#1[]{\let\hbox\hboxORI}
+%%%%%%%%%% 7bits defs %%%%%%%%%%%%%%%%%
+\ifnewhyph% `127 is the hyphenchar
+\else\catcode`\^^?=\active\global\def^^?{\"}
+\fi
+\catcode`\^^S=\active\global\def^^S{\'}
+\catcode`\^^R=\active\global\def^^R{\`}
+\catcode`\^^P=\active\global\def^^P{\i}
+\catcode`\^^[=\active\global\def^^[{\oe{}{}}
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\@@input myhyph.log }% log previously produced
+}% otherwise msg: end occured inside a group at level 1
+\typeout{^^J ******************}
+\typeout{^^J F I N\space\space du\space\space T E S T}
+\typeout{^^J (\the\NB\space mots en erreur)}
+\typeout{^^J ******************}
+\typeout{^^J }
+\bye
+\endinput
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
diff --git a/language/french/e-french/texmf/doc/test/texxetlb.tex b/language/french/e-french/texmf/doc/test/texxetlb.tex
new file mode 100644
index 0000000000..cabe8b62b5
--- /dev/null
+++ b/language/french/e-french/texmf/doc/test/texxetlb.tex
@@ -0,0 +1,27 @@
+% !TeX encoding = latin9
+% This is texxetlb.tex
+%
+% French Pro Torture Test of LaTeX with TeXXeT option (main style: book)
+%
+% Copyright GUTenberg-Bernard Gaulle as in french.doc
+%
+% last mods 2006/04/25
+%
+\ifx\beginL\undefined\def\beginL{}\def\endL{}
+\else\TeXXeTstate=1% Starts TeXXeT option of eTeX.
+\fi
+\let\ObeginL\beginL\let\ObeginR\beginR% Save original cmds.
+% Define new ones for tracing purpose.
+\def\beginL{\leavevmode\message{(\the\language-\the\inputlineno) \noexpand\beginL}\ObeginL}%
+\def\beginR{\leavevmode\message{(\the\language-\the\inputlineno) \noexpand\beginR}\ObeginR}%
+\long\def\TexteComplementaire%
+{\subsection{Test de \texttt{texxet}}%
+
+\beginL Ceci est une écriture de gauche à droite $===>\ avec\ mode\ math\acute{e}matique$
+
+\beginR Ceci est une écriture de droite à gauche $avec\ mode\ math\acute{e}matique\ <===$
+
+\beginL
+ }
+\input frenchlb
+\endinput%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%