% \iffalse meta-comment, etc.
%%
%% Package `pst-lens.dtx'
%%
%% Denis Girou (CNRS/IDRIS - France) <Denis.Girou@idris.fr> and
%% Manuel Luque <Mluque5130@aol.com> (France)
%%
%% February 19, 2001
%%
%% This program can be redistributed and/or modified under the terms
%% of the LaTeX Project Public License Distributed from CTAN archives
%% in directory macros/latex/base/lppl.txt.
%%
%% DESCRIPTION:
%%   `pst-lens' is a PSTricks package to define a generic lens, which can be
%%   used on texts and graphics.
%%
% \fi
%
% \changes{v1.0}{2001/02/16}{First public release.}
%
% \CheckSum{369}
%
% \DoNotIndex{\!,\",\#,\$,\%,\&,\',\(,\+,\*,\,,\-,\.,\/,\:,\;,\<,\=,\>,\?}
% \DoNotIndex{\@,\@B,\@K,\@cTq,\@f,\@fPl,\@ifnextchar,\@nameuse,\@oVk}
% \DoNotIndex{\[,\\,\],\^,\_,\ }
% \DoNotIndex{\^,\\^,\\\^,$\^$,$\\^$,$\\^$}
% \DoNotIndex{\0,\2,\4,\5,\6,\7,\8,}
% \DoNotIndex{\A,\a}
% \DoNotIndex{\B,\b,\Bc,\begin,\Bq,\Bqc}
% \DoNotIndex{\C,\c,\catcode,\cJA,\CodelineIndex,\csname}
% \DoNotIndex{\D,\def,\define@key,\Df,\divide,\DocInput,\documentclass}
% \DoNotIndex{\eCN,\edef,\else,\eHd,\eMcj,\EnableCrossrefs,\end,\endcsname}
% \DoNotIndex{\endCenterExample,\endExample,\endinput,\endpsclip}
% \DoNotIndex{\endpspicture,\endSideBySideExample,\Example}
% \DoNotIndex{\F,\f,\FdUrr,\fi,\filedate,\fileversion,\FV@Environment}
% \DoNotIndex{\FV@UseKeyValues,\FV@XRightMargin,\FVB@Example,\fvset}
% \DoNotIndex{\G,\g,\GetFileInfo,\gr,\GradientLoaded,\gsFKrbK@o,\gsj,\gsOX}
% \DoNotIndex{\hbadness,\hfuzz,\HLEmphasize,\HLMacro,\HLMacro@i}
% \DoNotIndex{\HLReverse,\HLReverse@i,\hqcu,\HqY}
% \DoNotIndex{\I,\i,\ifx,\input,\Ir,\IU}
% \DoNotIndex{\j,\jl,\JT,\JVodH}
% \DoNotIndex{\K,\k,\kfSlL}
% \DoNotIndex{\L,\let}
% \DoNotIndex{\message,\mHNa,\mIU}
% \DoNotIndex{\N,\nB,\newcmykcolor,\newdimen,\newif,\nW}
% \DoNotIndex{\O,\oCDJDo,\ocQhVI,\OnlyDescription,\oRKJ}
% \DoNotIndex{\P,\p,\ProvidesPackage,\psframe,\pslinewidth,\psset}
% \DoNotIndex{\PstAtCode,\PSTricksLoaded}
% \DoNotIndex{\q,\Qr,\qssRXq,\qu,\qXjFQp,\qYL}
% \DoNotIndex{\R,\r,\RecordChanges,\relax,\RlaYI,\rN,\Rp,\rp,\RPDXNn,\rput}
% \DoNotIndex{\S,\scalebox,\SgY,\SideBySide@Example,\SideBySideExample}
% \DoNotIndex{\SgY,\sk,\Sp,\space,\sZb}
% \DoNotIndex{\T,\the,\tw@}
% \DoNotIndex{\u,\UiSWGEf@,\uJi,\usepackage,\uVQdMM,\UYj}
% \DoNotIndex{\VerbatimEnvironment,\VerbatimInput,\VrC@}
% \DoNotIndex{\WhZ,\WjKCYb,\WNs}
% \DoNotIndex{\XkN,\XW}
% \DoNotIndex{\Z,\ZCM,\Ze}
%
% \setcounter{IndexColumns}{2}
%
% \newcommand{\PstLensPackage}{`\textsf{pst-lens}'}
% \newcommand{\PstBlurPackage}{`\textsf{pst-blur}'}
% \newcommand{\PstLensMacro}{\cs{PstLens}}
%
% ^^A From ltugboat.cls
%
% ^^A Typeset the name of an environment
% \providecommand\env[1]{\textsf{#1}}
% \providecommand\clsname[1]{\textsf{#1}}
% \providecommand\pkgname[1]{\textsf{#1}}
% \providecommand\optname[1]{\textsf{#1}}
% \providecommand\progname[1]{\textsf{#1}}
%
% ^^A A list of options for a package/class
% \newenvironment{optlist}{\begin{description}%
%   \renewcommand\makelabel[1]{%
%     \descriptionlabel{\mdseries\optname{##1}}}%
%   \itemsep0.25\itemsep}%
%  {\end{description}}
%
% \makeatletter
%
% ^^A Utility macros
%
% ^^A Example macros - adapted from the `fvrb-ex' package
% ^^A ---------------------------------------------------
%
% ^^A Take care that we use here the four /?_Z characters as escape
% ^^A characters, so we can't use these characters in the examples!
%
% ^^A To highlight some verbatim sequences (comments, macro names, etc.)
% \def\HLEmphasize#1{\textit{#1}}
% \newcommand{\BS}{\texttt{\symbol{`\\}}}
% \def\HLMacro#1{\BS{}def\HLMacro@i#1\@nil}
% \def\HLMacro@i#1def#2\@nil{\HLReverse{#2}}
% \def\HLReverse#1{{\setlength{\fboxsep}{1pt}\HLReverse@i{#1}}}
% \def\HLReverse@i#1{\colorbox{black}{\textcolor{white}{\textbf{#1}}}}
%
% \def\Example{\FV@Environment{}{Example}}
% \def\endExample{%
% \end{VerbatimOut}
% \Below@Example{\input{\jobname.tmp}}
% \endgroup}
%
% \def\CenterExample{\FV@Environment{}{Example}}
% \def\endCenterExample{%
% \end{VerbatimOut}
% \begin{center}
%   \Below@Example{\input{\jobname.tmp}}
% \end{center}
% \endgroup}
%
% \def\SideBySideExample{\FV@Environment{}{Example}}
% \def\endSideBySideExample{%
% \end{VerbatimOut}
% \SideBySide@Example{\input{\jobname.tmp}}
% \endgroup}
%
% \def\FVB@Example{%
% \begingroup
% \FV@UseKeyValues
% \parindent=0pt
% \multiply\topsep by 2
% \VerbatimEnvironment
% \begin{VerbatimOut}[gobble=4,codes={\catcode`\Z=12}]{\jobname.tmp}}
%
% \def\Below@Example#1{%
% \VerbatimInput[gobble=0,commentchar=Z,commandchars=/?_,frame=single,
%                numbers=left,numbersep=3pt]{\jobname.tmp}
% \catcode`\%=14\relax
% \catcode`\Z=9\relax
% ^^A We suppress the effect of the highlighting macros
% \catcode`/=0\relax
% \catcode`?=1\relax
% \catcode`_=2\relax
% \def\HLEmphasize##1{##1}%
% \def\HLMacro##1{##1}%
% \def\HLReverse##1{##1}%
% #1
% \par}
%
% \def\SideBySide@Example#1{%
% \vskip 1mm
% \@tempdimb=\FV@XRightMargin
% \advance\@tempdimb -5mm
% \begin{minipage}[c]{\@tempdimb}
%   \fvset{xrightmargin=0pt}
%   \catcode`\%=14\relax
%   \catcode`\Z=9\relax
%   ^^A We suppress the effect of the highlighting macros
%   \catcode`/=0\relax
%   \catcode`?=1\relax
%   \catcode`_=2\relax
%   \def\HLEmphasize##1{##1}%
%   \def\HLMacro##1{##1}%
%   \def\HLReverse##1{##1}%
%   #1
% \end{minipage}%
% \@tempdimb=\textwidth
% \advance\@tempdimb -\FV@XRightMargin
% \advance\@tempdimb 5mm
% \begin{minipage}[c]{\@tempdimb}
%   \VerbatimInput[gobble=0,commentchar=Z,commandchars=/?_,
%                  frame=single,numbers=left,numbersep=3pt,
%                  xleftmargin=5mm,xrightmargin=0pt]{\jobname.tmp}
% \end{minipage}
% \vskip 1mm}
%
% ^^A End of example macros from `fvrb-ex'
%
% ^^A Customizations of the "Verbatim" environment
% \RecustomVerbatimEnvironment{Verbatim}{Verbatim}%
%   {gobble=4,frame=single,numbers=left,numbersep=3pt,commandchars=/?_}
%
% ^^A For the possible index and changes log
% \setlength{\columnseprule}{0.6pt}
%
% ^^A The basic text used for demonstration purposes.
%
% \def\Wishes{{%
% \rput[lb](0,0){%
%   \Large
%   \begin{minipage}{3cm}
%     \centering
%     \textbf{Best wishes}\\
%     Caroline,\\
%     for this new year\\
%     \Huge 2001 !
% \end{minipage}}}}
%
% ^^A The second text used for demonstration purposes (poem from the French
% ^^A poet Arthur Rimbaud.)
%
% \def\TheEternity{{%
% \rput[lb](0,0){%
% \scriptsize
% \begin{minipage}{3.5cm}
%   \centerline{\normalsize\textbf{L'\'Eternit\'e}}
%   \vspace{5mm}
%   \begin{raggedright}
%     Elle est retrouv\'ee.\\
%     Quoi ? --- L'\'Eternit\'e.\\
%     C'est la mer all\'ee\\
%     Avec le soleil.\\[3mm]
%
%     \^Ame sentinelle\\
%     Murmurons l'aveu\\
%     De la nuit si nulle\\
%     Et du jour en feu.\\[3mm]
%
%     Des humains suffrages\\
%     Des communs \'elans\\
%     L\`a tu te d\'egages\\
%     Et voles selon.\\[3mm]
%
%     Puisque de vous seules,\\
%     Braises de satin,\\
%     Le devoir s'exhale\\
%     Sans qu'on dise : enfin.\\[3mm]
%
%     L\`a pas d'esp\'erance,\\
%     Nul orietur.\\
%     Science avec patience,\\
%     Le supplice est s\^ur.\\[3mm]
%
%     Elle est retrouv\'ee.\\
%     Quoi ? --- L'\'Eternit\'e.\\
%     C'est la mer all\'ee\\
%     Avec le soleil.\\[3mm]
%   \end{raggedright}
%   \flushright{\normalsize\textbf{Arthur Rimbaud}}
% \end{minipage}}}}
%
% ^^A One of the Truchet's tilings, for demonstration purposes
%
% ^^A The four elementary tiles for it
%
% \def\TruchetTileA{\pspolygon*(0,0)(0,1)(1,0)}
% \def\TruchetTileB{\pspolygon*(0,0)(0,1)(1,1)}
% \def\TruchetTileC{\pspolygon*(0,1)(1,1)(1,0)}
% \def\TruchetTileD{\pspolygon*(0,0)(1,0)(1,1)}
%
% \def\TruchetTilingA#1#2{{%
% \psset{dimen=middle}
% \pst@cntb=#2
% \psframe(#1,#2)
% \whiledo{\pst@cntb>\z@}{%
%   \advance\pst@cntb\m@ne
%   \pst@cnta=\z@
%   \whiledo{\pst@cnta<#1}{%
%     \rput(\pst@cnta,\pst@cntb){\TruchetTileB}\advance\pst@cnta\@ne
%     \rput(\pst@cnta,\pst@cntb){\TruchetTileA}\advance\pst@cnta\@ne
%     \rput(\pst@cnta,\pst@cntb){\TruchetTileD}\advance\pst@cnta\@ne
%     \rput(\pst@cnta,\pst@cntb){\TruchetTileC}\advance\pst@cnta\@ne}
%   \advance\pst@cntb\m@ne
%   \pst@cnta=\z@
%   \whiledo{\pst@cnta<#1}{%
%     \rput(\pst@cnta,\pst@cntb){\TruchetTileC}\advance\pst@cnta\@ne
%     \rput(\pst@cnta,\pst@cntb){\TruchetTileD}\advance\pst@cnta\@ne
%     \rput(\pst@cnta,\pst@cntb){\TruchetTileA}\advance\pst@cnta\@ne
%     \rput(\pst@cnta,\pst@cntb){\TruchetTileB}\advance\pst@cnta\@ne}
%   \advance\pst@cntb\m@ne
%   \pst@cnta=\z@
%   \whiledo{\pst@cnta<#1}{%
%     \rput(\pst@cnta,\pst@cntb){\TruchetTileD}\advance\pst@cnta\@ne
%     \rput(\pst@cnta,\pst@cntb){\TruchetTileC}\advance\pst@cnta\@ne
%     \rput(\pst@cnta,\pst@cntb){\TruchetTileB}\advance\pst@cnta\@ne
%     \rput(\pst@cnta,\pst@cntb){\TruchetTileA}\advance\pst@cnta\@ne}
%   \advance\pst@cntb\m@ne
%   \pst@cnta=\z@
%   \whiledo{\pst@cnta<#1}{%
%     \rput(\pst@cnta,\pst@cntb){\TruchetTileA}\advance\pst@cnta\@ne
%     \rput(\pst@cnta,\pst@cntb){\TruchetTileB}\advance\pst@cnta\@ne
%     \rput(\pst@cnta,\pst@cntb){\TruchetTileC}\advance\pst@cnta\@ne
%     \rput(\pst@cnta,\pst@cntb){\TruchetTileD}\advance\pst@cnta\@ne}}}}
%
% \def\TruchetTiling{{%
% \rput[lb](0,0){\psset{unit=0.5}\TruchetTilingA{12}{12}}}}
%
% ^^A Van Koch curve and Siepinski triangle fractals, for demonstration
% ^^A purposes
%
% ^^A The recursion macro used (from David Carlisle)
%
% \newcount\DeepRecursion
%
% \def\Recursion #1{%
% #1\relax
%   \expandafter\@firstoftwo
% \else
%   \expandafter\@secondoftwo
% \fi}
%
% ^^A General definition of a fractal
%
% \def\PstFractal#1{%
% \ifx\PstFractalBegin\@undefined
% \else
%   \PstFractalBegin
% \fi
% \Recursion
%   {\ifnum#1>1\relax}
%   {\DeepRecursion=#1%
%    \advance\DeepRecursion by -1%
%    \PstFractalRepeat{\DeepRecursion}}
%   {\PstFractalDefinition}}
%
% ^^A Sierpinski triangle
%
% \def\PstSierpinskiTriangle#1{{%
% \rput[lb](0,0){%
% \psset{unit=3}
% \def\PstFractalDefinition{%
%   \pspolygon*[linecolor=\PstSierpinskiExternalColor](1;0)(1;1)(1;2)
%   \rput{-2}(0,0){\pspolygon*[linecolor=\PstSierpinskiInternalColor]%
%                             (0.5;0.5)(0.5;1.5)(0.5;2.5)}}%
% \def\PstFractalBegin{\PstFractalDefinition}%
% \def\PstFractalRepeat##1{%
%   \rput(0.5;0){\psset{unit=0.5}\PstFractal{##1}}
%   \rput(0.5;1){\psset{unit=0.5}\PstFractal{##1}}
%   \rput(0.5;2){\psset{unit=0.5}\PstFractal{##1}}}%
% \rput{90}(0,0){%
%   \SpecialCoor
%   \degrees[3]
%   \PstFractal{#1}}}}}
%
% ^^A Von Koch curve
%
% \def\PstVonKochCurve#1{{%
% \rput[lb](0,0){%
% \psset{unit=3}
% \def\PstFractalDefinition{\psline(0,0)(1,0)(1.5,0.8660254)(2,0)(3,0)}%
% \def\PstFractalRepeat##1{%
%   \rput(0,0){\psset{unit=0.3333}\PstFractal{##1}}
%   \rput{60}(1,0){\psset{unit=0.3333}\PstFractal{##1}}
%   \rput{-60}(1.5,0.866){\psset{unit=0.3333}\PstFractal{##1}}
%   \rput(2,0){\psset{unit=0.3333}\PstFractal{##1}}}%
% \PstFractal{#1}}}}
%
% \makeatother
%
%
% ^^A Beginning of the documentation itself
%
% \title{The \PstLensPackage{} package\\A PSTricks package for lens}
% \author{Denis \textsc{Girou}\thanks{CNRS/IDRIS ---
%         Centre National de la Recherche Scientifique /
%         Institut du D\'eveloppement et des Ressources en Informatique
%         Scientifique --- Orsay --- France ---
%         \mbox{\texttt{<Denis.Girou@idris.fr>}}.}\\
%         and\\
%         Manuel \textsc{Luque}\thanks{\mbox{\texttt{<Mluque5130@aol.com>}}.
%         The original idea and the first version of the lens were from
%         Manuel \textsc{Luque}.}}
% \date{Version 1.0\\February 19, 2001\\
%       {\small Documentation revised February 19, 2001}}
%
% \maketitle
%
% \begin{abstract}
%     This package define a lens which can be used in various contexts
%   to simulate the effect of a lens, using the unique macro \PstLensMacro,
%   with some customization parameters.
%
%     It is also a good example of the great power and flexibility of
%   PSTricks, as in fact it is a very short program (it body, without
%   considering the various customizations, is only 7~lines long!)
%   but nevertheless powerful.
%
%     And last, it is also a good pedagogical example of how to design and
%   program \emph{high level graphic objects} above PSTricks own ones.
% \end{abstract}
%
% \tableofcontents
%
% \section{Introduction}
%
%   \PstLensPackage{} offer a unique macro with some parameters to interact
% on it.
%
% \vspace{1mm}
% \def\ParamObject{\textbraceleft Object\textbraceright}
%   The syntax is simply:
% \fbox{\PstLensMacro\texttt{[optional\_parameters]\textit{(x,y)}\ParamObject}}
%
% \vspace{1mm}
%   \texttt{\textit{(x,y)}} is a PSTricks coordinate, which as usual is taken
% as \texttt{(0,0)} if it is not defined.
%
%   To use the lens, we must define a \texttt{pspicture} environment,
% optionally draw the object and then call the \PstLensMacro{} macro on it.
%
% \section{Usage}
%
%   We will use the following textual object to illustrate our examples
% (note that we must define the reference point at the left bottom corner,
% as it is the normal behavior of PSTricks):
%
% \begin{SideBySideExample}[xrightmargin=3.8cm]
%   Z\begin{pspicture}(3,4)
%   Z  \psgrid[subgriddiv=0,griddots=5]
%   /HLMacro?\def\Wishes_{{%
%   \rput[lb](0,0){%
%     \Large
%     \begin{minipage}{3cm}
%       \centering
%       \textbf{Best wishes}\\
%       Caroline,\\
%       for this new year\\
%       \Huge 2001 !
%     \end{minipage}}}}
%
%   \Wishes
%   Z\end{pspicture}
% \end{SideBySideExample}
%
% \subsection{Parameters}
%
%   There are \textbf{9} specific parameters defined to change the way the
% lens works:
%
% \begin{optlist}
%   \item [LensMagnification (real)]: magnification to apply for the lens
%   (\emph{Default:~1} --- no~magnification).
% \end{optlist}
%
% \begin{CenterExample}
%   \begin{pspicture}(0,-1.5)(3,4)
%     \Wishes
%     \PstLens[LensMagnification=2](2,2){\Wishes}
%   \end{pspicture}
%   \hfill
%   \begin{pspicture}(0,-1.5)(3,4)
%     \Wishes
%     \PstLens[LensMagnification=4](1,2.4){\Wishes}
%   \end{pspicture}
%   \hfill
%   \begin{pspicture}(0,-1.5)(3.5,4)
%     \Wishes
%     \PstLens[LensMagnification=0.5](1,1){\Wishes}
%     \PstLens[LensMagnification=-0.5](2.5,3){\Wishes}
%   \end{pspicture}
% \end{CenterExample}
%
% \begin{optlist}
%   \item [LensSize (real or length)]: value of the radius of the glass of the
% lens (\emph{Default:~1}).
% \end{optlist}
%
% \noindent Note that the size of the handle will change accordingly.
%
% \begin{SideBySideExample}[xrightmargin=3.8cm]
%   \begin{pspicture}(0,-4)(3,3.5)
%     \Wishes
%     \PstLens[LensSize=2](1,1){\Wishes}
%     \PstLens[LensSize=0.5](3,3){\Wishes}
%   \end{pspicture}
% \end{SideBySideExample}
%
% \begin{optlist}
%   \item [LensRotation (real)]: rotation angle applied to the lens
%   (\emph{Default:~0} --- no rotation).
% \end{optlist}
%
% \begin{SideBySideExample}[xrightmargin=3.8cm]
%   \begin{pspicture}(0,-1)(3,3.8)
%     \Wishes
%     \PstLens[LensRotation=80]{\Wishes}
%     \PstLens[LensRotation=-108.5](2,2){\Wishes}
%   \end{pspicture}
% \end{SideBySideExample}
%
% \begin{optlist}
%   \item [LensHandle (boolean)]: boolean value to choose between to draw
%   a handle for the lens or not.
%   (\emph{Default:~true} --- handle).
% \end{optlist}
%
% \begin{SideBySideExample}[xrightmargin=3.8cm]
%   \begin{pspicture}(3,3.5)
%     \Wishes
%     \PstLens[LensHandle=false](2,2){\Wishes}
%   \end{pspicture}
% \end{SideBySideExample}
%
% \begin{optlist}
%   \item [LensHandleWidth (real or length)]: width of the handle
%   (\emph{Default:~0.2 for \texttt{LensSize=1}}).
% \end{optlist}
%
% \begin{SideBySideExample}[xrightmargin=3.8cm]
%   \begin{pspicture}(0,-2.5)(3,3.5)
%     \Wishes
%     \PstLens[LensHandleWidth=0.1]{\Wishes}
%     \PstLens[LensHandleWidth=4mm](2,2){\Wishes}
%   \end{pspicture}
% \end{SideBySideExample}
%
% \begin{optlist}
%   \item [LensHandleHeight (real or length)]: height of the handle
%   (\emph{Default:~2.5 for \texttt{LensSize=1}}).
% \end{optlist}
%
%   Take care that this length is between the \emph{center} of the glass and
% the bottom of the handle.
%
% \begin{SideBySideExample}[xrightmargin=3.8cm]
%   \begin{pspicture}(0,-2)(3,3.5)
%     \Wishes
%     \PstLens[LensHandleHeight=15mm]{\Wishes}
%     \PstLens[LensHandleHeight=4](2,2){\Wishes}
%   \end{pspicture}
% \end{SideBySideExample}
%
% \begin{optlist}
%   \item [LensStyleHandle (style)]: name of the PSTricks style for the
% handle.
%   (\emph{Default: LensStyleHandle}).
% \end{optlist}
%
% \noindent Its default value is:
%
% \begin{Verbatim}
%   \newpsstyle{/HLReverse?LensStyleHandle_}{%
%     fillstyle=gradient,framearc=0.6,linewidth=0.5\pslinewidth,
%     gradmidpoint=0.5,gradangle=\PstLens@Rotation,
%     gradbegin=Brown,gradend=Salmon}
% \end{Verbatim}
%
% \begin{SideBySideExample}[xrightmargin=3.8cm]
%   \begin{pspicture}(0,-2.5)(3,3.5)
%     \Wishes
%     \newpsstyle{/HLReverse?HandleYellow_}{%
%       linecolor=red,framearc=1,
%       fillstyle=solid,fillcolor=yellow}
%     \PstLens[LensHandleWidth=0.5,
%              LensStyleHandle=HandleYellow]
%             {\Wishes}
%     \newpsstyle{/HLReverse?HandleCrosshatch_}{%
%       fillstyle=crosshatch*,fillcolor=white}
%     \PstLens[LensStyleHandle=HandleCrosshatch]
%             (2,2){\Wishes}
%   \end{pspicture}
% \end{SideBySideExample}
%
% \begin{optlist}
%   \item [LensShadow (boolean)]: boolean value to choose between to draw
%   a shadow for the glass of the lens or not.
%   (\emph{Default:~true} --- shadow).
% \end{optlist}
%
%   Note that if we redefine the \texttt{LensStyleGlass} parameter without
% explicitely require a shadow, there will be none even if \texttt{LensShadow}
% will have the \texttt{true} value.
%
% \begin{SideBySideExample}[xrightmargin=3.8cm]
%   \begin{pspicture}(0,-0.5)(3,3.5)
%     \Wishes
%     \PstLens[LensShadow=false](2,2){\Wishes}
%   \end{pspicture}
% \end{SideBySideExample}
%
% \begin{optlist}
%   \item [LensStyleGlass (style)]: name of the PSTricks style for the glass.
%   (\emph{Default: LensStyleGlass}).
% \end{optlist}
%
%   It allow to change the appearance of the glass, but its main utility is
% probably to be able to define the style of the shadow of the glass.
% Default definition is:
%
% \begin{Verbatim}
%   \newpsstyle{/HLReverse?LensStyleGlass_}{%
%     fillstyle=solid,fillcolor=white,
%     shadow=true,shadowcolor=lightgray,shadowsize=0.15,
%     shadowangle=\PstLens@Rotation}
% \end{Verbatim}
%
%   Take care that if we will use later the \texttt{LensRotation} parameter
% with \texttt{LensShadow} positioned, we must set the value of the
% \texttt{shadowangle} parameter to \cs{PstLens@Rotation} to have the shadow
% rotate accordingly.
%
%   And for better shadow effects, you must look at the \PstBlurPackage{}
% package from Martin \textsc{Giese}.
%
% \begin{SideBySideExample}[xrightmargin=3.8cm]
%   \begin{pspicture}(3,4)
%     \Wishes
%     \makeatletter
%     \newpsstyle{/HLReverse?DarkShadow_}{%
%       fillstyle=solid,fillcolor=white,
%       shadow=true,shadowcolor=darkgray,
%       shadowsize=0.2,
%       shadowangle=\PstLens@Rotation}
%     \makeatother
%     \PstLens[LensRotation=230,
%              LensStyleGlass=DarkShadow](2,2)
%             {\Wishes}
%   \end{pspicture}
% \end{SideBySideExample}
%
% \begin{SideBySideExample}[xrightmargin=3.8cm]
%   \begin{pspicture}(0,-0.5)(3,3.5)
%     \Wishes
%     \newpsstyle{/HLReverse?YellowGlass_}{%
%       linecolor=red,linewidth=0.1,
%       fillstyle=solid,fillcolor=yellow}
%     \PstLens[LensStyleGlass=YellowGlass](2,2)
%             {\Wishes}
%   \end{pspicture}
% \end{SideBySideExample}
%
% \subsection{Shape of the glass}
%
%  The \cs{PstLensShape} macro define the shape of the glass. It default
% value is a circle, as in real life, but we can redefine it for various
% effects...
%
% \begin{CenterExample}
%   \psset{LensMagnification=1.5}
%   \begin{pspicture}(0,-1.8)(4,3.8)
%     \Wishes
%     \renewcommand{\PstLensShape}{\psellipse(2,1)}
%     \PstLens(2,2){\Wishes}
%   \end{pspicture}
%   \hfill
%   \begin{pspicture}(-0.5,-1.8)(4,3.8)
%     \Wishes
%     \renewcommand{\PstLensShape}{\pstriangle(3,1)}
%     \PstLens[LensSize=1.5](2,2){\Wishes}
%   \end{pspicture}
%   \hfill
%   \begin{pspicture}(0,-1.8)(3.5,3.8)
%     \Wishes
%     \renewcommand{\PstLensShape}{%
%       \rput{18}{\pspolygon(1;0)(1;144)(1;288)(1;72)(1;216)}}
%     \PstLens[LensSize=1.5](2,2){\Wishes}
%   \end{pspicture}
%
%   \begin{pspicture}(0,-0.5)(4,3.5)
%     \renewcommand{\PstLensShape}{%
%        \parabola[fillstyle=solid,fillcolor=white](-1,-1.5)(1,2)}
%     \Wishes
%     \PstLens[LensShadow=false,LensHandle=false](1,1){\Wishes}
%   \end{pspicture}
%   \hfill
%   \begin{pspicture}(-1.5,-1)(3.5,3.5)
%     \renewcommand{\PstLensShape}{%
%       \psccurve(-1,-1)(0,1.2)(0.5,-1)(1,0.8)}
%     \Wishes
%     \PstLens[LensSize=2,LensHandle=false](1,1){\Wishes}
%   \end{pspicture}
% \end{CenterExample}
%
% \subsection{Examples}
%
%   We can use the lens for all textual objects and for all PSTricks graphic
% objects (we use here some versions of tilings and fractals, but only basic
% ones to avoid requiring too much memory from old \TeX{} systems, to compile
% the file).
%
%   And specially take care to explicitely position the reference point
% at the left bottom corner and to compute the correct dimensions for the
% \texttt{pspicture} environment (in our examples, we choose most of the time
% to include the lens inside the bounding boxes, but we can choose to define
% them just for the objects).
%
% \begin{Verbatim}
%   /HLMacro?\def\TheEternity_{{%
%   \rput[lb](0,0){%
%     \scriptsize
%     \begin{minipage}{3.5cm}
%       \centerline{\normalsize\textbf{L'\'Eternit\'e}}
%   ...
%   /HLMacro?\def\TruchetTiling_#1#2{{%
%   \rput[lb](0,0){%
%   ...
%   /HLMacro?\def\PstSierpinskiTriangle_#1{{%
%   \rput[lb](0,0){%
%   ...
%   /HLMacro?\def\PstVonKochCurve_#1{{%
%   \rput[lb](0,0){%
%   ...
% \end{Verbatim}
%
% \begin{CenterExample}
%   \newpsstyle{/HLReverse?SimpleGlass_}{fillstyle=solid,fillcolor=white}
%   \newpsstyle{/HLReverse?SimpleHandle_}{fillstyle=solid,fillcolor=white,
%                             framearc=0.5}
%   \psset{LensStyleGlass=SimpleGlass,LensStyleHandle=SimpleHandle}
%
%   \begin{pspicture}(-1,-2.5)(5,10.5)
%     \TheEternity
%     \PstLens[LensSize=2,LensMagnification=4,LensRotation=40]
%             (1.5,6){\TheEternity}
%     \PstLens[LensSize=1.5,LensMagnification=2,LensRotation=-20]
%             (0.5,2){\TheEternity}
%   \end{pspicture}
%   \hfill
%   \begin{pspicture}(-2,-2.5)(4,10.5)
%     \TheEternity
%     \PstLens[LensMagnification=0.5,LensRotation=140]
%             (1,8.5){\TheEternity}
%     \PstLens[LensSize=2.5,LensMagnification=3,LensRotation=-100]
%             (2.4,0){\TheEternity}
%   \end{pspicture}
% \end{CenterExample}
%
% \begin{CenterExample}
%   \begin{pspicture}(0,-6)(6,6)
%     \TruchetTiling
%     \PstLens[LensSize=2.5,LensMagnification=2.5](3.5,1)
%             {\TruchetTiling}
%   \end{pspicture}
% \end{CenterExample}
%
% \begin{CenterExample}
%   \newcommand{\PstSierpinskiInternalColor}{red}
%   \newcommand{\PstSierpinskiExternalColor}{yellow}
%
%   % /HLEmphasize?The Sierpinski triangle is in a unit circle of radius 1,_
%   % /HLEmphasize?so we must define the "pspicture" accordingly: (-3,-2)(3,3)_
%   \begin{pspicture}(-3,-2)(3,3)
%     \PstSierpinskiTriangle{3}
%   \end{pspicture}
%   \hfill
%   \begin{pspicture}(-3,-2)(3,3)
%     \PstSierpinskiTriangle{3}
%     \psset{LensShadow=false}
%     \PstLens[LensMagnification=2,LensRotation=-80](-1,0)
%             {\PstSierpinskiTriangle{3}}
%     \PstLens[LensSize=2,LensMagnification=5,LensRotation=100,
%              LensHandle=false](1,1){\PstSierpinskiTriangle{3}}
%   \end{pspicture}
%
%   \begin{pspicture}(-1,-2)(11,5)
%     \PstVonKochCurve{3}
%     \PstLens[LensSize=1.2,LensMagnification=2,LensRotation=-50]
%             (1.5,0.6){\PstVonKochCurve{3}}
%     \PstLens[LensSize=2.5,LensMagnification=5,LensRotation=160,
%              LensHandleHeight=2](6.2,0.2){\PstVonKochCurve{3}}
%   \end{pspicture}
% \end{CenterExample}
%
%   Of course, as for all PSTricks objects, we can apply to them some
% transformations. For instance, we can project them in the 3~dimensional
% space, with the general \cs{ThreeDput} macro or the simple \cs{pstilt} one.
%
% \begin{CenterExample}
%   \psset{LensMagnification=1.5}
%   \begin{pspicture}(0.8,-1.5)(5.3,3)
%     \renewcommand{\PstLensShape}{\psdiamond(1.5,1)}
%     \pstilt{60}{%
%       \Wishes
%       \PstLens[LensSize=1.5](2,2){\Wishes}}
%   \end{pspicture}
%   \hfill
%   \begin{pspicture}(-3,-0.5)(3.5,8)
%     \psset{viewpoint=0.5 -2 5,LensHandleHeight=3.5}
%     \multido{\nPosX=0+-0.8,\nPosY=8+-1.5,\nMag=3+-0.5}{5}{%
%       \ThreeDput(\nPosX,\nPosY,0){%
%         \PstLens[LensMagnification=\nMag](0.6,0.2)
%                 {\rput[lb](0,0){Danger!}}}}
%   \end{pspicture}
% \end{CenterExample}
%
% \noindent And we can also use the lens on non PSTricks graphics,
% as external images.
%
% \begin{CenterExample}
%   \newcommand{\LouiseBrooks}{%
%     \rput[lb](0,0){%
%       \includegraphics[width=4cm,height=5cm]{LouiseBrooks}}}
%   \newpsstyle{/HLReverse?SimpleGlass_}{linestyle=none}
%   \psset{LensStyleGlass=SimpleGlass}
%
%   \begin{pspicture}(0,-1)(4,5)
%     \LouiseBrooks
%   \end{pspicture}
%   \hfill
%   \begin{pspicture}(-0.5,-1)(3,5)
%     \PstLens[LensHandle=false,LensSize=1.8,LensMagnification=2]
%             (1.2,2.3){\LouiseBrooks}
%   \end{pspicture}
%   \hfill
%   \newpsstyle{/HLReverse?SimpleHandle_}{fillstyle=solid,fillcolor=white,
%                             framearc=0.5}
%   \psset{LensStyleHandle=SimpleHandle}
%   \begin{pspicture}(0,-1)(4,5)
%     \LouiseBrooks
%     \PstLens[LensSize=1.5,LensMagnification=4]
%             (1.5,2.5){\LouiseBrooks}
%   \end{pspicture}
% \end{CenterExample}
%
%
% \StopEventually{}
%
% ^^A .................... End of the documentation part ....................
%
% \section{Driver file}
%
%   The next bit of code contains the documentation driver file for \TeX{},
% i.e., the file that will produce the documentation you are currently
% reading. It will be extracted from this file by the \texttt{docstrip}
% program.
%
%    \begin{macrocode}
%<*driver>
\documentclass{ltxdoc}
\GetFileInfo{pst-lens.dtx}
\usepackage{fancyvrb}
\usepackage{graphicx}
\usepackage{ifthen}
\usepackage{multido}
\usepackage{pstcol}
\usepackage{pst-lens}
\usepackage{pst-3d}
\EnableCrossrefs
\CodelineIndex
\RecordChanges
\OnlyDescription          % Comment it for implementation details
\hbadness=7000            % Over and under full box warnings
\hfuzz=3pt
\begin{document}
  \DocInput{pst-lens.dtx}
\end{document}
%</driver>
%    \end{macrocode}
%
% \section{\PstLensPackage{} \LaTeX{} wrapper}
%
%    \begin{macrocode}
%<*latex-wrapper>
\ProvidesPackage{pst-lens}[2001/01/29 package wrapper for PSTricks pst-lens.tex]
\input pst-lens.tex
%</latex-wrapper>
%    \end{macrocode}
%
% \section{\PstLensPackage{} code}
%
%    \begin{macrocode}
%<*pst-lens>
%    \end{macrocode}
%
% \subsection{Preambule}
%
%   Who we are.
%
%    \begin{macrocode}
\def\fileversion{1.0}
\def\filedate{2001/02/19}
\message{`PST-Lens' v\fileversion, \filedate\space
         (Denis Girou and Manuel Luque)}
\csname PSTLensLoaded\endcsname
\let\PSTLensLoaded\endinput
%    \end{macrocode}
%
%   Require the PSTricks and `\textsf{pst-grad}' packages.
%
%    \begin{macrocode}
\ifx\PSTricksLoaded\endinput\else\input pstricks.tex\fi
\ifx\GradientLoaded\endinput\else\input pst-grad.tex\fi
%    \end{macrocode}
%
%   David \textsc{Carlisle} interface to the `\textsf{keyval}' package.
%
%    \begin{macrocode}
\input pst-key.tex
%    \end{macrocode}
%
%   Catcodes changes.
%
%    \begin{macrocode}
\edef\PstAtCode{\the\catcode`\@}
\catcode`\@=11\relax
%    \end{macrocode}
%
% \subsection{Definition of the parameters}
%
%   \texttt{LensHandle} will define if we will draw an handle to the lens
% or not. It is a \emph{boolean} value.
%
%    \begin{macrocode}
\newif\ifPstLens@Handle
\define@key{psset}{LensHandle}[true]{\@nameuse{PstLens@Handle#1}}
%    \end{macrocode}
%
%   \texttt{LensStyleHandle} is the name of the PSTricks style to draw
% the handle of the lens.
%
%    \begin{macrocode}
\define@key{psset}{LensStyleHandle}{\edef\PstLens@StyleHandle{#1}}
%    \end{macrocode}
%
%   \texttt{LensHandleWidth} will be the size of the lens.
% This is a \emph{real} or \emph{length} value, as all PSTrisks dimensions,
% but as we will have to make computations with it, we store it in a dimension
% register.
%
%    \begin{macrocode}
\newdimen\PstLens@HandleWidth
\define@key{psset}{LensHandleWidth}{\pssetlength{\PstLens@HandleWidth}{#1}}
%    \end{macrocode}
%
%   \texttt{LensHandleHeight} will be the size of the lens.
% This is a \emph{real} or \emph{length} value, as all PSTrisks dimensions,
% but as we will have not to make computations with it, we store it in a
% simple macro.
%
%    \begin{macrocode}
\define@key{psset}{LensHandleHeight}{\edef\PstLens@HandleHeight{#1}}
%    \end{macrocode}
%
%   \texttt{LensShadow} will define if we will draw a shadow to the glass
% of the lens or not. It is a \emph{boolean} value.
%
%    \begin{macrocode}
\newif\ifPstLens@Shadow
\define@key{psset}{LensShadow}[true]{\@nameuse{PstLens@Shadow#1}}
%    \end{macrocode}
%
%   \texttt{LensStyleGlass} is the name of the PSTricks style to draw
% the glass.
%
%    \begin{macrocode}
\define@key{psset}{LensStyleGlass}{\edef\PstLens@StyleGlass{#1}}
%    \end{macrocode}
%
%   \texttt{LensSize} will be the size of the lens.
% This is a \emph{real} or \emph{length} value, as all PSTrisks dimensions,
% but as we will have not to make computations with it, we store it in a
% simple macro.
%
%    \begin{macrocode}
\define@key{psset}{LensSize}{\edef\PstLens@Size{#1}}
%    \end{macrocode}
%
%   \texttt{LensMagnification} will be the magnification to apply to the lens.
% This is a \emph{real} or \emph{length} value, but as we will have not
% to make computations with it, we strore it in a simple macro.
%
%    \begin{macrocode}
\define@key{psset}{LensMagnification}{\edef\PstLens@Magnification{#1}}
%    \end{macrocode}
%
%   \texttt{LensRotation} will be the rotation angle to apply to the lens.
% It is a \emph{real} value used as an \emph{angle}.
%
%    \begin{macrocode}
\define@key{psset}{LensRotation}{\edef\PstLens@Rotation{#1}}
%    \end{macrocode}
%
%   Next, we set the default values for all these new parameters.
% We choose to have an handle of width 0.2 unit and height of 2.5 unit,
% LensStyleHandle as style for the handle, a shadow to the glass,
% LensStyleGlass as style for it, no rotation, a size equal to 1 unit
% and no magnification (so of value 1).
%
%    \begin{macrocode}
\setkeys{psset}{%
LensHandle=true,LensHandleWidth=0.2,LensHandleHeight=2.5,
LensStyleHandle=LensStyleHandle,
LensShadow=true,LensStyleGlass=LensStyleGlass,
LensRotation=0,LensSize=1,LensMagnification=1}
%    \end{macrocode}
%
%   We define also the default style for the handle.
%
%    \begin{macrocode}
\newcmykcolor{Brown}{0 0.81 1 0.6}
\newcmykcolor{Salmon}{0 0.53 0.38 0}
\newpsstyle{LensStyleHandle}{%
fillstyle=gradient,framearc=0.6,linewidth=0.5\pslinewidth,
gradmidpoint=0.5,gradangle=\PstLens@Rotation,gradbegin=Brown,gradend=Salmon}
%    \end{macrocode}
%
%   And the default style for the glass (we only define a shaow for it).
%
%    \begin{macrocode}
\newpsstyle{LensStyleGlass}{%
fillstyle=solid,fillcolor=white,
shadow=true,shadowcolor=lightgray,shadowsize=0.15,
shadowangle=\PstLens@Rotation}
%    \end{macrocode}
%
%   Then we define the default shape for the lens (a circle of radius 1 and
% center (0,0)).
%
%    \begin{macrocode}
\def\PstLensShape{\pscircle{1}}
%    \end{macrocode}
%
% \subsection{Main macro}
%
%   The general \cs{PstLens} macro to draw lens.
%
% \begin{macro}{\PstLens}
%    \begin{macrocode}
\def\PstLens{\@ifnextchar[{\PstLens@i}{\PstLens@i[]}}
%    \end{macrocode}
% \end{macro}
%
%   We first check if the coordinate is given, and if not we choose as usual
% (0,0) as default one.
%
% \begin{macro}{\PstLens@i}
%    \begin{macrocode}
\def\PstLens@i[#1]{\@ifnextchar({\PstLens@ii[#1]}{\PstLens@ii[#1](0,0)}}
%    \end{macrocode}
% \end{macro}
%
%   Then we define the auxiliary macro which will handle the parameters if
% some are used. Note also the usage of the double \verb+{{+ to have only
% changes of parameter values for this specific object, as redefinitions
% of them must be local.
%
% \begin{macro}{\PstLens@ii}
%    \begin{macrocode}
\def\PstLens@ii[#1](#2,#3)#4{{%
%    \end{macrocode}
%
%   After that, we can set the values of local parameters if defined.
%
%    \begin{macrocode}
\setkeys{psset}{#1}%
%    \end{macrocode}
%
%   Now, we can start the \emph{real} code. First, we must be able to use
% PostScript expressions as coordinates.
%
%    \begin{macrocode}
\SpecialCoor
%    \end{macrocode}
%
%   Then, if the handle is not suppressed, we position it at the required
% coordinate, with it specified rotation.
%
%    \begin{macrocode}
\rput{\PstLens@Rotation}(#2,#3){%
  \ifPstLens@Handle
    \scalebox{\PstLens@Size}{%
      \divide\PstLens@HandleWidth\tw@
      \psframe[style=\PstLens@StyleHandle]
              (-\PstLens@HandleWidth,0)
              (\PstLens@HandleWidth,-\PstLens@HandleHeight)}%
  \fi}
%    \end{macrocode}
%
%   Now, we can draw the object at the specified position, but surimposing on
% it a shape which will represent the glass of the lens, and we use the
% powerful clipping mechanism to eliminate the parts of the object not inside
% this shape.
%
%    \begin{macrocode}
\psclip{{\psset{style=\PstLens@StyleGlass}
         \ifPstLens@Shadow
         \else
           \psset{shadow=false}
         \fi
         \rput(#2,#3){\psset{unit=\PstLens@Size}\PstLensShape}}}
%    \end{macrocode}
%
%   Then we draw again the object, but with the specified magnification.
% It require also to recompute the coordinates where to put the object,
% according to the magnification.
%
%    \begin{macrocode}
  \rput(! 1 \PstLens@Magnification\space sub #2\space mul
          1 \PstLens@Magnification\space sub #3\space mul){%
    \scalebox{\PstLens@Magnification}{#4}}
%    \end{macrocode}
%
%   To finish we close the clipping mechanism and the \cs{PstLens@ii} macro.
%
%    \begin{macrocode}
\endpsclip}}
%    \end{macrocode}
% \end{macro}
%
% \subsection{Closing}
%
%   Catcodes restoration.
%
%    \begin{macrocode}
\catcode`\@=\PstAtCode\relax
%    \end{macrocode}
%
%    \begin{macrocode}
%</pst-lens>
%    \end{macrocode}
%
% \section{Picture of the actress Louise Brooks (in EPS format)}
%
%    \begin{macrocode}
%<*LouiseBrooks>
 %!PS-Adobe-3.0 EPSF-3.0
 %%Creator: (ImageMagick)
 %%Title: (LB.eps)
 %%CreationDate: (Sat Feb  3 22:58:25 2001)
 %%BoundingBox: 0 0 188 216
 %%LanguageLevel: 2
 %%Pages: 0
 %%EndComments
 %%BeginDefaults
 %%PageOrientation: Portrait
 %%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.
 %
 /buffer 512 string def
 /pixel_stream currentfile /ASCII85Decode filter def
 /DirectClassImage
 {
   %
   % Display a DirectClass image.
   %
   /DeviceRGB setcolorspace
   <<
     /ImageType 1
     /Width columns
     /Height rows
     /BitsPerComponent 8
     /Decode [0 1 0 1 0 1]
     /ImageMatrix [columns 0 0 rows neg 0 rows]
     compression 0 gt
     { /DataSource pixel_stream }
     { /DataSource pixel_stream /RunLengthDecode filter } ifelse
   >> image
 } bind def
 /PseudoClassImage
 {
   %
   % Display a PseudoClass image.
   %
   % Parameters:
   %   colors: number of colors in the colormap.
   %
   currentfile buffer readline pop
   token pop /colors exch def pop
   colors 0 eq
   {
     %
     % Image is grayscale.
     %
     /DeviceGray setcolorspace
     <<
       /ImageType 1
       /Width columns
       /Height rows
       /BitsPerComponent 1
       /Decode [0 1]
       /ImageMatrix [columns 0 0 rows neg 0 rows]
       compression 0 gt
       { /DataSource pixel_stream }
       {
         /DataSource pixel_stream
         <<
            /K -1
            /Columns columns
            /Rows rows
         >> /CCITTFaxDecode filter
       } ifelse
     >> image
   }
   {
     %
     % Parameters:
     %   colormap: red, green, blue color packets.
     %
     /colormap colors 3 mul string def
     currentfile colormap readhexstring pop pop
     [ /Indexed /DeviceRGB colors 1 sub colormap ] setcolorspace
     <<
       /ImageType 1
       /Width columns
       /Height rows
       /BitsPerComponent 8
       /Decode [0 255]
       /ImageMatrix [columns 0 0 rows neg 0 rows]
       compression 0 gt
       { /DataSource pixel_stream }
       { /DataSource pixel_stream /RunLengthDecode filter } ifelse
     >> image
   } 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-RunlengthEncodedCompression or 1-NoCompression.
   %   hex color packets.
   %
   gsave
   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
   /Helvetica 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
   pixel_stream flushfile
   grestore
 } bind def
 %%EndProlog
 %%Page:  1 1
 %%PageBoundingBox: 0 0 188 216
 userdict begin
 %%BeginData:
 DisplayImage
 0 0
 188.640000 217.440000
 12
 131 151
 1
 0
 256
 000000
 010101
 020202
 030303
 040404
 050505
 060606
 070707
 080808
 090909
 0a0a0a
 0b0b0b
 0c0c0c
 0d0d0d
 0e0e0e
 0f0f0f
 101010
 111111
 121212
 131313
 141414
 151515
 161616
 171717
 181818
 191919
 1a1a1a
 1b1b1b
 1c1c1c
 1d1d1d
 1e1e1e
 1f1f1f
 202020
 212121
 222222
 232323
 242424
 252525
 262626
 272727
 282828
 292929
 2a2a2a
 2b2b2b
 2c2c2c
 2d2d2d
 2e2e2e
 2f2f2f
 303030
 313131
 323232
 333333
 343434
 353535
 363636
 373737
 383838
 393939
 3a3a3a
 3b3b3b
 3c3c3c
 3d3d3d
 3e3e3e
 3f3f3f
 404040
 414141
 424242
 434343
 444444
 454545
 464646
 474747
 484848
 494949
 4a4a4a
 4b4b4b
 4c4c4c
 4d4d4d
 4e4e4e
 4f4f4f
 505050
 515151
 525252
 535353
 545454
 555555
 565656
 575757
 585858
 595959
 5a5a5a
 5b5b5b
 5c5c5c
 5d5d5d
 5e5e5e
 5f5f5f
 606060
 616161
 626262
 636363
 646464
 656565
 666666
 676767
 686868
 696969
 6a6a6a
 6b6b6b
 6c6c6c
 6d6d6d
 6e6e6e
 6f6f6f
 707070
 717171
 727272
 737373
 747474
 757575
 767676
 777777
 787878
 797979
 7a7a7a
 7b7b7b
 7c7c7c
 7d7d7d
 7e7e7e
 7f7f7f
 808080
 818181
 828282
 838383
 848484
 858585
 868686
 878787
 888888
 898989
 8a8a8a
 8b8b8b
 8c8c8c
 8d8d8d
 8e8e8e
 8f8f8f
 909090
 919191
 929292
 939393
 949494
 959595
 969696
 979797
 989898
 999999
 9a9a9a
 9b9b9b
 9c9c9c
 9d9d9d
 9e9e9e
 9f9f9f
 a0a0a0
 a1a1a1
 a2a2a2
 a3a3a3
 a4a4a4
 a5a5a5
 a6a6a6
 a7a7a7
 a8a8a8
 a9a9a9
 aaaaaa
 ababab
 acacac
 adadad
 aeaeae
 afafaf
 b0b0b0
 b1b1b1
 b2b2b2
 b3b3b3
 b4b4b4
 b5b5b5
 b6b6b6
 b7b7b7
 b8b8b8
 b9b9b9
 bababa
 bbbbbb
 bcbcbc
 bdbdbd
 bebebe
 bfbfbf
 c0c0c0
 c1c1c1
 c2c2c2
 c3c3c3
 c4c4c4
 c5c5c5
 c6c6c6
 c7c7c7
 c8c8c8
 c9c9c9
 cacaca
 cbcbcb
 cccccc
 cdcdcd
 cecece
 cfcfcf
 d0d0d0
 d1d1d1
 d2d2d2
 d3d3d3
 d4d4d4
 d5d5d5
 d6d6d6
 d7d7d7
 d8d8d8
 d9d9d9
 dadada
 dbdbdb
 dcdcdc
 dddddd
 dedede
 dfdfdf
 e0e0e0
 e1e1e1
 e2e2e2
 e3e3e3
 e4e4e4
 e5e5e5
 e6e6e6
 e7e7e7
 e8e8e8
 e9e9e9
 eaeaea
 ebebeb
 ececec
 ededed
 eeeeee
 efefef
 f0f0f0
 f1f1f1
 f2f2f2
 f3f3f3
 f4f4f4
 f5f5f5
 f6f6f6
 f7f7f7
 f8f8f8
 f9f9f9
 fafafa
 fbfbfb
 fcfcfc
 fdfdfd
 fefefe
 ffffff
 )Ya%%p[dh;k2k[bkNV9rkiLjaiSrhShV[2Frn@J0hYuJ&i7uu6dG*UAlKda"l0%3kjlGCUf\
 +ct_nWq$_SX+$\$E-8VjN[-LOsntFD,H0G_;3VZ,bP^lK7C#o'Z&AqYU*]o(i:["8Vfjr;$48
 q>'g\q>'maqu$Eep\=LTnE];uio9%]kN1dai83;Hh:pW9f`'Gif@em3gY:H6eBuUgdb!72j5o
 IZg=FWk\uVQdMM-D'H$XgfIscK_E,BE(A7/\I>$"^,=]ea-?"RqpOKc^NgZ.Gip&=Rcp\b'cr
 Up<eq"X[]r:g<gqYp@Sr:]jYp\"(Elf@*djQ>Udj5JnNgY:E5e^MsodF-Rsg"=p-e^Dghbg=k
 oiT0%WhUKih\>u-ZKlqERCAhcKA7K%T>[%,/,?@cB<)cdo=&r9t:f14q>&ob(]$9*qj65q$nF
 ,i9p%7kIo)A7Vq#L3gpIb5VqYL*ep%A%Pp%%V?lKIHrlK[TqjPetNgY(0,dEp4bd+$\$e^W$m
 b/V?9\%]u3dE0&-Obe=#ARJeK=BAO&;c6Ii=BAR)<W5r!<DlZm:E<2)8kViP:Jk+n92\r%DMF
 prg>hYpo^VD=o^hYDrUBXWr:W;Jq"X[\qXjFQp%7hFnEoQ-m-X3+l0%-ch:pT3dE]tZb0/,[f
 $DXcaMbj*\@B/d_n`XUR<!(O>$+s6?i=%.<`W4"q+Uoe9hYIX!D,f\8-):Sr_!o';,9qdB7lV
 gb1Pb>md]o?o'u5Kmf;kOoa(3^p%J.Sq"X[`o.KV(nF,].lKdj)m-<itiSN>@da-(V`59F3b0
 A/Sb/_B2[Bcg,QA^<:Bjk1H<;oeu;G^"ZrCd5b9))1*9hS/S:/4MX9M8#P9h\/K7nQKM:Kh=d
 R^UZ,md9<0naQPH!V#USo+L]foCMVHp%J+Rq"++JnaQ#9mf)K&lgF3.lgF'"iSE2:dDs2@]tD
 (r`5fp:^UC5<S=#7]CLULJ:fUIn;Gp@e9DM?]9DqI)84Q*;7nH9C770C/7n?0?8P2fX:In#O@
 s!j@e`Z;brpBpVmdBQ5q=4^\oCDJDo`"MFp@n1LnaQ#8mHs6)lg=01n*]f9lK7*^f[S!\^Uq(
 h^;7Lq\?DWjKmdT@<DcXm;G^:f8k;NH9MA&Nr^m)]r_3Yl9M8#N:/"8Or^n"u9hIlE84c?A84
 H'?7RBXD;,LM<R(qD>r9OLPn*g)B!;$0[%J05bp%J.MnaQ#9md9E@l6#?YmI0Q5n*B)pin`2*
 `PT<u[C*HLYcFI\JT5@.=&Jrl!)3/Zr^Qu[8G5XS8-)4Nr^QlW!CfQX7K,dX84`_O%o,nu>]c
 LXki;0rmdT<*pAXL]nF6GI#Oq6Qo()DEo`"OhnF5o7md9B-rTYHimI'H.mHj#tjP\eHd`B8>^
 V.7JPD=I$A6iA?;bm<b!D,fW8cD3\84`GG!D#c\8,bsY7n<PJr^HcT'1YP`84H0C92fYfWmp:
 ljQl'ukl1&Mn-SXTnF5u=o(2MGrq?Qbn*f]3rp0XMrokNilg4$%m-Norj5JhFcGdT5[\oRKJ9
 >U9?<pi59h@nT7fZ$S8Gu'N8H)-X7K>sX7f>aX6psI4rC.;f9i+PX=`T;&f\kfSlL=!8n,De^
 naQ&<o()DEo`"RknaZ,;mdBK0lK\B5*U;tVl0[j"iS`YNf@/*j_5`H;B4b[^>ZXj#91_YP7K>
 mJ7fZ*R8,bsY77I2Fr^HfSr^HfU&k>2U8Ou?H>\JVodH'TRmd]`5rpTdS"nD0SoCV\Sp'UE_o
 ()>?n*fT.lMg#blK[^&lf@$aj5JY<`O2CrEFN3[?!CB-9E%Hb7n6$;7e&tK7e]FP7fGgW7RmA
 Gr^6`Tr^QlW&4f8[77Kg?9hnrHVUb%nlLOrBrpTgT"7bsQoD/"aoCDGAnEoT.lMg#jlK[^!jl
 GRah9NX(Jo>4/?tj4\=]8*j9LhWF84H$;8,5XQ8+B(J70#aS7K,[T6iBIg7n6*@9LqWE:Jt%b
 =(QZbk321#mJcPPmfi4Mnac8BqXb*co()>?nF,f4li$)jkND!gjl4k5Z^cGV?XdSY?!'rr779
 R67S$-C7RT[8q*k9Q!CfQP7K,dU70,eEr^HfS"[bXF6q'QC7M.mL5!_Y29heYo@#i1Xkj.X'r
 pKdS#Oq6Qo()DEo`"OmoCMPCnaQ#9nF,c2li-/_k2k[`iRu2TJT"dn>$bB2:ej\VrC@/^84lH
 B6UXE>7K,dX7Rm)?r^HoW7K,^S70,eEqa1BP7/fUc8OuBA7S$6M93YM;RCV,:rp9aSmf)Y[nF
 5u=o(2MGrqIl6p%7kIo'u8;mdT`4kND*qj5JqNe$b<H?<LB5=]\Qr91hfJ84Q2J8-2:M7JT@I
 7fGgW6q%#Aq*b$G+@8C^6psI57S$$=77Kg@9iOqbA;$PkmHrs&qX*VAo()bL&G#Gbp@n@Tp%7
 kIo'u8@n*Bu:)X6SUlK6U(RXJLC<E)pr;,'YU91hcH7n6$=r^[,]7n,rC7/9:Q77I2Dr^6KLq
 *Q8k6:4./77Ka;7n,p:84uWP:/+i,J"tBSkjeB9nF>o:rUDK1oCVbNq"==PoCMPCnb;YClg4'
 +lK@?jaI7Hk>u=R'=B/-i84lKG8Ou?A7fGm\84Q-=7JT@I7K>mV7/]LK7/91m6:+%-6q'R77n
 ,s:7S$-E:Jjqe>@iSre`cPloCVJ;o)8(^o(2MIp\=a[!V>p]nf7;oo'l,4j6"n-RqbYf6rR/k
 >#e?l9M%fH84Q2K7fGmZ7RfiB7/9:N7/fOS6:1K8pHfog6psI57Ros<7Rp!@8ki2];cd4HR^_
 8FlLOT7nFHPJ#P.KYp@n@So_nA!o())8o'Yi0ki;3TSpOX8:f1+j<`2X`84rhNrC.#\77Kd;7
 RfiB7/97P6q%#Ar^-EJpHf$N6psI57f,^h8P2WO:Jk4sAUL'!na5l:mI]uJnHJLTo_/%Sq=>E
 koC;,1md0&`RV>Yi85E&];c$.Y7Rp#F7KPtG7K#[U7I`eE6iKCP62<kC5mTeD6UX=27RfuG8e
 =`q:fL\'>A8r0lL=60nFQ5LnHJLTo_/%Sq=>Bop$qD;nDVX2NF5[[9hnA_;bftW84WGD!^f@E
 r'p3Er^6ZO!C9$I6MWnR6:+%-6q'R792#7Xr_!et<)Zh'>?YTZT@E5mme$#>rUC'^oCVbNq"a
 LtnF>r6o'=GqMd8V<92/8\;bp"V84Q$3q*b?P6U^iAnO3@D!CB-P62<kC5m]kE6UX=27Rg'Fr
 _4&"9M7lP;,ULt>%V/n^>n>Dq!R_OnKRPqo_/%SoCMPCnaQ#9p$hD@j6E[mAl_Jo9MA/X9h\,
 J7J9.F6iKIS6UUi>q*XsE!^K":r^$WO62j4P6:1Z;.R$'`6q'R677p3H9hnDU8kr5^;c6Oq>$
 l0CaP?:Qn+#r=naQ)@p@\.RrUC]nn*f]8lL+5k^jo`m9LVKI:f(%`8k2>K6hs.G6NKSCr^6ZO
 q*XsE!^K%;r^$WO5lO(N5sbK8"$Sq86iKIk6V0mD9he;S8ki)Z;c6Op=B]*eV8VQ`md^;I#k@
 HWp@\.Rn*g8F!:TpT(?b8T\rp8h91;3>:Jjn_8k;E>6:!q)q*b$G!(?fRrBg<Iq*G*J62a+N5
 sYE8r]pHI!C/sK64-:V92//U9M8#R;#X?(<*!7-D1AG7k4%s5o^hYEo`"Ocp[7JKn.tK\mHNa
 #d?\]F7nQ6>8PMrR8P2NC7/fOJ6hs(J6iKCQ5sb$.#=:aE6UF+*5kmYE63'CP63BeO9MYR_4&
 /CA:Jk"f;c?n*AS6h1eaW/$o^q_Fo_/"Qq!IM<nF5l4lf[6_Uhj%'7S?<C7nQKL8P2QD6pj=0
 7/94G630G@r^-TMlpCh@5sY65r^6`Rr^72a8kVoU;,U7g92&&U;>sKG;-RO8E0e#tn+$#AoCM
 VJp@n@Ilg=--lKIBme&$H/84l9?84Q*?:/FYW84NPG!(H]Mq*FsGr]pNLq*XgC"%,C@5lO.M6
 if_Fr'VPo7Rp$C9i+_d;c6@b9MJA_<)cRrA6`hsS(d5snc&,*p%J.Spugl*lKI?ghpecr?;![
 X6UO=57S$<O9LqZB6UF.-7/91F62j4M5lj59q*XgC"%,C@5lO(N6UUi@!(6`P&OSuW84H-C:/
 Fec;Gg1^9Me^f<\[fc>\Ir%^Zb"Po()DFp\4IYjQ5Rfjl,%L[Y&Ql8O,^35t=L:8PMlK7R][2
 5s[h)q*OmCr^$WO62j.F6hs.L70H"G6:!m95lj;=r^.)[5sR_&6q9d97S-9Lr_POP:J4>V<**
 .,=]JI4?=T\jl0e*4oC_kPq"a"<i9]d`h9;4+=%u(L7n6!96q9pG9hRuG779NB630G@rB^NN6
 2j4M5lj59q*FgD$q*HM6:+%,6psC06:1Z;pd4sG6:+(084?$?92//W:K(%^92AJc<*i^/=BSs
 JJC3WKmeZ\HqY'[YjR2$ll.jq+GZmX-5X7_*779U:9i"JU7n,p8qEt6K!^T+=r^$NK!'g9Fq*
 YTZ6psC06psI26UF-=5la1E6:=+*6:41277Kg?9MSAZ;GTqY:/Y"h>?=j.>$Yf`]\D];p\++O
 p@n@Dmc<Kni6SK48jc'96q0O377^*J:J=AN7R]`D6NBOR6NKM?r^$NKr]^BHq`k0J62<tV779
 O26UX=26:1Z;r]p9G779L16:+%-6q'R98k_uU:f0t\8ki,[;cct!=Bf'>B:m6)lgj]=p@n=Vk
 3_?lki9UK=@ktS7R]d46q0dD:JOPR7n,rF6jZ:M6pj:-5s[b$r]gBGrBU<Iq*b<P7/]IR6q$r
 =r]p9H"%>UG6iB>F77B^<92/2Z:ejYU928;]<Dugs>$YNEL9o\$nFZDHp\=RIl076lijFJ<7R
 fm65XR_'7nZTP9M%cF7R]a66q'O677BU36:!n&5lO"I4p+&85sbK:!(6QN!CK6Q630G@q*FgD
 !(HlT5XRk(5t".27nQKP;,9nZ8P)QM;,pRn;cd75@X+NllL=H@p%S7WlK.<lk1ZGI9LM?>5=%
 b*6q9mE91_ZE7n3GGrC-lX6pj<?62j.K56sG=5sdn*6psK=6jQ.I6:+%,6pX-<6N0@E6pF%)5
 t"+07S-<N;GBkY8Ol?G:fC@n;,gb.@W@:=jmVd9p\=OZmc*Qpj3<Bd846!>5sn4477^'E84H'
 =7n3JH!CfQX7g;FO6UF()6N0:M5R9S@6:4.07RfoC7LDRQ6psI47RBF/6iKIR7JT=P6::`?!^
 f:?r^7Yn85)iY9MA)M7Rp*I;-$ar;-.".CilQ0m-t#L)u9@#i9TO`_g#'G5t=F05t4+.84lHC
 6q'U87fGg`7Ros>7n,p76:!p:6N07W5X7\(6q'R87nEGG#=qBU7Rfm=8H(sZ6psI47eoG<5sd
 t.779I/6pj@285)iY9MA)M77KmF:KL_!:fCFtBP*U]l0\6@q"adNiT]ObZ=6j(77BU477B[87
 n6*@7n<>Dr^R/^779L06UUi>r]plY6UX@584cEF84WVJ#Y.HV779O47nNJE"\(sL6:+':71Va
 P5t"+07S-9L;,0hZ91o1T.8NiA<)QXr>%22t`oQmbrqQ9akMPC\g87tG7R]a66q'O67Ros>84
 Q2E7Ku@Q7R]^46N0@O63feB6UO717nEVN!D#`Z7L2LT7R][377KiD6j?(K7RTR06iKOQ6jQ.I
 6pj@17nHDR:'"$]rCS&*;H6[o;c[(0A9k`>oC;eVqu#a?jl4j];b0>GrBp`V77KcF8+T1R779
 L06q%#Ar^$cU6UX@48,YsY8,Ga[779L16q'T@6S:bq779I.6UaF36UF..77KX36:4.184lWP9
 h\5R91hrV<)can<EWR6D5YVHo)AOsrT`V-j3s/f7n#j76UO9@70#gU7fc(JoL8pO6pjEB7/K=
 ^6q'R87n?0@7Rfg87Rfg7rBgTR7K,^Q6P2^T770@,6:=716:!q+7S#s9r^-`T7S!AN+&#=#9M
 e\f;GpIq=^5O+_!UdkqYU3PkM>%=KhOm'7/]IQ7/fUY7Ros<77I#A!C]HV7KQ"H6iBIQ7/fOZ
 6psI57Rp!>7f>aU7fGdV6UUi@"%GaK7K,[n6UO706U<t(6q'L15sdt/84Q-<6psI57ncVU9cm&
 %8kVrY<)QRl<`WI7Nje9Hq>1!djm(X[aaHiP6q$u@"%5OG7K#[V77I#A#=M!L7Rfg77/f[T70
 Q(I6UO70r^@/`7n6$;6psI46q$uB<(',E7n,s:6psC06psC.5XIh,6pj:.6q'R97n,p877Tm?
 8k_rR91hcJ:/b(h;,UCo?=8Gcjn/?Gr;GjJh;cS"9LhK<6UF+,6UX=277Ka877?r@#t.3N7Rf
 g86q9cH7fGgW6UUi@r^?u\7R]a67/]RQ7MA3Z7n,s:6pj:-6UX=/5X7V&77I/C4@;J+7R]^57
 7Tm=8P2ZM91_ZG9i=ne:f11l?s\&Fg[Y%8qu#RCg#'Y`76j7.6UF+,6UX=277Ka877?r@!^oF
 Fr^HoW7K,gV7KZ(J6UUf?"@YaL7Rd8D#=V'N7Ros<7fGgc6pj:-5sRe)6pa.(5stQ=/OMij7R
 ]^46q'R87Rp'D91h`F852u\;,C+g<FK*LNRR@jq"X[Il/C41Bh:ho630G@qa:HR7K,dU8,bsa
 77BO16ps@.6U^oC!C]HV6j,eB6UXB@7L)@M6pj:-77I2F!_#LFq*P'J!CB-P623hs77B[877B
 U67nQEJ91_ZH9MSG_;Gg7j?!h>u_#=$$q"j(6hUKDW84<GD!CK6O6if_FqF1o_779O26q0U46
 UX@47fGjU6j5kC6UX@3rC.5b6pj=.6:=727Rfg77/9.M6UUi>r^$<I-q-Qo7R]a677TpA91h`
 F8P;fT;,L.c:K14rEO#*(pA"LDin;_rCe4Lk!CK6P7/]OT7RmAGr^7)\6UX@47RTU47RmAGrB
 pcT6:4+.r^?rZ77BU3r^$WR7/]OT6q$i;!(6`PrB^0GrC-]R$q<`Y8Ou?@8P2ZO:f.-e&Q2>$
 Au=qapA"LCi7?5kD+R%m630G@r^?QNr^6cS6iKCV6UX@36UO9?7K,[U6UUf=!CK9R70l:L6UF
 ()6UO9?70#aL6N07O5X>*3!(?cS"@PUF77R8H"\(sP8P;bU:(gB%9i5>jl14NAq;U>_cG=?i6
 iKCQ6UUi@q*bBR6pj??64#qE6UO.*6:411r^?ZO"@>C@6U^oB#t.-I6:!n(6:40?70#aM6N0:
 M5kdVO6q'O46UO717JoUn7n6-C92&&S92A2V>En(5p%S:BiRQ/dC.^tp630G@r^6cV7f>dR6i
 fYBr^$iT5smt(5X@a87/fOY6:=1-5s[h)rBpoY6:!n&5s[k+r^?fTq*P$Gr]gHJq*G*L6iBCR
 6UUiAr^Ikt7n,s<84cEH9M/&R:KNP1m.C#Iio/G0\7A-#r^$WQ6iKLQ7KGqHr^6`Tr^?]P#=1
 [D6U<t(6iKLQ6O6"F6pj7*5X@d:6j#eD6:(T9"$o7@7/fXN6N0:M5QO)6pd,0P6UX=06UL]?!
 _5dPr^@Vm84cEH9i4Y]</K;to_/(=iRPuU?q*]d630G@r^?`T!C]HV7/fXS6jQ.I6:4./6:+'
 <6ifYBr^$fX6U<t%5stW>"%,CA62j+O5sdq,r^HWLr]pQM5lO"C64ZFN6psC06:XO87Ros>8O
 WPH*_/an92/2T92:,jn+?>Ki8;i"[;nN-7Rfd46:F=1q*kES6ppo>!(6QMp-JdG62j+W5!_Co
 4@;M$69d\#r^6`Tr^-]Q6M<\R6:=:46pj=05X@_(7/TLP7KH"Lr'_Aj84Z?J91`'&g%"b0q;1
 &Wah)sk83m,?!^oIFq*kES6ppo>pd=dBr^$KJ$pm6C5!q\%5sIS#6q$r?!CB-P62<bT5sn%.6
 UF+,5X@_(6q$uBrC-iY7n3GG*C`Oi8PMiL;fUFWp%S:;i7-#iP$(@A6:=716UO<<7KQ"H6iB=
 O6h*MA5mfkB5<h7p5Wq:s62a"N5sdn&4T7\K6:1Z;q*5BR5sn"*5X@_&5sdq+7/TIS7RmAI!C
 fQX73+if84ZEI8lK]Ylh1#Kgu-c0bc5hg84Q0@7RBF0pdG3O6iB=O6hs(E6iB=M5QX/45Q3qU
 6:4+,6UO1-6pX!86NKM?p-ApJ5sn"+5sds;64H:M6q'L377Ka:84Z6?r^@er7n6$A8kN$#dcg
 E"qVL,]d*TIlG#(Xt7Rf^2pI,*N6iB=O6hs.G6iKFO5nQ@I6:4./69mk+77Td56V0j;r^-]Q6
 N0:H64#kB6UX:.6UX:/r^%&]6q'L377Ka:84Z6@7fGgr7Rom>8kDp!dcgE"qVU)[da6(>Q<?j
 G6:=.,7eoFR779NA63'CA7/fRP64Q:J69[Lr77p0?4$5r&7/fOS6:1B3)F$MT6pj=0779O15s
 [h*770I277Tm>8Ou?@r^@bq7R]m?85aBUlhC5Phq6Q2d*'/)DHB1l770B96ioeF6iB@H6hs.L
 7K,[e6UO.)6:OC49itk3;*I!*69Y<8!CB-P62<_G4[8m3'LP8W6pa1*6:=706UX@584cBD7n3
 GG)b*7f84QNrfC/J0qqfoUf[%[W[tJ?d7Rog262<nM779NA63'CK6MX%K7fGgg6psL68lA\nB
 6AlVBMC`Z6TtE9!CB-P62<Y^4$Gnq5X7V&7RTR/5sdt.6:4.07n?3D84Z5I72\Ze7T"0Ynb;k
 Vg"G$0d`TA9P'(/$5=Ie*r^$NM"%,FB6iKIT69md7675,g77Tj777Tj:77Ts@92/)P8kr8b=^
 YrcJ;K;WP]gOs6U3n(6:1Z;!C/pG5Q3nK5sbK:q*PBR6UX@47n,uI7fc(Kr^@\i91VNQFlMod
 qYT%$g"4]s_nDq,G#:Ut5l3tK70u@M77BU36:++0r^7u"77KR27Rfg885!2tCN=TGJr#JMPaS
 ,=W2m%tOF0\k5X@X45QF%D55mhH5lj;=q*PBR6UX@47n,uI7fc(Kr^@_l9hS&[HfXeoqYT%#f
 @83k`4r[SN*J_@5skB9!_,XJrBp`V7n,uI73k8h6:FF=:/P"nBQ8N[PFA2BV5L;oY->1:\?r6
 %A5,?U5!M=35la.E55dbG5la7I6O?(H6q'R87Rfm<rC6cT),Eq"=bZ&4qYL*Cf@/*kahtm"X-
 d<_7mTH>7/]IW7n#g56UXB?7K>mV6mbH!<*NgECP7_<VlmA8]!f)X\[f5Y[CWcPVgDT;5<_:t
 6UO1+5P[GC5<o-4r^$<G"@GRG7S!2B*(Wgs9NdPCq>1!dg=F]ubfI]:Z*0g98P)6:77I)A#t@
 ?O6UO727n#oH7k-ts77KjD<F'0NCl"7HWNWV9\@oVk^:h.h\%K)XY**a+69[Ru5s[b#55@A@5
 Q3nK5sb94"@GRG7S!2B*_B!p9jXU]qYL*eg=Og"bK%H4Za$HS<_l+R7Rfm<r^[#\r^\b684Z<
 E8P2TJ8kDNA7RfpC;cm4-A8QXGMij?rTqnTfYdCmL]X>DVV294g5<_7o4oRS=55meF5l!\P6:
 4.07Rop;77I/E-V$Zu8Oup!]^kjpqu#$occjJI]XP#BVL`,Q6qKg97Rp!A8kVlR:]+&g;(GI<
 91ME=6UO=89he;Y=^u5fH%Lj1Ng#s.XL#C=XLY=2RYkNA69m^s4[&L&r]gBIq*>6P6UX@47n,
 uI70,kIrC:!]:1o./q"=O^rQrj5a2>QtYG.SZJR_SE8jYm577Tm?8lASf<``=%<*37(<DcF[6
 pj:,6qBsD8PN)c?=IVgGCtR'MN=$kSXQ1UTW"NNDbEVh5sIV#6hrtG4oml4r]p9F#=:dG77Kd
 :7fGgW7RmAI*(EIuFHYkdoDAIacH3u>^::>CSXbde@oQ&h6U^lA2+C)5:KLh)>[LZ;>?Os);+
 j;F779I-6V1$L<aK?QFb#=,P*qi0S"?@NW2m,-XI4cH9gCl@4odhC4oRVG5<o-4r^$WQ6iKIV
 6:4.07fGmY8P&hN$:[EM:IeTE]&`__rqm>K_Rm:aY,.\RPDXNn<_PtMr^8h86q'RB;-[[AAnb
 a^@9uu29h7T<6ps@-6:X^J=^l)bIZBkpXKf+=[_'>a\[oDc\Z;9IAPY]]6:!p54TR`1r]gBIr
 ^$NM"[bXC6:40>7K#[`7n6$;7S7TsddR,/rqoR,]!JN=Un*j5O,%pk>#%OV779L06UX@9:0hR
 JDfp#:DeWHQ8k2686UO1+6:FF=;-."3Dh*h6SuAj![CNue`5BF,^U^V1F]Uso3B0"o4TI\F5P
 dYE5m9SA5X@_(qa:l^7Rp!@8P33JbNeg"rVl^B\?i<:VP9WMQ'@8XEFVs=9M%Z?6UX=285*?,
 E-d1iJqA;]<D5qQr^%kr5sdq,84cEI;-@CDH\RlaYI(aI^Ve%,^VIRpXHn-@;Fa,Fq*+dBr]g
 WQ5sR\$62a+O5sds96i][T7LDXW94)kFj7;j?s8MsGZEUF0Vl$8aSXl..K6:X%;bfkO6q0X78
 5<T6H&%`TP`prG?;X?c6ULc<,!nU^84cKO<**.%@V^=LS#<Hs\A6,'`5KR/WLSca=$\f+q*"g
 D5Q3qI62a+U6UO706UX@37f>ac7n?-=7S-6lO3-tdoDJXfrD0`)Z*:C5XK/1pURd^.F^nQP8O
 Z';7R]a>A9`WeUoC,`Q[rpV:e4&D5sR_&6:!e,=(#E=;GKta=Cl]7SZ&a%_8O@6`PB7!Y*s`D
 84*,:rBU?Jr^-TOrBpZT7K,dU71Mj[7n#j<9mibnrVH<gr;Q[H]">Vf]"#2WY-4t-UmHUI>Z4
 3^6q0U56r7`SO.`eeZEU0fHtleX8k)*25lO(l5$)iSE*Q14<)ct/F,-3\WNs.Pa3)K?^q6tQO
 DR`Uq*4jDr]pWQ6:!p:6N0=Q6q%#C&k#,T6UjU:77KsJOhC/^p\b'crr,^2`Q-!:_7mUl\$`K
 AS:YN^;b05B779I9>C;d4ZGOSo]!%Z]G%"9B7mT=(6:4(8FIJhT@oH9+=^Z#kMNs[4Zb+)sd*
 B_S_S*LYLLEdM5Q3nK5sbK:r]gKM62j1O6UUi@&jnuP5X\+377U*PW6tD:n,*.Zrr-!Dbfe2P
 a25R"[^*$7SVD,k;b'/@6q'O8>)]8\_Sa=0^:gb<KPspc8OZ!45t+CIE/Ta&@8p-5B6/]cPae
 GP[_Tr,c-FY]b/:luS9@n!3^#bk4[;+.564#7r^$'A%m`]V4\8IDB>*$jq=spgrVldtda6=cc
 ,ml<\@&QAVk/ciC0F8!77Ka:<G@u0]?ACAb/VH8WKhpA<),tT7n6-E<aTEG<`WaPLPh=hVQ$]
 ([_0Q$cHsteeBlCZ_Qf5F8j5F)4[).or]^EK5lO(=6OlRV5Y+L<Crt]2qt^0hr;Q[se^W!mc,
 dc8[^3'3U7I<oG[sWA8P)HE@sY>sa4&Jcda$4`];h!7>Z"$_8kDTI:/k=t>%W,?V5LH(\[]8e
 ^r4CAdF-Oqe^Daeb.jd5=%5GA4[).or]^EK5lO(>6OuLN84?-?975CXqu$9erVQTn/(N+qc,m
 l9\$E05St)73L4a8?9MA&N9PoKqcHb%lf@\O#d`/hlKPXd`8cDC3:Jt>*Cit;iR]`j%]thD"a
 2lHNe'uq!f[eQubf[f+S7bS_5s7@q48qGF5X><7q*OmE%m`EM85)NQP2u02qt^*dr;Q[se^Dd
 e`kT!gX/DSWQ^<hjL2Bpc9hJ)WHBH.re(`R1hU^6,bJUWQJn\+X;,L7p?t3njI#FMm['dK]`5
 K^@c-Xtkf%8R-f[nTtbJgujGum<t4?Pegr]^EK5lO(F6MWtZ5X%Y-91W?alLOcIq>1$frr-!K
 dETeN]X4i;U7@O6Q&piTC0"2-92JiRU!MNIinr\SgY19*bJ1'@G$S0M;cd=;C2nTTPG"na\@f
 _u`Q6?PeC`L/g"G*/eBuL^`k8U7@73@D4[(q+564#7p-JLA%RNHO77p<j[I<_]q>1!erVdh`b
 fI`:\$)d(TU_=5Q&piMB3/&09iYc$Z.S$lkPjL"hV[,:cc<JhLMpj:>[D)ZFF]:5S"lpj[_'D
 q`lcZWfA,9@h;$c4e'Q7X_n<@EC.LZV5<q@1564#7p-JI@%7NlX:LAb"o_%tTr;?Nlr`@7__n
 N[eWMH,XSX>_/OGS3n=BAEr=_tFWh;dGWjQ#1SiSN)2agndHKRS,]CNY&VL5CqYVQmP:]>Ve6
 d+?e#hr<YRhVHf9e]u7S]X4DP912*469bB5!C/pD62<kV6:X^>=)aViq"OR]rr2lqr`@7]^V%
 +`WM6#VR[9D/OG8-i<`N:$<eA*3i9T^lk2tX^i7c`.a1esYQA^EFH[LF"MijC!W3*M=]u/">e
 CWR8j5f:\hqcu9ccaGM^q6:e<(',A6:1K5q*>$K6iKCb6UX=391hoSOL=-Eq"X[\qu$Elr`@.
 W]t1\XW1flVS=,h7PDXiu=&iI-@Z\UYj6Q!mjQ5C]iS2r2aM59eSsGLsM2I4OP*hi<Y-baO^r
 FUHf%Js>jQ5L`i83)6c,n#E^:C1m=%#>=4[&U+pd#BV6:4+.77BO68lfoGi;W]N"8_onrVldt
 a2>X&\?`-1U8+ERStDF4KP"=d?"7rPdG!aKl/h!fjQ5FWf@%dV]We9,Ssl"5Pa@i1Uo^r7^;.
 \0d+-k*iT'%^k2bIWe^2IZ`PT9tXb9eE5Wq1kq*=aA"@,7?6q.)E#>%K]?&$\_kPb5Xqu$Bk$
 H^<)^:UhXX/;hnrhN,XR#5Z_<+'Qp[FsL%lfmQokiV'hhV$B#_7R"PVl$/[T:DIFUStB+^;Iq
 3cICP'hr<_Zki_$chpg#qa2Pp/\?:Ke6pX(&5l!_@630GAr^I2_786E`K=LFFqYg9nr;HWprr
 +LlaMbp.\[A`EY-+h)WMQ5ME*QFUHB>quioo^nl07NskiUdUeB5V?Z`C+*V>d5:V5UDs[(F/p
 air/`gY^uMjlbjjjPf"Hd*'MN`4rmcKNU`15s[m662<hI7K#[_77BU07<5$Jm-XNFqZHcprr;
 us=3AV'_7dFh[^*<KZ*(70UmcL9>]Ygpal)7Dlg*j%m-*]rhq?N%^qI+WXK8D!W3!/,[(!Z``
 Q?<Ke(<C4iT0+`ki_$bhU^)uaiMK;]W6Ze77'7(5l!bB6Ou[W7R]a87n6NmWmC2+o`+md!W2f
 mrYiu&aMbm-]=YPa]=,#MXf.q@AnH[fY0u@ml2L!/lK[Ttk24k@ahYQqXK/J(X0&Y6\@fPl`5
 g$EcdUM$hr*PVkND!fhqci1bfRrG_7ZLh;aNc85=,*3q*PZ^779L384uZMH-4n3o_\[eq#gKj
 rVc`p=3o19aMbp1^q.7o\[8ZFWhk5]D3(g0g#hM`m-O$$kNM0mhq?K#^U^SJWN3,&Yd1^L^;.
 V(`lcNOe(<@2i8`q]kN1^\gsj]oaiMH:]U*Y45=%V&7/91F6Pi-X5sdt2:Ju;>s7?$\qssRXq
 "aa_r;HWo<mf4:b/qZ?^VIUu]=5,MXf%8&Gau:bf&YuXlg3s%kj.X&k24b2]Xb2CWiN,#['mK
 W^;7e1c-FY_e(<=0hr<e]jl>F\gsOX!aMc*9]nL#g6UjI0r^-TM)F?eY5sdt-6:!h#7mo^;:e
 =W-R`k<up&+g`q>:0j?dmEKc-4;K_SX.)]t1YXYcF+@LT88<g>_5YmI0K/l0@U"k2Ft7]=+c9
 VlH\sZb*oe`5g$HdaHUof%Jj9i8Wn^jl>F\gsFKrbK@o?Z?KPC6:O@06UX:/6:+%-7/fOf6q'
 O46pa7.85WZF[+"FBrV6?kqYC$fr`Rk'da?Ccai;9;_SEjr\$`N:O-R)odG3gFlL"!)kN2!ol0
 %3cbIXsTSti6_XL#XW`Q66Jdacq#f@ep7i8N\XkN([`i7lf1c-4GQ[%_,1779X76q0U6rBp`V
 77TiH6kVjQ5=nF:;.b6Qe+3;4qtp?lrqZHjrYsMAeC2jmbfRlD`59:&]=PVVR$k4rc.h:>kNW
 !2.d?9blKdcscb$6LQ^sqMXgPjX`Q66JdaZq%g"P3:hr*GRjl>@[hqH].rlGV]T8$HD84cED7
 nH0>7K#UV77BU4r^@De6;(6fMRqL.s75aSr;HKfqYC'gr\rN^e^W'qcHF8J`5BF+^:qFjSX$"
 W`S95)gtglIjQ>RdkN_Erd_;]LOHuQ:Y-u!Y`Q??LdFA0I(>.<ph;7#Jj5JnRh:U-!b0@u.K4
 @eTr_3Pg8k_`E7JoOi5=%Y*7nHBL87RF`jnJHBqtg<lrUogYq>C6k$ej7ae^W$nbfIiE`;RS#
 `4Mh0QCkS5f@/$d`504'e(<C6jl+Y(Y+(H6S"csj]tqb4cHt#=e/-Zdf@ep6gu./Jh;-f8d*9
 n`_OYR?:f%'br_*Dc8Ol8L71_pT77KX178I$8W6jl.qt0X^rri>sp%n^arVle#gY(31f$r*nb
 K@oH`l?'?`l#!HMM@P.aMks*Z)OLj\\Q>7f@\Bc\"SkCQ(4\S]tqb4cHt"hdaHUof%A^2g"kN
 ?g=t9/cc<f/TRC$89M7rJ8PDiP9h\2OrC@_p8kMQA;JUcR`T6L\p%SL^r;?Bcr;ZfmrVld'gt
 UN7f[eNuc-4?0a\Bq$aih5aJTH:0['d?NZ`g@*Up%DKbg=ML^Sd0QP*hrC]>)>-bg+S`dF-Imf
 %Aa4f\G<:g"Fs)age((EE5Or8Ol097S?HK:eseZrC[qn852l^F.Bkro)/@_rV?Bgs8W)us8M`
 frVlfqg,.I6eC2gnd*Bn]cd'ea_RH=kCNP*$V6I;2\\>J`^W"@?c-+5EZ_NqRR%^Um^W"C@cd
 C2?cl:B]e^rI/hq?f:f%IjERXSsS9gh6;7n,s<8kf4Z!_c3XrC@;g<*jC(^!Q6<p%eLar;$<j
 quQcpqu6TM1u$^8e^W*sd*L(ccd'qS\"e@^AScL9MjL*FaN)f]g"Y63dE]_@Wh>iNUTD#?`QZ
 ZVe^j]I'@YL_f@Sg0gXOEaTlFL;8Ol-662j+h6:ORB;,U=k;,9tb<*s0XJWI.klLFK?qY^<ir
 ;$<jquQcpqu/P3hqm2Eg=Y$.eC2jpda?Cc^UBnc@U*,JB6JriXi\uJi8W_Pf[J0j^pC&:Tr"g
 "^;\=De_&XSe2#S*f@AU,gsNd4HWNm/77]s>7n,s<84u`V<CokZ91VWN<c3&9Q_VFWme->Mqu
 -Kkr;$<jquQcpqu6TQ#2e:mg=b03rmi[Oda6.L[%i4f@9[M^FFAk9_9^`dgYCQ8e'ZR`]X4f=
 Vl[JE`lufZf\4s.f)F23f%/L0f\F`WP[[Qa77Kd85X>9<(.^tf8l]&$?!CZNF,uWbZ+/3Jo_J
 @]rqulqr;$<jquQcpqu/_:iS`YOh;$c?g=b-2f$i!h]sFJhF)#)pA8QI9Pdef`eCWF/g=b*+b
 /(]sXfS\>_T0mGdF?e#f@JO'rmhe<hUgE$Y)m!e8OZ*=6pa707nZTSr_a>#:fpt0B6Jj*Xgu3
 _fC8S5r;HQpr;?BhrqlfqrVQTmi\ocQhVI&DgY1B5e'QCT[%rY-E+*6bCijfUWkQj.e_&R.f[
 nQp`PB*mZF.Qgair&Wdact$f)F28f%/U3eC;LCRrDM-91_ZD7S,j7:K_*)A.N0bF*iM!S>WNo
 ]"Pi+m.C5S!;uTirqlfqrVQTmjCI<1iS`VLgt^Z9e'H@V\#P[IG\(DsEdDn\T!?MbdF6XreC;
 pja2Gd*]"Q&&bK\A\eCN4$e^W."f%8U1f%8*WYD[7,=&;R_9iFbd@W$=4G'%tWK8Ph]V5q/=`
 5]gMo(r=_r:g0hquQcpqu.l'k3(mhjlGIZhVHuAf@%sh_7?b?OF_4R?uUI:J=E[`bg4_erm_S
 .bfIiC^qdk,aNVrVe(34&rR<CKf%8U3g"aup^n6U<F`(r0EI!.nQCt(LSXGn8SY;p]YHb[O`Q
 #jHm.:/Qrqc]np\k*h!WDuorr218l0.<ljPf%Rh;$]6dEKPAXIPW7E*m7"ItWWBTukI%cdC1i
 e'6+Ua3MZ;_p$C)cSEkrf%8L'eC<%#f\56Ah:9`b[@NV@J:3'1Q_:.TYd1I4VlH\nW2cu*[)B
 f$b/r<)p\FdUrr).ml0.9kj5T"ShV6W1dD`YsTUq3d='T?WG'JIjQCb.f`6-?LcHO2A`4rt)b
 KePdf@f!<gY1?5f\,!5gu7;Ng!e$WYc=CbQ^t(Z^r+15a2Pm/\[SrP[(*c_aMl?JbhM[`q>Ka
 \:[RQ9m-Ep!k2k[`iSWGCeCDOIXJMb\IU68dB5;6rCNY)cT!#W>_nNt"]"Yehb/MKKe_&X6in
 rVJgY1B9gt^lJhqQc0ah50jXfSh?_Z%XkaMu-5^;7Oq\@B/d_op*Fcct56q"amVrr2:Em-Ep"
 kNCseio&YFeC2@FY,A7nO()-b:fL=f9M%oT=CZ5nIYEoMR@g.JZG4?%dam..hr*DJg]#n<gY:
 WCgXt**beUs(\$ila`r==!ccjJK_Sa1%\[oJk`QQ<GcHFl-p#c8Qm:>SLlKIEojl>@Ygt1'%_
 Rd"NX0&1>?qj0c:/"8W:esnd>%(uMDg-M[MNX^E^W=dQgu.5Ohqd&@g=tE=hr!/>f$_ga`l#U
 +^r4@Be(*!tccX8I_na%&`5p0Ga3;iPf^8=nrr2@(md9?*l0.9jio&VDeBPhA[&gOD\<1u=:J
 h$g7n6*B9i+ei=CH,hF+&n1Up@JGb0nu#jPo+Th;$iBhV[;NgtC?1ccjSR`59F3b0/)Xda?=\
 `Q#j6_SjL;bfn2Rcck,3pA+aVrr2J!naPu6m-<itjPo%Le^;4D[^3Wea/k87<DH1Y7n?3F;-.
 %5Ao)mKLQe:(XL,OR`m)udhV[2FgY:N>hVI,Kh:pZ8d`p"X`P]X7bL"Ybe'cRebJqN?`5Ta:a
 NMWJcHOu1pA+aVr`&R`o^qbFn*]Q-kiUsag=Olk[^N`cd*C4LMf<*+:eakb:/G#%E-R22YIV]
 taN;<<aNMoYf\G68g"=s1gYCK<hV?i>f@&!ibK%WCbg4DPa2Z's_u@dZaiXP'#KOa(bK8B&o_
 JOTrr2RLo^hVBn*TK,kiL^Sda,hA]Yr"@eCW-?JS7YO:/Xqd;H-tBK:&XL`6$<Qd`fqYc-Okj
 g=k64rRWIMg"P6:gXt*,d*BhWaiVTBaN)9;_SX4.ai_fNc-4ARaN;NDb1GnPk5PAS/,&Z.o'u
 ,6lKI?ef[A*`]YMY9f%T'>\"%hD9he,J8lAo2LRkHS_oKmDdJVDse(*(&f[naSeg]5&f\,!5g
 =Om(dE]kSa2l?B`l,a0^V@S#aN;WLbfe/N`lH*<aOKAEk5PAV-MdH1p%7\>lfmNgf[J*`^rFa
 Qh;RP]d_MDc;,C"^:fq4NOJ]7mrkSZVc-Q=@!SH$'f)F2&f%/I(fDaGIf@86pbJqH;`5T^3^q
 RIo^;.S,b0/#Pb/q`Ea2Z'<dcBu]rr2dNqYBmYo^M;8lK7$We'#_Kc.Ch4kND'fg:i8H<EWC+
 ?ta_ASYWEt\\,i'ceI72hVHr=rRNOMf%/I*f%8R-f[eR#c,mo?^q[Ur]=PSc]thS+bKS5Ubf\
 #IaN2E@a4'/@k5PAV(&@Xup%7eCmH`rng!e*aaj])+kNh@2jW2pKD-Bn<=CGreKp%h"Z+%Bab
 g>%sh;7&FgY(63rRVq>g"4m0g"=j'd*'PM_S<^l['mHT]u%h6cMl,ucHODN`Pfa6_Ssp_nE0`
 LqE=ZLp@RtIna>c,iRu](bL##)kN_L'k31sf_1,uo;cmIBEI<M(T<5H0^rORJf\>9?hVHu@g=
 b-1f@\a-rn&1@da-1[`koI%\$N<G\%KW#cI11ida?@`a2>am^')-bbhqgMrr2aKq=s^Wo^hYB
 m-*E]eBcLnip#drnFGl3jQP0[G?e<WAScF9L6J:4ZF7KdaOf)!h;8.g"P_Y`f@KrOrmi+?da$
 "V_S*C_YHG%1[(3uncI11ke'cUfaMYa(\c0/B^<59uk5PAW3VrRHp@\(KnEoGug!nL#gZRtln
 +-&:n`/oqVMSVa?YFM/MjBj1ZF@Hac-b4ugYL`Di8EADf[eROe,Il0e'H4W`4NCVUnX]bX1#X
 XbL$7:#h.5JbJq?/\%2LL"2<":mcOKKqYg;*qYBpZoC;86j4r86f\u&]nFH5@nEfH,j2%7&=_
 D],KqG6DZ+.Ncaj/;fgYLcFiSrkThV-Q1e'lgrd*'STai(orWhc8XU8tQ4^r=LCdaQ[qdEK\N
 _S3Xm\%'&cb22Uas8W&qs8VTfrr4hOqYU0dq=saXoC;85j5&A?hWF4po(2MFo^VA=kfg,P@;^
 CTQa4-4]u%e3cI1:ugtq#Lro5$XhqZi5dEp4`ai;?>^pgM=SXPt:UTLo>`5p3Ndf.]1d*'JJ_
 7mOn\[f>eaP,tVs8W&qs8VTfrr;omC&.Pup%7hCl/UURhW4"lo(2JFp%J"Hna+oFK5,LZSu'6
 @`lQ<HcHt(mgYLcHj5f:]io&YGeBc=[`59=(]!A6*QC+/6VQ[SIaNDcTe'ujqdE]kR`501"]t
 :kf]uARbq>UEmr;Zfdrr2rqq@<>rq"==NmH<Kdh;ID]nbr%uo(;M@md/o^O)]8kS>Es9aND`N
 c-Okig=tKCro5utgt^T5d)j2@_7[4\WhZ)NS"HOY[(XK'cdC7nf@JI#d*9\O_n`st]XkYb]Yi
 4Yp\k-jrVuornc&Ofr;.!#q=sXUoBk]!i8EYZn+6PO=SD=VnF#]1k2;bSFaKFG\@]f'bK\>Ze
 CW@-hVmMTio/PAe^;RX]XYMXVk0<DR$jeMYd_<`aj/Mjg=tB8f%&0nai205]t1_^\%0,ge)U0
 "s8Muss8DKerr6p7r;HTlqtg0_p@I\5iSih\mIU,Kq=saWoC;>=mcii4JpDR#QEn$;`Q?BMd*
 pOqfA#3@i83;Df[\<g^:1DGTpV"*Q_("[\A#l$b0JDjhV[5IgtC<.ccX8F^q@7cZaI<T_U@H9
 qu?Zos8W#err2otrVc^,rVZQdp@R_4i8WkbnFl\Rp\sk5oC2;?mc``>MgKJrL81fX]>;J,aN;
 TJcI1:rf@ABtc,[T,X.l0aO=ZT`U91f>`llZTeCWF5ioB(XhqZr:d`feN^q@4aZa@3Q_9h-3q
 YpKms8W#err2otrr)jDrr)cgp@R_4i8Wndnb2bOo^_PFna>o:m,d0=OF1keG*AGrYI;(A]K*j
 Jaj&/Wbf[W0Z)3tNKn+`0OIE#M]"l>-cI14ogYUuNjQ5F[h:pT2cH*r>]=>5S[(!T\cJA*frr
 *!!s8;Edq#=k'rVQE^mHE`umHsQAq=saXnFQ#2m-Wofd]A^]Df'TKOe&>PZEUL8Z+R``_8F1,
 ^9k&=QA9m5G'AP$TrbZ9_p6WWeCN=/i8WeXjQ#1SgXX]p`koL'\[8`O[_'K(f'WJ9rsJc&s8D
 rrs8W)trV?Hfs!7UCqtTgOl07R'oD&7\qYL!Yn*0$"k1@P^NIlCpD/=<DNg#n1SM?b1USOfeW
 MH)ONe_ps@UN_[G(GjPY.29ddF6\!g"bNHioB+\j5AeLf$_d_`5''urjNTO]uA=LlMU\]s8Df
 orVlfrs8N#rq>UBn!WE#qs&f:!qtK[Lmd]r;o(2A>nF#T,jl57O_Q',SIXZWcFF]C@R[KM-PE
 M&sS=lUMRZN>LEG/]`?Y=7uJ<Qe6]#)M8eCN:+h;RJTj5f:]i838Ae'6"R_S<e`\eMcj`m<5u
 q#C<mr;$Bkrr2rtrr2llrr2p!rVc`os)@u8qY0RLmd]rBp@RkCna>Z'h:9igXdG'&M26_2MlF
 V6^U:&3Ob\L*E-->LFDPPt?sd/D?=[_hJ!-V4]>M_7cdL@qg>:iJioK1\i8*/?eBZ1U`5'+"]
 Xthj`6Hcjp&4jhrVHQmrr2rtrr2llrr2qArVc`qs8N#rqYBjTm-F$+naZ#1kNM$bf#k\4VjWR
 &NfT'KK:g?TlJKjrU5XD:Ci+'1FEDM??XI,F>[ClOE.*hAY.29eair)ZeCWL5i8N\UiSWGEf@
 /!d`l#X,]">Pc]u%q<hXg^Fs8W#srVlfrs8N#rq>UBnr;La8r;6Hip[[\8l0@ElhqHc:eBGS0
 TpUq!M2[FTMh?nef(ARsd^P]uEG/lm@Us+cBkVC"Amo%UBl7m:N1?iP]>2M2cI(+mgu$uGiSi
 _Ng=Xs'bK%Q<^V..f\[oGiaN`K/qu6Wqr;Z`prr<#trr)ZlqYpm#r;-6`p$h5*h>Z2Ag==Npc
 ,RGlR?!,YKntbMO,8FFVomr\gr61KFD>Ds@:<\ZCM[d&C1h$a@V0@oHAIl\WjKCYb0A;]f%]'
 ;hV[5IgXt**cH4&B^qI@h\@K2`_8smPm.pV[s82iprr2rtrr2llrqcX0rVQEckiLaUd*'MO^:
 ^nZYcjpoPE#Qs>)%oqOH"j:J=O0mfZ^^eG@b/k?=.,QCN"02DK0c?Ec5f3EI!;%S>NO"`5g'G
 d+$b(gYCZBh:gK2dET_L_8!Xo\%&u[]u%n9e*?])s8MlprVlfrs8N#rq>U?m(B+.,q=O"7gtg
 Q(_nW[_X/2MaV5'H?resd8Nf8dINJiL=I>k&8ah+7"EG8ul@Uiq\C2S'7Fa&+WH?XIOEdNV*R
 \R$o^r+7;cdLCtg"Y?>h:gK2d`f\G^V@Io]",>]]YMM-bhDRds8Mrks7uWms'PWro'Yf'f[7[
 V]WnK7Tp_+-Ocu#mMhQqBMiX!^Mhct@LP157R&6sYN-/fF@pibUAS>n!F*;t]JqSf/IslTmM3
 +$oVm!eM`llZTe_&R/gtg`;e^Mmg`5'.%]t=9V$ba?oaND`Xl2(GZrV6EgrVlgno^D&*hU]oh
 ]=4o9R?itnMN!UXNerLCK8,;HQ'@>fLl74JK7o5MQB-T;C2%<j@:NnaDf^)HK8,5ANJraNKSY
 YPQ_14[]>);+bg=kkg&B\Df[\Bqc,mo>^:h1k]Y2(r`5g!Bbg>27qu6Tis7uWms)72ahqQc2a
 ht`tW1/s0LkUeMQ'@;bL5(M@N00BjP)kikNJ)\,KoM(NL4"/cCh.!cBPhd5H$b4"MiX!`OH5?
 \P*MN3XL#OR`6$9Ne_&O-f[n[$cHFAN_na""]Y(ki^r+15aiVcMdcC*!rr2`nq>UBnDr]^,e^
 Mjd`4)qGS<].nM3!gbQ'%&bN0KKfOcu#nP+.i$L4"8qKSGABLOskk@q0(aDKL/QJ;B/HQC=;4
 R[9D/R\-I[[(X;qbKePeg"=p-e^DadaiDE>_7mUq]tM1ua3)TLbg+;Qh!b+<rqZTirr2p:ki:
 LPf@A6l\[/H@WhuPdSXc4AU84TZTU_@5rf\@cTq\0HNJ)h4Jr,PMNe_mrAS5arFaSdpOd2E0V
 Z*PJXK&8!X0B"B^r4@>d*pS!f@JL$d*9bU`l?!7^V.@r_SjO=cHstdd)jD^lLt,Rmf.4nki1I
 TgtC5k\[fGh]!o2PVP0ll\@/Z>U7I^=Q'7?-W2ZS]NeN%9MNF!aNe2IgBPMF-IYEZER@pI[Z*
 L[E[Bm3J]"Pkq`QHHPdad"$e^Mplc-+8K`lH$5^;%M'a2uTPdaQ^obKAH#oD/@Qs*t~>
 %%EndData
 end
 %%EOF
%</LouiseBrooks>
%    \end{macrocode}
%
%
% \Finale
% \PrintIndex
% \PrintChanges
%
\endinput
%%
%% End of file `pst-lens.dtx'
