Posting for MathGroup
- To: mathgroup at smc.vnet.net
- Subject: [mg39230] Posting for MathGroup
- From: Tom Wickham-Jones <twj at wolfram.com>
- Date: Tue, 4 Feb 2003 02:23:40 -0500 (EST)
- Sender: owner-wri-mathgroup at wolfram.com
One of the new features of Mathematica 4.2 are the XML tools and I have written an example of their use based on SVG (an XML application for vector graphics). Tom Wickham-Jones (************** Content-type: application/mathematica ************** CreatedBy='Mathematica 4.2' Mathematica-Compatible Notebook This notebook can be used with any Mathematica-compatible application, such as Mathematica, MathReader or Publicon. The data for the notebook starts with the line containing stars above. To get the notebook into a Mathematica-compatible application, do one of the following: * Save the data starting with the line of stars above into a file with a name ending in .nb, then open the file inside the application; * Copy the data starting with the line of stars above to the clipboard, then use the Paste menu command inside the application. Data for notebooks contains only printable 7-bit ASCII and can be sent directly in email or through ftp in text mode. Newlines can be CR, LF or CRLF (Unix, Macintosh or MS-DOS style). NOTE: If you modify the data for this notebook not in a Mathematica- compatible application, you must delete the line below containing the word CacheID, otherwise Mathematica-compatible applications may try to use invalid cache data. For more information on notebooks and Mathematica-compatible applications, contact Wolfram Research: web: http://www.wolfram.com email: info at wolfram.com phone: +1-217-398-0700 (U.S.) Notebook reader applications are available free of charge from Wolfram Research. *******************************************************************) (*CacheID: 232*) (*NotebookFileLineBreakTest NotebookFileLineBreakTest*) (*NotebookOptionsPosition[ 52820, 1633]*) (*NotebookOutlinePosition[ 53608, 1662]*) (* CellTagsIndexPosition[ 53538, 1656]*) (*WindowFrame->Normal*) Notebook[{ Cell[TextData[{ "Generating SVG with ", StyleBox["Mathematica", FontSlant->"Italic"] }], "Title"], Cell["An example of the use of SymbolicXML", "Subtitle"], Cell["\<\ Tom Wickham-Jones Wolfram Research Inc. 27-Jan-2003\ \>", "Subsubtitle"], Cell[CellGroupData[{ Cell["What is SVG?", "Section"], Cell[TextData[{ "SVG is an XML language for describing two-dimensional graphics. Since it \ is based on XML any XML aware application can work with SVG. ", StyleBox["Mathematica", FontSlant->"Italic"], " has some good tools for working with XML and some specific functions that \ support SVG, thus it is a good environment for some interesting SVG \ applications. SVG contains some interesting features including a variety of \ dynamic features such as animations." }], "Text"], Cell[TextData[{ "SVG can be rendered with a browser plug-in from Adobe, ", ButtonBox["http://www.adobe.com/svg", ButtonData:>{ URL[ "http://www.adobe.com/svg"], None}, ButtonStyle->"Hyperlink"], ". which provides strong support including the animation functions. More \ information about SVG can be found at the W3C site: ", ButtonBox["http://www.w3.org/Graphics/SVG/", ButtonData:>{ URL[ "http://www.w3.org/Graphics/SVG/"], None}, ButtonStyle->"Hyperlink"], "." }], "Text"] }, Open ]], Cell[CellGroupData[{ Cell[TextData[{ StyleBox["Mathematica", FontSlant->"Italic"], " Commands for Generating SVG" }], "Section"], Cell[TextData[{ StyleBox["Mathematica", FontSlant->"Italic"], " has a rich graphics language for representing graphics as ", StyleBox["Mathematica", FontSlant->"Italic"], " expressions." }], "Text"], Cell[CellGroupData[{ Cell[BoxData[ \(p = Graphics[Line[\ {{0, 0}, {1, 1}}]]\)], "Input"], Cell[BoxData[ TagBox[\(\[SkeletonIndicator] Graphics \[SkeletonIndicator]\), False, Editable->False]], "Output"] }, Open ]], Cell[TextData[{ "These print as expressions, if you want to see a graphical expression you \ use a command such as ", StyleBox["Show", "InlineInput"], "." }], "Text"], Cell[CellGroupData[{ Cell[BoxData[ \(Show[p]\)], "Input"], Cell[GraphicsData["PostScript", "\<\ %! %%Creator: Mathematica %%AspectRatio: .61803 MathPictureStart /Mabs { Mgmatrix idtransform Mtmatrix dtransform } bind def /Mabsadd { Mabs 3 -1 roll add 3 1 roll add exch } bind def %% Graphics %%IncludeResource: font Courier %%IncludeFont: Courier /Courier findfont 10 scalefont setfont % Scaling calculations 0.0238095 0.952381 0.0147151 0.588604 [ [ 0 0 0 0 ] [ 1 .61803 0 0 ] ] MathScale % Start of Graphics 1 setlinecap 1 setlinejoin newpath 0 0 m 1 0 L 1 .61803 L 0 .61803 L closepath clip newpath 0 g .5 Mabswid [ ] 0 setdash .02381 .01472 m .97619 .60332 L s % End of Graphics MathPictureEnd \ \>"], "Graphics", ImageSize->{288, 177.938}, ImageMargins->{{43, 0}, {0, 0}}, ImageRegion->{{0, 1}, {0, 1}}, ImageCache->GraphicsData["Bitmap", "\<\ CF5dJ6E]HGAYHf4PAg9QL6QYHg<PAVmbKF5d0`40004P0000/A000`40O003h00Oogoo8Goo003oOolQ Ool00?moob5oo`00ogoo8Goo0007Ool00`00Oomoo`3oOolGOol000Qoo`800?mooaMoo`002Woo0P00 ogoo5Goo000<Ool00`00Oomoo`3oOolBOol000eoo`800?mooa9oo`003goo00<007ooOol0ogoo3goo 000@Ool2003oOol?Ool0019oo`800?moo`eoo`0057oo00<007ooOol0ogoo2Woo000EOol2003oOol: Ool001Moo`800?moo`Qoo`006Goo00<007ooOol0ogoo1Goo000JOol2003oOol5Ool001aoo`03001o ogoo0?moo`9oo`007Goo0P00ogoo0Woo000OOol2003oOol0025oo`03001oogoo0?aoo`008Woo0P00 o7oo000TOol00`00Oomoo`3iOol002Eoo`800?Uoo`009goo0P00mgoo000YOol00`00Oomoo`3dOol0 02Yoo`800?Aoo`00;7oo0P00lWoo000^Ool00`00Oomoo`3_Ool002moo`800>moo`00<Goo00<007oo Ool0k7oo000bOol2003/Ool003Aoo`800>Yoo`00=Woo00<007ooOol0igoo000gOol2003WOol003Uo o`800>Eoo`00>goo00<007ooOol0hWoo000lOol2003ROol003ioo`03001oogoo0=moo`00?goo0P00 ggoo0011Ool2003MOol004=oo`03001oogoo0=Yoo`00A7oo0P00fWoo0016Ool00`00Oomoo`3GOol0 04Moo`800=Moo`00BGoo0P00eGoo001;Ool00`00Oomoo`3BOol004aoo`800=9oo`00CWoo0P00d7oo 001@Ool00`00Oomoo`3=Ool0055oo`800<eoo`00Dgoo00<007ooOol0bWoo001DOol2003:Ool005Io o`800<Qoo`00F7oo00<007ooOol0aGoo001IOol20035Ool005]oo`800<=oo`00GGoo00<007ooOol0 `7oo001NOol20030Ool0061oo`03001oogoo0;eoo`00HGoo0P00_Goo001SOol2002kOol006Eoo`03 001oogoo0;Qoo`00IWoo0P00^7oo001XOol00`00Oomoo`2eOol006Uoo`800;Eoo`00Jgoo0P00/goo 001]Ool00`00Oomoo`2`Ool006ioo`800;1oo`00L7oo0P00[Woo001bOol00`00Oomoo`2[Ool007=o o`800:]oo`00MGoo00<007ooOol0Z7oo001fOol2002XOol007Qoo`800:Ioo`00NWoo00<007ooOol0 Xgoo001kOol2002SOol007eoo`800:5oo`00Ogoo00<007ooOol0WWoo0020Ool2002NOol0089oo`03 001oogoo09]oo`00Pgoo0P00Vgoo0025Ool2002IOol008Moo`03001oogoo09Ioo`00R7oo0P00UWoo 002:Ool00`00Oomoo`2COol008]oo`8009=oo`00SGoo0P00TGoo002?Ool00`00Oomoo`2>Ool0091o o`8008ioo`00TWoo0P00S7oo002DOol00`00Oomoo`29Ool009Eoo`8008Uoo`00Ugoo00<007ooOol0 QWoo002HOol20026Ool009Yoo`8008Aoo`00W7oo00<007ooOol0PGoo002MOol20021Ool009moo`80 07moo`00XGoo00<007ooOol0O7oo002ROol2001lOol00:Aoo`03001oogoo07Uoo`00YGoo0P00NGoo 002WOol2001gOol00:Uoo`03001oogoo07Aoo`00ZWoo0P00M7oo002/Ool00`00Oomoo`1aOol00:eo o`80075oo`00[goo0P00Kgoo002aOol00`00Oomoo`1/Ool00;9oo`8006aoo`00]7oo0P00JWoo002f Ool00`00Oomoo`1WOol00;Moo`8006Moo`00^Goo00<007ooOol0I7oo002jOol2001TOol00;aoo`80 069oo`00_Woo00<007ooOol0Ggoo002oOol2001OOol00<5oo`8005eoo`00`goo00<007ooOol0FWoo 0034Ool2001JOol00<Ioo`03001oogoo05Moo`00agoo0P00Egoo0039Ool2001EOol00<]oo`03001o ogoo059oo`00c7oo0P00DWoo003>Ool00`00Oomoo`1?Ool00<moo`8004moo`00dGoo0P00CGoo003C Ool00`00Oomoo`1:Ool00=Aoo`8004Yoo`00eWoo0P00B7oo003HOol00`00Oomoo`15Ool00=Uoo`80 04Eoo`00fgoo00<007ooOol0@Woo003LOol20012Ool00=ioo`80041oo`00h7oo00<007ooOol0?Goo 003QOol2000mOol00>=oo`8003]oo`00iGoo00<007ooOol0>7oo003VOol2000hOol00>Qoo`03001o ogoo03Eoo`00jGoo0P00=Goo003[Ool2000cOol00>eoo`03001oogoo031oo`00kWoo0P00<7oo003` Ool00`00Oomoo`0]Ool00?5oo`8002eoo`00lgoo0P00:goo003eOol00`00Oomoo`0XOol00?Ioo`80 02Qoo`00n7oo0P009Woo003jOol00`00Oomoo`0SOol00?]oo`8002=oo`00oGoo00<007ooOol087oo 003nOol2000POol00?moo`5oo`8001ioo`00ogoo0goo00<007ooOol06goo003oOol4Ool2000KOol0 0?moo`Ioo`8001Uoo`00ogoo27oo00<007ooOol05Woo003oOol9Ool2000FOol00?moo`]oo`03001o ogoo01=oo`00ogoo37oo0P004goo003oOol>Ool2000AOol00?mooa1oo`03001oogoo00ioo`00ogoo 4Goo0P003Woo003oOolCOol00`00Oomoo`0;Ool00?mooaAoo`8000]oo`00ogoo5Woo0P002Goo003o OolHOol00`00Oomoo`06Ool00?moob5oo`00ogoo8Goo003oOolQOol00?moob5oo`00\ \>"], ImageRangeCache->{{{0, 287}, {176.938, 0}} -> {-0.0263022, -0.0250052, \ 0.00366761, 0.00593432}}], Cell[BoxData[ TagBox[\(\[SkeletonIndicator] Graphics \[SkeletonIndicator]\), False, Editable->False]], "Output"] }, Open ]], Cell[TextData[{ StyleBox["Mathematica", FontSlant->"Italic"], " can write an XML representation of a ", StyleBox["Mathematica", FontSlant->"Italic"], " graphics expression into a string with ", StyleBox["ExportString", "InlineInput"], " and into a file with ", StyleBox["Export", "InlineInput"], "." }], "Text"], Cell[CellGroupData[{ Cell[BoxData[ \(str = ExportString[p, "\<SVG\>"]\)], "Input"], Cell[BoxData[ \("<?xml version='1.0' encoding='UTF-8'?>\n<!DOCTYPE svg PUBLIC \ '-//W3C//DTD SVG 1.0//EN' \ 'http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd'>\n<svg \ xmlns='http://www.w3.org/2000/svg'\n width='288.0pt'\n \ height='177.994pt'\n viewBox='-0.025 -0.0154508 1.05 0.648936'\n \ preserveAspectRatio='xMidYMid meet'>\n <g transform='scale(1, -1) \ translate(0,-0.618034)'\n style='fill:black; font-family:'Courier \ New', Courier, Symbol, monospace; font-size:0.021875pt; stroke:black; \ stroke-width:0.000911458pt'>\n <line fill='none'\n x1='0.0'\n \ y1='0.0'\n x2='1.0'\n y2='0.618034'/>\n </g>\n</svg>"\)], "Output"] }, Open ]], Cell[TextData[{ "A string of XML can be read back into ", StyleBox["Mathematica", FontSlant->"Italic"], " with the command ", StyleBox["ImportString", "InlineInput"], " with a format of ", StyleBox["XML", "InlineInput"], ". This returns a symbolic XML expression that is an isomorphic \ representation of the original XML. The symbolic XML version of the XML can \ be worked with by standard ", StyleBox["Mathematica", FontSlant->"Italic"], " programming techniques. This is demonstrated in the ", ButtonBox["next section", ButtonData:>"t:1", ButtonStyle->"Hyperlink"], "." }], "Text"], Cell[CellGroupData[{ Cell[BoxData[ \(ImportString[str, \ "\<XML\>"]\)], "Input"], Cell[BoxData[ \(\(XMLObject[ "Document"]\)[{\(XMLObject["Declaration"]\)["Version" \[Rule] "1.0", "Encoding" \[Rule] "UTF-8"], \(XMLObject["Doctype"]\)["svg", "Public" \[Rule] "-//W3C//DTD SVG 1.0//EN", "System" \[Rule] "http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd"]}, XMLElement[ "svg", {{"http://www.w3.org/2000/xmlns/", "xmlns"} \[Rule] "http://www.w3.org/2000/svg", "width" \[Rule] "288.0pt", "height" \[Rule] "177.994pt", "viewBox" \[Rule] "-0.025 -0.0154508 1.05 0.648936", "preserveAspectRatio" \[Rule] "xMidYMid meet"}, {XMLElement[ "g", {"transform" \[Rule] "scale(1, -1) translate(0,-0.618034)", "style" \[Rule] "fill:black; font-family:'Courier New', Courier, Symbol, \ monospace; font-size:0.021875pt; stroke:black; stroke-width:0.000911458pt"}, \ {XMLElement["line", {"fill" \[Rule] "none", "x1" \[Rule] "0.0", "y1" \[Rule] "0.0", "x2" \[Rule] "1.0", "y2" \[Rule] "0.618034"}, {}]}]}], {}, "Valid" \[Rule] True]\)], "Output"] }, Open ]], Cell[TextData[{ "The command ", StyleBox["XML`SVG`GraphicsToSymbolicSVG", "InlineInput"], " goes directly from a ", StyleBox["Mathematica", FontSlant->"Italic"], " graphics expression directly to the symbolic XML representation of the \ SVG." }], "Text"], Cell[CellGroupData[{ Cell[BoxData[ \(XML`SVG`GraphicsToSymbolicSVG[p]\)], "Input"], Cell[BoxData[ \(\(XMLObject[ "Document"]\)[{\(XMLObject["Declaration"]\)["Version" \[Rule] "1.0", "Encoding" \[Rule] "UTF-8"], \(XMLObject["Doctype"]\)["svg", "Public" \[Rule] "-//W3C//DTD SVG 1.0//EN", "System" \[Rule] "http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd"]}, XMLElement[ "svg", {"xmlns" \[Rule] "http://www.w3.org/2000/svg", "width" \[Rule] "288.0pt", "height" \[Rule] "177.994pt", "viewBox" \[Rule] "-0.025 -0.0154508 1.05 0.648936", "preserveAspectRatio" \[Rule] "xMidYMid meet"}, {XMLElement[ "g", {"transform" \[Rule] "scale(1, -1) translate(0,-0.618034)", "style" \[Rule] "fill:black; font-family:'Courier New', Courier, Symbol, \ monospace; font-size:0.021875pt; stroke:black; stroke-width:0.000911458pt"}, \ {XMLElement["line", {"fill" \[Rule] "none", "x1" \[Rule] "0.0", "y1" \[Rule] "0.0", "x2" \[Rule] "1.0", "y2" \[Rule] "0.618034"}, {}]}]}], {}]\)], "Output"] }, Open ]] }, Open ]], Cell[CellGroupData[{ Cell["Generating an SVG Animation", "Section", CellTags->"t:1"], Cell[TextData[{ StyleBox["Mathematica", FontSlant->"Italic"], " can solve a differential equation:" }], "Text"], Cell[CellGroupData[{ Cell[BoxData[ \(sol = NDSolve[{\ \(x''\)[t] + 0.15\ \(x'\)[t] - x[t] + x[t]^3 \[Equal] 5 Cos[t], \[IndentingNewLine]x[0] \[Equal] 1, \(x'\)[0] \[Equal] 2}, x, {t, 0, 20}]\)], "Input"], Cell[BoxData[ RowBox[{"{", RowBox[{"{", RowBox[{"x", "\[Rule]", TagBox[\(InterpolatingFunction[{{0.`, 20.`}}, "<>"]\), False, Editable->False]}], "}"}], "}"}]], "Output"] }, Open ]], Cell["and then the solution can be plotted.", "Text"], Cell[CellGroupData[{ Cell[BoxData[ \(\(p = ParametricPlot[ Evaluate[{x[t], \(x'\)[t]} /. sol], {t, 0, 20}];\)\)], "Input"], Cell[GraphicsData["PostScript", "\<\ %! %%Creator: Mathematica %%AspectRatio: .61803 MathPictureStart /Mabs { Mgmatrix idtransform Mtmatrix dtransform } bind def /Mabsadd { Mabs 3 -1 roll add 3 1 roll add exch } bind def %% Graphics %%IncludeResource: font Courier %%IncludeFont: Courier /Courier findfont 10 scalefont setfont % Scaling calculations 0.477803 0.15697 0.306151 0.0573087 [ [.00689 .29365 -6 -9 ] [.00689 .29365 6 0 ] [.16386 .29365 -6 -9 ] [.16386 .29365 6 0 ] [.32083 .29365 -6 -9 ] [.32083 .29365 6 0 ] [.63477 .29365 -3 -9 ] [.63477 .29365 3 0 ] [.79174 .29365 -3 -9 ] [.79174 .29365 3 0 ] [.94871 .29365 -3 -9 ] [.94871 .29365 3 0 ] [.4653 .07692 -12 -4.5 ] [.4653 .07692 0 4.5 ] [.4653 .19153 -12 -4.5 ] [.4653 .19153 0 4.5 ] [.4653 .42077 -6 -4.5 ] [.4653 .42077 0 4.5 ] [.4653 .53539 -6 -4.5 ] [.4653 .53539 0 4.5 ] [ 0 0 0 0 ] [ 1 .61803 0 0 ] ] MathScale % Start of Graphics 1 setlinecap 1 setlinejoin newpath 0 g .25 Mabswid [ ] 0 setdash .00689 .30615 m .00689 .3124 L s [(-3)] .00689 .29365 0 1 Mshowa .16386 .30615 m .16386 .3124 L s [(-2)] .16386 .29365 0 1 Mshowa .32083 .30615 m .32083 .3124 L s [(-1)] .32083 .29365 0 1 Mshowa .63477 .30615 m .63477 .3124 L s [(1)] .63477 .29365 0 1 Mshowa .79174 .30615 m .79174 .3124 L s [(2)] .79174 .29365 0 1 Mshowa .94871 .30615 m .94871 .3124 L s [(3)] .94871 .29365 0 1 Mshowa .125 Mabswid .03829 .30615 m .03829 .3099 L s .06968 .30615 m .06968 .3099 L s .10108 .30615 m .10108 .3099 L s .13247 .30615 m .13247 .3099 L s .19526 .30615 m .19526 .3099 L s .22665 .30615 m .22665 .3099 L s .25805 .30615 m .25805 .3099 L s .28944 .30615 m .28944 .3099 L s .35223 .30615 m .35223 .3099 L s .38362 .30615 m .38362 .3099 L s .41501 .30615 m .41501 .3099 L s .44641 .30615 m .44641 .3099 L s .5092 .30615 m .5092 .3099 L s .54059 .30615 m .54059 .3099 L s .57198 .30615 m .57198 .3099 L s .60338 .30615 m .60338 .3099 L s .66617 .30615 m .66617 .3099 L s .69756 .30615 m .69756 .3099 L s .72895 .30615 m .72895 .3099 L s .76035 .30615 m .76035 .3099 L s .82314 .30615 m .82314 .3099 L s .85453 .30615 m .85453 .3099 L s .88592 .30615 m .88592 .3099 L s .91732 .30615 m .91732 .3099 L s .98011 .30615 m .98011 .3099 L s .25 Mabswid 0 .30615 m 1 .30615 L s .4778 .07692 m .48405 .07692 L s [(-4)] .4653 .07692 1 0 Mshowa .4778 .19153 m .48405 .19153 L s [(-2)] .4653 .19153 1 0 Mshowa .4778 .42077 m .48405 .42077 L s [(2)] .4653 .42077 1 0 Mshowa .4778 .53539 m .48405 .53539 L s [(4)] .4653 .53539 1 0 Mshowa .125 Mabswid .4778 .10557 m .48155 .10557 L s .4778 .13423 m .48155 .13423 L s .4778 .16288 m .48155 .16288 L s .4778 .22019 m .48155 .22019 L s .4778 .24884 m .48155 .24884 L s .4778 .2775 m .48155 .2775 L s .4778 .33481 m .48155 .33481 L s .4778 .36346 m .48155 .36346 L s .4778 .39211 m .48155 .39211 L s .4778 .44942 m .48155 .44942 L s .4778 .47808 m .48155 .47808 L s .4778 .50673 m .48155 .50673 L s .4778 .04826 m .48155 .04826 L s .4778 .01961 m .48155 .01961 L s .4778 .56404 m .48155 .56404 L s .4778 .59269 m .48155 .59269 L s .25 Mabswid .4778 0 m .4778 .61803 L s 0 0 m 1 0 L 1 .61803 L 0 .61803 L closepath clip newpath .5 Mabswid .63477 .42077 m .65038 .43313 L .66878 .44539 L .68599 .45489 L .70585 .46366 L .7185 .46803 L .73045 .47128 L .74207 .4736 L .75453 .47509 L .76573 .4755 L .77622 .47503 L .78766 .47348 L .79981 .47051 L .81209 .46593 L .82312 .46025 L .83472 .45238 L .84633 .44206 L .85653 .43038 L .86525 .41779 L .87232 .40508 L .87883 .39045 L .88384 .37607 L .88824 .35938 L .89118 .34355 L .89299 .32834 L .89392 .31008 L .89363 .29332 L .89194 .27411 L .88902 .25628 L .88482 .23893 L .87977 .22338 L .87306 .2073 L .86455 .19131 L .85491 .17697 L .8436 .16361 L .833 .15354 L .82092 .14431 L .80895 .13702 L .79765 .13152 L .78596 .12703 L .77468 .12368 L .76129 .12076 L .74879 .11894 L .73496 .11779 L .72796 .11751 L .72025 .11741 L .71264 .1175 L .70435 .1178 L .69654 .11826 L .68931 .11881 L Mistroke .67573 .12013 L .66139 .12186 L .60063 .13087 L .57204 .13483 L .55824 .13642 L .54567 .13763 L .53426 .1385 L .52229 .13916 L .5103 .13954 L .50351 .13962 L .49719 .13961 L .48504 .13935 L .47891 .13909 L .47213 .13872 L .46011 .13783 L .44878 .13673 L .42293 .13332 L .39442 .12841 L .34361 .11798 L .31465 .11204 L .28696 .10706 L .27369 .10509 L .26106 .10354 L .2464 .10224 L .23303 .10159 L .21814 .10159 L .20446 .10237 L .18953 .1042 L .18207 .10556 L .17394 .10741 L .16083 .11131 L .14913 .11587 L .13601 .12241 L .12404 .12994 L .10417 .14661 L .0939 .15793 L .08509 .16961 L .07634 .18363 L .06819 .19973 L .0621 .21464 L .05663 .23146 L .052 .25043 L .04892 .26864 L .04763 .27996 L .04684 .29071 L .04645 .31085 L .0473 .32841 L .0494 .34662 L .05213 .36166 L .05611 .37753 L Mistroke .06146 .39359 L .06837 .40956 L .08357 .43449 L .09417 .44687 L .10481 .45651 L .11722 .46505 L .12381 .46862 L .13109 .47186 L .13818 .4744 L .14478 .47626 L .15115 .47762 L .15793 .47864 L .16975 .47944 L .18273 .479 L .19546 .47735 L .20691 .47492 L .2199 .47112 L .23188 .46668 L .25229 .45715 L .27292 .44495 L .30794 .4177 L .33361 .39052 L .34441 .37598 L .35359 .36093 L .35751 .35318 L .36113 .34485 L .36364 .33796 L .3658 .33062 L .36676 .32664 L .36749 .32301 L .36804 .31964 L .36852 .31599 L .36899 .30975 L .36901 .30331 L .36882 .29972 L .36851 .29649 L .368 .29282 L .36736 .2894 L .36589 .28346 L .36378 .27721 L .35875 .26655 L .35176 .2561 L .34373 .24715 L .33538 .23988 L .32603 .23342 L .31487 .22747 L .30893 .22496 L .30238 .22266 L .29659 .22101 L .29019 .21961 L Mistroke .28371 .21863 L .27768 .21811 L .2719 .21798 L .26577 .21824 L .26032 .21884 L .25526 .21973 L .24977 .22108 L .24398 .22297 L .23747 .22574 L .23165 .22888 L .22505 .23333 L .21943 .23804 L .21012 .24842 L .2057 .255 L .20205 .26173 L .19918 .26828 L .19666 .27559 L .19495 .28213 L .19354 .28958 L .19262 .29787 L .19237 .30261 L .19232 .307 L .1927 .31563 L .19365 .32391 L .19507 .33169 L .19717 .34008 L .20246 .35511 L .2064 .36364 L .21122 .37243 L .22152 .38753 L .23448 .40233 L .24842 .4151 L .28604 .44064 L .32474 .45991 L .36425 .47637 L .46796 .51632 L .5932 .56481 L .62766 .57685 L .66638 .58859 L .68927 .59431 L .71056 .59859 L .73223 .60171 L .75298 .60332 L .77522 .60327 L .78762 .60232 L .7988 .60083 L .82038 .59603 L .84028 .58898 L .85136 .58377 L .86282 .57728 L Mistroke .88256 .56298 L .90246 .54359 L .92228 .51748 L .93718 .49136 L .94894 .46464 L .95463 .44876 L .96012 .43071 L .96814 .39609 L .97324 .36207 L .97602 .32492 L .97619 .29292 L .97404 .25795 L .96945 .22373 L .96307 .19333 L .95386 .16205 L .94166 .1316 L .92645 .10325 L .91016 .08025 L .89416 .06278 L .87562 .04723 L .85863 .03643 L .83926 .02733 L .81845 .02068 L .79864 .01681 L .77994 .01502 L .7628 .01472 L .74305 .01573 L .72442 .01782 L .70472 .02104 L .68325 .02551 L .64093 .03651 L .56944 .05825 L .49726 .0793 L .46033 .08833 L .42715 .09512 L .37011 .10405 L .31008 .11165 L .28463 .11534 L .26107 .11964 L .23467 .1261 L .21159 .1339 L .18738 .14523 L .16377 .16082 L .14573 .17727 L .1286 .19873 L .12043 .21218 L .11394 .22528 L .10769 .24118 L .10304 .2569 L .09991 .27172 L Mistroke .098 .28562 L .09734 .29364 L .09702 .30088 L .09697 .30918 L .09725 .31692 L .0984 .3298 L .10057 .34313 L .10348 .35513 L .10683 .3655 L .11154 .37685 L .11755 .38811 L .13055 .40538 L .13786 .41235 L .14645 .41876 L .15589 .42403 L .16035 .42596 L .1651 .42768 L .1739 .43 L .18207 .43124 L .19093 .43169 L .19595 .43155 L .20061 .43118 L .20889 .42997 L .21774 .42792 L .22594 .42533 L .23332 .42243 L .24676 .41574 L .26002 .40719 L .28372 .38584 L .29455 .37216 L .3028 .3587 L .30633 .35154 L .30951 .34381 L .31178 .33706 L .31373 .32971 L .31467 .32518 L .31535 .32101 L .31585 .31701 L .31621 .3128 L .31642 .30548 L .31631 .30134 L .31606 .29749 L .31514 .28992 L .31376 .28282 L .31209 .27649 L .30984 .2697 L .30313 .25483 L .29495 .24169 L .27645 .22073 L .26374 .21033 L Mistroke .2506 .2019 L .24308 .19798 L .23569 .19472 L .2288 .19219 L .22129 .18997 L .21304 .18819 L .20527 .18714 L .20049 .18681 L .19598 .18672 L .18755 .18717 L .17966 .18835 L .1713 .19048 L .16358 .19334 L .15673 .19669 L .149 .20152 L .14103 .20791 L .12799 .22247 L .12235 .23104 L .11687 .24147 L .11206 .25334 L .10846 .26526 L .10595 .27693 L .10439 .288 L .10353 .30046 L .1036 .31376 L .1045 .32546 L .10598 .33602 L .10849 .34803 L .11161 .3591 L .11894 .37784 L .12401 .38775 L .12926 .3964 L .14192 .41287 L .15811 .42812 L .16701 .43462 L .17707 .44077 L .1963 .44972 L .20747 .4536 L .21782 .4565 L .22999 .4592 L .24162 .46118 L .25255 .46259 L .26267 .46357 L .27384 .46437 L .28568 .46496 L .29771 .46534 L .30446 .46549 L .31062 .4656 L .33394 .4659 L .347 .46608 L Mistroke .35439 .46623 L .36123 .4664 L .3738 .46683 L .38016 .46711 L .38718 .46749 L .39899 .46827 L .41148 .46933 L .43405 .47192 L .45882 .47578 L .48665 .48137 L .59226 .5106 L .6228 .51958 L .65734 .5288 L .67366 .53257 L .6912 .53606 L .70637 .5385 L .72321 .54046 L .73965 .5415 L .7547 .54156 L .77204 .54041 L .78836 .53794 L .8032 .53433 L .81671 .52973 L .83117 .52319 L .84602 .51441 L .86254 .50162 L .8767 .48741 L .89091 .46912 L .90412 .4469 L .91398 .42525 L .92163 .40342 L .92818 .37794 L .93098 .36312 L .93295 .34938 L .93518 .32343 L .93553 .29934 L .93405 .27316 L .93257 .2602 L .93038 .24621 L .92544 .22364 L .91844 .20085 L .91033 .18105 L .90174 .16456 L .89063 .1477 L .87909 .13395 L .86783 .12329 L .85527 .11392 L .84091 .10585 L .82724 .10033 L .81219 .09631 L Mistroke .80354 .09485 L .79542 .094 L .78094 .0936 L .76724 .09443 L .75501 .09607 L .74185 .0987 L .72776 .10243 L .71311 .10725 L .68776 .11762 L .63666 .14562 L .59649 .17388 L .56147 .20358 L .53286 .23297 L .51587 .25449 L .50375 .27425 L .49937 .28373 L .49666 .29146 L .49574 .2949 L .49536 .29662 L .49501 .2984 L .49457 .30149 L .49435 .30417 L .4943 .30665 L .49439 .30876 L .49465 .31103 L .49504 .31302 L .49551 .31471 L .49604 .31615 L .4967 .31759 L .4975 .31897 L .49848 .3203 L .49963 .32152 L .50081 .32246 L .50194 .32315 L .503 .32364 L .50419 .32401 L .50546 .32422 L .50664 .32425 L .50796 .32411 L .50862 .32396 L .50933 .32375 L .51058 .32322 L .5117 .32257 L .51296 .32159 L .51404 .32051 L .51512 .31911 L .51613 .3174 L .51685 .31582 L .51749 .31396 L .51796 .31204 L Mistroke .51827 .31015 L .51848 .30777 L .51851 .30634 L .51849 .30498 L .51832 .30234 L .51793 .29938 L .51739 .29658 L .51673 .2939 L .51462 .28744 L .51186 .28093 L .50845 .27429 L .49777 .25784 L .48078 .23743 L .43207 .19295 L .3479 .13631 L .29286 .10916 L .27643 .10271 L .25857 .09667 L .24274 .09226 L .23391 .09021 L .22549 .08855 L .20891 .08617 L .19372 .08515 L .17944 .0853 L .16401 .08684 L .15597 .08826 L .1472 .09035 L .13813 .09316 L .12977 .09637 L .11518 .10364 L .10014 .11369 L .08586 .12626 L .07383 .13977 L .0612 .15785 L .05072 .17718 L .04237 .19695 L .03596 .2165 L .03041 .23923 L .02634 .26432 L .02416 .29041 L .02381 .30518 L .02403 .31865 L .02595 .34457 L .02953 .36847 L .03229 .38154 L .03579 .39501 L .04347 .41794 L .0536 .4405 L .06681 .46249 L .07879 .47781 L Mistroke .09252 .49158 L .105 .50143 L .11933 .51025 L .13544 .51759 L .14468 .52076 L .15318 .52309 L .1612 .52482 L .16995 .52624 L .18593 .52767 L .20087 .52783 L .21726 .52686 L .22548 .52598 L .23426 .52478 L .24999 .52201 L .27979 .51496 L .30606 .50728 L .40373 .47409 L .45045 .46018 L .47204 .45509 L .49129 .45146 L .50207 .44985 L .51375 .44843 L .52539 .44738 L .53171 .44696 L .53758 .44665 L .54802 .44632 L .55751 .44624 L .56276 .44628 L .56846 .44639 L .57884 .44674 L .58854 .44724 L .59928 .44794 L .62118 .4497 L .64181 .45152 L .66121 .45308 L .67138 .45374 L .68227 .45426 L .68851 .45446 L .69439 .45456 L .70539 .45449 L .71591 .45408 L .72556 .45334 L .73607 .45207 L .74707 .45016 L .75614 .44805 L .76569 .44525 L .78238 .43859 L .79211 .43346 L .80096 .42781 L .81634 .41513 L Mistroke .83093 .3983 L .83732 .38867 L .84353 .37726 L .84805 .367 L .85213 .35545 L .85518 .34419 L .85728 .33365 L .85888 .32111 L .85952 .30943 L .85951 .30276 L .85928 .29676 L .85874 .28991 L .85796 .28355 L .85696 .27749 L .85565 .27121 L .85267 .26042 L .8486 .24957 L .84316 .23868 L .83783 .23039 L .83237 .22354 L .8253 .21649 L .81843 .21116 L .81154 .20702 L .80481 .20394 L .79751 .20156 L .79334 .20059 L .78948 .19993 L .78264 .19931 L .77625 .1993 L .76926 .19989 L .76184 .20119 L .75417 .20322 L .74708 .20574 L .73433 .2118 L .72123 .22027 L .7088 .23082 L .69954 .24076 L .69089 .25242 L .68354 .26542 L .68031 .27286 L .67792 .27969 L .67626 .28571 L .67494 .29225 L .67446 .29553 L .6741 .29901 L .67379 .30522 L .67389 .3103 L .67437 .31579 L .67526 .32139 L .67644 .3265 L Mistroke .67786 .33115 L .6794 .33527 L .68371 .34407 L .68952 .35266 L .6971 .36088 L .70531 .36736 L .70924 .3698 L .71365 .3721 L .71785 .3739 L .72179 .37527 L .72563 .37631 L .72972 .3771 L .73427 .37761 L .73852 .37774 L .74317 .37747 L .74812 .3767 L .75285 .37547 L .75786 .37359 L .76245 .37128 L .76652 .36869 L .77373 .3626 L .77707 .35895 L .78047 .35449 L Mfstroke % End of Graphics MathPictureEnd \ \>"], "Graphics", ImageSize->{288, 177.938}, ImageMargins->{{43, 0}, {0, 0}}, ImageRegion->{{0, 1}, {0, 1}}, ImageCache->GraphicsData["Bitmap", "\<\ CF5dJ6E]HGAYHf4PAg9QL6QYHg<PAVmbKF5d0`40004P0000/A000`40O003h00Oogoo8Goo002;Ool0 0`00Oomoo`2BOol008]oo`03001oogoo099oo`00Rgoo00<007ooOol0TWoo002;Ool00`00Oomoo`2B Ool008]oo`03001oogoo04IooaD003Moo`00Rgoo0P00@Woo1@005Goo1000<goo002;Ool00`00Oomo o`0kOol6000NOol3000`Ool008]oo`03001oogoo03Ioo`D002Moo`8002ioo`00Rgoo00<007ooOol0 <Woo1000;Woo0P00;7oo002;Ool00`00Oomoo`0^Ool4000dOol2000ZOol008]oo`03001oogoo02Yo o`@003Yoo`8002Qoo`00Rgoo00<007ooOol09goo0`00@7oo00<007ooOol09Goo002;Ool00`00Oomo o`0SOol40014Ool2000UOol008]oo`80025oo`<004Yoo`03001oogoo029oo`00Rgoo00<007ooOol0 7Goo0`00CWoo0P008Woo002;Ool00`00Oomoo`0IOol4001COol00`00Oomoo`0OOol008]oo`03001o ogoo01Ioo`<005Qoo`8001moo`00Rgoo00<007ooOol04Woo1000GGoo00<007ooOol077oo002;Ool0 0`00Oomoo`0?Ool3001ROol00`00Oomoo`0KOol008Aoo`<000Aoo`03001oogoo00]oo`@006Ioo`03 001oogoo01Yoo`00QGoo00<007ooOol00goo00<007ooOol027oo0`00JWoo00<007ooOol06Woo0022 Ool50004Ool30004Ool4001^Ool00`00Oomoo`0IOol007aoo`@0009oo`04001oogoo0005Ool01000 Oomoogoo0`00Lgoo00<007ooOol067oo0023Ool00`00Ool00005Ool4001gOol00`00Oomoo`0GOol0 039oo`l004=oo`80009oo`@007Yoo`03001oogoo01Moo`00;Goo1@003goo1P00?Goo10000goo00<0 07ooOol0NGoo00<007ooOol05Woo000ZOol3000JOol4000dOol50007Ool00`00Oomoo`1>Ool<000P Ool00`00Oomoo`0EOol002Qoo`80025oo`@002Yoo`H000aoo`03001oogoo04Yoo`@000aoo`@001eo o`03001oogoo01Aoo`009Woo0P0067oo1`0027oo0P0087oo20004Woo00<007ooOol0AWoo100057oo 0`006Woo00<007ooOol057oo000TOol2000AOol90007Ool=000DOol9000JOol20013Ool4000KOol2 000IOol00`00Oomoo`0COol002=oo`03001oogoo00ioo`<001aoo`H000Moo`P002=oo`03001oogoo 03ioo`@0025oo`8001Moo`03001oogoo01=oo`008Goo0P003Goo10008goo2@00:goo00<007ooOol0 ?7oo0P009goo0P005Woo00<007ooOol04Woo000POol00`00Oomoo`0;Ool2000QOol700000goo0000 0004Ool4000XOol00`00Oomoo`0jOol2000[Ool2000DOol00`00Oomoo`0BOol001moo`03001oogoo 00Yoo`8001ioo`D000Yoo`8000Ioo`D002=oo`03001oogoo03Qooa<001ioo`8001=oo`03001oogoo 015oo`007Goo0P002goo0P0077oo10004Goo0P002Goo10007goo00<007ooOol0;goo2@004goo1000 77oo00<007ooOol047oo00<007ooOol04Goo000LOol00`00Oomoo`09Ool2000KOol3000GOol2000; Ool5000JOol00`00Oomoo`0YOol60005Ool2000IOol4000IOol00`00Oomoo`0@Ool00`00Oomoo`0@ Ool001]oo`03001oogoo00Uoo`03001oogoo01Moo`@001aoo`8000ioo`H001Aoo`03001oogoo02=o o`H000Uoo`8001moo`<001Moo`03001oogoo00moo`03001oogoo011oo`006Woo00<007ooOol02Goo 00<007ooOol05Woo0P008Woo0P004Woo200037oo00<007ooOol077oo1`003Woo00<007ooOol08Woo 0`005Goo00<007ooOol03goo00<007ooOol03goo000IOol00`00Oomoo`09Ool00`00Oomoo`0EOol2 000VOol2000HOol60006Ool2000DOol9000COol2000XOol2000DOol00`00Oomoo`0>Ool00`00Oomo o`0?Ool001Qoo`03001oogoo00Qoo`8001Moo`03001oogoo02Qoo`8001aooa`001Yoo`8002aoo`80 01=oo`03001oogoo00ioo`03001oogoo00ioo`005goo00<007ooOol027oo00<007ooOol05Goo0P00 ;Goo00<007ooOol07goo00<007ooOol0:goo0P00<7oo0P004Woo00<007ooOol03Goo00<007ooOol0 3Woo000GOol00`00Oomoo`07Ool00`00Oomoo`0EOol00`00Oomoo`0^Ool2000OOol00`00Oomoo`0Z Ool00`00Oomoo`0bOol00`00Oomoo`0@Ool00`00Oomoo`0<Ool00`00Oomoo`0>Ool001Ioo`03001o ogoo00Moo`03001oogoo01Aoo`8003=oo`03001oogoo01aoo`03001oogoo02Qoo`8003Ioo`03001o ogoo011oo`03001oogoo00aoo`03001oogoo00eoo`005Woo00<007ooOol01Woo00<007ooOol04goo 0P00=Woo0P0077oo00<007ooOol09goo00<007ooOol0=goo00<007ooOol03goo00<007ooOol037oo 00<007ooOol03Goo000EOol00`00Oomoo`06Ool00`00Oomoo`0BOol2000jOol00`00Oomoo`0IOol0 0`00Oomoo`0UOol2000kOol00`00Oomoo`0?Ool00`00Oomoo`0<Ool00`00Oomoo`0<Ool001Aoo`03 001oogoo00Ioo`03001oogoo019oo`03001oogoo03]oo`8001Uoo`03001oogoo02Aoo`03001oogoo 03aoo`03001oogoo00ioo`03001oogoo00aoo`03001oogoo00aoo`0057oo00<007ooOol01Woo00<0 07ooOol04Goo00<007ooOol0?Woo00<007ooOol05Woo0P008goo0P00@7oo00<007ooOol03Woo00<0 07ooOol02goo00<007ooOol037oo000COol00`00Oomoo`06Ool00`00Oomoo`0AOol00`00Oomoo`10 Ool2000FOol00`00Oomoo`0QOol00`00Oomoo`11Ool00`00Oomoo`0=Ool00`00Oomoo`0<Ool00`00 Oomoo`0;Ool001=oo`03001oogoo00Ioo`03001oogoo011oo`03001oogoo04=oo`03001oogoo01=o o`03001oogoo01moo`8004Aoo`03001oogoo00ioo`03001oogoo00]oo`03001oogoo00]oo`004Woo 00<007ooOol01Woo00<007ooOol047oo00<007ooOol0AGoo0P004goo00<007ooOol07Woo00<007oo Ool0AGoo00<007ooOol03Goo00<007ooOol02goo00<007ooOol02goo000BOol00`00Oomoo`05Ool0 0`00Oomoo`0@Ool00`00Oomoo`18Ool00`00Oomoo`0@Ool00`00Oomoo`0MOol00`00Oomoo`17Ool0 0`00Oomoo`0=Ool00`00Oomoo`0;Ool00`00Oomoo`0:Ool0019oo`03001oogoo00Eoo`03001oogoo 00moo`03001oogoo04Yoo`80011oo`03001oogoo01]oo`8004]oo`03001oogoo00aoo`03001oogoo 00]oo`03001oogoo00Yoo`004Goo00<007ooOol01Goo00<007ooOol03goo00<007ooOol03Goo0P00 ?Woo00<007ooOol017oo10001Goo00<007ooOol06Woo00<007ooOol0Bgoo00<007ooOol037oo00<0 07ooOol02goo00<007ooOol02Woo000AOol00`00Oomoo`04Ool00`00Oomoo`0?Ool00`00Oomoo`07 Ool70002Ool6000iOol20004Ool00`00Oomoo`06Ool00`00Oomoo`0IOol00`00Oomoo`1=Ool00`00 Oomoo`0<Ool00`00Oomoo`0;Ool00`00Oomoo`09Ool0011oo`03001oogoo00Eoo`03001oogoo00mo o`03001oogoo00Eoo`8000moo`8003Uoo`03001oogoo009oo`03001oogoo00Eoo`<001Qoo`03001o ogoo04moo`03001oogoo00]oo`03001oogoo00]oo`03001oogoo00Uoo`0047oo00<007ooOol017oo 00<007ooOol03goo00<007ooOol017oo0P004goo0P00=Goo100017oo00<007ooOol017oo00<007oo Ool05Woo0P00Dgoo00<007ooOol02goo00<007ooOol02Woo00<007ooOol02Goo000@Ool00`00Oomo o`04Ool00`00Oomoo`0>Ool00`00Oomoo`04Ool00`00Oomoo`0EOol2000gOol00`00Ool00002Ool0 0`00Oomoo`03Ool00`00Oomoo`0EOol00`00Oomoo`0gOol8000DOol00`00Oomoo`0;Ool00`00Oomo o`0:Ool00`00Oomoo`09Ool000moo`03001oogoo00Aoo`03001oogoo00ioo`03001oogoo00=oo`80 01Yoo`8003Ioo`04001oo`000006Ool00`00Oomoo`0DOol00`00Oomoo`0dOol40008Ool3000BOol0 0`00Oomoo`0:Ool00`00Oomoo`0;Ool00`00Oomoo`08Ool000moo`03001oogoo00Aoo`03001oogoo 00ioo`04001oogooOol2000NOol2000eOol00`00Oomoo`06Ool00`00Oomoo`0COol00`00Oomoo`0c Ool2000?Ool2000AOol00`00Oomoo`0:Ool00`00Oomoo`0:Ool00`00Oomoo`08Ool000moo`03001o ogoo00=oo`03001oogoo00ioo`05001oogooOol0000ROol2000dOol00`00Oomoo`05Ool00`00Oomo o`0BOol00`00Oomoo`0bOol2000COol2000?Ool00`00Oomoo`0:Ool00`00Oomoo`0:Ool00`00Oomo o`08Ool000ioo`03001oogoo00Aoo`03001oogoo00ioo`05001oogooOol0000TOol00`00Oomoo`0b Ool00`00Oomoo`04Ool00`00Oomoo`0AOol00`00Oomoo`0aOol2000GOol00`00Oomoo`0<Ool00`00 Oomoo`0:Ool00`00Oomoo`0:Ool00`00Oomoo`08Ool000ioo`03001oogoo00Aoo`03001oogoo00eo o`05001oogooOol0000UOol6000`Ool20004Ool00`00Oomoo`0@Ool00`00Oomoo`0`Ool2000JOol0 0`00Oomoo`0<Ool00`00Oomoo`09Ool00`00Oomoo`0;Ool00`00Oomoo`07Ool000ioo`03001oogoo 00Aoo`03001oogoo00eoo`05001oogooOol0000POol50003Ool00`00Oomoo`03000_Ool01000Oomo ogoo0P004Goo00<007ooOol0;goo00<007ooOol06goo00<007ooOol02goo00<007ooOol02Woo00<0 07ooOol02Woo00<007ooOol01goo000=Ool00`00Oomoo`04Ool00`00Oomoo`0=Ool01@00Oomoogoo 00007Woo0`002Goo00<007ooOol00Woo1000;7oo00@007ooOol0015oo`03001oogoo02moo`03001o ogoo01eoo`03001oogoo00Yoo`03001oogoo00Yoo`03001oogoo00Yoo`03001oogoo00Moo`003Goo 00<007ooOol017oo00<007ooOol03Goo00@007ooOol001eoo`8000eoo`03001oogoo00Eoo`8002]o o`03001oo`00011oo`03001oogoo02ioo`80025oo`03001oogoo00Uoo`03001oogoo00Yoo`03001o ogoo00Yoo`03001oogoo00Moo`003Goo00<007ooOol017oo00<007ooOol037oo00@007ooOol001eo o`03001oogoo00eoo`03001oogoo00Moo`8002Yoo`8000moo`03001oogoo02ioo`03001oogoo029o o`03001oogoo00Uoo`03001oogoo00Yoo`03001oogoo00Uoo`03001oogoo00Moo`0037oo00<007oo Ool01Goo00<007ooOol037oo00@007ooOol001aoo`03001oogoo00moo`03001oogoo00Qoo`03001o ogoo02Qoo`03001oogoo00aoo`03001oogoo02ioo`03001oogoo02=oo`03001oogoo00Uoo`03001o ogoo00Yoo`03001oogoo00Uoo`03001oogoo00Moo`0037oo00<007ooOol017oo00<007ooOol037oo 00@007ooOol001aoo`03001oogoo015oo`03001oogoo00Qoo`8002Qoo`8000aoo`03001oogoo02io o`03001oogoo02Eoo`03001oogoo00Uoo`03001oogoo00Uoo`03001oogoo00Uoo`03001oogoo00Mo o`0037oo00<007ooOol017oo00<007ooOol037oo00@007ooOol001]oo`03001oogoo01=oo`03001o ogoo00Uoo`03001oogoo02Eoo`03001oo`0000]oo`03001oogoo02eoo`03001oogoo02Moo`03001o ogoo00Qoo`03001oogoo00Yoo`03001oogoo00Qoo`03001oogoo00Moo`0037oo00<007ooOol00goo 00<007ooOol03Goo00<007oo00006goo00<007ooOol057oo00<007ooOol02Woo00<007ooOol097oo 00<007oo00002Woo00<007ooOol0;Goo00<007ooOol0:7oo00<007ooOol027oo00<007ooOol02Woo 00<007ooOol02Goo00<007ooOol01Woo000<Ool00`00Oomoo`03Ool00`00Oomoo`0<Ool01000Oomo o`006Woo00<007ooOol05Woo00<007ooOol02Woo00<007ooOol08goo0P0000=oo`00Ool01goo00<0 07ooOol0;Woo00<007ooOol0:Goo00<007ooOol027oo00<007ooOol02Goo00<007ooOol02Goo00<0 07ooOol01Woo000;Ool00`00Oomoo`04Ool00`00Oomoo`0<Ool00`00Ool0000JOol00`00Oomoo`0G Ool00`00Oomoo`0;Ool00`00Oomoo`0ROol01@00Oomoogoo00001goo00<007ooOol0;Goo00<007oo Ool0:Woo00<007ooOol027oo00<007ooOol02Goo00<007ooOol02Goo00<007ooOol01Woo000;Ool0 0`00Oomoo`04Ool00`00Oomoo`0<Ool00`00Ool0000JOol00`00Oomoo`0HOol00`00Oomoo`0;Ool0 0`00Oomoo`0QOol01@00Oomoogoo00001Woo00<007ooOol0;Goo00<007ooOol0;7oo00<007ooOol0 1goo00<007ooOol02Goo00<007ooOol02Goo00<007ooOol01Woo000;Ool00`00Oomoo`03Ool00`00 Oomoo`0=Ool2000JOol00`00Oomoo`0IOol00`00Oomoo`0<Ool00`00Oomoo`0POol00`00Oomoo`02 Ool00`00Oomoo`02Ool00`00Oomoo`0^Ool00`00Oomoo`0/Ool00`00Oomoo`07Ool00`00Oomoo`09 Ool00`00Oomoo`09Ool00`00Oomoo`06Ool000]oo`03001oogoo00=oo`03001oogoo00aoo`03001o o`0001Yoo`03001oogoo01Yoo`03001oogoo00]oo`03001oogoo021oo`03001oogoo00=oo`04001o ogoo000`Ool00`00Oomoo`0]Ool00`00Oomoo`07Ool00`00Oomoo`09Ool00`00Oomoo`09Ool00`00 Oomoo`06Ool000Qoo`800003Ool007oo00Aoo`03001oogoo00aoo`03001oo`00011oo`@000Eoo`03 001oogoo01]oo`03001oogoo009oo`D000Eoo`03001oogoo01moo`03001oogoo00=oo`04001oogoo 000POol5000;Ool00`00Oomoo`0JOol4000@Ool00`00Oomoo`07Ool00`00Oomoo`08Ool01000Oomo ogoo0P001Woo00<007ooOol01Woo0007Ool00`00Oomoo`020005Ool00`00Oomoo`0<Ool00`00Ool0 000@Ool00`00Oomoo`06Ool00`00Oomoo`0LOol00`00Oomoo`03Ool00`00Oomoo`05Ool00`00Oomo o`0OOol00`00Oomoo`04Ool2000SOol00`00Oomoo`0:Ool00`00Oomoo`0KOol00`00Oomoo`0AOol0 0`00Oomoo`07Ool00`00Oomoo`09Ool00`00Ool00002Ool00`00Oomoo`03Ool00`00Oomoo`06Ool0 00Uoo`03001oo`0000Eoo`03001oogoo00aoo`03001oo`00015oo`03001oogoo00Aoo`03001oogoo 01eoo`03001oogoo00=oo`03001oogoo00Ioo`03001oogoo01ioo`03001oogoo00Aoo`8002=oo`03 001oogoo00Yoo`03001oogoo01aoo`03001oogoo011oo`03001oogoo00Moo`03001oogoo00Uoo`05 001oogooOol00006Ool00`00Oomoo`06Ool00003Ool00000008000Eoo`03001oogoo00Aoo`03001o ogoo00]oo`04001oogoo000:Ool40004Ool00`00Oomoo`03Ool00`00Oomoo`0KOol40004Ool00`00 Oomoo`06Ool00`00Oomoo`0NOol20005Ool2000SOol00`00Oomoo`09Ool00`00Oomoo`0NOol00`00 Oomoo`0?Ool00`00Oomoo`07Ool00`00Oomoo`09Ool00`00Oomoo`02Ool00`00Oomoo`04Ool00`00 Oomoo`05Ool000Moo`04001oogoo0006Ool00`00Oomoo`0;Ool01000Oomoo`0047oo00@007ooOol0 00Aoo`03001oogoo01ioo`03001oogoo009oo`03001oogoo00Ioo`03001oogoo01ioo`03001oogoo 00=oo`04001oogoo000ROol00`00Oomoo`09Ool00`00Oomoo`0LOol01000Oomoo`0047oo00<007oo Ool01goo00<007ooOol02Goo00<007oo00000Woo00<007ooOol017oo00<007ooOol01Goo0008Ool3 0006Ool00`00Oomoo`0;Ool00`00Ool0000BOol20005Ool00`00Oomoo`0NOol01000Oomoogoo0P00 2Goo00<007ooOol07Goo00<007ooOol00goo00@007ooOol0025oo`8000]oo`03001oogoo01eoo`80 015oo`03001oogoo00Moo`03001oogoo00Uoo`03001oogoo008000Moo`03001oogoo00Eoo`002Woo 00<007ooOol017oo00<007ooOol02goo00<007oo000067oo00<007ooOol07goo00<007ooOol037oo 00<007ooOol07Goo00<007ooOol00Woo00<007ooOol00Woo00<007ooOol0:goo00<007ooOol0<7oo 00<007ooOol01goo00<007ooOol02Goo00<007ooOol02Goo00<007ooOol01Goo000:Ool00`00Oomo o`04Ool00`00Oomoo`0;Ool00`00Ool0000HOol00`00Oomoo`0POol00`00Oomoo`0<Ool00`00Oomo o`0LOol00`00Oomoo`02Ool00`00Oomoo`02Ool00`00Oomoo`0[Ool00`00Oomoo`0aOol00`00Oomo o`06Ool00`00Oomoo`09Ool00`00Oomoo`09Ool00`00Oomoo`05Ool000Yoo`03001oogoo00Aoo`03 001oogoo00]oo`03001oo`0001Qoo`03001oogoo021oo`03001oogoo00aoo`03001oogoo01aoo`03 001oogoo009oo`03001oogoo00=oo`03001oogoo02Uoo`03001oogoo039oo`03001oogoo00Ioo`03 001oogoo00Uoo`03001oogoo00Uoo`03001oogoo00Eoo`002Woo00<007ooOol017oo00<007ooOol0 2goo00<007oo000067oo00<007ooOol087oo00<007ooOol037oo00<007ooOol077oo00<007ooOol0 0Woo00<007ooOol00goo00<007ooOol0:Goo00<007ooOol0<Woo00<007ooOol01Woo00<007ooOol0 2Goo00<007ooOol02Goo00<007ooOol01Goo000:Ool00`00Oomoo`04Ool00`00Oomoo`0;Ool00`00 Ool0000HOol00`00Oomoo`0POol00`00Oomoo`0<Ool00`00Oomoo`0LOol01@00Oomoogoo00001Woo 00<007ooOol0:Goo00<007ooOol0<Woo00<007ooOol01Woo00<007ooOol02Goo00<007ooOol02Goo 00<007ooOol01Goo0004Oooo000M000000Ioo`05001oogooOol00003Ool01000Oomoo`001Goo00<0 07ooOol01Goo0`001goo00<007ooOol01Woo00<007ooOol01Goo0P0027oo00<007ooOol01Woo00<0 07ooOol01Goo00<007ooOol01Goo0P0027oo00<007ooOol00Woo00D007ooOomoo`0000Qoo`03001o ogoo00Ioo`03001oogoo00Ioo`05001oogooOol00004Ool00`00Ool00006Ool00`00Oomoo`05Ool0 0`00Oomoo`06Ool00`00Oomoo`06Ool00`00Oomoo`06Ool00`00Ool00006Ool00`00Oomoo`06Ool0 0`00Oomoo`06Ool00`00Oomoo`06Ool00`00Oomoo`05Ool00`00Oomoo`06Ool00`00Ool00006Ool0 0`00Ool00006Ool00`00Oomoo`02Ool01@00Oomoogoo00001goo0P001Woo0006Ool01@00Oomoogoo 00001Woo00<007ooOol02goo00<007oo000047oo00<007ooOol01Goo00<007ooOol087oo0P003Goo 00<007ooOol077oo00<007ooOol00Woo00<007ooOol00goo00<007ooOol07Woo00<007ooOol027oo 00<007ooOol07goo00<007ooOol047oo00<007ooOol01Woo00<007ooOol02Goo00D007ooOomoo`00 00Moo`03001oogoo00Eoo`002Woo00<007ooOol017oo00<007ooOol02goo00<007oo000067oo00<0 07ooOol087oo00<007ooOol037oo00<007ooOol077oo00<007ooOol00Woo00<007ooOol00goo00<0 07ooOol0:Goo00<007ooOol0<Woo00<007ooOol01Woo00<007ooOol02Goo00<007ooOol02Goo00<0 07ooOol01Goo000:Ool00`00Oomoo`04Ool00`00Oomoo`0;Ool00`00Ool0000HOol00`00Oomoo`0P Ool00`00Oomoo`0<Ool00`00Oomoo`0LOol00`00Oomoo`02Ool20003Ool00`00Oomoo`0ZOol00`00 Oomoo`0bOol00`00Oomoo`06Ool00`00Oomoo`09Ool00`00Oomoo`09Ool00`00Oomoo`05Ool000Yo o`03001oogoo00Aoo`03001oogoo00]oo`03001oo`0001Qoo`03001oogoo021oo`03001oogoo00ao o`03001oogoo01aoo`03001oogoo00=oo`D002eoo`03001oogoo035oo`03001oogoo00Ioo`03001o ogoo00Uoo`03001oogoo00Uoo`03001oogoo00Eoo`002Woo00<007ooOol017oo00<007ooOol02goo 00<007oo000067oo00<007ooOol087oo00<007ooOol02goo00<007ooOol07Goo00<007ooOol0=Goo 00<007ooOol0<7oo00<007ooOol01goo00<007ooOol02Goo00<007ooOol02Goo00<007ooOol01Goo 000:Ool00`00Oomoo`04Ool00`00Oomoo`0;Ool00`00Ool0000IOol00`00Oomoo`0NOol00`00Oomo o`0<Ool00`00Oomoo`0MOol00`00Oomoo`0eOol00`00Oomoo`0`Ool00`00Oomoo`07Ool00`00Oomo o`09Ool00`00Oomoo`09Ool00`00Oomoo`05Ool000]oo`03001oogoo00=oo`03001oogoo00]oo`04 001oogoo000HOol00`00Oomoo`0NOol00`00Oomoo`0;Ool00`00Oomoo`0NOol2000gOol00`00Oomo o`0_Ool00`00Oomoo`07Ool00`00Oomoo`09Ool00`00Oomoo`09Ool00`00Oomoo`05Ool000]oo`03 001oogoo00=oo`03001oogoo00]oo`04001oogoo000HOol00`00Oomoo`0NOol00`00Oomoo`0;Ool0 0`00Oomoo`0NOol00`00Oomoo`0fOol00`00Oomoo`0_Ool00`00Oomoo`07Ool00`00Oomoo`09Ool0 0`00Oomoo`09Ool00`00Oomoo`05Ool000]oo`03001oogoo00Aoo`03001oogoo00]oo`03001oo`00 01Qoo`03001oogoo01eoo`03001oogoo00aoo`03001oogoo01ioo`03001oogoo03Moo`03001oogoo 02ioo`03001oogoo00Moo`03001oogoo00Uoo`03001oogoo00Uoo`03001oogoo00Eoo`002goo00<0 07ooOol017oo00<007ooOol02goo00<007oo000067oo00<007ooOol07Goo00<007ooOol037oo00<0 07ooOol07Woo00<007ooOol0=goo00<007ooOol0;Woo00<007ooOol01goo00<007ooOol02Goo00<0 07ooOol027oo00<007ooOol01Woo000;Ool00`00Oomoo`04Ool00`00Oomoo`0;Ool00`00Ool0000I Ool00`00Oomoo`0KOol00`00Oomoo`0=Ool00`00Oomoo`0NOol00`00Oomoo`0hOol00`00Oomoo`0] Ool00`00Oomoo`07Ool00`00Oomoo`09Ool00`00Oomoo`08Ool00`00Oomoo`06Ool000]oo`03001o ogoo00Aoo`03001oogoo00aoo`8001Uoo`03001oogoo01]oo`03001oogoo00aoo`03001oogoo01mo o`03001oogoo03Uoo`03001oogoo02]oo`03001oogoo00Moo`03001oogoo00Yoo`03001oogoo00Qo o`03001oogoo00Ioo`002goo00<007ooOol017oo00<007ooOol037oo00<007oo00006Goo00<007oo Ool06Goo00<007ooOol03Goo00<007ooOol07goo00<007ooOol0>Woo00<007ooOol05Goo00<007oo Ool04Woo00<007ooOol01goo00<007ooOol02Goo00<007ooOol02Goo00<007ooOol01Woo000<Ool0 0`00Oomoo`03Ool00`00Oomoo`0<Ool00`00Ool0000IOol00`00Oomoo`0IOol00`00Oomoo`0<Ool0 0`00Oomoo`0POol00`00Oomoo`0jOol00`00Oomoo`0DOol00`00Oomoo`0COol00`00Oomoo`07Ool0 0`00Oomoo`09Ool00`00Oomoo`09Ool00`00Oomoo`06Ool000aoo`03001oogoo00=oo`03001oogoo 00eoo`8001Yoo`03001oogoo01Moo`03001oogoo00eoo`03001oogoo021oo`8003aoo`03001oogoo 019oo`03001oogoo01=oo`03001oogoo00Qoo`03001oogoo00Uoo`03001oogoo00Uoo`03001oogoo 00Ioo`0037oo00<007ooOol00goo00<007ooOol03Goo00<007oo00006Goo00<007ooOol05goo00<0 07ooOol037oo00<007ooOol08Goo00<007ooOol0?7oo00<007ooOol047oo00<007ooOol057oo00<0 07ooOol027oo00<007ooOol02Goo00<007ooOol02Goo00<007ooOol01Woo000<Ool00`00Oomoo`03 Ool00`00Oomoo`0=Ool00`00Ool0000JOol00`00Oomoo`0EOol00`00Oomoo`0<Ool00`00Oomoo`0R Ool00`00Oomoo`0mOol2000?Ool00`00Oomoo`0DOol00`00Oomoo`08Ool00`00Oomoo`0:Ool00`00 Oomoo`09Ool00`00Oomoo`06Ool000aoo`03001oogoo00Aoo`03001oogoo00eoo`8001Yoo`03001o ogoo01Eoo`03001oogoo00aoo`03001oogoo029oo`03001oogoo03moo`<000Yoo`8001Moo`03001o ogoo00Qoo`03001oogoo00Uoo`03001oogoo00Uoo`03001oogoo00Moo`0037oo00<007ooOol017oo 00<007ooOol03Goo00<007oo00006Woo00<007ooOol04goo00<007ooOol037oo00<007ooOol08goo 00<007ooOol0@Woo2P0067oo00<007ooOol02Goo00<007ooOol02Goo00<007ooOol02Goo00<007oo Ool01goo000=Ool00`00Oomoo`03Ool00`00Oomoo`0>Ool2000JOol00`00Oomoo`0BOol00`00Oomo o`0<Ool00`00Oomoo`0TOol00`00Oomoo`1SOol00`00Oomoo`09Ool00`00Oomoo`0:Ool00`00Oomo o`09Ool00`00Oomoo`07Ool000eoo`03001oogoo00Aoo`03001oogoo00eoo`03001oo`0001Yoo`03 001oogoo015oo`03001oogoo00]oo`03001oogoo02Eoo`03001oogoo06=oo`03001oogoo00Uoo`03 001oogoo00Yoo`03001oogoo00Uoo`03001oogoo00Moo`003Goo00<007ooOol017oo00<007ooOol0 3Woo00<007oo00006Woo00<007ooOol03goo00<007ooOol037oo00<007ooOol09Goo00<007ooOol0 HWoo00<007ooOol02Goo00<007ooOol02Woo00<007ooOol02Woo00<007ooOol01goo000>Ool00`00 Oomoo`04Ool00`00Oomoo`0>Ool2000KOol00`00Oomoo`0=Ool00`00Oomoo`0<Ool00`00Oomoo`0V Ool00`00Oomoo`1ROol00`00Oomoo`09Ool00`00Oomoo`0:Ool00`00Oomoo`09Ool00`00Oomoo`08 Ool000ioo`03001oogoo00Aoo`03001oogoo00ioo`03001oo`0001]oo`03001oogoo00]oo`03001o ogoo00aoo`03001oogoo02Moo`80069oo`03001oogoo00Uoo`03001oogoo00]oo`03001oogoo00Uo o`03001oogoo00Qoo`003Woo00<007ooOol017oo00<007ooOol03goo0P0077oo00<007ooOol027oo 0P003Woo00<007ooOol0:7oo00<007ooOol0HGoo00<007ooOol02Goo00<007ooOol02goo00<007oo Ool02Goo00<007ooOol027oo000?Ool00`00Oomoo`04Ool00`00Oomoo`0>Ool00`00Ool0000LOol0 0`00Oomoo`06Ool00`00Oomoo`0=Ool00`00Oomoo`0YOol00`00Oomoo`1POol00`00Oomoo`09Ool0 0`00Oomoo`0;Ool00`00Oomoo`0:Ool00`00Oomoo`08Ool000moo`03001oogoo00Aoo`03001oogoo 00moo`03001oo`0001aoo`03001oogoo00Aoo`03001oogoo00eoo`03001oogoo02Yoo`03001oogoo 05moo`03001oogoo00Yoo`03001oogoo00]oo`03001oogoo00Yoo`03001oogoo00Qoo`003goo00<0 07ooOol01Goo00<007ooOol03goo0`0077oo00<007ooOol00Woo00<007ooOol03Woo00<007ooOol0 :Woo00<007ooOol0Ggoo00<007ooOol02Goo00<007ooOol037oo00<007ooOol02Goo00<007ooOol0 2Goo000?Ool00`00Oomoo`05Ool00`00Oomoo`0AOol2000LOol01000Ool0000047oo00<007ooOol0 :goo00<007ooOol0GWoo00<007ooOol02Woo00<007ooOol02goo00<007ooOol02Woo00<007ooOol0 2Goo000@Ool00`00Oomoo`05Ool00`00Oomoo`0AOol2000KOol2000AOol00`00Oomoo`0SOol40005 Ool00`00Oomoo`1MOol00`00Oomoo`0:Ool00`00Oomoo`0<Ool00`00Oomoo`0:Ool00`00Oomoo`09 Ool0011oo`03001oogoo00Eoo`03001oogoo019oo`8001Qoo`80009oo`8000ioo`03001oogoo02Ao o`03001oogoo00Ioo`03001oogoo05aoo`03001oogoo00]oo`03001oogoo00aoo`03001oogoo00Yo o`03001oogoo00Uoo`0047oo00<007ooOol01Woo00<007ooOol04Woo0P005Goo0P001Woo00<007oo Ool02Goo0P00:7oo00<007ooOol01Goo0`00:Goo00<007ooOol0;Woo0P003Goo00<007ooOol037oo 00<007ooOol02Woo00<007ooOol02Woo000AOol00`00Oomoo`05Ool00`00Oomoo`0COol3000AOol2 0009Ool00`00Oomoo`07Ool00`00Oomoo`0YOol00`00Oomoo`04Ool00`00Oomoo`0ZOol2000]Ool0 0`00Oomoo`0=Ool00`00Oomoo`0<Ool00`00Oomoo`0:Ool00`00Oomoo`0:Ool0015oo`03001oogoo 00Ioo`03001oogoo01=oo`03001oo`0000<000Qoo`D000aoo`8000Ioo`03001oogoo02Qoo`04001o ogoo0005Ool00`00Oomoo`0/Ool2000ZOol00`00Oomoo`0=Ool00`00Oomoo`0<Ool00`00Oomoo`0; Ool00`00Oomoo`0:Ool0019oo`03001oogoo00Eoo`03001oogoo01Aoo`8000=oo`P001=oo`04001o ogooOol2000/Ool20006Ool00`00Oomoo`0^Ool00`00Oomoo`0UOol2000?Ool00`00Oomoo`0=Ool0 0`00Oomoo`0;Ool00`00Oomoo`0:Ool0019oo`03001oogoo00Ioo`03001oogoo01Eoo`8001eoo`<0 03Ioo`03001oogoo02moo`03001oogoo029oo`80011oo`03001oogoo00eoo`03001oogoo00aoo`03 001oogoo00Yoo`004goo00<007ooOol01Woo00<007ooOol05Woo0P006goo0`00=Woo00<007ooOol0 <7oo0P0087oo0P004Woo00<007ooOol03Goo00<007ooOol02goo00<007ooOol02goo000COol00`00 Oomoo`07Ool00`00Oomoo`0GOol2000HOol01000Oomoogoo0P00=7oo00<007ooOol0<Woo00<007oo Ool06goo0P004goo00<007ooOol03Goo00<007ooOol037oo00<007ooOol02goo000DOol00`00Oomo o`07Ool00`00Oomoo`0HOol2000DOol20006Ool2000bOol00`00Oomoo`06OolL000AOol2000FOol5 000DOol00`00Oomoo`0>Ool00`00Oomoo`0<Ool00`00Oomoo`0;Ool001Aoo`03001oogoo00Qoo`03 001oogoo01Uoo`80015oo`03001oogoo00Qoo`80031oo`T001aoo``000Moo`80015oo`<001Qoo`03 001oogoo00ioo`03001oogoo00eoo`03001oogoo00]oo`005Goo00<007ooOol027oo00<007ooOol0 6Woo0`0037oo0P003Goo0P00:goo1@00;goo6P006Woo00<007ooOol03goo00<007ooOol037oo00<0 07ooOol037oo000EOol00`00Oomoo`09Ool00`00Oomoo`0LOol30008Ool00`00Oomoo`0?Ool2000V Ool30003Ool00`00Oomoo`0iOol2000UOol2000AOol00`00Oomoo`0=Ool00`00Oomoo`0<Ool001Io o`03001oogoo00Uoo`8001moo`X0019oo`80025oo`<000Ioo`03001oogoo03]oo`80021oo`<001=o o`03001oogoo00aoo`03001oogoo00eoo`005goo00<007ooOol02Woo0P008Goo0P0017oo6P0067oo 0`002Goo00<007ooOol0?Goo0P0077oo0P005Goo00<007ooOol03Goo00<007ooOol03Goo000HOol0 0`00Oomoo`0;Ool2000LOol3000MOolK000<Ool00`00Oomoo`0oOol4000FOol2000GOol00`00Oomo o`0=Ool00`00Oomoo`0=Ool001Qoo`03001oogoo00eoo`8001Moo`<002=oo`<000ioo`X000Uoo`03 001oogoo04=oo`<0015oo`8001Qoo`03001oogoo00eoo`03001oogoo00ioo`006Goo00<007ooOol0 3Woo10003goo1000:Goo0`0027oo0`002Woo1@0017oo00<007ooOol0AWoo4@006Woo00<007ooOol0 3Goo00<007ooOol03Woo000JOol00`00Oomoo`0AOol?000`Ool20003Ool3000BOol6001aOol00`00 Oomoo`0=Ool00`00Oomoo`0?Ool001]oo`03001oogoo055oo`<001Uoo`@006ioo`03001oogoo00io o`03001oogoo00moo`0077oo00<007ooOol0CGoo0`000goo0P005goo00@007ooOomoo`@006Yoo`03 001oogoo00ioo`03001oogoo00moo`007Goo00<007ooOol0BGoo0`0027oo0P005Goo00<007ooOol0 1Goo1000IGoo00<007ooOol03Woo00<007ooOol047oo000NOol00`00Oomoo`14Ool4000=Ool3000B Ool00`00Oomoo`09Ool4001POol00`00Oomoo`0?Ool00`00Oomoo`0@Ool001moo`80045oo`<001Ao o`80011oo`03001oogoo00eoo`<005aoo`03001oogoo00moo`03001oogoo015oo`008Goo00<007oo Ool0>goo0`006Goo0`003Goo00<007ooOol047oo1000Egoo00<007ooOol047oo00<007ooOol04Goo 000ROol00`00Oomoo`0gOol3000OOol2000;Ool00`00Oomoo`0DOol4001BOol00`00Oomoo`0@Ool0 0`00Oomoo`0BOol002=oo`8003Aoo`<002Aoo`8000Uoo`8001Uoo`@004aoo`8001=oo`03001oogoo 019oo`009Goo0P00;Woo1000:Goo0`001Woo00<007ooOol077oo0`00Agoo0P0057oo00<007ooOol0 4goo000WOol2000XOol4000`Ool20004Ool00`00Oomoo`0OOol30013Ool00`00Oomoo`0DOol00`00 Oomoo`0COol002Uoo`80029oo`@003Ioo`<00003Ool007oo02=oo`<003moo`03001oogoo01Aoo`03 001oogoo01Aoo`00:goo0`006goo1000?Goo0`009Woo1000>Goo0P005Woo00<007ooOol05Goo000^ Ool8000=Ool60012Ool01000Ool00000:7oo1@00<Woo0P005goo00<007ooOol05Woo000fOol=0011 Ool30004Ool01000Oomoogoo0`00:Woo1000:goo0`0067oo00<007ooOol05goo0025Ool00`00Oomo o`03Ool00`00Oomoo`04Ool3000[Ool5000TOol2000KOol00`00Oomoo`0GOol0089oo`D000Aoo`<0 00Moo`8002ioo`@001eoo`<001aoo`03001oogoo01Qoo`00PWoo00@007ooOol000Eoo`03001oogoo 00Uoo`<002moo`D001=oo`D001ioo`03001oogoo01Uoo`00Pgoo00<007oo00001Goo00<007ooOol0 37oo0`00<Goo4`008Woo00<007ooOol06Woo0024Ool20005Ool00`00Oomoo`0?Ool2001SOol00`00 Oomoo`0KOol008]oo`03001oogoo015oo`<005moo`03001oogoo01aoo`00Rgoo00<007ooOol057oo 0`00Fgoo00<007ooOol07Goo002;Ool00`00Oomoo`0GOol2001HOol00`00Oomoo`0NOol008]oo`03 001oogoo01Uoo`<005Aoo`03001oogoo01moo`00Rgoo0P007Goo0`00D7oo00<007ooOol087oo002; Ool00`00Oomoo`0OOol2001=Ool00`00Oomoo`0QOol008]oo`03001oogoo025oo`<004Qoo`8002Ao o`00Rgoo00<007ooOol097oo0P00AGoo00<007ooOol097oo002;Ool00`00Oomoo`0VOol30011Ool0 0`00Oomoo`0UOol008]oo`03001oogoo02Uoo`@003]oo`8002Qoo`00Rgoo00<007ooOol0;Goo1000 =7oo0`00:Woo002;Ool00`00Oomoo`0aOol3000^Ool3000]Ool008]oo`8003Eoo`@002Qoo`80031o o`00Rgoo00<007ooOol0>7oo10008Goo0`00<Woo002;Ool00`00Oomoo`0lOol6000HOol3000eOol0 08]oo`03001oogoo049ooaP003Qoo`00Rgoo00<007ooOol0TWoo002;Ool00`00Oomoo`2BOol008]o o`03001oogoo099oo`00Rgoo00<007ooOol0TWoo003oOolQOol00001\ \>"], ImageRangeCache->{{{0, 287}, {176.938, 0}} -> {-3.13514, -5.4059, \ 0.0225154, 0.0616701}}] }, Open ]], Cell["\<\ The graphics object returned by the plot command can be converted to a \ SymbolXML view of the SVG.\ \>", "Text"], Cell[BoxData[ \(\(\(\ \)\(xml\ = \ XML`SVG`GraphicsToSymbolicSVG[p];\)\)\)], "InputOnly"], Cell[TextData[{ "The SVG is larger than the ", StyleBox["Mathematica", FontSlant->"Italic"], " graphics language representation, " }], "Text"], Cell[CellGroupData[{ Cell[BoxData[ \(ByteCount /@ {ExportString[xml, \ "\<XML\>"], ToString[p, InputForm], ExportString[p, "\<JPG\>"]}\)], "Input"], Cell[BoxData[ \({20832, 27104, 13936}\)], "Output"] }, Open ]], Cell[TextData[{ "Find the XML fragment that holds the line for the solution, it will be the \ first instance of ", StyleBox["<polyline points=pts> </polyline>", "InlineInput"], "." }], "Text"], Cell[BoxData[ \(\(\(\ \ \ \ \ \ \ \ \ \)\(pts = "\<M\>" <> \n\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ First[ Cases[\ xml, \n\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ XMLElement["\<polyline\>", {"\<fill\>"\ -> \ _, "\<points\>"\ -> \ x_}, _] -> x, \ Infinity]];\)\)\)], "InputOnly"], Cell[TextData[{ "Generate a new fragment of symbolic XML that holds an SVG animation, this \ has the form \n", StyleBox["<circle> <animateMotion path=pts/> </circle>", "InlineInput"], "." }], "Text"], Cell[BoxData[ \(\(\(\ \ \ \ \ \ \)\(newElem = XMLElement["\<circle\>", \n\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ {"\<cx\>" -> "\<0\>", "\<cy\>" -> "\<0\>", "\<r\>" -> "\<.1\>", "\<fill\ \>" -> "\<red\>", \ \[IndentingNewLine]\t\t"\<stroke\>" -> "\<blue\>", \ \ "\<stroke-width\>" -> "\<0.01\>"}, \n\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ {XMLElement[\ \ "\<animateMotion\>", \[IndentingNewLine]\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ {"\<dur\>" -> "\<6s\>", "\<repeatCount\>" -> \ "\<indefinite\>", \ \[IndentingNewLine]\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ "\<rotate\>" -> "\<auto\>", \ "\<path\>"\ -> \ pts}, {}]}];\)\)\)], "InputOnly"], Cell["Now we add this new fragment back into the original SVG", "Text"], Cell[BoxData[ \(\(newXML = xml /. x : XMLElement["\<polyline\>", ___]\ -> \ Sequence[x, newElem]\ ;\)\)], "InputOnly"], Cell["Export the SymbolicXML out to a file", "Text"], Cell[CellGroupData[{ Cell[BoxData[ \(\(\(Export["\<file.svg\>", newXML, "\<XML\>"]\)\(\ \)\)\)], "Input"], Cell[BoxData[ \("file.svg"\)], "Output"] }, Open ]], Cell["\<\ Open the file in IE with the Adobe plug-in and you'll see a nice animation.\ \>", "Text"] }, Open ]] }, FrontEndVersion->"4.2 for Microsoft Windows", ScreenRectangle->{{0, 1280}, {0, 934}}, WindowSize->{839, 690}, WindowMargins->{{Automatic, 146}, {Automatic, 23}}, StyleDefinitions -> "DemoText.nb" ] (******************************************************************* Cached data follows. If you edit this Notebook file directly, not using Mathematica, you must remove the line containing CacheID at the top of the file. The cache data will then be recreated when you save this file from within Mathematica. *******************************************************************) (*CellTagsOutline CellTagsIndex->{ "t:1"->{ Cell[12796, 351, 65, 1, 54, "Section", CellTags->"t:1"]} } *) (*CellTagsIndex CellTagsIndex->{ {"t:1", 53445, 1649} } *) (*NotebookFileOutline Notebook[{ Cell[1754, 51, 105, 4, 70, "Title"], Cell[1862, 57, 56, 0, 41, "Subtitle"], Cell[1921, 59, 82, 3, 76, "Subsubtitle"], Cell[CellGroupData[{ Cell[2028, 66, 31, 0, 54, "Section"], Cell[2062, 68, 487, 9, 67, "Text"], Cell[2552, 79, 513, 13, 48, "Text"] }, Open ]], Cell[CellGroupData[{ Cell[3102, 97, 115, 4, 54, "Section"], Cell[3220, 103, 214, 7, 29, "Text"], Cell[CellGroupData[{ Cell[3459, 114, 71, 1, 40, "Input"], Cell[3533, 117, 130, 3, 49, "Output"] }, Open ]], Cell[3678, 123, 172, 5, 30, "Text"], Cell[CellGroupData[{ Cell[3875, 132, 40, 1, 40, "Input"], Cell[3918, 135, 4217, 90, 194, 661, 42, "GraphicsData", "PostScript", \ "Graphics"], Cell[8138, 227, 130, 3, 49, "Output"] }, Open ]], Cell[8283, 233, 335, 11, 50, "Text"], Cell[CellGroupData[{ Cell[8643, 248, 65, 1, 40, "Input"], Cell[8711, 251, 690, 10, 372, "Output"] }, Open ]], Cell[9416, 264, 623, 18, 68, "Text"], Cell[CellGroupData[{ Cell[10064, 286, 63, 1, 40, "Input"], Cell[10130, 289, 1159, 20, 201, "Output"] }, Open ]], Cell[11304, 312, 268, 8, 49, "Text"], Cell[CellGroupData[{ Cell[11597, 324, 65, 1, 40, "Input"], Cell[11665, 327, 1082, 18, 182, "Output"] }, Open ]] }, Open ]], Cell[CellGroupData[{ Cell[12796, 351, 65, 1, 54, "Section", CellTags->"t:1"], Cell[12864, 354, 119, 4, 29, "Text"], Cell[CellGroupData[{ Cell[13008, 362, 221, 4, 60, "Input"], Cell[13232, 368, 225, 6, 49, "Output"] }, Open ]], Cell[13472, 377, 53, 0, 29, "Text"], Cell[CellGroupData[{ Cell[13550, 381, 124, 3, 40, "Input"], Cell[13677, 386, 36505, 1162, 194, 13123, 869, "GraphicsData", "PostScript", \ "Graphics"] }, Open ]], Cell[50197, 1551, 123, 3, 29, "Text"], Cell[50323, 1556, 103, 2, 48, "InputOnly"], Cell[50429, 1560, 152, 5, 29, "Text"], Cell[CellGroupData[{ Cell[50606, 1569, 139, 2, 40, "Input"], Cell[50748, 1573, 55, 1, 49, "Output"] }, Open ]], Cell[50818, 1577, 198, 5, 30, "Text"], Cell[51019, 1584, 325, 5, 88, "InputOnly"], Cell[51347, 1591, 206, 5, 61, "Text"], Cell[51556, 1598, 697, 10, 148, "InputOnly"], Cell[52256, 1610, 71, 0, 29, "Text"], Cell[52330, 1612, 145, 3, 48, "InputOnly"], Cell[52478, 1617, 52, 0, 29, "Text"], Cell[CellGroupData[{ Cell[52555, 1621, 88, 1, 40, "Input"], Cell[52646, 1624, 44, 1, 49, "Output"] }, Open ]], Cell[52705, 1628, 99, 2, 29, "Text"] }, Open ]] } ] *) (******************************************************************* End of Mathematica Notebook file. *******************************************************************)