All the figures and none of the Lit Review
authorSam Moore <[email protected]>
Wed, 21 May 2014 18:45:29 +0000 (02:45 +0800)
committerSam Moore <[email protected]>
Wed, 21 May 2014 18:45:29 +0000 (02:45 +0800)
They are so pretty

18 files changed:
chapters/Background.tex
chapters/Background_Bezier.tex
chapters/Background_DOM.tex
chapters/Background_Fonts.tex [new file with mode: 0644]
chapters/Background_Interpreted.tex
figures/shape-svg-converted-to.ps [new file with mode: 0644]
figures/shape.eps
figures/shape.svg
figures/spline.eps [new file with mode: 0644]
figures/spline.pdf [new file with mode: 0644]
figures/spline.svg [new file with mode: 0644]
figures/spline_labelled.pdf [new file with mode: 0644]
figures/spline_labelled.svg [new file with mode: 0644]
figures/z.pdf [new file with mode: 0644]
figures/z.png [new file with mode: 0644]
figures/z.svg [new file with mode: 0644]
thesis.pdf
thesis.tex

index 1d3e141..288ce4d 100644 (file)
@@ -11,13 +11,13 @@ In Chapter \ref{Progress}, we will discuss our findings so far with regards to a
 \section{Raster and Vector Images}\label{Raster and Vector Images}
 \input{chapters/Background_Raster-vs-Vector}
 
-\section{Rasterising Vector Images}\label{Rasterising Vector Images}
-
-Throughout Section \ref{vector-vs-raster-graphics} we were careful to refer to ``modern'' display devices, which are raster based. It is of some historical significance that vector display devices were popular during the 70s and 80s, and papers oriented towards drawing on these devices can be found\cite{brassel1979analgorithm}. Whilst curves can be drawn at high resolution on vector displays, a major disadvantage was shading; by the early 90s the vast majority of computer displays were raster based\cite{computergraphics2}.
+\section{Rendering Vector Images}\label{Rasterising Vector Images}
 
 Hearn and Baker's textbook ``Computer Graphics''\cite{computergraphics2} gives a comprehensive overview of graphics from physical display technologies through fundamental drawing algorithms to popular graphics APIs. This section will examine algorithms for drawing two dimensional geometric primitives on raster displays as discussed in ``Computer Graphics'' and the relevant literature. Informal tutorials are abundant on the internet\cite{elias2000graphics}. This section is by no means a comprehensive survey of the literature but intends to provide some idea of the computations which are required to render a document.
 
-\subsection{Straight Lines}\label{Straight Lines}
+It is of some historical significance that vector display devices were popular during the 70s and 80s, and papers oriented towards drawing on these devices can be found\cite{brassel1979analgorithm}. Whilst curves can be drawn at high resolution on vector displays, a major disadvantage was shading; by the early 90s the vast majority of computer displays were raster based\cite{computergraphics2}.
+
+\subsection{Straight Lines}\label{Rasterising Straight Lines}
 \input{chapters/Background_Lines}
 
 \subsection{Spline Curves}\label{Spline Curves}
@@ -27,16 +27,47 @@ Splines are continuous curves formed from piecewise polynomial segments. A polyn
        y(x) &= \displaystyle\sum_{k=0}^n a_k x^k
 \end{align}
 
+Splines may be rasterised by sampling of $y(x)$ at a number of points $x_i$ and rendering straight lines between  $(x_i, y_i)$ and $(x_{i+1}, y_{i+1})$ as discussed in Section \ref{Straight Lines}.
 
-A straight line is simply a polynomial of $0$th degree. Splines may be rasterised by sampling of $y(x)$ at a number of points $x_i$ and rendering straight lines between  $(x_i, y_i)$ and $(x_{i+1}, y_{i+1})$ as discussed in Section \ref{Straight Lines}. More direct algorithms for drawing splines based upon Brasenham and Wu's algorithms also exist\cite{citationneeded}.
+There are many different ways to define a spline. One approach is to specify ``knots'' on the curve and choosing a fixed $n$ ($n = 3$ for ``cubic'' splines) solve for the cooefficients to generate polynomials passing through the points. Alternatively, special polynomials may be defined using ``control'' points which themselves are not part of the curve; these are convenient for graphical based editors. Bezier splines are the most straight forward way to define a curve in the standards considered in Section \ref{Document Representations}. A spline defined from two cubic beziers is shown in Figure \ref{spline.pdf}
 
-There are many different ways to define a spline. One approach is to specify ``knots'' on the spline and solve for the cooefficients to generate a cubic spline ($n = 3$) passing through the points. Alternatively, special polynomials may be defined using ``control'' points which themselves are not part of the curve; these are convenient for graphical based editors. Bezier splines are the most straight forward way to define a curve in the standards considered in Section \ref{Document Representations}
+\begin{figure}[H]
+\centering
+\begin{minipage}[t]{0.3\textwidth}
+\begin{figure}[H]
+       \centering
+       \includegraphics[width=\textwidth]{figures/spline_labelled.pdf}
+\end{figure}
+\end{minipage}
+\begin{minipage}[t]{0.3\textwidth}
+\begin{minted}{xml}
+<!-- DOM element in SVG used to construct the spline -->
+<path d="M 0,300 
+       C 0,300 200,210 90,140 
+       -20,70 200,0 200,0"
+       style="stroke:#000000; stroke-width:1px; 
+       fill:none;"/>
+\end{minted}
+\begin{minted}{postscript}
+% PostScript commands for a similar spline
+0 300 moveto 
+0 300 200 210 90 140 curveto 
+-20 70 200 0 200 0 curveto stroke 
+\end{minted}
+\end{minipage}
+\begin{minipage}[t]{0.3\textwidth}
+\begin{figure}[H]
+       \centering
+       \includegraphics[width=\textwidth]{figures/spline.pdf}
+\end{figure}
+\end{minipage}
+       \caption{Constructing a Spline from two cubic beziers \\ (a) Showing the Control Points (b) Representations in SVG and PostScript (c) Rendered Spline}\label{spline.pdf}
+\end{figure}
 \subsubsection{Bezier Curves}
 \input{chapters/Background_Bezier}
 
-\subsection{Font Rendering}
-
-Donald Knuth's 1986 textbook ``Metafont'' blargh
+\subsection{Font Rendering}\label{Font Rendering}
+\input{chapters/Background_Fonts}
 
 
 
index 2ec2a2f..9f24b17 100644 (file)
@@ -1,18 +1,14 @@
-Cubic beziers form all curves in the PostScript\cite{plrm}, PDF\cite{pdfref17} and SVG\cite{svg2011-1.1} standards which we will discuss in Section \ref{Document Representations}. One of the shapes in Figure \ref{SVG} is a region defined by a cubic bezier spline. Beziers are also used to construct vector fonts for rendering text in these standards.
+Cubic and Quadratic Bezier Splines are used to define curved paths in the PostScript\cite{plrm}, PDF\cite{pdfref17} and SVG\cite{svg2011-1.1} standards which we will discuss in Section \ref{Document Representations}.  Cubic Beziers are also used to define vector fonts for rendering text\cite{knuth1983metafont} (See Section \ref{Fonts}).
 
 A Bezier Curve of degree $n$ is defined by $n$ ``control points'' $\left\{P_0, ... P_n\right\}$. 
-Points $P(t)$ along the curve are defined by:
+Points $P(t) = (x(t), y(t))$ along the curve are defined by:
 \begin{align}
        P(t) &= \displaystyle\sum_{j=0}^{n} B_j^n(t) P_j
 \end{align}
+Where $t \epsilon [0,1]$ is a control parameter. $P(0) = P_0$ and $P(1) = P_n$.
 
-From this definition it should be apparent $P(t)$ for a Bezier Curve of degree $0$ maps to a single point, whilst $P(t)$ for a Bezier of degree $1$ is a straight line between $P_0$ and $P_1$. $P(t)$ always begins at $P_0$ for $t = 0$ and ends at $P_n$ when $t = 1$.
-
-Figure \ref{bezier_3} shows a Bezier Curve defined by the points $\left\{(0,0), (1,0), (1,1)\right\}$.
-
-A straightforward algorithm for rendering Bezier's is to simply sample $P(t)$ for some number of values of $t$ and connect the resulting points with straight lines using Bresenham or Wu's algorithm (See Section \ref{Straight Lines}). Whilst the performance of this algorithm is linear, in ???? De Casteljau derived a more efficient means of sub dividing beziers into line segments.
-
-Recently, Goldman presented an argument that Bezier's could be considered as fractal in nature, a fractal being the fixed point of an iterated function system\cite{goldman_thefractal}. Goldman's proof depends upon a modification to the De Casteljau Subdivision algorithm which expresses the subdivisions as an iterated function system.
+A straightforward algorithm for rendering Bezier's is to simply sample $P(t)$ for suffiently many values of $t$ and connect the resulting points with straight lines using Bresenham or Wu's algorithm (See Section \ref{Straight Lines}). Whilst the performance of this algorithm is linear, De Casteljau derived a more efficient means of sub dividing beziers into line segments.
 
+Recently, Goldman presented an argument that Bezier's could be considered as fractal in nature, because the De Casteljau algorithm could be modified to be expressed as an iterated function system\cite{goldman_thefractal}.
 
 
index 494f2b9..c89410b 100644 (file)
@@ -30,15 +30,23 @@ In HTML5, Javascript is not restricted to merely manipulating the DOM to alter t
 <?xml version="1.0" encoding="UTF-8" standalone="no"?>
 <!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" 
        "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
-
-<svg id="svg_example" xmlns="http://www.w3.org/2000/svg"
-       version="1.1" width="104" height="186">
+<!-- These lines are comments to assist human readability -->
+<svg id="svg_example" 
+       xmlns="http://www.w3.org/2000/svg"
+       version="1.1" 
+       width="104" 
+       height="186"
+       transform="translate(1,0)">
+
+<!-- The straight line -->
 <path id="straightline" d = "m 0, 0 104, 186" 
        style="stroke:#000000;"/>
+<!-- The first (bottom) rectangle -->
 <rect id="rect1"
        x = "30" y = "20" width = "30" height = "150"
        style = "fill:#0000ff; fill-opacity:0.5; 
                stroke:#000000;"/>
+<!-- The curved region -->
 <path id="curvedshape"
        d = "m 57,185 c 0,0 57,-13 32,-43 -25,-30 -53,2 -25,
                -30 28,-32 52,17 28,-32 -24,-50 -16,44 -35,12 
@@ -46,6 +54,7 @@ In HTML5, Javascript is not restricted to merely manipulating the DOM to alter t
                -94,68 -59,109 35,41 45,62 45,62 z"
        style = "fill:#ff0000; fill-opacity:0.75; 
                stroke:#000000;"/>
+<!-- The second (top) rectangle -->
 <rect id="rect2"
        x = "12" y = "130" width = "60" height = "20"
        style = "fill:#00ff00; fill-opacity:0.5; 
diff --git a/chapters/Background_Fonts.tex b/chapters/Background_Fonts.tex
new file mode 100644 (file)
index 0000000..19385db
--- /dev/null
@@ -0,0 +1,22 @@
+A typeface or font refers to a set of images used to represent text on a graphical display\footnote{This terminology dates back to printing press technology}. 
+In 1983, Donald Knuth published ``The METAFONT Book'' which described a vector approach to specifying fonts and a program for creating these fonts\footnote{knuth1983metafont}. Previously, only rasterised font images were popular; as can be seen from the zooming in Figure \ref{vector-vs-raster-scaled} this is problematic given the prevelance of textual information at different scales and on different resolution displays. 
+
+Knuth used Bezier Cubic Splines as discussed in Section \ref{} to define ``pleasing'' curves in METAFONT, and this approach is still used in modern vector fonts. Since the paths used to render an individual character (often called ``glyphs'') are used far more commonly than general curves, document formats do not require such curves to be specified in situ, but allow for a choice between a number of internal fonts or externally specified fonts. In the case of Knuth's typesetting language \TeX, fonts were intended to be created using METAFONT\cite{knuth}.
+
+Figure \ref{zglyph} shows a $\mathscr{Z}$ (Z) in Ralph Smith's Formal Script font\footnote{\url{http://www.tug.dk/FontCatalogue/rfsf/}}. On the right, a screenshot taken in the Inkscape vector graphics editor shows the start/end points for each Cubic Bezier in the Spline defining the glyph outline\footnote{Inkscape activates the two adjacent control points after selecting one of the bezier start/end points; these are the two circles in Figure \ref{zglyph}}.
+
+\begin{figure}[H]
+\begin{minipage}[t]{0.5\textwidth}
+\begin{figure}[H]
+       \centering
+       \includegraphics[width=1\textwidth]{figures/z.pdf}
+\end{figure}
+\end{minipage}
+\begin{minipage}[t]{0.5\textwidth}
+\begin{figure}[H]
+       \centering
+       \includegraphics[width=1\textwidth]{figures/z.png}
+\end{figure}
+\end{minipage}
+       \caption{A glyph for the letter Z and a screenshot showing bezier start/end points as squares and diamonds}\label{zglyph}
+\end{figure}
index baa3849..f0fc912 100644 (file)
@@ -1,16 +1,17 @@
-\subsubsection{\TeX and Metafont}
-
-Donald Knuth's  ``The \TeX  Book'' and ``Metafont'' 
 
 \subsubsection{PostScript}
 
-Adobe's PostScript Language Reference Manual defines a turing complete language for producing graphics output on an abstract ``output device''\cite{plrm}. A PostScript document is treated as a procedural program; an interpreter executes instructions in the order they are written by the programmer. Each symbol is pushed onto a stack as it is read. Special symbols called ``operators'' can act upon this stack and/or the output device. An internal ``graphics state'' stack can be constructed to store styling information (such as colour, line thickness, the current cursor position). It is possible for the language to define new operators. Figure \ref{PS} shows a vector image and one possible way to express this image in PostScript. PostScript was and is still widely used in printing of documents onto paper; many printers execute postscript directly, and recent formats including PDFs must still be converted into PostScript by printer drivers\cite{pdfref17, cheng2002portable}.
+Adobe's PostScript Language Reference Manual defines a turing complete language for producing graphics output on an abstract ``output device''\cite{plrm}. A PostScript document is treated as a procedural program; an interpreter executes instructions in the order they are written by the programmer. Each symbol is pushed onto a stack as it is read. Special symbols called ``operators'' can act upon this stack and/or the output device. An internal ``graphics state'' stack can be constructed to store styling information (such as colour, line thickness, the current cursor position). It is possible for the language to define new operators. Figure \ref{PS} shows a vector image and one possible way to express this image in PostScript. PostScript was and is still widely used in printing of documents onto paper; many printers execute postscript directly, and newer formats including PDFs must still be converted into PostScript by printer drivers\cite{pdfref17, cheng2002portable}.
 
-There are some limitations in PostScript's model. As mentioned in Section\ref{Compositing}, there is no concept of transparency. In fact, using tools to convert between the SVG image in Figure \ref{SVG} and PostScript will simply rasterise the image and embed the rastered image in PostScript. Another limitation of PostScript is that the model of a document as a static page, convenient for printers which literally produce static pages, is unable to include interactive or dynamic elements. Dynamic PostScript attempted to fix this problem, but ``never caught on''\cite{hayes2012pixelsor}.
+There are some limitations in PostScript's model. As mentioned in Section\ref{Compositing}, since PostScript predates Porter and Duff Compositing, there is no concept of transparency. In fact, using tools to convert between the SVG image in Figure \ref{SVG} and PostScript will simply rasterise the image and embed the rastered image in PostScript\footnote{For Figure \ref{SVG} converted using the Inkscape SVG editor: \url{http://szmoore.net/ipdf/figures/shape-svg-converted-to.ps}} 
+
+Another limitation of PostScript is that the model of a document as a static page, convenient for printers which literally produce static pages, is unable to include interactive or dynamic elements. Dynamic PostScript attempted to fix this problem, but ``never caught on''\cite{hayes2012pixelsor}.
 
 \begin{figure}[H]
 \begin{minipage}[t]{0.65\textwidth}
 \begin{minted}{postscript}
+%!PS-Adobe-3.0 EPSF-3.0
+%%BoundingBox: 0 -1 85 150
 % These lines are comments to aid in human understanding
 % Define an operator to produce a rectangular path
 /re { exch dup neg 3 1 roll 5 3 roll moveto 0 rlineto
@@ -21,14 +22,18 @@ There are some limitations in PostScript's model. As mentioned in Section\ref{Co
 /re2 { 10.215 45.001 48 -16 re } bind def
 % Operator which will produce the curved path
 /curve { 46.215 1.001 moveto 
-46.215 1.001 91.812 11.399 71.812 35.399 curveto 51.812 59.399
- 29.414 33.802 51.812 59.399 curveto 74.215 85.001 93.414 45.802 74.215 85.001
- curveto 55.016 125.001 61.414 49.802 46.215 75.399 curveto 31.016 101.001 56.613 126.598
- 56.613 126.598 curveto 56.613 126.598 88.613 166.598 56.613 137.802 curveto 24.613 
-109.001 -18.586 83.399 9.414 50.598 curveto 37.414 17.802 45.414 1.001 45.414 
-1.001 curveto closepath } bind def
+       46.215 1.001 91.812 11.399 71.812 35.399 curveto 
+       51.812 59.399  29.414 33.802 51.812 59.399 curveto 
+       74.215 85.001 93.414 45.802 74.215 85.001 curveto 
+       55.016 125.001 61.414 49.802 46.215 75.399 curveto 
+       31.016 101.001 56.613 126.598 56.613 126.598 curveto 
+       56.613 126.598 88.613 166.598 56.613 137.802 curveto 
+       24.613 109.001 -18.586 83.399 9.414 50.598 curveto 
+       37.414 17.802 45.414 1.001 45.414 1.001 curveto 
+closepath } bind def
 % Set stroke properties
-0.8 setlinewidth 0 setlinecap 0 setlinejoin [] 0.0 setdash 4 setmiterlimit 
+0.8 setlinewidth 0 setlinecap 0 setlinejoin [] 
+       0.0 setdash 4 setmiterlimit 
 % Draw the straight line
 0 setgray 0.613 149.001 moveto 83.812 0.2 lineto fill 
 % Fill and outline the first rectangular path
@@ -48,3 +53,8 @@ showpage
 \end{minipage}
        \caption{Vector image and a possible PostScript representation}\label{PS}
 \end{figure}
+
+\subsubsection{\TeX and Metafont}
+
+\TeX is a typesetting language invented by Donald Knuth in 1983.
+
diff --git a/figures/shape-svg-converted-to.ps b/figures/shape-svg-converted-to.ps
new file mode 100644 (file)
index 0000000..0496357
--- /dev/null
@@ -0,0 +1,668 @@
+%!PS-Adobe-3.0
+
+% ADDITIONAL NOTES FOR ANYONE WHO CLICKED THE LINK IN MY LITERATURE REVIEW
+% The Cairo Library used by Inkscape has attempted to simplify the postscript by defining single letter commands
+% For example 'm' is defined as 'moveto'
+% It's arguable whether there is much point to this, since we noticed Cairo does not perform any optimisations like path definition
+% For example curved regions with both fill and stroke will have the curve points specified twice
+% When it can be done once (as in our example in the Literature Review) by using a user defined operator to specify the path
+
+%%Creator: cairo 1.12.16 (http://cairographics.org)
+%%CreationDate: Wed May 21 20:57:24 2014
+%%Pages: 1
+%%DocumentData: Clean7Bit
+%%LanguageLevel: 3
+%%DocumentMedia: 30x53mm 84 149 0 () ()
+%%BoundingBox: 0 -1 85 150
+%%EndComments
+%%BeginProlog
+/languagelevel where
+{ pop languagelevel } { 1 } ifelse
+3 lt { /Helvetica findfont 12 scalefont setfont 50 500 moveto
+  (This print job requires a PostScript Language Level 3 printer.) show
+  showpage quit } if
+/q { gsave } bind def
+/Q { grestore } bind def
+/cm { 6 array astore concat } bind def
+/w { setlinewidth } bind def
+/J { setlinecap } bind def
+/j { setlinejoin } bind def
+/M { setmiterlimit } bind def
+/d { setdash } bind def
+/m { moveto } bind def
+/l { lineto } bind def
+/c { curveto } bind def
+/h { closepath } bind def
+/re { exch dup neg 3 1 roll 5 3 roll moveto 0 rlineto
+      0 exch rlineto 0 rlineto closepath } bind def
+/S { stroke } bind def
+/f { fill } bind def
+/f* { eofill } bind def
+/n { newpath } bind def
+/W { clip } bind def
+/W* { eoclip } bind def
+/BT { } bind def
+/ET { } bind def
+/pdfmark where { pop globaldict /?pdfmark /exec load put }
+    { globaldict begin /?pdfmark /pop load def /pdfmark
+    /cleartomark load def end } ifelse
+/BDC { mark 3 1 roll /BDC pdfmark } bind def
+/EMC { mark /EMC pdfmark } bind def
+/cairo_store_point { /cairo_point_y exch def /cairo_point_x exch def } def
+/Tj { show currentpoint cairo_store_point } bind def
+/TJ {
+  {
+    dup
+    type /stringtype eq
+    { show } { -0.001 mul 0 cairo_font_matrix dtransform rmoveto } ifelse
+  } forall
+  currentpoint cairo_store_point
+} bind def
+/cairo_selectfont { cairo_font_matrix aload pop pop pop 0 0 6 array astore
+    cairo_font exch selectfont cairo_point_x cairo_point_y moveto } bind def
+/Tf { pop /cairo_font exch def /cairo_font_matrix where
+      { pop cairo_selectfont } if } bind def
+/Td { matrix translate cairo_font_matrix matrix concatmatrix dup
+      /cairo_font_matrix exch def dup 4 get exch 5 get cairo_store_point
+      /cairo_font where { pop cairo_selectfont } if } bind def
+/Tm { 2 copy 8 2 roll 6 array astore /cairo_font_matrix exch def
+      cairo_store_point /cairo_font where { pop cairo_selectfont } if } bind def
+/g { setgray } bind def
+/rg { setrgbcolor } bind def
+/d1 { setcachedevice } bind def
+%%EndProlog
+%%Page: 1 1
+%%BeginPageSetup
+%%PageMedia: 30x53mm
+%%PageBoundingBox: 0 -1 85 150
+%%EndPageSetup
+q 0 -1 85 151 rectclip q
+0 g
+0.613 149.001 m 83.812 0.2 l f
+0.8 w
+0 J
+0 j
+[] 0.0 d
+4 M q 1 0 0 -1 0 149.199997 cm
+0.613 0.199 m 83.812 149 l S Q
+q 1 0 0 -1 0 149.199997 cm
+24.613 16.199 24 120 re S Q
+Q q
+0 149.2 83 -149 re W n
+q
+0 149.2 83 -149 re W n
+% Fallback Image: x=0 y=0 w=83 h=149 res=300ppi size=644598
+[ 0.24 0 0 0.24 0 0.159997 ] concat
+/DeviceRGB setcolorspace
+8 dict dup begin
+  /ImageType 1 def
+  /Width 346 def
+  /Height 621 def
+  /Interpolate false def
+  /BitsPerComponent 8 def
+  /Decode [ 0 1 0 1 0 1 ] def
+  /DataSource currentfile /ASCII85Decode filter /FlateDecode filter def
+  /Interpolate false def
+  /ImageMatrix [ 1 0 0 -1 0 621 ] def
+end
+
+% ADDITIONAL NOTES FOR ANYONE WHO CLICKED THE LINK IN MY LITERATURE REVIEW
+% We suppose that since PS was beginning to be superceded by PDF by the time Porter and Duff compositing
+% (and the alpha channel) was proposed in 1984, Adobe had little interest in adding alpha to PS
+% So to include transparent shapes in PS, conversion tools cheat and simply include a rasterised image as follows
+% This is the sort of thing Inkscape refers to when it threatens a "loss of detail" if you close a file saved in one format without being saved in SVG
+
+image
+Gb",kGC1)ns2V=P>frmJqPErCF1L?5![9*777"M88/I@o'grY5%nM!(-`EtofMFhq*dYlR#u
+ s55oE8(;h`U8mA4aJ?\$LE?T@`6:N4HXT.IYLKb^@2*rqepN3d%GsRl8%]rqjH4=BH'7Z"(
+ h36m<\5Q^!_6;,MnU3*99baL$3^@NMMp5Q;^GENl\6:&k._ca%-*L("qTE8\OnbEnQ\Q(]g
+ -SHAD6KS0J[#&:RBrr)_m98&"1-i3G\5J]-81&$D(_sP9m#H3P]V`&AD!/imMbS\jK_8>3E
+ %Ndmi]QnR)*?$eM'^>bN-WkDW9Qosc7F];m_W%T2n9O?%[fca5FngUh898qaPKSg_9MJ5M?
+ -N.E=BGjl1Z2S9(C(>+H`F0KS24f<PEQZF""KFHX@@7W48[q5r99oK`"0c&_GD&W!VP^+LF
+ =XEcel3M+6qin@<"jd:S,ePae<`?/eEsI%(r@a!=f\/UfJ0/9<ZsB/oLj'H1RnkM[NBcX]B
+ 3k(f6P)$]>*:0/&qYFXhXSL)f.CGWgG%M"q&$JPmqPhTgQEiJ6o_^An1ZeA]8@@_5C-5+S:
+ ::7W#NbN2rlP,`L%G^jHXr1+992P;[I_^[)ad:b@)JO;dlT0.CN\jTY&m+([gbEY[G*90@L
+ Is>@/8R>^t'EGo8lV%/E]=U-ABW0*lP#eYd!Ujq"m+J=qK8%96h7In"NAo^e:'hQ'SG&eVf
+ #e$OHTI^]:e:NHTL"3,(Z/10$jJ]_;5mO(Dr4#i+tP9gWM#n,,UA'>Q=*6K^lpgV"GAu_<t
+ g*ZS2c)r%a<;NX]o5Uhg=fTeA]8@@Z)]d.mNt$6gEMp0<obM6:*gT!.L0%$\"*1rB(&hY,P
+ -b2FQLM'$6OtB2BBL$OaXcgpiK=T20krB^+Jq.jq6D'ECq*9I)N7hMh:pbgs=Gk5YaCo!`P
+ p*d)J,YRp-adA,[ZiG_VOq>BKNTp6(,T\@=LX4<rY%gt7.cldT%gUD)k>oYCHAGZ/gYGjSl
+ 2,`\1P`uA45^61G0`9jI^\ro`<\.3iEO!-f4)l()R@/:U&s`X"]Y&X5O<N,OK-i(u5:/K5&
+ AG$l_PMo*n0p!Udn`2^PlU<0\i<eoN9]EAMeQm>E!Q_o4RdH#0T?0f]6JZAf,aYa]mKLJ^*
+ 0QLo]]<LX:u3WnG)N`e0VuK@Rtk>m.'iELF@*W$<P9fRa(rl,ACl]*91h<]nZB<B[Ct\I0V
+ 95qXj$NMh?`&KN>6\8Nh8/V,7)TO^T"4^_EN*RiCm;WDn3Cr-?fd7#uA0F,bEdG.qtV#3t2
+ U@G+JBQ'J+6NM=-8B]J?&5<%1F'EEUt'*GElCtLGk[mce%PR0JF&GPkc]C2IH%MkA4o\dQ<
+ <ioQA;%,MaPi,rU?5*qTo^F.Ck^@l-n(kU2qTe:=gla6'$G!RJ&dulN'c%Q_G8.QD6lR&uA
+ 6>0':gQ,_=gJ>*S^FO5U*B@Lou\egTIp]i(<tRIICki4(EC:X1>.es1s8^7/3R9,cD@!gD2
+ S28Cng[]Iim7lVG3OV(C(>+2GKf->tFAji'#gl5Rgh+QHSpsAFb\c>V86bmMtM]Z\cIBPrH
+ 6uMY"&[fnVgOY-tm>LQ>70V\/7hB456<;WGfY7t#kFeGT.6iLMT*[L@:uYct4Wh7Im#1hd$
+ '[$]0H'H(U>#CuisaH2RYP#G7Vb0.t*hkCP`mOg+ENjr4V5JK^L*hb1u(7'Y(.Op=8NJ/cW
+ Mo@c@PH@,:KjLBGL(tG]`J4sG7X^1Qf2"X0"=nHN`/1FNK8!lnNZ:%l&.ehgEk#A'd`fs)2
+ 8(+V!a]j0d%RCVOWcStedT8<\U=3.lJc2[RAV-Upd(TM^ldC(c)oXHGD=K-1,B[+1BNqa3)
+ 2_9^f?alVFQ[gW/H:^AVS!R(2frNlKdb?Y1Hm7!^hEc@r`5<(`EP]"fUmQ;0D?a*T$[E!s_
+ X=#7IS@Q'[j3mbJh&!;o!L*?K)E#7)u?N.dN<0OOnG)eE4)Y$H[r*u[(UN4LuN=:OKnrVP(
+ aWH*RJ4#7Bmf&b*.fe2>lKs7d8a*[email protected]\%hk3$gQ_Z@F_@#QS0^5-Go39,o.;a*4`"6
+ ^J%*"!Y6DYN-RsP*^4u894j*<NfG_B.mmSd/?E#so&Rnh9(_[^REXHman9lnje-(L/mV<2.
+ nVC!\eJ2aJ,]$]eA]8@Wih=#2c=]?jh&'+]]HZ#04ne+P+gA-!Wq`TTVAusXK5)A;p0H3Gr
+ ^+d@'NGleub.ZjU_U_4?XcjZ/rKa%JfhE<%<._[;4Bg^0UC-o?TX0Ko@!3&p82uY`)bi?if
+ pCda3LE;kfhPmQ$N<ceZ0T6[cR_dE=2X9[nnm-7^Pq6<tQ^7i.Pu;M5"-q#(.]7FB0Wi1oQ
+ $n2s$JA>E_<,Li`W-VqTI<,]MH-L0Su3ODCO9A?ji7pS^a+YJd]'U7bA`KA@0@/AhqH]8rn
+ 47Bfa(KkqKg4d*t=:V@CGOIG)e-Mea;_6d"hb#*bLql:N($!;n6[dFbdm*m1j6Go%e;mY2`
+ HbRiR+LHCQf.sLhQq;pL%MJm6N<I<"G<F]AnKckR:V:6D;$i!&G?nG%ZBF0Eo`%KT-*ENa\
+ ([P=tT+i.+[VaUf-2&'FG"g7Rhg`//<D9$OR4b.Om83e8`cQ@3O72D;/$S`P*-gWX%Yk4?(
+ 5bak0rcF6Ch;IG_-W='p@ZlY>S+RAc$rjUh:NRr>+`heSlDeEWr4T1Q-7hble9ZtRhg57Z9
+ u:d6s#3CJ##\[gP1I2d<cYj>VQ(GCO/=hJCfP:LI%Jt"b\C,5*9khDFV>s`u**)Jpe!B`J.
+ Gjo+j`PJiaJNl<X`f5Tj+OZq8Jcl$:gNM5$4IQD[EofpCGL%/CeR#L_I/<JLeA]806^<q%F
+ mITf%Sm\/^Qe0b79"b/$%r0Pl`[(tHS4R\q=F)9Y&2q%W/H:>Dn:)WQ<(&?_p_U2qD0SBFs
+ u"2S.&>m6q0X0I/"7q"`R/b!;5*TD*qSK/Gmi6M\i@DNWZ-+j6>g:6bse6/s-"[-BUjmn)'
+ 2;!k>/fiaNE/&#'P4;Gntp.oDW=b8tcpi'A2X""6a?]Va65%L'Z8.Cn(pq;`4='u3hoRPbJ
+ fFhseL^]+(F[7CIFl&/M;X/XJV?[_TI]VK5Gb0%jNaRJd"rr.s#5=Sp&/.S`79&c<ugJe0$
+ ,V;_[Sl,\)P++CKU94T9C[Ki`Ykb.kSVk!<=Bnk6R-,-8Jdf*K!:]$]]N?rJJj:I2\8`bY3
+ j8kNjlI(S$KcTbY?se**%[*VbV4D9kQ*[Dr`%4;.HYpSmRqge0k/',eC@qSg:MP^UjCq4I8
+ LdcMbABchuV'e`HrB"i-W$[("?u5i)?aYMbbeMW(rmE&JZf1$BH8nNk.2PgsE0-\)8l_+;^
+ a@pV]H(:iI^BgOn:4$mr?+q]*;\EodYPH.ScZ$e3/3idf=E3>4^#E9\g5*(`e5!!O*`]q,Y
+ ]!OR7MEmusTLDi=%1p#XF)`F?A%Ml+QF6?:o:J]VO@MObng"?e,!-fK/,Tit+kK^#A_EJ,E
+ !.B6BN/\bqM]]mAlI*0!IOgW(i/hbkqb77@i(4%U2$,RtqtKQSXphqm_M&A+'/*Lo"Ee^g=
+ =8a;:i.NK>sCOm*D`j&Mcj3NjF.=&@!gnO$.SWVc`3qBLl[TEC0Rf@A+3r)p%7KIlBt$YZR
+ ;7%EkOYto""i$[:2Def<9rE5(<ESeA]75MsfH8qn`^o:fe:]d$-]H7$#l3i3tdm/k%,[ieo
+ H.>?if$d:9E[X`5[bD4?pUolq_CF[8\p%*k'RR#W4N$Bnn<0j,69hDp:$^?QVGqtKQ7YEsg
+ 7'T2Kb=\PRJRT9gVRt8=NGWuVSlIDr%n_$_]i7r&:J,]8!LLn2KrUnd2Q20I$5<=oEMh(H&
+ Xu'`d2T6DWID20i/AUG@J'NG&EcBjEEPpJ_RAg.5cmYCsVL`<Y8V=Qpk>G6UG#GB5d$HoK6
+ r+."L';hfXgaDa.'1OS-c8sbIiqQ(`scAp==,L,$jOV:0k70^GHehH@k3D_4"0XD6:+$,hS
+ "iO?TGDa8kK0,9Qj91;.X<MW(U[$W&/2@ElgE3*5Sf$]m:FCU]G0*f3a"Jr`mP-1NOnJRW%
+ ?L"An*ImG#)\D81+1/RQ43G):M9k+ODfWM7h6>IQgE:Abp?/rq(PTGe7l?+Q8fQjA3*.M=I
+ W&?2,AoQmWt$S9;Irpq5]h9+,F=]q/YQ:<]d]=[s24*OMfa<Y14=A4A-a,^I&:'(,],R74G
+ R7G*.cgNK"f<--SDoMuufs1c>$<I:$?lE-:KCS!B;jS"MSXls"[7F,u-8lWWI?';H`OcN1U
+ R!K9_Ip?aB@!;):;aq*Y`&e9dg&F0%g\fOaD`IB10e'hE9mX,l-u\2@WLoB-W8T))H]H2,8
+ 1n#Bip]DkN+!djsT&6o*t!AKN2=VqtGjTZt%,deAZ,eQj0F7kg7LP'Z^E/<A?4!3'\>)8RP
+ s2%NL;9.q-u&>ISL\P/kVKZEdU38dEh\6k:,R>,;R[Flb%bm:,e]5rDRs,Ns51%P;EWRQg`
+ GA(X]:Iet_^im]>L"&n!gqc:8_"'/A4O*As:.8q2XrmXmrR2NiabNm<9/#`=W<h4R5oP#/1
+ "#hJNjN3T5W(U*f0F\qBRl4UZKi2#GWBB%`4PlW^"B6eZQ'7sd2]<!V_TeQ/U[CNP%;=:l<
+ NuMIQn\\cEU"785s:enTi.d-8R4Mnc/W['n[>0e6"PNEbO4f&4Hh-g7br^$)OA3I!)IZ(PI
+ \67h7@_:FbsiLVEnK/416Cmp,,r4?sZ$''tX&U$4tYD"3S0M(+i_Jm(clRmbPM6T9TEZ#,!
+ SDmD:]Ye\d1"#RJM+2'_8l550rHTZKVqK+/+n0T6<_!\H#W7brKsbg:./)?74&7&%Hqq?qF
+ cC([=/9u$Sn#rf=)==ntGfrr,(77$`_Bi%3SH7G1Pn[Tpjl,&,^;Y#N;X&c?!(T/$W)H:dU
+ :;9=FcEL('--A@O>(?[]1jH%PB2Qr#/Qf4WFiV>(7)O`gK8o['n%YVM:3Bt`:u.kb4?gM0@
+ S&A0B;$Z55QP%,%.s:l1fH?_]`uYHh7\.Ok1N=$:1i6r+%udR'.-[hAI[Wr1tX\L!m(JM1f
+ t>1>r>]?O2pFH33>2^k.oRGieoHd([!ee)GI5\q&ld&GncpG_5WA%(\1goPEQYTP/;@,Q'F
+ e$qag\arE7*_9S4KU/udA-YS(1DU+a1nCSCe8%IWJ&&TTm/0Ku-/_[eu)mOq[!B\g7BYeNo
+ #1'Mf?WoW(pkh#9jX",K*$+YH!"r\?Lo3_+[Jn=9*^H_#/Jjl/t1hf95X&>qpqsV9s(WRpo
+ VEr7_hi#HR-\A[8DMJ=:FeO>2)LNB"[E@14EFYO7f:I*Zn6l?CdcBf)haUlkUE#R(eWp_PH
+ @GYi3=Rko-,BT&^:q>Jq=B/+Qb%;'6F<pm-p2\>)!^,Y:C]pJET<XfV"B=a%0/Oh'mcQ[%P
+ US/o3#3GEheb%/jFIA&F+.b7DH!3]rFmWLfSu`KbmQ%kC7M/)@R^:1GDW1Dct'rr5U=r5n5
+ S?K?&7_8P19[iJJ@#;"kPQ>A<HVZ*9pOqs?>l`GmFI$ljNCe$EfVhG#+rjdfp+$CIMQjms(
+ D\p*V'\q=DD:_+X3"HS+%>K=\#+Fc903&KjMD$r418XNVbeN_N)'JMn,GQ%GI$.I>N8kVh)
+ Fq6-.CXJkFYf2afc#aL8Zu!9@+:uFPc'>8gf"6<[KEgHbfbjhm!\RciKXPf,0qaD]MM),mF
+ r.PiIK0:pKS?[X)N5bFQBp*W7o@M_a)%Eb<6BM2Qp%$&G7J&b^g^1\2Jdn<5A&+VKI*mA)N
+ 5a9+>WLfG_8=(DmF_C"WXa(%@0FO_>$XJcHc=]mml"VYaAM`k08b6QcWbS04%%H$p1=Ps8F
+ D%h8A4-GmYj5Hr;LbJaI-T/hRXR0Ms<b]6E^5eJYSfWN`U'7'7uRp"!?GMIE\Fkh:0c>[A.
+ 00LDknk+?2o$>`+_4Xhh#E_i-'.V7S,G:[@U]6A1f)t<ZN<2"-pOp5dXY,"NIDK*cR.N2R:
+ cA$&aJX.iiJtrobYsC<ehK0nCg?A3U,\=29)N5bF?L=:lGA$sI<cc%l1q9U8`KFHQJ0olr@
+ l^t]ptu8,+27dSHfb]D:G`nGl<[RpF*KcU^0mC",V:"/SH_m_qF5@?Yc(j>G%Gqo/h@3+;G
+ s7:BS\8Q)B-bG*YuA]_0bWVp%;%5pS&@XQE&tZ6ijtXkYKlCUt'5M/gDo6.ora%*Fng0faN
+ ABIF+WjB!bC>@Z-ZO%%3p-h!h>/Ni8nT4*U*HguqkA'pp2BVl(2V6`!]:^3uKmDmofe]_:'
+ '@WBp#GcK8)58iRMKf%GMS1GhE.YHkIFm9[)c&K\kD;Dc<G38PUH]Q:PjtmMo9W5$.g9cdE
+ hmjlC/Pn\?%F/TtH&.G!Ua6YqNZC3KChkT)W-.FWY`kS;F,$sgjXq"^N-Q*Ndgd."^uJ..&
+ %<,UBVE8;gg',AA`fTlZ+-OWVb`5m^D\+RFC=H^3D+oI6S<Y2-c(s-$Uk#m:9Z/SXJCCj5J
+ K?-aC3Dd4W/$E/1t\q^k&`!0K+^I+q8kmhPX?L_I<b+A/kHpD2eTIC%-+U-nK=,7L!0e^oC
+ b\`Pq7U1@EB19P,'53Ce^FmCj9kA?a9\1:KW%3=MRr)B,]TA5cL/eX%prAtW_?\?8Ulr=nt
+ sYJ:(*JT'Tb%@T/D_<8^eAQ!2?j>=B2SaB!4",]L@5Q:G1JS)m,"$M)/1n7g0%L<>br:mP!
+ ^QC$'W#"*Ocf5IReQcL>!uB@Y>d)bi]#%q&S2o'L%>n^mqX1ua@-<qAICcPqNY=6os8>$q_
+ 2Vh_V0p*1cY+Xc?ni*[P8d5IhL+oh>IPrFr@'ZaQfpZZcH\@dgp$$eZ(D5Kq]9p#$%Ra%Y;
+ [I7X(_!4Hp!?r&fVe5^e>9^rj6=a*^7,?mG3!D[HVn?S-GWWe1_&g@],btLFHVc"uinm+,R
+ oqR?:*]:'<,+eZiUSU*Btu6CXk6AMXd%H>*jH*R]ki^,*-N"r2HtT(9I#d@s(<CI'M`=&Dh
+ W9P.O"HhGojD>-KcUd<6Z"VukO77)Vu_83A:SN:o!?1VJbLu*X]IFt;QD;&NqDdaduSqSV<
+ &XH&+(OYQ]KpDgQdGU)(7(<L@)&`8>iBnQl*L>aL_1N!LhVLYu8kM^UW2Qr>\$1hrK*N3le
+ a]k7.Y2iP:GQr#Qqi9<3B@(LE&3>=Eo=_6>I5<7")@i5q/BRi>IM`k?bn31o]WPcU%!`s#r
+ Opf&m?1jo(-(q=2"5'm'G#Sd:?@>WUfWN\@=MmC\df%4aQaVp9.j7%6AZ;-Pee[_PGg89S)
+ SEYV77&QG7_:k*;3s['pj;,O;8"IY&SVd\KIA?_8>q0^*U'iM%eu#Goa\UrruYd,7<<\r;T
+ %*Y];f>[0sL@pre'D;(6<@rf,Mp&cthBeY!`=\;:>=9_$DJLjne0UDtYH@68@rYf0]j2R)N
+ 2A6iATd*'f#fo4k[%E7H97u3@DZg2R_ZIpTJq[NNa@EoI1mgU4;B.H&#eb).Kgf#9mbN_k#
+ -^A]CMJMZGk^#-DJiIR8:?0>on^$r>=jHqWMq*40deS+NqpKB=:V0Cf<.+o);hYUDVUW!/#
+ /h)[r,EK>E6VcaGbk,##Fo<(uJ"8'^j\_MoO>a_Q$TL-;8r"kEfP)U$K!TB[EKm>j@X8VK.
+ a41qC[4]4Ef990&gSg5)nT_8<3B%j+"-oehL(MN3]L.k@CVZ4,2i_LtOPDBt:;cF/[PChjq
+ /:JZc)ck@'+T0@Zq9;>m'25m?EQbl%q@)2nJY/qpuWbja3o**TWc&BXr%E^*F#\((6kg?04
+ Zj7G5.B9JN9MIAk(\@4g\p*V7p"*`5#1^.%]*Lf3H7'mYi7?95UQDKWTOZ$&[D"5sYftPXc
+ 'r,P*&VJqobV.n"uWk0gEJElP;F\DN0KLK^3CY!$^G%Iq.696b%.fPU*;+k`W-J)GiK%oQK
+ &+)o3R`"3B!3.>Bi7nq2E,Po=&Vn8k6d.@@=6]-VoUf,,-Sk+)9-A1be"R:S_kgDWg**_C`
+ gjdU33]8qR<WU8;"tYUn6bn%8c&0Nks%D*&Yp+((>&g7'j8Gl8J?Ebl+%r643#a?/tepV24
+ X5$cEjKk5hN&9]?%D/$C]C\"^^L^#(ng^4J6JQJ0-"UhtPOUl).B^c@_Dnl;J.uhf2Kk6[L
+ 9q)@ajI.rA/A@,rBJ=PlA[OQ"?IhgnqSkT'q,jMJ"q.'"IjOa0/$I=PTNG;3X0f5j-n'o8Q
+ D("G(;J=qSH_6'CmW=.i&/EkMX@M&EbqIG#NifZ79c90`PSo_?[hes*-;sOfqF`:mG!+B'M
+ @<f[5,39JNDkeQnFGC$\l.ap=jN7gR;5Hf#V5QA7fEdSPu@_h7e<lJr@uHK,-'$;,8:HXRJ
+ 9ig#[jThB/D5(5Uo)rUeQ7Zo9BKQ8L-?."LW-K*Mpqi!Qj<@)@T>m-LF1[qiXj/qKO!5,d^
+ ).66C5q#)?O/(Le.4/.4^`T#@E:Rh6$lY/%feG[b@B(-uW^0i:F,`+GP3hI)eO,%G"`H%M6
+ IpPa%lu(RdXgoO_Op4:.>bWhm\-PK0fu<L_eR4Q(.Ws]Y)IRPN6\Z##]l`#;D.\4I)B/84F
+ 3rUn%t6W+,hqCHJUHt8mQ$jn]GeXD^ga4!Mi0_\N/N!2.4Jj4m^AJeDnc%R7&#@,9p@X+j6
+ #TYqH^&Ao-%1,>[94S#$C6DB:jSV46i/>IVJW`/YbVd[O["t$2e2Fh#4`'XX$e-S.`B;<NE
+ .p&srl*XOYdt:F!s1*WZ9BNupSEnUouQ^ecV-;0Q[Qo;K^2NP%J@X!$"fK7`YaO+)UnJAhh
+ s=gJ>+eYuKFReS><BJ<j]77Karq"oF[Dknisq3\R\Has7rn!).Jqs?P6#$;jC?="]#=-ZD>
+ p$:4(q2"8l!+USkOso>u(9ojnJb@m^T-`X;GUBU-21TCk`>.dr],,?SlJ&eO.3C:,#/c5Ro
+ ^g7V^Zco+XRf"L5%&6m2GV6pf`H_<i4q.9#$@BoVbWe=mOAnXNupUCi:!.%K)l'LX&Pe^f7
+ HD2<i&R"L"H4!_<j^kWP.9W#h&d36b7="MF+!ZH>JKT/K4Qc#&2Gjk:Z%f`-@-e/lr[dq$$
+ >T`F?f5mp3gf^uD:^N>_s^D1h(=l_d&#Y+)8PD0T2=\"e,XP">9?4t/1/>B]]OlC/G\""\?
+ S_1MtV5!DB49h\6^W2QZXQg:?]X04.MSk4;sl-#>K-rrB!k!n.39Vr^gZ5D$jMpkk6?ifW'
+ 99q-.k;V_$6*k/ZW6n=d\HLRNVLiR^d5Mfs[9c)3g8YLW!>ai$job/D``+:"[CVr#Si(49I
+ XHE]EY%q40KJp\,7=5hA^$.T>d7[G0P]*#9EQh-d/*G$@FlMaIXGG9<fI=D`]]0:HQE)R_A
+ CGZIWSN;^"t[WcA-F]8(ZO9JSBYR;8)b!1$PB:0#)Mm;Q[]$V84*hr"'F$%KFlh2AK241GU
+ ,<7,n.Dqfa_'Yj=hLNuf#CL#h.iDRKHRPm/9NOmq7WG'Z9]*eX?DHOOq8L=a!U'@Qr>]B\(
+ U-dd8E!l9Ei#AX5>Pm1'iNj5RVRTh2Q-kh6fQj-Z9VJFed3B7su+?!uaW9,b_Ud;<9jfei'
+ .]DKHr`O2L5i#q#Bn0bjRP\^km))'epg^`3qpS>*;,O!Q],00uTOZI,c.S_f!MN<s2]lKI@
+ +gr?8kK-e",T2]'bs_L<X/TUW`?)FP,b0$YK>T@A5bcO*t$5SPK+EsW<>ls/A'F&ji_'kSi
+ :R/n\^bNB2\I?Fm&9%]b?M=9I(ZK"utW6"Tnt!_DK'6@oZQ1VPU+$h:UQ>rQ^rq,=beR0*6
+ V;#<kdKIaTBRE*AI'-DS.@7(ccSKEk0Q/3D4E/R)UYL>*Dn`-hR:B.._$)U.],K!j"&bO:f
+ &=H9%U?[\46]G(F`O"i@n*LI$IK(>\T`\ePSTB(;pJ8'OF:HEOW#k^W;Mbs1];GpXmN[*$2
+ )t,%S+g"p"`AGAN"Ppe?4!ULMPaN>K[jO65hu%j,Va5BE/$`(;4)WhP9EQiX=)i5"<`U"&a
+ Z_iD=$5=_(Dd=S_>XG:KNqW\G'FnR!6[!;jiWkPk\/V.@jI4[jRE0s2V+")!#HCS!muA`?,
+ \Y9Z>Z9qG:kj7)"up)(RI3D3IBk.@efDSae!$U4!kE^#Nbi@A43gn7C?kA"dfKrSC[5ja*i
+ Aa@0^\E;E`7K"]#@^.I.6UK7b2.#6.1b/`!DTH;"Dl44`B.LXg,sm(G'_]0FTa""5:>f[Z6
+ 0^eU$50kgXF+1f#f9peb6Bn0cug9k^_S!tA`\fJGrT'Gt["i0k2;BQ)^O9U%5ZnVDnj2P"k
+ 5lmh`()OB"k>#)[=4hFup[Te\*X.5so($g')SBF"0L7[?k[dEi/A'ECFmGi$.I=EorV[0_3
+ 'au1.r2a^i.*Yo&<s@Ah]G<X[kSHuQj-[JdZ6Wl84C@f\kt`f>X3fAdbncq[&Su3lYA0`Yj
+ >/d=0EBt`NZt7eS+7,!9%shc2lfHp*TC89;Se$a-L0Q@+gs604,1kU'c.Xs$T73L]YG[6:)
+ e(%_G1S+0)dCq4N*go)*N#8h\XjJ8'PQ$%;X2QOj=J*cJd7-ie^reNt0j(\h=`fQhABY:.G
+ UhKir^V?)uGC&\&+n788Lci6$Q`cMno4/]<JkC(9#)>SfjWF&RB1K6CsqjY+?!7Lq+':M",
+ /enQI`5\7"JsnOK`Xb'GOGeM1g;kX!H-QI';-e;J7`I:#ihC&2SkVYi\)sHY-4RESJe'9iO
+ UkY8H%B$J*6rK;]bf,tb<E:PiBi>%+eQO?=g.s2BE3G"0*h<o[=qgF)7O@m\V3_IBYZI?Z3
+ /@@2ig!M=CpX,K">X"NUK6]@#liWq8fDgkCW?/jC:MOc3SJgJ8'PQ6;<k'"nkNU5d3Eq_."
+ *XUVVDW:kAneL$D@mj-O(N<tfoRgkBHm`H>#k-NOqZAfV5Yd@a=,YX96scsW2"!r;Vff=f7
+ "7nuh9k,p%=)ITgEe#,us]huZ0rtlhr,msXR&IIj77iIm=J:Adc_DF;QX<=Mq0sQW?.)7[T
+ @ZRB]SI3!';CL=hP[loaC=3*@)DEZaBE70$G-`(N&&5+MZ*1pV(=N8A]:(Ha"r.<rPET]H6
+ *2sl<+j)4_-tq@j9(ecO&:TL?b2,*UIRPe1r/+L<j#[V&/[e38d0eU<kg/`T*E)XjY6lIlt
+ /&:<b@<h&fTKJ1)++7?m4.U[;/2Tj1:VFci5.@N^a`47>!CF3H0;Kh^K'2=LQYu!d.s-;Yj
+ $>c+u6PihA])K,N3nk+=rDQj1>2Pjo:jVgYto8$k-[U9;X#3G?cb9EQikC&Ro$&-^u&S&Mu
+ K/Yg/X^qB&d;#An(eAKt3W(*%%b[M8o)IT8eeu`0<E]MP;pcRE=W$klCTH5!O+)sr.dt>EJ
+ 16<#]M]F$>&iFB@5Qa[^/EGNsGHZp_$g`+Z_S^5DK)02#6)3<d$7BKerdfGn>NS;(3A;+`g
+ U8Ud%BqgfK*MobK:bpL%^mAblDF[P$.!]Q4ZMSqML9)Ai.YKWYVLtD]n0sK`>'+'(4(7O_(
+ IZ=dr9+jS'h;H5S?Z8@(RQRHse#dd;?%u=1pEr[0?f%#$=Rab*=L,S;Fq,Hjho&JLNE8jc^
+ .O#DZQo(Ig9JHte\4g`=iDM\E[Aj$m-Q)!l(PI=2tuJLNDUhPZ0`Ruu"ml];WrdnP7)d&,&
+ (Qj-[Z=%Pu?:8`_-XgP'>XkAh5d/X^X:(I=BOH4D1:#0M;G]47l!>`jY;,P`PF_fXS)S<OC
+ TqkIq!tBbk3[[08J7f,J_q[WjEXa4-e_/X58ebYO@+e]fK:u5A:9]dn?!JF,L]Z%>5i%C+>
+ 8i3CR%*<ZEd+6eUS:q#)ITgT,=dcI*@t)@^Qk##,RR5C!Urrd$Kj;lH'=(ao(+5<)ITgQT7
+ -DNls2dfan`"hL/D=o%=kFIOk:cP@"3\B<ppuGr.o';`EKBGYl[BUFVY;pUo#o.!cr&UV?C
+ ja!2^+Ea*[da5BR#I]V_T<a#(S@=IV3cJgZ_W!l8K;!ZB[[#/IjI;/iq*jdVB%\:kJOXAF.
+ ENrhuW/6h>bTgS;dJq1nJ`AqMadGVC8(/>AM3[Z$lo(DchKlL1l2%`S;%BsZH1M>!0pE"es
+ )N#(0(=3&+^Jc*T!h8ec"Gr(m5]sZ#Qj-Z/;fQes>[5f&RXT^7BMi.T%F4h9^gdF3K>$gmj
+ J0Fis/!gPOS.DCrR[D@=KGD'=kO09]E#QB>>NQPVD]FB9*=*>/r=OnE7-fUq:Mn8?[^C2<P
+ S.N;+q'C<iK<4DQke-W)>@YpXg6<TPd4KO@197q_\fn1@t>>0k287)ITg?F6Ci&*@Xl=^SB
+ 7$kC>EH!']P:$E"+V4O]E's([93e!3NI>#9``J45BFr:*8o!o6L#/jchdLis[NYr`IhB4jH
+ '_DRce9EQi3kiBjL0U@iWci6-_&NKmUU&d+^b7V3oj92,Z:S(Ce36rM?!>`A[F6?;CGW>%V
+ $R-dV%t>L3!5(f;c-AF&E-\]cUIggW:_+X3r;,`_gU:r<)&XleaWqKj84Z:XB$Fr5S9ahp=
+ k':SB0CP2,UXrEp7Gao!Q`;Fm51Ku@6(!>7h,Q0WAJleZJ+'@q\%B9he+Z#-;L)pjQ+7[><
+ 8>CVk8E)>uLQ!hnFMI4hmpnQ*Xs4JR06/Yqcj5G5j*qo0%Hg_DEYl/<#RJXbR!X[:mtId\T
+ U8MelI`1M73!hIqW&/o)47BVtlU5_,>d=H\I$9CG8Nq88!FE,Z_s>IRA,<)Ub`]T^fHNTQ/
+ _kV$FTVMBo?io-RB#cPMrm-MB(iBi15J@b+@TFDhu^uU=n@e&-q9]Vu*Fu1Un4qC;[3YOL_
+ ApMB-PqNhD-;HBW1(Cttrd1nP%#^\:i_jQDmmjq!1I=IBacgh"3d'^e>$?g[%_++U,(c3.r
+ tF5a7)inZ6)3<\$mTGi9,rMQ"r#gPDf0:ECqrIXr:.fLn>In1`uCf$<7]eA*p2VYoCM!@J<
+ 61eH0s<CeG$dZh7nG(.Okd+k2OHQjPud3)?:lR8;#@nn8GZjJDh'Q]]'os#$7s4J`l(/!<:
+ j8Y4tLr,'B%[&e]6\nn$<p_``S6X>XqL^hOk+b!cFPd@f_!4=k/),BY<A*X)`3*Kp[B'bsn
+ h<Tp?K@:<d@MG)XU.?mmCiSi`sY?jYG:E7j5WDd4/2H?a/E%$Q7)P$HFK%#@iY"8n5d*bK[
+ ZpJkV>K<PU-_GbfMqZ_9gObIU-o^l8%hEms0]TiqrAs5uif#d5gaEjT=1L1d.J*()Oja;TY
+ <7OKRuqeJ("!SlWGaj@%8NHT"VZ:(3B<@,)MS&[?=""`GBh<1WMpCM5"'g?*)KL0OTu1jR6
+ [tu;340+1n\_Ug@#`2M?\'2[PbYUS8aAjc'pX>$7Y!+XmCqAH$M'C<:I%tHKh93Z80r(a(g
+ m*Q3(m>)Z+GP'_3u=M?ZN9aM[!jOqDQYXP""PUVZg"lX:r,"pS8g6QYFPANDojC\Hu>"8+7
+ O>5e<jK6>_rf,+5_7nWqBjC+2BNI,AC[pJ2n1oRLWKR42W,a&DC\[6IARlNK;jJ)t,]Qs*F
+ h^[email protected]'ID&'ML+4`$7@*PZeH)Q[5V(7('=ea:hRR@`Il-E0tUDr3b.p
+ W>Of3HGBo5B[]s0!HdD!C@]0d-.HS=;[o$TdC;1LeaMl3tr.0ZA]#F6=hq+QaH`_9GEX-5_
+ =W@Mi3Kjh_'gd>$@AbS.*$MRb1a'6^oAY!']A0%]9QPgf'W:_;W20CtDt)ro#gnfWo']eRU
+ j+g_RS7C.JX.MH6i_iI_P84aZmU2)CI))i^5\6.,:nOdOA1ZA4T^X_5tNN^JG2c'f5Uo8uR
+ 9D=b\\aNs<?M>oeamTe7#bmLRUZNeuPZ;PD3b3(Sj:AJG<l+nMZ3j2f'WQ1ERpYP'U1cTgR
+ -qr\\+XkET*Mur:$^)BoCn.#cE/^$^=0KKs"jTHnBbhdf6q@F<I>V,4KX:Y=An\F!580(15
+ (*o%#Rt00DRi%%O,\@tD,!WSkF].cD+-kslFTQ`b0%l(9q0"+nO7OVne',M)Gp%0!&?5qK5
+ Hj`6(^=G*.\;)*^"s=NS\(hA^Bk]5ZeaCIeY)O$:(JL55GQ9K4R-[=_4)NT]l26/Bhp"HN$
+ KE^E_*5n`%Nl@)paF)<a!?H@6".,tT?p*B\QXFWDS9GWM$\V*lV[V^L%b1h$t)R*W[UK0k4
+ "hqmZ)1skQJ>:br&9#c2&OgHqOq5,>d/'H>3(J7=nj5]0VgDBGV4)0Zs_`?J?#"=L6@G+5G
+ 6*FV,m@FOFcCKUV&*MSW@BhF\#RZ.u14/_2e2>(@L(542n,7ms@,qEX.l@%Y#UMDS0p%0%5
+ @oPR>IQ2-:P5o^`tCh(#m:\"n,goDa^c4k\QnP^lO/(5m"#D-ZWpbf)$$)42#,6E"&9AeW`
+ !Y*KB&3P8"DaAC>UkHXK2g?%OR(_hTLiQrW?cRE.+F*oB*";K*d*AKUA,D8Do[L)9><&[qG
+ cS>8kISk_&Imq/FQlrq[Q1VSVungL64nNfQ]YL&1W@_(r)u]c)$YfN]XjN.C["8SBOC+j<@
+ nSG(LMl+o[K"Ii-s,ifi_[V]*u2[os%*__g=9.WOi?bNAdq2oY2K7\[r5CSR&<c"^dJcb_+
+ TQP857!pd+dK"O,;]GqW)8@0GI?C#7(r$!7<u0LE%1EGn7\_-Le'#c:@4te%*=Zdr_Lr5o/
+ &kV9o&NA!H)G][H:D;6#1PadHfZujq]ZIemGrs;5."f<m+\u[Q=kV4!lA8SaNrJK\f-?\>^
+ kYK"k7[)'9*kc#$*_$b;],b"5q)"8T8updQ>WAhi]NJ*])-f*br_PJ.Jk6Of/]]Pk@Fj\qj
+ VTI.c#k;:c9U.P*-(H]9eNSaGb]!=946H!"ml)6"49Y!"55RiTs#+sMUebaW?)nr<k.a4D-
+ YcQ@Z7J\$0k<(05EAu>+rMhKD@_8q@,];Iq,,C*DF3-c/H(D61p^!bj.iPVlR/;^K+XOG#\
+ 8-oS/p9Zo$d@s(6[R\[VD3CH%Sd*!B`"=o`N7?<&J7po,^C5Ic_;r_%M3>p_Jql2%5IB9'_
+ nodrX^&CLD&(Hpldr>X>`'[[fji<^046.:$ItP`H>peSRJ,s-;2#X"kNqPJY;CbqcWYX>+R
+ _bG:\+'Calisq5sb4,eFh'Fh^%WG%u(D&e#IGN#":Gq__RS&dELb]`fDdZ58r=iGuHuj=C9
+ "P>b>flia=?4Rl1^a/^^;EJc^0*j:-:FT<UU!;"Ln2:r^t2naCk*i`-I/HH#ksnFbC?_ib_
+ =/2j[T5<k&7*NW/<mbG@*YbJ3uAS#G!H9-%!8tk`hFuJpV[7_D<!sh.7SG(L]Gi`eg*GXG@
+ Il-BC[4>+5(ki$:(TQ^?Pj#s$L(-LP;-%Grd\ZG&VVB]LA@Bm9\f#4C/=OR/T@W)>UGVAmY
+ Hfr&(^pUeDr[PuCW#bPp%0M%.$Mb4Rc!qt]mFM%0thM$>lN4o2]/cS#/EaaP2Z&+:n:2<Pl
+ o.qLlE?LYqm:<4EqDQ@q/slnh*nB:M+.Qj9pD5p-ht_f''gAhQ(C/Ug#u&KEfrN8@ueP1gW
+ 2/9[fN!fYu-L0QlY[U'qB[JBbpAHhd@IjV3WlkK]Vc<F(pTr;#psngG9S<c.2j#":Gn_pZN
+ WGg&&g+PY1T!99Za_X:`6Pa)D>V02%N"]]\JVN)ZY)H"N;TAafeFL-pr#">uB__PP0g]f!i
+ ]A!u.*^+fPs(9MerP=p$AEX,h:jD!<#p_B?JbJH`"'65pAL%I;9?[SYSFk+$4V,a9W>"42*
+ B*8&]:f9#?<DqKet8o>>H:bcq]ab%CPS_*/5TZE0pSY7.(l8(,-OJUbQ\t"4hhkkQ96_Jr+
+ g5a[D?`o0PoAqU&]WT$1cAOMFWbr(VjD4!s];YWALsR_[euI<h=!JXApf.95";2!2g)!S`4
+ =nVMEMXUMeZL'>'q=9Eb8/7rin1cH1&LK*AZ#h&8k]RBF]TauFDpV7/k0Sc^+ZQmFQh53SM
+ %D]Y2aRIR(E6:,>^TYWkmqu\l'09:uWhK_fe=>E,TQl[5.FGTa=1L8meq^lXDq%44[X,^Vp
+ LBc6j/A%`UemIo`ng'u6*H*#VT_?pZg"FG.O,4(i"!orjB\TsIoCZ^i^r-4"9[QD-Nj.?<R
+ b:%1i1m:d3'I&[/&TN1c)Nh:,TJ],^)bRnGOOD,[n"U&aErqMI\63)i98R`bZC>a>.o5>Cu
+ <QAFr$#SZ\er'1jYOE"oQ9\X&2YCFQrA.*RGoce9Fm'+4lglDW^#q`J"dB3\Xo`%E`'4,UO
+ iN,n,sY*,oBV0?\$*6u*j0$^;Ha[-URX97om(0#;I5c&Q1%ApJ'?n\IpB&0*o`SDi1;:i"[
+ cL"3ff+X[KoZB#2YPWUMJDanIcpE80K4M1jLC%0(X?Pk0F4Pi:_3QQQ-\c,g6Q''OJNZC2:
+ >^Ho0,9qgh>DPt-4QJ%CZ]GBhI'W"Z__U"!KP4h_9Jp6F-)YJ(ZY*(nX5fb@OEVYe4ODuX\
+ -8R&Gj<d-L+BJLD:u2u[Og1-a"V3CdK"Na,*nNW/Dk\"_,g!Qk9-[:!+-WQnFoH0D(P;/lt
+ e+24m:V-/&N*(O'[5(7A<bq'$1e&*sApXfh$h&r]1nm!0G%Vl^ZPeaiQ)M9q-UU>oFCl'u@
+ *Q4t[=j\$=R:S/tL&LeeBb6!ctcbt]/W+*'rK,nGp*bcMEtrXsEhY^H7eid1^[(f&7LYHLd
+ "#Mlt6A$QU1;Q!9\M"3M5KuI<">O0O;)Gi@;=d+VP,T/gL,#MM]0bki@\p*U<HuG0GM7h/:
+ l+U[@(,.m2F63mpeQ>aOY?hs-3?Yj/#Y(.`9*=*^m\t/OE5FEeZAYgU8V'7=B?sj'V#bsX0
+ Tc/pp0;2VbgG"F?U#m<Z)/jCS7k;(T7<GDnRe1JRqY\e7imt;6$ep(3B)-r(MRjann%U0/4
+ lmQV7Vh/*MlX__Pi<&AS"&9J>P5rT#dr9\QMZ0l=M<"o<>SH'<uh/`c.%EG4X,^RQ<UqhnM
+ Bc2-EZ2IJ4au:tA+'AC<$,!Uq.5[$>o=(3mg87NXVZ%-M;3:G30MhdXFoi.VtR+Nb6EQQ&b
+ &#TM!:)P$NO>+(0-028U&>\@m0r%lXG+=+n8LMAO;?Q)2%bfG<3mY;2g_H:A9SNV<8L-,:R
+ Ynn1LfhV_.rD%?5DFT5_%YB<PEJk%NQNh69][NONgQ=K4PY1&>>IU!!:T.-c7N!R$!l7S@m
+ e!rA3C*a^*gXM1(^mK#ffbj=H9P^*hL!j67"Z4)<Z"KTj5%#E:4"B@NDJ-gQn`*<WD>jGQ'
+ E7C#)h;M=#Aa'TE4Ojf-G/&Yj;bE_Kfkek-I$8"*cpOJ[<B1lLCnr`a`R4/hY,^`QV:1cl[
+ c8!Ln+^@q8=h`E]*fom'ZtVF3Y`$kCYb^,-\Deg,%^Qo[AI2f9Tk<=8BlgM[a4WYUN9*VI?
+ [9ll!m^rJUdi:I$IgY@icpP:(:(ANLe?f2%rm.dCXoSY2/<\0M.FoVGh#&:QQ[+*@Fp`@Ne
+ G&u&E%agrj]$3d$"*J'nA\k\1-d:$>`\[\W^2741%A9[,SYo2O`^$Z/=gJ<]j5/9bj>F^oF
+ ,L6Vl:a0#3:*)Em`1f[_,"%1d"rDFm&*.YDV^,P9=CUd"uY4mr(HGAl1sPj,?rdbl`\&uHl
+ _Ce9A8+TU-[2uH!&;HN3q4f%M%[)>rT*^#4T>#HhR6_!.&]a<>^T21M5:H9#5"hZa7".9ne
+ 3G:MJ1GUVRh_*/jEmSC-DCP*$A/8@$#b%F1P.$bu,mpitk*`MUq#E?Xc"a2b*RUr7GaqTCP
+ ,^fimO*tt5)k@ajC5T()`E8"B/en9?A(diS,7.QHbn$8>cM\e$)(7!4\Dsp8IIS6W^RlP-,
+ *8B!ngu]V,P9I\V[[E%1TS>Y_,E"JGZ^^nKi0)ZL0@")a%:IV'n95Ok5@M>g='&U%%k9%Ye
+ 7pl2/VEP-64J!u#/EaaOtFtsOtJWc3d:<(ZU1QF8HXU]!"[hEenC0>'*e@ZRHFihiPL;WW7
+ C:i\&5EE1FWY+/[N\AV1CLL=QYc,R".5?>0fq^r:SZKn@O-nN5N)Yr;7h:P.9VHTV/Tr1>6
+ Mdm+AS_56N/BhK2`G*2N]*$.!]Q4ZMSqCAJ1]B_&gXGDTqn=^[BsZY%H+^.9R^4Ed)?^8kb
+ EcCY(1^]1.D<jc*_EUhYn]TD#%$dDrq!#J0M/^)'&Sm*nr/,4MkJ,uQN8:q[0=qG&j7&<6,
+ 8JlM[IX\@b6%V/1]Y'cS.P38*(6ZdJ*B'BbrT5pGW-MJT\X67h6\.6qEaN9J8l)nCTVSAO-
+ Bf$K1a=gkGpd%Khbp<VbEa`TYuZANkpL`;Z^I6&n!&Og1_#<jH!%NF6dGPo9`JK*V=>Rs:a
+ e3kN&+s#TUrALS<eoBP;)5.]fo=H-gj,Y3kDW&P-.t/1h[G?=hM1FQaoin5QEc,0Im[W2ZG
+ <O3T@?M#.'0k_hSaM^;X.t0qdqXb^3oC1p#lD^]'\)>(nDmHhmFZ^INI9lSJT*kaVX(!1k3
+ )s'Q4g(XYAk''9#ZhdI$)P0&>=SK0Hs8"![*9Kjl$Uneh9#4&>^_1Mso191eU%J"jVVsT!=
+ eBLOrV,=+>n/'u^_tEj$'3RYSldr>XG^WpYC;4$c&OC>8Dr/,E^GKWNG!H/fUT,$O2Bt(+6
+ _MM2DBhXeZ[i>1bj9gp[E*\#&sqbBJYscf*cc=CXfp9955L)FRYP!]5^djX[=-C%R(=0Wo[
+ !hY.@HPAbe:k%%GJ:0:OIjZ`Cm\UT9/<6J@9CRDIorYC=S3OeB@:JaD['G[Mp,]o<<bEK'=
+ A);.5F=.h]sY%_[I[#*0ij<fd^W'-6t_mGkiA0/>n(e##jAXB9^0@<-<@nloV+m=kh\];8A
+ D[F+Wk8=TOW!rJmnpHqT+T7?hXI`4SX>?e2n.D`j)2@9cu/?[O(=0GX^*0,kZ\*]"Ve3#8e
+ SJ+]si613@Jl!j91?9WG)SG[e42ggj*-,o$RW%BM.*::t*BJ;H\5kP*g&rA?@:.!@@XFh8O
+ em>*I]#jM&e[7!U4L-gnFuZ)Y2@j_(O=nGK80U5&/?B##YpsRBj&F#SirRQLmpqgr/TEG4/
+ 9VpJ":.r=C*5]-M%!1\)6%pKEh>Jmt]M%O!h<\HqgZ,Oo#9mFmEXB`V/]RQafAj@ml3YfQK
+ ^di'T,RE-cKO43PQ<m1%Dlpr5m>?sla30iW!aK5oqk&Jk]$j&1Xm\(IA2nae!*74]3]]Qhh
+ UMUh%c`"dUV?&81-rb+RQN)UpV2#W'Egd9q,n'L#tk%PAEC!?A!cI3GPa'ar]A7\o3hVHAu
+ pg3.t#<N!!Y3h8S^rP5/iUl&]B=`ql3iU6m(E#0M]"*NR*F$Z3%B,<oho*MYmhi,]9^aU#b
+ AZ1G@91>_(DjuHrQ3oKc!"hnUd:->H!%"ROnAM?9[[>$Y[PJ8SV9DN$#a:I:Sao+f=W=uN\
+ meGNu^:d>O>O=3q@W+ZgF"^e3#9PglbD0e-/Io7%mH2^]-l;BM_i7$!.eOG^C\('eFH21;1
+ <1q---X_,`);l&ad.Rr,>c!8\rY[NH+(B"n`\)$n4=5DpFLeTNdB"uOur(f:jhoasgqf)Ha
+ E1KdA:/0R3R'FKu["j:c'1n`u>3M;<irIY2WKAbBuflAeL2!EJj(NES"M512Cn#XD[],Qfu
+ \\#I<GjrMe\t(Zl'(Mq,S7erIgG'.p/Bu(1W6#Di?RI<;T#6?@ZmcGV8kRm\Ibru.%saLLX
+ g_+>[!hZ$B-pYtn(ta7O#2$$6[fCo[sc^*4<VGa87psl=f/>or=]jncDEF#\o]C6CdCZ#nh
+ .aj_ZXiUrr,]b4>E[YiT\<V%N.=I/DE)mJ.K7=_<F7Z3n*^3[WGEb6/''Of=%G?')<n.`Nb
+ IXS)Rd')-@Y-?>N7,k3(pfH'aArHQ$/9k][<M#TE%B8!s:l@t?Z_Tp4b3;Q9!/TpKU^"7#d
+ $'oj3sa=O6Q)4!WV67OH7)Q_n^'OqCV#>&'0NU<;A^rJUdi:I$Ig[l"/U1AM0Lj6lS1hbXP
+ /TF'0Yo)q!2T;_+WqM+I>IUcO)@e'gVG,#L&KA##d%KUu4=m@J7Ok.&Acc_sBG/!83-Xd1%
+ ,L1+Yt[o9KjGirL02dCaCqf@4irZj$R-dV(S9`3&/q)2c@XMt_lcS.J+.EMcAu4;&-t\rdJ
+ uc3(\@H(Za5d<#-N2oGW9Mqh7Im_?c`p9^>bJ61!!#5E]XO9JG72r/D,ma]Z)<fb_I-IBqr
+ N+bElX(V)Ro0DKG_02ch:\P.ACW-rl<CEH0&mc>kuV%B,bYp,g6]p"<3B:tfU`f>3/gra0'
+ QMn19TbG-m4A*jSVi.29bJ/13V%>q7._fC;@CRl4Z*'AHWAdH?\'.iW1X]@b0Eum#C!2]cK
+ Fsn82S;.:C8>%S/XFOTWCY,^)US+ou1+Ol5\;j6*\<)u0]Gkh;h0k58Gb(@pDVr0fBjeUpM
+ ?a)"e8EBoj^A2Hm@WW7R3$bF_$?:R!+u*&haMKLDbGL.UFM_oLECu$BjeUpN<U1UH>4K:1I
+ %?jT?!.W]o15"c^m;S>SN\fE<<j:%$o"-n/_Z^gmgLaU![PrbKDULXL+bM!;M4[3h.62F&+
+ ZO#,%9Znp"UN&B9\KB6r:Y>ISLdE+_L$IsZ2knd`HL;`?20=gP!V3ep9Y^V^Y[)R9InT]l3
+ r8>bQY+_X+@!PZDPC=fWE_hSaA7)Aj!pU+0Vr"S"*AA'MboANH?I.3?RUf8h#?W\3]KtP2P
+ [q!kEPYX3-*ZT2Tor]GIJA2L"Ope9J+bYT)DV;=l*Y_kiE[<Fp&cR50%hBZ#J/6H<$\Pj5j
+ N*IP2=F%i>lH9*%!cPiDTAORn308l"N";kS[gSePE9`+2)RWKKj>;783:tZFS+eEC;$mRXD
+ H"A-#RU<n2F:2b"'"QaID$MHr$Ymq3ZL$l;a#PdF$@[s2>im)mmN2J=;5sOMLu:JD.W<eMa
+ 95F+O^tWMtLS%@T.if)5@8#7MFLs#(Gj^Q5/]dHc6l%Eml(]6E^EUHrL(-LlS@"U#r$.a.4
+ `1amZ6%uVm+O_W;EfT;^i00J$Hr:<mKpcRC5J,cGA!J,.gQ&u(tH,5(9eS*=:BiF#@ou>,?
+ )R:U:^t_%'[F0Tp`N6.,rr1'OR1SQBoOh&7o&dA^CWVr72,?)Qm+@Hq?`cFQOI)0mG%;L*R
+ @/i,*Z>RoNrWNT7sFRuN`IPpAMRZ,X(rea?d&OTHP*f+$Zu=AE@MDeN#4kY*/BhpcjieQ@(
+ 7)R_)s7XdJt5O+6M_&M:ph'K;g\p2/<utF1#,/]UUN3VSQVG)/sn@<0`&L!*u%[G:FhI7rn
+ 0hf[tK.iDW*17Ks(jp%@]>]"ajZp^,nn+X,%(U=L\;*)'#;R[ma(q!4'fC1A5V[9?:aOLBK
+ .CA?ZJ$/YJ\Y;$K:G>"])$%64=1jG+O$O6UcnF5;K^5^t(!i=>FrDaWT9.\A1G4+AWrF&7<
+ GHnDCdaDsC%Jt@lG)gFo[QthuhRsm-r&d.c<j+4eJ5?&WiUl'$F+T%kTL,hHR\%5I,,2-IG
+ EbEk4e@Q@"Rm&!:iuI%!K['7X6JGi<NarcP9EbW%j+R&pB:r/'u.P`f9cbqpH->[+IquFZ"
+ "^-e`jf.M0VIjFq]^IN7U,Pk2mEt)Od+`g:2._VPNj1I2XPo7\`d.)SQbOc9bqQPmTW_*(W
+ f+UuU%;OK"bFU7rb>^f(=t-3blO]`-T#9EW/]4=kj@1%n+iRlNK:)?<7!LgT$QJ;]=YIXZb
+ 7hS#g]S$m(^We,hSM\e%4QBp+Wj&`9&4aL(,<4$;aStCN3H1Bn56\Z"`euW#^rE$B64B?Q%
+ X8ah6qM&$dnNF%8NJ/02IJPcO(!Kc7f\[cr6a572#11j^/18-;m"5KQF)r-f7_[gC-EI:N6
+ D6(Z-"Z#MJR<iueYuKF.P!#D*;F.1mbPK:GOA_GE+/M/h.'r)"bJe-9>LSS]"!,%&n4.K\-
+ KRTOEKK)i4$Jsk*s:"S#TH/>D18@1nY9NW]Vi?DFWV$%?@?a^[((G;TFNjq"T+'E4p8O7ao
+ hUd\qNemf!.^miR#R+db:2a[:kA'df9^(D*es.B2+`2[n*pe&n%4A)PsenA,@J&,dadjR'f
+ r@iA0LIi]A#ci?1Yrt$!EGBL%Lc`TM5T)(\Or:A*u0/HCS\l;R*Z>%dbpYUHB9MtS-9OQXE
+ U:7eK_1TP@L/**'p[TLld\]_Xp_@SrY(`4RM[tZoD+oRshBe2\CGQUHBi(7b[jX!eWjYuSB
+ k_:fB@";8m2Ei=Di-dd!N]J3BHa2l%])cE&@D*!phs-]Xdknb.q(t6!:cO>0^;5\-QmYf*B
+ :o0h8V:Mk!F2;S/rYi9BH?dT'Gui_o'101a5a'Kq`5+T)86K6TDk5'6o!%m^qpKGODP1WG9
+ D(OO)6sF.40k?C6j@?'"2;mQgp#+Rj.-jlK64:;kIki[>%S)q1IWpW0(Eh2K9=)M!D.7<EW
+ *\Uk##(`<&4Vk;O&hTIp1Jc*P1Igd5P-oa2r<\+6]MF:0<Wn4nr?LdN8D\9g\#PC-;)Dr^f
+ hSIACH)n4$Qj,EBc,4Qe):)J)r198m:]AIg8kr.\o#i]0b0!P??eahdOX!f%9E@pPFhM+3&
+ rB$,;Qbs"4du.Qr_b39L1@>?%;IbN!!L/Q?S1#G:m@6qcI9,R&4fJgr8j8P:^pDOFlgc2"U
+ c*Yo[6C?^0Zml,V)osW:l@GJ,U>b_PQU8jPu8k`\aXEeBLPB_1=a+.*9Z%n9dbrhQs/>?p7
+ tnXTE=iP:'0"m+F15hRn=9qXo-2O$EWReeOBQ[r0#"`A]c$EZN.VW6<[Q/;<@_2UGi);GtI
+ )X7Ig+CA.#I:S0g^IO&r/0R!C[][email protected]=QhtiWunJ\?"*Op@Y7G/V?RRrr)`GPAq#3
+ RX4Yl79!QW6@jO>Z.#'Eose0H(0!-c,sL2Sq:3C\r;73U:7rY7*7L?6CL@=;bKN@<oN5d#K
+ DJ<e_f@@PLLD)`bftk)nd)e<]79S2GGk`^-[#IgIBhFl->S&u"S/8,6=Uq`muuU2PWUMe9[
+ ]RV,phXJN<H@f\%[=i3pKS]@HHS2(i.RK'D^!bTeQupoNleO\JZiP0cKs;,!nb%30;>FoB+
+ :R4lIVdXb+T[S:j3K'b/X-!h]/;OjaCA"#P7eS(j&fH:')>2n,`a#k^`o#OU?Z(Y7jnM2B;
+ D+5;`g@#>IU-SRo?X4c0ocH`Z7$3YsC,=g_s7(Q?#=fE_Y1A&Q-<\Ot617<p:[PZX)SErUG
+ 47Mh3g:V\el2bF6lIW3];8&Q1Z0>[1*5n3K-MjYj`MPKe,!)0]"[4LimF%h(W/$BRC<)>TY
+ `aKI_-n!X):QAh?dS"\MF(`Wh2[PoWsL9Io*>*g;dU5hVh=R2En'-h4p;uC@%>5C5!I$m+K
+ LH8@(K-YVS]o*:"*&(PIs#F(52E59&\R9F&@u844iE,K8J<*(Q!*o>YG7C9\kW:6RXLd,Q*
+ Sd^8'0=;*pQtQ-/dcf:sB;p90("!a+VMd5T+P"(N6O7K_STefB4MVU`[`U(d>!q]A"L)"g.
+ 6#T4&*OH:$Jg2Z+a9ESI3Y`6tYCjqUe_WN[1WV[);',.QS\Uo-l30<&V,S?Yu2*2cQ0P$"p
+ %4n@Wn-P"2\/n:=pSFr:2K%:e8JlM=f%$g&7:`Et.D`jALET<LBj_AZJ;_\-dT2HmU8"GGC
+ Y?"il'[L7BN3`pD2BSFO@nc^#g$@^)H]I]*C:q>Nrr"Nl*^J&;NcWPqOgon?I[ci=A8#3?[
+ p&`&hsi/TttGM?hj(/dF"gjp"&;'0PoAqHjU1R!/CZtj9mR0]0o<p.qil`5(9\?:AfIJ<*I
+ u%J[bf]WRRHZ6\Z#c-pXpA'.+:8!>p75dMKdoA5!*KBQ,=BiDs2'r6L;o^[email protected]$r
+ _0acR+ldr>XAF=Br6VNjO<mUirhGKOF^.*@Ie^dpAKc(c"AB5da5(398'X1*s&<iL-^RUjS
+ HotjVE5a\Kn1ZGRqBhnJobM+M;*u89qsM'5"g$.O;l=%"psBuho'qNM^_PH>-2"(CpJu;jd
+ \HGVC>BZkFOXPdSND%=^m#)j=8V^YM$@u4$6;6]1T#_g1jG1S]j2a'IX')m*EMOEgtW<1gl
+ `-f3oItFG&$3cSZnMGFmPX#Qj-U>!;M/CHJF,[]tQ?M1R_@FIJijpl<]NOVfXs?d8F_a(gn
+ ?ZW5LN#^[%U[7;d!o6pgg!T0cu5lhgPT657AW`SJ(G#BbO:W_^D.p)@hOBd"Y@7jY#5qd!!
+ @Q+nOgiVsf`R2'Bl)LNN]'?\SE-(<%`,eE0;D\"N2BV>Ho&+"L\!^@dQj2#\HmdBKj:S'u1
+ c*9sjY$JX^_oHF1FE%?1J/0%'K:gBGn_bH5-RYhjqtHlRj&fol7>hr$[M'!d=rkb?MoITHM
+ Zu]"d[V^o:7!P:L:VS=RAW2pp;#g;5;3ZEfYfUSZg4=$FfdRsq(-5c\o^6o]<TR\]6<Rtk*
+ ,<1V]@F3/#Imj1q<G\/gE]14s*!<E)+H6*>8d66jpHtnj5N&0b%7N>%pg,f>$V0!?ogk=Yg
+ j1(ZO?Ji"rW--5]StBS1p`>ei2#Op4'tHsl-ZaiPt\.@Dr&$N/!V5Q$&CG@R&=]6E^iOa/W
+ j'T+Y9$B'RO?k!RB":)hq*uPrAqt=mRSH'3X)@c5SYcogO7?MXp\8WU-f(fmia9O/k!=N1m
+ #6,J[%@7XUCA#,Yk?rN1ieoHtGFC=#%`46cAV&"IbN%UAN%HOq43hF`9EWIOYWamC7\59u8
+ 0hEJCnZ$Mb0%m!oQ9*mW`1I\1RW=<\T9-j>VC8j"DsM1(=;!S4J"[email protected]+X`
+ /S?CtLH(q_OP'Juam(V0=14,9NqQ#-9RGK69;J+0S:8VbX@p41/hR$;MYfSit8-:WB\Hf<8
+ Ndo/`TL,NSEYL-f8$JM@VXU;;-s08+q/6%]Ble"'7)3[H+_TY:'QCQ*CG/@r31ku-0bNc94
+ De%g'te`:=?:scXfgBM.*%2^c!rr.ou4.,9M=EMYm0JmLlKP3O]T787@%JbOn1gl/%.]]un
+ `5KTYPa"#WSaP:Dj6l>1HmC3m$O9,]S-fW3V,AbiJiZub9%3qYdsqlKWsYWG$[=1'Xu*CFc
+ 'U3fIVRE5<As6U=LQSP8X!NicEun6Bp]+%G`c'tJG5R_rUj5*qpNrk:W()fM,+9[#NMnDSC
+ <ZL:L[gDM&)<_"NR*pKkjK(1hb6#qkhL2eR2bh%=l1kp07=.O$EWrG5W3"7QPqlY_7sg+/;
+ Xp[aXmQ9S<2TeNZtY&G'YX//nFZM8STEm!Rj5%3'Fn/DKEaO$8/thqu`jq8gN3@+[sOFl?d
+ 5liXf/UF`:YSiqGYhR<F^qqJ'i@bFMAQ'M1@q*YUBLA]^GdlLtWeE(a;HG/)S%faJc/u(p$
+ Ya>V[YJ:&tnQCuFFQ14F>P)#KS*IkE$h1[;QWSW&X$o4$0b'L)FZhH=\FI(K:T^DnkY!T7B
+ Zl\nD:)XoCb=rB`\sE[#1VZLdsqHpEK>X0mck]ICtSE;'E>J'#!aD&N.>!^[email protected]@Fm
+ .0Q2W@7#Q$`V]TVe^SM)(K6^jo>`"glY7mbPLHA@@2fUa2IrOc-f"rONLWi^V/TmnQG?5)M
+ '(CugS)l-9??*-?`se@G0h":Ah9!RSK)oAE''04.Ii5K.)&]6E^u$]a'Va`X^$q*;qVT\[6
+ XZdcjl"RE0o07t[GM[&;)j_u`.T:b#97uum$W*%:-dn`2^SY<<X>D6>c9Z&];r_&Fo-W.`-
+ f',Y%;*Yp,J:@Fd7sLTHP:+i37Bm\n_-hco&H::A_844518Y(X4s-$HR'N;#+91KAM$=pH!
+ 2sV\VSmVA9'+r[s%QQ2`F;`SDr69M0L^BgetaSP_\ppR(;K18JKs!k-[G@JLXf3d0+AC54t
+ IhO-hZcTMm!&9`NZ9o&A5s@U9#p,,9#%H9$d'eL;Vg"fl-*$.lC0h0+EHCFmDM%$=MiN_1T
+ +::+YNbB?hLL.h\AB*p2T/+4QY^(AfK:<#Ks08M#&Me)t,@.%m+8=0GqQ+u;&5DVUVFSr&.
+ h4aZmU*M^$?-[0&C3&hB@"_`=;``O"(5/1UJn*<:@m5+e]5CP`-i;3-4XhPto&s\fM_[oC)
+ _ZBn$O)%DkF'Y`dMl/*M1he_I*Yd7Y"qMe>o_%l'/f5TL%6BdIf>L"M4*U*\6r`P\>nS$3H
+ t[".R,p5$hQZfj>stnS%=j`q=TYe;E8a,eY).j#7un]k.ZJp_j9!03e5YM()q2SjIn2SVTN
+ 3Gi\qn-%%4WhW&eYh5CO18Oh7IllQHN_\dCOJdi)5]06uk.H)u0KS1hb6#qkcs+2huFaa.P
+ `])ao7:BE5Dbo4E7#dA'4\F]g7@RQ>R@Cs>qUne%dc(`\VA7fmga,3-dS5$u[5b9g.a?oo8
+ ,[:ms>\?&@N]6NiiNE=,/=9aE:Xgd/=rM1I3Q5CU$"rDm^?]]WM`bO":P)1Tk.1HUl$Ul9"
+ ;5m<]3mi1`/EZWdaci6b*8"7\BfM<B`R/?Q;ABP..5\EbKF*o[TE.mH^4",f$@g[1?1_GCM
+ d]Ui@T^^6[-nJnK69@,6F)0tgd4Jj/2eLP[\gmcRl=c?/Zi'3o<<1>a,_<t%4W(u30DhCEG
+ 0;pP8>Ng,6.WLHh>s.((+kPK7BMC!O[+<>2$0@`NV7;g&rJt<?fiTbY7*X*RfOX:R;&@f(/
+ D[RYq4OBM_l9)AElR5/i2,a%tF(!fLL3RPbKHR951&Skb&gaC?-ipJ$:Vc$Xo%a,PGg65fj
+ +>e(Jr"mALcp^/R,eYc1bfVZpLh9/q@(WA[RO=O6Abomcnqt3$_!=G3fJ\ba8aN-'\/QJh*
+ [r:$\>HjJo77G1rYJ(?j:(JEgjJ1RoBs:PW&)0FS+)`#(R%XOW5sYOq__PcD&0$$*(6^4#/
+ rkmLKUla>>F-0HJHk@:=/$G"SCF<'h.J_WJD.GK972Y"/3\.;N:"=bM_UbdIG3N5(gK_PkA
+ O$f6pC;bO9RfFZhWSmDUDpr`@,,W#3X=)QV*8#XP:-uB=fh6@T&[SD[(G6RakC`.a5t!55Z
+ F\#%PaA7REfug^OIdBE0l6n6l#sgUD+1l$$PjVF?CY_.F.Aa_p5$+=D\,dGT.&JQbT8'5LF
+ [0Fbg]VMBqH#BaWj-Jj\l2]=`!.-sBJY-(RR[)?AH2!FAo:Xm%`Z[_/`^Ps-&aBT"0*Erjt
+ 'u5G+SV-=>CtUQtT*JlWG.RffcC>3Um]3P*ZI--h0s$7iMH=,0"h&5k2D$Z94Um^V'6k5]q
+ #Yd7#X?(_d*SYC24@cWh_\]t<0\pIfZ?]:PGs(dA;%;o,nL>].TJ`!5\+E$:8_m`\ojW/IE
+ %<i5BlPN<NB.8'GT?6Fj#ASoCV9G\CVa+r:/gf[.d6F,^St<!=W]D1d*Z03<pOW"rDm^>:@
+ -X*7qW_S"!W.HMSS!]E'FcEokI(a,c]&pMBNfeaNppVG1QnULGsQU7rj>>"uB*JB.ON/e0l
+ K*.\=0B/Fn/<MA96P\P#r>V=@Fb3IT^hi]9Y%NIG.AcfA`S%QBriqK"7SZcD8c>]]#ZCQ1+
+ g*Mq#j(p[]Knn+)0F\ljq4RX[IMoIS@g9GXhKB3M;s?rbS$W,V/qLe_<M@3lgr$%86iql#)
+ >tY\=PtLjpb0;oJ\U_M>g24?r\HZa?Y\lpM2CQXikCG0=VM`6,;aL_E,^:k^\1u?H*4<t$A
+ BFE@`9$1'T/5`H>2NcRE(=.U\:+hHhYD%8FO4_%]Z[iAIF&l,&H$7WUuW[MeTsA?dRlN]"4
+ )e?qU)Uaicc6Omu(lr7pf2_>aG;H?d@V'Oj8@2BGi>f@RKIf<1dIgph>+oU.YqI$=?9:acI
+ -(oY&#(7gmLAI<8J3%(X$80b$@)VC8Y[CS].5EVQ:7<J/EIt+#iX$Rr-_1O5V`l8K/3YX\W
+ &HDRsb:fXY^K>U#?nc]dciH%K#;7_4V?%K,(CdCT1bWck9$5YFO@F,*OufHLI*0boDVU&Z$
+ Y)&qdaHSD1JNcD0+J9pJaM4?_rLckUQKe8Gk`[.O74umJ/KD*fQB7gf%'\K!*_;#U<(EL!<
+ LI$h#jHqY&>eTb#PKCQ'IW.mdF9Nl2()=oh>1cY\98nT-&==`2a<J'rD!I_idP9SN:oI]mD
+ ^'^5l9"<#Q#g6BOskTS68e:W.l$M>>A".,n[)CPLRLp8d=<SptTZ85E#g\T0"AjN&B>C!_9
+ 4G7upP2qcT32i1&WGFE'd1<mc!6&^*eIfm;YiXtTC6ToZp&9cm\^q+iAJXWi%)S9)Rqpc[_
+ nkU=q'-8f^c`akn&Jc.jFQq5b2DS\q.EcB)S?OmP![6tF`<8j:Q5Vmq^'P2%`oh8g[]].UQ
+ e.&/5S*G,4B,-Rd,N$&nN6iS/>g89o!*Y%r?)XicZ[2_@&;9"i5bWf;a*BLabA"FWMu_>H-
+ ;qViglU>0d/"rCA$lBpa@sK=\JqUU%a<l5?/=Qi(r?Tr/VYk!W1(J)EcPbG6im*%?@s/&Xs
+ OEq>'@9imO?fX"bbB,@fK:D5]sZ,K^oC!;F(Q9DF("!.n`:s4tYCQj,)t.qeq&ISioQS0$I
+ 7p(QXs',$Im8h(DII"'+r*A:d6N-]k2QE6k_E9kEDiU_Zd6dbf2%E()2PM&9Tb.PCC;COna
+ I0t\eq=lt8q>(%,*?FqQr[!7b0mW?NdaD%CUVp#?4UlqJ2e58uKM7_la#%1dfg5f!lVUMuH
+ >p!pLtj;%GuI'sPX6OY#uOPs36EF$U4idb$kji"NeBYgr`"_g^`'P8#/CJ7SI$5$&rXs!8E
+ k7eV]4^c07<co_eZHhAm%)?/CR#q%=gs7Nc^oZ%Y;uISd2+n43T;qgeCCmdt@7CJb:"Ag7=
+ C)m0-ub5QF"HA5glE"5q">#:hu8^a4`<$b\8(=C?="!;O'Z#=3uZI""Z#.=_m'q-QN[=507
+ lV+[-[%j%Ab2te[=B`QrMHl'U5!<E?!'Z%R2rg3ngbrQb*cH(O*OUBY(##A$%f4qpBHW,J,
+ *#sp(+Di9JBe])Q:!5`/fsH]P^hF\eTCMN*cO9K1P>-n4n5W-j2+j??/H4^o:[gOoH:9n)J
+ 5^qiKg:I"_5:d;"0U+G/15).84:h_OGf$R+]`LCjKp2=[h*<(W6r"gf2.MOqiNID0XcA1mi
+ l,nD-Fq9i&V<t08G;!l+oThYpKOG1-bfFYV7LP%\"Q-Ao-:\H5P=lCdA0]@1S.(I-(K]cu-
+ QFV?*R1F5o;7Di[R]ciEtGr25B:!%uL:8>)Jmi:Hah7uj[PX@,4=3%l5u!4_Lj^>c,$Jd.s
+ kr8*?Z0b#fGSt#Pr`5(WRQ*;skC%1StI7f.iT8T/bZ=V5Vp[=ju:Y_9'BE6iQ:b+LgE;NHg
+ Ju28cQj37M"5lO!/d)W,MF;%<-i[Hd)+f6k84uUn7iSOl9kaTtoii17682-'Q8&j8L'IBN;
+ W.3*XM;N\2#-gu-7(lJ<CSHVDstAdpS&^/>a;F*:i4[%dL7Ks"&&fss75a7C>*9q\pQ"Uk6
+ 3e'piTK6'W6_p9X^f!nG=O#;`?;CCA"H89ETX96"sBNG(G/D_?j"6$Y]%uZi!YUI=0s3$AH
+ >WF69,:>MKko1]W"!T6I+R8I6:@5gTA`#L`\%!;]qc!.8*$:/&#'#f%Mb#?+DZ%37JDDbi,
+ ]bg9bWo:)%WennU11pAbSPj<G'`+"<&#F%i=B`Pe(/l#/eYLp*i8"A#HF>65ei"ri:5g-$9
+ 9ERAO!V"Y/E&^"j&KP]t&2km^\Pi,T[r'mnace*N`u-hS,Ro:a<l[KK,Zsn4&_"PpBOK3Qp
+ WDS#%<bC@Ao1#;l(dM-hNW_KB$Hc-HLqL9:ud'CVSSY*0g;6,5Tm]rf,`<?dt$qi\2ZH2\.
+ fQb%1Rh`B4bm,ERf.l*Bj_aTGXQB`+P3uSRshn1uM0hFZ.!m@N*lF%=eu$\e6jP+V[,jC97
+ WUFfgt@JN5#&jj'DYW!=<C`B4T[h`CKIIkmVrK$stATh>JA%586A+/YmNl+q(@?RohU!.gT
+ H+ZD@SiPUGL`uKG[KEf6:G;k<'$f5L0;8b;q<uM(2o_.-6DFSr:So-\&mcnm3P_a(RWN!kU
+ `MeP498/6-^p2e966N(k'3H!u^lE-u,Wcr_7QT]"DESI.I23YCN\WuCcd+6n.7$,ffI2D0W
+ "oT2Kun6I0b*K:#/D$3)Ygsa-R"$V+;F-`e<m:2RP_k(N\uNP#/C?0%$XJQ&Mt%ok4^WJO!
+ :HPIFFi52n)$rfigle(5mTHX,U"*@&Z22mYjLW<"iFR!-c-'e_E*@Qj37Y"5pp=,N87pr0n
+ H?!+42i6Y%rSY\r:.iN::&+f>?[UTKO6o7H*LBnN=T0b*K@#%0X!hoTR_R>1si(?bh:ac$W
+ ]8kAZ4TEAYc@KR&d5/0TB[@oO:Qj._0"5l6I$#k2e'GNqO%=jM9Vn5m90$g.S+8%$mMc`;u
+ ;,9Z,bk$?MBN&gh78*eRTY^Y_Xh-Y\KC&`VPO**(Jad;MP)MNY,`tVUDr-G!+L4<bTu"\1h
+ ^AgYnTr^`7M4+b6"iO._fF2[Rmn:rrt6Ca;a!0'4!-KRs6ZA&Hk]$'a61b/RUhSL8LBYCj<
+ ,g181*L>).23BnU2']`Pb"UnKXOr<AoF^DA&6H?s-RH>o!$\=Zh49h%pS9PQb,r%?R65>]L
+ o!0Rs93KYuRYh_I>nR1R/qFO/E!?/Nus%uE*ue^a?jVRj@=SitH*#S2:;!,;@nnT[ILmuQI
+ @DD@kVgjgbiJ942[`Qnon1G\/OKU5/e^kE1)$YsQpKFUL[=QK`XQ44W-]FabKr2,lbL`>j(
+ %6@4\/RgHr#($CRl#d*(heKR/S0jH!US@oP+sCBa)pIT8(%ZSW2?_K9'uURVlip!.,9q4&i
+ 53QtoX[=iIf=a]6+Ejh4RiPr6peaK2lPus7oB)f&f\]?YGm?tnC\9;<pQ)Y?BcCFoCf%s1(
+ r/<MoBh<j-su$#p#7<Yg<i@VHfXCpJI1!&XN+9bX1*8=)NP1/g17>%o/0&6*D4MS]]3rP7X
+ Nfl/p6[U#QaiG.I_&\:*CVpHU`7;W3e,Kt%0@g]2&d^ON@A%ni8B9Y2IL9hE1U.I-U&oB4F
+ eLF*#&Fb?+`,Dp`+,&m]+]#!L81u(5R*Ze(g)^$_gNlGY=fkfL#h9aR6DV4:[eb8:,j\aYA
+ nm;eJDSTI85h["o>W]S\/@S]Abr/V!_Soic?ib@k\f3Q>!E)?jL$OP(EUS]-E<C[$Ja6jB"
+ )9\,h1P#/$XW!EO\"d&lC\7/Xg$RiONPk78`iSm2t3ChHMVb)E<C[$!R`]n%R2VRN#KZg+k
+ 3Ef9:U&;USFT0Q1p^FDLb]rZOh<k[*Qjoh?YKH^eZoQ17RST'$:Z,.25Ic_2l8iRrI=69UG
+ f#U[EaJDLc9qe;+PWH%?KG"+If^dWa*d\9i0Y.>\?iYhO!/<%;n`hg=fTkV.,m>]GB\FT!B
+ DImU@_=GRpceI>dTY^@a`%l4a>/NkI?2pf,#3A`RW-X3cq`=7p+[S6@cmu8,D((rRaV&LPN
+ /ckA]TWS>0DLhAo#mpA>8kM^K,LmfRa:44X*1bHcD;&gBGiAq?FFt\"cGOZQ\\<#f\T0!<Y
+ VH]tg]5Ig\HtJR(hO/I,]:Cj2n5$BNk5Nd_nm72K9J;UraIU)'aB<,j7cjBS/YG^X2Eg#mp
+ "lJS0)j_Z!<mb#"T!Kl<7B_YhW4X*?0niABp]*d.,70S9"e.V_1)ch*<r(0U?ekGj,EL3B9
+ &0bJ)nBL>8HBB!V[E:_t=Bb8V?<TL5#2\EF.CrpVI^K:f"dbn3\LCH-F_YuVq3#"[Y:p%Wg
+ k;JI[KBA$uUiWW%F77GQHb9.ka#"[_EjM-$r!]oc%.8P,>0!i)p.](qYCHk%<c@Rl-,_W`E
+ Thr7AlW35JAI?b&"/PQR/"kp_Sap;M5WV&;"R[=Y+!8hU=di#24T3'32FBtd;fLP%AC()1s
+ "7EHL(6?^b/<&.-U3*mNt:=V>@fQ.o<@#CGu7H6MEH%%Ffr>Br;V`gc#p+%P0=\*ns;&ok[
+ U)Eg^T>t-7@jA_9'bhL<ahq@L8=AW%6$7bk/u@D-V:;[#ZR]^@qX,B@'oJ;e,lZB5W7,=/i
+ 94IPT?p/j$4co#W9+YtI;&i!-VCC-i_t_LEFpAg$Th%B^S.\9i0S1mF]?Zs'S?cL-5e4d(%
+ 0T&Bn)NAGquC@E>6R3)hXKBs1'g]6S88-h*VA.B$=AW]X[@)n9Jd,@VRT&BlE\XuT]bj/K^
+ <;]'2F;V;OHuXf4gg!>?YYb24C/m9<=8';'9Wi7E@?!epS%sKl(<-[o"I&t.,#jj29)_t%q
+ !ZX!;.QtV9Ss?X7"TqeCmnElL6$Zq2p0n"DLg5E0];@bF%Qd,BDK5I:L0;\-9H;2%!2X$M5
+ qR,#Ya/72s@\P[`W-g]l((1a+s@N/<mllc':?!8uo+tL5oY&+`9PQ)Rm6Xdb2.?>%dTf9Pc
+ 7IB6d%MVCp,$0\Gc9kTHa^QBmgLY4:gbru/ARW2R=lP=o/7Sg>Wp3V@laK:CuF6=11?<T'X
+ `>9KU25[[uV7cSsbA8FqXTMU,GLT`Am#5(kC'7!]A5#4nl/b&AX5DK_X???,DH$h7dIIpkK
+ `u-7!WYGj]bL49Ro%eV5K>GQ'SVXN"1B/cI._4\M3=uk>`$t%2S)2>HC1*m7V9f7ZCOXhDO
+ =Z\Ir#,,?#p,AM%G[q$JqBpohCK;IjlA+8MZ4"oVcoFjYOD/Mf:c]+^C8*kWiN`U,-:QLo7
+ CGf"-^6GgZ4fYje,)\`$ojKNI:mRX&h[/"Fh;J)^%kIIa688979J\'Rcu=K#]3X"1RNN<f8
+ X/C.8C@Vhjkd]LAARGqsJ8n<ZGP!Rda(IXq_8+sc_tpc!`=>;tb&RIF`4L@VQBdHRU,V:B<
+ DEY/s4(q^e1REZKA_de*^^r)AGJ_P8r.LKP[KomTo5Q7,4ADFQcm+DI](-L]=gn;6i9<U;7
+ cd*,^#EM^@#4@W0CAgaWY@T6q9<6Sm(HM1[>I8&UFBJ$s4*#t)!si];1k<AS2aBEjOFT"!0
+ d_YKj5USJ90@+:!`um12s;8Ip_Ou:0M&kP1P!8^2aH*]mn[5<SOCn?1=:Gf]Onuf0L1Bs:D
+ na'oF<#A*e16C0,-NDM&Wrp/Ybeo)E8cZ:@H"`9M30]lJ/pkd#l.7L?8]jeX_$"$%MJ6<<@
+ ED&iXcjp8_0#c9*Y[g"A2'q7GEegnNB'?On.pHt6o.i#FufV7u.>'WpK5!!7-B,ieqb&'G!
+ ]RbiZIS>k1JH0#e)aP\:1Fp"Os'0"nOKNP5"_$DQ9^_/SFK9#2<\/s#'"-#f/qYO49WP#k`
+ 3\pKOE81H8A=AOn?KrU:*jEQlg`Y32/3Eh/BfpEm7ROS[qsM',3\pKO0\rD5\hcI]mr<9..
+ M4dTM&WrjNA3/t.[gt`krNW\KO`?;eC7I]aP\;\F9A><;bq^d#>n"\(J-OLEkoSY\,k(Daj
+ 8l,m7gU"QX4!?9h+tP9FTI5F?1FaAFP`?])bfDkrPNb0p+"ik'+a2#7u\1\E\H>'!@3m;,O
+ \?F*U*(@pIa2$T^'<#VBqEPaa`D+6Uar#k5n]DVt`d%LB#02%PW2C'CojJbu.a%B?J@n,S&
+ :+F$PC!Zo"m%@G_sN!rr78&N2uJ&%%XBt-#Y2`F)/#Oe>/%?S`UO*c.$W'dQ&ZL-Uri:0Iq
+ J8$%RBPO*%Ofi>/%eFB6,&RAfNGa8'G3gu3[!_>8'@?8Bgjj+HkN:dG8DaORdHCcN04';A%
+ c0LT)^$FRNl),"UM&t^7blq!qGsf?eT*)rFZ>018DF1Zg>/F-Z6_1YME7Dc/U8[\E)X=0@G
+ 0W*4.JDa+,q9)(jZf%4$,NtK7eBpmKQ4G-Z9ZT*;T9%Uco#-/Du(Qgji7mM2fJ3o6l#aOH6
+ ^n/rj[)rr2oDOhjPTE!)oJm[Ab=45Na@*lu8/(mSkX(=Z,F]nN.#kKd"c?=dYX,]mSd&Vf*
+ !L)5kgBTg2ARCE9m\sT"H/#U3k(tq9uSU72FAS".t"s79p%?RG]CW&#p'd?3ipLc#j2n6Qp
+ .[@Ee4=om1\O/?nYC[`'B)MGod#l.7Qu`A*io1L=_6^cU^4d&0iWbA,RaHr_YT+,^*PrD_j
+ Gp%.25p0Zg^^)sJ<ZN!0Ksr^1)`9LM&S,uA-08umPGGIS(0!3AoE1^STg_OK9%_R#*kHTPf
+ d\)pemf![5J+LW/2HIViJDPS;1ZO@,N&R[luqq2oXUbG=+k)+(<k4ONP^hMT%@9'O_XM*mX
+ 2Y9\a#0C+pKD/R;%F*rHfj7QZ&V'FKQMDMO5\52lc*5l0Rq(Z;XTkG&6BCZ5QBa_nM8l/b@
+ adWQ_)_,!OH5c(2Ya?B:Q"!&.>`BA)mCR3daYi-78FGhF(#(tG"naX,`cG[^4jt#9`q.cm=
+ ``cAB'm*RI'_f+'bti[;2u3<):abfGMJI@fi6b9SJ2uRN/G2nTQeD;CTAMD='Q/]6[C+@i_
+ ,K.O"uZ?d31AoZS9s3cggKW_S<eoql<Ct$B0SVu\KbQK5QFr\!/3Mj!,9r]8bdB`Pqh1t:>
+ C@[m0aE,*HW?g,Te,.<>65c6cT=ZEO-T`<aNTm*5.$"IthNda#J&@L@di6(7pJ,:ntSG-[0
+ *3i(!M0]C/),"FkEt)q=fX_XVES_D,*VF,2n^WY.8#;]Q;T__lV,4=pLM(.P\:V,H!tecm-
+ .r5JVPJ7PoaiKO7ATa)*LiW]gjdq#JB8>mH]V,5t>1[S4YYk)_KjN3UZ"+o-T\A?CW*EoS?
+ F!qY,<eR9"7lkVlL3+mp$<PsWUniP`GU#Bn\%oSd3p;+P2'?d5e%;HV9]ej92af4Oc%QI]`
+ !qGD]@HbC>Y\9;qMuTdYh3g$3,``8).[Am6Uq79JT:jgdA('gVgcE?"?b=n)_e(b`'djKNA
+ 3/js(cID$>oshQS4,S#/13'#"W`R"o.F;Z$q9KEJ#EMQU4!g>Fe11BeiP8lu>V>*"`e1e^X
+ gD%=AE3%A%k-1u8fj:aGjoh'j1s)[okNdaN3d*Rj8O5H]1OXL)s*6Kh5g!4r80;:59N!%^p
+ ^5hoa,3hTO*\kGT!gMEk'^=7QA%hESqD1rH'!k]HpV5HP<bJ<6HMSosYUUH[4S;1[j9(cq8
+ /AC@AQS*uP"2[j<_$qkE>64j7<#N?&U((O6i.4\ZJ-d5,&#X/\PsCuVMlAe0R$^E6$s3QMg
+ ]2':Ufs;[4[nL_Pa)mrM&Qk%?"S/k</PF/[%NHh)`Bqd!Pne0g]5H2r<"YY4*/+L2]07I@q
+ )$RZ%@`QIMb*I#^rqt%;*n%%gd6OiKFU;T<^+])f^Mhla"VHinOl@-km^aFppD5#^rqt%?R
+ 0+@Lq<]0imR\KOrI;`!qI)a$N.!\d!b3oB&>/!20p(\Nrsi*>BSsKS)>dE<@,e4<[#;+$W!
+ )ZY.TN#6DXAgYAI5\go<_M^jcY+S[WI*S^dR)pk<hg"?_qHN]$h+VHd>NQ]JeTS%dQJ8K1S
+ o]22@,SEVmSLCJ`6.S.O&2tH3g8rkI5<h88Y]AjJdaD%YT45)#Rr?#lNW[-oYg<hoqCcM3o
+ a_0!!TF=$OkjUgVcMgsqWtQ7U5%:Pf]_ANrG;,idElkup^),T_5peqHG(1\0Dq@])^#\N(n
+ 0SV7cH=lR@2aUd6Y1R))Gm_^OPt1B<ZqPplV[rJFpJ2*L05;^E)8Gq*#R1J3_mt#[3@T,]k
+ rKd*U-<VbZ3ZGO=+l;!0>51*_njYgs8F$47R/Z9@Cf9&+r<>*kBrFj;W/p%@.KCY'$?Dt2i
+ $>J+Lg&s*YI@+afMZY%l8,QH"CoHXu!eYEa8i/mXLN<'ZKj7We5.or_gf_i=m]9AfORPc#.
+ Pq,qk*s)QRS)")/l),J21<5+d+^u=*7T\RRK@dBpCopBcS(;Gb03Gi0/cODHR5<[Pp^&mpE
+ ]67ps8Jk)K`;(Ad?V5X+LOEi;rcX;),X[FIJZKYn%JHnTChjNFra[-\/G"P5tt'L9['\Z+W
+ %1L&iX4)Nb2pZH[4TI2/1L7St;P.2o<7TpPPLTP9s%pkan)9(^Lr5i5]Q\)WgNTa3u?io)`
+ oaT@LcZ/=h\69UIN-]=WDDm;VXWajaB[,12Dk4.'pZKU^ud#$bTD1F)uiggHdu)3&Bt#DA8
+ 'P!N7PU8b+`ThnQm[%X6,+Q/t5#R,g6`!ohGqXjDFk8OQB6Ou>%Vt1/UcCKm.^1u1JL)N25
+ 2K7%Q&1W6=%<2L$kcOW)R1N.L&kniWok2;P#1D5Z)WAop*Z#V_o!Z0&p@e1pgu13,q$h4^O
+ "-FXPEMTgOd?:oK5=A.IX\h&kA&L(2)Ra=NQ[V>_oGoeBG#[;SD\tNm<5P\9!oFs5Yu[j[(
+ f"Hcjs1CK.b?0KL4Xirq**shI!&*80(F(<&QZoe(&IE*_A^dK:d4%Cm81Rh-pBq$@_8.:/8
+ )N+bHA2bCXm&ed_ZYIdtAnpmBO.:ETQ:$(fE5chD:`=VVML*Z$rgp5FqaQ`5^CX`jU8m<%1
+ A_SSY)YVMW*Cn+&+4fCSZ2YX=thO:#G*[email protected]]B(aL_DL=t85o^6=7q!_^ko1`e9EA<GC
+ -?pek%NU_U*W%(Xq"f0pkC\Nr+*>[email protected]*A]5u/T#EEVu?TiR5+r<@`t&hZlbpu@8p<0i
+ s,*[<"sSQGeA31A4/L"Ql7c^XK4hg1a[*XF)uD!O<\%L:/9(GhH(>7"o:e_8kPfrN*IVhPa
+ )Cn0-73]7uZqXmV@\VX4;";Y%@8)/m-K0HhN>dXbJ/6>l!s60C`eDr.';=k`G=*Tr3MJ<%?
+ Lt".RPYqXeL!Df/'87ncSbFiMMDaL8N8VU%fk3`DqO`NAclpiu;\nM%'b3ASP7h18*B64[a
+ ^?[XV%:mV0S)KceMF&E'`Bl._+^E<lgpiLC+GQ`;H)KU!"h>-,,&JZ%gD;-smhV=]o*rPRW
+ 0JN"5Ka[<24+W<;qWXof`BG7S!ZjiQT_FV4>ZW-o`f(dVmbBhshd#e-.!32JS2+Z5q[5[I*
+ "sYm_!UiZjCIanii^#=boPWT9;'bueuW!VG]Se$MlDk1,a/-'pB-_7^^8;X4W=qD5dd!lhV
+ PA8.sP09:3N,oDfKd5rOW2$77BpF9s?SN`/,.6c5fjk$O^AN6f8*N^]$93_p@W@i5*AaX\V
+ ZNG@j%5d-LA3X?3)/l-lQjJurCp*kF<6[UZf$oCDIN"sXcgpLe)iLDVC\d:=`UC.3`'Pa7V
+ A]Qb%bQM,=onn"*X/SA6j)FIGp#bJts,=h6FjXbo]DDGMn[d(r[Y;$lASJ*n$op1k3j8'u=
+ =gViS0''<LbFjb\huHbW<Og;HVdT"MA$*I99?Zu%GP(u$5JR$ckHf?PTrtON4S;[Odp9_;*
+ P+WA[c9FI5UhhcbKC!K418jAB'+O?h\lcH[kW!BoYP%BC=Oe=i&Pl@5So3k!B+fKK\oU%ct
+ L4iO$,OeSUJB_6p^9fA.J!/rek.]!r$6h>t.QX<:KM^A-uP^DJ?dOL!PF-].Q03W)P8=0[A
+ BBK:B/npMQ,b.NX*;ETlBn2urg*^mjqnqYGC*GW;tICn;Xb);qg0\Y(mt=_2/U91oZbN>`-
+ ;-VgJ?!nkH9SNEO'6f7sJ^A9<sr!T6o_5#HWC,24"Fh/Mu)+Z$9o($fr:\[/&qR!GI5K:>(
+ ^)OXC":ehKgX-\>iu(cHDWK8]VFtNBKjO6"hZj:t'+5<m4q)jPBOKuHRJ<MDhI_>s)/S!3"
+ V2uHnmaZLR`.$H3a1'`FtpjCZ$=\2^2)?'Bsh.0dLm3,mkh!WJY1k*T87V2SK6roDD$5f(t
+ ]oY-n*`ZFY!*4TV!N'QJcO`]Qc/QE<mPW\[`U(BT;]YDYM*"9`$S$*si79\nkjBffh[Kh;+
+ WbP!WHR7\er+La^*a\.0nc,pigYG\P[9N/VakoaOP&&6>iS_hJWI(!eiY2f?R#>ZFc->oWn
+ N5X-G1)&ZDC;2E140KZNi5Q?A3,cbti2b#20NYsXMY-&8Gb2(,%dA*[VQcnJ<:S*4l%Y4`3
+ f@T'A`5b23_8CQ>\mR9V(DWcj0)!?,A?ndj-65'b!4o&`c,##;--iJ(V5:$8`?B1&'J,7d:
+ k<"1#A5Ee:JEE=Ws9+E"9etZeC:!QIic1Q_'gfa_d+L1Y.c0cNQ/t-4Cog?U#=("lYT\g4,
+ Jdr*sr.aH^69h\FB(NbKs5s9N+k'Sp-WiQUgVN&-dc&/m%c8[D'gt/CSA4#J;cZ*TNlg,*I
+ o/Q$Mu`iVNB6UQ;(+6f7qb*?B->EE&FT8>VZtB(1m(W,!0lhr<XSrHB<U:oRFXU#=._1XHl
+ Y3a,`l%0co79@;/79]UmQGTIrUp`U-Mhm7.f`37V<T*br6*\`Qb0l#4:f3WgklIDr^ouCCq
+ If!te>q`qe,'7f1g]5*QOpZo`ZEqAAi(/$7KjGibi&(NZ3&nFBU>jOn6dTtq!IB'<ZEgd7H
+ ;c;YXP20d^fpI"h2>2j!\Rem0q7'XO2!2!E8]LpK[FI<]Qc0q%,;Ga2Jp;G3,RA+ki*/`_.
+ /Nh7^X*JM*$\dGFCe/eb\gWOUnJBEm[Tt5cn(RQ^@0p[0sR#\B<I/A#Yo]a^do&*ec3VJHI
+ _e2YoCS#Mc(R]"nN\oCHbHd`Sq#AcH%+*7$06l2CA6s7+,OGB@plf+#2LIf-_"R6u/Q\8fm
+ 7+`N&O1M5QQA8Z6oB7BhE;cAeb\>D:#iJHKhQX8\Cg`bB;SL[sYRl>8?/e3F7\1Wk=nF<2r
+ X0aAmbOU=>K&C&*Rlq6h'0oh;k\BTP/mZ%&jP1>.4$/p*7Nr7q='g.ULZ_Pr-6lg&=Pc\CH
+ :Y.Z\B+^Snt2hPIbN%<c[!S>0>)i$r7uSSKe<jd"*A^0`l?"rD'n&]CWM?;cfX?&&KcM;8p
+ .2+J6oEL-@gEE,[ZpcBPVC)SW!\W*!/'$]m;Prft!6-K6MihX7_\;j>*hqg6q0lVN1g:2)Q
+ Ys3!^URn,^68ct+A>"8#E(17>(!'-NEB1mr6"!pB`9:J<=iBEi?:Ll%1RT.sg[g"@;aMoA$
+ <J8e$.f@T%JY)J/RkQ"[9Q8Qe+e+NQ2It.!="iV0BTb-l"B$['^Dr3bB$R.R_[VZtkW<IB0
+ #[F+.Y`K3,5I%_t[sN)=@Tf%\;PD_*-kqhK2uk-V0X.LSkcM>NqYpB\TeD":'1tkhL`6onL
+ p+Sm>'T@p+%TR=>%M:,VG3Q$`n`2DTqOb)QU@*k^bH0'$?#;43h>]$7ikgEF=EV'^b%#c.\
+ M\bi#'(MmiL+E0Gk40AS(>Fs$"O.bZui,\cc:A!r)K15Q:2e$cjF2oDerD5k$&u+2sD4Ac~>
+Q
+Q Q
+showpage
+%%Trailer
+%%EOF
index 3b8c509..05aa83f 100644 (file)
@@ -1,29 +1,33 @@
 %!PS-Adobe-3.0 EPSF-3.0
 %%BoundingBox: 0 -1 85 150
-
-% A rectangular path
+% These lines are comments to aid in human understanding
+% Define an operator to produce a rectangular path
 /re { exch dup neg 3 1 roll 5 3 roll moveto 0 rlineto
-      0 exch rlineto 0 rlineto closepath } bind def
-% Path for the first rectangle
+0 exch rlineto 0 rlineto closepath } bind def
+% Operator to produce the path for the first rectangle
 /re1 { 24.613 133.001 24 -120 re } bind def
-% Path for the second rectangle
+% Operator to produce the path for the second rectangle
 /re2 { 10.215 45.001 48 -16 re } bind def
-% The curved path
-/curve { 46.215 1.001 moveto 
-46.215 1.001 91.812 11.399 71.812 35.399 curveto 51.812 59.399
- 29.414 33.802 51.812 59.399 curveto 74.215 85.001 93.414 45.802 74.215 85.001
- curveto 55.016 125.001 61.414 49.802 46.215 75.399 curveto 31.016 101.001 56.613 126.598
- 56.613 126.598 curveto 56.613 126.598 88.613 166.598 56.613 137.802 curveto 24.613 
-109.001 -18.586 83.399 9.414 50.598 curveto 37.414 17.802 45.414 1.001 45.414 
-1.001 curveto closepath } bind def
+% Operator which will produce the curved path
+/curve { 46.215 1.001 moveto
+46.215 1.001 91.812 11.399 71.812 35.399 curveto
+51.812 59.399 29.414 33.802 51.812 59.399 curveto
+74.215 85.001 93.414 45.802 74.215 85.001 curveto
+55.016 125.001 61.414 49.802 46.215 75.399 curveto
+31.016 101.001 56.613 126.598 56.613 126.598 curveto
+56.613 126.598 88.613 166.598 56.613 137.802 curveto
+24.613 109.001 -18.586 83.399 9.414 50.598 curveto
+37.414 17.802 45.414 1.001 45.414 1.001 curveto
+closepath } bind def
 % Set stroke properties
-0.8 setlinewidth 0 setlinecap 0 setlinejoin [] 0.0 setdash 4 setmiterlimit 
+0.8 setlinewidth 0 setlinecap 0 setlinejoin []
+0.0 setdash 4 setmiterlimit
 % Draw the straight line
-0 setgray 0.613 149.001 moveto 83.812 0.2 lineto fill 
+0 setgray 0.613 149.001 moveto 83.812 0.2 lineto stroke
 % Fill and outline the first rectangular path
 0 0 1 setrgbcolor re1 fill 0 setgray re1 stroke
 % Fill and outline the curved shape
 1 0 0 setrgbcolor curve fill 0 setgray curve stroke
-% Fill and outline the second rectangle 
+% Fill and outline the second rectangle
 0 1 0 setrgbcolor re2 fill 0 setgray re2 stroke
 showpage
index 0e1ed7c..117950d 100644 (file)
@@ -1,18 +1,32 @@
 <?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" 
-       "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
-<svg id="svg_example" xmlns="http://www.w3.org/2000/svg"
-       version="1.1" width="104" height="186">
-<path id="straightline" d = "m 0, 0 104, 186" style="stroke:#000000;"/>
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
+"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<!-- These lines are comments to assist human readability -->
+<svg id="svg_example"
+xmlns="http://www.w3.org/2000/svg"
+version="1.1"
+width="104"
+height="186"
+transform="translate(1,0)">
+<!-- The straight line -->
+<path id="straightline" d = "m 0, 0 104, 186"
+style="stroke:#000000;"/>
+<!-- The first (bottom) rectangle -->
 <rect id="rect1"
-       x = "30" y = "20" width = "30" height = "150"
-       style = "fill:#0000ff; fill-opacity:0.5; stroke:#000000;"/>
-<path id="path"
-       d = "m 57,185 c 0,0 57,-13 32,-43 -25,-30 -53,2 -25,-30 28,
-               -32 52,17 28,-32 -24,-50 -16,44 -35,12 -19,-32 13,-64 13,
-               -64 0,0 40,-50 -0,-14 -40,36 -94,68 -59,109 35,41 45,62 45,62 z"
-       style = "fill:#ff0000; fill-opacity:0.75; stroke:#000000;"/>
+x = "30" y = "20" width = "30" height = "150"
+style = "fill:#0000ff; fill-opacity:0.5;
+stroke:#000000;"/>
+<!-- The curved region -->
+<path id="curvedshape"
+d = "m 57,185 c 0,0 57,-13 32,-43 -25,-30 -53,2 -25,
+-30 28,-32 52,17 28,-32 -24,-50 -16,44 -35,12
+-19,-32 13,-64 13,-64 0,0 40,-50 -0,-14 -40,36
+-94,68 -59,109 35,41 45,62 45,62 z"
+style = "fill:#ff0000; fill-opacity:0.75;
+stroke:#000000;"/>
+<!-- The second (top) rectangle -->
 <rect id="rect2"
-       x = "12" y = "130" width = "60" height = "20"
-       style = "fill:#00ff00; fill-opacity:0.5; stroke:#000000;"/>
+x = "12" y = "130" width = "60" height = "20"
+style = "fill:#00ff00; fill-opacity:0.5;
+stroke:#000000;"/>
 </svg>
diff --git a/figures/spline.eps b/figures/spline.eps
new file mode 100644 (file)
index 0000000..4d262ac
--- /dev/null
@@ -0,0 +1,4 @@
+%!PS-Adobe-3.0 EPSF-3.0
+%%BoundingBox: 0 0 260 315
+% Scale is 1.246105919 PostScript pts per SVG pixel, but using same values as spline.svg to make more readable
+0 300 moveto 0 300 200 210 90 140 curveto -20 70 200 0 200 0 curveto stroke showpage
diff --git a/figures/spline.pdf b/figures/spline.pdf
new file mode 100644 (file)
index 0000000..6cf31fb
--- /dev/null
@@ -0,0 +1,69 @@
+%PDF-1.5
+%µí®û
+3 0 obj
+<< /Length 4 0 R
+   /Filter /FlateDecode
+>>
+stream
+x\9cM\8aA
+\83@\10\ 4ïó\8aú@Ö\99\98\17\b\81\1c\90CØ@ àArðûY\15D\86\9b\9aDYnè¨^Êç'\16\12sY¯%_y<Ñ ¼%rcÂVù´<o\9c<Jí¡UÃcËÈ¡Øec;'LãÆ®d,­%ÅÝÙm)\98¹ÓK/\7fF       \1d÷
+endstream
+endobj
+4 0 obj
+   113
+endobj
+2 0 obj
+<<
+   /ExtGState <<
+      /a0 << /CA 1 /ca 1 >>
+   >>
+>>
+endobj
+5 0 obj
+<< /Type /Page
+   /Parent 1 0 R
+   /MediaBox [ 0 0 208 252 ]
+   /Contents 3 0 R
+   /Group <<
+      /Type /Group
+      /S /Transparency
+      /I true
+      /CS /DeviceRGB
+   >>
+   /Resources 2 0 R
+>>
+endobj
+1 0 obj
+<< /Type /Pages
+   /Kids [ 5 0 R ]
+   /Count 1
+>>
+endobj
+6 0 obj
+<< /Creator (cairo 1.12.16 (http://cairographics.org))
+   /Producer (cairo 1.12.16 (http://cairographics.org))
+>>
+endobj
+7 0 obj
+<< /Type /Catalog
+   /Pages 1 0 R
+>>
+endobj
+xref
+0 8
+0000000000 65535 f 
+0000000513 00000 n 
+0000000227 00000 n 
+0000000015 00000 n 
+0000000205 00000 n 
+0000000299 00000 n 
+0000000578 00000 n 
+0000000707 00000 n 
+trailer
+<< /Size 8
+   /Root 7 0 R
+   /Info 6 0 R
+>>
+startxref
+759
+%%EOF
diff --git a/figures/spline.svg b/figures/spline.svg
new file mode 100644 (file)
index 0000000..8b432dd
--- /dev/null
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
+               "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+
+<svg
+   xmlns="http://www.w3.org/2000/svg"
+   version="1.1"
+   width="260"
+   height="315">
+               <!-- As a single spline the path data is two cubic beziers -->
+               <!-- Using relative path commands -->
+               <path d="m 0,300 c 0,0 200,-90 90,-160 -110,-70 110,-140 110,-140" style="stroke:#000000; stroke-width:2px; fill:none;"/>
+               <path d="M 0,300 C 0,300 200,210 90,140 -20,70 200,0 200,0" style="stroke:#ff0000; stroke-width:2px; fill:none;"/>
+</svg>
diff --git a/figures/spline_labelled.pdf b/figures/spline_labelled.pdf
new file mode 100644 (file)
index 0000000..a56d417
Binary files /dev/null and b/figures/spline_labelled.pdf differ
diff --git a/figures/spline_labelled.svg b/figures/spline_labelled.svg
new file mode 100644 (file)
index 0000000..92812a0
--- /dev/null
@@ -0,0 +1,49 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
+               "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+
+<svg
+   xmlns="http://www.w3.org/2000/svg"
+   version="1.1"
+   width="260"
+   height="315">
+       <g transform="translate(41,10)">
+
+               <!-- We will draw circles at the control points -->
+               <g >
+                       <!-- Start of first bezier -->
+                       <circle cx="0" cy="300" r="5px" stroke="black"  fill="red" fill-opacity="0.5"/>
+                               <text x="-5" y="290" fill="red">A0</text>
+                       <circle cx="200" cy="210" r="5px" stroke="black"  fill="red" fill-opacity="0.5"/>
+                               <text x="205" y="205" fill="red">A1</text>
+
+                       <!-- End of first, start of second -->
+                       <circle cx="90" cy="140" r="10px" stroke="black"  fill="purple" fill-opacity="0.5"/>
+                               <text x="105" y="145" fill="red">A2</text>
+                               <text x="60" y="145" fill="blue">B0</text>
+                       <circle cx="-20" cy="70" r="5px" stroke="black"  fill="blue" fill-opacity="0.5"/>
+                               <text x="-40" y="70" fill="blue">B1</text>
+                       <circle cx="200" cy="0" r="5px" stroke="black"  fill="blue" fill-opacity="0.5"/>                
+                               <text x="195" y="20" fill="blue">B2</text>      
+               </g>
+
+               <!-- As a single spline the path data is two cubic beziers -->
+               <!--d="m 0,300 c 0,0 200,-90 90,-160 -110,-70 110,-140 110,-140"-->
+          
+               <!-- First cubic bezier -->
+       <path d="m 0,300 c 0,0 200,-90 90,-160"
+          style="fill:none;stroke:#aa0000;stroke-width:2px;" />
+               <!-- Second cubic bezier -->
+       <path d="m 90,140 c -110,-70 110,-140 110,-140"
+          style="fill:none;stroke:#00aaaa;stroke-width:2px;" />
+
+               <g style="stroke-width:1px;">
+                   <path stroke-dasharray="5,5"
+                               d="m 0,300 200,-90 -110,-70" style="fill:none; stroke:#ff0000;"/>
+                       <path stroke-dasharray="1,1"
+                               d="m 90,140 -110,-70 220,-70" style="fill:none; stroke:#0000ff;"/>
+               </g>
+
+
+       </g>
+</svg>
diff --git a/figures/z.pdf b/figures/z.pdf
new file mode 100644 (file)
index 0000000..5dd560e
Binary files /dev/null and b/figures/z.pdf differ
diff --git a/figures/z.png b/figures/z.png
new file mode 100644 (file)
index 0000000..8fcbcb0
Binary files /dev/null and b/figures/z.png differ
diff --git a/figures/z.svg b/figures/z.svg
new file mode 100644 (file)
index 0000000..670cddf
--- /dev/null
@@ -0,0 +1,68 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://creativecommons.org/ns#"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   width="200"
+   height="154.47827"
+   id="svg2"
+   version="1.1"
+   inkscape:version="0.48.3.1 r9886"
+   sodipodi:docname="z.svg">
+  <defs
+     id="defs4" />
+  <sodipodi:namedview
+     id="base"
+     pagecolor="#ffffff"
+     bordercolor="#666666"
+     borderopacity="1.0"
+     inkscape:pageopacity="0.0"
+     inkscape:pageshadow="2"
+     inkscape:zoom="0.98994949"
+     inkscape:cx="294.823"
+     inkscape:cy="137.3931"
+     inkscape:document-units="px"
+     inkscape:current-layer="text2985"
+     showgrid="false"
+     fit-margin-top="0"
+     fit-margin-left="0"
+     fit-margin-right="0"
+     fit-margin-bottom="0"
+     inkscape:window-width="1366"
+     inkscape:window-height="711"
+     inkscape:window-x="1280"
+     inkscape:window-y="283"
+     inkscape:window-maximized="1" />
+  <metadata
+     id="metadata7">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+        <dc:title></dc:title>
+      </cc:Work>
+    </rdf:RDF>
+  </metadata>
+  <g
+     inkscape:label="Layer 1"
+     inkscape:groupmode="layer"
+     id="layer1"
+     transform="translate(0,-896.97353)">
+    <g
+       style="font-size:178.5677948px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:125%;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:DejaVu Sans;-inkscape-font-specification:DejaVu Sans"
+       id="text2985">
+      <path
+         inkscape:connector-curvature="0"
+         d="m 47.418332,974.10736 c 2.107485,0 4.425713,0 6.111702,-0.42153 9.062157,-1.89666 18.75659,-7.16546 25.922016,-14.12016 3.161222,-3.16113 4.425714,-4.84715 6.533199,-7.79764 3.582719,-5.90098 6.11169,-9.27289 6.11169,-17.2813 0,-3.37202 -0.210743,-4.6365 -1.26448,-6.95469 -1.053748,-2.31831 -3.371976,-4.84727 -4.636467,-4.84727 -0.421497,0 -6.533187,3.58279 -6.533187,4.0042 -0.210755,0.21077 -0.210755,1.68602 -0.210755,2.9505 -0.421497,6.95469 -3.371976,13.90939 -9.694409,22.76086 -6.322444,8.85136 -9.483678,11.59108 -14.963116,13.27709 -1.475246,0.63218 -2.95048,0.84295 -4.636468,0.84295 -7.797666,0 -12.434134,-3.37191 -12.434134,-9.27289 0,-0.84294 0,-1.47524 0.210743,-2.31819 1.053736,-6.9547 7.797689,-17.70283 16.649104,-26.76507 10.748146,-11.16967 23.393058,-18.75654 36.459432,-21.9178 4.214959,-1.05371 7.165438,-1.26448 11.169658,-1.26448 4.00421,0 7.37618,0.42153 7.37618,3.37202 0,1.89666 -1.68599,4.84715 -6.11169,11.16955 -2.95048,4.00432 -3.793476,5.05804 -3.793476,8.42994 0,3.58279 2.528986,6.53328 8.429926,10.32672 5.2687,3.58267 11.16967,4.84715 18.12434,6.3224 l -2.73972,3.58279 -17.0706,24.23599 -6.743946,0 -5.47945,0 c -2.52897,0 -2.107485,0.42154 -4.214959,2.95049 -2.107485,3.16126 -2.318228,3.79344 -0.632251,4.84716 l 5.479462,0.21076 c 3.16121,0 5.690194,0 5.690194,0.21077 l -7.79768,10.53732 c -12.012637,15.38465 -22.128566,26.76505 -31.822975,34.77345 l -2.528971,2.1075 -3.793474,-0.843 c -8.219175,-1.8968 -14.330876,-2.7397 -21.28556,-2.7397 -12.644877,0 -22.971561,2.5289 -28.8724967,9.0621 C 2.1074854,1035.8565 0,1038.1747 0,1041.9681 c 0,1.2645 0,2.1076 0.21074263,2.529 2.52898247,4.8473 11.38040937,5.2687 21.07481837,5.2687 12.855631,0 20.44259,-2.529 32.455215,-8.0084 l 3.371977,-1.686 4.425713,2.3183 c 9.483655,5.2687 14.963117,7.3761 22.128555,8.6407 2.739725,0.4214 3.582719,0.4214 7.797678,0.4214 4.425713,0 4.84721,0 7.376181,-0.4214 14.33087,-3.1613 30.97999,-13.9094 41.0959,-26.7651 1.68598,-2.3182 2.31823,-3.372 2.31823,-4.0042 0,-0.6323 -0.4215,-0.8431 -1.26449,-1.686 l -6.74394,0 -0.4215,0.6323 c -0.4215,0.2106 -1.26449,1.4752 -2.10748,2.3182 -5.90094,7.5869 -20.02109,15.1739 -32.455223,15.1739 -8.429918,0 -16.016865,-1.4753 -25.289777,-4.0042 l -3.161222,-1.0538 2.95048,-2.1075 c 17.070578,-12.0126 36.248692,-31.19069 49.525812,-49.10424 l 12.64489,0 c 9.90515,0 12.85565,0 13.27713,-0.21076 0.21076,-0.21065 1.26449,-1.47525 2.31824,-2.73973 2.31823,-3.37191 1.68598,-3.37191 0.63224,-5.05792 l -22.97155,0 c 0,-0.21076 0.63224,-1.05371 1.26449,-2.31819 2.73973,-4.21497 5.90095,-9.90519 9.90517,-17.70283 4.0042,-8.00853 4.00421,-8.21917 4.63645,-8.21917 0.4215,-0.21077 2.10749,-0.42154 3.79348,-0.6323 6.74393,-1.05372 14.75237,-2.95049 22.76079,-5.47945 15.3846,-5.26869 22.33931,-9.90519 26.34353,-17.9136 1.47523,-2.73972 2.10747,-5.47945 2.10747,-8.00841 0,-2.10754 -0.4215,-4.21497 -1.47523,-6.32251 -2.10748,-4.63639 -5.69021,-6.74393 -12.85563,-6.74393 -3.37198,0 -4.21498,0 -6.5332,0.42153 -8.00842,1.68601 -15.59537,5.69022 -23.60379,12.43415 -6.53319,5.05791 -14.12014,13.27709 -21.70707,22.55009 l -1.68598,2.3182 c -5.47945,-1.05372 -10.95891,-2.3182 -10.95891,-7.587 0,-1.68589 0.84299,-3.58267 2.31823,-5.90086 2.95048,-4.21497 4.21497,-8.00841 4.21497,-11.38043 0,-9.90519 -9.27294,-14.96311 -21.49632,-14.96311 l -0.84299,0 c -1.68599,0 -3.16122,0 -3.58272,0.21077 -13.698614,1.26448 -28.872508,7.58687 -43.203373,18.12436 -7.376181,5.26868 -14.752374,12.64479 -19.810327,19.17807 -4.847199,6.53317 -8.219175,13.2771 -9.483667,19.17808 -0.210754,1.26448 -0.210754,2.73973 -0.210754,4.21497 0,10.74813 6.954707,16.22758 18.335093,16.22758 M 190.93783,912.77958 c 0,1.26448 -0.4215,2.95049 -1.05374,4.63651 -2.52897,5.69021 -6.74395,9.27288 -14.33087,12.43414 -4.8472,1.89678 -11.80191,3.79344 -17.0706,4.84715 -3.58272,0.84307 -8.85143,1.47525 -9.90517,1.47525 l -0.21074,0 c 0,-0.21065 4.00422,-7.16535 5.47945,-9.69442 3.79346,-5.6901 6.9547,-10.53737 12.22339,-14.12004 4.63646,-3.79356 10.11592,-5.69022 17.28135,-5.69022 4.63645,0.42153 7.58693,1.89666 7.58693,6.11163 M 9.9051635,1039.65 c 0,-0.2108 0.2107425,-0.4216 0.4214975,-0.8431 2.107473,-4.4256 8.008432,-6.3224 16.227607,-6.3224 9.062158,0 12.855643,0 18.545836,2.3182 1.264491,0.4215 1.896731,0.6323 1.896731,0.843 0,0.2108 -0.842994,0.6322 -2.739725,1.6859 -7.376181,3.5828 -12.223403,4.6365 -20.02107,4.6365 -6.11169,0 -14.3308765,-0.2107 -14.3308765,-2.3181"
+         id="path3008" />
+    </g>
+  </g>
+</svg>
index 72517d4..52152c7 100644 (file)
Binary files a/thesis.pdf and b/thesis.pdf differ
index 0db8399..5e7b1ea 100644 (file)
@@ -5,7 +5,7 @@
  \parskip 10pt           % sets spacing between paragraphs
  %\renewcommand{\baselinestretch}{1.5}         % Uncomment for 1.5 spacing between lines
  %\parindent 0pt                 % sets leading space for paragraphs
-
+\usepackage{mathrsfs}
 \usepackage{ulem}
 %\usepackage{natbib}
 \usepackage{makeidx}
@@ -37,7 +37,7 @@
 %\usepackage[usenames,dvipsnames]{color}
 \usepackage{minted} % For code snippets
 \AtBeginEnvironment{minted}{\singlespacing%
-    \fontsize{8}{8}\selectfont}
+    \fontsize{7}{7}\selectfont}
 \definecolor{pink}{rgb}{1.0,0.5,0.5}
 \definecolor{darkgray}{rgb}{0.1,0.1,0.1}
 \definecolor{lightgray}{rgb}{0.95,0.95,0.95}

UCC git Repository :: git.ucc.asn.au