From d3408370fc3297609b3aa8d4ff7edf1f238df251 Mon Sep 17 00:00:00 2001 From: pabs Date: Wed, 20 Jun 2007 12:53:22 +0000 Subject: [PATCH] Stable Tag: Copying everything over git-svn-id: http://svn.voria.com/code@541 1f10aa63-cdf2-0310-b900-c93c546f37ac --- synfig-core/tags/stable/AUTHORS | 14 + synfig-core/tags/stable/ChangeLog.old | 136 + synfig-core/tags/stable/Makefile.am | 134 + synfig-core/tags/stable/NEWS | 56 + synfig-core/tags/stable/README | 49 + synfig-core/tags/stable/TODO | 38 + synfig-core/tags/stable/bootstrap | 319 + synfig-core/tags/stable/config/ETL.m4 | 75 + synfig-core/tags/stable/config/build.cfg | 22 + synfig-core/tags/stable/config/configure.ac | 611 + synfig-core/tags/stable/config/cxx_macros.m4 | 88 + synfig-core/tags/stable/config/doxygen.cfg.in | 1246 + synfig-core/tags/stable/config/freetype2.m4 | 146 + synfig-core/tags/stable/config/libxml++.m4 | 23 + synfig-core/tags/stable/config/libxml.m4 | 389 + synfig-core/tags/stable/config/ltmain.patch | 17 + synfig-core/tags/stable/config/package | 292 + synfig-core/tags/stable/config/pkgconfig.m4 | 57 + synfig-core/tags/stable/config/pkgconfig.pc.in | 11 + synfig-core/tags/stable/config/project.spec.in | 46 + synfig-core/tags/stable/config/subs.m4 | 277 + synfig-core/tags/stable/config/synfig.m4 | 51 + synfig-core/tags/stable/doc/hw-gfx-mapping.txt | 75 + synfig-core/tags/stable/examples/Makefile.am | 3 + synfig-core/tags/stable/examples/about_dialog.sif | 1704 + synfig-core/tags/stable/examples/backdrop.sif | 71858 +++ synfig-core/tags/stable/examples/business_card.sif | 1273 + synfig-core/tags/stable/examples/candy.sif | 421 + synfig-core/tags/stable/examples/cells.sif | 1012 + synfig-core/tags/stable/examples/eye.sif | 84807 +++ synfig-core/tags/stable/examples/eyes.sif | 1075 + synfig-core/tags/stable/examples/gamma.sif | 212 + synfig-core/tags/stable/examples/gradient.sif | 990 + synfig-core/tags/stable/examples/headmo.sif | 2672 + .../tags/stable/examples/installer-logo.sif | 3156 + synfig-core/tags/stable/examples/japan.sif | 97 + synfig-core/tags/stable/examples/logo.sif | 3062 + synfig-core/tags/stable/examples/macwolfen.sif | 151467 +++++ synfig-core/tags/stable/examples/mandelbrot.sif | 349 + synfig-core/tags/stable/examples/newjulia.sif | 627 + synfig-core/tags/stable/examples/newjulia2.sif | 400 + synfig-core/tags/stable/examples/noise.sif | 139 + synfig-core/tags/stable/examples/pirates.sif | 520973 ++++++++++++++++++ synfig-core/tags/stable/examples/preambletaffy.sif | 174 + synfig-core/tags/stable/examples/prologue_kid.sif | 62822 +++ synfig-core/tags/stable/examples/sparkle.sif | 526 + synfig-core/tags/stable/examples/splat.sif | 224 + synfig-core/tags/stable/examples/star.sif | 2183 + synfig-core/tags/stable/examples/walk/Makefile.am | 2 + .../tags/stable/examples/walk/animation.lst | 53 + synfig-core/tags/stable/examples/walk/frame_01.jpg | Bin 0 -> 5934 bytes synfig-core/tags/stable/examples/walk/frame_02.jpg | Bin 0 -> 5118 bytes synfig-core/tags/stable/examples/walk/frame_03.jpg | Bin 0 -> 5842 bytes synfig-core/tags/stable/examples/walk/frame_04.jpg | Bin 0 -> 4891 bytes synfig-core/tags/stable/examples/walk/walk.sif | 6597 + synfig-core/tags/stable/examples/wallpaper.sif | 746 + synfig-core/tags/stable/examples/warpcube.sif | 1751 + synfig-core/tags/stable/examples/warptext.sif | 109 + synfig-core/tags/stable/examples/z_depth_test.sif | 554 + synfig-core/tags/stable/macosxbuild.sh | 60 + .../pkg-info/macosx/core-resources/License.txt | 515 + .../pkg-info/macosx/core-resources/ReadMe.txt | 1 + .../pkg-info/macosx/core-resources/Welcome.txt | 1 + .../pkg-info/macosx/core-resources/install.sh | 58 + .../pkg-info/macosx/core-resources/upgrade.sh | 58 + .../stable/pkg-info/macosx/synfig-core.info.in | 14 + synfig-core/tags/stable/src/Makefile.am | 6 + synfig-core/tags/stable/src/modules/Makefile.am | 9 + .../tags/stable/src/modules/example/Makefile.am | 13 + .../tags/stable/src/modules/example/filledrect.cpp | 564 + .../tags/stable/src/modules/example/filledrect.h | 79 + .../tags/stable/src/modules/example/main.cpp | 61 + .../tags/stable/src/modules/example/metaballs.cpp | 237 + .../tags/stable/src/modules/example/metaballs.h | 75 + .../stable/src/modules/example/simplecircle.cpp | 186 + .../tags/stable/src/modules/example/simplecircle.h | 73 + .../stable/src/modules/lyr_freetype/Makefile.am | 24 + .../src/modules/lyr_freetype/lyr_freetype.cpp | 875 + .../stable/src/modules/lyr_freetype/lyr_freetype.h | 164 + .../src/modules/lyr_freetype/lyr_freetype.nsh | 21 + .../tags/stable/src/modules/lyr_freetype/main.cpp | 90 + .../src/modules/lyr_freetype/unlyr_freetype.nsh | 8 + .../tags/stable/src/modules/lyr_std/Makefile.am | 14 + .../tags/stable/src/modules/lyr_std/bevel.cpp | 409 + .../tags/stable/src/modules/lyr_std/bevel.h | 79 + .../stable/src/modules/lyr_std/booleancurve.cpp | 121 + .../tags/stable/src/modules/lyr_std/booleancurve.h | 75 + .../tags/stable/src/modules/lyr_std/clamp.cpp | 207 + .../tags/stable/src/modules/lyr_std/clamp.h | 75 + .../tags/stable/src/modules/lyr_std/import.cpp | 233 + .../tags/stable/src/modules/lyr_std/import.h | 72 + .../tags/stable/src/modules/lyr_std/insideout.cpp | 145 + .../tags/stable/src/modules/lyr_std/insideout.h | 69 + .../tags/stable/src/modules/lyr_std/julia.cpp | 364 + .../tags/stable/src/modules/lyr_std/julia.h | 90 + .../tags/stable/src/modules/lyr_std/lyr_std.nsh | 21 + .../tags/stable/src/modules/lyr_std/main.cpp | 114 + .../tags/stable/src/modules/lyr_std/mandelbrot.cpp | 384 + .../tags/stable/src/modules/lyr_std/mandelbrot.h | 86 + .../stable/src/modules/lyr_std/radialgradient.cpp | 256 + .../tags/stable/src/modules/lyr_std/rotate.cpp | 328 + .../tags/stable/src/modules/lyr_std/rotate.h | 74 + .../tags/stable/src/modules/lyr_std/shade.cpp | 423 + .../tags/stable/src/modules/lyr_std/shade.h | 68 + .../stable/src/modules/lyr_std/sphere_distort.cpp | 575 + .../stable/src/modules/lyr_std/sphere_distort.h | 91 + .../tags/stable/src/modules/lyr_std/stretch.cpp | 184 + .../tags/stable/src/modules/lyr_std/stretch.h | 75 + .../stable/src/modules/lyr_std/supersample.cpp | 237 + .../tags/stable/src/modules/lyr_std/supersample.h | 66 + .../tags/stable/src/modules/lyr_std/timeloop.cpp | 126 + .../tags/stable/src/modules/lyr_std/timeloop.h | 68 + .../tags/stable/src/modules/lyr_std/translate.cpp | 161 + .../tags/stable/src/modules/lyr_std/translate.h | 71 + .../tags/stable/src/modules/lyr_std/twirl.cpp | 241 + .../tags/stable/src/modules/lyr_std/twirl.h | 82 + .../tags/stable/src/modules/lyr_std/unlyr_std.nsh | 8 + .../tags/stable/src/modules/lyr_std/warp.cpp | 844 + synfig-core/tags/stable/src/modules/lyr_std/warp.h | 91 + .../tags/stable/src/modules/lyr_std/xorpattern.cpp | 113 + .../tags/stable/src/modules/lyr_std/xorpattern.h | 67 + .../tags/stable/src/modules/lyr_std/zoom.cpp | 162 + synfig-core/tags/stable/src/modules/lyr_std/zoom.h | 68 + .../tags/stable/src/modules/mod_bmp/Makefile.am | 14 + .../tags/stable/src/modules/mod_bmp/main.cpp | 58 + .../tags/stable/src/modules/mod_bmp/mod_bmp.nsh | 21 + .../tags/stable/src/modules/mod_bmp/mptr_bmp.cpp | 232 + .../tags/stable/src/modules/mod_bmp/mptr_bmp.h | 59 + .../tags/stable/src/modules/mod_bmp/trgt_bmp.cpp | 265 + .../tags/stable/src/modules/mod_bmp/trgt_bmp.h | 67 + .../tags/stable/src/modules/mod_bmp/unmod_bmp.nsh | 8 + .../tags/stable/src/modules/mod_dv/Makefile.am | 17 + .../tags/stable/src/modules/mod_dv/main.cpp | 54 + .../tags/stable/src/modules/mod_dv/mod_dv.nsh | 21 + .../tags/stable/src/modules/mod_dv/trgt_dv.cpp | 192 + .../tags/stable/src/modules/mod_dv/trgt_dv.h | 69 + .../tags/stable/src/modules/mod_dv/unmod_dv.nsh | 8 + .../tags/stable/src/modules/mod_ffmpeg/Makefile.am | 19 + .../tags/stable/src/modules/mod_ffmpeg/main.cpp | 70 + .../stable/src/modules/mod_ffmpeg/mod_ffmpeg.nsh | 21 + .../stable/src/modules/mod_ffmpeg/mptr_ffmpeg.cpp | 183 + .../stable/src/modules/mod_ffmpeg/mptr_ffmpeg.h | 74 + .../stable/src/modules/mod_ffmpeg/trgt_ffmpeg.cpp | 190 + .../stable/src/modules/mod_ffmpeg/trgt_ffmpeg.h | 68 + .../stable/src/modules/mod_ffmpeg/unmod_ffmpeg.nsh | 8 + .../tags/stable/src/modules/mod_filter/Makefile.am | 14 + .../tags/stable/src/modules/mod_filter/blur.cpp | 263 + .../tags/stable/src/modules/mod_filter/blur.h | 65 + .../stable/src/modules/mod_filter/colorcorrect.cpp | 258 + .../stable/src/modules/mod_filter/colorcorrect.h | 79 + .../stable/src/modules/mod_filter/halftone.cpp | 167 + .../tags/stable/src/modules/mod_filter/halftone.h | 61 + .../stable/src/modules/mod_filter/halftone2.cpp | 242 + .../tags/stable/src/modules/mod_filter/halftone2.h | 73 + .../stable/src/modules/mod_filter/halftone3.cpp | 403 + .../tags/stable/src/modules/mod_filter/halftone3.h | 78 + .../tags/stable/src/modules/mod_filter/lumakey.cpp | 167 + .../tags/stable/src/modules/mod_filter/lumakey.h | 66 + .../tags/stable/src/modules/mod_filter/main.cpp | 68 + .../stable/src/modules/mod_filter/mod_filter.nsh | 21 + .../stable/src/modules/mod_filter/radialblur.cpp | 265 + .../stable/src/modules/mod_filter/radialblur.h | 68 + .../stable/src/modules/mod_filter/unmod_filter.nsh | 8 + .../stable/src/modules/mod_geometry/Makefile.am | 18 + .../src/modules/mod_geometry/checkerboard.cpp | 197 + .../stable/src/modules/mod_geometry/checkerboard.h | 70 + .../stable/src/modules/mod_geometry/circle.cpp | 780 + .../tags/stable/src/modules/mod_geometry/circle.h | 123 + .../tags/stable/src/modules/mod_geometry/main.cpp | 75 + .../src/modules/mod_geometry/mod_geometry.nsh | 21 + .../stable/src/modules/mod_geometry/outline.cpp | 838 + .../tags/stable/src/modules/mod_geometry/outline.h | 94 + .../stable/src/modules/mod_geometry/rectangle.cpp | 630 + .../stable/src/modules/mod_geometry/rectangle.h | 81 + .../stable/src/modules/mod_geometry/region.cpp | 250 + .../tags/stable/src/modules/mod_geometry/region.h | 73 + .../tags/stable/src/modules/mod_geometry/star.cpp | 188 + .../tags/stable/src/modules/mod_geometry/star.h | 70 + .../src/modules/mod_geometry/unmod_geometry.nsh | 8 + .../tags/stable/src/modules/mod_gif/Makefile.am | 14 + .../tags/stable/src/modules/mod_gif/main.cpp | 55 + .../tags/stable/src/modules/mod_gif/mod_gif.nsh | 21 + .../tags/stable/src/modules/mod_gif/trgt_gif.cpp | 460 + .../tags/stable/src/modules/mod_gif/trgt_gif.h | 213 + .../tags/stable/src/modules/mod_gif/unmod_gif.nsh | 8 + .../stable/src/modules/mod_gradient/Makefile.am | 14 + .../src/modules/mod_gradient/conicalgradient.cpp | 284 + .../src/modules/mod_gradient/conicalgradient.h | 79 + .../src/modules/mod_gradient/curvegradient.cpp | 537 + .../src/modules/mod_gradient/curvegradient.h | 85 + .../src/modules/mod_gradient/lineargradient.cpp | 259 + .../src/modules/mod_gradient/lineargradient.h | 79 + .../tags/stable/src/modules/mod_gradient/main.cpp | 66 + .../src/modules/mod_gradient/mod_gradient.nsh | 21 + .../src/modules/mod_gradient/radialgradient.cpp | 249 + .../src/modules/mod_gradient/radialgradient.h | 79 + .../src/modules/mod_gradient/spiralgradient.cpp | 246 + .../src/modules/mod_gradient/spiralgradient.h | 81 + .../src/modules/mod_gradient/unmod_gradient.nsh | 8 + .../stable/src/modules/mod_imagemagick/Makefile.am | 19 + .../stable/src/modules/mod_imagemagick/main.cpp | 103 + .../modules/mod_imagemagick/mod_imagemagick.nsh | 21 + .../modules/mod_imagemagick/mptr_imagemagick.cpp | 252 + .../src/modules/mod_imagemagick/mptr_imagemagick.h | 62 + .../modules/mod_imagemagick/trgt_imagemagick.cpp | 162 + .../src/modules/mod_imagemagick/trgt_imagemagick.h | 68 + .../modules/mod_imagemagick/unmod_imagemagick.nsh | 8 + .../tags/stable/src/modules/mod_jpeg/Makefile.am | 17 + .../tags/stable/src/modules/mod_jpeg/main.cpp | 61 + .../tags/stable/src/modules/mod_jpeg/mod_jpeg.nsh | 21 + .../tags/stable/src/modules/mod_jpeg/mptr_jpeg.cpp | 256 + .../tags/stable/src/modules/mod_jpeg/mptr_jpeg.h | 67 + .../tags/stable/src/modules/mod_jpeg/trgt_jpeg.cpp | 199 + .../tags/stable/src/modules/mod_jpeg/trgt_jpeg.h | 76 + .../stable/src/modules/mod_jpeg/unmod_jpeg.nsh | 8 + .../stable/src/modules/mod_libavcodec/Makefile.am | 17 + .../stable/src/modules/mod_libavcodec/main.cpp | 68 + .../src/modules/mod_libavcodec/mod_libavcodec.nsh | 21 + .../stable/src/modules/mod_libavcodec/mptr.cpp | 72 + .../tags/stable/src/modules/mod_libavcodec/mptr.h | 57 + .../stable/src/modules/mod_libavcodec/trgt_av.cpp | 940 + .../stable/src/modules/mod_libavcodec/trgt_av.h | 69 + .../modules/mod_libavcodec/unmod_libavcodec.nsh | 8 + .../tags/stable/src/modules/mod_mng/Makefile.am | 18 + .../tags/stable/src/modules/mod_mng/main.cpp | 67 + .../tags/stable/src/modules/mod_mng/mod_mng.nsh | 13 + .../tags/stable/src/modules/mod_mng/trgt_mng.cpp | 304 + .../tags/stable/src/modules/mod_mng/trgt_mng.h | 100 + .../tags/stable/src/modules/mod_mng/unmod_mng.nsh | 6 + .../tags/stable/src/modules/mod_noise/Makefile.am | 14 + .../tags/stable/src/modules/mod_noise/distort.cpp | 299 + .../tags/stable/src/modules/mod_noise/distort.h | 82 + .../tags/stable/src/modules/mod_noise/main.cpp | 62 + .../stable/src/modules/mod_noise/mod_noise.nsh | 21 + .../tags/stable/src/modules/mod_noise/noise.cpp | 345 + .../tags/stable/src/modules/mod_noise/noise.h | 87 + .../tags/stable/src/modules/mod_noise/random.cpp | 304 + .../tags/stable/src/modules/mod_noise/random.h | 52 + .../stable/src/modules/mod_noise/unmod_noise.nsh | 8 + .../stable/src/modules/mod_openexr/Makefile.am | 19 + .../tags/stable/src/modules/mod_openexr/main.cpp | 60 + .../stable/src/modules/mod_openexr/mod_openexr.nsh | 26 + .../src/modules/mod_openexr/mptr_openexr.cpp | 122 + .../stable/src/modules/mod_openexr/mptr_openexr.h | 60 + .../src/modules/mod_openexr/trgt_openexr.cpp | 193 + .../stable/src/modules/mod_openexr/trgt_openexr.h | 78 + .../src/modules/mod_openexr/unmod_openexr.nsh | 13 + .../stable/src/modules/mod_particle/Makefile.am | 14 + .../tags/stable/src/modules/mod_particle/main.cpp | 58 + .../src/modules/mod_particle/mod_particle.nsh | 21 + .../tags/stable/src/modules/mod_particle/plant.cpp | 530 + .../tags/stable/src/modules/mod_particle/plant.h | 111 + .../stable/src/modules/mod_particle/random.cpp | 304 + .../tags/stable/src/modules/mod_particle/random.h | 57 + .../src/modules/mod_particle/unmod_particle.nsh | 8 + .../tags/stable/src/modules/mod_png/Makefile.am | 17 + .../tags/stable/src/modules/mod_png/main.cpp | 58 + .../tags/stable/src/modules/mod_png/mod_png.nsh | 21 + .../tags/stable/src/modules/mod_png/mptr_png.cpp | 334 + .../tags/stable/src/modules/mod_png/mptr_png.h | 67 + .../tags/stable/src/modules/mod_png/trgt_png.cpp | 241 + .../tags/stable/src/modules/mod_png/trgt_png.h | 73 + .../tags/stable/src/modules/mod_png/unmod_png.nsh | 8 + .../tags/stable/src/modules/mod_ppm/Makefile.am | 15 + .../tags/stable/src/modules/mod_ppm/main.cpp | 58 + .../tags/stable/src/modules/mod_ppm/mod_ppm.nsh | 21 + .../tags/stable/src/modules/mod_ppm/mptr_ppm.cpp | 120 + .../tags/stable/src/modules/mod_ppm/mptr_ppm.h | 55 + .../tags/stable/src/modules/mod_ppm/trgt_mpg.cpp | 213 + .../tags/stable/src/modules/mod_ppm/trgt_mpg.h | 73 + .../tags/stable/src/modules/mod_ppm/trgt_ppm.cpp | 154 + .../tags/stable/src/modules/mod_ppm/trgt_ppm.h | 68 + .../tags/stable/src/modules/mod_ppm/unmod_ppm.nsh | 8 + .../stable/src/modules/mod_yuv420p/Makefile.am | 14 + .../tags/stable/src/modules/mod_yuv420p/main.cpp | 54 + .../stable/src/modules/mod_yuv420p/mod_yuv420p.nsh | 21 + .../stable/src/modules/mod_yuv420p/trgt_yuv.cpp | 222 + .../tags/stable/src/modules/mod_yuv420p/trgt_yuv.h | 69 + .../src/modules/mod_yuv420p/unmod_yuv420p.nsh | 8 + .../stable/src/modules/mptr_mplayer/Makefile.am | 15 + .../tags/stable/src/modules/mptr_mplayer/main.cpp | 58 + .../src/modules/mptr_mplayer/mptr_mplayer.cpp | 130 + .../stable/src/modules/mptr_mplayer/mptr_mplayer.h | 63 + .../tags/stable/src/modules/synfig_modules.cfg.in | 18 + synfig-core/tags/stable/src/modules/template.nsh | 21 + synfig-core/tags/stable/src/modules/untemplate.nsh | 8 + synfig-core/tags/stable/src/synfig/Makefile.am | 35 + synfig-core/tags/stable/src/synfig/activepoint.cpp | 55 + synfig-core/tags/stable/src/synfig/activepoint.h | 90 + synfig-core/tags/stable/src/synfig/angle.h | 49 + synfig-core/tags/stable/src/synfig/blinepoint.cpp | 63 + synfig-core/tags/stable/src/synfig/blinepoint.h | 92 + synfig-core/tags/stable/src/synfig/blur.cpp | 1204 + synfig-core/tags/stable/src/synfig/blur.h | 88 + synfig-core/tags/stable/src/synfig/canvas.cpp | 1205 + synfig-core/tags/stable/src/synfig/canvas.h | 485 + synfig-core/tags/stable/src/synfig/canvasbase.h | 47 + synfig-core/tags/stable/src/synfig/color.cpp | 582 + synfig-core/tags/stable/src/synfig/color.h | 882 + synfig-core/tags/stable/src/synfig/context.cpp | 369 + synfig-core/tags/stable/src/synfig/context.h | 87 + .../tags/stable/src/synfig/curve_helper.cpp | 704 + synfig-core/tags/stable/src/synfig/curve_helper.h | 172 + synfig-core/tags/stable/src/synfig/curveset.cpp | 483 + synfig-core/tags/stable/src/synfig/curveset.h | 92 + synfig-core/tags/stable/src/synfig/distance.cpp | 252 + synfig-core/tags/stable/src/synfig/distance.h | 128 + synfig-core/tags/stable/src/synfig/exception.cpp | 105 + synfig-core/tags/stable/src/synfig/exception.h | 97 + synfig-core/tags/stable/src/synfig/gamma.cpp | 193 + synfig-core/tags/stable/src/synfig/gamma.h | 108 + synfig-core/tags/stable/src/synfig/general.h | 163 + synfig-core/tags/stable/src/synfig/gradient.cpp | 424 + synfig-core/tags/stable/src/synfig/gradient.h | 103 + synfig-core/tags/stable/src/synfig/guid.cpp | 202 + synfig-core/tags/stable/src/synfig/guid.h | 141 + synfig-core/tags/stable/src/synfig/guidset.h | 61 + synfig-core/tags/stable/src/synfig/importer.cpp | 144 + synfig-core/tags/stable/src/synfig/importer.h | 123 + synfig-core/tags/stable/src/synfig/interpolation.h | 53 + synfig-core/tags/stable/src/synfig/keyframe.cpp | 237 + synfig-core/tags/stable/src/synfig/keyframe.h | 128 + synfig-core/tags/stable/src/synfig/layer.cpp | 565 + synfig-core/tags/stable/src/synfig/layer.h | 453 + .../tags/stable/src/synfig/layer_bitmap.cpp | 489 + synfig-core/tags/stable/src/synfig/layer_bitmap.h | 78 + .../tags/stable/src/synfig/layer_composite.cpp | 171 + .../tags/stable/src/synfig/layer_composite.h | 94 + synfig-core/tags/stable/src/synfig/layer_mime.cpp | 148 + synfig-core/tags/stable/src/synfig/layer_mime.h | 75 + .../tags/stable/src/synfig/layer_motionblur.cpp | 196 + .../tags/stable/src/synfig/layer_motionblur.h | 71 + .../tags/stable/src/synfig/layer_pastecanvas.cpp | 421 + .../tags/stable/src/synfig/layer_pastecanvas.h | 119 + .../tags/stable/src/synfig/layer_polygon.cpp | 176 + synfig-core/tags/stable/src/synfig/layer_polygon.h | 96 + synfig-core/tags/stable/src/synfig/layer_shape.cpp | 3097 + synfig-core/tags/stable/src/synfig/layer_shape.h | 127 + .../tags/stable/src/synfig/layer_solidcolor.cpp | 166 + .../tags/stable/src/synfig/layer_solidcolor.h | 71 + .../tags/stable/src/synfig/listimporter.cpp | 168 + synfig-core/tags/stable/src/synfig/listimporter.h | 72 + synfig-core/tags/stable/src/synfig/loadcanvas.cpp | 2366 + synfig-core/tags/stable/src/synfig/loadcanvas.h | 189 + synfig-core/tags/stable/src/synfig/main.cpp | 438 + synfig-core/tags/stable/src/synfig/main.h | 62 + synfig-core/tags/stable/src/synfig/module.cpp | 188 + synfig-core/tags/stable/src/synfig/module.h | 172 + synfig-core/tags/stable/src/synfig/mutex.cpp | 304 + synfig-core/tags/stable/src/synfig/mutex.h | 118 + synfig-core/tags/stable/src/synfig/node.cpp | 303 + synfig-core/tags/stable/src/synfig/node.h | 244 + synfig-core/tags/stable/src/synfig/palette.cpp | 359 + synfig-core/tags/stable/src/synfig/palette.h | 94 + synfig-core/tags/stable/src/synfig/paramdesc.cpp | 99 + synfig-core/tags/stable/src/synfig/paramdesc.h | 227 + synfig-core/tags/stable/src/synfig/pch.h | 37 + .../tags/stable/src/synfig/polynomial_root.cpp | 267 + .../tags/stable/src/synfig/polynomial_root.h | 120 + synfig-core/tags/stable/src/synfig/proto/Makefile | 18 + .../tags/stable/src/synfig/proto/nodebase.px | 74 + synfig-core/tags/stable/src/synfig/proto/proto.m4 | 37 + synfig-core/tags/stable/src/synfig/protocol.h | 68 + synfig-core/tags/stable/src/synfig/quick_rng.h | 85 + synfig-core/tags/stable/src/synfig/real.h | 41 + synfig-core/tags/stable/src/synfig/rect.cpp | 60 + synfig-core/tags/stable/src/synfig/rect.h | 174 + synfig-core/tags/stable/src/synfig/renddesc.cpp | 559 + synfig-core/tags/stable/src/synfig/renddesc.h | 320 + synfig-core/tags/stable/src/synfig/render.cpp | 526 + synfig-core/tags/stable/src/synfig/render.h | 66 + synfig-core/tags/stable/src/synfig/savecanvas.cpp | 769 + synfig-core/tags/stable/src/synfig/savecanvas.h | 54 + synfig-core/tags/stable/src/synfig/segment.h | 67 + synfig-core/tags/stable/src/synfig/smartfile.h | 52 + synfig-core/tags/stable/src/synfig/string.h | 62 + synfig-core/tags/stable/src/synfig/string_decl.h | 58 + synfig-core/tags/stable/src/synfig/surface.cpp | 242 + synfig-core/tags/stable/src/synfig/surface.h | 159 + synfig-core/tags/stable/src/synfig/surfacenew.cpp | 706 + synfig-core/tags/stable/src/synfig/surfacenew.h | 400 + synfig-core/tags/stable/src/synfig/synfig.h | 138 + synfig-core/tags/stable/src/synfig/synfig.nsh | 20 + synfig-core/tags/stable/src/synfig/target.cpp | 113 + synfig-core/tags/stable/src/synfig/target.h | 164 + .../tags/stable/src/synfig/target_multi.cpp | 119 + synfig-core/tags/stable/src/synfig/target_multi.h | 68 + synfig-core/tags/stable/src/synfig/target_null.cpp | 50 + synfig-core/tags/stable/src/synfig/target_null.h | 71 + .../tags/stable/src/synfig/target_null_tile.cpp | 50 + .../tags/stable/src/synfig/target_null_tile.h | 66 + .../tags/stable/src/synfig/target_scanline.cpp | 505 + .../tags/stable/src/synfig/target_scanline.h | 100 + synfig-core/tags/stable/src/synfig/target_tile.cpp | 432 + synfig-core/tags/stable/src/synfig/target_tile.h | 121 + synfig-core/tags/stable/src/synfig/time.cpp | 277 + synfig-core/tags/stable/src/synfig/time.h | 165 + .../tags/stable/src/synfig/timepointcollect.cpp | 146 + .../tags/stable/src/synfig/timepointcollect.h | 54 + synfig-core/tags/stable/src/synfig/transform.cpp | 149 + synfig-core/tags/stable/src/synfig/transform.h | 86 + synfig-core/tags/stable/src/synfig/types.h | 47 + synfig-core/tags/stable/src/synfig/uniqueid.cpp | 51 + synfig-core/tags/stable/src/synfig/uniqueid.h | 91 + synfig-core/tags/stable/src/synfig/value.cpp | 407 + synfig-core/tags/stable/src/synfig/value.h | 461 + synfig-core/tags/stable/src/synfig/valuenode.cpp | 502 + synfig-core/tags/stable/src/synfig/valuenode.h | 387 + .../tags/stable/src/synfig/valuenode_animated.cpp | 1175 + .../tags/stable/src/synfig/valuenode_animated.h | 117 + .../tags/stable/src/synfig/valuenode_bline.cpp | 758 + .../tags/stable/src/synfig/valuenode_bline.h | 98 + .../tags/stable/src/synfig/valuenode_composite.cpp | 390 + .../tags/stable/src/synfig/valuenode_composite.h | 77 + .../tags/stable/src/synfig/valuenode_const.cpp | 131 + .../tags/stable/src/synfig/valuenode_const.h | 76 + .../stable/src/synfig/valuenode_dynamiclist.cpp | 890 + .../tags/stable/src/synfig/valuenode_dynamiclist.h | 245 + .../stable/src/synfig/valuenode_gradientrotate.cpp | 215 + .../stable/src/synfig/valuenode_gradientrotate.h | 103 + .../tags/stable/src/synfig/valuenode_linear.cpp | 215 + .../tags/stable/src/synfig/valuenode_linear.h | 82 + .../src/synfig/valuenode_radialcomposite.cpp | 276 + .../stable/src/synfig/valuenode_radialcomposite.h | 77 + .../tags/stable/src/synfig/valuenode_reference.cpp | 151 + .../tags/stable/src/synfig/valuenode_reference.h | 85 + .../tags/stable/src/synfig/valuenode_scale.cpp | 278 + .../tags/stable/src/synfig/valuenode_scale.h | 103 + .../stable/src/synfig/valuenode_segcalctangent.cpp | 187 + .../stable/src/synfig/valuenode_segcalctangent.h | 83 + .../stable/src/synfig/valuenode_segcalcvertex.cpp | 181 + .../stable/src/synfig/valuenode_segcalcvertex.h | 84 + .../tags/stable/src/synfig/valuenode_sine.cpp | 182 + .../tags/stable/src/synfig/valuenode_sine.h | 82 + .../tags/stable/src/synfig/valuenode_stripes.cpp | 276 + .../tags/stable/src/synfig/valuenode_stripes.h | 102 + .../tags/stable/src/synfig/valuenode_subtract.cpp | 316 + .../tags/stable/src/synfig/valuenode_subtract.h | 109 + .../tags/stable/src/synfig/valuenode_timedswap.cpp | 348 + .../tags/stable/src/synfig/valuenode_timedswap.h | 100 + .../tags/stable/src/synfig/valuenode_twotone.cpp | 207 + .../tags/stable/src/synfig/valuenode_twotone.h | 102 + synfig-core/tags/stable/src/synfig/vector.h | 285 + synfig-core/tags/stable/src/synfig/version.h | 77 + synfig-core/tags/stable/src/synfig/waypoint.cpp | 155 + synfig-core/tags/stable/src/synfig/waypoint.h | 256 + synfig-core/tags/stable/src/template.cpp | 54 + synfig-core/tags/stable/src/template.h | 38 + synfig-core/tags/stable/src/tool/Makefile.am | 15 + synfig-core/tags/stable/src/tool/main.cpp | 1106 + synfig-core/tags/stable/src/tool/tool.nsh | 20 + synfig-core/tags/stable/synfig-config.in | 82 + .../tags/stable/synfig-core.xcodeproj/config.h | 264 + .../tags/stable/synfig-core.xcodeproj/darco.mode1 | 1542 + .../stable/synfig-core.xcodeproj/darco.pbxuser | 3939 + .../stable/synfig-core.xcodeproj/project.pbxproj | 3071 + synfig-core/tags/stable/synfig.kdevprj | 1198 + synfig-core/tags/stable/synfig.prj | 214 + synfig-core/tags/stable/win32build.sh | 20 + synfig-core/tags/stable/win32inst.nsi.in | 238 + 460 files changed, 1007108 insertions(+) create mode 100644 synfig-core/tags/stable/AUTHORS create mode 100644 synfig-core/tags/stable/ChangeLog.old create mode 100644 synfig-core/tags/stable/Makefile.am create mode 100644 synfig-core/tags/stable/NEWS create mode 100644 synfig-core/tags/stable/README create mode 100644 synfig-core/tags/stable/TODO create mode 100755 synfig-core/tags/stable/bootstrap create mode 100644 synfig-core/tags/stable/config/ETL.m4 create mode 100644 synfig-core/tags/stable/config/build.cfg create mode 100644 synfig-core/tags/stable/config/configure.ac create mode 100644 synfig-core/tags/stable/config/cxx_macros.m4 create mode 100644 synfig-core/tags/stable/config/doxygen.cfg.in create mode 100644 synfig-core/tags/stable/config/freetype2.m4 create mode 100644 synfig-core/tags/stable/config/libxml++.m4 create mode 100644 synfig-core/tags/stable/config/libxml.m4 create mode 100644 synfig-core/tags/stable/config/ltmain.patch create mode 100755 synfig-core/tags/stable/config/package create mode 100644 synfig-core/tags/stable/config/pkgconfig.m4 create mode 100644 synfig-core/tags/stable/config/pkgconfig.pc.in create mode 100644 synfig-core/tags/stable/config/project.spec.in create mode 100644 synfig-core/tags/stable/config/subs.m4 create mode 100644 synfig-core/tags/stable/config/synfig.m4 create mode 100644 synfig-core/tags/stable/doc/hw-gfx-mapping.txt create mode 100644 synfig-core/tags/stable/examples/Makefile.am create mode 100644 synfig-core/tags/stable/examples/about_dialog.sif create mode 100755 synfig-core/tags/stable/examples/backdrop.sif create mode 100644 synfig-core/tags/stable/examples/business_card.sif create mode 100644 synfig-core/tags/stable/examples/candy.sif create mode 100644 synfig-core/tags/stable/examples/cells.sif create mode 100644 synfig-core/tags/stable/examples/eye.sif create mode 100644 synfig-core/tags/stable/examples/eyes.sif create mode 100644 synfig-core/tags/stable/examples/gamma.sif create mode 100644 synfig-core/tags/stable/examples/gradient.sif create mode 100644 synfig-core/tags/stable/examples/headmo.sif create mode 100644 synfig-core/tags/stable/examples/installer-logo.sif create mode 100644 synfig-core/tags/stable/examples/japan.sif create mode 100644 synfig-core/tags/stable/examples/logo.sif create mode 100644 synfig-core/tags/stable/examples/macwolfen.sif create mode 100644 synfig-core/tags/stable/examples/mandelbrot.sif create mode 100644 synfig-core/tags/stable/examples/newjulia.sif create mode 100644 synfig-core/tags/stable/examples/newjulia2.sif create mode 100644 synfig-core/tags/stable/examples/noise.sif create mode 100644 synfig-core/tags/stable/examples/pirates.sif create mode 100644 synfig-core/tags/stable/examples/preambletaffy.sif create mode 100644 synfig-core/tags/stable/examples/prologue_kid.sif create mode 100644 synfig-core/tags/stable/examples/sparkle.sif create mode 100644 synfig-core/tags/stable/examples/splat.sif create mode 100644 synfig-core/tags/stable/examples/star.sif create mode 100644 synfig-core/tags/stable/examples/walk/Makefile.am create mode 100755 synfig-core/tags/stable/examples/walk/animation.lst create mode 100755 synfig-core/tags/stable/examples/walk/frame_01.jpg create mode 100755 synfig-core/tags/stable/examples/walk/frame_02.jpg create mode 100755 synfig-core/tags/stable/examples/walk/frame_03.jpg create mode 100755 synfig-core/tags/stable/examples/walk/frame_04.jpg create mode 100644 synfig-core/tags/stable/examples/walk/walk.sif create mode 100644 synfig-core/tags/stable/examples/wallpaper.sif create mode 100644 synfig-core/tags/stable/examples/warpcube.sif create mode 100644 synfig-core/tags/stable/examples/warptext.sif create mode 100644 synfig-core/tags/stable/examples/z_depth_test.sif create mode 100755 synfig-core/tags/stable/macosxbuild.sh create mode 100644 synfig-core/tags/stable/pkg-info/macosx/core-resources/License.txt create mode 100644 synfig-core/tags/stable/pkg-info/macosx/core-resources/ReadMe.txt create mode 100644 synfig-core/tags/stable/pkg-info/macosx/core-resources/Welcome.txt create mode 100755 synfig-core/tags/stable/pkg-info/macosx/core-resources/install.sh create mode 100755 synfig-core/tags/stable/pkg-info/macosx/core-resources/upgrade.sh create mode 100644 synfig-core/tags/stable/pkg-info/macosx/synfig-core.info.in create mode 100644 synfig-core/tags/stable/src/Makefile.am create mode 100644 synfig-core/tags/stable/src/modules/Makefile.am create mode 100644 synfig-core/tags/stable/src/modules/example/Makefile.am create mode 100644 synfig-core/tags/stable/src/modules/example/filledrect.cpp create mode 100644 synfig-core/tags/stable/src/modules/example/filledrect.h create mode 100644 synfig-core/tags/stable/src/modules/example/main.cpp create mode 100644 synfig-core/tags/stable/src/modules/example/metaballs.cpp create mode 100644 synfig-core/tags/stable/src/modules/example/metaballs.h create mode 100644 synfig-core/tags/stable/src/modules/example/simplecircle.cpp create mode 100644 synfig-core/tags/stable/src/modules/example/simplecircle.h create mode 100644 synfig-core/tags/stable/src/modules/lyr_freetype/Makefile.am create mode 100644 synfig-core/tags/stable/src/modules/lyr_freetype/lyr_freetype.cpp create mode 100644 synfig-core/tags/stable/src/modules/lyr_freetype/lyr_freetype.h create mode 100644 synfig-core/tags/stable/src/modules/lyr_freetype/lyr_freetype.nsh create mode 100644 synfig-core/tags/stable/src/modules/lyr_freetype/main.cpp create mode 100644 synfig-core/tags/stable/src/modules/lyr_freetype/unlyr_freetype.nsh create mode 100644 synfig-core/tags/stable/src/modules/lyr_std/Makefile.am create mode 100644 synfig-core/tags/stable/src/modules/lyr_std/bevel.cpp create mode 100644 synfig-core/tags/stable/src/modules/lyr_std/bevel.h create mode 100644 synfig-core/tags/stable/src/modules/lyr_std/booleancurve.cpp create mode 100644 synfig-core/tags/stable/src/modules/lyr_std/booleancurve.h create mode 100644 synfig-core/tags/stable/src/modules/lyr_std/clamp.cpp create mode 100644 synfig-core/tags/stable/src/modules/lyr_std/clamp.h create mode 100644 synfig-core/tags/stable/src/modules/lyr_std/import.cpp create mode 100644 synfig-core/tags/stable/src/modules/lyr_std/import.h create mode 100644 synfig-core/tags/stable/src/modules/lyr_std/insideout.cpp create mode 100644 synfig-core/tags/stable/src/modules/lyr_std/insideout.h create mode 100644 synfig-core/tags/stable/src/modules/lyr_std/julia.cpp create mode 100644 synfig-core/tags/stable/src/modules/lyr_std/julia.h create mode 100644 synfig-core/tags/stable/src/modules/lyr_std/lyr_std.nsh create mode 100644 synfig-core/tags/stable/src/modules/lyr_std/main.cpp create mode 100644 synfig-core/tags/stable/src/modules/lyr_std/mandelbrot.cpp create mode 100644 synfig-core/tags/stable/src/modules/lyr_std/mandelbrot.h create mode 100644 synfig-core/tags/stable/src/modules/lyr_std/radialgradient.cpp create mode 100644 synfig-core/tags/stable/src/modules/lyr_std/rotate.cpp create mode 100644 synfig-core/tags/stable/src/modules/lyr_std/rotate.h create mode 100644 synfig-core/tags/stable/src/modules/lyr_std/shade.cpp create mode 100644 synfig-core/tags/stable/src/modules/lyr_std/shade.h create mode 100644 synfig-core/tags/stable/src/modules/lyr_std/sphere_distort.cpp create mode 100644 synfig-core/tags/stable/src/modules/lyr_std/sphere_distort.h create mode 100644 synfig-core/tags/stable/src/modules/lyr_std/stretch.cpp create mode 100644 synfig-core/tags/stable/src/modules/lyr_std/stretch.h create mode 100644 synfig-core/tags/stable/src/modules/lyr_std/supersample.cpp create mode 100644 synfig-core/tags/stable/src/modules/lyr_std/supersample.h create mode 100644 synfig-core/tags/stable/src/modules/lyr_std/timeloop.cpp create mode 100644 synfig-core/tags/stable/src/modules/lyr_std/timeloop.h create mode 100644 synfig-core/tags/stable/src/modules/lyr_std/translate.cpp create mode 100644 synfig-core/tags/stable/src/modules/lyr_std/translate.h create mode 100644 synfig-core/tags/stable/src/modules/lyr_std/twirl.cpp create mode 100644 synfig-core/tags/stable/src/modules/lyr_std/twirl.h create mode 100644 synfig-core/tags/stable/src/modules/lyr_std/unlyr_std.nsh create mode 100644 synfig-core/tags/stable/src/modules/lyr_std/warp.cpp create mode 100644 synfig-core/tags/stable/src/modules/lyr_std/warp.h create mode 100644 synfig-core/tags/stable/src/modules/lyr_std/xorpattern.cpp create mode 100644 synfig-core/tags/stable/src/modules/lyr_std/xorpattern.h create mode 100644 synfig-core/tags/stable/src/modules/lyr_std/zoom.cpp create mode 100644 synfig-core/tags/stable/src/modules/lyr_std/zoom.h create mode 100644 synfig-core/tags/stable/src/modules/mod_bmp/Makefile.am create mode 100644 synfig-core/tags/stable/src/modules/mod_bmp/main.cpp create mode 100644 synfig-core/tags/stable/src/modules/mod_bmp/mod_bmp.nsh create mode 100644 synfig-core/tags/stable/src/modules/mod_bmp/mptr_bmp.cpp create mode 100644 synfig-core/tags/stable/src/modules/mod_bmp/mptr_bmp.h create mode 100644 synfig-core/tags/stable/src/modules/mod_bmp/trgt_bmp.cpp create mode 100644 synfig-core/tags/stable/src/modules/mod_bmp/trgt_bmp.h create mode 100644 synfig-core/tags/stable/src/modules/mod_bmp/unmod_bmp.nsh create mode 100644 synfig-core/tags/stable/src/modules/mod_dv/Makefile.am create mode 100644 synfig-core/tags/stable/src/modules/mod_dv/main.cpp create mode 100644 synfig-core/tags/stable/src/modules/mod_dv/mod_dv.nsh create mode 100644 synfig-core/tags/stable/src/modules/mod_dv/trgt_dv.cpp create mode 100644 synfig-core/tags/stable/src/modules/mod_dv/trgt_dv.h create mode 100644 synfig-core/tags/stable/src/modules/mod_dv/unmod_dv.nsh create mode 100644 synfig-core/tags/stable/src/modules/mod_ffmpeg/Makefile.am create mode 100644 synfig-core/tags/stable/src/modules/mod_ffmpeg/main.cpp create mode 100644 synfig-core/tags/stable/src/modules/mod_ffmpeg/mod_ffmpeg.nsh create mode 100644 synfig-core/tags/stable/src/modules/mod_ffmpeg/mptr_ffmpeg.cpp create mode 100644 synfig-core/tags/stable/src/modules/mod_ffmpeg/mptr_ffmpeg.h create mode 100644 synfig-core/tags/stable/src/modules/mod_ffmpeg/trgt_ffmpeg.cpp create mode 100644 synfig-core/tags/stable/src/modules/mod_ffmpeg/trgt_ffmpeg.h create mode 100644 synfig-core/tags/stable/src/modules/mod_ffmpeg/unmod_ffmpeg.nsh create mode 100644 synfig-core/tags/stable/src/modules/mod_filter/Makefile.am create mode 100644 synfig-core/tags/stable/src/modules/mod_filter/blur.cpp create mode 100644 synfig-core/tags/stable/src/modules/mod_filter/blur.h create mode 100644 synfig-core/tags/stable/src/modules/mod_filter/colorcorrect.cpp create mode 100644 synfig-core/tags/stable/src/modules/mod_filter/colorcorrect.h create mode 100644 synfig-core/tags/stable/src/modules/mod_filter/halftone.cpp create mode 100644 synfig-core/tags/stable/src/modules/mod_filter/halftone.h create mode 100644 synfig-core/tags/stable/src/modules/mod_filter/halftone2.cpp create mode 100644 synfig-core/tags/stable/src/modules/mod_filter/halftone2.h create mode 100644 synfig-core/tags/stable/src/modules/mod_filter/halftone3.cpp create mode 100644 synfig-core/tags/stable/src/modules/mod_filter/halftone3.h create mode 100644 synfig-core/tags/stable/src/modules/mod_filter/lumakey.cpp create mode 100644 synfig-core/tags/stable/src/modules/mod_filter/lumakey.h create mode 100644 synfig-core/tags/stable/src/modules/mod_filter/main.cpp create mode 100644 synfig-core/tags/stable/src/modules/mod_filter/mod_filter.nsh create mode 100644 synfig-core/tags/stable/src/modules/mod_filter/radialblur.cpp create mode 100644 synfig-core/tags/stable/src/modules/mod_filter/radialblur.h create mode 100644 synfig-core/tags/stable/src/modules/mod_filter/unmod_filter.nsh create mode 100644 synfig-core/tags/stable/src/modules/mod_geometry/Makefile.am create mode 100644 synfig-core/tags/stable/src/modules/mod_geometry/checkerboard.cpp create mode 100644 synfig-core/tags/stable/src/modules/mod_geometry/checkerboard.h create mode 100644 synfig-core/tags/stable/src/modules/mod_geometry/circle.cpp create mode 100644 synfig-core/tags/stable/src/modules/mod_geometry/circle.h create mode 100644 synfig-core/tags/stable/src/modules/mod_geometry/main.cpp create mode 100644 synfig-core/tags/stable/src/modules/mod_geometry/mod_geometry.nsh create mode 100644 synfig-core/tags/stable/src/modules/mod_geometry/outline.cpp create mode 100644 synfig-core/tags/stable/src/modules/mod_geometry/outline.h create mode 100644 synfig-core/tags/stable/src/modules/mod_geometry/rectangle.cpp create mode 100644 synfig-core/tags/stable/src/modules/mod_geometry/rectangle.h create mode 100644 synfig-core/tags/stable/src/modules/mod_geometry/region.cpp create mode 100644 synfig-core/tags/stable/src/modules/mod_geometry/region.h create mode 100644 synfig-core/tags/stable/src/modules/mod_geometry/star.cpp create mode 100644 synfig-core/tags/stable/src/modules/mod_geometry/star.h create mode 100644 synfig-core/tags/stable/src/modules/mod_geometry/unmod_geometry.nsh create mode 100644 synfig-core/tags/stable/src/modules/mod_gif/Makefile.am create mode 100644 synfig-core/tags/stable/src/modules/mod_gif/main.cpp create mode 100644 synfig-core/tags/stable/src/modules/mod_gif/mod_gif.nsh create mode 100644 synfig-core/tags/stable/src/modules/mod_gif/trgt_gif.cpp create mode 100644 synfig-core/tags/stable/src/modules/mod_gif/trgt_gif.h create mode 100644 synfig-core/tags/stable/src/modules/mod_gif/unmod_gif.nsh create mode 100644 synfig-core/tags/stable/src/modules/mod_gradient/Makefile.am create mode 100644 synfig-core/tags/stable/src/modules/mod_gradient/conicalgradient.cpp create mode 100644 synfig-core/tags/stable/src/modules/mod_gradient/conicalgradient.h create mode 100644 synfig-core/tags/stable/src/modules/mod_gradient/curvegradient.cpp create mode 100644 synfig-core/tags/stable/src/modules/mod_gradient/curvegradient.h create mode 100644 synfig-core/tags/stable/src/modules/mod_gradient/lineargradient.cpp create mode 100644 synfig-core/tags/stable/src/modules/mod_gradient/lineargradient.h create mode 100644 synfig-core/tags/stable/src/modules/mod_gradient/main.cpp create mode 100644 synfig-core/tags/stable/src/modules/mod_gradient/mod_gradient.nsh create mode 100644 synfig-core/tags/stable/src/modules/mod_gradient/radialgradient.cpp create mode 100644 synfig-core/tags/stable/src/modules/mod_gradient/radialgradient.h create mode 100644 synfig-core/tags/stable/src/modules/mod_gradient/spiralgradient.cpp create mode 100644 synfig-core/tags/stable/src/modules/mod_gradient/spiralgradient.h create mode 100644 synfig-core/tags/stable/src/modules/mod_gradient/unmod_gradient.nsh create mode 100644 synfig-core/tags/stable/src/modules/mod_imagemagick/Makefile.am create mode 100644 synfig-core/tags/stable/src/modules/mod_imagemagick/main.cpp create mode 100644 synfig-core/tags/stable/src/modules/mod_imagemagick/mod_imagemagick.nsh create mode 100644 synfig-core/tags/stable/src/modules/mod_imagemagick/mptr_imagemagick.cpp create mode 100644 synfig-core/tags/stable/src/modules/mod_imagemagick/mptr_imagemagick.h create mode 100644 synfig-core/tags/stable/src/modules/mod_imagemagick/trgt_imagemagick.cpp create mode 100644 synfig-core/tags/stable/src/modules/mod_imagemagick/trgt_imagemagick.h create mode 100644 synfig-core/tags/stable/src/modules/mod_imagemagick/unmod_imagemagick.nsh create mode 100644 synfig-core/tags/stable/src/modules/mod_jpeg/Makefile.am create mode 100644 synfig-core/tags/stable/src/modules/mod_jpeg/main.cpp create mode 100644 synfig-core/tags/stable/src/modules/mod_jpeg/mod_jpeg.nsh create mode 100644 synfig-core/tags/stable/src/modules/mod_jpeg/mptr_jpeg.cpp create mode 100644 synfig-core/tags/stable/src/modules/mod_jpeg/mptr_jpeg.h create mode 100644 synfig-core/tags/stable/src/modules/mod_jpeg/trgt_jpeg.cpp create mode 100644 synfig-core/tags/stable/src/modules/mod_jpeg/trgt_jpeg.h create mode 100644 synfig-core/tags/stable/src/modules/mod_jpeg/unmod_jpeg.nsh create mode 100644 synfig-core/tags/stable/src/modules/mod_libavcodec/Makefile.am create mode 100644 synfig-core/tags/stable/src/modules/mod_libavcodec/main.cpp create mode 100644 synfig-core/tags/stable/src/modules/mod_libavcodec/mod_libavcodec.nsh create mode 100644 synfig-core/tags/stable/src/modules/mod_libavcodec/mptr.cpp create mode 100644 synfig-core/tags/stable/src/modules/mod_libavcodec/mptr.h create mode 100644 synfig-core/tags/stable/src/modules/mod_libavcodec/trgt_av.cpp create mode 100644 synfig-core/tags/stable/src/modules/mod_libavcodec/trgt_av.h create mode 100644 synfig-core/tags/stable/src/modules/mod_libavcodec/unmod_libavcodec.nsh create mode 100644 synfig-core/tags/stable/src/modules/mod_mng/Makefile.am create mode 100644 synfig-core/tags/stable/src/modules/mod_mng/main.cpp create mode 100644 synfig-core/tags/stable/src/modules/mod_mng/mod_mng.nsh create mode 100644 synfig-core/tags/stable/src/modules/mod_mng/trgt_mng.cpp create mode 100644 synfig-core/tags/stable/src/modules/mod_mng/trgt_mng.h create mode 100644 synfig-core/tags/stable/src/modules/mod_mng/unmod_mng.nsh create mode 100644 synfig-core/tags/stable/src/modules/mod_noise/Makefile.am create mode 100644 synfig-core/tags/stable/src/modules/mod_noise/distort.cpp create mode 100644 synfig-core/tags/stable/src/modules/mod_noise/distort.h create mode 100644 synfig-core/tags/stable/src/modules/mod_noise/main.cpp create mode 100644 synfig-core/tags/stable/src/modules/mod_noise/mod_noise.nsh create mode 100644 synfig-core/tags/stable/src/modules/mod_noise/noise.cpp create mode 100644 synfig-core/tags/stable/src/modules/mod_noise/noise.h create mode 100644 synfig-core/tags/stable/src/modules/mod_noise/random.cpp create mode 100644 synfig-core/tags/stable/src/modules/mod_noise/random.h create mode 100644 synfig-core/tags/stable/src/modules/mod_noise/unmod_noise.nsh create mode 100644 synfig-core/tags/stable/src/modules/mod_openexr/Makefile.am create mode 100644 synfig-core/tags/stable/src/modules/mod_openexr/main.cpp create mode 100644 synfig-core/tags/stable/src/modules/mod_openexr/mod_openexr.nsh create mode 100644 synfig-core/tags/stable/src/modules/mod_openexr/mptr_openexr.cpp create mode 100644 synfig-core/tags/stable/src/modules/mod_openexr/mptr_openexr.h create mode 100644 synfig-core/tags/stable/src/modules/mod_openexr/trgt_openexr.cpp create mode 100644 synfig-core/tags/stable/src/modules/mod_openexr/trgt_openexr.h create mode 100644 synfig-core/tags/stable/src/modules/mod_openexr/unmod_openexr.nsh create mode 100644 synfig-core/tags/stable/src/modules/mod_particle/Makefile.am create mode 100644 synfig-core/tags/stable/src/modules/mod_particle/main.cpp create mode 100644 synfig-core/tags/stable/src/modules/mod_particle/mod_particle.nsh create mode 100644 synfig-core/tags/stable/src/modules/mod_particle/plant.cpp create mode 100644 synfig-core/tags/stable/src/modules/mod_particle/plant.h create mode 100644 synfig-core/tags/stable/src/modules/mod_particle/random.cpp create mode 100644 synfig-core/tags/stable/src/modules/mod_particle/random.h create mode 100644 synfig-core/tags/stable/src/modules/mod_particle/unmod_particle.nsh create mode 100644 synfig-core/tags/stable/src/modules/mod_png/Makefile.am create mode 100644 synfig-core/tags/stable/src/modules/mod_png/main.cpp create mode 100644 synfig-core/tags/stable/src/modules/mod_png/mod_png.nsh create mode 100644 synfig-core/tags/stable/src/modules/mod_png/mptr_png.cpp create mode 100644 synfig-core/tags/stable/src/modules/mod_png/mptr_png.h create mode 100644 synfig-core/tags/stable/src/modules/mod_png/trgt_png.cpp create mode 100644 synfig-core/tags/stable/src/modules/mod_png/trgt_png.h create mode 100644 synfig-core/tags/stable/src/modules/mod_png/unmod_png.nsh create mode 100644 synfig-core/tags/stable/src/modules/mod_ppm/Makefile.am create mode 100644 synfig-core/tags/stable/src/modules/mod_ppm/main.cpp create mode 100644 synfig-core/tags/stable/src/modules/mod_ppm/mod_ppm.nsh create mode 100644 synfig-core/tags/stable/src/modules/mod_ppm/mptr_ppm.cpp create mode 100644 synfig-core/tags/stable/src/modules/mod_ppm/mptr_ppm.h create mode 100644 synfig-core/tags/stable/src/modules/mod_ppm/trgt_mpg.cpp create mode 100644 synfig-core/tags/stable/src/modules/mod_ppm/trgt_mpg.h create mode 100644 synfig-core/tags/stable/src/modules/mod_ppm/trgt_ppm.cpp create mode 100644 synfig-core/tags/stable/src/modules/mod_ppm/trgt_ppm.h create mode 100644 synfig-core/tags/stable/src/modules/mod_ppm/unmod_ppm.nsh create mode 100644 synfig-core/tags/stable/src/modules/mod_yuv420p/Makefile.am create mode 100644 synfig-core/tags/stable/src/modules/mod_yuv420p/main.cpp create mode 100644 synfig-core/tags/stable/src/modules/mod_yuv420p/mod_yuv420p.nsh create mode 100644 synfig-core/tags/stable/src/modules/mod_yuv420p/trgt_yuv.cpp create mode 100644 synfig-core/tags/stable/src/modules/mod_yuv420p/trgt_yuv.h create mode 100644 synfig-core/tags/stable/src/modules/mod_yuv420p/unmod_yuv420p.nsh create mode 100644 synfig-core/tags/stable/src/modules/mptr_mplayer/Makefile.am create mode 100644 synfig-core/tags/stable/src/modules/mptr_mplayer/main.cpp create mode 100644 synfig-core/tags/stable/src/modules/mptr_mplayer/mptr_mplayer.cpp create mode 100644 synfig-core/tags/stable/src/modules/mptr_mplayer/mptr_mplayer.h create mode 100644 synfig-core/tags/stable/src/modules/synfig_modules.cfg.in create mode 100644 synfig-core/tags/stable/src/modules/template.nsh create mode 100644 synfig-core/tags/stable/src/modules/untemplate.nsh create mode 100644 synfig-core/tags/stable/src/synfig/Makefile.am create mode 100644 synfig-core/tags/stable/src/synfig/activepoint.cpp create mode 100644 synfig-core/tags/stable/src/synfig/activepoint.h create mode 100644 synfig-core/tags/stable/src/synfig/angle.h create mode 100644 synfig-core/tags/stable/src/synfig/blinepoint.cpp create mode 100644 synfig-core/tags/stable/src/synfig/blinepoint.h create mode 100644 synfig-core/tags/stable/src/synfig/blur.cpp create mode 100644 synfig-core/tags/stable/src/synfig/blur.h create mode 100644 synfig-core/tags/stable/src/synfig/canvas.cpp create mode 100644 synfig-core/tags/stable/src/synfig/canvas.h create mode 100644 synfig-core/tags/stable/src/synfig/canvasbase.h create mode 100644 synfig-core/tags/stable/src/synfig/color.cpp create mode 100644 synfig-core/tags/stable/src/synfig/color.h create mode 100644 synfig-core/tags/stable/src/synfig/context.cpp create mode 100644 synfig-core/tags/stable/src/synfig/context.h create mode 100644 synfig-core/tags/stable/src/synfig/curve_helper.cpp create mode 100644 synfig-core/tags/stable/src/synfig/curve_helper.h create mode 100644 synfig-core/tags/stable/src/synfig/curveset.cpp create mode 100644 synfig-core/tags/stable/src/synfig/curveset.h create mode 100644 synfig-core/tags/stable/src/synfig/distance.cpp create mode 100644 synfig-core/tags/stable/src/synfig/distance.h create mode 100644 synfig-core/tags/stable/src/synfig/exception.cpp create mode 100644 synfig-core/tags/stable/src/synfig/exception.h create mode 100644 synfig-core/tags/stable/src/synfig/gamma.cpp create mode 100644 synfig-core/tags/stable/src/synfig/gamma.h create mode 100644 synfig-core/tags/stable/src/synfig/general.h create mode 100644 synfig-core/tags/stable/src/synfig/gradient.cpp create mode 100644 synfig-core/tags/stable/src/synfig/gradient.h create mode 100644 synfig-core/tags/stable/src/synfig/guid.cpp create mode 100644 synfig-core/tags/stable/src/synfig/guid.h create mode 100644 synfig-core/tags/stable/src/synfig/guidset.h create mode 100644 synfig-core/tags/stable/src/synfig/importer.cpp create mode 100644 synfig-core/tags/stable/src/synfig/importer.h create mode 100644 synfig-core/tags/stable/src/synfig/interpolation.h create mode 100644 synfig-core/tags/stable/src/synfig/keyframe.cpp create mode 100644 synfig-core/tags/stable/src/synfig/keyframe.h create mode 100644 synfig-core/tags/stable/src/synfig/layer.cpp create mode 100644 synfig-core/tags/stable/src/synfig/layer.h create mode 100644 synfig-core/tags/stable/src/synfig/layer_bitmap.cpp create mode 100644 synfig-core/tags/stable/src/synfig/layer_bitmap.h create mode 100644 synfig-core/tags/stable/src/synfig/layer_composite.cpp create mode 100644 synfig-core/tags/stable/src/synfig/layer_composite.h create mode 100644 synfig-core/tags/stable/src/synfig/layer_mime.cpp create mode 100644 synfig-core/tags/stable/src/synfig/layer_mime.h create mode 100644 synfig-core/tags/stable/src/synfig/layer_motionblur.cpp create mode 100644 synfig-core/tags/stable/src/synfig/layer_motionblur.h create mode 100644 synfig-core/tags/stable/src/synfig/layer_pastecanvas.cpp create mode 100644 synfig-core/tags/stable/src/synfig/layer_pastecanvas.h create mode 100644 synfig-core/tags/stable/src/synfig/layer_polygon.cpp create mode 100644 synfig-core/tags/stable/src/synfig/layer_polygon.h create mode 100644 synfig-core/tags/stable/src/synfig/layer_shape.cpp create mode 100644 synfig-core/tags/stable/src/synfig/layer_shape.h create mode 100644 synfig-core/tags/stable/src/synfig/layer_solidcolor.cpp create mode 100644 synfig-core/tags/stable/src/synfig/layer_solidcolor.h create mode 100644 synfig-core/tags/stable/src/synfig/listimporter.cpp create mode 100644 synfig-core/tags/stable/src/synfig/listimporter.h create mode 100644 synfig-core/tags/stable/src/synfig/loadcanvas.cpp create mode 100644 synfig-core/tags/stable/src/synfig/loadcanvas.h create mode 100644 synfig-core/tags/stable/src/synfig/main.cpp create mode 100644 synfig-core/tags/stable/src/synfig/main.h create mode 100644 synfig-core/tags/stable/src/synfig/module.cpp create mode 100644 synfig-core/tags/stable/src/synfig/module.h create mode 100644 synfig-core/tags/stable/src/synfig/mutex.cpp create mode 100644 synfig-core/tags/stable/src/synfig/mutex.h create mode 100644 synfig-core/tags/stable/src/synfig/node.cpp create mode 100644 synfig-core/tags/stable/src/synfig/node.h create mode 100644 synfig-core/tags/stable/src/synfig/palette.cpp create mode 100644 synfig-core/tags/stable/src/synfig/palette.h create mode 100644 synfig-core/tags/stable/src/synfig/paramdesc.cpp create mode 100644 synfig-core/tags/stable/src/synfig/paramdesc.h create mode 100644 synfig-core/tags/stable/src/synfig/pch.h create mode 100644 synfig-core/tags/stable/src/synfig/polynomial_root.cpp create mode 100644 synfig-core/tags/stable/src/synfig/polynomial_root.h create mode 100644 synfig-core/tags/stable/src/synfig/proto/Makefile create mode 100644 synfig-core/tags/stable/src/synfig/proto/nodebase.px create mode 100644 synfig-core/tags/stable/src/synfig/proto/proto.m4 create mode 100644 synfig-core/tags/stable/src/synfig/protocol.h create mode 100644 synfig-core/tags/stable/src/synfig/quick_rng.h create mode 100644 synfig-core/tags/stable/src/synfig/real.h create mode 100644 synfig-core/tags/stable/src/synfig/rect.cpp create mode 100644 synfig-core/tags/stable/src/synfig/rect.h create mode 100644 synfig-core/tags/stable/src/synfig/renddesc.cpp create mode 100644 synfig-core/tags/stable/src/synfig/renddesc.h create mode 100644 synfig-core/tags/stable/src/synfig/render.cpp create mode 100644 synfig-core/tags/stable/src/synfig/render.h create mode 100644 synfig-core/tags/stable/src/synfig/savecanvas.cpp create mode 100644 synfig-core/tags/stable/src/synfig/savecanvas.h create mode 100644 synfig-core/tags/stable/src/synfig/segment.h create mode 100644 synfig-core/tags/stable/src/synfig/smartfile.h create mode 100644 synfig-core/tags/stable/src/synfig/string.h create mode 100644 synfig-core/tags/stable/src/synfig/string_decl.h create mode 100644 synfig-core/tags/stable/src/synfig/surface.cpp create mode 100644 synfig-core/tags/stable/src/synfig/surface.h create mode 100644 synfig-core/tags/stable/src/synfig/surfacenew.cpp create mode 100644 synfig-core/tags/stable/src/synfig/surfacenew.h create mode 100644 synfig-core/tags/stable/src/synfig/synfig.h create mode 100644 synfig-core/tags/stable/src/synfig/synfig.nsh create mode 100644 synfig-core/tags/stable/src/synfig/target.cpp create mode 100644 synfig-core/tags/stable/src/synfig/target.h create mode 100644 synfig-core/tags/stable/src/synfig/target_multi.cpp create mode 100644 synfig-core/tags/stable/src/synfig/target_multi.h create mode 100644 synfig-core/tags/stable/src/synfig/target_null.cpp create mode 100644 synfig-core/tags/stable/src/synfig/target_null.h create mode 100644 synfig-core/tags/stable/src/synfig/target_null_tile.cpp create mode 100644 synfig-core/tags/stable/src/synfig/target_null_tile.h create mode 100644 synfig-core/tags/stable/src/synfig/target_scanline.cpp create mode 100644 synfig-core/tags/stable/src/synfig/target_scanline.h create mode 100644 synfig-core/tags/stable/src/synfig/target_tile.cpp create mode 100644 synfig-core/tags/stable/src/synfig/target_tile.h create mode 100644 synfig-core/tags/stable/src/synfig/time.cpp create mode 100644 synfig-core/tags/stable/src/synfig/time.h create mode 100644 synfig-core/tags/stable/src/synfig/timepointcollect.cpp create mode 100644 synfig-core/tags/stable/src/synfig/timepointcollect.h create mode 100644 synfig-core/tags/stable/src/synfig/transform.cpp create mode 100644 synfig-core/tags/stable/src/synfig/transform.h create mode 100644 synfig-core/tags/stable/src/synfig/types.h create mode 100644 synfig-core/tags/stable/src/synfig/uniqueid.cpp create mode 100644 synfig-core/tags/stable/src/synfig/uniqueid.h create mode 100644 synfig-core/tags/stable/src/synfig/value.cpp create mode 100644 synfig-core/tags/stable/src/synfig/value.h create mode 100644 synfig-core/tags/stable/src/synfig/valuenode.cpp create mode 100644 synfig-core/tags/stable/src/synfig/valuenode.h create mode 100644 synfig-core/tags/stable/src/synfig/valuenode_animated.cpp create mode 100644 synfig-core/tags/stable/src/synfig/valuenode_animated.h create mode 100644 synfig-core/tags/stable/src/synfig/valuenode_bline.cpp create mode 100644 synfig-core/tags/stable/src/synfig/valuenode_bline.h create mode 100644 synfig-core/tags/stable/src/synfig/valuenode_composite.cpp create mode 100644 synfig-core/tags/stable/src/synfig/valuenode_composite.h create mode 100644 synfig-core/tags/stable/src/synfig/valuenode_const.cpp create mode 100644 synfig-core/tags/stable/src/synfig/valuenode_const.h create mode 100644 synfig-core/tags/stable/src/synfig/valuenode_dynamiclist.cpp create mode 100644 synfig-core/tags/stable/src/synfig/valuenode_dynamiclist.h create mode 100644 synfig-core/tags/stable/src/synfig/valuenode_gradientrotate.cpp create mode 100644 synfig-core/tags/stable/src/synfig/valuenode_gradientrotate.h create mode 100644 synfig-core/tags/stable/src/synfig/valuenode_linear.cpp create mode 100644 synfig-core/tags/stable/src/synfig/valuenode_linear.h create mode 100644 synfig-core/tags/stable/src/synfig/valuenode_radialcomposite.cpp create mode 100644 synfig-core/tags/stable/src/synfig/valuenode_radialcomposite.h create mode 100644 synfig-core/tags/stable/src/synfig/valuenode_reference.cpp create mode 100644 synfig-core/tags/stable/src/synfig/valuenode_reference.h create mode 100644 synfig-core/tags/stable/src/synfig/valuenode_scale.cpp create mode 100644 synfig-core/tags/stable/src/synfig/valuenode_scale.h create mode 100644 synfig-core/tags/stable/src/synfig/valuenode_segcalctangent.cpp create mode 100644 synfig-core/tags/stable/src/synfig/valuenode_segcalctangent.h create mode 100644 synfig-core/tags/stable/src/synfig/valuenode_segcalcvertex.cpp create mode 100644 synfig-core/tags/stable/src/synfig/valuenode_segcalcvertex.h create mode 100644 synfig-core/tags/stable/src/synfig/valuenode_sine.cpp create mode 100644 synfig-core/tags/stable/src/synfig/valuenode_sine.h create mode 100644 synfig-core/tags/stable/src/synfig/valuenode_stripes.cpp create mode 100644 synfig-core/tags/stable/src/synfig/valuenode_stripes.h create mode 100644 synfig-core/tags/stable/src/synfig/valuenode_subtract.cpp create mode 100644 synfig-core/tags/stable/src/synfig/valuenode_subtract.h create mode 100644 synfig-core/tags/stable/src/synfig/valuenode_timedswap.cpp create mode 100644 synfig-core/tags/stable/src/synfig/valuenode_timedswap.h create mode 100644 synfig-core/tags/stable/src/synfig/valuenode_twotone.cpp create mode 100644 synfig-core/tags/stable/src/synfig/valuenode_twotone.h create mode 100644 synfig-core/tags/stable/src/synfig/vector.h create mode 100644 synfig-core/tags/stable/src/synfig/version.h create mode 100644 synfig-core/tags/stable/src/synfig/waypoint.cpp create mode 100644 synfig-core/tags/stable/src/synfig/waypoint.h create mode 100644 synfig-core/tags/stable/src/template.cpp create mode 100644 synfig-core/tags/stable/src/template.h create mode 100644 synfig-core/tags/stable/src/tool/Makefile.am create mode 100644 synfig-core/tags/stable/src/tool/main.cpp create mode 100644 synfig-core/tags/stable/src/tool/tool.nsh create mode 100644 synfig-core/tags/stable/synfig-config.in create mode 100644 synfig-core/tags/stable/synfig-core.xcodeproj/config.h create mode 100644 synfig-core/tags/stable/synfig-core.xcodeproj/darco.mode1 create mode 100644 synfig-core/tags/stable/synfig-core.xcodeproj/darco.pbxuser create mode 100644 synfig-core/tags/stable/synfig-core.xcodeproj/project.pbxproj create mode 100644 synfig-core/tags/stable/synfig.kdevprj create mode 100644 synfig-core/tags/stable/synfig.prj create mode 100755 synfig-core/tags/stable/win32build.sh create mode 100644 synfig-core/tags/stable/win32inst.nsi.in diff --git a/synfig-core/tags/stable/AUTHORS b/synfig-core/tags/stable/AUTHORS new file mode 100644 index 0000000..55c008d --- /dev/null +++ b/synfig-core/tags/stable/AUTHORS @@ -0,0 +1,14 @@ +Developers: + +Robert B. Quattlebaum Jr (darco) +Adrian Bentley + +Contributors: + +Paul Wise (pabs) +Dmitriy Pomerantsev (Atrus) +Daniel Fort +Luka Pravica +Andreas Jochens +Chris Moore (dooglus) +Martin Michlmayr diff --git a/synfig-core/tags/stable/ChangeLog.old b/synfig-core/tags/stable/ChangeLog.old new file mode 100644 index 0000000..01dbac5 --- /dev/null +++ b/synfig-core/tags/stable/ChangeLog.old @@ -0,0 +1,136 @@ +2005-11-28 Robert Quattlebaum + * src/modules/lyr_std/sphere_distort.cpp/h: Clarified namespace issues +2005-11-08 Robert Quattlebaum + * src/modules/lyr_std/stretch.cpp/h: Clarified namespace issues +2005-11-03 Robert Quattlebaum + * src/synfig/savecanvas.cpp: added #include + * src/synfig/value.cpp: Various GCC 4.0 fixes + * src/modules/mod_bmp/trgt_bmp.cpp: The BMP target was broken. It's now fixed. + * examples: Removed SFAutomaton font due to licensing issues. + * All: Updated copyright notice to reflect new license + +2004-04-07 (darco): Foldy... Powers? +2004-03-30 (darco): Fix for weird keyframe problem +2004-03-24 (darco): Speed improvements for both the pastecanvas layer and the checkerboard layer +2004-03-15 (darco): "Noise" layer split into two different layers: NoiseGradient, and NoiseDistort, which can be found in the Gradients and Distortions categories respectively. +2004-03-05 (darco): New stuff tangents should interpolate using polar coordinates. Awesome. +2004-03-05 (darco): Added "Bevel" Layer +2004-03-05 (darco): Added "Shade" Layer +2004-03-04 (darco): Fixed problem with tangents not animating correctly +2004-02-25 (darco): Added the "time_offset" parameter to the Paste Canvas layer +2004-02-20 (darco): Significantly improved the BLine (which will be later called "outline") layer +2004-02-16 (darco): Added some under-the-hood-updates +2004-02-16 (darco): Improved renddesc editing slightly +2004-02-16 (darco): fixed the hit checks for the gradient layers. You can now more easily click on layers under them +2004-02-11 (darco): fixed a memory leak in the freetype layer +2004-02-11 (darco): fixed the onto blend method +2004-02-10 (adruab): Added shape specific blurs +2004-01-23 (darco) : Fixed minor loop problem +2004-01-23 (darco) : Added "Cosine" falloff to circle. (should be better than sigmond) +2004-01-21 (darco) : Support for paletted PNG files added +2004-01-15 (darco) : BLine Layer: Added "width" parameter, removed "width_list" parameter +2004-01-13 (darco) : Font layer largely re-written--now supports multiple lines. Also much more consistent. +2004-01-09 (darco) : fixed all the loose ends with the rectangle layer +2004-01-09 (darco) : Added expand parameter to rectangle layer +2004-01-09 (darco) : Adjusted the rectangle layer -- you can now invert it +2004-01-09 (darco) : You can now duplicate inline canvases +2004-01-05 (darco) : Both ends of a BLine can now have round edges (which are now on by default) +2004-01-05 (darco) : Increased threshold for cusp cut-off of tangents are too sharp +2003-12-29 (darco) : Added support for sharp cusp points (on by default now) +2003-12-24 (darco) : Adjusted Copyright Notice +2003-12-24 (darco) : Improved the horizontal placement consistancy of the Text layer. +2003-12-24 (darco) : Fix for obscure bug in scale valuenode that would cause a failure to load a saved file +2003-11-25 (darco) : Improved the Text layer again. *sigh* +2003-11-20 (darco) : Improved the consistancy of the Text layer again. :P +2003-11-18 (darco) : Improved the consistancy of the Text layer. You should be able to use it without worrying about the layout going weird anymore. +2003-11-12 (darco) : Added "--dpi", "--dpi-x", and "--dpi-y" arguments to the SINFG command line tool. these allow you to change the DPI of what you are rendering. +2003-11-10 (darco) : Fixed odd animation behavior +2003-11-10 (darco) : Fixed a bug in the PasteCanvas layer where mouse clicks wouldn't match up if the "origin" was changed from 0,0. +2003-11-04 (darco) : Inserting points into a polygon is now smarter -- puts the new point between the original two +2003-10-28 (darco) : Added support for physical dimension information in file format (xres/yres) +2003-10-20 (adruab) : Added support for video encoding through use of FFMPEG (avi,mpg,asf,rm,wmv) +2003-10-07 (darco) : Changed dynamic list/bline pad the index with zeros (001, 002, etc.) +2003-10-06 (darco) : Added Red-Blue color-corection adjustment to gamma +2003-10-06 (darco) : Added "displacement" mode for noise +2003-10-06 (darco) : The "scale" valuenode will now NOT scale the alpha channel of a color. (Otherwise, it's kinda useless) +2003-10-05 (darco) : The noise layer is now... Animated! +2003-10-05 (darco) : Added new layer... Noise! +2003-10-04 (darco) : You should now be able to create polygons layers without crashing. (Regions and BLines are another story though...) +2003-10-03 (darco) : Implemented layer descriptions +2003-09-30 (darco) : Fixed bug where BLine would "warp" when introducing new vertices. +2003-09-30 (darco) : Editing stuff while the work area refreshes in SINFG Studio should now be smoother +2003-09-24 (darco) : Adjusted the hit check in PasteCanvas layer to support inline canvases +2003-09-23 (darco) : ConicalGradient had incorrect angle, it was 90 degrees off. Fixed. +2003-09-17 (darco) : Fixed bewildering "wobble" animation bug +2003-09-02 (darco) : Added antialiasing to the gradient layers +2003-09-01 (darco) : Added Twirl Layer +2003-09-01 (darco) : Added Star Layer +2003-08-31 (darco) : Negative values are now clamped to the black point rather than having some kind of visualization. +2003-08-13 (darco) : Fixed some gamma issues on the PNG and ImageMagick image importers +2003-08-13 (darco) : Again, Improved support for clickable layers +2003-08-12 (darco) : Improved support for clickable layers +2003-08-06 (darco) : Added accelerated renderer for all gradient layers, they are now much faster. (Needs adaptive supersampling though...) +2003-07-31 (darco) : Added support for black level adjustment in gamma correction +2003-07-30 (darco) : Added support for gamma correction +2003-07-30 (darco) : Adjusted the mandelbrot layer to support gradients +2003-07-29 (darco) : Improved blend methods: Brighten, Darken +2003-07-29 (darco) : Added new blend methods: Screen, Overlay, and Difference +2003-07-24 (darco) : Added gradients!!! +2003-07-16 (darco) : Tiled Renderer now implemented +2003-07-14 (darco) : TCB controls now implemented +2003-05-05 (darco) : Dynamic List entries can now have multiple start times and end times +2003-05-05 (darco) : Phasing out Timed Stamp Value Node, because the animated value node is now capable. +2003-05-05 (darco) : The Animated Value Node can now use exported values in waypoints. +2003-04-23 (darco) : Added "stretch" layer. (Allows distortions to things like circles) +2003-04-18 (darco) : Added "exposure" parameter to color correct layer +2003-04-17 (darco) : Added native suport for JPEG files +2003-04-15 (darco) : The parametric renderer is now multi-threaded, meaning it can take advantage of multiple processors. Doesn't work in Win32. +2003-04-14 (darco) : Added "ColorCorrect" layer +2003-04-14 (darco) : Added "bailout" parameter to Mandelbrot and Julia layers. Use larger values to improve smoothing. +2003-04-14 (darco) : Improved clamp layer +2003-04-14 (darco) : Fix a bug with the "Color" blend method +2003-04-11 (darco) : Added "XORPattern" layer +2003-04-11 (darco) : Added "clamp" layer for clamping colors +2003-04-10 (darco) : Fixed a bug with the "smooth outside" parameter of the Julia and Mandelbrot layers +2003-04-10 (darco) : Major under-the-hood changes +2003-04-07 (darco) : Implemented support for inline (nested) canvases in parameters +2003-04-07 (darco) : Removed "time blur" option from "blur" layer +2003-04-07 (darco) : Created "motion blur" layer +2003-04-04 (darco) : Added layer "julia" +2003-04-04 (darco) : Added layer "inside out" +2003-04-03 (darco) : Fixed some minor issues with the polygon layer +2003-04-03 (darco) : Improvements to the way that time is handed +2003-04-02 (darco) : Added "offset" parameter to polygon layer + +2003-04-01 (darco) : Added a new value type, "Time" +2003-04-01 (darco) : Fixed a bug where values were not getting clamped +2003-03-31 (darco) : Tons of under-the-hood changes +2003-03-27 (darco) : Added "-c" argument to sinfg tool. +2003-03-26 (darco) : Added "antialias" attribute to in SIF file format. +2003-03-26 (darco) : Fixed bug #0000010 ("DataNode_Subtract always reverts 'scalar' to constant after save/load") +2003-03-25 (darco) : Added support for linking to DataNodes/Canvases in other Compositions. +2003-03-24 (darco) : Added support for linking to DataNodes in different Canvases. + +2003-03-23 (darco) : Fixed a small bug in circle layer that caused inconsistant results when the feather was set to zero and the parametric renderer used. +2003-03-23 (darco) : Added "zoom" parameter to PasteCanvas layer + +2003-03-22 (darco) : Fixed color-order bug in ImageMagick importer +2003-03-22 (darco) : Fixed a layer-cloning bug (For example, attempting to clone the Import layer would crash SINFG Studio) + +2003-03-20 (darco) : Fixed bug where numbers would be appended to filename when using bitmap target +2003-03-20 (darco) : PPM Module wasn't being loaded. Fixed. +2003-03-20 (darco) : Version Increment + +2003-03-19 (darco) : Added BMP importer +2003-03-19 (darco) : Added PNG importer + +2003-03-19 (darco) : Added "--importers" option to sinfg tool, for listing loaded importers + +2003-03-17 (darco) : Slight optimization to Region layer +2003-03-17 (darco) : Slight optimization to BLine layer + +2003-03-04 (darco) : Improved some layers to improve responsiveness during rendering. +2003-03-04 (darco) : Added rotate layer. +2003-03-04 (darco) : Fully implemented the "angle" type in loading and saving. + +2003-03-01 (darco) : Changed the default zoom amount from 1.0 to 0.0 diff --git a/synfig-core/tags/stable/Makefile.am b/synfig-core/tags/stable/Makefile.am new file mode 100644 index 0000000..6531ab1 --- /dev/null +++ b/synfig-core/tags/stable/Makefile.am @@ -0,0 +1,134 @@ +# $Id$ + +MAINTAINERCLEANFILES=COPYING INSTALL @PACKAGE_TARNAME@.pc.in @PACKAGE_TARNAME@.tar.gz doxygen.cfg config/config.guess config/config.sub config/ltmain.sh config/ltmain.sh.orig config/ltmain.sh.rej config/install-sh config/mkinstalldirs config/aclocal.m4 config/missing config/texinfo.tex config/depcomp aclocal.m4 config.h.in configure stamp-h.in Makefile.in config.log config.status .doc_stamp .DS_Store @PACKAGE_TARNAME@.spec include/etl_profile.h.in libltdl/COPYING.LIB libltdl/Makefile.in libltdl/acinclude.m4 libltdl/config-h.in libltdl/configure.in libltdl/ltdl.h libltdl/Makefile.am libltdl/README libltdl/aclocal.m4 libltdl/configure libltdl/ltdl.c libltdl/stamp-h.in + + +SUBDIRS=libltdl src examples + +# Install the pkg-config file: +pkgconfigdir = $(libdir)/pkgconfig +pkgconfig_DATA = @PACKAGE_TARNAME@.pc + +bin_SCRIPTS=synfig-config + +EXTRA_DIST=ChangeLog.old TODO config/subs.m4 bootstrap config/package doc/hw-gfx-mapping.txt win32build.sh macosxbuild.sh win32inst.nsi.in COPYING config/depcomp config/synfig.m4 config/cxx_macros.m4 @PACKAGE_TARNAME@.spec config/project.spec.in config/build.cfg synfig.kdevprj synfig-config.in config/ETL.m4 config/doxygen.cfg.in doxygen.cfg config/pkgconfig.pc.in config/pkgconfig.m4 config/libxml++.m4 @PACKAGE_TARNAME@.pc.in pkg-info/macosx/core-resources/ReadMe.txt pkg-info/macosx/core-resources/Welcome.txt pkg-info/macosx/core-resources/install.sh + +CVS=cvs +GREP=grep +PRINTF=printf +SH=sh +DOXYGEN=doxygen + +SVN=svn +TAG=@PACKAGE_TARNAME@_@VERSION_MAJ@_@VERSION_MIN@_@VERSION_REV@ + + +tagstable: + -$(SVN) delete $(SVN_REPOSITORY)/tags/stable -m "Stable Tag: Removing old tag" + $(SVN) copy $(top_srcdir) $(SVN_REPOSITORY)/tags/stable -m "Stable Tag: Copying everything over" + +tagrelease: + $(SVN) copy $(top_srcdir) $(SVN_REPOSITORY)/tags/$(TAG) -m "Release $(TAG)" + +stats: + -@echo + -@echo -- Stats + -@echo + -@$(PRINTF) "Total lines: " + -@wc -l $(shell find $(top_srcdir)/src -name '*.[ch]*') | $(GREP) total + -@$(PRINTF) "Total size: " + -@du -hcs $(shell find $(top_srcdir)/src -name '*.[ch]*') | $(GREP) total + -@echo + +ChangeLog: + -svn update + svn2cl --include-rev || touch ChangeLog + +#tagstable: +# $(CVS) tag -F stable + +#tagrelease: +# $(CVS) tag -F @PACKAGE_TARNAME@_@VERSION_MAJ@_@VERSION_MIN@_@VERSION_REV@ + + +listfixmes: + -@echo + -@echo -- List of pending FIXMEs + -@echo + -@$(GREP) -e FIXME -e "\\fixme" -n $(shell find $(top_srcdir) -name '*.[ch]*') + -@echo + +listhacks: + -@echo + -@echo -- List of pending HACKs + -@echo + -@$(GREP) -e HACK -e "\\hack" -n $(shell find $(top_srcdir) -name '*.[ch]*') + -@echo + +listtodos: + -@echo + -@echo -- List of pending TODOs + -@echo + -@$(GREP) -e TODO -e "\\todo" -n $(shell find $(top_srcdir) -name '*.[ch]*') + -@echo + +listoptimizes: + -@echo + -@echo -- List of pending optimizations + -@echo + -@$(GREP) -e OPTIMIZE -e "\\optimize" -n $(shell find $(top_srcdir) -name '*.[ch]*') + -@echo + +listwritemes: + -@echo + -@echo -- List of pending WRITEMEs + -@echo + -@$(GREP) -e WRITEME -e "\\writeme" -n $(shell find $(top_srcdir) -name '*.[ch]*') + -@echo + +install-bin: + make -C src/synfig install-libLTLIBRARIES + +win32inst.nsi: $(srcdir)/win32inst.nsi.in + ./config.status win32inst.nsi + +pkg-info/macosx/synfig-core.info: $(srcdir)/pkg-info/macosx/synfig-core.info.in + ./config.status pkg-info/macosx/synfig-core.info + +RMDIR=rm -fr + +if WIN32_PKG +package: all win32inst.nsi + cp -fu `which libHalf-4.dll` src/modules/mod_openexr/.libs/ + cp -fu `which libIlmImf-4.dll` src/modules/mod_openexr/.libs/ + cp -fu `which libIlmThread-4.dll` src/modules/mod_openexr/.libs/ + cp -fu `which libIex-4.dll` src/modules/mod_openexr/.libs/ + makensis win32inst.nsi +else +if MACOSX_PKG +package: all pkg-info/macosx/synfig-core.info + [ -d pkg_root ] && $(RMDIR) pkg_root || true + make install-strip prefix="`pwd`/pkg_root" + $(srcdir)/config/package pkg_root pkg-info/macosx/synfig-core.info -r $(srcdir)/pkg-info/macosx/core-resources +endif +endif + +run: check + +$(srcdir)/configure: $(srcdir)/configure.in $(ACLOCAL_M4) $(CONFIGURE_DEPENDENCIES) + $(srcdir)/bootstrap + +.doc_stamp: doxygen.cfg + $(DOXYGEN) doxygen.cfg + touch .doc_stamp + +benchmark: + synfig -b -t null -q --time 0 $(srcdir)/examples/*.sif + +html: .doc_stamp + +rtf: .doc_stamp + +docs: html + +.PHONY: stats tagstable tagrelease listfixmes listhacks check docs pdf html rtf diff --git a/synfig-core/tags/stable/NEWS b/synfig-core/tags/stable/NEWS new file mode 100644 index 0000000..2fac835 --- /dev/null +++ b/synfig-core/tags/stable/NEWS @@ -0,0 +1,56 @@ + synfig releases + + 0.61.06 (SVN 536) - June 20, 2007 - Bug fixes + + * Add fontconfig support + * Fix amd64 issue + * Fix ffmpeg, gif, libav targets + * Include more target modules in the Win32 package + * Fix some crashes in synfigstudio + * Fix some render artifacts + * Fix some doxygen warnings + * Some MacOS fixes + * Misc bug fixes + * Fix random number generation for 64 bit CPUs (#1698604) + * Add parameter 'fast' to curve gradients allowing choice between fast or accurate rendering (#1672033) + * Add new odd/even winding style for regions + + 0.61.05 (SVN 126) - February 27, 2005 - Misc fixes + + * Use system libltdl when available (#1423944) + * Update doxygen config file (#1402909) + * Fix fontconfig/xft FTBFS + * Misc fix (#1414370) + + 0.61.04 (SVN 102) - January 10, 2005 - Misc fixes + + * Check for imagemagick at build time + * Clarify mod_openexr copyright + * Fix mod_openexr building + * Don't add 'Copyright Voria' to PNG output + * Don't write localised numbers when generating SIF files + + 0.61.03 - December 8, 2005 - Copyright update + + * Update more old copyright and licence notices + * Remove broken walk example + * Misc code fixes + + 0.61.02 - November 26, 2005 - Misc fixes + + * Small cygwin/optimization/code fixes + + 0.61.01 - November 3, 2005 - Copyright update + + * Update old copyright and licence notices + * Fix some GCC 4.0 build issues + * Include errno.h where needed + * Add ./configure options for debug, warnings, optimisation, profiling + * Add about_dialog.sif as another example + * Remove SFAutomaton.ttf due to licence issues + * Fix BMP rendering target + + 0.61.00-39 - November 1, 2005 - Developer preview + + * First public release! + diff --git a/synfig-core/tags/stable/README b/synfig-core/tags/stable/README new file mode 100644 index 0000000..b3b0be9 --- /dev/null +++ b/synfig-core/tags/stable/README @@ -0,0 +1,49 @@ + synfig -- vector animation renderer + +synfig is a vector based 2D animation package. It is designed to be +capable of producing feature-film quality animation. It eliminates the +need for tweening, preventing the need to hand-draw each frame. synfig +features spatial and temporal resolution independence (sharp and smooth +at any resolution or framerate), high dynamic range images, and a +flexible plugin system. + +This package contains the renderer used to convert synfig .sif files to +raster images, videos and other formats. Layer types include geometric, +gradient, filter, distortion, transformation, fractal and others. Output +targets include JPEG, PNG, GIF, BMP, PPM, DV, OpenEXR, ffmpeg (MPEG1), +libavcodec (AVI), imagemagick (MIFF), yuv420p and others. + +Links + +Web: http://www.synfig.com/ +Wiki: http://wiki.synfig.com/ +SVN: http://svn.voria.com/code/synfig/ +Proj: http://sf.net/projects/synfig/ +IRC: irc://irc.freenode.net/synfig + +Please use the IRC channel and the sf.net tracker to get support and +report bugs, request features and submit patches. + +Copyright + +Copyright 2002 Robert B. Quattlebaum Jr. +Copyright 2002 Adrian Bentley +Copyright 2006 Paul Wise +Copyright 2007 Chris Moore + +Licence + +This package is free software; you can redistribute it and/or +modify it under the terms of the GNU General Public License as +published by the Free Software Foundation; either version 2 of +the License, or (at your option) any later version. + +This package is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program; if not, write to the Free Software +Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA +or visit http://www.gnu.org/licenses/gpl.html diff --git a/synfig-core/tags/stable/TODO b/synfig-core/tags/stable/TODO new file mode 100644 index 0000000..c6e9fb9 --- /dev/null +++ b/synfig-core/tags/stable/TODO @@ -0,0 +1,38 @@ + +## General ## + +* Re-write font system. (The "simple text" layer is a dirty,dirty hack) +* Use pre-multiplied alpha to speed up compositing +* Solidify plug in system to be more robust (Auto-detect and load?) +* Solidify and codify XML file format into XML schema +* Make layer and value-node parameters handled in the same way. (currently different) +* Move to a garbage-collected system rather than reference counted +* Integrate a scripting language (Possibly better suited for libsynfigapp?) +* Finish and migrate to a new surface layer class + - Arbitrary color/alpha channels + - Surface locking/unlocking + - Copy-on-write +* Make the "Value" class extendable by plug-ins +* Add parameter mechanism to render target class to allow user to control things like: + - Color depth + - Codec + - etc. +* Review/rewrite error-handling and reporting mechanism +* Migrate public API to be more language agnostic in nature +* Network-distributed rendering +* Solid multi-threaded rendering +* mod_png: 16-bit pixel support + + +## Wanted Plug-Ins ## + +* mod_svg: SVG Import/Export +* mod_quicktime: Support for importing/rendering-to quicktime movies (MacOS X and Windows Only) +* mod_imageio: Support for Apple's ImageIO framework (MacOS X Only) +* mod_tiff: Using libtiff +* mod_wmv: Support for Windows Media for importing/rendering-to wmv/avi movies (Windows only) + +## User-requested features ## + +http://wiki.synfig.com/Wish_list +http://sf.net/tracker/?group_id=144022&atid=757419 diff --git a/synfig-core/tags/stable/bootstrap b/synfig-core/tags/stable/bootstrap new file mode 100755 index 0000000..8f3ad99 --- /dev/null +++ b/synfig-core/tags/stable/bootstrap @@ -0,0 +1,319 @@ +#! /bin/sh +# +# Synfig Bootstrap Script +# $Id$ +# +# This script creates the configure script and Makefile.in files, +# and also fixes a few things in both to ensure a smooth build +# on all compilers and platforms. +# + +# Grab the current directory and move to our own +CURR_DIR="$(pwd)" +cd "$(dirname $0)" + +# Environment Variables +BOOTSTRAP_NAME="$(basename $0)" +CONFIG_DIR="config" + +[ -x /bin/cygpath ] && CONFIG_DIR="`cygpath -m -s "$CONFIG_DIR"`" +[ -x /bin/cygpath ] && CONFIG_DIR="`cygpath -u "$CONFIG_DIR"`" +[ -x /bin/cygpath ] && CURR_DIR="`cygpath -m -s "$CURR_DIR"`" +[ -x /bin/cygpath ] && CURR_DIR="`cygpath -u "$CURR_DIR"`" +# Automake,Autoconf, and Libtool versions that we require +#AUTOCONF_VERSION=2.5 +#AUTOMAKE_VERSION=1.6 +#LIBTOOL_VERSION=1.4 +export WANT_AUTOMAKE=1.8 +#export WANT_LIBTOOL_VER=1.5 +export WANT_AUTOCONF_2_5=1 +export WANT_AUTOCONF=2.5 + +. "$CONFIG_DIR/build.cfg" + +SED_SCRIPT=" +s/@PACKAGE@/$PACKAGE/g; +s/@PACKAGE_NAME@/$PACKAGE_NAME/g; +s/@PACKAGE_BUGREPORT@/$PACKAGE_BUGREPORT/g; +s/@PACKAGE_TARNAME@/$PACKAGE_TARNAME/g; +s/@PACKAGE_VERSION@/$PACKAGE_VERSION/g; +s|@SVN_REPOSITORY@|$SVN_REPOSITORY|g; +s/@VERSION@/$VERSION/g; +s/@API_VERSION@/$API_VERSION/g; +s/@VERSION_MAJ@/$VERSION_MAJ/g; +s/@VERSION_MIN@/$VERSION_MIN/g; +s/@VERSION_REV@/$VERSION_REV/g; +s/@VERSION_REL@/$VERSION_REL/g; +s/@CFLAGS@//g; +" + +# Define the output function +output () { + echo $BOOTSTRAP_NAME: $* +} + +# Define the cleanup function +cleanup () { + output Cleaning up... + rm -fr config.cache autom4te*.cache configure.in $TEMPFILE +} + +output Preparing build environment for $PACKAGE-$VERSION... + +# Look for the CVS directory. If we don't find it, we need to +# ask the user if they know what they are doing. +( test -d CVS || test -d .svn ) || +{ + output warning: This shell script is intended for those + output warning: who either know what they are doing or + output warning: or downloaded this program from the CVS + output warning: repository. See README for more details. + output warning: To avoid seeing this message in the future, + output warning: create an empty directory called 'CVS'. + output Waiting for 15 seconds... + sleep 15 +} + +# Create the temporary file +output Creating temporary file... +TEMPFILE=`mktemp /tmp/$BOOTSTRAP_NAME.XXXXXX` || +{ + output ERROR: Unable to create temporary file! + exit 1 +} + +# Check for autoconf +(which autoconf > /dev/null 2>&1 ) || +{ + output error: 'Could not find GNU autoconf!' + output You need to download and install GNU autoconf v2.52 or higher. + output '' + cleanup; + exit 1 +} + +# Check autoconf version +output Using $(autoconf --version | grep utoconf) +autoconf --version | grep -q "$AUTOCONF_VERSION" || +{ + output warning: Unexpected version of GNU Autoconf "(expected $AUTOCONF_VERSION)" + output warning: *** Bootstrap process may fail! +} + +# Check for automake +(which automake > /dev/null 2>&1 ) || +{ + output error: 'Could not find GNU automake!' + output You need to download and install GNU automake v1.5 or higher. + output '' + cleanup; + exit 1 +} + +# Check automake version +output Using $(automake --version | grep utomake) +automake --version | grep -q "$AUTOMAKE_VERSION" || +{ + output warning: Unexpected version of GNU Automake "(expected $AUTOMAKE_VERSION)" + output warning: *** Bootstrap process may fail! +} + +# Check for libtool +(which libtool > /dev/null 2>&1 ) || +{ + output error: 'Could not find GNU libtool!' + output You need to download and install GNU libtool v1.4 or higher. + output '' + exit 1 +} + +# Check libtool version +echo $BOOTSTRAP_NAME: Using $(libtoolize --version | grep ibtool) +libtoolize --version | grep -q "$LIBTOOL_VERSION" || +{ + output warning: Unexpected version of GNU Libtool "(expected $LIBTOOL_VERSION)" + output warning: *** Bootstrap process may fail! +} + +# Versions of libtool prior to 1.4.2 have a seriously broken libltdl. +# If we are using this broken version, we need to patch it. +libtoolize --version | grep -q -e "1.4.2" -e "1.4.1" -e "1.4 " && PATCH_LTDL=1 + +RECONFIG_LTDL=1 + +for FILENAME in doxygen.cfg pkgconfig.pc project.spec ; do { +output Creating $FILENAME... +sed "$SED_SCRIPT" < "$CONFIG_DIR/$FILENAME.in" > $FILENAME; +} ; done + +output Renaming pkgconfig.pc to $PACKAGE_TARNAME.pc.in... +mv pkgconfig.pc "$PACKAGE_TARNAME.pc.in" + +output Renaming project.spec to $PACKAGE.spec... +mv project.spec "$PACKAGE.spec" + +output Finishing up $PACKAGE.spec... +echo %changelog >> "$PACKAGE.spec" +cat NEWS >> "$PACKAGE.spec" + +output Creating configure.in from configure.ac... +sed "$SED_SCRIPT" < "$CONFIG_DIR/configure.ac" > configure.in; + +output Generating ChangeLog from SVN +if test x != "x$VERSION_REL" ; then export REVISION="--revision $VERSION_REL" ; fi +test -f ChangeLog || svn2cl --include-rev $REVISION $SVN_REPOSITORY/trunk/ || touch ChangeLog + +output Setting up build environment... + +# Set the shell to output what we are doing +set -x + +# Create all of the build environment files +( + libtoolize -c -f --ltdl && + aclocal -I "$CONFIG_DIR" $ACLOCAL_FLAGS && + autoheader && + autoconf -o configure && + automake --force-missing --add-missing --include-deps && + true +) || +{ + # Something went wrong... + set +x + output Failure. + cleanup; + exit 1 +} + +# Turn off echoing of commands +set +x + +# Reconfigure the LTDL, if necessary +[ $RECONFIG_LTDL"x" != "x" ] && ( + output Reconfiguring LTDL... + set -x + ( + cd libltdl && + ( echo "AC_CONFIG_AUX_DIR(../config)" >> configure.* ) && + aclocal -I "../$CONFIG_DIR" && + autoheader && + autoconf && + automake --force-missing --add-missing --include-deps + ) || + { + # Something went wrong... + set +x + output Failure. + cleanup; + exit 1 + } + set +x +) + +# If this is the broken version of LTDL, then patch it +[ $PATCH_LTDL"x" != "x" ] && ( + output Patching LTDL... + sed " + s/handle || /(handle \&\& handle->loader) || /; + s/errors > 0) \&\& file_not_found ())/errors > 0) \&\& !file_not_found ())/; + s/(!handle)/(!handle || !handle->loader)/; + s/ access (filename, R_OK)/ !access (filename, R_OK)/; + " < libltdl/ltdl.c > $TEMPFILE && cp $TEMPFILE libltdl/ltdl.c + sed " + s/DLL_EXPORT/LTDL_DLL_EXPORT/; + " < libltdl/ltdl.h > $TEMPFILE && cp $TEMPFILE libltdl/ltdl.h +) + +( +output Patching libtool... +patch config/ltmain.sh config/ltmain.patch +) || true +false && { + # Something went wrong... + set +x + output Failure. + cleanup; + exit 1 +} + +#echo '#define LTDL_SHLIB_EXT ".so"' >> libltdl/config-h.in +#echo ' +#ifdef WIN32 +#define LTDL_SHLIB_EXT ".dll" +#else +#if __APPLE__ +#define LTDL_SHLIB_EXT ".so" +#else +#define LTDL_SHLIB_EXT ".la" +#endif +#endif ' >> libltdl/config-h.in + +# output Patching configure script to look for gcc3... +# sed " +# s/g++ c++/g++3 g++ c++/; +# s/gcc cc/gcc3 gcc cc/; +# s:"'${prefix}/include'":"'${prefix}/include/synfig'":; +# s:PREFIX/include:PREFIX/include/ETL:; +# " < configure > $TEMPFILE +# cp $TEMPFILE configure + +# Patch the Makefile.in files +for filename in $(find Makefile.in src -name Makefile.in) ; do { + echo $BOOTSTRAP_NAME: Patching $filename + ( + cp $filename $TEMPFILE && + sed " + # Remove brain-dead include path + s;-I. ;; + + # Gosh... I can't remember why I did this one... + # Everything seems to work, so I'll leave it in. + s;-I"'$(srcdir)'" ;-I"'$(top_srcdir)'" ; + + # Tell the configure script where it's origin realy is + s;configure.in;config/configure.ac; + " < $TEMPFILE > $filename + ) || + { + # Patch failure + output Failure. Unable to patch $filename. + cleanup; + exit 1 + } +}; done + +output Creating Makefile... +( echo " +all: + ./configure --enable-maintainer-mode + make all + +install: + ./configure --enable-maintainer-mode + make install + +check: + ./configure --enable-maintainer-mode + make check + +distcheck: + ./configure --enable-maintainer-mode + make check + +dist: + ./configure --enable-maintainer-mode + make dist + +docs: doxygen.cfg + doxygen doxygen.cfg + +" ) > Makefile + +output Complete. + +cleanup; + +# Move back to the current directory +cd "$CURR_DIR" + +make -C src/synfig/proto diff --git a/synfig-core/tags/stable/config/ETL.m4 b/synfig-core/tags/stable/config/ETL.m4 new file mode 100644 index 0000000..4cbd609 --- /dev/null +++ b/synfig-core/tags/stable/config/ETL.m4 @@ -0,0 +1,75 @@ +# ETL M4 Macro +# For GNU Autotools +# $Id$ +# +# By Robert B. Quattlebaum Jr. +# + +AC_DEFUN([ETL_DEPS], +[ + AC_C_BIGENDIAN + + AC_CHECK_LIB(user32, main) + AC_CHECK_LIB(kernel32, main) + AC_CHECK_LIB(pthread, main) + + AC_HEADER_STDC + + AC_CHECK_HEADERS(pthread.h) + AC_CHECK_HEADERS(sched.h) + AC_CHECK_HEADERS(sys/times.h) + AC_CHECK_HEADERS(sys/time.h) + AC_CHECK_HEADERS(unistd.h) + AC_CHECK_HEADERS(windows.h) + AC_CHECK_FUNCS([pthread_create]) + AC_CHECK_FUNCS([pthread_rwlock_init]) + AC_CHECK_FUNCS([pthread_yield]) + AC_CHECK_FUNCS([sched_yield]) + AC_CHECK_FUNCS([CreateThread]) + AC_CHECK_FUNCS([__clone]) + AC_CHECK_FUNCS([QueryPerformanceCounter]) + + AC_CHECK_FUNCS([gettimeofday]) + AC_CHECK_FUNCS([vsscanf]) + AC_CHECK_FUNCS([vsprintf]) + AC_CHECK_FUNCS([vasprintf]) + AC_CHECK_FUNCS([vsnprintf],[],[ + AC_CHECK_FUNC([_vsnprintf],[ + AC_DEFINE(vsnprintf,_vsnprintf,[define if the vsnprintf function is mangled]) + AC_DEFINE(HAVE_VSNPRINTF,1) + ]) + ]) + + $1 +]) + +AC_DEFUN([USING_ETL], +[ + AC_ARG_WITH(ETL-includes, + [ --with-ETL-includes Specify location of ETL headers],[ + CXXFLAGS="$CXXFLAGS -I$withval" + ]) + + AC_PATH_PROG(ETL_CONFIG,ETL-config,no) + + if test "$ETL_CONFIG" = "no"; then + no_ETL_config="yes" + $2 + else + AC_MSG_CHECKING([if $ETL_CONFIG works]) + if $ETL_CONFIG --libs >/dev/null 2>&1; then + ETL_VERSION="`$ETL_CONFIG --version`" + AC_MSG_RESULT([yes, $ETL_VERSION]) + CXXFLAGS="$CXXFLAGS `$ETL_CONFIG --cxxflags`" + $1 + else + AC_MSG_RESULT(no) + no_ETL_config="yes" + $2 + fi + fi + + ETL_DEPS($1,$2) +]) + + diff --git a/synfig-core/tags/stable/config/build.cfg b/synfig-core/tags/stable/config/build.cfg new file mode 100644 index 0000000..c486ce8 --- /dev/null +++ b/synfig-core/tags/stable/config/build.cfg @@ -0,0 +1,22 @@ + +PACKAGE_NAME="Synfig Core" +PACKAGE_BUGREPORT="darco@deepdarc.com" +PACKAGE_TARNAME=synfig +VERSION_MAJ="0" +VERSION_MIN="61" +VERSION_REV="06" +[ -d ".svn" ] && VERSION_REL=`svn info | grep Revision | sed "s/.* \([0123456789]*\)/\1/"` +SVN_REPOSITORY="https://svn.voria.com/code/synfig-core" + +[ -d CVS ] && VERSION_REL="CVS" + +if [ x$VERSION_REL = "x" ] ; then { + VERSION=$VERSION_MAJ.$VERSION_MIN.$VERSION_REV +} else { + VERSION=$VERSION_MAJ.$VERSION_MIN.$VERSION_REV-$VERSION_REL +} ; fi + +API_VERSION="0.0" + +PACKAGE_VERSION=$VERSION +PACKAGE=$PACKAGE_TARNAME diff --git a/synfig-core/tags/stable/config/configure.ac b/synfig-core/tags/stable/config/configure.ac new file mode 100644 index 0000000..c18bde2 --- /dev/null +++ b/synfig-core/tags/stable/config/configure.ac @@ -0,0 +1,611 @@ +# $Id$ + +# -- I N I T -------------------------------------------------- + +. $srcdir/config/build.cfg + +AC_INIT(@PACKAGE_NAME@,@PACKAGE_VERSION@,@PACKAGE_BUGREPORT@,@PACKAGE_TARNAME@) +AC_REVISION + +AC_CONFIG_AUX_DIR(config) +AM_CONFIG_HEADER(config.h) +AC_CANONICAL_HOST +dnl AC_CANONICAL_TARGET + +AM_INIT_AUTOMAKE +AM_MAINTAINER_MODE + +AC_LIBLTDL_INSTALLABLE +AC_SUBST(INCLTDL) +AC_SUBST(LIBLTDL) + +API_VERSION=@API_VERSION@ + + +AC_DEFINE(LT_SCOPE,[extern],[LibLTDL is linked staticly]) + + + + +# -- V A R I A B L E S ---------------------------------------- + +SVN_REPOSITORY=@SVN_REPOSITORY@ +AC_SUBST(SVN_REPOSITORY) + +# -- P R O G R A M S ------------------------------------------ + +AC_PROG_CC +AC_PROG_CXX +AC_PROG_CPP +AC_PROG_CXXCPP +AC_PROG_INSTALL + +AC_LANG_CPLUSPLUS + + +# -- A R G U M E N T S ---------------------------------------- + + +AC_ARG_TIMELIMIT +AC_ARG_DEBUG +AC_ARG_OPTIMIZATION +AC_ARG_WARNINGS +AC_ARG_PROFILING +AC_ARG_PROFILE_ARCS +AC_ARG_BRANCH_PROBABILITIES +dnl AC_ARG_LICENSE_KEY + +AC_ARG_ENABLE(g5opt,[ + --enable-g5opt enable optimizations specific to G5 proc],[ +# CXXFLAGS="$CXXFLAGS -fastf -fPIC" +# CFLAGS="$CFLAGS -fastf -fPIC" + CXXFLAGS="$CXXFLAGS -mtune=G5 -falign-loops=32" + CFLAGS="$CFLAGS -mtune=G5" +], +[ + true +]) + +#MINGW_FLAGS="-mno-cygwin" + +AC_WIN32_QUIRKS + +# If we are in debug mode, use the debugging version of the +# Microsoft Visual C Runtime Library +#if [[ $debug = "yes" ]] ; then { +# WIN32_DEBUG_LIBRARY="msvcr70d" +# WIN32_DEBUG_LIBRARY="msvcrtd" +# LIBTOOL_PATCH_SED="$LIBTOOL_PATCH_SED +# s/-lmsvcrt/-l$WIN32_DEBUG_LIBRARY/g; +# "; +#} ; fi + +AC_LIBTOOL_WIN32_DLL +AC_LIBTOOL_DLOPEN +AC_DISABLE_STATIC +AC_ENABLE_SHARED +AC_PROG_LIBTOOL +AC_SUBST(LIBTOOL_DEPS) +AC_LIBTOOL_PATCH + +#if [[ "$LIBTOOL_PATCH_SED""x" != "x" ]] ; then { +# printf "Patching libtool... " +# cat libtool | sed "$LIBTOOL_PATCH_SED" > libtool2 +# rm libtool +# mv libtool2 libtool +# chmod +x libtool +# AC_MSG_RESULT([patched]) +#} fi ; + + +dnl +dnl dynamic linker +dnl +AC_CHECK_LIB(c, dlopen, + DYNAMIC_LD_LIBS="", + AC_CHECK_LIB( + dl, + dlopen, + DYNAMIC_LD_LIBS="-ldl", + DYNAMIC_LD_LIBS="" + ) +) + +AC_SUBST(DYNAMIC_LD_LIBS) + +AC_ARG_ENABLE(half,[ + --enable-half Use OpenEXR's "half" type for color],[ + use_openexr_half=$enableval +], +[ + use_openexr_half="no" +]) + + + +AC_ARG_ENABLE(layer-profiling,[ + --enable-layer-profiling Enable layer profiling],[ + use_layerprofiling=$enableval +], +[ + use_layerprofiling="no" +]) +if test $use_layerprofiling = "yes" ; then { + AC_DEFINE(SYNFIG_PROFILE_LAYERS,[1],[enable layer profiling]) +} ; fi + + + + +AC_ARG_WITH(imagemagick,[ + --without-imagemagick Disable support for ImageMagick],[ +],[ + AC_CHECK_PROG([imagemagick_convert],[convert],[yes],[no]) + with_imagemagick=$imagemagick_convert +]) +if test $with_imagemagick = "no" ; then { + AM_CONDITIONAL(WITH_IMAGEMAGICK,false) +} else { + AM_CONDITIONAL(WITH_IMAGEMAGICK,true) +} ; fi + + + + + +AC_ARG_WITH(ffmpeg,[ + --without-ffmpeg Disable support for FFMPEG],[ +],[ + with_ffmpeg="yes" +]) +if test $with_ffmpeg = "no" ; then { + AM_CONDITIONAL(WITH_FFMPEG,false) +} else { + AM_CONDITIONAL(WITH_FFMPEG,true) +} ; fi + + + + +AC_ARG_WITH(vimage,[ + --with-vimage Enable support for apple vImage],[ +],[ + with_vimage="no" +]) +if test $with_vimage = "no" ; then { + AM_CONDITIONAL(WITH_VIMAGE,false) +} else { + AM_CONDITIONAL(WITH_VIMAGE,true) + AC_DEFINE(HAS_VIMAGE,[1],[enable apple vImage]) + VIMAGE_LIBS="-Wc,-framework -Wc,Accelerate" + +} ; fi + + + +AC_ARG_WITH(libdv,[ + --without-libdv Disable support for libdv],[ +],[ + with_libdv="yes" +]) +if test $with_libdv = "no" ; then { + AM_CONDITIONAL(WITH_LIBDV,false) +} else { + AM_CONDITIONAL(WITH_LIBDV,true) +} ; fi + + + + +# LIBAVCODEC CHECK-------------------- + +AC_ARG_WITH(libavcodec,[ + --without-libavcodec disable support for libavcodec (Default=auto)],[ +],[ + with_libavcodec="yes" +]) + +if test $with_libavcodec != "no" ; then { + PKG_CHECK_MODULES(LIBAVCODEC, [libavcodec libavformat],[],[echo no; with_libavcodec="no"]) +} ; fi +if test $with_libavcodec = "yes" ; then { + AC_DEFINE(WITH_LIBAVCODEC,[],[enable libavcodec support]) + AM_CONDITIONAL(WITH_LIBAVCODEC,true) +} else { + AM_CONDITIONAL(WITH_LIBAVCODEC,false) +} ; fi + + + +# FREETYPE2 CHECK-------------------- + +AC_ARG_WITH(freetype,[ + --without-freetype disable support for freetype (Default=auto)],[ +],[ + with_freetype="yes" +]) + +if test $with_freetype != "no" ; then { + PKG_CHECK_MODULES(FREETYPE, freetype2,[ + with_freetype="yes" + ],[ + PKG_CHECK_MODULES(FREETYPE, xft,[ + with_freetype="yes" + ],[ + with_freetype="no" + ]) + ]) +} ; fi + +if test $with_freetype = "no" ; then { + AM_CONDITIONAL(WITH_FREETYPE,false) +} else { + AM_CONDITIONAL(WITH_FREETYPE,true) +} ; fi + + +# FONTCONFIG CHECK-------------------- + +AC_ARG_WITH(fontconfig,[ + --without-fontconfig disable support for fontconfig (Default=auto)],[ +],[ + with_fontconfig="yes" +]) + +if test $with_fontconfig != "no" ; then { + PKG_CHECK_MODULES(FONTCONFIG, fontconfig,[ + with_fontconfig="yes" + ],[ + with_fontconfig="no" + ]) +} ; fi + +if test $with_fontconfig = "yes" ; then { + AC_DEFINE(WITH_FONTCONFIG,[],[enable fontconfig support]) + AM_CONDITIONAL(WITH_FONTCONFIG,true) +} else { + AM_CONDITIONAL(WITH_FONTCONFIG,false) +} ; fi + + +# OPENEXR CHECK------------------------ +AC_ARG_WITH(openexr,[ + --without-openexr Disable support for ILM's OpenEXR],[ +],[ + with_openexr="yes" +]) +if test $with_openexr = "yes" ; then { + PKG_CHECK_MODULES(OPENEXR, OpenEXR,[ + CONFIG_DEPS="$CONFIG_DEPS OpenEXR" + + AC_DEFINE(HAVE_OPENEXR,[], [ Define if OpenEXR is available ] ) + AM_CONDITIONAL(WITH_OPENEXR,true) + ], + [ + with_openexr="no" + ]) +} ; fi +if test $with_openexr = "no" ; then { + AM_CONDITIONAL(WITH_OPENEXR,false) + use_openexr_half="no" +} ; fi +if test $use_openexr_half = yes ; then { + AC_MSG_RESULT([ ** Using OpenEXR Half.]) + CONFIG_CFLAGS="$CONFIG_CFLAGS -DUSE_HALF_TYPE" + OPENEXR_HALF_LIBS="-lHalf" +} else { + OPENEXR_HALF_LIBS="" +} ; fi + + + + + +# -- L I B R A R I E S ---------------------------------------- + +AC_LIB_LTDL + +PKG_CHECK_MODULES(ETL, [ETL >= 0.04.09],,[ + AC_MSG_ERROR([ ** You need to install the ETL (version 0.04.09 or greater).]) +]) +CONFIG_DEPS="$CONFIG_DEPS ETL" + + +PKG_CHECK_MODULES(LIBXMLPP, libxml++-2.6,[ + CONFIG_DEPS="$CONFIG_DEPS libxml++-2.6" +],[ + PKG_CHECK_MODULES(LIBXMLPP, libxml++-1.0,[ + CONFIG_DEPS="$CONFIG_DEPS libxml++-1.0" + ],[ + AC_MSG_ERROR([ ** You need to install libxml++, either verison 2.6 or 1.0.]) + ]) +]) + +PKG_CHECK_MODULES(LIBSIGC, [sigc++-2.0],,[ + AC_MSG_ERROR([ ** libsigc++-2.0 not found. It is required. You should really install it.]) +dnl PKG_CHECK_MODULES(LIBSIGC, [sigc++-1.2],,[ +dnl AC_MSG_ERROR([ ** At least libsigc++-1.2 is required.]) +dnl ]) +]) +CONFIG_DEPS="$CONFIG_DEPS sigc++-2.0" + +dnl PKG_CHECK_MODULES(GLIB, glib-2.0,[GLIB="yes"],[GLIB="no"]) + + + + + +TARGET_TIF="yes" +TARGET_PNG="yes" +TARGET_MNG="no" +TARGET_JPEG="yes" + +if test "$TARGET_TIF" != "disabled" ; then +AC_CHECK_LIB(tiff, TIFFClose,[ + TIF_LIBS="-ltiff" + AC_DEFINE(HAVE_LIBTIFF,[], [ Define if TIFF library is available ] ) + AC_SUBST(TIF_LIBS) + AM_CONDITIONAL(HAVE_LIBTIFF,true) +],[ + AC_MSG_RESULT([ *** TIFF Output target disabled]) + TARGET_TIF="no" + AM_CONDITIONAL(HAVE_LIBTIFF,false) +]) +fi + +AC_CHECK_LIB(png, png_write_row,[ + PNG_LIBS="-lpng" + AC_DEFINE(HAVE_LIBPNG,[], [ Define if PNG library is available ] ) + AC_SUBST(PNG_LIBS) + AM_CONDITIONAL(HAVE_LIBPNG,true) +],[ + AC_CHECK_LIB(png12, png_write_row,[ + PNG_LIBS="-lpng12" + AC_DEFINE(HAVE_LIBPNG,[]) + AC_SUBST(PNG_LIBS) + AM_CONDITIONAL(HAVE_LIBPNG,true) + ],[ + AC_MSG_RESULT([ *** PNG Output target disabled]) + TARGET_PNG="no" + AM_CONDITIONAL(HAVE_LIBPNG,false) + ],[-lz -L${exec_prefix}/lib]) +],[-lz -L${exec_prefix}/lib]) + +#AC_CHECK_LIB(mng, mng_initialize,[ +# MNG_LIBS="-lmng -lz" +# AC_DEFINE(HAVE_LIBMNG,[], [ Define if MNG library is available ] ) +# AC_SUBST(MNG_LIBS) +# AM_CONDITIONAL(HAVE_LIBMNG,true) +#],[ +# AC_MSG_RESULT([ *** MNG Output target disabled]) +# TARGET_MNG="no" +# AM_CONDITIONAL(HAVE_LIBMNG,false) +#],[-lz -L${exec_prefix}/lib]) + +AC_CHECK_LIB(jpeg, main,[ + JPEG_LIBS="-ljpeg" + AC_DEFINE(HAVE_LIBJPEG,[], [ Define if JPEG library is available ] ) + AC_SUBST(JPEG_LIBS) + AM_CONDITIONAL(HAVE_LIBJPEG,true) +],[ + AC_MSG_RESULT([ *** JPEG Output target disabled]) + TARGET_JPEG="no" + AM_CONDITIONAL(HAVE_LIBJPEG,false) +],[-L${exec_prefix}/lib]) + + +dnl AC_CHECK_HEADERS(jpeglib.h,[],[ +dnl AC_MSG_RESULT([ *** JPEG Output target disabled]) +dnl TARGET_JPEG="no" +dnl AM_CONDITIONAL(HAVE_LIBJPEG,false) +dnl ]) + + + +MODULE_DIR='${libdir}/synfig/modules' +moduledir=$libdir/synfig/modules +AC_SUBST(MODULE_DIR) +SYNFIGLIB_DIR=$libdir/synfig +AC_SUBST(SYNFIGLIB_DIR) + + + + + +CXXFLAGS="$CXXFLAGS -fpermissive" + +AC_CHECK_HEADERS(signal.h termios.h sys/errno.h) + + +case "$host" in + *mingw* | *cygwin*) + AM_CONDITIONAL(WIN32_PKG, true) + AM_CONDITIONAL(MACOSX_PKG, false) + ;; + *darwin*) + AM_CONDITIONAL(WIN32_PKG, false) + AM_CONDITIONAL(MACOSX_PKG, true) + ;; + *) + AM_CONDITIONAL(WIN32_PKG, false) + AM_CONDITIONAL(MACOSX_PKG, false) + ;; +esac + + + +# -- H E A D E R S -------------------------------------------- + +# -- T Y P E S & S T R U C T S -------------------------------- + +# -- F U N C T I O N S ---------------------------------------- + +dnl AC_CHECK_FUNCS([floor pow sqrt],[],[ +dnl AC_MSG_ERROR([ ** Could not find proper math functions.]) +dnl ]) + +AC_CHECK_FUNCS([fork]) +AC_CHECK_FUNCS([kill]) +AC_CHECK_FUNCS([pipe]) + +AC_CHECK_FUNCS( + [isnan], + [], + [ + AC_CHECK_FUNCS( + [_isnan] + ) + ] +) + +AC_CHECK_FUNCS( + [isnanf], + [], + [ + AC_CHECK_FUNCS( + [_isnanf] + ) + ] +) + +AC_CHECK_FUNCS( + [floorl], + [], + [ + AC_CHECK_FUNCS( + [_floorl] + ) + ] +) + +AC_CHECK_LIB([pthread],[pthread_create]) + +# -- O U T P U T ---------------------------------------------- + +AC_SUBST(CFLAGS) +AC_SUBST(CXXFLAGS) +AC_SUBST(CPPFLAGS) +AC_SUBST(LDFLAGS) + +VERSION_MAJ=@VERSION_MAJ@ +VERSION_MIN=@VERSION_MIN@ +VERSION_REV=@VERSION_REV@ +AC_SUBST(VERSION_MAJ) +AC_SUBST(VERSION_MIN) +AC_SUBST(VERSION_REV) + +dnl AC_CONFIG_SUBDIRS(libltdl) + +CONFIG_LIBS="-lsynfig" +CONFIG_CFLAGS="$CONFIG_CFLAGS" +AC_SUBST(CONFIG_LIBS) +AC_SUBST(CONFIG_CFLAGS) +AC_SUBST(CONFIG_DEPS) +AC_SUBST(ETL_CFLAGS) + +SYNFIG_LIBS="$VIMAGE_LIBS $LIBXMLPP_LIBS $ETL_LIBS $LIBSIGC_LIBS" +SYNFIG_CFLAGS="$LIBXMLPP_CFLAGS $ETL_CFLAGS $LIBSIGC_CFLAGS $CONFIG_CFLAGS -DSYNFIG_NO_DEPRECATED" + +CONFIG_CFLAGS="`echo $CONFIG_CFLAGS | sed s/-mno-cygwin//g | sed s/-mwindows//g`" +SYNFIG_CFLAGS="`echo $SYNFIG_CFLAGS | sed s/-mno-cygwin//g | sed s/-mwindows//g`" +SYNFIG_LIBS="`echo $SYNFIG_LIBS | sed s/-mno-cygwin//g | sed s/-mwindows//g`" + +AC_SUBST(LIBADD_DL) + +AC_SUBST(SYNFIG_LIBS) +AC_SUBST(SYNFIG_CFLAGS) +AC_SUBST(OPENEXR_HALF_LIBS) + +AC_SUBST(API_VERSION) + +synfigincludedir=$includedir/synfig-@API_VERSION@ +AC_SUBST(synfigincludedir) + +[( + [ -d libltdl ] || mkdir libltdl; + cd libltdl; + + echo + echo pwd: `pwd` + echo ../$srcdir/libltdl/configure $ac_configure_args "'--srcdir="../$srcdir/libltdl"'" --with-auxdir=../$srcdir/config "'CFLAGS=$CFLAGS'" "'LDFLAGS=$LDFLAGS'" "'CC=$CC'" "'CPP=$CPP'" "'CPPFLAGS=$CPPFLAGS'" --disable-shared --enable-static + echo ../$srcdir/libltdl/configure $ac_configure_args "'--srcdir="../$srcdir/libltdl"'" --with-auxdir=../$srcdir/config "'CFLAGS=$CFLAGS'" "'LDFLAGS=$LDFLAGS'" "'CC=$CC'" "'CPP=$CPP'" "'CPPFLAGS=$CPPFLAGS'" --disable-shared --enable-static | sh + +)] + +# src/modules/mod_mng/Makefile + +AC_OUTPUT( +synfig-config +@PACKAGE_TARNAME@.pc +Makefile +src/Makefile +src/synfig/Makefile +src/modules/Makefile +src/modules/mod_filter/Makefile +src/modules/mod_bmp/Makefile +src/modules/mod_gif/Makefile +src/modules/mod_ppm/Makefile +src/modules/mod_png/Makefile +src/modules/mod_jpeg/Makefile +src/modules/lyr_std/Makefile +src/modules/mod_geometry/Makefile +src/modules/mod_gradient/Makefile +src/modules/mod_noise/Makefile +src/modules/lyr_freetype/Makefile +src/modules/mod_ffmpeg/Makefile +src/modules/mod_dv/Makefile +src/modules/mod_imagemagick/Makefile +src/modules/mod_openexr/Makefile +src/modules/mod_libavcodec/Makefile +src/modules/mod_yuv420p/Makefile +src/modules/mod_particle/Makefile +src/tool/Makefile +src/modules/synfig_modules.cfg +examples/walk/Makefile +examples/Makefile +win32inst.nsi +pkg-info/macosx/synfig-core.info +dnl src/modules/trgt_mpg/Makefile +dnl src/modules/mptr_mplayer/Makefile +) + +# -- S U M M A R Y -------------------------------------------- + +echo " +$PACKAGE_NAME v.$VERSION +Configuration Summary +- - - - - - + +Install Prefix -------------------> $prefix +Module directory -----------------> $moduledir +Build Platform -------------------> $build +Host Platform --------------------> $host +Time Limit -----------------------> $death_time +Arc Profiling --------------------> $profile_arcs +GProf Profiling ------------------> $profiling +Debug Mode -----------------------> $debug ($debug_flags) +Optimization ---------------------> $optimization +PNG output target support --------> $TARGET_PNG +MNG output target support --------> $TARGET_MNG +TIFF output target support -------> $TARGET_TIF +JPEG output target support -------> $TARGET_JPEG +ETL_CFLAGS -----------------------> $ETL_CFLAGS +FreeType2 ------------------------> $with_freetype +fontconfig -----------------------> $with_fontconfig +libavcodec -----------------------> $with_libavcodec +vImage ---------------------------> $with_vimage +ImageMagick ----------------------> $with_imagemagick +FFMPEG ---------------------------> $with_ffmpeg +libdv ----------------------------> $with_libdv +OpenEXR --------------------------> $with_openexr +Using OpenEXR's \"half\" type ------> $use_openexr_half + +"'$'"CXX -----------------------------> '$CXX' +"'$'"CXXFLAGS ------------------------> '$CXXFLAGS' +"'$'"SYNFIG_LIBS ---------------------> '$SYNFIG_LIBS' +"'$'"LIBXMLPP_LIBS -------------------> '$LIBXMLPP_LIBS' +"'$'"ETL_LIBS ------------------------> '$ETL_LIBS' +"'$'"LIBSIGC_LIBS --------------------> '$LIBSIGC_LIBS' +"'$'"SYNFIG_CFLAGS -------------------> '$SYNFIG_CFLAGS' +"'$'"LIBADD_DL -----------------------> '$LIBADD_DL' +" diff --git a/synfig-core/tags/stable/config/cxx_macros.m4 b/synfig-core/tags/stable/config/cxx_macros.m4 new file mode 100644 index 0000000..8fc247a --- /dev/null +++ b/synfig-core/tags/stable/config/cxx_macros.m4 @@ -0,0 +1,88 @@ +AC_DEFUN([AC_CXX_FUNCTION_NONTYPE_PARAMETERS], +[AC_CACHE_CHECK(whether the compiler supports function templates with non-type parameters, +ac_cv_cxx_function_nontype_parameters, +[AC_LANG_SAVE + AC_LANG_CPLUSPLUS + AC_TRY_COMPILE([ +template class A {}; +template int f(const A& x) { return 0; } +],[A z; return f(z);], + ac_cv_cxx_function_nontype_parameters=yes, ac_cv_cxx_function_nontype_parameters=no) + AC_LANG_RESTORE +]) +if test "$ac_cv_cxx_function_nontype_parameters" = yes; then + AC_DEFINE(HAVE_FUNCTION_NONTYPE_PARAMETERS,, + [define if the compiler supports function templates with non-type parameters]) +fi +]) + +AC_DEFUN([AC_CXX_NAMESPACES], +[AC_CACHE_CHECK(whether the compiler implements namespaces, +ac_cv_cxx_namespaces, +[AC_LANG_SAVE + AC_LANG_CPLUSPLUS + AC_TRY_COMPILE([namespace Outer { namespace Inner { int i = 0; }}], + [using namespace Outer::Inner; return i;], + ac_cv_cxx_namespaces=yes, ac_cv_cxx_namespaces=no) + AC_LANG_RESTORE +]) +if test "$ac_cv_cxx_namespaces" = yes; then + AC_DEFINE(HAVE_NAMESPACES,,[define if the compiler implements namespaces]) +fi +]) + +AC_DEFUN([AC_CXX_HAVE_COMPLEX], +[AC_CACHE_CHECK(whether the compiler has complex, +ac_cv_cxx_have_complex, +[AC_REQUIRE([AC_CXX_NAMESPACES]) + AC_LANG_SAVE + AC_LANG_CPLUSPLUS + AC_TRY_COMPILE([#include +#ifdef HAVE_NAMESPACES +using namespace std; +#endif],[complex a; complex b; return 0;], + ac_cv_cxx_have_complex=yes, ac_cv_cxx_have_complex=no) + AC_LANG_RESTORE +]) +if test "$ac_cv_cxx_have_complex" = yes; then + AC_DEFINE(HAVE_COMPLEX,,[define if the compiler has complex]) +fi +]) + +AC_DEFUN([AC_CXX_HAVE_SSTREAM], +[AC_CACHE_CHECK(whether the compiler has stringstream, +ac_cv_cxx_have_sstream, +[AC_REQUIRE([AC_CXX_NAMESPACES]) + AC_LANG_SAVE + AC_LANG_CPLUSPLUS + AC_TRY_COMPILE([#include +#ifdef HAVE_NAMESPACES +using namespace std; +#endif],[stringstream message; message << "Hello"; return 0;], + ac_cv_cxx_have_sstream=yes, ac_cv_cxx_have_sstream=no) + AC_LANG_RESTORE +]) +if test "$ac_cv_cxx_have_sstream" = yes; then + AC_DEFINE(HAVE_SSTREAM,,[define if the compiler has stringstream]) +fi +]) + +AC_DEFUN([AC_CXX_MUTABLE], +[AC_CACHE_CHECK(whether the compiler supports the mutable keyword, +ac_cv_cxx_mutable, +[AC_LANG_SAVE + AC_LANG_CPLUSPLUS + AC_TRY_COMPILE([ +class A { mutable int i; + public: + int f (int n) const { i = n; return i; } + }; +],[A a; return a.f (1);], + ac_cv_cxx_mutable=yes, ac_cv_cxx_mutable=no) + AC_LANG_RESTORE +]) +if test "$ac_cv_cxx_mutable" = yes; then + AC_DEFINE(HAVE_MUTABLE,,[define if the compiler supports the mutable keyword]) +fi +]) + diff --git a/synfig-core/tags/stable/config/doxygen.cfg.in b/synfig-core/tags/stable/config/doxygen.cfg.in new file mode 100644 index 0000000..f13f701 --- /dev/null +++ b/synfig-core/tags/stable/config/doxygen.cfg.in @@ -0,0 +1,1246 @@ +# Doxyfile 1.4.6 + +# This file describes the settings to be used by the documentation system +# doxygen (www.doxygen.org) for a project +# +# All text after a hash (#) is considered a comment and will be ignored +# The format is: +# TAG = value [value, ...] +# For lists items can also be appended using: +# TAG += value [value, ...] +# Values that contain spaces should be placed between quotes (" ") + +#--------------------------------------------------------------------------- +# Project related configuration options +#--------------------------------------------------------------------------- + +# The PROJECT_NAME tag is a single word (or a sequence of words surrounded +# by quotes) that should identify the project. + +PROJECT_NAME = @PACKAGE@ + +# The PROJECT_NUMBER tag can be used to enter a project or revision number. +# This could be handy for archiving the generated documentation or +# if some version control system is used. + +PROJECT_NUMBER = @VERSION@ + +# The OUTPUT_DIRECTORY tag is used to specify the (relative or absolute) +# base path where the generated documentation will be put. +# If a relative path is entered, it will be relative to the location +# where doxygen was started. If left blank the current directory will be used. + +OUTPUT_DIRECTORY = doc + +# If the CREATE_SUBDIRS tag is set to YES, then doxygen will create +# 4096 sub-directories (in 2 levels) under the output directory of each output +# format and will distribute the generated files over these directories. +# Enabling this option can be useful when feeding doxygen a huge amount of +# source files, where putting all generated files in the same directory would +# otherwise cause performance problems for the file system. + +CREATE_SUBDIRS = NO + +# The OUTPUT_LANGUAGE tag is used to specify the language in which all +# documentation generated by doxygen is written. Doxygen will use this +# information to generate all constant output in the proper language. +# The default language is English, other supported languages are: +# Brazilian, Catalan, Chinese, Chinese-Traditional, Croatian, Czech, Danish, +# Dutch, Finnish, French, German, Greek, Hungarian, Italian, Japanese, +# Japanese-en (Japanese with English messages), Korean, Korean-en, Norwegian, +# Polish, Portuguese, Romanian, Russian, Serbian, Slovak, Slovene, Spanish, +# Swedish, and Ukrainian. + +OUTPUT_LANGUAGE = English + +# This tag can be used to specify the encoding used in the generated output. +# The encoding is not always determined by the language that is chosen, +# but also whether or not the output is meant for Windows or non-Windows users. +# In case there is a difference, setting the USE_WINDOWS_ENCODING tag to YES +# forces the Windows encoding (this is the default for the Windows binary), +# whereas setting the tag to NO uses a Unix-style encoding (the default for +# all platforms other than Windows). + +USE_WINDOWS_ENCODING = NO + +# If the BRIEF_MEMBER_DESC tag is set to YES (the default) Doxygen will +# include brief member descriptions after the members that are listed in +# the file and class documentation (similar to JavaDoc). +# Set to NO to disable this. + +BRIEF_MEMBER_DESC = YES + +# If the REPEAT_BRIEF tag is set to YES (the default) Doxygen will prepend +# the brief description of a member or function before the detailed description. +# Note: if both HIDE_UNDOC_MEMBERS and BRIEF_MEMBER_DESC are set to NO, the +# brief descriptions will be completely suppressed. + +REPEAT_BRIEF = YES + +# This tag implements a quasi-intelligent brief description abbreviator +# that is used to form the text in various listings. Each string +# in this list, if found as the leading text of the brief description, will be +# stripped from the text and the result after processing the whole list, is +# used as the annotated text. Otherwise, the brief description is used as-is. +# If left blank, the following values are used ("$name" is automatically +# replaced with the name of the entity): "The $name class" "The $name widget" +# "The $name file" "is" "provides" "specifies" "contains" +# "represents" "a" "an" "the" + +ABBREVIATE_BRIEF = + +# If the ALWAYS_DETAILED_SEC and REPEAT_BRIEF tags are both set to YES then +# Doxygen will generate a detailed section even if there is only a brief +# description. + +ALWAYS_DETAILED_SEC = NO + +# If the INLINE_INHERITED_MEMB tag is set to YES, doxygen will show all +# inherited members of a class in the documentation of that class as if those +# members were ordinary class members. Constructors, destructors and assignment +# operators of the base classes will not be shown. + +INLINE_INHERITED_MEMB = NO + +# If the FULL_PATH_NAMES tag is set to YES then Doxygen will prepend the full +# path before files name in the file list and in the header files. If set +# to NO the shortest path that makes the file name unique will be used. + +FULL_PATH_NAMES = NO + +# If the FULL_PATH_NAMES tag is set to YES then the STRIP_FROM_PATH tag +# can be used to strip a user-defined part of the path. Stripping is +# only done if one of the specified strings matches the left-hand part of +# the path. The tag can be used to show relative paths in the file list. +# If left blank the directory from which doxygen is run is used as the +# path to strip. + +STRIP_FROM_PATH = + +# The STRIP_FROM_INC_PATH tag can be used to strip a user-defined part of +# the path mentioned in the documentation of a class, which tells +# the reader which header file to include in order to use a class. +# If left blank only the name of the header file containing the class +# definition is used. Otherwise one should specify the include paths that +# are normally passed to the compiler using the -I flag. + +STRIP_FROM_INC_PATH = + +# If the SHORT_NAMES tag is set to YES, doxygen will generate much shorter +# (but less readable) file names. This can be useful is your file systems +# doesn't support long names like on DOS, Mac, or CD-ROM. + +SHORT_NAMES = NO + +# If the JAVADOC_AUTOBRIEF tag is set to YES then Doxygen +# will interpret the first line (until the first dot) of a JavaDoc-style +# comment as the brief description. If set to NO, the JavaDoc +# comments will behave just like the Qt-style comments (thus requiring an +# explicit @brief command for a brief description. + +JAVADOC_AUTOBRIEF = NO + +# The MULTILINE_CPP_IS_BRIEF tag can be set to YES to make Doxygen +# treat a multi-line C++ special comment block (i.e. a block of //! or /// +# comments) as a brief description. This used to be the default behaviour. +# The new default is to treat a multi-line C++ comment block as a detailed +# description. Set this tag to YES if you prefer the old behaviour instead. + +MULTILINE_CPP_IS_BRIEF = NO + +# If the DETAILS_AT_TOP tag is set to YES then Doxygen +# will output the detailed description near the top, like JavaDoc. +# If set to NO, the detailed description appears after the member +# documentation. + +DETAILS_AT_TOP = NO + +# If the INHERIT_DOCS tag is set to YES (the default) then an undocumented +# member inherits the documentation from any documented member that it +# re-implements. + +INHERIT_DOCS = YES + +# If the SEPARATE_MEMBER_PAGES tag is set to YES, then doxygen will produce +# a new page for each member. If set to NO, the documentation of a member will +# be part of the file/class/namespace that contains it. + +SEPARATE_MEMBER_PAGES = NO + +# The TAB_SIZE tag can be used to set the number of spaces in a tab. +# Doxygen uses this value to replace tabs by spaces in code fragments. + +TAB_SIZE = 4 + +# This tag can be used to specify a number of aliases that acts +# as commands in the documentation. An alias has the form "name=value". +# For example adding "sideeffect=\par Side Effects:\n" will allow you to +# put the command \sideeffect (or @sideeffect) in the documentation, which +# will result in a user-defined paragraph with heading "Side Effects:". +# You can put \n's in the value part of an alias to insert newlines. + +ALIASES = "legal=\if legal" \ + endlegal=\endif \ + "writeme=\todo This needs to be documented further." \ + "stub=\todo This is a non-functional stub." \ + "optimize=\todo This needs to be optimized further." + +# Set the OPTIMIZE_OUTPUT_FOR_C tag to YES if your project consists of C +# sources only. Doxygen will then generate output that is more tailored for C. +# For instance, some of the names that are used will be different. The list +# of all members will be omitted, etc. + +OPTIMIZE_OUTPUT_FOR_C = NO + +# Set the OPTIMIZE_OUTPUT_JAVA tag to YES if your project consists of Java +# sources only. Doxygen will then generate output that is more tailored for Java. +# For instance, namespaces will be presented as packages, qualified scopes +# will look different, etc. + +OPTIMIZE_OUTPUT_JAVA = NO + +# If you use STL classes (i.e. std::string, std::vector, etc.) but do not want to +# include (a tag file for) the STL sources as input, then you should +# set this tag to YES in order to let doxygen match functions declarations and +# definitions whose arguments contain STL classes (e.g. func(std::string); v.s. +# func(std::string) {}). This also make the inheritance and collaboration +# diagrams that involve STL classes more complete and accurate. + +BUILTIN_STL_SUPPORT = NO + +# If member grouping is used in the documentation and the DISTRIBUTE_GROUP_DOC +# tag is set to YES, then doxygen will reuse the documentation of the first +# member in the group (if any) for the other members of the group. By default +# all members of a group must be documented explicitly. + +DISTRIBUTE_GROUP_DOC = YES + +# Set the SUBGROUPING tag to YES (the default) to allow class member groups of +# the same type (for instance a group of public functions) to be put as a +# subgroup of that type (e.g. under the Public Functions section). Set it to +# NO to prevent subgrouping. Alternatively, this can be done per class using +# the \nosubgrouping command. + +SUBGROUPING = YES + +#--------------------------------------------------------------------------- +# Build related configuration options +#--------------------------------------------------------------------------- + +# If the EXTRACT_ALL tag is set to YES doxygen will assume all entities in +# documentation are documented, even if no documentation was available. +# Private class members and static file members will be hidden unless +# the EXTRACT_PRIVATE and EXTRACT_STATIC tags are set to YES + +EXTRACT_ALL = YES + +# If the EXTRACT_PRIVATE tag is set to YES all private members of a class +# will be included in the documentation. + +EXTRACT_PRIVATE = NO + +# If the EXTRACT_STATIC tag is set to YES all static members of a file +# will be included in the documentation. + +EXTRACT_STATIC = YES + +# If the EXTRACT_LOCAL_CLASSES tag is set to YES classes (and structs) +# defined locally in source files will be included in the documentation. +# If set to NO only classes defined in header files are included. + +EXTRACT_LOCAL_CLASSES = NO + +# This flag is only useful for Objective-C code. When set to YES local +# methods, which are defined in the implementation section but not in +# the interface are included in the documentation. +# If set to NO (the default) only methods in the interface are included. + +EXTRACT_LOCAL_METHODS = NO + +# If the HIDE_UNDOC_MEMBERS tag is set to YES, Doxygen will hide all +# undocumented members of documented classes, files or namespaces. +# If set to NO (the default) these members will be included in the +# various overviews, but no documentation section is generated. +# This option has no effect if EXTRACT_ALL is enabled. + +HIDE_UNDOC_MEMBERS = NO + +# If the HIDE_UNDOC_CLASSES tag is set to YES, Doxygen will hide all +# undocumented classes that are normally visible in the class hierarchy. +# If set to NO (the default) these classes will be included in the various +# overviews. This option has no effect if EXTRACT_ALL is enabled. + +HIDE_UNDOC_CLASSES = NO + +# If the HIDE_FRIEND_COMPOUNDS tag is set to YES, Doxygen will hide all +# friend (class|struct|union) declarations. +# If set to NO (the default) these declarations will be included in the +# documentation. + +HIDE_FRIEND_COMPOUNDS = NO + +# If the HIDE_IN_BODY_DOCS tag is set to YES, Doxygen will hide any +# documentation blocks found inside the body of a function. +# If set to NO (the default) these blocks will be appended to the +# function's detailed documentation block. + +HIDE_IN_BODY_DOCS = NO + +# The INTERNAL_DOCS tag determines if documentation +# that is typed after a \internal command is included. If the tag is set +# to NO (the default) then the documentation will be excluded. +# Set it to YES to include the internal documentation. + +INTERNAL_DOCS = YES + +# If the CASE_SENSE_NAMES tag is set to NO then Doxygen will only generate +# file names in lower-case letters. If set to YES upper-case letters are also +# allowed. This is useful if you have classes or files whose names only differ +# in case and if your file system supports case sensitive file names. Windows +# and Mac users are advised to set this option to NO. + +CASE_SENSE_NAMES = YES + +# If the HIDE_SCOPE_NAMES tag is set to NO (the default) then Doxygen +# will show members with their full class and namespace scopes in the +# documentation. If set to YES the scope will be hidden. + +HIDE_SCOPE_NAMES = NO + +# If the SHOW_INCLUDE_FILES tag is set to YES (the default) then Doxygen +# will put a list of the files that are included by a file in the documentation +# of that file. + +SHOW_INCLUDE_FILES = YES + +# If the INLINE_INFO tag is set to YES (the default) then a tag [inline] +# is inserted in the documentation for inline members. + +INLINE_INFO = YES + +# If the SORT_MEMBER_DOCS tag is set to YES (the default) then doxygen +# will sort the (detailed) documentation of file and class members +# alphabetically by member name. If set to NO the members will appear in +# declaration order. + +SORT_MEMBER_DOCS = NO + +# If the SORT_BRIEF_DOCS tag is set to YES then doxygen will sort the +# brief documentation of file, namespace and class members alphabetically +# by member name. If set to NO (the default) the members will appear in +# declaration order. + +SORT_BRIEF_DOCS = NO + +# If the SORT_BY_SCOPE_NAME tag is set to YES, the class list will be +# sorted by fully-qualified names, including namespaces. If set to +# NO (the default), the class list will be sorted only by class name, +# not including the namespace part. +# Note: This option is not very useful if HIDE_SCOPE_NAMES is set to YES. +# Note: This option applies only to the class list, not to the +# alphabetical list. + +SORT_BY_SCOPE_NAME = NO + +# The GENERATE_TODOLIST tag can be used to enable (YES) or +# disable (NO) the todo list. This list is created by putting \todo +# commands in the documentation. + +GENERATE_TODOLIST = YES + +# The GENERATE_TESTLIST tag can be used to enable (YES) or +# disable (NO) the test list. This list is created by putting \test +# commands in the documentation. + +GENERATE_TESTLIST = YES + +# The GENERATE_BUGLIST tag can be used to enable (YES) or +# disable (NO) the bug list. This list is created by putting \bug +# commands in the documentation. + +GENERATE_BUGLIST = YES + +# The GENERATE_DEPRECATEDLIST tag can be used to enable (YES) or +# disable (NO) the deprecated list. This list is created by putting +# \deprecated commands in the documentation. + +GENERATE_DEPRECATEDLIST= YES + +# The ENABLED_SECTIONS tag can be used to enable conditional +# documentation sections, marked by \if sectionname ... \endif. + +ENABLED_SECTIONS = + +# The MAX_INITIALIZER_LINES tag determines the maximum number of lines +# the initial value of a variable or define consists of for it to appear in +# the documentation. If the initializer consists of more lines than specified +# here it will be hidden. Use a value of 0 to hide initializers completely. +# The appearance of the initializer of individual variables and defines in the +# documentation can be controlled using \showinitializer or \hideinitializer +# command in the documentation regardless of this setting. + +MAX_INITIALIZER_LINES = 30 + +# Set the SHOW_USED_FILES tag to NO to disable the list of files generated +# at the bottom of the documentation of classes and structs. If set to YES the +# list will mention the files that were used to generate the documentation. + +SHOW_USED_FILES = YES + +# If the sources in your project are distributed over multiple directories +# then setting the SHOW_DIRECTORIES tag to YES will show the directory hierarchy +# in the documentation. The default is NO. + +SHOW_DIRECTORIES = NO + +# The FILE_VERSION_FILTER tag can be used to specify a program or script that +# doxygen should invoke to get the current version for each file (typically from the +# version control system). Doxygen will invoke the program by executing (via +# popen()) the command , where is the value of +# the FILE_VERSION_FILTER tag, and is the name of an input file +# provided by doxygen. Whatever the program writes to standard output +# is used as the file version. See the manual for examples. + +FILE_VERSION_FILTER = + +#--------------------------------------------------------------------------- +# configuration options related to warning and progress messages +#--------------------------------------------------------------------------- + +# The QUIET tag can be used to turn on/off the messages that are generated +# by doxygen. Possible values are YES and NO. If left blank NO is used. + +QUIET = YES + +# The WARNINGS tag can be used to turn on/off the warning messages that are +# generated by doxygen. Possible values are YES and NO. If left blank +# NO is used. + +WARNINGS = YES + +# If WARN_IF_UNDOCUMENTED is set to YES, then doxygen will generate warnings +# for undocumented members. If EXTRACT_ALL is set to YES then this flag will +# automatically be disabled. + +WARN_IF_UNDOCUMENTED = YES + +# If WARN_IF_DOC_ERROR is set to YES, doxygen will generate warnings for +# potential errors in the documentation, such as not documenting some +# parameters in a documented function, or documenting parameters that +# don't exist or using markup commands wrongly. + +WARN_IF_DOC_ERROR = YES + +# This WARN_NO_PARAMDOC option can be abled to get warnings for +# functions that are documented, but have no documentation for their parameters +# or return value. If set to NO (the default) doxygen will only warn about +# wrong or incomplete parameter documentation, but not about the absence of +# documentation. + +WARN_NO_PARAMDOC = NO + +# The WARN_FORMAT tag determines the format of the warning messages that +# doxygen can produce. The string should contain the $file, $line, and $text +# tags, which will be replaced by the file and line number from which the +# warning originated and the warning text. Optionally the format may contain +# $version, which will be replaced by the version of the file (if it could +# be obtained via FILE_VERSION_FILTER) + +WARN_FORMAT = "$file:$line: $text" + +# The WARN_LOGFILE tag can be used to specify a file to which warning +# and error messages should be written. If left blank the output is written +# to stderr. + +WARN_LOGFILE = + +#--------------------------------------------------------------------------- +# configuration options related to the input files +#--------------------------------------------------------------------------- + +# The INPUT tag can be used to specify the files and/or directories that contain +# documented source files. You may enter file names like "myfile.cpp" or +# directories like "/usr/src/myproject". Separate the files or directories +# with spaces. + +INPUT = src/synfig + +# If the value of the INPUT tag contains directories, you can use the +# FILE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp +# and *.h) to filter out the source-files in the directories. If left +# blank the following patterns are tested: +# *.c *.cc *.cxx *.cpp *.c++ *.java *.ii *.ixx *.ipp *.i++ *.inl *.h *.hh *.hxx +# *.hpp *.h++ *.idl *.odl *.cs *.php *.php3 *.inc *.m *.mm *.py + +FILE_PATTERNS = *.h \ + *.hxx \ + *.hpp \ + *.cpp \ + *.cxx + +# The RECURSIVE tag can be used to turn specify whether or not subdirectories +# should be searched for input files as well. Possible values are YES and NO. +# If left blank NO is used. + +RECURSIVE = YES + +# The EXCLUDE tag can be used to specify files and/or directories that should +# excluded from the INPUT source files. This way you can easily exclude a +# subdirectory from a directory tree whose root is specified with the INPUT tag. + +EXCLUDE = + +# The EXCLUDE_SYMLINKS tag can be used select whether or not files or +# directories that are symbolic links (a Unix filesystem feature) are excluded +# from the input. + +EXCLUDE_SYMLINKS = NO + +# If the value of the INPUT tag contains directories, you can use the +# EXCLUDE_PATTERNS tag to specify one or more wildcard patterns to exclude +# certain files from those directories. Note that the wildcards are matched +# against the file with absolute path, so to exclude all test directories +# for example use the pattern */test/* + +EXCLUDE_PATTERNS = + +# The EXAMPLE_PATH tag can be used to specify one or more files or +# directories that contain example code fragments that are included (see +# the \include command). + +EXAMPLE_PATH = + +# If the value of the EXAMPLE_PATH tag contains directories, you can use the +# EXAMPLE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp +# and *.h) to filter out the source-files in the directories. If left +# blank all files are included. + +EXAMPLE_PATTERNS = + +# If the EXAMPLE_RECURSIVE tag is set to YES then subdirectories will be +# searched for input files to be used with the \include or \dontinclude +# commands irrespective of the value of the RECURSIVE tag. +# Possible values are YES and NO. If left blank NO is used. + +EXAMPLE_RECURSIVE = NO + +# The IMAGE_PATH tag can be used to specify one or more files or +# directories that contain image that are included in the documentation (see +# the \image command). + +IMAGE_PATH = + +# The INPUT_FILTER tag can be used to specify a program that doxygen should +# invoke to filter for each input file. Doxygen will invoke the filter program +# by executing (via popen()) the command , where +# is the value of the INPUT_FILTER tag, and is the name of an +# input file. Doxygen will then use the output that the filter program writes +# to standard output. If FILTER_PATTERNS is specified, this tag will be +# ignored. + +INPUT_FILTER = + +# The FILTER_PATTERNS tag can be used to specify filters on a per file pattern +# basis. Doxygen will compare the file name with each pattern and apply the +# filter if there is a match. The filters are a list of the form: +# pattern=filter (like *.cpp=my_cpp_filter). See INPUT_FILTER for further +# info on how filters are used. If FILTER_PATTERNS is empty, INPUT_FILTER +# is applied to all files. + +FILTER_PATTERNS = + +# If the FILTER_SOURCE_FILES tag is set to YES, the input filter (if set using +# INPUT_FILTER) will be used to filter the input files when producing source +# files to browse (i.e. when SOURCE_BROWSER is set to YES). + +FILTER_SOURCE_FILES = NO + +#--------------------------------------------------------------------------- +# configuration options related to source browsing +#--------------------------------------------------------------------------- + +# If the SOURCE_BROWSER tag is set to YES then a list of source files will +# be generated. Documented entities will be cross-referenced with these sources. +# Note: To get rid of all source code in the generated output, make sure also +# VERBATIM_HEADERS is set to NO. + +SOURCE_BROWSER = NO + +# Setting the INLINE_SOURCES tag to YES will include the body +# of functions and classes directly in the documentation. + +INLINE_SOURCES = NO + +# Setting the STRIP_CODE_COMMENTS tag to YES (the default) will instruct +# doxygen to hide any special comment blocks from generated source code +# fragments. Normal C and C++ comments will always remain visible. + +STRIP_CODE_COMMENTS = YES + +# If the REFERENCED_BY_RELATION tag is set to YES (the default) +# then for each documented function all documented +# functions referencing it will be listed. + +REFERENCED_BY_RELATION = YES + +# If the REFERENCES_RELATION tag is set to YES (the default) +# then for each documented function all documented entities +# called/used by that function will be listed. + +REFERENCES_RELATION = YES + +# If the USE_HTAGS tag is set to YES then the references to source code +# will point to the HTML generated by the htags(1) tool instead of doxygen +# built-in source browser. The htags tool is part of GNU's global source +# tagging system (see http://www.gnu.org/software/global/global.html). You +# will need version 4.8.6 or higher. + +USE_HTAGS = NO + +# If the VERBATIM_HEADERS tag is set to YES (the default) then Doxygen +# will generate a verbatim copy of the header file for each class for +# which an include is specified. Set to NO to disable this. + +VERBATIM_HEADERS = YES + +#--------------------------------------------------------------------------- +# configuration options related to the alphabetical class index +#--------------------------------------------------------------------------- + +# If the ALPHABETICAL_INDEX tag is set to YES, an alphabetical index +# of all compounds will be generated. Enable this if the project +# contains a lot of classes, structs, unions or interfaces. + +ALPHABETICAL_INDEX = YES + +# If the alphabetical index is enabled (see ALPHABETICAL_INDEX) then +# the COLS_IN_ALPHA_INDEX tag can be used to specify the number of columns +# in which this list will be split (can be a number in the range [1..20]) + +COLS_IN_ALPHA_INDEX = 5 + +# In case all classes in a project start with a common prefix, all +# classes will be put under the same header in the alphabetical index. +# The IGNORE_PREFIX tag can be used to specify one or more prefixes that +# should be ignored while generating the index headers. + +IGNORE_PREFIX = + +#--------------------------------------------------------------------------- +# configuration options related to the HTML output +#--------------------------------------------------------------------------- + +# If the GENERATE_HTML tag is set to YES (the default) Doxygen will +# generate HTML output. + +GENERATE_HTML = YES + +# The HTML_OUTPUT tag is used to specify where the HTML docs will be put. +# If a relative path is entered the value of OUTPUT_DIRECTORY will be +# put in front of it. If left blank `html' will be used as the default path. + +HTML_OUTPUT = html + +# The HTML_FILE_EXTENSION tag can be used to specify the file extension for +# each generated HTML page (for example: .htm,.php,.asp). If it is left blank +# doxygen will generate files with .html extension. + +HTML_FILE_EXTENSION = .html + +# The HTML_HEADER tag can be used to specify a personal HTML header for +# each generated HTML page. If it is left blank doxygen will generate a +# standard header. + +HTML_HEADER = + +# The HTML_FOOTER tag can be used to specify a personal HTML footer for +# each generated HTML page. If it is left blank doxygen will generate a +# standard footer. + +HTML_FOOTER = + +# The HTML_STYLESHEET tag can be used to specify a user-defined cascading +# style sheet that is used by each HTML page. It can be used to +# fine-tune the look of the HTML output. If the tag is left blank doxygen +# will generate a default style sheet. Note that doxygen will try to copy +# the style sheet file to the HTML output directory, so don't put your own +# stylesheet in the HTML output directory as well, or it will be erased! + +HTML_STYLESHEET = + +# If the HTML_ALIGN_MEMBERS tag is set to YES, the members of classes, +# files or namespaces will be aligned in HTML using tables. If set to +# NO a bullet list will be used. + +HTML_ALIGN_MEMBERS = YES + +# If the GENERATE_HTMLHELP tag is set to YES, additional index files +# will be generated that can be used as input for tools like the +# Microsoft HTML help workshop to generate a compressed HTML help file (.chm) +# of the generated HTML documentation. + +GENERATE_HTMLHELP = NO + +# If the GENERATE_HTMLHELP tag is set to YES, the CHM_FILE tag can +# be used to specify the file name of the resulting .chm file. You +# can add a path in front of the file if the result should not be +# written to the html output directory. + +CHM_FILE = + +# If the GENERATE_HTMLHELP tag is set to YES, the HHC_LOCATION tag can +# be used to specify the location (absolute path including file name) of +# the HTML help compiler (hhc.exe). If non-empty doxygen will try to run +# the HTML help compiler on the generated index.hhp. + +HHC_LOCATION = + +# If the GENERATE_HTMLHELP tag is set to YES, the GENERATE_CHI flag +# controls if a separate .chi index file is generated (YES) or that +# it should be included in the master .chm file (NO). + +GENERATE_CHI = NO + +# If the GENERATE_HTMLHELP tag is set to YES, the BINARY_TOC flag +# controls whether a binary table of contents is generated (YES) or a +# normal table of contents (NO) in the .chm file. + +BINARY_TOC = NO + +# The TOC_EXPAND flag can be set to YES to add extra items for group members +# to the contents of the HTML help documentation and to the tree view. + +TOC_EXPAND = NO + +# The DISABLE_INDEX tag can be used to turn on/off the condensed index at +# top of each HTML page. The value NO (the default) enables the index and +# the value YES disables it. + +DISABLE_INDEX = NO + +# This tag can be used to set the number of enum values (range [1..20]) +# that doxygen will group on one line in the generated HTML documentation. + +ENUM_VALUES_PER_LINE = 4 + +# If the GENERATE_TREEVIEW tag is set to YES, a side panel will be +# generated containing a tree-like index structure (just like the one that +# is generated for HTML Help). For this to work a browser that supports +# JavaScript, DHTML, CSS and frames is required (for instance Mozilla 1.0+, +# Netscape 6.0+, Internet explorer 5.0+, or Konqueror). Windows users are +# probably better off using the HTML help feature. + +GENERATE_TREEVIEW = NO + +# If the treeview is enabled (see GENERATE_TREEVIEW) then this tag can be +# used to set the initial width (in pixels) of the frame in which the tree +# is shown. + +TREEVIEW_WIDTH = 250 + +#--------------------------------------------------------------------------- +# configuration options related to the LaTeX output +#--------------------------------------------------------------------------- + +# If the GENERATE_LATEX tag is set to YES (the default) Doxygen will +# generate Latex output. + +GENERATE_LATEX = YES + +# The LATEX_OUTPUT tag is used to specify where the LaTeX docs will be put. +# If a relative path is entered the value of OUTPUT_DIRECTORY will be +# put in front of it. If left blank `latex' will be used as the default path. + +LATEX_OUTPUT = latex + +# The LATEX_CMD_NAME tag can be used to specify the LaTeX command name to be +# invoked. If left blank `latex' will be used as the default command name. + +LATEX_CMD_NAME = latex + +# The MAKEINDEX_CMD_NAME tag can be used to specify the command name to +# generate index for LaTeX. If left blank `makeindex' will be used as the +# default command name. + +MAKEINDEX_CMD_NAME = makeindex + +# If the COMPACT_LATEX tag is set to YES Doxygen generates more compact +# LaTeX documents. This may be useful for small projects and may help to +# save some trees in general. + +COMPACT_LATEX = NO + +# The PAPER_TYPE tag can be used to set the paper type that is used +# by the printer. Possible values are: a4, a4wide, letter, legal and +# executive. If left blank a4wide will be used. + +PAPER_TYPE = a4wide + +# The EXTRA_PACKAGES tag can be to specify one or more names of LaTeX +# packages that should be included in the LaTeX output. + +EXTRA_PACKAGES = + +# The LATEX_HEADER tag can be used to specify a personal LaTeX header for +# the generated latex document. The header should contain everything until +# the first chapter. If it is left blank doxygen will generate a +# standard header. Notice: only use this tag if you know what you are doing! + +LATEX_HEADER = + +# If the PDF_HYPERLINKS tag is set to YES, the LaTeX that is generated +# is prepared for conversion to pdf (using ps2pdf). The pdf file will +# contain links (just like the HTML output) instead of page references +# This makes the output suitable for online browsing using a pdf viewer. + +PDF_HYPERLINKS = YES + +# If the USE_PDFLATEX tag is set to YES, pdflatex will be used instead of +# plain latex in the generated Makefile. Set this option to YES to get a +# higher quality PDF documentation. + +USE_PDFLATEX = YES + +# If the LATEX_BATCHMODE tag is set to YES, doxygen will add the \\batchmode. +# command to the generated LaTeX files. This will instruct LaTeX to keep +# running if errors occur, instead of asking the user for help. +# This option is also used when generating formulas in HTML. + +LATEX_BATCHMODE = NO + +# If LATEX_HIDE_INDICES is set to YES then doxygen will not +# include the index chapters (such as File Index, Compound Index, etc.) +# in the output. + +LATEX_HIDE_INDICES = NO + +#--------------------------------------------------------------------------- +# configuration options related to the RTF output +#--------------------------------------------------------------------------- + +# If the GENERATE_RTF tag is set to YES Doxygen will generate RTF output +# The RTF output is optimized for Word 97 and may not look very pretty with +# other RTF readers or editors. + +GENERATE_RTF = NO + +# The RTF_OUTPUT tag is used to specify where the RTF docs will be put. +# If a relative path is entered the value of OUTPUT_DIRECTORY will be +# put in front of it. If left blank `rtf' will be used as the default path. + +RTF_OUTPUT = rtf + +# If the COMPACT_RTF tag is set to YES Doxygen generates more compact +# RTF documents. This may be useful for small projects and may help to +# save some trees in general. + +COMPACT_RTF = NO + +# If the RTF_HYPERLINKS tag is set to YES, the RTF that is generated +# will contain hyperlink fields. The RTF file will +# contain links (just like the HTML output) instead of page references. +# This makes the output suitable for online browsing using WORD or other +# programs which support those fields. +# Note: wordpad (write) and others do not support links. + +RTF_HYPERLINKS = NO + +# Load stylesheet definitions from file. Syntax is similar to doxygen's +# config file, i.e. a series of assignments. You only have to provide +# replacements, missing definitions are set to their default value. + +RTF_STYLESHEET_FILE = + +# Set optional variables used in the generation of an rtf document. +# Syntax is similar to doxygen's config file. + +RTF_EXTENSIONS_FILE = + +#--------------------------------------------------------------------------- +# configuration options related to the man page output +#--------------------------------------------------------------------------- + +# If the GENERATE_MAN tag is set to YES (the default) Doxygen will +# generate man pages + +GENERATE_MAN = NO + +# The MAN_OUTPUT tag is used to specify where the man pages will be put. +# If a relative path is entered the value of OUTPUT_DIRECTORY will be +# put in front of it. If left blank `man' will be used as the default path. + +MAN_OUTPUT = man + +# The MAN_EXTENSION tag determines the extension that is added to +# the generated man pages (default is the subroutine's section .3) + +MAN_EXTENSION = .3 + +# If the MAN_LINKS tag is set to YES and Doxygen generates man output, +# then it will generate one additional man file for each entity +# documented in the real man page(s). These additional files +# only source the real man page, but without them the man command +# would be unable to find the correct page. The default is NO. + +MAN_LINKS = NO + +#--------------------------------------------------------------------------- +# configuration options related to the XML output +#--------------------------------------------------------------------------- + +# If the GENERATE_XML tag is set to YES Doxygen will +# generate an XML file that captures the structure of +# the code including all documentation. + +GENERATE_XML = NO + +# The XML_OUTPUT tag is used to specify where the XML pages will be put. +# If a relative path is entered the value of OUTPUT_DIRECTORY will be +# put in front of it. If left blank `xml' will be used as the default path. + +XML_OUTPUT = xml + +# The XML_SCHEMA tag can be used to specify an XML schema, +# which can be used by a validating XML parser to check the +# syntax of the XML files. + +XML_SCHEMA = + +# The XML_DTD tag can be used to specify an XML DTD, +# which can be used by a validating XML parser to check the +# syntax of the XML files. + +XML_DTD = + +# If the XML_PROGRAMLISTING tag is set to YES Doxygen will +# dump the program listings (including syntax highlighting +# and cross-referencing information) to the XML output. Note that +# enabling this will significantly increase the size of the XML output. + +XML_PROGRAMLISTING = YES + +#--------------------------------------------------------------------------- +# configuration options for the AutoGen Definitions output +#--------------------------------------------------------------------------- + +# If the GENERATE_AUTOGEN_DEF tag is set to YES Doxygen will +# generate an AutoGen Definitions (see autogen.sf.net) file +# that captures the structure of the code including all +# documentation. Note that this feature is still experimental +# and incomplete at the moment. + +GENERATE_AUTOGEN_DEF = NO + +#--------------------------------------------------------------------------- +# configuration options related to the Perl module output +#--------------------------------------------------------------------------- + +# If the GENERATE_PERLMOD tag is set to YES Doxygen will +# generate a Perl module file that captures the structure of +# the code including all documentation. Note that this +# feature is still experimental and incomplete at the +# moment. + +GENERATE_PERLMOD = NO + +# If the PERLMOD_LATEX tag is set to YES Doxygen will generate +# the necessary Makefile rules, Perl scripts and LaTeX code to be able +# to generate PDF and DVI output from the Perl module output. + +PERLMOD_LATEX = NO + +# If the PERLMOD_PRETTY tag is set to YES the Perl module output will be +# nicely formatted so it can be parsed by a human reader. This is useful +# if you want to understand what is going on. On the other hand, if this +# tag is set to NO the size of the Perl module output will be much smaller +# and Perl will parse it just the same. + +PERLMOD_PRETTY = YES + +# The names of the make variables in the generated doxyrules.make file +# are prefixed with the string contained in PERLMOD_MAKEVAR_PREFIX. +# This is useful so different doxyrules.make files included by the same +# Makefile don't overwrite each other's variables. + +PERLMOD_MAKEVAR_PREFIX = + +#--------------------------------------------------------------------------- +# Configuration options related to the preprocessor +#--------------------------------------------------------------------------- + +# If the ENABLE_PREPROCESSING tag is set to YES (the default) Doxygen will +# evaluate all C-preprocessor directives found in the sources and include +# files. + +ENABLE_PREPROCESSING = YES + +# If the MACRO_EXPANSION tag is set to YES Doxygen will expand all macro +# names in the source code. If set to NO (the default) only conditional +# compilation will be performed. Macro expansion can be done in a controlled +# way by setting EXPAND_ONLY_PREDEF to YES. + +MACRO_EXPANSION = NO + +# If the EXPAND_ONLY_PREDEF and MACRO_EXPANSION tags are both set to YES +# then the macro expansion is limited to the macros specified with the +# PREDEFINED and EXPAND_AS_DEFINED tags. + +EXPAND_ONLY_PREDEF = NO + +# If the SEARCH_INCLUDES tag is set to YES (the default) the includes files +# in the INCLUDE_PATH (see below) will be search if a #include is found. + +SEARCH_INCLUDES = YES + +# The INCLUDE_PATH tag can be used to specify one or more directories that +# contain include files that are not input files but should be processed by +# the preprocessor. + +INCLUDE_PATH = + +# You can use the INCLUDE_FILE_PATTERNS tag to specify one or more wildcard +# patterns (like *.h and *.hpp) to filter out the header-files in the +# directories. If left blank, the patterns specified with FILE_PATTERNS will +# be used. + +INCLUDE_FILE_PATTERNS = + +# The PREDEFINED tag can be used to specify one or more macro names that +# are defined before the preprocessor is started (similar to the -D option of +# gcc). The argument of the tag is a list of macros of the form: name +# or name=definition (no spaces). If the definition and the = are +# omitted =1 is assumed. To prevent a macro definition from being +# undefined via #undef or recursively expanded use the := operator +# instead of the = operator. + +PREDEFINED = SYNFIG_NO_DEPRECATED \ + DOXYGEN_SKIP + +# If the MACRO_EXPANSION and EXPAND_ONLY_PREDEF tags are set to YES then +# this tag can be used to specify a list of macro names that should be expanded. +# The macro definition that is found in the sources will be used. +# Use the PREDEFINED tag if you want to use a different macro definition. + +EXPAND_AS_DEFINED = + +# If the SKIP_FUNCTION_MACROS tag is set to YES (the default) then +# doxygen's preprocessor will remove all function-like macros that are alone +# on a line, have an all uppercase name, and do not end with a semicolon. Such +# function macros are typically used for boiler-plate code, and will confuse +# the parser if not removed. + +SKIP_FUNCTION_MACROS = YES + +#--------------------------------------------------------------------------- +# Configuration::additions related to external references +#--------------------------------------------------------------------------- + +# The TAGFILES option can be used to specify one or more tagfiles. +# Optionally an initial location of the external documentation +# can be added for each tagfile. The format of a tag file without +# this location is as follows: +# TAGFILES = file1 file2 ... +# Adding location for the tag files is done as follows: +# TAGFILES = file1=loc1 "file2 = loc2" ... +# where "loc1" and "loc2" can be relative or absolute paths or +# URLs. If a location is present for each tag, the installdox tool +# does not have to be run to correct the links. +# Note that each tag file must have a unique name +# (where the name does NOT include the path) +# If a tag file is not located in the directory in which doxygen +# is run, you must also specify the path to the tagfile here. + +TAGFILES = + +# When a file name is specified after GENERATE_TAGFILE, doxygen will create +# a tag file that is based on the input files it reads. + +GENERATE_TAGFILE = + +# If the ALLEXTERNALS tag is set to YES all external classes will be listed +# in the class index. If set to NO only the inherited external classes +# will be listed. + +ALLEXTERNALS = NO + +# If the EXTERNAL_GROUPS tag is set to YES all external groups will be listed +# in the modules index. If set to NO, only the current project's groups will +# be listed. + +EXTERNAL_GROUPS = YES + +# The PERL_PATH should be the absolute path and name of the perl script +# interpreter (i.e. the result of `which perl'). + +PERL_PATH = /usr/bin/perl + +#--------------------------------------------------------------------------- +# Configuration options related to the dot tool +#--------------------------------------------------------------------------- + +# If the CLASS_DIAGRAMS tag is set to YES (the default) Doxygen will +# generate a inheritance diagram (in HTML, RTF and LaTeX) for classes with base +# or super classes. Setting the tag to NO turns the diagrams off. Note that +# this option is superseded by the HAVE_DOT option below. This is only a +# fallback. It is recommended to install and use dot, since it yields more +# powerful graphs. + +CLASS_DIAGRAMS = YES + +# If set to YES, the inheritance and collaboration graphs will hide +# inheritance and usage relations if the target is undocumented +# or is not a class. + +HIDE_UNDOC_RELATIONS = YES + +# If you set the HAVE_DOT tag to YES then doxygen will assume the dot tool is +# available from the path. This tool is part of Graphviz, a graph visualization +# toolkit from AT&T and Lucent Bell Labs. The other options in this section +# have no effect if this option is set to NO (the default) + +HAVE_DOT = NO + +# If the CLASS_GRAPH and HAVE_DOT tags are set to YES then doxygen +# will generate a graph for each documented class showing the direct and +# indirect inheritance relations. Setting this tag to YES will force the +# the CLASS_DIAGRAMS tag to NO. + +CLASS_GRAPH = YES + +# If the COLLABORATION_GRAPH and HAVE_DOT tags are set to YES then doxygen +# will generate a graph for each documented class showing the direct and +# indirect implementation dependencies (inheritance, containment, and +# class references variables) of the class with other documented classes. + +COLLABORATION_GRAPH = YES + +# If the GROUP_GRAPHS and HAVE_DOT tags are set to YES then doxygen +# will generate a graph for groups, showing the direct groups dependencies + +GROUP_GRAPHS = YES + +# If the UML_LOOK tag is set to YES doxygen will generate inheritance and +# collaboration diagrams in a style similar to the OMG's Unified Modeling +# Language. + +UML_LOOK = NO + +# If set to YES, the inheritance and collaboration graphs will show the +# relations between templates and their instances. + +TEMPLATE_RELATIONS = YES + +# If the ENABLE_PREPROCESSING, SEARCH_INCLUDES, INCLUDE_GRAPH, and HAVE_DOT +# tags are set to YES then doxygen will generate a graph for each documented +# file showing the direct and indirect include dependencies of the file with +# other documented files. + +INCLUDE_GRAPH = YES + +# If the ENABLE_PREPROCESSING, SEARCH_INCLUDES, INCLUDED_BY_GRAPH, and +# HAVE_DOT tags are set to YES then doxygen will generate a graph for each +# documented header file showing the documented files that directly or +# indirectly include this file. + +INCLUDED_BY_GRAPH = YES + +# If the CALL_GRAPH and HAVE_DOT tags are set to YES then doxygen will +# generate a call dependency graph for every global function or class method. +# Note that enabling this option will significantly increase the time of a run. +# So in most cases it will be better to enable call graphs for selected +# functions only using the \callgraph command. + +CALL_GRAPH = NO + +# If the GRAPHICAL_HIERARCHY and HAVE_DOT tags are set to YES then doxygen +# will graphical hierarchy of all classes instead of a textual one. + +GRAPHICAL_HIERARCHY = YES + +# If the DIRECTORY_GRAPH, SHOW_DIRECTORIES and HAVE_DOT tags are set to YES +# then doxygen will show the dependencies a directory has on other directories +# in a graphical way. The dependency relations are determined by the #include +# relations between the files in the directories. + +DIRECTORY_GRAPH = YES + +# The DOT_IMAGE_FORMAT tag can be used to set the image format of the images +# generated by dot. Possible values are png, jpg, or gif +# If left blank png will be used. + +DOT_IMAGE_FORMAT = gif + +# The tag DOT_PATH can be used to specify the path where the dot tool can be +# found. If left blank, it is assumed the dot tool can be found in the path. + +DOT_PATH = + +# The DOTFILE_DIRS tag can be used to specify one or more directories that +# contain dot files that are included in the documentation (see the +# \dotfile command). + +DOTFILE_DIRS = + +# The MAX_DOT_GRAPH_WIDTH tag can be used to set the maximum allowed width +# (in pixels) of the graphs generated by dot. If a graph becomes larger than +# this value, doxygen will try to truncate the graph, so that it fits within +# the specified constraint. Beware that most browsers cannot cope with very +# large images. + +MAX_DOT_GRAPH_WIDTH = 1024 + +# The MAX_DOT_GRAPH_HEIGHT tag can be used to set the maximum allows height +# (in pixels) of the graphs generated by dot. If a graph becomes larger than +# this value, doxygen will try to truncate the graph, so that it fits within +# the specified constraint. Beware that most browsers cannot cope with very +# large images. + +MAX_DOT_GRAPH_HEIGHT = 1024 + +# The MAX_DOT_GRAPH_DEPTH tag can be used to set the maximum depth of the +# graphs generated by dot. A depth value of 3 means that only nodes reachable +# from the root by following a path via at most 3 edges will be shown. Nodes +# that lay further from the root node will be omitted. Note that setting this +# option to 1 or 2 may greatly reduce the computation time needed for large +# code bases. Also note that a graph may be further truncated if the graph's +# image dimensions are not sufficient to fit the graph (see MAX_DOT_GRAPH_WIDTH +# and MAX_DOT_GRAPH_HEIGHT). If 0 is used for the depth value (the default), +# the graph is not depth-constrained. + +MAX_DOT_GRAPH_DEPTH = 0 + +# Set the DOT_TRANSPARENT tag to YES to generate images with a transparent +# background. This is disabled by default, which results in a white background. +# Warning: Depending on the platform used, enabling this option may lead to +# badly anti-aliased labels on the edges of a graph (i.e. they become hard to +# read). + +DOT_TRANSPARENT = NO + +# Set the DOT_MULTI_TARGETS tag to YES allow dot to generate multiple output +# files in one run (i.e. multiple -o and -T options on the command line). This +# makes dot run faster, but since only newer versions of dot (>1.8.10) +# support this, this feature is disabled by default. + +DOT_MULTI_TARGETS = NO + +# If the GENERATE_LEGEND tag is set to YES (the default) Doxygen will +# generate a legend page explaining the meaning of the various boxes and +# arrows in the dot generated graphs. + +GENERATE_LEGEND = YES + +# If the DOT_CLEANUP tag is set to YES (the default) Doxygen will +# remove the intermediate dot files that are used to generate +# the various graphs. + +DOT_CLEANUP = YES + +#--------------------------------------------------------------------------- +# Configuration::additions related to the search engine +#--------------------------------------------------------------------------- + +# The SEARCHENGINE tag specifies whether or not a search engine should be +# used. If set to NO the values of all tags below this one will be ignored. + +SEARCHENGINE = NO diff --git a/synfig-core/tags/stable/config/freetype2.m4 b/synfig-core/tags/stable/config/freetype2.m4 new file mode 100644 index 0000000..4a564ac --- /dev/null +++ b/synfig-core/tags/stable/config/freetype2.m4 @@ -0,0 +1,146 @@ +# Configure paths for FreeType2 +# Marcelo Magallon 2001-10-26, based on gtk.m4 by Owen Taylor + +dnl AC_CHECK_FT2([MINIMUM-VERSION, [ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND]]]) +dnl Test for FreeType2, and define FT2_CFLAGS and FT2_LIBS +dnl +AC_DEFUN(AC_CHECK_FT2, +[dnl +dnl Get the cflags and libraries from the freetype-config script +dnl +AC_ARG_WITH(ft-prefix, +[ --with-ft-prefix=PREFIX + Prefix where FreeType is installed (optional)], + ft_config_prefix="$withval", ft_config_prefix="") +AC_ARG_WITH(ft-exec-prefix, +[ --with-ft-exec-prefix=PREFIX + Exec prefix where FreeType is installed (optional)], + ft_config_exec_prefix="$withval", ft_config_exec_prefix="") +AC_ARG_ENABLE(freetypetest, +[ --disable-freetypetest Do not try to compile and run + a test FreeType program], + [], enable_fttest=yes) + +if test x$ft_config_exec_prefix != x ; then + ft_config_args="$ft_config_args --exec-prefix=$ft_config_exec_prefix" + if test x${FT2_CONFIG+set} != xset ; then + FT2_CONFIG=$ft_config_exec_prefix/bin/freetype-config + fi +fi +if test x$ft_config_prefix != x ; then + ft_config_args="$ft_config_args --prefix=$ft_config_prefix" + if test x${FT2_CONFIG+set} != xset ; then + FT2_CONFIG=$ft_config_prefix/bin/freetype-config + fi +fi +AC_PATH_PROG(FT2_CONFIG, freetype-config, no) + +min_ft_version=ifelse([$1], ,6.1.0,$1) +AC_MSG_CHECKING(for FreeType - version >= $min_ft_version) +no_ft="" +if test "$FT2_CONFIG" = "no" ; then + no_ft=yes +else + FT2_CFLAGS=`$FT2_CONFIG $ft_config_args --cflags` + FT2_LIBS=`$FT2_CONFIG $ft_config_args --libs` + ft_config_major_version=`$FT2_CONFIG $ft_config_args --version | \ + sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\1/'` + ft_config_minor_version=`$FT2_CONFIG $ft_config_args --version | \ + sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\2/'` + ft_config_micro_version=`$FT2_CONFIG $ft_config_args --version | \ + sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\3/'` + ft_min_major_version=`echo $min_ft_version | \ + sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\1/'` + ft_min_minor_version=`echo $min_ft_version | \ + sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\2/'` + ft_min_micro_version=`echo $min_ft_version | \ + sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\3/'` + if test x$enable_fttest = xyes ; then + ft_config_is_lt="" + if test $ft_config_major_version -lt $ft_min_major_version ; then + ft_config_is_lt=yes + else + if test $ft_config_major_version -eq $ft_min_major_version ; then + if test $ft_config_minor_version -lt $ft_min_minor_version ; then + ft_config_is_lt=yes + else + if test $ft_config_minor_version -eq $ft_min_minor_version ; then + if test $ft_config_micro_version -lt $ft_min_micro_version ; then + ft_config_is_lt=yes + fi + fi + fi + fi + fi + if test x$ft_config_is_lt = xyes ; then + no_ft=yes + else + ac_save_CFLAGS="$CFLAGS" + ac_save_CXXFLAGS="$CFLAGS" + ac_save_LIBS="$LIBS" + CFLAGS="$CFLAGS $FT2_CFLAGS" + CXXFLAGS="$CXXFLAGS $FT2_CFLAGS" + LIBS="$FT2_LIBS $LIBS" +dnl +dnl Sanity checks for the results of freetype-config to some extent +dnl + AC_TRY_RUN([ +#include +#include FT_FREETYPE_H +#include +#include + +int +main() +{ + FT_Library library; + FT_Error error; + + error = FT_Init_FreeType(&library); + + if (error) + return 1; + else + { + FT_Done_FreeType(library); + return 0; + } +} +],, no_ft=yes,[echo $ac_n "cross compiling; assumed OK... $ac_c"]) + CFLAGS="$ac_save_CFLAGS" + CXXFLAGS="$ac_save_CXXFLAGS" + LIBS="$ac_save_LIBS" + fi # test $ft_config_version -lt $ft_min_version + fi # test x$enable_fttest = xyes +fi # test "$FT2_CONFIG" = "no" +if test x$no_ft = x ; then + AC_MSG_RESULT(yes) + ifelse([$2], , :, [$2]) +else + AC_MSG_RESULT(no) + if test "$FT2_CONFIG" = "no" ; then + echo "*** The freetype-config script installed by FreeType 2 could not be found." + echo "*** If FreeType 2 was installed in PREFIX, make sure PREFIX/bin is in" + echo "*** your path, or set the FT2_CONFIG environment variable to the" + echo "*** full path to freetype-config." + else + if test x$ft_config_is_lt = xyes ; then + echo "*** Your installed version of the FreeType 2 library is too old." + echo "*** If you have different versions of FreeType 2, make sure that" + echo "*** correct values for --with-ft-prefix or --with-ft-exec-prefix" + echo "*** are used, or set the FT2_CONFIG environment variable to the" + echo "*** full path to freetype-config." + else + echo "*** The FreeType test program failed to run. If your system uses" + echo "*** shared libraries and they are installed outside the normal" + echo "*** system library path, make sure the variable LD_LIBRARY_PATH" + echo "*** (or whatever is appropiate for your system) is correctly set." + fi + fi + FT2_CFLAGS="" + FT2_LIBS="" + ifelse([$3], , :, [$3]) +fi +AC_SUBST(FT2_CFLAGS) +AC_SUBST(FT2_LIBS) +]) diff --git a/synfig-core/tags/stable/config/libxml++.m4 b/synfig-core/tags/stable/config/libxml++.m4 new file mode 100644 index 0000000..35edee9 --- /dev/null +++ b/synfig-core/tags/stable/config/libxml++.m4 @@ -0,0 +1,23 @@ +dnl AC_LIBXMLPP([ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND]]) + +AC_DEFUN(AM_LIBXMLPP, +[ + +AC_PATH_PROG(XMLPP_CONFIG,xml++-config,no) + +AC_MSG_CHECKING(for libxml++) + +if $XMLPP_CONFIG --libs print > /dev/null 2>&1; then + AC_MSG_RESULT(yes) + LIBXMLPP_CFLAGS=`xml++-config --cflags` + LIBXMLPP_LIBS=`xml++-config --libs` + AC_SUBST(LIBXMLPP_CFLAGS) + AC_SUBST(LIBXMLPP_LIBS) + ifelse([$1], , :, [$1]) +else + AC_MSG_RESULT(no) + ifelse([$2], , , [$2]) +fi + +]) + diff --git a/synfig-core/tags/stable/config/libxml.m4 b/synfig-core/tags/stable/config/libxml.m4 new file mode 100644 index 0000000..f6bd51f --- /dev/null +++ b/synfig-core/tags/stable/config/libxml.m4 @@ -0,0 +1,389 @@ +# Configure paths for LIBXML2 +# Toshio Kuratomi 2001-04-21 +# Adapted from: +# Configure paths for GLIB +# Owen Taylor 97-11-3 + +dnl AM_PATH_XML([MINIMUM-VERSION, [ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND]]]) +dnl Test for XML, and define XML_CFLAGS and XML_LIBS +dnl +AC_DEFUN(AM_PATH_XML,[ +AC_ARG_WITH(xml-prefix, + [ --with-xml-prefix=PFX Prefix where libxml is installed (optional)], + xml_config_prefix="$withval", xml_config_prefix="") +AC_ARG_WITH(xml-exec-prefix, + [ --with-xml-exec-prefix=PFX Exec prefix where libxml is installed (optional)], + xml_config_exec_prefix="$withval", xml_config_exec_prefix="") +AC_ARG_ENABLE(xmltest, + [ --disable-xmltest Do not try to compile and run a test LIBXML program],, + enable_xmltest=yes) + + if test x$xml_config_exec_prefix != x ; then + xml_config_args="$xml_config_args --exec-prefix=$xml_config_exec_prefix" + if test x${XML_CONFIG+set} != xset ; then + XML_CONFIG=$xml_config_exec_prefix/bin/xml-config + fi + fi + if test x$xml_config_prefix != x ; then + xml_config_args="$xml_config_args --prefix=$xml_config_prefix" + if test x${XML_CONFIG+set} != xset ; then + XML_CONFIG=$xml_config_prefix/bin/xml-config + fi + fi + + AC_PATH_PROG(XML_CONFIG, xml-config, no) + min_xml_version=ifelse([$1], ,1.0.0,[$1]) + AC_MSG_CHECKING(for libxml - version >= $min_xml_version) + no_xml="" + if test "$XML_CONFIG" = "no" ; then + no_xml=yes + else + XML_CFLAGS=`$XML_CONFIG $xml_config_args --cflags` + XML_LIBS=`$XML_CONFIG $xml_config_args --libs` + xml_config_major_version=`$XML_CONFIG $xml_config_args --version | \ + sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\1/'` + xml_config_minor_version=`$XML_CONFIG $xml_config_args --version | \ + sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\2/'` + xml_config_micro_version=`$XML_CONFIG $xml_config_args --version | \ + sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\3/'` + if test "x$enable_xmltest" = "xyes" ; then + ac_save_CFLAGS="$CFLAGS" + ac_save_LIBS="$LIBS" + CFLAGS="$CFLAGS $XML_CFLAGS" + LIBS="$XML_LIBS $LIBS" +dnl +dnl Now check if the installed libxml is sufficiently new. +dnl (Also sanity checks the results of xml-config to some extent) +dnl + rm -f conf.xmltest + AC_TRY_RUN([ +#include +#include +#include +#include + +int +main() +{ + int xml_major_version, xml_minor_version, xml_micro_version; + int major, minor, micro; + char *tmp_version; + int tmp_int_version; + + system("touch conf.xmltest"); + + /* Capture xml-config output via autoconf/configure variables */ + /* HP/UX 9 (%@#!) writes to sscanf strings */ + tmp_version = (char *)strdup("$min_xml_version"); + if (sscanf(tmp_version, "%d.%d.%d", &major, &minor, µ) != 3) { + printf("%s, bad version string from xml-config\n", "$min_xml_version"); + exit(1); + } + free(tmp_version); + + /* Capture the version information from the header files */ + tmp_int_version = LIBXML_VERSION; + xml_major_version=tmp_int_version / 10000; + xml_minor_version=(tmp_int_version - xml_major_version * 10000) / 100; + xml_micro_version=(tmp_int_version - xml_minor_version * 100 - xml_major_version * 10000); + + /* Compare xml-config output to the libxml headers */ + if ((xml_major_version != $xml_config_major_version) || + (xml_minor_version != $xml_config_minor_version) +#if 0 + || +/* The last released version of libxml-1.x has an incorrect micro version in + * the header file so neither the includes nor the library will match the + * micro_version to the output of xml-config + */ + (xml_micro_version != $xml_config_micro_version) +#endif + ) + + { + printf("*** libxml header files (version %d.%d.%d) do not match\n", + xml_major_version, xml_minor_version, xml_micro_version); + printf("*** xml-config (version %d.%d.%d)\n", + $xml_config_major_version, $xml_config_minor_version, $xml_config_micro_version); + return 1; + } +/* Compare the headers to the library to make sure we match */ + /* Less than ideal -- doesn't provide us with return value feedback, + * only exits if there's a serious mismatch between header and library. + */ + LIBXML_TEST_VERSION; + + /* Test that the library is greater than our minimum version */ + if (($xml_config_major_version > major) || + (($xml_config_major_version == major) && ($xml_config_minor_version > minor)) || + (($xml_config_major_version == major) && ($xml_config_minor_version == minor) && + ($xml_config_micro_version >= micro))) + { + return 0; + } + else + { + printf("\n*** An old version of libxml (%d.%d.%d) was found.\n", + xml_major_version, xml_minor_version, xml_micro_version); + printf("*** You need a version of libxml newer than %d.%d.%d. The latest version of\n", + major, minor, micro); + printf("*** libxml is always available from ftp://ftp.xmlsoft.org.\n"); + printf("***\n"); + printf("*** If you have already installed a sufficiently new version, this error\n"); + printf("*** probably means that the wrong copy of the xml-config shell script is\n"); + printf("*** being found. The easiest way to fix this is to remove the old version\n"); + printf("*** of LIBXML, but you can also set the XML_CONFIG environment to point to the\n"); + printf("*** correct copy of xml-config. (In this case, you will have to\n"); + printf("*** modify your LD_LIBRARY_PATH enviroment variable, or edit /etc/ld.so.conf\n"); + printf("*** so that the correct libraries are found at run-time))\n"); + } + return 1; +} +],, no_xml=yes,[echo $ac_n "cross compiling; assumed OK... $ac_c"]) + CFLAGS="$ac_save_CFLAGS" + LIBS="$ac_save_LIBS" + fi + fi + + if test "x$no_xml" = x ; then + AC_MSG_RESULT(yes (version $xml_config_major_version.$xml_config_minor_version.$xml_config_micro_version)) + ifelse([$2], , :, [$2]) + else + AC_MSG_RESULT(no) + if test "$XML_CONFIG" = "no" ; then + echo "*** The xml-config script installed by LIBXML could not be found" + echo "*** If libxml was installed in PREFIX, make sure PREFIX/bin is in" + echo "*** your path, or set the XML_CONFIG environment variable to the" + echo "*** full path to xml-config." + else + if test -f conf.xmltest ; then + : + else + echo "*** Could not run libxml test program, checking why..." + CFLAGS="$CFLAGS $XML_CFLAGS" + LIBS="$LIBS $XML_LIBS" + AC_TRY_LINK([ +#include +#include +], [ LIBXML_TEST_VERSION; return 0;], + [ echo "*** The test program compiled, but did not run. This usually means" + echo "*** that the run-time linker is not finding LIBXML or finding the wrong" + echo "*** version of LIBXML. If it is not finding LIBXML, you'll need to set your" + echo "*** LD_LIBRARY_PATH environment variable, or edit /etc/ld.so.conf to point" + echo "*** to the installed location Also, make sure you have run ldconfig if that" + echo "*** is required on your system" + echo "***" + echo "*** If you have an old version installed, it is best to remove it, although" + echo "*** you may also be able to get things to work by modifying LD_LIBRARY_PATH" ], + [ echo "*** The test program failed to compile or link. See the file config.log for the" + echo "*** exact error that occured. This usually means LIBXML was incorrectly installed" + echo "*** or that you have moved LIBXML since it was installed. In the latter case, you" + echo "*** may want to edit the xml-config script: $XML_CONFIG" ]) + CFLAGS="$ac_save_CFLAGS" + LIBS="$ac_save_LIBS" + fi + fi + + XML_CFLAGS="" + XML_LIBS="" + ifelse([$3], , :, [$3]) + fi + AC_SUBST(XML_CFLAGS) + AC_SUBST(XML_LIBS) + rm -f conf.xmltest +]) + +# Configure paths for LIBXML2 +# Toshio Kuratomi 2001-04-21 +# Adapted from: +# Configure paths for GLIB +# Owen Taylor 97-11-3 + +dnl AM_PATH_XML2([MINIMUM-VERSION, [ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND]]]) +dnl Test for XML, and define XML_CFLAGS and XML_LIBS +dnl +AC_DEFUN(AM_PATH_XML2,[ +AC_ARG_WITH(xml-prefix, + [ --with-xml-prefix=PFX Prefix where libxml is installed (optional)], + xml_config_prefix="$withval", xml_config_prefix="") +AC_ARG_WITH(xml-exec-prefix, + [ --with-xml-exec-prefix=PFX Exec prefix where libxml is installed (optional)], + xml_config_exec_prefix="$withval", xml_config_exec_prefix="") +AC_ARG_ENABLE(xmltest, + [ --disable-xmltest Do not try to compile and run a test LIBXML program],, + enable_xmltest=yes) + + if test x$xml_config_exec_prefix != x ; then + xml_config_args="$xml_config_args --exec-prefix=$xml_config_exec_prefix" + if test x${XML2_CONFIG+set} != xset ; then + XML2_CONFIG=$xml_config_exec_prefix/bin/xml2-config + fi + fi + if test x$xml_config_prefix != x ; then + xml_config_args="$xml_config_args --prefix=$xml_config_prefix" + if test x${XML2_CONFIG+set} != xset ; then + XML2_CONFIG=$xml_config_prefix/bin/xml2-config + fi + fi + + AC_PATH_PROG(XML2_CONFIG, xml2-config, no) + min_xml_version=ifelse([$1], ,2.0.0,[$1]) + AC_MSG_CHECKING(for libxml - version >= $min_xml_version) + no_xml="" + if test "$XML2_CONFIG" = "no" ; then + no_xml=yes + else + XML_CFLAGS=`$XML2_CONFIG $xml_config_args --cflags` + XML_LIBS=`$XML2_CONFIG $xml_config_args --libs` + xml_config_major_version=`$XML2_CONFIG $xml_config_args --version | \ + sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\1/'` + xml_config_minor_version=`$XML2_CONFIG $xml_config_args --version | \ + sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\2/'` + xml_config_micro_version=`$XML2_CONFIG $xml_config_args --version | \ + sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\3/'` + if test "x$enable_xmltest" = "xyes" ; then + ac_save_CFLAGS="$CFLAGS" + ac_save_CXXFLAGS="$CXXFLAGS" + ac_save_LIBS="$LIBS" + CFLAGS="$CFLAGS $XML_CFLAGS" + CXXFLAGS="$CXXFLAGS $XML_CFLAGS" + LIBS="$XML_LIBS $LIBS" +dnl +dnl Now check if the installed libxml is sufficiently new. +dnl (Also sanity checks the results of xml2-config to some extent) +dnl + rm -f conf.xmltest + AC_TRY_RUN([ +#include +#include +#include +#include + +int +main() +{ + int xml_major_version, xml_minor_version, xml_micro_version; + int major, minor, micro; + char *tmp_version; + + system("touch conf.xmltest"); + + /* Capture xml2-config output via autoconf/configure variables */ + /* HP/UX 9 (%@#!) writes to sscanf strings */ + tmp_version = (char *)strdup("$min_xml_version"); + if (sscanf(tmp_version, "%d.%d.%d", &major, &minor, µ) != 3) { + printf("%s, bad version string from xml2-config\n", "$min_xml_version"); + exit(1); + } + free(tmp_version); + + /* Capture the version information from the header files */ + tmp_version = (char *)strdup(LIBXML_DOTTED_VERSION); + if (sscanf(tmp_version, "%d.%d.%d", &xml_major_version, &xml_minor_version, &xml_micro_version) != 3) { + printf("%s, bad version string from libxml includes\n", "LIBXML_DOTTED_VERSION"); + exit(1); + } + free(tmp_version); + + /* Compare xml2-config output to the libxml headers */ + if ((xml_major_version != $xml_config_major_version) || + (xml_minor_version != $xml_config_minor_version) || + (xml_micro_version != $xml_config_micro_version)) + { + printf("*** libxml header files (version %d.%d.%d) do not match\n", + xml_major_version, xml_minor_version, xml_micro_version); + printf("*** xml2-config (version %d.%d.%d)\n", + $xml_config_major_version, $xml_config_minor_version, $xml_config_micro_version); + return 1; + } +/* Compare the headers to the library to make sure we match */ + /* Less than ideal -- doesn't provide us with return value feedback, + * only exits if there's a serious mismatch between header and library. + */ + LIBXML_TEST_VERSION; + + /* Test that the library is greater than our minimum version */ + if ((xml_major_version > major) || + ((xml_major_version == major) && (xml_minor_version > minor)) || + ((xml_major_version == major) && (xml_minor_version == minor) && + (xml_micro_version >= micro))) + { + return 0; + } + else + { + printf("\n*** An old version of libxml (%d.%d.%d) was found.\n", + xml_major_version, xml_minor_version, xml_micro_version); + printf("*** You need a version of libxml newer than %d.%d.%d. The latest version of\n", + major, minor, micro); + printf("*** libxml is always available from ftp://ftp.xmlsoft.org.\n"); + printf("***\n"); + printf("*** If you have already installed a sufficiently new version, this error\n"); + printf("*** probably means that the wrong copy of the xml2-config shell script is\n"); + printf("*** being found. The easiest way to fix this is to remove the old version\n"); + printf("*** of LIBXML, but you can also set the XML2_CONFIG environment to point to the\n"); + printf("*** correct copy of xml2-config. (In this case, you will have to\n"); + printf("*** modify your LD_LIBRARY_PATH enviroment variable, or edit /etc/ld.so.conf\n"); + printf("*** so that the correct libraries are found at run-time))\n"); + } + return 1; +} +],, no_xml=yes,[echo $ac_n "cross compiling; assumed OK... $ac_c"]) + CFLAGS="$ac_save_CFLAGS" + CXXFLAGS="$ac_save_CXXFLAGS" + LIBS="$ac_save_LIBS" + fi + fi + + if test "x$no_xml" = x ; then + AC_MSG_RESULT(yes (version $xml_config_major_version.$xml_config_minor_version.$xml_config_micro_version)) + ifelse([$2], , :, [$2]) + else + AC_MSG_RESULT(no) + if test "$XML2_CONFIG" = "no" ; then + echo "*** The xml2-config script installed by LIBXML could not be found" + echo "*** If libxml was installed in PREFIX, make sure PREFIX/bin is in" + echo "*** your path, or set the XML2_CONFIG environment variable to the" + echo "*** full path to xml2-config." + else + if test -f conf.xmltest ; then + : + else + echo "*** Could not run libxml test program, checking why..." + CFLAGS="$CFLAGS $XML_CFLAGS" + CXXFLAGS="$CXXFLAGS $XML_CFLAGS" + LIBS="$LIBS $XML_LIBS" + AC_TRY_LINK([ +#include +#include +], [ LIBXML_TEST_VERSION; return 0;], + [ echo "*** The test program compiled, but did not run. This usually means" + echo "*** that the run-time linker is not finding LIBXML or finding the wrong" + echo "*** version of LIBXML. If it is not finding LIBXML, you'll need to set your" + echo "*** LD_LIBRARY_PATH environment variable, or edit /etc/ld.so.conf to point" + echo "*** to the installed location Also, make sure you have run ldconfig if that" + echo "*** is required on your system" + echo "***" + echo "*** If you have an old version installed, it is best to remove it, although" + echo "*** you may also be able to get things to work by modifying LD_LIBRARY_PATH" ], + [ echo "*** The test program failed to compile or link. See the file config.log for the" + echo "*** exact error that occured. This usually means LIBXML was incorrectly installed" + echo "*** or that you have moved LIBXML since it was installed. In the latter case, you" + echo "*** may want to edit the xml2-config script: $XML2_CONFIG" ]) + CFLAGS="$ac_save_CFLAGS" + CXXFLAGS="$ac_save_CXXFLAGS" + LIBS="$ac_save_LIBS" + fi + fi + + XML_CFLAGS="" + XML_LIBS="" + $3 + + + ifelse([$3], , :, [$3]) + fi + AC_SUBST(XML_CFLAGS) + AC_SUBST(XML_LIBS) + rm -f conf.xmltest +]) diff --git a/synfig-core/tags/stable/config/ltmain.patch b/synfig-core/tags/stable/config/ltmain.patch new file mode 100644 index 0000000..9d51a5c --- /dev/null +++ b/synfig-core/tags/stable/config/ltmain.patch @@ -0,0 +1,17 @@ +--- ltmain.bak Thu Apr 7 19:12:55 2005 ++++ ltmain.sh Thu Apr 7 19:20:28 2005 +@@ -5362,10 +5362,10 @@ + # At present, this check doesn't affect windows .dll's that + # are installed into $libdir/../bin (currently, that works fine) + # but it's something to keep an eye on. +- if test "$inst_prefix_dir" = "$destdir"; then +- $echo "$modename: error: cannot install \`$file' to a directory not ending in $libdir" 1>&2 +- exit 1 +- fi ++# if test "$inst_prefix_dir" = "$destdir"; then ++# $echo "$modename: error: cannot install \`$file' to a directory not ending in $libdir" 1>&2 ++# exit 1 ++# fi + + if test -n "$inst_prefix_dir"; then + # Stick the inst_prefix_dir data into the link command. diff --git a/synfig-core/tags/stable/config/package b/synfig-core/tags/stable/config/package new file mode 100755 index 0000000..ae31c14 --- /dev/null +++ b/synfig-core/tags/stable/config/package @@ -0,0 +1,292 @@ +#! /bin/csh -ef +# this file was orignally distributed by Apple in the Developer Tools package +#it is distributed under the Apple Open Source License +set version=0.2 +set prog = `/usr/bin/basename $0` +set usage = "Usage: $prog [-f] root-dir info-file [tiff-file] [-d dest-dir] [-r resource-dir] [-traditional | -gnutar] [-bzip]" +set noglob + +if (-x /usr/bin/mkbom) then + set mkbom=/usr/bin/mkbom + set lsbom=/usr/bin/lsbom +else + set mkbom=/usr/etc/mkbom + set lsbom=/usr/etc/lsbom +endif + +if (-x /usr/bin/awk) then + set awk=/usr/bin/awk +else + set awk=/bin/awk +endif +set bzip2=`which bzip2` +set gnutar=/usr/bin/gnutar +set tar=/usr/bin/tar +set pax=/bin/pax + +# gather parameters +if ($#argv == 0) then + echo $usage + exit(1) +endif +unset usebzip +while ( $#argv > 0 ) + switch ( $argv[1] ) + case -d: + if ( $?destDir ) then + echo ${prog}: dest-dir parameter already set to ${destDir}. + echo $usage + exit(1) + else if ( $#argv < 2 ) then + echo ${prog}: -d option requires destination directory. + echo $usage + exit(1) + else + set destDir = $argv[2] + shift; shift + breaksw + endif + case -f: + if ( $?rootDir ) then + echo ${prog}: root-dir parameter already set to ${rootDir}. + echo $usage + exit(1) + else if ( $#argv < 2 ) then + echo ${prog}: -f option requires package root directory. + echo $usage + exit(1) + else + set rootDir = $argv[2] + set fflag + shift; shift + breaksw + endif + case -r: + if ( $?resDir ) then + echo ${prog}: resource-dir parameter already set to ${resDir}. + echo $usage + exit(1) + else if ( $#argv < 2 ) then + echo ${prog}: -r option requires package resource directory. + echo $usage + exit(1) + else + set resDir = $argv[2] + shift; shift + breaksw + endif + case -traditional: + echo useing standard tar + set usetar + unset usegnutar + unset usepax + breaksw + case -gnutar: + echo using gnutar + set usegnutar + unset usepax + unset usetar + shift + case -bzip: + if (-x $bzip2) then + set usebzip + echo using bzip compression + else + echo COMPRESSION ERROR: You can not use BZIP2 you do not have it installed + exit(1) + endif + shift + breaksw + case -*: + echo ${prog}: Unknown option: $argv[1] + echo $usage + exit(1) + case *.info: + if ( $?info ) then + echo ${prog}: info-file parameter already set to ${info}. + echo $usage + exit(1) + else + set info = "$argv[1]" + shift + breaksw + endif + case *.tiff: + if ( $?tiff ) then + echo ${prog}: tiff-file parameter already set to ${tiff}. + echo $usage + exit(1) + else + set tiff = "$argv[1]" + shift + breaksw + endif + default: + if ( $?rootDir ) then + echo ${prog}: unrecognized parameter: $argv[1] + echo $usage + exit(1) + else + set rootDir = "$argv[1]" + shift + breaksw + endif + endsw +end + +# check for mandatory parameters +if ( ! $?rootDir ) then + echo ${prog}: missing root-dir parameter. + echo $usage + exit(1) +else if ( ! $?info) then + echo ${prog}: missing info-file parameter. + echo $usage + exit(1) +endif + +# destDir gets default value if unset on command line +if ( $?destDir ) then + /bin/mkdir -p $destDir +else + set destDir = . +endif + +# derive the root name for the package from the root name of the info file +set root = `/usr/bin/basename $info .info` + +# create package directory +set pkg = ${destDir}/${root}.pkg +echo Generating Installer package $pkg ... +if ( -e $pkg ) /bin/rm -rf $pkg +/bin/mkdir -p -m 755 $pkg +/bin/mkdir -p -m 755 $pkg/Contents +/bin/mkdir -p -m 755 $pkg/Contents/Resources +/bin/mkdir -p -m 755 $pkg/Contents/Resources/English.lproj/ +echo "gxpmpkg2" >$pkg/Contents/PkgInfo +chmod 755 $pkg/Contents/PkgInfo +# (gnu)tar/pax and compress root directory to package archive +echo -n " creating package archive ... " +if ( $?fflag ) then + set pkgTop = ${rootDir:t} + set parent = ${rootDir:h} + if ( "$parent" == "$pkgTop" ) set parent = "." +else + set parent = $rootDir + set pkgTop = . +endif +if ( $?usetar ) then + set pkgArchive = $pkg/Contents/Resources/$root.tar.Z + (cd $parent; $tar -w $pkgTop) | /usr/bin/tar -f -c > $pkgArchive +else if ( $?usegnutar ) then + if ( $?usebzip ) then + set pkgArchive = $pkg/Contents/Resources/$root.tar.bz2 + (cd $parent; $gnutar c $pkgTop) | $bzip2 -f -c > $pkgArchive + else + set pkgArchive = $pkg/Contents/Resources/$root.tar.gz + (cd $parent; $gnutar zcf $pkgArchive $pkgTop) + endif +else + set pkgArchive = $pkg/Contents/Resources/$root.pax.gz + (cd $parent; $pax -w -z -x cpio $pkgTop) > $pkgArchive +endif +/bin/chmod 755 $pkgArchive +echo done. + +# copy info file to package +set pkgInfo = $pkg/Contents/Resources/English.lproj/$root.info +echo -n " copying ${info:t} ... " +/bin/cp $info $pkgInfo +/bin/chmod 755 $pkgInfo +echo done. + +# copy tiff file to package +if ( $?tiff ) then + set pkgTiff = $pkg/$root.tiff + echo -n " copying ${tiff:t} ... " + /bin/cp $tiff $pkgTiff + /bin/chmod 444 $pkgTiff + echo done. +endif + +# copy resources to package +if ( $?resDir ) then + echo -n " copying ${resDir:t} ... " + + # don't want to see push/pop output + pushd $resDir > /dev/null + # get lists of resources. We'll want to change + # permissions on just these things later. + set directoriesInResDir = `find . -type d | grep -v -e .svn -e CVS` + set filesInResDir = `find . -type f` + popd > /dev/null + + # copy the resource directory contents into the package directory + foreach resFile (`cd $resDir && find . | grep -v -e .svn -e CVS`) + cp -r "$resDir/$resFile" "$pkg/Contents/Resources" + end + + pushd $pkg/Contents/Resources > /dev/null + # Change all directories to +r+x, except the package + # directory itself + foreach resFileItem ($directoriesInResDir) + if ( $resFileItem != "." ) then + chmod 755 "$resFileItem" + endif + end + # change all flat files to read only + foreach resFileItem ($filesInResDir) + if ( $resFileItem != "./.DS_Store" ) then + chmod 755 "$resFileItem" + endif + end + popd > /dev/null + + echo done. +endif + +# generate bom file +set pkgBom = $pkg/Contents/Resources/$root.bom +echo -n " generating bom file ... " +/bin/rm -f $pkgBom +if ( $?fflag ) then + $mkbom $parent $pkgBom >& /dev/null +else + $mkbom $rootDir $pkgBom >& /dev/null +endif +/bin/chmod 444 $pkgArchive +echo done. + +# generate sizes file +set pkgSizes = $pkg/Contents/Resources/$root.sizes +echo -n " generating sizes file ... " + +# compute number of files in package +set numFiles = `$lsbom -s $pkgBom | /usr/bin/wc -l` + +# compute package size when compressed +@ compressedSize = `/usr/bin/du -k -s $pkg | $awk '{print $1}'` +@ compressedSize += 3 # add 1KB each for sizes, location, status files + +@ infoSize = `/bin/ls -s $pkgInfo | $awk '{print $1}'` +@ bomSize = `/bin/ls -s $pkgBom | $awk '{print $1}'` +if ( $?tiff ) then + @ tiffSize = `/bin/ls -s $pkgTiff | $awk '{print $1}'` +else + @ tiffSize = 0 +endif + +@ installedSize = `/usr/bin/du -k -s $rootDir | $awk '{print $1}'` +@ installedSize += $infoSize + $bomSize + $tiffSize + 3 + +# echo size parameters to sizes file +echo NumFiles $numFiles > $pkgSizes +echo InstalledSize $installedSize >> $pkgSizes +echo CompressedSize $compressedSize >> $pkgSizes +echo done. +echo " ... finished generating $pkg." + +exit(0) + +# end package + diff --git a/synfig-core/tags/stable/config/pkgconfig.m4 b/synfig-core/tags/stable/config/pkgconfig.m4 new file mode 100644 index 0000000..c80e0ac --- /dev/null +++ b/synfig-core/tags/stable/config/pkgconfig.m4 @@ -0,0 +1,57 @@ + +dnl PKG_CHECK_MODULES(GSTUFF, gtk+-2.0 >= 1.3 glib = 1.3.4, action-if, action-not) +dnl defines GSTUFF_LIBS, GSTUFF_CFLAGS, see pkg-config man page +dnl also defines GSTUFF_PKG_ERRORS on error +AC_DEFUN(PKG_CHECK_MODULES, [ + succeeded=no + + if test -z "$PKG_CONFIG"; then + AC_PATH_PROG(PKG_CONFIG, pkg-config, no) + fi + + if test "$PKG_CONFIG" = "no" ; then + echo "*** The pkg-config script could not be found. Make sure it is" + echo "*** in your path, or set the PKG_CONFIG environment variable" + echo "*** to the full path to pkg-config." + echo "*** Or see http://www.freedesktop.org/software/pkgconfig to get pkg-config." + else + PKG_CONFIG_MIN_VERSION=0.9.0 + if $PKG_CONFIG --atleast-pkgconfig-version $PKG_CONFIG_MIN_VERSION; then + AC_MSG_CHECKING(for $2) + + if $PKG_CONFIG --exists "$2" ; then + AC_MSG_RESULT(yes) + succeeded=yes + + AC_MSG_CHECKING($1_CFLAGS) + $1_CFLAGS=`$PKG_CONFIG --cflags "$2"` + AC_MSG_RESULT($$1_CFLAGS) + + AC_MSG_CHECKING($1_LIBS) + $1_LIBS=`$PKG_CONFIG --libs "$2"` + AC_MSG_RESULT($$1_LIBS) + else + $1_CFLAGS="" + $1_LIBS="" + ## If we have a custom action on failure, don't print errors, but + ## do set a variable so people can do so. + $1_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "$2"` + ifelse([$4], ,echo $$1_PKG_ERRORS,) + fi + + AC_SUBST($1_CFLAGS) + AC_SUBST($1_LIBS) + else + echo "*** Your version of pkg-config is too old. You need version $PKG_CONFIG_MIN_VERSION or newer." + echo "*** See http://www.freedesktop.org/software/pkgconfig" + fi + fi + + if test $succeeded = yes; then + ifelse([$3], , :, [$3]) + else + ifelse([$4], , AC_MSG_ERROR([Library requirements ($2) not met; consider adjusting the PKG_CONFIG_PATH environment variable if your libraries are in a nonstandard prefix so pkg-config can find them.]), [$4]) + fi +]) + + diff --git a/synfig-core/tags/stable/config/pkgconfig.pc.in b/synfig-core/tags/stable/config/pkgconfig.pc.in new file mode 100644 index 0000000..f9b29d5 --- /dev/null +++ b/synfig-core/tags/stable/config/pkgconfig.pc.in @@ -0,0 +1,11 @@ +prefix=@prefix@ +exec_prefix=@exec_prefix@ +libdir=@libdir@ +includedir=@synfigincludedir@ + +Name: @PACKAGE_TARNAME@ +Description: @PACKAGE_NAME@ +Requires: @CONFIG_DEPS@ +Version: @VERSION@ +Libs: -L${libdir} @CONFIG_LIBS@ +Cflags: @CONFIG_CFLAGS@ -I${includedir} diff --git a/synfig-core/tags/stable/config/project.spec.in b/synfig-core/tags/stable/config/project.spec.in new file mode 100644 index 0000000..8720e8c --- /dev/null +++ b/synfig-core/tags/stable/config/project.spec.in @@ -0,0 +1,46 @@ + +Summary: Voria Extented Template Library +Name: @PACKAGE_TARNAME@-devel +Version: @VERSION_MAJ@.@VERSION_MIN@.@VERSION_REV@ +Release: @VERSION_REL@ +Copyright: free (see license), see /usr/share/doc/%{name}-%{version}/license.html +URL: http://www.synfig.com/ +Packager: Robert B. Quattlebaum Jr. +Group: Development/Languages +Icon: config/logo.gif +#Patch0: STLport-rename.patch +#Patch1: STLport-rules.patch +#Patch2: STLport-install-dir.patch +Buildroot: %{_tmppath}/%{name}-%{version}-%(id -u -n) + +%description +VoriaETL is a multiplatform class and template library +designed to complement and supplement the C++ STL. + +%prep +%setup +#%patch0 -p1 +#%patch1 -p1 +#%patch2 -p1 + +%build +./configure --prefix=$RPM_BUILD_ROOT +make + +%install +make install + +%clean +make clean + +%post -n @PACKAGE@-devel +/sbin/ldconfig + +%postun -n @PACKAGE@-devel +/sbin/ldconfig + +%files +%defattr(-,root,root) +%doc INSTALL README doc test +/usr/include/* + diff --git a/synfig-core/tags/stable/config/subs.m4 b/synfig-core/tags/stable/config/subs.m4 new file mode 100644 index 0000000..e1fc1e6 --- /dev/null +++ b/synfig-core/tags/stable/config/subs.m4 @@ -0,0 +1,277 @@ + +## AC_ARG_WARNINGS() +## +## Provide the --enable-warnings configure argument, set to 'minimum' +## by default. +## +AC_DEFUN([AC_ARG_WARNINGS], +[ + AC_ARG_ENABLE([warnings], + [ --enable-warnings=[[none|minimum|maximum|hardcore]] + Control compiler pickyness. [[default=maximum]]], + [gtkmm_enable_warnings="$enableval"], + gtkmm_enable_warnings="maximum") + + AC_MSG_CHECKING([for compiler warning flags to use]) + + gtkmm_warning_flags='' + + case "$gtkmm_enable_warnings" in + none|no) gtkmm_warning_flags='';; + minimum|yes) gtkmm_warning_flags='-Wall -Wno-unused-parameter';; + maximum) gtkmm_warning_flags='-W -Wall -Wno-unused-parameter';; + hardcore) gtkmm_warning_flags='-W -Wall -Werror -Wno-unused-parameter';; + esac + + gtkmm_use_flags='' + + if test "x$gtkmm_warning_flags" != "x" + then + echo 'int foo() { return 0; }' > conftest.cc + + for flag in $gtkmm_warning_flags + do + # Test whether the compiler accepts the flag. GCC doesn't bail + # out when given an unsupported flag but prints a warning, so + # check the compiler output instead. + gtkmm_cxx_out="`$CXX $flag -c conftest.cc 2>&1`" + rm -f conftest.$OBJEXT + test "x${gtkmm_cxx_out}" = "x" && \ + gtkmm_use_flags="${gtkmm_use_flags:+$gtkmm_use_flags }$flag" + done + + rm -f conftest.cc + gtkmm_cxx_out='' + fi + + if test "x$gtkmm_use_flags" != "x" + then + for flag in $gtkmm_use_flags + do + case " $CXXFLAGS " in + *" $flag "*) ;; # don't add flags twice + *) CXXFLAGS="${CXXFLAGS:+$CXXFLAGS }$flag";; + esac + done + else + gtkmm_use_flags='none' + fi + + AC_MSG_RESULT([$gtkmm_use_flags]) +]) + + + + +AC_DEFUN([AC_ARG_DEBUG], +[ + AC_MSG_CHECKING([for debug flags]) + + AC_ARG_ENABLE(debug,[ --enable-debug Build in debugging mode],[ + debug=$enableval + ],[ + debug="no" + ]) + debug_flags='' + + case "$debug" in + yes) + debug_flags="-D_DEBUG -g" + ;; + half) + debug_flags="-DNDEBUG -g" + ;; + no|*) + debug_flags="-DNDEBUG -Wno-deprecated" + ;; + esac + + + CXXFLAGS="`echo $CXXFLAGS | sed s:-g::` $debug_flags" + CFLAGS="`echo $CFLAGS | sed s:-g::` $debug_flags" + + AC_MSG_RESULT([$debug_flags]) +]) + + + + +## Optimisation level 2 in g++ 4.1 or g++ 4.2 breaks composition loading in the vector parsing function in loadcanvas.cpp (1509627) +AC_DEFUN([AC_ARG_OPTIMIZATION], +[ + AC_MSG_CHECKING([for optimization flags]) + + AC_ARG_ENABLE(optimization,[ --enable-optimization=[[0,1,2,3,4]] Select optimization level (default=1)],[ + optimization=$enableval + ],[ + optimization="1" + ]) + optimization_flags='' + case "$optimization" in + 0|no) optimization_flags="-O0";; + 1) optimization_flags="-O1";; + 2|yes) optimization_flags="-O2";; + pass1) optimization_flags="-O2 -fprofile-arcs";; + pass2) optimization_flags="-O2 -fbranch-probabilities";; + 3) optimization_flags="-O3";; + *) optimization_flags="-O4";; + esac + CXXFLAGS="`echo $CXXFLAGS | sed 's:-O.::g'` $optimization_flags" + CFLAGS="`echo $CFLAGS | sed 's:-O.::g'` $optimization_flags" + AC_MSG_RESULT([$optimization_flags]) +]) + +AC_DEFUN([AC_ARG_PROFILE_ARCS], +[ + AC_MSG_CHECKING([for arc profiling]) + + AC_ARG_ENABLE(profile-arcs,[ --enable-profile-arcs Enable arc profiling],[ + profile_arcs=$enableval + ],[ + profile_arcs=no + ]) + + if test $profile_arcs = "yes" ; then { + CXXFLAGS="$CXXFLAGS -fprofile-arcs"; + CFLAGS="$CFLAGS -fprofile-arcs"; + } ; fi + + AC_MSG_RESULT([$profile_arcs]) +]) + +AC_DEFUN([AC_ARG_BRANCH_PROBABILITIES], +[ + AC_MSG_CHECKING([for branch-probabilities]) + + AC_ARG_ENABLE(branch-probabilities,[ --enable-branch-probabilities Enable branch-probabilities],[ + branch_probabilities=$enableval + ],[ + branch_probabilities=no + ]) + + if test $branch_probabilities = "yes" ; then { + CXXFLAGS="$CXXFLAGS -fbranch-probabilities"; + CFLAGS="$CFLAGS -fbranch-probabilities"; + } ; fi + + AC_MSG_RESULT([$branch_probabilities]) +]) + +AC_DEFUN([AC_ARG_PROFILING], +[ + AC_MSG_CHECKING([for profiling]) + + AC_ARG_ENABLE(profiling,[ --enable-profiling Enable profiling using gprof],[ + profiling=$enableval + ],[ + profiling=no + ]) + + if test $profiling = "yes" ; then { + CFLAGS="$CFLAGS -pg"; + CXXFLAGS="$CXXFLAGS -pg"; + LDFLAGS="$LDFLAGS -pg"; + LIBS="$LIBS"; + } ; fi + + AC_MSG_RESULT([$profiling]) +]) + +AC_DEFUN([AC_ARG_TIMELIMIT], +[ + AC_ARG_ENABLE(timelimit,[ --enable-timelimit=[[days]] Set number of usable days(default=forever)],[ + death_time=$((`date +%s`+$enableval*60*60*24)) + AC_DEFINE_UNQUOTED(DEATH_TIME,$death_time, [ Describes the time at which the library will stop working ] ) + ], + [ + death_time="no" + ]) +]) + +AC_DEFUN([AC_ARG_LICENSE_KEY], +[ + AC_ARG_ENABLE(license_key,[ --enable-license-key Turn on license key requirement],[ + AC_DEFINE(LICENSE_KEY_REQUIRED,, [ Enables license key checks ] ) + ], + [ + license_key=no + ]) +]) + +AC_DEFUN([AC_ARG_TIMELIMIT], +[ + AC_ARG_ENABLE(timelimit,[ --enable-timelimit=[[days]] Set number of usable days(default=forever)],[ + death_time=$((`date +%s`+$enableval*60*60*24)) + AC_DEFINE_UNQUOTED(DEATH_TIME,$death_time, [ Describes the time at which the library will stop working ] ) + ], + [ + death_time="no" + ]) +]) + +MINGW_FLAGS="-mno-cygwin" + + +AC_DEFUN([AC_WIN32_QUIRKS], +[ + +case "$host" in + *mingw*) + AC_MSG_CHECKING([the flavor of the compiler]) + if ( $CC --version | grep -q mingw ) ; then { + AC_MSG_RESULT([compiler is mingw special]) + LIBTOOL_PATCH_SED=" + s/dir=\"\$absdir\"/dir=\`cygpath -d -m \"\$absdir\"\`/; + s/absdir=\`cd \"\$dir\" && pwd\`/absdir=\`cygpath -d -m \"\$dir\"\`/; + s/# We need an absolute path/dir=\`cygpath -d -m \"\$dir\"\` # We need an absolute path/; + s- /usr/lib- C:/mingw/lib-g; + s-\"/lib -\"C:/mingw/lib -g; + s- /lib/ - -g; + "; + sys_lib_dlsearch_path_spec="C:/mingw/lib" + ac_default_prefix=`cygpath -d -m "$ac_default_prefix"`; + } else { + AC_MSG_RESULT([compiler is cygwin stock, adding -mno-cygwin]) + CPP="$CPP $MINGW_FLAGS" + CC="$CC $MINGW_FLAGS" + CXX="$CXX $MINGW_FLAGS -L/usr/$host/lib -I/usr/include/c++/3.3.3/$host" + CXXCPP="$CXXCPP $MINGW_FLAGS" + + +} ; fi + + LTCC="gcc" + CXXFLAGS="$CXXFLAGS -LC:/GTK/lib" + CFLAGS="$CFLAGS -LC:/GTK/lib" + LDFLAGS="$LDFLAGS -lole32 -no-undefined -Wl,--export-all-symbols -Wl,--subsystem=console -Wl,--enable-runtime-pseudo-reloc" +dnl LDFLAGS="$LDFLAGS -lole32 -no-undefined -Wl,--export-all-symbols -Wl,--enable-auto-import -Wl,--subsystem=console -Wl,--enable-runtime-pseudo-reloc" + ;; + *cygwin*) + LDFLAGS="$LDFLAGS -lole32 -no-undefined -Wl,--export-all-symbols" +dnl LDFLAGS="$LDFLAGS -lole32 -no-undefined -Wl,--export-all-symbols -Wl,--enable-auto-import -Wl,--subsystem=console" + CXXFLAGS="$CXXFLAGS -I/target/include" + CFLAGS="$CFLAGS -I/target/include" + ;; + powerpc-apple*) + echo Adding mac-specific optimization flags. . . + CXXFLAGS="$CXXFLAGS $G5OPTFLAGS" + ;; +esac + + +]) + +AC_DEFUN([AC_LIBTOOL_PATCH], +[ + +if [[ "$LIBTOOL_PATCH_SED""x" != "x" ]] ; then { + printf "Patching libtool... " + cat libtool | sed "$LIBTOOL_PATCH_SED" > libtool2 + rm libtool + mv libtool2 libtool + chmod +x libtool + AC_MSG_RESULT([patched]) +} fi ; + + +]) diff --git a/synfig-core/tags/stable/config/synfig.m4 b/synfig-core/tags/stable/config/synfig.m4 new file mode 100644 index 0000000..f4f364b --- /dev/null +++ b/synfig-core/tags/stable/config/synfig.m4 @@ -0,0 +1,51 @@ +# SYNFIG M4 Macro +# For GNU Autotools +# $Id$ +# +# By Robert B. Quattlebaum Jr. +# AM_LIBXMLPP(,$2) + + +AC_DEFUN([SYNFIG_DEPS], +[ + USING_ETL(,$2) + AM_PATH_XML2(,,$2) + AC_CHECK_FUNCS([floor pow sqrt],,$2) + AM_LIBXMLPP(,$2) + + CXXFLAGS="$CXXFLAGS $LIBXMLPP_CFLAGS" + LIBS="$LIBS $LIBXMLPP_LIBS" + + $1 +]) + +AC_DEFUN([USING_SYNFIG], +[ + AC_ARG_WITH(synfig-includes, + [ --with-synfig-includes Specify location of synfig headers],[ + CXXFLAGS="$CXXFLAGS -I$withval" + ]) + + AC_PATH_PROG(SYNFIG_CONFIG,synfig-config,no) + + if test "$SYNFIG_CONFIG" = "no"; then + no_SYNFIG_config="yes" + $2 + else + AC_MSG_CHECKING([if $SYNFIG_CONFIG works]) + if $SYNFIG_CONFIG --libs >/dev/null 2>&1; then + SYNFIG_VERSION="`$SYNFIG_CONFIG --version`" + AC_MSG_RESULT([yes, $SYNFIG_VERSION]) + CXXFLAGS="$CXXFLAGS `$SYNFIG_CONFIG --cxxflags`" + $1 + else + AC_MSG_RESULT(no) + no_SYNFIG_config="yes" + $2 + fi + fi + + SYNFIG_DEPS($1,$2) +]) + + diff --git a/synfig-core/tags/stable/doc/hw-gfx-mapping.txt b/synfig-core/tags/stable/doc/hw-gfx-mapping.txt new file mode 100644 index 0000000..2c98e60 --- /dev/null +++ b/synfig-core/tags/stable/doc/hw-gfx-mapping.txt @@ -0,0 +1,75 @@ +Shader Calculation Model: + +inputs - variables that control the object +shader - joint vertex and pixel shader necessary for calculation + +Parameter Types: + Uniforms - things that are constant for the entire render setup + +Layer render properties: + +Blend - blends with layer behind (amount,blend-method), if complicated must use (pixel shader...). +Algorithmic - gets colors without sampling textures (exception for function look ups...). + +Sampling - samples a texture map as part of the color calc process. + Behind - use result(s) below to calculate color. + Internal - + Functions/Inputs - CPU generated internal texture maps (uniform) + Dependent - GPU generated texture maps (unknown use...) + +Parameters: + Uniforms - layer-wide stats (color, blend-mode, amount, below texture, coverage map, etc.) + Varying - pixel coordinate (in canv-space), texture coordinates for samplers, etc. + +For optimized stuff: + For layer constants that aren't simple calculations (i.e. changing the blend type), + we can use global constants (however since OpenGL doesn't allow you to define those + manually, we can probably do it with #defines or the like)... Just in time compiling + (optimized by caching these changes of course) would allow us to operate in an optimal + manner (rather than having dynamic branching at run time). + +Considerations for Framework: + +For truly optimal rendering, caching textures would be great, but it would take up a lot of space. So an intelligent resource system should be implemented. The resource eviction routine should be intelligent and should deal with the resources deepest in the tree (of course this doesn't entirely count for CPU generated stuff). A priority system should be generated, mostly depending on how often it's used and even more, how expensive it is to generate (cpu and gpu side...). + +Shader considerations for Operations: + +Blend functionality can be done in a separate pass unless the blending shader part is also programmable (requires less JIT compiling). + +Sampling function should be abstracted to use different forms of interpolation (for nearest and linear, the built in support is probably plenty). + +Iterated calculations: either done using dynamic looping in GLSL or multipass rendering. + + +Shader considerations for layers: + +solid_color - just use blend with an input global color parameter + +circle - can calculate alpha in falloff based on interpolated pixel values and then use that and the amount... color to blend (must work out whether or not to out put an amount map + color blend, or a color map + amount blend... currently using the first on CPU side). + +checker_board - same as circle, but a simpler calculation (antialiasing will require a few calculations using the values of the derivatives of the pixel coordinates) + +rectangle - same thing as the checker_board, but only need to worry about 2 edges per dimension. + +Coverage Map Based: outline,polygon,region,star,text +and Internal Samplers: import, noise + - would require CPU side computation of the coverage map/color map + (tiling would be a little more difficult... we'll see how effective it would be...) + +Modifiers (algorithmic w/ direct below sample): clamp,colorcorrect (blend also classifies as this) + - modification of the colors underneath using math... easy.... + +Basic Transform: translate,stretch,zoom (should require no sampling),super_sample (simple down sample) + - simply requires the repositioning (and resizing in the case of the super sample) of the window + +Behind Samplers: + Basic Transform: rotate,twirl, + In-place: bevel,blur,halftone2,shade + Warpers: inside_out, spherize, noise_distort (internal and behind sampler) + - requires access to the background texture (with increased window in order to not find distortions). + +Iterated: mandelbrot,julia (used to warp, index into gradient, etc.) + - requires iterative refinement of the fractal values (with crazy swapping to consider stopping points) + +Gradients (complicated... could require a CPU side color map, unless we have dynamic looping): + conical_gradient, linear_gradient, radial_gradient, spiral_gradient diff --git a/synfig-core/tags/stable/examples/Makefile.am b/synfig-core/tags/stable/examples/Makefile.am new file mode 100644 index 0000000..61b83df --- /dev/null +++ b/synfig-core/tags/stable/examples/Makefile.am @@ -0,0 +1,3 @@ +SUBDIRS=walk +MAINTAINERCLEANFILES=Makefile.in +EXTRA_DIST= about_dialog.sif backdrop.sif business_card.sif candy.sif cells.sif eye.sif eyes.sif gamma.sif gradient.sif headmo.sif installer-logo.sif japan.sif logo.sif macwolfen.sif Makefile.am mandelbrot.sif newjulia.sif newjulia2.sif noise.sif pirates.sif preambletaffy.sif prologue_kid.sif sparkle.sif splat.sif star.sif wallpaper.sif warpcube.sif warptext.sif z_depth_test.sif diff --git a/synfig-core/tags/stable/examples/about_dialog.sif b/synfig-core/tags/stable/examples/about_dialog.sif new file mode 100644 index 0000000..4c8bd58 --- /dev/null +++ b/synfig-core/tags/stable/examples/about_dialog.sif @@ -0,0 +1,1704 @@ + + + About Dialog Graphic + + + + + + + + + Aqua Sphere + This aqua-colored sphere reminds me of something from MacOS X. + + + + + + + + + + + + + 0.000000 + 0.744518 + 0.825040 + 1.000000 + + + + + + + + + + + + + + + + 0.000000 + 0.000000 + 0.000000 + 1.000000 + + + + + + + + + + + 0.0000000000 + 0.0000000000 + + + + + + + + + + + + + + + + + + + + + + 0.587045 + 0.941024 + 1.000000 + 1.000000 + + + + + + + + + + + 0.0000000000 + 0.7500000000 + + + + + + + + + + + + + + + + + + + + + + 0.000000 + 0.000000 + 0.000000 + 1.000000 + + + + + + + + + + + 0.0000000000 + 0.0000000000 + + + + + + + + + + + + + + + + + + + + + + 1.000000 + 1.000000 + 1.000000 + 1.000000 + + + + + + + + + + + -0.1500000060 + -0.3499999940 + + + + + + + + + + + + + + + + + + + + + + 0.2000000030 + 0.2000000030 + + + + + + + + + + + + + + + + + + + 0.000000 + 0.762890 + 1.000000 + 1.000000 + + + + + + + + + + + + + + + + 1.000000 + 1.000000 + 1.000000 + 0.000000 + + + + + + + + + + + 0.0000000000 + 0.0000000000 + + + + + + + + + + + + + + + + + + + + + + + SYNFIG Studio + + + + 1.000000 + 1.000000 + 1.000000 + 1.000000 + + + + luxisr + + + + + + + + + + + + + + + + 0.1899999976 + 0.2000000030 + + + + + 1.0000000000 + 1.0000000000 + + + + + 0.0000000000 + 0.0000000000 + + + + + + + + + + + + + + + + + + + + + + + + + 0.0500000007 + 0.0500000007 + + + + + + + + + + + + + + + + + + SYNFIG Studio + + + + 0.000000 + 0.000000 + 0.000000 + 1.000000 + + + + luxisr + + + + + + + + + + + + + + + + 0.1899999976 + 0.2000000030 + + + + + 1.0000000000 + 1.0000000000 + + + + + 0.0000000000 + 0.0000000000 + + + + + + + + + + + + + + + + + + + + + + + + + + + 1.000000 + 1.000000 + 1.000000 + 1.000000 + + + + + + + + + + + + + + + + 0.0000000000 + 0.2500000000 + + + + + 0.0000000000 + 2.7500000000 + + + + + + 0.000000 + 0.000000 + 0.000000 + 0.000000 + + + 0.000000 + 0.000000 + 0.000000 + 1.000000 + + + + + + + + + + + + + + + + + + + + + + + 0.0000000000 + 0.0000000000 + + + + + + + + + + + + + + + + + 0.000000 + 0.000000 + 0.000000 + 1.000000 + + + + + -1.7500000000 + 2.5000000000 + + + + + 1.7500000000 + 2.2500703335 + + + + + + + + + + + + + + + + + + + + + + -1.5000000000 + 2.5000000000 + + + + + -1.2500000000 + 2.2500000000 + + + + + + + + 0.000000 + 0.000000 + 0.000000 + 0.000000 + + + 1.000000 + 1.000000 + 0.000000 + 1.000000 + + + 1.000000 + 1.000000 + 0.000000 + 1.000000 + + + 0.000000 + 0.000000 + 0.000000 + 0.000000 + + + + + + + + + + + + + + + + + + + + + + + + + + + A L P H A + + + + 0.000000 + 0.000000 + 0.000000 + 1.000000 + + + + ariblk.ttf + + + + + + + + + + + + + + + + 0.0937500000 + 0.0773138478 + + + + + 0.5000000000 + 0.5000000000 + + + + + 0.0000000000 + 2.3665711880 + + + + + + + + + + + + + + + + -1.5000000000 + 2.3711292744 + + + + + + + + + + + + + + + + + + + + + + + + + + + + 1.5000000000 + 2.5000000000 + + + + + 1.5000000000 + 2.2500000000 + + + + + + 0.000000 + 0.000000 + 0.000000 + 1.000000 + + + 0.483334 + 0.483334 + 0.483334 + 1.000000 + + + 0.801383 + 0.801383 + 0.801384 + 1.000000 + + + 0.546153 + 0.546153 + 0.546153 + 1.000000 + + + 0.000000 + 0.000000 + 0.000000 + 1.000000 + + + + + + + + + + + + + + + + + + + + + + + 0.000000 + 0.000000 + 0.000000 + 1.000000 + + + + + 0.0416666679 + -0.0416666679 + + + + + 0.0416666679 + 0.0416666679 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0.0000000000 + 1.2500000000 + + + + + + + + + + + + + + + + + + 0.920368 + 0.920368 + 0.920368 + 0.000000 + + + 0.934270 + 0.934270 + 0.934270 + 0.820503 + + + 0.929226 + 0.929226 + 0.929226 + 0.404875 + + + 1.000000 + 1.000000 + 1.000000 + 0.425000 + + + 0.876978 + 0.876978 + 0.876978 + 0.064816 + + + 0.940432 + 0.940432 + 0.940432 + 0.353949 + + + 0.976427 + 0.976427 + 0.976427 + 0.252097 + + + 1.000000 + 1.000000 + 1.000000 + 0.800000 + + + -0.000000 + -0.000000 + -0.000000 + 0.008584 + + + 1.000000 + 1.000000 + 1.000000 + 0.655000 + + + -0.000000 + -0.000000 + -0.000000 + 0.008584 + + + 0.997147 + 0.997147 + 0.997147 + 0.752147 + + + -0.000000 + -0.000000 + -0.000000 + 0.008584 + + + 1.000000 + 1.000000 + 1.000000 + 0.697727 + + + 1.000000 + 1.000000 + 1.000000 + 1.000000 + + + 0.958579 + 0.958579 + 0.958579 + 0.150345 + + + 0.930914 + 0.930914 + 0.930914 + 1.000000 + + + -0.000000 + -0.000000 + -0.000000 + 0.008584 + + + 0.992545 + 0.992545 + 0.992545 + 0.537339 + + + -0.000000 + -0.000000 + -0.000000 + 0.008584 + + + 1.000000 + 1.000000 + 1.000000 + 1.000000 + + + 1.000000 + 1.000000 + 1.000000 + 0.000000 + + + 1.000000 + 1.000000 + 1.000000 + 0.525000 + + + -0.000000 + -0.000000 + -0.000000 + 0.008584 + + + + + + 0.0000000000 + 0.0000000000 + + + + + + + + + + + + + + + + + + + + + + 1.493478 + 1.439264 + 1.000000 + 1.000000 + + + + + + + + + + + + + + + + 0.0374999978 + 0.0374999978 + + + + + + + + + + + + + + + + + + + 0.000000 + 0.000000 + 0.000000 + 1.000000 + + + + + + + + + + + 0.0000000000 + 0.0000000000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0.0000000000 + 0.0000000000 + + + + + + + + + + + + + + + + + 0.0000000000 + 1.2500000000 + + + + + + + + + + + + + + + + + + + + + 0.013829 + 0.013829 + 0.013829 + 1.000000 + + + + + 0.0000000000 + 0.0000000000 + + + + + 0.1041666642 + 0.1041666642 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0.0099999998 + 0.1424999982 + + + + + + + + + + + + + + + + + -0.0990606323 + 0.4690153301 + + + + + -0.0990606323 + -0.0307283755 + + + + + + 0.000000 + 0.000000 + 0.000000 + 0.000000 + + + 0.000000 + 0.000000 + 0.000000 + 1.000000 + + + + + + + + + + + + + + + + + + + + + + S T U D I O + + + + 0.000000 + 0.000000 + 0.000000 + 0.000000 + + + + Times New Roman + + + + + + + + + + + + + + + + 0.5000000000 + 0.5000000000 + + + + + 0.5000000000 + 1.0000000000 + + + + + 0.0000000000 + 0.0000000000 + + + + + + + + + + + + + + + + -2.0734415054 + 0.6111532450 + + + + + 2.1833333969 + -0.0333333351 + + + + + -2.5265016556 + -0.3445624709 + + + + + 2.6473100185 + -0.3445624709 + + + + + 2.1666667461 + 0.0170713197 + + + + + -2.0499999523 + 0.0170713197 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0.1000000015 + 0.0000000000 + + + + + + + + + + + + + + + + + + S T U D I O + + + + 0.000000 + 0.000000 + 0.000000 + 1.000000 + + + + Times New Roman + + + + + + + + + + + + + + + + 0.5000000000 + 0.4500000179 + + + + + 0.5000000000 + 1.0000000000 + + + + + 0.0000000000 + 0.0000000000 + + + + + + + + + + + + + + + + + + + + + + + + + 0.000000 + 0.000000 + 0.000000 + 0.000000 + + + + + -2.5000000000 + 0.7500000000 + + + + + 2.5000000000 + -0.5000000000 + + + + + + + + + + + + + + + + + + + + + S Y N F I G + + + + 0.000000 + 0.000000 + 0.000000 + 1.000000 + + + + Arial + + + + + + + + + + + + + + + + 0.3000000119 + 0.2166666687 + + + + + 0.5000000000 + 1.0000000000 + + + + + 0.0000000000 + 0.5666666627 + + + + + + + + + + + + + + + + + + + + + + + + + 1.000000 + 1.000000 + 1.000000 + 1.000000 + + + + + 0.0000000000 + 0.0000000000 + + + + + 0.1000000015 + 0.1000000015 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0.0000000000 + 0.0000000000 + + + + + + + + + + + + + + + + + 0.0000000000 + -0.5000000000 + + + + + 0.0000000000 + 2.5000000000 + + + + + + 0.000000 + 0.000000 + 0.000000 + 1.000000 + + + 1.000000 + 1.000000 + 1.000000 + 0.000000 + + + + + + + + + + + + + + + + + + + + + + + 0.000000 + 0.000000 + 0.000000 + 0.000000 + + + + + -1.5000000000 + 2.5000000000 + + + + + 1.5000000000 + -1.0000000000 + + + + + + + + + + + + + + + + + diff --git a/synfig-core/tags/stable/examples/backdrop.sif b/synfig-core/tags/stable/examples/backdrop.sif new file mode 100755 index 0000000..7289e94 --- /dev/null +++ b/synfig-core/tags/stable/examples/backdrop.sif @@ -0,0 +1,71858 @@ + + +Untitled1 + + + + + + + + + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + +0.128959 +0.128958 +0.287547 +1.000000 + + + + + + + + + + + + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + +0.507498 +0.352394 +0.063540 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-4.1833333969 +0.0000000000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.0333333015 +2.5333333015 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +4.0999999046 +2.5333333015 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +4.0999999046 +-2.3166666031 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-4.1666665077 +-2.3166666031 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.507498 +0.352394 +0.063540 +1.000000 + + + + + + + + + + + + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + +0.327474 +0.163280 +0.045265 +1.000000 + + + + +0.1235946789 +-1.0353049040 + + + + +1.0764052868 +-1.0146951675 + + + + + + +-0.9499999881 +-0.0500000007 + + + + +0.1500000060 +-1.1000000238 + + + + +-2.5499999523 +-1.2000000477 + + + + +-1.5833333731 +-0.8166666627 + + + + +-1.0000000000 +-1.4333332777 + + + + +-2.2500000000 +-1.9500000477 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + +0.040577 +0.040575 +0.199164 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-5.1478714943 +-0.3313184679 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +4.3766508102 +2.9686734676 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.0645003319 +3.9730668068 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + +0.131718 +0.073955 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +0.7539181709 +1.7965269089 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-4.8165664673 +-0.1262328178 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-4.8136343956 +-0.2163940817 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.7839740515 +1.7246910334 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.303548 +0.180455 +0.030309 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-4.0087466240 +0.1545667350 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.8131061196 +1.8178949356 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.030309 +0.009851 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-4.0066428185 +0.0636713505 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.7935039401 +1.7283561230 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + +0.817259 +0.693864 +0.507498 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-3.1500000954 +2.3666665554 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.3730168343 +0.2004711777 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.2169895172 +0.0732491538 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.7948152423 +1.1934782267 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.2166666687 +2.8499999046 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.316096 +0.242060 +0.130240 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-2.3749492168 +0.2045953423 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.2108466625 +0.0658181906 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.9891273975 +2.3948607445 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-3.1122043133 +2.2633242607 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-2.2153973579 +0.0668819845 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-3.2492954731 +0.3273070157 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-4.8772745132 +1.8440747261 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-4.3906145096 +2.6125757694 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.9539303780 +2.2944858074 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +0.7999320030 +1.1904355288 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.7203299999 +1.7037036419 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.7065036893 +2.4417977333 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.3308366835 +2.5101089478 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000001 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-3.1500000954 +2.3666665554 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.3730168343 +0.2004711777 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.2169895172 +0.0732491538 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.7948152423 +1.1934782267 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.2166666687 +2.8499999046 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000001 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-2.2127263546 +0.0702561438 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.7842624187 +1.7830015421 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.105082 +0.055726 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-2.8436655998 +1.5175802708 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.7217907906 +1.5785177946 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.105082 +0.055726 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-2.6307287216 +0.9241328239 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.5076286793 +0.9466553926 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.105082 +0.055726 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-2.7733447552 +1.4706794024 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.6862738132 +1.4901989698 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.105082 +0.055726 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-2.8263425827 +1.4844466448 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.7057898045 +1.5262349844 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.081532 +0.027384 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-2.4127368927 +0.3072427809 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.2509877682 +0.1916974336 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.7689791322 +1.2899053097 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.7908541560 +1.2742803097 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.8194999695 +1.1977177858 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.2185814381 +0.0716573596 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.3936324120 +0.1958172470 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.4191088676 +0.2917445600 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.237660 +0.117313 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-2.4105401039 +0.2905300856 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.2508599758 +0.1681122333 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.7830443382 +1.2700388432 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000001 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-2.4127368927 +0.3072427809 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.2509877682 +0.1916974336 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.7689791322 +1.2899053097 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.7908541560 +1.2742803097 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.8194999695 +1.1977177858 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.2185814381 +0.0716573596 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.3936324120 +0.1958172470 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.4191088676 +0.2917445600 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-2.5704917908 +1.8544700146 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.2802820206 +0.9104140401 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.0215407610 +1.3334909678 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.3012610674 +2.1411833763 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-1.1788834333 +2.7216029167 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.8886736035 +1.7775468826 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.2686690390 +2.1656587124 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.0110512441 +2.9733510017 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +0.0478315204 +1.9927484989 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0150625408 +2.0087704659 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0332675278 +2.0379014015 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0631237105 +2.0204229355 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-1.9568728209 +1.9285163879 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.9617558718 +1.9464219809 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.9454791546 +1.9732804298 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.9308301210 +1.9749081135 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.9145534039 +1.9545608759 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.9308301210 +1.9195636511 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + +0.411291 +0.287900 +0.101533 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-1.0013456345 +1.0802743435 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.0174914598 +1.0781910419 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.0315539837 +1.0922534466 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.0450955629 +1.1042326689 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.0367622375 +1.1276701689 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.0237414837 +1.1432951689 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.9997830987 +1.1333993673 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.9753039479 +1.1323577166 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.9737414122 +1.1120451689 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.9862414598 +1.0917326212 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-1.0066437721 +1.0931171179 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.0253937244 +1.1014504433 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.0144562721 +1.1254087687 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.9951854348 +1.1123880148 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.817259 +0.693864 +0.507498 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-1.0305122137 +1.0896493196 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.0226997137 +1.0943368673 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.0143663883 +1.0906909704 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.0159289837 +1.0750659704 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.817259 +0.693864 +0.507498 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-1.0023872852 +1.0912117958 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.0112414360 +1.0896493196 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.0112414360 +1.0745451450 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.9940539598 +1.0802743435 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.0018664598 +1.0886076689 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.9878039360 +1.0781910419 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.9815539122 +1.0886076689 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.9940539598 +1.0979826450 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.817259 +0.693864 +0.507498 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-0.9919705987 +1.1000659466 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.9909289479 +1.1052743196 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.9726997614 +1.1089202166 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.9799914360 +1.0922534466 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.817259 +0.693864 +0.507498 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-1.0268664360 +1.0953785181 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.0367622375 +1.0865243673 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.0503039360 +1.0979826450 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.0305122137 +1.0995451212 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.228903 +0.140681 +0.044487 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-1.0268664360 +1.1021493673 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.0424914360 +1.1047534943 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.0404081345 +1.1089202166 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.0315539837 +1.1073576212 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.0357205868 +1.1104826927 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.0362414122 +1.1198576689 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.0247831345 +1.1136076450 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.228903 +0.140681 +0.044487 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-1.0232206583 +1.1167327166 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.0351997614 +1.1208993196 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.0320748091 +1.1281909943 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.0206164122 +1.1203784943 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.228903 +0.140681 +0.044487 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-1.0180122852 +1.1214201450 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.0289497375 +1.1297534704 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.0216580629 +1.1386076212 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.0034289360 +1.1318367720 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.0091581345 +1.1245452166 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.228903 +0.140681 +0.044487 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-1.0003039837 +1.1302742958 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.0049914122 +1.1245452166 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.9997830987 +1.1177743673 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.9789497852 +1.1208993196 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.9773872495 +1.1281909943 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.228903 +0.140681 +0.044487 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-0.9784289598 +1.1177743673 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.9940539598 +1.1156909466 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.9914497733 +1.1089202166 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.9773872495 +1.1104826927 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + +0.411291 +0.287900 +0.101533 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +0.0608298630 +1.9994996786 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0471979268 +1.9906003475 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0284184273 +1.9971454144 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0110141523 +2.0020411015 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0083223879 +2.0267701149 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0132498369 +2.0465033054 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0391273350 +2.0480146408 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0616222322 +2.0577251911 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0718651190 +2.0401148796 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0694457144 +2.0163874626 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +0.0504725911 +2.0087590218 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0299645197 +2.0081062317 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0293910615 +2.0344369411 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0524071753 +2.0310955048 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.817259 +0.693864 +0.507498 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +0.0304891914 +1.9952536821 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0354847275 +2.0028729439 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0445742533 +2.0032150745 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0499642305 +1.9884661436 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.817259 +0.693864 +0.507498 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +0.0551340878 +2.0088949203 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0478412211 +2.0036365986 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0544115566 +1.9900362492 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0673955008 +2.0026714802 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0567358769 +2.0067768097 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0739294365 +2.0035145283 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0750258565 +2.0156126022 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0596923456 +2.0186166763 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.817259 +0.693864 +0.507498 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +0.0606619902 +2.0213987827 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0593343042 +2.0265417099 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0741624460 +2.0377542973 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0748468339 +2.0195751190 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.817259 +0.693864 +0.507498 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +0.0312798135 +2.0019984245 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0262208842 +1.9897210598 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0090431729 +1.9941478968 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0261844900 +2.0041642189 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.228903 +0.140681 +0.044487 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +0.0283344891 +2.0080950260 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0131324586 +2.0036430359 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0131958481 +2.0083010197 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0218480937 +2.0107457638 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0167369228 +2.0117471218 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0121898102 +2.0199620724 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0252259932 +2.0193185806 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.228903 +0.140681 +0.044487 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +0.0252735354 +2.0228121281 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0126746316 +2.0213530064 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0123165892 +2.0292780399 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0260324627 +2.0272278786 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.228903 +0.140681 +0.044487 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +0.0279242042 +2.0292985439 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0144507429 +2.0320444107 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0171648003 +2.0431888103 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0365242064 +2.0450217724 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0345373824 +2.0359640121 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.228903 +0.140681 +0.044487 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +0.0400177389 +2.0449743271 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0382891707 +2.0377764702 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0459242314 +2.0339455605 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0633238032 +2.0458219051 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0615588427 +2.0530672073 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.228903 +0.140681 +0.044487 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +0.0651521608 +2.0432345867 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0519891977 +2.0345618725 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0572793894 +2.0295979977 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0692619905 +2.0371220112 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + +0.411291 +0.287900 +0.101533 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-2.6780717373 +1.9449472427 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.6926636696 +1.9377291203 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.7105333805 +1.9464573860 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.7272334099 +1.9533847570 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.7269704342 +1.9782582521 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.7197351456 +1.9972670078 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.6938612461 +1.9956955910 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.6703724861 +2.0026669502 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.6622927189 +1.9839651585 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.6675119400 +1.9606926441 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-2.6872565746 +1.9553706646 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.7076971531 +1.9571572542 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.7051405907 +1.9833697081 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.6826839447 +1.9773194790 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.817259 +0.693864 +0.507498 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-2.7087018490 +1.9443331957 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.7028372288 +1.9513055086 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.6937713623 +1.9505661726 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.6901702881 +1.9352816343 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.817259 +0.693864 +0.507498 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-2.6826119423 +1.9549522400 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.6904773712 +1.9505968094 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.6855680943 +1.9363126755 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.6711759567 +1.9473172426 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.6812727451 +1.9526587725 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.6645882130 +1.9473783970 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.6620631218 +1.9592609406 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.6769316196 +1.9640641212 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.817259 +0.693864 +0.507498 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-2.6756386757 +1.9667114019 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.6763463020 +1.9719755650 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.6602919102 +1.9813483953 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.6617705822 +1.9632166624 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.817259 +0.693864 +0.507498 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-2.7071161270 +1.9509363174 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.7135968208 +1.9393464327 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.7301275730 +1.9457812309 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.7119183540 +1.9536917210 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.228903 +0.140681 +0.044487 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-2.7093169689 +1.9573395252 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.7249400616 +1.9547237158 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.7243239880 +1.9593412876 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.7154426575 +1.9607415199 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.7203989029 +1.9623425007 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.7239384651 +1.9710392952 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.7110710144 +1.9688528776 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.228903 +0.140681 +0.044487 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-2.7106089592 +1.9723160267 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.7232921124 +1.9723628759 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.7227067947 +1.9802744389 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.7093312740 +1.9766103029 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.228903 +0.140681 +0.044487 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-2.7072069645 +1.9784418344 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.7202591896 +1.9827678204 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.7162413597 +1.9935112000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.6968011856 +1.9930329323 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.6998493671 +1.9842751026 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.228903 +0.140681 +0.044487 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-2.6933379173 +1.9925709963 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.6959087849 +1.9856293201 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.6887826920 +1.9809190035 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.6700961590 +1.9906457663 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.6709885597 +1.9980493784 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.228903 +0.140681 +0.044487 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-2.6685879230 +1.9878597260 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.6826872826 +1.9808108807 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.6780238152 +1.9752541780 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.6652328968 +1.9813024998 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + +0.411291 +0.287900 +0.101533 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-0.9670563340 +1.7030577660 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.0016883612 +1.6324537992 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.0975924730 +1.6164680719 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.1588644981 +1.6884040833 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.1348885298 +1.7523472309 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.1042524576 +1.7803224325 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.1242325306 +1.8642477989 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.0709524155 +1.9548339844 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.9777123332 +1.9388481379 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.9097802639 +1.8775693178 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.8724842072 +1.7856509686 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.9017882347 +1.7190434933 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.9337562919 +1.6910684109 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.228903 +0.140681 +0.044487 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-1.0842723846 +1.6804112196 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.1508724689 +1.6884040833 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.1292393208 +1.7465285063 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.1008927822 +1.7725127935 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.0523043871 +1.7576758862 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.1082484722 +1.7403578758 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.228903 +0.140681 +0.044487 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-1.0829404593 +1.8296118975 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.1135764122 +1.8615834713 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.0669564009 +1.9428446293 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.0602964163 +1.9255266190 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.0536364317 +1.9455088377 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.9914439917 +1.9339300394 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.0256643295 +1.8775693178 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.0509724617 +1.9122052193 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.0376523733 +1.8775693178 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.0629603863 +1.8615834713 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.228903 +0.140681 +0.044487 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-1.0190043449 +1.8789014816 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.9819951653 +1.9331426620 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.9678219557 +1.9205442667 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.9910323620 +1.8642477989 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.228903 +0.140681 +0.044487 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-0.9870363474 +1.8602513075 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.9657242894 +1.9188659191 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.9177722931 +1.8749049902 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.9001054168 +1.8331426382 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.9331762791 +1.8299930096 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.9377523065 +1.8495941162 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.9537363052 +1.8455977440 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.228903 +0.140681 +0.044487 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-0.8969558477 +1.8292056322 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.9331762791 +1.8244812489 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.9390842915 +1.7789902687 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.8890818357 +1.7630639076 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.8796330094 +1.7851111889 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.817259 +0.693864 +0.507498 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-1.1394754648 +1.6788119078 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.0780582428 +1.6740875244 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.0985306501 +1.6614891291 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.0662471056 +1.6693631411 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.0709716082 +1.6260560751 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.0922313929 +1.6213316917 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.817259 +0.693864 +0.507498 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-1.0607353449 +1.6693631411 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.0638849735 +1.6260560751 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.0048298836 +1.6339300871 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.9906566143 +1.6685757637 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.0043523312 +1.6830755472 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.0163403749 +1.6777468920 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.0119163990 +1.6544024944 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.0253022909 +1.6756623983 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.817259 +0.693864 +0.507498 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-1.0043523312 +1.7270364761 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.0003563166 +1.6884040833 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.9859322309 +1.6740875244 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.9725463986 +1.7008591890 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.817259 +0.693864 +0.507498 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-0.9985306263 +1.7307804823 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.9717589617 +1.7079458237 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.9363259077 +1.6953474283 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.9103416800 +1.7229064703 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.8906565905 +1.7575521469 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.9364202619 +1.7736616135 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.9095542431 +1.7551898956 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.9417483211 +1.7630044222 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.9630975723 +1.7551898956 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.9221526980 +1.7221190929 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.9350882769 +1.7283685207 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.9683883190 +1.7496830225 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-1.0096803904 +1.7297006845 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.0070163012 +1.6884040833 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.0656244755 +1.6764147282 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.0975924730 +1.7376936674 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.0363204479 +1.7536793947 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.0762804747 +1.8202868700 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.0349884033 +1.8695763350 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.9444122910 +1.8336083889 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.9497402906 +1.7709974051 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.228903 +0.140681 +0.044487 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-1.0557328463 +1.8083175421 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.0328162909 +1.7739425898 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.0067745447 +1.7702968121 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.9703162313 +1.7947759628 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.9791703820 +1.8265467882 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.0213578939 +1.8400883675 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.0598995686 +1.8036301136 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.0979204178 +1.8234217167 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.0359412432 +1.8827967644 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.9229204059 +1.8312342167 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.9395870566 +1.7557134628 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.9979203939 +1.7218592167 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.9989620447 +1.6807134151 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.0786495209 +1.6640467644 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.1057329178 +1.7088384628 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.1093786955 +1.7525883913 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.0791703463 +1.7317551374 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.0510454178 +1.6979008913 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.0291703939 +1.7062342167 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.0286495686 +1.7348800898 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.0515662432 +1.7374842167 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.0776078701 +1.7182134390 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.1005245447 +1.7463383675 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.0734412670 +1.7796717882 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.0848995447 +1.8406093121 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.228903 +0.140681 +0.044487 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-1.0469764471 +1.7643365860 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.0953810215 +1.7795993090 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.1162405014 +1.8575870991 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.0816084146 +1.8216190338 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + +0.398960 +0.533743 +1.365624 +1.000000 + + + + +-2.6987609863 +-0.0739184991 + + + + +-0.6546261907 +-1.4406540394 + + + + + + + + + + + + + + + + + + + + + +0.390609 +0.425907 +0.836294 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-2.7135198116 +-0.5491841435 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.1680653095 +-0.6470862627 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.0631701946 +-0.6785547733 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.9337996244 +-0.5317016244 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.7764569521 +-0.6680652499 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.6820513010 +-0.6086246967 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.5177156925 +-0.6995338202 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.4093240499 +-0.6365967393 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.2729604244 +-0.7205128074 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.2519813776 +-1.1995338202 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.6890442371 +-1.2030303478 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.270209 +0.133984 +0.281997 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-2.7025296688 +-1.0121448040 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.5447571278 +-0.8451344371 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.4473092556 +-0.8776086569 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.1503255367 +-0.9750313759 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.7744554281 +-0.8358560801 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.6306039095 +-0.8822478652 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.2176108360 +-0.5667839050 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.0923209190 +-0.6363715529 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.8603022695 +-0.4600828886 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.6746874452 +-0.6410107613 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.6607663035 +-1.4203921556 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.6886086464 +-1.4203921556 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.928182 +0.791953 +0.939967 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-0.8468152285 +-0.4559336603 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.0903193951 +-0.6400920749 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.0428063869 +-0.6846465468 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.0725020170 +-0.7232604027 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.0398367643 +-0.7618742585 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.2387974262 +-0.9460327029 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.2091017962 +-0.9787059426 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.3308538198 +-1.1539534330 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.3308538198 +-1.2163296938 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.3070974350 +-1.1658346653 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.1615887880 +-1.0737555027 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.1615887880 +-1.0054386854 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.0101411343 +-0.9222702980 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.9655977488 +-0.8806861639 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.9952933788 +-0.8450425863 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.9655977488 +-0.7915772200 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.8794804215 +-0.7707851529 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.8497847915 +-0.6579138637 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.8765108585 +-0.6400920749 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.8527543545 +-0.5955376029 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.8230587244 +-0.5658346415 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.8705717325 +-0.5212802291 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.928182 +0.791953 +0.939967 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-1.2061322927 +-0.5598940849 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.3813364506 +-0.6965277195 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.3664885759 +-0.7529633641 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.4110320807 +-0.8361316919 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.4288494587 +-0.8034584522 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.4080624580 +-0.7678148746 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.4466668367 +-0.7499930859 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.6218709946 +-0.8836564422 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.5981144905 +-0.9193000197 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.6396883726 +-0.9816762805 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.7139273882 +-1.0351415873 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.7050186396 +-1.1034584045 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.6723535061 +-1.1272207499 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.6693840027 +-1.0975178480 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.6099927425 +-1.0618742704 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.5981144905 +-1.0084089041 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.4615145922 +-0.9341515303 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.4318189621 +-0.9905871153 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.3664885759 +-0.9846465588 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.3189756870 +-0.9222702980 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.3486711979 +-0.8836564422 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.2328583002 +-0.7737554312 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.1615887880 +-0.7499930859 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.2120714188 +-0.6876168251 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.1704975367 +-0.6490029693 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.1912844181 +-0.6371217966 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.2120714188 +-0.6222702861 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.928182 +0.791953 +0.939967 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-1.7465926409 +-0.8272207975 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.1266963482 +-0.9697950482 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.1296660900 +-1.0173197985 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.0049443245 +-0.9876168370 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.9574314356 +-1.0054386854 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.8921011686 +-0.9490029812 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.8475576639 +-0.9252406359 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.8089534044 +-0.9697950482 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.7436230183 +-0.9311811924 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.6961100101 +-0.9490029812 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.6753231287 +-0.9014782310 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.7317447662 +-0.8688049316 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.7109577656 +-0.8391019702 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.928182 +0.791953 +0.939967 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-2.5483741760 +-0.8450425863 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.6760654449 +-0.9727653861 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.7206089497 +-1.1123692989 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.6641871929 +-1.0618742704 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.6374611855 +-1.0054386854 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.5988569260 +-1.0113792419 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.5483741760 +-0.9519732594 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.4949221611 +-0.9787059426 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.4978916645 +-0.9193000197 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.5543134212 +-0.8895970583 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.023990 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-2.6925408840 +-1.1365966797 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.6645686626 +-0.9932401180 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.6400933266 +-1.0806527138 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.6191141605 +-1.0456876755 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.5911421776 +-1.1296037436 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.5701632500 +-1.0666667223 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.5631701946 +-1.0142191648 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.5386946201 +-1.0876456499 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.5107226372 +-1.1435897350 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.4827506542 +-1.0666667223 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.4757575989 +-1.0107226372 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.4442889690 +-1.0806527138 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.1715617180 +-1.0317016840 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.1610722542 +-0.9617715478 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.1470861435 +-0.7974358797 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.1086246967 +-0.9023309946 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.0771560669 +-1.0317016840 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.0666666031 +-0.9303030372 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.0561771393 +-0.8568764329 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.0212121010 +-0.9722610712 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.0107226372 +-1.0771561861 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.8673660755 +-1.1261072159 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.8568764925 +-1.0317016840 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.8428905010 +-1.1121212244 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.8149185181 +-0.9862471223 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.7834498882 +-1.1435897350 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.7694638968 +-1.0736596584 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.7379953861 +-1.1785547733 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.7065268755 +-1.0177155733 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.6610722542 +-1.2170163393 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.6505827904 +-1.1191142797 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.6331002712 +-1.0212121010 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.6086246967 +-1.1261072159 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.5981352329 +-1.1785547733 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.5666667223 +-1.0666667223 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.5386946201 +-1.1785547733 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.5177156925 +-1.0317016840 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.4652681351 +-1.1820513010 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.4407925606 +-1.0841492414 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.4128205776 +-1.1575757265 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.3953380585 +-1.0981352329 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.3743590117 +-1.1820513010 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.3498834372 +-1.1156177521 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.3184149265 +-1.2344988585 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.2904429436 +-1.0736596584 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.2624708414 +-1.1785547733 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.2344988585 +-1.1121212244 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.2065268755 +-1.1925407648 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.1890443563 +-1.1400932074 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.1610722542 +-1.2240092754 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.1331002712 +-1.1191142797 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.1051281691 +-1.2030303478 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.0911421776 +-1.0841492414 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.0701631308 +-1.1610722542 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.0421911478 +-1.0317016840 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.0072261095 +-1.1365966797 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.9862470627 +-1.0212121010 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.9652680755 +-1.1435897350 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.9337995648 +-1.0981352329 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.9128205180 +-1.1785547733 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.8988345265 +-1.1296037436 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.8673659563 +-1.1890442371 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.8463869691 +-1.0841492414 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.8219113946 +-1.1191142797 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.8009324074 +-1.0072261095 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.7764568925 +-1.0631701946 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.7414918542 +-1.0282051563 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.7275058031 +-1.0946387053 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.6960372925 +-0.9757575989 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.6820513010 +-1.3254078627 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.7030303478 +-1.3254078627 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + +0.124615 +0.259402 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-2.7240209579 +-1.1628644466 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.1564040184 +-1.0366508961 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.3995817900 +-1.2648061514 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.6815708876 +-1.2939324379 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.6815708876 +-1.4347090721 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.7288722992 +-1.4250003099 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.124612 +0.515047 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-2.6376667023 +-1.1263875961 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.6704535484 +-1.1701300144 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.6376667023 +-1.2193402052 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.6649889946 +-1.2794860601 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.6212732792 +-1.3122928143 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.5666284561 +-1.3068250418 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.5174481869 +-1.3341640234 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.4245519638 +-1.3560352325 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.3644425869 +-1.3286962509 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.3043334484 +-1.3779064417 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.1950438023 +-1.3560352325 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.0966830254 +-1.3068250418 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.0092513561 +-1.3341640234 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.8835684061 +-1.3615030050 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.8016011715 +-1.3068250418 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.6759181023 +-1.3177605867 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.5393060446 +-1.3779064417 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.4901257753 +-1.3505674601 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.5338416100 +-1.2849538326 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.4518743753 +-1.2958894968 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.5119836330 +-1.2412114143 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.4136229753 +-1.2412114143 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.0147159100 +-1.1701300144 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.6322022080 +-1.2193402052 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.6485956907 +-1.4435200691 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.7087049484 +-1.4380522966 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.7250983715 +-1.1154520512 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-2.7986128330 +-1.4927506447 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.7305874825 +-1.4464193583 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.6534727812 +-1.4458328485 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.5895525217 +-1.4909912348 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-2.6634662151 +-1.3849656582 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.7298996449 +-1.4451392889 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.7287268639 +-0.0422981121 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.6636338234 +-0.1056371108 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-0.7206404805 +-1.3834542036 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.6539738178 +-1.4449125528 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.6540004611 +-0.0422981121 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.7216821909 +-0.1063709036 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-2.7291502953 +-0.0431130268 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.6635253429 +-0.1050921455 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.7223794460 +-0.1056130305 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.6546710730 +-0.0425921418 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + +0.000000 +0.163280 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-2.7191693783 +-0.6385926008 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.6900608540 +-0.7356799841 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.6172895432 +-0.7016993761 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.5978837013 +-0.7356799841 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.5542209148 +-0.7162625194 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.4960038662 +-0.7696605921 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.4911525249 +-0.7308256030 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.4426381588 +-0.7599518299 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.3989753723 +-0.8230586052 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.3407583237 +-0.7793692946 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.2728383541 +-0.8036411405 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.2728383541 +-0.7405343652 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.2146213055 +-0.7599518299 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.2049183846 +-0.6919906735 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.1030385494 +-0.6968450546 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.0992813110 +-0.6270931959 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.0157127380 +-0.6434469819 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.9229474068 +-0.5667839050 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.9879125357 +-0.5157529712 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.9477928877 +-0.4638353288 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.9089815617 +-0.5123789907 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.9041301012 +-0.4250003695 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.8362101316 +-0.4201459885 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.8653186560 +-0.3764566779 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.7973986864 +-0.3521848321 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.8750215769 +-0.3036411405 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.7682901621 +-0.2696605623 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.8216558695 +-0.2308256030 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.7488844395 +-0.1968450248 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.8313586712 +-0.1628644466 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.8216558695 +-0.1046120301 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.8847243786 +-0.1143207327 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.9041301012 +-0.0754858032 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.6997637749 +-0.0900488868 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.064643 +0.344964 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-1.7688143253 +-0.1968615055 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.8289235830 +-0.1749902964 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.8944973946 +-0.1476512849 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.9436776638 +-0.1421834826 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.9764646292 +-0.1913937032 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.0092513561 +-0.1421834826 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.0748252869 +-0.1039088741 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.1403989792 +-0.1585868895 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.2114372253 +-0.1312478781 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.2551529408 +-0.1640546918 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.3371202946 +-0.1695224941 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.3808360100 +-0.1257800758 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.4791967869 +-0.1421834826 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.5065190792 +-0.1968615055 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.6048798561 +-0.2023293078 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.6595246792 +-0.1749902964 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.6376667023 +-0.2460716963 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.6376667023 +-0.3171531260 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.6923115253 +-0.3116853237 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.6759181023 +-0.6889635921 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.6103444099 +-0.6780279875 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.5720930099 +-0.6998991370 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.5010547638 +-0.6944313645 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.4464099407 +-0.7272381783 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.3535137177 +-0.7108347416 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.2387595177 +-0.7053669691 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.1841146946 +-0.6670923829 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.1240055561 +-0.6616245508 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.1076121330 +-0.5960109830 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.0201804638 +-0.6069465280 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.9873934984 +-0.5741397738 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.0092513561 +-0.5194617510 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.9546066523 +-0.4374447465 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.8781039715 +-0.3444921076 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.8999618292 +-0.2679429054 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.8125301600 +-0.2132649124 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.6923115253 +-0.2132649124 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.7961367369 +-0.5741397738 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.3917651176 +-1.0334349871 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.7578852177 +-0.7983195782 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.7524206638 +-0.0382953025 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.6868470907 +-0.0656342879 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.135694 +0.048863 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-2.6900608540 +-0.4589809477 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.5833294392 +-0.5366508365 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.4474897385 +-0.5463595986 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.4232325554 +-0.4104372561 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.6027352810 +-0.2502430677 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.4863009453 +-0.3036411405 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.4765982628 +-0.1677187979 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.4426381588 +-0.3376217186 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.3698668480 +-0.4104372561 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.3553125858 +-0.4929615259 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.2248127460 +-0.4482862651 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.2009701729 +-0.3386076987 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.2825412750 +-0.2550974488 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.1914331913 +-0.3115854263 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.1660008430 +-0.4005999267 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.1008310318 +-0.2718468308 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.9623471498 +-0.1871362925 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.0626828671 +-0.2607200146 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.1389791965 +-0.4466966987 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.2437298298 +-0.5366508365 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.1272954941 +-0.5123789907 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.9228061438 +-0.6374420524 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.1175928116 +-0.5560683012 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.2327604294 +-0.5929347873 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.2486553192 +-0.7614265084 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.1453373432 +-0.9044854641 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.9963071346 +-1.0123790503 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.8313586712 +-1.0997576714 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.0563247204 +-1.0507235527 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.0254156590 +-1.1046119928 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.0981869698 +-1.1725732088 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.1882541180 +-1.0475444794 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.2922439575 +-1.0949033499 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.3941240311 +-1.1968450546 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.3553125858 +-1.0657770634 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.5396666527 +-1.1240295172 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.5057067871 +-1.0706315041 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.4362175465 +-1.0173431635 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.4280838966 +-0.9007285237 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.4298593998 +-0.7439414859 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.4426381588 +-0.6288838387 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.4854922295 +-0.6628747582 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.5736267567 +-0.6774275303 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.4823133945 +-0.6199570298 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.6027352810 +-0.5754858255 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.7143180370 +-0.4929615259 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.127949 +0.046074 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-1.2553079128 +-1.4378516674 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.9454019666 +-1.1100958586 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.8524301648 +-0.8399186134 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.8701390624 +-0.2419855595 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.0472282171 +-0.2021233439 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.3261435032 +-0.0515328385 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.6664866209 +-0.0648202077 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.6576321721 +-1.4334225655 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.7053090334 +-0.0899986178 + + + + +-1.7053090334 +-1.4055907726 + + + + + +0.361867 +0.138933 +0.000000 +1.000000 + + +0.623683 +0.357596 +0.041746 +1.000000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + +-1.8103410006 +-0.1021308675 + + + + +-1.8103410006 +-1.0644638538 + + + + + +0.000000 +0.000000 +0.000000 +0.678112 + + +0.000000 +0.000000 +0.000000 +0.000000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + +0.081532 +0.027384 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-2.7915537357 +0.0012899300 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.7915537357 +-1.4844583273 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.5942203999 +-1.4844583273 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.5942203999 +0.0012899300 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.324756 +0.553049 +1.000000 + + + + +-2.7168974876 +-0.0639462844 + + + + +-0.6677441001 +-1.4196314812 + + + + + + + + + + + + + + + + + + + + + +0.289158 +0.095112 +0.012236 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-2.7390944958 +-0.0447733738 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.7380154133 +-1.4421457052 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.6455471516 +-1.4431775808 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.6455471516 +-0.0447733738 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.289158 +0.095112 +0.012236 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-2.6800701618 +-0.0895424858 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.6797595024 +-1.3998990059 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.7045716047 +-1.3998652697 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.7060279846 +-0.0895424858 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.362958 +0.188401 +0.073800 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-2.7048575878 +-0.0676423684 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.7045183182 +-1.4202940464 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.6797842383 +-1.4203085899 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.6797842383 +-0.0676423684 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.668752 +0.435284 +0.188871 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-2.7297828197 +-1.4426592588 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.7315723896 +-0.0449328162 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.6537201405 +-0.0431428887 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.6555098295 +-1.4426592588 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.194135 +0.090530 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-2.7819824219 +-1.4763532877 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.7792692184 +-0.0098172761 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.6027539372 +-0.0091389157 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.6030020714 +-1.4728362560 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + +0.098722 +0.245645 +0.937698 +1.000000 + + + + +-0.0126091931 +0.5787814260 + + + + +2.0365443230 +-0.7769037485 + + + + + + + + + + + + + + + + + + + + + +0.000748 +0.554820 +0.131718 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-0.0300859902 +-0.7725305557 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.0213475917 +-0.3352127969 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.2238734961 +0.1283440739 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.0103290081 +-0.3964372873 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.0278058052 +-0.7987695932 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.570578 +0.291443 +0.000000 +1.000000 + + + + + + + + + + +0.8166875243 +0.2019419223 + + + + + + + + + + + + + + + + + + + + + +0.000748 +0.554820 +0.131718 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-0.0257168505 +-0.2346296757 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.9966753125 +0.4213469625 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.8748838902 +0.2114344537 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.0321750641 +-0.0159707982 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.4510717392 +0.1108513549 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0004983455 +-0.2608687580 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.406400 +0.553309 +1.245365 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +0.0092367437 +-0.1777783781 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.9660909176 +0.4126006067 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.5865168571 +0.2289271653 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.0190675259 +0.2376735210 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.317540 +0.551881 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +0.0004983455 +-0.4664081335 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.8699685931 +-0.1515393108 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.1976583004 +-0.6806938052 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.6651624441 +-0.5888570547 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.0190675259 +-0.7856500745 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0048676045 +-0.7900232673 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.570578 +0.291443 +0.000000 +1.000000 + + + + + + + + + + +0.9205835462 +-0.6530002952 + + + + + + + + + + + + + + + + + + + + + +0.570578 +0.291443 +0.000000 +1.000000 + + + + + + + + + + +1.8383325338 +-0.0868899226 + + + + + + + + + + + + + + + + + + + + + +0.000746 +0.475564 +0.539816 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +0.0092367437 +-0.3177200854 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.1015360355 +0.1545831412 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.5908861160 +-0.2608687580 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.0190675259 +-0.4008104503 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000748 +0.554820 +0.477000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-0.0300859902 +-0.5801107287 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.8874453902 +-0.2652419508 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.2763038874 +-0.6806938052 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.0321750641 +-0.7812768817 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.406400 +0.553309 +1.245365 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +0.0136058833 +-0.5451253057 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.7651078105 +-0.2608687580 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.1889199018 +-0.7113060355 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.6607933044 +-0.6325888634 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.9273142815 +-0.7550378442 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.406400 +0.553309 +1.245365 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +0.4068337083 +-0.0247171540 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.2151350975 +0.1633294970 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.7219619751 +-0.2696151137 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.0321750641 +-0.3701982200 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.294352 +0.339109 +0.000000 +1.000000 + + + + + + + + + + +0.2102197856 +-0.3483323157 + + + + + + + + + + + + + + + + + + + + + +0.258255 +0.451638 +0.000000 +1.000000 + + + + + + + + + + +1.4729177952 +0.0365073346 + + + + + + + + + + + + + + + + + + + + + +0.456779 +0.350516 +0.000000 +1.000000 + + + + + + + + + + +0.3019729257 +-0.1253002435 + + + + + + + + + + + + + + + + + + + + + +0.456779 +0.350516 +0.000000 +1.000000 + + + + + + + + + + +1.6870085001 +-0.6457083821 + + + + + + + + + + + + + + + + + + + + + +0.456779 +0.350516 +0.000000 +1.000000 + + + + + + + + + + +1.7175928354 +0.3907347322 + + + + + + + + + + + + + + + + + + + + + +0.570578 +0.291443 +0.000000 +1.000000 + + + + + + + + + + +0.1413628310 +0.5196569562 + + + + + + + + + + + + + + + + + + + + + +0.570578 +0.291443 +0.000000 +1.000000 + + + + + + + + + + +0.0720986649 +0.2192718387 + + + + + + + + + + + + + + + + + + + + + +0.8625089526 +0.5374376774 + + + + +0.8625089526 +-0.7781545520 + + + + + +0.361867 +0.138933 +0.000000 +1.000000 + + +0.623683 +0.357596 +0.041746 +1.000000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + +0.8926611543 +0.5373721123 + + + + +0.8926611543 +-0.4249608517 + + + + + +0.000000 +0.000000 +0.000000 +0.700000 + + +0.000000 +0.000000 +0.000000 +0.000000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + +0.081532 +0.027384 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-0.0885517076 +0.6407929063 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.0885517076 +-0.8449553251 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.1087818146 +-0.8449553251 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.1087818146 +0.6407929063 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.324756 +0.553049 +1.000000 + + + + +-0.0138954613 +0.5755566955 + + + + +2.0352580547 +-0.7801284790 + + + + + + + + + + + + + + + + + + + + + +0.289158 +0.095112 +0.012236 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-0.0360924676 +0.5947296023 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.0350132659 +-0.8026427627 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.0574550629 +-0.8036745787 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.0574550629 +0.5947296023 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.289158 +0.095112 +0.012236 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +0.0229319837 +0.5499604940 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0232426431 +-0.7603960633 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.9984304905 +-0.7603622675 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.9969741106 +0.5499604940 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.362958 +0.188401 +0.073800 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-0.0018554420 +0.5718606114 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.0015161723 +-0.7807910442 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.0232179165 +-0.7808055878 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.0232179165 +0.5718606114 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.668752 +0.435284 +0.188871 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-0.0267806742 +-0.8031562567 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.0285703633 +0.5945701599 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.0492820740 +0.5963600874 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.0474922657 +-0.8031562567 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.194135 +0.090530 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-0.0789803937 +-0.8368502855 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.0762671903 +0.6296856999 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.1002480984 +0.6303640604 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.0999999046 +-0.8333333135 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.8333332539 +0.6666666865 + + + + +2.1333334446 +-1.5000000000 + + + + +-2.7333333492 +2.2666666508 + + + + +-0.0158469938 +3.0725193024 + + + + +0.4000000060 +1.8666666746 + + + + +-2.2999999523 +0.9674159288 + + + + + + + + + + + + + + + + + + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-2.3373782635 +1.4144103527 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.3577604294 +1.4280004501 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.3577604294 +1.4636743069 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.3849365711 +1.4891555309 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.3749127388 +1.5209748745 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.3609981537 +1.5201051235 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.3479533195 +1.5435879230 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.2992522717 +1.5157564878 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.3166453838 +1.4696606398 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.3340387344 +1.4670513868 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.3192543983 +1.4444383383 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-1.9200806618 +1.9158338308 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.9609546661 +1.9375771284 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.9418221712 +1.9741059542 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.9166020155 +1.9732362032 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.8992087841 +1.9488836527 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +0.0478315204 +1.9927484989 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0150625408 +2.0087704659 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0332675278 +2.0379014015 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0631237105 +2.0204229355 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-1.6663384438 +1.4128944874 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.6970523596 +1.4310348034 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.6763565540 +1.4585344791 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.6460969448 +1.4437767267 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-1.0066437721 +1.0931171179 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.0253937244 +1.1014504433 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.0144562721 +1.1254087687 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.9951854348 +1.1123880148 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + +0.531112 +0.366264 +0.156589 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-2.3756637573 +1.5209000111 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.3873245716 +1.5092382431 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.3880531788 +1.4859145880 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.3785789013 +1.4800837040 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.3785789013 +1.4706084728 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.3661894798 +1.4647775888 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.3632740974 +1.4538446665 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.3618166447 +1.4480136633 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.3640029430 +1.4341653585 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.3581726551 +1.4159437418 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.3516135216 +1.4130282402 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.3443255424 +1.4071973562 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.3384714127 +1.4139287472 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.3428678513 +1.4195880890 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.3501558304 +1.4261478186 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.3435966969 +1.4356230497 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.3516135216 +1.4443694353 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.3572213650 +1.4514287710 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.3520131111 +1.4618453979 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.3577420712 +1.4649703503 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.3650338650 +1.4753870964 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.3707630634 +1.4790328741 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.3702421188 +1.4889287949 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.3775339127 +1.4925745726 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.3822214603 +1.4983037710 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.3790962696 +1.5071579218 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.668752 +0.435284 +0.188871 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-2.3744089603 +1.5206996202 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.3874297142 +1.5097620487 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.3869087696 +1.4972621202 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.3884713650 +1.4873661995 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.3837838173 +1.4800745249 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.3780546188 +1.4790328741 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.3775339127 +1.4691370726 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.3655545712 +1.4644495249 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.3650338650 +1.4550745487 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.3593046665 +1.4503871202 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.3645129204 +1.4378870726 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.3598256111 +1.4290329218 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.3593046665 +1.4160120487 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.3488879204 +1.4134079218 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.3421170712 +1.4076787233 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.3384714127 +1.4134079218 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.030309 +0.004037 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-2.4587838650 +1.5326787233 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.4546172619 +1.5384079218 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.4400339127 +1.5384079218 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.4228463173 +1.5415328741 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.3869087696 +1.5102828741 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.3811795712 +1.5040328503 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.030309 +0.004037 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-2.3702421188 +1.4785120487 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.3775339127 +1.4675745964 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.3994088173 +1.4628870487 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.4160754681 +1.4462203979 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.030309 +0.004037 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-2.3936796188 +1.5790328979 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.3738880157 +1.5201787949 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.3817005157 +1.4998662472 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.3764922619 +1.4915329218 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.3707630634 +1.4889287949 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.3702421188 +1.4785120487 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.3593046665 +1.4649703503 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.3509714603 +1.4628870487 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.3540964127 +1.4514287710 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.3431589603 +1.4347621202 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.3478462696 +1.4253870249 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.3379504681 +1.4144495726 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.3186795712 +1.3581995964 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.030309 +0.004037 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-2.3999710083 +1.5627971888 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.3882417679 +1.5305444002 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.3743133545 +1.5210151672 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.030309 +0.004037 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-2.4014010429 +1.5017060041 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.3873386383 +1.5017060041 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.3821303844 +1.4991018772 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.030309 +0.004037 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-2.3909845352 +1.3777476549 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.3899428844 +1.3907685280 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.3790051937 +1.4074351788 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.3597345352 +1.4142060280 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.3477551937 +1.4256643057 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.030309 +0.004037 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-2.3956718445 +1.4293102026 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.3889009953 +1.4381643534 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.3592135906 +1.4501435757 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.3540053368 +1.4517060518 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.668752 +0.435284 +0.188871 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-2.4566094875 +1.5329560041 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.4529635906 +1.5360810757 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.4394218922 +1.5350393057 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.4243178368 +1.5386852026 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.3831720352 +1.5037893057 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.668752 +0.435284 +0.188871 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-2.3930678368 +1.5392060280 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.3894219398 +1.5277477503 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.3764011860 +1.5194143057 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.668752 +0.435284 +0.188871 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-2.4165053368 +1.4438935518 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.3987970352 +1.4605602026 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.3753595352 +1.4652477503 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.3696303368 +1.4746227264 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.668752 +0.435284 +0.188871 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-2.3946301937 +1.4277477264 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.3873386383 +1.4360810518 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.3560886383 +1.4485809803 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.668752 +0.435284 +0.188871 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-2.3904635906 +1.3761851788 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.3873386383 +1.3881644011 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.3784844875 +1.4043102264 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.3597345352 +1.4121227264 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.3487968445 +1.4220185280 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-2.3743178844 +1.4918102026 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.3784844875 +1.4991018772 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.3659844398 +1.5105601549 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.3477551937 +1.5017060041 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.3461928368 +1.4959768057 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.3420259953 +1.5032684803 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.3316094875 +1.5183726549 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.3170261383 +1.5105601549 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.3123385906 +1.4855601788 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.3295261860 +1.4720184803 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.3435885906 +1.4735810757 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.3456718922 +1.4657685757 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.3290052414 +1.4501435757 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.3316094875 +1.4329559803 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.3435885906 +1.4261852503 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.3399426937 +1.4345185757 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.3529636860 +1.4506644011 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.3503594398 +1.4642059803 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.3597345352 +1.4668102264 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.3696303368 +1.4782685041 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.3701510429 +1.4892060757 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.668752 +0.435284 +0.188871 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-2.4029636383 +1.5006643534 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.3862969875 +1.4996227026 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.3810884953 +1.4980602264 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.516806 +0.445830 +0.533094 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-2.3342134953 +1.4147268534 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.3248386383 +1.4235810041 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.3180677891 +1.4438935518 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.3321301937 +1.4668102264 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.3185884953 +1.4673310518 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.3144218922 +1.4709768295 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.083757 +0.320439 +0.039445 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-2.3128595352 +1.4725393057 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.3040053844 +1.4871226549 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.3003594875 +1.4996227026 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.237092 +0.254693 +0.151446 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-2.2993178368 +1.5006643534 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.2977552414 +1.5126435757 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.3008801937 +1.5220185518 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.3269219398 +1.5402476788 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.3498384953 +1.5438935757 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.3555676937 +1.5355602503 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.3602552414 +1.5199352503 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.3706719875 +1.5220185518 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.761878 +0.597032 +0.387357 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-2.3753685951 +1.4880075455 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.3821394444 +1.4807158709 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.761878 +0.597032 +0.387357 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-2.3649518490 +1.4671742916 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.3685977459 +1.4640492201 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.761878 +0.597032 +0.387357 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-2.3524518013 +1.4619659185 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.3633892536 +1.4541534185 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.761878 +0.597032 +0.387357 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-2.3508894444 +1.4442576170 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.3628685474 +1.4385284185 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.761878 +0.597032 +0.387357 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-2.3456809521 +1.4359242916 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.3602643013 +1.4275908470 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.761878 +0.597032 +0.387357 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-2.3404726982 +1.4093617201 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.3477642536 +1.4166533947 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.761878 +0.597032 +0.387357 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-2.3863060474 +1.5156117678 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.3816184998 +1.5145701170 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.761878 +0.597032 +0.387357 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-2.3894309998 +1.5051950216 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.3935976028 +1.5077992678 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.317479 +0.310894 +0.439061 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-1.9601281881 +1.9472359419 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.9462929964 +1.9732804298 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.9194364548 +1.9781637192 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.8950214386 +1.9529330730 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.9169949293 +1.9163080454 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.9503622055 +1.9244469404 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.010392 +0.190073 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-1.9609420300 +1.9504914284 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.9617558718 +1.9366552830 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.9528037310 +1.9252609015 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + +0.507498 +0.433179 +0.163280 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +0.0699514523 +3.7367796898 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.6607106328 +2.0322372913 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.7585700750 +1.8558030128 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.7690198421 +1.7214133739 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.1322561502 +0.6794047356 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.2019022703 +0.5655931830 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.2137291431 +0.4457792640 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.5784277916 +-0.5999410152 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.6312463284 +-0.6537585258 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.6425037384 +-0.7835317850 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.9343571663 +-1.6195454597 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.9996674061 +-1.7038347721 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.9973790646 +-1.7999202013 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.7498502731 +-3.9428219795 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +5.6771869659 +-2.9981274605 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.9559874535 +2.1855828762 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.1592724323 +4.6890292168 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + +0.638049 +0.563732 +0.293833 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +1.0584870577 +0.7258436084 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.1404683590 +0.6780439019 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.2019542456 +0.7121865153 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.2429448366 +0.6302441955 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.3180942535 +0.6234156489 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.3590848446 +0.5756159425 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.4478979111 +0.5619589090 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.4957202673 +0.6165871620 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.5981967449 +0.5346447825 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.7348321676 +0.4936736226 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.8373086452 +0.5824444890 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.9534486532 +0.5551303625 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.0832521915 +0.6575583220 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.1788969040 +0.7599862218 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.3565230370 +0.6302441955 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.5956349373 +0.6712153554 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.7049431801 +0.6370727420 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.8005878925 +0.7668147683 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.9508867264 +0.8419285417 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.0533633232 +0.8214429617 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.2104940414 +0.9989846945 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.2993068695 +0.9511849880 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.4222786427 +0.9511849880 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.4496057034 +1.0672700405 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.6340634823 +1.0877555609 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.6818859577 +1.2106690407 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.7570352554 +1.3062684536 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.8526802063 +1.3335826397 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.8936707973 +1.4633246660 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.9688200951 +1.4360104799 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +4.0098109245 +1.4838101864 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +4.0098109245 +1.6135522127 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +4.2147636414 +1.6272093058 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +4.1049952507 +1.0205721855 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.9888548851 +0.9249728322 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.9205372334 +0.8498589993 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.8180608749 +0.8225448728 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.7497432232 +0.8157163858 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.6745936871 +0.7406025529 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.6472666264 +0.6381746531 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.4901359081 +0.6381746531 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.3056781292 +0.6245175600 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.1758747101 +0.6381746531 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.1417157650 +0.5562322736 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.0802299976 +0.4742899537 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.9299309254 +0.5767179132 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.7932956219 +0.4811185002 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.6771554947 +0.5016040802 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.5746791363 +0.4128332138 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.5200250149 +0.3308908641 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.3219037056 +0.3650335073 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.1306142807 +0.3445479274 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.0759599209 +0.2830911875 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.9393247366 +0.3445479274 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.9051657915 +0.2762626410 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.8026893139 +0.3035767674 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.7070446014 +0.3582049906 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.6250634193 +0.3786905706 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.5772409439 +0.3104052842 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.4542691708 +0.3855190873 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.3996150494 +0.3582049906 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.3517926931 +0.3991761506 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.2834749222 +0.3718620539 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.1536713839 +0.5152611136 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.638049 +0.563732 +0.293833 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +0.5834255219 +2.0491755009 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.7747150064 +2.0150330067 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.8293691874 +1.9604047537 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.9045186043 +1.9808902740 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.0616493225 +1.8511482477 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.1846210957 +1.8579767942 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.2256116867 +1.9057765007 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.2939293385 +1.8784624338 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.4510600567 +1.8033485413 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.5603682995 +1.8443197012 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.7038354874 +1.8648053408 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.7653213739 +1.9672333002 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.9156202078 +2.0423469543 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.0112650394 +1.9604047537 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.1752274036 +2.0013759136 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.2162179947 +2.0696611404 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.3255262375 +2.0423469543 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.3255262375 +2.1516034603 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.4484980106 +2.1242895126 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.5373110771 +2.2130603790 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.7236013412 +2.1627979279 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.8721570969 +2.2893261909 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.6335680485 +2.6352405548 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.6996278763 +2.4533526897 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.5561606884 +2.3304390907 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.5220019817 +2.2621538639 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.4263570309 +2.2348396778 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.4195253849 +2.1187548637 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.3307123184 +1.9616986513 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.1462545395 +1.9412130117 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.9686286449 +1.9548701048 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.9208064079 +1.8387851715 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.7431802750 +1.8592706919 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.5860497952 +1.7227001190 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.3810966015 +1.7090431452 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.2239661217 +1.6066151857 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.0258448124 +1.6407577991 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.9711905718 +1.7090431452 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.9097046852 +1.7090431452 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.8892093897 +1.6544148922 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.8072282076 +1.6202722788 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.5954433680 +1.6271008253 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.4724715948 +1.5383299589 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.3563314676 +1.5656440258 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.2880138159 +1.6475863457 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.2401914597 +1.5997866392 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.1445467472 +1.6271008253 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.0420701504 +1.7022145987 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.9874160290 +1.6134437323 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.9327619076 +1.6817289591 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.8302853703 +1.7363572121 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.7346406579 +1.7022145987 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.638049 +0.563732 +0.293833 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +1.5186494589 +-0.5713096261 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.5937988758 +-0.6054522395 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.7167706490 +-0.5986237526 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.7509294748 +-0.6669089794 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.7850884199 +-0.6122807860 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.8465743065 +-0.6805660725 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.8943966627 +-0.6191093326 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.0037050247 +-0.6737375259 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.1061813831 +-0.7147086859 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.1744990349 +-0.6327663660 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.3043026924 +-0.6873946190 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.4614334106 +-0.7215372324 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.5707416534 +-0.6942231059 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.6663863659 +-0.6191093326 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.8166851997 +-0.6464233994 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.9054982662 +-0.6464233994 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.9533207417 +-0.5713096261 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.0762925148 +-0.4961957932 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.1992642879 +-0.5371669531 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.3700585365 +-0.5030243397 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.4520397186 +-0.4074249268 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.6569926739 +-0.3391396701 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.8346185684 +-0.3459681869 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.9575905800 +-0.1820835173 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +4.0464034081 +-0.0659985393 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +4.3030810356 +-0.1371417493 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +4.1150312424 +-0.3801275194 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +4.0398817062 +-0.4347557425 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.9647324085 +-0.4893839657 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.8076016903 +-0.4962125123 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.7324521542 +-0.5986404419 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.6094803810 +-0.6054689288 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.5411627293 +-0.6737542152 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.4113590717 +-0.7693536282 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.1995744705 +-0.7147253752 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.0697708130 +-0.8103247881 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.9058084488 +-0.8103247881 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.7076871395 +-0.8171533346 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.6052105427 +-0.8854386210 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.4070892334 +-0.8922671080 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.3046128750 +-0.8444674611 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.1611456871 +-0.9537239075 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.9971833229 +-0.8376389146 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.9903515577 +-0.9127526879 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.9083702564 +-0.9195812345 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.8537161350 +-0.8376389146 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.8195573092 +-0.8854386210 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.7717349529 +-0.7966677547 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.7239125967 +-0.8308103681 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.6077724695 +-0.7556965947 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.638049 +0.563732 +0.293833 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +1.9037938118 +-1.6055394411 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.0814197063 +-1.6669962406 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.0950832367 +-1.7216243744 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.1565692425 +-1.7421100140 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.2180552483 +-1.7011388540 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.3000364304 +-1.7694240808 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.3956811428 +-1.7284529209 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.5459799767 +-1.7625955343 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.7031106949 +-1.7762526274 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.8055872917 +-1.7011388540 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.9080636501 +-1.6738246679 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.0242037773 +-1.7216243744 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.2291567326 +-1.7284529209 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.3862874508 +-1.5782253742 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.5775768757 +-1.6055394411 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.6868851185 +-1.6055394411 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.7552030087 +-1.5235971212 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.8986699581 +-1.4826259613 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.9464924335 +-1.4006836414 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +4.0967912674 +-1.3801980019 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +4.1834406853 +-1.4129269123 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +4.0823006630 +-1.5560618639 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.9798243046 +-1.5902044773 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.9046747684 +-1.6789753437 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.7612078190 +-1.6858038902 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.6587312222 +-1.7745747566 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.5152640343 +-1.8360314369 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.3581333160 +-1.8292030096 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.2556569576 +-1.9043167830 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.1258533001 +-1.8770025969 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.9755544662 +-1.9384593964 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.9004049301 +-1.9930876493 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.7842650414 +-1.8974882364 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.6339659691 +-1.9384593964 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.5178260803 +-1.9384593964 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.4631719589 +-1.8974882364 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.3811905384 +-1.9657734632 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.2992093563 +-1.8838311434 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.1762375832 +-1.8770025969 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.1899011135 +-1.9521164894 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.0874245167 +-1.8565170765 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.9644528627 +-1.7882317305 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + +0.416248 +0.358984 +0.150983 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +0.7423126698 +1.8540331125 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.3160831928 +1.8813720942 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.2505095005 +2.3023927212 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.9554274082 +2.3789420128 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.5838427544 +2.0672774315 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.416248 +0.358984 +0.150983 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +1.1958645582 +0.5636321306 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.7696352005 +0.5800355077 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +4.0865750313 +1.3072530031 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +4.0592527390 +1.5751752853 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.0537880659 +0.7331339121 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.416248 +0.358984 +0.150983 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +1.5893071890 +-0.6502196193 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.0920393467 +-0.6611552238 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +4.1630778313 +-0.2018599957 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +4.0756459236 +0.0168520398 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.5182689428 +-0.5080568194 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.416248 +0.358984 +0.150983 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +1.9827498198 +-1.7055051327 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.1193618774 +-1.7875221968 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +4.1193618774 +-1.4703897238 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +4.0811104774 +-1.3391625881 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.8843891621 +-1.5906813145 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000005 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +0.4288190305 +3.6895687580 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.0638754368 +1.8482567072 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.1581408978 +1.7267483473 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.1476670504 +1.6219997406 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.4535062313 +0.5661337972 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.5536763668 +0.4382689893 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.5016863346 +0.3587315977 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.7865777016 +-0.6091455221 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.7551559210 +-0.6657097340 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.8596872091 +-0.7537115812 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.8578004837 +-0.8416873813 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.9101703167 +-0.9254862666 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.1766271591 +-1.7051088810 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.1547691822 +-1.7488512993 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.2258074284 +-1.8035292625 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.2968456745 +-1.8800785542 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.2422008514 +-1.8800785542 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.9059855938 +-3.8095347881 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +5.5869612694 +-2.9411344528 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.8949098587 +2.1554839611 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.0596702099 +4.6959695816 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.1200000048 +0.7811572552 + + + + +4.1466665268 +1.6068248749 + + + + + +0.000000 +0.000000 +0.000000 +0.000000 + + +0.000000 +0.000000 +0.000000 +0.700000 + + +0.000000 +0.000000 +0.000000 +0.862661 + + +0.000000 +0.000000 +0.000000 +0.700000 + + +0.000000 +0.000000 +0.000000 +0.000000 + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000001 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +0.0699514523 +3.7367796898 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.6607106328 +2.0322372913 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.7585700750 +1.8558030128 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.7690198421 +1.7214133739 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.1322561502 +0.6794047356 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.2019022703 +0.5655931830 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.2137291431 +0.4457792640 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.5784277916 +-0.5999410152 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.6312463284 +-0.6537585258 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.6425037384 +-0.7835317850 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.9343571663 +-1.6195454597 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.9996674061 +-1.7038347721 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.9973790646 +-1.7999202013 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.7498502731 +-3.9428219795 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +5.6771869659 +-2.9981274605 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.9559874535 +2.1855828762 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.1592724323 +4.6890292168 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000001 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +0.7100347281 +1.8932968378 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.6546754837 +2.8267037868 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000001 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +1.1706956625 +0.5985284448 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +4.1093354225 +1.5352735519 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000001 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +1.5873622894 +-0.6181382537 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +4.5222005844 +0.3168919384 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000001 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +1.9540289640 +-1.6681382656 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +4.8840050697 +-0.7331281304 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + +0.562703 +0.421019 +0.000000 +1.000000 + + + + + + + + + + +-1.0127887726 +1.1044423580 + + + + + + + + + + + + + + + + + + + + + +0.249027 +0.197797 +0.000000 +1.000000 + + + + + + + + + + +-1.0125283003 +1.1041820049 + + + + + + + + + + + + + + + + + + + + + +0.562703 +0.421019 +0.000000 +1.000000 + + + + + + + + + + +-1.0125283003 +1.1041820049 + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + +0.562703 +0.421019 +0.000000 +1.000000 + + + + + + + + + + +0.0390587635 +2.0223801136 + + + + + + + + + + + + + + + + + + + + + +0.249027 +0.197797 +0.000000 +1.000000 + + + + + + + + + + +0.0393191800 +2.0221197605 + + + + + + + + + + + + + + + + + + + + + +0.562703 +0.421019 +0.000000 +1.000000 + + + + + + + + + + +0.0393191800 +2.0221197605 + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + +0.562703 +0.421019 +0.000000 +1.000000 + + + + + + + + + + +-1.0304725170 +1.8096196651 + + + + + + + + + + + + + + + + + + + + + +0.249027 +0.197797 +0.000000 +1.000000 + + + + + + + + + + +-1.0302120447 +1.8093593121 + + + + + + + + + + + + + + + + + + + + + +0.562703 +0.421019 +0.000000 +1.000000 + + + + + + + + + + +-1.0302120447 +1.8093593121 + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + +0.562703 +0.421019 +0.000000 +1.000000 + + + + + + + + + + +-0.9919308424 +1.7992030382 + + + + + + + + + + + + + + + + + + + + + +0.249027 +0.197797 +0.000000 +1.000000 + + + + + + + + + + +-0.9916704297 +1.7989425659 + + + + + + + + + + + + + + + + + + + + + +0.562703 +0.421019 +0.000000 +1.000000 + + + + + + + + + + +-0.9916704297 +1.7989425659 + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + +0.562703 +0.421019 +0.000000 +1.000000 + + + + + + + + + + +-1.0497432947 +1.7205572128 + + + + + + + + + + + + + + + + + + + + + +0.249027 +0.197797 +0.000000 +1.000000 + + + + + + + + + + +-1.0494829416 +1.7202967405 + + + + + + + + + + + + + + + + + + + + + +0.562703 +0.421019 +0.000000 +1.000000 + + + + + + + + + + +-1.0494829416 +1.7202967405 + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + +0.562703 +0.421019 +0.000000 +1.000000 + + + + + + + + + + +-1.9392659664 +1.9426572323 + + + + + + + + + + + + + + + + + + + + + +0.249027 +0.197797 +0.000000 +1.000000 + + + + + + + + + + +-1.9390056133 +1.9423967600 + + + + + + + + + + + + + + + + + + + + + +0.562703 +0.421019 +0.000000 +1.000000 + + + + + + + + + + +-1.9390056133 +1.9423967600 + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + +0.562703 +0.421019 +0.000000 +1.000000 + + + + + + + + + + +-2.3604860306 +1.4896370173 + + + + + + + + + + + + + + + + + + + + + +0.249027 +0.197797 +0.000000 +1.000000 + + + + + + + + + + +-2.3602254391 +1.4893766642 + + + + + + + + + + + + + + + + + + + + + +0.562703 +0.421019 +0.000000 +1.000000 + + + + + + + + + + +-2.3602254391 +1.4893766642 + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + +0.562703 +0.421019 +0.000000 +1.000000 + + + + + + + + + + +-2.3302853107 +1.4896370173 + + + + + + + + + + + + + + + + + + + + + +0.249027 +0.197797 +0.000000 +1.000000 + + + + + + + + + + +-2.3300249577 +1.4893766642 + + + + + + + + + + + + + + + + + + + + + +0.562703 +0.421019 +0.000000 +1.000000 + + + + + + + + + + +-2.3300249577 +1.4893766642 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + +0.058655 +0.002144 +0.000000 +1.000000 + + + + + + + + + + +-1.0921732187 +1.9898993969 + + + + + + + + + + + + + + + + + + + + + +0.058655 +0.002144 +0.000000 +1.000000 + + + + + + + + + + +-0.8820267916 +2.1567442417 + + + + + + + + + + + + + + + + + + + + + +0.058655 +0.002144 +0.000000 +1.000000 + + + + + + + + + + +-0.7504847646 +2.0428404808 + + + + + + + + + + + + + + + + + + + + + +0.058655 +0.002144 +0.000000 +1.000000 + + + + + + + + + + +-0.7729431987 +2.0669047832 + + + + + + + + + + + + + + + + + + + + + +0.058655 +0.002144 +0.000000 +1.000000 + + + + + + + + + + +-0.6734845638 +2.0219848156 + + + + + + + + + + + + + + + + + + + + + +0.058655 +0.002144 +0.000000 +1.000000 + + + + + + + + + + +-0.7873806953 +1.9546052217 + + + + + + + + + + + + + + + + + + + + + +0.058655 +0.002144 +0.000000 +1.000000 + + + + + + + + + + +-0.7071721554 +1.5262629986 + + + + + + + + + + + + + + + + + + + + + +0.058655 +0.002144 +0.000000 +1.000000 + + + + + + + + + + +-0.6799013019 +1.5294715166 + + + + + + + + + + + + + + + + + + + + + +0.058655 +0.002144 +0.000000 +1.000000 + + + + + + + + + + +-0.5531717539 +1.7588833570 + + + + + + + + + + + + + + + + + + + + + +0.058655 +0.002144 +0.000000 +1.000000 + + + + + + + + + + +-0.4553173482 +1.6337496042 + + + + + + + + + + + + + + + + + + + + + +0.058655 +0.002144 +0.000000 +1.000000 + + + + + + + + + + +-0.5387342572 +1.8342844248 + + + + + + + + + + + + + + + + + + + + + +0.058655 +0.002144 +0.000000 +1.000000 + + + + + + + + + + +-0.4665465653 +1.9882950783 + + + + + + + + + + + + + + + + + + + + + +0.058655 +0.002144 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-1.9216036797 +0.4158720970 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.9032093287 +0.3443934917 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.9284359217 +0.4100907445 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.9583925009 +0.4721089602 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.9797210693 +0.4574060738 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.9778380394 +0.4106163383 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.9704803228 +0.3685700893 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.9894002676 +0.3964257240 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.0088458061 +0.4437277615 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.0267148018 +0.4873507321 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.9953213930 +0.5332148671 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.9762613773 +0.5593549609 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.9568213224 +0.6743913293 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.9311544895 +0.6840170026 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.9389469624 +0.6565868855 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.9547137022 +0.6103360057 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.9391753674 +0.5829474926 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.9135086536 +0.6198458672 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.8637793064 +0.6808084846 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.6792997122 +0.7754608393 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.6712788343 +0.7546052337 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.7001539469 +0.7481881380 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.7514873743 +0.6984555125 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.7586816549 +0.6571124792 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.7513238192 +0.6161173582 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.7648527622 +0.6546528935 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.7855662107 +0.6910675168 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.8461334705 +0.6599528193 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.8461334705 +0.6246587038 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.8284876347 +0.6102201939 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.7803624868 +0.5941774249 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.7996125221 +0.5893645883 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.8397167921 +0.5893645883 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.8669877052 +0.5572790504 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.8706248999 +0.5388574004 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.8188625574 +0.5316106081 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.8060292006 +0.5107550025 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.7938938141 +0.4458300471 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.7844338417 +0.4074628651 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.8002004623 +0.4474067986 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.8259526491 +0.5057459474 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.8477376699 +0.4979207516 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.8782168627 +0.5075464249 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.9042603970 +0.4852484167 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.9247570038 +0.4658020437 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.058655 +0.002144 +0.000000 +1.000000 + + + + + + + + + + +-2.0797958374 +0.4610718191 + + + + + + + + + + + + + + + + + + + + + +0.058655 +0.002144 +0.000000 +1.000000 + + + + + + + + + + +-2.1039712429 +0.4736857116 + + + + + + + + + + + + + + + + + + + + + +0.058655 +0.002144 +0.000000 +1.000000 + + + + + + + + + + +-2.1139569283 +0.4295371473 + + + + + + + + + + + + + + + + + + + + + +0.058655 +0.002144 +0.000000 +1.000000 + + + + + + + + + + +-1.9773125648 +0.4437277615 + + + + + + + + + + + + + + + + + + + + + +0.058655 +0.002144 +0.000000 +1.000000 + + + + + + + + + + +-1.9494581223 +0.7375259399 + + + + + + + + + + + + + + + + + + + + + +0.058655 +0.002144 +0.000000 +1.000000 + + + + + + + + + + +-1.9689036608 +0.7012610435 + + + + + + + + + + + + + + + + + + + + + +0.058655 +0.002144 +0.000000 +1.000000 + + + + + + + + + + +-1.7187393904 +0.6965308189 + + + + + + + + + + + + + + + + + + + + + +0.058655 +0.002144 +0.000000 +1.000000 + + + + + + + + + + +-1.6693372726 +0.7054656744 + + + + + + + + + + + + + + + + + + + + + +0.058655 +0.002144 +0.000000 +1.000000 + + + + + + + + + + +-1.6131027937 +0.7843023539 + + + + + + + + + + + + + + + + + + + + + +0.058655 +0.002144 +0.000000 +1.000000 + + + + + + + + + + +-1.5631750822 +0.7864046693 + + + + + + + + + + + + + + + + + + + + + +0.058655 +0.002144 +0.000000 +1.000000 + + + + + + + + + + +-1.8532814980 +0.7438328862 + + + + + + + + + + + + + + + + + + + + + +0.058655 +0.002144 +0.000000 +1.000000 + + + + + + + + + + +-1.7723460197 +0.5882617235 + + + + + + + + + + + + + + + + + + + + + +0.058655 +0.002144 +0.000000 +1.000000 + + + + + + + + + + +-1.8538070917 +0.6360893250 + + + + + + + + + + + + + + + + + + + + + +0.058655 +0.002144 +0.000000 +1.000000 + + + + + + + + + + +-1.8390915394 +0.6360893250 + + + + + + + + + + + + + + + + + + + + + +0.058655 +0.002144 +0.000000 +1.000000 + + + + + + + + + + +-2.0104224682 +0.5204621553 + + + + + + + + + + + + + + + + + + + + + +0.058655 +0.002144 +0.000000 +1.000000 + + + + + + + + + + +-2.0388023853 +0.5246667862 + + + + + + + + + + + + + + + + + + + + + +0.058655 +0.002144 +0.000000 +1.000000 + + + + + + + + + + +-2.0125248432 +0.4474067986 + + + + + + + + + + + + + + + + + + + + + +0.058655 +0.002144 +0.000000 +1.000000 + + + + + + + + + + +-2.0098969936 +0.4316394627 + + + + + + + + + + + + + + + + + + + + + +0.058655 +0.002144 +0.000000 +1.000000 + + + + + + + + + + +-2.0393280983 +0.4106163383 + + + + + + + + + + + + + + + + + + + + + +0.058655 +0.002144 +0.000000 +1.000000 + + + + + + + + + + +-1.8490771055 +0.4841972589 + + + + + + + + + + + + + + + + + + + + + +0.058655 +0.002144 +0.000000 +1.000000 + + + + + + + + + + +-1.7728716135 +0.5141552091 + + + + + + + + + + + + + + + + + + + + + +0.058655 +0.002144 +0.000000 +1.000000 + + + + + + + + + + +-1.8059815168 +0.5120528936 + + + + + + + + + + + + + + + + + + + + + +0.058655 +0.002144 +0.000000 +1.000000 + + + + + + + + + + +-1.7376594543 +0.5078482628 + + + + + + + + + + + + + + + + + + + + + +0.058655 +0.002144 +0.000000 +1.000000 + + + + + + + + + + +-1.7581560612 +0.5388574004 + + + + + + + + + + + + + + + + + + + + + +0.058655 +0.002144 +0.000000 +1.000000 + + + + + + + + + + +-1.8716759682 +0.4148209393 + + + + + + + + + + + + + + + + + + + + + +0.058655 +0.002144 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-0.5276930332 +1.1960421801 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.6235144734 +1.3794386387 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.6703991294 +1.4584293365 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.6679315567 +1.5102670193 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.6210469007 +1.4263393879 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.5815650821 +1.3720332384 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.6161116362 +1.5448254347 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.6605287194 +1.6287529469 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.6679315567 +1.7102121115 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.7450019717 +1.9009385109 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.7450019717 +1.9298696518 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.7672381997 +1.9571608305 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.7968023419 +1.9881330729 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.7930120230 +2.0298349857 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.8523929715 +2.1081836224 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.8549198508 +2.1410396099 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.8309147954 +2.1246116161 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.7879583836 +2.0449991226 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.7525824904 +2.0209889412 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.7487922311 +1.9969788790 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.7184700370 +2.0032973289 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.7033089399 +1.9830783606 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.7005293965 +1.9440206289 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.7159432173 +1.9135754108 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.6439280510 +1.7227581739 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.6338206530 +1.6507278681 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.5580152273 +1.5610059500 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.5592786074 +1.5268862247 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.5112685561 +1.4700201750 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.4746292233 +1.3487060070 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.4304094017 +1.4674928188 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.5226393342 +1.6873749495 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.5201125145 +1.7214945555 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.4897903204 +1.6734743118 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.4569413066 +1.5900707245 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.4084258080 +1.5376863480 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.4316728115 +1.6583100557 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.4834732115 +1.7556141615 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.4872634709 +1.7897337675 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.4657852650 +1.7884700298 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.4998977184 +1.8579729795 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.5087416768 +1.9123116732 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.5365369916 +1.9704414606 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.5340101719 +1.9969788790 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.5479078293 +2.0273075104 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.5681226254 +2.0703682899 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.5580152273 +2.0968103409 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.5327467322 +2.0803825855 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.5289564729 +2.0348896980 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.5036879778 +2.0045611858 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.5024245381 +1.9818146229 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.4822097719 +1.9047296047 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.4506241679 +1.8061617613 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.4379899502 +1.8124802113 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.4645218551 +1.9274759293 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.4657852650 +1.9628592730 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.4480973184 +1.9552772045 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.4276298583 +1.8692227602 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.3975603878 +1.8352266550 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.3609210849 +1.8036344051 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.3672381938 +1.7530868053 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.3204915226 +1.6823201180 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.2939596176 +1.6621011496 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.2990133166 +1.6418820620 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.3141744137 +1.6305088997 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.2686911523 +1.5711153746 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.2547934651 +1.5167768002 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.2163853943 +1.4507591724 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.2244713008 +1.5281499624 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.2674277127 +1.6380909681 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.2699545622 +1.6772654057 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.2396323979 +1.6406183243 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.2080467939 +1.5306773186 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.1789880395 +1.4308458567 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.058655 +0.002144 +0.000000 +1.000000 + + + + + + + + + + +-2.2690656185 +0.7138783932 + + + + + + + + + + + + + + + + + + + + + +0.058655 +0.002144 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-2.3210823536 +0.7489277720 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.3085529804 +0.7712050080 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.2862784863 +0.7865206003 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.2647001743 +0.7705088258 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.2570433617 +0.7510162592 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.2243278027 +0.7301313281 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.1909160614 +0.7315236926 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.1588966846 +0.7106387615 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.1547200680 +0.6995001435 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.1547200680 +0.6855769157 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.1233966351 +0.5985564590 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.1206123829 +0.5741907358 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.1359260082 +0.5950756669 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.1651613712 +0.6883615255 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.1846513748 +0.6925384998 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.1909160614 +0.6500725746 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.1853475571 +0.6138720512 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.1978769302 +0.6403262615 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.2117984295 +0.6751344204 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.2368571758 +0.6834884286 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.2424256802 +0.6744382977 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.2354650497 +0.6479840875 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.2243278027 +0.6048219204 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.1728181839 +0.4767278731 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.1797788143 +0.4523621500 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.1421906948 +0.3743918538 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.1526319981 +0.3709110618 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.1867396832 +0.4516659975 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.1978769302 +0.4829933643 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.2020533085 +0.4732470512 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.1881318092 +0.4335657656 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.1811709404 +0.4064153731 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.1985728741 +0.4377427399 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.2152786255 +0.4822971821 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.2382493019 +0.5595713258 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.2772295475 +0.6298838258 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.2995038033 +0.6549457312 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.3217782974 +0.6827922463 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.3363959789 +0.6939308643 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.3593664169 +0.7078540921 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.3510134220 +0.7238658667 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.3426606655 +0.7412699461 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.058655 +0.002144 +0.000000 +1.000000 + + + + + + + + + + +-2.3565821648 +0.6848807335 + + + + + + + + + + + + + + + + + + + + + +0.058655 +0.002144 +0.000000 +1.000000 + + + + + + + + + + +-2.3718957901 +0.7169042230 + + + + + + + + + + + + + + + + + + + + + +0.058655 +0.002144 +0.000000 +1.000000 + + + + + + + + + + +-2.3217782974 +0.7823436260 + + + + + + + + + + + + + + + + + + + + + +0.058655 +0.002144 +0.000000 +1.000000 + + + + + + + + + + +-2.1783866882 +0.5985564590 + + + + + + + + + + + + + + + + + + + + + +0.058655 +0.002144 +0.000000 +1.000000 + + + + + + + + + + +-2.1651613712 +0.4565391541 + + + + + + + + + + + + + + + + + + + + + +0.058655 +0.002144 +0.000000 +1.000000 + + + + + + + + + + +-2.1394064426 +0.3500261605 + + + + + + + + + + + + + + + + + + + + + +0.058655 +0.002144 +0.000000 +1.000000 + + + + + + + + + + +-2.1094751358 +0.2518671155 + + + + + + + + + + + + + + + + + + + + + +0.058655 +0.002144 +0.000000 +1.000000 + + + + + + + + + + +-2.0892889500 +0.2560440898 + + + + + + + + + + + + + + + + + + + + + +0.058655 +0.002144 +0.000000 +1.000000 + + + + + + + + + + +-2.0892889500 +0.2358553559 + + + + + + + + + + + + + + + + + + + + + +0.058655 +0.002144 +0.000000 +1.000000 + + + + + + + + + + +-2.1540241241 +0.2226282507 + + + + + + + + + + + + + + + + + + + + + +0.058655 +0.002144 +0.000000 +1.000000 + + + + + + + + + + +-1.8909074068 +0.3180026412 + + + + + + + + + + + + + + + + + + + + + +0.058655 +0.002144 +0.000000 +1.000000 + + + + + + + + + + +-1.9563385248 +0.2915484309 + + + + + + + + + + + + + + + + + + + + + +0.058655 +0.002144 +0.000000 +1.000000 + + + + + + + + + + +-1.9382405281 +0.2929407656 + + + + + + + + + + + + + + + + + + + + + +0.058655 +0.002144 +0.000000 +1.000000 + + + + + + + + + + +-1.7767509222 +0.3862266541 + + + + + + + + + + + + + + + + + + + + + +0.058655 +0.002144 +0.000000 +1.000000 + + + + + + + + + + +-2.1324458122 +0.5860255361 + + + + + + + + + + + + + + + + + + + + + +0.058655 +0.002144 +0.000000 +1.000000 + + + + + + + + + + +-2.1561121941 +0.7029809952 + + + + + + + + + + + + + + + + + + + + + +0.058655 +0.002144 +0.000000 +1.000000 + + + + + + + + + + +-1.1338735819 +1.8830116987 + + + + + + + + + + + + + + + + + + + + + +0.058655 +0.002144 +0.000000 +1.000000 + + + + + + + + + + +-1.1099973917 +1.9009162188 + + + + + + + + + + + + + + + + + + + + + +0.058655 +0.002144 +0.000000 +1.000000 + + + + + + + + + + +-1.1607341766 +1.7248551846 + + + + + + + + + + + + + + + + + + + + + +0.058655 +0.002144 +0.000000 +1.000000 + + + + + + + + + + +-1.1473039389 +1.6965063810 + + + + + + + + + + + + + + + + + + + + + +0.058655 +0.002144 +0.000000 +1.000000 + + + + + + + + + + +-1.1070128679 +1.7860289812 + + + + + + + + + + + + + + + + + + + + + +0.058655 +0.002144 +0.000000 +1.000000 + + + + + + + + + + +-1.0577683449 +1.8143777847 + + + + + + + + + + + + + + + + + + + + + +0.058655 +0.002144 +0.000000 +1.000000 + + + + + + + + + + +-0.9816631675 +1.8352663517 + + + + + + + + + + + + + + + + + + + + + +0.058655 +0.002144 +0.000000 +1.000000 + + + + + + + + + + +-0.9936012030 +1.8501868248 + + + + + + + + + + + + + + + + + + + + + +0.058655 +0.002144 +0.000000 +1.000000 + + + + + + + + + + +-0.9458489418 +1.7815527916 + + + + + + + + + + + + + + + + + + + + + +0.058655 +0.002144 +0.000000 +1.000000 + + + + + + + + + + +-0.9309263825 +1.7263473272 + + + + + + + + + + + + + + + + + + + + + +0.058655 +0.002144 +0.000000 +1.000000 + + + + + + + + + + +-0.9354031086 +1.6890462637 + + + + + + + + + + + + + + + + + + + + + +0.058655 +0.002144 +0.000000 +1.000000 + + + + + + + + + + +-1.0159851313 +0.6520767212 + + + + + + + + + + + + + + + + + + + + + +0.058655 +0.002144 +0.000000 +1.000000 + + + + + + + + + + +-0.9950934649 +0.6222358942 + + + + + + + + + + + + + + + + + + + + + +0.058655 +0.002144 +0.000000 +1.000000 + + + + + + + + + + +-0.5772609711 +1.2011483908 + + + + + + + + + + + + + + + + + + + + + +0.058655 +0.002144 +0.000000 +1.000000 + + + + + + + + + + +-0.6205365062 +1.1966722012 + + + + + + + + + + + + + + + + + + + + + +0.058655 +0.002144 +0.000000 +1.000000 + + + + + + + + + + +-0.5601125360 +1.5632731915 + + + + + + + + + + + + + + + + + + + + + +0.058655 +0.002144 +0.000000 +1.000000 + + + + + + + + + + +-0.6674950719 +1.5968385935 + + + + + + + + + + + + + + + + + + + + + +0.058655 +0.002144 +0.000000 +1.000000 + + + + + + + + + + +-0.3766673505 +1.8317962885 + + + + + + + + + + + + + + + + + + + + + +0.058655 +0.002144 +0.000000 +1.000000 + + + + + + + + + + +-0.3319246173 +1.7915178537 + + + + + + + + + + + + + + + + + + + + + +0.058655 +0.002144 +0.000000 +1.000000 + + + + + + + + + + +-0.2804704607 +1.7064855099 + + + + + + + + + + + + + + + + + + + + + +0.058655 +0.002144 +0.000000 +1.000000 + + + + + + + + + + +-0.2446762919 +1.6952971220 + + + + + + + + + + + + + + + + + + + + + +0.058655 +0.002144 +0.000000 +1.000000 + + + + + + + + + + +-0.1887478828 +1.6236908436 + + + + + + + + + + + + + + + + + + + + + +0.058655 +0.002144 +0.000000 +1.000000 + + + + + + + + + + +-0.7681662440 +1.6304039955 + + + + + + + + + + + + + + + + + + + + + +0.058655 +0.002144 +0.000000 +1.000000 + + + + + + + + + + +-0.5981438756 +2.1383602619 + + + + + + + + + + + + + + + + + + + + + +0.058655 +0.002144 +0.000000 +1.000000 + + + + + + + + + + +-0.6518351436 +1.3395038843 + + + + + + + + + + + + + + + + + + + + + +0.058655 +0.002144 +0.000000 +1.000000 + + + + + + + + + + +-0.4952355623 +1.4222985506 + + + + + + + + + + + + + + + + + + + + + +0.058655 +0.002144 +0.000000 +1.000000 + + + + + + + + + + +-0.4728642106 +1.4536262751 + + + + + + + + + + + + + + + + + + + + + +0.058655 +0.002144 +0.000000 +1.000000 + + + + + + + + + + +-1.0455710888 +1.7467639446 + + + + + + + + + + + + + + + + + + + + + +0.058655 +0.002144 +0.000000 +1.000000 + + + + + + + + + + +-0.9985913038 +1.7355755568 + + + + + + + + + + + + + + + + + + + + + +0.058655 +0.002144 +0.000000 +1.000000 + + + + + + + + + + +-1.0008283854 +1.6236908436 + + + + + + + + + + + + + + + + + + + + + +0.058655 +0.002144 +0.000000 +1.000000 + + + + + + + + + + +-1.3208302259 +0.9402552843 + + + + + + + + + + + + + + + + + + + + + +0.058655 +0.002144 +0.000000 +1.000000 + + + + + + + + + + +-1.2707676888 +1.0954276323 + + + + + + + + + + + + + + + + + + + + + +0.058655 +0.002144 +0.000000 +1.000000 + + + + + + + + + + +-1.2207050323 +1.0754054785 + + + + + + + + + + + + + + + + + + + + + +0.058655 +0.002144 +0.000000 +1.000000 + + + + + + + + + + +-0.6249603629 +0.7900884151 + + + + + + + + + + + + + + + + + + + + + +0.058655 +0.002144 +0.000000 +1.000000 + + + + + + + + + + +-2.0066876411 +1.2756279707 + + + + + + + + + + + + + + + + + + + + + +0.058655 +0.002144 +0.000000 +1.000000 + + + + + + + + + + +-1.9766499996 +1.3006557226 + + + + + + + + + + + + + + + + + + + + + +0.058655 +0.002144 +0.000000 +1.000000 + + + + + + + + + + +-1.5360993147 +1.3206779957 + + + + + + + + + + + + + + + + + + + + + +0.058655 +0.002144 +0.000000 +1.000000 + + + + + + + + + + +0.3512599170 +1.7361395359 + + + + + + + + + + + + + + + + + + + + + +0.058655 +0.002144 +0.000000 +1.000000 + + + + + + + + + + +0.2911848128 +1.6059949398 + + + + + + + + + + + + + + + + + + + + + +0.058655 +0.002144 +0.000000 +1.000000 + + + + + + + + + + +-2.4422318935 +0.8801885247 + + + + + + + + + + + + + + + + + + + + + +0.058655 +0.002144 +0.000000 +1.000000 + + + + + + + + + + +-2.4973008633 +1.0053275824 + + + + + + + + + + + + + + + + + + + + + +0.058655 +0.002144 +0.000000 +1.000000 + + + + + + + + + + +-2.3070631027 +1.3056613207 + + + + + + + + + + + + + + + + + + + + + + + + +0.105649 +0.000000 +0.000000 +1.000000 + + + + +0.049519 +0.000000 +0.000000 +1.000000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.027074 +0.000000 +0.000000 +1.000000 + + + + +0.0166666675 +-0.0500000007 + + + + +0.0166666675 +0.0166666675 + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0050000004 +-0.0083333338 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + +0.058655 +0.002144 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-1.0093330145 +-0.8148872256 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.1666240692 +-1.0204265118 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.3108075857 +-1.0291728973 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.4331451654 +-1.1122633219 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.3282843828 +-1.2041000128 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.6472357512 +-1.3527880907 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.3807147741 +-1.3746539354 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.4112991095 +-1.4927297831 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.2583771944 +-1.5058493614 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.1535165310 +-1.4315053225 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.0355482101 +-1.4664907455 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.0836093426 +-1.5714470148 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.7340735793 +-1.5364615917 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.4282297790 +-1.2959368229 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.058655 +0.002144 +0.000000 +1.000000 + + + + + + + + + + +-1.6647125483 +-1.2871904373 + + + + + + + + + + + + + + + + + + + + + +0.058655 +0.002144 +0.000000 +1.000000 + + + + + + + + + + +-1.3632379770 +-1.3615344763 + + + + + + + + + + + + + + + + + + + + + +0.027074 +0.000000 +0.000000 +1.000000 + + + + +0.2833333313 +-0.1666666716 + + + + +0.0500000007 +0.1166666672 + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0050000004 +-0.0083333338 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + +0.0000000000 +0.0000000000 + + + + + + + diff --git a/synfig-core/tags/stable/examples/business_card.sif b/synfig-core/tags/stable/examples/business_card.sif new file mode 100644 index 0000000..a6bab58 --- /dev/null +++ b/synfig-core/tags/stable/examples/business_card.sif @@ -0,0 +1,1273 @@ + + + Untitled0 + + + + + + + + + + + + + + + + + + + + + 1.000000 + 1.000000 + 1.000000 + 1.000000 + + + + + + + + + + + + + + + + 0.0000000000 + 0.0000000000 + + + + + + + + + + + + + + + + + -1.3750000000 + 1.0000000000 + + + + + -1.3750000000 + -1.0000000000 + + + + + + + 0.000000 + 0.000000 + 0.000000 + 0.000000 + + + + + 0.000000 + 0.000000 + 0.000000 + 1.000000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0.000000 + 0.000000 + 0.000000 + 1.000000 + + + + + -1.7500000000 + 1.0000000000 + + + + + -1.3750000000 + -1.0000000000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + -1.7500000000 + 1.0000000000 + + + + + 1.7500000000 + 1.0000000000 + + + + + + 1.000000 + 1.000000 + 1.000000 + 1.000000 + + + 0.000000 + 0.000000 + 0.000000 + 1.000000 + + + 1.000000 + 1.000000 + 1.000000 + 1.000000 + + + + + + + + + + + + + + + + + + + + + + + -1.6250000000 + 0.0000000000 + + + + + + + + + + + + + + + + Voria Studios, LLC + + + + 0.000000 + 0.000000 + 0.000000 + 1.000000 + + + + SFAutomaton + + + + + + + + + + + + + + + + 0.1124999970 + 0.1124999970 + + + + + 0.5000000000 + 0.0000000000 + + + + + 0.0000000000 + 0.0000000000 + + + + + + + + + + + + + + + + + + + + + + + + + 0.1000000015 + 0.1000000015 + + + + + + + + + + + + + + + + + + Voria Studios, LLC + + + + 1.000000 + 1.000000 + 1.000000 + 1.000000 + + + + SFAutomaton + + + + + + + + + + + + + + + + 0.1124999970 + 0.1124999970 + + + + + 0.5000000000 + 0.0000000000 + + + + + 0.0000000000 + 0.0000000000 + + + + + + + + + + + + + + + + 0.0000000000 + 0.0000000000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0.060778 + 0.058655 + 0.058655 + 0.000000 + + + + + -0.1250000000 + 1.0000000000 + + + + + 0.2500000000 + -1.0000000000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + Founder/Lead Software Engineer + + + + 0.000000 + 0.000000 + 0.000000 + 1.000000 + + + + Arial + + + + + + + + + + + + + + + + 0.0500000007 + 0.0500000007 + + + + + 1.0000000000 + -0.2000000030 + + + + + 1.6250000000 + 0.6250000000 + + + + + + + + + + + + + + + + + + + + + + + + Robert B. Quattlebaum Jr. + + + + 0.000000 + 0.000000 + 0.000000 + 1.000000 + + + + Arial + + + + + + + + + + + + + + + + 0.0874999985 + 0.0874999985 + + + + + 1.0000000000 + 0.0000000000 + + + + + 1.6250000000 + 0.7500000000 + + + + + + + + + + + + + + + + + + + + + + + + 16301 NE 8th Street, Suite 271 +Bellevue, Washington 98008 +Main (425) 641-3335 +Fax (425) 641-3960 +darco@deepdarc.com +http://synfig.com/ + + + + 0.000000 + 0.000000 + 0.000000 + 1.000000 + + + + Arial + + + + + + + + + + + + + + + + 0.0625000000 + 0.0625000000 + + + + + 1.0000000000 + 1.0000000000 + + + + + 1.6250000000 + -0.7500000000 + + + + + + + + + + + + + + + + + + + + + + + + + 0.0000000000 + 0.0000000000 + + + + + + + + + + + + + + + + + -0.6250000000 + 0.0000000000 + + + + + + + + + + + + + + + + + + + + + 0.000000 + 0.000000 + 0.000000 + 1.000000 + + + + + 0.0500000007 + -0.0500000007 + + + + + 0.1000000015 + 0.1000000015 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0.060778 + 0.058655 + 0.058655 + 0.000000 + + + + + -1.7500000000 + 1.0000000000 + + + + + 1.7500000000 + -1.0000000000 + + + + + + + + + + + + + + + + + + + + + + + + 1.000000 + 1.000000 + 1.000000 + 1.000000 + + + + + + + + + + + + + + + + -1.7500000000 + 4.2500000000 + + + + + + + + + + + + + + + + + -1.3750000000 + 1.0000000000 + + + + + -1.3750000000 + -1.0000000000 + + + + + + + 0.000000 + 0.000000 + 0.000000 + 0.000000 + + + + + 0.000000 + 0.000000 + 0.000000 + 1.000000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0.000000 + 0.000000 + 0.000000 + 1.000000 + + + + + -1.7500000000 + 1.0000000000 + + + + + -1.3750000000 + -9.5000000000 + + + + + + + + + + + + + + + + + + + + + + 0.000000 + 0.000000 + 0.000000 + 1.000000 + + + + + 1.7500000000 + 1.0000000000 + + + + + 2.1250000000 + -9.5000000000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + -3.5000000000 + 5.2500000000 + + + + + 0.0000000000 + 5.2500000000 + + + + + + 1.000000 + 1.000000 + 1.000000 + 1.000000 + + + 0.000000 + 0.000000 + 0.000000 + 1.000000 + + + 1.000000 + 1.000000 + 1.000000 + 1.000000 + + + + + + + + + + + + + + + + + + + + + + + -1.7500000000 + 4.0000000000 + + + + + + + + + + + + + + + + + + + + + 1.7500000000 + -4.0000000000 + + + + + + + + + + + + + + + + + + + + + 1.7500000000 + 4.0000000000 + + + + + + + + + + + + + + + + + + + + + -1.7500000000 + 2.0000000000 + + + + + + + + + + + + + + + + + + + + + 1.7500000000 + 2.0000000000 + + + + + + + + + + + + + + + + + + + + + -1.7500000000 + 0.0000000000 + + + + + + + + + + + + + + + + + + + + + 1.7500000000 + 0.0000000000 + + + + + + + + + + + + + + + + + + + + + -1.7500000000 + -2.0000000000 + + + + + + + + + + + + + + + + + + + + + 1.7500000000 + -2.0000000000 + + + + + + + + + + + + + + + + + + + + + -1.7500000000 + -4.0000000000 + + + + + + + + + diff --git a/synfig-core/tags/stable/examples/candy.sif b/synfig-core/tags/stable/examples/candy.sif new file mode 100644 index 0000000..7aaa64f --- /dev/null +++ b/synfig-core/tags/stable/examples/candy.sif @@ -0,0 +1,421 @@ + + + Untitled0 + + + + + + + + + + + + + 0.000000 + 0.333333 + 0.666667 + 1.000000 + + + + + + + + + + + 0.0000000000 + 0.0000000000 + + + + + + + + + + + + + + + + + + + + + + 1.000000 + 1.000000 + 1.000000 + 1.000000 + + + + + 0.0000000000 + -2.2500000000 + + + + + 1.0000000000 + 1.0000000000 + + + + + + + + + + + + + + + + + + + + + + 0.000000 + 0.000000 + 0.000000 + 1.000000 + + + + + 0.0000000000 + 0.0000000000 + + + + + 1.3999999762 + 1.3999999762 + + + + + + + + + + + + + + + + + + + + + + 0.0000000000 + 0.0000000000 + + + + + + + + + + + + + + + + + 0.000000 + 0.333333 + 0.666667 + 1.000000 + + + + + 0.0000000000 + 0.0000000000 + + + + + + + + + + + + + + + + + + + + + 0.0000000000 + 0.5000000000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 1.2500000000 + 0.7500000000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0.0092586456 + 1.7483639717 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + -1.2500000000 + 0.7500000000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0.0000000000 + 0.5000000000 + + + + + 0.0092586456 + 1.7483639717 + + + + + + 0.000000 + 0.000000 + 0.000000 + 1.000000 + + + 1.000000 + 1.000000 + 1.000000 + 1.000000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0.000000 + 0.000000 + 0.000000 + 1.000000 + + + + + 0.1000000015 + -0.1000000015 + + + + + 0.2000000030 + 0.2000000030 + + + + + + + + + + diff --git a/synfig-core/tags/stable/examples/cells.sif b/synfig-core/tags/stable/examples/cells.sif new file mode 100644 index 0000000..bc880c5 --- /dev/null +++ b/synfig-core/tags/stable/examples/cells.sif @@ -0,0 +1,1012 @@ + + + Untitled0 + + + + + + + + + + + + + + + + + + 1.000000 + 1.000000 + 1.000000 + 1.000000 + + + + + + + + + + + + + + + + 0.000000 + 0.000000 + 0.000000 + 1.000000 + + + + + + + + + + + 0.0000000000 + 0.0000000000 + + + + + + + + + + + + + + + + + + + + + + 0.000000 + 0.000000 + 0.000000 + 1.000000 + + + + + + + + + + + -1.7000000477 + 1.1200000048 + + + + + + + + + + + + + + + + + + + + + + 0.000000 + 0.000000 + 0.000000 + 1.000000 + + + + + + + + + + + -1.8999999762 + 0.3400000036 + + + + + + + + + + + + + + + + + + + + + + 0.000000 + 0.000000 + 0.000000 + 1.000000 + + + + + + + + + + + -1.2699999809 + -1.3400000334 + + + + + + + + + + + + + + + + + + + + + + 0.000000 + 0.000000 + 0.000000 + 1.000000 + + + + + + + + + + + -0.5799999833 + -1.2699999809 + + + + + + + + + + + + + + + + + + + + + + 0.000000 + 0.000000 + 0.000000 + 1.000000 + + + + + + + + + + + 1.6000000238 + -0.7500000000 + + + + + + + + + + + + + + + + + + + + + + 0.000000 + 0.000000 + 0.000000 + 1.000000 + + + + + + + + + + + 1.6100000143 + 1.1699999571 + + + + + + + + + + + + + + + + + + + + + + 0.000000 + 0.000000 + 0.000000 + 1.000000 + + + + + + + + + + + 0.4399999976 + 1.3400000334 + + + + + + + + + + + + + + + + + + + + + + 0.000000 + 0.000000 + 0.000000 + 1.000000 + + + + + + + + + + + 1.3799999952 + 0.2599999905 + + + + + + + + + + + + + + + + + + + + + + 0.000000 + 0.000000 + 0.000000 + 1.000000 + + + + + + + + + + + 0.6000000238 + -0.9100000262 + + + + + + + + + + + + + + + + + + + + + + 0.000000 + 0.000000 + 0.000000 + 1.000000 + + + + + + + + + + + -0.8399999738 + -0.3600000143 + + + + + + + + + + + + + + + + + + + + + + 0.000000 + 0.000000 + 0.000000 + 1.000000 + + + + + + + + + + + -0.6000000238 + 1.6000000238 + + + + + + + + + + + + + + + + + + + + + + 0.000000 + 0.000000 + 0.000000 + 1.000000 + + + + + + + + + + + 1.3999999762 + -1.3999999762 + + + + + + + + + + + + + + + + + + + + + + 0.000000 + 0.000000 + 0.000000 + 1.000000 + + + + + + + + + + + 2.4000000954 + 0.6000000238 + + + + + + + + + + + + + + + + + + + + + + 0.000000 + 0.000000 + 0.000000 + 1.000000 + + + + + + + + + + + -2.4000000954 + -1.7999999523 + + + + + + + + + + + + + + + + + + + + + + 0.000000 + 0.000000 + 0.000000 + 1.000000 + + + + + + + + + + + 2.4000000954 + -1.7999999523 + + + + + + + + + + + + + + + + + + + + + + 0.000000 + 0.000000 + 0.000000 + 1.000000 + + + + + + + + + + + 0.4000000060 + -2.0000000000 + + + + + + + + + + + + + + + + + + + + + + 0.000000 + 0.000000 + 0.000000 + 1.000000 + + + + + + + + + + + -2.2000000477 + -0.6000000238 + + + + + + + + + + + + + + + + + + + + + + 0.000000 + 0.000000 + 0.000000 + 1.000000 + + + + + + + + + + + -0.7900000215 + 0.7099999785 + + + + + + + + + + + + + + + + + + + + + + + + 2.0000000000 + 1.5000000000 + + + + + 1.5000000000 + 1.5000000000 + + + + + -1.5000000000 + 1.5000000000 + + + + + -1.5000000000 + -1.5000000000 + + + + + 1.5000000000 + -1.5000000000 + + + + + 1.5000000000 + 1.5000000000 + + + + + + + + + -2.0000000000 + -1.5000000000 + + + + + -1.5000000000 + -1.5000000000 + + + + + 1.5000000000 + -1.5000000000 + + + + + 1.5000000000 + 1.5000000000 + + + + + -1.5000000000 + 1.5000000000 + + + + + -1.5000000000 + -1.5000000000 + + + + + + + + 0.000000 + 0.000000 + 0.000000 + 1.000000 + + + 1.000000 + 1.000000 + 1.000000 + 1.000000 + + + + + + + + + + + + + + + + + + + + + + + 0.1000000015 + 0.1000000015 + + + + + + + + + + + + + + + + + + + + + -2.0000000000 + -1.5000000000 + + + + + -1.5000000000 + -1.5000000000 + + + + + 1.5000000000 + -1.5000000000 + + + + + 1.5000000000 + 1.5000000000 + + + + + -1.5000000000 + 1.5000000000 + + + + + -1.5000000000 + -1.5000000000 + + + + + + + + + 2.0000000000 + 1.5000000000 + + + + + 1.5000000000 + 1.5000000000 + + + + + -1.5000000000 + 1.5000000000 + + + + + -1.5000000000 + -1.5000000000 + + + + + 1.5000000000 + -1.5000000000 + + + + + 1.5000000000 + 1.5000000000 + + + + + + + + + 1.000000 + 0.000000 + 0.000000 + 1.000000 + + + + + 0.000000 + 0.000000 + 1.000000 + 1.000000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/synfig-core/tags/stable/examples/eye.sif b/synfig-core/tags/stable/examples/eye.sif new file mode 100644 index 0000000..9f19368 --- /dev/null +++ b/synfig-core/tags/stable/examples/eye.sif @@ -0,0 +1,84807 @@ + + +The Eye +Eye Closed +Eye Closed (Duplicate) +Eye Blink 01-01 +Eye Blink 01-02 +Eye Blink 01-02 (Duplicate) + +Eye Relax (Duplicate) +Eye Relax +Eye Relax (Duplicate) +Looking Left Slightly +Looking Left Slightly (Duplicate) +Eye Closed (Duplicate) +Looking Right +Looking Right (Duplicate) + +Eye Relax +Eye Relax (Duplicate) +Eye Closed (Duplicate) +Eye Relax +Very Slight Movement +Very Slight Movement +Very Slight Movement +Eye Relax (Duplicate) +Eye Closed (Duplicate) +Eye Closed (Duplicate) (Duplicate) +Eye Relax (Duplicate) (Duplicate) +Eye Relax (Duplicate) +Crazy Eye Start! +Seizure Eye + + + + (Duplicate) + (Duplicate) + (Duplicate) (Duplicate) +Eye Closed (Duplicate) + + + + +-0.0336057581 +-1.0715417862 + + + + +-0.0336057581 +-1.0715417862 + + + + +-0.0327686742 +-0.7824095488 + + + + +-0.0336057581 +-1.0715417862 + + + + +-0.0336057581 +-1.0715417862 + + + + +-0.0137052247 +-0.5902001858 + + + + +0.0106103700 +-0.0020697950 + + + + +0.0106111327 +-0.0275756009 + + + + +0.0106111327 +-0.0275756009 + + + + +0.1724226922 +-0.0556604676 + + + + +0.1724226922 +-0.0556604676 + + + + +-0.0299637262 +-0.1946326494 + + + + +-0.6186540723 +-0.0486135334 + + + + +-0.5500683784 +-0.0605789013 + + + + +-0.3234966695 +-0.0767859146 + + + + +0.0106105972 +0.0360907465 + + + + +0.0106102685 +0.0148691926 + + + + +-0.0207649209 +-0.2671193480 + + + + +0.0106102685 +0.0148691926 + + + + +0.0214815065 +0.0094330832 + + + + +0.0106102964 +0.0039970372 + + + + +-0.0002605758 +0.0094331391 + + + + +0.0106102685 +0.0148691926 + + + + +-0.0325968862 +-0.7694307566 + + + + +-0.0325968862 +-0.7694307566 + + + + +0.0106103700 +-0.0020697950 + + + + +0.0106111327 +-0.0275756009 + + + + +0.0106111327 +-0.0275756009 + + + + +0.0106111327 +-0.0275756009 + + + + +0.0106111327 +-0.0275756009 + + + + +0.0106111327 +-0.0275756009 + + + + +0.0110310316 +0.8643937111 + + + + +0.0110072121 +0.8405378461 + + + + +0.0110310316 +0.8643937111 + + + + +0.0110310316 +0.8643937111 + + + + +-0.0317623056 +0.3658390641 + + + + + + + + + + + + + + + + +1.000000 +1.000000 +1.000000 +1.000000 + + + + + + + + + + + + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.000000 +1.000000 +1.000000 +1.000000 + + + + + + + + + + + + + + + +0.507498 +0.091208 +0.000000 +1.000000 + + + + + + + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + +0.081532 +0.246800 +0.508289 +1.000000 + + + + + + + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + +1.000000 +1.000000 +1.000000 +0.000000 + + +1.000000 +1.000000 +0.000000 +0.492960 + + +1.000000 +1.000000 +0.000000 +0.036070 + + +1.000000 +1.000000 +0.000000 +0.274678 + + +1.000000 +1.000000 +0.000000 +0.209302 + + +1.000000 +1.000000 +0.000000 +0.581396 + + +1.000000 +1.000000 +1.000000 +0.000000 + + +1.000000 +1.000000 +0.000000 +0.589147 + + +1.000000 +1.000000 +1.000000 +0.000000 + + +1.000000 +1.000000 +0.000000 +0.527897 + + +1.000000 +1.000000 +1.000000 +0.000000 + + +1.000000 +1.000000 +0.000000 +0.416309 + + +1.000000 +1.000000 +0.000000 +0.211886 + + +1.000000 +1.000000 +0.000000 +0.090638 + + +1.000000 +1.000000 +0.000000 +0.540773 + + +1.000000 +1.000000 +1.000000 +0.000000 + + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +0.000000 + + + + + + + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + +1.000000 +1.000000 +1.000000 +0.000000 + + +1.000000 +1.000000 +0.000000 +0.492960 + + +1.000000 +1.000000 +0.000000 +0.036070 + + +1.000000 +1.000000 +0.000000 +0.274678 + + +1.000000 +1.000000 +0.000000 +0.209302 + + +1.000000 +1.000000 +0.000000 +0.581396 + + +1.000000 +1.000000 +1.000000 +0.000000 + + +1.000000 +1.000000 +0.000000 +0.589147 + + +1.000000 +1.000000 +1.000000 +0.000000 + + +1.000000 +1.000000 +0.000000 +0.527897 + + +1.000000 +1.000000 +1.000000 +0.000000 + + +1.000000 +1.000000 +0.000000 +0.416309 + + +1.000000 +1.000000 +0.000000 +0.211886 + + +1.000000 +1.000000 +0.000000 +0.090638 + + +1.000000 +1.000000 +0.000000 +0.540773 + + +1.000000 +1.000000 +1.000000 +0.000000 + + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +0.000000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + + +4.594794 +4.594794 +4.594794 +1.000000 + + + + +0.0000000000 +-0.9988839626 + + + + +0.7086614370 +0.7086614370 + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +-0.3660714328 + + + + +0.4724409580 +0.4724409580 + + + + + + + + + + + + + + + + + + + + + +1.000000 +1.000000 +1.000000 +1.000000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.4545167387 +0.5048084259 + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + + + + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +0.000000 + + + + +-1.1035904884 +1.1120440960 + + + + +1.1078461409 +-1.0698722601 + + + + + + + + + + + + + + + + + + + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + +0.301677 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +1.6923044920 +-1.9193410873 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.6936483383 +-1.8256584406 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.3832230568 +-1.6969290972 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.2145721912 +-1.5109117031 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.2965459824 +-1.3302862644 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.0452493429 +-0.9218568206 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.8645039201 +-0.5956525207 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.301677 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +1.0452493429 +-0.9218568206 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.9411023855 +-0.9218568206 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.7637165189 +-0.8537852764 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.301677 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-2.5295386314 +-0.8052673936 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.1181263924 +-0.7764194012 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.1814802885 +-0.1413927674 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.8690393567 +0.0405807197 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.301677 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-1.7564191818 +-1.3831291199 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.0937377214 +-0.7344189286 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.301677 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-0.8885249496 +-1.5432626009 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.4148241580 +-0.8901799321 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.301677 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +0.9693228602 +0.5945888758 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.3059527874 +0.5305611491 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.6545932293 +0.2967818379 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.0163569450 +0.3560014367 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.301677 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +0.6347086430 +0.8419380188 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.8739107847 +1.6527310610 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.301677 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-0.0607244112 +1.0225635767 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.0103307087 +1.1337696314 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.3093333244 +1.3029375076 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.4752965868 +1.9155815840 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.301677 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-0.8005039096 +0.7792582512 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.0833805799 +0.7792582512 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.1465406418 +1.1101803780 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.3420681953 +1.2759784460 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.5631285906 +1.5590484142 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.301677 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-1.0833805799 +0.7792582512 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.4294173717 +0.7630828619 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.8876640797 +0.8641792536 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.301677 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-1.1814802885 +-0.1413927674 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.2217953205 +0.2259240896 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.1015223265 +0.1895293891 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.0323150158 +0.3047792614 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.9953595996 +0.4233990014 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.8293963075 +0.4375525117 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.301677 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +1.1285669804 +-0.2755139768 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.2649658918 +-0.0915185511 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.5774068832 +-0.1926149279 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.8952231407 +-0.1380228847 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.0574822426 +0.1741044670 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.301677 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +1.6545932293 +0.2967818379 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.9697217941 +0.3459820747 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.1665930748 +0.6425314546 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.5791497231 +0.8332666159 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.301677 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +3.1679661274 +-0.5442842841 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.4774775505 +-0.5429559946 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.3607454300 +-0.4515375793 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.1791498661 +-0.4101101458 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.301677 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +2.4138581753 +-1.1879869699 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.0563988686 +-0.7539465427 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.1014173031 +-0.4944658279 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.301677 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +2.1665930748 +-0.9514214396 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.7217848301 +-0.8328016996 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.301677 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-3.0474750996 +-0.0489677712 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.2613332272 +-0.0873843953 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.1309816837 +0.0939151123 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.9677060843 +0.1451372802 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.301677 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-2.5468976498 +-0.0563815050 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.0323958397 +-0.3166686296 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.6410787106 +-0.1206863299 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.301677 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-0.0984356925 +-1.0154491663 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.1642834693 +-1.2594283819 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.2805249393 +-1.8154585361 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.301677 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +0.2153490782 +-0.9197446108 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.1642834693 +-1.2594283819 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.301677 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +0.8563569784 +-1.6685317755 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.5277900100 +-1.1509183645 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.301677 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +0.6924094558 +-1.3686125278 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.7226456404 +-1.0963262320 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.6366404295 +-0.8415634036 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.301677 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +0.7958844900 +1.1540791988 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.9759579897 +0.9047080874 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.301677 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +0.9846929312 +2.1138207912 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.8610603809 +1.5598126650 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.6211863756 +1.3940145969 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.4753805697 +1.1224023104 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.301677 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-1.5201654434 +0.2978453040 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.6653438807 +0.5832216144 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.7211128473 +0.9350370169 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.1551706791 +1.1924958229 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.5408504009 +1.2268685102 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.301677 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-1.6653438807 +0.5832216144 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.4530184269 +0.5832216144 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.301677 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-1.7614278793 +-0.5497318506 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.3410428762 +-0.5978451371 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.1540157795 +-0.4742465615 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.301677 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-1.4442834854 +-0.9399638772 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.1869395971 +-0.9595091939 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.301677 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-1.2931023836 +-0.8152783513 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.1761889458 +-0.6508282423 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.301677 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-1.1909711361 +-1.1805732250 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.2252388000 +-1.3012149334 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.1116850376 +-1.4892542362 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.9443779588 +-1.6287672520 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.8496378064 +-1.6159616709 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.7878215313 +-1.0889124870 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.7186141610 +-0.6420665383 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.000000 +1.000000 +1.000000 +0.336735 + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0000000000 +0.0117187500 + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + + + + + + + +-0.4833333194 +1.0499999523 + + + + + + + + + + + + + + + + + + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + +1.000000 +1.000000 +1.000000 +1.000000 + + + + + + + + + + +0.6000000238 +0.3499999940 + + + + + + + + + + + + + + + + + + + + + +1.000000 +1.000000 +1.000000 +1.000000 + + + + + + + + + + +0.7166666389 +-0.0333333351 + + + + + + + + + + + + + + + + + + + + + +1.000000 +1.000000 +1.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +0.3518127203 +0.3639486730 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.7992491722 +0.3596089184 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.7907261252 +0.2113378644 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.3809001744 +0.2441187203 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.000000 +1.000000 +1.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +0.5077843666 +0.1466027200 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.7322824597 +0.1601406038 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.7338021994 +0.0792263225 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.5157077909 +0.0918401033 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0000000000 +0.0117187500 + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +0.000000 + + + + +0.5226666927 +0.9032066464 + + + + +1.5360000134 +-0.0480997637 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +0.000000 + + + + +-2.8666665554 +1.8166667223 + + + + +2.8833334446 +-1.4833333492 + + + + + + + + + + + + + + + + + + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + +1.000000 +1.000000 +1.000000 +1.000000 + + + + + + + + + + +0.6000000238 +0.3499999940 + + + + + + + + + + + + + + + + + + + + + +1.000000 +1.000000 +1.000000 +1.000000 + + + + + + + + + + +0.7166666389 +-0.0333333351 + + + + + + + + + + + + + + + + + + + + + +1.000000 +1.000000 +1.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +0.7344150543 +0.6192632318 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.2604610920 +0.5168353319 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.2399657965 +0.3188079894 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.7549103498 +0.4144074023 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.000000 +1.000000 +1.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +0.9893565178 +0.2832054198 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.1990779638 +0.2613395452 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.2078163624 +0.1520100832 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.9980949163 +0.1957418621 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + + + +-2.4505028725 +-0.4981833696 + + + + +-2.4456825256 +-0.2073820680 + + + + +-2.4238362312 +-0.6050083041 + + + + +-2.4238362312 +-0.6050083041 + + + + +-2.4905028343 +-0.5115364790 + + + + +-2.3073730469 +-0.3627472222 + + + + +-2.4000000954 +-0.2333333343 + + + + +-2.4000000954 +-0.2333333343 + + + + +-2.4000000954 +-0.2333333343 + + + + +-2.2666666508 +-0.2500000000 + + + + +-2.2666666508 +-0.2500000000 + + + + +-2.4505028725 +-0.4981833696 + + + + +-2.2982034683 +-0.2548676431 + + + + +-2.3166666031 +-0.2333333343 + + + + +-2.3146467209 +-0.2305233032 + + + + +-2.3166666031 +-0.2333333343 + + + + +-2.3499999046 +-0.2666666806 + + + + +-2.4505028725 +-0.4981833696 + + + + +-2.3333332539 +-0.2500000000 + + + + +-2.3333332539 +-0.2500000000 + + + + +-2.3333332539 +-0.2500000000 + + + + +-2.3333332539 +-0.2500000000 + + + + +-2.3333332539 +-0.2500000000 + + + + +-2.4505028725 +-0.4981833696 + + + + +-2.4505028725 +-0.4981833696 + + + + +-2.4000000954 +-0.2333333343 + + + + +-2.4000000954 +-0.2333333343 + + + + +-2.4000000954 +-0.2333333343 + + + + +-2.4000000954 +-0.2333333343 + + + + +-2.4000000954 +-0.2333333343 + + + + +-2.4000000954 +-0.2333333343 + + + + +-2.4000000954 +-0.2333333343 + + + + +-2.4000000954 +-0.2333333343 + + + + +-2.4000000954 +-0.2333333343 + + + + +-2.4000000954 +-0.2333333343 + + + + +-2.2666666508 +-0.3666666746 + + + + +-2.4505028725 +-0.4981833696 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.5171694756 +-0.8987768292 + + + + +-1.2505028248 +-1.0323079824 + + + + +-1.7838361263 +-0.7919518948 + + + + +-1.5171694756 +-1.1925454140 + + + + +-1.4771695137 +-0.9655424356 + + + + +-1.2940397263 +-0.5123909116 + + + + +-1.3333333731 +0.6166666746 + + + + +-1.3367063999 +0.5671815276 + + + + +-1.3367063999 +0.5671815276 + + + + +-1.2833333015 +0.5666666627 + + + + +-1.2833333015 +0.5666666627 + + + + +-1.5555186272 +-0.7678041458 + + + + +-1.4967064857 +0.5671815276 + + + + +-1.4166666269 +0.5000000000 + + + + +-1.4126750231 +0.5656030774 + + + + +-1.4166666269 +0.6333333254 + + + + +-1.4327064753 +0.4923596680 + + + + +-1.5171694756 +-0.8987768292 + + + + +-1.4500000477 +0.4833333194 + + + + +-1.4500000477 +0.4833333194 + + + + +-1.4500000477 +0.4833333194 + + + + +-1.4500000477 +0.4833333194 + + + + +-1.4500000477 +0.4833333194 + + + + +-1.5171694756 +-0.8987768292 + + + + +-1.5171694756 +-0.8987768292 + + + + +-1.3333333731 +0.6166666746 + + + + +-1.3367063999 +0.5671815276 + + + + +-1.3367063999 +0.5671815276 + + + + +-1.4500000477 +0.7333333492 + + + + +-1.4500000477 +0.7333333492 + + + + +-1.4500000477 +0.7333333492 + + + + +-1.2666666508 +0.8833333254 + + + + +-1.2666666508 +0.8833333254 + + + + +-1.2666666508 +0.8833333254 + + + + +-1.2666666508 +0.8833333254 + + + + +-1.5171694756 +-0.8987768292 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.1894972324 +-1.1257798672 + + + + +1.0694972277 +-1.0990735292 + + + + +1.1494971514 +-1.0857204199 + + + + +0.9228305221 +-1.2993702888 + + + + +1.0694972277 +-1.0990735292 + + + + +0.9779602289 +-0.5765239596 + + + + +0.8333333135 +0.7833333611 + + + + +0.8179602623 +0.7595805526 + + + + +0.8179602623 +0.7595805526 + + + + +0.8999999762 +0.7500000000 + + + + +0.8999999762 +0.7500000000 + + + + +1.1911480427 +-0.9814540148 + + + + +0.8499602675 +0.7275140882 + + + + +0.8166666627 +0.6833333373 + + + + +0.8660902381 +0.7044981718 + + + + +0.9333333373 +0.7166666389 + + + + +0.8499602675 +0.6206256747 + + + + +1.1894972324 +-1.1257798672 + + + + +0.8833333254 +0.5666666627 + + + + +0.8833333254 +0.5666666627 + + + + +0.8833333254 +0.5666666627 + + + + +0.8833333254 +0.5666666627 + + + + +0.8833333254 +0.5666666627 + + + + +1.1894972324 +-1.1257798672 + + + + +1.1894972324 +-1.1257798672 + + + + +0.8333333135 +0.7833333611 + + + + +0.8179602623 +0.7595805526 + + + + +0.8179602623 +0.7595805526 + + + + +0.8333333135 +0.9666666389 + + + + +0.8333333135 +0.9666666389 + + + + +0.8333333135 +0.9666666389 + + + + +0.7833333611 +1.0666667223 + + + + +0.7833333611 +1.0666667223 + + + + +0.7833333611 +1.0666667223 + + + + +0.7833333611 +1.0666667223 + + + + +1.1894972324 +-1.1257798672 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.7361638546 +-0.1643554717 + + + + +2.6961638927 +-0.1510023624 + + + + +2.7228305340 +-0.4981833696 + + + + +2.7361638546 +-0.2711803913 + + + + +2.6961638927 +-0.1777085960 + + + + +2.3752934933 +-0.2558588684 + + + + +2.4961638451 +-0.0975898951 + + + + +2.4961638451 +-0.0975898951 + + + + +2.4961638451 +-0.0975898951 + + + + +2.4961638451 +-0.0975898951 + + + + +2.4961638451 +-0.0975898951 + + + + +2.7361638546 +-0.1643554717 + + + + +2.2851297855 +-0.0882009789 + + + + +2.4166667461 +-0.1333333403 + + + + +2.4667510986 +-0.1243322045 + + + + +2.4961638451 +-0.0975898951 + + + + +2.3666665554 +-0.0666666701 + + + + +2.7361638546 +-0.1643554717 + + + + +2.4500000477 +-0.1000000015 + + + + +2.4500000477 +-0.1000000015 + + + + +2.4500000477 +-0.1000000015 + + + + +2.4500000477 +-0.1000000015 + + + + +2.4500000477 +-0.1000000015 + + + + +2.7361638546 +-0.1643554717 + + + + +2.7361638546 +-0.1643554717 + + + + +2.4961638451 +-0.0975898951 + + + + +2.4961638451 +-0.0975898951 + + + + +2.4961638451 +-0.0975898951 + + + + +2.4961638451 +-0.0975898951 + + + + +2.4961638451 +-0.0975898951 + + + + +2.4961638451 +-0.0975898951 + + + + +2.4961638451 +-0.0975898951 + + + + +2.4961638451 +-0.0975898951 + + + + +2.4961638451 +-0.0975898951 + + + + +2.4961638451 +-0.0975898951 + + + + +2.2833333015 +-0.2666666806 + + + + +2.7361638546 +-0.1643554717 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.6561639309 +-1.3527827263 + + + + +1.6561639309 +-1.7400231361 + + + + +1.7094972134 +-1.4863139391 + + + + +1.6561639309 +-1.5931388140 + + + + +1.4178146124 +-1.1550445557 + + + + +1.2446268797 +-0.7261676788 + + + + +1.4666666985 +-0.9166666865 + + + + +1.4666666985 +-0.9166666865 + + + + +1.4666666985 +-0.9166666865 + + + + +1.4500000477 +-0.8999999762 + + + + +1.4500000477 +-0.8999999762 + + + + +1.4578146935 +-1.1283383369 + + + + +1.4184629917 +-0.9548676610 + + + + +1.4500000477 +-0.8999999762 + + + + +1.4475039244 +-0.9135974646 + + + + +1.4333332777 +-0.9333333373 + + + + +1.3999999762 +-0.9166666865 + + + + +1.4444813728 +-1.1416914463 + + + + +1.4833333492 +-0.8500000238 + + + + +1.4833333492 +-0.8500000238 + + + + +1.4833333492 +-0.8500000238 + + + + +1.4833333492 +-0.8500000238 + + + + +1.4833333492 +-0.8500000238 + + + + +1.6561639309 +-1.3527827263 + + + + +1.6561639309 +-1.3527827263 + + + + +1.4666666985 +-0.9166666865 + + + + +1.4666666985 +-0.9166666865 + + + + +1.4666666985 +-0.9166666865 + + + + +1.3999999762 +-1.0000000000 + + + + +1.3999999762 +-1.0000000000 + + + + +1.3999999762 +-1.0000000000 + + + + +1.4333332777 +-0.9833333492 + + + + +1.4333332777 +-0.9833333492 + + + + +1.4333332777 +-0.9833333492 + + + + +1.4333332777 +-0.9833333492 + + + + +1.3333333731 +-0.8833333254 + + + + +1.2000000477 +-0.7500000000 + + + + +1.6561639309 +-1.3527827263 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.4238361120 +-1.2993702888 + + + + +-1.5305027962 +-1.6599044800 + + + + +-1.7038360834 +-1.5397263765 + + + + +-1.4905028343 +-1.5931388140 + + + + +-1.4221853018 +-1.1416914463 + + + + +-1.4433730841 +-0.6941011548 + + + + +-1.3833333254 +-0.8666666746 + + + + +-1.3833333254 +-0.8666666746 + + + + +-1.3833333254 +-0.8666666746 + + + + +-1.3166667223 +-0.8333333135 + + + + +-1.3166667223 +-0.8333333135 + + + + +-1.3688520193 +-1.0081602335 + + + + +-1.3982036114 +-0.9382010102 + + + + +-1.3333333731 +-0.9333333373 + + + + +-1.3728959560 +-0.9328572154 + + + + +-1.4333332777 +-0.9166666865 + + + + +-1.4166666269 +-0.8500000238 + + + + +-1.3955186605 +-1.0615726709 + + + + +-1.4333332777 +-0.8833333254 + + + + +-1.4333332777 +-0.8833333254 + + + + +-1.4333332777 +-0.8833333254 + + + + +-1.4333332777 +-0.8833333254 + + + + +-1.4333332777 +-0.8833333254 + + + + +-1.4238361120 +-1.2993702888 + + + + +-1.4238361120 +-1.2993702888 + + + + +-1.3833333254 +-0.8666666746 + + + + +-1.3833333254 +-0.8666666746 + + + + +-1.3833333254 +-0.8666666746 + + + + +-1.3833333254 +-0.9499999881 + + + + +-1.3833333254 +-0.9499999881 + + + + +-1.3833333254 +-0.9499999881 + + + + +-1.3666666746 +-0.9499999881 + + + + +-1.3666666746 +-0.9499999881 + + + + +-1.3666666746 +-0.9499999881 + + + + +-1.3666666746 +-0.9499999881 + + + + +-1.3333333731 +-0.8833333254 + + + + +-1.3500000238 +-0.6999999881 + + + + +-1.4238361120 +-1.2993702888 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + +0.588277 +0.147037 +0.082602 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + + + +-2.5599999428 +-0.2203264087 + + + + +-2.5599999428 +-0.2203264087 + + + + +-2.5599999428 +-0.2203264087 + + + + +-2.5599999428 +-0.2203264087 + + + + +-2.5599999428 +-0.2203264087 + + + + +-2.5599999428 +-0.2203264087 + + + + +-2.5599999428 +-0.2203264087 + + + + +-2.5599999428 +-0.2203264087 + + + + +-2.5599999428 +-0.2203264087 + + + + +-2.5599999428 +-0.2203264087 + + + + +-2.5599999428 +-0.2203264087 + + + + +-2.5599999428 +-0.2203264087 + + + + +-2.5599999428 +-0.2203264087 + + + + +-2.5599999428 +-0.2203264087 + + + + +-2.5599999428 +-0.2203264087 + + + + +-2.5599999428 +-0.2203264087 + + + + +-2.5599999428 +-0.2203264087 + + + + +-2.5599999428 +-0.2203264087 + + + + +-2.5599999428 +-0.2203264087 + + + + +-2.5599999428 +-0.2203264087 + + + + +-2.5599999428 +-0.2203264087 + + + + +-2.5599999428 +-0.2203264087 + + + + +-2.5599999428 +-0.2203264087 + + + + +-2.5599999428 +-0.2203264087 + + + + +-2.5599999428 +-0.2203264087 + + + + +-2.5599999428 +-0.2203264087 + + + + +-2.5599999428 +-0.2203264087 + + + + +-2.5599999428 +-0.2203264087 + + + + +-2.5599999428 +-0.2203264087 + + + + +-2.5599999428 +-0.2203264087 + + + + +-2.5599999428 +-0.2203264087 + + + + +-2.5599999428 +-0.2203264087 + + + + +-2.5599999428 +-0.2203264087 + + + + +-2.5599999428 +-0.2203264087 + + + + +-2.5599999428 +-0.2203264087 + + + + +-2.5599999428 +-0.2203264087 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.7118463516 +1.3961100578 + + + + +-1.7118463516 +1.3961100578 + + + + +-1.7118463516 +1.3961100578 + + + + +-1.7118463516 +1.3961100578 + + + + +-1.7118463516 +1.3961100578 + + + + +-1.7118463516 +1.3961100578 + + + + +-1.7118463516 +1.3961100578 + + + + +-1.7118463516 +1.3961100578 + + + + +-1.7118463516 +1.3961100578 + + + + +-1.7118463516 +1.3961100578 + + + + +-1.7118463516 +1.3961100578 + + + + +-1.7118463516 +1.3961100578 + + + + +-1.7118463516 +1.3961100578 + + + + +-1.7118463516 +1.3961100578 + + + + +-1.7118463516 +1.3961100578 + + + + +-1.7118463516 +1.3961100578 + + + + +-1.7118463516 +1.3961100578 + + + + +-1.7118463516 +1.3961100578 + + + + +-1.7118463516 +1.3961100578 + + + + +-1.7118463516 +1.3961100578 + + + + +-1.7118463516 +1.3961100578 + + + + +-1.7118463516 +1.3961100578 + + + + +-1.7118463516 +1.3961100578 + + + + +-1.7118463516 +1.3961100578 + + + + +-1.7118463516 +1.3961100578 + + + + +-1.7118463516 +1.3961100578 + + + + +-1.7118463516 +1.3961100578 + + + + +-1.7118463516 +1.3961100578 + + + + +-1.7118463516 +1.3961100578 + + + + +-1.7118463516 +1.3961100578 + + + + +-1.7118463516 +1.3961100578 + + + + +-1.7118463516 +1.3961100578 + + + + +-1.7118463516 +1.3961100578 + + + + +-1.7118463516 +1.3961100578 + + + + +-1.7118463516 +1.3961100578 + + + + +-1.7118463516 +1.3961100578 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.4813233614 +1.5156546831 + + + + +1.4813233614 +1.5156546831 + + + + +1.4813233614 +1.5156546831 + + + + +1.4813233614 +1.5156546831 + + + + +1.4813233614 +1.5156546831 + + + + +1.4813233614 +1.5156546831 + + + + +1.4813233614 +1.5156546831 + + + + +1.4813233614 +1.5156546831 + + + + +1.4813233614 +1.5156546831 + + + + +1.4813233614 +1.5156546831 + + + + +1.4813233614 +1.5156546831 + + + + +1.4813233614 +1.5156546831 + + + + +1.4813233614 +1.5156546831 + + + + +1.4813233614 +1.5156546831 + + + + +1.4813233614 +1.5156546831 + + + + +1.4813233614 +1.5156546831 + + + + +1.4813233614 +1.5156546831 + + + + +1.4813233614 +1.5156546831 + + + + +1.4813233614 +1.5156546831 + + + + +1.4813233614 +1.5156546831 + + + + +1.4813233614 +1.5156546831 + + + + +1.4813233614 +1.5156546831 + + + + +1.4813233614 +1.5156546831 + + + + +1.4813233614 +1.5156546831 + + + + +1.4813233614 +1.5156546831 + + + + +1.4813233614 +1.5156546831 + + + + +1.4813233614 +1.5156546831 + + + + +1.4813233614 +1.5156546831 + + + + +1.4813233614 +1.5156546831 + + + + +1.4813233614 +1.5156546831 + + + + +1.4813233614 +1.5156546831 + + + + +1.4813233614 +1.5156546831 + + + + +1.4813233614 +1.5156546831 + + + + +1.4813233614 +1.5156546831 + + + + +1.4813233614 +1.5156546831 + + + + +1.4813233614 +1.5156546831 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.7276508808 +0.0856370702 + + + + +2.7276508808 +0.0856370702 + + + + +2.7276508808 +0.0856370702 + + + + +2.7276508808 +0.0856370702 + + + + +2.7276508808 +0.0856370702 + + + + +2.7276508808 +0.0856370702 + + + + +2.7276508808 +0.0856370702 + + + + +2.7276508808 +0.0856370702 + + + + +2.7276508808 +0.0856370702 + + + + +2.7276508808 +0.0856370702 + + + + +2.7276508808 +0.0856370702 + + + + +2.7276508808 +0.0856370702 + + + + +2.7276508808 +0.0856370702 + + + + +2.7276508808 +0.0856370702 + + + + +2.7276508808 +0.0856370702 + + + + +2.7276508808 +0.0856370702 + + + + +2.7276508808 +0.0856370702 + + + + +2.7276508808 +0.0856370702 + + + + +2.7276508808 +0.0856370702 + + + + +2.7276508808 +0.0856370702 + + + + +2.7276508808 +0.0856370702 + + + + +2.7276508808 +0.0856370702 + + + + +2.7276508808 +0.0856370702 + + + + +2.7276508808 +0.0856370702 + + + + +2.7276508808 +0.0856370702 + + + + +2.7276508808 +0.0856370702 + + + + +2.7276508808 +0.0856370702 + + + + +2.7276508808 +0.0856370702 + + + + +2.7276508808 +0.0856370702 + + + + +2.7276508808 +0.0856370702 + + + + +2.7276508808 +0.0856370702 + + + + +2.7276508808 +0.0856370702 + + + + +2.7276508808 +0.0856370702 + + + + +2.7276508808 +0.0856370702 + + + + +2.7276508808 +0.0856370702 + + + + +2.7276508808 +0.0856370702 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.2266666889 +-0.7980852127 + + + + +1.2266666889 +-0.7980852127 + + + + +1.2246859074 +-0.8339982033 + + + + +1.2266666889 +-0.7980852127 + + + + +1.2266666889 +-0.7980852127 + + + + +1.2304137945 +-0.9370440841 + + + + +1.2266666889 +-1.1379251480 + + + + +1.1908205748 +-1.1084992886 + + + + +1.1908205748 +-1.1084992886 + + + + +1.1995731592 +-1.0545541048 + + + + +1.1995731592 +-1.0545541048 + + + + +1.2266666889 +-0.7980852127 + + + + +1.1908205748 +-1.1084992886 + + + + +1.1908205748 +-1.1084992886 + + + + +1.1573716402 +-1.1229752302 + + + + +1.1166666746 +-1.1333333254 + + + + +1.1499999762 +-1.0833333731 + + + + +1.2266666889 +-0.7980852127 + + + + +1.1000000238 +-1.0833333731 + + + + +1.1000000238 +-1.0833333731 + + + + +1.1000000238 +-1.0833333731 + + + + +1.1000000238 +-1.0833333731 + + + + +1.1000000238 +-1.0833333731 + + + + +1.2266666889 +-0.7980852127 + + + + +1.2266666889 +-0.7980852127 + + + + +1.2266666889 +-1.1379251480 + + + + +1.1908205748 +-1.1084992886 + + + + +1.1908205748 +-1.1084992886 + + + + +1.2166666985 +-1.2166666985 + + + + +1.2166666985 +-1.2166666985 + + + + +1.2166666985 +-1.2166666985 + + + + +1.1666666269 +-1.1499999762 + + + + +1.0666667223 +-1.1166666746 + + + + +1.1666666269 +-1.1499999762 + + + + +1.1666666269 +-1.1499999762 + + + + +1.2266666889 +-0.7980852127 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.5066666603 +-0.6378478408 + + + + +-1.5066666603 +-0.6378478408 + + + + +-1.5017030239 +-0.6793246269 + + + + +-1.5066666603 +-0.6378478408 + + + + +-1.5066666603 +-0.6378478408 + + + + +-1.4863777161 +-0.7816499472 + + + + +-1.4559243917 +-0.9974936247 + + + + +-1.4559243917 +-0.9974936247 + + + + +-1.4559243917 +-0.9974936247 + + + + +-1.4898612499 +-0.9093927741 + + + + +-1.4898612499 +-0.9093927741 + + + + +-1.5066666603 +-0.6378478408 + + + + +-1.4559243917 +-0.9974936247 + + + + +-1.4559243917 +-0.9974936247 + + + + +-1.4824268818 +-0.9958579540 + + + + +-1.5166666508 +-0.9833333492 + + + + +-1.5000000000 +-0.9333333373 + + + + +-1.5066666603 +-0.6378478408 + + + + +-1.5333333015 +-0.9499999881 + + + + +-1.5333333015 +-0.9499999881 + + + + +-1.5333333015 +-0.9499999881 + + + + +-1.5333333015 +-0.9499999881 + + + + +-1.5333333015 +-0.9499999881 + + + + +-1.5066666603 +-0.6378478408 + + + + +-1.5066666603 +-0.6378478408 + + + + +-1.4559243917 +-0.9974936247 + + + + +-1.4559243917 +-0.9974936247 + + + + +-1.4559243917 +-0.9974936247 + + + + +-1.4333332777 +-1.1000000238 + + + + +-1.4333332777 +-1.1000000238 + + + + +-1.4333332777 +-1.1000000238 + + + + +-1.3666666746 +-1.0666667223 + + + + +-1.3666666746 +-1.0000000000 + + + + +-1.3666666746 +-1.0666667223 + + + + +-1.3666666746 +-1.0666667223 + + + + +-1.5066666603 +-0.6378478408 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-2.9123492241 +0.7807484865 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.4323492050 +0.0989901870 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.5256824493 +-0.4351344407 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.4056824446 +-1.2622781992 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.9409842491 +-1.0619814396 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.2609841824 +-1.4492218494 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.9123491049 +-1.7029310465 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + + + +-2.5599999428 +-0.2203264087 + + + + +-2.5599999428 +-0.2203264087 + + + + +-2.5599999428 +-0.2203264087 + + + + +-2.5599999428 +-0.2203264087 + + + + +-2.5599999428 +-0.2203264087 + + + + +-2.5599999428 +-0.2203264087 + + + + +-2.5599999428 +-0.2203264087 + + + + +-2.5599999428 +-0.2203264087 + + + + +-2.5599999428 +-0.2203264087 + + + + +-2.5599999428 +-0.2203264087 + + + + +-2.5599999428 +-0.2203264087 + + + + +-2.5599999428 +-0.2203264087 + + + + +-2.5599999428 +-0.2203264087 + + + + +-2.5599999428 +-0.2203264087 + + + + +-2.5599999428 +-0.2203264087 + + + + +-2.5599999428 +-0.2203264087 + + + + +-2.5599999428 +-0.2203264087 + + + + +-2.5599999428 +-0.2203264087 + + + + +-2.5599999428 +-0.2203264087 + + + + +-2.5599999428 +-0.2203264087 + + + + +-2.5599999428 +-0.2203264087 + + + + +-2.5599999428 +-0.2203264087 + + + + +-2.5599999428 +-0.2203264087 + + + + +-2.5599999428 +-0.2203264087 + + + + +-2.5599999428 +-0.2203264087 + + + + +-2.5599999428 +-0.2203264087 + + + + +-2.5599999428 +-0.2203264087 + + + + +-2.5599999428 +-0.2203264087 + + + + +-2.5599999428 +-0.2203264087 + + + + +-2.5599999428 +-0.2203264087 + + + + +-2.5599999428 +-0.2203264087 + + + + +-2.5599999428 +-0.2203264087 + + + + +-2.5599999428 +-0.2203264087 + + + + +-2.5599999428 +-0.2203264087 + + + + +-2.5599999428 +-0.2203264087 + + + + +-2.5599999428 +-0.2203264087 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.7118463516 +1.3961100578 + + + + +-1.7118463516 +1.3961100578 + + + + +-1.7118463516 +1.3961100578 + + + + +-1.7118463516 +1.3961100578 + + + + +-1.7118463516 +1.3961100578 + + + + +-1.7118463516 +1.3961100578 + + + + +-1.7118463516 +1.3961100578 + + + + +-1.7118463516 +1.3961100578 + + + + +-1.7118463516 +1.3961100578 + + + + +-1.7118463516 +1.3961100578 + + + + +-1.7118463516 +1.3961100578 + + + + +-1.7118463516 +1.3961100578 + + + + +-1.7118463516 +1.3961100578 + + + + +-1.7118463516 +1.3961100578 + + + + +-1.7118463516 +1.3961100578 + + + + +-1.7118463516 +1.3961100578 + + + + +-1.7118463516 +1.3961100578 + + + + +-1.7118463516 +1.3961100578 + + + + +-1.7118463516 +1.3961100578 + + + + +-1.7118463516 +1.3961100578 + + + + +-1.7118463516 +1.3961100578 + + + + +-1.7118463516 +1.3961100578 + + + + +-1.7118463516 +1.3961100578 + + + + +-1.7118463516 +1.3961100578 + + + + +-1.7118463516 +1.3961100578 + + + + +-1.7118463516 +1.3961100578 + + + + +-1.7118463516 +1.3961100578 + + + + +-1.7118463516 +1.3961100578 + + + + +-1.7118463516 +1.3961100578 + + + + +-1.7118463516 +1.3961100578 + + + + +-1.7118463516 +1.3961100578 + + + + +-1.7118463516 +1.3961100578 + + + + +-1.7118463516 +1.3961100578 + + + + +-1.7118463516 +1.3961100578 + + + + +-1.7118463516 +1.3961100578 + + + + +-1.7118463516 +1.3961100578 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.4813233614 +1.5156546831 + + + + +1.4813233614 +1.5156546831 + + + + +1.4813233614 +1.5156546831 + + + + +1.4813233614 +1.5156546831 + + + + +1.4813233614 +1.5156546831 + + + + +1.4813233614 +1.5156546831 + + + + +1.4813233614 +1.5156546831 + + + + +1.4813233614 +1.5156546831 + + + + +1.4813233614 +1.5156546831 + + + + +1.4813233614 +1.5156546831 + + + + +1.4813233614 +1.5156546831 + + + + +1.4813233614 +1.5156546831 + + + + +1.4813233614 +1.5156546831 + + + + +1.4813233614 +1.5156546831 + + + + +1.4813233614 +1.5156546831 + + + + +1.4813233614 +1.5156546831 + + + + +1.4813233614 +1.5156546831 + + + + +1.4813233614 +1.5156546831 + + + + +1.4813233614 +1.5156546831 + + + + +1.4813233614 +1.5156546831 + + + + +1.4813233614 +1.5156546831 + + + + +1.4813233614 +1.5156546831 + + + + +1.4813233614 +1.5156546831 + + + + +1.4813233614 +1.5156546831 + + + + +1.4813233614 +1.5156546831 + + + + +1.4813233614 +1.5156546831 + + + + +1.4813233614 +1.5156546831 + + + + +1.4813233614 +1.5156546831 + + + + +1.4813233614 +1.5156546831 + + + + +1.4813233614 +1.5156546831 + + + + +1.4813233614 +1.5156546831 + + + + +1.4813233614 +1.5156546831 + + + + +1.4813233614 +1.5156546831 + + + + +1.4813233614 +1.5156546831 + + + + +1.4813233614 +1.5156546831 + + + + +1.4813233614 +1.5156546831 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.7276508808 +0.0856370702 + + + + +2.7276508808 +0.0856370702 + + + + +2.7276508808 +0.0856370702 + + + + +2.7276508808 +0.0856370702 + + + + +2.7276508808 +0.0856370702 + + + + +2.7276508808 +0.0856370702 + + + + +2.7276508808 +0.0856370702 + + + + +2.7276508808 +0.0856370702 + + + + +2.7276508808 +0.0856370702 + + + + +2.7276508808 +0.0856370702 + + + + +2.7276508808 +0.0856370702 + + + + +2.7276508808 +0.0856370702 + + + + +2.7276508808 +0.0856370702 + + + + +2.7276508808 +0.0856370702 + + + + +2.7276508808 +0.0856370702 + + + + +2.7276508808 +0.0856370702 + + + + +2.7276508808 +0.0856370702 + + + + +2.7276508808 +0.0856370702 + + + + +2.7276508808 +0.0856370702 + + + + +2.7276508808 +0.0856370702 + + + + +2.7276508808 +0.0856370702 + + + + +2.7276508808 +0.0856370702 + + + + +2.7276508808 +0.0856370702 + + + + +2.7276508808 +0.0856370702 + + + + +2.7276508808 +0.0856370702 + + + + +2.7276508808 +0.0856370702 + + + + +2.7276508808 +0.0856370702 + + + + +2.7276508808 +0.0856370702 + + + + +2.7276508808 +0.0856370702 + + + + +2.7276508808 +0.0856370702 + + + + +2.7276508808 +0.0856370702 + + + + +2.7276508808 +0.0856370702 + + + + +2.7276508808 +0.0856370702 + + + + +2.7276508808 +0.0856370702 + + + + +2.7276508808 +0.0856370702 + + + + +2.7276508808 +0.0856370702 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.2266666889 +-0.7980852127 + + + + +1.2266666889 +-0.7980852127 + + + + +1.2246859074 +-0.8339982033 + + + + +1.2266666889 +-0.7980852127 + + + + +1.2266666889 +-0.7980852127 + + + + +1.2304137945 +-0.9370440841 + + + + +1.2266666889 +-1.1379251480 + + + + +1.1908205748 +-1.1084992886 + + + + +1.1908205748 +-1.1084992886 + + + + +1.1995731592 +-1.0545541048 + + + + +1.1995731592 +-1.0545541048 + + + + +1.2266666889 +-0.7980852127 + + + + +1.1908205748 +-1.1084992886 + + + + +1.1908205748 +-1.1084992886 + + + + +1.1573716402 +-1.1229752302 + + + + +1.1166666746 +-1.1333333254 + + + + +1.1499999762 +-1.0833333731 + + + + +1.2266666889 +-0.7980852127 + + + + +1.1000000238 +-1.0833333731 + + + + +1.1000000238 +-1.0833333731 + + + + +1.1000000238 +-1.0833333731 + + + + +1.1000000238 +-1.0833333731 + + + + +1.1000000238 +-1.0833333731 + + + + +1.2266666889 +-0.7980852127 + + + + +1.2266666889 +-0.7980852127 + + + + +1.2266666889 +-1.1379251480 + + + + +1.1908205748 +-1.1084992886 + + + + +1.1908205748 +-1.1084992886 + + + + +1.2166666985 +-1.2166666985 + + + + +1.2166666985 +-1.2166666985 + + + + +1.2166666985 +-1.2166666985 + + + + +1.1666666269 +-1.1499999762 + + + + +1.0666667223 +-1.1166666746 + + + + +1.1666666269 +-1.1499999762 + + + + +1.1666666269 +-1.1499999762 + + + + +1.2266666889 +-0.7980852127 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.5066666603 +-0.6378478408 + + + + +-1.5066666603 +-0.6378478408 + + + + +-1.5017030239 +-0.6793246269 + + + + +-1.5066666603 +-0.6378478408 + + + + +-1.5066666603 +-0.6378478408 + + + + +-1.4863777161 +-0.7816499472 + + + + +-1.4559243917 +-0.9974936247 + + + + +-1.4559243917 +-0.9974936247 + + + + +-1.4559243917 +-0.9974936247 + + + + +-1.4898612499 +-0.9093927741 + + + + +-1.4898612499 +-0.9093927741 + + + + +-1.5066666603 +-0.6378478408 + + + + +-1.4559243917 +-0.9974936247 + + + + +-1.4559243917 +-0.9974936247 + + + + +-1.4824268818 +-0.9958579540 + + + + +-1.5166666508 +-0.9833333492 + + + + +-1.5000000000 +-0.9333333373 + + + + +-1.5066666603 +-0.6378478408 + + + + +-1.5333333015 +-0.9499999881 + + + + +-1.5333333015 +-0.9499999881 + + + + +-1.5333333015 +-0.9499999881 + + + + +-1.5333333015 +-0.9499999881 + + + + +-1.5333333015 +-0.9499999881 + + + + +-1.5066666603 +-0.6378478408 + + + + +-1.5066666603 +-0.6378478408 + + + + +-1.4559243917 +-0.9974936247 + + + + +-1.4559243917 +-0.9974936247 + + + + +-1.4559243917 +-0.9974936247 + + + + +-1.4333332777 +-1.1000000238 + + + + +-1.4333332777 +-1.1000000238 + + + + +-1.4333332777 +-1.1000000238 + + + + +-1.3666666746 +-1.0666667223 + + + + +-1.3666666746 +-1.0000000000 + + + + +-1.3666666746 +-1.0666667223 + + + + +-1.3666666746 +-1.0666667223 + + + + +-1.5066666603 +-0.6378478408 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + +0.578906 +0.406389 +0.201871 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + + + +-2.7333333492 +-0.4909635782 + + + + +-2.7333333492 +-0.4909635782 + + + + +-2.7408697605 +-0.4837570786 + + + + +-2.7333333492 +-0.4909635782 + + + + +-2.7333333492 +-0.4909635782 + + + + +-2.7474691868 +-0.4774465859 + + + + +-2.7919859886 +-0.4348782301 + + + + +-2.7919859886 +-0.4348782301 + + + + +-2.7919859886 +-0.4348782301 + + + + +-2.7919859886 +-0.4348782301 + + + + +-2.7919859886 +-0.4348782301 + + + + +-2.7333333492 +-0.4909635782 + + + + +-2.7919859886 +-0.4348782301 + + + + +-2.7919859886 +-0.4348782301 + + + + +-2.7919859886 +-0.4348782301 + + + + +-2.7919859886 +-0.4348782301 + + + + +-2.7919859886 +-0.4348782301 + + + + +-2.7333333492 +-0.4909635782 + + + + +-2.7919859886 +-0.4348782301 + + + + +-2.7919859886 +-0.4348782301 + + + + +-2.7919859886 +-0.4348782301 + + + + +-2.7919859886 +-0.4348782301 + + + + +-2.7919859886 +-0.4348782301 + + + + +-2.7333333492 +-0.4909635782 + + + + +-2.7333333492 +-0.4909635782 + + + + +-2.7919859886 +-0.4348782301 + + + + +-2.7919859886 +-0.4348782301 + + + + +-2.7919859886 +-0.4348782301 + + + + +-2.7919859886 +-0.4348782301 + + + + +-2.7919859886 +-0.4348782301 + + + + +-2.7919859886 +-0.4348782301 + + + + +-2.7919859886 +-0.4348782301 + + + + +-2.7919859886 +-0.4348782301 + + + + +-2.7919859886 +-0.4348782301 + + + + +-2.7919859886 +-0.4348782301 + + + + +-2.7333333492 +-0.4909635782 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.7866666317 +-0.5710822940 + + + + +-1.7866666317 +-0.5710822940 + + + + +-1.7872586250 +-0.4164351225 + + + + +-1.7866666317 +-0.5710822940 + + + + +-1.7866666317 +-0.5710822940 + + + + +-1.7963069677 +-0.2378384471 + + + + +-1.8266667128 +0.8116297722 + + + + +-1.8105027676 +0.7570095062 + + + + +-1.8105027676 +0.7570095062 + + + + +-1.8143010139 +0.6617646813 + + + + +-1.8143010139 +0.6617646813 + + + + +-1.7866666317 +-0.5710822940 + + + + +-1.8166667223 +0.6666666865 + + + + +-1.7666666508 +0.6499999762 + + + + +-1.8060452938 +0.6629146934 + + + + +-1.8500000238 +0.6833333373 + + + + +-1.7666666508 +0.6333333254 + + + + +-1.7866666317 +-0.5710822940 + + + + +-1.7999999523 +0.6000000238 + + + + +-1.7999999523 +0.6000000238 + + + + +-1.7999999523 +0.6000000238 + + + + +-1.7999999523 +0.6000000238 + + + + +-1.7999999523 +0.6000000238 + + + + +-1.7866666317 +-0.5710822940 + + + + +-1.7866666317 +-0.5710822940 + + + + +-1.8266667128 +0.8116297722 + + + + +-1.8105027676 +0.7570095062 + + + + +-1.8105027676 +0.7570095062 + + + + +-1.7333333492 +0.9333333373 + + + + +-1.7333333492 +0.9333333373 + + + + +-1.7333333492 +0.9333333373 + + + + +-1.4833333492 +1.0499999523 + + + + +-1.4500000477 +0.9833333492 + + + + +-1.4833333492 +1.0499999523 + + + + +-1.4833333492 +1.0499999523 + + + + +-1.7866666317 +-0.5710822940 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.8933333158 +-0.7446727753 + + + + +0.8933333158 +-0.7446727753 + + + + +0.8495197296 +-0.5422201157 + + + + +0.8933333158 +-0.7446727753 + + + + +0.9178228378 +-0.8069260120 + + + + +0.8669108748 +-0.3316275775 + + + + +0.6933333278 +1.1988700628 + + + + +0.7361638546 +1.1308968067 + + + + +0.7361638546 +1.1308968067 + + + + +0.7897545099 +0.9520872831 + + + + +0.7897545099 +0.9520872831 + + + + +0.8933333158 +-0.7446727753 + + + + +0.6999999881 +1.0000000000 + + + + +0.7166666389 +0.9666666389 + + + + +0.7005646229 +1.0072240829 + + + + +0.6833333373 +1.0666667223 + + + + +0.6999999881 +0.9833333492 + + + + +0.8933333158 +-0.7446727753 + + + + +0.6999999881 +0.8999999762 + + + + +0.6999999881 +0.8999999762 + + + + +0.6999999881 +0.8999999762 + + + + +0.6999999881 +0.8999999762 + + + + +0.6999999881 +0.8999999762 + + + + +0.9007470608 +-0.7898482084 + + + + +0.8933333158 +-0.7446727753 + + + + +0.6933333278 +1.1988700628 + + + + +0.7361638546 +1.1308968067 + + + + +0.7361638546 +1.1308968067 + + + + +0.7500000000 +1.2666666508 + + + + +0.7500000000 +1.2666666508 + + + + +0.7500000000 +1.2666666508 + + + + +0.6333333254 +1.3999999762 + + + + +0.6166666746 +1.2999999523 + + + + +0.6333333254 +1.3999999762 + + + + +0.6333333254 +1.3999999762 + + + + +0.8933333158 +-0.7446727753 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.7200000286 +-0.1170763299 + + + + +2.7200000286 +-0.1170763299 + + + + +2.7207970619 +-0.1070879474 + + + + +2.7200000286 +-0.1170763299 + + + + +2.7200000286 +-0.1170763299 + + + + +2.7214949131 +-0.0983414277 + + + + +2.7262024879 +-0.0393405259 + + + + +2.7262024879 +-0.0393405259 + + + + +2.7262024879 +-0.0393405259 + + + + +2.7262024879 +-0.0393405259 + + + + +2.7262024879 +-0.0393405259 + + + + +2.7200000286 +-0.1170763299 + + + + +2.7262024879 +-0.0393405259 + + + + +2.7262024879 +-0.0393405259 + + + + +2.7262024879 +-0.0393405259 + + + + +2.7262024879 +-0.0393405259 + + + + +2.7262024879 +-0.0393405259 + + + + +2.7200000286 +-0.1170763299 + + + + +2.7262024879 +-0.0393405259 + + + + +2.7262024879 +-0.0393405259 + + + + +2.7262024879 +-0.0393405259 + + + + +2.7262024879 +-0.0393405259 + + + + +2.7262024879 +-0.0393405259 + + + + +2.7200000286 +-0.1170763299 + + + + +2.7200000286 +-0.1170763299 + + + + +2.7262024879 +-0.0393405259 + + + + +2.7262024879 +-0.0393405259 + + + + +2.7262024879 +-0.0393405259 + + + + +2.7262024879 +-0.0393405259 + + + + +2.7262024879 +-0.0393405259 + + + + +2.7262024879 +-0.0393405259 + + + + +2.7262024879 +-0.0393405259 + + + + +2.7262024879 +-0.0393405259 + + + + +2.7262024879 +-0.0393405259 + + + + +2.7262024879 +-0.0393405259 + + + + +2.7200000286 +-0.1170763299 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.1466666460 +-0.7713789940 + + + + +1.1466666460 +-0.7713789940 + + + + +1.1835747957 +-0.8170285821 + + + + +1.1466666460 +-0.7713789940 + + + + +1.1466666460 +-0.7713789940 + + + + +1.2237889767 +-0.8854649067 + + + + +1.4666666985 +-1.2447500229 + + + + +1.4725708961 +-1.2024271488 + + + + +1.4725708961 +-1.2024271488 + + + + +1.4557096958 +-1.1484819651 + + + + +1.4557096958 +-1.1484819651 + + + + +1.1466666460 +-0.7713789940 + + + + +1.4725708961 +-1.2024271488 + + + + +1.4725708961 +-1.2024271488 + + + + +1.4632450342 +-1.2042343616 + + + + +1.4500000477 +-1.2000000477 + + + + +1.4500000477 +-1.1666666269 + + + + +1.1466666460 +-0.7713789940 + + + + +1.4333332777 +-1.1666666269 + + + + +1.4333332777 +-1.1666666269 + + + + +1.4333332777 +-1.1666666269 + + + + +1.4333332777 +-1.1666666269 + + + + +1.4333332777 +-1.1666666269 + + + + +1.1483458281 +-0.8069260120 + + + + +1.1483458281 +-0.8069260120 + + + + +1.4666666985 +-1.2447500229 + + + + +1.4725708961 +-1.2024271488 + + + + +1.4725708961 +-1.2024271488 + + + + +1.4500000477 +-1.3333333731 + + + + +1.4500000477 +-1.3333333731 + + + + +1.4500000477 +-1.3333333731 + + + + +1.4166666269 +-1.2833333015 + + + + +1.3833333254 +-1.2500000000 + + + + +1.4166666269 +-1.2833333015 + + + + +1.4166666269 +-1.2833333015 + + + + +1.1466666460 +-0.7713789940 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.6666666269 +-0.6244947314 + + + + +-1.6666666269 +-0.6244947314 + + + + +-1.6644808054 +-0.6701443195 + + + + +-1.6666666269 +-0.6244947314 + + + + +-1.6666666269 +-0.6244947314 + + + + +-1.6570262909 +-0.7257078886 + + + + +-1.6266666651 +-1.0444532633 + + + + +-1.6352199316 +-1.0316492319 + + + + +-1.6352199316 +-1.0316492319 + + + + +-1.6691569090 +-0.9179316759 + + + + +-1.6691569090 +-0.9179316759 + + + + +-1.6666666269 +-0.6244947314 + + + + +-1.6352199316 +-1.0316492319 + + + + +-1.6352199316 +-1.0316492319 + + + + +-1.6095663309 +-1.0310788155 + + + + +-1.5833333731 +-1.0166666508 + + + + +-1.6333333254 +-0.9499999881 + + + + +-1.6666666269 +-0.6244947314 + + + + +-1.6000000238 +-1.0000000000 + + + + +-1.6000000238 +-1.0000000000 + + + + +-1.6000000238 +-1.0000000000 + + + + +-1.6000000238 +-1.0000000000 + + + + +-1.6000000238 +-1.0000000000 + + + + +-1.6008538008 +-0.6703035831 + + + + +-1.6666666269 +-0.6244947314 + + + + +-1.6266666651 +-1.0444532633 + + + + +-1.6352199316 +-1.0316492319 + + + + +-1.6352199316 +-1.0316492319 + + + + +-1.6666666269 +-1.1166666746 + + + + +-1.6666666269 +-1.1166666746 + + + + +-1.6666666269 +-1.1166666746 + + + + +-1.6166666746 +-1.0666667223 + + + + +-1.6000000238 +-1.0333333015 + + + + +-1.6166666746 +-1.0666667223 + + + + +-1.6166666746 +-1.0666667223 + + + + +-1.6666666269 +-0.6244947314 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.6003491879 +-0.5813963413 + + + + +-2.6003491879 +-0.5813963413 + + + + +-2.6003491879 +-0.5813963413 + + + + +-2.6003491879 +-0.5813963413 + + + + +-2.6003491879 +-0.5813963413 + + + + +-2.6003491879 +-0.5813963413 + + + + +-2.6003491879 +-0.5813963413 + + + + +-2.6003491879 +-0.5813963413 + + + + +-2.6003491879 +-0.5813963413 + + + + +-2.6003491879 +-0.5813963413 + + + + +-2.6003491879 +-0.5813963413 + + + + +-2.6003491879 +-0.5813963413 + + + + +-2.6003491879 +-0.5813963413 + + + + +-2.6003491879 +-0.5813963413 + + + + +-2.6003491879 +-0.5813963413 + + + + +-2.6003491879 +-0.5813963413 + + + + +-2.6003491879 +-0.5813963413 + + + + +-2.6003491879 +-0.5813963413 + + + + +-2.6003491879 +-0.5813963413 + + + + +-2.6003491879 +-0.5813963413 + + + + +-2.6003491879 +-0.5813963413 + + + + +-2.6003491879 +-0.5813963413 + + + + +-2.6003491879 +-0.5813963413 + + + + +-2.6003491879 +-0.5813963413 + + + + +-2.6003491879 +-0.5813963413 + + + + +-2.6003491879 +-0.5813963413 + + + + +-2.6003491879 +-0.5813963413 + + + + +-2.6003491879 +-0.5813963413 + + + + +-2.6003491879 +-0.5813963413 + + + + +-2.6003491879 +-0.5813963413 + + + + +-2.6003491879 +-0.5813963413 + + + + +-2.6003491879 +-0.5813963413 + + + + +-2.6003491879 +-0.5813963413 + + + + +-2.6003491879 +-0.5813963413 + + + + +-2.6003491879 +-0.5813963413 + + + + +-2.6003491879 +-0.5813963413 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.500392 +0.275940 +0.108181 +1.000000 + + +0.546376 +0.373859 +0.169341 +1.000000 + + + + + + + + +1.1666667461 +1.1666667461 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.005232 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-2.5575959682 +2.3376128674 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-3.3722870350 +2.3376128674 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-4.2404007912 +1.2560104132 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-4.7212018967 +2.4978501797 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.7028380632 +2.8183250427 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.4076509476 +2.3556666374 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.6209843159 +1.3541830778 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +4.3143177032 +1.5411267281 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +4.3143177032 +0.7132335305 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.7809841633 +-0.0612471998 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.9809842110 +-0.7823154330 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +4.1409840584 +-2.4247486591 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.6323491335 +-2.5315735340 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.2723491192 +-2.0909206867 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.5523490906 +-2.5449266434 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-3.3455760479 +-2.5496275425 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-4.2136893272 +0.5082359314 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-3.5592653751 +1.5097196102 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.012085 +0.000000 +0.261752 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-2.5442404747 +-0.6801913381 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.1001669466 +-1.8018530607 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.6911518574 +-0.9739599228 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.1035058498 +-2.8834555149 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.5025042295 +-2.8834555149 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.5041735172 +-1.1876097918 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.8647747040 +-0.6801913381 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.6644406319 +-0.8671349883 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + +0.033531 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + + + +2.5795962811 +-1.3880842924 + + + + +2.5795962811 +-1.3880842924 + + + + +2.5814781189 +-1.3908476830 + + + + +2.5795962811 +-1.3880842924 + + + + +2.5795962811 +-1.3880842924 + + + + +2.5855643749 +-1.3968478441 + + + + +2.5945224762 +-1.4100016356 + + + + +2.5945224762 +-1.4100016356 + + + + +2.5945224762 +-1.4100016356 + + + + +2.5945224762 +-1.4100016356 + + + + +2.5945224762 +-1.4100016356 + + + + +2.5795962811 +-1.3880842924 + + + + +2.5945224762 +-1.4100016356 + + + + +2.5945224762 +-1.4100016356 + + + + +2.5945224762 +-1.4100016356 + + + + +2.5945224762 +-1.4100016356 + + + + +2.5945224762 +-1.4100016356 + + + + +2.5795962811 +-1.3880842924 + + + + +2.5945224762 +-1.4100016356 + + + + +2.5945224762 +-1.4100016356 + + + + +2.5945224762 +-1.4100016356 + + + + +2.5945224762 +-1.4100016356 + + + + +2.5945224762 +-1.4100016356 + + + + +2.5795962811 +-1.3880842924 + + + + +2.5795962811 +-1.3880842924 + + + + +2.5945224762 +-1.4100016356 + + + + +2.5945224762 +-1.4100016356 + + + + +2.5945224762 +-1.4100016356 + + + + +2.5945224762 +-1.4100016356 + + + + +2.5945224762 +-1.4100016356 + + + + +2.5945224762 +-1.4100016356 + + + + +2.5945224762 +-1.4100016356 + + + + +2.5945224762 +-1.4100016356 + + + + +2.5945224762 +-1.4100016356 + + + + +2.5945224762 +-1.4100016356 + + + + +2.5795962811 +-1.3880842924 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.5662407875 +-1.5750278234 + + + + +2.5662407875 +-1.5750278234 + + + + +2.5681226254 +-1.5777912140 + + + + +2.5662407875 +-1.5750278234 + + + + +2.5662407875 +-1.5750278234 + + + + +2.5722088814 +-1.5837913752 + + + + +2.5811669827 +-1.5969451666 + + + + +2.5811669827 +-1.5969451666 + + + + +2.5811669827 +-1.5969451666 + + + + +2.5811669827 +-1.5969451666 + + + + +2.5811669827 +-1.5969451666 + + + + +2.5662407875 +-1.5750278234 + + + + +2.5811669827 +-1.5969451666 + + + + +2.5811669827 +-1.5969451666 + + + + +2.5811669827 +-1.5969451666 + + + + +2.5811669827 +-1.5969451666 + + + + +2.5811669827 +-1.5969451666 + + + + +2.5662407875 +-1.5750278234 + + + + +2.5811669827 +-1.5969451666 + + + + +2.5811669827 +-1.5969451666 + + + + +2.5811669827 +-1.5969451666 + + + + +2.5811669827 +-1.5969451666 + + + + +2.5811669827 +-1.5969451666 + + + + +2.5662407875 +-1.5750278234 + + + + +2.5662407875 +-1.5750278234 + + + + +2.5811669827 +-1.5969451666 + + + + +2.5811669827 +-1.5969451666 + + + + +2.5811669827 +-1.5969451666 + + + + +2.5811669827 +-1.5969451666 + + + + +2.5811669827 +-1.5969451666 + + + + +2.5811669827 +-1.5969451666 + + + + +2.5811669827 +-1.5969451666 + + + + +2.5811669827 +-1.5969451666 + + + + +2.5811669827 +-1.5969451666 + + + + +2.5811669827 +-1.5969451666 + + + + +2.5662407875 +-1.5750278234 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.118179 +0.017855 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + + + +1.8984611034 +-1.8821495771 + + + + +1.8984611034 +-1.8821495771 + + + + +1.9003430605 +-1.8849129677 + + + + +1.8984611034 +-1.8821495771 + + + + +1.8984611034 +-1.8821495771 + + + + +1.9044291973 +-1.8909131289 + + + + +1.9133872986 +-1.9040669203 + + + + +1.9133872986 +-1.9040669203 + + + + +1.9133872986 +-1.9040669203 + + + + +1.9133872986 +-1.9040669203 + + + + +1.9133872986 +-1.9040669203 + + + + +1.8984611034 +-1.8821495771 + + + + +1.9133872986 +-1.9040669203 + + + + +1.9133872986 +-1.9040669203 + + + + +1.9133872986 +-1.9040669203 + + + + +1.9133872986 +-1.9040669203 + + + + +1.9133872986 +-1.9040669203 + + + + +1.8984611034 +-1.8821495771 + + + + +1.9133872986 +-1.9040669203 + + + + +1.9133872986 +-1.9040669203 + + + + +1.9133872986 +-1.9040669203 + + + + +1.9133872986 +-1.9040669203 + + + + +1.9133872986 +-1.9040669203 + + + + +1.8984611034 +-1.8821495771 + + + + +1.8984611034 +-1.8821495771 + + + + +1.9133872986 +-1.9040669203 + + + + +1.9133872986 +-1.9040669203 + + + + +1.9133872986 +-1.9040669203 + + + + +1.9133872986 +-1.9040669203 + + + + +1.9133872986 +-1.9040669203 + + + + +1.9133872986 +-1.9040669203 + + + + +1.9133872986 +-1.9040669203 + + + + +1.9133872986 +-1.9040669203 + + + + +1.9133872986 +-1.9040669203 + + + + +1.9133872986 +-1.9040669203 + + + + +1.8984611034 +-1.8821495771 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.9118167162 +-2.0290336609 + + + + +1.9118167162 +-2.0290336609 + + + + +1.9136986732 +-2.0317971706 + + + + +1.9118167162 +-2.0290336609 + + + + +1.9118167162 +-2.0290336609 + + + + +1.9177848101 +-2.0377972126 + + + + +1.9267429113 +-2.0509512424 + + + + +1.9267429113 +-2.0509512424 + + + + +1.9267429113 +-2.0509512424 + + + + +1.9267429113 +-2.0509512424 + + + + +1.9267429113 +-2.0509512424 + + + + +1.9118167162 +-2.0290336609 + + + + +1.9267429113 +-2.0509512424 + + + + +1.9267429113 +-2.0509512424 + + + + +1.9267429113 +-2.0509512424 + + + + +1.9267429113 +-2.0509512424 + + + + +1.9267429113 +-2.0509512424 + + + + +1.9118167162 +-2.0290336609 + + + + +1.9267429113 +-2.0509512424 + + + + +1.9267429113 +-2.0509512424 + + + + +1.9267429113 +-2.0509512424 + + + + +1.9267429113 +-2.0509512424 + + + + +1.9267429113 +-2.0509512424 + + + + +1.9118167162 +-2.0290336609 + + + + +1.9118167162 +-2.0290336609 + + + + +1.9267429113 +-2.0509512424 + + + + +1.9267429113 +-2.0509512424 + + + + +1.9267429113 +-2.0509512424 + + + + +1.9267429113 +-2.0509512424 + + + + +1.9267429113 +-2.0509512424 + + + + +1.9267429113 +-2.0509512424 + + + + +1.9267429113 +-2.0509512424 + + + + +1.9267429113 +-2.0509512424 + + + + +1.9267429113 +-2.0509512424 + + + + +1.9267429113 +-2.0509512424 + + + + +1.9118167162 +-2.0290336609 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.118179 +0.017855 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + + + +2.9134862423 +-1.9622682333 + + + + +2.9134862423 +-1.9622682333 + + + + +2.9153680801 +-1.9650316238 + + + + +2.9134862423 +-1.9622682333 + + + + +2.9134862423 +-1.9622682333 + + + + +2.9194543362 +-1.9710317850 + + + + +2.9284124374 +-1.9841855764 + + + + +2.9284124374 +-1.9841855764 + + + + +2.9284124374 +-1.9841855764 + + + + +2.9284124374 +-1.9841855764 + + + + +2.9284124374 +-1.9841855764 + + + + +2.9134862423 +-1.9622682333 + + + + +2.9284124374 +-1.9841855764 + + + + +2.9284124374 +-1.9841855764 + + + + +2.9284124374 +-1.9841855764 + + + + +2.9284124374 +-1.9841855764 + + + + +2.9284124374 +-1.9841855764 + + + + +2.9134862423 +-1.9622682333 + + + + +2.9284124374 +-1.9841855764 + + + + +2.9284124374 +-1.9841855764 + + + + +2.9284124374 +-1.9841855764 + + + + +2.9284124374 +-1.9841855764 + + + + +2.9284124374 +-1.9841855764 + + + + +2.9134862423 +-1.9622682333 + + + + +2.9134862423 +-1.9622682333 + + + + +2.9284124374 +-1.9841855764 + + + + +2.9284124374 +-1.9841855764 + + + + +2.9284124374 +-1.9841855764 + + + + +2.9284124374 +-1.9841855764 + + + + +2.9284124374 +-1.9841855764 + + + + +2.9284124374 +-1.9841855764 + + + + +2.9284124374 +-1.9841855764 + + + + +2.9284124374 +-1.9841855764 + + + + +2.9284124374 +-1.9841855764 + + + + +2.9284124374 +-1.9841855764 + + + + +2.9134862423 +-1.9622682333 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.8867750168 +-2.1091523170 + + + + +2.8867750168 +-2.1091523170 + + + + +2.8886568546 +-2.1119158268 + + + + +2.8867750168 +-2.1091523170 + + + + +2.8867750168 +-2.1091523170 + + + + +2.8927431107 +-2.1179158688 + + + + +2.9017012119 +-2.1310698986 + + + + +2.9017012119 +-2.1310698986 + + + + +2.9017012119 +-2.1310698986 + + + + +2.9017012119 +-2.1310698986 + + + + +2.9017012119 +-2.1310698986 + + + + +2.8867750168 +-2.1091523170 + + + + +2.9017012119 +-2.1310698986 + + + + +2.9017012119 +-2.1310698986 + + + + +2.9017012119 +-2.1310698986 + + + + +2.9017012119 +-2.1310698986 + + + + +2.9017012119 +-2.1310698986 + + + + +2.8867750168 +-2.1091523170 + + + + +2.9017012119 +-2.1310698986 + + + + +2.9017012119 +-2.1310698986 + + + + +2.9017012119 +-2.1310698986 + + + + +2.9017012119 +-2.1310698986 + + + + +2.9017012119 +-2.1310698986 + + + + +2.8867750168 +-2.1091523170 + + + + +2.8867750168 +-2.1091523170 + + + + +2.9017012119 +-2.1310698986 + + + + +2.9017012119 +-2.1310698986 + + + + +2.9017012119 +-2.1310698986 + + + + +2.9017012119 +-2.1310698986 + + + + +2.9017012119 +-2.1310698986 + + + + +2.9017012119 +-2.1310698986 + + + + +2.9017012119 +-2.1310698986 + + + + +2.9017012119 +-2.1310698986 + + + + +2.9017012119 +-2.1310698986 + + + + +2.9017012119 +-2.1310698986 + + + + +2.8867750168 +-2.1091523170 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.118179 +0.017855 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + + + +3.0871088505 +-1.0542563200 + + + + +3.0871088505 +-1.0542563200 + + + + +3.0889906883 +-1.0570197105 + + + + +3.0871088505 +-1.0542563200 + + + + +3.0871088505 +-1.0542563200 + + + + +3.0930769444 +-1.0630198717 + + + + +3.1020350456 +-1.0761736631 + + + + +3.1020350456 +-1.0761736631 + + + + +3.1020350456 +-1.0761736631 + + + + +3.1020350456 +-1.0761736631 + + + + +3.1020350456 +-1.0761736631 + + + + +3.0871088505 +-1.0542563200 + + + + +3.1020350456 +-1.0761736631 + + + + +3.1020350456 +-1.0761736631 + + + + +3.1020350456 +-1.0761736631 + + + + +3.1020350456 +-1.0761736631 + + + + +3.1020350456 +-1.0761736631 + + + + +3.0871088505 +-1.0542563200 + + + + +3.1020350456 +-1.0761736631 + + + + +3.1020350456 +-1.0761736631 + + + + +3.1020350456 +-1.0761736631 + + + + +3.1020350456 +-1.0761736631 + + + + +3.1020350456 +-1.0761736631 + + + + +3.0871088505 +-1.0542563200 + + + + +3.0871088505 +-1.0542563200 + + + + +3.1020350456 +-1.0761736631 + + + + +3.1020350456 +-1.0761736631 + + + + +3.1020350456 +-1.0761736631 + + + + +3.1020350456 +-1.0761736631 + + + + +3.1020350456 +-1.0761736631 + + + + +3.1020350456 +-1.0761736631 + + + + +3.1020350456 +-1.0761736631 + + + + +3.1020350456 +-1.0761736631 + + + + +3.1020350456 +-1.0761736631 + + + + +3.1020350456 +-1.0761736631 + + + + +3.0871088505 +-1.0542563200 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.0603976250 +-1.1610813141 + + + + +3.0603976250 +-1.1610813141 + + + + +3.0622794628 +-1.1638447046 + + + + +3.0603976250 +-1.1610813141 + + + + +3.0603976250 +-1.1610813141 + + + + +3.0663657188 +-1.1698448658 + + + + +3.0753238201 +-1.1829986572 + + + + +3.0753238201 +-1.1829986572 + + + + +3.0753238201 +-1.1829986572 + + + + +3.0753238201 +-1.1829986572 + + + + +3.0753238201 +-1.1829986572 + + + + +3.0603976250 +-1.1610813141 + + + + +3.0753238201 +-1.1829986572 + + + + +3.0753238201 +-1.1829986572 + + + + +3.0753238201 +-1.1829986572 + + + + +3.0753238201 +-1.1829986572 + + + + +3.0753238201 +-1.1829986572 + + + + +3.0603976250 +-1.1610813141 + + + + +3.0753238201 +-1.1829986572 + + + + +3.0753238201 +-1.1829986572 + + + + +3.0753238201 +-1.1829986572 + + + + +3.0753238201 +-1.1829986572 + + + + +3.0753238201 +-1.1829986572 + + + + +3.0603976250 +-1.1610813141 + + + + +3.0603976250 +-1.1610813141 + + + + +3.0753238201 +-1.1829986572 + + + + +3.0753238201 +-1.1829986572 + + + + +3.0753238201 +-1.1829986572 + + + + +3.0753238201 +-1.1829986572 + + + + +3.0753238201 +-1.1829986572 + + + + +3.0753238201 +-1.1829986572 + + + + +3.0753238201 +-1.1829986572 + + + + +3.0753238201 +-1.1829986572 + + + + +3.0753238201 +-1.1829986572 + + + + +3.0753238201 +-1.1829986572 + + + + +3.0603976250 +-1.1610813141 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.033531 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + + + +-3.6928212643 +2.0785431862 + + + + +-3.6928212643 +2.0785431862 + + + + +-3.6928212643 +2.0818834305 + + + + +-3.6928212643 +2.0785431862 + + + + +-3.6928212643 +2.0785431862 + + + + +-3.6928212643 +2.0891361237 + + + + +-3.6928212643 +2.1050360203 + + + + +-3.6928212643 +2.1050360203 + + + + +-3.6928212643 +2.1050360203 + + + + +-3.6928212643 +2.1050360203 + + + + +-3.6928212643 +2.1050360203 + + + + +-3.6928212643 +2.0785431862 + + + + +-3.6928212643 +2.1050360203 + + + + +-3.6928212643 +2.1050360203 + + + + +-3.6928212643 +2.1050360203 + + + + +-3.6928212643 +2.1050360203 + + + + +-3.6928212643 +2.1050360203 + + + + +-3.6928212643 +2.0785431862 + + + + +-3.6928212643 +2.1050360203 + + + + +-3.6928212643 +2.1050360203 + + + + +-3.6928212643 +2.1050360203 + + + + +-3.6928212643 +2.1050360203 + + + + +-3.6928212643 +2.1050360203 + + + + +-3.6928212643 +2.0785431862 + + + + +-3.6928212643 +2.0785431862 + + + + +-3.6928212643 +2.1050360203 + + + + +-3.6928212643 +2.1050360203 + + + + +-3.6928212643 +2.1050360203 + + + + +-3.6928212643 +2.1050360203 + + + + +-3.6928212643 +2.1050360203 + + + + +-3.6928212643 +2.1050360203 + + + + +-3.6928212643 +2.1050360203 + + + + +-3.6928212643 +2.1050360203 + + + + +-3.6928212643 +2.1050360203 + + + + +-3.6928212643 +2.1050360203 + + + + +-3.6928212643 +2.0785431862 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-3.6661102772 +2.3055462837 + + + + +-3.6661102772 +2.3055462837 + + + + +-3.6661102772 +2.3088865280 + + + + +-3.6661102772 +2.3055462837 + + + + +-3.6661102772 +2.3055462837 + + + + +-3.6661102772 +2.3161392212 + + + + +-3.6661102772 +2.3320391178 + + + + +-3.6661102772 +2.3320391178 + + + + +-3.6661102772 +2.3320391178 + + + + +-3.6661102772 +2.3320391178 + + + + +-3.6661102772 +2.3320391178 + + + + +-3.6661102772 +2.3055462837 + + + + +-3.6661102772 +2.3320391178 + + + + +-3.6661102772 +2.3320391178 + + + + +-3.6661102772 +2.3320391178 + + + + +-3.6661102772 +2.3320391178 + + + + +-3.6661102772 +2.3320391178 + + + + +-3.6661102772 +2.3055462837 + + + + +-3.6661102772 +2.3320391178 + + + + +-3.6661102772 +2.3320391178 + + + + +-3.6661102772 +2.3320391178 + + + + +-3.6661102772 +2.3320391178 + + + + +-3.6661102772 +2.3320391178 + + + + +-3.6661102772 +2.3055462837 + + + + +-3.6661102772 +2.3055462837 + + + + +-3.6661102772 +2.3320391178 + + + + +-3.6661102772 +2.3320391178 + + + + +-3.6661102772 +2.3320391178 + + + + +-3.6661102772 +2.3320391178 + + + + +-3.6661102772 +2.3320391178 + + + + +-3.6661102772 +2.3320391178 + + + + +-3.6661102772 +2.3320391178 + + + + +-3.6661102772 +2.3320391178 + + + + +-3.6661102772 +2.3320391178 + + + + +-3.6661102772 +2.3320391178 + + + + +-3.6661102772 +2.3055462837 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.033531 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + + + +-2.9225621223 +-1.3255892992 + + + + +-2.9225621223 +-1.3255892992 + + + + +-2.9234986305 +-1.3265168667 + + + + +-2.9225621223 +-1.3255892992 + + + + +-2.9225621223 +-1.3255892992 + + + + +-2.9255321026 +-1.3285309076 + + + + +-2.9299900532 +-1.3329461813 + + + + +-2.9299900532 +-1.3329461813 + + + + +-2.9299900532 +-1.3329461813 + + + + +-2.9299900532 +-1.3329461813 + + + + +-2.9299900532 +-1.3329461813 + + + + +-2.9225621223 +-1.3255892992 + + + + +-2.9299900532 +-1.3329461813 + + + + +-2.9299900532 +-1.3329461813 + + + + +-2.9299900532 +-1.3329461813 + + + + +-2.9299900532 +-1.3329461813 + + + + +-2.9299900532 +-1.3329461813 + + + + +-2.9225621223 +-1.3255892992 + + + + +-2.9299900532 +-1.3329461813 + + + + +-2.9299900532 +-1.3329461813 + + + + +-2.9299900532 +-1.3329461813 + + + + +-2.9299900532 +-1.3329461813 + + + + +-2.9299900532 +-1.3329461813 + + + + +-2.9225621223 +-1.3255892992 + + + + +-2.9225621223 +-1.3255892992 + + + + +-2.9299900532 +-1.3329461813 + + + + +-2.9299900532 +-1.3329461813 + + + + +-2.9299900532 +-1.3329461813 + + + + +-2.9299900532 +-1.3329461813 + + + + +-2.9299900532 +-1.3329461813 + + + + +-2.9299900532 +-1.3329461813 + + + + +-2.9299900532 +-1.3329461813 + + + + +-2.9299900532 +-1.3329461813 + + + + +-2.9299900532 +-1.3329461813 + + + + +-2.9299900532 +-1.3329461813 + + + + +-2.9225621223 +-1.3255892992 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.9359176159 +-1.4324142933 + + + + +-2.9359176159 +-1.4324142933 + + + + +-2.9368541241 +-1.4333418608 + + + + +-2.9359176159 +-1.4324142933 + + + + +-2.9359176159 +-1.4324142933 + + + + +-2.9388875961 +-1.4353559017 + + + + +-2.9433455467 +-1.4397711754 + + + + +-2.9433455467 +-1.4397711754 + + + + +-2.9433455467 +-1.4397711754 + + + + +-2.9433455467 +-1.4397711754 + + + + +-2.9433455467 +-1.4397711754 + + + + +-2.9359176159 +-1.4324142933 + + + + +-2.9433455467 +-1.4397711754 + + + + +-2.9433455467 +-1.4397711754 + + + + +-2.9433455467 +-1.4397711754 + + + + +-2.9433455467 +-1.4397711754 + + + + +-2.9433455467 +-1.4397711754 + + + + +-2.9359176159 +-1.4324142933 + + + + +-2.9433455467 +-1.4397711754 + + + + +-2.9433455467 +-1.4397711754 + + + + +-2.9433455467 +-1.4397711754 + + + + +-2.9433455467 +-1.4397711754 + + + + +-2.9433455467 +-1.4397711754 + + + + +-2.9359176159 +-1.4324142933 + + + + +-2.9359176159 +-1.4324142933 + + + + +-2.9433455467 +-1.4397711754 + + + + +-2.9433455467 +-1.4397711754 + + + + +-2.9433455467 +-1.4397711754 + + + + +-2.9433455467 +-1.4397711754 + + + + +-2.9433455467 +-1.4397711754 + + + + +-2.9433455467 +-1.4397711754 + + + + +-2.9433455467 +-1.4397711754 + + + + +-2.9433455467 +-1.4397711754 + + + + +-2.9433455467 +-1.4397711754 + + + + +-2.9433455467 +-1.4397711754 + + + + +-2.9359176159 +-1.4324142933 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.118179 +0.017855 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + + + +2.9769973755 +1.0743952990 + + + + +2.9769973755 +1.0743952990 + + + + +2.9792194366 +1.0766221285 + + + + +2.9769973755 +1.0743952990 + + + + +2.9769973755 +1.0743952990 + + + + +2.9840445518 +1.0814572573 + + + + +2.9946224689 +1.0920572281 + + + + +2.9946224689 +1.0920572281 + + + + +2.9946224689 +1.0920572281 + + + + +2.9946224689 +1.0920572281 + + + + +2.9946224689 +1.0920572281 + + + + +2.9769973755 +1.0743952990 + + + + +2.9946224689 +1.0920572281 + + + + +2.9946224689 +1.0920572281 + + + + +2.9946224689 +1.0920572281 + + + + +2.9946224689 +1.0920572281 + + + + +2.9946224689 +1.0920572281 + + + + +2.9769973755 +1.0743952990 + + + + +2.9946224689 +1.0920572281 + + + + +2.9946224689 +1.0920572281 + + + + +2.9946224689 +1.0920572281 + + + + +2.9946224689 +1.0920572281 + + + + +2.9946224689 +1.0920572281 + + + + +2.9769973755 +1.0743952990 + + + + +2.9769973755 +1.0743952990 + + + + +2.9946224689 +1.0920572281 + + + + +2.9946224689 +1.0920572281 + + + + +2.9946224689 +1.0920572281 + + + + +2.9946224689 +1.0920572281 + + + + +2.9946224689 +1.0920572281 + + + + +2.9946224689 +1.0920572281 + + + + +2.9946224689 +1.0920572281 + + + + +2.9946224689 +1.0920572281 + + + + +2.9946224689 +1.0920572281 + + + + +2.9946224689 +1.0920572281 + + + + +2.9769973755 +1.0743952990 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.9235749245 +0.9141579270 + + + + +2.9235749245 +0.9141579270 + + + + +2.9257969856 +0.9163847566 + + + + +2.9235749245 +0.9141579270 + + + + +2.9235749245 +0.9141579270 + + + + +2.9306221008 +0.9212199450 + + + + +2.9412000179 +0.9318197966 + + + + +2.9412000179 +0.9318197966 + + + + +2.9412000179 +0.9318197966 + + + + +2.9412000179 +0.9318197966 + + + + +2.9412000179 +0.9318197966 + + + + +2.9235749245 +0.9141579270 + + + + +2.9412000179 +0.9318197966 + + + + +2.9412000179 +0.9318197966 + + + + +2.9412000179 +0.9318197966 + + + + +2.9412000179 +0.9318197966 + + + + +2.9412000179 +0.9318197966 + + + + +2.9235749245 +0.9141579270 + + + + +2.9412000179 +0.9318197966 + + + + +2.9412000179 +0.9318197966 + + + + +2.9412000179 +0.9318197966 + + + + +2.9412000179 +0.9318197966 + + + + +2.9412000179 +0.9318197966 + + + + +2.9235749245 +0.9141579270 + + + + +2.9235749245 +0.9141579270 + + + + +2.9412000179 +0.9318197966 + + + + +2.9412000179 +0.9318197966 + + + + +2.9412000179 +0.9318197966 + + + + +2.9412000179 +0.9318197966 + + + + +2.9412000179 +0.9318197966 + + + + +2.9412000179 +0.9318197966 + + + + +2.9412000179 +0.9318197966 + + + + +2.9412000179 +0.9318197966 + + + + +2.9412000179 +0.9318197966 + + + + +2.9412000179 +0.9318197966 + + + + +2.9235749245 +0.9141579270 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.033531 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + + + +-2.4551162720 +-1.6060047150 + + + + +-2.4551162720 +-1.6060047150 + + + + +-2.4560527802 +-1.6069322824 + + + + +-2.4551162720 +-1.6060047150 + + + + +-2.4551162720 +-1.6060047150 + + + + +-2.4580862522 +-1.6089463234 + + + + +-2.4625442028 +-1.6133615971 + + + + +-2.4625442028 +-1.6133615971 + + + + +-2.4625442028 +-1.6133615971 + + + + +-2.4625442028 +-1.6133615971 + + + + +-2.4625442028 +-1.6133615971 + + + + +-2.4551162720 +-1.6060047150 + + + + +-2.4625442028 +-1.6133615971 + + + + +-2.4625442028 +-1.6133615971 + + + + +-2.4625442028 +-1.6133615971 + + + + +-2.4625442028 +-1.6133615971 + + + + +-2.4625442028 +-1.6133615971 + + + + +-2.4551162720 +-1.6060047150 + + + + +-2.4625442028 +-1.6133615971 + + + + +-2.4625442028 +-1.6133615971 + + + + +-2.4625442028 +-1.6133615971 + + + + +-2.4625442028 +-1.6133615971 + + + + +-2.4625442028 +-1.6133615971 + + + + +-2.4551162720 +-1.6060047150 + + + + +-2.4551162720 +-1.6060047150 + + + + +-2.4625442028 +-1.6133615971 + + + + +-2.4625442028 +-1.6133615971 + + + + +-2.4625442028 +-1.6133615971 + + + + +-2.4625442028 +-1.6133615971 + + + + +-2.4625442028 +-1.6133615971 + + + + +-2.4625442028 +-1.6133615971 + + + + +-2.4625442028 +-1.6133615971 + + + + +-2.4625442028 +-1.6133615971 + + + + +-2.4625442028 +-1.6133615971 + + + + +-2.4625442028 +-1.6133615971 + + + + +-2.4551162720 +-1.6060047150 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.4417607784 +-1.7261828184 + + + + +-2.4417607784 +-1.7261828184 + + + + +-2.4426972866 +-1.7271103859 + + + + +-2.4417607784 +-1.7261828184 + + + + +-2.4417607784 +-1.7261828184 + + + + +-2.4447307587 +-1.7291244268 + + + + +-2.4491887093 +-1.7335397005 + + + + +-2.4491887093 +-1.7335397005 + + + + +-2.4491887093 +-1.7335397005 + + + + +-2.4491887093 +-1.7335397005 + + + + +-2.4491887093 +-1.7335397005 + + + + +-2.4417607784 +-1.7261828184 + + + + +-2.4491887093 +-1.7335397005 + + + + +-2.4491887093 +-1.7335397005 + + + + +-2.4491887093 +-1.7335397005 + + + + +-2.4491887093 +-1.7335397005 + + + + +-2.4491887093 +-1.7335397005 + + + + +-2.4417607784 +-1.7261828184 + + + + +-2.4491887093 +-1.7335397005 + + + + +-2.4491887093 +-1.7335397005 + + + + +-2.4491887093 +-1.7335397005 + + + + +-2.4491887093 +-1.7335397005 + + + + +-2.4491887093 +-1.7335397005 + + + + +-2.4417607784 +-1.7261828184 + + + + +-2.4417607784 +-1.7261828184 + + + + +-2.4491887093 +-1.7335397005 + + + + +-2.4491887093 +-1.7335397005 + + + + +-2.4491887093 +-1.7335397005 + + + + +-2.4491887093 +-1.7335397005 + + + + +-2.4491887093 +-1.7335397005 + + + + +-2.4491887093 +-1.7335397005 + + + + +-2.4491887093 +-1.7335397005 + + + + +-2.4491887093 +-1.7335397005 + + + + +-2.4491887093 +-1.7335397005 + + + + +-2.4491887093 +-1.7335397005 + + + + +-2.4417607784 +-1.7261828184 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.118179 +0.017855 +0.000000 +1.000000 + + + + +-0.0500000007 +0.2500000000 + + + + + + + + + + + + + + + + + + + + + + +-2.7355837822 +-1.8330076933 + + + + +-2.7355837822 +-1.8330076933 + + + + +-2.7365202904 +-1.8339352608 + + + + +-2.7355837822 +-1.8330076933 + + + + +-2.7355837822 +-1.8330076933 + + + + +-2.7385537624 +-1.8359493017 + + + + +-2.7430117130 +-1.8403645754 + + + + +-2.7430117130 +-1.8403645754 + + + + +-2.7430117130 +-1.8403645754 + + + + +-2.7430117130 +-1.8403645754 + + + + +-2.7430117130 +-1.8403645754 + + + + +-2.7355837822 +-1.8330076933 + + + + +-2.7430117130 +-1.8403645754 + + + + +-2.7430117130 +-1.8403645754 + + + + +-2.7430117130 +-1.8403645754 + + + + +-2.7430117130 +-1.8403645754 + + + + +-2.7430117130 +-1.8403645754 + + + + +-2.7355837822 +-1.8330076933 + + + + +-2.7430117130 +-1.8403645754 + + + + +-2.7430117130 +-1.8403645754 + + + + +-2.7430117130 +-1.8403645754 + + + + +-2.7430117130 +-1.8403645754 + + + + +-2.7430117130 +-1.8403645754 + + + + +-2.7355837822 +-1.8330076933 + + + + +-2.7355837822 +-1.8330076933 + + + + +-2.7430117130 +-1.8403645754 + + + + +-2.7430117130 +-1.8403645754 + + + + +-2.7430117130 +-1.8403645754 + + + + +-2.7430117130 +-1.8403645754 + + + + +-2.7430117130 +-1.8403645754 + + + + +-2.7430117130 +-1.8403645754 + + + + +-2.7430117130 +-1.8403645754 + + + + +-2.7430117130 +-1.8403645754 + + + + +-2.7430117130 +-1.8403645754 + + + + +-2.7430117130 +-1.8403645754 + + + + +-2.7355837822 +-1.8330076933 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.7756505013 +-1.9398326874 + + + + +-2.7756505013 +-1.9398326874 + + + + +-2.7765870094 +-1.9407602549 + + + + +-2.7756505013 +-1.9398326874 + + + + +-2.7756505013 +-1.9398326874 + + + + +-2.7786204815 +-1.9427742958 + + + + +-2.7830784321 +-1.9471895695 + + + + +-2.7830784321 +-1.9471895695 + + + + +-2.7830784321 +-1.9471895695 + + + + +-2.7830784321 +-1.9471895695 + + + + +-2.7830784321 +-1.9471895695 + + + + +-2.7756505013 +-1.9398326874 + + + + +-2.7830784321 +-1.9471895695 + + + + +-2.7830784321 +-1.9471895695 + + + + +-2.7830784321 +-1.9471895695 + + + + +-2.7830784321 +-1.9471895695 + + + + +-2.7830784321 +-1.9471895695 + + + + +-2.7756505013 +-1.9398326874 + + + + +-2.7830784321 +-1.9471895695 + + + + +-2.7830784321 +-1.9471895695 + + + + +-2.7830784321 +-1.9471895695 + + + + +-2.7830784321 +-1.9471895695 + + + + +-2.7830784321 +-1.9471895695 + + + + +-2.7756505013 +-1.9398326874 + + + + +-2.7756505013 +-1.9398326874 + + + + +-2.7830784321 +-1.9471895695 + + + + +-2.7830784321 +-1.9471895695 + + + + +-2.7830784321 +-1.9471895695 + + + + +-2.7830784321 +-1.9471895695 + + + + +-2.7830784321 +-1.9471895695 + + + + +-2.7830784321 +-1.9471895695 + + + + +-2.7830784321 +-1.9471895695 + + + + +-2.7830784321 +-1.9471895695 + + + + +-2.7830784321 +-1.9471895695 + + + + +-2.7830784321 +-1.9471895695 + + + + +-2.7756505013 +-1.9398326874 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.118179 +0.017855 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + + + +-3.1585977077 +2.0518369675 + + + + +-3.1585977077 +2.0518369675 + + + + +-3.1585977077 +2.0551772118 + + + + +-3.1585977077 +2.0518369675 + + + + +-3.1585977077 +2.0518369675 + + + + +-3.1585977077 +2.0624299049 + + + + +-3.1585977077 +2.0783298016 + + + + +-3.1585977077 +2.0783298016 + + + + +-3.1585977077 +2.0783298016 + + + + +-3.1585977077 +2.0783298016 + + + + +-3.1585977077 +2.0783298016 + + + + +-3.1585977077 +2.0518369675 + + + + +-3.1585977077 +2.0783298016 + + + + +-3.1585977077 +2.0783298016 + + + + +-3.1585977077 +2.0783298016 + + + + +-3.1585977077 +2.0783298016 + + + + +-3.1585977077 +2.0783298016 + + + + +-3.1585977077 +2.0518369675 + + + + +-3.1585977077 +2.0783298016 + + + + +-3.1585977077 +2.0783298016 + + + + +-3.1585977077 +2.0783298016 + + + + +-3.1585977077 +2.0783298016 + + + + +-3.1585977077 +2.0783298016 + + + + +-3.1585977077 +2.0518369675 + + + + +-3.1585977077 +2.0518369675 + + + + +-3.1585977077 +2.0783298016 + + + + +-3.1585977077 +2.0783298016 + + + + +-3.1585977077 +2.0783298016 + + + + +-3.1585977077 +2.0783298016 + + + + +-3.1585977077 +2.0783298016 + + + + +-3.1585977077 +2.0783298016 + + + + +-3.1585977077 +2.0783298016 + + + + +-3.1585977077 +2.0783298016 + + + + +-3.1585977077 +2.0783298016 + + + + +-3.1585977077 +2.0783298016 + + + + +-3.1585977077 +2.0518369675 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-3.1185309887 +2.1853680611 + + + + +-3.1185309887 +2.1853680611 + + + + +-3.1185309887 +2.1887083054 + + + + +-3.1185309887 +2.1853680611 + + + + +-3.1185309887 +2.1853680611 + + + + +-3.1185309887 +2.1959609985 + + + + +-3.1185309887 +2.2118608952 + + + + +-3.1185309887 +2.2118608952 + + + + +-3.1185309887 +2.2118608952 + + + + +-3.1185309887 +2.2118608952 + + + + +-3.1185309887 +2.2118608952 + + + + +-3.1185309887 +2.1853680611 + + + + +-3.1185309887 +2.2118608952 + + + + +-3.1185309887 +2.2118608952 + + + + +-3.1185309887 +2.2118608952 + + + + +-3.1185309887 +2.2118608952 + + + + +-3.1185309887 +2.2118608952 + + + + +-3.1185309887 +2.1853680611 + + + + +-3.1185309887 +2.2118608952 + + + + +-3.1185309887 +2.2118608952 + + + + +-3.1185309887 +2.2118608952 + + + + +-3.1185309887 +2.2118608952 + + + + +-3.1185309887 +2.2118608952 + + + + +-3.1185309887 +2.1853680611 + + + + +-3.1185309887 +2.1853680611 + + + + +-3.1185309887 +2.2118608952 + + + + +-3.1185309887 +2.2118608952 + + + + +-3.1185309887 +2.2118608952 + + + + +-3.1185309887 +2.2118608952 + + + + +-3.1185309887 +2.2118608952 + + + + +-3.1185309887 +2.2118608952 + + + + +-3.1185309887 +2.2118608952 + + + + +-3.1185309887 +2.2118608952 + + + + +-3.1185309887 +2.2118608952 + + + + +-3.1185309887 +2.2118608952 + + + + +-3.1185309887 +2.1853680611 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.033531 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + + + +-3.6393990517 +1.7313623428 + + + + +-3.6393990517 +1.7313623428 + + + + +-3.6393990517 +1.7347025871 + + + + +-3.6393990517 +1.7313623428 + + + + +-3.6393990517 +1.7313623428 + + + + +-3.6393990517 +1.7419552803 + + + + +-3.6393990517 +1.7578550577 + + + + +-3.6393990517 +1.7578550577 + + + + +-3.6393990517 +1.7578550577 + + + + +-3.6393990517 +1.7578550577 + + + + +-3.6393990517 +1.7578550577 + + + + +-3.6393990517 +1.7313623428 + + + + +-3.6393990517 +1.7578550577 + + + + +-3.6393990517 +1.7578550577 + + + + +-3.6393990517 +1.7578550577 + + + + +-3.6393990517 +1.7578550577 + + + + +-3.6393990517 +1.7578550577 + + + + +-3.6393990517 +1.7313623428 + + + + +-3.6393990517 +1.7578550577 + + + + +-3.6393990517 +1.7578550577 + + + + +-3.6393990517 +1.7578550577 + + + + +-3.6393990517 +1.7578550577 + + + + +-3.6393990517 +1.7578550577 + + + + +-3.6393990517 +1.7313623428 + + + + +-3.6393990517 +1.7313623428 + + + + +-3.6393990517 +1.7578550577 + + + + +-3.6393990517 +1.7578550577 + + + + +-3.6393990517 +1.7578550577 + + + + +-3.6393990517 +1.7578550577 + + + + +-3.6393990517 +1.7578550577 + + + + +-3.6393990517 +1.7578550577 + + + + +-3.6393990517 +1.7578550577 + + + + +-3.6393990517 +1.7578550577 + + + + +-3.6393990517 +1.7578550577 + + + + +-3.6393990517 +1.7578550577 + + + + +-3.6393990517 +1.7313623428 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-3.6527545452 +1.6111843586 + + + + +-3.6527545452 +1.6111843586 + + + + +-3.6527545452 +1.6145246029 + + + + +-3.6527545452 +1.6111843586 + + + + +-3.6527545452 +1.6111843586 + + + + +-3.6527545452 +1.6217772961 + + + + +-3.6527545452 +1.6376770735 + + + + +-3.6527545452 +1.6376770735 + + + + +-3.6527545452 +1.6376770735 + + + + +-3.6527545452 +1.6376770735 + + + + +-3.6527545452 +1.6376770735 + + + + +-3.6527545452 +1.6111843586 + + + + +-3.6527545452 +1.6376770735 + + + + +-3.6527545452 +1.6376770735 + + + + +-3.6527545452 +1.6376770735 + + + + +-3.6527545452 +1.6376770735 + + + + +-3.6527545452 +1.6376770735 + + + + +-3.6527545452 +1.6111843586 + + + + +-3.6527545452 +1.6376770735 + + + + +-3.6527545452 +1.6376770735 + + + + +-3.6527545452 +1.6376770735 + + + + +-3.6527545452 +1.6376770735 + + + + +-3.6527545452 +1.6376770735 + + + + +-3.6527545452 +1.6111843586 + + + + +-3.6527545452 +1.6111843586 + + + + +-3.6527545452 +1.6376770735 + + + + +-3.6527545452 +1.6376770735 + + + + +-3.6527545452 +1.6376770735 + + + + +-3.6527545452 +1.6376770735 + + + + +-3.6527545452 +1.6376770735 + + + + +-3.6527545452 +1.6376770735 + + + + +-3.6527545452 +1.6376770735 + + + + +-3.6527545452 +1.6376770735 + + + + +-3.6527545452 +1.6376770735 + + + + +-3.6527545452 +1.6376770735 + + + + +-3.6527545452 +1.6111843586 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.118179 +0.017855 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + + + +2.3926181793 +-1.7753245831 + + + + +2.3926181793 +-1.7753245831 + + + + +2.3945000172 +-1.7780879736 + + + + +2.3926181793 +-1.7753245831 + + + + +2.3926181793 +-1.7753245831 + + + + +2.3985862732 +-1.7840881348 + + + + +2.4075443745 +-1.7972419262 + + + + +2.4075443745 +-1.7972419262 + + + + +2.4075443745 +-1.7972419262 + + + + +2.4075443745 +-1.7972419262 + + + + +2.4075443745 +-1.7972419262 + + + + +2.3926181793 +-1.7753245831 + + + + +2.4075443745 +-1.7972419262 + + + + +2.4075443745 +-1.7972419262 + + + + +2.4075443745 +-1.7972419262 + + + + +2.4075443745 +-1.7972419262 + + + + +2.4075443745 +-1.7972419262 + + + + +2.3926181793 +-1.7753245831 + + + + +2.4075443745 +-1.7972419262 + + + + +2.4075443745 +-1.7972419262 + + + + +2.4075443745 +-1.7972419262 + + + + +2.4075443745 +-1.7972419262 + + + + +2.4075443745 +-1.7972419262 + + + + +2.3926181793 +-1.7753245831 + + + + +2.3926181793 +-1.7753245831 + + + + +2.4075443745 +-1.7972419262 + + + + +2.4075443745 +-1.7972419262 + + + + +2.4075443745 +-1.7972419262 + + + + +2.4075443745 +-1.7972419262 + + + + +2.4075443745 +-1.7972419262 + + + + +2.4075443745 +-1.7972419262 + + + + +2.4075443745 +-1.7972419262 + + + + +2.4075443745 +-1.7972419262 + + + + +2.4075443745 +-1.7972419262 + + + + +2.4075443745 +-1.7972419262 + + + + +2.3926181793 +-1.7753245831 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.3792624474 +-1.9222089052 + + + + +2.3792624474 +-1.9222089052 + + + + +2.3811442852 +-1.9249722958 + + + + +2.3792624474 +-1.9222089052 + + + + +2.3792624474 +-1.9222089052 + + + + +2.3852305412 +-1.9309724569 + + + + +2.3941886425 +-1.9441262484 + + + + +2.3941886425 +-1.9441262484 + + + + +2.3941886425 +-1.9441262484 + + + + +2.3941886425 +-1.9441262484 + + + + +2.3941886425 +-1.9441262484 + + + + +2.3792624474 +-1.9222089052 + + + + +2.3941886425 +-1.9441262484 + + + + +2.3941886425 +-1.9441262484 + + + + +2.3941886425 +-1.9441262484 + + + + +2.3941886425 +-1.9441262484 + + + + +2.3941886425 +-1.9441262484 + + + + +2.3792624474 +-1.9222089052 + + + + +2.3941886425 +-1.9441262484 + + + + +2.3941886425 +-1.9441262484 + + + + +2.3941886425 +-1.9441262484 + + + + +2.3941886425 +-1.9441262484 + + + + +2.3941886425 +-1.9441262484 + + + + +2.3792624474 +-1.9222089052 + + + + +2.3792624474 +-1.9222089052 + + + + +2.3941886425 +-1.9441262484 + + + + +2.3941886425 +-1.9441262484 + + + + +2.3941886425 +-1.9441262484 + + + + +2.3941886425 +-1.9441262484 + + + + +2.3941886425 +-1.9441262484 + + + + +2.3941886425 +-1.9441262484 + + + + +2.3941886425 +-1.9441262484 + + + + +2.3941886425 +-1.9441262484 + + + + +2.3941886425 +-1.9441262484 + + + + +2.3941886425 +-1.9441262484 + + + + +2.3792624474 +-1.9222089052 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.118179 +0.017855 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + + + +3.0336863995 +-1.5883809328 + + + + +3.0336863995 +-1.5883809328 + + + + +3.0355682373 +-1.5911443233 + + + + +3.0336863995 +-1.5883809328 + + + + +3.0336863995 +-1.5883809328 + + + + +3.0396544933 +-1.5971444845 + + + + +3.0486125946 +-1.6102982759 + + + + +3.0486125946 +-1.6102982759 + + + + +3.0486125946 +-1.6102982759 + + + + +3.0486125946 +-1.6102982759 + + + + +3.0486125946 +-1.6102982759 + + + + +3.0336863995 +-1.5883809328 + + + + +3.0486125946 +-1.6102982759 + + + + +3.0486125946 +-1.6102982759 + + + + +3.0486125946 +-1.6102982759 + + + + +3.0486125946 +-1.6102982759 + + + + +3.0486125946 +-1.6102982759 + + + + +3.0336863995 +-1.5883809328 + + + + +3.0486125946 +-1.6102982759 + + + + +3.0486125946 +-1.6102982759 + + + + +3.0486125946 +-1.6102982759 + + + + +3.0486125946 +-1.6102982759 + + + + +3.0486125946 +-1.6102982759 + + + + +3.0336863995 +-1.5883809328 + + + + +3.0336863995 +-1.5883809328 + + + + +3.0486125946 +-1.6102982759 + + + + +3.0486125946 +-1.6102982759 + + + + +3.0486125946 +-1.6102982759 + + + + +3.0486125946 +-1.6102982759 + + + + +3.0486125946 +-1.6102982759 + + + + +3.0486125946 +-1.6102982759 + + + + +3.0486125946 +-1.6102982759 + + + + +3.0486125946 +-1.6102982759 + + + + +3.0486125946 +-1.6102982759 + + + + +3.0486125946 +-1.6102982759 + + + + +3.0336863995 +-1.5883809328 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.0603976250 +-1.7219121456 + + + + +3.0603976250 +-1.7219121456 + + + + +3.0622794628 +-1.7246755362 + + + + +3.0603976250 +-1.7219121456 + + + + +3.0603976250 +-1.7219121456 + + + + +3.0663657188 +-1.7306756973 + + + + +3.0753238201 +-1.7438294888 + + + + +3.0753238201 +-1.7438294888 + + + + +3.0753238201 +-1.7438294888 + + + + +3.0753238201 +-1.7438294888 + + + + +3.0753238201 +-1.7438294888 + + + + +3.0603976250 +-1.7219121456 + + + + +3.0753238201 +-1.7438294888 + + + + +3.0753238201 +-1.7438294888 + + + + +3.0753238201 +-1.7438294888 + + + + +3.0753238201 +-1.7438294888 + + + + +3.0753238201 +-1.7438294888 + + + + +3.0603976250 +-1.7219121456 + + + + +3.0753238201 +-1.7438294888 + + + + +3.0753238201 +-1.7438294888 + + + + +3.0753238201 +-1.7438294888 + + + + +3.0753238201 +-1.7438294888 + + + + +3.0753238201 +-1.7438294888 + + + + +3.0603976250 +-1.7219121456 + + + + +3.0603976250 +-1.7219121456 + + + + +3.0753238201 +-1.7438294888 + + + + +3.0753238201 +-1.7438294888 + + + + +3.0753238201 +-1.7438294888 + + + + +3.0753238201 +-1.7438294888 + + + + +3.0753238201 +-1.7438294888 + + + + +3.0753238201 +-1.7438294888 + + + + +3.0753238201 +-1.7438294888 + + + + +3.0753238201 +-1.7438294888 + + + + +3.0753238201 +-1.7438294888 + + + + +3.0753238201 +-1.7438294888 + + + + +3.0603976250 +-1.7219121456 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.033531 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + + + +1.1104811430 +-2.1358585358 + + + + +1.1104811430 +-2.1358585358 + + + + +1.1123631001 +-2.1386220455 + + + + +1.1104811430 +-2.1358585358 + + + + +1.1104811430 +-2.1358585358 + + + + +1.1164492369 +-2.1446220875 + + + + +1.1254073381 +-2.1577761173 + + + + +1.1254073381 +-2.1577761173 + + + + +1.1254073381 +-2.1577761173 + + + + +1.1254073381 +-2.1577761173 + + + + +1.1254073381 +-2.1577761173 + + + + +1.1104811430 +-2.1358585358 + + + + +1.1254073381 +-2.1577761173 + + + + +1.1254073381 +-2.1577761173 + + + + +1.1254073381 +-2.1577761173 + + + + +1.1254073381 +-2.1577761173 + + + + +1.1254073381 +-2.1577761173 + + + + +1.1104811430 +-2.1358585358 + + + + +1.1254073381 +-2.1577761173 + + + + +1.1254073381 +-2.1577761173 + + + + +1.1254073381 +-2.1577761173 + + + + +1.1254073381 +-2.1577761173 + + + + +1.1254073381 +-2.1577761173 + + + + +1.1104811430 +-2.1358585358 + + + + +1.1104811430 +-2.1358585358 + + + + +1.1254073381 +-2.1577761173 + + + + +1.1254073381 +-2.1577761173 + + + + +1.1254073381 +-2.1577761173 + + + + +1.1254073381 +-2.1577761173 + + + + +1.1254073381 +-2.1577761173 + + + + +1.1254073381 +-2.1577761173 + + + + +1.1254073381 +-2.1577761173 + + + + +1.1254073381 +-2.1577761173 + + + + +1.1254073381 +-2.1577761173 + + + + +1.1254073381 +-2.1577761173 + + + + +1.1104811430 +-2.1358585358 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.1371923685 +-2.3361554146 + + + + +1.1371923685 +-2.3361554146 + + + + +1.1390743256 +-2.3389189243 + + + + +1.1371923685 +-2.3361554146 + + + + +1.1371923685 +-2.3361554146 + + + + +1.1431604624 +-2.3449189663 + + + + +1.1521185637 +-2.3580729961 + + + + +1.1521185637 +-2.3580729961 + + + + +1.1521185637 +-2.3580729961 + + + + +1.1521185637 +-2.3580729961 + + + + +1.1521185637 +-2.3580729961 + + + + +1.1371923685 +-2.3361554146 + + + + +1.1521185637 +-2.3580729961 + + + + +1.1521185637 +-2.3580729961 + + + + +1.1521185637 +-2.3580729961 + + + + +1.1521185637 +-2.3580729961 + + + + +1.1521185637 +-2.3580729961 + + + + +1.1371923685 +-2.3361554146 + + + + +1.1521185637 +-2.3580729961 + + + + +1.1521185637 +-2.3580729961 + + + + +1.1521185637 +-2.3580729961 + + + + +1.1521185637 +-2.3580729961 + + + + +1.1521185637 +-2.3580729961 + + + + +1.1371923685 +-2.3361554146 + + + + +1.1371923685 +-2.3361554146 + + + + +1.1521185637 +-2.3580729961 + + + + +1.1521185637 +-2.3580729961 + + + + +1.1521185637 +-2.3580729961 + + + + +1.1521185637 +-2.3580729961 + + + + +1.1521185637 +-2.3580729961 + + + + +1.1521185637 +-2.3580729961 + + + + +1.1521185637 +-2.3580729961 + + + + +1.1521185637 +-2.3580729961 + + + + +1.1521185637 +-2.3580729961 + + + + +1.1521185637 +-2.3580729961 + + + + +1.1371923685 +-2.3361554146 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.033531 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + + + +1.3775930405 +-1.7619714737 + + + + +1.3775930405 +-1.7619714737 + + + + +1.3794749975 +-1.7647348642 + + + + +1.3775930405 +-1.7619714737 + + + + +1.3775930405 +-1.7619714737 + + + + +1.3835611343 +-1.7707350254 + + + + +1.3925192356 +-1.7838888168 + + + + +1.3925192356 +-1.7838888168 + + + + +1.3925192356 +-1.7838888168 + + + + +1.3925192356 +-1.7838888168 + + + + +1.3925192356 +-1.7838888168 + + + + +1.3775930405 +-1.7619714737 + + + + +1.3925192356 +-1.7838888168 + + + + +1.3925192356 +-1.7838888168 + + + + +1.3925192356 +-1.7838888168 + + + + +1.3925192356 +-1.7838888168 + + + + +1.3925192356 +-1.7838888168 + + + + +1.3775930405 +-1.7619714737 + + + + +1.3925192356 +-1.7838888168 + + + + +1.3925192356 +-1.7838888168 + + + + +1.3925192356 +-1.7838888168 + + + + +1.3925192356 +-1.7838888168 + + + + +1.3925192356 +-1.7838888168 + + + + +1.3775930405 +-1.7619714737 + + + + +1.3775930405 +-1.7619714737 + + + + +1.3925192356 +-1.7838888168 + + + + +1.3925192356 +-1.7838888168 + + + + +1.3925192356 +-1.7838888168 + + + + +1.3925192356 +-1.7838888168 + + + + +1.3925192356 +-1.7838888168 + + + + +1.3925192356 +-1.7838888168 + + + + +1.3925192356 +-1.7838888168 + + + + +1.3925192356 +-1.7838888168 + + + + +1.3925192356 +-1.7838888168 + + + + +1.3925192356 +-1.7838888168 + + + + +1.3775930405 +-1.7619714737 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.4310153723 +-1.8821495771 + + + + +1.4310153723 +-1.8821495771 + + + + +1.4328973293 +-1.8849129677 + + + + +1.4310153723 +-1.8821495771 + + + + +1.4310153723 +-1.8821495771 + + + + +1.4369834661 +-1.8909131289 + + + + +1.4459415674 +-1.9040669203 + + + + +1.4459415674 +-1.9040669203 + + + + +1.4459415674 +-1.9040669203 + + + + +1.4459415674 +-1.9040669203 + + + + +1.4459415674 +-1.9040669203 + + + + +1.4310153723 +-1.8821495771 + + + + +1.4459415674 +-1.9040669203 + + + + +1.4459415674 +-1.9040669203 + + + + +1.4459415674 +-1.9040669203 + + + + +1.4459415674 +-1.9040669203 + + + + +1.4459415674 +-1.9040669203 + + + + +1.4310153723 +-1.8821495771 + + + + +1.4459415674 +-1.9040669203 + + + + +1.4459415674 +-1.9040669203 + + + + +1.4459415674 +-1.9040669203 + + + + +1.4459415674 +-1.9040669203 + + + + +1.4459415674 +-1.9040669203 + + + + +1.4310153723 +-1.8821495771 + + + + +1.4310153723 +-1.8821495771 + + + + +1.4459415674 +-1.9040669203 + + + + +1.4459415674 +-1.9040669203 + + + + +1.4459415674 +-1.9040669203 + + + + +1.4459415674 +-1.9040669203 + + + + +1.4459415674 +-1.9040669203 + + + + +1.4459415674 +-1.9040669203 + + + + +1.4459415674 +-1.9040669203 + + + + +1.4459415674 +-1.9040669203 + + + + +1.4459415674 +-1.9040669203 + + + + +1.4459415674 +-1.9040669203 + + + + +1.4310153723 +-1.8821495771 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.118179 +0.017855 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + + + +2.1388618946 +-2.1625647545 + + + + +2.1388618946 +-2.1625647545 + + + + +2.1407437325 +-2.1653282642 + + + + +2.1388618946 +-2.1625647545 + + + + +2.1388618946 +-2.1625647545 + + + + +2.1448299885 +-2.1713283062 + + + + +2.1537880898 +-2.1844823360 + + + + +2.1537880898 +-2.1844823360 + + + + +2.1537880898 +-2.1844823360 + + + + +2.1537880898 +-2.1844823360 + + + + +2.1537880898 +-2.1844823360 + + + + +2.1388618946 +-2.1625647545 + + + + +2.1537880898 +-2.1844823360 + + + + +2.1537880898 +-2.1844823360 + + + + +2.1537880898 +-2.1844823360 + + + + +2.1537880898 +-2.1844823360 + + + + +2.1537880898 +-2.1844823360 + + + + +2.1388618946 +-2.1625647545 + + + + +2.1537880898 +-2.1844823360 + + + + +2.1537880898 +-2.1844823360 + + + + +2.1537880898 +-2.1844823360 + + + + +2.1537880898 +-2.1844823360 + + + + +2.1537880898 +-2.1844823360 + + + + +2.1388618946 +-2.1625647545 + + + + +2.1388618946 +-2.1625647545 + + + + +2.1537880898 +-2.1844823360 + + + + +2.1537880898 +-2.1844823360 + + + + +2.1537880898 +-2.1844823360 + + + + +2.1537880898 +-2.1844823360 + + + + +2.1537880898 +-2.1844823360 + + + + +2.1537880898 +-2.1844823360 + + + + +2.1537880898 +-2.1844823360 + + + + +2.1537880898 +-2.1844823360 + + + + +2.1537880898 +-2.1844823360 + + + + +2.1537880898 +-2.1844823360 + + + + +2.1388618946 +-2.1625647545 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.2189953327 +-2.3094491959 + + + + +2.2189953327 +-2.3094491959 + + + + +2.2208771706 +-2.3122127056 + + + + +2.2189953327 +-2.3094491959 + + + + +2.2189953327 +-2.3094491959 + + + + +2.2249634266 +-2.3182127476 + + + + +2.2339215279 +-2.3313667774 + + + + +2.2339215279 +-2.3313667774 + + + + +2.2339215279 +-2.3313667774 + + + + +2.2339215279 +-2.3313667774 + + + + +2.2339215279 +-2.3313667774 + + + + +2.2189953327 +-2.3094491959 + + + + +2.2339215279 +-2.3313667774 + + + + +2.2339215279 +-2.3313667774 + + + + +2.2339215279 +-2.3313667774 + + + + +2.2339215279 +-2.3313667774 + + + + +2.2339215279 +-2.3313667774 + + + + +2.2189953327 +-2.3094491959 + + + + +2.2339215279 +-2.3313667774 + + + + +2.2339215279 +-2.3313667774 + + + + +2.2339215279 +-2.3313667774 + + + + +2.2339215279 +-2.3313667774 + + + + +2.2339215279 +-2.3313667774 + + + + +2.2189953327 +-2.3094491959 + + + + +2.2189953327 +-2.3094491959 + + + + +2.2339215279 +-2.3313667774 + + + + +2.2339215279 +-2.3313667774 + + + + +2.2339215279 +-2.3313667774 + + + + +2.2339215279 +-2.3313667774 + + + + +2.2339215279 +-2.3313667774 + + + + +2.2339215279 +-2.3313667774 + + + + +2.2339215279 +-2.3313667774 + + + + +2.2339215279 +-2.3313667774 + + + + +2.2339215279 +-2.3313667774 + + + + +2.2339215279 +-2.3313667774 + + + + +2.2189953327 +-2.3094491959 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.118179 +0.017855 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + + + +1.5111489296 +-2.0423867702 + + + + +1.5111489296 +-2.0423867702 + + + + +1.5130308867 +-2.0451502800 + + + + +1.5111489296 +-2.0423867702 + + + + +1.5111489296 +-2.0423867702 + + + + +1.5171170235 +-2.0511503220 + + + + +1.5260751247 +-2.0643043518 + + + + +1.5260751247 +-2.0643043518 + + + + +1.5260751247 +-2.0643043518 + + + + +1.5260751247 +-2.0643043518 + + + + +1.5260751247 +-2.0643043518 + + + + +1.5111489296 +-2.0423867702 + + + + +1.5260751247 +-2.0643043518 + + + + +1.5260751247 +-2.0643043518 + + + + +1.5260751247 +-2.0643043518 + + + + +1.5260751247 +-2.0643043518 + + + + +1.5260751247 +-2.0643043518 + + + + +1.5111489296 +-2.0423867702 + + + + +1.5260751247 +-2.0643043518 + + + + +1.5260751247 +-2.0643043518 + + + + +1.5260751247 +-2.0643043518 + + + + +1.5260751247 +-2.0643043518 + + + + +1.5260751247 +-2.0643043518 + + + + +1.5111489296 +-2.0423867702 + + + + +1.5111489296 +-2.0423867702 + + + + +1.5260751247 +-2.0643043518 + + + + +1.5260751247 +-2.0643043518 + + + + +1.5260751247 +-2.0643043518 + + + + +1.5260751247 +-2.0643043518 + + + + +1.5260751247 +-2.0643043518 + + + + +1.5260751247 +-2.0643043518 + + + + +1.5260751247 +-2.0643043518 + + + + +1.5260751247 +-2.0643043518 + + + + +1.5260751247 +-2.0643043518 + + + + +1.5260751247 +-2.0643043518 + + + + +1.5111489296 +-2.0423867702 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.4977933168 +-2.1492116451 + + + + +1.4977933168 +-2.1492116451 + + + + +1.4996752739 +-2.1519751549 + + + + +1.4977933168 +-2.1492116451 + + + + +1.4977933168 +-2.1492116451 + + + + +1.5037614107 +-2.1579751968 + + + + +1.5127195120 +-2.1711292267 + + + + +1.5127195120 +-2.1711292267 + + + + +1.5127195120 +-2.1711292267 + + + + +1.5127195120 +-2.1711292267 + + + + +1.5127195120 +-2.1711292267 + + + + +1.4977933168 +-2.1492116451 + + + + +1.5127195120 +-2.1711292267 + + + + +1.5127195120 +-2.1711292267 + + + + +1.5127195120 +-2.1711292267 + + + + +1.5127195120 +-2.1711292267 + + + + +1.5127195120 +-2.1711292267 + + + + +1.4977933168 +-2.1492116451 + + + + +1.5127195120 +-2.1711292267 + + + + +1.5127195120 +-2.1711292267 + + + + +1.5127195120 +-2.1711292267 + + + + +1.5127195120 +-2.1711292267 + + + + +1.5127195120 +-2.1711292267 + + + + +1.4977933168 +-2.1492116451 + + + + +1.4977933168 +-2.1492116451 + + + + +1.5127195120 +-2.1711292267 + + + + +1.5127195120 +-2.1711292267 + + + + +1.5127195120 +-2.1711292267 + + + + +1.5127195120 +-2.1711292267 + + + + +1.5127195120 +-2.1711292267 + + + + +1.5127195120 +-2.1711292267 + + + + +1.5127195120 +-2.1711292267 + + + + +1.5127195120 +-2.1711292267 + + + + +1.5127195120 +-2.1711292267 + + + + +1.5127195120 +-2.1711292267 + + + + +1.4977933168 +-2.1492116451 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.033531 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + + + +2.5261740685 +-2.0824460983 + + + + +2.5261740685 +-2.0824460983 + + + + +2.5280559063 +-2.0852096081 + + + + +2.5261740685 +-2.0824460983 + + + + +2.5261740685 +-2.0824460983 + + + + +2.5321421623 +-2.0912096500 + + + + +2.5411002636 +-2.1043636799 + + + + +2.5411002636 +-2.1043636799 + + + + +2.5411002636 +-2.1043636799 + + + + +2.5411002636 +-2.1043636799 + + + + +2.5411002636 +-2.1043636799 + + + + +2.5261740685 +-2.0824460983 + + + + +2.5411002636 +-2.1043636799 + + + + +2.5411002636 +-2.1043636799 + + + + +2.5411002636 +-2.1043636799 + + + + +2.5411002636 +-2.1043636799 + + + + +2.5411002636 +-2.1043636799 + + + + +2.5261740685 +-2.0824460983 + + + + +2.5411002636 +-2.1043636799 + + + + +2.5411002636 +-2.1043636799 + + + + +2.5411002636 +-2.1043636799 + + + + +2.5411002636 +-2.1043636799 + + + + +2.5411002636 +-2.1043636799 + + + + +2.5261740685 +-2.0824460983 + + + + +2.5261740685 +-2.0824460983 + + + + +2.5411002636 +-2.1043636799 + + + + +2.5411002636 +-2.1043636799 + + + + +2.5411002636 +-2.1043636799 + + + + +2.5411002636 +-2.1043636799 + + + + +2.5411002636 +-2.1043636799 + + + + +2.5411002636 +-2.1043636799 + + + + +2.5411002636 +-2.1043636799 + + + + +2.5411002636 +-2.1043636799 + + + + +2.5411002636 +-2.1043636799 + + + + +2.5411002636 +-2.1043636799 + + + + +2.5261740685 +-2.0824460983 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.5395295620 +-2.2026240826 + + + + +2.5395295620 +-2.2026240826 + + + + +2.5414113998 +-2.2053875923 + + + + +2.5395295620 +-2.2026240826 + + + + +2.5395295620 +-2.2026240826 + + + + +2.5454976559 +-2.2113876343 + + + + +2.5544557571 +-2.2245416641 + + + + +2.5544557571 +-2.2245416641 + + + + +2.5544557571 +-2.2245416641 + + + + +2.5544557571 +-2.2245416641 + + + + +2.5544557571 +-2.2245416641 + + + + +2.5395295620 +-2.2026240826 + + + + +2.5544557571 +-2.2245416641 + + + + +2.5544557571 +-2.2245416641 + + + + +2.5544557571 +-2.2245416641 + + + + +2.5544557571 +-2.2245416641 + + + + +2.5544557571 +-2.2245416641 + + + + +2.5395295620 +-2.2026240826 + + + + +2.5544557571 +-2.2245416641 + + + + +2.5544557571 +-2.2245416641 + + + + +2.5544557571 +-2.2245416641 + + + + +2.5544557571 +-2.2245416641 + + + + +2.5544557571 +-2.2245416641 + + + + +2.5395295620 +-2.2026240826 + + + + +2.5395295620 +-2.2026240826 + + + + +2.5544557571 +-2.2245416641 + + + + +2.5544557571 +-2.2245416641 + + + + +2.5544557571 +-2.2245416641 + + + + +2.5544557571 +-2.2245416641 + + + + +2.5544557571 +-2.2245416641 + + + + +2.5544557571 +-2.2245416641 + + + + +2.5544557571 +-2.2245416641 + + + + +2.5544557571 +-2.2245416641 + + + + +2.5544557571 +-2.2245416641 + + + + +2.5544557571 +-2.2245416641 + + + + +2.5395295620 +-2.2026240826 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.033531 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + + + +3.3675763607 +-2.0423867702 + + + + +3.3675763607 +-2.0423867702 + + + + +3.3694581985 +-2.0451502800 + + + + +3.3675763607 +-2.0423867702 + + + + +3.3675763607 +-2.0423867702 + + + + +3.3735444546 +-2.0511503220 + + + + +3.3825025558 +-2.0643043518 + + + + +3.3825025558 +-2.0643043518 + + + + +3.3825025558 +-2.0643043518 + + + + +3.3825025558 +-2.0643043518 + + + + +3.3825025558 +-2.0643043518 + + + + +3.3675763607 +-2.0423867702 + + + + +3.3825025558 +-2.0643043518 + + + + +3.3825025558 +-2.0643043518 + + + + +3.3825025558 +-2.0643043518 + + + + +3.3825025558 +-2.0643043518 + + + + +3.3825025558 +-2.0643043518 + + + + +3.3675763607 +-2.0423867702 + + + + +3.3825025558 +-2.0643043518 + + + + +3.3825025558 +-2.0643043518 + + + + +3.3825025558 +-2.0643043518 + + + + +3.3825025558 +-2.0643043518 + + + + +3.3825025558 +-2.0643043518 + + + + +3.3675763607 +-2.0423867702 + + + + +3.3675763607 +-2.0423867702 + + + + +3.3825025558 +-2.0643043518 + + + + +3.3825025558 +-2.0643043518 + + + + +3.3825025558 +-2.0643043518 + + + + +3.3825025558 +-2.0643043518 + + + + +3.3825025558 +-2.0643043518 + + + + +3.3825025558 +-2.0643043518 + + + + +3.3825025558 +-2.0643043518 + + + + +3.3825025558 +-2.0643043518 + + + + +3.3825025558 +-2.0643043518 + + + + +3.3825025558 +-2.0643043518 + + + + +3.3675763607 +-2.0423867702 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.3542206287 +-2.1625647545 + + + + +3.3542206287 +-2.1625647545 + + + + +3.3561024666 +-2.1653282642 + + + + +3.3542206287 +-2.1625647545 + + + + +3.3542206287 +-2.1625647545 + + + + +3.3601887226 +-2.1713283062 + + + + +3.3691468239 +-2.1844823360 + + + + +3.3691468239 +-2.1844823360 + + + + +3.3691468239 +-2.1844823360 + + + + +3.3691468239 +-2.1844823360 + + + + +3.3691468239 +-2.1844823360 + + + + +3.3542206287 +-2.1625647545 + + + + +3.3691468239 +-2.1844823360 + + + + +3.3691468239 +-2.1844823360 + + + + +3.3691468239 +-2.1844823360 + + + + +3.3691468239 +-2.1844823360 + + + + +3.3691468239 +-2.1844823360 + + + + +3.3542206287 +-2.1625647545 + + + + +3.3691468239 +-2.1844823360 + + + + +3.3691468239 +-2.1844823360 + + + + +3.3691468239 +-2.1844823360 + + + + +3.3691468239 +-2.1844823360 + + + + +3.3691468239 +-2.1844823360 + + + + +3.3542206287 +-2.1625647545 + + + + +3.3542206287 +-2.1625647545 + + + + +3.3691468239 +-2.1844823360 + + + + +3.3691468239 +-2.1844823360 + + + + +3.3691468239 +-2.1844823360 + + + + +3.3691468239 +-2.1844823360 + + + + +3.3691468239 +-2.1844823360 + + + + +3.3691468239 +-2.1844823360 + + + + +3.3691468239 +-2.1844823360 + + + + +3.3691468239 +-2.1844823360 + + + + +3.3691468239 +-2.1844823360 + + + + +3.3691468239 +-2.1844823360 + + + + +3.3542206287 +-2.1625647545 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.033531 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + + + +3.8878664970 +1.9183059931 + + + + +3.8878664970 +1.9183059931 + + + + +3.8911998272 +1.9216462374 + + + + +3.8878664970 +1.9183059931 + + + + +3.8878664970 +1.9183059931 + + + + +3.8984375000 +1.9288989305 + + + + +3.9143044949 +1.9447987080 + + + + +3.9143044949 +1.9447987080 + + + + +3.9143044949 +1.9447987080 + + + + +3.9143044949 +1.9447987080 + + + + +3.9143044949 +1.9447987080 + + + + +3.8878664970 +1.9183059931 + + + + +3.9143044949 +1.9447987080 + + + + +3.9143044949 +1.9447987080 + + + + +3.9143044949 +1.9447987080 + + + + +3.9143044949 +1.9447987080 + + + + +3.9143044949 +1.9447987080 + + + + +3.8878664970 +1.9183059931 + + + + +3.9143044949 +1.9447987080 + + + + +3.9143044949 +1.9447987080 + + + + +3.9143044949 +1.9447987080 + + + + +3.9143044949 +1.9447987080 + + + + +3.9143044949 +1.9447987080 + + + + +3.8878664970 +1.9183059931 + + + + +3.8878664970 +1.9183059931 + + + + +3.9143044949 +1.9447987080 + + + + +3.9143044949 +1.9447987080 + + + + +3.9143044949 +1.9447987080 + + + + +3.9143044949 +1.9447987080 + + + + +3.9143044949 +1.9447987080 + + + + +3.9143044949 +1.9447987080 + + + + +3.9143044949 +1.9447987080 + + + + +3.9143044949 +1.9447987080 + + + + +3.9143044949 +1.9447987080 + + + + +3.9143044949 +1.9447987080 + + + + +3.8878664970 +1.9183059931 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.8210883141 +1.5711249113 + + + + +3.8210883141 +1.5711249113 + + + + +3.8244216442 +1.5744651556 + + + + +3.8210883141 +1.5711249113 + + + + +3.8210883141 +1.5711249113 + + + + +3.8316593170 +1.5817178488 + + + + +3.8475263119 +1.5976176262 + + + + +3.8475263119 +1.5976176262 + + + + +3.8475263119 +1.5976176262 + + + + +3.8475263119 +1.5976176262 + + + + +3.8475263119 +1.5976176262 + + + + +3.8210883141 +1.5711249113 + + + + +3.8475263119 +1.5976176262 + + + + +3.8475263119 +1.5976176262 + + + + +3.8475263119 +1.5976176262 + + + + +3.8475263119 +1.5976176262 + + + + +3.8475263119 +1.5976176262 + + + + +3.8210883141 +1.5711249113 + + + + +3.8475263119 +1.5976176262 + + + + +3.8475263119 +1.5976176262 + + + + +3.8475263119 +1.5976176262 + + + + +3.8475263119 +1.5976176262 + + + + +3.8475263119 +1.5976176262 + + + + +3.8210883141 +1.5711249113 + + + + +3.8210883141 +1.5711249113 + + + + +3.8475263119 +1.5976176262 + + + + +3.8475263119 +1.5976176262 + + + + +3.8475263119 +1.5976176262 + + + + +3.8475263119 +1.5976176262 + + + + +3.8475263119 +1.5976176262 + + + + +3.8475263119 +1.5976176262 + + + + +3.8475263119 +1.5976176262 + + + + +3.8475263119 +1.5976176262 + + + + +3.8475263119 +1.5976176262 + + + + +3.8475263119 +1.5976176262 + + + + +3.8210883141 +1.5711249113 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.118179 +0.017855 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + + + +3.5673322678 +2.1586618423 + + + + +3.5673322678 +2.1586618423 + + + + +3.5706655979 +2.1620020866 + + + + +3.5673322678 +2.1586618423 + + + + +3.5673322678 +2.1586618423 + + + + +3.5779032707 +2.1692547798 + + + + +3.5937702656 +2.1851546764 + + + + +3.5937702656 +2.1851546764 + + + + +3.5937702656 +2.1851546764 + + + + +3.5937702656 +2.1851546764 + + + + +3.5937702656 +2.1851546764 + + + + +3.5673322678 +2.1586618423 + + + + +3.5937702656 +2.1851546764 + + + + +3.5937702656 +2.1851546764 + + + + +3.5937702656 +2.1851546764 + + + + +3.5937702656 +2.1851546764 + + + + +3.5937702656 +2.1851546764 + + + + +3.5673322678 +2.1586618423 + + + + +3.5937702656 +2.1851546764 + + + + +3.5937702656 +2.1851546764 + + + + +3.5937702656 +2.1851546764 + + + + +3.5937702656 +2.1851546764 + + + + +3.5937702656 +2.1851546764 + + + + +3.5673322678 +2.1586618423 + + + + +3.5673322678 +2.1586618423 + + + + +3.5937702656 +2.1851546764 + + + + +3.5937702656 +2.1851546764 + + + + +3.5937702656 +2.1851546764 + + + + +3.5937702656 +2.1851546764 + + + + +3.5937702656 +2.1851546764 + + + + +3.5937702656 +2.1851546764 + + + + +3.5937702656 +2.1851546764 + + + + +3.5937702656 +2.1851546764 + + + + +3.5937702656 +2.1851546764 + + + + +3.5937702656 +2.1851546764 + + + + +3.5673322678 +2.1586618423 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.6474657059 +1.9717184305 + + + + +3.6474657059 +1.9717184305 + + + + +3.6507990360 +1.9750586748 + + + + +3.6474657059 +1.9717184305 + + + + +3.6474657059 +1.9717184305 + + + + +3.6580367088 +1.9823113680 + + + + +3.6739037037 +1.9982111454 + + + + +3.6739037037 +1.9982111454 + + + + +3.6739037037 +1.9982111454 + + + + +3.6739037037 +1.9982111454 + + + + +3.6739037037 +1.9982111454 + + + + +3.6474657059 +1.9717184305 + + + + +3.6739037037 +1.9982111454 + + + + +3.6739037037 +1.9982111454 + + + + +3.6739037037 +1.9982111454 + + + + +3.6739037037 +1.9982111454 + + + + +3.6739037037 +1.9982111454 + + + + +3.6474657059 +1.9717184305 + + + + +3.6739037037 +1.9982111454 + + + + +3.6739037037 +1.9982111454 + + + + +3.6739037037 +1.9982111454 + + + + +3.6739037037 +1.9982111454 + + + + +3.6739037037 +1.9982111454 + + + + +3.6474657059 +1.9717184305 + + + + +3.6474657059 +1.9717184305 + + + + +3.6739037037 +1.9982111454 + + + + +3.6739037037 +1.9982111454 + + + + +3.6739037037 +1.9982111454 + + + + +3.6739037037 +1.9982111454 + + + + +3.6739037037 +1.9982111454 + + + + +3.6739037037 +1.9982111454 + + + + +3.6739037037 +1.9982111454 + + + + +3.6739037037 +1.9982111454 + + + + +3.6739037037 +1.9982111454 + + + + +3.6739037037 +1.9982111454 + + + + +3.6474657059 +1.9717184305 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.033531 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + + + +3.7815997601 +-1.4815560579 + + + + +3.7815997601 +-1.4815560579 + + + + +3.7834815979 +-1.4843194485 + + + + +3.7815997601 +-1.4815560579 + + + + +3.7815997601 +-1.4815560579 + + + + +3.7875678539 +-1.4903196096 + + + + +3.7965259552 +-1.5034734011 + + + + +3.7965259552 +-1.5034734011 + + + + +3.7965259552 +-1.5034734011 + + + + +3.7965259552 +-1.5034734011 + + + + +3.7965259552 +-1.5034734011 + + + + +3.7815997601 +-1.4815560579 + + + + +3.7965259552 +-1.5034734011 + + + + +3.7965259552 +-1.5034734011 + + + + +3.7965259552 +-1.5034734011 + + + + +3.7965259552 +-1.5034734011 + + + + +3.7965259552 +-1.5034734011 + + + + +3.7815997601 +-1.4815560579 + + + + +3.7965259552 +-1.5034734011 + + + + +3.7965259552 +-1.5034734011 + + + + +3.7965259552 +-1.5034734011 + + + + +3.7965259552 +-1.5034734011 + + + + +3.7965259552 +-1.5034734011 + + + + +3.7815997601 +-1.4815560579 + + + + +3.7815997601 +-1.4815560579 + + + + +3.7965259552 +-1.5034734011 + + + + +3.7965259552 +-1.5034734011 + + + + +3.7965259552 +-1.5034734011 + + + + +3.7965259552 +-1.5034734011 + + + + +3.7965259552 +-1.5034734011 + + + + +3.7965259552 +-1.5034734011 + + + + +3.7965259552 +-1.5034734011 + + + + +3.7965259552 +-1.5034734011 + + + + +3.7965259552 +-1.5034734011 + + + + +3.7965259552 +-1.5034734011 + + + + +3.7815997601 +-1.4815560579 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.7949552536 +-1.3213186264 + + + + +3.7949552536 +-1.3213186264 + + + + +3.7968370914 +-1.3240820169 + + + + +3.7949552536 +-1.3213186264 + + + + +3.7949552536 +-1.3213186264 + + + + +3.8009233475 +-1.3300821781 + + + + +3.8098814487 +-1.3432359695 + + + + +3.8098814487 +-1.3432359695 + + + + +3.8098814487 +-1.3432359695 + + + + +3.8098814487 +-1.3432359695 + + + + +3.8098814487 +-1.3432359695 + + + + +3.7949552536 +-1.3213186264 + + + + +3.8098814487 +-1.3432359695 + + + + +3.8098814487 +-1.3432359695 + + + + +3.8098814487 +-1.3432359695 + + + + +3.8098814487 +-1.3432359695 + + + + +3.8098814487 +-1.3432359695 + + + + +3.7949552536 +-1.3213186264 + + + + +3.8098814487 +-1.3432359695 + + + + +3.8098814487 +-1.3432359695 + + + + +3.8098814487 +-1.3432359695 + + + + +3.8098814487 +-1.3432359695 + + + + +3.8098814487 +-1.3432359695 + + + + +3.7949552536 +-1.3213186264 + + + + +3.7949552536 +-1.3213186264 + + + + +3.8098814487 +-1.3432359695 + + + + +3.8098814487 +-1.3432359695 + + + + +3.8098814487 +-1.3432359695 + + + + +3.8098814487 +-1.3432359695 + + + + +3.8098814487 +-1.3432359695 + + + + +3.8098814487 +-1.3432359695 + + + + +3.8098814487 +-1.3432359695 + + + + +3.8098814487 +-1.3432359695 + + + + +3.8098814487 +-1.3432359695 + + + + +3.8098814487 +-1.3432359695 + + + + +3.7949552536 +-1.3213186264 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.118179 +0.017855 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + + + +3.8083109856 +-1.9088557959 + + + + +3.8083109856 +-1.9088557959 + + + + +3.8101928234 +-1.9116191864 + + + + +3.8083109856 +-1.9088557959 + + + + +3.8083109856 +-1.9088557959 + + + + +3.8142790794 +-1.9176193476 + + + + +3.8232371807 +-1.9307731390 + + + + +3.8232371807 +-1.9307731390 + + + + +3.8232371807 +-1.9307731390 + + + + +3.8232371807 +-1.9307731390 + + + + +3.8232371807 +-1.9307731390 + + + + +3.8083109856 +-1.9088557959 + + + + +3.8232371807 +-1.9307731390 + + + + +3.8232371807 +-1.9307731390 + + + + +3.8232371807 +-1.9307731390 + + + + +3.8232371807 +-1.9307731390 + + + + +3.8232371807 +-1.9307731390 + + + + +3.8083109856 +-1.9088557959 + + + + +3.8232371807 +-1.9307731390 + + + + +3.8232371807 +-1.9307731390 + + + + +3.8232371807 +-1.9307731390 + + + + +3.8232371807 +-1.9307731390 + + + + +3.8232371807 +-1.9307731390 + + + + +3.8083109856 +-1.9088557959 + + + + +3.8083109856 +-1.9088557959 + + + + +3.8232371807 +-1.9307731390 + + + + +3.8232371807 +-1.9307731390 + + + + +3.8232371807 +-1.9307731390 + + + + +3.8232371807 +-1.9307731390 + + + + +3.8232371807 +-1.9307731390 + + + + +3.8232371807 +-1.9307731390 + + + + +3.8232371807 +-1.9307731390 + + + + +3.8232371807 +-1.9307731390 + + + + +3.8232371807 +-1.9307731390 + + + + +3.8232371807 +-1.9307731390 + + + + +3.8083109856 +-1.9088557959 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.8216664791 +-2.0290336609 + + + + +3.8216664791 +-2.0290336609 + + + + +3.8235483170 +-2.0317971706 + + + + +3.8216664791 +-2.0290336609 + + + + +3.8216664791 +-2.0290336609 + + + + +3.8276345730 +-2.0377972126 + + + + +3.8365926743 +-2.0509512424 + + + + +3.8365926743 +-2.0509512424 + + + + +3.8365926743 +-2.0509512424 + + + + +3.8365926743 +-2.0509512424 + + + + +3.8365926743 +-2.0509512424 + + + + +3.8216664791 +-2.0290336609 + + + + +3.8365926743 +-2.0509512424 + + + + +3.8365926743 +-2.0509512424 + + + + +3.8365926743 +-2.0509512424 + + + + +3.8365926743 +-2.0509512424 + + + + +3.8365926743 +-2.0509512424 + + + + +3.8216664791 +-2.0290336609 + + + + +3.8365926743 +-2.0509512424 + + + + +3.8365926743 +-2.0509512424 + + + + +3.8365926743 +-2.0509512424 + + + + +3.8365926743 +-2.0509512424 + + + + +3.8365926743 +-2.0509512424 + + + + +3.8216664791 +-2.0290336609 + + + + +3.8216664791 +-2.0290336609 + + + + +3.8365926743 +-2.0509512424 + + + + +3.8365926743 +-2.0509512424 + + + + +3.8365926743 +-2.0509512424 + + + + +3.8365926743 +-2.0509512424 + + + + +3.8365926743 +-2.0509512424 + + + + +3.8365926743 +-2.0509512424 + + + + +3.8365926743 +-2.0509512424 + + + + +3.8365926743 +-2.0509512424 + + + + +3.8365926743 +-2.0509512424 + + + + +3.8365926743 +-2.0509512424 + + + + +3.8216664791 +-2.0290336609 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.118179 +0.017855 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + + + +3.4744210243 +-1.6284403801 + + + + +3.4744210243 +-1.6284403801 + + + + +3.4763028622 +-1.6312037706 + + + + +3.4744210243 +-1.6284403801 + + + + +3.4744210243 +-1.6284403801 + + + + +3.4803891182 +-1.6372039318 + + + + +3.4893472195 +-1.6503577232 + + + + +3.4893472195 +-1.6503577232 + + + + +3.4893472195 +-1.6503577232 + + + + +3.4893472195 +-1.6503577232 + + + + +3.4893472195 +-1.6503577232 + + + + +3.4744210243 +-1.6284403801 + + + + +3.4893472195 +-1.6503577232 + + + + +3.4893472195 +-1.6503577232 + + + + +3.4893472195 +-1.6503577232 + + + + +3.4893472195 +-1.6503577232 + + + + +3.4893472195 +-1.6503577232 + + + + +3.4744210243 +-1.6284403801 + + + + +3.4893472195 +-1.6503577232 + + + + +3.4893472195 +-1.6503577232 + + + + +3.4893472195 +-1.6503577232 + + + + +3.4893472195 +-1.6503577232 + + + + +3.4893472195 +-1.6503577232 + + + + +3.4744210243 +-1.6284403801 + + + + +3.4744210243 +-1.6284403801 + + + + +3.4893472195 +-1.6503577232 + + + + +3.4893472195 +-1.6503577232 + + + + +3.4893472195 +-1.6503577232 + + + + +3.4893472195 +-1.6503577232 + + + + +3.4893472195 +-1.6503577232 + + + + +3.4893472195 +-1.6503577232 + + + + +3.4893472195 +-1.6503577232 + + + + +3.4893472195 +-1.6503577232 + + + + +3.4893472195 +-1.6503577232 + + + + +3.4893472195 +-1.6503577232 + + + + +3.4744210243 +-1.6284403801 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.5011322498 +-1.7619714737 + + + + +3.5011322498 +-1.7619714737 + + + + +3.5030140877 +-1.7647348642 + + + + +3.5011322498 +-1.7619714737 + + + + +3.5011322498 +-1.7619714737 + + + + +3.5071003437 +-1.7707350254 + + + + +3.5160584450 +-1.7838888168 + + + + +3.5160584450 +-1.7838888168 + + + + +3.5160584450 +-1.7838888168 + + + + +3.5160584450 +-1.7838888168 + + + + +3.5160584450 +-1.7838888168 + + + + +3.5011322498 +-1.7619714737 + + + + +3.5160584450 +-1.7838888168 + + + + +3.5160584450 +-1.7838888168 + + + + +3.5160584450 +-1.7838888168 + + + + +3.5160584450 +-1.7838888168 + + + + +3.5160584450 +-1.7838888168 + + + + +3.5011322498 +-1.7619714737 + + + + +3.5160584450 +-1.7838888168 + + + + +3.5160584450 +-1.7838888168 + + + + +3.5160584450 +-1.7838888168 + + + + +3.5160584450 +-1.7838888168 + + + + +3.5160584450 +-1.7838888168 + + + + +3.5011322498 +-1.7619714737 + + + + +3.5011322498 +-1.7619714737 + + + + +3.5160584450 +-1.7838888168 + + + + +3.5160584450 +-1.7838888168 + + + + +3.5160584450 +-1.7838888168 + + + + +3.5160584450 +-1.7838888168 + + + + +3.5160584450 +-1.7838888168 + + + + +3.5160584450 +-1.7838888168 + + + + +3.5160584450 +-1.7838888168 + + + + +3.5160584450 +-1.7838888168 + + + + +3.5160584450 +-1.7838888168 + + + + +3.5160584450 +-1.7838888168 + + + + +3.5011322498 +-1.7619714737 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.118179 +0.017855 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + + + +-1.7072030306 +-2.0600106716 + + + + +-1.7072030306 +-2.0600106716 + + + + +-1.7081395388 +-2.0609383583 + + + + +-1.7072030306 +-2.0600106716 + + + + +-1.7072030306 +-2.0600106716 + + + + +-1.7101730108 +-2.0629522800 + + + + +-1.7146309614 +-2.0673675537 + + + + +-1.7146309614 +-2.0673675537 + + + + +-1.7146309614 +-2.0673675537 + + + + +-1.7146309614 +-2.0673675537 + + + + +-1.7146309614 +-2.0673675537 + + + + +-1.7072030306 +-2.0600106716 + + + + +-1.7146309614 +-2.0673675537 + + + + +-1.7146309614 +-2.0673675537 + + + + +-1.7146309614 +-2.0673675537 + + + + +-1.7146309614 +-2.0673675537 + + + + +-1.7146309614 +-2.0673675537 + + + + +-1.7072030306 +-2.0600106716 + + + + +-1.7146309614 +-2.0673675537 + + + + +-1.7146309614 +-2.0673675537 + + + + +-1.7146309614 +-2.0673675537 + + + + +-1.7146309614 +-2.0673675537 + + + + +-1.7146309614 +-2.0673675537 + + + + +-1.7072030306 +-2.0600106716 + + + + +-1.7072030306 +-2.0600106716 + + + + +-1.7146309614 +-2.0673675537 + + + + +-1.7146309614 +-2.0673675537 + + + + +-1.7146309614 +-2.0673675537 + + + + +-1.7146309614 +-2.0673675537 + + + + +-1.7146309614 +-2.0673675537 + + + + +-1.7146309614 +-2.0673675537 + + + + +-1.7146309614 +-2.0673675537 + + + + +-1.7146309614 +-2.0673675537 + + + + +-1.7146309614 +-2.0673675537 + + + + +-1.7146309614 +-2.0673675537 + + + + +-1.7072030306 +-2.0600106716 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.6671361923 +-2.2202479839 + + + + +-1.6671361923 +-2.2202479839 + + + + +-1.6680727005 +-2.2211756706 + + + + +-1.6671361923 +-2.2202479839 + + + + +-1.6671361923 +-2.2202479839 + + + + +-1.6701061726 +-2.2231895924 + + + + +-1.6745641232 +-2.2276048660 + + + + +-1.6745641232 +-2.2276048660 + + + + +-1.6745641232 +-2.2276048660 + + + + +-1.6745641232 +-2.2276048660 + + + + +-1.6745641232 +-2.2276048660 + + + + +-1.6671361923 +-2.2202479839 + + + + +-1.6745641232 +-2.2276048660 + + + + +-1.6745641232 +-2.2276048660 + + + + +-1.6745641232 +-2.2276048660 + + + + +-1.6745641232 +-2.2276048660 + + + + +-1.6745641232 +-2.2276048660 + + + + +-1.6671361923 +-2.2202479839 + + + + +-1.6745641232 +-2.2276048660 + + + + +-1.6745641232 +-2.2276048660 + + + + +-1.6745641232 +-2.2276048660 + + + + +-1.6745641232 +-2.2276048660 + + + + +-1.6745641232 +-2.2276048660 + + + + +-1.6671361923 +-2.2202479839 + + + + +-1.6671361923 +-2.2202479839 + + + + +-1.6745641232 +-2.2276048660 + + + + +-1.6745641232 +-2.2276048660 + + + + +-1.6745641232 +-2.2276048660 + + + + +-1.6745641232 +-2.2276048660 + + + + +-1.6745641232 +-2.2276048660 + + + + +-1.6745641232 +-2.2276048660 + + + + +-1.6745641232 +-2.2276048660 + + + + +-1.6745641232 +-2.2276048660 + + + + +-1.6745641232 +-2.2276048660 + + + + +-1.6745641232 +-2.2276048660 + + + + +-1.6671361923 +-2.2202479839 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.118179 +0.017855 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + + + +-2.2814936638 +-2.0065982342 + + + + +-2.2814936638 +-2.0065982342 + + + + +-2.2824301720 +-2.0075259209 + + + + +-2.2814936638 +-2.0065982342 + + + + +-2.2814936638 +-2.0065982342 + + + + +-2.2844636440 +-2.0095398426 + + + + +-2.2889215946 +-2.0139551163 + + + + +-2.2889215946 +-2.0139551163 + + + + +-2.2889215946 +-2.0139551163 + + + + +-2.2889215946 +-2.0139551163 + + + + +-2.2889215946 +-2.0139551163 + + + + +-2.2814936638 +-2.0065982342 + + + + +-2.2889215946 +-2.0139551163 + + + + +-2.2889215946 +-2.0139551163 + + + + +-2.2889215946 +-2.0139551163 + + + + +-2.2889215946 +-2.0139551163 + + + + +-2.2889215946 +-2.0139551163 + + + + +-2.2814936638 +-2.0065982342 + + + + +-2.2889215946 +-2.0139551163 + + + + +-2.2889215946 +-2.0139551163 + + + + +-2.2889215946 +-2.0139551163 + + + + +-2.2889215946 +-2.0139551163 + + + + +-2.2889215946 +-2.0139551163 + + + + +-2.2814936638 +-2.0065982342 + + + + +-2.2814936638 +-2.0065982342 + + + + +-2.2889215946 +-2.0139551163 + + + + +-2.2889215946 +-2.0139551163 + + + + +-2.2889215946 +-2.0139551163 + + + + +-2.2889215946 +-2.0139551163 + + + + +-2.2889215946 +-2.0139551163 + + + + +-2.2889215946 +-2.0139551163 + + + + +-2.2889215946 +-2.0139551163 + + + + +-2.2889215946 +-2.0139551163 + + + + +-2.2889215946 +-2.0139551163 + + + + +-2.2889215946 +-2.0139551163 + + + + +-2.2814936638 +-2.0065982342 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.2414269447 +-2.1267762184 + + + + +-2.2414269447 +-2.1267762184 + + + + +-2.2423634529 +-2.1277039051 + + + + +-2.2414269447 +-2.1267762184 + + + + +-2.2414269447 +-2.1267762184 + + + + +-2.2443969250 +-2.1297178268 + + + + +-2.2488548756 +-2.1341331005 + + + + +-2.2488548756 +-2.1341331005 + + + + +-2.2488548756 +-2.1341331005 + + + + +-2.2488548756 +-2.1341331005 + + + + +-2.2488548756 +-2.1341331005 + + + + +-2.2414269447 +-2.1267762184 + + + + +-2.2488548756 +-2.1341331005 + + + + +-2.2488548756 +-2.1341331005 + + + + +-2.2488548756 +-2.1341331005 + + + + +-2.2488548756 +-2.1341331005 + + + + +-2.2488548756 +-2.1341331005 + + + + +-2.2414269447 +-2.1267762184 + + + + +-2.2488548756 +-2.1341331005 + + + + +-2.2488548756 +-2.1341331005 + + + + +-2.2488548756 +-2.1341331005 + + + + +-2.2488548756 +-2.1341331005 + + + + +-2.2488548756 +-2.1341331005 + + + + +-2.2414269447 +-2.1267762184 + + + + +-2.2414269447 +-2.1267762184 + + + + +-2.2488548756 +-2.1341331005 + + + + +-2.2488548756 +-2.1341331005 + + + + +-2.2488548756 +-2.1341331005 + + + + +-2.2488548756 +-2.1341331005 + + + + +-2.2488548756 +-2.1341331005 + + + + +-2.2488548756 +-2.1341331005 + + + + +-2.2488548756 +-2.1341331005 + + + + +-2.2488548756 +-2.1341331005 + + + + +-2.2488548756 +-2.1341331005 + + + + +-2.2488548756 +-2.1341331005 + + + + +-2.2414269447 +-2.1267762184 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.109846 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-2.6110184193 +0.4548234642 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.7305028439 +1.3578996658 + + + + +-1.7171694040 +1.3578996658 + + + + +-1.6905027628 +1.3979591131 + + + + +-1.6371694803 +1.3979591131 + + + + +-1.8105027676 +1.3311934471 + + + + +-1.8339539766 +1.4699406624 + + + + +-1.8456132412 +1.6872644424 + + + + +-1.8456132412 +1.6872644424 + + + + +-1.8456132412 +1.6872644424 + + + + +-1.8456132412 +1.6872644424 + + + + +-1.8456132412 +1.6872644424 + + + + +-1.7305028439 +1.3578996658 + + + + +-1.8456132412 +1.6872644424 + + + + +-1.8456132412 +1.6872644424 + + + + +-1.8456132412 +1.6872644424 + + + + +-1.8456132412 +1.6872644424 + + + + +-1.8456132412 +1.6872644424 + + + + +-1.7305028439 +1.3578996658 + + + + +-1.8456132412 +1.6872644424 + + + + +-1.8456132412 +1.6872644424 + + + + +-1.8456132412 +1.6872644424 + + + + +-1.8456132412 +1.6872644424 + + + + +-1.8456132412 +1.6872644424 + + + + +-1.7305028439 +1.3578996658 + + + + +-1.7305028439 +1.3578996658 + + + + +-1.8456132412 +1.6872644424 + + + + +-1.8456132412 +1.6872644424 + + + + +-1.8456132412 +1.6872644424 + + + + +-1.8456132412 +1.6872644424 + + + + +-1.8456132412 +1.6872644424 + + + + +-1.8456132412 +1.6872644424 + + + + +-1.8456132412 +1.6872644424 + + + + +-1.8456132412 +1.6872644424 + + + + +-1.8456132412 +1.6872644424 + + + + +-1.8456132412 +1.6872644424 + + + + +-1.7305028439 +1.3578996658 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.6028305292 +1.5181370974 + + + + +0.8828305602 +1.4780777693 + + + + +0.8161638975 +1.5314902067 + + + + +0.7494972348 +1.5047839880 + + + + +0.7494972348 +1.5448433161 + + + + +0.7776515484 +1.6106530428 + + + + +0.8199105859 +1.7039912939 + + + + +0.8199105859 +1.7039912939 + + + + +0.8199105859 +1.7039912939 + + + + +0.8199105859 +1.7039912939 + + + + +0.8199105859 +1.7039912939 + + + + +0.6028305292 +1.5181370974 + + + + +0.8199105859 +1.7039912939 + + + + +0.8199105859 +1.7039912939 + + + + +0.8199105859 +1.7039912939 + + + + +0.8199105859 +1.7039912939 + + + + +0.8199105859 +1.7039912939 + + + + +0.6028305292 +1.5181370974 + + + + +0.8199105859 +1.7039912939 + + + + +0.8199105859 +1.7039912939 + + + + +0.8199105859 +1.7039912939 + + + + +0.8199105859 +1.7039912939 + + + + +0.8199105859 +1.7039912939 + + + + +0.6028305292 +1.5181370974 + + + + +0.6028305292 +1.5181370974 + + + + +0.8199105859 +1.7039912939 + + + + +0.8199105859 +1.7039912939 + + + + +0.8199105859 +1.7039912939 + + + + +0.8199105859 +1.7039912939 + + + + +0.8199105859 +1.7039912939 + + + + +0.8199105859 +1.7039912939 + + + + +0.8199105859 +1.7039912939 + + + + +0.8199105859 +1.7039912939 + + + + +0.8199105859 +1.7039912939 + + + + +0.8199105859 +1.7039912939 + + + + +0.6028305292 +1.5181370974 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.6777963638 +0.1477018148 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0333889835 +1.5097196102 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.005232 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +2.7178630829 +0.1477018148 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.6990157366 +1.7147171497 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.8093993664 +1.6808258295 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-4.0208878517 +0.6133839488 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-3.9229378700 +-0.4111333489 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-3.0600521564 +-2.5052206516 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.9556136131 +-0.3494067490 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.8585623503 +0.5409083962 + + + + +-1.8585623503 +0.5409083962 + + + + +-1.8019961119 +0.6223529577 + + + + +-1.8585623503 +0.5409083962 + + + + +-1.8585623503 +0.5409083962 + + + + +-1.6791734695 +0.7991936803 + + + + +-1.4099149704 +1.1868739128 + + + + +-1.4099149704 +1.1868739128 + + + + +-1.4099149704 +1.1868739128 + + + + +-1.4099149704 +1.1868739128 + + + + +-1.4099149704 +1.1868739128 + + + + +-1.8585623503 +0.5409083962 + + + + +-1.4099149704 +1.1868739128 + + + + +-1.4099149704 +1.1868739128 + + + + +-1.4099149704 +1.1868739128 + + + + +-1.4099149704 +1.1868739128 + + + + +-1.4099149704 +1.1868739128 + + + + +-1.8585623503 +0.5409083962 + + + + +-1.4099149704 +1.1868739128 + + + + +-1.4099149704 +1.1868739128 + + + + +-1.4099149704 +1.1868739128 + + + + +-1.4099149704 +1.1868739128 + + + + +-1.4099149704 +1.1868739128 + + + + +-1.8585623503 +0.5409083962 + + + + +-1.8585623503 +0.5409083962 + + + + +-1.4099149704 +1.1868739128 + + + + +-1.4099149704 +1.1868739128 + + + + +-1.4099149704 +1.1868739128 + + + + +-1.4099149704 +1.1868739128 + + + + +-1.4099149704 +1.1868739128 + + + + +-1.4099149704 +1.1868739128 + + + + +-1.4099149704 +1.1868739128 + + + + +-1.4099149704 +1.1868739128 + + + + +-1.4099149704 +1.1868739128 + + + + +-1.4099149704 +1.1868739128 + + + + +-1.8585623503 +0.5409083962 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.005232 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-2.4856824875 +-0.7155498862 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.5038957000 +-1.3221472502 + + + + +-0.5038957000 +-1.3221472502 + + + + +-0.4980120361 +-1.3693348169 + + + + +-0.5038957000 +-1.3221472502 + + + + +-0.5038957000 +-1.3221472502 + + + + +-0.4852367640 +-1.4717929363 + + + + +-0.4572301209 +-1.6964076757 + + + + +-0.4572301209 +-1.6964076757 + + + + +-0.4572301209 +-1.6964076757 + + + + +-0.4572301209 +-1.6964076757 + + + + +-0.4572301209 +-1.6964076757 + + + + +-0.5038957000 +-1.3221472502 + + + + +-0.4572301209 +-1.6964076757 + + + + +-0.4572301209 +-1.6964076757 + + + + +-0.4572301209 +-1.6964076757 + + + + +-0.4572301209 +-1.6964076757 + + + + +-0.4572301209 +-1.6964076757 + + + + +-0.5038957000 +-1.3221472502 + + + + +-0.4572301209 +-1.6964076757 + + + + +-0.4572301209 +-1.6964076757 + + + + +-0.4572301209 +-1.6964076757 + + + + +-0.4572301209 +-1.6964076757 + + + + +-0.4572301209 +-1.6964076757 + + + + +-0.5038957000 +-1.3221472502 + + + + +-0.5038957000 +-1.3221472502 + + + + +-0.4572301209 +-1.6964076757 + + + + +-0.4572301209 +-1.6964076757 + + + + +-0.4572301209 +-1.6964076757 + + + + +-0.4572301209 +-1.6964076757 + + + + +-0.4572301209 +-1.6964076757 + + + + +-0.4572301209 +-1.6964076757 + + + + +-0.4572301209 +-1.6964076757 + + + + +-0.4572301209 +-1.6964076757 + + + + +-0.4572301209 +-1.6964076757 + + + + +-0.4572301209 +-1.6964076757 + + + + +-0.5038957000 +-1.3221472502 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.8247077465 +-0.0926542729 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.9676508904 +-2.6651048660 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.5425709486 +-2.3760371208 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.4908180237 +-1.0941379070 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.6911518574 +0.3479985595 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.005232 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +2.9315526485 +-0.0659480393 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.6027710438 +0.3675304353 + + + + +3.6027710438 +0.3675304353 + + + + +3.6102237701 +0.4063230753 + + + + +3.6027710438 +0.3675304353 + + + + +3.6027710438 +0.3675304353 + + + + +3.6264059544 +0.4905536175 + + + + +3.6618816853 +0.6752085686 + + + + +3.6618816853 +0.6752085686 + + + + +3.6618816853 +0.6752085686 + + + + +3.6618816853 +0.6752085686 + + + + +3.6618816853 +0.6752085686 + + + + +3.6027710438 +0.3675304353 + + + + +3.6618816853 +0.6752085686 + + + + +3.6618816853 +0.6752085686 + + + + +3.6618816853 +0.6752085686 + + + + +3.6618816853 +0.6752085686 + + + + +3.6618816853 +0.6752085686 + + + + +3.6027710438 +0.3675304353 + + + + +3.6618816853 +0.6752085686 + + + + +3.6618816853 +0.6752085686 + + + + +3.6618816853 +0.6752085686 + + + + +3.6618816853 +0.6752085686 + + + + +3.6618816853 +0.6752085686 + + + + +3.6027710438 +0.3675304353 + + + + +3.6027710438 +0.3675304353 + + + + +3.6618816853 +0.6752085686 + + + + +3.6618816853 +0.6752085686 + + + + +3.6618816853 +0.6752085686 + + + + +3.6618816853 +0.6752085686 + + + + +3.6618816853 +0.6752085686 + + + + +3.6618816853 +0.6752085686 + + + + +3.6618816853 +0.6752085686 + + + + +3.6618816853 +0.6752085686 + + + + +3.6618816853 +0.6752085686 + + + + +3.6618816853 +0.6752085686 + + + + +3.6027710438 +0.3675304353 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.6987709999 +-0.4555099308 + + + + +3.6987709999 +-0.4555099308 + + + + +3.6981511116 +-0.4816961586 + + + + +3.6987709999 +-0.4555099308 + + + + +3.6987709999 +-0.4555099308 + + + + +3.6968054771 +-0.5385543704 + + + + +3.6938555241 +-0.6632021070 + + + + +3.6938555241 +-0.6632021070 + + + + +3.6938555241 +-0.6632021070 + + + + +3.6938555241 +-0.6632021070 + + + + +3.6938555241 +-0.6632021070 + + + + +3.6987709999 +-0.4555099308 + + + + +3.6938555241 +-0.6632021070 + + + + +3.6938555241 +-0.6632021070 + + + + +3.6938555241 +-0.6632021070 + + + + +3.6938555241 +-0.6632021070 + + + + +3.6938555241 +-0.6632021070 + + + + +3.6987709999 +-0.4555099308 + + + + +3.6938555241 +-0.6632021070 + + + + +3.6938555241 +-0.6632021070 + + + + +3.6938555241 +-0.6632021070 + + + + +3.6938555241 +-0.6632021070 + + + + +3.6938555241 +-0.6632021070 + + + + +3.6987709999 +-0.4555099308 + + + + +3.6987709999 +-0.4555099308 + + + + +3.6938555241 +-0.6632021070 + + + + +3.6938555241 +-0.6632021070 + + + + +3.6938555241 +-0.6632021070 + + + + +3.6938555241 +-0.6632021070 + + + + +3.6938555241 +-0.6632021070 + + + + +3.6938555241 +-0.6632021070 + + + + +3.6938555241 +-0.6632021070 + + + + +3.6938555241 +-0.6632021070 + + + + +3.6938555241 +-0.6632021070 + + + + +3.6938555241 +-0.6632021070 + + + + +3.6987709999 +-0.4555099308 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + +1.171674 +0.912555 +1.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + + + +-1.7889019251 +0.5881867409 + + + + +-1.7889019251 +0.5881867409 + + + + +-1.7800408602 +0.6335914135 + + + + +-1.7889019251 +0.5881867409 + + + + +-1.7889019251 +0.5881867409 + + + + +-1.7608009577 +0.7321787477 + + + + +-1.7186219692 +0.9483074546 + + + + +-1.7186219692 +0.9483074546 + + + + +-1.7186219692 +0.9483074546 + + + + +-1.7186219692 +0.9483074546 + + + + +-1.7186219692 +0.9483074546 + + + + +-1.7889019251 +0.5881867409 + + + + +-1.7186219692 +0.9483074546 + + + + +-1.7186219692 +0.9483074546 + + + + +-1.7186219692 +0.9483074546 + + + + +-1.7186219692 +0.9483074546 + + + + +-1.7186219692 +0.9483074546 + + + + +-1.7889019251 +0.5881867409 + + + + +-1.7186219692 +0.9483074546 + + + + +-1.7186219692 +0.9483074546 + + + + +-1.7186219692 +0.9483074546 + + + + +-1.7186219692 +0.9483074546 + + + + +-1.7186219692 +0.9483074546 + + + + +-1.7889019251 +0.5881867409 + + + + +-1.7889019251 +0.5881867409 + + + + +-1.7186219692 +0.9483074546 + + + + +-1.7186219692 +0.9483074546 + + + + +-1.7186219692 +0.9483074546 + + + + +-1.7186219692 +0.9483074546 + + + + +-1.7186219692 +0.9483074546 + + + + +-1.7186219692 +0.9483074546 + + + + +-1.7186219692 +0.9483074546 + + + + +-1.7186219692 +0.9483074546 + + + + +-1.7186219692 +0.9483074546 + + + + +-1.7186219692 +0.9483074546 + + + + +-1.7889019251 +0.5881867409 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.3359646797 +0.7675036192 + + + + +1.3359646797 +0.7675036192 + + + + +1.3512631655 +0.8178756237 + + + + +1.3359646797 +0.7675036192 + + + + +1.3359646797 +0.7675036192 + + + + +1.3844809532 +0.9272484779 + + + + +1.4573026896 +1.1670217514 + + + + +1.4573026896 +1.1670217514 + + + + +1.4573026896 +1.1670217514 + + + + +1.4573026896 +1.1670217514 + + + + +1.4573026896 +1.1670217514 + + + + +1.3359646797 +0.7675036192 + + + + +1.4573026896 +1.1670217514 + + + + +1.4573026896 +1.1670217514 + + + + +1.4573026896 +1.1670217514 + + + + +1.4573026896 +1.1670217514 + + + + +1.4573026896 +1.1670217514 + + + + +1.3359646797 +0.7675036192 + + + + +1.4573026896 +1.1670217514 + + + + +1.4573026896 +1.1670217514 + + + + +1.4573026896 +1.1670217514 + + + + +1.4573026896 +1.1670217514 + + + + +1.4573026896 +1.1670217514 + + + + +1.3359646797 +0.7675036192 + + + + +1.3359646797 +0.7675036192 + + + + +1.4573026896 +1.1670217514 + + + + +1.4573026896 +1.1670217514 + + + + +1.4573026896 +1.1670217514 + + + + +1.4573026896 +1.1670217514 + + + + +1.4573026896 +1.1670217514 + + + + +1.4573026896 +1.1670217514 + + + + +1.4573026896 +1.1670217514 + + + + +1.4573026896 +1.1670217514 + + + + +1.4573026896 +1.1670217514 + + + + +1.4573026896 +1.1670217514 + + + + +1.3359646797 +0.7675036192 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.3263595104 +-0.0949252173 + + + + +2.3263595104 +-0.0949252173 + + + + +2.3468253613 +-0.0493014529 + + + + +2.3263595104 +-0.0949252173 + + + + +2.3263595104 +-0.0949252173 + + + + +2.3912625313 +0.0497615337 + + + + +2.4886803627 +0.2669329941 + + + + +2.4886803627 +0.2669329941 + + + + +2.4886803627 +0.2669329941 + + + + +2.4886803627 +0.2669329941 + + + + +2.4886803627 +0.2669329941 + + + + +2.3263595104 +-0.0949252173 + + + + +2.4886803627 +0.2669329941 + + + + +2.4886803627 +0.2669329941 + + + + +2.4886803627 +0.2669329941 + + + + +2.4886803627 +0.2669329941 + + + + +2.4886803627 +0.2669329941 + + + + +2.3263595104 +-0.0949252173 + + + + +2.4886803627 +0.2669329941 + + + + +2.4886803627 +0.2669329941 + + + + +2.4886803627 +0.2669329941 + + + + +2.4886803627 +0.2669329941 + + + + +2.4886803627 +0.2669329941 + + + + +2.3263595104 +-0.0949252173 + + + + +2.3263595104 +-0.0949252173 + + + + +2.4886803627 +0.2669329941 + + + + +2.4886803627 +0.2669329941 + + + + +2.4886803627 +0.2669329941 + + + + +2.4886803627 +0.2669329941 + + + + +2.4886803627 +0.2669329941 + + + + +2.4886803627 +0.2669329941 + + + + +2.4886803627 +0.2669329941 + + + + +2.4886803627 +0.2669329941 + + + + +2.4886803627 +0.2669329941 + + + + +2.4886803627 +0.2669329941 + + + + +2.3263595104 +-0.0949252173 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.0044835829 +-0.6328758597 + + + + +-0.0044835829 +-0.6328758597 + + + + +-0.0064994730 +-0.4171577394 + + + + +-0.0044835829 +-0.6328758597 + + + + +-0.0044835829 +-0.6328758597 + + + + +-0.0108765801 +0.0512316748 + + + + +-0.0204723198 +1.0780612230 + + + + +-0.0204723198 +1.0780612230 + + + + +-0.0204723198 +1.0780612230 + + + + +-0.0204723198 +1.0780612230 + + + + +-0.0204723198 +1.0780612230 + + + + +-0.0044835829 +-0.6328758597 + + + + +-0.0204723198 +1.0780612230 + + + + +-0.0204723198 +1.0780612230 + + + + +-0.0204723198 +1.0780612230 + + + + +-0.0204723198 +1.0780612230 + + + + +-0.0204723198 +1.0780612230 + + + + +-0.0044835829 +-0.6328758597 + + + + +-0.0204723198 +1.0780612230 + + + + +-0.0204723198 +1.0780612230 + + + + +-0.0204723198 +1.0780612230 + + + + +-0.0204723198 +1.0780612230 + + + + +-0.0204723198 +1.0780612230 + + + + +-0.0044835829 +-0.6328758597 + + + + +-0.0044835829 +-0.6328758597 + + + + +-0.0204723198 +1.0780612230 + + + + +-0.0204723198 +1.0780612230 + + + + +-0.0204723198 +1.0780612230 + + + + +-0.0204723198 +1.0780612230 + + + + +-0.0204723198 +1.0780612230 + + + + +-0.0204723198 +1.0780612230 + + + + +-0.0204723198 +1.0780612230 + + + + +-0.0204723198 +1.0780612230 + + + + +-0.0204723198 +1.0780612230 + + + + +-0.0204723198 +1.0780612230 + + + + +-0.0044835829 +-0.6328758597 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.1133415699 +-0.2827810049 + + + + +-2.1133415699 +-0.2827810049 + + + + +-2.1526293755 +-0.2217617780 + + + + +-2.1133415699 +-0.2827810049 + + + + +-2.1133415699 +-0.2827810049 + + + + +-2.2379345894 +-0.0892705768 + + + + +-2.4249455929 +0.2011840940 + + + + +-2.4249455929 +0.2011840940 + + + + +-2.4249455929 +0.2011840940 + + + + +-2.4249455929 +0.2011840940 + + + + +-2.4249455929 +0.2011840940 + + + + +-2.1133415699 +-0.2827810049 + + + + +-2.4249455929 +0.2011840940 + + + + +-2.4249455929 +0.2011840940 + + + + +-2.4249455929 +0.2011840940 + + + + +-2.4249455929 +0.2011840940 + + + + +-2.4249455929 +0.2011840940 + + + + +-2.1133415699 +-0.2827810049 + + + + +-2.4249455929 +0.2011840940 + + + + +-2.4249455929 +0.2011840940 + + + + +-2.4249455929 +0.2011840940 + + + + +-2.4249455929 +0.2011840940 + + + + +-2.4249455929 +0.2011840940 + + + + +-2.1133415699 +-0.2827810049 + + + + +-2.1133415699 +-0.2827810049 + + + + +-2.4249455929 +0.2011840940 + + + + +-2.4249455929 +0.2011840940 + + + + +-2.4249455929 +0.2011840940 + + + + +-2.4249455929 +0.2011840940 + + + + +-2.4249455929 +0.2011840940 + + + + +-2.4249455929 +0.2011840940 + + + + +-2.4249455929 +0.2011840940 + + + + +-2.4249455929 +0.2011840940 + + + + +-2.4249455929 +0.2011840940 + + + + +-2.4249455929 +0.2011840940 + + + + +-2.1133415699 +-0.2827810049 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.171674 +0.912555 +1.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + + + +-2.0194249153 +-0.7047411203 + + + + +-2.0194249153 +-0.7047411203 + + + + +-1.9865510464 +-0.7472084165 + + + + +-2.0194249153 +-0.7047411203 + + + + +-2.0194249153 +-0.7047411203 + + + + +-1.9151719809 +-0.8394175768 + + + + +-1.7586908340 +-1.0415638685 + + + + +-1.7586908340 +-1.0415638685 + + + + +-1.7586908340 +-1.0415638685 + + + + +-1.7586908340 +-1.0415638685 + + + + +-1.7586908340 +-1.0415638685 + + + + +-2.0194249153 +-0.7047411203 + + + + +-1.7586908340 +-1.0415638685 + + + + +-1.7586908340 +-1.0415638685 + + + + +-1.7586908340 +-1.0415638685 + + + + +-1.7586908340 +-1.0415638685 + + + + +-1.7586908340 +-1.0415638685 + + + + +-2.0194249153 +-0.7047411203 + + + + +-1.7586908340 +-1.0415638685 + + + + +-1.7586908340 +-1.0415638685 + + + + +-1.7586908340 +-1.0415638685 + + + + +-1.7586908340 +-1.0415638685 + + + + +-1.7586908340 +-1.0415638685 + + + + +-2.0194249153 +-0.7047411203 + + + + +-2.0194249153 +-0.7047411203 + + + + +-1.7586908340 +-1.0415638685 + + + + +-1.7586908340 +-1.0415638685 + + + + +-1.7586908340 +-1.0415638685 + + + + +-1.7586908340 +-1.0415638685 + + + + +-1.7586908340 +-1.0415638685 + + + + +-1.7586908340 +-1.0415638685 + + + + +-1.7586908340 +-1.0415638685 + + + + +-1.7586908340 +-1.0415638685 + + + + +-1.7586908340 +-1.0415638685 + + + + +-1.7586908340 +-1.0415638685 + + + + +-2.0194249153 +-0.7047411203 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0211300775 +-1.0036026239 + + + + +0.0211300775 +-1.0036026239 + + + + +0.0233905427 +-1.0552760363 + + + + +0.0211300775 +-1.0036026239 + + + + +0.0211300775 +-1.0036026239 + + + + +0.0282986965 +-1.1674745083 + + + + +0.0390586257 +-1.4134424925 + + + + +0.0390586257 +-1.4134424925 + + + + +0.0390586257 +-1.4134424925 + + + + +0.0390586257 +-1.4134424925 + + + + +0.0390586257 +-1.4134424925 + + + + +0.0211300775 +-1.0036026239 + + + + +0.0390586257 +-1.4134424925 + + + + +0.0390586257 +-1.4134424925 + + + + +0.0390586257 +-1.4134424925 + + + + +0.0390586257 +-1.4134424925 + + + + +0.0390586257 +-1.4134424925 + + + + +0.0211300775 +-1.0036026239 + + + + +0.0390586257 +-1.4134424925 + + + + +0.0390586257 +-1.4134424925 + + + + +0.0390586257 +-1.4134424925 + + + + +0.0390586257 +-1.4134424925 + + + + +0.0390586257 +-1.4134424925 + + + + +0.0211300775 +-1.0036026239 + + + + +0.0211300775 +-1.0036026239 + + + + +0.0390586257 +-1.4134424925 + + + + +0.0390586257 +-1.4134424925 + + + + +0.0390586257 +-1.4134424925 + + + + +0.0390586257 +-1.4134424925 + + + + +0.0390586257 +-1.4134424925 + + + + +0.0390586257 +-1.4134424925 + + + + +0.0390586257 +-1.4134424925 + + + + +0.0390586257 +-1.4134424925 + + + + +0.0390586257 +-1.4134424925 + + + + +0.0390586257 +-1.4134424925 + + + + +0.0211300775 +-1.0036026239 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.1556017399 +-0.8499024510 + + + + +2.1556017399 +-0.8499024510 + + + + +2.1563549042 +-0.8591663837 + + + + +2.1556017399 +-0.8499024510 + + + + +2.1556017399 +-0.8499024510 + + + + +2.1579897404 +-0.8792811632 + + + + +2.1615741253 +-0.9233779907 + + + + +2.1615741253 +-0.9233779907 + + + + +2.1615741253 +-0.9233779907 + + + + +2.1615741253 +-0.9233779907 + + + + +2.1615741253 +-0.9233779907 + + + + +2.1556017399 +-0.8499024510 + + + + +2.1615741253 +-0.9233779907 + + + + +2.1615741253 +-0.9233779907 + + + + +2.1615741253 +-0.9233779907 + + + + +2.1615741253 +-0.9233779907 + + + + +2.1615741253 +-0.9233779907 + + + + +2.1556017399 +-0.8499024510 + + + + +2.1615741253 +-0.9233779907 + + + + +2.1615741253 +-0.9233779907 + + + + +2.1615741253 +-0.9233779907 + + + + +2.1615741253 +-0.9233779907 + + + + +2.1615741253 +-0.9233779907 + + + + +2.1556017399 +-0.8499024510 + + + + +2.1556017399 +-0.8499024510 + + + + +2.1615741253 +-0.9233779907 + + + + +2.1615741253 +-0.9233779907 + + + + +2.1615741253 +-0.9233779907 + + + + +2.1615741253 +-0.9233779907 + + + + +2.1615741253 +-0.9233779907 + + + + +2.1615741253 +-0.9233779907 + + + + +2.1615741253 +-0.9233779907 + + + + +2.1615741253 +-0.9233779907 + + + + +2.1615741253 +-0.9233779907 + + + + +2.1615741253 +-0.9233779907 + + + + +2.1556017399 +-0.8499024510 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.3028803468 +-1.5927866697 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.171674 +0.912555 +1.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-4.0771694183 +-0.7785987854 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-3.6638362408 +-1.2726640701 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-3.5838360786 +-2.4210319519 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-4.2905030251 +-2.4343850613 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.578906 +0.406389 +0.201871 +0.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + + + +-2.7333333492 +-0.4909635782 + + + + +-2.7333333492 +-0.4909635782 + + + + +-2.7408697605 +-0.4837570786 + + + + +-2.7333333492 +-0.4909635782 + + + + +-2.7333333492 +-0.4909635782 + + + + +-2.7474691868 +-0.4774465859 + + + + +-2.7919859886 +-0.4348782301 + + + + +-2.7919859886 +-0.4348782301 + + + + +-2.7919859886 +-0.4348782301 + + + + +-2.7919859886 +-0.4348782301 + + + + +-2.7919859886 +-0.4348782301 + + + + +-2.7333333492 +-0.4909635782 + + + + +-2.7919859886 +-0.4348782301 + + + + +-2.7919859886 +-0.4348782301 + + + + +-2.7919859886 +-0.4348782301 + + + + +-2.7919859886 +-0.4348782301 + + + + +-2.7919859886 +-0.4348782301 + + + + +-2.7333333492 +-0.4909635782 + + + + +-2.7919859886 +-0.4348782301 + + + + +-2.7919859886 +-0.4348782301 + + + + +-2.7919859886 +-0.4348782301 + + + + +-2.7919859886 +-0.4348782301 + + + + +-2.7919859886 +-0.4348782301 + + + + +-2.7333333492 +-0.4909635782 + + + + +-2.7333333492 +-0.4909635782 + + + + +-2.7919859886 +-0.4348782301 + + + + +-2.7919859886 +-0.4348782301 + + + + +-2.7919859886 +-0.4348782301 + + + + +-2.7919859886 +-0.4348782301 + + + + +-2.7919859886 +-0.4348782301 + + + + +-2.7919859886 +-0.4348782301 + + + + +-2.7919859886 +-0.4348782301 + + + + +-2.7919859886 +-0.4348782301 + + + + +-2.7919859886 +-0.4348782301 + + + + +-2.7919859886 +-0.4348782301 + + + + +-2.7333333492 +-0.4909635782 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.7866666317 +-0.5710822940 + + + + +-1.7866666317 +-0.5710822940 + + + + +-1.7872586250 +-0.4164351225 + + + + +-1.7866666317 +-0.5710822940 + + + + +-1.7866666317 +-0.5710822940 + + + + +-1.7963069677 +-0.2378384471 + + + + +-1.8266667128 +0.8116297722 + + + + +-1.8105027676 +0.7570095062 + + + + +-1.8105027676 +0.7570095062 + + + + +-1.8143010139 +0.6617646813 + + + + +-1.8143010139 +0.6617646813 + + + + +-1.7866666317 +-0.5710822940 + + + + +-1.8166667223 +0.6666666865 + + + + +-1.7666666508 +0.6499999762 + + + + +-1.8060452938 +0.6629146934 + + + + +-1.8500000238 +0.6833333373 + + + + +-1.7666666508 +0.6333333254 + + + + +-1.7866666317 +-0.5710822940 + + + + +-1.7999999523 +0.6000000238 + + + + +-1.7999999523 +0.6000000238 + + + + +-1.7999999523 +0.6000000238 + + + + +-1.7999999523 +0.6000000238 + + + + +-1.7999999523 +0.6000000238 + + + + +-1.7866666317 +-0.5710822940 + + + + +-1.7866666317 +-0.5710822940 + + + + +-1.8266667128 +0.8116297722 + + + + +-1.8105027676 +0.7570095062 + + + + +-1.8105027676 +0.7570095062 + + + + +-1.7333333492 +0.9333333373 + + + + +-1.7333333492 +0.9333333373 + + + + +-1.7333333492 +0.9333333373 + + + + +-1.4833333492 +1.0499999523 + + + + +-1.4500000477 +0.9833333492 + + + + +-1.4833333492 +1.0499999523 + + + + +-1.4833333492 +1.0499999523 + + + + +-1.7866666317 +-0.5710822940 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.8933333158 +-0.7446727753 + + + + +0.8933333158 +-0.7446727753 + + + + +0.8495197296 +-0.5422201157 + + + + +0.8933333158 +-0.7446727753 + + + + +0.9178228378 +-0.8069260120 + + + + +0.8669108748 +-0.3316275775 + + + + +0.6933333278 +1.1988700628 + + + + +0.7361638546 +1.1308968067 + + + + +0.7361638546 +1.1308968067 + + + + +0.7897545099 +0.9520872831 + + + + +0.7897545099 +0.9520872831 + + + + +0.8933333158 +-0.7446727753 + + + + +0.6999999881 +1.0000000000 + + + + +0.7166666389 +0.9666666389 + + + + +0.7005646229 +1.0072240829 + + + + +0.6833333373 +1.0666667223 + + + + +0.6999999881 +0.9833333492 + + + + +0.8933333158 +-0.7446727753 + + + + +0.6999999881 +0.8999999762 + + + + +0.6999999881 +0.8999999762 + + + + +0.6999999881 +0.8999999762 + + + + +0.6999999881 +0.8999999762 + + + + +0.6999999881 +0.8999999762 + + + + +0.9007470608 +-0.7898482084 + + + + +0.8933333158 +-0.7446727753 + + + + +0.6933333278 +1.1988700628 + + + + +0.7361638546 +1.1308968067 + + + + +0.7361638546 +1.1308968067 + + + + +0.7500000000 +1.2666666508 + + + + +0.7500000000 +1.2666666508 + + + + +0.7500000000 +1.2666666508 + + + + +0.6333333254 +1.3999999762 + + + + +0.6166666746 +1.2999999523 + + + + +0.6333333254 +1.3999999762 + + + + +0.6333333254 +1.3999999762 + + + + +0.8933333158 +-0.7446727753 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.7200000286 +-0.1170763299 + + + + +2.7200000286 +-0.1170763299 + + + + +2.7207970619 +-0.1070879474 + + + + +2.7200000286 +-0.1170763299 + + + + +2.7200000286 +-0.1170763299 + + + + +2.7214949131 +-0.0983414277 + + + + +2.7262024879 +-0.0393405259 + + + + +2.7262024879 +-0.0393405259 + + + + +2.7262024879 +-0.0393405259 + + + + +2.7262024879 +-0.0393405259 + + + + +2.7262024879 +-0.0393405259 + + + + +2.7200000286 +-0.1170763299 + + + + +2.7262024879 +-0.0393405259 + + + + +2.7262024879 +-0.0393405259 + + + + +2.7262024879 +-0.0393405259 + + + + +2.7262024879 +-0.0393405259 + + + + +2.7262024879 +-0.0393405259 + + + + +2.7200000286 +-0.1170763299 + + + + +2.7262024879 +-0.0393405259 + + + + +2.7262024879 +-0.0393405259 + + + + +2.7262024879 +-0.0393405259 + + + + +2.7262024879 +-0.0393405259 + + + + +2.7262024879 +-0.0393405259 + + + + +2.7200000286 +-0.1170763299 + + + + +2.7200000286 +-0.1170763299 + + + + +2.7262024879 +-0.0393405259 + + + + +2.7262024879 +-0.0393405259 + + + + +2.7262024879 +-0.0393405259 + + + + +2.7262024879 +-0.0393405259 + + + + +2.7262024879 +-0.0393405259 + + + + +2.7262024879 +-0.0393405259 + + + + +2.7262024879 +-0.0393405259 + + + + +2.7262024879 +-0.0393405259 + + + + +2.7262024879 +-0.0393405259 + + + + +2.7262024879 +-0.0393405259 + + + + +2.7200000286 +-0.1170763299 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.1466666460 +-0.7713789940 + + + + +1.1466666460 +-0.7713789940 + + + + +1.1835747957 +-0.8170285821 + + + + +1.1466666460 +-0.7713789940 + + + + +1.1466666460 +-0.7713789940 + + + + +1.2237889767 +-0.8854649067 + + + + +1.4666666985 +-1.2447500229 + + + + +1.4725708961 +-1.2024271488 + + + + +1.4725708961 +-1.2024271488 + + + + +1.4557096958 +-1.1484819651 + + + + +1.4557096958 +-1.1484819651 + + + + +1.1466666460 +-0.7713789940 + + + + +1.4725708961 +-1.2024271488 + + + + +1.4725708961 +-1.2024271488 + + + + +1.4632450342 +-1.2042343616 + + + + +1.4500000477 +-1.2000000477 + + + + +1.4500000477 +-1.1666666269 + + + + +1.1466666460 +-0.7713789940 + + + + +1.4333332777 +-1.1666666269 + + + + +1.4333332777 +-1.1666666269 + + + + +1.4333332777 +-1.1666666269 + + + + +1.4333332777 +-1.1666666269 + + + + +1.4333332777 +-1.1666666269 + + + + +1.1483458281 +-0.8069260120 + + + + +1.1483458281 +-0.8069260120 + + + + +1.4666666985 +-1.2447500229 + + + + +1.4725708961 +-1.2024271488 + + + + +1.4725708961 +-1.2024271488 + + + + +1.4500000477 +-1.3333333731 + + + + +1.4500000477 +-1.3333333731 + + + + +1.4500000477 +-1.3333333731 + + + + +1.4166666269 +-1.2833333015 + + + + +1.3833333254 +-1.2500000000 + + + + +1.4166666269 +-1.2833333015 + + + + +1.4166666269 +-1.2833333015 + + + + +1.1466666460 +-0.7713789940 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.6666666269 +-0.6244947314 + + + + +-1.6666666269 +-0.6244947314 + + + + +-1.6644808054 +-0.6701443195 + + + + +-1.6666666269 +-0.6244947314 + + + + +-1.6666666269 +-0.6244947314 + + + + +-1.6570262909 +-0.7257078886 + + + + +-1.6266666651 +-1.0444532633 + + + + +-1.6352199316 +-1.0316492319 + + + + +-1.6352199316 +-1.0316492319 + + + + +-1.6691569090 +-0.9179316759 + + + + +-1.6691569090 +-0.9179316759 + + + + +-1.6666666269 +-0.6244947314 + + + + +-1.6352199316 +-1.0316492319 + + + + +-1.6352199316 +-1.0316492319 + + + + +-1.6095663309 +-1.0310788155 + + + + +-1.5833333731 +-1.0166666508 + + + + +-1.6333333254 +-0.9499999881 + + + + +-1.6666666269 +-0.6244947314 + + + + +-1.6000000238 +-1.0000000000 + + + + +-1.6000000238 +-1.0000000000 + + + + +-1.6000000238 +-1.0000000000 + + + + +-1.6000000238 +-1.0000000000 + + + + +-1.6000000238 +-1.0000000000 + + + + +-1.6008538008 +-0.6703035831 + + + + +-1.6666666269 +-0.6244947314 + + + + +-1.6266666651 +-1.0444532633 + + + + +-1.6352199316 +-1.0316492319 + + + + +-1.6352199316 +-1.0316492319 + + + + +-1.6666666269 +-1.1166666746 + + + + +-1.6666666269 +-1.1166666746 + + + + +-1.6666666269 +-1.1166666746 + + + + +-1.6166666746 +-1.0666667223 + + + + +-1.6000000238 +-1.0333333015 + + + + +-1.6166666746 +-1.0666667223 + + + + +-1.6166666746 +-1.0666667223 + + + + +-1.6666666269 +-0.6244947314 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.6003491879 +-0.5813963413 + + + + +-2.6003491879 +-0.5813963413 + + + + +-2.6003491879 +-0.5813963413 + + + + +-2.6003491879 +-0.5813963413 + + + + +-2.6003491879 +-0.5813963413 + + + + +-2.6003491879 +-0.5813963413 + + + + +-2.6003491879 +-0.5813963413 + + + + +-2.6003491879 +-0.5813963413 + + + + +-2.6003491879 +-0.5813963413 + + + + +-2.6003491879 +-0.5813963413 + + + + +-2.6003491879 +-0.5813963413 + + + + +-2.6003491879 +-0.5813963413 + + + + +-2.6003491879 +-0.5813963413 + + + + +-2.6003491879 +-0.5813963413 + + + + +-2.6003491879 +-0.5813963413 + + + + +-2.6003491879 +-0.5813963413 + + + + +-2.6003491879 +-0.5813963413 + + + + +-2.6003491879 +-0.5813963413 + + + + +-2.6003491879 +-0.5813963413 + + + + +-2.6003491879 +-0.5813963413 + + + + +-2.6003491879 +-0.5813963413 + + + + +-2.6003491879 +-0.5813963413 + + + + +-2.6003491879 +-0.5813963413 + + + + +-2.6003491879 +-0.5813963413 + + + + +-2.6003491879 +-0.5813963413 + + + + +-2.6003491879 +-0.5813963413 + + + + +-2.6003491879 +-0.5813963413 + + + + +-2.6003491879 +-0.5813963413 + + + + +-2.6003491879 +-0.5813963413 + + + + +-2.6003491879 +-0.5813963413 + + + + +-2.6003491879 +-0.5813963413 + + + + +-2.6003491879 +-0.5813963413 + + + + +-2.6003491879 +-0.5813963413 + + + + +-2.6003491879 +-0.5813963413 + + + + +-2.6003491879 +-0.5813963413 + + + + +-2.6003491879 +-0.5813963413 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + + + +-2.7333333492 +-0.4909635782 + + + + +-2.7333333492 +-0.4909635782 + + + + +-2.7408697605 +-0.4837570786 + + + + +-2.7333333492 +-0.4909635782 + + + + +-2.7333333492 +-0.4909635782 + + + + +-2.7474691868 +-0.4774465859 + + + + +-2.7919859886 +-0.4348782301 + + + + +-2.7919859886 +-0.4348782301 + + + + +-2.7919859886 +-0.4348782301 + + + + +-2.7919859886 +-0.4348782301 + + + + +-2.7919859886 +-0.4348782301 + + + + +-2.7333333492 +-0.4909635782 + + + + +-2.7919859886 +-0.4348782301 + + + + +-2.7919859886 +-0.4348782301 + + + + +-2.7919859886 +-0.4348782301 + + + + +-2.7919859886 +-0.4348782301 + + + + +-2.7919859886 +-0.4348782301 + + + + +-2.7333333492 +-0.4909635782 + + + + +-2.7919859886 +-0.4348782301 + + + + +-2.7919859886 +-0.4348782301 + + + + +-2.7919859886 +-0.4348782301 + + + + +-2.7919859886 +-0.4348782301 + + + + +-2.7919859886 +-0.4348782301 + + + + +-2.7333333492 +-0.4909635782 + + + + +-2.7333333492 +-0.4909635782 + + + + +-2.7919859886 +-0.4348782301 + + + + +-2.7919859886 +-0.4348782301 + + + + +-2.7919859886 +-0.4348782301 + + + + +-2.7919859886 +-0.4348782301 + + + + +-2.7919859886 +-0.4348782301 + + + + +-2.7919859886 +-0.4348782301 + + + + +-2.7919859886 +-0.4348782301 + + + + +-2.7919859886 +-0.4348782301 + + + + +-2.7919859886 +-0.4348782301 + + + + +-2.7919859886 +-0.4348782301 + + + + +-2.7333333492 +-0.4909635782 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.7866666317 +-0.5710822940 + + + + +-1.7866666317 +-0.5710822940 + + + + +-1.7872586250 +-0.4164351225 + + + + +-1.7866666317 +-0.5710822940 + + + + +-1.7866666317 +-0.5710822940 + + + + +-1.7963069677 +-0.2378384471 + + + + +-1.8266667128 +0.8116297722 + + + + +-1.8105027676 +0.7570095062 + + + + +-1.8105027676 +0.7570095062 + + + + +-1.8143010139 +0.6617646813 + + + + +-1.8143010139 +0.6617646813 + + + + +-1.7866666317 +-0.5710822940 + + + + +-1.8166667223 +0.6666666865 + + + + +-1.7666666508 +0.6499999762 + + + + +-1.8060452938 +0.6629146934 + + + + +-1.8500000238 +0.6833333373 + + + + +-1.7666666508 +0.6333333254 + + + + +-1.7866666317 +-0.5710822940 + + + + +-1.7999999523 +0.6000000238 + + + + +-1.7999999523 +0.6000000238 + + + + +-1.7999999523 +0.6000000238 + + + + +-1.7999999523 +0.6000000238 + + + + +-1.7999999523 +0.6000000238 + + + + +-1.7866666317 +-0.5710822940 + + + + +-1.7866666317 +-0.5710822940 + + + + +-1.8266667128 +0.8116297722 + + + + +-1.8105027676 +0.7570095062 + + + + +-1.8105027676 +0.7570095062 + + + + +-1.7333333492 +0.9333333373 + + + + +-1.7333333492 +0.9333333373 + + + + +-1.7333333492 +0.9333333373 + + + + +-1.4833333492 +1.0499999523 + + + + +-1.4500000477 +0.9833333492 + + + + +-1.4833333492 +1.0499999523 + + + + +-1.4833333492 +1.0499999523 + + + + +-1.7866666317 +-0.5710822940 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.8933333158 +-0.7446727753 + + + + +0.8933333158 +-0.7446727753 + + + + +0.8495197296 +-0.5422201157 + + + + +0.8933333158 +-0.7446727753 + + + + +0.9178228378 +-0.8069260120 + + + + +0.8669108748 +-0.3316275775 + + + + +0.6933333278 +1.1988700628 + + + + +0.7361638546 +1.1308968067 + + + + +0.7361638546 +1.1308968067 + + + + +0.7897545099 +0.9520872831 + + + + +0.7897545099 +0.9520872831 + + + + +0.8933333158 +-0.7446727753 + + + + +0.6999999881 +1.0000000000 + + + + +0.7166666389 +0.9666666389 + + + + +0.7005646229 +1.0072240829 + + + + +0.6833333373 +1.0666667223 + + + + +0.6999999881 +0.9833333492 + + + + +0.8933333158 +-0.7446727753 + + + + +0.6999999881 +0.8999999762 + + + + +0.6999999881 +0.8999999762 + + + + +0.6999999881 +0.8999999762 + + + + +0.6999999881 +0.8999999762 + + + + +0.6999999881 +0.8999999762 + + + + +0.9007470608 +-0.7898482084 + + + + +0.8933333158 +-0.7446727753 + + + + +0.6933333278 +1.1988700628 + + + + +0.7361638546 +1.1308968067 + + + + +0.7361638546 +1.1308968067 + + + + +0.7500000000 +1.2666666508 + + + + +0.7500000000 +1.2666666508 + + + + +0.7500000000 +1.2666666508 + + + + +0.6333333254 +1.3999999762 + + + + +0.6166666746 +1.2999999523 + + + + +0.6333333254 +1.3999999762 + + + + +0.6333333254 +1.3999999762 + + + + +0.8933333158 +-0.7446727753 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.7200000286 +-0.1170763299 + + + + +2.7200000286 +-0.1170763299 + + + + +2.7207970619 +-0.1070879474 + + + + +2.7200000286 +-0.1170763299 + + + + +2.7200000286 +-0.1170763299 + + + + +2.7214949131 +-0.0983414277 + + + + +2.7262024879 +-0.0393405259 + + + + +2.7262024879 +-0.0393405259 + + + + +2.7262024879 +-0.0393405259 + + + + +2.7262024879 +-0.0393405259 + + + + +2.7262024879 +-0.0393405259 + + + + +2.7200000286 +-0.1170763299 + + + + +2.7262024879 +-0.0393405259 + + + + +2.7262024879 +-0.0393405259 + + + + +2.7262024879 +-0.0393405259 + + + + +2.7262024879 +-0.0393405259 + + + + +2.7262024879 +-0.0393405259 + + + + +2.7200000286 +-0.1170763299 + + + + +2.7262024879 +-0.0393405259 + + + + +2.7262024879 +-0.0393405259 + + + + +2.7262024879 +-0.0393405259 + + + + +2.7262024879 +-0.0393405259 + + + + +2.7262024879 +-0.0393405259 + + + + +2.7200000286 +-0.1170763299 + + + + +2.7200000286 +-0.1170763299 + + + + +2.7262024879 +-0.0393405259 + + + + +2.7262024879 +-0.0393405259 + + + + +2.7262024879 +-0.0393405259 + + + + +2.7262024879 +-0.0393405259 + + + + +2.7262024879 +-0.0393405259 + + + + +2.7262024879 +-0.0393405259 + + + + +2.7262024879 +-0.0393405259 + + + + +2.7262024879 +-0.0393405259 + + + + +2.7262024879 +-0.0393405259 + + + + +2.7262024879 +-0.0393405259 + + + + +2.7200000286 +-0.1170763299 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.1466666460 +-0.7713789940 + + + + +1.1466666460 +-0.7713789940 + + + + +1.1835747957 +-0.8170285821 + + + + +1.1466666460 +-0.7713789940 + + + + +1.1466666460 +-0.7713789940 + + + + +1.2237889767 +-0.8854649067 + + + + +1.4666666985 +-1.2447500229 + + + + +1.4725708961 +-1.2024271488 + + + + +1.4725708961 +-1.2024271488 + + + + +1.4557096958 +-1.1484819651 + + + + +1.4557096958 +-1.1484819651 + + + + +1.1466666460 +-0.7713789940 + + + + +1.4725708961 +-1.2024271488 + + + + +1.4725708961 +-1.2024271488 + + + + +1.4632450342 +-1.2042343616 + + + + +1.4500000477 +-1.2000000477 + + + + +1.4500000477 +-1.1666666269 + + + + +1.1466666460 +-0.7713789940 + + + + +1.4333332777 +-1.1666666269 + + + + +1.4333332777 +-1.1666666269 + + + + +1.4333332777 +-1.1666666269 + + + + +1.4333332777 +-1.1666666269 + + + + +1.4333332777 +-1.1666666269 + + + + +1.1483458281 +-0.8069260120 + + + + +1.1483458281 +-0.8069260120 + + + + +1.4666666985 +-1.2447500229 + + + + +1.4725708961 +-1.2024271488 + + + + +1.4725708961 +-1.2024271488 + + + + +1.4500000477 +-1.3333333731 + + + + +1.4500000477 +-1.3333333731 + + + + +1.4500000477 +-1.3333333731 + + + + +1.4166666269 +-1.2833333015 + + + + +1.3833333254 +-1.2500000000 + + + + +1.4166666269 +-1.2833333015 + + + + +1.4166666269 +-1.2833333015 + + + + +1.1466666460 +-0.7713789940 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.6666666269 +-0.6244947314 + + + + +-1.6666666269 +-0.6244947314 + + + + +-1.6644808054 +-0.6701443195 + + + + +-1.6666666269 +-0.6244947314 + + + + +-1.6666666269 +-0.6244947314 + + + + +-1.6570262909 +-0.7257078886 + + + + +-1.6266666651 +-1.0444532633 + + + + +-1.6352199316 +-1.0316492319 + + + + +-1.6352199316 +-1.0316492319 + + + + +-1.6691569090 +-0.9179316759 + + + + +-1.6691569090 +-0.9179316759 + + + + +-1.6666666269 +-0.6244947314 + + + + +-1.6352199316 +-1.0316492319 + + + + +-1.6352199316 +-1.0316492319 + + + + +-1.6095663309 +-1.0310788155 + + + + +-1.5833333731 +-1.0166666508 + + + + +-1.6333333254 +-0.9499999881 + + + + +-1.6666666269 +-0.6244947314 + + + + +-1.6000000238 +-1.0000000000 + + + + +-1.6000000238 +-1.0000000000 + + + + +-1.6000000238 +-1.0000000000 + + + + +-1.6000000238 +-1.0000000000 + + + + +-1.6000000238 +-1.0000000000 + + + + +-1.6008538008 +-0.6703035831 + + + + +-1.6666666269 +-0.6244947314 + + + + +-1.6266666651 +-1.0444532633 + + + + +-1.6352199316 +-1.0316492319 + + + + +-1.6352199316 +-1.0316492319 + + + + +-1.6666666269 +-1.1166666746 + + + + +-1.6666666269 +-1.1166666746 + + + + +-1.6666666269 +-1.1166666746 + + + + +-1.6166666746 +-1.0666667223 + + + + +-1.6000000238 +-1.0333333015 + + + + +-1.6166666746 +-1.0666667223 + + + + +-1.6166666746 +-1.0666667223 + + + + +-1.6666666269 +-0.6244947314 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.6003491879 +-0.5813963413 + + + + +-2.6003491879 +-0.5813963413 + + + + +-2.6003491879 +-0.5813963413 + + + + +-2.6003491879 +-0.5813963413 + + + + +-2.6003491879 +-0.5813963413 + + + + +-2.6003491879 +-0.5813963413 + + + + +-2.6003491879 +-0.5813963413 + + + + +-2.6003491879 +-0.5813963413 + + + + +-2.6003491879 +-0.5813963413 + + + + +-2.6003491879 +-0.5813963413 + + + + +-2.6003491879 +-0.5813963413 + + + + +-2.6003491879 +-0.5813963413 + + + + +-2.6003491879 +-0.5813963413 + + + + +-2.6003491879 +-0.5813963413 + + + + +-2.6003491879 +-0.5813963413 + + + + +-2.6003491879 +-0.5813963413 + + + + +-2.6003491879 +-0.5813963413 + + + + +-2.6003491879 +-0.5813963413 + + + + +-2.6003491879 +-0.5813963413 + + + + +-2.6003491879 +-0.5813963413 + + + + +-2.6003491879 +-0.5813963413 + + + + +-2.6003491879 +-0.5813963413 + + + + +-2.6003491879 +-0.5813963413 + + + + +-2.6003491879 +-0.5813963413 + + + + +-2.6003491879 +-0.5813963413 + + + + +-2.6003491879 +-0.5813963413 + + + + +-2.6003491879 +-0.5813963413 + + + + +-2.6003491879 +-0.5813963413 + + + + +-2.6003491879 +-0.5813963413 + + + + +-2.6003491879 +-0.5813963413 + + + + +-2.6003491879 +-0.5813963413 + + + + +-2.6003491879 +-0.5813963413 + + + + +-2.6003491879 +-0.5813963413 + + + + +-2.6003491879 +-0.5813963413 + + + + +-2.6003491879 +-0.5813963413 + + + + +-2.6003491879 +-0.5813963413 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + + + +2.7200000286 +-0.1170763299 + + + + +2.7200000286 +-0.1170763299 + + + + +2.7207970619 +-0.1070879474 + + + + +2.7200000286 +-0.1170763299 + + + + +2.7200000286 +-0.1170763299 + + + + +2.7214949131 +-0.0983414277 + + + + +2.7262024879 +-0.0393405259 + + + + +2.7262024879 +-0.0393405259 + + + + +2.7262024879 +-0.0393405259 + + + + +2.7262024879 +-0.0393405259 + + + + +2.7262024879 +-0.0393405259 + + + + +2.7200000286 +-0.1170763299 + + + + +2.7262024879 +-0.0393405259 + + + + +2.7262024879 +-0.0393405259 + + + + +2.7262024879 +-0.0393405259 + + + + +2.7262024879 +-0.0393405259 + + + + +2.7262024879 +-0.0393405259 + + + + +2.7200000286 +-0.1170763299 + + + + +2.7262024879 +-0.0393405259 + + + + +2.7262024879 +-0.0393405259 + + + + +2.7262024879 +-0.0393405259 + + + + +2.7262024879 +-0.0393405259 + + + + +2.7262024879 +-0.0393405259 + + + + +2.7200000286 +-0.1170763299 + + + + +2.7200000286 +-0.1170763299 + + + + +2.7262024879 +-0.0393405259 + + + + +2.7262024879 +-0.0393405259 + + + + +2.7262024879 +-0.0393405259 + + + + +2.7262024879 +-0.0393405259 + + + + +2.7262024879 +-0.0393405259 + + + + +2.7262024879 +-0.0393405259 + + + + +2.7262024879 +-0.0393405259 + + + + +2.7262024879 +-0.0393405259 + + + + +2.7262024879 +-0.0393405259 + + + + +2.7262024879 +-0.0393405259 + + + + +2.7200000286 +-0.1170763299 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.1466666460 +-0.7713789940 + + + + +1.1466666460 +-0.7713789940 + + + + +1.1835747957 +-0.8170285821 + + + + +1.1466666460 +-0.7713789940 + + + + +1.1466666460 +-0.7713789940 + + + + +1.2237889767 +-0.8854649067 + + + + +1.4666666985 +-1.2447500229 + + + + +1.4725708961 +-1.2024271488 + + + + +1.4725708961 +-1.2024271488 + + + + +1.4557096958 +-1.1484819651 + + + + +1.4557096958 +-1.1484819651 + + + + +1.1466666460 +-0.7713789940 + + + + +1.4725708961 +-1.2024271488 + + + + +1.4725708961 +-1.2024271488 + + + + +1.4632450342 +-1.2042343616 + + + + +1.4500000477 +-1.2000000477 + + + + +1.4500000477 +-1.1666666269 + + + + +1.1466666460 +-0.7713789940 + + + + +1.4333332777 +-1.1666666269 + + + + +1.4333332777 +-1.1666666269 + + + + +1.4333332777 +-1.1666666269 + + + + +1.4333332777 +-1.1666666269 + + + + +1.4333332777 +-1.1666666269 + + + + +1.1483458281 +-0.8069260120 + + + + +1.1483458281 +-0.8069260120 + + + + +1.4666666985 +-1.2447500229 + + + + +1.4725708961 +-1.2024271488 + + + + +1.4725708961 +-1.2024271488 + + + + +1.4500000477 +-1.3333333731 + + + + +1.4500000477 +-1.3333333731 + + + + +1.4500000477 +-1.3333333731 + + + + +1.4166666269 +-1.2833333015 + + + + +1.3833333254 +-1.2500000000 + + + + +1.4166666269 +-1.2833333015 + + + + +1.4166666269 +-1.2833333015 + + + + +1.1466666460 +-0.7713789940 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.6666666269 +-0.6244947314 + + + + +-1.6666666269 +-0.6244947314 + + + + +-1.6644808054 +-0.6701443195 + + + + +-1.6666666269 +-0.6244947314 + + + + +-1.6666666269 +-0.6244947314 + + + + +-1.6570262909 +-0.7257078886 + + + + +-1.6266666651 +-1.0444532633 + + + + +-1.6352199316 +-1.0316492319 + + + + +-1.6352199316 +-1.0316492319 + + + + +-1.6691569090 +-0.9179316759 + + + + +-1.6691569090 +-0.9179316759 + + + + +-1.6666666269 +-0.6244947314 + + + + +-1.6352199316 +-1.0316492319 + + + + +-1.6352199316 +-1.0316492319 + + + + +-1.6095663309 +-1.0310788155 + + + + +-1.5833333731 +-1.0166666508 + + + + +-1.6333333254 +-0.9499999881 + + + + +-1.6666666269 +-0.6244947314 + + + + +-1.6000000238 +-1.0000000000 + + + + +-1.6000000238 +-1.0000000000 + + + + +-1.6000000238 +-1.0000000000 + + + + +-1.6000000238 +-1.0000000000 + + + + +-1.6000000238 +-1.0000000000 + + + + +-1.6008538008 +-0.6703035831 + + + + +-1.6666666269 +-0.6244947314 + + + + +-1.6266666651 +-1.0444532633 + + + + +-1.6352199316 +-1.0316492319 + + + + +-1.6352199316 +-1.0316492319 + + + + +-1.6666666269 +-1.1166666746 + + + + +-1.6666666269 +-1.1166666746 + + + + +-1.6666666269 +-1.1166666746 + + + + +-1.6166666746 +-1.0666667223 + + + + +-1.6000000238 +-1.0333333015 + + + + +-1.6166666746 +-1.0666667223 + + + + +-1.6166666746 +-1.0666667223 + + + + +-1.6666666269 +-0.6244947314 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.6003491879 +-0.5813963413 + + + + +-2.6003491879 +-0.5813963413 + + + + +-2.6003491879 +-0.5813963413 + + + + +-2.6003491879 +-0.5813963413 + + + + +-2.6003491879 +-0.5813963413 + + + + +-2.6003491879 +-0.5813963413 + + + + +-2.6003491879 +-0.5813963413 + + + + +-2.6003491879 +-0.5813963413 + + + + +-2.6003491879 +-0.5813963413 + + + + +-2.6003491879 +-0.5813963413 + + + + +-2.6003491879 +-0.5813963413 + + + + +-2.6003491879 +-0.5813963413 + + + + +-2.6003491879 +-0.5813963413 + + + + +-2.6003491879 +-0.5813963413 + + + + +-2.6003491879 +-0.5813963413 + + + + +-2.6003491879 +-0.5813963413 + + + + +-2.6003491879 +-0.5813963413 + + + + +-2.6003491879 +-0.5813963413 + + + + +-2.6003491879 +-0.5813963413 + + + + +-2.6003491879 +-0.5813963413 + + + + +-2.6003491879 +-0.5813963413 + + + + +-2.6003491879 +-0.5813963413 + + + + +-2.6003491879 +-0.5813963413 + + + + +-2.6003491879 +-0.5813963413 + + + + +-2.6003491879 +-0.5813963413 + + + + +-2.6003491879 +-0.5813963413 + + + + +-2.6003491879 +-0.5813963413 + + + + +-2.6003491879 +-0.5813963413 + + + + +-2.6003491879 +-0.5813963413 + + + + +-2.6003491879 +-0.5813963413 + + + + +-2.6003491879 +-0.5813963413 + + + + +-2.6003491879 +-0.5813963413 + + + + +-2.6003491879 +-0.5813963413 + + + + +-2.6003491879 +-0.5813963413 + + + + +-2.6003491879 +-0.5813963413 + + + + +-2.6003491879 +-0.5813963413 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + + + +-2.7333333492 +-0.4909635782 + + + + +-2.7333333492 +-0.4909635782 + + + + +-2.7408697605 +-0.4837570786 + + + + +-2.7333333492 +-0.4909635782 + + + + +-2.7333333492 +-0.4909635782 + + + + +-2.7474691868 +-0.4774465859 + + + + +-2.7919859886 +-0.4348782301 + + + + +-2.7919859886 +-0.4348782301 + + + + +-2.7919859886 +-0.4348782301 + + + + +-2.7919859886 +-0.4348782301 + + + + +-2.7919859886 +-0.4348782301 + + + + +-2.7333333492 +-0.4909635782 + + + + +-2.7919859886 +-0.4348782301 + + + + +-2.7919859886 +-0.4348782301 + + + + +-2.7919859886 +-0.4348782301 + + + + +-2.7919859886 +-0.4348782301 + + + + +-2.7919859886 +-0.4348782301 + + + + +-2.7333333492 +-0.4909635782 + + + + +-2.7919859886 +-0.4348782301 + + + + +-2.7919859886 +-0.4348782301 + + + + +-2.7919859886 +-0.4348782301 + + + + +-2.7919859886 +-0.4348782301 + + + + +-2.7919859886 +-0.4348782301 + + + + +-2.7333333492 +-0.4909635782 + + + + +-2.7333333492 +-0.4909635782 + + + + +-2.7919859886 +-0.4348782301 + + + + +-2.7919859886 +-0.4348782301 + + + + +-2.7919859886 +-0.4348782301 + + + + +-2.7919859886 +-0.4348782301 + + + + +-2.7919859886 +-0.4348782301 + + + + +-2.7919859886 +-0.4348782301 + + + + +-2.7919859886 +-0.4348782301 + + + + +-2.7919859886 +-0.4348782301 + + + + +-2.7919859886 +-0.4348782301 + + + + +-2.7919859886 +-0.4348782301 + + + + +-2.7333333492 +-0.4909635782 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.7866666317 +-0.5710822940 + + + + +-1.7866666317 +-0.5710822940 + + + + +-1.7872586250 +-0.4164351225 + + + + +-1.7866666317 +-0.5710822940 + + + + +-1.7866666317 +-0.5710822940 + + + + +-1.7963069677 +-0.2378384471 + + + + +-1.8266667128 +0.8116297722 + + + + +-1.8105027676 +0.7570095062 + + + + +-1.8105027676 +0.7570095062 + + + + +-1.8143010139 +0.6617646813 + + + + +-1.8143010139 +0.6617646813 + + + + +-1.7866666317 +-0.5710822940 + + + + +-1.8166667223 +0.6666666865 + + + + +-1.7666666508 +0.6499999762 + + + + +-1.8060452938 +0.6629146934 + + + + +-1.8500000238 +0.6833333373 + + + + +-1.7666666508 +0.6333333254 + + + + +-1.7866666317 +-0.5710822940 + + + + +-1.7999999523 +0.6000000238 + + + + +-1.7999999523 +0.6000000238 + + + + +-1.7999999523 +0.6000000238 + + + + +-1.7999999523 +0.6000000238 + + + + +-1.7999999523 +0.6000000238 + + + + +-1.7866666317 +-0.5710822940 + + + + +-1.7866666317 +-0.5710822940 + + + + +-1.8266667128 +0.8116297722 + + + + +-1.8105027676 +0.7570095062 + + + + +-1.8105027676 +0.7570095062 + + + + +-1.7333333492 +0.9333333373 + + + + +-1.7333333492 +0.9333333373 + + + + +-1.7333333492 +0.9333333373 + + + + +-1.4833333492 +1.0499999523 + + + + +-1.4500000477 +0.9833333492 + + + + +-1.4833333492 +1.0499999523 + + + + +-1.4833333492 +1.0499999523 + + + + +-1.7866666317 +-0.5710822940 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.8933333158 +-0.7446727753 + + + + +0.8933333158 +-0.7446727753 + + + + +0.8495197296 +-0.5422201157 + + + + +0.8933333158 +-0.7446727753 + + + + +0.9178228378 +-0.8069260120 + + + + +0.8669108748 +-0.3316275775 + + + + +0.6933333278 +1.1988700628 + + + + +0.7361638546 +1.1308968067 + + + + +0.7361638546 +1.1308968067 + + + + +0.7897545099 +0.9520872831 + + + + +0.7897545099 +0.9520872831 + + + + +0.8933333158 +-0.7446727753 + + + + +0.6999999881 +1.0000000000 + + + + +0.7166666389 +0.9666666389 + + + + +0.7005646229 +1.0072240829 + + + + +0.6833333373 +1.0666667223 + + + + +0.6999999881 +0.9833333492 + + + + +0.8933333158 +-0.7446727753 + + + + +0.6999999881 +0.8999999762 + + + + +0.6999999881 +0.8999999762 + + + + +0.6999999881 +0.8999999762 + + + + +0.6999999881 +0.8999999762 + + + + +0.6999999881 +0.8999999762 + + + + +0.9007470608 +-0.7898482084 + + + + +0.8933333158 +-0.7446727753 + + + + +0.6933333278 +1.1988700628 + + + + +0.7361638546 +1.1308968067 + + + + +0.7361638546 +1.1308968067 + + + + +0.7500000000 +1.2666666508 + + + + +0.7500000000 +1.2666666508 + + + + +0.7500000000 +1.2666666508 + + + + +0.6333333254 +1.3999999762 + + + + +0.6166666746 +1.2999999523 + + + + +0.6333333254 +1.3999999762 + + + + +0.6333333254 +1.3999999762 + + + + +0.8933333158 +-0.7446727753 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.7200000286 +-0.1170763299 + + + + +2.7200000286 +-0.1170763299 + + + + +2.7207970619 +-0.1070879474 + + + + +2.7200000286 +-0.1170763299 + + + + +2.7200000286 +-0.1170763299 + + + + +2.7214949131 +-0.0983414277 + + + + +2.7262024879 +-0.0393405259 + + + + +2.7262024879 +-0.0393405259 + + + + +2.7262024879 +-0.0393405259 + + + + +2.7262024879 +-0.0393405259 + + + + +2.7262024879 +-0.0393405259 + + + + +2.7200000286 +-0.1170763299 + + + + +2.7262024879 +-0.0393405259 + + + + +2.7262024879 +-0.0393405259 + + + + +2.7262024879 +-0.0393405259 + + + + +2.7262024879 +-0.0393405259 + + + + +2.7262024879 +-0.0393405259 + + + + +2.7200000286 +-0.1170763299 + + + + +2.7262024879 +-0.0393405259 + + + + +2.7262024879 +-0.0393405259 + + + + +2.7262024879 +-0.0393405259 + + + + +2.7262024879 +-0.0393405259 + + + + +2.7262024879 +-0.0393405259 + + + + +2.7200000286 +-0.1170763299 + + + + +2.7200000286 +-0.1170763299 + + + + +2.7262024879 +-0.0393405259 + + + + +2.7262024879 +-0.0393405259 + + + + +2.7262024879 +-0.0393405259 + + + + +2.7262024879 +-0.0393405259 + + + + +2.7262024879 +-0.0393405259 + + + + +2.7262024879 +-0.0393405259 + + + + +2.7262024879 +-0.0393405259 + + + + +2.7262024879 +-0.0393405259 + + + + +2.7262024879 +-0.0393405259 + + + + +2.7262024879 +-0.0393405259 + + + + +2.7200000286 +-0.1170763299 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.0366999768 +-0.1237669885 + + + + +-0.0366999768 +-0.1237669885 + + + + +-0.0366999768 +-0.1162538752 + + + + +-0.0366999768 +-0.1237669885 + + + + +-0.0366999768 +-0.1237669885 + + + + +-0.0366999768 +-0.0999406427 + + + + +-0.0366999768 +-0.0641778558 + + + + +-0.0366999768 +-0.0641778558 + + + + +-0.0366999768 +-0.0641778558 + + + + +-0.0366999768 +-0.0641778558 + + + + +-0.0366999768 +-0.0641778558 + + + + +-0.0366999768 +-0.1237669885 + + + + +-0.0366999768 +-0.0641778558 + + + + +-0.0366999768 +-0.0641778558 + + + + +-0.0366999768 +-0.0641778558 + + + + +-0.0366999768 +-0.0641778558 + + + + +-0.0366999768 +-0.0641778558 + + + + +-0.0366999768 +-0.1237669885 + + + + +-0.0366999768 +-0.0641778558 + + + + +-0.0366999768 +-0.0641778558 + + + + +-0.0366999768 +-0.0641778558 + + + + +-0.0366999768 +-0.0641778558 + + + + +-0.0366999768 +-0.0641778558 + + + + +-0.0366999768 +-0.1237669885 + + + + +-0.0366999768 +-0.1237669885 + + + + +-0.0366999768 +-0.0641778558 + + + + +-0.0366999768 +-0.0641778558 + + + + +-0.0366999768 +-0.0641778558 + + + + +-0.0366999768 +-0.0641778558 + + + + +-0.0366999768 +-0.0641778558 + + + + +-0.0366999768 +-0.0641778558 + + + + +-0.0366999768 +-0.0641778558 + + + + +-0.0366999768 +-0.0641778558 + + + + +-0.0366999768 +-0.0641778558 + + + + +-0.0366999768 +-0.0641778558 + + + + +-0.0366999768 +-0.1237669885 + + + + + + + + + + + + + + + + + + +0.027074 +0.027074 +0.027074 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +3.2819395065 +1.3730245829 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +4.0031414032 +1.6801463366 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.027074 +0.027074 +0.027074 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +3.1054637432 +1.4720786810 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.8266658783 +1.7792004347 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.079487 +0.079487 +0.079487 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +3.4635150433 +1.3516469002 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +4.1847171783 +1.6587686539 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.027074 +0.027074 +0.027074 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +2.6077072620 +1.7376763821 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.3289093971 +2.0447981358 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.027074 +0.027074 +0.027074 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +3.2220647335 +1.4172016382 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.9432666302 +1.7243232727 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.079487 +0.079487 +0.079487 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +3.5025320053 +1.2703173161 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +4.2237339020 +1.5774389505 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.027074 +0.027074 +0.027074 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +3.3823318481 +1.3237297535 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +4.1035337448 +1.6308515072 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.027074 +0.027074 +0.027074 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +3.6627991199 +1.2035517693 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +4.3840012550 +1.5106734037 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.079487 +0.079487 +0.079487 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +2.5409293175 +1.7910888195 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.2621314526 +2.0982105732 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.027074 +0.027074 +0.027074 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +2.8881747723 +1.6041451693 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.6093769073 +1.9112669230 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.027074 +0.027074 +0.027074 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +2.2203950882 +1.9246200323 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.9415972233 +2.2317416668 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.079487 +0.079487 +0.079487 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +2.3539512157 +1.8845607042 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.0751531124 +2.1916823387 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.027074 +0.027074 +0.027074 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +1.8597941399 +2.0581512451 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.5809962749 +2.3652727604 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.027074 +0.027074 +0.027074 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +1.6327490807 +2.0848574638 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.3539512157 +2.3919789791 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.079487 +0.079487 +0.079487 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +1.3025325537 +2.1684346199 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.0237345695 +2.4755563736 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.027074 +0.027074 +0.027074 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +1.1850425005 +2.2325675488 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.9062445164 +2.5396893024 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.027074 +0.027074 +0.027074 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +2.3065378666 +1.9119025469 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.0277397633 +2.2190241814 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.079487 +0.079487 +0.079487 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +2.0715579987 +1.9867243767 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.7927598953 +2.2938461304 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.027074 +0.027074 +0.027074 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +1.7618116140 +2.1684346199 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.4830136299 +2.4755563736 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.027074 +0.027074 +0.027074 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +1.9647488594 +2.0187909603 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.6859507561 +2.3259124756 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.079487 +0.079487 +0.079487 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +1.7831733227 +2.0722351074 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.5043754578 +2.3793566227 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.027074 +0.027074 +0.027074 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +2.4240279198 +1.8370807171 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.1452298164 +2.1442022324 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.027074 +0.027074 +0.027074 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +2.6803696156 +1.7088146210 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.4015717506 +2.0159363747 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.079487 +0.079487 +0.079487 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +2.0929195881 +1.9439690113 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.8141217232 +2.2510907650 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.027074 +0.027074 +0.027074 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +2.8085405827 +1.6446815729 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.5297424793 +1.9518033266 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.027074 +0.027074 +0.027074 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +2.9473922253 +1.5484820604 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.6685943604 +1.8556038141 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.079487 +0.079487 +0.079487 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +3.1930532455 +1.4415937662 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.9142551422 +1.7487154007 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.027074 +0.027074 +0.027074 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +3.5348422527 +1.3133276701 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +4.2560443878 +1.6204494238 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.027074 +0.027074 +0.027074 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +3.1396486759 +1.5484820604 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.8608505726 +1.8556038141 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.079487 +0.079487 +0.079487 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +2.6696887016 +1.8477694988 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.3908908367 +2.1548912525 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.027074 +0.027074 +0.027074 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +3.2998623848 +1.4629714489 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +4.0210642815 +1.7700930834 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.027074 +0.027074 +0.027074 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +3.6202895641 +1.2919499874 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +4.3414916992 +1.5990717411 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.079487 +0.079487 +0.079487 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +3.3853094578 +1.3667719364 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +4.1065115929 +1.6738935709 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.027074 +0.027074 +0.027074 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +3.6523323059 +1.2491947412 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +4.3735342026 +1.5563163757 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.027074 +0.027074 +0.027074 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +3.7698223591 +1.2171281576 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +4.4910240173 +1.5242497921 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.079487 +0.079487 +0.079487 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +3.8339076042 +1.1636840105 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +4.5551095009 +1.4708056450 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.027074 +0.027074 +0.027074 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +2.3919851780 +1.9225913286 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.1131870747 +2.2297129631 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.027074 +0.027074 +0.027074 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +2.9549527168 +1.6442046165 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.6761548519 +1.9513262510 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.079487 +0.079487 +0.079487 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +2.3539512157 +2.0180919170 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.0751531124 +2.3252134323 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.027074 +0.027074 +0.027074 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +2.5409293175 +1.8979138136 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.2621314526 +2.2050354481 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.027074 +0.027074 +0.027074 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +2.8481080532 +1.7109701633 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.5693099499 +2.0180919170 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.079487 +0.079487 +0.079487 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +1.5926823616 +2.1382699013 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.3138842583 +2.4453914165 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.027074 +0.027074 +0.027074 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +1.3923484087 +2.1649761200 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.1135504246 +2.4720976353 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.027074 +0.027074 +0.027074 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +1.2855037451 +2.2183885574 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.0067057610 +2.5255103111 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.079487 +0.079487 +0.079487 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +2.7145521641 +1.8578543663 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.4357540607 +2.1649761200 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.027074 +0.027074 +0.027074 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +2.7279076576 +1.7510294914 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.4491097927 +2.0581512451 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.027074 +0.027074 +0.027074 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +2.0200612545 +2.0314450264 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.7412633896 +2.3385665417 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.079487 +0.079487 +0.079487 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +3.0217306614 +1.5507327318 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.7429327965 +1.8578543663 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.027074 +0.027074 +0.027074 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +3.0885086060 +1.4706140757 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.8097107410 +1.7777357101 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.027074 +0.027074 +0.027074 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +2.8481080532 +1.6575577259 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.5693099499 +1.9646793604 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.079487 +0.079487 +0.079487 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +3.2487757206 +1.4973202944 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.9699778557 +1.8044419289 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.027074 +0.027074 +0.027074 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +3.0350863934 +1.6442046165 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.7562882900 +1.9513262510 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.027074 +0.027074 +0.027074 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +3.2220647335 +1.4172016382 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.9432666302 +1.7243232727 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.079487 +0.079487 +0.079487 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +3.4357540607 +1.3370828629 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +4.1569561958 +1.6442046165 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.027074 +0.027074 +0.027074 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +2.5542850494 +1.8712074757 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.2754869461 +2.1783292294 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.027074 +0.027074 +0.027074 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +2.7412633896 +1.7376763821 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.4624652863 +2.0447981358 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.027074 +0.027074 +0.027074 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +2.5776293278 +2.0163204670 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.2988314629 +2.3234422207 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.079487 +0.079487 +0.079487 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +1.4991931915 +2.1382699013 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.2203950882 +2.4453914165 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.027074 +0.027074 +0.027074 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +2.7279076576 +1.7510294914 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.4491097927 +2.0581512451 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.027074 +0.027074 +0.027074 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +2.4974958897 +2.0296735764 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.2186977863 +2.3367953300 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.027074 +0.027074 +0.027074 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +2.7412633896 +1.6709108353 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.4624652863 +1.9780324697 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.079487 +0.079487 +0.079487 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +3.0484418869 +1.4973202944 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.7696440220 +1.8044419289 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.027074 +0.027074 +0.027074 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +1.0684474707 +2.2700297832 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.7896493673 +2.5771512985 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.079487 +0.079487 +0.079487 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +2.6577630043 +1.9094955921 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.3789649010 +2.2166171074 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.027074 +0.027074 +0.027074 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +1.2420700788 +2.2032639980 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.9632720947 +2.5103857517 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.079487 +0.079487 +0.079487 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +2.2036728859 +2.0296735764 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.9248747826 +2.3367953300 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.027074 +0.027074 +0.027074 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +1.9766277075 +2.0964391232 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.6978297234 +2.4035608768 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.027074 +0.027074 +0.027074 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +1.7629382610 +2.1364984512 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.4841401577 +2.4436202049 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.079487 +0.079487 +0.079487 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +2.3105175495 +2.0563797951 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.0317194462 +2.3635015488 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.027074 +0.027074 +0.027074 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +2.4974958897 +1.9228487015 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.2186977863 +2.2299702168 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.027074 +0.027074 +0.027074 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +2.1101837158 +2.0563797951 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.8313856125 +2.3635015488 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.079487 +0.079487 +0.079487 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +2.8046743870 +1.7893174887 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.5258765221 +2.0964391232 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.027074 +0.027074 +0.027074 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +1.1244367361 +2.2032639980 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.8456387520 +2.5103857517 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.027074 +0.027074 +0.027074 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +1.2179259062 +2.1765577793 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.9391279221 +2.4836795330 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.079487 +0.079487 +0.079487 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +0.9908807874 +2.2299702168 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.7120828629 +2.5370919704 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.027074 +0.027074 +0.027074 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +0.8439692855 +2.2566766739 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.5651712418 +2.5637981892 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.027074 +0.027074 +0.027074 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +0.7104133368 +2.2833828926 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.4316153526 +2.5905044079 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.027074 +0.027074 +0.027074 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +0.5492225885 +2.3185648918 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.2704246044 +2.6256864071 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.027074 +0.027074 +0.027074 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +0.4040785432 +2.3441815376 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.1252804995 +2.6513030529 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.027074 +0.027074 +0.027074 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-1.0388243198 +2.3014872074 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.3176223338 +2.6086087227 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.027074 +0.027074 +0.027074 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-0.8253771663 +2.3185648918 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.1041751578 +2.6256864071 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.027074 +0.027074 +0.027074 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-0.5180132389 +2.3356428146 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.2031887770 +2.6427643299 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.027074 +0.027074 +0.027074 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-0.2960281968 +2.3441815376 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.4251738191 +2.6513030529 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.027074 +0.027074 +0.027074 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-0.0313536935 +2.3441815376 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.6898483038 +2.6513030529 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.027074 +0.027074 +0.027074 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +0.2162450254 +2.3271038532 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.9374470711 +2.6342253685 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.079487 +0.079487 +0.079487 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-1.2662143707 +2.2700297832 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.5450123549 +2.5771512985 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.027074 +0.027074 +0.027074 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-1.5333261490 +2.2299702168 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.8121241927 +2.5370919704 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.027074 +0.027074 +0.027074 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-1.6935932636 +2.2032639980 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.2662143707 +2.7640950680 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.079487 +0.079487 +0.079487 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-1.8538603783 +2.1632046700 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.4264814854 +2.7240355015 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.079487 +0.079487 +0.079487 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-1.5731762648 +2.2100169659 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.1457973719 +2.7708477974 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.079487 +0.079487 +0.079487 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-1.4621837139 +2.2270946503 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.9323501587 +2.7196142673 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.027074 +0.027074 +0.027074 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-2.0141274929 +2.1364984512 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.5867486000 +2.6973292828 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.027074 +0.027074 +0.027074 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-2.1877503395 +2.0964391232 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.7603713274 +2.6572699547 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.079487 +0.079487 +0.079487 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-2.3346617222 +2.0697329044 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.9072828293 +2.6305637360 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.027074 +0.027074 +0.027074 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-2.2945950031 +2.0830860138 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.8672159910 +2.6439168453 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.027074 +0.027074 +0.027074 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-2.0675499439 +2.1364984512 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.6401709318 +2.6973292828 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.079487 +0.079487 +0.079487 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-2.3747284412 +2.0830860138 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.9874163866 +2.6706230640 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.027074 +0.027074 +0.027074 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-2.5216400623 +2.0697329044 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.1343278885 +2.6305637360 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.027074 +0.027074 +0.027074 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-2.6952626705 +2.0430266857 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.3480174541 +2.6172106266 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-2.5790157318 +0.5262898803 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.6878957748 +1.3507499695 + + + + +-1.6878957748 +1.3507499695 + + + + +-1.7043318748 +1.3775357008 + + + + +-1.6878957748 +1.3507499695 + + + + +-1.6878957748 +1.3507499695 + + + + +-1.7691847086 +1.4357011318 + + + + +-1.8799999952 +1.5594042540 + + + + +-1.8371694088 +1.5448433161 + + + + +-1.8371694088 +1.5448433161 + + + + +-1.8399146795 +1.4729601145 + + + + +-1.8399146795 +1.4729601145 + + + + +-1.6878957748 +1.3507499695 + + + + +-1.8833333254 +1.4833333492 + + + + +-1.9666666985 +1.3999999762 + + + + +-1.9411841631 +1.4303750992 + + + + +-1.8833333254 +1.4833333492 + + + + +-1.8500000238 +1.4500000477 + + + + +-1.6878957748 +1.3507499695 + + + + +-1.8166667223 +1.3833333254 + + + + +-1.8166667223 +1.3833333254 + + + + +-1.8166667223 +1.3833333254 + + + + +-1.8166667223 +1.3833333254 + + + + +-1.8166667223 +1.3833333254 + + + + +-1.6878957748 +1.3507499695 + + + + +-1.6878957748 +1.3507499695 + + + + +-1.8799999952 +1.5594042540 + + + + +-1.8371694088 +1.5448433161 + + + + +-1.8371694088 +1.5448433161 + + + + +-1.7000000477 +1.6000000238 + + + + +-1.7000000477 +1.6000000238 + + + + +-1.7000000477 +1.6000000238 + + + + +-1.7000000477 +1.6000000238 + + + + +-1.7000000477 +1.6000000238 + + + + +-1.7000000477 +1.6000000238 + + + + +-1.7000000477 +1.6000000238 + + + + +-1.6878957748 +1.3507499695 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.4324476719 +0.7532928586 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + + + +-2.4878957272 +1.5643998384 + + + + +-2.4878957272 +1.5643998384 + + + + +-2.4887156487 +1.5828398466 + + + + +-2.4878957272 +1.5643998384 + + + + +-2.4878957272 +1.5643998384 + + + + +-2.4904956818 +1.6228785515 + + + + +-2.4943978786 +1.7106536627 + + + + +-2.4943978786 +1.7106536627 + + + + +-2.4943978786 +1.7106536627 + + + + +-2.4943978786 +1.7106536627 + + + + +-2.4943978786 +1.7106536627 + + + + +-2.4878957272 +1.5643998384 + + + + +-2.4943978786 +1.7106536627 + + + + +-2.4943978786 +1.7106536627 + + + + +-2.4943978786 +1.7106536627 + + + + +-2.4943978786 +1.7106536627 + + + + +-2.4943978786 +1.7106536627 + + + + +-2.4878957272 +1.5643998384 + + + + +-2.4943978786 +1.7106536627 + + + + +-2.4943978786 +1.7106536627 + + + + +-2.4943978786 +1.7106536627 + + + + +-2.4943978786 +1.7106536627 + + + + +-2.4943978786 +1.7106536627 + + + + +-2.4878957272 +1.5643998384 + + + + +-2.4878957272 +1.5643998384 + + + + +-2.4943978786 +1.7106536627 + + + + +-2.4943978786 +1.7106536627 + + + + +-2.4943978786 +1.7106536627 + + + + +-2.4943978786 +1.7106536627 + + + + +-2.4943978786 +1.7106536627 + + + + +-2.4943978786 +1.7106536627 + + + + +-2.4943978786 +1.7106536627 + + + + +-2.4943978786 +1.7106536627 + + + + +-2.4943978786 +1.7106536627 + + + + +-2.4943978786 +1.7106536627 + + + + +-2.4878957272 +1.5643998384 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-3.7511916161 +0.6464679241 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-3.6710581779 +-0.4084282219 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-3.2303235531 +-1.1695557833 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.8563668728 +-2.4648079872 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + + + +-2.8487684727 +-0.5133312941 + + + + +-2.8487684727 +-0.5133312941 + + + + +-2.8551249504 +-0.5121405125 + + + + +-2.8487684727 +-0.5133312941 + + + + +-2.8487684727 +-0.5133312941 + + + + +-2.8658621311 +-0.5101290941 + + + + +-2.8982374668 +-0.5040640831 + + + + +-2.8982374668 +-0.5040640831 + + + + +-2.8982374668 +-0.5040640831 + + + + +-2.8982374668 +-0.5040640831 + + + + +-2.8982374668 +-0.5040640831 + + + + +-2.8487684727 +-0.5133312941 + + + + +-2.8982374668 +-0.5040640831 + + + + +-2.8982374668 +-0.5040640831 + + + + +-2.8982374668 +-0.5040640831 + + + + +-2.8982374668 +-0.5040640831 + + + + +-2.8982374668 +-0.5040640831 + + + + +-2.8487684727 +-0.5133312941 + + + + +-2.8982374668 +-0.5040640831 + + + + +-2.8982374668 +-0.5040640831 + + + + +-2.8982374668 +-0.5040640831 + + + + +-2.8982374668 +-0.5040640831 + + + + +-2.8982374668 +-0.5040640831 + + + + +-2.8487684727 +-0.5133312941 + + + + +-2.8487684727 +-0.5133312941 + + + + +-2.8982374668 +-0.5040640831 + + + + +-2.8982374668 +-0.5040640831 + + + + +-2.8982374668 +-0.5040640831 + + + + +-2.8982374668 +-0.5040640831 + + + + +-2.8982374668 +-0.5040640831 + + + + +-2.8982374668 +-0.5040640831 + + + + +-2.8982374668 +-0.5040640831 + + + + +-2.8982374668 +-0.5040640831 + + + + +-2.8982374668 +-0.5040640831 + + + + +-2.8982374668 +-0.5040640831 + + + + +-2.8487684727 +-0.5133312941 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.6780107021 +-0.7524204850 + + + + +-2.6780107021 +-0.7524204850 + + + + +-2.6771125793 +-0.7638802528 + + + + +-2.6780107021 +-0.7524204850 + + + + +-2.6780107021 +-0.7524204850 + + + + +-2.6755952835 +-0.7832382321 + + + + +-2.6710207462 +-0.8416074514 + + + + +-2.6710207462 +-0.8416074514 + + + + +-2.6710207462 +-0.8416074514 + + + + +-2.6710207462 +-0.8416074514 + + + + +-2.6710207462 +-0.8416074514 + + + + +-2.6780107021 +-0.7524204850 + + + + +-2.6710207462 +-0.8416074514 + + + + +-2.6710207462 +-0.8416074514 + + + + +-2.6710207462 +-0.8416074514 + + + + +-2.6710207462 +-0.8416074514 + + + + +-2.6710207462 +-0.8416074514 + + + + +-2.6780107021 +-0.7524204850 + + + + +-2.6710207462 +-0.8416074514 + + + + +-2.6710207462 +-0.8416074514 + + + + +-2.6710207462 +-0.8416074514 + + + + +-2.6710207462 +-0.8416074514 + + + + +-2.6710207462 +-0.8416074514 + + + + +-2.6780107021 +-0.7524204850 + + + + +-2.6780107021 +-0.7524204850 + + + + +-2.6710207462 +-0.8416074514 + + + + +-2.6710207462 +-0.8416074514 + + + + +-2.6710207462 +-0.8416074514 + + + + +-2.6710207462 +-0.8416074514 + + + + +-2.6710207462 +-0.8416074514 + + + + +-2.6710207462 +-0.8416074514 + + + + +-2.6710207462 +-0.8416074514 + + + + +-2.6710207462 +-0.8416074514 + + + + +-2.6710207462 +-0.8416074514 + + + + +-2.6710207462 +-0.8416074514 + + + + +-2.6780107021 +-0.7524204850 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.5091214180 +-0.6888436675 + + + + +-2.5091214180 +-0.6888436675 + + + + +-2.5091214180 +-0.6888436675 + + + + +-2.5091214180 +-0.6888436675 + + + + +-2.5091214180 +-0.6888436675 + + + + +-2.5091214180 +-0.6888436675 + + + + +-2.5091214180 +-0.6888436675 + + + + +-2.5091214180 +-0.6888436675 + + + + +-2.5091214180 +-0.6888436675 + + + + +-2.5091214180 +-0.6888436675 + + + + +-2.5091214180 +-0.6888436675 + + + + +-2.5091214180 +-0.6888436675 + + + + +-2.5091214180 +-0.6888436675 + + + + +-2.5091214180 +-0.6888436675 + + + + +-2.5091214180 +-0.6888436675 + + + + +-2.5091214180 +-0.6888436675 + + + + +-2.5091214180 +-0.6888436675 + + + + +-2.5091214180 +-0.6888436675 + + + + +-2.5091214180 +-0.6888436675 + + + + +-2.5091214180 +-0.6888436675 + + + + +-2.5091214180 +-0.6888436675 + + + + +-2.5091214180 +-0.6888436675 + + + + +-2.5091214180 +-0.6888436675 + + + + +-2.5091214180 +-0.6888436675 + + + + +-2.5091214180 +-0.6888436675 + + + + +-2.5091214180 +-0.6888436675 + + + + +-2.5091214180 +-0.6888436675 + + + + +-2.5091214180 +-0.6888436675 + + + + +-2.5091214180 +-0.6888436675 + + + + +-2.5091214180 +-0.6888436675 + + + + +-2.5091214180 +-0.6888436675 + + + + +-2.5091214180 +-0.6888436675 + + + + +-2.5091214180 +-0.6888436675 + + + + +-2.5091214180 +-0.6888436675 + + + + +-2.5091214180 +-0.6888436675 + + + + +-2.5091214180 +-0.6888436675 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.9438956976 +-1.2407045364 + + + + +-1.9438956976 +-1.2407045364 + + + + +-1.8121780157 +-1.2931040525 + + + + +-1.9438956976 +-1.2407045364 + + + + +-1.9438956976 +-1.2407045364 + + + + +-1.5896786451 +-1.3816179037 + + + + +-0.9187863469 +-1.6485099792 + + + + +-0.9187863469 +-1.6485099792 + + + + +-0.9187863469 +-1.6485099792 + + + + +-1.0971184969 +-1.6095825434 + + + + +-1.0971184969 +-1.6095825434 + + + + +-1.9438956976 +-1.2407045364 + + + + +-1.0333333015 +-1.6499999762 + + + + +-0.9833333492 +-1.7000000477 + + + + +-0.9766091704 +-1.6721537113 + + + + +-1.0000000000 +-1.6166666746 + + + + +-1.1333333254 +-1.5666667223 + + + + +-1.9438956976 +-1.2407045364 + + + + +-1.1499999762 +-1.5833333731 + + + + +-1.1499999762 +-1.5833333731 + + + + +-1.1499999762 +-1.5833333731 + + + + +-1.1499999762 +-1.5833333731 + + + + +-1.1499999762 +-1.5833333731 + + + + +-1.9438956976 +-1.2407045364 + + + + +-1.9438956976 +-1.2407045364 + + + + +-0.9187863469 +-1.6485099792 + + + + +-0.9187863469 +-1.6485099792 + + + + +-0.9187863469 +-1.6485099792 + + + + +-0.6000000238 +-1.7333333492 + + + + +-0.6000000238 +-1.7333333492 + + + + +-0.6000000238 +-1.7333333492 + + + + +-0.6000000238 +-1.7333333492 + + + + +-0.6000000238 +-1.7333333492 + + + + +-0.6000000238 +-1.7333333492 + + + + +-0.6000000238 +-1.7333333492 + + + + +-1.9438956976 +-1.2407045364 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +2.8865380287 +-0.0345409662 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.1974375248 +0.1167776361 + + + + +3.1974375248 +0.1167776361 + + + + +3.2095708847 +0.1246614233 + + + + +3.1974375248 +0.1167776361 + + + + +3.1974375248 +0.1167776361 + + + + +3.2359158993 +0.1417795122 + + + + +3.2936708927 +0.1793067455 + + + + +3.2936708927 +0.1793067455 + + + + +3.2936708927 +0.1793067455 + + + + +3.2572038174 +0.1323529482 + + + + +3.2572038174 +0.1323529482 + + + + +3.1974375248 +0.1167776361 + + + + +3.2936708927 +0.1793067455 + + + + +3.2936708927 +0.1793067455 + + + + +3.3183498383 +0.1768941432 + + + + +3.3499999046 +0.1666666716 + + + + +3.3333332539 +0.1333333403 + + + + +3.1974375248 +0.1167776361 + + + + +3.3333332539 +0.1333333403 + + + + +3.3333332539 +0.1333333403 + + + + +3.3333332539 +0.1333333403 + + + + +3.3333332539 +0.1333333403 + + + + +3.3333332539 +0.1333333403 + + + + +3.1974375248 +0.1167776361 + + + + +3.1974375248 +0.1167776361 + + + + +3.2936708927 +0.1793067455 + + + + +3.2936708927 +0.1793067455 + + + + +3.2936708927 +0.1793067455 + + + + +3.2936708927 +0.1793067455 + + + + +3.2936708927 +0.1793067455 + + + + +3.2936708927 +0.1793067455 + + + + +3.2936708927 +0.1793067455 + + + + +3.2936708927 +0.1793067455 + + + + +3.2936708927 +0.1793067455 + + + + +3.2936708927 +0.1793067455 + + + + +3.1974375248 +0.1167776361 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +3.1135830879 +-0.1814252436 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.5707709789 +-0.5459302068 + + + + +3.5707709789 +-0.5459302068 + + + + +3.5871427059 +-0.5747265220 + + + + +3.5707709789 +-0.5459302068 + + + + +3.5707709789 +-0.5459302068 + + + + +3.6226909161 +-0.6372520328 + + + + +3.7006216049 +-0.7743239999 + + + + +3.7006216049 +-0.7743239999 + + + + +3.7006216049 +-0.7743239999 + + + + +3.7006216049 +-0.7743239999 + + + + +3.7006216049 +-0.7743239999 + + + + +3.5707709789 +-0.5459302068 + + + + +3.7006216049 +-0.7743239999 + + + + +3.7006216049 +-0.7743239999 + + + + +3.6934783459 +-0.7436147928 + + + + +3.6833333969 +-0.6999999881 + + + + +3.6833333969 +-0.6999999881 + + + + +3.5707709789 +-0.5459302068 + + + + +3.6833333969 +-0.6999999881 + + + + +3.6833333969 +-0.6999999881 + + + + +3.6833333969 +-0.6999999881 + + + + +3.6833333969 +-0.6999999881 + + + + +3.6833333969 +-0.6999999881 + + + + +3.5707709789 +-0.5459302068 + + + + +3.5707709789 +-0.5459302068 + + + + +3.7006216049 +-0.7743239999 + + + + +3.7006216049 +-0.7743239999 + + + + +3.7006216049 +-0.7743239999 + + + + +3.7006216049 +-0.7743239999 + + + + +3.7006216049 +-0.7743239999 + + + + +3.7006216049 +-0.7743239999 + + + + +3.7006216049 +-0.7743239999 + + + + +3.7006216049 +-0.7743239999 + + + + +3.7006216049 +-0.7743239999 + + + + +3.7006216049 +-0.7743239999 + + + + +3.5707709789 +-0.5459302068 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + + + +-3.3517317772 +1.6732225418 + + + + +-3.3517317772 +1.6732225418 + + + + +-3.3543884754 +1.6914544106 + + + + +-3.3517317772 +1.6732225418 + + + + +-3.3517317772 +1.6732225418 + + + + +-3.3601565361 +1.7310411930 + + + + +-3.3728020191 +1.8178257942 + + + + +-3.3728020191 +1.8178257942 + + + + +-3.3728020191 +1.8178257942 + + + + +-3.3728020191 +1.8178257942 + + + + +-3.3728020191 +1.8178257942 + + + + +-3.3517317772 +1.6732225418 + + + + +-3.3728020191 +1.8178257942 + + + + +-3.3728020191 +1.8178257942 + + + + +-3.3728020191 +1.8178257942 + + + + +-3.3728020191 +1.8178257942 + + + + +-3.3728020191 +1.8178257942 + + + + +-3.3517317772 +1.6732225418 + + + + +-3.3728020191 +1.8178257942 + + + + +-3.3728020191 +1.8178257942 + + + + +-3.3728020191 +1.8178257942 + + + + +-3.3728020191 +1.8178257942 + + + + +-3.3728020191 +1.8178257942 + + + + +-3.3517317772 +1.6732225418 + + + + +-3.3517317772 +1.6732225418 + + + + +-3.3728020191 +1.8178257942 + + + + +-3.3728020191 +1.8178257942 + + + + +-3.3728020191 +1.8178257942 + + + + +-3.3728020191 +1.8178257942 + + + + +-3.3728020191 +1.8178257942 + + + + +-3.3728020191 +1.8178257942 + + + + +-3.3728020191 +1.8178257942 + + + + +-3.3728020191 +1.8178257942 + + + + +-3.3728020191 +1.8178257942 + + + + +-3.3728020191 +1.8178257942 + + + + +-3.3517317772 +1.6732225418 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-4.1610450745 +1.0777242184 + + + + +-4.1610450745 +1.0777242184 + + + + +-4.1614794731 +1.0870487690 + + + + +-4.1610450745 +1.0777242184 + + + + +-4.1610450745 +1.0777242184 + + + + +-4.1624226570 +1.1072950363 + + + + +-4.1644902229 +1.1516801119 + + + + +-4.1644902229 +1.1516801119 + + + + +-4.1644902229 +1.1516801119 + + + + +-4.1644902229 +1.1516801119 + + + + +-4.1644902229 +1.1516801119 + + + + +-4.1610450745 +1.0777242184 + + + + +-4.1644902229 +1.1516801119 + + + + +-4.1644902229 +1.1516801119 + + + + +-4.1644902229 +1.1516801119 + + + + +-4.1644902229 +1.1516801119 + + + + +-4.1644902229 +1.1516801119 + + + + +-4.1610450745 +1.0777242184 + + + + +-4.1644902229 +1.1516801119 + + + + +-4.1644902229 +1.1516801119 + + + + +-4.1644902229 +1.1516801119 + + + + +-4.1644902229 +1.1516801119 + + + + +-4.1644902229 +1.1516801119 + + + + +-4.1610450745 +1.0777242184 + + + + +-4.1610450745 +1.0777242184 + + + + +-4.1644902229 +1.1516801119 + + + + +-4.1644902229 +1.1516801119 + + + + +-4.1644902229 +1.1516801119 + + + + +-4.1644902229 +1.1516801119 + + + + +-4.1644902229 +1.1516801119 + + + + +-4.1644902229 +1.1516801119 + + + + +-4.1644902229 +1.1516801119 + + + + +-4.1644902229 +1.1516801119 + + + + +-4.1644902229 +1.1516801119 + + + + +-4.1644902229 +1.1516801119 + + + + +-4.1610450745 +1.0777242184 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + + + +0.0000000000 +-0.0721258521 + + + + +0.0000000000 +-0.0721258521 + + + + +0.0000000000 +-0.0646127462 + + + + +0.0000000000 +-0.0721258521 + + + + +0.0000000000 +-0.0721258521 + + + + +0.0000000000 +-0.0482995100 + + + + +0.0000000000 +-0.0125367194 + + + + +0.0000000000 +-0.0125367194 + + + + +0.0000000000 +-0.0125367194 + + + + +0.0000000000 +-0.0125367194 + + + + +0.0000000000 +-0.0125367194 + + + + +0.0000000000 +-0.0721258521 + + + + +0.0000000000 +-0.0125367194 + + + + +0.0000000000 +-0.0125367194 + + + + +0.0000000000 +-0.0125367194 + + + + +0.0000000000 +-0.0125367194 + + + + +0.0000000000 +-0.0125367194 + + + + +0.0000000000 +-0.0721258521 + + + + +0.0000000000 +-0.0125367194 + + + + +0.0000000000 +-0.0125367194 + + + + +0.0000000000 +-0.0125367194 + + + + +0.0000000000 +-0.0125367194 + + + + +0.0000000000 +-0.0125367194 + + + + +0.0000000000 +-0.0721258521 + + + + +0.0000000000 +-0.0721258521 + + + + +0.0000000000 +-0.0125367194 + + + + +0.0000000000 +-0.0125367194 + + + + +0.0000000000 +-0.0125367194 + + + + +0.0000000000 +-0.0125367194 + + + + +0.0000000000 +-0.0125367194 + + + + +0.0000000000 +-0.0125367194 + + + + +0.0000000000 +-0.0125367194 + + + + +0.0000000000 +-0.0125367194 + + + + +0.0000000000 +-0.0125367194 + + + + +0.0000000000 +-0.0125367194 + + + + +0.0000000000 +-0.0721258521 + + + + + + + + + + + + + + + + + + + + + + +1.1945815086 +2.0715043545 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +4.1686749458 +1.5678329468 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/synfig-core/tags/stable/examples/eyes.sif b/synfig-core/tags/stable/examples/eyes.sif new file mode 100644 index 0000000..9164e6b --- /dev/null +++ b/synfig-core/tags/stable/examples/eyes.sif @@ -0,0 +1,1075 @@ + + + Untitled0 + + + + + + + + + + + + + + + + + + + 1.5000000000 + 0.3660714328 + + + + + + + + + + + + + + + + + 0.000000 + 0.182959 + 0.444444 + 1.000000 + + + + + + + + + + + 0.0000000000 + 0.0000000000 + + + + + + + + + + + + + + + + + + + + + + 0.000000 + 0.000000 + 0.000000 + 1.000000 + + + + + 0.0000000000 + 0.0000000000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0.000000 + 0.000000 + 0.000000 + 1.000000 + + + + + + + + + + + 0.0000000000 + 0.0000000000 + + + + + + + + + + + + + + + + + + + + + + 4.594794 + 4.594794 + 4.594794 + 1.000000 + + + + + 0.0000000000 + -1.1160714626 + + + + + 0.7086614370 + 0.7086614370 + + + + + + + + + + + + + + + + + + + + + + 0.000000 + 0.000000 + 0.000000 + 1.000000 + + + + + 0.0000000000 + -0.3660714328 + + + + + 0.4724409580 + 0.4724409580 + + + + + + + + + + + + + + + + + + + + + + 1.000000 + 1.000000 + 1.000000 + 1.000000 + + + + + + + + + + + 0.3847721815 + 0.5178642273 + + + + + + + + + + + + + + + + + + + + + + 0.000000 + 0.000000 + 0.000000 + 1.000000 + + + + + + + + + + + 0.0000000000 + 0.0000000000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + -1.5000000000 + 0.3672019839 + + + + + + + + + + + + + + + + + 0.000000 + 0.182959 + 0.444444 + 1.000000 + + + + + + + + + + + 0.0000000000 + 0.0000000000 + + + + + + + + + + + + + + + + + + + + + + 0.000000 + 0.000000 + 0.000000 + 1.000000 + + + + + 0.0000000000 + 0.0000000000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0.000000 + 0.000000 + 0.000000 + 1.000000 + + + + + + + + + + + 0.0000000000 + 0.0000000000 + + + + + + + + + + + + + + + + + + + + + + 4.594794 + 4.594794 + 4.594794 + 1.000000 + + + + + 0.0000000000 + -1.1160714626 + + + + + 0.7086614370 + 0.7086614370 + + + + + + + + + + + + + + + + + + + + + + 0.000000 + 0.000000 + 0.000000 + 1.000000 + + + + + 0.0000000000 + -0.3660714328 + + + + + 0.4724409580 + 0.4724409580 + + + + + + + + + + + + + + + + + + + + + + 1.000000 + 1.000000 + 1.000000 + 1.000000 + + + + + + + + + + + 0.3847721815 + 0.5178642273 + + + + + + + + + + + + + + + + + + + + + + 0.000000 + 0.000000 + 0.000000 + 1.000000 + + + + + + + + + + + 0.0000000000 + 0.0000000000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0.000000 + 0.182959 + 0.444444 + 1.000000 + + + + + + + + + + + 0.0000000000 + -1.2500000000 + + + + + + + + + + + + + + + + + + + + + + 0.000000 + 0.000000 + 0.000000 + 0.000000 + + + + + 0.0000000000 + 0.0000000000 + + + + + + + + + + + + + + + + + + + + + -3.1331429482 + 2.0000000000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0.0000000000 + 0.5000000000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 3.2500000000 + 2.0000000000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0.000000 + 0.000000 + 0.000000 + 1.000000 + + + + + 0.0000000000 + 0.0000000000 + + + + + + + + + + + + + + + + + + + + + -3.2500000000 + 2.0000000000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + -0.2500000000 + 0.5000000000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0.000000 + 0.000000 + 0.000000 + 1.000000 + + + + + 0.0000000000 + 0.0000000000 + + + + + + + + + + + + + + + + + + + + + 3.2500000000 + 2.0000000000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0.2500000000 + 0.5000000000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/synfig-core/tags/stable/examples/gamma.sif b/synfig-core/tags/stable/examples/gamma.sif new file mode 100644 index 0000000..9664694 --- /dev/null +++ b/synfig-core/tags/stable/examples/gamma.sif @@ -0,0 +1,212 @@ + + + Gamma Test Pattern + This Composition is for gamma testing. If the gamma has been adjusted properly, the inner circle should appear to be the same shade as the area around it. + + + + + + + + + + 1.000000 + 1.000000 + 1.000000 + 1.000000 + + + + + + + + + + + + + 0.000000 + 0.000000 + 0.000000 + 1.000000 + + + + + 0.0000000000 + 0.0000000000 + + + + + 0.0400000000 + 0.0400000000 + + + + + + + + + + + + + 0.0000000000 + 2.0000000000 + + + + + 0.0000000000 + -2.0000000000 + + + + + + + 1.000000 + 1.000000 + 1.000000 + 1.000000 + + + + + 0.000000 + 0.000000 + 0.000000 + 1.000000 + + + + + + + + + + + + + + + + + + + + + + + + 0.500000 + 0.500000 + 0.500000 + 1.000000 + + + + + + + + + + + 0.0000000000 + 0.0000000000 + + + + + + + + + + + + + + + + + + + 0.500000 + 0.500000 + 0.500000 + 1.000000 + + + + + + + + + + + + + 0.500000 + 0.500000 + 0.500000 + 1.000000 + + + + + + + + + + + + + 0.000000 + 1.000000 + 1.000000 + 1.000000 + + + + + + + + + + + + + 1.000000 + 0.000000 + 1.000000 + 1.000000 + + + + + + + + + + + + + 1.000000 + 1.000000 + 0.000000 + 1.000000 + + + + diff --git a/synfig-core/tags/stable/examples/gradient.sif b/synfig-core/tags/stable/examples/gradient.sif new file mode 100644 index 0000000..4df0200 --- /dev/null +++ b/synfig-core/tags/stable/examples/gradient.sif @@ -0,0 +1,990 @@ + + + Gradient Test + + + + 0.000000 + 0.000000 + 0.000000 + 0.000000 + + + 0.000000 + 0.000000 + 0.000000 + 0.000000 + + + 0.000000 + 0.000000 + 0.000000 + 0.000000 + + + 0.000000 + 0.000000 + 0.000000 + 0.000000 + + + -0.000000 + -0.000000 + -0.000000 + 0.500000 + + + 0.000000 + 0.000000 + 0.000000 + 1.000000 + + + 0.393939 + 0.091171 + 0.035564 + 1.000000 + + + 0.299242 + 0.069255 + 0.027015 + 1.000000 + + + 0.204545 + 0.047339 + 0.018466 + 1.000000 + + + 0.204545 + 0.047339 + 0.018466 + 1.000000 + + + 0.481061 + 0.111334 + 0.043429 + 1.000000 + + + 0.757576 + 0.175329 + 0.068392 + 1.000000 + + + 0.757576 + 0.175329 + 0.068392 + 1.000000 + + + 0.878788 + 0.338230 + 0.244196 + 1.000000 + + + 1.000000 + 0.501132 + 0.420000 + 1.000000 + + + 0.977356 + 0.641591 + 0.586910 + 1.000000 + + + 0.878788 + 0.338230 + 0.244196 + 1.000000 + + + 0.757576 + 0.175329 + 0.068392 + 1.000000 + + + 0.757576 + 0.175329 + 0.068392 + 0.000000 + + + 0.757576 + 0.175329 + 0.068392 + 0.000000 + + + 0.757576 + 0.175329 + 0.068392 + 0.000000 + + + + + + 0.000000 + 0.000000 + 0.000000 + 0.000000 + + + + + 0.000000 + 0.000000 + 0.000000 + 1.000000 + + + + + + + + + 1.000000 + 0.000000 + 0.000000 + 1.000000 + + + -0.000000 + 1.000000 + -0.000000 + 0.839378 + + + 0.000000 + 0.000000 + 1.000000 + 1.000000 + + + + + + + + + + + + + 0.800000 + 0.800000 + 0.800000 + 1.000000 + + + + + + + + + + + + + 1.0000000000 + 1.0000000000 + + + + + -1.0000000000 + -1.0000000000 + + + + + + + + + + + + + + + + + + + + -0.3533333333 + -0.0400000000 + + + + + 0.1466666667 + -0.6200000000 + + + + + + + + + + + + + + + + + + + + 0.8933333333 + 0.6133333333 + + + + + 0.2000000000 + 0.2066666667 + + + + + + + + + + + + + + + + + + + + -0.6333333333 + 0.0400000000 + + + + + -0.2466666667 + -0.9200000000 + + + + + + + + + + + + + + + + + + + + 0.8800000000 + 0.8066666667 + + + + + -0.8466666667 + -0.3666666667 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0.1866666667 + 0.7800000000 + + + + + 0.3000000000 + 0.0666666667 + + + + + + + + + + + + + + + + + + + + 0.1000000000 + 0.1000000000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + -0.055843 + 0.323707 + -0.220453 + 1.000000 + + + + + + + 0.7266666667 + -0.1000000000 + + + + + + + + + + + + + + + + + + + -0.2533333333 + 0.1733333333 + + + + + + + + + + + + + + + + + + + + + + + + + + GRADIENTS + + + + 1.000000 + 1.000000 + 1.000000 + 1.000000 + + + + luxisr + + + + + + + + + + + + + + + + 0.2533333333 + 0.2600000000 + + + + + 0.5000000000 + 0.5000000000 + + + + + 0.0000000000 + 0.0000000000 + + + + + + + + + + + + + + + + + + + 0.0000000000 + -0.2000000000 + + + + + 0.0000000000 + 0.0500000000 + + + + + + 0.000000 + 0.000000 + 0.000000 + 1.000000 + + + 1.000000 + 1.000000 + 1.000000 + 1.000000 + + + + + + + + + + + + + + 0.0000000000 + 0.0000000000 + + + + + + + + + + + + + + + + + + 0.750000 + 0.750000 + 0.750000 + 1.000000 + + + + + + + + + + + + + 1.0000000000 + 1.0000000000 + + + + + -1.0000000000 + -1.0000000000 + + + + + + 0.000000 + 0.000000 + 0.000000 + 1.000000 + + + 1.000000 + 1.000000 + 1.000000 + 1.000000 + + + + + + + + + + + + + + + + + + + + 0.500000 + 0.500000 + 0.500000 + 1.000000 + + + + + 0.1250000000 + 0.1250000000 + + + + + 0.2500000000 + 0.2500000000 + + + + + + + + + + + + + + 0.0000000000 + 0.0000000000 + + + + + + + + + + + + + + + + + + + + + + + 0.0000000000 + 0.0000000000 + + + + + + + + + + + + + + + + + + + + + + + + + 0.000000 + 0.000000 + 0.000000 + 0.000000 + + + 0.000000 + 0.000000 + 0.000000 + 0.000000 + + + 0.000000 + 0.000000 + 0.000000 + 0.000000 + + + 0.000000 + 0.000000 + 0.000000 + 0.000000 + + + -0.000000 + -0.000000 + -0.000000 + 0.500000 + + + 0.000000 + 0.000000 + 0.000000 + 1.000000 + + + 0.393939 + 0.091171 + 0.035564 + 1.000000 + + + 0.299242 + 0.069255 + 0.027015 + 1.000000 + + + 0.204545 + 0.047339 + 0.018466 + 1.000000 + + + 0.204545 + 0.047339 + 0.018466 + 1.000000 + + + 0.481061 + 0.111334 + 0.043429 + 1.000000 + + + 0.757576 + 0.175329 + 0.068392 + 1.000000 + + + 0.757576 + 0.175329 + 0.068392 + 1.000000 + + + 0.878788 + 0.338230 + 0.244196 + 1.000000 + + + 1.000000 + 0.501132 + 0.420000 + 1.000000 + + + 0.977356 + 0.641591 + 0.586910 + 1.000000 + + + 0.878788 + 0.338230 + 0.244196 + 1.000000 + + + 0.757576 + 0.175329 + 0.068392 + 1.000000 + + + 0.757576 + 0.175329 + 0.068392 + 0.000000 + + + 0.757576 + 0.175329 + 0.068392 + 0.000000 + + + 0.757576 + 0.175329 + 0.068392 + 0.000000 + + + + + + + + + + + + + + 0.6000000000 + 0.6000000000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0.0000000000 + 0.0000000000 + + + + + + + + + + + + + + + + + + 1.0000000000 + -1.0000000000 + + + + + -0.2133333333 + 0.2133333333 + + + + + + + + + + + + + + + + + + + + -1.0000000000 + -1.0000000000 + + + + + 1.0000000000 + 1.0000000000 + + + + + + + 1.000000 + 0.000000 + 0.000000 + 1.000000 + + + + + 0.000000 + 0.000000 + 1.000000 + 1.000000 + + + + + + + + + + + + + + + + + + + + + 0.0000000000 + 0.0000000000 + + + + + + + + + diff --git a/synfig-core/tags/stable/examples/headmo.sif b/synfig-core/tags/stable/examples/headmo.sif new file mode 100644 index 0000000..c7b6af2 --- /dev/null +++ b/synfig-core/tags/stable/examples/headmo.sif @@ -0,0 +1,2672 @@ + + + Untitled0 + + + + + + + + + + + + + 0.000000 + 0.000000 + 0.000000 + 1.000000 + + + + + 0.0000000000 + 0.0000000000 + + + + + + + + + + + + + + + + + + + + + 2.3918147087 + -1.4003952742 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 1.2861930132 + -1.6302770376 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0.7498023510 + -1.3894485235 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0.2243584245 + -0.9734721184 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0.4870803952 + -0.5137086511 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0.2790921628 + 0.0007885305 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0.4980271459 + 0.8655816913 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 2.2166666985 + 1.5333333015 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 3.2675545216 + 0.4496052265 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 3.0267260075 + -0.6779099107 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0.578906 + 0.491179 + 0.408980 + 1.000000 + + + + + 0.0000000000 + 0.0000000000 + + + + + + + + + + + + + + + + + + + + + 2.3918147087 + -1.4003952742 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 1.2861930132 + -1.6302770376 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0.7498023510 + -1.3894485235 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0.2243584245 + -0.9734721184 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0.4870803952 + -0.5137086511 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0.2790921628 + 0.0007885305 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0.4980271459 + 0.8655816913 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 2.2166666985 + 1.5333333015 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 3.2675545216 + 0.4496052265 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 3.0267260075 + -0.6779099107 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0.0000000000 + 0.0000000000 + + + + + + + + + + + + + + + + + 0.0000000000 + 0.0000000000 + + + + + + + + + + + + + + + + + 1.000000 + 1.000000 + 1.000001 + 1.000000 + + + + + 0.0000000000 + 0.0000000000 + + + + + + + + + + + + + + + + + + + + + 1.9825030565 + -0.4523847997 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 1.6036487818 + -0.6450696588 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 1.2971397638 + -0.3385606706 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 1.6145955324 + -0.1305724531 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0.0000000000 + 0.0000000000 + + + + + + + + + + + + + + + + + 0.180455 + 0.207986 + 0.339809 + 1.000000 + + + + + 0.0000000000 + 0.0000000000 + + + + + + + + + + + + + + + + + + + + + 1.7706253529 + -0.6160338521 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 1.6177034378 + -0.4148676991 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 1.8230557442 + -0.2574332952 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 1.9847160578 + -0.4892117083 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0.000000 + 0.000000 + 0.000000 + 1.000000 + + + 0.000000 + 0.325772 + 1.112617 + 0.000000 + + + + + + 1.8426181078 + -0.4419273138 + + + + + + + + + + + + + + + + + + + + + + + + + + + 0.021198 + 0.000000 + 0.507498 + 0.540816 + + + + + 0.000000 + 0.339809 + 0.639883 + 1.000000 + + + + + + + + + + 1.8443924189 + -0.4520850480 + + + + + + + + + + + + + + + + + + + + + + + + 0.000000 + 0.000000 + 0.000000 + 0.000000 + + + + + 0.000000 + 0.068640 + 0.303548 + 1.000000 + + + + + + + + + + 1.8443924189 + -0.4520850480 + + + + + + + + + + + + + + + + + + + + + + 4.594794 + 4.594794 + 4.594794 + 1.000000 + + + + + + + + + + + 1.9428263903 + -0.6400325298 + + + + + + + + + + + + + + + + + + + + + + 0.000000 + 0.000000 + 0.000001 + 1.000000 + + + + + + + + + + + 1.8352495432 + -0.4747960865 + + + + + + + + + + + + + + + + + + + + + + 1.000000 + 1.000000 + 1.000000 + 1.000000 + + + + + + + + + + + 1.7278573513 + -0.3616876006 + + + + + + + + + + + + + + + + + + + + + + 0.000000 + 0.000000 + 0.000001 + 0.990000 + + + + + 0.0000000000 + 0.0000000000 + + + + + 0.0666666701 + 0.0666666701 + + + + + + + + + + + + + + + + + + + + + + 0.000000 + 0.000000 + 0.000000 + 1.000000 + + + + + + + + + + + 1.8393263817 + -0.4411963224 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0.0000000000 + 0.0000000000 + + + + + + + + + + + + + + + + + 1.000000 + 1.000000 + 1.000000 + 1.000000 + + + + + 0.0000000000 + 0.0000000000 + + + + + + + + + + + + + + + + + + + + + 0.5089738965 + -0.1743594408 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0.6950685978 + -0.5903359056 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0.8264296055 + -0.3495074213 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0.0000000000 + 0.0000000000 + + + + + + + + + + + + + + + + + 0.180455 + 0.207986 + 0.339809 + 1.000000 + + + + + 0.0000000000 + 0.0000000000 + + + + + + + + + + + + + + + + + + + + + 0.7176488638 + -0.6029143333 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0.5647269487 + -0.4017481506 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0.7700791955 + -0.2443137467 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0.9317395091 + -0.4760921896 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0.6423854232 + -0.2420416921 + + + + + 0.7900364399 + -0.5709825158 + + + + + + 0.000001 + 0.000000 + 0.089136 + 1.000000 + + + 0.133208 + 0.764137 + 1.550965 + 0.000000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + -1.0565233231 + 0.0127525851 + + + + + + + + + + + + + + + + + 0.180455 + 0.207986 + 0.339809 + 1.000000 + + + + + 0.0000000000 + 0.0000000000 + + + + + + + + + + + + + + + + + + + + + 1.7706253529 + -0.6160338521 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 1.6177034378 + -0.4148676991 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 1.8230557442 + -0.2574332952 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 1.9847160578 + -0.4892117083 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0.000000 + 0.000000 + 0.000000 + 1.000000 + + + 0.000000 + 0.325772 + 1.112617 + 0.000000 + + + + + + 1.8426181078 + -0.4419273138 + + + + + + + + + + + + + + + + + + + + + + + + + + + 0.021198 + 0.000000 + 0.507498 + 0.540816 + + + + + 0.000000 + 0.339809 + 0.639883 + 1.000000 + + + + + + + + + + 1.8443924189 + -0.4520850480 + + + + + + + + + + + + + + + + + + + + + + + + 0.000000 + 0.000000 + 0.000000 + 0.000000 + + + + + 0.000000 + 0.068640 + 0.303548 + 1.000000 + + + + + + + + + + 1.8443924189 + -0.4520850480 + + + + + + + + + + + + + + + + + + + + + + 4.594794 + 4.594794 + 4.594794 + 1.000000 + + + + + + + + + + + 1.9428263903 + -0.6400325298 + + + + + + + + + + + + + + + + + + + + + + 0.000000 + 0.000000 + 0.000001 + 1.000000 + + + + + + + + + + + 1.8352495432 + -0.4747960865 + + + + + + + + + + + + + + + + + + + + + + 1.000000 + 1.000000 + 1.000000 + 1.000000 + + + + + + + + + + + 1.7278573513 + -0.3616876006 + + + + + + + + + + + + + + + + + + + + + + 0.000000 + 0.000000 + 0.000001 + 0.990000 + + + + + 0.0000000000 + 0.0000000000 + + + + + 0.0666666701 + 0.0666666701 + + + + + + + + + + + + + + + + + + + + + + 0.000000 + 0.000000 + 0.000000 + 1.000000 + + + + + + + + + + + 1.8393263817 + -0.4411963224 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/synfig-core/tags/stable/examples/installer-logo.sif b/synfig-core/tags/stable/examples/installer-logo.sif new file mode 100644 index 0000000..d273a26 --- /dev/null +++ b/synfig-core/tags/stable/examples/installer-logo.sif @@ -0,0 +1,3156 @@ + + + Voria Logo + + + WhiteBG + + + + + + + + + + + + + 0.0000000000 + 0.0273553673 + + + + + + + + + + + + + + + + + + + + + 0.000000 + 0.000000 + 0.000000 + 1.000000 + + + + + 0.0495141000 + -0.0378637239 + + + + + 0.1417397559 + 0.1417397559 + + + + + + + + + + + + + + + + + + + + + + 1.000000 + 1.000000 + 1.000000 + 1.000000 + + + + + + + + + + + + + + + + + + + 0.0000000000 + 0.0000000000 + + + + + + + + + + + + + + + + + 0.000000 + 0.333333 + 1.000000 + 1.000000 + + + + + 0.0000000000 + 0.0000000000 + + + + + + + + + + + + + + + + + + + + + 0.0000000000 + 1.2500000000 + + + + + + + + + + + + + + -2.2500000000 + 2.2500000000 + + + + + -2.2500000000 + -2.2500000000 + + + + + + + + + -1.0000000000 + -1.0000000000 + + + + + + + + + + + + + + -0.2500000000 + -2.2500000000 + + + + + 1.5000000000 + 0.0000000000 + + + + + + + + + 0.0000000000 + -1.5000000000 + + + + + + + + + + + + + + 0.7500000000 + -0.7500000000 + + + + + 0.7500000000 + 0.7500000000 + + + + + + + + + 1.0000000000 + -1.0000000000 + + + + + + + + + + + + + + 1.5000000000 + 0.0000000000 + + + + + -0.2500000000 + 2.2500000000 + + + + + + + + + + + + + + + + + + + + 1.000000 + 1.000000 + 1.000000 + 1.000000 + + + + + 0.0000000000 + 0.0000000000 + + + + + + + + + + + + + + + + + + + + + 0.0000000000 + 1.2500000000 + + + + + + + + + + + + + + -2.2500000000 + 2.2500000000 + + + + + -2.2500000000 + -2.2500000000 + + + + + + + + + -1.0000000000 + -1.0000000000 + + + + + + + + + + + + + + -0.2500000000 + -2.2500000000 + + + + + 1.5000000000 + 0.0000000000 + + + + + + + + + 0.0000000000 + -1.5000000000 + + + + + + + + + + + + + + 0.7500000000 + -0.7500000000 + + + + + 0.7500000000 + 0.7500000000 + + + + + + + + + 1.0000000000 + -1.0000000000 + + + + + + + + + + + + + + 1.5000000000 + 0.0000000000 + + + + + -0.2500000000 + 2.2500000000 + + + + + + + + + + + + + + + + + + + + 1.000000 + 1.000000 + 1.000000 + 1.000000 + + + + + 0.0000000000 + -1.3750000000 + + + + + 0.7500000000 + 0.7500000000 + + + + + + + + + + + + + + + + + + + + + + 0.000000 + 0.000000 + 0.000000 + 1.000000 + + + + + 0.0000000000 + 0.0000000000 + + + + + 1.3999999762 + 1.3999999762 + + + + + + + + + + + + + + + + + + + + + + 0.0000000000 + 0.0000000000 + + + + + + + + + + + + + + + + + 0.000000 + 0.000000 + 0.000000 + 1.000000 + + + + + + + + + + + 0.0000000000 + -0.5000000000 + + + + + + + + + + + + + + + + + + + + + + + + -0.000000 + -0.000000 + -0.000000 + -0.000000 + + + + + -0.000000 + -0.000000 + -0.000000 + 1.000000 + + + + + + + + + + + + + 0.0000000000 + -0.5000000000 + + + + + + + + + + + + + + + + + + + + + + 0.000000 + 0.000000 + 0.000000 + 1.000000 + + + + + 0.0000000000 + -0.5000000000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0.000000 + 0.000000 + 0.000000 + 1.000000 + + + + + 0.0000000000 + 0.0000000000 + + + + + + + + + + + + + + + + + + + + + 0.0000000000 + 1.2500000000 + + + + + + + + + + + + + + -2.2500000000 + 2.2500000000 + + + + + -2.2500000000 + -2.2500000000 + + + + + + + + + -1.0000000000 + -1.0000000000 + + + + + + + + + + + + + + -0.2500000000 + -2.2500000000 + + + + + 1.5000000000 + 0.0000000000 + + + + + + + + + 0.0000000000 + -1.5000000000 + + + + + + + + + + + + + + 0.7500000000 + -0.7500000000 + + + + + 0.7500000000 + 0.7500000000 + + + + + + + + + 1.0000000000 + -1.0000000000 + + + + + + + + + + + + + + 1.5000000000 + 0.0000000000 + + + + + -0.2500000000 + 2.2500000000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0.0000000000 + 0.0000000000 + + + + + + + + + + + + + + + + + 0.000000 + 0.000000 + 0.000000 + 1.000000 + + + + + 0.0000000000 + 0.0000000000 + + + + + + + + + + + + + + + + + + + + + -0.7500000000 + 0.0000000000 + + + + + + + + + + + + + + 0.7500000000 + -0.2500000000 + + + + + 1.0000000000 + 1.0000000000 + + + + + + + + + 0.0000000000 + -0.5000000000 + + + + + + + + + + + + + + 0.5000000000 + -0.5000000000 + + + + + 0.7300000191 + -0.2599999905 + + + + + + + + + 0.5000000000 + -1.1250000000 + + + + + + + + + + + + + + 0.3750000000 + -0.6250000000 + + + + + 0.4900000095 + -0.6999999881 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0.000000 + 0.000000 + 0.000000 + 1.000000 + + + + + 0.0000000000 + 0.0000000000 + + + + + + + + + + + + + + + + + + + + + 0.7500000000 + 0.0000000000 + + + + + + + + + + + + + + -0.7500000000 + -0.2500000000 + + + + + 1.0000000000 + 1.0000000000 + + + + + + + + + 0.0000000000 + -0.5000000000 + + + + + + + + + + + + + + -0.5000000000 + -0.5000000000 + + + + + -0.8012820482 + -0.5311999917 + + + + + + + + + -0.5000000000 + -1.1250000000 + + + + + + + + + + + + + + -0.3750000000 + -0.6250000000 + + + + + -0.5833333135 + -0.3968000114 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0.000000 + 0.000000 + 0.000000 + 1.000000 + + + + + 0.0000000000 + 0.0000000000 + + + + + + + + + + + + + + + + + + + + + -0.8846153617 + -0.4679712355 + + + + + + + + + + + + + + 0.3538461626 + -0.0614596680 + + + + + 1.0000000000 + 1.0000000000 + + + + + + + + + -0.5615384579 + -0.5704039931 + + + + + + + + + + + + + + 0.2500000000 + -0.1250000000 + + + + + 0.3076923192 + -0.1280000061 + + + + + + + + + -0.2794871926 + -0.7752695680 + + + + + + + + + + + + + + 0.2615384758 + -0.2612035871 + + + + + 0.1923076957 + -0.1536000073 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0.000000 + 0.000000 + 0.000000 + 1.000000 + + + + + 0.0000000000 + 0.0000000000 + + + + + + + + + + + + + + + + + + + + + -0.3871794939 + -0.2170109153 + + + + + + + + + + + + + + -0.1846153885 + -0.2612035871 + + + + + 1.0000000000 + 1.0000000000 + + + + + + + + + -0.5615384579 + -0.5704039931 + + + + + + + + + + + + + + -0.1538461596 + -0.3533930779 + + + + + 0.3076923192 + -0.1280000061 + + + + + + + + + -0.6999999881 + -0.9955000281 + + + + + + + + + + + + + + -0.0769230798 + -0.3687579930 + + + + + 0.1923076957 + -0.1536000073 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0.000000 + 0.000000 + 0.000000 + 1.000000 + + + + + 0.0000000000 + 0.0000000000 + + + + + + + + + + + + + + + + + + + + + 0.8846153617 + -0.4679712355 + + + + + + + + + + + + + + -0.3538461626 + -0.0614596680 + + + + + 1.0000000000 + 1.0000000000 + + + + + + + + + 0.5615384579 + -0.5704039931 + + + + + + + + + + + + + + -0.2500000000 + -0.1250000000 + + + + + 0.3076923192 + -0.1280000061 + + + + + + + + + 0.2794871926 + -0.7752695680 + + + + + + + + + + + + + + -0.2615384758 + -0.2612035871 + + + + + 0.1923076957 + -0.1536000073 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0.000000 + 0.000000 + 0.000000 + 1.000000 + + + + + 0.0000000000 + 0.0000000000 + + + + + + + + + + + + + + + + + + + + + 0.3871794939 + -0.2170109153 + + + + + + + + + + + + + + 0.1846153885 + -0.2612035871 + + + + + 1.0000000000 + 1.0000000000 + + + + + + + + + 0.5615384579 + -0.5704039931 + + + + + + + + + + + + + + 0.1538461596 + -0.3533930779 + + + + + 0.3076923192 + -0.1280000061 + + + + + + + + + 0.6999999881 + -0.9955000281 + + + + + + + + + + + + + + 0.0769230798 + -0.3687579930 + + + + + 0.1923076957 + -0.1536000073 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0.000000 + 0.000000 + 0.000000 + 1.000000 + + + + + 0.0000000000 + 0.0000000000 + + + + + + + + + + + + + + + + + + + + + 0.4713114798 + 0.6239523292 + + + + + + + + + + + + + + -0.5000000000 + -0.1875000000 + + + + + 1.0000000000 + 1.0000000000 + + + + + + + + + 0.0000000000 + 0.3125000000 + + + + + + + + + + + + + + -0.3750000000 + -0.3750000000 + + + + + 0.3076923192 + -0.1280000061 + + + + + + + + + -0.3639999926 + -0.1780321598 + + + + + + + + + + + + + + -0.1875000000 + -0.5000000000 + + + + + 0.1923076957 + -0.1536000073 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0.000000 + 0.000000 + 0.000000 + 1.000000 + + + + + 0.0000000000 + 0.0000000000 + + + + + + + + + + + + + + + + + + + + + -0.4713114798 + 0.6239523292 + + + + + + + + + + + + + + 0.5000000000 + -0.1875000000 + + + + + 1.0000000000 + 1.0000000000 + + + + + + + + + 0.0000000000 + 0.3125000000 + + + + + + + + + + + + + + 0.3750000000 + -0.3750000000 + + + + + 0.3076923192 + -0.1280000061 + + + + + + + + + 0.3639999926 + -0.1780321598 + + + + + + + + + + + + + + 0.1875000000 + -0.5000000000 + + + + + 0.1923076957 + -0.1536000073 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0.000000 + 0.000000 + 0.000000 + 1.000000 + + + + + 0.0000000000 + 0.0000000000 + + + + + + + + + + + + + + + + + + + + + -0.2500000000 + -0.8125000000 + + + + + + + + + + + + + + 0.2500000000 + -0.1250000000 + + + + + 1.0000000000 + 1.0000000000 + + + + + + + + + 0.0000000000 + -1.0000000000 + + + + + + + + + + + + + + 0.1875000000 + -0.1875000000 + + + + + 0.3076923192 + -0.1280000061 + + + + + + + + + 0.2019230723 + -1.2694432735 + + + + + + + + + + + + + + 0.1888111830 + -0.3540983498 + + + + + 0.1923076957 + -0.1536000073 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0.000000 + 0.000000 + 0.000000 + 1.000000 + + + + + 0.0000000000 + 0.0000000000 + + + + + + + + + + + + + + + + + + + + + 0.2500000000 + -0.8125000000 + + + + + + + + + + + + + + -0.2500000000 + -0.1250000000 + + + + + 1.0000000000 + 1.0000000000 + + + + + + + + + 0.0000000000 + -1.0000000000 + + + + + + + + + + + + + + -0.1875000000 + -0.1875000000 + + + + + 0.3076923192 + -0.1280000061 + + + + + + + + + -0.2045454532 + -1.2720662355 + + + + + + + + + + + + + + -0.1730769277 + -0.3304918110 + + + + + 0.1923076957 + -0.1536000073 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0.0000000000 + 0.0000000000 + + + + + + + + + + + + + + + + + + 0.000000 + 0.000000 + 0.000000 + 1.000000 + + + 1.000000 + 1.000000 + 1.000000 + 1.000000 + + + + + + 0.0000000000 + 0.3750000000 + + + + + + + + + + + + + + + + + + + + + + + + + 0.0000000000 + 0.3750000000 + + + + + 0.0000000000 + 1.0000000000 + + + + + + 0.000000 + 0.000000 + 0.000000 + 1.000000 + + + 1.000000 + 1.000000 + 1.000000 + 1.000000 + + + + + + + + + + + + + + + + + + + + + + + 1.000000 + 1.000000 + 1.000000 + 0.000000 + + + + + 0.0000000000 + 0.0000000000 + + + + + + + + + + + + + + + + + + + + + -0.0000000150 + 1.0000000000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + -0.5000000000 + 0.5000000000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0.0000000000 + 0.2500000000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0.5000000000 + 0.5000000000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0.0000000000 + 0.1250000000 + + + + + + + + + + + + + + + + 0.000000 + 0.000000 + 0.000000 + 1.000000 + + + + + 0.0500000007 + -0.0500000007 + + + + + 0.1000000015 + 0.1000000015 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 1.000000 + 1.000000 + 1.000000 + 1.000000 + + + + + + + + + + + + + + + + 1.000000 + 1.000000 + 1.000000 + 0.000000 + + + + + + + + + + + + + + + + 0.000000 + 0.000000 + 0.000000 + 1.000000 + + + + diff --git a/synfig-core/tags/stable/examples/japan.sif b/synfig-core/tags/stable/examples/japan.sif new file mode 100644 index 0000000..31494cb --- /dev/null +++ b/synfig-core/tags/stable/examples/japan.sif @@ -0,0 +1,97 @@ + + + Untitled2 + + + + + + + + + + 1.000000 + 1.000000 + 1.000000 + 1.000000 + + + + + + + + + + + + + + + 1.000000 + 0.000000 + 0.000000 + 1.000000 + + + + + 1.000000 + 1.000000 + 1.000000 + 1.000000 + + + + + + + + + + -0.4000000000 + 0.0000000000 + + + + + + + + + + + + + + + + + + + 1.000000 + 0.000000 + 0.000000 + 1.000000 + + + + + + + + + + + -0.4000000000 + 0.0000000000 + + + + + + + + + + diff --git a/synfig-core/tags/stable/examples/logo.sif b/synfig-core/tags/stable/examples/logo.sif new file mode 100644 index 0000000..a83e78b --- /dev/null +++ b/synfig-core/tags/stable/examples/logo.sif @@ -0,0 +1,3062 @@ + + + Voria Logo + + + WhiteBG + + + + + + + + + + + + + 0.0000000000 + 0.0273553673 + + + + + + + + + + + + + + + + + + + + + 0.000000 + 0.000000 + 0.000000 + 1.000000 + + + + + 0.0495141000 + -0.0378637239 + + + + + 0.1417397559 + 0.1417397559 + + + + + + + + + + + + + + + + + + + + + + 1.000000 + 1.000000 + 1.000000 + 1.000000 + + + + + + + + + + + + + + + + + + + 0.0000000000 + 0.0000000000 + + + + + + + + + + + + + + + + + 0.000000 + 0.333333 + 1.000000 + 1.000000 + + + + + 0.0000000000 + 0.0000000000 + + + + + + + + + + + + + + + + + + + + + 0.0000000000 + 1.2500000000 + + + + + + + + + + + + + + -2.2500000000 + 2.2500000000 + + + + + -2.2500000000 + -2.2500000000 + + + + + + + + + -1.0000000000 + -1.0000000000 + + + + + + + + + + + + + + -0.2500000000 + -2.2500000000 + + + + + 1.5000000000 + 0.0000000000 + + + + + + + + + 0.0000000000 + -1.5000000000 + + + + + + + + + + + + + + 0.7500000000 + -0.7500000000 + + + + + 0.7500000000 + 0.7500000000 + + + + + + + + + 1.0000000000 + -1.0000000000 + + + + + + + + + + + + + + 1.5000000000 + 0.0000000000 + + + + + -0.2500000000 + 2.2500000000 + + + + + + + + + + + + + + + + + + + + 1.000000 + 1.000000 + 1.000000 + 1.000000 + + + + + 0.0000000000 + 0.0000000000 + + + + + + + + + + + + + + + + + + + + + 0.0000000000 + 1.2500000000 + + + + + + + + + + + + + + -2.2500000000 + 2.2500000000 + + + + + -2.2500000000 + -2.2500000000 + + + + + + + + + -1.0000000000 + -1.0000000000 + + + + + + + + + + + + + + -0.2500000000 + -2.2500000000 + + + + + 1.5000000000 + 0.0000000000 + + + + + + + + + 0.0000000000 + -1.5000000000 + + + + + + + + + + + + + + 0.7500000000 + -0.7500000000 + + + + + 0.7500000000 + 0.7500000000 + + + + + + + + + 1.0000000000 + -1.0000000000 + + + + + + + + + + + + + + 1.5000000000 + 0.0000000000 + + + + + -0.2500000000 + 2.2500000000 + + + + + + + + + + + + + + + + + + + + 1.000000 + 1.000000 + 1.000000 + 1.000000 + + + + + 0.0000000000 + -1.3750000000 + + + + + 0.7500000000 + 0.7500000000 + + + + + + + + + + + + + + + + + + + + + + 0.000000 + 0.000000 + 0.000000 + 1.000000 + + + + + 0.0000000000 + 0.0000000000 + + + + + 1.3999999762 + 1.3999999762 + + + + + + + + + + + + + + + + + + + + + + 0.0000000000 + 0.0000000000 + + + + + + + + + + + + + + + + + 0.000000 + 0.000000 + 0.000000 + 1.000000 + + + + + + + + + + + 0.0000000000 + -0.5000000000 + + + + + + + + + + + + + + + + + + + + + + + + -0.000000 + -0.000000 + -0.000000 + -0.000000 + + + + + -0.000000 + -0.000000 + -0.000000 + 1.000000 + + + + + + + + + + 0.0000000000 + -0.5000000000 + + + + + + + + + + + + + + + + + + + + + + 0.000000 + 0.000000 + 0.000000 + 1.000000 + + + + + 0.0000000000 + -0.5000000000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0.000000 + 0.000000 + 0.000000 + 1.000000 + + + + + 0.0000000000 + 0.0000000000 + + + + + + + + + + + + + + + + + + + + + 0.0000000000 + 1.2500000000 + + + + + + + + + + + + + + -2.2500000000 + 2.2500000000 + + + + + -2.2500000000 + -2.2500000000 + + + + + + + + + -1.0000000000 + -1.0000000000 + + + + + + + + + + + + + + -0.2500000000 + -2.2500000000 + + + + + 1.5000000000 + 0.0000000000 + + + + + + + + + 0.0000000000 + -1.5000000000 + + + + + + + + + + + + + + 0.7500000000 + -0.7500000000 + + + + + 0.7500000000 + 0.7500000000 + + + + + + + + + 1.0000000000 + -1.0000000000 + + + + + + + + + + + + + + 1.5000000000 + 0.0000000000 + + + + + -0.2500000000 + 2.2500000000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0.0000000000 + 0.0000000000 + + + + + + + + + + + + + + + + + 0.000000 + 0.000000 + 0.000000 + 1.000000 + + + + + 0.0000000000 + 0.0000000000 + + + + + + + + + + + + + + + + + + + + + -0.7500000000 + 0.0000000000 + + + + + + + + + + + + + + 0.7500000000 + -0.2500000000 + + + + + 1.0000000000 + 1.0000000000 + + + + + + + + + 0.0000000000 + -0.5000000000 + + + + + + + + + + + + + + 0.5000000000 + -0.5000000000 + + + + + 0.7300000191 + -0.2599999905 + + + + + + + + + 0.5000000000 + -1.1250000000 + + + + + + + + + + + + + + 0.3750000000 + -0.6250000000 + + + + + 0.4900000095 + -0.6999999881 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0.000000 + 0.000000 + 0.000000 + 1.000000 + + + + + 0.0000000000 + 0.0000000000 + + + + + + + + + + + + + + + + + + + + + 0.7500000000 + 0.0000000000 + + + + + + + + + + + + + + -0.7500000000 + -0.2500000000 + + + + + 1.0000000000 + 1.0000000000 + + + + + + + + + 0.0000000000 + -0.5000000000 + + + + + + + + + + + + + + -0.5000000000 + -0.5000000000 + + + + + -0.8012820482 + -0.5311999917 + + + + + + + + + -0.5000000000 + -1.1250000000 + + + + + + + + + + + + + + -0.3750000000 + -0.6250000000 + + + + + -0.5833333135 + -0.3968000114 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0.000000 + 0.000000 + 0.000000 + 1.000000 + + + + + 0.0000000000 + 0.0000000000 + + + + + + + + + + + + + + + + + + + + + -0.8846153617 + -0.4679712355 + + + + + + + + + + + + + + 0.3538461626 + -0.0614596680 + + + + + 1.0000000000 + 1.0000000000 + + + + + + + + + -0.5615384579 + -0.5704039931 + + + + + + + + + + + + + + 0.2500000000 + -0.1250000000 + + + + + 0.3076923192 + -0.1280000061 + + + + + + + + + -0.2794871926 + -0.7752695680 + + + + + + + + + + + + + + 0.2615384758 + -0.2612035871 + + + + + 0.1923076957 + -0.1536000073 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0.000000 + 0.000000 + 0.000000 + 1.000000 + + + + + 0.0000000000 + 0.0000000000 + + + + + + + + + + + + + + + + + + + + + -0.3871794939 + -0.2170109153 + + + + + + + + + + + + + + -0.1846153885 + -0.2612035871 + + + + + 1.0000000000 + 1.0000000000 + + + + + + + + + -0.5615384579 + -0.5704039931 + + + + + + + + + + + + + + -0.1538461596 + -0.3533930779 + + + + + 0.3076923192 + -0.1280000061 + + + + + + + + + -0.6999999881 + -0.9955000281 + + + + + + + + + + + + + + -0.0769230798 + -0.3687579930 + + + + + 0.1923076957 + -0.1536000073 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0.000000 + 0.000000 + 0.000000 + 1.000000 + + + + + 0.0000000000 + 0.0000000000 + + + + + + + + + + + + + + + + + + + + + 0.8846153617 + -0.4679712355 + + + + + + + + + + + + + + -0.3538461626 + -0.0614596680 + + + + + 1.0000000000 + 1.0000000000 + + + + + + + + + 0.5615384579 + -0.5704039931 + + + + + + + + + + + + + + -0.2500000000 + -0.1250000000 + + + + + 0.3076923192 + -0.1280000061 + + + + + + + + + 0.2794871926 + -0.7752695680 + + + + + + + + + + + + + + -0.2615384758 + -0.2612035871 + + + + + 0.1923076957 + -0.1536000073 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0.000000 + 0.000000 + 0.000000 + 1.000000 + + + + + 0.0000000000 + 0.0000000000 + + + + + + + + + + + + + + + + + + + + + 0.3871794939 + -0.2170109153 + + + + + + + + + + + + + + 0.1846153885 + -0.2612035871 + + + + + 1.0000000000 + 1.0000000000 + + + + + + + + + 0.5615384579 + -0.5704039931 + + + + + + + + + + + + + + 0.1538461596 + -0.3533930779 + + + + + 0.3076923192 + -0.1280000061 + + + + + + + + + 0.6999999881 + -0.9955000281 + + + + + + + + + + + + + + 0.0769230798 + -0.3687579930 + + + + + 0.1923076957 + -0.1536000073 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0.000000 + 0.000000 + 0.000000 + 1.000000 + + + + + 0.0000000000 + 0.0000000000 + + + + + + + + + + + + + + + + + + + + + 0.4713114798 + 0.6239523292 + + + + + + + + + + + + + + -0.5000000000 + -0.1875000000 + + + + + 1.0000000000 + 1.0000000000 + + + + + + + + + 0.0000000000 + 0.3125000000 + + + + + + + + + + + + + + -0.3750000000 + -0.3750000000 + + + + + 0.3076923192 + -0.1280000061 + + + + + + + + + -0.3639999926 + -0.1780321598 + + + + + + + + + + + + + + -0.1875000000 + -0.5000000000 + + + + + 0.1923076957 + -0.1536000073 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0.000000 + 0.000000 + 0.000000 + 1.000000 + + + + + 0.0000000000 + 0.0000000000 + + + + + + + + + + + + + + + + + + + + + -0.4713114798 + 0.6239523292 + + + + + + + + + + + + + + 0.5000000000 + -0.1875000000 + + + + + 1.0000000000 + 1.0000000000 + + + + + + + + + 0.0000000000 + 0.3125000000 + + + + + + + + + + + + + + 0.3750000000 + -0.3750000000 + + + + + 0.3076923192 + -0.1280000061 + + + + + + + + + 0.3639999926 + -0.1780321598 + + + + + + + + + + + + + + 0.1875000000 + -0.5000000000 + + + + + 0.1923076957 + -0.1536000073 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0.000000 + 0.000000 + 0.000000 + 1.000000 + + + + + 0.0000000000 + 0.0000000000 + + + + + + + + + + + + + + + + + + + + + -0.2500000000 + -0.8125000000 + + + + + + + + + + + + + + 0.2500000000 + -0.1250000000 + + + + + 1.0000000000 + 1.0000000000 + + + + + + + + + 0.0000000000 + -1.0000000000 + + + + + + + + + + + + + + 0.1875000000 + -0.1875000000 + + + + + 0.3076923192 + -0.1280000061 + + + + + + + + + 0.2019230723 + -1.2694432735 + + + + + + + + + + + + + + 0.1888111830 + -0.3540983498 + + + + + 0.1923076957 + -0.1536000073 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0.000000 + 0.000000 + 0.000000 + 1.000000 + + + + + 0.0000000000 + 0.0000000000 + + + + + + + + + + + + + + + + + + + + + 0.2500000000 + -0.8125000000 + + + + + + + + + + + + + + -0.2500000000 + -0.1250000000 + + + + + 1.0000000000 + 1.0000000000 + + + + + + + + + 0.0000000000 + -1.0000000000 + + + + + + + + + + + + + + -0.1875000000 + -0.1875000000 + + + + + 0.3076923192 + -0.1280000061 + + + + + + + + + -0.2045454532 + -1.2720662355 + + + + + + + + + + + + + + -0.1730769277 + -0.3304918110 + + + + + 0.1923076957 + -0.1536000073 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0.0000000000 + 0.0000000000 + + + + + + + + + + + + + + + + + + 0.000000 + 0.000000 + 0.000000 + 1.000000 + + + 1.000000 + 1.000000 + 1.000000 + 1.000000 + + + + + + 0.0000000000 + 0.3750000000 + + + + + + + + + + + + + + + + + + + + + + + + + 0.0000000000 + 0.3750000000 + + + + + 0.0000000000 + 1.0000000000 + + + + + + 0.000000 + 0.000000 + 0.000000 + 1.000000 + + + 1.000000 + 1.000000 + 1.000000 + 1.000000 + + + + + + + + + + + + + + + + + + + + + + + 1.000000 + 1.000000 + 1.000000 + 0.000000 + + + + + 0.0000000000 + 0.0000000000 + + + + + + + + + + + + + + + + + + + + + -0.0000000150 + 1.0000000000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + -0.5000000000 + 0.5000000000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0.0000000000 + 0.2500000000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0.5000000000 + 0.5000000000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0.0000000000 + 0.1250000000 + + + + + + + + + + + + + + + + 0.000000 + 0.000000 + 0.000000 + 1.000000 + + + + + 0.0500000007 + -0.0500000007 + + + + + 0.1000000015 + 0.1000000015 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 1.000000 + 1.000000 + 1.000000 + 1.000000 + + + + + + + + + + + + + + + + 0.000000 + 0.000000 + 0.000000 + 1.000000 + + + + diff --git a/synfig-core/tags/stable/examples/macwolfen.sif b/synfig-core/tags/stable/examples/macwolfen.sif new file mode 100644 index 0000000..1130e5c --- /dev/null +++ b/synfig-core/tags/stable/examples/macwolfen.sif @@ -0,0 +1,151467 @@ + + +Dr. MacWolfen PI + + + + + + + + +0.099300 +0.097399 +0.097399 +1.000000 + + + + + + +-2.1748626232 +-1.0902546644 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.6028995514 +-1.1104922295 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.9801421165 +-0.8357612491 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.8448269367 +-0.3970119059 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.5167899132 +-0.1919888407 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.9537624121 +0.3962992132 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.9037623405 +0.8796325326 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.9537624121 +0.9962992072 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.3037624359 +1.3629658222 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.4204291105 +3.1796326637 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0462375917 +3.3796324730 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.4129042625 +2.1462991238 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.2204290777 +1.3796325922 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.1352356672 +1.8385730982 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.8113340735 +2.5400106907 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.1280007660 +2.5566773415 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.0083340146 +1.8759196997 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.1652722508 +2.4807760715 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.7188345194 +2.4315705299 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.8685689569 +1.9219064713 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.2204290777 +1.6962991953 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.2129042596 +2.1629657745 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.1370957494 +3.1462991238 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.2370957136 +2.8962991238 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.7204290628 +1.4629658461 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.1704291105 +0.8296325207 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.0329353809 +0.6240029335 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.0370957851 +0.3962992132 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.2870957851 +-0.3537007868 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.0739400387 +-0.5856331587 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + +-4.4653301239 +5.0811357498 + + + + +-3.5066161156 +-5.3788838387 + + + + + +0.363007 +0.000000 +0.000000 +1.000000 + + +1.000000 +0.000601 +0.000000 +1.000000 + + +1.000000 +0.142172 +0.000000 +1.000000 + + +1.000000 +0.314467 +0.000000 +1.000000 + + +1.000000 +0.953397 +0.000000 +1.000000 + + + + + + + + + + + + + + + + + + + + + + +-5.0000000000 +-5.0000000000 + + + + +1.0000000000 +1.0000000000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.327474 +0.555184 +0.000000 +1.000000 + + + + + + + + + + + + + + + +0.571600 +0.749358 +0.000001 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +3.8315341473 +-3.8259627819 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-4.6017990112 +-3.4759628773 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-4.5517992973 +-2.3092961311 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-4.5684657097 +-2.0092961788 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.6982009411 +-3.5592961311 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-4.8851323128 +-0.1926294863 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-4.8517990112 +2.1907038689 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.8315341473 +-3.6759629250 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-3.3684659004 +5.0573706627 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.0184657965 +4.9740371704 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.8315341473 +-3.5259628296 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.5315341949 +6.1407036781 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +4.7148675919 +6.0740370750 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +4.2148675919 +-3.7759628296 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.571600 +0.749358 +0.000001 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +3.7958319187 +-3.9036154747 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-4.4375014305 +-3.7036154270 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-4.4041681290 +-3.4702820778 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.6624987125 +-3.8369486332 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.6958320141 +-3.4369487762 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-4.6541681290 +-1.2702820301 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-4.6541681290 +-1.0869487524 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.5624985695 +-3.3536152840 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.8624985218 +-3.4202821255 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-4.4541678429 +-0.6202820539 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-4.4541678429 +-0.3036153913 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.7624986172 +-3.2869486809 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.8458318710 +-2.9036154747 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-4.6041679382 +3.1463847160 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-4.5708346367 +3.9297180176 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.7458319664 +-2.7536153793 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.9958319664 +4.5797181129 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.2958319187 +4.6297178268 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.8791654110 +-3.6369488239 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.5124986172 +4.6797180176 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.6624987125 +4.6797180176 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.8958320618 +-3.7869486809 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + +0.189396 +0.189396 +0.189396 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-2.0866868496 +-0.9774037004 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.5931537151 +-1.1135507822 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.9253525734 +-0.6778802276 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.5114655495 +-0.2748849988 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.9634737968 +0.2588113844 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.3644268513 +1.4078923464 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.3896139860 +1.8555892706 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.7599339485 +0.8959795237 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.0247398615 +1.1029230356 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.9593893290 +0.9449924827 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.8286881447 +1.0212347507 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.6380823255 +0.7761701345 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.8341340423 +0.9449924827 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.9866187572 +0.8306289315 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.1173199415 +0.9667760134 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.8089468479 +0.6236854792 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.0376739502 +1.1464900970 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.3317515850 +0.3132702112 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.2881844044 +-0.2585473657 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.9559856653 +-0.6234214306 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + +1.000000 +1.000000 +1.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +1.1925983429 +-1.5669664145 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.6870474815 +-1.6284523010 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.3454591036 +-1.9495453835 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0858519301 +-2.1135077477 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.2694000006 +-3.0084693432 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.2830635309 +-3.3158988953 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.3837164938 +-3.2182986736 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.4401941895 +-3.3773849010 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.1916886568 +-3.1246094704 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.2506127357 +-4.4158134460 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.0559629202 +-4.2245240211 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.5757516623 +-0.9612906575 + + + + +1.5763763189 +-3.9690003395 + + + + + +0.899070 +0.899070 +0.899070 +1.000000 + + +0.854911 +0.854912 +0.780928 +1.000000 + + + + + + + + + + + + + + + + + + + + + + +0.018551 +0.021198 +0.008135 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +1.1925983429 +-1.5669664145 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.6870474815 +-1.6284523010 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.3454591036 +-1.9495453835 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0858519301 +-2.1135077477 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.2694000006 +-3.0084693432 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.2830635309 +-3.3158988953 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.3837164938 +-3.2182986736 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.4401941895 +-3.3773849010 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.1916886568 +-3.1246094704 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.2506127357 +-4.4158134460 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.0559629202 +-4.2245240211 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + +1.000000 +1.000000 +1.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-1.4103051424 +-3.9854121208 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.1711933613 +-3.4320390224 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.9954359531 +-4.4296321869 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.018551 +0.021198 +0.008135 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-1.4103051424 +-3.9854121208 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.1711933613 +-3.4320390224 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.9954359531 +-4.4296321869 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.000000 +1.000000 +1.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-2.5902199745 +-2.9565713406 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-3.6233043671 +-3.8103599548 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.9669542313 +-4.6812243462 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.1985204220 +-4.1971969604 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.1131656170 +-3.4346928596 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.5757516623 +-0.9612906575 + + + + +1.5763763189 +-3.9690003395 + + + + + +0.899070 +0.899070 +0.899070 +1.000000 + + +0.854911 +0.854912 +0.780928 +1.000000 + + + + + + + + + + + + + + + + + + + + + + +0.018551 +0.021198 +0.008135 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-2.5902199745 +-2.9565713406 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-3.6233043671 +-3.8103599548 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.9669542313 +-4.6812243462 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.1985204220 +-4.1971969604 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.1131656170 +-3.4346928596 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.018551 +0.021198 +0.008135 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-3.4440085888 +-3.4346928596 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-3.4781601429 +-3.8274357319 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.3938486576 +-4.3994741440 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.4888325930 +-4.1177239418 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.2668380737 +-3.5208518505 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.3767728806 +-2.9907228947 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +0.4568319917 +-2.5298340321 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.5165972114 +-3.3750848770 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.1237443015 +-3.8788201809 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.2347368300 +-3.5202288628 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.2688883841 +-3.7763655186 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.4054945707 +-3.5458426476 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.4311082363 +-3.8019790649 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.0116845369 +-3.7678275108 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.1175156832 +-3.7513949871 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.2866853476 +-3.7037417889 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-3.4558141232 +-3.8640279770 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-3.4731833935 +-4.3933014870 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.5313333273 +-4.5323333740 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.6446655393 +-3.4519257545 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + +1.000000 +1.000000 +1.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +1.4994533062 +-2.6510515213 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.2943251133 +-2.3484873772 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.0738122463 +-3.3587439060 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.7456071377 +-4.2202825546 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.000000 +1.000000 +1.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +1.4374305010 +-1.4891904593 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.0640971661 +-1.5691905022 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.4374305308 +-2.3825237751 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.6240972281 +-3.4091904163 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.5633333325 +-4.5323333740 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.5358991623 +-4.6621479988 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.018551 +0.021198 +0.008135 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +1.4374305010 +-1.4891904593 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.0640971661 +-1.5691905022 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.4374305308 +-2.3825237751 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.6240972281 +-3.4091904163 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.5633333325 +-4.5323333740 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.5358991623 +-4.6621479988 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.000000 +1.000000 +1.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +1.5496633053 +-1.1885943413 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.0584276915 +-1.9895131588 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.4994533062 +-2.6407952309 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.8727064133 +-4.1635956764 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.2451088428 +-1.7442942858 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.309266 +0.309266 +0.300204 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +1.7015154362 +-1.3569694757 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.3302224874 +-2.4048976898 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.1404789686 +-2.0869491100 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.0994533300 +-2.2664361000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.2542325258 +-2.4328536987 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.5045814514 +-2.7125899792 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.8727064133 +-4.1635956764 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.2451088428 +-1.7442942858 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.140296 +0.140296 +0.131234 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +1.6455620527 +-2.4319396019 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.5524511337 +-2.5840430260 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.5310246944 +-3.3729088306 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.7178088427 +-4.1411905289 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.8235356808 +-3.8292963505 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.8993065357 +-2.7491202354 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.5757516623 +-0.9612906575 + + + + +1.5763763189 +-3.9690003395 + + + + + +0.899070 +0.899070 +0.899070 +1.000000 + + +0.854911 +0.854912 +0.780928 +1.000000 + + + + + + + + + + + + + + + + + + + + + + +0.018551 +0.021198 +0.008135 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +1.4994533062 +-2.6510515213 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.2943251133 +-2.3484873772 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.0738122463 +-3.3587439060 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.7456071377 +-4.2202825546 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.018551 +0.021198 +0.008135 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +1.5496633053 +-1.1885943413 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.0584276915 +-1.9895131588 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.4994533062 +-2.6407952309 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.8727064133 +-4.1635956764 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.2451088428 +-1.7442942858 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + +0.320573 +0.320582 +0.171182 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-0.9720535278 +-1.0349979401 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.8081191182 +-1.0131267309 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.6551136374 +-1.1224827766 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.5458240509 +-0.9529808760 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.3982830644 +-1.1334183216 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.3381737769 +-0.9803199172 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.2507420778 +-1.1115471125 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.2015617341 +-0.9967232943 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.0048404299 +-1.0787403584 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0334109366 +-1.2318387032 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.5676819682 +-1.3247913122 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.9392666817 +-1.2865167856 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.0266983509 +-1.1388860941 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.5580011010 +-1.1115471125 + + + + +0.4432469904 +-0.4171364307 + + + + + +0.035754 +0.035754 +0.001373 +1.000000 + + +0.320573 +0.320582 +0.171182 +1.000000 + + +0.035754 +0.035754 +0.001373 +1.000000 + + + + + + + + + + + + + + + + + + + + + + +0.015396 +0.009423 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-0.9720535278 +-1.0349979401 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.8081191182 +-1.0131267309 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.6551136374 +-1.1224827766 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.5458240509 +-0.9529808760 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.3982830644 +-1.1334183216 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.3381737769 +-0.9803199172 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.2507420778 +-1.1115471125 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.2015617341 +-0.9967232943 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.0048404299 +-1.0787403584 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0334109366 +-1.2318387032 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.5676819682 +-1.3247913122 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.9392666817 +-1.2865167856 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.0266983509 +-1.1388860941 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + +0.192937 +0.008349 +0.058655 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +1.0214847326 +-0.1704005897 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.6618262529 +-0.8108180761 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.6607589722 +-0.2045561820 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.8581975698 +0.1455386877 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.230686 +0.056827 +0.155531 +1.000000 + + +0.088041 +0.000000 +0.018650 +1.000000 + + + + + +1.5813897848 +-0.3442597389 + + + + + + + + + + + + + + + + + + + + + + + + +0.021888 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +1.0214847326 +-0.1704005897 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.6618262529 +-0.8108180761 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.6607589722 +-0.2045561820 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.8581975698 +0.1455386877 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + +0.734713 +0.097399 +0.079487 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +2.3482394218 +-0.5765280724 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.2211861610 +-0.4584471583 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.3974198401 +-0.7569654584 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.8365435600 +-0.7981948256 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.4172438383 +-0.6137371063 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.0662617683 +-0.7093818784 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.9979441166 +-0.7845312953 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.5265520811 +-0.7162136436 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.9390200973 +-1.0099796057 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.4247422516 +-1.1069047451 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + +0.562703 +0.039153 +0.058655 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-1.0141695738 +-0.6957183480 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.9921151996 +-0.8414524794 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.7657315731 +-0.6415871978 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.1312637329 +-0.8820042610 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.0708220005 +-0.6456483006 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.7386540174 +-0.3169769645 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.7403669357 +-0.7715224028 + + + + +1.9799127579 +-1.0197741985 + + + + + +0.000183 +0.000000 +0.000000 +0.557940 + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.116519 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-0.0559831448 +-0.9384242296 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.1706684530 +-0.9076597691 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.2713677585 +-0.9132533073 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.3608782589 +-0.8936759830 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.5147243738 +-0.8936759830 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.6098293066 +-0.8713018298 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.6993398070 +-0.8713018298 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.8801136613 +-0.8525654078 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.0739192963 +-0.8280330300 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.7721713185 +-0.8501121998 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.2622987628 +-0.8754850030 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.1203188077 +-0.8768953681 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0307304189 +-0.8980618119 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.3132476211 +-0.8824889064 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.4744978547 +-0.8564540744 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.6125483513 +-0.8321470618 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.7188420296 +-0.8237567544 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.8475133777 +-0.8041793704 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.9594014883 +-0.7706181407 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.1371158361 +-0.7433252335 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.2391217947 +-0.7258698344 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.3202406168 +-0.6811215878 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.4377231598 +-0.6447635889 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.5468140841 +-0.6363732815 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.6391217709 +-0.6251862049 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.7314294577 +-0.5944217443 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.9020588398 +-0.5524702072 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.0934000015 +-0.6394370198 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.5061402321 +-0.7723023891 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.1999609470 +-0.8433341384 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.0628979206 +-0.8405373693 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.9733874798 +-0.8377406001 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.8894714117 +-0.8629115224 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.8167441487 +-0.8573179841 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.7775833011 +-0.8824889064 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.7188420296 +-0.8768953681 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.6936672330 +-0.8908792138 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.6433175802 +-0.8852856755 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.6573035717 +-0.9132533073 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.5705902576 +-0.8964727521 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.5677930713 +-0.9272371531 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.4950658083 +-0.9104565382 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.4531077743 +-0.9496113062 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.3496112525 +-0.9300339222 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.2908700109 +-0.9216436148 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.2321287394 +-0.9412209988 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.1441707164 +-0.9291443229 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.1034574136 +-0.9468145370 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0307304189 +-0.9308686256 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.021888 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +2.3482394218 +-0.5765280724 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.2211861610 +-0.4584471583 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.3974198401 +-0.7569654584 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.8365435600 +-0.7981948256 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.4172438383 +-0.6137371063 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.0662617683 +-0.7093818784 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.9979441166 +-0.7845312953 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.5265520811 +-0.7162136436 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.9390200973 +-1.0099796057 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.4247422516 +-1.1069047451 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + +0.171751 +0.079487 +0.171751 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-1.4017297029 +-1.3611403704 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.3580138683 +-1.2080420256 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.3796910048 +-1.1205571890 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.6201281548 +-0.6940687299 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.0870974064 +-0.6358971000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + +1.9543411732 +-0.6676326394 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.8756955862 +-0.6894985437 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.8188960552 +-0.7594693899 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.7358813286 +-0.7157375813 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.6965585947 +-0.7682157159 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.6616050005 +-0.8556792736 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.5392674208 +-0.7857084274 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.4780987501 +-0.9518892169 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.3513920307 +-0.8600524664 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.2814848423 +-1.0218600035 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.1635165215 +-0.9912478328 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.1023477316 +-1.0568454266 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.0280714035 +-1.0174869299 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.9756410122 +-1.1268162727 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.8620418906 +-1.0349795818 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.8139807582 +-1.1574286222 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.6872740388 +-1.1224431992 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.5387213230 +-1.2317725420 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.3814302087 +-1.1792944670 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.3377382457 +-1.2361457348 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.2634618878 +-1.1574286222 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.1717087477 +-1.3192361593 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0799556077 +-1.2405189276 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.0685971007 +-1.3585947752 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.2127806097 +-1.2011603117 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.3482257128 +-1.3629679680 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.5797931552 +-1.2273994684 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.7545610666 +-1.3892070055 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.8987445831 +-1.2011603117 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.0123436451 +-1.3892070055 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.1303119659 +-1.2580116987 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.1958500147 +-1.3892070055 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.2570186853 +-1.2667579651 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.3225567341 +-1.3760874271 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.3618794680 +-1.2273994684 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.035071 +0.000000 +0.058773 +1.000000 + + +0.135850 +0.065706 +0.140414 +1.000000 + + + + + + + + + + + + + + + + + + + + + + +0.004412 +0.000798 +0.042182 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-1.4017297029 +-1.3611403704 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.3580138683 +-1.2080420256 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.3796910048 +-1.1205571890 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.6201281548 +-0.6940687299 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.0870974064 +-0.6358971000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + +0.171751 +0.079487 +0.171751 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-0.9700357914 +-0.3769362867 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.9208554626 +-0.5190991163 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.5326964855 +-0.4425498843 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.3906646967 +-0.2684360147 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.6325113773 +-0.0684746653 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + +-0.9842507839 +-0.3865379989 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.9184425473 +-0.4510510564 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.8625180125 +-0.2412934303 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.7422803640 +-0.4258801341 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.6444124579 +-0.2105289847 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.4850276411 +-0.4454575181 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.3032729924 +-0.1909516007 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.0879636705 +-0.4146930575 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.0180580411 +-0.2916352451 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.1553079188 +-0.4286769032 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.2783418298 +-0.2748546600 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.4265417457 +-0.4035059810 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.5635567904 +-0.2552772760 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.7313302755 +-0.3727415502 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.7956434488 +-0.2049354464 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.9046962261 +-0.2664643526 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.9913792014 +-0.1937483698 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.0948395729 +-0.3112126291 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.2262620926 +-0.1545936167 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.3744620085 +-0.2217160612 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.4247940779 +-0.1014550254 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.5776621103 +-0.1338824481 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.035071 +0.000000 +0.058773 +1.000000 + + +0.135850 +0.065706 +0.140414 +1.000000 + + + + + + + + + + + + + + + + + + + + + + +0.004412 +0.000798 +0.042182 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-0.9700357914 +-0.3769362867 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.9208554626 +-0.5190991163 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.5326964855 +-0.4425498843 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.3906646967 +-0.2684360147 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.6325113773 +-0.0684746653 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + +1.017215 +1.017224 +0.866143 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-0.9809077978 +-0.3991800249 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.9431372285 +-0.7421679497 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.8912536502 +-0.6114726067 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.8079750538 +-0.7421679497 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.7333406806 +-0.5980824828 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.5950810909 +-0.8916634321 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.5064704418 +-0.5667058825 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.4949532449 +-0.4469090104 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.6238741279 +-0.3646197915 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.7407284379 +-0.4646431208 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.8427011967 +-0.3732598424 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.9005518556 +-0.4792445898 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.7178145647 +-0.8072049618 + + + + +-0.7632691264 +-0.4540580809 + + + + + +1.000000 +1.000000 +0.956527 +1.000000 + + +1.000000 +1.000000 +0.872733 +1.000000 + + +0.488215 +0.482334 +0.400562 +1.000000 + + +0.070963 +0.060287 +0.008584 +1.000000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + +1.017215 +1.017224 +0.866143 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-0.2962057292 +-0.3936858177 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.4640882611 +-0.5124201179 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.3478854299 +-0.8883433342 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.1139054820 +-0.4809219539 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.3192131519 +-0.8736385107 + + + + +-0.3576746881 +-0.3701420128 + + + + + +1.000000 +1.000000 +0.956527 +1.000000 + + +1.000000 +1.000000 +0.872733 +1.000000 + + +0.488215 +0.482334 +0.400562 +1.000000 + + +0.070963 +0.060287 +0.008584 +1.000000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + +1.017215 +1.017224 +0.866143 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +0.0187941529 +-0.4330144525 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.0923716202 +-0.4991569817 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0278660618 +-0.6250115633 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.1422909349 +-0.4770723283 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0479197055 +-0.6743378043 + + + + +0.0199476779 +-0.4051070213 + + + + + +1.000000 +1.000000 +0.956527 +1.000000 + + +1.000000 +1.000000 +0.872733 +1.000000 + + +0.488215 +0.482334 +0.400562 +1.000000 + + +0.070963 +0.060287 +0.008584 +1.000000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + +1.017215 +1.017224 +0.866143 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +0.1717169434 +-0.4829093218 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.2775619328 +-0.6235196590 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.3354459405 +-0.5358449817 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.3797149062 +-0.5105987787 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.4101399481 +-0.4658493698 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.3618178070 +-0.4067801535 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.2079028189 +-0.4318398237 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.3101574779 +-0.6393727660 + + + + +0.3066609502 +-0.3946175277 + + + + + +1.000000 +1.000000 +0.956527 +1.000000 + + +1.000000 +1.000000 +0.872733 +1.000000 + + +0.488215 +0.482334 +0.400562 +1.000000 + + +0.070963 +0.060287 +0.008584 +1.000000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + +1.017215 +1.017224 +0.866143 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +0.4472998381 +-0.4516119063 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.5837417245 +-0.3817204833 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.6709978580 +-0.3565217853 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.7300582528 +-0.4120110571 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.7101449966 +-0.4767828286 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.6374431252 +-0.4907666743 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.5954997540 +-0.4600022137 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.5787224174 +-0.5662794113 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.6353322864 +-0.5694426894 + + + + +0.5688987374 +-0.3771350086 + + + + + +1.000000 +1.000000 +0.956527 +1.000000 + + +1.000000 +1.000000 +0.872733 +1.000000 + + +0.488215 +0.482334 +0.400562 +1.000000 + + +0.070963 +0.060287 +0.008584 +1.000000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + +1.017215 +1.017224 +0.866143 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +0.7450396419 +-0.4133504927 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.7951514721 +-0.3220616877 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.9488424063 +-0.3477109373 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.0043233633 +-0.2993815839 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.0991779566 +-0.3548708558 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.0820429325 +-0.5383117199 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.0065448284 +-0.4879699051 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.9506203532 +-0.6334018707 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.8112588525 +-0.4598898590 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.7772544026 +-0.4795795977 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.9779896140 +-0.5869252086 + + + + +0.9185490608 +-0.2967154384 + + + + + +1.000000 +1.000000 +0.956527 +1.000000 + + +1.000000 +1.000000 +0.872733 +1.000000 + + +0.488215 +0.482334 +0.400562 +1.000000 + + +0.070963 +0.060287 +0.008584 +1.000000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + +1.017215 +1.017224 +0.866143 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +1.1081265211 +-0.3405510485 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.1582384109 +-0.2814818323 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.2459341288 +-0.2779018879 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.3157328367 +-0.2474722862 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.3868314028 +-0.2614316940 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.3840352297 +-0.4460183680 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.2853077650 +-0.3763505518 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.2470202446 +-0.4655957520 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.1832942963 +-0.3674006760 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.1457104683 +-0.3906703591 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.3101574183 +-0.4575545788 + + + + +1.2507169247 +-0.2547573745 + + + + + +1.000000 +1.000000 +0.956527 +1.000000 + + +1.000000 +1.000000 +0.872733 +1.000000 + + +0.488215 +0.482334 +0.400562 +1.000000 + + +0.070963 +0.060287 +0.008584 +1.000000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + +1.017215 +1.017224 +0.866143 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +1.4642786980 +-0.3369710743 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.3944799900 +-0.2635820508 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.4177461863 +-0.1884030700 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.5627126694 +-0.1490235925 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.5823994875 +-0.2474722862 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.5018625259 +-0.2546321750 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.5409266949 +-0.4610510767 + + + + +1.4640035629 +-0.1673447937 + + + + + +1.000000 +1.000000 +0.956527 +1.000000 + + +1.000000 +1.000000 +0.872733 +1.000000 + + +0.488215 +0.482334 +0.400562 +1.000000 + + +0.070963 +0.060287 +0.008584 +1.000000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + +-1.0009278059 +-0.5146928430 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.9260472059 +-0.5153453350 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.8912314177 +-0.5835470557 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.8070890307 +-0.4961513877 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.7392285466 +-0.5904119611 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.5921974182 +-0.4848400950 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.4731061161 +-0.5770986080 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.3375129104 +-0.4788453579 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.1626172960 +-0.5240418315 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0240690149 +-0.5102863908 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.1286614537 +-0.4759437740 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.1753831953 +-0.4827754796 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.2913252115 +-0.4650898874 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.4345817566 +-0.4538307488 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.5875418782 +-0.4446169734 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.6428287029 +-0.3967054188 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.7423449159 +-0.4206612110 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.8252751231 +-0.3745924234 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.9897755980 +-0.4339106381 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.0877147913 +-0.3637001812 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.1138318777 +-0.3522705734 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.1807570457 +-0.3490049839 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.2770639658 +-0.3522705734 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.3782677650 +-0.2820601463 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.4843685627 +-0.2265449017 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.5792018175 +-0.2092455328 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.127520 +0.038155 +0.000000 +1.000000 + + +0.229481 +0.113844 +0.000000 +1.000000 + + +0.272342 +0.138934 +0.000000 +1.000000 + + +0.508209 +0.449521 +0.000000 +1.000000 + + +0.302824 +0.302833 +0.000000 +0.000000 + + + + + + + + + + + + + + + + + + + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + +0.015263 +0.010161 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +1.4642786980 +-0.3369710743 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.3944799900 +-0.2635820508 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.4177461863 +-0.1884030700 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.5627126694 +-0.1490235925 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.5823994875 +-0.2474722862 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.5018625259 +-0.2546321750 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.015263 +0.010161 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +1.1081265211 +-0.3405510485 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.1582384109 +-0.2814818323 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.2459341288 +-0.2779018879 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.3157328367 +-0.2474722862 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.3868314028 +-0.2614316940 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.3840352297 +-0.4460183680 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.2853077650 +-0.3763505518 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.2470202446 +-0.4655957520 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.1832942963 +-0.3674006760 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.1457104683 +-0.3906703591 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.015263 +0.010161 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +0.7450396419 +-0.4133504927 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.7951514721 +-0.3220616877 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.9488424063 +-0.3477109373 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.0043233633 +-0.2993815839 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.0991779566 +-0.3548708558 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.0820429325 +-0.5383117199 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.0065448284 +-0.4879699051 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.9506203532 +-0.6334018707 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.8112588525 +-0.4598898590 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.7772544026 +-0.4795795977 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.015263 +0.010161 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +0.4472998381 +-0.4516119063 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.5837417245 +-0.3817204833 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.6709978580 +-0.3565217853 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.7300582528 +-0.4120110571 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.7101449966 +-0.4767828286 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.6374431252 +-0.4907666743 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.5954997540 +-0.4600022137 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.5787224174 +-0.5662794113 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.015263 +0.010161 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +0.1717169434 +-0.4829093218 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.2775619328 +-0.6235196590 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.3354459405 +-0.5358449817 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.3797149062 +-0.5105987787 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.4101399481 +-0.4658493698 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.3618178070 +-0.4067801535 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.2079028189 +-0.4318398237 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.015263 +0.010161 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +0.0187941529 +-0.4330144525 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.0923716202 +-0.4991569817 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0278660618 +-0.6250115633 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.1422909349 +-0.4770723283 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.015263 +0.010161 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-0.2962057292 +-0.3936858177 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.4640882611 +-0.5124201179 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.3478854299 +-0.8883433342 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.1139054820 +-0.4809219539 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.015263 +0.010161 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-0.9809077978 +-0.3991800249 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.9431372285 +-0.7421679497 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.8912536502 +-0.6114726067 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.8079750538 +-0.7421679497 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.7333406806 +-0.5980824828 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.5950810909 +-0.8916634321 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.5064704418 +-0.5667058825 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.4949532449 +-0.4469090104 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.6238741279 +-0.3646197915 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.7407284379 +-0.4646431208 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.8427011967 +-0.3732598424 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.9005518556 +-0.4792445898 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + +1.022132 +1.017224 +0.866143 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-1.2439440489 +-1.2559621334 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.3089700937 +-1.2848682404 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.3643217087 +-1.2112901211 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.3482725620 +-1.0403670073 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.2685714960 +-1.0204445124 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.2626806498 +-1.0543031693 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.2287209034 +-0.9656575322 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.1465290785 +-0.9805994034 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.1391798258 +-1.0825256109 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.1019761562 +-0.9488078952 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.9683114290 +-0.9451946616 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.9296513796 +-1.1981499195 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.0163527727 +-1.3173875809 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.1247295141 +-1.2342826128 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.1933681965 +-1.3065477610 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.1641741991 +-0.9732884169 + + + + +-1.1641741991 +-1.2787594795 + + + + + +1.000000 +1.000000 +0.956527 +1.000000 + + +1.000000 +1.000000 +0.872733 +1.000000 + + +0.488215 +0.482334 +0.400562 +1.000000 + + +0.070963 +0.060287 +0.008584 +1.000000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + +1.017215 +1.017224 +0.866143 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-0.7105287910 +-1.2644366026 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.8896659017 +-1.1944657564 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.8197587132 +-0.9451946616 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.6799443960 +-0.9233287573 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.6056680679 +-1.1944657564 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.7356841564 +-0.8775436878 + + + + +-0.6718664765 +-1.2468446493 + + + + + +1.000000 +1.000000 +0.956527 +1.000000 + + +1.000000 +1.000000 +0.872733 +1.000000 + + +0.488215 +0.482334 +0.400562 +1.000000 + + +0.070963 +0.060287 +0.008584 +1.000000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + +1.017215 +1.017224 +0.866143 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-0.3975444734 +-1.2620469332 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.5510146618 +-1.2202119827 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.5313917398 +-0.8795970082 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.4614845514 +-0.7702675462 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.2554679811 +-1.1909655333 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.4804134667 +-0.9094585776 + + + + +-0.4302710295 +-1.2650816441 + + + + + +1.000000 +1.000000 +0.956527 +1.000000 + + +1.000000 +1.000000 +0.872733 +1.000000 + + +0.488215 +0.482334 +0.400562 +1.000000 + + +0.070963 +0.060287 +0.008584 +1.000000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + +1.017215 +1.017224 +0.866143 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +0.0286850240 +-1.2237722874 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.1844297349 +-1.1964333057 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.0883898214 +-0.9437626004 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0467517450 +-1.0941432714 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.1628592908 +-0.9989656806 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.2466089875 +-1.1836103201 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0347770900 +-0.9731110930 + + + + +0.0702223703 +-1.2177919149 + + + + + +1.000000 +1.000000 +0.956527 +1.000000 + + +1.000000 +1.000000 +0.872733 +1.000000 + + +0.488215 +0.482334 +0.400562 +1.000000 + + +0.070963 +0.060287 +0.008584 +1.000000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + +1.017215 +1.017224 +0.866143 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +0.6680293083 +-1.0980129242 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.4713079631 +-1.1526908875 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.2980008423 +-1.1531534195 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.2675464153 +-0.9799301028 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.3722335398 +-1.0560722351 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.5092785358 +-0.8809453845 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.6844227314 +-1.0050603151 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.7390675545 +-0.9066398740 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.8374282122 +-1.0652060509 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.5345555544 +-0.8915507793 + + + + +0.5877234936 +-1.1397777796 + + + + + +1.000000 +1.000000 +0.956527 +1.000000 + + +1.000000 +1.000000 +0.872733 +1.000000 + + +0.488215 +0.482334 +0.400562 +1.000000 + + +0.070963 +0.060287 +0.008584 +1.000000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + +1.017215 +1.017224 +0.866143 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +0.9737086892 +-1.0408438444 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.8785385489 +-1.0218082666 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.8804419637 +-0.8333564997 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.9813222885 +-0.9209199548 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.0707821846 +-0.8067067862 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.1507251263 +-0.8523920774 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.1868897676 +-0.7572143674 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.3353551626 +-0.8733311296 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.1526285410 +-0.9589910507 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.0365209579 +-0.9666052461 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.0166113377 +-0.6326855421 + + + + +1.1300362349 +-1.0050259829 + + + + + +1.000000 +1.000000 +0.956527 +1.000000 + + +1.000000 +1.000000 +0.872733 +1.000000 + + +0.488215 +0.482334 +0.400562 +1.000000 + + +0.070963 +0.060287 +0.008584 +1.000000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + +1.017215 +1.017224 +0.866143 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +1.4324285984 +-0.8657169342 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.3429687023 +-0.8257423043 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.3486789465 +-0.7039148808 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.4400422573 +-0.7400823832 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.4590762854 +-0.5478235483 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.5923144817 +-0.6696509123 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.6113485098 +-0.6030265689 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.6950981617 +-0.7248539925 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.6398994923 +-0.7838641405 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.5199851990 +-0.7876712680 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.4561328888 +-0.4979337752 + + + + +1.5270234346 +-0.8241749406 + + + + + +1.000000 +1.000000 +0.956527 +1.000000 + + +1.000000 +1.000000 +0.872733 +1.000000 + + +0.488215 +0.482334 +0.400562 +1.000000 + + +0.070963 +0.060287 +0.008584 +1.000000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + +1.017215 +1.017224 +0.866143 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +1.7243379354 +-0.6698223352 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.8061842918 +-0.6983756423 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.8670930862 +-0.6488832235 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.9203883410 +-0.6698223352 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.9851040840 +-0.6374619007 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.9356156588 +-0.5594162345 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.8975476027 +-0.5974873304 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.8214114904 +-0.5308629274 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.7890536785 +-0.6070050597 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.7452753782 +-0.5727410913 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.8531199694 +-0.3206288218 + + + + +1.8814762831 +-0.6894231439 + + + + + +1.000000 +1.000000 +0.956527 +1.000000 + + +1.000000 +1.000000 +0.872733 +1.000000 + + +0.488215 +0.482334 +0.400562 +1.000000 + + +0.070963 +0.060287 +0.008584 +1.000000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + +1.9778206348 +-0.6043805480 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.9031801224 +-0.6190664172 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.8016200066 +-0.6386476159 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.7306503057 +-0.6472144127 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.6792584658 +-0.6680194139 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.6033942699 +-0.7084055543 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.5348718166 +-0.7475679517 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.4553366899 +-0.7855064869 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.3513294458 +-0.8099829555 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.3060556650 +-0.8307879567 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.1714578867 +-0.9237985611 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.0760158300 +-0.9213508964 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.9854682684 +-0.9482750297 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.8423052430 +-0.9776468277 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.6918004751 +-1.0339426994 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.5486374497 +-1.1073721647 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.3773312271 +-1.0963577032 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.2831128240 +-1.1000292301 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.2451807261 +-1.1281771660 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0439930260 +-1.1240791082 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.1451527029 +-1.1502059698 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.2846449018 +-1.1697871685 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.3984411657 +-1.1746823788 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.5281444192 +-1.1551012993 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.5709710121 +-1.1098197699 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.6248100996 +-1.1453106403 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.7447244525 +-1.2040542364 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.8793221712 +-1.1575489044 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.9135833979 +-1.1355201006 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.0029073954 +-1.1453106403 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.1399523020 +-1.1330723763 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.2721028328 +-1.1771301031 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.3736629486 +-1.1771301031 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.127520 +0.038155 +0.000000 +1.000000 + + +0.229481 +0.113844 +0.000000 +1.000000 + + +0.272342 +0.138934 +0.000000 +1.000000 + + +0.508209 +0.449521 +0.000000 +1.000000 + + +0.302824 +0.302833 +0.000000 +0.000000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + +0.015263 +0.010161 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +1.7243379354 +-0.6698223352 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.8061842918 +-0.6983756423 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.8670930862 +-0.6488832235 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.9203883410 +-0.6698223352 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.9851040840 +-0.6374619007 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.9356156588 +-0.5594162345 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.8975476027 +-0.5974873304 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.8214114904 +-0.5308629274 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.7890536785 +-0.6070050597 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.7452753782 +-0.5727410913 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.015263 +0.010161 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +1.4324285984 +-0.8657169342 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.3429687023 +-0.8257423043 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.3486789465 +-0.7039148808 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.4400422573 +-0.7400823832 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.4590762854 +-0.5478235483 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.5923144817 +-0.6696509123 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.6113485098 +-0.6030265689 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.6950981617 +-0.7248539925 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.6398994923 +-0.7838641405 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.5199851990 +-0.7876712680 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.015263 +0.010161 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +0.9737086892 +-1.0408438444 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.8785385489 +-1.0218082666 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.8804419637 +-0.8333564997 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.9813222885 +-0.9209199548 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.0707821846 +-0.8067067862 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.1507251263 +-0.8523920774 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.1868897676 +-0.7572143674 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.3353551626 +-0.8733311296 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.1526285410 +-0.9589910507 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.0365209579 +-0.9666052461 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.015263 +0.010161 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +0.6680293083 +-1.0980129242 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.4713079631 +-1.1526908875 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.2980008423 +-1.1531534195 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.2675464153 +-0.9799301028 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.3722335398 +-1.0560722351 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.5092785358 +-0.8809453845 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.6844227314 +-1.0050603151 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.7390675545 +-0.9066398740 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.8374282122 +-1.0652060509 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.015263 +0.010161 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +0.0286850240 +-1.2237722874 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.1844297349 +-1.1964333057 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.0883898214 +-0.9437626004 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0467517450 +-1.0941432714 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.1628592908 +-0.9989656806 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.2466089875 +-1.1836103201 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.015263 +0.010161 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-0.3975444734 +-1.2620469332 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.5510146618 +-1.2202119827 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.5313917398 +-0.8795970082 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.4614845514 +-0.7702675462 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.2554679811 +-1.1909655333 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.015263 +0.010161 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-0.7105287910 +-1.2644366026 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.8896659017 +-1.1944657564 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.8197587132 +-0.9451946616 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.6799443960 +-0.9233287573 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.6056680679 +-1.1944657564 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.015263 +0.010161 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-1.2439440489 +-1.2559621334 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.3089700937 +-1.2848682404 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.3643217087 +-1.2112901211 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.3482725620 +-1.0403670073 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.2685714960 +-1.0204445124 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.2626806498 +-1.0543031693 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.2287209034 +-0.9656575322 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.1465290785 +-0.9805994034 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.1391798258 +-1.0825256109 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.1019761562 +-0.9488078952 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.9683114290 +-0.9451946616 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.9296513796 +-1.1981499195 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.0163527727 +-1.3173875809 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.1247295141 +-1.2342826128 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.1933681965 +-1.3065477610 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-1.0129889250 +-0.4822082222 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.8994877338 +-0.5224828124 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.7383893132 +-0.5151601434 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.5480003357 +-0.4565789104 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.4747737646 +-0.5041761994 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.3539499640 +-0.4822082222 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.1123023778 +-0.4712242186 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0121827461 +-0.4712242186 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.1000545993 +-0.4199656546 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.1586358398 +-0.4016590118 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.2867822945 +-0.3577230871 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.4332353771 +-0.3979976773 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.7224802375 +-0.3357551098 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.9092079401 +-0.2844965458 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.0959355831 +-0.2881578803 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.3009699583 +-0.2552059293 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.4034870863 +-0.2735125422 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.4803749323 +-0.2185926437 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.5865534544 +-0.2405606061 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.6048600674 +-0.1490274370 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.5211072564 +-0.1673340648 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.0166501999 +-0.4016590118 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + +0.378313 +0.079487 +0.171751 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +1.2602968216 +-0.1352096498 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.9006383419 +-0.7756271362 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.8995711803 +-0.1693652421 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.0970096588 +0.1807296276 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.2768852711 +-0.5587036610 + + + + +2.0362348557 +-0.1977932751 + + + + + +0.246809 +0.032037 +0.098347 +1.000000 + + +0.436620 +0.137793 +0.230057 +1.000000 + + + + + + + + + + + + + + + + + + + + + + +0.145636 +0.000262 +0.013745 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +1.7755135298 +-0.2658927143 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.7076997757 +-0.2002660632 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.8119903803 +-0.2003440261 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.9538772106 +-0.2667869627 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.0414242744 +-0.3906124830 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.9508583546 +-0.2154446840 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.0323677063 +-0.2365856320 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.1561412811 +-0.4691359699 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.0534996986 +-0.2033641487 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.1893489361 +-0.2275252342 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.2771804333 +-0.3590895832 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.2322635651 +-0.2114959955 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.3493487835 +-0.2063842863 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.4308583736 +-0.2849077880 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.4023058414 +-0.2018703371 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.4489715099 +-0.2184648216 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.4996054173 +-0.3751623333 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.5343880653 +-0.3552865684 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.4942545891 +-0.2184648216 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.5274620056 +-0.2245050967 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.5691707134 +-0.3254728913 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.6685495377 +-0.1764045656 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.5060042143 +-0.1636727452 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + +0.930139 +0.631313 +0.723575 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +2.3217725754 +-0.2192692906 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.4063436985 +-0.3306183219 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.930139 +0.631313 +0.723575 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +2.2633831501 +-0.2293371558 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.2952592373 +-0.2694100142 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.2788658142 +-0.2348016351 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.930139 +0.631313 +0.723575 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +2.4346036911 +-0.2275156677 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.4528186321 +-0.2566595674 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.930139 +0.631313 +0.723575 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +1.7961469889 +-0.2235519439 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.8304035664 +-0.2396118939 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.930139 +0.631313 +0.723575 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +1.9781354666 +-0.3798688650 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.0123920441 +-0.4334020615 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.930139 +0.631313 +0.723575 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +2.0755527020 +-0.3659502268 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.0905401707 +-0.3916461766 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.930139 +0.631313 +0.723575 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +2.1076455116 +-0.4369874299 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.1276819706 +-0.4943644702 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.930139 +0.631313 +0.723575 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +1.8458610773 +-0.2427282780 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.9600594044 +-0.3426829576 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.930139 +0.631313 +0.723575 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +1.9947267771 +-0.2406883836 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.0640614033 +-0.3447228372 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.930139 +0.631313 +0.723575 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +2.1023159027 +-0.2310465872 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.1884560585 +-0.3610419631 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.930139 +0.631313 +0.723575 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +2.1986522675 +-0.2794463336 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.2382719517 +-0.3766568601 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.021888 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +1.2602968216 +-0.1352096498 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.9006383419 +-0.7756271362 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.8995711803 +-0.1693652421 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.0970096588 +0.1807296276 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + +0.259091 +0.103636 +0.018182 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +0.7400543094 +1.3369276524 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.2685166895 +0.6672224998 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.3961197138 +0.5431090593 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.3535853624 +0.4048111737 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.4138423502 +0.3019742966 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.9796293378 +0.0850758329 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.6517604589 +0.1725606471 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.3238916397 +-0.2375244051 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.0626124144 +-0.4481080472 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.6880543232 +-0.1879338473 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.5443258286 +-0.3453486562 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.2966679335 +-1.3192616701 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.5739457607 +-1.2817580700 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.0786123276 +-1.7546005249 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.0126980543 +-1.5868225098 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.6487859488 +-2.0793228149 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +4.0351099968 +-2.4407124519 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.9602613449 +-0.1773785949 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.7471466064 +0.0522690304 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.4575290680 +0.0960114375 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.9000000954 +1.2833333015 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.0861763954 +1.9007496834 + + + + +1.6028430462 +-2.3492503166 + + + + + +0.268410 +0.093614 +0.003359 +0.000000 + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + + + + + + + + + + + + + + + + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +2.7888021469 +-1.1422690153 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.2807807922 +-0.2722214758 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.1114401817 +-0.8035210371 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.4025505781 +-1.2152584791 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.4881598353 +-1.4831807613 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.0258146524 +-1.4738855362 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.5482691526 +-1.4449061155 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.2219572067 +-2.3368015289 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +1.4189440012 +-1.0293532610 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.6703101397 +-1.2316619158 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.1329685748 +-1.4339705706 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.9089248776 +-1.3956959248 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.3952636719 +-1.5761333704 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.1493619680 +-1.6089401245 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.8925313950 +-1.4886485338 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.0783237591 +-1.4995840788 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.6867035627 +-1.2808721066 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +1.3319832087 +0.6128628254 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.0109325647 +0.8902800679 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.2812718153 +0.7588719130 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.1966311783 +0.2390795797 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.5672988296 +0.0697090402 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.3144713640 +-0.0324973203 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.5216950178 +0.2566006780 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.1101664305 +0.1456337571 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.5214768648 +0.3281709254 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.9725258350 +0.1638352573 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.6718266010 +0.4225765169 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.2590172291 +0.2449199408 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.6647084951 +0.5106564760 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.6822203398 +0.7296701074 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-1.1657555103 +-0.2037153542 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.9756043553 +-0.1638155729 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.4974826872 +-0.2918990552 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.2877964973 +-0.1107627377 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.8506379128 +-0.1599729508 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.5828783512 +-0.3896205723 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.6921679974 +-0.1818441451 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.0350128412 +-0.3243550956 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.1579846144 +-0.5701820850 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + +0.003010 +0.000467 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-1.0453504324 +0.0842122659 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.4032672644 +0.1765056103 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.6717048883 +0.1765056103 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.3669162989 +-0.2374160737 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.1655881405 +-0.2513999045 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.562703 +0.039153 +0.058655 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-0.9950183630 +0.0842122659 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.7098034024 +-0.1870742440 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.1851617098 +-0.2346193045 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.554068 +0.430978 +0.381458 +1.000000 + + + + + + + + + + +-1.5514671803 +0.0981961042 + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-1.3449747562 +-0.2077930570 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.2524892092 +-0.0788044184 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.1186286211 +-0.0982744023 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.003010 +0.000467 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +0.7400543094 +1.3369276524 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.2685166895 +0.6672224998 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.3961197138 +0.5431090593 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.3535853624 +0.4048111737 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.4138423502 +0.3019742966 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.9796293378 +0.0850758329 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.6517604589 +0.1725606471 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.3238916397 +-0.2375244051 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.0626124144 +-0.4481080472 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.6880543232 +-0.1879338473 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.5443258286 +-0.3453486562 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.2966679335 +-1.3192616701 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.5739457607 +-1.2817580700 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.0786123276 +-1.7546005249 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.0126980543 +-1.5868225098 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.6487859488 +-2.0793228149 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +4.0351099968 +-2.4407124519 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.9602613449 +-0.1773785949 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.7471466064 +0.0522690304 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.4575290680 +0.0960114375 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.9000000954 +1.2833333015 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.003010 +0.000467 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +1.6939975023 +0.4830302894 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.4367448092 +0.4998109043 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.0337644815 +0.1524571925 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.003010 +0.000467 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +1.9820086956 +0.1558084190 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.4647070169 +0.3040371239 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.9497119784 +0.1452523917 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.003010 +0.000467 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +2.9353213310 +0.0336818323 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.2423987389 +-0.3951889873 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.0300188065 +-0.8904451728 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.3896772861 +-1.4454735518 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.0178753138 +-1.5863801241 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + +0.259091 +0.103636 +0.018182 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-1.5455479622 +-3.8674702644 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.8173229694 +-2.8770368099 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.6974024773 +-2.2227442265 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.8898075819 +-1.5536625385 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-3.7064743042 +-2.0869958401 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-3.1648263931 +-3.8525118828 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.003010 +0.000467 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-3.3935260773 +-3.6468386650 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-3.7010443211 +-2.0549788475 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + +0.259091 +0.103636 +0.018182 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-3.6902008057 +-2.0996124744 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-3.7511384487 +-1.9876333475 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-3.7995758057 +-1.7704458237 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-3.6309483051 +-1.4422032833 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-3.2858428955 +-1.7449893951 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + + + + + + + + + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + +0.113232 +0.154927 +0.265301 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-3.4923491478 +-4.5543150902 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.0060690641 +-4.4186086655 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.3946270943 +-3.2363624573 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.3685914278 +-2.9781675339 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.3194397688 +-1.4744473696 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-3.4061388969 +-1.2732771635 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-3.5271949768 +-2.7870831490 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-3.5603456497 +-3.0241422653 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.3636848927 +-3.1379342079 + + + + +-2.5108671188 +-4.1904315948 + + + + + +0.032090 +0.032936 +0.143310 +1.000000 + + +0.113232 +0.154927 +0.265301 +1.000000 + + + + + + + + + + + + + + + + + + + + + + +0.113232 +0.154927 +0.265301 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-3.4923491478 +-4.5543150902 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.0060690641 +-4.4186086655 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.3946270943 +-3.2363624573 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.3685914278 +-2.9781675339 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.3194397688 +-1.4744473696 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-3.4061388969 +-1.2732771635 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-3.5271949768 +-2.7870831490 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-3.5603456497 +-3.0241422653 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-1.3587218523 +-3.0406038761 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-3.1379632950 +-2.9216692448 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.0166249275 +-3.0695211887 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-3.5337252617 +-2.9335026741 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-3.5578670502 +-3.0420892239 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.3952416182 +-3.2056794167 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.011655 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-3.4923491478 +-4.5543150902 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.0060690641 +-4.4186086655 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.3946270943 +-3.2363624573 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.3685914278 +-2.9781675339 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.3194397688 +-1.4744473696 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-3.4061388969 +-1.2732771635 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-3.5271949768 +-2.7870831490 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-3.5603456497 +-3.0241422653 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.113232 +0.154927 +0.265301 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-3.3680505753 +-3.3587272167 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-3.3244462013 +-3.2309782505 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.2993521690 +-3.4103639126 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.5186712742 +-3.3496530056 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.4750269651 +-3.4793069363 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-2.7460341454 +-3.5505895615 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.8362209797 +-3.4177691936 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.6439967155 +-3.3530621529 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.5187168121 +-3.1530606747 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.3324177265 +-3.2535278797 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.1961009502 +-3.2611422539 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.0681097507 +-3.1645557880 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.9031279087 +-3.3765268326 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.7465901375 +-3.4442110062 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.7997270823 +-3.5655481815 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.6520732641 +-3.6887934208 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.7173132896 +-3.8408946991 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.3589172363 +-4.4223213196 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.0727446079 +-5.1215949059 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-3.0826482773 +-4.4022221565 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.7628328800 +-3.8344523907 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.8835659027 +-3.6744630337 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.335585 +0.290376 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-2.7610282898 +-3.5225815773 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.8512151241 +-3.3897612095 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.6589908600 +-3.3250541687 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.5337104797 +-3.1250524521 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.3474118710 +-3.2255196571 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.2110948563 +-3.2331342697 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.0831036568 +-3.1365478039 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.9181220531 +-3.3485188484 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.7615840435 +-3.4162027836 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.8147207499 +-3.5375401974 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.6670669317 +-3.6607851982 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.7323071957 +-3.8128867149 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.3739110231 +-4.3943133354 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.0877387524 +-5.0935869217 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-3.0976421833 +-4.3742141724 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.7778270245 +-3.8064444065 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.8985600471 +-3.6464550495 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + +0.335585 +0.290376 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-2.7610282898 +-3.5225815773 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.8512151241 +-3.3897612095 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.6589908600 +-3.3250541687 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.5337104797 +-3.1250524521 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.3474118710 +-3.2255196571 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.2110948563 +-3.2331342697 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.0831036568 +-3.1365478039 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.9181220531 +-3.3485188484 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.7615840435 +-3.4162027836 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.8147207499 +-3.5375401974 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.6670669317 +-3.6607851982 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.7323071957 +-3.8128867149 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.3739110231 +-4.3943133354 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.0877387524 +-5.0935869217 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-3.0976421833 +-4.3742141724 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.7778270245 +-3.8064444065 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.8985600471 +-3.6464550495 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.245620 +0.245899 +0.000000 +1.000000 + + + + +0.357758 +0.399393 +0.000000 +1.000000 + + + + + + + + + + + + +-2.1834979057 +-4.3501653671 + + + + + + + + + + + + + + + + + + + + + + +0.675219 +0.650532 +0.000000 +1.000000 + + +0.034961 +0.034633 +0.001398 +1.000000 + + + + + +-2.1828112602 +-4.3471837044 + + + + + + + + + + + + + + + + + + + + + + + + +0.547691 +0.547353 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-3.0423824787 +-4.3582787514 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.7244274616 +-3.8235397339 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.8253247738 +-3.6281530857 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.6947853565 +-3.5037660599 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.1993288994 +-3.3515415192 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.8929721117 +-3.5120594501 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.8025311232 +-3.5545330048 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.7075495720 +-3.6341362000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.7857567072 +-3.7823700905 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.4465526342 +-4.3603715897 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.4541271925 +-4.7307090759 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.547691 +0.547353 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-2.1131432056 +-3.3901665211 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.1547784805 +-3.2532405853 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.3385357857 +-3.2321965694 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.3828914165 +-3.2910256386 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.4749562740 +-3.3326992989 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.3519184589 +-3.5362536907 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.3659906387 +-3.4418690205 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.2782554626 +-3.4753482342 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.179715 +0.134508 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-2.1970231533 +-3.4120943546 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.1706969738 +-3.3933224678 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.2322139740 +-3.3872146606 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.3702619076 +-3.4377655983 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.3561770916 +-3.5332913399 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.547691 +0.547353 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-2.3778820038 +-3.2235569954 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.5504431725 +-3.1357944012 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.6573977470 +-3.3480920792 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.8717184067 +-3.4181137085 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.7821445465 +-3.4276094437 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.7851362228 +-3.4923374653 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.7150051594 +-3.4566934109 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.7033133507 +-3.5355949402 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.6492071152 +-3.4628648758 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.5946612358 +-3.5386688709 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.5760102272 +-3.4594655037 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.5055971146 +-3.5193080902 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.4917254448 +-3.4742817879 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.5150463581 +-3.3376979828 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.4018540382 +-3.2974710464 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.547691 +0.547353 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-2.1887795925 +-3.2363655567 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.0527997017 +-3.1523594856 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.9035750628 +-3.3853309155 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.7404395342 +-3.4429898262 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.8098021746 +-3.4514703751 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.8017684221 +-3.5131952763 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.8740518093 +-3.4667260647 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.8861668110 +-3.5316934586 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.9434454441 +-3.4645969868 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.9840016365 +-3.5271024704 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.0472240448 +-3.4591748714 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.0754773617 +-3.5203702450 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.1385231018 +-3.4403476715 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.0851655006 +-3.3296365738 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.547691 +0.547353 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-2.7421550751 +-3.5380256176 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.8735065460 +-3.6424007416 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.7672724724 +-3.8353838921 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-3.0802066326 +-4.2855901718 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.9490988255 +-4.3114089966 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.6976528168 +-3.8406291008 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.7676558495 +-3.6347496510 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.547691 +0.547353 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-2.4844291210 +-4.3611259460 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.2092936039 +-4.1205801964 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.8978154659 +-4.3219285011 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.9264570475 +-4.6161866188 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.335585 +0.290376 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-1.8574854136 +-4.3276028633 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.9014172554 +-4.3200078011 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.0610058308 +-4.4544444084 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.335585 +0.290376 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-2.1631321907 +-4.0845642090 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.1776762009 +-4.1159133911 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.0968468189 +-4.2955818176 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.9147480726 +-4.2804064751 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.8845449686 +-4.2512474060 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.335585 +0.290376 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-2.2578549385 +-4.0872836113 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.2302885056 +-4.1288757324 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.2907323837 +-4.3120112419 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.4769632816 +-4.3048372269 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.5211844444 +-4.2681727409 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.547691 +0.547353 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-2.4879205227 +-4.3428726196 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.5297787189 +-4.3601102829 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.5714402199 +-4.3071398735 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.5237157345 +-4.2685933113 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.4806225300 +-4.3044457436 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.2910156250 +-4.3124079704 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.2283663750 +-4.1258544922 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.2542297840 +-4.0837521553 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.2122993469 +-4.0453572273 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.1684141159 +-4.0755476952 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.1816382408 +-4.1150708199 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.0964722633 +-4.2972784042 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.9130631685 +-4.2787508965 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.8763592243 +-4.2502083778 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.8390799761 +-4.2794747353 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.8607770205 +-4.3245477676 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.9016393423 +-4.3140230179 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.0356056690 +-4.4193234444 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.179715 +0.134508 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-1.8401799202 +-4.2969541550 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.8996893167 +-4.3181877136 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.0932524204 +-4.4710202217 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.547691 +0.547353 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-1.8372571468 +-3.5537989140 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.6727807522 +-3.6621210575 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.7446972132 +-3.8017513752 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.3778622150 +-4.4218606949 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.3833822012 +-4.6111912727 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.4972827435 +-4.5907726288 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.4845651388 +-4.4249014854 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.8263541460 +-3.7845327854 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.7655730247 +-3.6192076206 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.179715 +0.134508 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-2.6267650127 +-3.6584913731 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.5641324520 +-3.8394670486 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.2102975845 +-3.7460441589 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.8877747059 +-3.8241238594 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.8842093945 +-3.6414124966 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.2267880440 +-3.5495357513 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.179715 +0.134508 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-2.7729015350 +-4.0484452248 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.6661365032 +-4.2282643318 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.1857419014 +-4.0070619583 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.7641588449 +-4.2324628830 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.7046743631 +-4.0429148674 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.2009477615 +-3.7839934826 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.547691 +0.547353 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-2.6151471138 +-3.6610865593 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.5545756817 +-3.8181102276 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.2124712467 +-3.7324023247 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.8887964487 +-3.8106772900 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.8909715414 +-3.6438128948 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.2287459373 +-3.5590646267 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.547691 +0.547353 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-2.7573442459 +-4.0448470116 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.6614508629 +-4.2068104744 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.1839697361 +-3.9908957481 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.7619124651 +-4.2165675163 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.7109291553 +-4.0451326370 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.1982154846 +-3.7914161682 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.179715 +0.134508 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-2.5246222019 +-3.2303144932 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.5301842690 +-3.1808872223 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.4715242386 +-3.2252650261 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.5283083916 +-3.2834379673 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.5975444317 +-3.2076425552 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.5490081310 +-3.1370899677 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.3798143864 +-3.2206261158 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.179715 +0.134508 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-2.1842782497 +-3.2317538261 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.0484130383 +-3.1522076130 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.9807430506 +-3.2302784920 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.0268838406 +-3.2837021351 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.0908057690 +-3.2323508263 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.0512695312 +-3.1904776096 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.0350642204 +-3.2351560593 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.179715 +0.134508 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-2.4690365791 +-4.2912549973 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.3135631084 +-4.2821559906 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.2447223663 +-4.1298718452 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.179715 +0.134508 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-2.1601550579 +-4.1224226952 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.0805559158 +-4.2607693672 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.9221560955 +-4.2674999237 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.179715 +0.134508 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-2.2253363132 +-3.2943601608 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.3790767193 +-3.2965621948 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.4009802341 +-3.2747881413 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.000000 +1.000000 +0.468039 +1.000000 + + +0.547691 +0.547353 +0.000000 +1.000000 + + + + + +-2.1828112602 +-4.3471837044 + + + + + + + + + + + + + + + + + + + + + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + +0.935186 +0.932533 +0.385180 +1.000000 + + + + + + + + + + +-2.4265091419 +-3.8653388023 + + + + + + + + + + + + + + + + + + + + + +0.935186 +0.932533 +0.385180 +1.000000 + + + + + + + + + + +-2.4583735466 +-3.8608827591 + + + + + + + + + + + + + + + + + + + + + +0.935186 +0.932533 +0.385180 +1.000000 + + + + + + + + + + +-2.4701557159 +-3.6132600307 + + + + + + + + + + + + + + + + + + + + + +0.935186 +0.932533 +0.385180 +1.000000 + + + + + + + + + + +-2.2218246460 +-4.0610394478 + + + + + + + + + + + + + + + + + + + + + +0.935186 +0.932533 +0.385180 +1.000000 + + + + + + + + + + +-1.8877731562 +-4.2609071732 + + + + + + + + + + + + + + + + + + + + + +0.935186 +0.932533 +0.385180 +1.000000 + + + + + + + + + + +-2.5260405540 +-4.2783956528 + + + + + + + + + + + + + + + + + + + + + +0.935186 +0.932533 +0.385180 +1.000000 + + + + + + + + + + +-2.3451259136 +-3.2501797676 + + + + + + + + + + + + + + + + + + + + + +0.935186 +0.932533 +0.385180 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-2.4069554806 +-4.3228945732 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.2672123909 +-4.3192315102 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.2324538231 +-4.2034249306 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.935186 +0.932533 +0.385180 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-2.1322131157 +-4.2499299049 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.1119031906 +-4.3038210869 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.9760750532 +-4.2949700356 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.935186 +0.932533 +0.385180 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-2.7185349464 +-4.0287070274 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.3025236130 +-3.8084204197 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.8726284504 +-3.8871016502 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.935186 +0.932533 +0.385180 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-2.5844006538 +-3.6668994427 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.3356971741 +-3.5810117722 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.0626721382 +-3.5867044926 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.935186 +0.932533 +0.385180 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-2.8749024868 +-3.4161834717 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.6477208138 +-3.3563776016 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.5495223999 +-3.1519811153 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.3781657219 +-3.2347593307 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.1920447350 +-3.2493824959 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.0632848740 +-3.1596436501 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.8916416168 +-3.3924932480 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.7400557995 +-3.4368960857 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.935186 +0.932533 +0.385180 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-2.4362123013 +-3.5003383160 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.4995069504 +-3.3413343430 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.3883330822 +-3.3074638844 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.935186 +0.932533 +0.385180 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-2.7515494823 +-3.5398707390 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.8412778378 +-3.6242575645 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.7347269058 +-3.8273236752 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-3.1021490097 +-4.3480448723 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.935186 +0.932533 +0.385180 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-1.8288571835 +-3.5472581387 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.7098722458 +-3.6342217922 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.7684545517 +-3.8084938526 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.4038404226 +-4.4087753296 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.4186213017 +-4.5416560173 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + +1.000000 +1.000000 +1.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-3.2317421436 +-1.4427955151 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-3.3226988316 +-2.7385072708 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.5610722303 +-2.8623905182 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.4998229742 +-1.5947518349 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + +1.000000 +1.000000 +1.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-2.2192289829 +-1.6230590343 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.2746901512 +-2.7110338211 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.6552827358 +-2.7525339127 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.5843921900 +-1.6924986839 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + +0.110451 +0.110450 +0.110451 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-2.7667036057 +-2.6553349495 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.8369882107 +-2.4606425762 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.6280593872 +-2.2013907433 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.8686268330 +-1.9605396986 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.5872423649 +-1.7642385960 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.110451 +0.110450 +0.110451 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-2.7667036057 +-2.6553349495 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.6767518520 +-2.4769558907 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.8608195782 +-2.1952507496 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.5929095745 +-1.9645613432 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.8595740795 +-1.7505331039 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.110451 +0.110450 +0.110451 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-2.8365840912 +-1.7314016819 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.9325871468 +-1.6915676594 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.9957318306 +-1.7944681644 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.9007751942 +-1.7691490650 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.9754440784 +-1.8237142563 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.8795676231 +-1.8208700418 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.110451 +0.110450 +0.110451 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-2.7686541080 +-2.6692824364 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.7475628853 +-1.7194730043 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.7896156311 +-1.6424908638 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.7204089165 +-1.5688786507 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.6595876217 +-1.6423908472 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.6966354847 +-1.7184689045 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.110451 +0.110450 +0.110451 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-2.6015787125 +-1.8231778145 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.5465824604 +-1.8511832952 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.5059545040 +-1.7349764109 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.4806091785 +-1.7425836325 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.4853878021 +-1.7622300386 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.4566149712 +-1.7743798494 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.4277737141 +-1.7134059668 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.4599742889 +-1.6967140436 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.4852778912 +-1.7033330202 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.4776704311 +-1.6779876947 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.5272464752 +-1.6548032761 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.5371246338 +-1.6818623543 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.5519504547 +-1.6716632843 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.5559773445 +-1.6568797827 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.6338376999 +-1.6906840801 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.5475606918 +-1.7129065990 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.4367101192 +-2.2224946022 + + + + +-2.4367101192 +-2.2224946022 + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + +0.207986 +0.207986 +0.207986 +1.000000 + + + + + + + + + + + + + + + + + + + + + + +-1.8939630985 +-1.6371194124 + + + + +-1.9288105965 +-2.7604191303 + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + +0.207986 +0.207986 +0.207986 +1.000000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + +0.110451 +0.110450 +0.110451 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + +-3.1350445747 +-1.5413676500 + + + + +-3.1470680237 +-1.6128191948 + + + + +-2.9945652485 +-1.6117992401 + + + + +-2.9907903671 +-1.5412255526 + + + + + + + + + + + + + + + + + +0.110451 +0.110450 +0.110451 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + +-2.8843939304 +-1.5357894897 + + + + +-2.8904395103 +-1.6080769300 + + + + +-2.7549912930 +-1.6127978563 + + + + +-2.7497816086 +-1.5464879274 + + + + + + + + + + + + + + + + + +0.110451 +0.110450 +0.110451 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + +-3.2211892605 +-2.6222515106 + + + + +-2.3560953140 +-2.6680624485 + + + + +-2.3602747917 +-2.6979498863 + + + + +-3.2273612022 +-2.6518602371 + + + + + + + + + + + + + + + + + +0.110451 +0.110450 +0.110451 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + +-3.2236287594 +-2.5670607090 + + + + +-2.3488509655 +-2.6162574291 + + + + +-2.3524730206 +-2.6421599388 + + + + +-3.2258155346 +-2.5972266197 + + + + + + + + + + + + + + + + + +0.110451 +0.110450 +0.110451 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + +-3.2172622681 +-2.5070066452 + + + + +-2.3456335068 +-2.5496687889 + + + + +-2.3432781696 +-2.5764071941 + + + + +-3.2211630344 +-2.5349018574 + + + + + + + + + + + + + + + + + +0.110451 +0.110450 +0.110451 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + +-3.2211368084 +-2.4475524426 + + + + +-2.7120597363 +-2.4679555893 + + + + +-2.7108190060 +-2.5026638508 + + + + +-3.2210526466 +-2.4760048389 + + + + + + + + + + + + + + + + + +0.110451 +0.110450 +0.110451 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + +-2.6666955948 +-1.5479494333 + + + + +-2.6756119728 +-1.6117094755 + + + + +-2.5324721336 +-1.6195374727 + + + + +-2.5275411606 +-1.5552201271 + + + + + + + + + + + + + + + + + +0.110451 +0.110450 +0.110451 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + +-2.4353284836 +-1.5640522242 + + + + +-2.4377100468 +-1.6246632338 + + + + +-2.2973985672 +-1.6381900311 + + + + +-2.2921888828 +-1.5718801022 + + + + + + + + + + + + + + + + + + + + + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + +0.207986 +0.207986 +0.207986 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-2.9550547600 +-1.7877432108 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.8774921894 +-1.7906268835 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-3.0330867767 +-1.6434051991 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-3.1809694767 +-1.8852705956 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-3.0391583443 +-2.1276016235 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.8792338371 +-1.9630930424 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.9586663246 +-1.9628099203 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-3.0292456150 +-2.0567154884 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-3.1067407131 +-1.8845319748 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-3.0372927189 +-1.7132362127 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.207986 +0.207986 +0.207986 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-2.7101354599 +-1.6554775238 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.8530890942 +-1.8710092306 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.7379012108 +-2.1087856293 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.5866808891 +-1.8765972853 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.207986 +0.207986 +0.207986 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-2.7104322910 +-1.7425199747 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.7846033573 +-1.8766281605 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.7262282372 +-2.0253133774 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.6487591267 +-1.8817704916 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.207986 +0.207986 +0.207986 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-2.5144252777 +-1.6714600325 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.5348849297 +-2.1115498543 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.4476790428 +-2.1107726097 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.4361634254 +-1.8936619759 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.3951594830 +-1.8919833899 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.2875044346 +-1.7847309113 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.3921766281 +-1.6718771458 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.207986 +0.207986 +0.207986 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-2.4437789917 +-1.7386521101 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.4459598064 +-1.8304473162 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.3947916031 +-1.8292299509 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.3505735397 +-1.7851768732 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.3935666084 +-1.7388232946 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.207986 +0.207986 +0.207986 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-3.2005741596 +-2.3927111626 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-3.1964154243 +-2.1075887680 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.9963753223 +-2.2636787891 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.7825498581 +-2.1277475357 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.7944927216 +-2.4117815495 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.8622896671 +-2.4142050743 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.8610677719 +-2.2635874748 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-3.0122413635 +-2.3487584591 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-3.1315555573 +-2.2396702766 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-3.1266262531 +-2.4030520916 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.207986 +0.207986 +0.207986 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-2.6913177967 +-2.1480164528 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.7116706371 +-2.4070656300 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.3166584969 +-2.2861683369 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.207986 +0.207986 +0.207986 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-2.6243345737 +-2.1993319988 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.6370034218 +-2.3605773449 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.3876888752 +-2.2852241993 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + +0.024038 +0.024038 +0.024038 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-2.1925446987 +-2.7413740158 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.0740122795 +-2.3315274715 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.1791768074 +-2.1627180576 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.0955042839 +-2.0625360012 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.0857472420 +-1.9625723362 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.1169691086 +-1.7027752399 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.0054345131 +-1.8260332346 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.9049792290 +-1.8020830154 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.7943298817 +-1.8260003328 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.7021294832 +-1.7101227045 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.7300838232 +-1.9553115368 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.7137491703 +-2.0800337791 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.6452037096 +-2.1635046005 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.7277452946 +-2.3461737633 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.6940158606 +-2.7540917397 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-1.9379869699 +-2.0381212234 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.0315206051 +-2.1031484604 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.0886864662 +-1.9684944153 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.9966005087 +-1.9138196707 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.8950582743 +-1.9575734138 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.7955590487 +-1.9102684259 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.7259428501 +-1.9558906555 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.7710568905 +-2.0973517895 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.8540084362 +-2.0414209366 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-1.8964293003 +-2.1938138008 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.9580966234 +-2.1366372108 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.8345323801 +-2.1285843849 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.000000 +1.000000 +1.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-2.1735446453 +-2.1677277088 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.8951838017 +-2.2150981426 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.6431331635 +-2.1637940407 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.6901593208 +-2.2585458755 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.8971064091 +-2.3647100925 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.1144392490 +-2.2583222389 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.000000 +1.000000 +1.000000 +1.000000 + + + + + + + + + + +-1.7769515514 +-2.0036435127 + + + + + + + + + + + + + + + + + + + + + +1.000000 +1.000000 +1.000000 +1.000000 + + + + + + + + + + +-2.0264837742 +-2.0067467690 + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-2.1925446987 +-2.7413740158 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.0740122795 +-2.3315274715 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.1791768074 +-2.1627180576 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.0955042839 +-2.0625360012 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.0857472420 +-1.9625723362 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.1169691086 +-1.7027752399 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.0054345131 +-1.8260332346 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.9049792290 +-1.8020830154 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.7943298817 +-1.8260003328 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.7021294832 +-1.7101227045 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.7300838232 +-1.9553115368 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.7137491703 +-2.0800337791 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.6452037096 +-2.1635046005 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.7277452946 +-2.3461737633 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.6940158606 +-2.7540917397 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.555185 +0.555184 +0.555185 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-2.0057239532 +-1.8281039000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.0354652405 +-1.7690587044 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.8689285517 +-1.6952413321 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.9239200354 +-1.6959953308 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.7490408421 +-1.7436716557 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.9054982662 +-1.9265594482 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.8493651152 +-1.8119710684 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-2.0057239532 +-1.8281039000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.0354652405 +-1.7690587044 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.8689285517 +-1.6952413321 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.9239200354 +-1.6959953308 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.7490408421 +-1.7436716557 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.9054982662 +-1.9265594482 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.8493651152 +-1.8119710684 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.555185 +0.555184 +0.555185 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-1.9730178118 +-2.5120601654 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.9018193483 +-2.4279897213 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.8523442745 +-2.5224504471 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.6653860807 +-2.4761836529 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.7123636007 +-2.3561334610 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.8980684280 +-2.4166257381 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.0942871571 +-2.3513596058 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.1571092606 +-2.4528126717 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-1.9730178118 +-2.5120601654 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.9018193483 +-2.4279897213 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.8523442745 +-2.5224504471 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.6653860807 +-2.4761836529 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.7123636007 +-2.3561334610 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.8980684280 +-2.4166257381 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.0942871571 +-2.3513596058 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.1571092606 +-2.4528126717 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.207986 +0.207986 +0.207986 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-1.9224376678 +-2.5428895950 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.9526345730 +-2.4865663052 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.9037065506 +-2.4232735634 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.8622251749 +-2.4992091656 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.8949215412 +-2.5467374325 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.8549906015 +-2.7627267838 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.9784959555 +-2.7574787140 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-1.9224376678 +-2.5428895950 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.9526345730 +-2.4865663052 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.9037065506 +-2.4232735634 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.8622251749 +-2.4992091656 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.8949215412 +-2.5467374325 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.8549906015 +-2.7627267838 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.9784959555 +-2.7574787140 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-2.1332049370 +-2.2113668919 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.0985414982 +-2.2352132797 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.1009891033 +-2.2074279785 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.0641679764 +-2.2611300945 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.0509634018 +-2.2270896435 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.0283901691 +-2.2619113922 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.0063247681 +-2.2248880863 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.9859800339 +-2.3058400154 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.9609755278 +-2.2628946304 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.9408059120 +-2.2847142220 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.9225482941 +-2.2598242760 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.9011764526 +-2.2881450653 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.8867706060 +-2.2606055737 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.8698294163 +-2.2904174328 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.8507032394 +-2.2593162060 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.8330956697 +-2.3145534992 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.8040812016 +-2.2278380394 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.7853153944 +-2.2747931480 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.7638728619 +-2.2271275520 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.7469317913 +-2.2569396496 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.7338149548 +-2.1933329105 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.7251120806 +-2.2367699146 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.7051173449 +-2.1994571686 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.6878429651 +-2.2419817448 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.8425040245 +-1.6703655720 + + + + +-1.9248799086 +-2.7609686852 + + + + + +0.020276 +0.019596 +0.019596 +1.000000 + + +0.363007 +0.363007 +0.363008 +1.000000 + + +0.103226 +0.103226 +0.103227 +1.000000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-2.2192289829 +-1.6230590343 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.2746901512 +-2.7110338211 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.6552827358 +-2.7525339127 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.5843921900 +-1.6924986839 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.088059 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-3.2317421436 +-1.4427955151 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-3.3226988316 +-2.7385072708 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.5610722303 +-2.8623905182 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.4998229742 +-1.5947518349 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + +0.259091 +0.103636 +0.018182 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-2.0171396732 +-1.1236989498 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.2578532696 +-1.3754630089 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.0626258850 +-1.6938979626 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.7073019743 +-1.8063803911 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.6378093958 +-1.5135470629 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.7120889425 +-1.2691106796 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.003010 +0.000467 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-2.0171396732 +-1.1236989498 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.2578532696 +-1.3754630089 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.0626258850 +-1.6938979626 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.7073019743 +-1.8063803911 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.6378093958 +-1.5135470629 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.7120889425 +-1.2691106796 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.259091 +0.103636 +0.018182 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-2.6625747681 +-0.9496012926 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.8366725445 +-1.3317668438 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.5804946423 +-1.6689350605 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.1957280636 +-1.7341581583 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.1575987339 +-1.3798538446 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.2079162598 +-1.1273512840 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.003010 +0.000467 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-2.6625747681 +-0.9496012926 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.8366725445 +-1.3317668438 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.5804946423 +-1.6689350605 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.1957280636 +-1.7341581583 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.1575987339 +-1.3798538446 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.2079162598 +-1.1273512840 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.259091 +0.103636 +0.018182 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-3.3043236732 +-1.2672605515 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-3.3659806252 +-1.2595534325 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-3.1393911839 +-1.0113838911 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.7675969601 +-1.1707016230 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.7177765369 +-1.4421702623 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.6508536339 +-1.6192423105 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.9150624275 +-1.8281517029 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-3.1933603287 +-1.6077753305 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.003010 +0.000467 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-3.3043236732 +-1.2672605515 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-3.3659806252 +-1.2595534325 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-3.1393911839 +-1.0113838911 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.7675969601 +-1.1707016230 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.7177765369 +-1.4421702623 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.6508536339 +-1.6192423105 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.9150624275 +-1.8281517029 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-3.1933603287 +-1.6077753305 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.003010 +0.000467 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-3.2996993065 +-1.1871064901 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-3.2919921875 +-1.2811334133 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.259091 +0.103636 +0.018182 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-3.7708551884 +-1.8158433437 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-3.7114071846 +-1.4676480293 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-3.4014282227 +-1.4591554403 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-3.2099061012 +-1.7449613810 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-3.0914494991 +-1.9474781752 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-3.2238252163 +-2.1761710644 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-3.4566299915 +-2.1682848930 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.003010 +0.000467 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-3.7054047585 +-2.1036605835 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-3.7485289574 +-1.5077770948 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-3.4138765335 +-1.4535090923 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-3.0905299187 +-1.9419206381 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-3.3550863266 +-2.2064769268 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-3.6535599232 +-1.8605186939 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-3.7394843102 +-1.8130342960 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.003010 +0.000467 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-3.6919996738 +-1.7293711901 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-3.6533215046 +-1.8604314327 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.259091 +0.103636 +0.018182 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-0.9174466729 +-2.4399211407 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.8479297161 +-2.6464345455 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.0116292238 +-2.9023311138 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.7721815109 +-2.7574882507 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.6522887945 +-2.2500221729 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.2206696272 +-2.2125236988 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.003010 +0.000467 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-1.0107975006 +-2.8729286194 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.2045108080 +-2.9212765694 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.7962526083 +-2.7434108257 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.6488672495 +-2.2523622513 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.2066164017 +-2.2092514038 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.9077278972 +-2.4642393589 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.8138671517 +-2.8250308037 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.2424679995 +-3.6595695019 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.003010 +0.000467 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-1.1436336040 +-3.1562898159 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.3605155945 +-2.9062657356 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.003010 +0.000467 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-0.9455419183 +-2.8892781734 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.1035078764 +-2.9688000679 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.2288876772 +-2.9238362312 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + +0.365228 +0.280608 +0.167640 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-3.3505640030 +-2.1024632454 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-3.4297046661 +-1.9193090200 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-3.2239387035 +-1.8243401051 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-3.1267085075 +-2.0052332878 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.365228 +0.280608 +0.167640 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-3.0289292336 +-1.7147784233 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-3.0767431259 +-1.5134572983 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.7762281895 +-1.4557702541 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.7064070702 +-1.6161223650 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.365228 +0.280608 +0.167640 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-2.4395954609 +-1.6962052584 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.5273709297 +-1.4812556505 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.2005004883 +-1.4020611048 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.1170732975 +-1.5975492001 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.365228 +0.280608 +0.167640 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-1.9164212942 +-1.7533171177 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.9673641920 +-1.5606106520 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.7057639360 +-1.5099956989 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.6187638044 +-1.6832710505 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.365228 +0.280608 +0.167640 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-1.4547375441 +-2.4635467529 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.4471211433 +-2.6579761505 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.7335691452 +-2.6864020824 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.8168874979 +-2.5355284214 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.6854600906 +-2.2870647907 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.4709209204 +-2.3027250767 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + +0.251032 +0.222174 +0.193456 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-3.4704785347 +-1.8969451189 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-3.3071675301 +-1.8320680857 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-3.2042593956 +-1.8164081573 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-3.3541474342 +-1.7604798079 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.251032 +0.222174 +0.193456 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-3.1125366688 +-1.4920233488 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.9089572430 +-1.4539921284 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.7456462383 +-1.4360949993 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.9290914536 +-1.3734551668 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.251032 +0.222174 +0.193456 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-2.5532526970 +-1.4450435638 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.3429617882 +-1.4047750235 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.1863622665 +-1.3891150951 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.3630959988 +-1.3331867456 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.251032 +0.222174 +0.193456 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-1.9939684868 +-1.5367661715 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.8127604723 +-1.5054461956 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.6874808073 +-1.5009719133 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.8418432474 +-1.4472806454 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.251032 +0.222174 +0.193456 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-1.4443291426 +-2.6583771706 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.5248659849 +-2.4391376972 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.4174834490 +-2.2691154480 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.3794521093 +-2.4346635342 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.584422 +0.509171 +0.434284 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-1.6785322428 +-2.6978399754 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.7657805681 +-2.4696519375 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.6695836782 +-2.2548868656 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.8038119078 +-2.2571239471 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.8731631041 +-2.5143947601 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.7747291327 +-2.7269227505 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.584422 +0.509171 +0.434284 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-1.5328680277 +-1.6642203331 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.7566442490 +-1.6467378139 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.9804204702 +-1.7411433458 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.9603713751 +-1.8009246588 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.6943500042 +-1.8161044121 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.5064926147 +-1.6762223244 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.584422 +0.509171 +0.434284 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-2.0287287235 +-1.5892592669 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.2525050640 +-1.5717767477 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.4762811661 +-1.6661823988 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.4562320709 +-1.7259635925 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.1902108192 +-1.7411433458 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.0023534298 +-1.6012612581 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.584422 +0.509171 +0.434284 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-2.6237771511 +-1.5942902565 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.8475534916 +-1.6082762480 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-3.0713295937 +-1.7026818991 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-3.0512804985 +-1.7624630928 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.7852590084 +-1.7776429653 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.5974016190 +-1.6377607584 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.584422 +0.509171 +0.434284 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-2.9804205894 +-1.9684160948 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-3.2181828022 +-2.0033812523 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-3.4244763851 +-2.1152691841 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-3.4114203453 +-2.1575679779 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-3.1453988552 +-2.1727478504 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.9575417042 +-2.0328657627 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.747801 +0.663183 +0.550214 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-3.3514873981 +-1.7704378366 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-3.1862628460 +-2.0517663956 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.747801 +0.663183 +0.550214 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-2.9027013779 +-1.3730055094 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.7999942303 +-1.6721961498 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.747801 +0.663183 +0.550214 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-2.3177168369 +-1.3328157663 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.2083113194 +-1.6186097860 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.747801 +0.663183 +0.550214 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-1.8153445721 +-1.4399884939 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.7059389353 +-1.7257825136 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.747801 +0.663183 +0.550214 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-1.4089810848 +-2.3822157383 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.7952495813 +-2.4000778198 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + +0.143058 +0.106563 +0.044942 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-3.4075632095 +-1.9859980345 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-3.3497745991 +-2.1015753746 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-3.1279406548 +-2.0055716038 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-3.1475143433 +-1.9356659651 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.143058 +0.106563 +0.044942 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-3.0687773228 +-1.5693259239 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-3.0275852680 +-1.7166187763 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.7067863941 +-1.6130144596 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.7454819679 +-1.5168997049 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.143058 +0.106563 +0.044942 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-2.5207979679 +-1.5231409073 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.4359171391 +-1.6953986883 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.1188631058 +-1.5955390930 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.1475727558 +-1.5094101429 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.143058 +0.106563 +0.044942 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-1.9628325701 +-1.6167591810 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.9153991938 +-1.7528178692 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.6183170080 +-1.6791714430 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.6482748985 +-1.5992838144 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.143058 +0.106563 +0.044942 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-1.8055953979 +-2.4579265118 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.8205326796 +-2.5279779434 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.7144318819 +-2.6989872456 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.4348250628 +-2.6552987099 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.4285838604 +-2.6041207314 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + +0.003010 +0.000467 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-3.3724853992 +-1.5355544090 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-3.5441370010 +-1.4770368338 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-3.6793775558 +-1.6239808798 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.003010 +0.000467 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-2.7574009895 +-1.2234607935 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-3.0239808559 +-1.0999237299 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-3.2320432663 +-1.2299627066 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.003010 +0.000467 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-2.1982331276 +-1.2273619175 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.2307429314 +-1.1454373598 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.4153983593 +-1.0817182064 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.6130576134 +-1.1558405161 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.6364645958 +-1.2494685650 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.003010 +0.000467 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-1.7209899426 +-1.3079861403 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.7600016594 +-1.2325634956 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.9121474028 +-1.1909509897 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.0850992203 +-1.3157885075 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.003010 +0.000467 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-1.1005311012 +-2.7545609474 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.9799637794 +-2.6316294670 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.2140063047 +-2.2155537605 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + + + + + + + + + + + + + + + + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-3.0932629108 +-1.9736831188 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-3.2461848259 +-2.1440818310 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-3.5607669353 +-1.9736831188 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-3.6918036938 +-1.6942597628 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-3.6685376167 +-1.8320673704 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-3.7454950809 +-1.7855349779 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-3.7267963886 +-1.9299911261 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-3.6810655594 +-2.1130516529 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-3.5563976765 +-2.9523832798 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-3.5182020664 +-2.2043268681 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-3.2330772877 +-2.2838962078 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-3.3446002007 +-1.2575707436 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-3.2998573780 +-1.1895618439 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-3.2873294353 +-1.2790472507 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-3.1888954639 +-1.6119332314 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.8900141716 +-1.8213291168 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.6537723541 +-1.6280405521 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.6877770424 +-1.4830740690 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.7164123058 +-1.4061166048 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.7593653202 +-1.1609264612 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.6788284779 +-1.3864297867 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.5338618755 +-1.6298302412 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.1401259899 +-1.6351994276 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.0792758465 +-1.5671904087 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.7911326885 +-1.7944835424 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.5942646265 +-1.6745729446 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.6300587654 +-1.7586892843 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.8251371384 +-1.9734544754 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.0953831673 +-1.7980629206 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.4014234543 +-1.9287116528 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.6376650333 +-1.7568995953 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.9204392433 +-1.9788235426 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-3.2246897221 +-1.7193157673 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-3.3141751289 +-1.2969443798 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-1.2500834465 +-3.6611878872 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.8118988276 +-2.8098578453 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.1541001797 +-2.6930086613 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.4128377438 +-2.7472600937 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.7300000191 +-2.6804890633 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.8134638071 +-2.7097012997 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.7675586939 +-3.0310366154 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.7967710495 +-3.1770982742 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.7383463383 +-3.2563889027 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.4503964186 +-3.2814278603 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.3627595901 +-3.3398525715 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + +1.000000 +1.000000 +1.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +3.9441576004 +0.0522634573 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.9192020893 +-0.0119203767 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +4.0938901901 +-0.1866430342 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.8407707214 +-0.4576414526 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.5377404690 +-0.2044718862 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.5127849579 +0.1128815264 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.056105 +0.054225 +0.275808 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +1.6126226187 +-2.3770420551 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.8383314610 +-3.9104704857 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.7374711037 +-2.2655270100 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.011238 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +1.6126226187 +-2.3770420551 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.8383314610 +-3.9104704857 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.7374711037 +-2.2655270100 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.056105 +0.054225 +0.275808 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +1.5508314371 +-2.3198454380 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.6758314371 +-2.1104705334 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.5000000000 +-1.2500000000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.3347456455 +-2.0235791206 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.011238 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +1.5508314371 +-2.3198454380 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.6758314371 +-2.1104705334 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.5000000000 +-1.2500000000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.3347456455 +-2.0235791206 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + +1.000000 +1.000000 +1.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +3.4924273491 +0.1187080443 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.4705693722 +-0.8381570578 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.4323179722 +-1.7622153759 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.0820813179 +-2.6167204380 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.8238192797 +-4.7638735771 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +4.3574547768 +-4.2500000000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +4.1372361183 +-0.2093600035 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.9459793568 +0.0421588346 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.309266 +0.309266 +0.300204 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +2.8938231468 +-3.1838924885 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.9002335072 +-3.3313283920 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.7438919544 +-4.1171889305 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.000000 +1.000000 +1.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +3.0841102600 +-1.6243127584 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.1290752888 +-1.1750123501 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.5179338455 +-0.6371114254 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.4960877895 +0.1107019931 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +4.0151333809 +0.0024774182 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.9941763878 +-0.7989190221 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.000000 +1.000000 +1.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +3.1473608017 +-1.1654818058 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.4323179722 +-1.7622153759 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.1008315086 +-2.6417205334 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.1208415031 +-1.9027990103 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.000000 +1.000000 +1.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +2.0883314610 +-2.6635954380 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.7008314133 +-2.1792204380 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.9133315086 +-3.1604704857 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.7148274183 +-4.1607856750 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.4436573982 +-0.9738461375 + + + + +3.5758314133 +-3.9656789303 + + + + + +0.899070 +0.899070 +0.899070 +1.000000 + + +0.854911 +0.854912 +0.780928 +1.000000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.018551 +0.021198 +0.008135 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +3.0841102600 +-1.6243127584 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.1290752888 +-1.1750123501 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.5179338455 +-0.6371114254 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.4960877895 +0.1107019931 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +4.0151333809 +0.0024774182 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.9941763878 +-0.7989190221 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.018551 +0.021198 +0.008135 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +3.1473608017 +-1.1654818058 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.4323179722 +-1.7622153759 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.1008315086 +-2.6417205334 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.1208415031 +-1.9027990103 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.018551 +0.021198 +0.008135 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +3.4924273491 +0.1187080443 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.4705693722 +-0.8381570578 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.4323179722 +-1.7622153759 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.0820813179 +-2.6167204380 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.8238192797 +-4.7638735771 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +4.3574547768 +-4.2500000000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +4.1372361183 +-0.2093600035 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.9459793568 +0.0421588346 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.018551 +0.021198 +0.008135 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +2.0883314610 +-2.6635954380 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.7008314133 +-2.1792204380 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.9133315086 +-3.1604704857 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.7148274183 +-4.1607856750 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.018551 +0.021198 +0.008135 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +3.6690936089 +-2.9922919273 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.6524269581 +-1.9422919750 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.7826247215 +-2.0762765408 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.7357604504 +-1.7422920465 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +4.7165369987 +-0.9494073391 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +3.1546821594 +-1.2388312817 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.2002744675 +-1.5834051371 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +4.0359387398 +-0.6778107285 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.9170575142 +-1.1218667030 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.1967778206 +-1.6952931881 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.2803652287 +-2.1300828457 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.7592780590 +-2.3121938705 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.7440471649 +-2.2703089714 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.0883314610 +-2.6417205334 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.1328241825 +-1.9168385267 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +2.1786942482 +-2.1280238628 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.6469789743 +-2.0993421078 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.6028531790 +-2.3552715778 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.7903876305 +-3.7783272266 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.0374917984 +-2.6531205177 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.0330793858 +-2.5692815781 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + + + + + + + +0.9534615278 +0.4869762361 + + + + + + + + + + + + + + + + + + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + +1.602255 +0.622418 +0.000000 +1.000000 + + + + + + + + + + +1.0780192614 +0.3561026454 + + + + + + + + + + + + + + + + + + + + + + +0.368261 +0.020388 +0.020387 +1.000000 + + +1.000000 +0.789159 +0.000000 +1.000000 + + + + + +1.1121102571 +0.3145807683 + + + + + + + + + + + + + + + + + + + + + + + + +1.000000 +1.000000 +1.000000 +1.000000 + + + + + + + + + + +1.2713943720 +0.0765139312 + + + + + + + + + + + + + + + + + + + + + +0.003548 +0.003549 +0.000000 +1.000000 + + + + + + + + + + +1.0798954964 +0.3521702588 + + + + + + + + + + + + + + + + + + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + +1.602255 +0.622418 +0.000000 +1.000000 + + + + + + + + + + +1.0780192614 +0.3561026454 + + + + + + + + + + + + + + + + + + + + + +0.9331393242 +0.4882084429 + + + + +1.2141237259 +0.2250819504 + + + + + +0.006378 +0.006379 +0.000000 +1.000000 + + +1.000000 +0.953397 +0.180493 +1.000000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + + + + + + + +1.1067410707 +0.3145807683 + + + + + + + + + + + + + + + + + + + + + +1.000000 +1.000000 +1.000000 +1.000000 + + + + + + + + + + +1.0172556639 +0.4058695436 + + + + + + + + + + + + + + + + + + + + + +1.000000 +1.000000 +1.000000 +1.000000 + + + + + + + + + + +1.0172556639 +0.4058695436 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + +0.259091 +0.103636 +0.018182 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +1.7087991238 +0.7742959261 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.2749873400 +0.6364626884 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.8029993176 +0.9368385673 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0378413573 +0.8480677009 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.4829617739 +1.4979203939 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.0861763954 +1.9007496834 + + + + +1.6028430462 +-2.3492503166 + + + + + +0.268410 +0.093614 +0.003359 +0.000000 + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +1.9892082214 +1.1571798325 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.0048027039 +1.0687916279 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.5233563185 +1.0444931984 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.6200057864 +1.1939777136 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.5996555686 +0.9896109700 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.7991294861 +1.0225859880 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.3261913061 +0.6591838598 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.6612428427 +0.7094416022 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.8353150487 +0.9401007295 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.2094409317 +0.7757650614 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.5870633125 +1.3981426954 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.0346157551 +1.2408000231 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.003010 +0.000467 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +1.7087991238 +0.7742959261 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.2749873400 +0.6364626884 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.8029993176 +0.9368385673 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0378413573 +0.8480677009 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.4829617739 +1.4979203939 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + +0.357723 +0.237660 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +0.2629509270 +1.5250304937 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.2405804694 +1.9371770620 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.4629251659 +2.3887517452 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.7463476658 +1.9752043486 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.9679756165 +2.1273136139 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.8162283897 +1.7940655947 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.6543359756 +1.8319104910 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.7657682896 +1.7625281811 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.6837711334 +1.7520157099 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.7216160297 +1.5796109438 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.5478925705 +0.2592210472 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.8093304634 +0.2211937010 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.6239471436 +0.1213719621 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.7665495872 +0.1118651256 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.8283441067 +-0.1115454510 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.6191937923 +0.0405638777 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.6762347221 +-0.1020386145 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.6287004948 +-0.3016821146 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.7745957375 +-0.5485370755 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.2436738014 +-0.1638330370 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.9278805256 +0.0354045108 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.8396334648 +0.2259471267 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.7065377235 +0.0453172959 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.7778389454 +0.3162620366 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.6792430878 +0.1193620488 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.7112910748 +0.4018235207 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.8019008636 +1.3362030983 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.8937035799 +1.2336714268 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.121471 +0.084885 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-0.0947707519 +1.8564622402 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.2809801996 +2.1797828674 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.9625749588 +1.9438461065 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.1684734821 +1.7952934504 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.0641586781 +1.9045233727 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.8283460140 +1.7867192030 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.4399096966 +1.8608313799 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.7632303238 +1.7647089958 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.7064068317 +1.7452759743 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.6059391499 +0.7772704959 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.5330440998 +0.2278825492 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.4748632908 +0.4102579355 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.4967093468 +0.1830596775 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.3000955582 +0.4102579355 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.3350489140 +-0.0135541996 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.1428043842 +0.4146271348 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.0248360634 +0.1481060982 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.0510511398 +0.6068717837 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.7932686806 +0.3447199762 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.7233614922 +0.2311208397 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.7058846951 +0.3228739798 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.6596660614 +0.2135648727 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.6753003597 +0.3621967435 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.9155943394 +1.1782181263 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.4999344349 +1.9155782461 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.7708764076 +1.7210171223 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.4694018364 +1.6685867310 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.9800517559 +1.7778166533 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.7266383171 +1.6816942692 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.5562396049 +1.6816942692 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.357723 +0.237660 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +2.0969057083 +1.7846713066 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.3378748894 +1.3222829103 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.0352823734 +1.3800814152 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.3480744362 +1.1046882868 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.2290775776 +1.1046882868 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.2868759632 +0.9040933847 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.9434845448 +0.6219004393 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.8788862228 +1.2406849861 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.032276 +0.015681 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +0.2629509270 +1.5250304937 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.2405804694 +1.9371770620 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.4629251659 +2.3887517452 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.7463476658 +1.9752043486 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.9679756165 +2.1273136139 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.8162283897 +1.7940655947 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.6543359756 +1.8319104910 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.7657682896 +1.7625281811 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.6837711334 +1.7520157099 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.7216160297 +1.5796109438 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.5478925705 +0.2592210472 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.8093304634 +0.2211937010 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.6239471436 +0.1213719621 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.7665495872 +0.1118651256 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.8283441067 +-0.1115454510 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.6191937923 +0.0405638777 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.6762347221 +-0.1020386145 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.6287004948 +-0.3016821146 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.7745957375 +-0.5485370755 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.2436738014 +-0.1638330370 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.9278805256 +0.0354045108 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.8396334648 +0.2259471267 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.7065377235 +0.0453172959 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.7778389454 +0.3162620366 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.6792430878 +0.1193620488 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.7112910748 +0.4018235207 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.8019008636 +1.3362030983 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.8937035799 +1.2336714268 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.357723 +0.237660 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-0.1553879678 +1.6847357750 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.3593301475 +2.0484676361 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.1490804702 +1.7225806713 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.2899477482 +1.9853928089 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.0712880939 +1.7309906483 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.032276 +0.015681 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-0.1553879678 +1.6847357750 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.3593301475 +2.0484676361 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.1490804702 +1.7225806713 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.2899477482 +1.9853928089 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.0712880939 +1.7309906483 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.357723 +0.237660 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-0.1871312410 +1.6939175129 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.4857227802 +1.7333542109 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.6265678406 +1.3530725241 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.2012157440 +1.6516640186 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.032276 +0.015681 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-0.1871312410 +1.6939175129 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.4857227802 +1.7333542109 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.6265678406 +1.3530725241 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.2012157440 +1.6516640186 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + +0.043298 +0.125992 +0.237251 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +0.5800703168 +1.5484923124 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.4681822062 +1.3806601763 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.0535590649 +1.3897045851 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.0008337498 +1.1976559162 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.9826034307 +1.0913132429 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.3877626657 +1.1149258614 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.5486018062 +1.2303105593 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.5697893500 +1.3793447018 + + + + +2.0734391212 +1.2917534113 + + + + + +0.005257 +0.004853 +0.120358 +1.000000 + + +0.057441 +0.057441 +0.176054 +1.000000 + + +0.018507 +0.018507 +0.082595 +1.000000 + + +0.050550 +0.050556 +0.152130 +1.000000 + + + + + + + + + + + + + + + + + + + + + + + + + +1.000000 +1.000000 +1.000001 +0.306122 + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.006596 +0.006596 +0.006597 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +0.5794876814 +1.5836731195 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.4675996304 +1.4158409834 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.0529763699 +1.4248853922 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.0004463196 +1.2114614248 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.3871799707 +1.1501067877 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.5480191708 +1.2654913664 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.280608 +0.280608 +0.280609 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +0.5613671541 +1.5172905922 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.4494789839 +1.3494584560 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.0661396980 +1.3683956861 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.9823257923 +1.1450788975 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.3690594435 +1.0837242603 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.5298985839 +1.1991088390 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.011655 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +0.5800703168 +1.5484923124 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.4681822062 +1.3806601763 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.0535590649 +1.3897045851 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.0008337498 +1.1976559162 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.9826034307 +1.0913132429 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.3877626657 +1.1149258614 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.5486018062 +1.2303105593 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + +0.507498 +0.507498 +0.507498 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +0.3067196012 +1.9425770044 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.3720008433 +1.4864584208 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.2273555100 +0.7188440561 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.5069977641 +1.1304633617 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.837880 +0.837879 +0.837881 +1.000000 + + +0.195671 +0.195671 +0.195672 +1.000000 + + + + + +-0.0752795190 +1.4657089710 + + + + + + + + + + + + + + + + + + + + + + + + +0.914414 +0.911537 +0.911537 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-0.0333214775 +1.6580166817 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.2151396573 +1.5181565285 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.1871676296 +1.3083662987 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.0088459533 +1.4272474051 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.000000 +1.000000 +1.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-0.1012571678 +1.5346699953 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.1438635290 +1.5018959045 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.1373087019 +1.4527347088 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.0955216959 +1.4805927277 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.049519 +0.049519 +0.049520 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-0.3794753253 +0.8922824264 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.0480943993 +0.7303292155 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.4691315591 +1.1509735584 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.4841610491 +1.7873872519 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.5296155810 +1.1824921370 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.0647900105 +0.6894851923 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +0.0619351640 +1.3918972015 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.0017081777 +1.3491271734 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0118551580 +1.2771482468 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0807151645 +1.3157455921 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.011748 +0.011748 +0.011748 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +0.3067196012 +1.9425770044 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.3720008433 +1.4864584208 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.2273555100 +0.7188440561 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.5069977641 +1.1304633617 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +0.5551487803 +1.6347861290 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.5681252480 +1.3622800112 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.6005664468 +1.3363270760 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.6265194416 +1.3006417751 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.6816694736 +1.2519799471 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.8957813978 +1.1546562910 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.7400636077 +1.5374624729 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.9574196935 +1.3103740215 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.8438754678 +1.5471948385 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +1.6321966648 +1.3395711184 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.6994749308 +1.2231668234 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.9811276197 +1.1827789545 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.9566086531 +1.2162946463 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.0312232971 +1.2195386887 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.0798852444 +1.3006417751 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.0506880283 +1.3785005808 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.7749378681 +1.4141858816 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.357723 +0.237660 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +0.7396293283 +1.5671570301 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.7404837608 +1.6722502708 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.5875166655 +1.7136359215 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.8551290035 +1.2444278002 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.357723 +0.237660 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +0.9311786294 +1.3615231514 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.7480800152 +1.5502555370 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.7649814487 +1.6432132721 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.8269532919 +1.5925091505 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.357723 +0.237660 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +1.6028372049 +1.3747590780 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.6997456551 +1.2607479095 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.9407128096 +1.2174419165 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.7570161819 +1.3450843096 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.0049850941 +1.2549815178 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.9015257359 +1.3614808321 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.1252725124 +1.3077603579 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.2055490017 +1.3496539593 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.0271480083 +1.4157111645 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.121471 +0.084885 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +0.5654971004 +1.6429797411 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.7510641217 +1.3497381210 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.7357285619 +1.6435425282 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.8645876646 +1.4305671453 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.8520596623 +1.6524910927 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.8896436095 +1.6166968346 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.1902142763 +1.5961908102 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.6449007988 +1.4126700163 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.8825272322 +1.2330962420 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.7487732172 +1.3497381210 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.6903538704 +1.4975043535 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.9974735975 +1.2569652796 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.7969707251 +1.4925861359 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.0780105591 +1.3410816193 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.0708515644 +1.2963389158 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.8829321861 +1.3840346336 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.0153706074 +1.2551755905 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.7568683624 +1.3485820293 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.9079880714 +1.2229608297 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.7093304396 +1.2623344660 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.6323728561 +1.3375022411 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.8484802842 +1.5361599922 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.9200686216 +1.3750861883 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.7446771264 +1.5468982458 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.8252140284 +1.2623344660 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.032276 +0.015681 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +1.6018565893 +1.3573033810 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.7118666172 +1.2583158016 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.9884707928 +1.2103811502 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.7521716356 +1.3523608446 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.0224406719 +1.2540007830 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.8940138817 +1.3680316210 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.0530176163 +1.2995620966 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.2159833908 +1.3639520407 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.0392682552 +1.4099254608 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.032276 +0.015681 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +2.8431046009 +1.6267532110 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.0486989021 +1.7778021097 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.5004472733 +1.6715084314 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.9418119788 +1.7757105827 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.7292988300 +1.6750464439 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.5894876122 +1.7169898748 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.8495365381 +1.2500202656 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.7404837608 +1.5687899590 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.9362195134 +1.3590730429 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.8355553746 +1.5855672359 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + +0.259091 +0.103636 +0.018182 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +2.8583621979 +0.7229152322 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.4977457523 +0.4624992907 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.2058532238 +0.7458578944 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.9815821648 +1.1448024511 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.0758786201 +1.3425210714 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.5453032255 +1.8909742832 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.0861763954 +1.9007496834 + + + + +1.6028430462 +-2.3492503166 + + + + + +0.268410 +0.093614 +0.003359 +0.000000 + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +1.5063596964 +1.9053896666 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.0733184814 +1.3691898584 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.9828405380 +1.1735377312 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.1346099377 +0.9778855443 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.1258540154 +0.7063086629 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.2834608555 +0.5778206587 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.3126473427 +0.2770419419 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.6951708794 +0.3669281304 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.3585360050 +0.3550868928 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.5658001900 +0.8634316325 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.3804855347 +0.9543406963 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.5588073730 +1.1501449347 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.003010 +0.000467 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +2.7263724804 +0.4389833510 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.3678970337 +0.3194426298 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.5677194595 +0.8382971883 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.3800368309 +0.9513556957 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.5542201996 +1.1568535566 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.5009737015 +1.9052586555 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.003010 +0.000467 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +2.0882651806 +1.0116194487 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.9736199379 +1.1542546749 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.0742840767 +1.3528251648 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.4888064861 +1.9083005190 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.8367323875 +1.2909517288 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +2.9370024204 +-1.9607930183 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.1022453308 +-2.0209670067 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.0452961922 +-2.1757447720 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.9640960693 +-2.1903893948 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.7866830826 +-2.3556456566 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.7345814705 +-2.2443928719 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.9002671242 +-2.3640882969 + + + + +1.3836005926 +0.9859117866 + + + + + +0.035357 +0.035357 +0.035357 +1.000000 + + +0.290352 +0.286470 +0.286471 +1.000000 + + + + + + + + + + + + + + + + + + + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +2.9272482395 +-2.0335948467 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.8988618851 +-2.0953042507 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.9716789722 +-2.1249246597 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.7914876938 +-2.3520150185 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.9741473198 +-2.1804630756 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.0432617664 +-2.1829314232 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.1037368774 +-2.0126137733 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.0691797733 +-1.9681829214 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.9926600456 +-2.0175504684 + + + + +3.0630087852 +-2.1644186974 + + + + + +0.028176 +0.028176 +0.028180 +1.000000 + + +0.215588 +0.215588 +0.215588 +1.000000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.004037 +0.004037 +0.004037 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +2.9370024204 +-1.9607930183 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.1022453308 +-2.0209670067 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.0452961922 +-2.1757447720 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.9640960693 +-2.1903893948 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.7866830826 +-2.3556456566 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.7345814705 +-2.2443928719 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.004037 +0.004037 +0.004037 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +2.7895941734 +-2.3547799587 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.9606258869 +-2.1201250553 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.9012839794 +-1.9951820374 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +2.6114857197 +-1.1775765419 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.3617630005 +-2.2060770988 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.4822905064 +-2.3965382576 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.6114232540 +-2.3328952789 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.1563928127 +-1.9433068037 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.1580567360 +-1.9012545347 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.3267595768 +-1.8584653139 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.3428089619 +-1.7431998253 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.3088328838 +-1.7003524303 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.4268321991 +-0.9635201693 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.3495316505 +-0.8770396709 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.9002671242 +-2.3640882969 + + + + +1.3836005926 +0.9859117866 + + + + + +0.035357 +0.035357 +0.035357 +1.000000 + + +0.290352 +0.286470 +0.286471 +1.000000 + + + + + + + + + + + + + + + + + + + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000004 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +2.6319386959 +-1.7073923349 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.6810562611 +-1.7073923349 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.0965077877 +-1.6030178070 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.1763234138 +-1.5845987797 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.2581858635 +-1.0831918716 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.3605139256 +-0.9829103947 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.3605139256 +-0.8928618431 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.4362366199 +-0.9624448419 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.3052566051 +-1.6930664778 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.3420946598 +-1.7380907536 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.3236756325 +-1.8567912579 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.1558578014 +-1.8977223635 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.1558578014 +-1.9509329796 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.8447809219 +-2.0696334839 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.7281270027 +-2.1453559399 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.5725884438 +-2.3397791386 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.9327828884 +-1.7790219784 + + + + +3.4219105244 +-1.8608843088 + + + + + +0.008031 +0.008031 +0.008033 +1.000000 + + +0.046754 +0.046754 +0.046756 +1.000000 + + +0.215588 +0.215588 +0.215590 +1.000000 + + +0.573733 +0.573733 +0.573735 +1.000000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.004037 +0.004037 +0.004037 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +2.6114857197 +-1.1775765419 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.3617630005 +-2.2060770988 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.4822905064 +-2.3965382576 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.6114232540 +-2.3328952789 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.1563928127 +-1.9433068037 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.1580567360 +-1.9012545347 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.3267595768 +-1.8584653139 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.3428089619 +-1.7431998253 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.3088328838 +-1.7003524303 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.4268321991 +-0.9635201693 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.3495316505 +-0.8770396709 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +2.4871311188 +-2.3875997066 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.6016702652 +-1.7155009508 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +2.7777736187 +1.2661458254 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.3380329609 +-1.3497085571 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.6435896158 +-1.4810183048 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.4810886085 +-1.6763819456 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.7646661401 +-2.4249591827 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.0851123333 +-2.1870408058 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.2932906151 +-2.1216135025 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.4911115170 +-2.1860806942 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.5855746269 +-1.6350142956 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.9531545639 +-1.6308612823 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.1796369553 +-1.5552533865 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.2647333145 +-1.0820475817 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.3472387791 +-0.9855517745 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.4347445965 +-0.5098414421 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.4152872562 +-0.4529119730 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.9002671242 +-2.3640882969 + + + + +1.3836005926 +0.9859117866 + + + + + +0.035357 +0.035357 +0.035357 +1.000000 + + +0.290352 +0.286470 +0.286471 +1.000000 + + + + + + + + + + + + + + + + + + + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + +0.068640 +0.068640 +0.068643 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +0.9204109311 +-1.4837722778 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.6882209778 +-1.4890493155 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.8148700595 +-1.8162261248 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.9731813669 +-2.0009226799 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.0206748247 +-1.8689966202 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.6879501939 +-1.5694961548 + + + + +1.0444179773 +-1.8373870850 + + + + + + +0.000000 +0.000000 +0.000000 +0.000000 + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.0854657888 +-1.4722776413 + + + + +0.7657249570 +-1.8935576677 + + + + + + +0.000000 +0.000000 +0.000000 +0.000000 + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000004 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +3.1231129169 +-1.5211554766 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.2193012238 +-0.8990014791 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.2459065914 +-0.8560237288 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.3154895306 +-0.4896896482 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.4157710075 +-0.4610378146 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.3482344151 +-0.9849569798 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.2622790337 +-1.0831918716 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.1824631691 +-1.5191088915 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.4661290646 +0.2427843511 + + + + +3.5550863743 +0.2261532098 + + + + + +0.046920 +0.046919 +0.046924 +1.000000 + + +0.132424 +0.132647 +0.132648 +1.000000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000004 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +2.6458003521 +-1.2379006147 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.5970199108 +-1.1473083496 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.5631721020 +-1.0009667873 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.5482392311 +-0.9551728964 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.5820870399 +-0.7889210582 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.6776568890 +-0.6804093719 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.9006533623 +-0.6704541445 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.8668057919 +-0.8566164374 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.7085180283 +-0.8655760884 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.2459065914 +-0.8744427562 + + + + +3.3332710266 +-0.8882651925 + + + + + +0.396404 +0.396404 +0.396404 +1.000000 + + +0.056281 +0.056281 +0.056285 +1.000000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000004 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +2.4367411137 +-0.8924551606 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.4825351238 +-0.6226691604 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.6796479225 +-0.6814048886 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.5810914040 +-0.7869300246 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.5492348671 +-0.9571639299 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.7078616619 +0.7882857323 + + + + +3.0622920990 +0.7259683013 + + + + + +0.020718 +0.020717 +0.020722 +1.000000 + + +0.455649 +0.455648 +0.455649 +1.000000 + + +0.176803 +0.176803 +0.176803 +1.000000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.004037 +0.004037 +0.004037 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +2.7777736187 +1.2661458254 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.3380329609 +-1.3497085571 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.6435896158 +-1.4810183048 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.4810886085 +-1.6763819456 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.7646661401 +-2.4249591827 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.0851123333 +-2.1870408058 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.2932906151 +-2.1216135025 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.4911115170 +-2.1860806942 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.5855746269 +-1.6350142956 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.9531545639 +-1.6308612823 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.1796369553 +-1.5552533865 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.2647333145 +-1.0820475817 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.3472387791 +-0.9855517745 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.4347445965 +-0.5098414421 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.4152872562 +-0.4529119730 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.004037 +0.004037 +0.004037 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +0.6614164710 +-1.4905896187 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.8034930229 +-1.7911360264 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.9838208556 +-2.0261087418 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.2078645229 +-2.2556169033 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.9358760715 +-1.4734253883 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.004037 +0.004037 +0.004037 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +0.7147647142 +-1.8232413530 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.8727410436 +-2.2203919888 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.8215683103 +-2.4137110710 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + +0.099300 +0.097399 +0.097399 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +3.1844542027 +-1.5165873766 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.1741175652 +-1.5842218399 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.6022152901 +-1.7214293480 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.5861756802 +-1.6470227242 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.9002671242 +-2.3640882969 + + + + +1.3836005926 +0.9859117866 + + + + + +0.035357 +0.035357 +0.035357 +1.000000 + + +0.290352 +0.286470 +0.286471 +1.000000 + + + + + + + + + + + + + + + + + + + + + + +0.004037 +0.004037 +0.004037 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +3.1844542027 +-1.5165873766 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.1741175652 +-1.5842218399 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.6022152901 +-1.7214293480 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.5861756802 +-1.6470227242 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.004037 +0.004037 +0.004037 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +3.1741633415 +-1.5835484266 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.1218307018 +-1.5402272940 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.004037 +0.004037 +0.004037 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +2.5479564667 +-0.9548128247 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.5821683407 +-0.7871980071 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.6777691841 +-0.6793943644 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + +0.099300 +0.097399 +0.097399 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +2.6214692593 +-1.9142627716 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.7673351765 +-2.1316275597 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.9012577534 +-1.8680936098 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.9002671242 +-2.3640882969 + + + + +1.3836005926 +0.9859117866 + + + + + +0.035357 +0.035357 +0.035357 +1.000000 + + +0.290352 +0.286470 +0.286471 +1.000000 + + + + + + + + + + + + + + + + + + + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000004 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +2.8820922375 +-1.9443767071 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.7273244858 +-2.1423537731 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.6330497265 +-1.9498760700 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.326061 +0.326060 +0.326064 +1.000000 + + +0.165981 +0.165981 +0.165985 +1.000000 + + +0.045159 +0.045158 +0.045162 +1.000000 + + + + + +2.7823181152 +-2.0865745544 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000004 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +2.8963711262 +-1.8805639744 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.6265428066 +-1.8838346004 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.6576139927 +-1.8854699135 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.8702058792 +-1.8723874092 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.032378 +0.032377 +0.032382 +1.000000 + + +0.272342 +0.272341 +0.272345 +1.000000 + + +0.082594 +0.082594 +0.082598 +1.000000 + + +0.258602 +0.258602 +0.258605 +1.000000 + + +0.082594 +0.082594 +0.082596 +1.000000 + + +0.040095 +0.040094 +0.040095 +1.000000 + + + + + +2.7622745037 +-1.8887405396 + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.004037 +0.004037 +0.004037 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +2.6199543476 +-1.9011557102 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.8980982304 +-1.8686010838 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.7426507473 +-2.1405804157 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.004037 +0.004037 +0.004037 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +2.6226072311 +-1.9010732174 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.8030762672 +-2.0051653385 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.8894615173 +-1.8713014126 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +2.6975584030 +-1.6338185072 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.6609351635 +-1.8968889713 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.8640034199 +-1.8827024698 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.8955132961 +-1.6290746927 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.9002671242 +-2.3640882969 + + + + +1.3836005926 +0.9859117866 + + + + + +0.035357 +0.035357 +0.035357 +1.000000 + + +0.290352 +0.286470 +0.286471 +1.000000 + + + + + + + + + + + + + + + + + + + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000004 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +2.6909298897 +-1.7104195356 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.6609609127 +-1.9078632593 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.8689820766 +-1.8778941631 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.8901367188 +-1.7227597237 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.6837790012 +-1.8086097240 + + + + +2.8620293140 +-1.8380455971 + + + + + +0.003577 +0.003575 +0.003579 +1.000000 + + +0.066578 +0.066579 +0.066581 +1.000000 + + +0.219698 +0.219698 +0.219699 +1.000000 + + +0.117403 +0.117403 +0.117404 +1.000000 + + +0.286470 +0.286470 +0.286471 +1.000000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.004037 +0.004037 +0.004037 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +2.6975584030 +-1.6338185072 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.6609351635 +-1.8968889713 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.8640034199 +-1.8827024698 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.8955132961 +-1.6290746927 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.004037 +0.004037 +0.004037 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +2.7203848362 +-1.4499408007 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.6837613583 +-1.7130112648 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.8868296146 +-1.6988247633 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.9183394909 +-1.4451968670 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +2.5631055832 +-1.0010524988 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.5474102497 +-0.9552997351 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.4182760715 +-0.8763738871 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.1172206402 +-1.0281699896 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.0700066090 +-1.3404837847 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.1949396133 +-1.3561555147 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.5335083008 +-1.1453019381 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000004 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +2.5633809566 +-0.9989981055 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.5454838276 +-0.9534418583 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.4088151455 +-0.8851075172 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.0508732796 +-1.2153902054 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.2038121223 +-1.6026182175 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.1907958984 +-1.3976150751 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.002058 +0.002056 +0.002060 +1.000000 + + +0.006734 +0.006734 +0.006737 +1.000000 + + +0.045421 +0.045421 +0.045424 +1.000000 + + +0.352231 +0.352230 +0.352232 +1.000000 + + +0.117403 +0.117403 +0.117404 +1.000000 + + +0.097833 +0.097833 +0.097833 +1.000000 + + + + + +2.4169499874 +-1.2788435221 + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000004 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +2.5877859592 +-1.1470558643 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.5031814575 +-1.0640784502 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.1973040104 +-1.3732099533 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.1891689301 +-1.3959881067 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.1338505745 +-1.1763420105 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.1354775429 +-1.0380462408 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.2558763027 +-1.0559433699 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.5617537498 +-0.9973710775 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.1208345890 +-1.0754674673 + + + + +2.6121912003 +-1.1161426306 + + + + + +0.008031 +0.008030 +0.008035 +1.000000 + + +0.056282 +0.056281 +0.056283 +1.000000 + + +0.009453 +0.009453 +0.009453 +1.000000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.004037 +0.004037 +0.004037 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +2.5631055832 +-1.0010524988 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.5474102497 +-0.9552997351 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.4182760715 +-0.8763738871 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.1172206402 +-1.0281699896 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.0700066090 +-1.3404837847 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.1949396133 +-1.3561555147 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.5335083008 +-1.1453019381 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +2.1403586864 +-1.0396733284 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.0982005596 +-1.1373445988 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.0218412876 +-1.0635484457 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.1650307178 +-0.9604519606 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.2274911404 +-1.0247213840 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000004 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +2.1338505745 +-1.1698340178 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.2412331104 +-1.0413002968 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.1517477036 +-0.9436798096 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.0297222137 +-1.0787215233 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.0638892651 +-1.0982456207 + + + + +2.1761529446 +-0.9811009765 + + + + + +0.135737 +0.135736 +0.135739 +1.000000 + + +0.431411 +0.431410 +0.431412 +1.000000 + + +0.215588 +0.215588 +0.215588 +1.000000 + + +0.368462 +0.368462 +0.368462 +1.000000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.004037 +0.004037 +0.004037 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +2.1879143715 +-1.1851433516 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.1320972443 +-1.1752362251 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.0275688171 +-1.0750036240 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.0576386452 +-0.9790665507 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.1678946018 +-0.9590200186 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.2609677315 +-1.0535250902 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.5611670017 +-1.0009713173 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +2.1550016403 +-1.1307857037 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.1631367207 +-1.0770944357 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.2160458565 +-1.0734302998 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.2070660591 +-1.1226507425 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.004037 +0.004037 +0.004037 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +2.1406886578 +-1.1823956966 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.1946039200 +-1.4052400589 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +3.1720890999 +-0.8617704511 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.2284388542 +-0.9294941425 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.1103167534 +-1.5873882771 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.8715391159 +-1.7259926796 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.5852620602 +-1.6156196594 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.7105529308 +-0.8716139793 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.9002671242 +-2.3640882969 + + + + +1.3836005926 +0.9859117866 + + + + + +0.035357 +0.035357 +0.035357 +1.000000 + + +0.290352 +0.286470 +0.286471 +1.000000 + + + + + + + + + + + + + + + + + + + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +2.6326975822 +-1.3121380806 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.6402685642 +-1.6932107210 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.1121928692 +-1.6023589373 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.2275264263 +-0.9081578255 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.2005209923 +-0.9487311840 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.1080052853 +-1.4138385057 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.0815315247 +-1.4068658352 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.1576187611 +-0.9992043972 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.8547797203 +-1.0370593071 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.7942118645 +-1.4408447742 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.7029786110 +-1.4262456894 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.7563569546 +-1.0017280579 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.6957890987 +-0.9764914513 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.6784307957 +-1.1704317331 + + + + +3.1512989998 +-1.2634550333 + + + + + +0.020718 +0.020717 +0.020722 +1.000000 + + +0.559878 +0.559878 +0.559879 +1.000000 + + +0.032378 +0.032377 +0.032379 +1.000000 + + +0.105982 +0.105982 +0.105982 +1.000000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000004 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +3.1978199482 +-0.9515489936 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.1165699959 +-1.3755073547 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.0900075436 +-1.4505074024 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.0879242420 +-1.3713406324 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.1603200436 +-0.9604032040 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.1212575436 +-1.2562365532 + + + + +3.1385381222 +-1.2595492601 + + + + + +0.090038 +0.090037 +0.090040 +1.000000 + + +0.036900 +0.036899 +0.036903 +1.000000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +2.7571706772 +-1.0067061186 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.7003121376 +-1.4198783636 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.7893905640 +-1.4483076334 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.8519349098 +-1.0446118116 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.7295756340 +-1.2275897264 + + + + +2.8270645142 +-1.2423608303 + + + + + +0.082594 +0.082594 +0.082598 +1.000000 + + +0.730449 +0.730449 +0.730451 +1.000000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000004 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +2.6942517757 +-0.9693580270 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.7577934265 +-1.0063371658 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.8551890850 +-1.0401914120 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.1593558788 +-0.9891496897 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.1989390850 +-0.9495663643 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.2176892757 +-0.9136288762 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.1999807358 +-0.9073788524 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.8687307835 +-0.8625872135 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.7150850296 +-0.8714413643 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.8614392281 +-1.0396705866 + + + + +2.9374809265 +-0.8282122016 + + + + + +0.300990 +0.300989 +0.300990 +1.000000 + + +0.068752 +0.068751 +0.068755 +1.000000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.004037 +0.004037 +0.004037 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +3.1720890999 +-0.8617704511 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.2284388542 +-0.9294941425 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.1103167534 +-1.5873882771 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.8715391159 +-1.7259926796 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.5852620602 +-1.6156196594 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.7105529308 +-0.8716139793 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.004037 +0.004037 +0.004037 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +3.1955947876 +-0.9489177465 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.1562800407 +-0.9871628881 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.8509449959 +-1.0406115055 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.7560153008 +-1.0048307180 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.6921553612 +-0.9688199759 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.004037 +0.004037 +0.004037 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +2.7573921680 +-1.0065828562 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.6998159885 +-1.4029363394 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.7931098938 +-1.4330694675 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.8500750065 +-1.0426199436 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.004037 +0.004037 +0.004037 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +3.1595048904 +-0.9909183383 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.0806045532 +-1.4077997208 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.1163384914 +-1.3732135296 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + +0.019884 +0.017983 +0.017983 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +2.8845996857 +-0.9632796049 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.9835748672 +-0.9285097122 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.0905697346 +-0.9700090289 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.9835174084 +-1.0045151711 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +2.8887498379 +-0.9758548141 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.9662287235 +-0.9313055277 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.0851044655 +-0.9575161338 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.0291526318 +-1.0042630434 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.268185 +0.188038 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +2.9955198765 +-0.9347959757 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.0714302063 +-0.9855532646 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.0716099739 +-0.9953100681 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.9865036011 +-1.0048725605 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.9026854038 +-0.9881050587 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.9054684639 +-0.9803280830 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.599829 +0.605216 +0.081520 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +2.9566712379 +-0.9816819429 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.0155858994 +-0.9840075374 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.055917 +1.061316 +0.537618 +1.000000 + + + + + + + + + + +2.9884541035 +-0.9778059721 + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +2.9955198765 +-0.9347959757 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.0714302063 +-0.9855532646 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.0716099739 +-0.9953100681 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.9865036011 +-1.0048725605 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.9026854038 +-0.9881050587 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.9054684639 +-0.9803280830 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + +0.025371 +0.023470 +0.023470 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +2.6533155441 +-0.8973447084 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.7522904873 +-0.8625746965 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.8592853546 +-0.9040740132 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.7522330284 +-0.9385800958 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +2.6574654579 +-0.9099198580 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.7349445820 +-0.8653706312 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.8538203239 +-0.8915811777 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.7978682518 +-0.9383280277 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.268185 +0.188038 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +2.7642354965 +-0.8688609600 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.8401460648 +-0.9196183681 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.8397059441 +-0.9290050864 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.7552194595 +-0.9389376044 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.6712954044 +-0.9206039310 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.6733458042 +-0.9168177247 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.599829 +0.605216 +0.081520 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +2.7458183765 +-0.9150152802 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.8047332764 +-0.9173408747 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.055917 +1.061316 +0.537618 +1.000000 + + + + + + + + + + +2.7678878307 +-0.9116638899 + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +2.7642354965 +-0.8688609600 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.8401460648 +-0.9196183681 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.8397059441 +-0.9290050864 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.7552194595 +-0.9389376044 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.6712954044 +-0.9206039310 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.6733458042 +-0.9168177247 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +2.7287049294 +-0.8346164823 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.7052543163 +-0.9847456217 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.6250662804 +-0.9363232851 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.6581838131 +-0.8171386719 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +3.6431188583 +1.7113581896 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.8670175076 +1.6986057758 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.9179840088 +1.6632139683 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.8879978657 +1.5430845022 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.7470200062 +1.3187233210 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.4100830555 +-0.4625223279 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.2222995758 +-0.5224047303 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +3.6431188583 +1.7113581896 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.8670175076 +1.6986057758 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.9179840088 +1.6632139683 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.8879978657 +1.5430845022 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.7470200062 +1.3187233210 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.4100830555 +-0.4625223279 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.2222995758 +-0.5224047303 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.4661290646 +0.2427843511 + + + + +3.5550863743 +0.2261532098 + + + + + +0.046920 +0.046919 +0.046924 +1.000000 + + +0.132424 +0.132647 +0.132648 +1.000000 + + + + + + + + + + + + + + + + + + + + + + +0.180455 +0.180455 +0.180456 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +3.7134175301 +1.6548421383 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.9233367443 +1.6571489573 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.8656666279 +1.6940578222 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.7226448059 +1.7102054358 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.004037 +0.004037 +0.004037 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +3.6431188583 +1.7113581896 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.8670175076 +1.6986057758 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.9179840088 +1.6632139683 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.8879978657 +1.5430845022 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.7470200062 +1.3187233210 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.4100830555 +-0.4625223279 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.2222995758 +-0.5224047303 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +3.6781177521 +1.4937921762 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.7380068302 +1.4942426682 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.6452548504 +1.0102947950 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.5907444954 +1.0021622181 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +3.5647585392 +0.8440306187 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.6174619198 +0.8488767743 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.5245566368 +0.3602425456 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.4714186192 +0.3505140841 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +3.4382221699 +0.1876009703 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.4920771122 +0.1989776492 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.4020144939 +-0.2888112366 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.3497588634 +-0.3056671917 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +2.8387744427 +-0.6772062778 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.8148112297 +-0.6478657126 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.7942166328 +-0.6530043483 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.8076772690 +-0.4818786085 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.8952527046 +0.0391941965 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.9857470989 +0.0406537838 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +3.1096963882 +1.8940044641 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.5291948318 +1.8479137421 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.7149410248 +1.7419564724 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.2811374664 +-0.6224632263 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.8989667892 +-0.6697382331 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.8479380608 +-0.6718502641 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.9706346989 +0.0198148713 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.9070227146 +0.0183618199 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.7876999378 +-0.6781219840 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.7440392971 +-0.6814039946 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.4646074772 +-0.5604634881 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.8767364025 +1.8454271555 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.9002671242 +-2.3640882969 + + + + +1.3836005926 +0.9859117866 + + + + + +0.035357 +0.035357 +0.035357 +1.000000 + + +0.290352 +0.286470 +0.286471 +1.000000 + + + + + + + + + + + + + + + + + + + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +2.8993127346 +1.8274005651 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.5069077015 +1.8544048071 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.7071888447 +1.7396367788 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.9128148556 +1.8228998184 + + + + +3.6869356632 +1.8071473837 + + + + + +0.267719 +0.267719 +0.267719 +1.000000 + + +0.056282 +0.056281 +0.056282 +1.000000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +2.4671845436 +-0.5882661939 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.8833284378 +1.8432798386 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.3300638199 +1.7367506027 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.2105181217 +1.0626088381 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.9260869026 +0.5135389566 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.7332892418 +-0.6799000502 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.7078616619 +0.7882857323 + + + + +3.0622920990 +0.7259683013 + + + + + +0.020718 +0.020717 +0.020722 +1.000000 + + +0.455649 +0.455648 +0.455649 +1.000000 + + +0.176803 +0.176803 +0.176803 +1.000000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + +0.000700 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +2.8684966564 +-0.8555279374 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.3327708244 +1.7355432510 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.7116513252 +1.7355432510 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.2513828278 +-0.8584285975 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.9436905384 +-0.5633867383 + + + + +3.2913448811 +-0.6226459742 + + + + + +0.021875 +0.021874 +0.021878 +1.000000 + + +0.173155 +0.173154 +0.173156 +1.000000 + + +0.449521 +0.449520 +0.449523 +1.000000 + + +0.024291 +0.024291 +0.024292 +1.000000 + + +0.236562 +0.236562 +0.236562 +1.000000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + +0.000700 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +2.8684966564 +-0.8555279374 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.3327708244 +1.7355432510 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.7116513252 +1.7355432510 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.2513828278 +-0.8584285975 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.2501494884 +1.2218270302 + + + + +3.5903069973 +1.1617422104 + + + + + +0.172611 +0.172611 +0.172611 +1.000000 + + +0.056282 +0.056281 +0.056282 +1.000000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.8709247112 +-0.8539919853 + + + + +3.2141096592 +1.0405794382 + + + + + +0.000000 +0.000000 +0.000002 +1.000000 + + +0.000000 +0.000000 +0.000000 +0.000000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.004037 +0.004037 +0.004037 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +3.1153416634 +1.8909929991 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.5253906250 +1.8474053144 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.7189519405 +1.7400965691 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.2992980480 +-0.5927376747 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.2894728184 +-0.6249040961 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.8994982243 +-0.6678682566 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.8462722301 +-0.6719564795 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.9712913036 +0.0210875105 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.9076793194 +0.0196344350 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.7882316113 +-0.6762519479 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.7340672016 +-0.6791579127 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.4672245979 +-0.5600726008 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.8771107197 +1.8502033949 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + +0.004037 +0.004037 +0.004037 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +3.1140420437 +1.8881658316 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.3279969692 +1.7359697819 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.8626904488 +-0.8765509129 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.004037 +0.004037 +0.004037 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +3.1153416634 +1.8909929991 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.3268368244 +1.7406289577 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.9381089211 +1.8685537577 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.004037 +0.004037 +0.004037 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +3.2732059956 +1.7398060560 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.7130727768 +1.7402886152 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.004037 +0.004037 +0.004037 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +3.2876927853 +1.4890435934 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.2246532440 +1.1251208782 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.9261803627 +0.5120751262 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.4922900200 +-2.1848683357 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.004037 +0.004037 +0.004037 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +2.9692928791 +1.8258587122 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.0545110703 +1.8562080860 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.1661877632 +1.8147290945 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.0897843838 +1.7821340561 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.004037 +0.004037 +0.004037 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +2.7348275185 +-0.6797131300 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.7061257362 +-0.8641010523 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.8644208908 +-0.8614917994 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.2505917549 +-0.8432269096 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.3175628185 +-0.4927159548 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +3.2884831429 +1.8232033253 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.2984421253 +1.9201198816 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.5612561703 +1.8823925257 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.5453217030 +1.7876539230 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.9002671242 +-2.3640882969 + + + + +1.3836005926 +0.9859117866 + + + + + +0.035357 +0.035357 +0.035357 +1.000000 + + +0.290352 +0.286470 +0.286471 +1.000000 + + + + + + + + + + + + + + + + + + + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +3.3386952877 +1.9167959690 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.2943353653 +1.8280760050 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.5376813412 +1.7824486494 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.5161349773 +1.8914474249 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.3057420254 +1.8635640144 + + + + +3.5364139080 +1.8242738247 + + + + + +0.132580 +0.132580 +0.132581 +1.000000 + + +0.474302 +0.474302 +0.474302 +1.000000 + + +0.060287 +0.060287 +0.060288 +1.000000 + + +0.152130 +0.152130 +0.152131 +1.000000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.004037 +0.004037 +0.004037 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +3.2884831429 +1.8232033253 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.2984421253 +1.9201198816 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.5612561703 +1.8823925257 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.5453217030 +1.7876539230 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +3.4418985844 +1.8458893299 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.6468079090 +2.2471699715 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.2796788216 +2.8960494995 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.596491 +0.596491 +0.596491 +1.000000 + + +0.596491 +0.596491 +0.596491 +0.533333 + + +0.596491 +0.596491 +0.596491 +0.000000 + + + + + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0666666701 +0.0666666701 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +2.5268898010 +-1.0737913847 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.6219613552 +-1.1073460579 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.6722934246 +-1.1436970234 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.6684486866 +-1.1528279781 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.7282178402 +-1.2303800583 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.7254216671 +-1.2555459738 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.7686812878 +-1.4592535496 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.8037159443 +-1.7225155830 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.0851302147 +-1.6296491623 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.8736217022 +-1.8315683603 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.7953274250 +-1.9629909992 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.7830002308 +-2.0091013908 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.7086443901 +-2.1335606575 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.7114405632 +-2.1699116230 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.5660369396 +-2.3600549698 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.1773614883 +-1.5547420979 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.0375504494 +-1.1660668850 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.1214370728 +-1.2163988352 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +3.0739803314 +-2.0959069729 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.9675104618 +-2.1243691444 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.7883036137 +-2.3520672321 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.7767078876 +-2.1391274929 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.0687093735 +-1.9704622030 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +2.8092153072 +-0.8791964054 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.8422958851 +-0.9277146459 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.8632469177 +-0.9078662395 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.9106626511 +-0.9420495629 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.9812345505 +-0.9288173318 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.0518066883 +-0.9486657381 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.0771684647 +-0.9883624911 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.0959141254 +-0.9740275145 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.1532537937 +-0.9652060270 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.1874372959 +-0.9464603662 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.2194151878 +-0.9310227036 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.2183125019 +-0.8979420662 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.0650389194 +-0.9354334474 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.9261002541 +-0.9089689255 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.8621442318 +-0.8637587428 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + +0.259091 +0.103636 +0.018182 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +2.6247813702 +-1.5933918953 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.9645474553 +-1.7077170610 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.0157797337 +-1.8598614931 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.9668965936 +-2.0680818558 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.8360416293 +-2.4130632877 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.7825099826 +-2.8413159847 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.9906884432 +-3.0613903999 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.6397590637 +-4.2152938843 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.0494244099 +-4.1677098274 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.1624357700 +-3.3290483952 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.5193130970 +-2.6390855312 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.6207382679 +-1.7940819263 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.003010 +0.000467 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +2.6247813702 +-1.5933918953 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.9645474553 +-1.7077170610 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.0157797337 +-1.8598614931 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.9668965936 +-2.0680818558 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.8360416293 +-2.4130632877 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.7825099826 +-2.8413159847 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.9906884432 +-3.0613903999 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.6397590637 +-4.2152938843 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.0494244099 +-4.1677098274 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.1624357700 +-3.3290483952 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.5193130970 +-2.6390855312 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.6207382679 +-1.7940819263 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + +0.259091 +0.103636 +0.018182 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +2.6197810173 +-1.7979110479 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.6086010933 +-1.1882506609 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.5103352070 +-1.0755339861 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.2473294735 +-1.1333373785 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.2068669796 +-1.3761119843 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.2444391251 +-1.8240888119 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.003010 +0.000467 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +2.6197810173 +-1.7979110479 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.6086010933 +-1.1882506609 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.5103352070 +-1.0755339861 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.2473294735 +-1.1333373785 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.2068669796 +-1.3761119843 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.2444391251 +-1.8240888119 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +2.1765596867 +-1.8524761200 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.5738315582 +-1.7165421247 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.5977635384 +-1.9099129438 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + +0.259091 +0.103636 +0.018182 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +2.2457070351 +-1.8361115456 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.9899449348 +-1.1223568916 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.6330676079 +-1.1580445766 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.5914319754 +-1.4019107819 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.6925472021 +-1.4019107819 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.8293501139 +-1.8480074406 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.003010 +0.000467 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +2.2457070351 +-1.8361115456 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.9899449348 +-1.1223568916 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.6330676079 +-1.1580445766 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.5914319754 +-1.4019107819 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.6925472021 +-1.4019107819 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.8293501139 +-1.8480074406 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +1.7754588127 +-1.8295013905 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.1928334236 +-1.7376023531 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.1909189224 +-1.9491615295 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + +0.259091 +0.103636 +0.018182 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +1.8650379181 +-1.8717992306 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.6390155554 +-1.1996803284 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.3369247913 +-1.2402738333 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.2405025959 +-1.4316505194 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.3340345621 +-1.4483662844 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.4784207344 +-1.8777471781 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.003010 +0.000467 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +1.8650379181 +-1.8717992306 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.6390155554 +-1.1996803284 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.3369247913 +-1.2402738333 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.2405025959 +-1.4316505194 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.3340345621 +-1.4483662844 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.4784207344 +-1.8777471781 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +1.4174356461 +-1.7107985020 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.4174356461 +-1.8725789785 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.8261947632 +-1.9769226313 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.8491694927 +-1.8371596336 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.6586705446 +-1.7605770826 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + +0.259091 +0.103636 +0.018182 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +1.4496415854 +-1.8616610765 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.1692947149 +-1.2749558687 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.8836252689 +-1.3305352926 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.8427051306 +-1.4541466236 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.9294103384 +-1.4772679806 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.0190056562 +-1.8674414158 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.003010 +0.000467 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +1.4496415854 +-1.8616610765 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.1692947149 +-1.2749558687 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.8836252689 +-1.3305352926 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.8427051306 +-1.4541466236 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.9294103384 +-1.4772679806 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.0190056562 +-1.8674414158 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +1.0383522511 +-1.8352450132 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.1237757206 +-1.9333400726 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.0249502659 +-1.9146994352 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.0510815382 +-2.0314772129 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.4557268620 +-1.9539479017 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.4375385046 +-1.8658779860 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.4049910307 +-1.7682353258 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +1.0633008480 +-3.3314039707 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.0575078726 +-3.1112737656 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.7846500278 +-2.8593096733 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.1729832888 +-2.4126429558 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.4040944576 +-2.1593096256 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.6013166904 +-2.2926430702 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.8129833937 +-2.1015319824 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.9735388756 +-2.2537541389 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.0974278450 +-2.1059763432 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.2485389709 +-1.9637540579 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.3513166904 +-2.2093095779 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.5374279022 +-1.9637540579 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.6129832268 +-2.1281986237 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.5124278069 +-2.6815319061 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.1513166428 +-3.3537540436 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.7124277353 +-3.6704206467 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +2.5410716534 +-1.1173973083 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.2271397114 +-1.2775236368 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.2334604263 +-1.3365175724 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.2713851929 +-1.3618006706 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.2545297146 +-1.5008578300 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.2566366196 +-1.8000414371 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.1934287548 +-1.6040972471 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.2123911381 +-1.3765492439 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.2713851929 +-1.1110764742 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +2.3032155037 +-1.3249542713 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.6163928509 +-1.2186977863 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +1.7160083055 +-1.2830109596 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.0124082565 +-1.1711618900 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +1.3804613352 +-1.3724901676 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.6768611670 +-1.2606410980 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +0.9778048992 +-1.4088410139 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.2070953846 +-1.3361392021 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + + + + + + + + + + + + + + + + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +0.6158705950 +-4.3668432236 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.2455489635 +-3.4558615685 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.6581947803 +-3.2878453732 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.0285164118 +-4.1988272667 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.077778 +0.287856 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +0.6158705950 +-4.3668432236 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.2455489635 +-3.4558615685 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.6581947803 +-3.2878453732 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.0285164118 +-4.1988272667 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + +0.315387 +0.315387 +0.315388 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +0.8849843740 +-4.4490346909 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.2045118809 +-5.1694421768 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.9195606709 +-4.4349560738 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +0.8849843740 +-4.4490346909 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.2045118809 +-5.1694421768 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.9195606709 +-4.4349560738 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.315387 +0.315387 +0.315388 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +0.7939337492 +-4.3710899353 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.8070445061 +-4.4608092308 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.9083893299 +-4.4531898499 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.9902129173 +-4.3862290382 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.9276887178 +-4.3138742447 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.8461569548 +-4.3098750114 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +0.7939337492 +-4.3710899353 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.8070445061 +-4.4608092308 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.9083893299 +-4.4531898499 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.9902129173 +-4.3862290382 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.9276887178 +-4.3138742447 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.8461569548 +-4.3098750114 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + +0.077778 +0.287856 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +0.6158705950 +-4.3668432236 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.2455489635 +-3.4558615685 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.6581947803 +-3.2878453732 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.0285164118 +-4.1988272667 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + +0.6790943146 +-4.3329901695 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.3087726235 +-3.4220082760 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.5958305597 +-3.3051276207 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.9661521912 +-4.2161092758 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.566782 +0.566783 +0.566784 +1.000000 + + +0.199570 +0.199570 +0.199574 +1.000000 + + + + + + + + + + + + + + + + + + + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + +0.6790943146 +-4.3329901695 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.3087726235 +-3.4220082760 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.5958305597 +-3.3051276207 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.9661521912 +-4.2161092758 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.999999 +1.000000 +1.000001 +0.077253 + + +0.082594 +0.082594 +0.082598 +0.120172 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + +0.5635443926 +-3.4729433060 + + + + +0.8873622417 +-4.2682361603 + + + + +0.9889634848 +-4.2268676758 + + + + +0.6644325256 +-3.4298229218 + + + + + + + + + + + + + + + + + +0.4969671965 +-3.2952079773 + + + + +0.9133884907 +-4.3179340363 + + + + + + +0.000000 +0.000000 +0.000000 +0.000000 + + + + +1.000000 +1.000000 +1.000000 +1.000000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.000000 +1.000000 +1.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +0.6158705950 +-4.3668432236 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.2455489635 +-3.4558615685 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.6581947803 +-3.2878453732 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.0285164118 +-4.1988272667 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + +1.000000 +1.000000 +1.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +0.4681704044 +-3.8511173725 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.4915071726 +-3.7880711555 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.5514436960 +-3.8137679100 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.5263382196 +-3.8721973896 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.6455543041 +-3.8436279297 + + + + +0.6712677479 +-3.8069887161 + + + + + +0.000000 +0.215588 +0.000000 +1.000000 + + +0.566783 +0.566783 +0.566783 +1.000000 + + + + + + + + + + + + + + + + + + + + + + + +0.076032 +0.290352 +0.000000 +1.000000 + + +0.000000 +0.506301 +0.000000 +0.008584 + + + + + +0.5097416639 +-3.8314363956 + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.506301 +0.000000 +1.000000 + + +0.000000 +0.443439 +0.000000 +0.000000 + + + + + +0.5097416639 +-3.8314363956 + + + + + + + + + + + + + + + + + + + + + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + +1.000000 +1.000000 +1.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +0.5213173628 +-3.8736021519 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.5141663551 +-3.8310992718 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.5491991043 +-3.8083727360 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.000000 +1.000000 +1.000000 +1.000000 + + +1.000000 +1.000000 +1.000000 +0.010000 + + + + + +0.5097416639 +-3.8314363956 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.412988 +1.413004 +0.413010 +1.000000 + + + + + + + + + + +0.4849107265 +-3.8229835033 + + + + + + + + + + + + + + + + + + + + + +1.000000 +1.000000 +1.000000 +1.000000 + + + + + + + + + + +0.4790327549 +-3.8217098713 + + + + + + + + + + + + + + + + + + + + + +0.077778 +0.287856 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +0.4681704044 +-3.8511173725 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.4915071726 +-3.7880711555 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.5514436960 +-3.8137679100 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.5263382196 +-3.8721973896 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + +1.000000 +1.000000 +1.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +0.3065034151 +-3.0167055130 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0709647834 +-2.9834530354 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.2372273356 +-2.8559851646 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.4422844946 +-2.8421299458 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +0.3065034151 +-3.0167055130 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0709647834 +-2.9834530354 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.2372273356 +-2.8559851646 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.4422844946 +-2.8421299458 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.829156 +0.829156 +0.829156 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +0.2959790826 +-2.9832417965 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.2611734271 +-2.9912412167 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.2598887086 +-3.0411431789 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.2732509077 +-3.0887527466 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.3924057186 +-3.0471870899 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.3601262569 +-2.9993007183 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.3247083426 +-2.9653718472 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +0.2959790826 +-2.9832417965 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.2611734271 +-2.9912412167 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.2598887086 +-3.0411431789 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.2732509077 +-3.0887527466 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.3924057186 +-3.0471870899 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.3601262569 +-2.9993007183 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.3247083426 +-2.9653718472 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + +1.000000 +1.000000 +1.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-0.0153973177 +-3.3528521061 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.1639873981 +-3.2436525822 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.3562228680 +-3.1533269882 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.5728509426 +-3.0806200504 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.7748370171 +-3.0322828293 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.7672375441 +-2.9723219872 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.5646349192 +-3.0026495457 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.1304634213 +-3.1752266884 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.0566836074 +-3.3060743809 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-0.0153973177 +-3.3528521061 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.1639873981 +-3.2436525822 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.3562228680 +-3.1533269882 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.5728509426 +-3.0806200504 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.7748370171 +-3.0322828293 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.7672375441 +-2.9723219872 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.5646349192 +-3.0026495457 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.1304634213 +-3.1752266884 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.0566836074 +-3.3060743809 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + +0.829156 +0.829156 +0.829156 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +0.2463524938 +-3.5381357670 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.4728401899 +-3.4132506847 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.7192196846 +-3.3414201736 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.6894128323 +-3.2682147026 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.5787376165 +-3.0757050514 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.3504053950 +-3.1210768223 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.1513766050 +-3.2497127056 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.2094373107 +-3.4659519196 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +0.2463524938 +-3.5381357670 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.4728401899 +-3.4132506847 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.7192196846 +-3.3414201736 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.6894128323 +-3.2682147026 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.5787376165 +-3.0757050514 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.3504053950 +-3.1210768223 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.1513766050 +-3.2497127056 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.2094373107 +-3.4659519196 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +0.2303160429 +-3.5294501781 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.4538500309 +-3.3814771175 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.4255148172 +-3.3279547691 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.3976144791 +-3.1048617363 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.5718281269 +-3.0744433403 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.6899775267 +-3.2681357861 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.7214612961 +-3.3405482769 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.8662861586 +-3.7246489525 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.3908827305 +-3.7750229836 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.4569984674 +-3.5703790188 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-0.0375472978 +-3.3437182903 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.1257860661 +-3.2303848267 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.3340126872 +-3.1048617363 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.4861039519 +-2.9997804165 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.7891193628 +-2.9970514774 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.5707861185 +-3.0703847408 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.3491194248 +-3.1220514774 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.1407860518 +-3.2520515919 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +0.3000333905 +-3.0641510487 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.3340126872 +-3.0080764294 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.2704108953 +-3.0357294083 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0875910446 +-3.0083923340 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.2871060967 +-2.9612846375 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.4118030369 +-2.8892376423 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.4173451066 +-2.8033351898 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.4450555444 +-2.8504431248 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.3674663305 +-2.9834530354 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.3733563423 +-3.0454304218 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +1.0213760138 +-4.0587601662 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.5943393707 +-3.1729464531 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.9955676198 +-2.9792406559 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.4226042032 +-3.8650541306 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.077778 +0.287856 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +1.0213760138 +-4.0587601662 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.5943393707 +-3.1729464531 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.9955676198 +-2.9792406559 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.4226042032 +-3.8650541306 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + +0.315387 +0.315387 +0.315388 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +1.2951375246 +-4.1238160133 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.6594623327 +-4.8226380348 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.3287571669 +-4.1075844765 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +1.2951375246 +-4.1238160133 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.6594623327 +-4.8226380348 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.3287571669 +-4.1075844765 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.315387 +0.315387 +0.315388 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +1.1993525028 +-4.0517683029 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.2180954218 +-4.1404824257 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.3187580109 +-4.1264867783 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.3961956501 +-4.0544986725 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.3292328119 +-3.9862310886 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.2476111650 +-3.9873816967 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +1.1993525028 +-4.0517683029 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.2180954218 +-4.1404824257 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.3187580109 +-4.1264867783 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.3961956501 +-4.0544986725 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.3292328119 +-3.9862310886 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.2476111650 +-3.9873816967 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + +0.077778 +0.287856 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +1.0213760138 +-4.0587601662 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.5943393707 +-3.1729464531 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.9955676198 +-2.9792406559 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.4226042032 +-3.8650541306 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + +1.0823388100 +-4.0209870338 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.6553021669 +-3.1351733208 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.9344174266 +-3.0004217625 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.3614540100 +-3.8862352371 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.566782 +0.566783 +0.566784 +1.000000 + + +0.199570 +0.199570 +0.199574 +1.000000 + + + + + + + + + + + + + + + + + + + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + +1.0823388100 +-4.0209870338 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.6553021669 +-3.1351733208 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.9344174266 +-3.0004217625 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.3614540100 +-3.8862352371 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.999999 +1.000000 +1.000001 +0.077253 + + +0.082594 +0.082594 +0.082598 +0.120172 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + +0.9127790332 +-3.1699395180 + + + + +1.2861083746 +-3.9432272911 + + + + +1.3848984241 +-3.8955333233 + + + + +1.0107469559 +-3.1205422878 + + + + + + + + + + + + + + + + + +0.8351253271 +-2.9967567921 + + + + +1.3152171373 +-3.9911847115 + + + + + + +0.000000 +0.000000 +0.000000 +0.000000 + + + + +1.000000 +1.000000 +1.000000 +1.000000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.000000 +1.000000 +1.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +1.0213760138 +-4.0587601662 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.5943393707 +-3.1729464531 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.9955676198 +-2.9792406559 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.4226042032 +-3.8650541306 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + +1.000000 +1.000000 +1.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +0.8414449096 +-3.5533757210 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.8607591391 +-3.4889831543 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.9221969843 +-3.5108487606 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.9008263946 +-3.5707452297 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.0180033445 +-3.5347142220 + + + + +1.0413548946 +-3.4965262413 + + + + + +0.000000 +0.215588 +0.000000 +1.000000 + + +0.566783 +0.566783 +0.566783 +1.000000 + + + + + + + + + + + + + + + + + + + + + + + +0.076032 +0.290352 +0.000000 +1.000000 + + +0.000000 +0.506301 +0.000000 +0.008584 + + + + + +0.8816922307 +-3.5311119556 + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.506301 +0.000000 +1.000000 + + +0.000000 +0.443439 +0.000000 +0.000000 + + + + + +0.8816922307 +-3.5311119556 + + + + + + + + + + + + + + + + + + + + + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + +1.000000 +1.000000 +1.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +0.8959041238 +-3.5724637508 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.8860868812 +-3.5304965973 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.9196165800 +-3.5056059361 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.000000 +1.000000 +1.000000 +1.000000 + + +1.000000 +1.000000 +1.000000 +0.010000 + + + + + +0.8816922307 +-3.5311119556 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.412988 +1.413004 +0.413010 +1.000000 + + + + + + + + + + +0.8563776612 +-3.5242419243 + + + + + + + + + + + + + + + + + + + + + +1.000000 +1.000000 +1.000000 +1.000000 + + + + + + + + + + +0.8504310250 +-3.5233416557 + + + + + + + + + + + + + + + + + + + + + +0.077778 +0.287856 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +0.8414449096 +-3.5533757210 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.8607591391 +-3.4889831543 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.9221969843 +-3.5108487606 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.9008263946 +-3.5707452297 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + +1.000000 +1.000000 +1.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +0.6274765730 +-2.7308204174 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.3903097212 +-2.7124886513 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.5482023954 +-2.5747890472 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.7519775629 +-2.5480291843 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +0.6274765730 +-2.7308204174 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.3903097212 +-2.7124886513 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.5482023954 +-2.5747890472 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.7519775629 +-2.5480291843 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.829156 +0.829156 +0.829156 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +0.6148627400 +-2.6980872154 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.5806308985 +-2.7082657814 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.5824958682 +-2.7581493855 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.5988339782 +-2.8048212528 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.7151302695 +-2.7558238506 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.6798950434 +-2.7100684643 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.6424078345 +-2.6784408092 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +0.6148627400 +-2.6980872154 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.5806308985 +-2.7082657814 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.5824958682 +-2.7581493855 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.5988339782 +-2.8048212528 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.7151302695 +-2.7558238506 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.6798950434 +-2.7100684643 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.6424078345 +-2.6784408092 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + +1.000000 +1.000000 +1.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +0.3274161220 +-3.0865991116 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.4995569587 +-2.9663038254 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.6857132316 +-2.8640344143 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.8973247409 +-2.7778103352 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.0958602428 +-2.7168307304 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.0844944715 +-2.6574685574 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.8842077851 +-2.7005131245 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.4617843330 +-2.9001283646 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.2832619250 +-3.0425181389 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +0.3274161220 +-3.0865991116 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.4995569587 +-2.9663038254 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.6857132316 +-2.8640344143 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.8973247409 +-2.7778103352 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.0958602428 +-2.7168307304 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.0844944715 +-2.6574685574 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.8842077851 +-2.7005131245 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.4617843330 +-2.9001283646 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.2832619250 +-3.0425181389 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + +0.829156 +0.829156 +0.829156 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +0.6003299952 +-3.2550063133 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.8184908032 +-3.1160860062 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.0598497391 +-3.0288603306 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.0254855156 +-2.9576804638 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.9028897285 +-2.7725338936 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.6778734922 +-2.8322153091 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.4873534441 +-2.9731471539 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.5589359403 +-3.1852941513 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +0.6003299952 +-3.2550063133 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.8184908032 +-3.1160860062 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.0598497391 +-3.0288603306 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.0254855156 +-2.9576804638 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.9028897285 +-2.7725338936 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.6778734922 +-2.8322153091 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.4873534441 +-2.9731471539 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.5589359403 +-3.1852941513 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +0.5837777257 +-3.2473492622 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.7975346446 +-3.0855734348 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.7658803463 +-3.0339446068 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.7321708798 +-2.8499505520 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.9139807224 +-2.7816779613 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.0260441303 +-2.9575660229 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.0620319843 +-3.0278487206 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.2307922840 +-3.4020512104 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.7595121264 +-3.4823069572 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.8125901222 +-3.2739007473 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +0.3047342002 +-3.0788803101 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.4605949223 +-2.9554715157 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.6623986959 +-2.8191399574 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.9027066231 +-2.7371547222 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.1078922749 +-2.6807687283 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.8946185112 +-2.7677254677 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.6766515374 +-2.8332691193 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.4769314826 +-2.9761493206 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +0.6240116358 +-2.7785797119 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.6503298283 +-2.7003211975 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.5732145905 +-2.7509088516 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.4084756970 +-2.7363300323 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.6046227217 +-2.6767332554 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.7245276570 +-2.5969655514 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.7246412039 +-2.5108845234 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.7552673221 +-2.5561509132 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.6862210631 +-2.6937894821 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.6960079670 +-2.7552721500 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + +1.000000 +1.000000 +1.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +0.3866142631 +-4.5881695747 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.2178021371 +-4.3846349716 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.2762220204 +-4.0889959335 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.4073577821 +-3.9218070507 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.3126578331 +-3.4980039597 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.4416358471 +-3.6170656681 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.4847497940 +-3.6924412251 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.7117388248 +-4.6750211716 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.5757516623 +-0.9612906575 + + + + +1.5763763189 +-3.9690003395 + + + + + +0.899070 +0.899070 +0.899070 +1.000000 + + +0.854911 +0.854912 +0.780928 +1.000000 + + + + + + + + + + + + + + + + + + + + + + +0.018551 +0.021198 +0.008135 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +0.3866142631 +-4.5881695747 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.2178021371 +-4.3846349716 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.2762220204 +-4.0889959335 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.4073577821 +-3.9218070507 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.3126578331 +-3.4980039597 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.4416358471 +-3.6170656681 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.4847497940 +-3.6924412251 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.7117388248 +-4.6750211716 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + +1.000000 +1.000000 +1.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +2.4638726711 +-3.7627038956 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.6016342640 +-3.4860217571 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.3947696686 +-3.2470893860 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.3788228035 +-3.0504117012 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.3741717339 +-3.4171888828 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.1515803933 +-3.5607106686 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.1941053122 +-3.7361259460 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.1588886976 +-4.0463294983 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.3535737395 +-4.4324712753 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.5757516623 +-0.9612906575 + + + + +1.5763763189 +-3.9690003395 + + + + + +0.899070 +0.899070 +0.899070 +1.000000 + + +0.854911 +0.854912 +0.780928 +1.000000 + + + + + + + + + + + + + + + + + + + + + + +0.018551 +0.021198 +0.008135 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +2.4638726711 +-3.7627038956 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.6016342640 +-3.4860217571 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.3947696686 +-3.2470893860 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.3788228035 +-3.0504117012 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.3741717339 +-3.4171888828 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.1515803933 +-3.5607106686 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.1941053122 +-3.7361259460 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.1588886976 +-4.0463294983 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.3535737395 +-4.4324712753 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +1.1957738400 +-3.3801071644 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.3884725571 +-3.5404450893 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.7147641182 +-3.6452255249 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.2038787752 +-3.7032806873 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.3011211157 +-3.7265028954 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.4928845167 +-3.8997259140 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.4270098209 +-4.4543318748 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.6959753036 +-4.4543318748 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.5539939404 +-3.7690584660 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.6077747345 +-3.6010460854 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.6238431931 +-3.4524142742 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.4089298248 +-3.2395095825 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.3546991348 +-3.0004937649 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.5191481113 +-3.3640387058 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + +1.000000 +1.000000 +1.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +3.9262909889 +-1.9770095348 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.8341386318 +-2.2874085903 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.5835421085 +-2.6878583431 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.4349894524 +-3.1597316265 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.4676241875 +-3.3316762447 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.3633322716 +-3.3863496780 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.7826747894 +-4.4622135162 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +4.4702906609 +-4.1743426323 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +4.5705947876 +-1.7171438932 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.5757516623 +-0.9612906575 + + + + +1.5763763189 +-3.9690003395 + + + + + +0.899070 +0.899070 +0.899070 +1.000000 + + +0.854911 +0.854912 +0.780928 +1.000000 + + + + + + + + + + + + + + + + + + + + + + +0.018551 +0.021198 +0.008135 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +3.9262909889 +-1.9770095348 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.8341386318 +-2.2874085903 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.5835421085 +-2.6878583431 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.4349894524 +-3.1597316265 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.4676241875 +-3.3316762447 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.3633322716 +-3.3863496780 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.7826747894 +-4.4622135162 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +4.4702906609 +-4.1743426323 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +4.5705947876 +-1.7171438932 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +2.6329212189 +-4.4385681152 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.9263026714 +-3.9355013371 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.1236901283 +-3.8368077278 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.3272459507 +-3.4246160984 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.4781894684 +-3.3375332355 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.4491617680 +-3.2330341339 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.8903808594 +-2.5595941544 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.9716582298 +-2.1880412102 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +4.2038788795 +-1.9093766212 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +4.3199892044 +-2.5653998852 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.8671588898 +-3.6103925705 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.6260247231 +-4.2888145447 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + +1.000000 +1.000000 +1.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-1.9691904783 +-0.4814476967 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.9529851675 +-0.5597731471 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.1015334129 +-0.6110898256 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.1339440346 +-0.5948845148 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.1447474957 +-0.6462012529 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.1879615784 +-0.6299959421 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.1906623840 +-0.7056205273 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.2770905495 +-0.7029196024 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.3068001270 +-0.8298609257 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.3936312199 +-0.8154236078 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.3662195206 +-0.6137906313 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.2608852386 +-0.6110898256 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.2500817776 +-0.5381661057 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.2041666508 +-0.5327643752 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.1744570732 +-0.4895502925 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.1204395294 +-0.5246617198 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.622418 +0.161688 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-2.1409943104 +-0.6075457335 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.1265158653 +-0.5585378408 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.1825973988 +-0.4974203706 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.1152985096 +-0.5267871618 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.9770299196 +-0.4839605689 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.9525576830 +-0.5573775172 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.1006150246 +-0.6112166643 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.1287581921 +-0.5940860510 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.147037 +0.147037 +0.147037 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-2.3821859360 +-0.6616306305 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.3162066936 +-0.6451357603 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.2859661579 +-0.7083660364 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.3052101135 +-0.8362010717 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.3936312199 +-0.8200002909 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.000000 +0.085238 +0.000191 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-2.2953369617 +-0.6808859110 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.3239829540 +-0.6574484110 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.3562746048 +-0.6574484110 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.3354411125 +-0.6741150618 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.000000 +0.693864 +0.000191 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-2.3380453587 +-0.6626567841 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.3239829540 +-0.6631776094 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.3093996048 +-0.6746358871 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.3250246048 +-0.6730734110 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + +0.365228 +0.365228 +0.365228 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-2.3797941208 +-0.6686153412 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.3377947807 +-0.6572405100 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.2914204597 +-0.6974898577 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.3342947960 +-0.6686153412 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.365228 +0.365228 +0.365228 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-2.3902940750 +-0.7657388449 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.3430447578 +-0.7499890327 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.3019204140 +-0.7946133614 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.3447947502 +-0.7657388449 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.365228 +0.365228 +0.365228 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-2.3097951412 +-0.7561140060 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.3517944813 +-0.7351143360 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.3062953949 +-0.7438641787 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.365228 +0.365228 +0.365228 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-2.3859190941 +-0.7438641787 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.3552944660 +-0.7403641939 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.3745441437 +-0.7342393398 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.3386697769 +-0.7228645086 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.3045454025 +-0.7342393398 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.3369197845 +-0.7141146660 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.3850440979 +-0.7272393703 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.365228 +0.365228 +0.365228 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-2.3841691017 +-0.7123646736 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.3465447426 +-0.7018648386 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.3036704063 +-0.7123646736 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.2914204597 +-0.7106146812 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.3176701069 +-0.6974898577 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.3395447731 +-0.6931149960 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.3736691475 +-0.6922399998 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.365228 +0.365228 +0.365228 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-2.3841691017 +-0.6834901571 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.3439197540 +-0.6791151762 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.3185451031 +-0.6843651533 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.3010454178 +-0.6974898577 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.3054203987 +-0.6887400150 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.3316698074 +-0.6738651991 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.3614194393 +-0.6694903374 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.365228 +0.365228 +0.365228 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-2.3885440826 +-0.7797385454 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.3666694164 +-0.7744886875 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.3430447578 +-0.7762386799 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.3229200840 +-0.7797385454 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.3089201450 +-0.7867385149 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.3264200687 +-0.7867385149 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.3544194698 +-0.7823635340 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.365228 +0.365228 +0.365228 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-2.3876690865 +-0.7963633537 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.3649194241 +-0.7893635035 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.3474197388 +-0.7884885073 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.3299198151 +-0.7946133614 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.3097951412 +-0.8059881926 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.3220450878 +-0.8024882078 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.3727941513 +-0.7989883423 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-1.9698785543 +-0.5077894330 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.1048922539 +-0.5624786019 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.1561634541 +-0.5419701934 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.1647086143 +-0.6017864943 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.2125616074 +-0.6000773907 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.2211067677 +-0.6428033113 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.3151037693 +-0.6547665596 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.3356122971 +-0.8034527302 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.3937194347 +-0.8102889061 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.3116858006 +-0.8273792267 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.2860503197 +-0.7043286562 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.1886351109 +-0.7060376406 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.1835079193 +-0.6376762390 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.1476182938 +-0.6496394873 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.1305279732 +-0.5915322304 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.1014742851 +-0.6103316545 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.9527882338 +-0.5556424856 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-1.9691904783 +-0.4814476967 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.9529851675 +-0.5597731471 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.1015334129 +-0.6110898256 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.1339440346 +-0.5948845148 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.1447474957 +-0.6462012529 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.1879615784 +-0.6299959421 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.1906623840 +-0.7056205273 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.2770905495 +-0.7029196024 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.3068001270 +-0.8298609257 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.3936312199 +-0.8154236078 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.3662195206 +-0.6137906313 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.2608852386 +-0.6110898256 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.2500817776 +-0.5381661057 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.2041666508 +-0.5327643752 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.1744570732 +-0.4895502925 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.1204395294 +-0.5246617198 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.147037 +0.147037 +0.147037 +1.000000 + + + + + + + + + + +-2.3823034763 +-0.7107604146 + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.0000000000 +0.3333333433 + + + + + + + + + + + + + + + +0.1000000015 +0.1000000015 + + + + + + + diff --git a/synfig-core/tags/stable/examples/mandelbrot.sif b/synfig-core/tags/stable/examples/mandelbrot.sif new file mode 100644 index 0000000..df71fce --- /dev/null +++ b/synfig-core/tags/stable/examples/mandelbrot.sif @@ -0,0 +1,349 @@ + + + Untitled0 + + + + + + + + + + 0.750000 + 0.750000 + 0.750000 + 1.000000 + + + + + + + + + + + + + 0.500000 + 0.500000 + 0.500000 + 1.000000 + + + + + 0.1250000000 + 0.1250000000 + + + + + 0.2500000000 + 0.2500000000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0.000000 + 0.000000 + 0.000000 + 0.000000 + + + 0.000000 + 0.000000 + 0.000000 + 1.000000 + + + + + + + + + + + + + + + + + + + + + + + + + 0.000000 + 0.000000 + 0.000000 + 0.000000 + + + 0.000000 + 0.000000 + 0.000000 + 1.000000 + + + + + + + + + + + + + + + + + + + + + + + + + + + 0.3702099300 + 0.3603981000 + + + + + + + + + 0.0000000000 + 0.0000000000 + + + + + -1.1840960541 + -0.2352941176 + + + + + -1.8311548776 + -0.0980392157 + + + + + -0.9095862501 + -0.3921568627 + + + + + -0.8060567423 + -0.1699999797 + + + + + -0.3213509560 + 0.3921568627 + + + + + -0.6760568384 + 0.2300000000 + + + + + -0.0272333090 + 0.1568627451 + + + + + -0.0468411521 + 0.5490196078 + + + + + -0.8160568384 + 0.4300000000 + + + + + 0.0039431616 + 0.3400000000 + + + + + 0.0119823773 + 0.3725490196 + + + + + -0.9060568384 + 0.3300000000 + + + + + -0.8560568384 + -0.7400000000 + + + + + + + + + + + 0.0000000000 + 0.0000000000 + + + + + -0.6500000000 + 0.8000000000 + + + + + -1.1100000000 + 0.3000000000 + + + + + -0.0000001323 + 0.0000000000 + + + + + -0.5617647059 + -0.1176470588 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0.1000000000 + 0.1000000000 + + + + + + + + + + + + + + + + 2.000000 + 2.000000 + 2.000000 + 1.000000 + + + + + + + + + + + + + + + + + + diff --git a/synfig-core/tags/stable/examples/newjulia.sif b/synfig-core/tags/stable/examples/newjulia.sif new file mode 100644 index 0000000..0874a4d --- /dev/null +++ b/synfig-core/tags/stable/examples/newjulia.sif @@ -0,0 +1,627 @@ + + + Interesting Julia #1 + + + + + + + + + + + + + + + 0.000000 + 0.300000 + 0.400000 + 1.000000 + + + + + + + + + + + + + + + + 0.000000 + 0.000000 + 0.000000 + 1.000000 + + + + + 0.0000000000 + 0.0000000000 + + + + + + + + + + + + + + + + + + + 0.0000000000 + 1.0000000000 + + + + + -0.2000000030 + 0.2000000030 + + + + + -1.0000000000 + 0.0000000000 + + + + + -0.2000000030 + -0.2000000030 + + + + + 0.0000000000 + -1.0000000000 + + + + + 0.2000000030 + -0.2000000030 + + + + + 1.0000000000 + 0.0000000000 + + + + + 0.2000000030 + 0.2000000030 + + + + + + + + + + + + + + + + + + 0.2000000030 + 0.2000000030 + + + + + + + + + + + + + + + + + + + 0.000000 + 0.600000 + 0.800000 + 1.000000 + + + + + + + + + + + 0.0000000000 + 0.0000000000 + + + + + + + + + + + + + + + + + + + + + + 0.000000 + 0.000000 + 0.000000 + 0.000000 + + + + + + + + + + + 0.0000000000 + 0.0000000000 + + + + + + + + + + + + + + + + + + + + + + 0.000000 + 0.000000 + 0.000000 + 1.000000 + + + + + + + + + + + 0.0000000000 + 0.0000000000 + + + + + + + + + + + + + + + + + + + + + + + + 0.800000 + 0.800000 + 1.000000 + 1.000000 + + + + + + + + + + + + + + + + 0.000000 + 0.000000 + 0.000000 + 1.000000 + + + + + 0.2500000000 + 0.2500000000 + + + + + 0.5000000000 + 0.5000000000 + + + + + + + + + + + + + + + + 0.0250000004 + 0.0250000004 + + + + + + + + + + 0.0000000000 + 0.0000000000 + + + + + + + 0.000000 + 0.000000 + 0.000000 + 1.000000 + + + + + 0.000000 + 0.000000 + 0.000000 + 1.000000 + + + + + + + + + + + 0.2800000012 + 0.4879537821 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0.0000000000 + 0.0000000000 + + + + + + + + + + 0.0000000000 + 0.0000000000 + + + + + + + 0.0000000000 + 0.0000000000 + + + + + + + + + + + + + + + + + + + 0.000000 + 0.000000 + 0.000000 + 1.000000 + + + + + + + + + + + 0.0000000000 + 0.0000000000 + + + + + + + + + + + + + + + + + + + + + + 0.0000000000 + 0.0000000000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0.000000 + 0.200000 + 0.320000 + 1.000000 + + + + + + + + + + + -0.8000000119 + -0.2000000030 + + + + + + + + + + + + + + + + + + + + + + 0.000000 + 0.200000 + 0.320000 + 1.000000 + + + + + + + + + + + 0.8000000119 + 0.2000000030 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/synfig-core/tags/stable/examples/newjulia2.sif b/synfig-core/tags/stable/examples/newjulia2.sif new file mode 100644 index 0000000..3388ace --- /dev/null +++ b/synfig-core/tags/stable/examples/newjulia2.sif @@ -0,0 +1,400 @@ + + + Untitled2 + + + + + + + + + + + + + + + 0.750000 + 0.750000 + 0.750000 + 1.000000 + + + + + + + + + + + + + + + + 0.500000 + 0.500000 + 0.500000 + 1.000000 + + + + + 0.1250000000 + 0.1250000000 + + + + + 0.2500000000 + 0.2500000000 + + + + + + + 0.0000000000 + 0.0000000000 + + + + + + + + + + + + + + + + + + 0.0000000000 + 0.0000000000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0.000000 + 0.000000 + 0.000000 + 0.000000 + + + 0.000000 + 0.000000 + 0.000000 + 1.000000 + + + + + + + + + + + + + + + + + + + + + + + + + 0.000000 + 0.000000 + 0.000000 + 0.000000 + + + 0.000000 + 0.000000 + 0.000000 + 1.000000 + + + + + + + + + + + + + + + + + + + + 0.0000000000 + 0.0000000000 + + + + + + + 0.000000 + 0.000000 + 0.000000 + 1.000000 + + + + + 0.000000 + 0.000000 + 0.000000 + 1.000000 + + + + + + + + + + + -0.1920000017 + 0.6660000086 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0.1500000060 + 0.1500000060 + + + + + + + + + + + + + + + + + + + 0.000000 + 0.000000 + 0.000000 + 1.000000 + + + + + + + + + + + 0.0000000000 + 0.0000000000 + + + + + + + + + + + + + + + + + + + + + + 0.0000000000 + 0.0000000000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/synfig-core/tags/stable/examples/noise.sif b/synfig-core/tags/stable/examples/noise.sif new file mode 100644 index 0000000..ffa98e8 --- /dev/null +++ b/synfig-core/tags/stable/examples/noise.sif @@ -0,0 +1,139 @@ + + + Noise Test + A Fire-Like test of the Noise layer + + + + + + + + + + + + + 0.456263 + 0.460148 + 0.460148 + 1.000000 + + + + + + + + + + + + + + + + 0.147464 + 0.147464 + 0.147464 + 1.000000 + + + + + 0.1250000000 + 0.1250000000 + + + + + 0.2500000000 + 0.2500000000 + + + + + + + + + + + + + + + + + 1.000000 + 1.000000 + 1.000000 + 1.000000 + + + 1.000000 + 1.000000 + 1.000000 + 1.000000 + + + 1.000000 + 0.653250 + -0.000000 + 1.000000 + + + 1.000000 + -0.000000 + -0.000000 + 1.000000 + + + -0.000000 + -0.000000 + -0.000000 + 1.000000 + + + -0.000000 + -0.000000 + -0.000000 + 0.000000 + + + 1.000000 + 1.000000 + 1.000000 + 0.000000 + + + + + + + + + 0.8199999928 + 0.7799999714 + + + + + + + + + + + + + + + + + + + + + + diff --git a/synfig-core/tags/stable/examples/pirates.sif b/synfig-core/tags/stable/examples/pirates.sif new file mode 100644 index 0000000..087f26b --- /dev/null +++ b/synfig-core/tags/stable/examples/pirates.sif @@ -0,0 +1,520973 @@ + + +Untitled2 + + + + + + + + + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + +-0.6395573020 +-2.9261307716 + + + + +-0.6233974695 +3.1494810581 + + + + + +0.825782 +0.888985 +0.888985 +1.000000 + + +0.458452 +0.681083 +0.946377 +1.000000 + + + + + + + + + + + + + + + + + + + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + +1.000000 +1.000000 +1.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-4.2323617935 +0.8528280854 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.5819308758 +1.5346816778 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.9000772834 +2.1395518780 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.9566357136 +1.9635895491 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-3.9024326801 +1.3807147741 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.000000 +1.000000 +1.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-2.0658268929 +2.2715234756 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.7806735039 +2.2055375576 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-3.3965413570 +1.6446580887 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-3.8804373741 +1.4576982260 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-3.9464232922 +1.2487430573 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-3.2205791473 +1.4906910658 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.3077750206 +1.8866060972 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.000000 +1.000000 +1.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-4.1113877296 +1.5896698236 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.7586781979 +2.5134716034 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.3289852142 +2.9863700867 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-3.3525507450 +3.4812636375 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-4.2103667259 +2.6124503613 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.000000 +1.000000 +1.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-1.6919072866 +0.9957973957 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.5387253761 +1.0617831945 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-3.7594633102 +0.8198351264 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-3.8584420681 +0.2039673775 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.0438318253 +0.9078162909 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.000000 +1.000000 +1.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-3.9024326801 +0.2919484973 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-3.4515295029 +0.6768658757 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.7366828918 +0.8308327794 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.9888435602 +1.0727808475 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.4829521179 +0.8968186378 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.7586781979 +0.6988611221 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-3.8364467621 +0.0719957203 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.000000 +1.000000 +1.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-3.1917781830 +-0.0550929345 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.6414716244 +0.2892378867 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.1324379444 +0.3443308473 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.7334656715 +0.6060222387 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.5958890915 +0.3443308473 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.3112876415 +0.1515055597 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + +0.206027 +0.229096 +0.423505 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-4.1135721207 +-0.6722527742 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.5409095287 +-0.5842716694 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.7262991667 +-0.6062669754 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.5714222193 +-2.0249624252 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-3.9266121387 +-2.0579552650 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.5722963810 +-0.3257517219 + + + + +-2.5722963810 +-1.7664424181 + + + + + +0.286632 +0.421786 +0.735049 +1.000000 + + +0.027594 +0.050660 +0.245070 +1.000000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.037701 +0.110873 +0.284738 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-1.4614109993 +-1.8167219162 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.2407279015 +-1.8212271929 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.9749492407 +-1.9789113998 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.037701 +0.110873 +0.284738 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-1.1955813169 +-1.7159845829 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.8704473972 +-1.6669611931 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.3463144302 +-1.7275195122 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.2280688286 +-1.7448217869 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.8704473972 +-1.7044496536 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.3282473087 +-1.7765429020 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.037701 +0.110873 +0.284738 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-0.6822217107 +-1.6035192013 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.2013494968 +-1.4939374924 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.9021718502 +-1.6064028740 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.5135889053 +-1.5458446741 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.4616761208 +-1.6929147243 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.5358984470 +-1.6006354094 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.8985249400 +-1.6986821890 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.037701 +0.110873 +0.284738 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-1.0138866901 +-1.4506815672 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.2532621622 +-1.4304955006 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.4068794250 +-1.5487283468 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.2482569218 +-1.3843559027 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.5474345684 +-1.2170996666 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.037701 +0.110873 +0.284738 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-1.5070580244 +-1.1680762768 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.6570281982 +-1.1623088121 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.8308336735 +-1.4449141026 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-3.6239454746 +-1.2459368706 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-3.7248868942 +-1.0440759659 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-3.3384251595 +-0.9402617812 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.3434305191 +-1.0411922932 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.2734504938 +-0.9027733207 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.037701 +0.110873 +0.284738 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-1.5128260851 +-0.8104940057 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.0896346569 +-0.8306801319 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.9202389717 +-0.9027733207 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-3.6412496567 +-0.8422150612 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-3.7306549549 +-0.7441682816 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-3.2317156792 +-0.6720750928 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.1530835629 +-0.6807262897 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.4003484249 +-0.7297496796 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.605253 +0.669151 +0.701698 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-3.8075940609 +-0.6456896663 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.8358027935 +-0.5611377954 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.1622250080 +-0.6328291297 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.3531645536 +-0.6392598748 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.605253 +0.669151 +0.701698 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-1.0890425444 +-0.8422618508 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.1879417896 +-0.8429774046 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-3.6315450668 +-0.8359314203 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.605253 +0.669151 +0.701698 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-3.6519763470 +-1.2170997858 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.9562714100 +-1.4513734579 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.3413707018 +-1.1486197710 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.5735719800 +-1.6604176760 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.8619470596 +-1.6856471300 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.6498727798 +-1.7325018644 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.605253 +0.669151 +0.701698 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-2.7818050385 +-0.7239822149 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.1256480217 +-0.7449385524 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.3963389397 +-0.6903138161 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.4209223986 +-0.8760378361 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.8333780766 +-0.8787690997 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.5736131668 +-0.9962122440 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.605253 +0.669151 +0.701698 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-3.0079209805 +-0.8459942341 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-3.5979237556 +-0.7859070897 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-3.9745507240 +-1.2080845833 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-3.0161154270 +-1.1382365227 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.1638889313 +-1.2310985327 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.605253 +0.669151 +0.701698 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-2.0982868671 +-1.3584023714 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.4032324553 +-1.2430531979 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.6937851310 +-1.5376332998 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.8467894197 +-1.4964396954 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.5176545382 +-1.4611308575 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.4503922462 +-1.5405757427 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.4886434078 +-1.7494860888 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.2469545603 +-1.7936221361 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.605253 +0.669151 +0.701698 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-3.2461359501 +-0.9517967105 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.8827464581 +-1.0238898993 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.3866910934 +-1.0469597578 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + +0.1000000015 +0.1000000015 + + + + + + + + + + + + + + + + + + +-1.9948612452 +-2.0108921528 + + + + +-2.0636496544 +3.0301113129 + + + + + +1.000000 +1.000000 +1.000000 +0.000000 + + +1.000000 +1.000000 +1.000000 +1.000000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + +0.000000 +0.013005 +0.122552 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-3.6847856045 +-1.4308815002 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.7834138870 +-1.0010761023 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.0017554760 +-1.9029628038 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.6004042625 +-1.5788472891 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.3150514066 +-3.1853330135 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-3.7692890167 +-3.1289651394 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +0.0315602943 +-3.4232680798 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.6643725634 +-2.9200913906 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.6182315350 +-2.6110174656 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.5190285444 +-2.4657065868 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.6311326027 +-2.7457678318 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.4627578259 +-3.0129930973 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.2819225788 +-2.6874008179 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.1586849689 +-2.4754829407 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.4656419754 +-2.1709446907 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.5781195164 +-1.8450833559 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.7362124920 +-1.5603799820 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.5146706104 +-1.6691759825 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.2608747482 +-1.9258277416 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.0170273781 +-2.0941901207 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.7677035332 +-1.9344789982 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.5946608782 +-1.8364322186 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.0635375977 +-1.6509886980 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.3171354830 +-1.5930622816 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.3148756027 +-3.3579037189 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.005202 +0.049021 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +0.0315602943 +-3.4232680798 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.6643725634 +-2.9200913906 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.6182315350 +-2.6110174656 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.5190285444 +-2.4657065868 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.6311326027 +-2.7457678318 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.4627578259 +-3.0129930973 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.2819225788 +-2.6874008179 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.1586849689 +-2.4754829407 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.4656419754 +-2.1709446907 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.5781195164 +-1.8450833559 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.7362124920 +-1.5603799820 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.5146706104 +-1.6691759825 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.2608747482 +-1.9258277416 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.0170273781 +-2.0941901207 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.7677035332 +-1.9344789982 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.5946608782 +-1.8364322186 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.0635375977 +-1.6509886980 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.3171354830 +-1.5930622816 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.3148756027 +-3.3579037189 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-3.3391194344 +-3.0821075439 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-3.4015929699 +-1.9930019379 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.9587533474 +-1.3068593740 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-3.0892243385 +-1.3591781855 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.9375023842 +-1.1850997210 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.8482542038 +-1.0601204634 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-3.1740100384 +-1.1047558784 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-3.8746085167 +-1.4529126883 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-3.7630484104 +-3.0285451412 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.061148 +0.087198 +0.306690 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-1.9215295315 +-1.8815528154 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.6466932893 +-1.4941002131 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.5881319046 +-1.7058476210 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.8674246669 +-1.8545212746 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.9710332751 +-1.9356160164 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.0476135015 +-1.9806686640 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.1176022291 +-2.1381804943 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.3629441261 +-2.2825212479 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.4982651472 +-2.5003044605 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.6152085066 +-2.6744792461 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.7323312759 +-3.0033633709 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.7908926010 +-2.9763319492 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.6512463093 +-2.7420580387 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.6827793121 +-2.5528371334 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.4845715761 +-2.4131739140 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.4395242929 +-2.1969213486 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.2908685207 +-2.1608791351 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.2232977152 +-2.0797843933 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.1377079487 +-2.0842897892 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.0701371431 +-1.8680371046 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.8539105058 +-1.8094686270 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.7593113184 +-1.5706896782 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.9755380154 +-1.6427738667 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.3160083294 +-1.7253129482 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.4751945734 +-1.7806694508 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.061148 +0.087198 +0.306690 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-3.4105179310 +-2.9749825001 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-3.5220782757 +-2.4839920998 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-3.4596045017 +-2.0599551201 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-3.2587959766 +-1.6269910336 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-3.1837215424 +-1.4846440554 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.9735820293 +-1.3155791759 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-3.1220502853 +-1.3749803305 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-3.0146963596 +-1.2333314419 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.9667296410 +-1.1533683538 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.8593757153 +-1.1099598408 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.9004900455 +-1.0688359737 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-3.1494596004 +-1.1419451237 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-3.5788753033 +-1.3612724543 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.7794313431 +-0.9934422374 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.2860605717 +-1.6354315281 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.5555872917 +-1.3384257555 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.6263949871 +-1.2424701452 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.7817156315 +-1.0574127436 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.8228297234 +-1.1739302874 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.9278995991 +-1.2013462782 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-3.0832200050 +-1.3407105207 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.9210472107 +-1.2721706629 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-3.0352535248 +-1.4046809673 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-3.0832200050 +-1.5646071434 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-3.2408246994 +-1.7976423502 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-3.4098498821 +-2.0695168972 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-3.3504626751 +-2.3916537762 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-3.3299055099 +-2.5812807083 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-3.3847246170 +-2.5584340096 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-3.3390421867 +-2.9354028702 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + +1.000000 +1.000000 +1.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-2.9543335438 +-1.1851041317 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.9011840820 +-1.1482021809 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.8332705498 +-1.0921111107 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.8332705498 +-1.0330678225 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-3.0547270775 +-1.0714459419 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.7668337822 +-0.9622160196 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.4907512665 +-1.3755184412 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.5926213264 +-1.2721928358 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.6634874344 +-1.1688672304 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.7254951000 +-1.0862067938 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.7786448002 +-1.0286396742 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.8524634838 +-1.1526303291 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.1000000015 +0.1000000015 + + + + + + + + + + + + + + + + + + + + + + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + +1.000000 +1.000000 +1.000000 +1.000000 + + + + + + + + + + +-3.4217119217 +-2.8901038170 + + + + + + + + + + + + + + + + + + + + + +1.000000 +1.000000 +1.000000 +1.000000 + + + + + + + + + + +-3.4247000217 +-2.8572359085 + + + + + + + + + + + + + + + + + + + + + +1.000000 +1.000000 +1.000000 +1.000000 + + + + + + + + + + +-3.4486043453 +-2.8183917999 + + + + + + + + + + + + + + + + + + + + + +1.000000 +1.000000 +1.000000 +1.000000 + + + + + + + + + + +-3.4247000217 +-2.7616200447 + + + + + + + + + + + + + + + + + + + + + +1.000000 +1.000000 +1.000000 +1.000000 + + + + + + + + + + +-3.4515924454 +-2.7138121128 + + + + + + + + + + + + + + + + + + + + + +1.000000 +1.000000 +1.000000 +1.000000 + + + + + + + + + + +-3.4247000217 +-2.4628205299 + + + + + + + + + + + + + + + + + + + + + +1.000000 +1.000000 +1.000000 +1.000000 + + + + + + + + + + +-3.4486043453 +-2.3104326725 + + + + + + + + + + + + + + + + + + + + + +1.000000 +1.000000 +1.000000 +1.000000 + + + + + + + + + + +-3.4247000217 +-2.2656128407 + + + + + + + + + + + + + + + + + + + + + +1.000000 +1.000000 +1.000000 +1.000000 + + + + + + + + + + +-3.4366521835 +-2.2237808704 + + + + + + + + + + + + + + + + + + + + + +1.000000 +1.000000 +1.000000 +1.000000 + + + + + + + + + + +-3.4187240601 +-2.1729850769 + + + + + + + + + + + + + + + + + + + + + +1.000000 +1.000000 +1.000000 +1.000000 + + + + + + + + + + +-3.4217119217 +-2.1281650066 + + + + + + + + + + + + + + + + + + + + + +1.000000 +1.000000 +1.000000 +1.000000 + + + + + + + + + + +-3.4276881218 +-2.0952970982 + + + + + + + + + + + + + + + + + + + + + +1.000000 +1.000000 +1.000000 +1.000000 + + + + + + + + + + +-3.4157359600 +-2.3462886810 + + + + + + + + + + + + + + + + + + + + + +1.000000 +1.000000 +1.000000 +1.000000 + + + + + + + + + + +-3.3768913746 +-1.8652215004 + + + + + + + + + + + + + + + + + + + + + +1.000000 +1.000000 +1.000000 +1.000000 + + + + + + + + + + +-3.3260948658 +-1.8263776302 + + + + + + + + + + + + + + + + + + + + + +1.000000 +1.000000 +1.000000 +1.000000 + + + + + + + + + + +-3.2633459568 +-1.7337497473 + + + + + + + + + + + + + + + + + + + + + +1.000000 +1.000000 +1.000000 +1.000000 + + + + + + + + + + +-3.2274894714 +-1.7277737856 + + + + + + + + + + + + + + + + + + + + + +1.000000 +1.000000 +1.000000 +1.000000 + + + + + + + + + + +-3.2155373096 +-1.6799658537 + + + + + + + + + + + + + + + + + + + + + +1.000000 +1.000000 +1.000000 +1.000000 + + + + + + + + + + +-3.1886451244 +-1.6680139303 + + + + + + + + + + + + + + + + + + + + + +1.000000 +1.000000 +1.000000 +1.000000 + + + + + + + + + + +-3.1707167625 +-1.6142299175 + + + + + + + + + + + + + + + + + + + + + +1.000000 +1.000000 +1.000000 +1.000000 + + + + + + + + + + +-3.3798794746 +-1.9040654898 + + + + + + + + + + + + + + + + + + + + + +1.000000 +1.000000 +1.000000 +1.000000 + + + + + + + + + + +-3.4665324688 +-1.9727894068 + + + + + + + + + + + + + + + + + + + + + +1.000000 +1.000000 +1.000000 +1.000000 + + + + + + + + + + +-3.3709154129 +-1.9698013067 + + + + + + + + + + + + + + + + + + + + + +1.000000 +1.000000 +1.000000 +1.000000 + + + + + + + + + + +-3.0810756683 +-1.6112419367 + + + + + + + + + + + + + + + + + + + + + +1.000000 +1.000000 +1.000000 +1.000000 + + + + + + + + + + +-3.1019918919 +-1.6530739069 + + + + + + + + + + + + + + + + + + + + + +1.000000 +1.000000 +1.000000 +1.000000 + + + + + + + + + + +-3.1139440536 +-1.4678182602 + + + + + + + + + + + + + + + + + + + + + +1.000000 +1.000000 +1.000000 +1.000000 + + + + + + + + + + +-3.1229081154 +-1.4469022751 + + + + + + + + + + + + + + + + + + + + + +1.000000 +1.000000 +1.000000 +1.000000 + + + + + + + + + + +-3.0930278301 +-1.4379383326 + + + + + + + + + + + + + + + + + + + + + +1.000000 +1.000000 +1.000000 +1.000000 + + + + + + + + + + +-2.9376499653 +-1.3064664602 + + + + + + + + + + + + + + + + + + + + + +1.000000 +1.000000 +1.000000 +1.000000 + + + + + + + + + + +-2.9376499653 +-1.2825624943 + + + + + + + + + + + + + + + + + + + + + +1.000000 +1.000000 +1.000000 +1.000000 + + + + + + + + + + +-2.9764943123 +-1.3034784794 + + + + + + + + + + + + + + + + + + + + + +1.000000 +1.000000 +1.000000 +1.000000 + + + + + + + + + + +-2.9585661888 +-1.2765865326 + + + + + + + + + + + + + + + + + + + + + +1.000000 +1.000000 +1.000000 +1.000000 + + + + + + + + + + +-3.0780875683 +-1.3154305220 + + + + + + + + + + + + + + + + + + + + + +1.000000 +1.000000 +1.000000 +1.000000 + + + + + + + + + + +-3.1079680920 +-1.3662264347 + + + + + + + + + + + + + + + + + + + + + +1.000000 +1.000000 +1.000000 +1.000000 + + + + + + + + + + +-3.1109561920 +-1.3393344879 + + + + + + + + + + + + + + + + + + + + + +1.000000 +1.000000 +1.000000 +1.000000 + + + + + + + + + + +-3.0033867359 +-1.2257906199 + + + + + + + + + + + + + + + + + + + + + +1.000000 +1.000000 +1.000000 +1.000000 + + + + + + + + + + +-2.9645421505 +-1.1899347305 + + + + + + + + + + + + + + + + + + + + + +1.000000 +1.000000 +1.000000 +1.000000 + + + + + + + + + + +-2.9735064507 +-1.1749947071 + + + + + + + + + + + + + + + + + + + + + +1.000000 +1.000000 +1.000000 +1.000000 + + + + + + + + + + +-2.9406378269 +-1.1839587688 + + + + + + + + + + + + + + + + + + + + + +1.000000 +1.000000 +1.000000 +1.000000 + + + + + + + + + + +-2.9227097034 +-1.1690187454 + + + + + + + + + + + + + + + + + + + + + +1.000000 +1.000000 +1.000000 +1.000000 + + + + + + + + + + +-2.8778891563 +-1.1779826880 + + + + + + + + + + + + + + + + + + + + + +1.000000 +1.000000 +1.000000 +1.000000 + + + + + + + + + + +-2.8689250946 +-1.1570668221 + + + + + + + + + + + + + + + + + + + + + +1.000000 +1.000000 +1.000000 +1.000000 + + + + + + + + + + +-2.8659369946 +-1.1421267986 + + + + + + + + + + + + + + + + + + + + + +1.000000 +1.000000 +1.000000 +1.000000 + + + + + + + + + + +-2.8808772564 +-1.0494989157 + + + + + + + + + + + + + + + + + + + + + +1.000000 +1.000000 +1.000000 +1.000000 + + + + + + + + + + +-2.8420326710 +-1.0435229540 + + + + + + + + + + + + + + + + + + + + + +1.000000 +1.000000 +1.000000 +1.000000 + + + + + + + + + + +-2.8270924091 +-1.0584629774 + + + + + + + + + + + + + + + + + + + + + +1.000000 +1.000000 +1.000000 +1.000000 + + + + + + + + + + +-3.0243029594 +-1.2735985518 + + + + + + + + + + + + + + + + + + + + + +1.000000 +1.000000 +1.000000 +1.000000 + + + + + + + + + + +-2.7464153767 +-1.0644389391 + + + + + + + + + + + + + + + + + + + + + +1.000000 +1.000000 +1.000000 +1.000000 + + + + + + + + + + +-3.1229081154 +-1.1092588902 + + + + + + + + + + + + + + + + + + + + + +1.000000 +1.000000 +1.000000 +1.000000 + + + + + + + + + + +-3.1557767391 +-1.1241987944 + + + + + + + + + + + + + + + + + + + + + +1.000000 +1.000000 +1.000000 +1.000000 + + + + + + + + + + +-2.6089656353 +-1.2706105709 + + + + + + + + + + + + + + + + + + + + + +1.000000 +1.000000 +1.000000 +1.000000 + + + + + + + + + + +-3.0329387188 +-1.0692284107 + + + + + + + + + + + + + + + + + + + + + +1.000000 +1.000000 +1.000000 +1.000000 + + + + + + + + + + +-2.9782660007 +-1.0549656153 + + + + + + + + + + + + + + + + + + + + + +1.000000 +1.000000 +1.000000 +1.000000 + + + + + + + + + + +-3.0697832108 +-1.1132054329 + + + + + + + + + + + + + + + + + + + + + +1.000000 +1.000000 +1.000000 +1.000000 + + + + + + + + + + +-3.0911769867 +-1.0941883326 + + + + + + + + + + + + + + + + + + + + + +1.000000 +1.000000 +1.000000 +1.000000 + + + + + + + + + + +-2.9390442371 +-1.0430799723 + + + + + + + + + + + + + + + + + + + + + +1.000000 +1.000000 +1.000000 +1.000000 + + + + + + + + + + +-2.8273217678 +-1.1571824551 + + + + + + + + + + + + + + + + + + + + + +1.000000 +1.000000 +1.000000 +1.000000 + + + + + + + + + + +-2.7144105434 +-1.1239025593 + + + + + + + + + + + + + + + + + + + + + +1.000000 +1.000000 +1.000000 +1.000000 + + + + + + + + + + +-3.4001967907 +-1.2427592278 + + + + + + + + + + + + + + + + + + + + + +1.000000 +1.000000 +1.000000 +1.000000 + + + + + + + + + + +-3.4596235752 +-1.2784162760 + + + + + + + + + + + + + + + + + + + + + +1.000000 +1.000000 +1.000000 +1.000000 + + + + + + + + + + +-3.4869599342 +-1.3081305027 + + + + + + + + + + + + + + + + + + + + + +1.000000 +1.000000 +1.000000 +1.000000 + + + + + + + + + + +-3.4263446331 +-1.2617763281 + + + + + + + + + + + + + + + + + + + + + +1.000000 +1.000000 +1.000000 +1.000000 + + + + + + + + + + +-3.2920398712 +-1.2035365105 + + + + + + + + + + + + + + + + + + + + + +1.000000 +1.000000 +1.000000 +1.000000 + + + + + + + + + + +-3.2849085331 +-1.1821423769 + + + + + + + + + + + + + + + + + + + + + +1.000000 +1.000000 +1.000000 +1.000000 + + + + + + + + + + +-3.2421212196 +-1.1833308935 + + + + + + + + + + + + + + + + + + + + + +1.000000 +1.000000 +1.000000 +1.000000 + + + + + + + + + + +-3.2112193108 +-1.1441081762 + + + + + + + + + + + + + + + + + + + + + +1.000000 +1.000000 +1.000000 +1.000000 + + + + + + + + + + +-3.2433097363 +-1.1607481241 + + + + + + + + + + + + + + + + + + + + + +1.000000 +1.000000 +1.000000 +1.000000 + + + + + + + + + + +-3.1696205139 +-1.1524281502 + + + + + + + + + + + + + + + + + + + + + +1.000000 +1.000000 +1.000000 +1.000000 + + + + + + + + + + +-3.3514666557 +-1.2748506069 + + + + + + + + + + + + + + + + + + + + + +1.000000 +1.000000 +1.000000 +1.000000 + + + + + + + + + + +-3.5558950901 +-1.3390332460 + + + + + + + + + + + + + + + + + + + + + +1.000000 +1.000000 +1.000000 +1.000000 + + + + + + + + + + +-3.5380671024 +-1.3378447294 + + + + + + + + + + + + + + + + + + + + + +1.000000 +1.000000 +1.000000 +1.000000 + + + + + + + + + + +-3.3811800480 +-1.2463250160 + + + + + + + + + + + + + + + + + + + + + +1.000000 +1.000000 +1.000000 +1.000000 + + + + + + + + + + +-3.0258073807 +-1.3342789412 + + + + + + + + + + + + + + + + + + + + + +1.000000 +1.000000 +1.000000 +1.000000 + + + + + + + + + + +-3.2516295910 +-1.6207237244 + + + + + + + + + + + + + + + + + + + + + +1.000000 +1.000000 +1.000000 +1.000000 + + + + + + + + + + +-2.7940425873 +-1.0882455111 + + + + + + + + + + + + + + + + + + + + + +1.000000 +1.000000 +1.000000 +1.000000 + + + + + + + + + + +-2.6846971512 +-1.1571824551 + + + + + + + + + + + + + + + + + + + + + +1.000000 +1.000000 +1.000000 +1.000000 + + + + + + + + + + +-2.5789175034 +-1.3200161457 + + + + + + + + + + + + + + + + + + + + + +1.000000 +1.000000 +1.000000 +1.000000 + + + + + + + + + + +-2.5408842564 +-1.3390332460 + + + + + + + + + + + + + + + + + + + + + +1.000000 +1.000000 +1.000000 +1.000000 + + + + + + + + + + +-2.5230560303 +-1.3651816845 + + + + + + + + + + + + + + + + + + + + + +1.000000 +1.000000 +1.000000 +1.000000 + + + + + + + + + + +-2.5087935925 +-1.3865759373 + + + + + + + + + + + + + + + + + + + + + +1.000000 +1.000000 +1.000000 +1.000000 + + + + + + + + + + +-2.6312129498 +-1.1999708414 + + + + + + + + + + + + + + + + + + + + + +1.000000 +1.000000 +1.000000 +1.000000 + + + + + + + + + + +-2.8344528675 +-1.0121772289 + + + + + + + + + + + + + + + + + + + + + +1.000000 +1.000000 +1.000000 +1.000000 + + + + + + + + + + +-2.7643291950 +-1.0169314146 + + + + + + + + + + + + + + + + + + + + + +1.000000 +1.000000 +1.000000 +1.000000 + + + + + + + + + + +-3.0234303474 +-1.0823026896 + + + + + + + + + + + + + + + + + + + + + +1.000000 +1.000000 +1.000000 +1.000000 + + + + + + + + + + +-2.8499038219 +-1.0906226635 + + + + + + + + + + + + + + + + + + + + + +1.000000 +1.000000 +1.000000 +1.000000 + + + + + + + + + + +-2.4018254280 +-1.5066212416 + + + + + + + + + + + + + + + + + + + + + +1.000000 +1.000000 +1.000000 +1.000000 + + + + + + + + + + +-2.4160878658 +-1.4757184982 + + + + + + + + + + + + + + + + + + + + + +1.000000 +1.000000 +1.000000 +1.000000 + + + + + + + + + + +-2.4481782913 +-1.4590785503 + + + + + + + + + + + + + + + + + + + + + +1.000000 +1.000000 +1.000000 +1.000000 + + + + + + + + + + +-2.4695720673 +-1.4293643236 + + + + + + + + + + + + + + + + + + + + + +1.000000 +1.000000 +1.000000 +1.000000 + + + + + + + + + + +-2.3566608429 +-1.5505982637 + + + + + + + + + + + + + + + + + + + + + +1.000000 +1.000000 +1.000000 +1.000000 + + + + + + + + + + +-2.3174390793 +-1.6017066240 + + + + + + + + + + + + + + + + + + + + + +1.000000 +1.000000 +1.000000 +1.000000 + + + + + + + + + + +-2.5824830532 +-1.4780956507 + + + + + + + + + + + + + + + + + + + + + +1.000000 +1.000000 +1.000000 +1.000000 + + + + + + + + + + +-2.7013368607 +-1.2950562239 + + + + + + + + + + + + + + + + + + + + + +1.000000 +1.000000 +1.000000 +1.000000 + + + + + + + + + + +-2.6466641426 +-1.3271476030 + + + + + + + + + + + + + + + + + + + + + +1.000000 +1.000000 +1.000000 +1.000000 + + + + + + + + + + +-3.0353157520 +-1.4032158852 + + + + + + + + + + + + + + + + + + + + + +1.000000 +1.000000 +1.000000 +1.000000 + + + + + + + + + + +-2.2556352615 +-1.6635122299 + + + + + + + + + + + + + + + + + + + + + +1.000000 +1.000000 +1.000000 +1.000000 + + + + + + + + + + +-2.2485039234 +-1.6932263374 + + + + + + + + + + + + + + + + + + + + + +1.000000 +1.000000 +1.000000 +1.000000 + + + + + + + + + + +-2.1938312054 +-1.7265062332 + + + + + + + + + + + + + + + + + + + + + +1.000000 +1.000000 +1.000000 +1.000000 + + + + + + + + + + +-2.1237075329 +-1.7978203297 + + + + + + + + + + + + + + + + + + + + + +1.000000 +1.000000 +1.000000 +1.000000 + + + + + + + + + + +-1.9965341091 +-1.9036028385 + + + + + + + + + + + + + + + + + + + + + +1.000000 +1.000000 +1.000000 +1.000000 + + + + + + + + + + +-2.0987482071 +-1.9047913551 + + + + + + + + + + + + + + + + + + + + + +1.000000 +1.000000 +1.000000 +1.000000 + + + + + + + + + + +-2.0464527607 +-1.8631914854 + + + + + + + + + + + + + + + + + + + + + +1.000000 +1.000000 +1.000000 +1.000000 + + + + + + + + + + +-1.9240332842 +-1.8810200691 + + + + + + + + + + + + + + + + + + + + + +1.000000 +1.000000 +1.000000 +1.000000 + + + + + + + + + + +-1.9240332842 +-1.9036028385 + + + + + + + + + + + + + + + + + + + + + +1.000000 +1.000000 +1.000000 +1.000000 + + + + + + + + + + +-1.7814087868 +-1.8417973518 + + + + + + + + + + + + + + + + + + + + + +1.000000 +1.000000 +1.000000 +1.000000 + + + + + + + + + + +-1.7267360687 +-1.8215916157 + + + + + + + + + + + + + + + + + + + + + +1.000000 +1.000000 +1.000000 +1.000000 + + + + + + + + + + +-1.6661206484 +-1.8358544111 + + + + + + + + + + + + + + + + + + + + + +1.000000 +1.000000 +1.000000 +1.000000 + + + + + + + + + + +-1.5769803524 +-1.7752375603 + + + + + + + + + + + + + + + + + + + + + +1.000000 +1.000000 +1.000000 +1.000000 + + + + + + + + + + +-1.5508326292 +-1.7883117199 + + + + + + + + + + + + + + + + + + + + + +1.000000 +1.000000 +1.000000 +1.000000 + + + + + + + + + + +-1.4200934172 +-1.7360148430 + + + + + + + + + + + + + + + + + + + + + +1.000000 +1.000000 +1.000000 +1.000000 + + + + + + + + + + +-1.3951342106 +-1.7467118502 + + + + + + + + + + + + + + + + + + + + + +1.000000 +1.000000 +1.000000 +1.000000 + + + + + + + + + + +-1.3321417570 +-1.7063006163 + + + + + + + + + + + + + + + + + + + + + +1.000000 +1.000000 +1.000000 +1.000000 + + + + + + + + + + +-1.3143136501 +-1.7265062332 + + + + + + + + + + + + + + + + + + + + + +1.000000 +1.000000 +1.000000 +1.000000 + + + + + + + + + + +-1.2762804031 +-1.7229405642 + + + + + + + + + + + + + + + + + + + + + +1.000000 +1.000000 +1.000000 +1.000000 + + + + + + + + + + +-1.2418128252 +-1.6765863895 + + + + + + + + + + + + + + + + + + + + + +1.000000 +1.000000 +1.000000 +1.000000 + + + + + + + + + + +-1.1348445415 +-1.6492493153 + + + + + + + + + + + + + + + + + + + + + +1.000000 +1.000000 +1.000000 +1.000000 + + + + + + + + + + +-1.1253361702 +-1.6813406944 + + + + + + + + + + + + + + + + + + + + + +1.000000 +1.000000 +1.000000 +1.000000 + + + + + + + + + + +-1.2667721510 +-1.7871232033 + + + + + + + + + + + + + + + + + + + + + +1.000000 +1.000000 +1.000000 +1.000000 + + + + + + + + + + +-1.4723891020 +-1.8370430470 + + + + + + + + + + + + + + + + + + + + + +1.000000 +1.000000 +1.000000 +1.000000 + + + + + + + + + + +-1.5686606169 +-1.9202427864 + + + + + + + + + + + + + + + + + + + + + +1.000000 +1.000000 +1.000000 +1.000000 + + + + + + + + + + +-1.0873030424 +-1.6326093674 + + + + + + + + + + + + + + + + + + + + + +1.000000 +1.000000 +1.000000 +1.000000 + + + + + + + + + + +-0.9494326711 +-1.7241290808 + + + + + + + + + + + + + + + + + + + + + +1.000000 +1.000000 +1.000000 +1.000000 + + + + + + + + + + +-1.0266876221 +-1.6076494455 + + + + + + + + + + + + + + + + + + + + + +1.000000 +1.000000 +1.000000 +1.000000 + + + + + + + + + + +-1.1253361702 +-2.0188939571 + + + + + + + + + + + + + + + + + + + + + +1.000000 +1.000000 +1.000000 +1.000000 + + + + + + + + + + +-1.1859515905 +-2.1139793396 + + + + + + + + + + + + + + + + + + + + + +1.000000 +1.000000 +1.000000 +1.000000 + + + + + + + + + + +-1.1930828094 +-2.1532020569 + + + + + + + + + + + + + + + + + + + + + +1.000000 +1.000000 +1.000000 +1.000000 + + + + + + + + + + +-1.4260361195 +-2.3029615879 + + + + + + + + + + + + + + + + + + + + + +1.000000 +1.000000 +1.000000 +1.000000 + + + + + + + + + + +-1.3856258392 +-2.3314871788 + + + + + + + + + + + + + + + + + + + + + +1.000000 +1.000000 +1.000000 +1.000000 + + + + + + + + + + +-1.3761175871 +-2.2791900635 + + + + + + + + + + + + + + + + + + + + + +1.000000 +1.000000 +1.000000 +1.000000 + + + + + + + + + + +-1.5793575048 +-2.4812467098 + + + + + + + + + + + + + + + + + + + + + +1.000000 +1.000000 +1.000000 +1.000000 + + + + + + + + + + +-1.6078823805 +-2.5085835457 + + + + + + + + + + + + + + + + + + + + + +1.000000 +1.000000 +1.000000 +1.000000 + + + + + + + + + + +-1.6791945696 +-2.8544569016 + + + + + + + + + + + + + + + + + + + + + +1.000000 +1.000000 +1.000000 +1.000000 + + + + + + + + + + +-2.6050651073 +-2.5810863972 + + + + + + + + + + + + + + + + + + + + + +1.000000 +1.000000 +1.000000 +1.000000 + + + + + + + + + + +-2.6561722755 +-2.6547775269 + + + + + + + + + + + + + + + + + + + + + +1.000000 +1.000000 +1.000000 +1.000000 + + + + + + + + + + +-2.7441241741 +-2.6856801510 + + + + + + + + + + + + + + + + + + + + + +1.000000 +1.000000 +1.000000 +1.000000 + + + + + + + + + + +-2.7393698692 +-2.6381375790 + + + + + + + + + + + + + + + + + + + + + +1.000000 +1.000000 +1.000000 +1.000000 + + + + + + + + + + +-3.3930654526 +-2.6179318428 + + + + + + + + + + + + + + + + + + + + + +1.000000 +1.000000 +1.000000 +1.000000 + + + + + + + + + + +-3.5273702145 +-2.6119890213 + + + + + + + + + + + + + + + + + + + + + +1.000000 +1.000000 +1.000000 +1.000000 + + + + + + + + + + +-3.5238046646 +-2.5798976421 + + + + + + + + + + + + + + + + + + + + + +1.000000 +1.000000 +1.000000 +1.000000 + + + + + + + + + + +-3.4548695087 +-2.5145266056 + + + + + + + + + + + + + + + + + + + + + +1.000000 +1.000000 +1.000000 +1.000000 + + + + + + + + + + +-3.3906884193 +-2.2352130413 + + + + + + + + + + + + + + + + + + + + + +1.000000 +1.000000 +1.000000 +1.000000 + + + + + + + + + + +-3.3728604317 +-2.2768130302 + + + + + + + + + + + + + + + + + + + + + +1.000000 +1.000000 +1.000000 +1.000000 + + + + + + + + + + +-3.4584350586 +-2.1329963207 + + + + + + + + + + + + + + + + + + + + + +1.000000 +1.000000 +1.000000 +1.000000 + + + + + + + + + + +-3.3954424858 +-1.8192144632 + + + + + + + + + + + + + + + + + + + + + +1.000000 +1.000000 +1.000000 +1.000000 + + + + + + + + + + +-3.3752374649 +-1.7954431772 + + + + + + + + + + + + + + + + + + + + + +1.000000 +1.000000 +1.000000 +1.000000 + + + + + + + + + + +-3.4429841042 +-1.6944149733 + + + + + + + + + + + + + + + + + + + + + +1.000000 +1.000000 +1.000000 +1.000000 + + + + + + + + + + +-3.2860970497 +-1.6409293413 + + + + + + + + + + + + + + + + + + + + + +1.000000 +1.000000 +1.000000 +1.000000 + + + + + + + + + + +-3.2551951408 +-1.5743696690 + + + + + + + + + + + + + + + + + + + + + +1.000000 +1.000000 +1.000000 +1.000000 + + + + + + + + + + +-3.2302358150 +-1.5803124905 + + + + + + + + + + + + + + + + + + + + + +1.000000 +1.000000 +1.000000 +1.000000 + + + + + + + + + + +-3.0543322563 +-1.4935469627 + + + + + + + + + + + + + + + + + + + + + +1.000000 +1.000000 +1.000000 +1.000000 + + + + + + + + + + +-3.1173248291 +-1.5517867804 + + + + + + + + + + + + + + + + + + + + + +1.000000 +1.000000 +1.000000 +1.000000 + + + + + + + + + + +-3.0376927853 +-1.4341186285 + + + + + + + + + + + + + + + + + + + + + +1.000000 +1.000000 +1.000000 +1.000000 + + + + + + + + + + +-3.1351528168 +-1.3723131418 + + + + + + + + + + + + + + + + + + + + + +1.000000 +1.000000 +1.000000 +1.000000 + + + + + + + + + + +-3.0388813019 +-1.3485417366 + + + + + + + + + + + + + + + + + + + + + +1.000000 +1.000000 +1.000000 +1.000000 + + + + + + + + + + +-2.9212162495 +-1.2819820642 + + + + + + + + + + + + + + + + + + + + + +1.000000 +1.000000 +1.000000 +1.000000 + + + + + + + + + + +-2.8047394753 +-1.2534563541 + + + + + + + + + + + + + + + + + + + + + +1.000000 +1.000000 +1.000000 +1.000000 + + + + + + + + + + +-2.7940425873 +-1.1952165365 + + + + + + + + + + + + + + + + + + + + + +1.000000 +1.000000 +1.000000 +1.000000 + + + + + + + + + + +-2.7916655540 +-1.1702566147 + + + + + + + + + + + + + + + + + + + + + +1.000000 +1.000000 +1.000000 +1.000000 + + + + + + + + + + +-3.0269958973 +-1.1916508675 + + + + + + + + + + + + + + + + + + + + + +1.000000 +1.000000 +1.000000 +1.000000 + + + + + + + + + + +-3.1066279411 +-1.1987823248 + + + + + + + + + + + + + + + + + + + + + +1.000000 +1.000000 +1.000000 +1.000000 + + + + + + + + + + +-2.8594121933 +-1.1132054329 + + + + + + + + + + + + + + + + + + + + + +1.000000 +1.000000 +1.000000 +1.000000 + + + + + + + + + + +-2.6909260750 +-1.9441835880 + + + + + + + + + + + + + + + + + + + + + +1.000000 +1.000000 +1.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-3.4031519890 +-2.2774033546 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-3.4164395332 +-2.2405014038 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-3.4031519890 +-2.2493579388 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.1329933554 +0.1329933554 + + + + + + + + + + + + + + + + + + + + + + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + +1.000000 +1.000000 +1.000000 +1.000000 + + + + + + + + + + +-2.9299631119 +-2.2627696991 + + + + + + + + + + + + + + + + + + + + + +1.000000 +1.000000 +1.000000 +1.000000 + + + + + + + + + + +-3.0583679676 +-2.0934879780 + + + + + + + + + + + + + + + + + + + + + +1.000000 +1.000000 +1.000000 +1.000000 + + + + + + + + + + +-2.7957217693 +-1.9475557804 + + + + + + + + + + + + + + + + + + + + + +1.000000 +1.000000 +1.000000 +1.000000 + + + + + + + + + + +-2.4338536263 +-1.6498537064 + + + + + + + + + + + + + + + + + + + + + +1.000000 +1.000000 +1.000000 +1.000000 + + + + + + + + + + +-2.5505852699 +-2.2861187458 + + + + + + + + + + + + + + + + + + + + + +1.000000 +1.000000 +1.000000 +1.000000 + + + + + + + + + + +-2.7607023716 +-1.3638263941 + + + + + + + + + + + + + + + + + + + + + +1.000000 +1.000000 +1.000000 +1.000000 + + + + + + + + + + +-3.3326876163 +-1.4221992493 + + + + + + + + + + + + + + + + + + + + + +1.000000 +1.000000 +1.000000 +1.000000 + + + + + + + + + + +-3.3968899250 +-1.5039213896 + + + + + + + + + + + + + + + + + + + + + +1.000000 +1.000000 +1.000000 +1.000000 + + + + + + + + + + +-3.2509753704 +-1.3463144302 + + + + + + + + + + + + + + + + + + + + + +1.000000 +1.000000 +1.000000 +1.000000 + + + + + + + + + + +-1.6809340715 +-2.5721461773 + + + + + + + + + + + + + + + + + + + + + +1.000000 +1.000000 +1.000000 +1.000000 + + + + + + + + + + +-2.0077829361 +-1.9242064953 + + + + + + + + + + + + + + + + + + + + + +1.000000 +1.000000 +1.000000 +1.000000 + + + + + + + + + + +-2.7548656464 +-1.1069854498 + + + + + + + + + + + + + + + + + + + + + +1.000000 +1.000000 +1.000000 +1.000000 + + + + + + + + + + +-2.8073949814 +-2.4378883839 + + + + + + + + + + + + + + + + + + + + + +1.000000 +1.000000 +1.000000 +1.000000 + + + + + + + + + + +-1.4182877541 +-2.4670748711 + + + + + + + + + + + + + + + + + + + + + +1.000000 +1.000000 +1.000000 +1.000000 + + + + + + + + + + +-1.1439682245 +-2.2569322586 + + + + + + + + + + + + + + + + + + + + + +1.000000 +1.000000 +1.000000 +1.000000 + + + + + + + + + + +-1.4824901819 +-2.1810474396 + + + + + + + + + + + + + + + + + + + + + +1.000000 +1.000000 +1.000000 +1.000000 + + + + + + + + + + +-1.0739293098 +-1.8891828060 + + + + + + + + + + + + + + + + + + + + + +1.000000 +1.000000 +1.000000 +1.000000 + + + + + + + + + + +-0.9221780300 +-1.9300438166 + + + + + + + + + + + + + + + + + + + + + +1.000000 +1.000000 +1.000000 +1.000000 + + + + + + + + + + +-0.7062244415 +-2.7706141472 + + + + + + + + + + + + + + + + + + + + + +1.000000 +1.000000 +1.000000 +1.000000 + + + + + + + + + + +-3.1809363365 +-2.6655428410 + + + + + + + + + + + + + + + + + + + + + +1.000000 +1.000000 +1.000000 +1.000000 + + + + + + + + + + +-3.1809363365 +-2.3620035648 + + + + + + + + + + + + + + + + + + + + + +0.0560098737 +0.0560098737 + + + + + + + + + + + + + + + + + + + + + + + + + +1.000000 +1.000000 +1.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + +0.0670075119 +0.0670075119 + + + + + + + + + + + + + + + + + + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + +1.000000 +1.000000 +1.000000 +1.000000 + + + + + + + + + + +-3.0233485699 +-2.7998006344 + + + + + + + + + + + + + + + + + + + + + +1.000000 +1.000000 +1.000000 +1.000000 + + + + + + + + + + +-3.2125494480 +-2.8990676403 + + + + + + + + + + + + + + + + + + + + + +1.000000 +1.000000 +1.000000 +1.000000 + + + + + + + + + + +-2.8241045475 +-2.8960797787 + + + + + + + + + + + + + + + + + + + + + +1.000000 +1.000000 +1.000000 +1.000000 + + + + + + + + + + +-2.8151402473 +-2.8901038170 + + + + + + + + + + + + + + + + + + + + + +1.000000 +1.000000 +1.000000 +1.000000 + + + + + + + + + + +-2.6986069679 +-2.9020557404 + + + + + + + + + + + + + + + + + + + + + +1.000000 +1.000000 +1.000000 +1.000000 + + + + + + + + + + +-2.5253007412 +-2.2715888023 + + + + + + + + + + + + + + + + + + + + + +1.000000 +1.000000 +1.000000 +1.000000 + + + + + + + + + + +-2.7105591297 +-2.2686009407 + + + + + + + + + + + + + + + + + + + + + +1.000000 +1.000000 +1.000000 +1.000000 + + + + + + + + + + +-1.9396452904 +-2.0445013046 + + + + + + + + + + + + + + + + + + + + + +1.000000 +1.000000 +1.000000 +1.000000 + + + + + + + + + + +-2.2504012585 +-1.8951015472 + + + + + + + + + + + + + + + + + + + + + +1.000000 +1.000000 +1.000000 +1.000000 + + + + + + + + + + +-1.6677337885 +-1.8622335196 + + + + + + + + + + + + + + + + + + + + + +1.000000 +1.000000 +1.000000 +1.000000 + + + + + + + + + + +-1.7155424356 +-1.8562575579 + + + + + + + + + + + + + + + + + + + + + +1.000000 +1.000000 +1.000000 +1.000000 + + + + + + + + + + +-1.7902433872 +-1.9279694557 + + + + + + + + + + + + + + + + + + + + + +1.000000 +1.000000 +1.000000 +1.000000 + + + + + + + + + + +-1.9396452904 +-2.0205972195 + + + + + + + + + + + + + + + + + + + + + +1.000000 +1.000000 +1.000000 +1.000000 + + + + + + + + + + +-1.5093678236 +-1.7666176558 + + + + + + + + + + + + + + + + + + + + + +1.000000 +1.000000 +1.000000 +1.000000 + + + + + + + + + + +-1.2045880556 +-1.6739898920 + + + + + + + + + + + + + + + + + + + + + +1.000000 +1.000000 +1.000000 +1.000000 + + + + + + + + + + +-1.0402458906 +-1.6381338835 + + + + + + + + + + + + + + + + + + + + + +1.000000 +1.000000 +1.000000 +1.000000 + + + + + + + + + + +-0.9954253435 +-1.6082539558 + + + + + + + + + + + + + + + + + + + + + +1.000000 +1.000000 +1.000000 +1.000000 + + + + + + + + + + +-1.0671383142 +-1.9070534706 + + + + + + + + + + + + + + + + + + + + + +0.0340145975 +0.0340145975 + + + + + + + + + + + + + + + + + + + + + + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + +1.000000 +1.000000 +1.000000 +1.000000 + + + + + + + + + + +-1.0462219715 +-1.8951015472 + + + + + + + + + + + + + + + + + + + + + +1.000000 +1.000000 +1.000000 +1.000000 + + + + + + + + + + +-1.0342698097 +-1.9190053940 + + + + + + + + + + + + + + + + + + + + + +1.000000 +1.000000 +1.000000 +1.000000 + + + + + + + + + + +-0.9565808773 +-1.9040654898 + + + + + + + + + + + + + + + + + + + + + +1.000000 +1.000000 +1.000000 +1.000000 + + + + + + + + + + +-2.7665388584 +-1.5331078768 + + + + + + + + + + + + + + + + + + + + + +1.000000 +1.000000 +1.000000 +1.000000 + + + + + + + + + + +-2.8832705021 +-2.1985592842 + + + + + + + + + + + + + + + + + + + + + +1.000000 +1.000000 +1.000000 +1.000000 + + + + + + + + + + +-2.8657608032 +-2.1985592842 + + + + + + + + + + + + + + + + + + + + + +1.000000 +1.000000 +1.000000 +1.000000 + + + + + + + + + + +-2.4455265999 +-2.2861187458 + + + + + + + + + + + + + + + + + + + + + +1.000000 +1.000000 +1.000000 +1.000000 + + + + + + + + + + +-2.9066169262 +-1.4980840683 + + + + + + + + + + + + + + + + + + + + + +1.000000 +1.000000 +1.000000 +1.000000 + + + + + + + + + + +-2.9941656590 +-1.7607623339 + + + + + + + + + + + + + + + + + + + + + +1.000000 +1.000000 +1.000000 +1.000000 + + + + + + + + + + +-2.4571998119 +-1.5389451981 + + + + + + + + + + + + + + + + + + + + + +1.000000 +1.000000 +1.000000 +1.000000 + + + + + + + + + + +-2.2996120453 +-1.8016233444 + + + + + + + + + + + + + + + + + + + + + +1.000000 +1.000000 +1.000000 +1.000000 + + + + + + + + + + +-2.4046704769 +-2.7764513493 + + + + + + + + + + + + + + + + + + + + + +1.000000 +1.000000 +1.000000 +1.000000 + + + + + + + + + + +-2.0077829361 +-2.3911900520 + + + + + + + + + + + + + + + + + + + + + +1.000000 +1.000000 +1.000000 +1.000000 + + + + + + + + + + +-2.0778217316 +-2.4203765392 + + + + + + + + + + + + + + + + + + + + + +1.000000 +1.000000 +1.000000 +1.000000 + + + + + + + + + + +-1.9143974781 +-2.1285119057 + + + + + + + + + + + + + + + + + + + + + +1.000000 +1.000000 +1.000000 +1.000000 + + + + + + + + + + +-3.5113530159 +-1.9010775089 + + + + + + + + + + + + + + + + + + + + + +1.000000 +1.000000 +1.000000 +1.000000 + + + + + + + + + + +-3.5083651543 +-1.5036741495 + + + + + + + + + + + + + + + + + + + + + +1.000000 +1.000000 +1.000000 +1.000000 + + + + + + + + + + +-3.2513937950 +-1.2347546816 + + + + + + + + + + + + + + + + + + + + + +1.000000 +1.000000 +1.000000 +1.000000 + + + + + + + + + + +-2.9944226742 +-1.0853549242 + + + + + + + + + + + + + + + + + + + + + +1.000000 +1.000000 +1.000000 +1.000000 + + + + + + + + + + +-2.6507983208 +-1.3931183815 + + + + + + + + + + + + + + + + + + + + + +1.000000 +1.000000 +1.000000 +1.000000 + + + + + + + + + + +-2.6986069679 +-1.2168266773 + + + + + + + + + + + + + + + + + + + + + +1.000000 +1.000000 +1.000000 +1.000000 + + + + + + + + + + +-2.6866548061 +-2.0205972195 + + + + + + + + + + + + + + + + + + + + + +1.000000 +1.000000 +1.000000 +1.000000 + + + + + + + + + + +-2.2055807114 +-2.4986765385 + + + + + + + + + + + + + + + + + + + + + +1.000000 +1.000000 +1.000000 +1.000000 + + + + + + + + + + +-2.0322744846 +-2.3701927662 + + + + + + + + + + + + + + + + + + + + + +1.000000 +1.000000 +1.000000 +1.000000 + + + + + + + + + + +-2.1428318024 +-2.6480762959 + + + + + + + + + + + + + + + + + + + + + +1.000000 +1.000000 +1.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-3.3396677971 +-1.7843927145 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-3.3529551029 +-1.7799644470 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-3.3455734253 +-1.7622514963 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-3.3322858810 +-1.7666796446 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.000000 +1.000000 +1.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-3.1492152214 +-1.4995092154 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-3.1713609695 +-1.5039374828 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-3.1684081554 +-1.4862245321 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-3.1521680355 +-1.4729397297 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.000000 +1.000000 +1.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + +0.0670075119 +0.0670075119 + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.000000 +1.000000 +1.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + +0.0670075119 +0.0670075119 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + +0.012294 +0.000919 +-0.062625 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +2.9273726940 +-0.5896272063 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.1143326759 +1.3899477720 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.8118244410 +1.0600186586 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.2289495617 +-1.4914336205 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.813218 +0.706958 +0.453281 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +5.5347971916 +4.2869443893 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.4494886398 +2.0544235706 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.8328357935 +-0.2110900283 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +5.1718750000 +0.4487682879 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-2.1560394764 +2.7950060368 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.8481056690 +1.0243860483 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.0334952585 +-0.0863754302 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.3427798748 +0.5074970722 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.5957255363 +2.1131522655 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +5.5347971916 +4.2869443893 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.4494886398 +2.0544235706 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.8328357935 +-0.2110900283 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +5.1718750000 +0.4487682879 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.920287 +0.814028 +0.560351 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-2.1426885128 +3.9995007515 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.1250922680 +2.5467076302 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.6206153631 +0.7417222857 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.6698782444 +1.6926413774 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +5.9163813591 +0.8121607304 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +4.7902231216 +3.1102151871 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + +0.076470 +0.076470 +0.076470 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-0.5252575874 +3.6172144413 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.3882594705 +2.7913115025 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.3960919082 +2.0479683876 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.5644590855 +2.0802094936 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.7177765369 +1.8706378937 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.8151856661 +1.7591499090 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.9946741462 +1.8748011589 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.2007858753 +1.9518202543 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.4485363960 +2.0309209824 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.6962869167 +2.0892055035 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.9044805765 +2.0975320339 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.1221747398 +2.0802123547 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.1206436157 +2.2064907551 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.1376593113 +2.4171333313 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.7477438450 +2.7982232571 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.3710505962 +3.2773237228 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.1372795105 +4.0562682152 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.5729786158 +3.9389781952 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.1003646851 +3.2026722431 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.9858675003 +2.7070846558 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.3566553593 +3.2214200497 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.8258333206 +3.0833985806 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.4865101576 +2.4491331577 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.0451965928 +2.9885966778 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0045413403 +3.4601547718 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.456188 +0.408371 +0.294216 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +1.5089125633 +1.7644765377 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.3048827648 +1.7270077467 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.3132104874 +2.0538184643 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.456188 +0.408371 +0.294216 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +1.2449200153 +1.7281457186 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.0862793922 +1.6916205883 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.0867636204 +1.9619770050 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.456188 +0.408371 +0.294216 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +1.0259032249 +1.7228446007 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.9051508904 +1.6146014929 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.8889796138 +1.8766314983 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.456188 +0.408371 +0.294216 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +1.7483353615 +1.8477404118 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.5651248693 +1.7873740196 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.5713707209 +2.1141848564 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.456188 +0.408371 +0.294216 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +1.9363201857 +1.9186307192 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.7853034735 +1.8750452995 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.7899740934 +2.1350007057 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.456188 +0.408371 +0.294216 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +2.1450204849 +1.9350392818 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.9794303179 +1.9601465464 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.9986745119 +2.1514093876 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.076470 +0.076470 +0.076470 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +1.3179113865 +2.3960390091 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.0649656057 +2.2640671730 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.2409278154 +2.7259681225 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.6478404999 +2.3960390091 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.5957043171 +-0.1532482207 + + + + +0.9806216955 +3.1020529270 + + + + + +0.124785 +0.124785 +0.124785 +1.000000 + + +0.919910 +0.919910 +0.919910 +1.000000 + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-2.1426885128 +3.9995007515 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.1250922680 +2.5467076302 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.6206153631 +0.7417222857 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.6698782444 +1.6926413774 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +5.9163813591 +0.8121607304 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +4.7902231216 +3.1102151871 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-1.5311462879 +-0.8322045207 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.6035474539 +-0.8074598312 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.6631180048 +-0.8102092743 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.6475379467 +-0.5073159337 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.5384781361 +-0.2869049311 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.4995281696 +-0.3143990338 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.3973417282 +-0.3318119645 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.4074229002 +-0.3006519973 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.6681585312 +-0.0898639113 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.7249797583 +-0.0669521689 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.5737621784 +0.2377740741 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.4042152166 +0.3665381074 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.3868023157 +0.3280463517 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.1283577681 +0.1708717644 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.0513743162 +0.1328382641 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.8887009025 +0.0421077497 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + +0.172611 +0.097833 +-0.004876 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-0.7051853538 +0.4665322006 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.8286495805 +0.8081631064 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.2243016958 +1.1695259809 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0311339181 +0.8222200274 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.0936067551 +0.3717942238 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.5386522412 +0.2684437335 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-0.6162041426 +0.6787927747 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.6380284429 +0.8433041573 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.1981850415 +1.1471467018 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.2552639544 +1.3821629286 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.9771443009 +0.9591336250 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.8075863719 +0.4639207423 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-0.1864335090 +0.8198025227 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.6212404966 +0.5310682654 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.5238705873 +0.3044453859 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.5003675222 +0.4655994177 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.0571665578 +0.8181238770 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000446 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-0.7901747227 +0.8783338070 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.4727802575 +0.2486406416 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000446 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-0.6691790223 +0.9660348296 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.3079455793 +0.3556358516 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000446 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-0.5043443441 +1.0800461769 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.1431108862 +0.4696471691 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000446 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-0.3324954212 +1.1572229862 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0515343361 +0.5555941463 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000446 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-0.7051853538 +0.4665322006 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.8286495805 +0.8081631064 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.2243016958 +1.1695259809 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0311339181 +0.8222200274 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.0936067551 +0.3717942238 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.5386522412 +0.2684437335 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + +0.113298 +0.113298 +0.113298 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-0.8509458899 +0.8644847870 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.8233809471 +0.7726048827 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.5440556407 +1.0096549988 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.2059250325 +1.1529875994 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.2720810175 +1.2154659033 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.5844842792 +1.0886716843 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000446 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-0.8509458899 +0.8644847870 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.8233809471 +0.7726048827 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.5440556407 +1.0096549988 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.2059250325 +1.1529875994 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.2720810175 +1.2154659033 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.5844842792 +1.0886716843 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + +0.113298 +0.113298 +0.113298 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-0.7461989522 +0.5355547667 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.7020949721 +0.4547004402 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.3363993466 +0.7468785048 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0550235808 +0.9085870981 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.0111324070 +0.9710654616 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.3915293217 +0.8405960202 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000446 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-0.7461989522 +0.5355547667 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.7020949721 +0.4547004402 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.3363993466 +0.7468785048 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0550235808 +0.9085870981 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.0111324070 +0.9710654616 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.3915293217 +0.8405960202 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + +0.113298 +0.113298 +0.113298 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-0.8443453312 +0.8505015373 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.8468643427 +0.8166280389 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.8230836391 +0.8034216166 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.8253616691 +0.8349347711 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000446 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-0.8443453312 +0.8505015373 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.8468643427 +0.8166280389 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.8230836391 +0.8034216166 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.8253616691 +0.8349347711 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.113298 +0.113298 +0.113298 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-0.7536033988 +0.9382069111 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.7580208182 +0.9020553827 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.7300636172 +0.8907473087 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.7274059057 +0.9271963239 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.237522 +0.237522 +0.237522 +1.000000 + + + + + + + + + + +-0.7422518134 +0.9252076745 + + + + + + + + + + + + + + + + + + + + + +0.000446 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-0.7536033988 +0.9382069111 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.7580208182 +0.9020553827 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.7300636172 +0.8907473087 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.7274059057 +0.9271963239 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.113298 +0.113298 +0.113298 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-0.6093274951 +1.0543880463 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.6176803112 +1.0137625933 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.5831300020 +1.0069284439 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.5740178823 +1.0445164442 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.237522 +0.237522 +0.237522 +1.000000 + + + + + + + + + + +-0.5952147245 +1.0411390066 + + + + + + + + + + + + + + + + + + + + + +0.000446 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-0.6093274951 +1.0543880463 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.6176803112 +1.0137625933 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.5831300020 +1.0069284439 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.5740178823 +1.0445164442 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.113298 +0.113298 +0.113298 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-0.4289826155 +1.1477886438 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.4354370534 +1.1120989323 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.4020257890 +1.1007087231 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.3963306844 +1.1363983154 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.237522 +0.237522 +0.237522 +1.000000 + + + + + + + + + + +-0.4149064422 +1.1334546804 + + + + + + + + + + + + + + + + + + + + + +0.000446 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-0.4289826155 +1.1477886438 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.4354370534 +1.1120989323 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.4020257890 +1.1007087231 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.3963306844 +1.1363983154 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.113298 +0.113298 +0.113298 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-0.2824286819 +1.1994246244 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.2847067118 +1.1690505743 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.2573702335 +1.1527243853 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.2512954473 +1.1872750521 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.237522 +0.237522 +0.237522 +1.000000 + + + + + + + + + + +-0.2667960823 +1.1860531569 + + + + + + + + + + + + + + + + + + + + + +0.000446 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-0.2824286819 +1.1994246244 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.2847067118 +1.1690505743 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.2573702335 +1.1527243853 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.2512954473 +1.1872750521 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + +0.113298 +0.113298 +0.113298 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-0.7184257507 +0.5415080190 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.7209448218 +0.5076345205 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.6971640587 +0.4944280684 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.6994420886 +0.5259412527 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000446 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-0.7184257507 +0.5415080190 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.7209448218 +0.5076345205 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.6971640587 +0.4944280684 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.6994420886 +0.5259412527 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.113298 +0.113298 +0.113298 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-0.6099870205 +0.6470651031 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.6144044399 +0.6109135151 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.5864472985 +0.5996055007 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.5837895870 +0.6360544562 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000446 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-0.6099870205 +0.6470651031 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.6144044399 +0.6109135151 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.5864472985 +0.5996055007 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.5837895870 +0.6360544562 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.113298 +0.113298 +0.113298 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-0.4447242916 +0.7743851542 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.4530771077 +0.7337597013 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.4185268283 +0.7269255519 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.4094146788 +0.7645135522 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000446 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-0.4447242916 +0.7743851542 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.4530771077 +0.7337597013 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.4185268283 +0.7269255519 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.4094146788 +0.7645135522 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.113298 +0.113298 +0.113298 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-0.2461934537 +0.8828732967 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.2526479065 +0.8471837044 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.2192366421 +0.8357933760 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.2135415375 +0.8714830279 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.237522 +0.237522 +0.237522 +1.000000 + + + + + + + + + + +-0.4299321473 +0.7609716654 + + + + + + + + + + + + + + + + + + + + + +0.237522 +0.237522 +0.237522 +1.000000 + + + + + + + + + + +-0.2335249037 +0.8683154583 + + + + + + + + + + + + + + + + + + + + + +0.000446 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-0.2461934537 +0.8828732967 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.2526479065 +0.8471837044 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.2192366421 +0.8357933760 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.2135415375 +0.8714830279 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-0.6149581671 +0.6757010818 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.6052885652 +0.6477657557 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.5805774927 +0.6155326962 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.5762798786 +0.5897462368 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.4323107898 +0.7014874816 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.4537987113 +0.7369438410 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.4366083741 +0.7476881742 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.4086740911 +0.7455393076 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.4086740911 +0.7176040411 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.2292499095 +0.8175264597 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.2475146502 +0.8400896192 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.2292499095 +0.8562061191 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.1916460544 +0.8486850858 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.1991668195 +0.8186008930 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.3732190132 +0.7251250744 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.5956190228 +0.5575132370 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.7471088767 +0.4640373588 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.7535552382 +0.5370989442 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.6385948658 +0.6574356556 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.237522 +0.237522 +0.237522 +1.000000 + + + + + + + + + + +-0.6009476185 +0.6353466511 + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-0.8040518761 +0.9002579451 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.7600016594 +0.9249699712 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.7245465517 +0.9002579451 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.7342161536 +0.8895136118 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.5956190228 +0.9915849566 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.6224789023 +1.0248924494 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.5999165773 +1.0184458494 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.5719823241 +1.0356367826 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.5719823241 +1.0077015162 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.4097484648 +1.0968796015 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.4323107898 +1.1086983681 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.4097484648 +1.1108472347 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.3968557119 +1.1044006348 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.2690025866 +1.1516757011 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.2797465324 +1.1656434536 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.2625561953 +1.1613457203 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.2475146502 +1.1710156202 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.2399938852 +1.1581224203 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.2056131959 +1.1538246870 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.5365272164 +1.0152225494 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.7589272261 +0.8476106524 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.8298373818 +0.7605814338 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.8513253331 +0.8497595191 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + +0.074457 +0.025991 +0.006029 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +1.8640725613 +-0.4064413011 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.8159637451 +0.0006350166 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.5727283955 +0.2428360283 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.7644100189 +-0.2043049783 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.5118713379 +-0.6673172712 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.9963051081 +-0.6668142080 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000446 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +1.8762317896 +0.0678856149 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.0636177063 +-0.7054613829 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000446 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +2.0316781998 +0.1332482547 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.2721858025 +-0.6301329136 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000446 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +2.2420444489 +0.2162868977 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.4825522900 +-0.5470942855 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000446 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +2.4506773949 +0.2570490837 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.7184846401 +-0.5025377274 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000446 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +1.8640725613 +-0.4064413011 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.8159637451 +0.0006350166 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.5727283955 +0.2428360283 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.7644100189 +-0.2043049783 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.5118713379 +-0.6673172712 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.9963051081 +-0.6668142080 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + +0.113298 +0.113298 +0.113298 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +1.8058985472 +0.0682438836 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.8126391172 +-0.0397915170 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.1803612709 +0.1491110474 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.5886838436 +0.2199510187 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.5319979191 +0.3055680990 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.1561872959 +0.2463080138 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000446 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +1.8058985472 +0.0682438836 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.8126391172 +-0.0397915170 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.1803612709 +0.1491110474 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.5886838436 +0.2199510187 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.5319979191 +0.3055680990 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.1561872959 +0.2463080138 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + +0.113298 +0.113298 +0.113298 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +1.8366938829 +-0.3200773001 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.8644359112 +-0.4202357531 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.3412039280 +-0.1928906143 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.8128013611 +-0.1155170947 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.7561156750 +-0.0298999976 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.3046424389 +-0.0757701173 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000446 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +1.8366938829 +-0.3200773001 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.8644359112 +-0.4202357531 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.3412039280 +-0.1928906143 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.8128013611 +-0.1155170947 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.7561156750 +-0.0298999976 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.3046424389 +-0.0757701173 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + +0.113298 +0.113298 +0.113298 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +1.8095678091 +0.0511853658 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.7981168032 +0.0146064088 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.8208650351 +-0.0060022506 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.8264393806 +0.0292125028 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000446 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +1.8095678091 +0.0511853658 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.7981168032 +0.0146064088 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.8208650351 +-0.0060022506 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.8264393806 +0.0292125028 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.113298 +0.113298 +0.113298 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +1.9317684174 +0.1243077368 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.9176473618 +0.0857119486 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.9454717636 +0.0661189482 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.9577353001 +0.1054926291 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000446 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +1.9317684174 +0.1243077368 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.9176473618 +0.0857119486 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.9454717636 +0.0661189482 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.9577353001 +0.1054926291 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.113298 +0.113298 +0.113298 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +2.1200983524 +0.2150007039 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.1005058289 +0.1724972129 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.1367223263 +0.1561306715 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.1563708782 +0.1951016039 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000446 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +2.1200983524 +0.2150007039 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.1005058289 +0.1724972129 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.1367223263 +0.1561306715 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.1563708782 +0.1951016039 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.113298 +0.113298 +0.113298 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +2.3422262669 +0.2714138031 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.3259849548 +0.2338478118 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.3597819805 +0.2127663642 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.3751888275 +0.2505269945 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000446 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +2.3422262669 +0.2714138031 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.3259849548 +0.2338478118 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.3597819805 +0.2127663642 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.3751888275 +0.2505269945 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.113298 +0.113298 +0.113298 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +2.5165147781 +0.2905922532 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.5062255859 +0.2577970624 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.5320816040 +0.2328486443 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.5476138592 +0.2692602575 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000446 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +2.5165147781 +0.2905922532 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.5062255859 +0.2577970624 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.5320816040 +0.2328486443 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.5476138592 +0.2692602575 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + +0.113298 +0.113298 +0.113298 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +1.8687406778 +-0.3206541240 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.8572896719 +-0.3572331071 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.8800379038 +-0.3778417408 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.8856122494 +-0.3426269889 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000446 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +1.8687406778 +-0.3206541240 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.8572896719 +-0.3572331071 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.8800379038 +-0.3778417408 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.8856122494 +-0.3426269889 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.113298 +0.113298 +0.113298 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +2.0149648190 +-0.2324501574 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.0008437634 +-0.2710459530 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.0286681652 +-0.2906389534 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.0409317017 +-0.2512652576 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000446 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +2.0149648190 +-0.2324501574 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.0008437634 +-0.2710459530 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.0286681652 +-0.2906389534 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.0409317017 +-0.2512652576 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.113298 +0.113298 +0.113298 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +2.2292129993 +-0.1348958611 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.2096204758 +-0.1773993522 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.2458369732 +-0.1937658936 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.2654855251 +-0.1547949612 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000446 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +2.2292129993 +-0.1348958611 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.2096204758 +-0.1773993522 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.2458369732 +-0.1937658936 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.2654855251 +-0.1547949612 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.113298 +0.113298 +0.113298 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +2.4751935005 +-0.0665640682 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.4589521885 +-0.1041300595 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.4927492142 +-0.1252115071 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.5081560612 +-0.0874508694 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000446 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +2.4751935005 +-0.0665640682 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.4589521885 +-0.1041300595 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.4927492142 +-0.1252115071 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.5081560612 +-0.0874508694 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +1.8457980156 +-0.5733236074 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.8018074036 +0.1525205225 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.4841942787 +0.2550116777 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.7525672913 +-0.1125523597 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.3091683388 +-0.6288923621 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + +0.010309 +0.008513 +0.035309 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-0.5929057002 +-0.4351939857 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.6636700034 +-1.0613025427 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.1971014738 +-0.9206427336 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.2780994177 +-0.9058124423 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.6054933071 +-0.8075272441 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.6490005255 +-0.5129517317 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.5007237196 +-0.3143181503 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.1910381317 +-0.3656504452 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.1172679663 +-0.3695538342 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.017688 +0.015382 +0.049784 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-1.5823094845 +-0.3685769439 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.6331504583 +-0.5858219862 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.5942004919 +-0.5922372937 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.3093309402 +-0.6885112524 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.3045960665 +-0.6394354701 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.5437946320 +-0.4080268443 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.222494 +0.214186 +0.338034 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-1.5659104586 +-0.3845102489 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.5807303190 +-0.4817719758 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.6094436646 +-0.5660654902 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.5909188986 +-0.4474987984 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.000000 +1.000000 +1.000000 +1.000000 + + + + + + + + + + +-1.5751727819 +-0.4234149456 + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-1.1770890951 +-0.8331962228 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.5854450464 +-0.7395159602 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.5986177921 +-0.6224156022 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.6103268862 +-0.7292696834 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.6527725458 +-0.7424434423 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.5810540915 +-0.3677222729 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.5459266901 +-0.4072436690 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.3000349998 +-0.6546182036 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.2692984343 +-0.7307333946 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.2107528448 +-0.8053848743 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.1112252474 +-0.8317324519 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.0190157890 +-0.4482287765 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.5927631855 +-0.2330568731 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.7376637459 +-0.8200224638 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.1258616447 +-0.8990651965 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-1.6018306017 +-0.8069139123 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.5641568899 +-0.4643146098 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-0.5929057002 +-0.4351939857 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.6636700034 +-1.0613025427 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.1971014738 +-0.9206427336 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.2780994177 +-0.9058124423 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.6054933071 +-0.8075272441 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.6490005255 +-0.5129517317 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.5007237196 +-0.3143181503 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.1910381317 +-0.3656504452 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.1172679663 +-0.3695538342 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.010309 +0.008513 +0.035309 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-0.5914800763 +-0.1227390394 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.8916101456 +-0.6767620444 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.3335224390 +-0.3465381861 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.4064527750 +-0.3004627824 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.6698150635 +-0.0886887982 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.5998178720 +0.2007382661 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.3879344463 +0.3293725252 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.1269662380 +0.1700635701 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.0530830622 +0.1345294565 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.017688 +0.015382 +0.049784 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-1.4691023827 +0.3489772975 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.6226110458 +0.1244421676 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.5795370340 +0.1134445295 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.3554601669 +-0.0625176951 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.2917654514 +0.0043846085 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.3440042734 +-0.0703076869 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.2693119049 +-0.1055917814 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.2079085112 +-0.0121118501 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.2578560114 +-0.1193388253 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.0172827244 +-0.2467281371 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.9865809679 +-0.1789093763 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.0379033089 +-0.1266705841 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.0626479387 +-0.0661835745 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.1194691658 +0.0712869093 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.1767485142 +0.1349815726 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.2528154850 +0.2124232799 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.2926819324 +0.2403756082 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.3192595243 +0.2820749879 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.3934936523 +0.3828866780 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.222494 +0.214186 +0.338034 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-1.4342329502 +0.3387455344 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.4918115139 +0.2787222266 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.5585005283 +0.2073969394 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.4964426756 +0.2944693565 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.000000 +1.000000 +1.000000 +1.000000 + + + + + + + + + + +-1.4612456560 +0.3148480058 + + + + + + + + + + + + + + + + + + + + + +0.222494 +0.214186 +0.338034 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-1.1521494389 +0.1088592038 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.2009729147 +0.0527044535 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.2658095360 +-0.0223260336 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.2074565887 +0.0693778992 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.000000 +1.000000 +1.000000 +1.000000 + + + + + + + + + + +-1.1796694994 +0.0841987357 + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-0.8923608661 +-0.2079795003 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.0638616085 +-0.0594560653 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.1205180883 +0.0706933364 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.1369730234 +0.1176994443 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.1749807596 +0.1349776983 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.2665451765 +0.2213689387 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.3183740377 +0.2818428278 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.2712579966 +0.2519218922 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.3723210096 +0.3391985297 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.3998836279 +0.3851336241 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.3983523846 +0.4325998724 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.0102676153 +0.2927128971 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.7254538536 +0.0507881306 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.7759853005 +-0.2156353444 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-1.1595253944 +-0.3457659781 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.2952861786 +-0.2503494024 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.2692984343 +-0.1071739793 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.3205258846 +-0.2315931171 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.3717533350 +-0.2315931171 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.3863898516 +-0.1832892150 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.3249168396 +-0.0427687764 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.4083443880 +-0.1701154262 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.6301549673 +-0.0172652900 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.5956904888 +0.0860416219 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.6439906359 +0.0011438603 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.6908272505 +-0.0149574401 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.4742082357 +0.3612274826 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.7449820042 +-0.1159565076 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.1346434355 +-0.5331265330 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-1.6675405502 +-0.0892954692 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.5101416111 +0.2173299044 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-1.3328576088 +-0.3477782905 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.2250931263 +-0.0297129881 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-1.4064527750 +-0.3022152185 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.3468756676 +-0.0735236332 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-0.5914800763 +-0.1227390394 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.8916101456 +-0.6767620444 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.3335224390 +-0.3465381861 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.4064527750 +-0.3004627824 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.6698150635 +-0.0886887982 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.5998178720 +0.2007382661 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.3879344463 +0.3293725252 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.1269662380 +0.1700635701 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.0530830622 +0.1345294565 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-0.3697074354 +-2.9063346386 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.7183581591 +-1.9641017914 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-0.7198032141 +-1.9637508392 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.9140948057 +-1.7896215916 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.9250924587 +-1.7231775522 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.9392977357 +-1.6631487608 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.9498371482 +-1.5490481853 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.8971401453 +-1.5320935249 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.9741235971 +-1.5036829710 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.0955559015 +-1.4651912451 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.4772655964 +-1.3323030472 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.5496666431 +-1.3634630442 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.6096954346 +-1.1407608986 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.3604156971 +-0.7031465173 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.2980957031 +-0.7828794122 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.1807875633 +-0.8140393496 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.1991169453 +-0.7530941367 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.1409211159 +-0.6834424138 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.1583340168 +-0.6124159694 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.1203005314 +-0.5762154460 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.1519187689 +-0.4859431386 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.2806828022 +-0.2132933587 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.2398998737 +-0.1413504630 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.1537517309 +-0.1289781183 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.0813505650 +-0.2563674450 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.9919947386 +-0.2261239290 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.9649589062 +-0.1578469276 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.0341523886 +-0.1450163424 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.0680617094 +-0.1656369120 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.0822670460 +-0.1271451861 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.1445870399 +-0.0781140402 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.9956606627 +-0.0744481608 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.8980565667 +-0.1124816611 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.8586483598 +-0.0593264103 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.7958701849 +-0.0382476039 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.0634794235 +0.2935144901 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.0753935575 +0.2380680740 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.1051788330 +0.2715192139 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.0836417675 +0.3113856614 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.3274227381 +0.3764550388 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.2678521872 +0.3860779703 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.2605204582 +0.4021161795 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.5226308107 +0.6078636646 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.4584779739 +0.5757872462 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.5560820103 +0.7123412490 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.5267549753 +0.6853053570 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.5785355568 +0.8264417648 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.5272132158 +0.7691623569 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.5794519186 +0.9987381101 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.5624972582 +1.0990915298 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.5372943878 +0.9859074950 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.2289022207 +1.4400182962 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.2618951797 +1.4047342539 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.1047205925 +1.4281042814 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.2000334263 +0.9973633885 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.1432123184 +1.0124851465 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.2105728388 +0.9364181161 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.1803293228 +0.9336687326 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.2110310793 +0.8718069792 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.1661239862 +0.8685993552 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.2032411098 +0.7567900419 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.1688734293 +0.7829094529 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.1684151888 +0.7205894589 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.1432123184 +0.7544988394 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.1390881538 +0.6802647710 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.1248829365 +0.7018018365 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.1157182455 +0.6958447695 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.0162812471 +0.7732865214 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.7757078409 +0.4873478711 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.6432779431 +0.5592907667 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.5355927348 +0.4841402471 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.5030580759 +0.4607702494 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.4663992524 +0.4167796969 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.4201175272 +0.4841402471 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.3820840418 +0.5093431473 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.3467999399 +0.5487513542 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.3046423197 +0.5515007973 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.2418641448 +0.6321501136 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.2134535760 +0.7036347985 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.2033724040 +0.8062794209 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.1997065246 +0.8612676263 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.1873341799 +0.9185469747 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.1937494725 +0.9634540081 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.1722124219 +1.0880938768 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.1699212492 +1.1783661842 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.1497589052 +1.2035690546 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.1428853869 +1.2301467657 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.1121836454 +1.2388532162 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.1034771800 +1.3364572525 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0197880212 +1.4024430513 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0248286054 +1.4478083849 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.1302226484 +1.5994840860 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0967714936 +1.6077322960 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0404085927 +1.5848206282 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.0324507654 +1.6860904694 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.0095390165 +1.7328305244 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.0933960155 +1.9312461615 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.0466560461 +2.0737571716 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.0150378356 +2.1347024441 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.2015394568 +2.1195807457 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.5182551742 +1.9382084608 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.2304082662 +2.1814424992 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0569050536 +2.2400965691 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.1181406975 +2.2891275883 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.3367187679 +2.2671325207 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.1383030415 +2.3661112785 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.4150769413 +2.3216624260 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.1896253526 +2.4165170193 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.3858252466 +2.4147727489 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.5416251421 +2.4459328651 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.3330529034 +2.4792952538 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.8122593760 +2.4022269249 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.3765492141 +2.6447863579 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.1086367965 +2.6306841373 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0481985882 +2.5837726593 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.0929377750 +2.7432384491 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.1911678910 +2.5736916065 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.2227860987 +2.4087269306 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.2333255112 +2.4669227600 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.2566954792 +2.3477818966 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.3795024455 +2.7267420292 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.2906048894 +2.3399918079 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.3625477552 +2.3743593693 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.4418224096 +2.3862736225 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.5449252725 +2.4417200089 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.4656506181 +2.3569464684 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.3176407516 +2.3289940357 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.2915213406 +2.3019583225 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.3396360278 +2.3010418415 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.3740036488 +2.2808794975 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.4166194797 +2.2762970924 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.5036841035 +2.1832754612 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.5096411705 +2.0801725388 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.5485911369 +2.0820055008 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.7002668977 +2.2740058899 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.6984339952 +2.2937099934 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.7492980957 +2.3441159725 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.7896227241 +2.3564882278 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.8203244805 +2.3340346813 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.8184915185 +2.3092899323 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.7841238976 +2.2538435459 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.7703768611 +2.2515523434 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.6434457898 +2.0398478508 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.7016416192 +1.9802772999 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.6613169312 +1.9262056351 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.5889158249 +1.8386827707 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.5623382330 +1.8111886978 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.5825005174 +1.7800287008 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.5545482039 +1.6796752214 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.4812306166 +1.6883816719 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.4871876836 +1.5582429171 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.5472164750 +1.5499947071 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.6035793424 +1.5046294928 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.6846869588 +1.4931735992 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.7314268947 +1.5261665583 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.8771456480 +1.7410787344 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.1548360586 +1.5334982872 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.1255090237 +1.4230636358 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.1543778181 +1.3254595995 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.1731654406 +1.2975072861 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.2556476593 +1.2778031826 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.2469412088 +1.2521420717 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.1740819216 +1.2663472891 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.1708742380 +1.2466431856 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.2148647308 +1.2237313986 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.3207170963 +1.2970490456 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.2776429653 +1.3424142599 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.3060535192 +1.3827389479 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.3381299973 +1.3726577759 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.3775382042 +1.3941948414 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.3857864141 +1.3350825310 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.4031993151 +1.3217936754 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.4453569651 +1.3314166069 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.4572710991 +1.2750537395 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.4824739695 +1.2544331551 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.5044692755 +1.2429772615 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.5003451109 +1.2205238342 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.5049275160 +1.1916550398 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.4733092785 +1.1724091768 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.4623116255 +1.1568291187 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.4490228891 +1.1870726347 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.4201540947 +1.2159414291 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.3440870047 +1.2342708111 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.2391512394 +1.1481226683 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.2771847248 +1.1160461903 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.3358387947 +1.0880938768 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +0.3897615075 +1.2860115767 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.3104583621 +1.1021968126 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.2239458263 +1.1706768274 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.1734801829 +1.6392242908 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.4222037196 +1.6320158243 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + +0.005474 +0.043132 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +0.0032865559 +0.2975070477 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.2476251721 +-0.5589600801 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.3868642747 +-1.8393352032 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.7329494357 +-0.1811917573 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +0.1981050372 +-0.3681643009 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.1074062288 +-0.4305183887 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0195417553 +-0.5259389877 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.1146169007 +-0.4342974126 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.1023347676 +-0.3398215473 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.0562971346 +-0.4166399240 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.0516537242 +-0.3493078053 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.0795141682 +-0.2819756866 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.0706143081 +-0.1411199719 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.0281618051 +-0.0926238969 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0733313337 +-0.1151932403 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.0218585264 +-0.0420566238 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.0001892899 +0.0318539254 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0547577031 +-0.0130341565 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.1201523617 +-0.0970058292 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.1696820408 +-0.0703051537 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.1367912441 +0.0326278582 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.1476258487 +-0.0664354935 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.1422085464 +-0.0749487504 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0087105753 +0.0647460520 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0330884643 +0.1417523324 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.1317608804 +0.0728723407 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.2451374233 +-0.0242561772 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.2695153058 +0.1038296446 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0884224102 +0.1611006409 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0021324139 +0.2222412974 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.0822228268 +-0.0072296634 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.1511000395 +-0.2568228841 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.1816691458 +-0.4255401492 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.0698404089 +-0.6147665977 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.0663578510 +-0.7420784831 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.0435277633 +-1.0036677122 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0965483710 +-1.2099206448 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.2685898840 +-1.7310727835 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.4974282682 +-1.6498883963 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.5919163823 +-1.2690597773 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.4472314715 +-0.6033475995 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.2744953930 +-0.3701269627 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +0.0032865559 +0.2975070477 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.2476251721 +-0.5589600801 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.3868642747 +-1.8393352032 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.7329494357 +-0.1811917573 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +0.1744886935 +-0.0679762512 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.1270794570 +0.1216879487 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.1529390365 +-0.0916842744 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0538106337 +0.0268558487 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.0410078354 +0.1130668446 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0354934298 +-0.0022403626 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-0.0408112556 +-0.0212859772 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.1022870913 +-0.1212758347 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.0709825903 +-0.1402394325 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-0.1442558467 +-0.2333334386 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.1192567348 +-0.3126357198 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.0563279428 +-0.4152115285 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.0459834859 +-0.3669405580 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.1321873069 +-0.1919583231 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-0.0509127900 +-0.5035928488 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0218200330 +-0.5278362632 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.1039811894 +-0.4308624566 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.1955706775 +-0.3702538311 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +0.3059372604 +-0.6330724955 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.2430469096 +-0.7014789581 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0825110078 +-0.8399468064 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.0212029088 +-0.8393951654 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.0366496630 +-0.7969169617 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0764426365 +-0.8173285723 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.1400193870 +-0.7874267101 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-0.0253152959 +-0.9063662291 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0608833134 +-0.9710244536 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.2149633318 +-0.9850337505 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + +0.672665 +0.641774 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +0.0263588987 +0.2744372487 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.1812921911 +-0.4609133601 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.4293198884 +-0.0889124647 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.3831751943 +0.1677393168 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0205908138 +0.3176931441 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-0.1816962212 +0.1136626750 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.2385713756 +0.1269046813 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.2514783144 +0.1471891254 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.3473583758 +0.1047761813 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.3621490598 +-0.0384434834 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.3423087001 +-0.2585722804 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.1429602802 +-0.4522478282 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0554433689 +0.1797957867 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0393821187 +0.3290676773 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.1354020387 +0.3252886534 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +0.0263588987 +0.2744372487 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.1812921911 +-0.4609133601 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.4293198884 +-0.0889124647 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.3831751943 +0.1677393168 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0205908138 +0.3176931441 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-0.1609841287 +0.1069291756 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.1744531691 +0.0799920037 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.1879222095 +-0.0317972675 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.2970214486 +-0.2903941274 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-0.3347347677 +-0.2446009368 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.2795116901 +-0.1624425650 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.2013912499 +-0.0412252769 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-0.3516278565 +-0.1223334223 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.3111120462 +0.0216174889 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.2835268378 +0.1310891360 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + +0.832402 +0.952078 +0.865107 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-1.0456227064 +0.3217844665 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.0897588730 +0.2449929714 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.0794806480 +0.3151332438 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.3285099268 +0.3766214550 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.2296445370 +0.3798762560 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.2753723860 +0.3967619836 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.2312362194 +0.3979713023 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.5250738859 +0.6089967489 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.4543352127 +0.5721126795 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.5577225685 +0.7142071724 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.5250738859 +0.6815556884 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.5788836479 +0.8278827667 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.5033081770 +0.7208583951 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.5794882774 +0.9990008473 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.5813020468 +1.0770016909 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.5601062775 +1.0996510983 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.5587316751 +1.0891116858 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.5444211960 +1.0256057978 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.5347476006 +0.9572794437 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.2245856524 +1.4422147274 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.3467156887 +1.3521207571 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.0746437311 +1.4083539248 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.2482236624 +0.9599334002 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.1418132782 +1.0113292933 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.2282717228 +0.9254679680 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.1799033880 +0.9327238202 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.2155750990 +0.8680254817 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.1623698473 +0.8601649404 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.2131565809 +0.7198843956 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.1678112745 +0.7827687860 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.1768803596 +0.6703025103 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.1418132782 +0.7555592060 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.1454409361 +0.6364416480 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.1200475693 +0.6987214088 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + +-1.2092444897 +1.2822748423 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.9071535468 +0.3469283879 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.000000 +1.000000 +1.000000 +1.000000 + + +0.830647 +0.936434 +0.920897 +1.000000 + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-1.0456227064 +0.3217844665 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.0897588730 +0.2449929714 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.0794806480 +0.3151332438 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.3285099268 +0.3766214550 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.2296445370 +0.3798762560 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.2753723860 +0.3967619836 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.2312362194 +0.3979713023 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.5250738859 +0.6089967489 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.4543352127 +0.5721126795 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.5577225685 +0.7142071724 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.5250738859 +0.6815556884 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.5788836479 +0.8278827667 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.5033081770 +0.7208583951 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.5794882774 +0.9990008473 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.5813020468 +1.0770016909 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.5601062775 +1.0996510983 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.5587316751 +1.0891116858 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.5444211960 +1.0256057978 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.5347476006 +0.9572794437 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.2245856524 +1.4422147274 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.3467156887 +1.3521207571 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.0746437311 +1.4083539248 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.2482236624 +0.9599334002 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.1418132782 +1.0113292933 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.2282717228 +0.9254679680 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.1799033880 +0.9327238202 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.2155750990 +0.8680254817 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.1623698473 +0.8601649404 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.2131565809 +0.7198843956 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.1678112745 +0.7827687860 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.1768803596 +0.6703025103 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.1418132782 +0.7555592060 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.1454409361 +0.6364416480 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.1200475693 +0.6987214088 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.047366 +0.043774 +0.070570 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-0.3408884704 +-0.2568424344 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.3593412638 +0.1288080812 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.5198805928 +0.3188655376 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.6102992892 +0.5568986535 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.8132800460 +0.4996968806 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.0494759083 +0.7857056260 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.0420947075 +0.2432115972 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-0.0554425046 +0.9117804170 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.1080752239 +1.0576399565 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.1050676405 +0.9869657159 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.0825107619 +0.9283211827 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.0779993832 +0.8636618257 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.0704804212 +0.7493801713 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.0704804212 +0.6787059307 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.1080752239 +0.5990095139 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.1065714285 +0.4411203563 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.1742420644 +0.4125499427 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.1787534505 +0.3599202335 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.2253709882 +0.2892460227 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.2795075178 +0.3629276454 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.3171023130 +0.3463868499 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.3351477981 +0.4050314128 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.3276288509 +0.3133053184 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.3411629796 +0.2366163135 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.4704890847 +0.2065421790 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.4870308042 +0.2832311988 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.5652279854 +0.2576681972 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.5847772956 +0.3313497901 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.5792365074 +0.3477404714 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.5569085479 +0.3485104144 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.5515190363 +0.3800790608 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.5692273974 +0.3669896126 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.5984847546 +0.3962483406 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.6238924265 +0.4147275388 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.6046441793 +0.3354209960 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.6200428009 +0.3115520477 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.7643401027 +0.2457778901 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.9473061562 +0.3861678839 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.0002397299 +0.1859395355 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.7978965640 +-0.0372427702 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.3367086351 +-0.2374340445 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.3536470830 +0.0505334064 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.3236198127 +0.0690126047 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.2627953589 +0.0736324042 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.2358478159 +0.0720924661 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.0895611644 +0.2422550619 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.0225772746 +0.2846032083 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0929121897 +0.4655453265 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-0.9493115544 +0.3681429625 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.9171451330 +0.1703047305 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.7281674147 +-0.0243166275 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.7386215329 +0.2121241987 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-0.3408884704 +-0.2568424344 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.3593412638 +0.1288080812 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.5198805928 +0.3188655376 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.6102992892 +0.5568986535 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.8132800460 +0.4996968806 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.0494759083 +0.7857056260 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.0420947075 +0.2432115972 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-0.3402507603 +-0.2008438855 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.3529245555 +0.0487940796 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.3313395977 +0.0686865821 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.2599694729 +0.0751744658 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.0920874402 +0.2325056046 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.0807331055 +0.2519692481 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0084795626 +0.2998173833 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-0.9828968644 +0.3000009954 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.9283704162 +0.3805552423 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.6900153160 +0.1204968244 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-0.9177070856 +0.1724585593 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.9488848448 +0.3680236340 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.8896757364 +0.3618108332 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-1.3186161518 +1.1469788551 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.3348562717 +0.6362551451 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.1007407904 +0.4193928540 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + +0.856416 +0.798789 +0.690076 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-0.3221590221 +0.0801443979 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.3847547770 +0.0435320064 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.4910494983 +0.1474639624 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.4827821255 +0.1793521643 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.5642747283 +0.2230508327 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.5856428742 +0.3169375360 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.6059585810 +0.3004911840 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.6267580390 +0.3232258260 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.6359484792 +0.3880437613 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.6499760151 +0.4446385205 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.6214372516 +0.4726940393 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.5924147964 +0.4722103179 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.5537181497 +0.4847869277 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.5048636198 +0.4606011510 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.4772922695 +0.4456059635 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.4622973204 +0.3972343802 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-0.0554425046 +0.9117804170 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.1080752239 +1.0576399565 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.1050676405 +0.9869657159 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.0825107619 +0.9283211827 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.0779993832 +0.8636618257 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.0704804212 +0.7493801713 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.0704804212 +0.6787059307 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.1080752239 +0.5990095139 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.1065714285 +0.4411203563 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.1742420644 +0.4125499427 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.1787534505 +0.3599202335 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.2253709882 +0.2892460227 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.2795075178 +0.3629276454 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.3171023130 +0.3463868499 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.3351477981 +0.4050314128 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.3276288509 +0.3133053184 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.3411629796 +0.2366163135 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.4704890847 +0.2065421790 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.4870308042 +0.2832311988 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.5652279854 +0.2576681972 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.5847772956 +0.3313497901 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.5792365074 +0.3477404714 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.5569085479 +0.3485104144 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.5515190363 +0.3800790608 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.5692273974 +0.3669896126 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.5984847546 +0.3962483406 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.6238924265 +0.4147275388 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.6046441793 +0.3354209960 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.6200428009 +0.3115520477 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.6762476563 +0.2976926267 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.9588118792 +0.4640053809 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.0411943197 +0.2476448268 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.7978965640 +-0.0372427702 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.3367086351 +-0.2374340445 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.3536470830 +0.0505334064 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.3236198127 +0.0690126047 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.2627953589 +0.0736324042 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.2358478159 +0.0720924661 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.0895611644 +0.2422550619 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.0225772746 +0.2846032083 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0929121897 +0.4655453265 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-0.5825001001 +0.3222822845 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.5793458819 +0.3474239707 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.5560462475 +0.3496803045 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.5201446414 +0.4262057543 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.5087245107 +0.4615809321 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-0.5885363221 +0.4707715213 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.6001453400 +0.4581949115 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.5996616483 +0.3933769763 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.5716065764 +0.3493588567 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-0.3221590221 +0.0801443979 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.3847547770 +0.0435320064 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.4910494983 +0.1474639624 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.4827821255 +0.1793521643 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.5642747283 +0.2230508327 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.5856428742 +0.3169375360 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.6059585810 +0.3004911840 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.6267580390 +0.3232258260 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.6359484792 +0.3880437613 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.6499760151 +0.4446385205 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.6214372516 +0.4726940393 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.5924147964 +0.4722103179 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.5537181497 +0.4847869277 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.5048636198 +0.4606011510 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.4772922695 +0.4456059635 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.4622973204 +0.3972343802 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + +0.078363 +0.237805 +0.005230 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-0.0845086351 +0.4554311335 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.2832849324 +0.5499039292 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.3482840061 +0.5483923554 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.3883494735 +0.5052084327 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.4521263242 +0.4485183060 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.4792905152 +0.2394733429 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.2655200362 +0.0729460120 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.1911137402 +0.1438087076 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.2583433986 +0.0730052665 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.0958456844 +0.2241617292 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-0.0554425046 +0.9117804170 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.1080752239 +1.0576399565 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.1050676405 +0.9869657159 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.0825107619 +0.9283211827 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.0779993832 +0.8636618257 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.0704804212 +0.7493801713 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.0704804212 +0.6787059307 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.1080752239 +0.5990095139 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.1065714285 +0.4411203563 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.1742420644 +0.4125499427 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.1787534505 +0.3599202335 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.2253709882 +0.2892460227 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.2795075178 +0.3629276454 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.3171023130 +0.3463868499 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.3351477981 +0.4050314128 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.3276288509 +0.3133053184 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.3411629796 +0.2366163135 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.4704890847 +0.2065421790 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.4870308042 +0.2832311988 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.5652279854 +0.2576681972 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.5847772956 +0.3313497901 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.5792365074 +0.3477404714 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.5569085479 +0.3485104144 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.5515190363 +0.3800790608 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.5692273974 +0.3669896126 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.5984847546 +0.3962483406 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.6238924265 +0.4147275388 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.6046441793 +0.3354209960 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.6200428009 +0.3115520477 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.6762476563 +0.2976926267 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.9588118792 +0.4640053809 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.0411943197 +0.2476448268 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.7978965640 +-0.0372427702 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.3367086351 +-0.2374340445 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.3536470830 +0.0505334064 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.3236198127 +0.0690126047 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.2627953589 +0.0736324042 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.2358478159 +0.0720924661 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.0895611644 +0.2422550619 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.0225772746 +0.2846032083 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0929121897 +0.4655453265 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-0.0845086351 +0.4554311335 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.2832849324 +0.5499039292 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.3482840061 +0.5483923554 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.3883494735 +0.5052084327 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.4521263242 +0.4485183060 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.4792905152 +0.2394733429 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.2655200362 +0.0729460120 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.1911137402 +0.1438087076 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.2583433986 +0.0730052665 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.0958456844 +0.2241617292 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-0.3575294912 +0.5046464801 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.3945638537 +0.5023791790 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + +0.227280 +0.010169 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +1.1153918505 +1.2005890608 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.2101386786 +1.1424508095 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.3662556410 +1.3179422617 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.3350322247 +1.3383983374 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.2628953457 +1.2318114042 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.1509218216 +1.2716469765 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.9857653975 +1.7417933941 + + + + +0.7784197330 +0.7424194813 + + + + + +0.491727 +0.047432 +0.000000 +1.000000 + + +0.095765 +0.002050 +0.000000 +1.000000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +1.1153918505 +1.2005890608 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.2101386786 +1.1424508095 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.3662556410 +1.3179422617 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.3350322247 +1.3383983374 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.2628953457 +1.2318114042 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.1509218216 +1.2716469765 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.066489 +0.016842 +-0.139349 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +1.2823909521 +1.3733320236 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.3098189831 +1.3087880611 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.4485729933 +1.1869611740 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.4542200565 +1.1603367329 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.4727742672 +1.1716319323 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.5034292936 +1.1901884079 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.4993957281 +1.2208467722 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.5026226044 +1.2450507879 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.4776145220 +1.2595732212 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.3412806988 +1.3692981005 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +1.3186928034 +1.3822069168 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.3057855368 +1.3144356012 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +1.4122711420 +1.3063676357 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.3993637562 +1.2385964394 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +1.4534132481 +1.2692548037 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.4405059814 +1.2014836073 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.078554 +0.078554 +0.078554 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +1.4743877649 +1.1409735680 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.4356657267 +1.1442008018 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.4348590374 +1.1893815994 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.4356657267 +1.2047108412 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.4437327385 +1.2119719982 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.4396992922 +1.2176196575 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.4517998695 +1.2289148569 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.4469596148 +1.2345623970 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.4453462362 +1.2426303625 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.4534132481 +1.2490848303 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.4598670006 +1.2450507879 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.4647072554 +1.2547323704 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.4606736898 +1.2628004551 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.4768078327 +1.2660275698 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.5244036913 +1.2515052557 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.5066561699 +1.1563028097 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +1.2823909521 +1.3733320236 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.3098189831 +1.3087880611 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.4485729933 +1.1869611740 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.4542200565 +1.1603367329 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.4727742672 +1.1716319323 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.5034292936 +1.1901884079 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.4993957281 +1.2208467722 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.5026226044 +1.2450507879 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.4776145220 +1.2595732212 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.3412806988 +1.3692981005 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + +0.227280 +0.010169 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +1.4195314646 +1.2184264660 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.3783893585 +1.3087880611 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.3751624823 +1.3959224224 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.3259532452 +1.2974928617 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.3775826693 +1.2119719982 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.9857653975 +1.7417933941 + + + + +0.7784197330 +0.7424194813 + + + + + +0.491727 +0.047432 +0.000000 +1.000000 + + +0.095765 +0.002050 +0.000000 +1.000000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +1.4195314646 +1.2184264660 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.3783893585 +1.3087880611 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.3751624823 +1.3959224224 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.3259532452 +1.2974928617 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.3775826693 +1.2119719982 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + +0.227280 +0.010169 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +1.4033973217 +1.3200832605 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.4372791052 +1.3354125023 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.4598670006 +1.2934588194 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.4316321611 +1.2563459873 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.9857653975 +1.7417933941 + + + + +0.7784197330 +0.7424194813 + + + + + +0.491727 +0.047432 +0.000000 +1.000000 + + +0.095765 +0.002050 +0.000000 +1.000000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +1.1991339922 +1.1963301897 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.3327515125 +1.2574006319 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.3230777979 +1.2991219759 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.2898246050 +1.3227035999 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.2741048336 +1.3474946022 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.2771278620 +1.3499132395 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.3242870569 +1.3136337996 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.3321468830 +1.3009359837 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.3563311100 +1.2821916342 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.3799105883 +1.3214943409 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.3859566450 +1.2676798105 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.4458124638 +1.2247490883 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.4560908079 +1.2047954798 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.4657644033 +1.2114466429 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.4706012011 +1.2307957411 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.5038545132 +1.2380515337 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.4984130859 +1.2199118137 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.5050636530 +1.1933069229 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.4736242294 +1.1745625734 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.4651597738 +1.1570274830 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.4476263523 +1.1854463816 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.4167914391 +1.2211211920 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.4071178436 +1.2096326351 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.3496804237 +1.2295863628 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.3073581457 +1.1902836561 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.2390378714 +1.1491669416 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.2335964441 +1.1612601280 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.2299687862 +1.1757718325 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +1.4033973217 +1.3200832605 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.4372791052 +1.3354125023 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.4598670006 +1.2934588194 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.4316321611 +1.2563459873 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + +0.016316 +0.132387 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +0.0439156853 +1.4098888636 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.1048969105 +1.3343019485 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.1131642833 +1.2386373281 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.1450526863 +1.2315510511 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.1497769058 +1.2067490816 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.1698547900 +1.1784040928 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.1722168922 +1.0957309008 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.1887516379 +0.9268414974 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.2017432004 +0.8583408594 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.2041053176 +0.8028317690 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.2123726755 +0.7083481550 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.2395368814 +0.6351233721 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.3033137023 +0.5122947097 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.3729957938 +0.2418354303 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.0777327120 +0.2524648309 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0864335671 +0.3516726196 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.5907429457 +0.4367078543 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.0832418203 +0.6622874141 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.3312628269 +1.0579375029 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.2202438116 +1.1571452618 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.1682775021 +1.1973007917 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.1033196449 +1.1878523827 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.7383744717 +1.4842946529 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.5824755430 +1.5055534840 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.3356356323 +1.1701366901 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.2659535408 +1.1465158463 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.2163493335 +1.2067490816 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.1277704090 +1.4157941341 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +0.6558156610 +1.3309769630 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.5886600018 +1.3400832415 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.6319128275 +1.2205634117 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.6137011051 +1.1442984343 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.5567895174 +1.1579577923 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.5021544099 +1.1215326786 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.4782515168 +1.1363303661 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.5215043426 +1.1682024002 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.4873573780 +1.1693406105 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.4930485189 +1.1943829060 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.5431307554 +1.1955211163 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.5283337235 +1.2512971163 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.6137011051 +1.4083802700 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.1554994583 +1.1966594458 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.2089964151 +1.1682024002 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.2055816650 +1.1226710081 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.1429789066 +1.1625108719 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.0780997276 +1.1545429230 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.0485056639 +1.0657567978 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.2021670341 +1.1090116501 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.1725729704 +1.0498207808 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.9881793857 +1.0008746386 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.9688294530 +0.9712792635 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.9426501393 +0.8824931383 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.8606974483 +1.1101498604 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.8948444128 +0.9268862009 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.7946799994 +0.9371307492 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.7423213124 +0.9906300902 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.7878506184 +1.1135647297 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.7480124831 +1.0964905024 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.7241095901 +0.9132267833 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.6694744825 +0.9553433061 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.6341893077 +1.0008746386 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.5476836562 +0.9963214993 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.5283337235 +1.0668951273 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.6273598671 +1.1329154968 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.7320772409 +1.2399141788 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.7058978677 +1.2330845594 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.6444333792 +1.2934135199 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-0.0554425046 +0.9117804170 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.1080752239 +1.0576399565 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.1050676405 +0.9869657159 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.0825107619 +0.9283211827 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.0779993832 +0.8636618257 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.0704804212 +0.7493801713 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.0704804212 +0.6787059307 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.1080752239 +0.5990095139 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.1065714285 +0.4411203563 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.1742420644 +0.4125499427 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.1787534505 +0.3599202335 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.2253709882 +0.2892460227 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.2795075178 +0.3629276454 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.3171023130 +0.3463868499 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.3351477981 +0.4050314128 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.3276288509 +0.3133053184 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.3411629796 +0.2366163135 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.4704890847 +0.2065421790 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.4870308042 +0.2832311988 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.5652279854 +0.2576681972 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.5847772956 +0.3313497901 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.5792365074 +0.3477404714 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.5569085479 +0.3485104144 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.5515190363 +0.3800790608 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.5692273974 +0.3669896126 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.5984847546 +0.3962483406 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.6238924265 +0.4147275388 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.6046441793 +0.3354209960 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.6200428009 +0.3115520477 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.6762476563 +0.2976926267 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.9588118792 +0.4640053809 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.0411943197 +0.2476448268 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.7978965640 +-0.0372427702 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.3367086351 +-0.2374340445 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.3536470830 +0.0505334064 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.3236198127 +0.0690126047 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.2627953589 +0.0736324042 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.2358478159 +0.0720924661 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.0895611644 +0.2422550619 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.0225772746 +0.2846032083 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.1489765197 +0.4244883060 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +0.6132077575 +0.5009197593 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.5078215599 +0.5656407475 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.6132077575 +0.6024067402 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.5881277919 +0.6374424100 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.5219932199 +0.6506690383 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.5720665455 +0.6638956666 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.6353667378 +0.6922383904 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.5919069052 +0.7555372715 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.6495384574 +0.7224707007 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.6495384574 +0.7867143154 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.6004099250 +0.8424550295 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.6618205309 +0.8056094646 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.6618205309 +0.8330074549 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.6136367917 +0.8981958032 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.5966308117 +0.9293728471 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.5805695653 +0.9945611954 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.5843486786 +1.0096774101 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.6108024716 +0.9813346267 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.6580414176 +0.9057539105 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.6769370437 +0.8622949719 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.6873295903 +0.9199252725 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.8233777881 +0.8641844988 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.8347151875 +0.9898374081 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.8649480939 +0.8953615427 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.9329721928 +0.8878034949 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.9773768187 +0.9888926744 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.9414752126 +0.8670187593 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.0520143509 +0.6818460822 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.7411820292 +0.5656407475 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +0.0713354126 +0.8972910047 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0519361123 +0.8030721545 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0380794741 +0.7213234901 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.0339750536 +0.6728284955 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0492275767 +0.5847808123 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0339042731 +0.5660525560 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.3110552728 +0.4054133594 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.3318402469 +0.3319781125 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.1766458750 +0.3596895337 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.3290689290 +0.3014955521 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.3415398896 +0.2183613032 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.3720245063 +0.2128190249 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.3484682143 +0.3707740903 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.3734101653 +0.4358959198 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.4149800837 +0.4026422203 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.4537786841 +0.4026422203 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.4995055795 +0.4497516155 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.5202905536 +0.4677640498 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.4057853818 +0.5505245924 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.4756990373 +0.7101888061 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.5172693133 +0.8424550295 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.5805695653 +1.0191249847 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.4917602837 +0.8169465661 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.3783867657 +0.5769778490 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.2667140365 +0.6894553900 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.2708710134 +0.7046966553 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.2694853544 +0.7254801989 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.3221406043 +0.7185523510 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.2625570297 +0.7393358946 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.2902703285 +0.7670473456 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.3553965390 +0.8390970230 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.3637105227 +0.8931342959 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.3955807984 +0.9236168265 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.3928094506 +0.9540994167 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.4191370904 +1.0164500475 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.1267619729 +1.0081366301 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-0.0579719320 +0.9232357144 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.1070991531 +1.0622997284 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.1184362024 +1.1771786213 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.1131455749 +1.2414200306 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-0.0829134434 +0.9345724583 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.1063433513 +0.9988139272 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.1099559963 +1.0777503252 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-0.1031840891 +0.9084497094 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.1559082568 +1.0148671865 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.1733217537 +1.1188660860 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-0.0635200292 +0.6738474965 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.0910913870 +0.7256051302 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.1888004094 +0.9277983308 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +0.0439156853 +1.4098888636 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.1048969105 +1.3343019485 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.1131642833 +1.2386373281 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.1450526863 +1.2315510511 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.1497769058 +1.2067490816 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.1698547900 +1.1784040928 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.1722168922 +1.0957309008 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.1887516379 +0.9268414974 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.2017432004 +0.8583408594 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.2041053176 +0.8028317690 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.2123726755 +0.7083481550 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.2395368814 +0.6351233721 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.3033137023 +0.5122947097 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.3729957938 +0.2418354303 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.0777327120 +0.2524648309 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0864335671 +0.3516726196 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.5907429457 +0.4367078543 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.0832418203 +0.6622874141 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.3312628269 +1.0579375029 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.2202438116 +1.1571452618 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.1682775021 +1.1973007917 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.1033196449 +1.1878523827 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.7383744717 +1.4842946529 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.5824755430 +1.5055534840 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.3356356323 +1.1701366901 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.2659535408 +1.1465158463 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.2163493335 +1.2067490816 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.1277704090 +1.4157941341 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-0.1481689364 +0.4740728736 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.1176953241 +0.4639148414 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.1607453376 +0.5887135267 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.2120183855 +0.7130284905 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-0.1849307418 +0.5355047584 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.2042790651 +0.6075784564 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.2037953585 +0.6714289188 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + +0.078363 +0.237805 +0.005230 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-0.3116622269 +0.5205096006 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.3073088527 +0.4910029173 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.3198852837 +0.2975165844 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.0964121744 +0.2375358194 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.1452666819 +0.1577226967 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.3692234755 +0.1814247668 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.4166268706 +0.3231535256 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.3580982089 +0.4871332049 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-0.0554425046 +0.9117804170 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.1080752239 +1.0576399565 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.1050676405 +0.9869657159 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.0825107619 +0.9283211827 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.0779993832 +0.8636618257 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.0704804212 +0.7493801713 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.0704804212 +0.6787059307 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.1080752239 +0.5990095139 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.1065714285 +0.4411203563 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.1742420644 +0.4125499427 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.1787534505 +0.3599202335 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.2253709882 +0.2892460227 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.2795075178 +0.3629276454 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.3171023130 +0.3463868499 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.3351477981 +0.4050314128 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.3276288509 +0.3133053184 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.3411629796 +0.2366163135 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.4704890847 +0.2065421790 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.4870308042 +0.2832311988 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.5652279854 +0.2576681972 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.5847772956 +0.3313497901 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.5792365074 +0.3477404714 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.5569085479 +0.3485104144 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.5515190363 +0.3800790608 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.5692273974 +0.3669896126 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.5984847546 +0.3962483406 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.6238924265 +0.4147275388 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.6046441793 +0.3354209960 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.6200428009 +0.3115520477 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.6762476563 +0.2976926267 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.9588118792 +0.4640053809 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.0411943197 +0.2476448268 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.7978965640 +-0.0372427702 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.3367086351 +-0.2374340445 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.3536470830 +0.0505334064 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.3236198127 +0.0690126047 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.2627953589 +0.0736324042 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.2358478159 +0.0720924661 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.0895611644 +0.2422550619 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.0225772746 +0.2846032083 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0929121897 +0.4655453265 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +0.6132077575 +0.5009197593 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.5078215599 +0.5656407475 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.6132077575 +0.6024067402 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.5881277919 +0.6374424100 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.5219932199 +0.6506690383 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.5720665455 +0.6638956666 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.6353667378 +0.6922383904 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.5919069052 +0.7555372715 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.6495384574 +0.7224707007 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.6495384574 +0.7867143154 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.6004099250 +0.8424550295 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.6618205309 +0.8056094646 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.6618205309 +0.8330074549 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.6136367917 +0.8981958032 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.5966308117 +0.9293728471 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.5805695653 +0.9945611954 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.5843486786 +1.0096774101 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.6108024716 +0.9813346267 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.6580414176 +0.9057539105 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.6769370437 +0.8622949719 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.6873295903 +0.9199252725 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.8233777881 +0.8641844988 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.8347151875 +0.9898374081 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.8649480939 +0.8953615427 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.9329721928 +0.8878034949 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.9773768187 +0.9888926744 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.9414752126 +0.8670187593 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.0520143509 +0.6818460822 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.7411820292 +0.5656407475 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-0.1355925202 +0.3705576658 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.2366874963 +0.5277653337 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.2395897508 +0.6414385438 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-0.1022166684 +0.3884551525 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.0538458712 +0.3633019328 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-0.1617127508 +0.3434695899 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.1128582433 +0.3125117719 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.0717430636 +0.3139629066 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.0335301347 +0.3091257513 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-0.3011499643 +0.5091089606 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.2511987388 +0.3154140711 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.1481689364 +0.2641401887 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.0712593570 +0.2559170127 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-0.3058553636 +0.4999460578 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.3015043736 +0.2694610655 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.0857705995 +0.2467264086 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-0.2728795111 +0.2023335695 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.3197393119 +0.2325648665 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.3409018219 +0.2370995581 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.3779361844 +0.3527342677 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.3764245808 +0.4570322335 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.3348553777 +0.4880192876 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.3333437741 +0.5122043490 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.3091580570 +0.5220295191 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-0.2139268368 +0.1857063621 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.1799156964 +0.1804158837 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.1595090032 +0.1743696332 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.1338116825 +0.1947757453 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.0967773199 +0.2106471807 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-0.0622780323 +0.5545644760 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0354655683 +0.5209181905 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +1.2316676378 +1.1513860226 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.0863982439 +1.1572912931 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.9364045858 +1.0462731123 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.9375856519 +0.8325039148 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.8631793261 +0.8643921614 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.8371961713 +0.9884018898 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.8938866854 +1.1667397022 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.8147562146 +1.0545403957 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.8360151052 +0.9021855593 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.7875919938 +0.8289607763 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.8454635739 +0.6565282345 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.8088509440 +0.6388125420 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.6659435630 +0.8927372098 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.7852298617 +1.1667397022 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.7415309548 +0.9458842278 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.8005835414 +0.7037700415 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +0.8005835414 +0.6518040895 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.6482278109 +0.9588757157 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.6210635900 +1.2541369200 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +0.6848404408 +0.8006157279 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.6068909764 +0.9092718363 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.5844509602 +1.0096607208 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.6683056951 +0.8785647154 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +0.8395583034 +0.7935294509 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.8478256464 +0.7262098789 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.9328614473 +0.6777870655 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.9304993153 +0.6801491380 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.8927056193 +0.7238478065 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.8891624808 +0.7888052464 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +0.5998046398 +0.8419523239 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.6553141475 +0.8077020049 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.7084614635 +0.7143994570 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.7970404029 +0.6340883970 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.7734193802 +0.6140106320 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.5856320262 +0.7557359934 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.6458656788 +0.6907785535 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +0.5490193963 +0.6636145115 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.6482278109 +0.6352694631 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.7167288661 +0.6329073310 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.7710572481 +0.5974760056 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.7545225024 +0.5844845176 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.5230362415 +0.5903897285 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + +0.078363 +0.237805 +0.005230 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +0.9749514461 +0.8082414865 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.0972249508 +1.0919437408 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.3856059313 +1.0412002802 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.1895068884 +0.8197740912 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +0.6558156610 +1.3309769630 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.5886600018 +1.3400832415 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.6319128275 +1.2205634117 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.6068717241 +1.1465749741 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.5567895174 +1.1579577923 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.5021544099 +1.1215326786 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.4782515168 +1.1363303661 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.5215043426 +1.1682024002 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.4873573780 +1.1693406105 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.4930485189 +1.1943829060 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.5431307554 +1.1955211163 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.5283337235 +1.2512971163 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.6137011051 +1.4083802700 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.1554994583 +1.1966594458 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.2089964151 +1.1682024002 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.2055816650 +1.1226710081 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.1429789066 +1.1625108719 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.0780997276 +1.1545429230 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.0371233225 +1.0691716671 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.2021670341 +1.1090116501 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.1725729704 +1.0498207808 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.9881793857 +1.0008746386 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.9688294530 +0.9712792635 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.9426501393 +0.8824931383 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.8606974483 +1.1101498604 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.8948444128 +0.9268862009 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.7946799994 +0.9371307492 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.7423213124 +0.9906300902 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.7878506184 +1.1135647297 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.7480124831 +1.0964905024 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.7241095901 +0.9132267833 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.6694744825 +0.9553433061 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.6341893077 +1.0008746386 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.5476836562 +0.9963214993 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.5283337235 +1.0668951273 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.6273598671 +1.1329154968 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.7320772409 +1.2399141788 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.6945155859 +1.2569885254 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.6444333792 +1.2934135199 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +0.9749514461 +0.8082414865 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.0972249508 +1.0919437408 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.3856059313 +1.0412002802 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.1895068884 +0.8197740912 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + +0.078363 +0.237805 +0.005230 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +0.0781662017 +0.5430018902 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.0328527167 +0.6740978956 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.0340337716 +0.7591331005 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.0552927144 +0.8571598530 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.0576548167 +0.9421950579 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.0718274489 +1.0768342018 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0380104221 +1.2717065811 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.1265893579 +1.2906032801 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.2777640522 +1.1512399912 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.3403598368 +1.1854903698 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.3876019120 +1.2646203041 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.5517681837 +1.3520176411 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.5257850289 +1.2516288757 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.5907429457 +1.0272302628 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.5175176859 +0.9185741544 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.4631892741 +0.7461416125 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.3580756187 +0.4166300893 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +0.6558156610 +1.3309769630 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.5886600018 +1.3400832415 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.6319128275 +1.2205634117 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.6137011051 +1.1442984343 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.5567895174 +1.1579577923 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.5021544099 +1.1215326786 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.4782515168 +1.1363303661 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.5215043426 +1.1682024002 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.4873573780 +1.1693406105 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.4930485189 +1.1943829060 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.5431307554 +1.1955211163 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.5283337235 +1.2512971163 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.6137011051 +1.4083802700 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.1554994583 +1.1966594458 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.2089964151 +1.1682024002 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.2055816650 +1.1226710081 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.1429789066 +1.1625108719 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.0780997276 +1.1545429230 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.0485056639 +1.0657567978 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.2021670341 +1.1090116501 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.1725729704 +1.0498207808 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.9881793857 +1.0008746386 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.9688294530 +0.9712792635 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.9426501393 +0.8824931383 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.8606974483 +1.1101498604 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.8948444128 +0.9268862009 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.7946799994 +0.9371307492 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.7423213124 +0.9906300902 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.7878506184 +1.1135647297 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.7480124831 +1.0964905024 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.7241095901 +0.9132267833 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.6694744825 +0.9553433061 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.6341893077 +1.0008746386 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.5476836562 +0.9963214993 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.5283337235 +1.0668951273 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.6273598671 +1.1329154968 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.7320772409 +1.2399141788 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.7058978677 +1.2330845594 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.6444333792 +1.2934135199 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +0.6172870398 +1.4099521637 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.5826454163 +1.3614572287 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.5507751703 +1.2824796438 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.4704066515 +1.3683850765 + + + + + + + + + + + + + +-0.1247097626 +0.1247013733 + + + + + + + + + + + + + + + + + + +0.4385363758 +1.3295891285 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.4468503594 +1.2866363525 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.4205227494 +1.2519971132 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.3706388474 +1.2076588869 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.3165979385 +1.1910320520 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.2362294346 +1.2076588869 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.2140588015 +1.2173578739 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.2126731426 +1.2492259741 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.1517039239 +1.2713950872 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.1267619729 +1.2533826828 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.1766458750 +1.2312135696 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0741067380 +1.0801863670 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0519361123 +1.0303057432 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0145231858 +1.1494648457 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0547074415 +1.2769373655 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.1780315340 +1.3517582417 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.1946595013 +1.3739273548 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.2597857118 +1.3185044527 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.2625570297 +1.2658528090 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.3678674996 +1.2686239481 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.4232940674 +1.3614572287 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.4814919531 +1.4362779856 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.6006590724 +1.4501336813 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +0.0781662017 +0.5430018902 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.0328527167 +0.6740978956 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.0340337716 +0.7591331005 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.0552927144 +0.8571598530 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.0576548167 +0.9421950579 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.0718274489 +1.0768342018 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0380104221 +1.2717065811 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.1265893579 +1.2906032801 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.2777640522 +1.1512399912 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.3403598368 +1.1854903698 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.3876019120 +1.2646203041 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.5517681837 +1.3520176411 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.5257850289 +1.2516288757 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.5907429457 +1.0272302628 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.5175176859 +0.9185741544 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.4631892741 +0.7461416125 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.3580756187 +0.4166300893 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.538335 +0.513622 +0.000203 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +0.1999449432 +0.4817334414 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.2084479481 +0.5365294814 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.2925333083 +0.4911810458 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.3218214512 +0.5214133263 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.3189871311 +0.5573141575 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.2216748595 +0.5932149887 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.2500182390 +0.7122545838 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.3596126437 +0.6669061780 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.3785082102 +0.6933594346 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.3775634468 +0.7254812121 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.2670242786 +0.7746086717 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.2868646383 +0.8426312804 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.3426066041 +0.9021511078 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.4210232794 +0.8653055429 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.4559801221 +0.8870349526 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.4474771023 +0.9361624122 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.3482752740 +0.9730080366 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.2500182390 +0.8142885566 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.1763254553 +0.5006286502 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.538335 +0.513622 +0.000203 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +0.3728395402 +1.1090532541 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.4748757184 +1.0816552639 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.5013295412 +1.1109428406 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.4956608415 +1.1525121927 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.3879560232 +1.1780207157 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +0.3991719186 +1.1381645203 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.4067301452 +1.1532807350 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.4671960175 +1.1088770628 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.5238828063 +1.2590936422 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.3868897855 +1.2590936422 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.3670494258 +1.2184690237 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +0.3728395402 +1.1090532541 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.4748757184 +1.0816552639 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.5013295412 +1.1109428406 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.4956608415 +1.1525121927 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.3879560232 +1.1780207157 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +0.1999449432 +0.4817334414 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.2084479481 +0.5365294814 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.2925333083 +0.4911810458 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.3218214512 +0.5214133263 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.3189871311 +0.5573141575 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.2216748595 +0.5932149887 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.2500182390 +0.7122545838 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.3596126437 +0.6669061780 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.3785082102 +0.6933594346 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.3775634468 +0.7254812121 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.2670242786 +0.7746086717 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.2868646383 +0.8426312804 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.3426066041 +0.9021511078 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.4210232794 +0.8653055429 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.4559801221 +0.8870349526 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.4474771023 +0.9361624122 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.3482752740 +0.9730080366 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.2500182390 +0.8142885566 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.1763254553 +0.5006286502 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +0.2915885150 +0.5242475867 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.1961658150 +0.5780988336 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +0.3463857174 +0.7018622160 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.2386808842 +0.7528792024 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +0.4248023927 +0.9078196883 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.3161527812 +0.9578918815 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +0.4701518118 +1.1175560951 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.3596126437 +1.1544016600 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.538335 +0.513622 +0.000203 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +0.0960192233 +0.5837674141 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0582280494 +0.6054968238 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0478354767 +0.6489557624 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0931848809 +0.6225025058 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +0.0713354126 +0.8972910047 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0519361123 +0.8030721545 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0380794741 +0.7213234901 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.0339750536 +0.6728284955 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0380794741 +0.5633684397 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.3110552728 +0.4054133594 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.3318402469 +0.3319781125 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.1766458750 +0.3596895337 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.3290689290 +0.3014955521 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.3415398896 +0.2183613032 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.3720245063 +0.2128190249 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.3484682143 +0.3707740903 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.3734101653 +0.4358959198 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.4149800837 +0.4026422203 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.4537786841 +0.4026422203 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.4995055795 +0.4497516155 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.5202905536 +0.4677640498 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.3817241490 +0.5744529963 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.2667140365 +0.6894553900 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.2708710134 +0.7046966553 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.2694853544 +0.7254801989 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.3221406043 +0.7185523510 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.2625570297 +0.7393358946 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.2902703285 +0.7670473456 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.3553965390 +0.8390970230 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.3637105227 +0.8931342959 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.3955807984 +0.9236168265 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.3928094506 +0.9540994167 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.4191370904 +1.0164500475 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.1267619729 +1.0081366301 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +0.0960192233 +0.5837674141 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0582280494 +0.6054968238 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0478354767 +0.6489557624 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0931848809 +0.6225025058 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.538335 +0.513622 +0.000203 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +0.0260975920 +0.7620147467 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0045340066 +0.7999008298 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0242159963 +0.8482998610 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0440563597 +0.8010619283 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +0.0260975920 +0.7620147467 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0045340066 +0.7999008298 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0242159963 +0.8482998610 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0440563597 +0.8010619283 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.538335 +0.513622 +0.000203 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +0.0192836765 +0.9663615227 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0012916412 +1.0060683489 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0253365412 +1.0524545908 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0407535397 +1.0035938025 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +0.0192836765 +0.9663615227 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0012916412 +1.0060683489 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0253365412 +1.0524545908 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0407535397 +1.0035938025 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.538335 +0.513622 +0.000203 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +0.0497043096 +1.1420122385 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0415572114 +1.1861540079 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0785498992 +1.2179950476 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0820853859 +1.1747833490 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +0.0497043096 +1.1420122385 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0415572114 +1.1861540079 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0785498992 +1.2179950476 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0820853859 +1.1747833490 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + +1.000000 +0.956527 +0.893289 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +0.0514988899 +1.1966948509 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.1356523633 +1.2542619705 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.1961838007 +1.2070274353 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.1348567158 +1.0402218103 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0651746318 +0.7201586366 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.1584777683 +0.5300104022 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.1773746014 +0.4804065228 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.3822072446 +1.2291686535 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.4073056579 +1.2365490198 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.4752189815 +1.1568406820 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.6509078145 +1.4520567656 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.5519905686 +1.5480018854 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.4667324424 +1.5587005615 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.4856292605 +1.4842946529 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.4017745554 +1.4169751406 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.3482505977 +1.2173600197 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.2522861063 +1.1981709003 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.2654183209 +1.3612025976 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.2328840643 +1.4429581165 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.2906719148 +1.5553823709 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.1194122136 +1.3944895267 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +0.0713354126 +0.8972910047 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0519361123 +0.8030721545 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0380794741 +0.7213234901 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.0339750536 +0.6728284955 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0380794741 +0.5633684397 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.3110552728 +0.4054133594 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.3318402469 +0.3319781125 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.1766458750 +0.3596895337 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.3290689290 +0.3014955521 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.3415398896 +0.2183613032 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.3720245063 +0.2128190249 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.3484682143 +0.3707740903 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.3734101653 +0.4358959198 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.4149800837 +0.4026422203 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.4537786841 +0.4026422203 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.4995055795 +0.4497516155 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.5202905536 +0.4677640498 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.3817241490 +0.5744529963 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.2667140365 +0.6894553900 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.2708710134 +0.7046966553 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.2694853544 +0.7254801989 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.3221406043 +0.7185523510 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.2625570297 +0.7393358946 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.2902703285 +0.7670473456 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.3553965390 +0.8390970230 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.3637105227 +0.8931342959 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.3955807984 +0.9236168265 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.3928094506 +0.9540994167 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.4191370904 +1.0164500475 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.1267619729 +1.0081366301 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +0.6172870398 +1.4099521637 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.5826454163 +1.3614572287 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.5507751703 +1.2824796438 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.4704066515 +1.3683850765 + + + + + + + + + + + + + +-0.1247097626 +0.1247013733 + + + + + + + + + + + + + + + + + + +0.4385363758 +1.3295891285 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.4468503594 +1.2866363525 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.4205227494 +1.2519971132 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.3706388474 +1.2076588869 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.3165979385 +1.1910320520 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.2362294346 +1.2076588869 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.2140588015 +1.2173578739 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.2126731426 +1.2492259741 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.1517039239 +1.2713950872 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.1267619729 +1.2533826828 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.1766458750 +1.2312135696 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0741067380 +1.0801863670 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0519361123 +1.0303057432 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0145231858 +1.1494648457 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0547074415 +1.2769373655 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.1780315340 +1.3517582417 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.1946595013 +1.3739273548 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.2597857118 +1.3185044527 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.2625570297 +1.2658528090 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.3678674996 +1.2686239481 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.4232940674 +1.3614572287 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.4814919531 +1.4362779856 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.6006590724 +1.4501336813 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +0.0514988899 +1.1966948509 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.1356523633 +1.2542619705 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.1961838007 +1.2070274353 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.1348567158 +1.0402218103 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0651746318 +0.7201586366 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.1584777683 +0.5300104022 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.1773746014 +0.4804065228 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.3822072446 +1.2291686535 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.4073056579 +1.2365490198 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.4752189815 +1.1568406820 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.6509078145 +1.4520567656 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.5519905686 +1.5480018854 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.4667324424 +1.5587005615 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.4856292605 +1.4842946529 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.4017745554 +1.4169751406 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.3482505977 +1.2173600197 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.2522861063 +1.1981709003 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.2654183209 +1.3612025976 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.2328840643 +1.4429581165 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.2906719148 +1.5553823709 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.1194122136 +1.3944895267 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + +0.867634 +1.000000 +0.865107 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +0.1638704985 +1.0868264437 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0502609015 +0.8631648421 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0998384431 +0.8825138807 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.1216041967 +0.8238621354 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.1590896547 +0.8456298113 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.1948744208 +0.8093233705 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.2334559858 +0.8389785886 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.2945210040 +0.8160015941 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.3395593166 +1.0366396904 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +0.0796493962 +1.0025943518 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.1018200219 +1.0053654909 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.1239906400 +0.9762685299 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.1475469321 +0.9748829603 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.1655605584 +0.9430148005 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.2043591589 +0.9804252386 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.2320724279 +0.9360869527 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.2293011099 +0.8820497394 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.2417720854 +0.9069899917 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.2777993381 +0.9430148005 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.3165979385 +0.9679551125 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.3498538733 +0.9097611308 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.3914237916 +0.9734973907 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.3235262632 +1.0566316843 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.1406186074 +1.0774152279 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0616357625 +1.0621739626 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +0.1638704985 +1.0868264437 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0502609015 +0.8631648421 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0998384431 +0.8825138807 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.1216041967 +0.8238621354 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.1590896547 +0.8456298113 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.1948744208 +0.8093233705 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.2334559858 +0.8389785886 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.2945210040 +0.8160015941 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.3395593166 +1.0366396904 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.867634 +1.000000 +0.865107 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +0.2605847716 +1.2406197786 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.2217209786 +1.2539130449 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0762249753 +1.1008621454 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.1197903827 +1.0512133837 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.1518344134 +0.9871196151 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.2104810178 +1.0330736637 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.2582447529 +0.9798637629 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.3187051713 +1.0173524618 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.3700965345 +0.9744218588 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.4233016968 +1.0639111996 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.3594133854 +1.2392836809 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.3237571418 +1.2236808538 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.2957972884 +1.2464241982 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.2605847716 +1.2406197786 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +0.5008912683 +1.4057954550 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.4385363758 +1.3295891285 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.4468503594 +1.2866363525 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.4205227494 +1.2519971132 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.3706388474 +1.2076588869 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.3165979385 +1.1910320520 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.2362294346 +1.2076588869 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.2140588015 +1.2173578739 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.2126731426 +1.2492259741 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.1517039239 +1.2713950872 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.1267619729 +1.2533826828 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.1766458750 +1.2312135696 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0741067380 +1.0801863670 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0519361123 +1.0303057432 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0145231858 +1.1494648457 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0547074415 +1.2769373655 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.1780315340 +1.3517582417 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.1946595013 +1.3739273548 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.2597857118 +1.3185044527 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.2625570297 +1.2658528090 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.3678674996 +1.2686239481 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.4232940674 +1.3614572287 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.4814919531 +1.4362779856 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.5064339042 +1.4224222898 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +0.2598108649 +1.2402327061 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.2095072865 +1.0734503269 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +0.2482023537 +1.2297847271 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.1290215552 +1.0982161760 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +0.1387328357 +0.9931881428 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.1000381634 +0.8807218671 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +0.1586847752 +0.8523029685 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.1772727668 +0.9638947248 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +0.2336556911 +0.8383958340 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.2322917432 +0.9282199144 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +0.2234375030 +1.1856704950 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.1928684115 +1.0893158913 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +0.3221099079 +1.2170147896 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.3178534508 +1.0602934361 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +0.2812646925 +0.9826391339 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.2347101569 +0.8381259441 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +0.2605847716 +1.2406197786 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.2217209786 +1.2539130449 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0762249753 +1.1008621454 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.1197903827 +1.0512133837 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.1518344134 +0.9871196151 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.2104810178 +1.0330736637 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.2582447529 +0.9798637629 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.3187051713 +1.0173524618 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.3700965345 +0.9744218588 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.4233016968 +1.0639111996 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.3594133854 +1.2392836809 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.3237571418 +1.2236808538 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.2957972884 +1.2464241982 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.2605847716 +1.2406197786 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + +0.672665 +0.641774 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +0.3209263384 +0.0890989527 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0233208723 +0.2005804926 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.0002986087 +0.2799402177 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.0021881673 +0.3432390690 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.0021881673 +0.3781951368 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0063148462 +0.3895322382 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0030298545 +0.4551910162 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0490908958 +0.4752687812 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0364981256 +0.5771540999 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.1186939254 +0.5270818472 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.3124655783 +0.4303890765 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.3487065136 +0.4720282257 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.3986823857 +0.4398374259 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.4171967804 +0.4542277753 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.4447434545 +0.4327511489 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.4943476319 +0.4658204317 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.8415770531 +0.1741023213 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.8545686007 +-0.3113071322 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.6337118149 +-1.6399827003 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.5285981297 +-1.3884201050 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.4955286980 +-1.2797639370 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.4990718365 +-1.2089012861 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.4896234274 +-1.1545732021 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.4848992229 +-1.2431515455 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.4648213387 +-1.3423593044 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.4766318500 +-1.4911710024 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.4482865930 +-1.5549473763 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.4187602997 +-1.4427481890 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.3986823857 +-1.4581017494 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.3963202834 +-1.3518077135 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.4259155393 +-1.3197593689 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.4045876563 +-1.2892123461 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.4183574915 +-1.2230192423 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.4057687223 +-1.1427627802 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.4070204496 +-1.2207518816 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.3786045015 +-1.2903933525 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.3888811767 +-1.3235383034 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.3684744835 +-1.3681294918 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.3538024127 +-1.4510154724 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.3775441051 +-1.5094608068 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.3467161059 +-1.5266023874 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.3616722524 +-1.5827716589 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.2876634896 +-1.5100677013 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.3112845123 +-1.4179462194 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.3478971422 +-1.3671612740 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.3185914457 +-1.3492349386 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.2687666416 +-1.3884201050 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.2581371665 +-1.2703156471 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.2888445258 +-1.2242548466 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.2817582190 +-1.1840993166 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.3301813602 +-1.1179608107 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.3089224100 +-1.0730811357 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.3136466146 +-1.0010373592 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.2959308326 +-1.0837105513 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.3042311966 +-1.1293022633 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.2785338759 +-1.1648240089 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.2120761275 +-1.2006340027 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.1872740239 +-1.2549619675 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.1482992917 +-1.2077202797 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.1742330045 +-1.0363409519 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.2913825214 +-0.6418226361 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.2864824235 +-0.1388745755 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +0.4326932728 +-0.2741059959 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.2678094804 +-0.6873218417 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.1553318053 +-0.9209038019 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.1553318053 +-1.3649978638 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.2237381190 +-1.7587872744 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.5240030289 +-1.6823621988 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.9034318328 +-0.8291878700 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +0.6672115922 +-0.1664278954 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.7177336216 +-0.0582834184 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.8046533465 +-0.1508697867 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.7933159471 +-0.2576275170 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.6534886360 +-0.2170028985 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.6393169761 +-0.0450567976 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.6487647295 +-0.0365539677 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +0.0063148462 +0.3970903158 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.0059672841 +0.3980350792 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.1357496083 +0.2525422275 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.1914915890 +0.2053042799 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0091491835 +0.3158410490 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0044252877 +0.2837192714 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.3180920184 +0.1410606802 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.3313189149 +0.1845195889 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.1518108547 +0.2591555417 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0469403528 +0.3460733294 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +0.0516642518 +0.4726710021 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0904002041 +0.3999245763 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.3029755354 +0.3016696870 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +0.0713354126 +0.8972910047 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0519361123 +0.8030721545 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0380794741 +0.7213234901 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.0339750536 +0.6728284955 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0380830728 +0.5672129393 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.2994017303 +0.4048441350 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.3067836165 +0.3502291739 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0395594500 +0.5037415028 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.3379323781 +0.2780507207 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.3415398896 +0.2183613032 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.3720245063 +0.2128190249 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.3484682143 +0.3707740903 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.3734101653 +0.4358959198 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.4149800837 +0.4026422203 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.4537786841 +0.4026422203 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.4995055795 +0.4497516155 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.5202905536 +0.4677640498 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.3817241490 +0.5744529963 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.2667140365 +0.6894553900 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.2708710134 +0.7046966553 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.2694853544 +0.7254801989 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.3221406043 +0.7185523510 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.2625570297 +0.7393358946 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.2902703285 +0.7670473456 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.3553965390 +0.8390970230 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.3637105227 +0.8931342959 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.3955807984 +0.9236168265 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.3928094506 +0.9540994167 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.4191370904 +1.0164500475 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.1267619729 +1.0081366301 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +0.3209263384 +0.0890989527 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0233208723 +0.2005804926 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.0002986087 +0.2799402177 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.0021881673 +0.3432390690 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.0021881673 +0.3781951368 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0063148462 +0.3895322382 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0030298545 +0.4551910162 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0490908958 +0.4752687812 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0364981256 +0.5771540999 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.1186939254 +0.5270818472 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.3124655783 +0.4303890765 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.3487065136 +0.4720282257 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.3986823857 +0.4398374259 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.4171967804 +0.4542277753 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.4447434545 +0.4327511489 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.4943476319 +0.4658204317 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.8415770531 +0.1741023213 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.8545686007 +-0.3113071322 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.6337118149 +-1.6399827003 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.5285981297 +-1.3884201050 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.4955286980 +-1.2797639370 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.4990718365 +-1.2089012861 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.4896234274 +-1.1545732021 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.4848992229 +-1.2431515455 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.4648213387 +-1.3423593044 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.4766318500 +-1.4911710024 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.4482865930 +-1.5549473763 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.4187602997 +-1.4427481890 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.3986823857 +-1.4581017494 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.3963202834 +-1.3518077135 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.4259155393 +-1.3197593689 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.4045876563 +-1.2892123461 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.4183574915 +-1.2230192423 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.4057687223 +-1.1427627802 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.4070204496 +-1.2207518816 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.3786045015 +-1.2903933525 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.3888811767 +-1.3235383034 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.3684744835 +-1.3681294918 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.3538024127 +-1.4510154724 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.3775441051 +-1.5094608068 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.3467161059 +-1.5266023874 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.3616722524 +-1.5827716589 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.2876634896 +-1.5100677013 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.3112845123 +-1.4179462194 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.3478971422 +-1.3671612740 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.3185914457 +-1.3492349386 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.2687666416 +-1.3884201050 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.2581371665 +-1.2703156471 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.2888445258 +-1.2242548466 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.2817582190 +-1.1840993166 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.3301813602 +-1.1179608107 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.3089224100 +-1.0730811357 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.3136466146 +-1.0010373592 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.2959308326 +-1.0837105513 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.3042311966 +-1.1293022633 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.2785338759 +-1.1648240089 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.2120761275 +-1.2006340027 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.1872740239 +-1.2549619675 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.1482992917 +-1.2077202797 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.1742330045 +-1.0363409519 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.2913825214 +-0.6418226361 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.2864824235 +-0.1388745755 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-0.0012433879 +0.3441838324 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.1236644089 +0.2366323173 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.4151462317 +0.1497776955 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.1384319514 +0.2687311471 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0034805085 +0.3942560256 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +0.3126010895 +0.4412601292 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.3263562918 +0.4195778966 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.3823887706 +0.1420198530 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.4539379478 +0.2463196218 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.4004915655 +0.4350935817 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +0.4470416307 +0.4281977117 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.4685925841 +0.2394237667 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +0.6375520825 +-0.0398582444 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.6453104019 +-0.1777752936 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.7185836434 +-0.2441478670 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.7134114504 +-0.0881292075 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.7435827851 +-0.1424340457 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.7358244658 +-0.2682833374 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +0.0457380377 +0.4855651557 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.1215955690 +0.3952322006 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.3595123589 +0.2980035841 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +0.1809023619 +0.3359296322 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0809083432 +0.4110921621 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0478068776 +0.4807381928 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + +0.253228 +0.525486 +0.014688 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +0.0714674369 +2.1508564949 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.2016339451 +2.1194877625 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.5227125883 +1.9386565685 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.2311584204 +2.1822252274 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0567051992 +2.2412722111 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.1222869232 +2.2892479897 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.3418751955 +2.2671053410 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.1207854450 +2.3639180660 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.4212222397 +2.3169262409 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.1657661349 +2.4190838337 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.5559276342 +2.4479367733 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.3178865612 +2.4793052673 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.8150795102 +2.4022269249 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.5034551024 +2.6236329079 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.1156871244 +2.6335043907 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0659315959 +2.5734114647 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.1093699709 +2.7616236210 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.1914106160 +2.5734114647 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.2242491394 +2.3776354790 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.2320067734 +2.4774601460 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.2541501224 +2.3187713623 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.3814744055 +2.7394809723 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.2853141725 +2.3353095055 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.3705633581 +2.3770308495 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.4691138566 +2.4000079632 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.5512401462 +2.4497818947 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.4582309723 +2.3558678627 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.3530298471 +2.3407514095 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.2818293273 +2.2855575085 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.365302 +0.310323 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +0.0316068269 +2.3300514221 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.1359898299 +2.3481130600 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.2551857233 +2.3011529446 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.1331002265 +2.3314964771 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0489444137 +2.3192145824 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.365302 +0.310323 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +0.1869226992 +2.2924833298 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0359412245 +2.5417330265 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.4617919624 +2.5113894939 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.0861442760 +2.5265612602 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.1760867089 +2.2924833298 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +0.0812838078 +2.2000806332 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.2125151455 +2.1469419003 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.4812156856 +1.9506231546 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.3084796071 +1.8797713518 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0930948257 +2.1336572170 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +0.0965836719 +2.2483224869 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0021082505 +2.2528572083 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.1210877001 +2.2868673801 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.3387590647 +2.2672171593 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.1301573366 +2.3087852001 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0822234079 +2.2974483967 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.1256225258 +2.4130830765 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.3107943535 +2.4161062241 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.5345121622 +2.4478490353 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.2966686189 +2.4583947659 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.0727162808 +2.5090675354 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.1646059752 +2.2929136753 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.1948381066 +2.2929136753 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.1555363387 +2.4576742649 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0746653751 +2.5672626495 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.1842568666 +2.4682552814 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.2039077580 +2.2853558064 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.2197796255 +2.2861115932 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.2185866535 +2.4152309895 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.2269004881 +2.4295909405 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.2333840877 +2.2770421505 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.2613488138 +2.2974483967 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.3671612740 +2.6488871574 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.3323943317 +2.4697668552 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.2712836564 +2.2988393307 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.3089644313 +2.3367490768 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.4140210748 +2.3601782322 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.5341938138 +2.4319775105 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.5221009851 +2.3624455929 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.3271037042 +2.2362298965 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.1283274144 +2.1719884872 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +0.0714674369 +2.1508564949 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.2016339451 +2.1194877625 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.5227125883 +1.9386565685 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.2311584204 +2.1822252274 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0567051992 +2.2412722111 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.1222869232 +2.2892479897 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.3418751955 +2.2671053410 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.1207854450 +2.3639180660 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.4212222397 +2.3169262409 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.1657661349 +2.4190838337 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.5559276342 +2.4479367733 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.3178865612 +2.4793052673 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.8150795102 +2.4022269249 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.5034551024 +2.6236329079 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.1156871244 +2.6335043907 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0659315959 +2.5734114647 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.1093699709 +2.7616236210 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.1914106160 +2.5734114647 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.2242491394 +2.3776354790 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.2320067734 +2.4774601460 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.2541501224 +2.3187713623 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.3814744055 +2.7394809723 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.2853141725 +2.3353095055 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.3705633581 +2.3770308495 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.4691138566 +2.4000079632 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.5512401462 +2.4497818947 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.4582309723 +2.3558678627 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.3530298471 +2.3407514095 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.2818293273 +2.2855575085 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +0.1202431992 +2.2697122097 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.0520413592 +2.3842868805 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.1725556701 +2.4190838337 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.2952071428 +2.4149510860 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.0325214341 +2.4173862934 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +0.1957768202 +2.2926270962 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.1558882743 +2.4598214626 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0494979508 +2.5815703869 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.1762568951 +2.4835851192 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.2051124424 +2.2943243980 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + +0.856416 +0.798789 +0.690076 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +0.4766236842 +1.7032179832 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.4867047369 +1.5444437265 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.5177879930 +1.4814380407 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.4455403984 +1.3697080612 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.4455403984 +1.3310645819 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.3741329014 +1.2714192867 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.2758425474 +1.2680590153 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.2598808706 +1.3159432411 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.1800724715 +1.3949103355 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.2245971560 +1.4469950199 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.3396892548 +1.4184324741 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.4060562551 +1.4805979729 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.3934549093 +1.5167212486 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.4371395111 +1.5335227251 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.3875743151 +1.6813759804 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +0.5100594759 +1.6633743048 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.4805890918 +1.6915076971 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.4417417943 +1.6673933268 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.4480324686 +1.5861278772 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.2882338464 +1.5950433016 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.1414660215 +1.5374357700 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.1352935433 +1.5580098629 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.1332360506 +1.5936716795 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.1318643838 +1.6046445370 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0955153406 +1.6094452143 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0262464117 +1.4571965933 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0721970871 +1.4811997414 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.1229485869 +1.5038312674 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.1688992679 +1.4523960352 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.2079916298 +1.4606256485 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.2285665572 +1.4174200296 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.1887883544 +1.3680421114 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.2244515717 +1.2905461788 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.2874989808 +1.2616961002 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.2944273055 +1.3476015329 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.2930416465 +1.4030243158 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.3451578319 +1.4201631546 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.4075684547 +1.4825713634 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.4246130586 +1.4842299223 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.4260176420 +1.4923062325 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.4326893687 +1.4982756376 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.4312847853 +1.5021382570 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.4260176420 +1.5007336140 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.4203993082 +1.4954664707 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.4060024023 +1.5102145672 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.3947657943 +1.5158329010 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.3810711801 +1.5291763544 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.4439259768 +1.5333901644 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.4656969011 +1.5189931393 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.4853609800 +1.5920312405 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +0.4766236842 +1.7032179832 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.4867047369 +1.5444437265 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.5177879930 +1.4814380407 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.4455403984 +1.3697080612 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.4455403984 +1.3310645819 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.3741329014 +1.2714192867 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.2758425474 +1.2680590153 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.2598808706 +1.3159432411 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.1800724715 +1.3949103355 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.2245971560 +1.4469950199 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.3396892548 +1.4184324741 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.4060562551 +1.4805979729 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.3934549093 +1.5167212486 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.4371395111 +1.5335227251 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.3875743151 +1.6813759804 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.249453 +0.258778 +0.312292 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +0.6286719441 +1.9478390217 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.5760070086 +1.9607782364 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.5882595778 +1.9199013710 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +0.7029077411 +1.9783056974 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.6233227849 +1.9511725903 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.5790084600 +1.9593125582 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.5808172226 +1.9276573658 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.5726778507 +1.9276573658 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.5600165725 +1.8914799690 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.5518772006 +1.8498760462 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.5582078099 +1.8146032095 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.5627297163 +1.8082721233 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.5889524221 +1.8414255381 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.6097886562 +1.8270713091 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.6755387187 +1.8608732224 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.6611848474 +1.8608732224 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.6329401135 +1.8567059040 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.6417376399 +1.8858773708 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.6232165098 +1.9127337933 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.5857111812 +1.9247727394 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.5824699998 +1.9382009506 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.6033062935 +1.9391269684 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.6574805975 +1.9275510311 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +0.6176044941 +1.8871265650 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.5880982876 +1.9006706476 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.5817798972 +1.9381692410 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.6232923269 +1.9292769432 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +0.5860911012 +1.9175878763 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.6094610691 +1.9354591370 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.6374133825 +1.8988002539 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.6268739700 +1.8557262421 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.6080863476 +1.8630579710 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.6429122090 +1.9033826590 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +0.6090667844 +1.9367716312 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.5875643492 +1.9405661821 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.5768131614 +1.9225422144 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + +0.540485 +0.515772 +0.002353 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +0.5673267841 +1.8826996088 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.6255097985 +1.8232519627 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.6669335961 +1.8438056707 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.6378420591 +1.8599324226 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.6217020154 +1.8541344404 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.5839727521 +1.8991200924 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.113298 +0.113298 +0.113298 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +0.5562086105 +2.0827403069 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.6083590388 +2.0668687820 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.7028344274 +1.9791980982 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.1767952889 +1.3526544571 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0135417618 +1.2551585436 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0241230093 +1.4471272230 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.4571983516 +2.0691361427 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.000000 +1.000000 +1.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +0.6209047437 +1.9542500973 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.6026439071 +1.9650715590 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.5796487331 +1.9643952847 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.5268951058 +1.9833328724 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.5106632710 +2.0320293903 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.5072816014 +2.0820789337 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.5492139459 +2.0814025402 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.5519192815 +2.0557014942 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.5126922131 +2.0617885590 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.5140448809 +2.0408220291 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.6905665398 +1.9948306084 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.7020640969 +1.9779220819 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.6858322620 +1.9785984755 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.6493105292 +1.9738640785 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.6324023008 +1.9643952847 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.000000 +1.000000 +1.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +0.1657358855 +1.4185868502 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0521127470 +1.4483458996 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0196489934 +1.4395533800 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0189726651 +1.4226448536 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0500837602 +1.4273792505 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.1427407265 +1.3895040751 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.1562672853 +1.3949147463 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.000000 +1.000000 +1.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +0.1150112674 +1.3746244907 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0527890734 +1.4016782045 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0189726651 +1.3955911398 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0189726651 +1.3800352812 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0412914939 +1.3807115555 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0751079023 +1.3550106287 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0940450951 +1.3644794226 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0554943867 +1.3881514072 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.1035136878 +1.3692138195 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +0.5100594759 +1.6633743048 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.4805890918 +1.6915076971 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.4417417943 +1.6673933268 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.4480324686 +1.5861278772 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.2882338464 +1.5950433016 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.1414660215 +1.5374357700 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.1352935433 +1.5580098629 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.1332360506 +1.5936716795 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.1318643838 +1.6046445370 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0955153406 +1.6094452143 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0393376909 +1.4807174206 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0721970871 +1.4811997414 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.1229485869 +1.5038312674 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.1544752568 +1.4515192509 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.2079916298 +1.4606256485 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.1745419800 +1.4348765612 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.1574099362 +1.3955181837 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0786951035 +1.3561596870 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0685084760 +1.3441207409 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0402637459 +1.3320816755 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0101669012 +1.2538279295 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.1887883544 +1.3680421114 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.2244515717 +1.2905461788 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.3177245855 +1.2500838041 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.3177245855 +1.3275796175 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.3115521073 +1.4016464949 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.3451578319 +1.4201631546 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.4075684547 +1.4825713634 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.4246130586 +1.4842299223 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.4260176420 +1.4923062325 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.4326893687 +1.4982756376 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.4312847853 +1.5021382570 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.4260176420 +1.5007336140 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.4203993082 +1.4954664707 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.4060024023 +1.5102145672 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.3947657943 +1.5158329010 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.3810711801 +1.5291763544 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.4439259768 +1.5333901644 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.4656969011 +1.5189931393 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.4853609800 +1.5920312405 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +0.6144464016 +1.9116966724 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.5849401951 +1.9252407551 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.5786217451 +1.9627393484 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.6201341748 +1.9538470507 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +0.5562086105 +2.0827403069 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.6083590388 +2.0668687820 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.7028344274 +1.9791980982 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.1767952889 +1.3526544571 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0135417618 +1.2551585436 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0241230093 +1.4471272230 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.4571983516 +2.0691361427 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.113298 +0.113298 +0.113298 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +0.6998112202 +2.2641279697 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.6990554333 +2.2951149940 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.7504500747 +2.3457524776 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.7889960408 +2.3578450680 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.8184723258 +2.3359272480 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.8192281723 +2.3094749451 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.7844612002 +2.2543027401 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.7580080628 +2.2535469532 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +0.6998112202 +2.2641279697 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.6990554333 +2.2951149940 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.7504500747 +2.3457524776 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.7889960408 +2.3578450680 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.8184723258 +2.3359272480 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.8192281723 +2.3094749451 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.7844612002 +2.2543027401 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.7580080628 +2.2535469532 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.035754 +0.012294 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +0.5622550249 +2.0404164791 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.5509179831 +2.0842518806 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.7073692679 +2.2822668552 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.7421362400 +2.2920918465 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.7625429034 +2.2406988144 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.6416143775 +2.0411722660 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.6136496663 +2.0615782738 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +0.5622550249 +2.0404164791 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.5509179831 +2.0842518806 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.7073692679 +2.2822668552 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.7421362400 +2.2920918465 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.7625429034 +2.2406988144 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.6416143775 +2.0411722660 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.6136496663 +2.0615782738 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +0.1601086706 +1.6147755384 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.1293454021 +1.5702202320 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.1208589822 +1.5511251688 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.1134333611 +1.5352125168 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.1007037312 +1.5224823952 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0879741088 +1.5023264885 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0529676303 +1.4514062405 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0508460253 +1.3930600882 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0423596054 +1.3782082796 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0402380005 +1.3325921297 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0678188652 +1.3432005644 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0773660839 +1.3559306860 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.1569262594 +1.3951816559 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.1707166880 +1.4312502146 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.1940543354 +1.4397369623 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.2173919827 +1.4747446775 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.2417904437 +1.5139957666 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.2587632835 +1.5267257690 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.2608848810 +1.5447601080 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.3064993918 +1.6009845734 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.5430582762 +1.8831678629 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.5653351545 +1.9054455757 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.5716999769 +1.9277231693 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.5812472105 +1.9266623259 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.5791255832 +1.9637917280 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.6217152476 +1.9516335726 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.6993608475 +1.9789589643 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +0.0514012054 +1.4488750696 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0231582038 +1.4407283068 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +0.1567693353 +1.3929338455 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.1752359122 +1.3560017347 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +0.0405385122 +1.3321045637 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0144680487 +1.2587834597 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.540485 +0.515772 +0.002353 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +0.5853508711 +1.9241231680 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.6419528127 +1.9383527040 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.6764199138 +1.8890237808 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.6353123784 +1.8229358196 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.6192834377 +1.8521995544 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.6429014802 +1.8823833466 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.6179206967 +1.9095774889 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.5938885808 +1.9152692556 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +0.6098054051 +1.9137102365 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.6299367547 +1.9067316055 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.6406880021 +1.8672052622 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.6078242064 +1.8604664803 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.5907264948 +1.8384301662 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.6375258565 +1.8257817030 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.6776847839 +1.8811185360 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.6267746687 +1.9421472549 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.5856670737 +1.9238070250 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +0.6223163009 +1.9111975431 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.6001814604 +1.9105650187 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.5742520690 +1.9488265514 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.6226325035 +1.9431347847 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +0.8159545064 +2.3373658657 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.7879189253 +2.2894308567 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.7671183348 +2.2749598026 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.6190492511 +2.0590543747 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.6432190537 +2.0361893177 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.7698314190 +2.2523491383 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.7861101627 +2.2541580200 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.8195720315 +2.3066151142 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +0.7029077411 +1.9783056974 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.6233227849 +1.9511725903 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.5790084600 +1.9593125582 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.5808172226 +1.9276573658 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.5726778507 +1.9276573658 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.5600165725 +1.8914799690 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.5518772006 +1.8498760462 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.5582078099 +1.8146032095 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.5627297163 +1.8082721233 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.5889524221 +1.8414255381 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.6097886562 +1.8270713091 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.6755387187 +1.8608732224 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.6611848474 +1.8608732224 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.6329401135 +1.8567059040 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.6417376399 +1.8858773708 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.6232165098 +1.9127337933 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.5857111812 +1.9247727394 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.5824699998 +1.9382009506 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.6033062935 +1.9391269684 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.6574805975 +1.9275510311 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + +0.856416 +0.798789 +0.690076 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +0.0390368551 +1.5849962234 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.1008659080 +1.6086513996 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.1352751106 +1.5968238115 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.1330166310 +1.5765551329 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.1456186920 +1.5314027071 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.2024805993 +1.5323097706 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.2033781856 +1.5555540323 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.2873919606 +1.5797052383 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.3895806968 +1.5855338573 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.3976600766 +1.5671045780 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.4480683506 +1.5839054585 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.4480683506 +1.6500589848 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.4395815730 +1.6672515869 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.4729155004 +1.6909067631 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.5509852767 +1.6773605347 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.5815195441 +1.7823016644 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.5524867773 +1.8349881172 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.5600138307 +1.8989645243 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.5110787153 +2.0448801517 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.5057117939 +2.1747620106 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.4228642285 +2.2737922668 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.3745266497 +2.2817478180 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.3363539279 +2.3027148247 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.1981273144 +2.2916431427 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.1865754277 +2.2863929272 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.1739559323 +2.2907803059 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0469024926 +2.1792871952 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.0464614518 +2.0736389160 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.1197154373 +1.9936685562 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.0948707834 +1.9325240850 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.0121866539 +1.7423325777 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.0323483013 +1.6845387220 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +0.0379551500 +1.5688445568 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0663474575 +1.6295058727 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.1360376775 +1.5946578979 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +0.5748279095 +1.6746790409 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.5270772576 +1.7146897316 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.4470625222 +1.6785510778 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.5696656704 +1.6282151937 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +0.5100594759 +1.6633743048 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.4805890918 +1.6915076971 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.4417417943 +1.6673933268 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.4480324686 +1.5861278772 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.2882338464 +1.5950433016 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.1414660215 +1.5374357700 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.1352935433 +1.5580098629 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.1332360506 +1.5936716795 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.1318643838 +1.6046445370 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0955153406 +1.6094452143 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0262464117 +1.4571965933 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0721970871 +1.4811997414 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.1229485869 +1.5038312674 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.1688992679 +1.4523960352 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.2079916298 +1.4606256485 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.2285665572 +1.4174200296 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.1887883544 +1.3680421114 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.2244515717 +1.2905461788 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.3177245855 +1.2500838041 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.3177245855 +1.3275796175 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.3115521073 +1.4016464949 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.3451578319 +1.4201631546 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.4075684547 +1.4825713634 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.4246130586 +1.4842299223 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.4260176420 +1.4923062325 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.4326893687 +1.4982756376 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.4312847853 +1.5021382570 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.4260176420 +1.5007336140 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.4203993082 +1.4954664707 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.4060024023 +1.5102145672 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.3947657943 +1.5158329010 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.3810711801 +1.5291763544 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.4439259768 +1.5333901644 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.4656969011 +1.5189931393 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.4853609800 +1.5920312405 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +0.3234095871 +1.8591061831 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.2835474014 +1.9181494713 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.2894529104 +2.0480444431 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.3062868118 +2.0974967480 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.2957055569 +2.1163914204 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.3229144812 +2.1315069199 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.3584372401 +2.1367974281 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.4317501485 +2.1594710350 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.4695403278 +2.1398205757 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.4627380967 +2.0959851742 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.4808773696 +2.0075588226 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.4728738666 +1.8872749805 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +0.1846301705 +1.9151972532 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.1388625056 +1.9890012741 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.1462443769 +2.0244271755 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.1004767045 +2.0067143440 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0163232386 +2.0259032249 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.0604483448 +1.9919533730 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.1091687754 +1.9550514221 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.0884995013 +1.9033886194 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.0501137078 +1.8901039362 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.1054207906 +1.7442016602 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.1551026404 +1.8044912815 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +0.0390368551 +1.5849962234 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.1008659080 +1.6086513996 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.1352751106 +1.5968238115 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.1330166310 +1.5765551329 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.1456186920 +1.5314027071 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.2024805993 +1.5323097706 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.2033781856 +1.5555540323 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.2873919606 +1.5797052383 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.3895806968 +1.5855338573 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.3976600766 +1.5671045780 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.4480683506 +1.5839054585 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.4480683506 +1.6500589848 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.4395815730 +1.6672515869 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.4729155004 +1.6909067631 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.5509852767 +1.6773605347 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.5815195441 +1.7823016644 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.5524867773 +1.8349881172 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.5600138307 +1.8989645243 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.5110787153 +2.0448801517 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.5057117939 +2.1747620106 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.4228642285 +2.2737922668 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.3745266497 +2.2817478180 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.3363539279 +2.3027148247 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.1981273144 +2.2916431427 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.1865754277 +2.2863929272 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.1739559323 +2.2907803059 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0469024926 +2.1792871952 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.0464614518 +2.0736389160 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.1197154373 +1.9936685562 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.0948707834 +1.9325240850 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.0121866539 +1.7423325777 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.0323483013 +1.6845387220 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +0.1164562926 +1.7564910650 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.0015074598 +1.8440467119 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0726759285 +1.9790284634 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.1456432045 +1.9595716000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.1809107214 +1.8440467119 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +0.3888674378 +2.0459113121 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.4837248921 +1.9218740463 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.4180543423 +1.8185096979 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.3268452585 +1.8598554134 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.2952260971 +1.9729481936 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +0.2235247344 +1.9379684925 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.2184242010 +1.9178214073 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.2299004048 +1.8884934187 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.2449469864 +1.8726817369 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.2362760752 +1.9063452482 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +0.1049372479 +2.2090611458 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0985440239 +2.1850824356 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.1031520665 +2.1728475094 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.1169235110 +2.1651966572 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0798655227 +2.1589324474 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0860652626 +2.1820285320 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +0.1972569674 +2.1583111286 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.1998072416 +2.1498951912 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.2110284120 +2.1345934868 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.2138337046 +2.1037354469 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.2212294936 +2.1468348503 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.2021024823 +2.1585659981 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +0.2662811577 +1.8209843636 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.2370181829 +1.7693068981 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.2314146310 +1.7057996988 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.2743751705 +1.7381759882 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.3260523677 +1.7226104736 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.3067512512 +1.7836271524 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.2756204009 +1.8228521347 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.000000 +1.000000 +1.000000 +1.000000 + + + + + + + + + + +0.1237528697 +1.8532404900 + + + + + + + + + + + + + + + + + + + + + +1.000000 +1.000000 +1.000000 +1.000000 + + + + + + + + + + +0.3942402601 +1.9045006037 + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +0.1256199777 +1.8610748053 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.1113821715 +1.8261477947 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.1429723203 +1.8361587524 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.1213931292 +1.8379384279 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +0.4015147090 +1.9152138233 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.3872768879 +1.8802868128 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.4188670516 +1.8902977705 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.3972878754 +1.8920774460 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +0.1894235611 +2.2842574120 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0937160701 +2.1929945946 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0982144773 +2.1675164700 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.2161782235 +2.1431953907 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.2113137394 +2.0301027298 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.2295555621 +1.9899729490 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.2283394337 +1.9145777225 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.2636069655 +1.8403985500 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.2721197903 +1.8112133741 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-0.0518759415 +1.9230939150 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.0493854769 +1.9629415274 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.1385527849 +1.9528640509 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +0.0203475878 +1.7444021702 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0777231827 +1.7246803045 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.1467387676 +1.7910985947 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +0.0545915030 +1.6977056265 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.1166151240 +1.7584719658 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +0.3128915131 +2.1082799435 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.2954576612 +2.1177444458 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.3074122965 +2.1605832577 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.3382951617 +2.1665608883 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.3462649584 +2.2064111233 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.4548530877 +2.2113924026 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.4468833208 +2.1147556305 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.3477592766 +2.1082799435 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.2949595451 +1.9747817516 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.3233518600 +1.8622047901 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.4528606534 +1.8143845797 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.4872302711 +1.8467628956 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +0.0459272675 +2.0693635941 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0085670035 +2.0810389519 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.0214068387 +2.0674192905 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.0520100594 +2.0684392452 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +0.1145224646 +2.0503325462 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.1410452574 +2.0406415462 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.1494611502 +2.0120785236 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +0.2241938114 +1.6267603636 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.1795423180 +1.6236416101 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.1829282790 +1.5801072121 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +0.1764475852 +1.6017971039 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.1380128711 +1.5970422029 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.1346448809 +1.5764374733 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +0.3476207554 +1.6499406099 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.3979425132 +1.6554880142 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.4060653150 +1.6019952297 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +0.4001217782 +1.6527143717 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.4371697009 +1.6653941870 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.4499602020 +1.6185138226 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +0.2283936888 +1.5908757448 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.2283936888 +1.6547011137 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.2844817042 +1.6412944794 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.2867132127 +1.5845499039 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.2899010777 +1.5842311382 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.2854380608 +1.6422508955 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.3412528038 +1.6679332256 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.3529278934 +1.6126698256 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +0.1786122620 +1.5474209785 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.2999652028 +1.5857204199 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.4158129990 +1.5892133713 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +0.2833772302 +1.4176862240 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.2761216164 +1.4099467993 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.2954699397 +1.3485149145 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.3307806253 +1.3252965212 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.3583519757 +1.3572218418 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.3394873738 +1.4162350893 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.3409384787 +1.4172025919 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.3612542152 +1.3572218418 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.3980160356 +1.3538358212 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.4178480506 +1.3949515820 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.4018856883 +1.4481604099 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.3926952481 +1.4505789280 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +0.2935351133 +1.3533520699 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.2674148679 +1.3398079872 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.2359738499 +1.4215559959 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +0.2403272241 +1.3664124012 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.2103373259 +1.3910819292 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +0.4178480506 +1.4002724886 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.4415497482 +1.4017236233 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.4371963739 +1.4805693626 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.4052716494 +1.4786344767 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +0.4463868141 +1.4520300627 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.4618654847 +1.4491277933 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.4729907811 +1.5062062740 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.4308865368 +1.5343470573 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +0.4101087153 +1.5033040047 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.4197828770 +1.4960482121 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.4328429997 +1.5013691187 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.4251036644 +1.4854065180 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +0.2394679189 +1.7598316669 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.2381283641 +1.6955267191 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.2769756615 +1.7062442303 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.3158229589 +1.6982061863 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.3131438196 +1.7665300369 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-0.7965818644 +-0.0370411426 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.7093097568 +0.0102549121 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.6839727163 +0.0277094096 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.7481599450 +0.0586770624 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.7920774817 +0.0547357276 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.7903883457 +0.0913338661 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.8005231619 +0.1020317823 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.8427516222 +0.1099144593 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.8275493979 +0.1482017338 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.8331798315 +0.1932456046 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.7599838972 +0.1588996649 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.6749639511 +0.1110405549 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.6045832634 +0.0113810087 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.5296981931 +-0.0606891699 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.4435521662 +-0.1299441159 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.3703562319 +-0.1924424618 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.2808319628 +-0.2650756836 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.2397296131 +-0.3365828395 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.1682227999 +-0.4334271252 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.1372552961 +-0.4643947780 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.0905224904 +-0.5820719004 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0502389409 +-0.5584238768 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.1172413900 +-0.6271157265 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0699455440 +-0.7115730047 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0220866557 +-0.7166404128 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0192714259 +-0.7419775724 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.0466049239 +-0.7487341762 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.0240830965 +-0.8089803457 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.0145113179 +-0.8985050321 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.0178895928 +-1.0082994699 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.1082326546 +-1.1175308228 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0980978310 +-1.1220351458 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.1127370223 +-1.1772139072 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.1938156039 +-1.2757472992 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.2259092182 +-1.3647090197 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.2546245456 +-1.4514183998 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.2760202885 +-1.5505149364 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.2962899208 +-1.6490483284 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.3857682347 +-1.6756157875 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.4241013229 +-1.6203329563 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + +0.932442 +0.866081 +0.819205 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-0.8251403570 +-0.0607847348 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.8949265480 +-0.0726145059 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.8961093426 +-0.1211165711 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.9386907816 +-0.1495080143 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.9907346964 +-0.2252185494 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.0889084339 +-0.2914652824 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.1267585754 +-0.4689118266 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.1776196957 +-0.5221458077 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.1279413700 +-0.5765627623 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.1610602140 +-0.6297967434 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.1421352625 +-0.6830306649 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.2000932693 +-0.7587412000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.1551462412 +-0.8415496349 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.4206170738 +-1.0674982071 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.0279219728 +-1.0189962387 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0075625260 +-0.9409196973 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.0160938054 +-0.8995155096 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.0007171904 +-0.8450985551 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.0243735220 +-0.8096092343 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.0468470380 +-0.7504603863 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.1036222354 +-0.6049541831 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.1462036371 +-0.4665458798 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.1686771512 +-0.4346055090 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.2408289611 +-0.3364183903 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.2822275460 +-0.2654397786 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.3721216023 +-0.1932781786 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.4442734122 +-0.1305803806 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.5388987660 +-0.0631506890 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.6477195621 +0.0172907691 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.7092621922 +0.0098061776 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.7920215130 +-0.0430400819 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-0.3252562881 +-0.5255072117 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.5124811530 +-0.7662076950 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.8742735982 +-0.4100068212 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.8769624233 +-0.3917074502 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.9484345913 +-0.4758619368 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.0187101364 +-0.5011605620 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.0763928890 +-0.7317838669 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.0578379631 +-0.8091802001 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.9905585647 +-0.9068871737 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.7344552875 +-1.2222748995 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.7114067674 +-1.1939165592 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.6732965708 +-1.1694566011 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.6095711589 +-1.1227835417 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.5566163063 +-1.1012421846 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.5045589805 +-1.0743155479 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.4578868747 +-1.0823935270 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.4004442990 +-1.1102178097 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.2137920111 +-0.9639412165 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.2697048187 +-0.5611116886 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.2854830027 +-0.4892404675 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.3293931484 +-0.4539587200 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-0.8251403570 +-0.0607847348 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.8949265480 +-0.0726145059 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.8961093426 +-0.1211165711 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.9386907816 +-0.1495080143 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.9907346964 +-0.2252185494 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.0889084339 +-0.2914652824 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.1267585754 +-0.4689118266 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.1776196957 +-0.5221458077 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.1279413700 +-0.5765627623 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.1610602140 +-0.6297967434 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.1421352625 +-0.6830306649 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.2000932693 +-0.7587412000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.1551462412 +-0.8415496349 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.4206170738 +-1.0674982071 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.0279219728 +-1.0189962387 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0075625260 +-0.9409196973 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.0160938054 +-0.8995155096 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.0007171904 +-0.8450985551 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.0243735220 +-0.8096092343 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.0468470380 +-0.7504603863 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.1036222354 +-0.6049541831 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.1462036371 +-0.4665458798 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.1686771512 +-0.4346055090 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.2408289611 +-0.3364183903 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.2822275460 +-0.2654397786 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.3721216023 +-0.1932781786 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.4442734122 +-0.1305803806 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.5388987660 +-0.0631506890 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.6477195621 +0.0172907691 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.7092621922 +0.0098061776 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.7920215130 +-0.0430400819 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + +0.926886 +0.692443 +0.438531 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-0.8535279632 +-0.1932781786 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.8689045906 +-0.4357884824 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.4821235538 +-0.8060603142 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.3697559834 +-0.3139418364 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.5483613014 +-0.0856272578 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.6027708650 +0.0054619806 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.6701914072 +0.1071980074 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.7636339068 +0.1616149545 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.8357856870 +0.1911893785 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.7589026093 +0.0646108389 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.6394029856 +-0.0076578702 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.6950305104 +-0.1755335182 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.8523451686 +-0.1400441974 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.9966487885 +-0.0737974867 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.1456836462 +-0.0785293952 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.0191222429 +-0.1483250409 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.9055718780 +-0.1601548195 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-0.6600129008 +0.0204022229 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.7134167552 +0.0874838904 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.7743639350 +0.1237625778 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.7922611237 +0.1435949355 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.8140280247 +0.1285997331 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.8116094470 +0.1203765646 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.7956470847 +0.0976419225 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.7680757642 +0.0720049813 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.7482437491 +0.0599120855 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-0.8565269709 +-0.2195665091 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.7648833990 +-0.2970367372 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.6382829547 +-0.2101189196 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.5381363630 +-0.1241458729 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.6826875806 +-0.1676047742 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-0.3252562881 +-0.5255072117 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.5124811530 +-0.7662076950 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.8742735982 +-0.4100068212 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.8742735982 +-0.2837939262 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.9359746575 +-0.3791547716 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.0187101364 +-0.5011605620 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.0846180916 +-0.7255390882 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.1042501926 +-0.8026691675 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.0902272463 +-0.9204679132 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.7382508516 +-1.0172311068 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.7152022719 +-0.9888728261 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.6770920753 +-0.9644128680 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.6133667231 +-0.9177398682 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.5604118705 +-0.8961984515 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.5083544850 +-0.8692717552 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.4616824090 +-0.8773497939 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.4042398334 +-0.9051740766 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.2137920111 +-0.9639412165 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.2697048187 +-0.5611116886 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.2854830027 +-0.4892404675 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.3328174949 +-0.4348987937 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-0.5765786171 +-0.5430889726 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.4738558531 +-0.5815618038 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.4445677102 +-0.4766936004 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.4039421976 +-0.4464613199 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.4634633064 +-0.6694243550 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.6344683170 +-0.5645561814 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-0.4300825298 +-0.5152795315 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.4433881044 +-0.4693740308 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.4054671824 +-0.4487498403 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-0.5797703266 +-0.5957804918 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.6376495957 +-0.5585238338 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.5784397721 +-0.5432220101 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.5651341677 +-0.5824745297 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-0.8535279632 +-0.1932781786 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.8689045906 +-0.4357884824 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.4821235538 +-0.8060603142 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.3697559834 +-0.3139418364 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.5483613014 +-0.0856272578 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.6027708650 +0.0054619806 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.6701914072 +0.1071980074 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.7636339068 +0.1616149545 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.8357856870 +0.1911893785 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.7589026093 +0.0646108389 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.6394029856 +-0.0076578702 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.6950305104 +-0.1755335182 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.8523451686 +-0.1400441974 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.9966487885 +-0.0737974867 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.1456836462 +-0.0785293952 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.0191222429 +-0.1483250409 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.9055718780 +-0.1601548195 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.540485 +0.515772 +0.002353 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-0.8009876013 +0.1037783846 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.8409748673 +0.1036719680 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.8308442235 +0.1451700479 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.7998899221 +0.1536117792 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.7940262556 +0.1395503581 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.8207228184 +0.1221815944 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.8126723766 +0.1159063578 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-0.8009876013 +0.1037783846 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.8409748673 +0.1036719680 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.8308442235 +0.1451700479 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.7998899221 +0.1536117792 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.7940262556 +0.1395503581 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.8207228184 +0.1221815944 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.8126723766 +0.1159063578 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.540485 +0.515772 +0.002353 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-1.0352873802 +-0.1473163664 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.0712603331 +-0.1647787839 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.0801577568 +-0.1229989231 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.0559414625 +-0.1019513607 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.0445526838 +-0.1120708063 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.0610567331 +-0.1393103898 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.0510798693 +-0.1414666176 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-1.0352873802 +-0.1473163664 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.0712603331 +-0.1647787839 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.0801577568 +-0.1229989231 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.0559414625 +-0.1019513607 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.0445526838 +-0.1120708063 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.0610567331 +-0.1393103898 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.0510798693 +-0.1414666176 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.540485 +0.515772 +0.002353 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-0.7497109175 +0.0597774349 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.7873687148 +0.0463282652 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.7916724682 +0.0888276473 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.7653120160 +0.1071185246 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.7550905943 +0.0958212167 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.7744575143 +0.0705367774 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.7647740841 +0.0673089698 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-0.7629441619 +0.0674882159 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.7763012648 +0.0565772876 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.7893925309 +0.0704442114 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.7951604724 +0.0626831278 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.7825674415 +0.0431365594 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.7514858842 +0.0531286076 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.7479929328 +0.0639509410 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-0.8093768954 +0.1153146625 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.8265932202 +0.1080697775 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.8360951543 +0.1242238954 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.8415250778 +0.1205563471 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.8354880810 +0.0981017873 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.8028398752 +0.0981461331 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.8003044724 +0.1061692908 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-0.7497109175 +0.0597774349 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.7873687148 +0.0463282652 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.7916724682 +0.0888276473 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.7653120160 +0.1071185246 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.7550905943 +0.0958212167 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.7744575143 +0.0705367774 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.7647740841 +0.0673089698 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-0.5720387697 +-0.5673390031 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.5805125237 +-0.5952827334 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.6375243068 +-0.5582283735 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.5761970282 +-0.5473800898 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.5603798628 +-0.5825404525 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.4792003036 +-0.6053438187 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.4331520200 +-0.5290844440 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.4414685667 +-0.4775239229 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.4053177834 +-0.4475445449 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.4303080738 +-0.5186017156 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.4381419420 +-0.4899982512 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.022181 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-0.4655183554 +-0.6664568782 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.4697152078 +-0.6050239205 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-0.4655183554 +-0.6664568782 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.4697152078 +-0.6050239205 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-0.4560768008 +-0.7151382565 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.4518445730 +-0.7006264329 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.4857023954 +-0.7236034274 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.4693780839 +-0.7459757328 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + +1.000000 +1.000000 +1.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-0.4826793969 +-0.7248127460 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.4548676014 +-0.8348603845 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.4300788343 +-0.8360697031 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.4627274573 +-0.7048590779 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-0.4826793969 +-0.7248127460 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.4548676014 +-0.8348603845 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.4300788343 +-0.8360697031 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.4627274573 +-0.7048590779 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.000000 +1.000000 +1.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-0.4826793969 +-0.7248127460 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.4548676014 +-0.8348603845 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.4300788343 +-0.8360697031 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.4627274573 +-0.7048590779 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.023682 +0.023682 +0.023682 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-0.4578765631 +-0.8098578453 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.4483716786 +-0.7879236937 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.4286307693 +-0.8025464416 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.4257062078 +-0.8383721709 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.4564142823 +-0.8376410604 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.485434 +0.208977 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-0.4429970384 +-0.7921460867 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.4510923624 +-0.7935207486 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.4533834755 +-0.7958118320 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.4536889493 +-0.7997831106 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.4507868588 +-0.7977975011 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.4488012195 +-0.7965755463 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.4529252350 +-0.8011577725 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.4512450993 +-0.8022269607 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.4465101063 +-0.7997831106 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.4518560469 +-0.8046708107 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.4520087838 +-0.8065037131 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.4468155801 +-0.8040598631 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.4509395957 +-0.8078783751 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.4509395957 +-0.8113914132 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.4468155801 +-0.8069619536 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.4451354146 +-0.8087948561 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.4462046027 +-0.8112387061 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.4513978362 +-0.8127660751 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.4497176707 +-0.8139880300 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.4457463920 +-0.8138352633 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.4480375051 +-0.8150572181 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.4507868588 +-0.8158209324 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.4492594600 +-0.8178065419 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.4465101063 +-0.8168901205 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.4468155801 +-0.8196394444 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.4497176707 +-0.8207086325 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.4495649338 +-0.8223887682 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.4474265575 +-0.8219305277 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.4468155801 +-0.8231524825 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.4489539564 +-0.8246799111 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.4483430088 +-0.8263600469 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.4448299408 +-0.8252908587 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.4483430088 +-0.8283456564 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.4454409182 +-0.8288038969 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.4376510680 +-0.8298730850 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.4359709322 +-0.8278874755 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.4416223764 +-0.8252908587 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.4376510680 +-0.8259018064 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.4362764060 +-0.8239161968 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.4399422109 +-0.8229997158 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.4411641359 +-0.8211668730 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.4397894740 +-0.8200976849 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.4364291430 +-0.8191812038 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.4378038049 +-0.8175010681 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.4400949478 +-0.8173483014 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.4367346168 +-0.8156681657 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.4414696097 +-0.8142935038 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.4382620454 +-0.8139880300 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.4361236691 +-0.8132243156 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.4376510680 +-0.8113914132 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.4378038049 +-0.8092530370 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.4399422109 +-0.8075729012 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.4413168728 +-0.8051290512 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.4384147823 +-0.8066564798 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.4381093085 +-0.8051290512 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.4402476847 +-0.8036016226 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.4379565716 +-0.8029906750 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.4376510680 +-0.8013105392 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.4410113990 +-0.8000885844 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.4390257597 +-0.7981029749 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.4394839704 +-0.7965755463 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.4422333241 +-0.7968810201 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.4399422109 +-0.7941316962 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.4433025122 +-0.7950481176 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.4413168728 +-0.7927570343 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.169208 +0.169208 +0.169208 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-0.4576602280 +-0.8000885844 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.4497176707 +-0.7919933200 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.4371928573 +-0.7924515605 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.4335270524 +-0.7990193963 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.4399422109 +-0.7938262224 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.4494121969 +-0.7942844629 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.4561328292 +-0.8016160131 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.4555218518 +-0.8051290512 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.4526197612 +-0.8023797274 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.4471210539 +-0.7981029749 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.4388730228 +-0.7996304035 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.4359709322 +-0.8017687201 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.4332215786 +-0.8063510060 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.4358181655 +-0.8063510060 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.4393312335 +-0.8016160131 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.4442189634 +-0.8013105392 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.4491066933 +-0.8034489155 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.4539944530 +-0.8074201345 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.4538416862 +-0.8133770823 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.4498704076 +-0.8097112775 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.4437607527 +-0.8074201345 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.4364291430 +-0.8101695180 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.4335270524 +-0.8155154586 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.4349017143 +-0.8158209324 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.4385675192 +-0.8129188418 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.4452881515 +-0.8116968870 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.4510923624 +-0.8133770823 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.4523142874 +-0.8179593086 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.4481902421 +-0.8161264062 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.4431497753 +-0.8159736395 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.4362764060 +-0.8173483014 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.4336797893 +-0.8210141063 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.4368873835 +-0.8197921515 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.4434552491 +-0.8185702562 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.4513978362 +-0.8205558658 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.4515505731 +-0.8242216706 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.4471210539 +-0.8217778206 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.4388730228 +-0.8222360611 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.4349017143 +-0.8240689039 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.4326106012 +-0.8292621374 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.4358181655 +-0.8259018064 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.4417751133 +-0.8239161968 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.4492594600 +-0.8251380920 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.4524670243 +-0.8281929493 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.4465101063 +-0.8274292350 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.4405531585 +-0.8275819421 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.4353599548 +-0.8295676112 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.4330688119 +-0.8339970708 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.4455936551 +-0.8349135518 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.4555218518 +-0.8301785588 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.4593403935 +-0.7981029749 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-0.4826793969 +-0.7248127460 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.4548676014 +-0.8348603845 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.4300788343 +-0.8360697031 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.4627274573 +-0.7048590779 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-0.7741314173 +0.1229066774 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.7441917658 +0.0987896621 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.6893023849 +0.0721777752 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.6477195621 +0.0014899643 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-0.7741314173 +0.1229066774 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.7441917658 +0.0987896621 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.6893023849 +0.0721777752 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.6477195621 +0.0014899643 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + +0.038587 +0.038587 +0.038587 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-0.6902992725 +-0.1329463422 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.8582592010 +-0.0560528301 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.8310544491 +-0.0335762650 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.6832023859 +-0.1021889374 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.5537422895 +-0.1057891846 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.4714082479 +-0.1498651206 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.5579006076 +-0.1282429695 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-0.6902992725 +-0.1329463422 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.8582592010 +-0.0560528301 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.8310544491 +-0.0335762650 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.6832023859 +-0.1021889374 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.5537422895 +-0.1057891846 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.4714082479 +-0.1498651206 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.5579006076 +-0.1282429695 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.012237 +0.012237 +0.012237 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-0.5728667974 +0.0058463360 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.6738865376 +-0.0419652872 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.6713742018 +-0.1849973351 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.5449452400 +-0.1327667832 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-0.5728667974 +0.0058463360 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.6738865376 +-0.0419652872 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.6713742018 +-0.1849973351 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.5449452400 +-0.1327667832 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + +1.000000 +1.000000 +1.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-0.8700873852 +-0.1696186364 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.7780497670 +-0.1062150225 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.6555780172 +-0.1801416427 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.7641850114 +-0.2633090913 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-0.6654601097 +-0.2264015228 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.7399775386 +-0.2003760338 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.7447088361 +-0.1128357276 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.6524491310 +-0.1601548195 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-0.8700873852 +-0.1696186364 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.7780497670 +-0.1062150225 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.6555780172 +-0.1801416427 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.7641850114 +-0.2633090913 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.000000 +1.000000 +1.000000 +1.000000 + + + + + + + + + + +-0.7376119494 +-0.1530569494 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + +0.113298 +0.113298 +0.113298 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-1.1901888847 +-0.4001248181 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.2781267166 +-0.2197180539 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.2304116488 +-0.1350555569 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.1503735781 +-0.1335162371 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.0564826727 +-0.3059198856 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.1157355309 +-0.3993057609 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.204907 +0.204907 +0.204907 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-1.0879194736 +-0.3241589665 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.1557383537 +-0.1862302423 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.1552801132 +-0.1656096578 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.1392418146 +-0.1857720017 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.1112895012 +-0.2627554834 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.0810459852 +-0.3154524863 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.739131 +0.739131 +0.739132 +1.000000 + + + + + + + + + + +-1.1419912577 +-0.1912708133 + + + + + + + + + + + + + + + + + + + + + +0.023682 +0.023682 +0.023682 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-1.2051627636 +-0.1898071021 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.2433854342 +-0.2058199048 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.2175593376 +-0.1624303460 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.1659070253 +-0.1582980156 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.076032 +0.022181 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-0.9592299461 +-0.5215492845 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.9340714216 +-0.4805038869 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.9406920671 +-0.4143015742 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.0029262304 +-0.4275420308 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-0.9592299461 +-0.5215492845 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.9340714216 +-0.4805038869 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.9406920671 +-0.4143015742 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.0029262304 +-0.4275420308 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.113298 +0.113298 +0.113298 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-0.9780045152 +-0.4535755515 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.9584122300 +-0.4312708378 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.9816215634 +-0.4152958393 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.0003095865 +-0.4366963208 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.113298 +0.113298 +0.113298 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-0.9846174717 +-0.4218579531 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.9738705754 +-0.4264946580 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.9789468050 +-0.4367219508 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.9895443916 +-0.4325229526 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +-0.013573 +-0.035754 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-0.9846174717 +-0.4218579531 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.9738705754 +-0.4264946580 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.9789468050 +-0.4367219508 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.9895443916 +-0.4325229526 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +-0.013573 +-0.035754 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-0.9780045152 +-0.4535755515 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.9584122300 +-0.4312708378 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.9816215634 +-0.4152958393 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.0003095865 +-0.4366963208 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-1.2537158728 +-0.1789597124 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.2604306936 +-0.2022041082 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.2129105330 +-0.1944559813 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.1643574238 +-0.1484837085 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.2056792974 +-0.1407355666 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-1.1901888847 +-0.4001248181 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.2781267166 +-0.2197180539 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.2304116488 +-0.1350555569 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.1503735781 +-0.1335162371 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.0564826727 +-0.3059198856 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.1157355309 +-0.3993057609 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.076032 +0.022181 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-0.9767403007 +-0.8253957629 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.0449463129 +-0.7531614900 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.0752052069 +-0.6507808566 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.0872665644 +-0.6184014678 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.2030837536 +-0.3753659725 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.1818338633 +-0.3722640276 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.2175680399 +-0.2966183424 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.2057471275 +-0.2517019510 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.1586295366 +-0.2684583962 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.1166957617 +-0.3438987434 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.0795706511 +-0.3166951239 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.0918841362 +-0.2689762414 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.0564826727 +-0.3013019264 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.9148768187 +-0.5706826448 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.9220438004 +-0.6212771535 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.8910244703 +-0.7611058354 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-0.9767403007 +-0.8253957629 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.0449463129 +-0.7531614900 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.0752052069 +-0.6507808566 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.0872665644 +-0.6184014678 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.2030837536 +-0.3753659725 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.1818338633 +-0.3722640276 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.2175680399 +-0.2966183424 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.2057471275 +-0.2517019510 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.1586295366 +-0.2684583962 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.1166957617 +-0.3438987434 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.0795706511 +-0.3166951239 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.0918841362 +-0.2689762414 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.0564826727 +-0.3013019264 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.9148768187 +-0.5706826448 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.9220438004 +-0.6212771535 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.8910244703 +-0.7611058354 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-1.0616987944 +-0.4552944005 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.1544672251 +-0.2762456834 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.113298 +0.113298 +0.113298 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-0.9587136507 +-0.4960750937 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.9629335403 +-0.4710576236 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.9412313104 +-0.4828128219 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.9418341517 +-0.5105429888 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +-0.013573 +-0.035754 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-0.9587136507 +-0.4960750937 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.9629335403 +-0.4710576236 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.9412313104 +-0.4828128219 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.9418341517 +-0.5105429888 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +-0.013573 +-0.035754 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-0.9626321197 +-0.4825114012 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.9391213655 +-0.4882383049 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +-0.013573 +-0.035754 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-0.9784307480 +-0.5282074213 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.9311604500 +-0.5420736670 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.739131 +0.739131 +0.739132 +1.000000 + + + + + + + + + + +-0.9684466720 +-0.4276138246 + + + + + + + + + + + + + + + + + + + + + +0.739131 +0.739131 +0.739132 +1.000000 + + + + + + + + + + +-0.9464513659 +-0.4903920293 + + + + + + + + + + + + + + + + + + + + + +0.739131 +0.739131 +0.739132 +1.000000 + + + + + + + + + + +-0.9556160569 +-0.4761867523 + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + +0.934197 +0.723199 +0.494678 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-1.0625913143 +-0.6247304678 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.0548768044 +-0.5878739357 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.9880179167 +-0.5544459820 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.0128756762 +-0.5021611452 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.1177283525 +-0.5563971996 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-1.1039596796 +-0.5421444774 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.2183561325 +-0.2926782966 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-1.0625913143 +-0.6247304678 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.0548768044 +-0.5878739357 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.9880179167 +-0.5544459820 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.0128756762 +-0.5021611452 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.1177283525 +-0.5563971996 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.076032 +0.022181 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-1.0542734861 +-0.4961957932 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.1025425196 +-0.5173476338 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.0971190929 +-0.5905655622 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.0253309011 +-0.5651757121 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.0342441797 +-0.5145103931 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-1.0542734861 +-0.4961957932 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.1025425196 +-0.5173476338 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.0971190929 +-0.5905655622 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.0253309011 +-0.5651757121 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.0342441797 +-0.5145103931 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.934197 +0.723199 +0.494678 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-1.0557339191 +-0.6821580529 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.0480194092 +-0.6453015804 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.9777319431 +-0.6213019490 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.0068755150 +-0.5638743639 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.1148782969 +-0.6170163155 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-1.0557339191 +-0.6821580529 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.0480194092 +-0.6453015804 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.9777319431 +-0.6213019490 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.0068755150 +-0.5638743639 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.1148782969 +-0.6170163155 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.934197 +0.723199 +0.494678 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-1.0488766432 +-0.7404427528 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.0411621332 +-0.7035862803 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.9708746076 +-0.6795867085 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.0000182390 +-0.6221591234 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.1080210209 +-0.6753010154 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-1.0488766432 +-0.7404427528 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.0411621332 +-0.7035862803 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.9708746076 +-0.6795867085 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.0000182390 +-0.6221591234 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.1080210209 +-0.6753010154 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.934197 +0.723199 +0.494678 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-0.8577288389 +-0.5938738585 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.9031586051 +-0.6590155959 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.9434453249 +-0.6341589093 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.9280163646 +-0.5801598430 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.9211590290 +-0.5244464874 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.8560144901 +-0.5321606398 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.8465856910 +-0.5775884390 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.8157277703 +-0.6401587725 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.8928853869 +-0.7189899683 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.9031302333 +-0.6614654660 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-0.8577288389 +-0.5938738585 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.9031586051 +-0.6590155959 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.9434453249 +-0.6341589093 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.9280163646 +-0.5801598430 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.9211590290 +-0.5244464874 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.8560144901 +-0.5321606398 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.8465856910 +-0.5775884390 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.8157277703 +-0.6401587725 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.8928853869 +-0.7189899683 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.9031302333 +-0.6614654660 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + +0.113298 +0.113298 +0.113298 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-0.2302944511 +-0.6060950756 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0513276085 +-0.5583581924 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.1181531847 +-0.6309182644 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0732845813 +-0.7101615667 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.2322037518 +-0.7416678667 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.204907 +0.204907 +0.204907 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +0.0584578812 +-0.5811225176 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0470020063 +-0.5719578266 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.0487690978 +-0.5930366516 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.1633278430 +-0.6017431021 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.1880725175 +-0.6122825146 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.0501438044 +-0.6012848616 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0428778902 +-0.5843302011 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.739131 +0.739131 +0.739132 +1.000000 + + + + + + + + + + +0.0415031873 +-0.5724160671 + + + + + + + + + + + + + + + + + + + + + +0.739131 +0.739131 +0.739132 +1.000000 + + + + + + + + + + +0.0181332044 +-0.5783731341 + + + + + + + + + + + + + + + + + + + + + +0.926886 +0.692443 +0.438531 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-0.3068654835 +-0.9661067724 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.3783342242 +-0.8761277795 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.3057722151 +-0.7701238990 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.2100693136 +-0.8182877302 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.2611497343 +-0.9407283664 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.2949529588 +-0.8626067042 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.2957041264 +-0.8806347847 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-0.2302944511 +-0.6060950756 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0513276085 +-0.5583581924 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.1181531847 +-0.6309182644 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0732845813 +-0.7101615667 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.2322037518 +-0.7416678667 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.076032 +0.022181 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +0.0228644665 +-0.7216128707 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0102776149 +-0.7445321083 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.1529677063 +-0.7550342083 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.1986344010 +-0.7350182533 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +0.0228644665 +-0.7216128707 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0102776149 +-0.7445321083 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.1529677063 +-0.7550342083 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.1986344010 +-0.7350182533 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.076032 +0.022181 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-0.1434212029 +-0.7578984499 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.1348293424 +-0.9898998141 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.2980746627 +-0.9984924197 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.2875735164 +-0.7617173791 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.2990293205 +-0.6891573071 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.2436595559 +-0.6423751116 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.0699130744 +-0.6156424880 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.0288630780 +-0.6385561824 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.0651398152 +-0.6748362184 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0205856450 +-0.7165017128 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-0.0928268358 +-0.7277439237 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0209162943 +-0.7178243399 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-0.1434212029 +-0.7578984499 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.1348293424 +-0.9898998141 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.2980746627 +-0.9984924197 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.2875735164 +-0.7617173791 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.2990293205 +-0.6891573071 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.2436595559 +-0.6423751116 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.0699130744 +-0.6156424880 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.0288630780 +-0.6385561824 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.0651398152 +-0.6748362184 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0205856450 +-0.7165017128 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.076032 +0.022181 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-0.1481944621 +-0.5917740464 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.1921084076 +-0.6127782464 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.2193988711 +-0.6640891433 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.2417502552 +-0.6605151296 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.2627525926 +-0.6137329936 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.2904374599 +-0.5764982104 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.2608432770 +-0.5029833913 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.2026095688 +-0.5001191497 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.1930630505 +-0.5478560925 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.2108428031 +-0.5731291175 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.1567863226 +-0.5774529576 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-0.1481944621 +-0.5917740464 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.1921084076 +-0.6127782464 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.2193988711 +-0.6640891433 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.2417502552 +-0.6605151296 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.2627525926 +-0.6137329936 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.2904374599 +-0.5764982104 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.2608432770 +-0.5029833913 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.2026095688 +-0.5001191497 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.1930630505 +-0.5478560925 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.2108428031 +-0.5731291175 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.1567863226 +-0.5774529576 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-0.2189639062 +-0.7002003193 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.1964102536 +-0.6341162920 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.113298 +0.113298 +0.113298 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-0.2359214723 +-0.6778215170 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.2513427436 +-0.6570544243 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.2361270934 +-0.6354649067 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.2207058370 +-0.6574656963 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +-0.013573 +-0.035754 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-0.2359214723 +-0.6778215170 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.2513427436 +-0.6570544243 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.2361270934 +-0.6354649067 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.2207058370 +-0.6574656963 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-0.1991652697 +-0.8761600256 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.0954861864 +-0.8693130016 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.0822817758 +-0.7519354224 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-0.2079682201 +-0.7719874382 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.2030776888 +-0.7538917065 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.1553789675 +-0.7526542544 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.1649316102 +-0.8526844978 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.1981871724 +-0.8629550338 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-0.0316568390 +-0.7469217181 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.1433190703 +-0.7517265677 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.1646558046 +-0.7401301265 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.2127121091 +-0.7212295532 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.023682 +0.023682 +0.023682 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +0.0338358469 +-0.5958630443 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0927447751 +-0.5962406993 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0821713805 +-0.6317369342 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0538497753 +-0.6849813461 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0274162833 +-0.6430655122 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.003978 +0.003978 +0.003978 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +0.0308148749 +-0.6034154296 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0410106517 +-0.6751632094 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0670665205 +-0.6328697801 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +0.0702041015 +-0.6898134947 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0262237936 +-0.6342147589 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0635655671 +-0.5802756548 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.1058862433 +-0.6383638978 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +-0.013573 +-0.035754 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-0.2458034754 +-0.6417589784 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.2411479354 +-0.6605952382 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.2198009640 +-0.6662877798 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +-0.013573 +-0.035754 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-0.2459553480 +-0.5989462137 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.2552498579 +-0.5848328471 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.2373493314 +-0.5376735926 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.1973461658 +-0.5477027893 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.113298 +0.113298 +0.113298 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-0.2199510485 +-0.5612654686 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.2391651869 +-0.5364005566 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.2117567807 +-0.5169042349 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.1936728805 +-0.5428993702 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.739131 +0.739131 +0.739132 +1.000000 + + + + + + + + + + +-0.2054854482 +-0.5270507932 + + + + + + + + + + + + + + + + + + + + + +0.739131 +0.739131 +0.739132 +1.000000 + + + + + + + + + + +-0.2334377915 +-0.6466501355 + + + + + + + + + + + + + + + + + + + + + +0.000000 +-0.013573 +-0.035754 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-0.2199510485 +-0.5612654686 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.2391651869 +-0.5364005566 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.2117567807 +-0.5169042349 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.1936728805 +-0.5428993702 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.113298 +0.113298 +0.113298 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-0.2187603414 +-0.5421485305 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.2063676715 +-0.5331985950 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.2003545463 +-0.5435314178 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.2115312815 +-0.5538523197 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +-0.013573 +-0.035754 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-0.2187603414 +-0.5421485305 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.2063676715 +-0.5331985950 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.2003545463 +-0.5435314178 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.2115312815 +-0.5538523197 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +-0.013573 +-0.035754 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-0.2049907148 +-0.5624580383 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.2170391381 +-0.5800136924 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.1929720044 +-0.6096922755 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + +0.926886 +0.692443 +0.438531 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-0.0635886863 +-1.0263617039 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.0823682547 +-0.9489912391 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.0943871737 +-0.8633579016 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.1950456500 +-0.9151886106 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.0853729844 +-0.9504935741 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.1995527446 +-0.9617611170 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.1191762090 +-1.0458921194 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-0.0635886863 +-1.0263617039 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.0823682547 +-0.9489912391 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.0943871737 +-0.8633579016 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.1950456500 +-0.9151886106 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.0853729844 +-0.9504935741 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.1995527446 +-0.9617611170 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.1191762090 +-1.0458921194 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.926886 +0.692443 +0.438531 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-0.3275102675 +-0.9804439545 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.3783342242 +-0.8761277795 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.3050675392 +-0.7670703530 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.2314427197 +-0.8072007298 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.2546800077 +-0.9030232430 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.2999100387 +-0.9152858853 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.3180049658 +-0.8404576778 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-0.3275102675 +-0.9804439545 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.3783342242 +-0.8761277795 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.3050675392 +-0.7670703530 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.2314427197 +-0.8072007298 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.2546800077 +-0.9030232430 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.2999100387 +-0.9152858853 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.3180049658 +-0.8404576778 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.926886 +0.692443 +0.438531 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-0.0771099776 +-0.8550950289 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.1627448052 +-0.8603532314 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.1957968324 +-0.8205412030 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.1567353457 +-0.7844851017 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.0913824439 +-0.7799780369 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.0643398687 +-0.8137807250 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-0.0771099776 +-0.8550950289 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.1627448052 +-0.8603532314 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.1957968324 +-0.8205412030 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.1567353457 +-0.7844851017 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.0913824439 +-0.7799780369 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.0643398687 +-0.8137807250 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.076032 +0.022181 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-0.1923185438 +-0.8595315218 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.1556396186 +-0.8267636299 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.1556396186 +-0.7431321144 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.0837489292 +-0.7411758304 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.0949971378 +-0.8663785458 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.1937856972 +-0.8746927977 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-0.9500601292 +-0.1524886340 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.8678643107 +-0.1534333974 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.8697538972 +-0.1751628369 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.9113242030 +-0.1591019481 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-1.2774004936 +-0.2045054436 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.2452780008 +-0.2186768353 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.2008733749 +-0.2498538643 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.2083350420 +-0.2714976668 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.0799416304 +-0.5077730417 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.0972319841 +-0.5481140018 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.0556627512 +-0.5707874894 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.1131038666 +-0.6153786182 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.0284538269 +-0.6206691265 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.1017668247 +-0.6645044684 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.0564185381 +-0.6841548085 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.9695011973 +-0.6765969992 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.9989775419 +-0.7415942550 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.9271762371 +-0.7514194250 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.9150833488 +-0.7249670625 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.9407806993 +-0.6372963190 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.9181065559 +-0.6403194666 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.8621771336 +-0.6100881696 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.8455494642 +-0.7015377879 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.8908976316 +-0.7211881280 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.8916534781 +-0.7635119557 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.9634547830 +-0.8269976974 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.0428141356 +-0.7763602734 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.0473489761 +-0.7415942550 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.1010110378 +-0.7060725093 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.1010110378 +-0.6584582329 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.1161270142 +-0.6267153621 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.1131038666 +-0.5957282782 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.1191502810 +-0.5526486635 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.2793805599 +-0.2170813382 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-1.0269422531 +-0.5556718111 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.9831056595 +-0.5284636617 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.9846172929 +-0.5511371493 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.9989775419 +-0.5639854074 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.0239191055 +-0.5639854074 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-0.9687454104 +-0.4589316845 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.9445596933 +-0.4521296322 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.9309552312 +-0.4778262377 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.9422922730 +-0.4808493555 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.9626989961 +-0.4695126414 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +0.1136991829 +-0.6744990349 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.1017093286 +-0.6655071974 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0762308836 +-0.6894854307 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0365144908 +-0.6707524061 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.0331765413 +-0.6752483249 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.0256828796 +-0.6430275440 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.1568219215 +-0.7029732466 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.2190192938 +-0.6984772682 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.2182699293 +-0.7524284124 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.2070294321 +-0.7943903804 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.2055307031 +-0.8610799313 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.1748066992 +-0.8580826521 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.1950395852 +-0.8146220446 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.1530750841 +-0.8018835783 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.1433333308 +-0.7764066458 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.1575712860 +-0.8588320017 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.2025332451 +-0.8768156767 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.2280116826 +-0.8663251996 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.2295104116 +-0.8168700337 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.2737230062 +-0.8183686733 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.2872115970 +-0.8865568638 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.3209330440 +-0.8775650263 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.3569026291 +-0.9509984851 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.3351710141 +-0.9614889622 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.3149381280 +-0.9532464147 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.2677280903 +-0.9420065880 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.1837990880 +-0.9390093088 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.1058650315 +-0.9577423334 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.0646499097 +-0.9794726372 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.0653992742 +-0.9607396126 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.0751410350 +-0.9494998455 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.0594043471 +-0.9247722030 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.0773891285 +-0.8738183975 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.0811359584 +-0.8573333621 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.0668980032 +-0.8483414650 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.0639005452 +-0.8318564296 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.0751410350 +-0.8078781366 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.0788878649 +-0.7696627975 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.0781384930 +-0.7486817837 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0132841477 +-0.7449352145 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0245246366 +-0.7336953878 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0230259057 +-0.7164610028 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0694865957 +-0.7112157345 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0987118632 +-0.6977279782 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-0.2489939332 +-0.6692537665 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.2362547070 +-0.6954799891 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.2190192938 +-0.6677551270 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-0.2343191206 +-0.5284425020 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.2175205648 +-0.5403705835 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.2047813386 +-0.5336266756 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.2002851367 +-0.5426185131 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.1935408413 +-0.5381225944 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.1987864077 +-0.5583542585 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.2175205648 +-0.5815832019 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.2002851367 +-0.5890763998 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.1935599595 +-0.6052943468 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.2262163907 +-0.6097139120 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.2461048961 +-0.5996470451 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.2554353178 +-0.5844240189 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.2411941588 +-0.5456297994 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-1.0492558479 +-0.1412104368 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.0616083145 +-0.1532468349 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.0758613348 +-0.1405769438 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.0809290409 +-0.1488123685 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.0666760206 +-0.1671837270 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.0365865231 +-0.1545138210 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.0340526104 +-0.1434276700 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-1.0410207510 +-0.1136534140 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.0457717180 +-0.1380429566 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.0593912601 +-0.1358257234 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.0441881418 +-0.1092189476 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + +0.010309 +0.008513 +0.035309 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-0.4378051162 +-1.0243123770 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0877849758 +-1.1674921513 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.0796580017 +-1.7695709467 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.5959016681 +-1.6398032904 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.9737298489 +-1.5025624037 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.0971776247 +-1.4631973505 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.0752743483 +-1.4702070951 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.4771742821 +-1.3313370943 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.5760915279 +-0.9578888416 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.2985327244 +-0.7822352648 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.8673079610 +-0.9062937498 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.9023532867 +-0.8949029446 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.7685134411 +-0.9298433065 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.017688 +0.015382 +0.049784 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +0.0409108661 +-1.1568537951 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.3274123073 +-1.3285132647 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.8391718268 +-1.3371924162 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.8792805672 +-1.3422057629 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.9043485522 +-1.3128415346 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.3442218304 +-1.0842729807 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.3631874323 +-1.0866395235 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.3898544312 +-0.7218253016 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.5125223398 +-0.8092953563 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.4442549944 +-0.6588895321 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0224261209 +-0.9607679248 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.222494 +0.214186 +0.338034 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-1.3361974955 +-0.7318306565 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.3062973022 +-0.7945499420 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.3340097666 +-0.9943764210 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.3267170191 +-0.8156994581 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.000000 +1.000000 +1.000000 +1.000000 + + + + + + + + + + +-1.3150485754 +-0.7938206196 + + + + + + + + + + + + + + + + + + + + + +0.222494 +0.214186 +0.338034 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-0.8030979037 +-0.9236349463 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.7731976509 +-0.9863541722 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.8009101152 +-1.1861807108 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.7936173677 +-1.0075037479 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.000000 +1.000000 +1.000000 +1.000000 + + + + + + + + + + +-0.7819489837 +-0.9856249094 + + + + + + + + + + + + + + + + + + + + + +0.222494 +0.214186 +0.338034 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-0.1496680081 +-1.0359461308 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.2189490795 +-0.9929178357 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.1503972858 +-0.9593703151 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.0884089544 +-1.0082329512 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-1.5247489214 +-1.2618573904 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.5262253284 +-1.0005911589 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.3948278427 +-0.7865595818 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.4095915556 +-1.0301128626 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-1.5722676516 +-1.1943199635 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.5506722927 +-1.2780005932 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.4170509577 +-1.0499035120 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.4022041559 +-0.7597208023 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.4966839552 +-0.8514994979 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-0.4378051162 +-1.0243123770 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0877849758 +-1.1674921513 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.0796580017 +-1.7695709467 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.5959016681 +-1.6398032904 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.9737298489 +-1.5025624037 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.0971776247 +-1.4631973505 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.0752743483 +-1.4702070951 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.4771742821 +-1.3313370943 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.5760915279 +-0.9578888416 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.2985327244 +-0.7822352648 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.8673079610 +-0.9062937498 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.9023532867 +-0.8949029446 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.7685134411 +-0.9298433065 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.113298 +0.113298 +0.113298 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-0.3218834102 +-1.3274068832 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.4448361695 +-1.0143719912 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.4440453947 +-0.9985357523 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.3565689325 +-0.9535722733 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.3440548182 +-0.9575214982 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.1870841235 +-1.2960470915 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-0.3218834102 +-1.3274068832 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.4448361695 +-1.0143719912 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.4440453947 +-0.9985357523 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.3565689325 +-0.9535722733 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.3440548182 +-0.9575214982 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.1870841235 +-1.2960470915 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-0.4413766563 +-0.9999026060 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.3011494875 +-1.3195921183 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-0.3623680770 +-0.9549053907 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.1970255971 +-1.2212260962 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.272781 +0.272781 +0.272781 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-0.3670772016 +-1.0318192244 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.3623680770 +-0.9925774336 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.3184162676 +-1.0061812401 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.3252183497 +-1.0433300734 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-0.3670772016 +-1.0318192244 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.3623680770 +-0.9925774336 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.3184162676 +-1.0061812401 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.3252183497 +-1.0433300734 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.272781 +0.272781 +0.272781 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-0.2986895442 +-1.1467123032 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.2720428109 +-1.1175224781 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.2441922873 +-1.1541445255 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.2713250518 +-1.1804146767 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-0.2986895442 +-1.1467123032 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.2720428109 +-1.1175224781 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.2441922873 +-1.1541445255 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.2713250518 +-1.1804146767 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.272781 +0.272781 +0.272781 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-0.2688651085 +-1.2989703417 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.2422183752 +-1.2697805166 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.2143678516 +-1.3064025640 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.2415006310 +-1.3326727152 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-0.2688651085 +-1.2989703417 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.2422183752 +-1.2697805166 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.2143678516 +-1.3064025640 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.2415006310 +-1.3326727152 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.272781 +0.272781 +0.272781 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-0.3937622011 +-0.9774039984 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.4225401878 +-0.9878684282 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.4073663354 +-0.9585679173 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.3738792539 +-0.9632769227 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.499984 +0.499984 +0.499984 +1.000000 + + + + + + + + + + +-0.3932456672 +-0.9659339786 + + + + + + + + + + + + + + + + + + + + + +0.499984 +0.499984 +0.499984 +1.000000 + + + + + + + + + + +-0.3385500908 +-1.0126087666 + + + + + + + + + + + + + + + + + + + + + +0.499984 +0.499984 +0.499984 +1.000000 + + + + + + + + + + +-0.2648933828 +-1.1431523561 + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-0.3937622011 +-0.9774039984 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.4225401878 +-0.9878684282 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.4073663354 +-0.9585679173 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.3738792539 +-0.9632769227 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-1.3203698397 +-0.9855787754 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.4779921770 +-1.3321460485 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-0.7864637971 +-1.1812999249 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.9733123183 +-1.5027976036 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-0.8714011908 +-1.2346676588 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.0766466856 +-1.4699586630 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.287661 +0.155561 +-0.040129 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-0.4129697978 +-1.7001546621 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.4557585716 +-1.4669673443 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.3138199747 +-1.3094601631 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.0598412864 +-1.4450656176 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.0297082197 +-1.8077565432 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-0.3585363925 +-1.6894288063 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.3764421046 +-1.6467267275 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.3771307766 +-1.6301969290 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.3915930688 +-1.6184881926 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.4046780169 +-1.5854284763 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.3888383508 +-1.5551238060 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.4156969190 +-1.5454814434 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.4163855910 +-1.4979580641 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.4012346268 +-1.4697196484 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.4019232988 +-1.4586997032 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.3929704428 +-1.4304611683 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.3736873865 +-1.3870702982 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.3385646641 +-1.3471232653 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.3041306138 +-1.3292158842 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.2889796197 +-1.3250833750 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.2428380102 +-1.3223284483 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-0.4129697978 +-1.7001546621 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.4557585716 +-1.4669673443 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.3138199747 +-1.3094601631 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.0598412864 +-1.4450656176 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.0297082197 +-1.8077565432 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.172750 +0.172750 +0.172750 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-0.3471815884 +-1.5365455151 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.2890678048 +-1.3977113962 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.1685355604 +-1.4665902853 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.2158875167 +-1.5817474127 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-0.2506358922 +-1.3518983126 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.4012263119 +-1.4670325518 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.4588049948 +-1.4876976013 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.4499467313 +-1.4478434324 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.8677613139 +-1.4478434324 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.8219936490 +-1.2972832918 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.9164817333 +-1.4493196011 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.9843950868 +-1.4094654322 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.3889223337 +-1.2721899748 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.3593947887 +-1.1408188343 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.4258316755 +-1.2736660242 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.4819339514 +-1.2544770241 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.3830168247 +-1.0463496447 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.3963041306 +-0.7348967791 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.5424654484 +-0.8647918105 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.5498473644 +-1.3622307777 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.4745521545 +-1.3327091932 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.0965996981 +-1.4611282349 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.0493556261 +-1.5186953545 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.9696313143 +-1.5009824038 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.7112653852 +-1.5984036922 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.2403012663 +-1.7017292976 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-0.3471815884 +-1.5365455151 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.2890678048 +-1.3977113962 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.1685355604 +-1.4665902853 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.2158875167 +-1.5817474127 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-0.2906543314 +-1.5230492353 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.2594662011 +-1.4485405684 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.1947796792 +-1.4855060577 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.2201922387 +-1.5473078489 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-0.3333129883 +-1.3135201931 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.4539311826 +-1.0229846239 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.4435386062 +-1.0012551546 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.3821279407 +-1.0522720814 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.3008769453 +-1.3054674864 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.000000 +1.000000 +1.000000 +1.000000 + + + + + + + + + + +-0.1526975334 +-0.9871475697 + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +0.4277510047 +-1.6170560122 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.4845721424 +-1.4333038330 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.4772403836 +-1.3961868286 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.5248968005 +-1.2857521772 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.5207726955 +-1.1070405245 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.5780520439 +-1.0071452856 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.6174602509 +-0.8994601369 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.6156273484 +-0.8646342754 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.5817179680 +-0.7839848995 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.6142526269 +-0.6708008647 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.5803432465 +-0.5548674464 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.5771356225 +-0.5823615193 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.5821762085 +-0.6208532453 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.5762191415 +-0.6630108953 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.5079421401 +-0.6639273167 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.4951115549 +-0.5910679698 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.4804480076 +-0.5035451055 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.3961327970 +-0.4091487229 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.1725141257 +-0.3449958265 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.1101941764 +-0.3234587908 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0657453910 +-0.1598688960 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.1395212114 +-0.0856348425 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.1551012099 +-0.0576825067 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.2137552798 +-0.0127754826 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.2229199708 +0.0509191751 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.3910922110 +0.2621654868 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.4492880404 +0.2933254540 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.5006103516 +0.4225477278 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.5620138645 +0.5151112080 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.5872167945 +0.5558940768 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.6293743849 +0.5444382429 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.6472455263 +0.5600181818 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.7668448687 +0.6214216948 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.9281435609 +0.7158181071 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.9336423874 +0.7561427355 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.8869024515 +0.7634745240 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.8016707301 +0.7258992791 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.7851742506 +0.7932597995 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.6967349052 +0.9169832468 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.7521813512 +0.9495179057 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +0.6683536768 +-0.0325410217 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.6001985073 +-0.0850780979 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.6489483714 +-0.1522876918 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.7123705149 +-0.2024582326 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.7346155643 +-0.2180773616 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.7445548773 +-0.1925187856 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.7795790434 +-0.1910988688 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +0.8133176565 +0.9566141367 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.9594274163 +0.9144904613 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.9870697856 +0.9684613943 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.0469616652 +0.9868904352 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.0574920177 +0.9934111238 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.0785708427 +1.0360269547 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.1381413937 +1.0461081266 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.1477643251 +1.0429004431 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.1841189861 +1.0555759668 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.2183325291 +1.0832251310 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.2751536369 +1.0736021996 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.2838600874 +1.0598552227 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.2943994999 +1.0589387417 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.3360989094 +1.0823086500 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.3910871744 +1.0493158102 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.4369106293 +1.0479410887 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.4712781906 +1.0209052563 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.4809011221 +0.9801223278 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.5597175360 +0.9090958834 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.5775887966 +0.9512535334 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.6399086714 +0.9535446763 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.7091021538 +0.9663752317 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.7613409758 +0.9906616807 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.8740667105 +1.0607717037 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.9340955019 +0.9755399823 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.0440719128 +0.9961605072 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.0738573074 +1.0094493628 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.2626500130 +1.0731439590 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.4033281803 +0.8192818165 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.2686071396 +0.6112431884 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.3483400345 +0.4421544671 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.3762922287 +0.3353857398 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.4147839546 +0.2657340169 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.4285311699 +0.1869176030 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.2750222683 +0.0897717997 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.0129120350 +0.0792323947 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.8177038431 +0.1401776373 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.8245773315 +0.1232229471 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.7947920561 +0.1342205852 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.7517180443 +0.0540294722 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.7301809788 +-0.0545722097 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.7228492498 +-0.1416368484 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.8057897091 +-0.1979997456 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.1714613438 +-0.5870411992 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.8474891186 +-1.1657919884 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.7471356392 +-1.0878920555 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.6614457369 +-1.0883502960 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.5175600052 +-1.0086174011 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +1.7816389799 +1.0207315683 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.7940113544 +1.1545361280 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.7825554609 +1.1797391176 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.7074049711 +1.2878825665 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.6945743561 +1.3249995708 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.6730372906 +1.3405795097 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.5424404144 +1.3666988611 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.2917858362 +1.5499929190 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.2784969807 +1.6136875153 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.3018670082 +1.6874634027 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.2949935198 +1.7543656826 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.3256952763 +1.8084374666 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.3224875927 +1.8240174055 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.3009505272 +1.9078743458 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.3880151510 +2.0050201416 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.3550223112 +2.1227865219 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.5800156593 +2.1983952522 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.4425451756 +2.4453840256 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.5085309744 +2.5452792645 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.6391279697 +2.5452792645 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.8824506998 +2.3509876728 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.9337730408 +2.3367822170 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.1413533688 +2.4554650784 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.1166088581 +2.2882094383 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.2055063248 +2.1983952522 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.1894681454 +2.1434071064 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.2220027447 +2.0943760872 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.2485804558 +2.1209535599 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.2856974602 +2.1397411823 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.3635973930 +2.2341377735 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.3690962791 +2.2671306133 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.4227097034 +2.3189110756 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.4227097034 +2.3459470272 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.4579937458 +2.4068922997 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.4960272312 +2.4852504730 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.5734689236 +2.6163055897 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.6367053986 +2.6369261742 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.6866531372 +2.6332602501 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.7407248020 +2.6112649441 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.7668442726 +2.5897281170 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.8433694839 +2.4999139309 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +2.7608871460 +2.4265964031 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.7517223358 +2.4032263756 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.7425577641 +2.3679423332 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.6939847469 +2.3390734196 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.6811542511 +2.2336795330 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.5464332104 +2.1030824184 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.5395596027 +2.0206000805 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.4387478828 +1.9207049608 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.4025473595 +1.7914826870 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.4162943363 +1.7639886141 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.4859461784 +1.6815062761 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.5560560226 +1.6856304407 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.6522853374 +1.7772774696 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.7544717789 +1.7584898472 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.7778418064 +1.6975445747 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.8158752918 +1.6453057528 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.8103764057 +1.6159787178 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.8103764057 +1.5513676405 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.8273310661 +1.5110429525 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.8387870789 +1.4643030167 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.8713216782 +1.4455152750 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.9322669506 +1.4743841887 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.0917327404 +1.5325800180 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +2.8649065495 +1.0509750843 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.8342046738 +1.0331038237 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.7430160046 +1.1783643961 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.7494311333 +1.1966937780 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.7292687893 +1.2704695463 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.6944429874 +1.3231666088 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.6646578312 +1.3648660183 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.6403713226 +1.3896106482 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.6316647530 +1.3937348127 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.6115024090 +1.3974006176 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.5661373138 +1.3392047882 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.5771348476 +0.8905928135 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.4914450645 +0.8828027844 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.5001513958 +0.8278146386 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.4868626595 +0.7746593952 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.4850296974 +0.7361676097 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.4974019527 +0.6926352978 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.5340607166 +0.6289406419 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.5487244129 +0.5872412920 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.5840084553 +0.5510407090 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.6641995907 +0.5285872221 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +2.5794260502 +0.0547722615 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.5079414845 +0.0946386978 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.4543278217 +0.3035938442 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.4534113407 +0.3970737755 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.4387478828 +0.4131119847 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.4369149208 +0.4516037405 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.4149196148 +0.4671837091 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.4153778553 +0.5107160211 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.3842179775 +0.5304201245 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.3452680111 +0.5927401185 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.3145663738 +0.6225253344 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +1.6831578016 +1.6659736633 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.6455631256 +1.6477468014 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.5971456766 +1.6562906504 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.5544245243 +1.6711000204 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.5134121180 +1.7132496834 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.5185387135 +1.7548297644 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.5458803177 +1.7781829834 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.6353100538 +1.7371724844 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + +0.867226 +0.661151 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +2.5574700832 +1.3875600100 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.5777680874 +0.8930416703 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.3434176445 +0.8856607676 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +2.4269838333 +1.4116210938 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.3742716312 +1.1995211840 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.0881326199 +1.1620569229 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.1401414871 +1.3551838398 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.1590991020 +1.4131451845 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.1547660828 +1.4033946991 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.0951845646 +1.2890970707 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.0521602631 +1.1668008566 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.0166125298 +1.1727253199 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.9260504246 +1.2370474339 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.9718868732 +1.3414974213 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.9080013037 +1.2503366470 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.8642650843 +1.2937524319 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.8600332737 +1.3140646219 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.8507231474 +1.3479183912 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.8363348246 +1.3927745819 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.8321028948 +1.4173185825 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.7838596106 +1.3970062733 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.6814483404 +1.4207038879 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.6027355194 +1.4638674259 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.4952460527 +1.4841797352 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.3852174282 +1.5061846972 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.2997336388 +1.5459628105 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.4859359264 +1.3978526592 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.6924512386 +1.2429717779 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.7627002001 +0.9459052086 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.5836832523 +0.0470883995 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.6158454418 +0.2781401873 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.4922747612 +0.3179183304 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.5472891331 +0.3576964736 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.6386973858 +0.3864721656 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.6429293156 +0.4076307416 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.5345933437 +0.3830867708 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.4778864384 +0.3517720699 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.4838109016 +0.4270966351 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.4829645157 +0.4744918942 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.5709874630 +0.5159627199 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.5777585506 +0.5413530469 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.5625238419 +0.5278115273 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.5464427471 +0.5083456039 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.4931211472 +0.4846479893 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.4457242489 +0.5041139126 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.4778864384 +0.5464310646 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.5447499752 +0.5853629112 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.5532135963 +0.6090605259 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.5100486279 +0.5904409289 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.4389531612 +0.5642042756 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.3949418068 +0.6141385436 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.4948139191 +0.6903094649 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.4990456104 +0.7046973109 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.4000198841 +0.6691508889 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.3983271122 +0.7072363496 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.4770400524 +0.7351657152 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.4965066910 +0.8147220016 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.4855036736 +0.8172609806 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.4668834209 +0.8384196162 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.4821181297 +0.7715584636 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.4541878700 +0.7732511759 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.3932490349 +0.7537852526 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.3898634911 +0.8756586909 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.4533414841 +0.9315173626 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.4931211472 +0.8824294806 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.5735266209 +0.8883538842 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.5819904804 +1.1117885113 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.5659093857 +1.3394550085 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.4931211472 +1.2582060099 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.4846572876 +1.3716160059 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.4651906490 +1.4638674259 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +2.5574700832 +1.3875600100 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.5777680874 +0.8930416703 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.3434176445 +0.8856607676 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + +1.000000 +0.956527 +0.893289 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +2.4685673714 +0.3934619129 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.4375634193 +0.4170792103 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.4360871315 +0.4525051117 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.4139413834 +0.4687420130 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.4186372757 +0.5141360760 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.3799846172 +0.5351656079 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.3371698856 +0.6178261042 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.4809114933 +0.7124636769 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.5310935974 +0.6640911102 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.5320515633 +0.6296347380 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.5541970730 +0.6074935198 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.5468151569 +0.5883045197 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.5716021061 +0.5746018291 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.5945770741 +0.5183686614 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +2.4685673714 +0.3934619129 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.4375634193 +0.4170792103 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.4360871315 +0.4525051117 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.4139413834 +0.4687420130 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.4186372757 +0.5141360760 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.3799846172 +0.5351656079 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.3371698856 +0.6178261042 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.4809114933 +0.7124636769 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.5310935974 +0.6640911102 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.5320515633 +0.6296347380 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.5541970730 +0.6074935198 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.5468151569 +0.5883045197 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.5716021061 +0.5746018291 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.5945770741 +0.5183686614 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000044 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +2.5486721992 +0.5884395838 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.5060625076 +0.5749453902 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.4194228649 +0.5138663054 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000044 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +2.4946999550 +0.6147177815 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.5344691277 +0.6303426623 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000044 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +2.5025117397 +0.4861676395 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.5451214314 +0.5081844926 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.5763685703 +0.5415649414 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.000000 +0.956527 +0.893289 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +2.6681110859 +1.4003829956 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.6700005531 +1.3370841742 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.6955096722 +1.3266917467 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.7006468773 +1.2858775854 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.7285768986 +1.2737852335 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.7503068447 +1.1944255829 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.8863551617 +1.4183334112 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.8372266293 +1.4646265507 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.8154966831 +1.5250911713 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +2.6681110859 +1.4003829956 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.6700005531 +1.3370841742 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.6955096722 +1.3266917467 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.7006468773 +1.2858775854 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.7285768986 +1.2737852335 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.7503068447 +1.1944255829 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.8863551617 +1.4183334112 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.8372266293 +1.4646265507 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.8154966831 +1.5250911713 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000044 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +2.6935451031 +1.3228091002 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.7453870773 +1.4009335041 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000044 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +2.8171133995 +1.3725246191 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.7297635078 +1.2745140791 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + +0.010309 +0.008513 +0.035309 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +2.8347086906 +1.0340807438 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.7446496487 +1.1831648350 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.0458304882 +1.5344718695 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +2.8347086906 +1.0340807438 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.7446496487 +1.1831648350 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.0458304882 +1.5344718695 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.010309 +0.008513 +0.035309 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +2.5837247372 +0.5514025092 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.5025238991 +0.4288878441 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.4538035393 +0.3196579218 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.5822482109 +0.0569156483 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.6782128811 +0.5145004988 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +2.5837247372 +0.5514025092 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.5025238991 +0.4288878441 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.4538035393 +0.3196579218 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.5822482109 +0.0569156483 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.6782128811 +0.5145004988 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.830249 +0.854667 +0.704535 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +2.6519145966 +0.3956567943 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.4559664726 +0.3068436086 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.4504725933 +0.3782603741 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.6455051899 +0.4679891467 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +2.6519145966 +0.3956567943 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.4559664726 +0.3068436086 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.4504725933 +0.3782603741 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.6455051899 +0.4679891467 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.830249 +0.854667 +0.704535 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +2.9166870117 +1.4606370926 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.9037172794 +1.1354612112 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.8808259964 +1.0466480255 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.8680069447 +1.4266219139 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +2.9166870117 +1.4606370926 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.9037172794 +1.1354612112 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.8808259964 +1.0466480255 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.8680069447 +1.4266219139 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.251431 +0.218903 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +2.9344675541 +1.4769381285 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.8886852264 +1.4210865498 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.8181805611 +1.3524165154 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.8694567680 +1.4439765215 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000044 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +2.9344675541 +1.4769381285 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.8886852264 +1.4210865498 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.8181805611 +1.3524165154 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.8694567680 +1.4439765215 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.251431 +0.218903 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +2.5389087200 +0.4542133808 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.5343303680 +0.3635690212 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.4546692371 +0.3049706519 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.4528379440 +0.3956150115 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000044 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +2.5389087200 +0.4542133808 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.5343303680 +0.3635690212 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.4546692371 +0.3049706519 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.4528379440 +0.3956150115 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + +0.725628 +0.548016 +0.310658 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +2.3821685314 +0.9945286512 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.4910399914 +0.8838155866 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.4947304726 +0.8063164353 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.4873492718 +0.7195912004 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.3415722847 +0.6144137383 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.2585346699 +0.6550085545 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.1884140968 +0.9299460053 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +2.3821685314 +0.9945286512 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.4910399914 +0.8838155866 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.4947304726 +0.8063164353 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.4873492718 +0.7195912004 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.3415722847 +0.6144137383 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.2585346699 +0.6550085545 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.1884140968 +0.9299460053 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000044 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +2.4833374023 +0.8114492893 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.4655833244 +0.8363070488 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.4790763855 +0.7404270768 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000044 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +2.4414379597 +0.8157106042 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.4535107613 +0.7631542087 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.4449887276 +0.7269328833 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.528627 +0.351019 +0.113660 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +2.3448066711 +0.5942761302 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.3161094189 +0.6325405240 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.3858027458 +0.6981366277 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.4857733250 +0.7360035777 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.4978661537 +0.7208879590 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.4933314323 +0.6936798096 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.4158663750 +0.6585056186 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +2.3448066711 +0.5942761302 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.3161094189 +0.6325405240 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.3858027458 +0.6981366277 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.4857733250 +0.7360035777 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.4978661537 +0.7208879590 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.4933314323 +0.6936798096 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.4158663750 +0.6585056186 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + +1.000000 +0.956527 +0.893289 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +2.5230839252 +1.5843364000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.4895863533 +1.1696257591 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.4623775482 +1.1552658081 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.4684240818 +1.1023610830 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.4291222095 +1.0827107430 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.4404592514 +1.0335849524 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.2520196438 +0.8513608575 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.8958805799 +1.0008234978 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.9641559124 +1.8145645857 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.4180946350 +1.6614115238 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +2.2596209049 +1.8362660408 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.2740566730 +1.8025777340 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.2564861774 +1.7174776793 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.2571020126 +1.6916089058 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.1537585258 +1.6076669693 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.2656359673 +1.6967003345 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.3143849373 +1.5801266432 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.5170593262 +1.5763850212 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.4375736713 +1.5696560144 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.4049286842 +1.5708878040 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.3029284477 +1.5619472265 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.2897469997 +1.5807425976 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.2638773918 +1.6675878763 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.1690220833 +1.5893656015 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.0359783173 +1.5573375225 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.9865438938 +1.5944323540 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000044 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +2.1895871162 +1.4839172363 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.3105440140 +1.5893367529 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000044 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +2.3634445667 +1.0820509195 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.4484074116 +1.2727953196 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.4102606773 +1.5016885996 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.4662935734 +1.5848810673 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000044 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +2.3738481998 +1.5450396538 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.4459269047 +1.5848981142 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000044 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +2.0353393555 +1.5615948439 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.1906967163 +1.6148593426 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.2628269196 +1.6980853081 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +2.5230839252 +1.5843364000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.4895863533 +1.1696257591 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.4623775482 +1.1552658081 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.4684240818 +1.1023610830 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.4291222095 +1.0827107430 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.4404592514 +1.0335849524 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.2520196438 +0.8513608575 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.8958805799 +1.0008234978 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.9641559124 +1.8145645857 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.4180946350 +1.6614115238 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + +1.000000 +0.425274 +0.412700 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +2.7233104706 +2.5863356590 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.8244018555 +2.5523245335 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.8300704956 +2.4550142288 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.7327582836 +2.4748542309 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +2.7233104706 +2.5863356590 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.8244018555 +2.5523245335 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.8300704956 +2.4550142288 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.7327582836 +2.4748542309 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.199183 +0.103351 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +3.3723738194 +2.6364078522 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.7513666153 +2.4968020916 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.4705331326 +2.9084985256 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.4374659061 +2.9028298855 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.7601568699 +2.4247820377 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.4489009380 +2.5476007462 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +3.3723738194 +2.6364078522 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.7513666153 +2.4968020916 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.4705331326 +2.9084985256 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.4374659061 +2.9028298855 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.7601568699 +2.4247820377 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.4489009380 +2.5476007462 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.993710 +0.865884 +0.455756 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +2.5060112476 +2.4228925705 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.4927842617 +2.5022521019 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.6666238308 +2.6373527050 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.7913346291 +2.4965837002 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.7563776970 +2.4247820377 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.6817402840 +2.3359746933 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +2.5060112476 +2.4228925705 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.4927842617 +2.5022521019 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.6666238308 +2.6373527050 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.7913346291 +2.4965837002 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.7563776970 +2.4247820377 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.6817402840 +2.3359746933 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000044 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +2.7399156094 +2.5027785301 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.7490060329 +2.4014191628 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.867226 +0.661151 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +2.5368225574 +1.5776361227 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.3124132156 +1.5820643902 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.1204843521 +1.9068020582 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.2577874660 +2.1311662197 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.2858777046 +2.1404097080 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.3642942905 +2.2348854542 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.4238154888 +2.3189690113 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.4606618881 +2.4153344631 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.5343546867 +2.5220921040 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.6533968449 +2.5230369568 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.6940224171 +2.3369193077 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.6779611111 +2.2311065197 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.5494711399 +2.1130115986 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.5362441540 +2.0175909996 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.4436557293 +1.9306731224 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.4020855427 +1.7936831713 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.4162571430 +1.7643955946 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.4899499416 +1.6699197292 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.5438024998 +1.6122894287 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +2.7904405594 +2.4878695011 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.7506039143 +2.4674096107 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.7527570724 +2.4167983532 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.7086136341 +2.3844933510 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.6784670353 +2.5061757565 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.6849269867 +2.3855702877 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.6935403347 +2.3112685680 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.6343235970 +2.2208144665 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.5481901169 +2.1249761581 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.5460367203 +2.0539050102 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.4695932865 +2.0086779594 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.4256050587 +1.9863604307 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.4305665493 +2.0464518070 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.4134767056 +1.9863604307 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.4085152149 +1.8645238876 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.3914253712 +1.8501901627 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.3577969074 +1.8744472265 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.3451173306 +1.9042172432 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.3043222427 +1.9383976460 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.3230659962 +1.8904347420 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.3974895477 +1.8022272587 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.4167845249 +1.7785215378 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.6764400005 +2.0580289364 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.7607867718 +2.4329109192 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.7833895683 +2.4715015888 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +2.7927613258 +2.5007205009 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.7894535065 +2.5354521275 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.8186717033 +2.5012717247 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000044 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +2.4758377075 +2.2368805408 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.3612978458 +2.2323353291 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000044 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +2.4222037792 +2.0332527161 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.4022047520 +1.8005352020 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000044 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +2.3308446407 +2.1487023830 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.3694791794 +2.1177945137 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.2826652527 +2.1396119595 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000044 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +2.4031138420 +1.7905355692 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.2705948353 +1.8845114708 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000044 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +2.4215135574 +1.7147305012 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.4994728565 +1.6505414248 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000044 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +2.3517527580 +1.8923494816 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.3026642799 +1.9409837723 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.3240268230 +1.8918949366 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.4022047520 +1.7932627201 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.993710 +0.865884 +0.455756 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +2.2398741245 +1.8304013014 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.2959613800 +1.7620874643 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.3388834000 +1.6891162395 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.3961124420 +1.6204373837 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.5492007732 +1.6046985388 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.5706617832 +1.5431737900 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.2745003700 +1.5503277779 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.1657648087 +1.8121657372 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +2.2596209049 +1.8362660408 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.2740566730 +1.8025777340 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.2564861774 +1.7174776793 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.2571020126 +1.6916089058 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.1537585258 +1.6076669693 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.2656359673 +1.6967003345 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.3143849373 +1.5801266432 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.5170593262 +1.5763850212 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.4375736713 +1.5696560144 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.4049286842 +1.5708878040 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.3029284477 +1.5619472265 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.2897469997 +1.5807425976 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.2638773918 +1.6675878763 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.1690220833 +1.5893656015 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.0359783173 +1.5573375225 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.9865438938 +1.5944323540 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +2.3250291348 +1.6362941265 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.3726427555 +1.6509437561 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +2.2856564522 +1.7095421553 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.3341856003 +1.7333477736 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +2.2435367107 +1.7809588909 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.2829093933 +1.8038488626 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +2.2398741245 +1.8304013014 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.2959613800 +1.7620874643 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.3388834000 +1.6891162395 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.3961124420 +1.6204373837 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.5492007732 +1.6046985388 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.5706617832 +1.5431737900 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.2745003700 +1.5503277779 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.1657648087 +1.8121657372 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +2.5368225574 +1.5776361227 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.3124132156 +1.5820643902 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.1204843521 +1.9068020582 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.2577874660 +2.1311662197 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.2858777046 +2.1404097080 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.3642942905 +2.2348854542 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.4238154888 +2.3189690113 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.4606618881 +2.4153344631 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.5343546867 +2.5220921040 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.6533968449 +2.5230369568 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.6940224171 +2.3369193077 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.6779611111 +2.2311065197 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.5494711399 +2.1130115986 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.5362441540 +2.0175909996 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.4436557293 +1.9306731224 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.4020855427 +1.7936831713 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.4162571430 +1.7643955946 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.4899499416 +1.6699197292 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.5438024998 +1.6122894287 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000044 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +2.6508233547 +2.4461178780 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.6934330463 +2.3289313316 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000044 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +2.4962911606 +2.3027868271 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.4685652256 +2.3232405186 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.4203858376 +2.3173317909 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.000000 +0.956527 +0.893289 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +2.7021799088 +2.5936534405 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.6804604530 +2.6252682209 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.7210681438 +2.6323978901 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.7394647598 +2.5969932079 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +2.7021799088 +2.5936534405 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.6804604530 +2.6252682209 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.7210681438 +2.6323978901 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.7394647598 +2.5969932079 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.000000 +0.956527 +0.893289 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +2.6022040844 +2.6067380905 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.5738275051 +2.6162171364 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.6085863113 +2.6455550194 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.6377620697 +2.6301221848 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +2.6022040844 +2.6067380905 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.5738275051 +2.6162171364 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.6085863113 +2.6455550194 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.6377620697 +2.6301221848 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + +0.725628 +0.548016 +0.310658 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +2.4821288586 +1.5174978971 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.4723033905 +1.4101768732 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.4929640293 +1.2574779987 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.6118931770 +1.3991636038 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.6334271431 +1.3975598812 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.6686396599 +1.3844029903 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.7253630161 +1.4713797569 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.8077456951 +1.5250403881 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.8083288670 +1.6053606272 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.8172287941 +1.6363179684 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.7765989304 +1.7005543709 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.7560906410 +1.7562775612 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.6605136395 +1.7802693844 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.5188899040 +1.6131000519 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +2.4821288586 +1.5174978971 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.4723033905 +1.4101768732 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.4929640293 +1.2574779987 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.6118931770 +1.3991636038 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.6334271431 +1.3975598812 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.6686396599 +1.3844029903 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.7253630161 +1.4713797569 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.8077456951 +1.5250403881 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.8083288670 +1.6053606272 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.8172287941 +1.6363179684 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.7765989304 +1.7005543709 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.7560906410 +1.7562775612 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.6605136395 +1.7802693844 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.5188899040 +1.6131000519 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000044 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +2.7098789215 +1.5401370525 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.7759239674 +1.6161308289 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.8114321232 +1.6196819544 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000044 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +2.5699770451 +1.5273530483 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.5536434650 +1.5372961760 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.6161375046 +1.3959619999 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000044 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +2.6402831078 +1.3945415020 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.6125867367 +1.4641432762 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.6267900467 +1.5728071928 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000044 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +2.5962531567 +1.4733761549 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.6338915825 +1.3973823786 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.528627 +0.351019 +0.113660 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +2.6399571896 +1.3859764338 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.6686778069 +1.3731280565 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.7389674187 +1.4668451548 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.8236174583 +1.5121920109 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.8168153763 +1.5499811172 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.7276303768 +1.5023669004 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +2.6399571896 +1.3859764338 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.6686778069 +1.3731280565 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.7389674187 +1.4668451548 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.8236174583 +1.5121920109 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.8168153763 +1.5499811172 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.7276303768 +1.5023669004 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + +1.000000 +0.425274 +0.412700 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +2.0827500820 +2.2944052219 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.2065162659 +2.1961503029 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.0581858158 +2.1470229626 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +2.0827500820 +2.2944052219 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.2065162659 +2.1961503029 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.0581858158 +2.1470229626 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.000000 +0.425274 +0.412700 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +1.7407400608 +2.2065427303 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.5990231037 +1.8248602152 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.8531687260 +1.5886704922 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.2537550926 +1.8314734697 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.0714128017 +2.2528359890 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +1.7407400608 +2.2065427303 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.5990231037 +1.8248602152 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.8531687260 +1.5886704922 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.2537550926 +1.8314734697 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.0714128017 +2.2528359890 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000044 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +2.1413869858 +1.6299481392 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.9887021780 +1.5965677500 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.000000 +0.425274 +0.412700 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +1.5291094780 +1.9958615303 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.6037470102 +1.7398319244 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.7029489279 +1.9146122932 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +2.1289272308 +2.3192894459 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.9769923687 +2.1745619774 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.6904865503 +2.0573325157 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.5863026381 +1.9661543369 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.5441807508 +1.7810704708 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.6356347799 +1.7370799780 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.6830983162 +1.6664634943 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.8324346542 +1.6201577187 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.9273616076 +1.6190000772 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.9713522196 +1.6027929783 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.9100288153 +1.8319303989 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.9638643265 +1.8521214724 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.0454416275 +1.6155271530 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.1739401817 +1.6977199316 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.0222885609 +1.7498140335 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.0257616043 +1.9848161936 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.0873415470 +2.0142347813 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.1142282486 +2.2219002247 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.1336464882 +2.2786722183 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +1.5291094780 +1.9958615303 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.6037470102 +1.7398319244 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.7029489279 +1.9146122932 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.000000 +0.425274 +0.412700 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +1.9939408302 +1.8758771420 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.0440142155 +1.7256604433 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.2150192261 +1.7313290834 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.2331399918 +1.9338170290 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.1082968712 +2.0153169632 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.0185427666 +1.9794160128 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +1.9939408302 +1.8758771420 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.0440142155 +1.7256604433 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.2150192261 +1.7313290834 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.2331399918 +1.9338170290 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.1082968712 +2.0153169632 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.0185427666 +1.9794160128 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +1.9327247143 +1.8954446316 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.8766834736 +1.9061930180 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.8706928492 +1.9677972794 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.9315646887 +1.9504202604 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +2.0684163570 +2.0049126148 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.0268504620 +2.0327258110 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.0415463448 +2.0857660770 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.0861401558 +2.0467555523 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +2.0619823933 +1.8688764572 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.1239023209 +1.7760193348 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +2.1739704609 +1.9364132881 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.2140667439 +1.8401788473 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + +0.047366 +0.043774 +0.070570 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +2.1604518890 +2.4438328743 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.7559245825 +2.2312772274 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.3705903292 +2.1486167908 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.4857476950 +1.9552503824 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.9183260202 +2.0659563541 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +2.1604518890 +2.4438328743 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.7559245825 +2.2312772274 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.3705903292 +2.1486167908 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.4857476950 +1.9552503824 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.9183260202 +2.0659563541 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.047366 +0.043774 +0.070570 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +1.6304326057 +2.0866215229 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.4414563179 +2.4482610226 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.4975587130 +2.5397779942 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.6038577557 +2.5604431629 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.9183260202 +2.3050813675 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +1.6304326057 +2.0866215229 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.4414563179 +2.4482610226 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.4975587130 +2.5397779942 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.6038577557 +2.5604431629 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.9183260202 +2.3050813675 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.830249 +0.854667 +0.704535 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +1.5875293016 +2.1678378582 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.6139824390 +2.0952827930 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.8422350883 +2.1776630878 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.9472917318 +2.3023672104 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.9283967018 +2.3409121037 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.8860716820 +2.3537604809 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.7983984947 +2.2524855137 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +1.8412290812 +2.2924029827 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.7928576469 +2.2281613350 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.8155318499 +2.2024648190 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.8586125374 +2.2432770729 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.8246014118 +2.1911280155 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.7868112326 +2.2039763927 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.7709393501 +2.2538580894 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +1.9447263479 +2.2985384464 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.9181004763 +2.2140302658 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.9123122692 +2.1781432629 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.6946747303 +2.1387832165 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.6645759344 +2.1133148670 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.5488113165 +2.1052114964 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.5071361065 +2.1052114964 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.4666184187 +2.0565903187 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.3855832815 +1.9813432693 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.3716914654 +2.0276491642 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.4017902613 +2.0681667328 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.3566421270 +2.1306796074 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.4423079491 +2.4490323067 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.5592302084 +2.4883923531 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.8023358583 +2.1630938053 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.8706369400 +2.1723549366 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.8972628117 +2.1989808083 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.8937898874 +2.2232913971 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +1.5875293016 +2.1678378582 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.6139824390 +2.0952827930 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.8422350883 +2.1776630878 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.9472917318 +2.3023672104 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.9283967018 +2.3409121037 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.8860716820 +2.3537604809 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.7983984947 +2.2524855137 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + +0.251431 +0.218903 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +1.7444638014 +2.2360360622 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.8230673075 +2.1385402679 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.8956243992 +2.1990027428 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.8903337717 +2.2246994972 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.8344043493 +2.1755735874 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.7830097675 +2.2413265705 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.8374276161 +2.2919640541 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.8094629049 +2.2995219231 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.251431 +0.218903 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +1.8045654297 +2.2212040424 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.8107566833 +2.2126905918 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.8173347712 +2.2034034729 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.8560298681 +2.2421002388 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.8544820547 +2.2521612644 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.8436474800 +2.2521612644 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +1.7467536926 +2.2379865646 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.8162876368 +2.1661872864 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.8502987623 +2.1676988602 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.8933795691 +2.2069995403 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.8964027166 +2.1790356636 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.8177992105 +2.1374676228 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.7240796089 +2.2357192039 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.7830322981 +2.3158321381 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.8321595192 +2.3158321381 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.8427407742 +2.2795546055 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.7830322981 +2.2364749908 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.7739626169 +2.2455444336 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.8291362524 +2.2969377041 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.8193107843 +2.3097858429 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.7709393501 +2.2939145565 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +1.7444638014 +2.2360360622 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.8230673075 +2.1385402679 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.8956243992 +2.1990027428 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.8903337717 +2.2246994972 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.8344043493 +2.1755735874 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.7830097675 +2.2413265705 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.8374276161 +2.2919640541 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.8094629049 +2.2995219231 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.000000 +1.000000 +1.000000 +1.000000 + + + + + + + + + + +1.8009487391 +2.2816836834 + + + + + + + + + + + + + + + + + + + + + +1.000000 +1.000000 +1.000000 +1.000000 + + + + + + + + + + +1.7687022686 +2.2407047749 + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +1.8045654297 +2.2212040424 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.8107566833 +2.2126905918 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.8173347712 +2.2034034729 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.8560298681 +2.2421002388 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.8544820547 +2.2521612644 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.8436474800 +2.2521612644 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000044 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +2.0049037933 +2.2728841305 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.0134067535 +2.3040611744 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.9455310106 +2.2966959476 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + +1.000000 +0.425274 +0.412700 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +1.4573062658 +2.0364861488 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.5366677046 +2.1319067478 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.6273665428 +2.1460781097 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.6953905821 +2.1243486404 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.5659558773 +1.9457893372 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +1.9103065729 +1.6209229231 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.8017270565 +1.5865218639 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.6866973639 +1.5994222164 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.6705716848 +1.6187728643 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.6254198551 +1.6176978350 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.5727425814 +1.6402734518 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.5469415188 +1.6821998358 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.5191015005 +1.6997669935 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.5032770634 +1.6928868294 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.5129092932 +1.6701827049 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.5211654902 +1.6509184837 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.5445580482 +1.6220222712 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.5576303005 +1.5717977285 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.5583183765 +1.5545976162 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.5521261692 +1.5552855730 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.5404299498 +1.5717977285 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.5321737528 +1.6041340828 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.5211654902 +1.6426624060 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.5129092932 +1.6626145840 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.5074051619 +1.6839427948 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.5039651394 +1.6963269711 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.4633721113 +1.6516065598 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.4833246469 +1.6784387827 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.5080932379 +1.7554954290 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.4158990383 +1.8635125160 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.3587937355 +1.8642004728 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.3505375385 +1.8187921047 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.3498494625 +1.8084719181 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.3092565536 +1.7596235275 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.3305851221 +1.7018309832 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.3037524223 +1.6516065598 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.3092565536 +1.5449655056 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.2576553822 +1.5532215834 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.2968722582 +1.8930968046 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.3966345787 +1.9254330397 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.5197894573 +1.7933357954 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.5734547377 +1.9536412954 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.5762068033 +1.9935456514 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.6181757450 +2.0286340714 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.6057914495 +1.9873536825 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.5851509571 +1.9639613628 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.5411180258 +1.7644395828 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.6071674824 +1.6839427948 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.6966096163 +1.6646785736 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.8314607143 +1.6192702055 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +1.9447263479 +2.2985384464 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.9181004763 +2.2140302658 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.9123122692 +2.1781432629 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.6946747303 +2.1387832165 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.6691039801 +2.1382365227 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.5488113165 +2.1052114964 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.4943403006 +2.0934164524 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.4666184187 +2.0565903187 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.3566421270 +2.1306796074 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.4423079491 +2.4490323067 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.5592302084 +2.4883923531 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.8023358583 +2.1630938053 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.8706369400 +2.1723549366 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.8972628117 +2.1989808083 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.8937898874 +2.2232913971 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +1.4573062658 +2.0364861488 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.5366677046 +2.1319067478 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.6273665428 +2.1460781097 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.6953905821 +2.1243486404 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.5659558773 +1.9457893372 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +1.5356394053 +2.0899236202 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.6300886869 +2.1460604668 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + +0.047366 +0.043774 +0.070570 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +1.5427718163 +1.9460848570 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.6151072979 +2.0126421452 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.7092165947 +2.1454980373 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.9343407154 +2.1842474937 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.1377024651 +2.3439493179 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.8660653830 +2.0310945511 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +2.1289272308 +2.3192894459 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.9769923687 +2.1745619774 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.6904865503 +2.0573325157 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.5863026381 +1.9661543369 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.5441807508 +1.7810704708 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.6356347799 +1.7370799780 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.6830983162 +1.6664634943 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.8324346542 +1.6201577187 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.9273616076 +1.6190000772 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.9713522196 +1.6027929783 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.9250463247 +1.7961199284 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.9632487297 +1.8262187243 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.0454416275 +1.6155271530 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.1739401817 +1.6977199316 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.0222885609 +1.7498140335 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.0257616043 +1.9848161936 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.1542603970 +2.0033385754 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.1519451141 +2.1885619164 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.1531026363 +2.2672820091 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +1.5427718163 +1.9460848570 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.6151072979 +2.0126421452 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.7092165947 +2.1454980373 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.9343407154 +2.1842474937 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.1377024651 +2.3439493179 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.8660653830 +2.0310945511 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + +0.993710 +0.865884 +0.455756 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +1.3316506147 +1.8163573742 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.2985833883 +1.9032751322 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.4469137192 +2.0506575108 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.5829619169 +1.9495682716 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.5385572910 +1.7625061274 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.4563615322 +1.7606165409 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000044 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +1.3203703165 +1.8545982838 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.3574045897 +1.9052357674 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +1.3316506147 +1.8163573742 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.2985833883 +1.9032751322 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.4469137192 +2.0506575108 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.5829619169 +1.9495682716 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.5385572910 +1.7625061274 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.4563615322 +1.7606165409 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.867226 +0.661151 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +1.3319516182 +1.8876197338 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.3532105684 +1.8639987707 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.3257426023 +1.8092223406 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.2949078083 +1.7554078102 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.3015583754 +1.6876862049 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.2785834074 +1.6042435169 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.2912801504 +1.5510336161 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.5041007996 +1.3859621286 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.6764130592 +1.3418221474 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.6963649988 +1.3267056942 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.7084571123 +1.2886122465 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.7417103052 +1.2027509212 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.7900786400 +1.1694947481 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.7798004150 +1.0933078527 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.7931016684 +0.9832602143 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.0301065445 +0.9850742221 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.0524768829 +1.1622388363 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.1498181820 +1.3944272995 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.1316800117 +1.4712188244 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.9617862701 +1.6084760427 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.8438884020 +1.6187552214 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.6897143126 +1.6653138399 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.6443690062 +1.6471741199 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.5941869020 +1.6574532986 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.5542830229 +1.6707557440 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.5119607449 +1.7124772072 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.5161929131 +1.7584310770 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.4176424742 +1.8993163109 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.993710 +0.865884 +0.455756 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +1.9980096817 +0.9826781750 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.1149740219 +1.3919967413 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.0244657993 +1.4685699940 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.9297804832 +1.5353975296 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.8169934750 +1.5743802786 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.6652182341 +1.6286776066 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.6150907278 +1.6815828085 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.8796528578 +1.7414491177 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.2458627224 +1.4741389751 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.1135816574 +0.9757169485 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +1.9103065729 +1.6209229231 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.8017270565 +1.5865218639 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.6866973639 +1.5994222164 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.6705716848 +1.6187728643 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.6254198551 +1.6176978350 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.5727425814 +1.6402734518 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.5469415188 +1.6821998358 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.5191015005 +1.6997669935 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.5032770634 +1.6928868294 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.5129092932 +1.6701827049 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.5211654902 +1.6509184837 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.5445580482 +1.6220222712 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.5576303005 +1.5717977285 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.5583183765 +1.5545976162 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.5521261692 +1.5552855730 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.5404299498 +1.5717977285 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.5321737528 +1.6041340828 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.5211654902 +1.6426624060 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.5129092932 +1.6626145840 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.5074051619 +1.6839427948 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.5039651394 +1.6963269711 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.4633721113 +1.6516065598 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.4833246469 +1.6784387827 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.5046530962 +1.7561835051 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.4158990383 +1.8635125160 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.3587937355 +1.8642004728 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.3505375385 +1.8187921047 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.3498494625 +1.8084719181 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.3092565536 +1.7596235275 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.3305851221 +1.7018309832 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.3037524223 +1.6516065598 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.3092565536 +1.5449655056 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.2576553822 +1.5532215834 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.2968722582 +1.8930968046 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.3966345787 +1.9254330397 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.5197894573 +1.7933357954 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.5734547377 +1.9536412954 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.5762068033 +1.9935456514 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.6181757450 +2.0286340714 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.6057914495 +1.9873536825 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.5851509571 +1.9639613628 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.5411180258 +1.7644395828 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.6071674824 +1.6839427948 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.6966096163 +1.6646785736 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.8314607143 +1.6192702055 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +1.9980096817 +0.9826781750 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.1149740219 +1.3919967413 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.0244657993 +1.4685699940 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.9297804832 +1.5353975296 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.8169934750 +1.5743802786 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.6652182341 +1.6286776066 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.6150907278 +1.6815828085 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.8796528578 +1.7414491177 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.2458627224 +1.4741389751 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.1135816574 +0.9757169485 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +1.3319516182 +1.8876197338 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.3532105684 +1.8639987707 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.3257426023 +1.8092223406 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.2949078083 +1.7554078102 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.3015583754 +1.6876862049 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.2785834074 +1.6042435169 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.2912801504 +1.5510336161 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.5041007996 +1.3859621286 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.6764130592 +1.3418221474 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.6963649988 +1.3267056942 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.7084571123 +1.2886122465 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.7417103052 +1.2027509212 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.7900786400 +1.1694947481 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.7798004150 +1.0933078527 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.7931016684 +0.9832602143 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.0301065445 +0.9850742221 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.0524768829 +1.1622388363 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.1498181820 +1.3944272995 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.1316800117 +1.4712188244 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.9617862701 +1.6084760427 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.8438884020 +1.6187552214 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.6897143126 +1.6653138399 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.6443690062 +1.6471741199 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.5941869020 +1.6574532986 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.5542830229 +1.6707557440 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.5119607449 +1.7124772072 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.5161929131 +1.7584310770 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.4176424742 +1.8993163109 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000044 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +1.8681814671 +1.1582851410 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.7774908543 +1.1830760241 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000044 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +1.9552445412 +1.3058215380 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.9038531780 +1.0385628939 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000044 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +1.7368179560 +1.3444452286 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.7798987627 +1.3399105072 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.8358281851 +1.4154887199 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.6713211536 +1.3408852816 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000044 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +1.8335607052 +1.3399105072 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.7693175077 +1.3255506754 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.6944929361 +1.3270622492 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000044 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +1.8509442806 +1.3074119091 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.7776312828 +1.2817152739 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.7088532448 +1.2900289297 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000044 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +1.8464094400 +1.2900289297 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.8010284901 +1.2823783159 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000044 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +1.6461215019 +1.5840282440 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.5954827070 +1.6565833092 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000044 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +1.6854232550 +1.5998996496 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.6612375975 +1.6293752193 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000044 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +1.6060639620 +1.5265887976 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.6030406952 +1.5878071785 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.5531576872 +1.6716989279 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000044 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +1.4851354361 +1.6626296043 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.4556590319 +1.6520485878 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.5123443604 +1.7109996080 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000044 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +1.5070537329 +1.5825166702 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.5161232948 +1.6528043747 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.5032746792 +1.6936166286 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000044 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +1.5183907747 +1.6475139856 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.5380415916 +1.5810050964 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.5584483147 +1.5522853136 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.5440880060 +1.6195499897 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.5161232948 +1.6626296043 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000044 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +1.5221697092 +1.4729282856 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.4428104162 +1.5008921623 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.3770555258 +1.5084500313 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.2954287529 +1.5492622852 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000044 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +1.4730424881 +1.7654160261 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.3264167309 +1.8077398539 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.4382755756 +1.7699506283 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.000000 +0.956527 +0.893289 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +1.4670299292 +1.9651752710 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.4670299292 +2.0052731037 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.5044533014 +2.0239851475 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.5026712418 +1.9856697321 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.000000 +1.000000 +1.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +1.8555923700 +1.5478971004 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.8561784029 +1.5941891670 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.9048131704 +1.6012209654 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.9100868702 +1.5572726727 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +1.8555923700 +1.5478971004 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.8561784029 +1.5941891670 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.9048131704 +1.6012209654 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.9100868702 +1.5572726727 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.000000 +1.000000 +1.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +1.9569637775 +1.4840257168 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.9575498104 +1.5303177834 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.0061845779 +1.5373494625 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.0114583969 +1.4934012890 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.000000 +1.000000 +1.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +1.9569637775 +1.4840257168 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.9575498104 +1.5303177834 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.0061845779 +1.5373494625 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.0114583969 +1.4934012890 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +1.9569637775 +1.4840257168 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.9575498104 +1.5303177834 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.0061845779 +1.5373494625 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.0114583969 +1.4934012890 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.000000 +1.000000 +1.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +2.0472018719 +1.4072628021 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.0477879047 +1.4535548687 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.0964226723 +1.4605866671 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.1016964912 +1.4166383743 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +2.0472018719 +1.4072628021 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.0477879047 +1.4535548687 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.0964226723 +1.4605866671 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.1016964912 +1.4166383743 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +1.4670299292 +1.9651752710 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.4670299292 +2.0052731037 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.5044533014 +2.0239851475 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.5026712418 +1.9856697321 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.000000 +0.956527 +0.893289 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +1.4021714926 +1.9889998436 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.4077025652 +2.0287141800 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.4473491907 +2.0420854092 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.4358438253 +2.0079462528 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +1.4021714926 +1.9889998436 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.4077025652 +2.0287141800 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.4473491907 +2.0420854092 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.4358438253 +2.0079462528 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +2.4269838333 +1.4116210938 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.3401799202 +1.1822717190 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.1044304371 +1.2434669733 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.1401414871 +1.3551838398 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.1590991020 +1.4131451845 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.1547660828 +1.4033946991 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.0951845646 +1.2890970707 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.0521602631 +1.1668008566 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.0166125298 +1.1727253199 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.9260504246 +1.2370474339 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.9718868732 +1.3414974213 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.9080013037 +1.2503366470 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.8642650843 +1.2937524319 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.8600332737 +1.3140646219 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.8507231474 +1.3479183912 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.8363348246 +1.3927745819 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.8321028948 +1.4173185825 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.7838596106 +1.3970062733 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.6814483404 +1.4207038879 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.6027355194 +1.4638674259 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.4952460527 +1.4841797352 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.3852174282 +1.5061846972 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.2997336388 +1.5459628105 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.4859359264 +1.3978526592 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.6924512386 +1.2429717779 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.7627002001 +0.9459052086 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.5836832523 +0.0470883995 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.6158454418 +0.2781401873 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.4922747612 +0.3179183304 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.5472891331 +0.3576964736 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.6386973858 +0.3864721656 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.6429293156 +0.4076307416 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.5345933437 +0.3830867708 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.4778864384 +0.3517720699 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.4838109016 +0.4270966351 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.4829645157 +0.4744918942 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.5709874630 +0.5159627199 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.5777585506 +0.5413530469 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.5625238419 +0.5278115273 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.5464427471 +0.5083456039 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.4931211472 +0.4846479893 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.4457242489 +0.5041139126 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.4778864384 +0.5464310646 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.5447499752 +0.5853629112 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.5532135963 +0.6090605259 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.5100486279 +0.5904409289 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.4389531612 +0.5642042756 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.3949418068 +0.6141385436 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.4948139191 +0.6903094649 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.4990456104 +0.7046973109 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.4000198841 +0.6691508889 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.3983271122 +0.7072363496 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.4770400524 +0.7351657152 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.4965066910 +0.8147220016 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.4855036736 +0.8172609806 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.4668834209 +0.8384196162 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.4821181297 +0.7715584636 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.4541878700 +0.7732511759 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.3932490349 +0.7537852526 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.3898634911 +0.8756586909 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.4533414841 +0.9315173626 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.4931211472 +0.8824294806 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.5735266209 +0.8883538842 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.5819904804 +1.1117885113 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.5659093857 +1.3394550085 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.4931211472 +1.2582060099 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.4846572876 +1.3716160059 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.4651906490 +1.4638674259 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +2.4629135132 +1.4525072575 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.5545961857 +1.4636579752 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.5533573627 +1.5318013430 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.5731806755 +1.4648969173 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.5917649269 +1.4921542406 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.6385748386 +1.6006678343 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.6195473671 +1.5518271923 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.6125705242 +1.4941065311 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.6969261169 +1.4712718725 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.7020001411 +1.4249684811 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.8237767220 +1.5112323761 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.7096111774 +1.4154540300 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.7533748150 +1.4084768295 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.7368841171 +1.3241157532 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.8187026978 +1.3818365335 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.7514719963 +1.3095270395 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.7812819481 +1.2727379799 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.8288509846 +1.3773964643 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.8168001175 +1.3501218557 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.8650033474 +1.0691297054 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.8332905769 +1.0329749584 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.7432267666 +1.1750568151 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.7502033710 +1.1978913546 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.7280046940 +1.2714694738 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.6943891048 +1.3234814405 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.6633107662 +1.3666135073 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.5643672943 +1.3393387794 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.4945993423 +1.2619550228 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.4666922092 +1.4319456816 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +2.3673503399 +2.1237382889 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.3422605991 +2.1493191719 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.2979846001 +2.1409561634 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.3309457302 +2.1321012974 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +2.8093767166 +1.5997904539 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.8121554852 +1.6174520254 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.7822937965 +1.6181985140 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.7031605244 +1.5286165476 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.7854042053 +1.6015028954 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +2.4947669506 +2.3067409992 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.4716448784 +2.3337979317 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.4234333038 +2.3337979317 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.4273688793 +2.3210072517 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.4514749050 +2.3254349232 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + +0.227280 +0.010169 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +0.6989920139 +1.4286180735 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.6190404296 +1.4858734608 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.5686357617 +1.5178104639 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.4965003431 +1.4897031784 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.4942231178 +1.3882497549 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.5715446472 +1.3221318722 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.5665019751 +1.2784267664 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.5960641503 +1.2541767359 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.6171257496 +1.3365153074 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.5654291511 +1.3977904320 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.5676556230 +1.4374393225 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.6362642050 +1.3786312342 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.9857653975 +1.7417933941 + + + + +0.7784197330 +0.7424194813 + + + + + +0.491727 +0.047432 +0.000000 +1.000000 + + +0.095765 +0.002050 +0.000000 +1.000000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +0.6989920139 +1.4286180735 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.6190404296 +1.4858734608 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.5686357617 +1.5178104639 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.4965003431 +1.4897031784 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.4942231178 +1.3882497549 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.5715446472 +1.3221318722 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.5665019751 +1.2784267664 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.5960641503 +1.2541767359 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.6171257496 +1.3365153074 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.5654291511 +1.3977904320 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.5676556230 +1.4374393225 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.6362642050 +1.3786312342 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + +1.000000 +1.000000 +1.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +0.5854253769 +1.2850213051 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.4802344441 +1.3276691437 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.4824376702 +1.3523893356 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.6079278588 +1.3020467758 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +0.5854253769 +1.2850213051 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.4802344441 +1.3276691437 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.4824376702 +1.3523893356 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.6079278588 +1.3020467758 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.000000 +1.000000 +1.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +0.5970864296 +1.2743499279 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.4802344441 +1.3276691437 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.4851736426 +1.3543488979 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.6123342514 +1.2960714102 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.023682 +0.023682 +0.023682 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +0.5045877099 +1.3212581873 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.5276185274 +1.3276635408 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.5158426166 +1.3492242098 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.4807569385 +1.3570365906 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.4772678912 +1.3265185356 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.485434 +0.208977 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +0.5241734385 +1.3335666656 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.5217010975 +1.3257366419 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.5191172957 +1.3237814903 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.5151416659 +1.3240238428 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.5175067186 +1.3266259432 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.5189895034 +1.3284252882 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.5138847828 +1.3249688148 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.5130562782 +1.3267798424 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.5161266923 +1.3311347961 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.5105516911 +1.3265099525 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.5087151527 +1.3266100883 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.5118484497 +1.3314189911 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.5075002313 +1.3278578520 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.5040203929 +1.3283399343 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.5089737773 +1.3318171501 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.5073887706 +1.3337328434 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.5048213601 +1.3330091238 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.5025959015 +1.3280745745 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.5016160011 +1.3299065828 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.5023121834 +1.3338192701 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.5007874966 +1.3317174911 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.4996537566 +1.3290989399 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.4978964329 +1.3308842182 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.4991814494 +1.3334819078 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.4964161813 +1.3335565329 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.4949589372 +1.3308285475 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.4933156669 +1.3312103748 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.4940629900 +1.3332656622 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.4929364026 +1.3340384960 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.4911300540 +1.3321299553 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.4895496070 +1.3329656124 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.4910907149 +1.3362988234 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.4875827432 +1.3332381248 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.4875270128 +1.3361755610 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.4875367880 +1.3440384865 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.4897341430 +1.3454303741 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.4915307760 +1.3394761086 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.4914704859 +1.3434935808 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.4936259091 +1.3445827961 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.4940307736 +1.3408260345 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.4956786335 +1.3393640518 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.4969263375 +1.3405791521 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.4982952178 +1.3437819481 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.4997708201 +1.3421896696 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.4996077716 +1.3398993015 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.5017330647 +1.3429973125 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.5024451017 +1.3381184340 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.5031877756 +1.3412537575 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.5042376518 +1.3432672024 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.5058436394 +1.3415026665 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.5079408884 +1.3410580158 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.5093116760 +1.3387093544 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.5115438104 +1.3370122910 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.5104290247 +1.3400964737 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.5119839311 +1.3401895761 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.5132035017 +1.3378618956 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.5141230226 +1.3400474787 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.5158291459 +1.3401196003 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.5165785551 +1.3366234303 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.5188177824 +1.3383178711 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.5202679634 +1.3376543522 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.5195881128 +1.3349728584 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.5226257443 +1.3368650675 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.5212569833 +1.3336622715 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.5237988234 +1.3353148699 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.169208 +0.169208 +0.169208 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +0.5142942667 +1.3201318979 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.5234026909 +1.3268886805 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.5246672630 +1.3393578529 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.5186645389 +1.3438903093 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.5229283571 +1.3368232250 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.5211751461 +1.3275055885 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.5129908323 +1.3218544722 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.5095947981 +1.3229416609 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.5127163529 +1.3254390955 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.5177071095 +1.3302990198 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.5173258185 +1.3386785984 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.5156058669 +1.3418467045 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.5114441514 +1.3451987505 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.5110878348 +1.3426266909 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.5152960420 +1.3384971619 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.5149280429 +1.3336138725 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.5121392608 +1.3290656805 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.5075349808 +1.3247690201 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.5016552806 +1.3257375956 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.5058313012 +1.3291684389 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.5089390874 +1.3349059820 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.5072216392 +1.3425453901 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.5023244619 +1.3461534977 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.5018332601 +1.3448338509 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.5042049289 +1.3408045769 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.5044931769 +1.3339797258 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.5020325184 +1.3284610510 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.4973259866 +1.3278793097 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.4997073710 +1.3317128420 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.5005503297 +1.3366847038 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.5001317263 +1.3436816931 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.4968568087 +1.3467566967 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.4976271689 +1.3434118032 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.4979363382 +1.3367383480 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.4948797822 +1.3291434050 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.4912276268 +1.3294950724 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.4942561388 +1.3335473537 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.4949339032 +1.3417803049 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.4936632812 +1.3459655046 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.4888335168 +1.3489475250 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.4917219579 +1.3453092575 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.4928714931 +1.3391361237 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.4906342626 +1.3318902254 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.4871681631 +1.3291320801 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.4887419939 +1.3349279165 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.4894080460 +1.3408493996 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.4881536961 +1.3462660313 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.4840804935 +1.3491432667 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.4814542234 +1.3368625641 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.4847822189 +1.3263787031 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.5160304904 +1.3181952238 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +0.5970864296 +1.2743499279 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.4802344441 +1.3276691437 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.4851736426 +1.3543488979 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.6123342514 +1.2960714102 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + +1.000000 +1.000000 +1.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +0.6015774608 +1.2754963636 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.4898584187 +1.2554258108 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.4785291851 +1.2775074244 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.6148766875 +1.3014305830 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +0.6015774608 +1.2754963636 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.4898584187 +1.2554258108 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.4785291851 +1.2775074244 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.6148766875 +1.3014305830 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.000000 +1.000000 +1.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +0.6171340942 +1.2726950645 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.4898584187 +1.2554258108 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.4785291851 +1.2775074244 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.6184369326 +1.2992020845 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.023682 +0.023682 +0.023682 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +0.5138751268 +1.2630008459 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.5299336314 +1.2807087898 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.5084686279 +1.2926578522 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.4746277332 +1.2805404663 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.4879635870 +1.2528697252 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.485434 +0.208977 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +0.5238698721 +1.2838624716 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.5259577036 +1.2759212255 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.5248160362 +1.2728888988 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.5213245749 +1.2709721327 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.5219358802 +1.2744349241 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.5222297311 +1.2767478228 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.5197572708 +1.2711006403 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.5180901289 +1.2721899748 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.5183626413 +1.2775114775 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.5161160231 +1.2706251144 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.5145094395 +1.2697297335 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.5145928860 +1.2754685879 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.5128160715 +1.2701364756 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.5096160173 +1.2686870098 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.5119493604 +1.2742712498 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.5095865130 +1.2750455141 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.5078014731 +1.2730631828 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.5085528493 +1.2677024603 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.5067465305 +1.2687287331 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.5052471757 +1.2724093199 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.5050793886 +1.2698180676 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.5055180788 +1.2669986486 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.5030791759 +1.2675707340 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.5027796030 +1.2704532146 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.5004011989 +1.2690405846 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.5006246567 +1.2659559250 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.4990311563 +1.2654018402 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.4985662997 +1.2675387859 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.4972011149 +1.2675911188 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.4966920316 +1.2650130987 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.4949095249 +1.2648763657 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.4944339991 +1.2685176134 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.4931007922 +1.2640571594 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.4914859831 +1.2665116787 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.4872980118 +1.2731664181 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.4884135425 +1.2755161524 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.4931105673 +1.2714394331 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.4909155369 +1.2748049498 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.4921570718 +1.2768763304 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.4945043921 +1.2739152908 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.4966781139 +1.2735583782 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.4970848858 +1.2752517462 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.4965332747 +1.2786908150 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.4986309111 +1.2781318426 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.4997153878 +1.2761077881 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.4998593926 +1.2798620462 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.5030652285 +1.2761160135 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.5020200610 +1.2791638374 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.5018334389 +1.2814269066 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.5041332841 +1.2807917595 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.5061441660 +1.2815349102 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.5085569024 +1.2802802324 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.5113502145 +1.2800363302 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.5087615252 +1.2820496559 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.5100268126 +1.2829581499 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.5123004913 +1.2816405296 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.5119116902 +1.2839795351 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.5133160949 +1.2849510908 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.5158156753 +1.2823942900 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.5168051124 +1.2850222588 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.5183855295 +1.2852350473 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.5192416310 +1.2826045752 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.5208007097 +1.2858259678 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.5213524103 +1.2823868990 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.5226200819 +1.2851408720 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.169208 +0.169208 +0.169208 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +0.5226848125 +1.2672286034 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.5267819166 +1.2778036594 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.5211968422 +1.2890236378 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.5137016177 +1.2896529436 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.5210790038 +1.2859519720 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.5245687962 +1.2771365643 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.5206632614 +1.2679896355 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.5172110796 +1.2670967579 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.5185181499 +1.2708747387 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.5201451778 +1.2776480913 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.5153507590 +1.2845311165 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.5122055411 +1.2862924337 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.5068970919 +1.2869062424 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.5079684258 +1.2845410109 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.5137310624 +1.2832945585 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.5160259604 +1.2789682150 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.5160947442 +1.2736337185 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.5144939423 +1.2675428391 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.5090045929 +1.2652242184 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.5107053518 +1.2703541517 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.5102716088 +1.2768648863 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.5047421455 +1.2824089527 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.4986750782 +1.2828468084 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.4989639819 +1.2814686298 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.5031200647 +1.2793267965 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.5070059896 +1.2737090588 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.5078702569 +1.2677285671 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.5042003989 +1.2647249699 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.5041684508 +1.2692378759 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.5022279620 +1.2738922834 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.4981398880 +1.2795861959 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.4937292933 +1.2804390192 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.4961658120 +1.2780213356 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.4999887049 +1.2725427151 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.5014570355 +1.2644884586 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.4981808066 +1.2628368139 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.4985793531 +1.2678800821 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.4947588742 +1.2752043009 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.4914507866 +1.2780655622 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.4857749045 +1.2780098915 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.4901592731 +1.2764744759 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.4944258034 +1.2718675137 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.4964007437 +1.2645457983 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.4949414134 +1.2603634596 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.4931793213 +1.2661048174 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.4905824363 +1.2714681625 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.4866309762 +1.2753794193 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.4816508293 +1.2756389380 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.4859836400 +1.2638517618 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.4943931103 +1.2567615509 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.5251867771 +1.2665172815 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +0.6170153022 +1.2773718834 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.5790545344 +1.2821836472 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.5271925926 +1.2928763628 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.4785386324 +1.2784411907 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.4785386324 +1.2656099796 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.4892317951 +1.2538479567 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.5346778035 +1.2656099796 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.6159459949 +1.2720255852 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +0.6171340942 +1.2726950645 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.4898584187 +1.2554258108 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.4785291851 +1.2775074244 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.6184369326 +1.2992020845 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + +0.227280 +0.010169 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +0.6074039340 +1.2700219154 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.5855522156 +1.2453677654 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.5446501970 +1.2588155270 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.5272808671 +1.3081238270 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.5715446472 +1.3563114405 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.5653813481 +1.2907538414 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.9857653975 +1.7417933941 + + + + +0.7784197330 +0.7424194813 + + + + + +0.491727 +0.047432 +0.000000 +1.000000 + + +0.095765 +0.002050 +0.000000 +1.000000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +0.6074039340 +1.2700219154 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.5855522156 +1.2453677654 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.5446501970 +1.2588155270 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.5272808671 +1.3081238270 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.5715446472 +1.3563114405 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.5653813481 +1.2907538414 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + +1.000000 +1.000000 +1.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +1.1352639198 +1.2730411291 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.2468224764 +1.2520971298 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.2583241463 +1.2740893364 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.1255266666 +1.2995253801 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +1.1352639198 +1.2730411291 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.2468224764 +1.2520971298 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.2583241463 +1.2740893364 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.1255266666 +1.2995253801 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.000000 +1.000000 +1.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +1.1196858883 +1.2703615427 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.2468224764 +1.2520971298 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.2570806742 +1.2772164345 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.1185904741 +1.2968779802 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.023682 +0.023682 +0.023682 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +1.2228658199 +1.2598596811 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.2069463730 +1.2776927948 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.2285041809 +1.2894735336 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.2622492313 +1.2770917416 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.2486972809 +1.2495261431 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.485434 +0.208977 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +1.2130346298 +1.2807990313 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.2108846903 +1.2728742361 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.2120026350 +1.2698330879 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.2154790163 +1.2678890228 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.2148947716 +1.2713565826 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.2146190405 +1.2736716270 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.2170472145 +1.2680052519 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.2187228203 +1.2690815926 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.2184920311 +1.2744050026 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.2206846476 +1.2675013542 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.2222841978 +1.2665933371 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.2222455740 +1.2723327875 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.2239806652 +1.2669868469 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.2271692753 +1.2655124664 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.2248797417 +1.2711147070 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.2272485495 +1.2718704939 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.2290179729 +1.2698743343 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.2282246351 +1.2645195723 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.2300390005 +1.2655317783 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.2315671444 +1.2692004442 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.2317146063 +1.2666079998 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.2312538624 +1.2637920380 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.2336971760 +1.2643449306 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.2340192795 +1.2672250271 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.2363865376 +1.2657939196 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.2361390591 +1.2627110481 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.2377281189 +1.2621445656 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.2382096052 +1.2642778158 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.2395752668 +1.2643194199 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.2400641441 +1.2617374659 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.2418454885 +1.2615867853 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.2423495054 +1.2652242184 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.2436478138 +1.2607535124 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.2452816963 +1.2631952763 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.2495216131 +1.2698169947 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.2484245300 +1.2721754313 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.2436957359 +1.2681356668 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.2459170818 +1.2714837790 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.2446917295 +1.2735649347 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.2423213720 +1.2706222534 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.2401448488 +1.2702823877 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.2397513390 +1.2719788551 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.2403298616 +1.2754136324 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.2382279634 +1.2748709917 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.2371276617 +1.2728555202 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.2370129824 +1.2766107321 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.2337779999 +1.2728899717 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.2348469496 +1.2759295702 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.2350512743 +1.2781909704 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.2327466011 +1.2775739431 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.2307415009 +1.2783328295 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.2283190489 +1.2770969868 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.2255239487 +1.2768750191 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.2281283140 +1.2788679600 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.2268701792 +1.2797863483 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.2245862484 +1.2784864902 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.2249933481 +1.2808225155 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.2235965729 +1.2818049192 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.2210770845 +1.2792677879 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.2201082706 +1.2819033861 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.2185294628 +1.2821285725 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.2176529169 +1.2795048952 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.2161190510 +1.2827383280 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.2155404091 +1.2793036699 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.2142943144 +1.2820675373 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.169208 +0.169208 +0.169208 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +1.2140895128 +1.2641562223 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.2100752592 +1.2747629881 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.2157479525 +1.2859389782 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.2232478857 +1.2865097523 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.2158417702 +1.2828665972 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.2122830153 +1.2740787268 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.2161169052 +1.2649015188 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.2195619345 +1.2639816999 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.2182846069 +1.2677696943 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.2167105675 +1.2745556831 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.2215586901 +1.2814009190 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.2247176170 +1.2831375599 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.2300306559 +1.2837098837 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.2289408445 +1.2813531160 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.2231686115 +1.2801517248 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.2208399773 +1.2758435011 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.2207294703 +1.2705096006 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.2222825289 +1.2644064426 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.2277535200 +1.2620449066 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.2260930538 +1.2671880722 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.2265777588 +1.2736951113 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.2321503162 +1.2791957855 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.2382206917 +1.2795861959 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.2379209995 +1.2782102823 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.2337483168 +1.2761009932 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.2298184633 +1.2705137730 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.2289074659 +1.2645404339 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.2325537205 +1.2615081072 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.2326209545 +1.2660206556 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.2345978022 +1.2706598043 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.2387303114 +1.2763215303 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.2431474924 +1.2771397829 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.2406921387 +1.2747412920 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.2368264198 +1.2692927122 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.2352951765 +1.2612501383 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.2385584116 +1.2595729828 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.2381992340 +1.2646191120 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.2420769930 +1.2719131708 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.2454073429 +1.2747485638 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.2510826588 +1.2746485472 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.2466863394 +1.2731474638 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.2423839569 +1.2685739994 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.2403517962 +1.2612679005 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.2417782545 +1.2570743561 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.2435852289 +1.2628017664 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.2462240458 +1.2681444883 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.2502059937 +1.2720247507 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.2551879883 +1.2722452879 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.2507630587 +1.2604923248 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.2422984838 +1.2534682751 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.2115820646 +1.2634645700 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +1.1196858883 +1.2703615427 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.2468224764 +1.2520971298 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.2570806742 +1.2772164345 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.1185904741 +1.2968779802 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + +1.000000 +1.000000 +1.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +1.1194289923 +1.2046351433 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.2184278965 +1.1491087675 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.2363597155 +1.1662667990 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.1186743975 +1.2328425646 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +1.1194289923 +1.2046351433 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.2184278965 +1.1491087675 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.2363597155 +1.1662667990 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.1186743975 +1.2328425646 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.000000 +1.000000 +1.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +1.1038122177 +1.2070790529 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.2184278965 +1.1491087675 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.2361817360 +1.1696274281 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.1112557650 +1.2325528860 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.023682 +0.023682 +0.023682 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +1.1982127428 +1.1641262770 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.1888334751 +1.1861145496 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.2130270004 +1.1903810501 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.2410389185 +1.1678562164 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.2193819284 +1.1460733414 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.485434 +0.208977 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +1.1955955029 +1.1871101856 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.1910237074 +1.1802893877 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.1911102533 +1.1770503521 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.1937820911 +1.1740965843 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.1943377256 +1.1775687933 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.1948169470 +1.1798504591 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.1953052282 +1.1737051010 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.1972370148 +1.1741888523 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.1987210512 +1.1793065071 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.1985902786 +1.1720641851 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.1998153925 +1.1706923246 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.2016146183 +1.1761424541 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.2015485764 +1.1705224514 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.2040981054 +1.1681056023 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.2037208080 +1.1741459370 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.2062069178 +1.1741042137 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.2072448730 +1.1716470718 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.2047804594 +1.1668273211 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.2068232298 +1.1672060490 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.2094445229 +1.1701931953 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.2087551355 +1.1676898003 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.2074178457 +1.1651690006 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.2099096775 +1.1649115086 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.2111361027 +1.1675372124 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.2129212618 +1.1654241085 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.2117005587 +1.1625823975 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.2130249739 +1.1615372896 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.2141636610 +1.1634044647 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.2154707909 +1.1630072594 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.2151081562 +1.1604044437 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.2167477608 +1.1596919298 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.2183886766 +1.1629770994 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.2181887627 +1.1583259106 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.2205178738 +1.1601167917 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.2266530991 +1.1650345325 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.2263679504 +1.1676199436 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.2205954790 +1.1653048992 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.2237709761 +1.1677666903 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.2232756615 +1.1701303720 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.2200886011 +1.1681004763 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.2179177999 +1.1684746742 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.2180875540 +1.1702078581 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.2197343111 +1.1732771397 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.2175692320 +1.1734353304 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.2158820629 +1.1718777418 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.2169746161 +1.1754723787 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.2127194405 +1.1729817390 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.2147043943 +1.1755197048 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.2156213522 +1.1775970459 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.2132403851 +1.1777495146 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.2115833759 +1.1791098118 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.2088928223 +1.1787137985 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.2061735392 +1.1793974638 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.2092785835 +1.1804528236 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.2083803415 +1.1817253828 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.2058006525 +1.1812242270 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.2069334984 +1.1833072901 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.2059242725 +1.1846849918 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.2027256489 +1.1830868721 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.2026507854 +1.1858940125 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.2012269497 +1.1866123676 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.1995571852 +1.1844068766 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.1991381645 +1.1879611015 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.1974914074 +1.1848919392 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.1971948147 +1.1879091263 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.169208 +0.169208 +0.169208 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +1.1912716627 +1.1710042953 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.1908609867 +1.1823378801 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.1998102665 +1.1911122799 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.2070988417 +1.1892541647 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.1989164352 +1.1881712675 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.1927338839 +1.1809833050 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.1934310198 +1.1710619926 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.1964008808 +1.1690884829 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.1964021921 +1.1730860472 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.1970813274 +1.1800190210 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.2038643360 +1.1849540472 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.2074127197 +1.1855890751 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.2126297951 +1.1844317913 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.2108433247 +1.1825474501 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.2049901485 +1.1832554340 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.2014057636 +1.1799184084 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.1995949745 +1.1749000549 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.1991143227 +1.1686207056 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.2035425901 +1.1646333933 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.2036143541 +1.1700375080 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.2061549425 +1.1760476828 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.2131942511 +1.1794769764 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.2190705538 +1.1779052019 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.2183464766 +1.1766973734 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.2137182951 +1.1760336161 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.2082078457 +1.1719969511 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.2054340839 +1.1666285992 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.2079188824 +1.1625894308 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.2094259262 +1.1668432951 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.2127828598 +1.1706064939 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.2185091972 +1.1746490002 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.2229559422 +1.1740114689 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.2198624611 +1.1725242138 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.2144571543 +1.1685984135 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.2104338408 +1.1614681482 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.2129890919 +1.1588352919 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.2142629623 +1.1637312174 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.2202699184 +1.1694018841 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.2243323326 +1.1710230112 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.2296774387 +1.1691129208 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.2250319719 +1.1690969467 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.2194927931 +1.1661398411 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.2152304649 +1.1598675251 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.2152407169 +1.1554380655 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.2187846899 +1.1602865458 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.2229937315 +1.1645046473 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.2280076742 +1.1669074297 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.2327984571 +1.1655228138 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.2248468399 +1.1558026075 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.2145800591 +1.1518549919 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.1886746883 +1.1711510420 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +1.1038122177 +1.2070790529 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.2184278965 +1.1491087675 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.2361817360 +1.1696274281 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.1112557650 +1.2325528860 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + +0.227280 +0.010169 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +0.7069556117 +1.2991945744 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.6247178316 +1.4006199837 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.6966211200 +1.4579824209 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.7388374209 +1.5117497444 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.9730829597 +1.7520304918 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.1351732016 +1.4391824007 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.1394808292 +1.3236656189 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.1551371813 +1.2191644907 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.0530970097 +1.1986621618 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.8812947869 +1.2247500420 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.9857653975 +1.7417933941 + + + + +0.7784197330 +0.7424194813 + + + + + +0.491727 +0.047432 +0.000000 +1.000000 + + +0.095765 +0.002050 +0.000000 +1.000000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +1.1401869059 +1.2444907427 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.1430025101 +1.3338876963 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.0880968571 +1.4549607038 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.9297152758 +1.4458098412 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.7825962901 +1.5457655191 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.6720801592 +1.4242212772 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.6744422317 +1.3391860723 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.6390106678 +1.3356429338 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.6850717068 +1.2895821333 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.7323138118 +1.3049356937 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.7732885480 +1.3250069618 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.9050781131 +1.3564128876 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.9740620852 +1.2817981243 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.0296716690 +1.2240772247 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.0599402189 +1.1740993261 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.1627122164 +1.2297085524 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +1.1313414574 +1.2370096445 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.0396244526 +1.2043625116 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +0.6634288430 +1.3696708679 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.7121374011 +1.3007491827 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +0.7069556117 +1.2991945744 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.6247178316 +1.4006199837 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.6966211200 +1.4579824209 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.7388374209 +1.5117497444 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.9730829597 +1.7520304918 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.1351732016 +1.4391824007 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.1394808292 +1.3236656189 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.1551371813 +1.2191644907 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.0530970097 +1.1986621618 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.8812947869 +1.2247500420 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + +0.227280 +0.010169 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +0.9494760036 +1.2269543409 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.9356151223 +1.0652340651 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.9885774255 +1.0157470703 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.1377540827 +1.0545831919 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.2046490908 +1.1085304022 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.1856666803 +1.1425030231 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.0997114182 +1.1338211298 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.0649820566 +1.1016980410 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.0784118176 +1.0869514942 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.0163608789 +1.0843342543 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.0380667448 +1.1433712244 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.0351681709 +1.2129325867 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.9857653975 +1.7417933941 + + + + +0.7784197330 +0.7424194813 + + + + + +0.491727 +0.047432 +0.000000 +1.000000 + + +0.095765 +0.002050 +0.000000 +1.000000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +1.2027615309 +1.1110734940 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.0963512659 +1.0590729713 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.9838948846 +1.0524216890 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.9548738599 +1.0959570408 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.9796626568 +1.2307957411 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.9427817464 +1.1455390453 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.9421771765 +1.0215842724 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.1574162245 +1.0167469978 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.237660 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +0.6190749407 +1.0867241621 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.5731347799 +1.0497159958 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.6305599809 +1.0439733267 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +0.6190749407 +1.0867241621 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.5731347799 +1.0497159958 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.6305599809 +1.0439733267 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + +1.000000 +1.000000 +1.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +0.6082655191 +1.0711569786 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.6360772848 +0.9611093402 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.6608660817 +0.9599000216 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.6282174587 +1.0911105871 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +0.6082655191 +1.0711569786 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.6360772848 +0.9611093402 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.6608660817 +0.9599000216 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.6282174587 +1.0911105871 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.000000 +1.000000 +1.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +0.5992951393 +1.0841718912 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.6360772848 +0.9611093402 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.6608660817 +0.9599000216 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.6229032874 +1.0962952375 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.023682 +0.023682 +0.023682 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +0.6330683231 +0.9861118793 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.6425732374 +1.0080460310 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.6623141170 +0.9934232831 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.6652386785 +0.9575975537 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.6345306039 +0.9583286643 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.485434 +0.208977 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +0.6479478478 +1.0038236380 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.6398525238 +1.0024489164 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.6375614405 +1.0001578331 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.6372559667 +0.9961866140 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.6401580572 +0.9981722236 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.6421436667 +0.9993941784 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.6380196810 +0.9948119521 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.6396998167 +0.9937427640 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.6444348097 +0.9961866140 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.6390888691 +0.9912989140 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.6389361024 +0.9894660115 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.6441293359 +0.9919098616 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.6400052905 +0.9880913496 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.6400052905 +0.9845783114 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.6441293359 +0.9890077710 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.6458094716 +0.9871748686 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.6447402835 +0.9847310185 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.6395470500 +0.9832036495 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.6412272453 +0.9819816947 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.6451985240 +0.9821344614 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.6429073811 +0.9809125066 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.6401580572 +0.9801487923 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.6416854262 +0.9781631827 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.6444348097 +0.9790796041 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.6441293359 +0.9763302803 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.6412272453 +0.9752610922 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.6413799524 +0.9735809565 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.6435183287 +0.9740391970 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.6441293359 +0.9728172421 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.6419909596 +0.9712898135 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.6426019073 +0.9696096778 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.6461149454 +0.9706788659 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.6426019073 +0.9676240683 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.6455039978 +0.9671658278 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.6532938480 +0.9660966396 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.6549739838 +0.9680822492 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.6493225098 +0.9706788659 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.6532938480 +0.9700679183 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.6546685100 +0.9720535278 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.6510027051 +0.9729700089 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.6497807503 +0.9748028517 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.6511554122 +0.9758720398 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.6545157433 +0.9767885208 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.6531410813 +0.9784686565 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.6508499384 +0.9786214232 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.6542102695 +0.9803015590 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.6494752765 +0.9816762209 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.6526828408 +0.9819816947 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.6548212171 +0.9827454090 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.6532938480 +0.9845783114 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.6531410813 +0.9867166877 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.6510027051 +0.9883968234 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.6496280432 +0.9908406734 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.6525301337 +0.9893132448 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.6528356075 +0.9908406734 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.6506972313 +0.9923681021 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.6529883146 +0.9929790497 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.6532938480 +0.9946591854 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.6499335170 +0.9958811402 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.6519191265 +0.9978667498 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.6514609456 +0.9993941784 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.6487115622 +0.9990887046 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.6510027051 +1.0018379688 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.6476423740 +1.0009216070 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.6496280432 +1.0032126904 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.169208 +0.169208 +0.169208 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +0.6332846880 +0.9958811402 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.6412272453 +1.0039763451 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.6537520289 +1.0035181046 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.6574178338 +0.9969503284 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.6510027051 +1.0021435022 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.6415327191 +1.0016852617 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.6348120570 +0.9943537116 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.6354230642 +0.9908406734 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.6383251548 +0.9935899973 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.6438238621 +0.9978667498 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.6520718932 +0.9963393211 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.6549739838 +0.9942010045 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.6577233076 +0.9896187186 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.6551267505 +0.9896187186 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.6516136527 +0.9943537116 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.6467259526 +0.9946591854 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.6418381929 +0.9925208092 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.6369504333 +0.9885495901 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.6371032000 +0.9825926423 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.6410744786 +0.9862584472 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.6471841335 +0.9885495901 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.6545157433 +0.9858002067 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.6574178338 +0.9804542661 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.6560431719 +0.9801487923 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.6523773670 +0.9830508828 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.6456567645 +0.9842728376 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.6398525238 +0.9825926423 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.6386306286 +0.9780104160 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.6427546740 +0.9798433185 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.6477951407 +0.9799960852 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.6546685100 +0.9786214232 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.6572651267 +0.9749556184 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.6540575027 +0.9761775732 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.6474896669 +0.9773994684 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.6395470500 +0.9754138589 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.6393943429 +0.9717480540 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.6438238621 +0.9741919041 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.6520718932 +0.9737336636 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.6560431719 +0.9719008207 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.6583343148 +0.9667075872 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.6551267505 +0.9700679183 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.6491698027 +0.9720535278 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.6416854262 +0.9708316326 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.6384778619 +0.9677767754 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.6444348097 +0.9685404897 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.6503917575 +0.9683877826 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.6555849314 +0.9664021134 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.6578760743 +0.9619726539 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.6453512311 +0.9610561728 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.6354230642 +0.9657911658 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.6316044927 +0.9978667498 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +0.5992951393 +1.0841718912 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.6360772848 +0.9611093402 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.6608660817 +0.9599000216 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.6229032874 +1.0962952375 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + +0.227280 +0.010169 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +0.7705663443 +1.3248990774 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.7414178848 +1.3151832819 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.7174513936 +1.2776157856 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.6714602709 +1.1766688824 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.5195403695 +1.0625842810 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.6885358095 +1.0551803112 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.6542956233 +1.0976532698 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.6280077696 +1.0911906958 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.6458193064 +1.0713851452 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.5805570483 +1.0782619715 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.7156482339 +1.1331816912 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.7783392668 +1.2063668966 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.8447997570 +1.2506711483 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.9857653975 +1.7417933941 + + + + +0.7784197330 +0.7424194813 + + + + + +0.491727 +0.047432 +0.000000 +1.000000 + + +0.095765 +0.002050 +0.000000 +1.000000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +0.8152102828 +1.3063778877 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.7740972042 +1.2707030773 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.7553544641 +1.1866557598 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.7166597843 +1.1364691257 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.7559590936 +1.1606553793 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.7771202326 +1.2047954798 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.7843754888 +1.2670751810 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +0.7705663443 +1.3248990774 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.7414178848 +1.3151832819 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.7174513936 +1.2776157856 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.6714602709 +1.1766688824 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.5195403695 +1.0625842810 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.6885358095 +1.0551803112 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.6542956233 +1.0976532698 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.6280077696 +1.0911906958 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.6458193064 +1.0713851452 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.5805570483 +1.0782619715 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.7156482339 +1.1331816912 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.7783392668 +1.2063668966 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.8447997570 +1.2506711483 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + +0.227280 +0.010169 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +0.8098704219 +1.3066190481 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.7656002045 +1.1696712971 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.6976950765 +1.0467530489 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.7393703461 +0.8930832744 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.8088291287 +0.9121834636 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.7714950442 +1.0250482559 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.8348761797 +1.1248903275 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.8798790574 +1.2304224968 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.8357443810 +1.0901626348 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.8687373400 +0.9781659842 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.8444267511 +0.8357826471 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.9060714245 +0.8244961500 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.9329866767 +0.9911888838 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.9156219959 +1.0979763269 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.9756262302 +1.2479271889 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.8982573152 +1.3046058416 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.9857653975 +1.7417933941 + + + + +0.7784197330 +0.7424194813 + + + + + +0.491727 +0.047432 +0.000000 +1.000000 + + +0.095765 +0.002050 +0.000000 +1.000000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.460320 +0.109769 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +0.8435127139 +1.6688976288 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.9164686799 +1.7153350115 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.9960569739 +1.6838239431 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.9231010079 +1.6539714336 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.460320 +0.109769 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +1.0185120106 +1.7013362646 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.0555114746 +1.6978914738 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.0742363930 +1.6662341356 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.0416042805 +1.6753100157 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.460320 +0.109769 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +1.0440956354 +1.6386128664 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.0910125971 +1.6215926409 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.1046154499 +1.5741025209 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.0652832985 +1.5969603062 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +0.8478589058 +1.1818184853 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.8907858133 +1.2713077068 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.8799029589 +1.1775858402 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.8508819342 +1.0832592249 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.8871581554 +0.9472113252 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.8702292442 +0.9508392811 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.8653924465 +1.0028398037 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.7889637947 +1.0792020559 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +0.8140689135 +1.3054376841 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.7795424461 +1.2336878777 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.7552048564 +1.1521028280 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.6935638189 +1.0313891172 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.7166792154 +0.9237740636 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.7849979997 +0.9551082850 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.7754949927 +1.0462857485 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.8394242525 +1.1279513836 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.8839972019 +1.2510161400 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.8361086845 +1.0827566385 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.8679565191 +0.9846446514 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.8669291735 +0.9350749254 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.9272859693 +0.9165825844 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.9321658611 +0.9972296953 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.9134167433 +1.0896912813 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.9748325348 +1.2007801533 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.9678193927 +1.2692930698 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +0.9470139742 +1.1485623121 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.9448092580 +1.1150388718 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.9466915727 +1.0380982161 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.0557538271 +1.0238332748 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.2046490908 +1.1112277508 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.1218547821 +1.1395491362 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.0649249554 +1.1036751270 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.0832670927 +1.0885699987 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.0162945986 +1.0845857859 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.0336219072 +1.1336207390 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.0390300751 +1.1905301809 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.0250037909 +1.2320694923 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +1.0535221100 +0.9978383780 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.0571879148 +1.0234994888 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.0915555954 +1.0509936810 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.1456272602 +1.0496189594 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +1.1226772070 +1.1076395512 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.1054495573 +1.1124479771 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.1514393091 +1.1202205420 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.0722684860 +1.0877414942 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.548544 +0.302399 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +1.1071686745 +1.0960220098 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.0864961147 +1.1703923941 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.0978407860 +1.1782076359 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.1220427752 +1.1852664948 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.1346479654 +1.1842581034 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.1527994871 +1.1174508333 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.000000 +1.000000 +1.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +0.6697260141 +1.4535831213 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.7699452639 +1.5327547789 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.8465834856 +1.4350535870 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.7497329712 +1.3516706228 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +1.1071686745 +1.0960220098 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.0864961147 +1.1703923941 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.0978407860 +1.1782076359 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.1220427752 +1.1852664948 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.1346479654 +1.1842581034 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.1527994871 +1.1174508333 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +0.6697260141 +1.4535831213 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.7699452639 +1.5327547789 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.8465834856 +1.4350535870 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.7497329712 +1.3516706228 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.147464 +0.147464 +0.147464 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +1.1123535633 +1.1956499815 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.1189714670 +1.2061284781 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.1290823221 +1.1996942759 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.1237167120 +1.1896879673 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +1.1123535633 +1.1956499815 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.1189714670 +1.2061284781 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.1290823221 +1.1996942759 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.1237167120 +1.1896879673 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.000000 +1.000000 +1.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +0.9795232415 +1.3620344400 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.0797424316 +1.4412060976 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.1563806534 +1.3435049057 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.0595301390 +1.2601220608 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.147464 +0.147464 +0.147464 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +1.0905297995 +1.1688798666 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.0827145576 +1.1940901279 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.1094375849 +1.2039221525 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.1182612181 +1.1903085709 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.1293537617 +1.1905606985 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.1323790550 +1.1809808016 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +1.0727716684 +1.0893058777 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.0655164719 +1.1050269604 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.0969558954 +1.1334458590 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.1066294909 +1.0953524113 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +0.6973124743 +1.0385146141 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.7124275565 +0.9720023274 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.7335886955 +0.9756302238 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.7753064036 +0.9562811852 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.7922353148 +0.8667919040 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.8133964539 +0.8680012226 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.7910261154 +0.8492568135 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.7771202326 +0.9115365744 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.7577728629 +0.9496299624 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.7118229270 +0.9363275170 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.6900572181 +0.9998165369 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +0.7208299041 +1.0870854855 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.7867114544 +1.2075896263 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.8075457811 +1.2993754148 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.7838959694 +1.2644629478 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.7523629665 +1.1400171518 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +0.6894409657 +1.0629271269 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.6374781132 +1.0355291367 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.5146567822 +1.0846565962 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.6242511868 +1.0213577747 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.6365333200 +0.9608931541 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.6450363398 +0.9967939854 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.6639319062 +0.9646722078 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.6544841528 +1.0279710293 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +1.1218968630 +1.0994067192 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.0982929468 +1.1559038162 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.0979059935 +1.1686736345 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.0851365328 +1.1907306910 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.0905538797 +1.1686736345 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.0866843462 +1.1690605879 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.1075797081 +1.0939891338 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +1.1458077431 +1.2070969343 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.2177805901 +1.1602740288 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.2317107916 +1.1606609821 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.2150719166 +1.1502128839 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.1353600025 +1.1954878569 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +1.1756029129 +1.2771377563 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.2417714596 +1.2655287981 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.2545408010 +1.2697854042 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.2437062263 +1.2512110472 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.1771507263 +1.2655287981 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +0.5619454384 +1.4340201616 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.5726386309 +1.4655636549 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.6335897446 +1.4409704208 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.6239658594 +1.3853683472 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +0.5063409209 +1.4987111092 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.4972516894 +1.4356241226 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.5565988421 +1.3532902002 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.5731732845 +1.3500823975 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.5699653029 +1.3404589891 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.5860050917 +1.3185389042 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.5656880736 +1.3260238171 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.5710346103 +1.3548940420 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.5437670350 +1.3425974846 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.4903011322 +1.3971303701 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.4945783913 +1.4858798981 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +0.6020448804 +1.2672138214 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.5886783600 +1.2581250668 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.5533908606 +1.2677484751 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.5346778035 +1.3233505487 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.5266579390 +1.3019651175 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.5603414774 +1.2495708466 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.6015102267 +1.2527786493 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +1.0905297995 +1.1688798666 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.0827145576 +1.1940901279 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.1094375849 +1.2039221525 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.1182612181 +1.1903085709 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.1293537617 +1.1905606985 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.1323790550 +1.1809808016 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +0.9795232415 +1.3620344400 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.0797424316 +1.4412060976 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.1563806534 +1.3435049057 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.0595301390 +1.2601220608 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + + + + + + + +0.7224335670 +1.4380022287 + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + + + + + + + +1.0991089344 +1.3476804495 + + + + + + + + + + + + + + + + + + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + +1.000000 +0.822795 +0.521079 +1.000000 + + + + + + + + + + +1.0524320602 +1.6722146273 + + + + + + + + + + + + + + + + + + + + + +1.000000 +0.822795 +0.521079 +1.000000 + + + + + + + + + + +1.0043474436 +1.6705561876 + + + + + + + + + + + + + + + + + + + + + +1.000000 +0.822795 +0.521079 +1.000000 + + + + + + + + + + +0.9662113190 +1.6954332590 + + + + + + + + + + + + + + + + + + + + + +1.000000 +0.822795 +0.521079 +1.000000 + + + + + + + + + + +1.0623805523 +1.5992417336 + + + + + + + + + + + + + + + + + + + + + +1.000000 +0.822795 +0.521079 +1.000000 + + + + + + + + + + +1.0706709623 +1.6340696812 + + + + + + + + + + + + + + + + + + + + + +1.000000 +0.822795 +0.521079 +1.000000 + + + + + + + + + + +1.0308768749 +1.6357282400 + + + + + + + + + + + + + + + + + + + + + +1.000000 +0.822795 +0.521079 +1.000000 + + + + + + + + + + +0.8965715766 +1.6622637510 + + + + + + + + + + + + + + + + + + + + + +1.000000 +0.822795 +0.521079 +1.000000 + + + + + + + + + + +1.0242445469 +1.6771900654 + + + + + + + + + + + + + + + + + + + + + +1.000000 +0.822795 +0.521079 +1.000000 + + + + + + + + + + +1.0474576950 +1.6489959955 + + + + + + + + + + + + + + + + + + + + + +1.000000 +0.822795 +0.521079 +1.000000 + + + + + + + + + + +1.0855938196 +1.5511460304 + + + + + + + + + + + + + + + + + + + + + +1.000000 +0.822795 +0.521079 +1.000000 + + + + + + + + + + +0.8178154230 +1.3146750927 + + + + + + + + + + + + + + + + + + + + + +1.000000 +0.822795 +0.521079 +1.000000 + + + + + + + + + + +0.8592845201 +1.3229686022 + + + + + + + + + + + + + + + + + + + + + +1.000000 +0.822795 +0.521079 +1.000000 + + + + + + + + + + +0.8945332766 +1.3229686022 + + + + + + + + + + + + + + + + + + + + + +1.000000 +0.822795 +0.521079 +1.000000 + + + + + + + + + + +0.8675783873 +1.2980879545 + + + + + + + + + + + + + + + + + + + + + +1.000000 +0.822795 +0.521079 +1.000000 + + + + + + + + + + +0.9235616922 +1.2794274092 + + + + + + + + + + + + + + + + + + + + + +1.000000 +0.822795 +0.521079 +1.000000 + + + + + + + + + + +0.9546635151 +1.2835742235 + + + + + + + + + + + + + + + + + + + + + +1.000000 +0.822795 +0.521079 +1.000000 + + + + + + + + + + +0.5171642303 +1.4681059122 + + + + + + + + + + + + + + + + + + + + + +1.000000 +0.822795 +0.521079 +1.000000 + + + + + + + + + + +0.5441191196 +1.4929866791 + + + + + + + + + + + + + + + + + + + + + +1.000000 +0.822795 +0.521079 +1.000000 + + + + + + + + + + +0.5461925864 +1.4743261337 + + + + + + + + + + + + + + + + + + + + + +1.000000 +0.822795 +0.521079 +1.000000 + + + + + + + + + + +0.7784197330 +1.5862891674 + + + + + + + + + + + + + + + + + + + + + +1.000000 +0.822795 +0.521079 +1.000000 + + + + + + + + + + +0.5378987789 +1.0907490253 + + + + + + + + + + + + + + + + + + + + + +1.000000 +0.822795 +0.521079 +1.000000 + + + + + + + + + + +0.5482660532 +1.1031893492 + + + + + + + + + + + + + + + + + + + + + +1.000000 +0.822795 +0.521079 +1.000000 + + + + + + + + + + +1.3506937027 +1.3478493690 + + + + + + + + + + + + + + + + + + + + + +1.000000 +0.822795 +0.521079 +1.000000 + + + + + + + + + + +1.3693548441 +1.3602896929 + + + + + + + + + + + + + + + + + + + + + +1.000000 +0.822795 +0.521079 +1.000000 + + + + + + + + + + +1.3652079105 +1.3727300167 + + + + + + + + + + + + + + + + + + + + + +1.000000 +0.822795 +0.521079 +1.000000 + + + + + + + + + + +1.1785968542 +1.1135562658 + + + + + + + + + + + + + + + + + + + + + +1.000000 +0.822795 +0.521079 +1.000000 + + + + + + + + + + +1.1723765135 +1.1239231825 + + + + + + + + + + + + + + + + + + + + + +1.000000 +0.822795 +0.521079 +1.000000 + + + + + + + + + + +0.7581563592 +1.1146039963 + + + + + + + + + + + + + + + + + + + + + +1.000000 +0.822795 +0.521079 +1.000000 + + + + + + + + + + +0.7772715092 +1.1250300407 + + + + + + + + + + + + + + + + + + + + + +1.000000 +0.822795 +0.521079 +1.000000 + + + + + + + + + + +0.7911733985 +0.9495237470 + + + + + + + + + + + + + + + + + + + + + +1.000000 +0.822795 +0.521079 +1.000000 + + + + + + + + + + +0.7859601974 +0.9721136689 + + + + + + + + + + + + + + + + + + + + + +1.000000 +0.822795 +0.521079 +1.000000 + + + + + + + + + + +0.7581563592 +0.9773267508 + + + + + + + + + + + + + + + + + + + + + +1.000000 +0.822795 +0.521079 +1.000000 + + + + + + + + + + +0.9736360908 +1.0868010521 + + + + + + + + + + + + + + + + + + + + + +1.000000 +0.822795 +0.521079 +1.000000 + + + + + + + + + + +0.9788492918 +1.1041778326 + + + + + + + + + + + + + + + + + + + + + +1.000000 +0.822795 +0.521079 +1.000000 + + + + + + + + + + +0.9944889545 +1.0798501968 + + + + + + + + + + + + + + + + + + + + + +1.000000 +0.822795 +0.521079 +1.000000 + + + + + + + + + + +0.7598941326 +1.2970610857 + + + + + + + + + + + + + + + + + + + + + +1.000000 +0.822795 +0.521079 +1.000000 + + + + + + + + + + +0.8294036984 +1.2779464722 + + + + + + + + + + + + + + + + + + + + + +1.000000 +0.822795 +0.521079 +1.000000 + + + + + + + + + + +0.9493077397 +1.2536188364 + + + + + + + + + + + + + + + + + + + + + +1.000000 +0.822795 +0.521079 +1.000000 + + + + + + + + + + +0.9979644418 +1.2379797697 + + + + + + + + + + + + + + + + + + + + + +1.000000 +0.822795 +0.521079 +1.000000 + + + + + + + + + + +0.7651073337 +1.3005363941 + + + + + + + + + + + + + + + + + + + + + +1.000000 +0.822795 +0.521079 +1.000000 + + + + + + + + + + +1.4428257942 +1.3092248440 + + + + + + + + + + + + + + + + + + + + + +1.000000 +0.822795 +0.521079 +1.000000 + + + + + + + + + + +0.6921222806 +1.1667345762 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + +0.550466 +0.335490 +0.032509 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +1.7345638275 +0.1823435426 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.0165517330 +0.0775418580 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.2704885006 +0.0893504992 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.4269845486 +0.1823435426 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.4004096985 +0.2960017025 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.3723585606 +0.3550449312 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.3472599983 +0.4509901404 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.2660593987 +0.6133589149 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.7138944864 +0.6414044499 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.1295506954 +1.0596289635 + + + + +1.6904302835 +-1.0409200191 + + + + + +0.550526 +0.343850 +0.052530 +1.000000 + + +0.312578 +0.152059 +0.000000 +1.000000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.591832 +0.373566 +0.065942 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +1.8679635525 +0.4563314021 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.8228929043 +0.4298201203 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.8388001919 +0.3820998371 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.8838708401 +0.4178900421 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.9117085934 +0.4430757463 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.591832 +0.373566 +0.065942 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +2.3491594791 +0.2906359732 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.3107166290 +0.2773803473 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.3332521915 +0.2588224709 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.3677179813 +0.2627991438 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.591832 +0.373566 +0.065942 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +2.3054141998 +0.4430757463 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.2550411224 +0.4695870280 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.2881813049 +0.4099366665 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.3332521915 +0.3635419607 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.591832 +0.373566 +0.065942 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +2.2219009399 +0.5941899419 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.2351570129 +0.5716553926 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.2603435516 +0.5809343457 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.2470874786 +0.6008177996 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +2.4174509048 +0.2573475242 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.3517749310 +0.3050581515 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.2972514629 +0.2957638800 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.3548727036 +0.3124935627 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.4075374603 +0.2784145474 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +1.9129104614 +0.9577995539 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.8814609051 +0.9976365566 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.8542045355 +0.9557028413 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.7986437082 +0.8686903715 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.7650974989 +0.8707870245 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.7556625605 +0.8372400403 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.7032467127 +0.8487718105 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.6780869961 +0.8288533092 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.6256711483 +0.8508685231 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.5994631052 +0.8131281734 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.5428539515 +0.8288533092 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.5187425613 +0.8047414422 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.5501921177 +0.7628076673 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.5743035078 +0.7313573956 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.5994631052 +0.6443449259 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.4432636499 +0.6139429212 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.4568917751 +0.5877343416 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.5795451403 +0.5814443231 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.6130912304 +0.5594291091 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.6225261688 +0.6139429212 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.6613138914 +0.6317647696 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.7063916922 +0.6097495556 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.7210681438 +0.5594291091 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.6843769550 +0.5091086030 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.6183328629 +0.5269304514 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.6822803020 +0.4713682532 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.7965470552 +0.4640298486 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.8164651394 +0.4787066579 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.9108138084 +0.4535464346 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.9295810461 +0.3542911708 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.8626950979 +0.2944059372 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.8028087616 +0.3146269321 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.7981423140 +0.3504025042 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.7818096876 +0.3916222155 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.8012533188 +0.4235091507 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.7724767923 +0.4258423448 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.7678103447 +0.3169600964 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.7763655186 +0.1427485198 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.9630241394 +0.0603091083 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.3176753521 +0.0735305250 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.4312260151 +0.1901900768 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.2951209545 +0.1971896440 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.2423167229 +0.2731284201 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.1739900112 +0.3564901650 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.1671385765 +0.4884652197 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.2823812962 +0.4791709483 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.1578834057 +0.5000049472 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.1068494320 +0.5688641667 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.1131391525 +0.6128945947 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.9034755230 +0.7009554505 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.8636394739 +0.6904720068 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.7871121168 +0.6747468710 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.7975953817 +0.7428891659 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.8091268539 +0.8215149045 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.8521078825 +0.8592552543 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.8877507448 +0.9294942617 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +1.7345638275 +0.1823435426 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.0165517330 +0.0775418580 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.2704885006 +0.0893504992 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.4269845486 +0.1823435426 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.4004096985 +0.2960017025 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.3723585606 +0.3550449312 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.3472599983 +0.4509901404 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.2660593987 +0.6133589149 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.7138944864 +0.6414044499 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +2.0443592072 +0.2141674161 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.9675909281 +0.2968405485 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.9091236591 +0.4545893669 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +1.9605045319 +0.4362038672 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.9309782982 +0.4562816322 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.8164161444 +0.4822646081 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +1.7531356812 +0.5162644386 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.7561587095 +0.5549625158 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.7416481972 +0.5767301917 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +1.8752658367 +0.5307762027 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.9018683434 +0.5344041586 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.9641425610 +0.5410553813 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.0161385536 +0.5809627771 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +2.0880863667 +0.5458926558 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.1134798527 +0.5864046812 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.1122705936 +0.6136142612 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +2.3293459415 +0.4634262919 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.3728549480 +0.3463556767 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.3938550949 +0.2965638638 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.4206187725 +0.2496104836 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +2.1823480129 +0.2422980070 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.1618483067 +0.1534699500 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.2706768513 +0.0875622854 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +2.1024663448 +0.2046059370 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.9609036446 +0.3063182235 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + +1.000000 +1.000000 +1.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +0.9851517081 +0.7276843786 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.7659822106 +0.6215843558 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.6461586356 +0.5583736300 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.6299184561 +0.5450889468 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.5620051622 +0.5155673623 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.5014737248 +0.4107656479 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.6683042645 +-0.0025367893 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.8085600734 +-0.2047597617 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.3577721119 +-0.4675020278 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.5378900766 +-0.3110375404 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.7032443285 +-0.1693338454 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.7298190594 +-0.0556756742 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.7504884005 +0.0520781763 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.7947796583 +0.1332625747 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.8257836103 +0.1214539409 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.7977323532 +0.1613081098 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.8184016943 +0.1657363474 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.7873977423 +0.1967340261 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.8154488802 +0.2218273878 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.7918268442 +0.2572533190 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.8006851673 +0.2749662697 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.7696812153 +0.3162965178 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.7933032513 +0.3664832413 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.7711576223 +0.4225742817 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.7977323532 +0.4373350739 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.7622994184 +0.4491437376 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.7891902924 +0.4674452841 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.6751931906 +0.5421367884 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + +0.202754 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +0.5761881471 +0.4728836119 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.6388083696 +0.5192555785 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.6677557230 +0.5355404615 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.8052555323 +0.5699197054 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.9753210545 +0.6911517382 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.9427553415 +0.7743856907 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.4633152187 +0.5174461603 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.4976901710 +0.4034518600 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.202754 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +0.5998985767 +0.4543593526 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.6754755974 +0.4928898215 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.7080774903 +0.5069682598 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.8251478076 +0.5217877030 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.9251762033 +0.5706917644 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.9192625880 +0.4367545843 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.8672446012 +0.4209245443 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.7641084194 +0.3978863657 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.7292836905 +0.3734343350 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.6711691022 +0.3574371636 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.202754 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +0.7162279487 +0.2728215456 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.7369745970 +0.2980145216 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.7688354850 +0.2854180336 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.8550173640 +0.2824080586 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.6940908432 +0.4271400869 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.8727614880 +0.4452315867 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.9001028538 +0.3264240026 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.8489772081 +0.3242010772 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.7483705282 +0.2869309485 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.9500068426 +0.1376760453 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.8324008584 +0.1444603652 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.7443841100 +0.1631578803 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.202754 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +1.0269030333 +-0.3281801343 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.2715575695 +-0.3679921031 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.5199434757 +-0.3236572742 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.5108969212 +-0.3756703436 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.2643766403 +-0.4435134828 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.0065481663 +-0.3575788438 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.202754 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +0.7252897024 +0.1104739457 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.7799500227 +0.0899439082 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.8278775215 +0.0630486012 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.9703617096 +0.0562642850 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.1575040817 +0.0844193995 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.5011337996 +0.1357027143 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.6550365686 +0.1761175990 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.7483705282 +0.2190878093 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.8393578529 +0.2520743906 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.8134231567 +0.1483285278 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.6976435184 +0.1057186201 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.5207321644 +0.0418037586 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.3412728310 +-0.0093174111 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.1693872213 +-0.0138402861 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.9746317267 +-0.0229796804 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.8143076301 +0.0019897784 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.7622895837 +0.0359113477 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.7141057849 +0.0276844483 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.202754 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +0.7393234372 +0.0372786783 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.8437091112 +-0.0341932252 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.3277029991 +-0.0726376697 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.7282176018 +0.0404951125 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.7989677191 +0.1289470643 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.7981268167 +0.0653100386 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.7668086290 +0.0437115468 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.3299646378 +-0.1359579265 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.8437091112 +-0.0884677321 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.6989632845 +0.0019897784 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.6718234420 +0.0517414100 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.7238414884 +0.0743557885 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.202754 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +0.7232438326 +0.0083307652 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.7758595347 +-0.0884677321 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.8776339293 +-0.1404808015 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.2651257515 +-0.1814388931 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.4050180912 +-0.1717895865 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.7105300426 +-0.0559979305 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.7555528879 +0.0244129393 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.7652006149 +-0.0013185388 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.6895675659 +-0.1065592393 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.4091224670 +-0.2196311355 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.2586939335 +-0.2312936336 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.8572790623 +-0.1744023710 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.7487196922 +-0.1020363644 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.6894767284 +0.0179800708 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.202754 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +0.6894767284 +-0.0061431909 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.7473632097 +-0.1364088058 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.9183436632 +-0.2264154404 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.3163946867 +-0.2739056349 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.5625979900 +-0.2200361043 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.7089221478 +-0.1155019775 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.7483705282 +-0.0568076037 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.7415854931 +-0.1540494263 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.5380367041 +-0.2784285247 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.3165804148 +-0.3197455704 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.9138203859 +-0.2739056349 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.7170565128 +-0.1811866909 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.6401603222 +-0.0409775414 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.000000 +1.000000 +1.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +1.0703145266 +0.1254460514 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.3626562357 +0.0100585939 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.5883234739 +0.2305768579 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.3036749363 +0.2741676569 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +1.0703145266 +0.1254460514 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.3626562357 +0.0100585939 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.5883234739 +0.2305768579 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.3036749363 +0.2741676569 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +0.6435055137 +-1.5302994251 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.6376713514 +-1.4340326786 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.5255548358 +-1.1842795610 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.7514068484 +-1.4474775791 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.9585933685 +-1.4736107588 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.1004507542 +-1.2514790297 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.9847249985 +-0.9770810604 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.8801984191 +-0.6000171304 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.8671326041 +-0.3218857944 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.8540667892 +-0.2098865956 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.7120946646 +-0.1274773628 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.6695768237 +-0.0318127200 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.7196755409 +0.0607781000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.8727322817 +0.1205110028 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.9025970101 +0.3165095747 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.6734801531 +0.4621085227 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.7966722250 +0.4061089158 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.8433358669 +0.0066451598 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.7182773352 +-0.1408204287 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.7593412399 +-0.1874867678 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.0075917244 +-0.5141510367 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.9814602137 +-0.6410834789 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.1027855873 +-0.8034822941 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.2857069969 +-1.1712129116 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.7481420040 +-1.1842795610 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.0463210344 +-1.6080098152 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +0.6435055137 +-1.5302994251 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.6376713514 +-1.4340326786 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.5255548358 +-1.1842795610 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.7514068484 +-1.4474775791 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.9585933685 +-1.4736107588 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.1004507542 +-1.2514790297 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.9847249985 +-0.9770810604 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.8801984191 +-0.6000171304 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.8671326041 +-0.3218857944 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.8540667892 +-0.2098865956 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.7120946646 +-0.1274773628 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.6695768237 +-0.0318127200 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.7196755409 +0.0607781000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.8727322817 +0.1205110028 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.9025970101 +0.3165095747 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.6734801531 +0.4621085227 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.7966722250 +0.4061089158 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.8433358669 +0.0066451598 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.7182773352 +-0.1408204287 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.7593412399 +-0.1874867678 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.0075917244 +-0.5141510367 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.9814602137 +-0.6410834789 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.1027855873 +-0.8034822941 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.2857069969 +-1.1712129116 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.7481420040 +-1.1842795610 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.0463210344 +-1.6080098152 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +1.0333091021 +-0.3628015816 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.8038420081 +-0.1484711021 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.8536320329 +-0.0986771509 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.1004174948 +-0.1874402761 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.3926633596 +-0.1203266904 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.6091418266 +-0.1246566027 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.7606767416 +0.0463747941 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.7108865976 +-0.1571309119 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.5182209015 +-0.4082656205 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +0.9851517081 +0.7276843786 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.7659822106 +0.6215843558 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.6461586356 +0.5583736300 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.6299184561 +0.5450889468 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.5620051622 +0.5155673623 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.5014737248 +0.4107656479 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.6683042645 +-0.0025367893 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.8085600734 +-0.2047597617 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.3577721119 +-0.4675020278 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.5378900766 +-0.3110375404 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.7032443285 +-0.1693338454 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.7298190594 +-0.0556756742 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.7504884005 +0.0520781763 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.7947796583 +0.1332625747 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.8257836103 +0.1214539409 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.7977323532 +0.1613081098 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.8184016943 +0.1657363474 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.7873977423 +0.1967340261 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.8154488802 +0.2218273878 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.7918268442 +0.2572533190 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.8006851673 +0.2749662697 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.7696812153 +0.3162965178 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.7933032513 +0.3664832413 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.7711576223 +0.4225742817 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.7977323532 +0.4373350739 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.7622994184 +0.4491437376 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.7891902924 +0.4674452841 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.6751931906 +0.5421367884 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + +0.059216 +0.080307 +0.201993 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +0.5828148723 +-0.7895041704 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.6290191412 +-0.8814361691 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.5759570599 +-1.0106014013 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.5166803598 +-1.1409543753 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.5228949785 +-1.2943036556 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.4826682806 +-1.3809231520 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.4845578372 +-1.4300506115 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.4269263148 +-1.5764882565 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.4352271557 +-1.6564277411 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.2334656715 +-1.3773385286 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.4964690208 +-0.9944557548 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.6702557802 +-1.0871031284 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.7477277517 +-1.0823793411 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.1562845707 +-1.1674449444 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.7594724894 +-0.1779468656 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.6694976091 +-0.2010120898 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.3972660303 +-0.4201317132 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.6890023947 +-0.4847143292 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +0.6435055137 +-1.5302994251 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.5459368825 +-1.3953603506 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.5387275219 +-0.7033518553 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.8198932409 +-0.6528929472 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.8343120217 +-0.8042697906 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.9847249985 +-0.9770810604 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.9452501535 +-0.7338436842 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.7684279084 +-0.5968216062 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.8671326041 +-0.3218857944 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.8540667892 +-0.2098865956 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.7159424424 +-0.1296205223 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.6991435289 +-0.0045547588 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.7196755409 +0.0607781000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.8727322817 +0.1205110028 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.9025970101 +0.3165095747 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.6734801531 +0.4621085227 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.7966722250 +0.4061089158 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.8433358669 +0.0066451598 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.7182773352 +-0.1408204287 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.7593412399 +-0.1874867678 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.0075917244 +-0.5141510367 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.9814602137 +-0.6410834789 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.1027855873 +-0.8034822941 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.2857069969 +-1.1712129116 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.7481420040 +-1.1842795610 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.0463210344 +-1.6080098152 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.005583 +0.005583 +0.005583 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +1.5475237370 +-0.7855924368 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.5163459778 +-1.0047764778 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.6675107479 +-1.0860257149 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.7478169203 +-1.0831915140 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.6816823483 +-1.0161136389 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.6788480282 +-0.8725102544 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.250406 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +1.5229594707 +-0.9783232212 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.5994865894 +-1.0217821598 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.6401121616 +-1.0180031061 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.5635850430 +-0.9849365354 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.5267386436 +-0.9594280720 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.250406 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +1.5399655104 +-0.8706207275 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.5862597227 +-0.8885711432 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.6325539351 +-0.8942397237 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.5796462297 +-0.8470017910 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.5446894169 +-0.8394436836 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +0.5828148723 +-0.7895041704 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.6290191412 +-0.8814361691 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.5759570599 +-1.0106014013 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.5166803598 +-1.1409543753 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.5228949785 +-1.2943036556 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.4826682806 +-1.3809231520 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.4845578372 +-1.4300506115 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.4269263148 +-1.5764882565 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.4352271557 +-1.6564277411 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.2334656715 +-1.3773385286 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.4964690208 +-0.9944557548 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.6702557802 +-1.0871031284 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.7477277517 +-1.0823793411 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.1562845707 +-1.1674449444 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.7594724894 +-0.1779468656 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.6694976091 +-0.2010120898 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.3972660303 +-0.4201317132 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.6890023947 +-0.4847143292 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +1.0759451389 +-0.8531011939 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.2075138092 +-0.7595325112 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +1.1143517494 +-1.1637034416 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.2117925882 +-1.0264279842 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +0.8220291138 +-1.4766324759 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.7555921674 +-1.4530150890 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.5183423758 +-1.1553071737 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +0.5444703102 +-1.5578168631 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.4814159274 +-1.4181432724 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +1.6561819315 +-0.5540823340 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.7403353453 +-0.4920869768 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.4952569008 +-0.5909843445 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +1.6620874405 +-0.6264102459 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.5218316317 +-0.6411710978 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +1.8038195372 +-0.9969063997 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.7255716324 +-0.9304828048 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.7300007343 +-0.8699634671 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.6679929495 +-0.8699634671 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.5439772606 +-0.7813987136 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +1.9632682800 +-0.9880499244 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.7772448063 +-0.9408153296 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.7252668142 +-0.8929117918 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +1.7296202183 +-0.8808189034 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.8156305552 +-0.8965329528 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.9115951061 +-0.8743917346 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.8156305552 +-0.8463461995 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.6871858835 +-0.8729156256 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +1.6786350012 +-0.8746423125 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.6808869839 +-1.0161324739 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.7474666834 +-1.0816520452 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + +0.165576 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +0.7432743311 +-0.1941298693 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.9086216688 +-0.2390095741 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.2357732058 +-0.4008127451 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.4519057274 +-0.3677434623 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.5452089310 +-0.2594937682 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.7400825024 +-0.1398018152 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.8050403595 +-0.1964919716 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.7081941366 +-0.2039846480 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.5959941149 +-0.3181395829 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.4578109980 +-0.5130119920 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.3538783789 +-0.5240478516 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.1105816364 +-0.6759961843 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.7397311926 +-0.4874354303 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.7350069880 +-0.2531821132 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +1.4541411400 +-0.9754955173 + + + + +1.6220804453 +-1.1629645824 + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +0.7432743311 +-0.1941298693 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.9086216688 +-0.2390095741 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.2357732058 +-0.4008127451 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.4519057274 +-0.3677434623 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.5452089310 +-0.2594937682 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.7400825024 +-0.1398018152 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.8050403595 +-0.1964919716 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.7081941366 +-0.2039846480 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.5959941149 +-0.3181395829 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.4578109980 +-0.5130119920 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.3538783789 +-0.5240478516 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.1105816364 +-0.6759961843 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.7397311926 +-0.4874354303 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.7350069880 +-0.2531821132 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.165576 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +1.3526973724 +-0.4827112556 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.1743584871 +-0.8937149048 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.2192384005 +-1.1322859526 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.1342027187 +-1.3531413078 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.4176552296 +-1.2822786570 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.4790699482 +-1.1700793505 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.4979667664 +-1.0507938862 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.5463899374 +-0.7826966643 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.4483625889 +-0.4968837798 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +1.3526973724 +-0.4827112556 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.1743584871 +-0.8937149048 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.2192384005 +-1.1322859526 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.1342027187 +-1.3531413078 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.4176552296 +-1.2822786570 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.4790699482 +-1.1700793505 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.4979667664 +-1.0507938862 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.5463899374 +-0.7826966643 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.4483625889 +-0.4968837798 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.165576 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +1.4082068205 +-0.6468765140 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.3314384222 +-0.5027890205 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.2605752945 +-0.4024001956 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.2936447859 +-0.3527963161 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.3645079136 +-0.3646067679 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.4141120911 +-0.3338995874 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.4648972750 +-0.3846845329 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.4613541365 +-0.5429445505 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.4377331734 +-0.5783758759 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +0.6435055137 +-1.5302994251 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.6376713514 +-1.4340326786 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.5255548358 +-1.1842795610 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.7514068484 +-1.4474775791 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.9585933685 +-1.4736107588 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.1004507542 +-1.2514790297 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.9847249985 +-0.9770810604 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.8801984191 +-0.6000171304 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.8671326041 +-0.3218857944 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.8540667892 +-0.2098865956 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.7159424424 +-0.1296205223 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.6991435289 +-0.0045547588 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.7196755409 +0.0607781000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.8727322817 +0.1205110028 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.9025970101 +0.3165095747 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.6734801531 +0.4621085227 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.7966722250 +0.4061089158 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.8433358669 +0.0066451598 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.7182773352 +-0.1408204287 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.7593412399 +-0.1874867678 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.0075917244 +-0.5141510367 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.9814602137 +-0.6410834789 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.1027855873 +-0.8034822941 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.2857069969 +-1.1712129116 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.7481420040 +-1.1842795610 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.0463210344 +-1.6080098152 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +1.4082068205 +-0.6468765140 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.3314384222 +-0.5027890205 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.2605752945 +-0.4024001956 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.2936447859 +-0.3527963161 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.3645079136 +-0.3646067679 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.4141120911 +-0.3338995874 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.4648972750 +-0.3846845329 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.4613541365 +-0.5429445505 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.4377331734 +-0.5783758759 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +0.9777777195 +-0.5822026134 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.0964556932 +-0.6024644375 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.3309171200 +-0.5040497184 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +1.3193387985 +-0.4707624018 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.1543474197 +-0.5127333999 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.8518632650 +-0.4852351546 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.8287065625 +-0.3144567311 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.1051394939 +-0.4519478381 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.3149969578 +-0.4562896788 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +1.3508741856 +-0.5586493015 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.3605817556 +-0.9191575050 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.4112205505 +-1.0861853361 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.4112205505 +-1.2554806471 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.2517460585 +-1.3431513309 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.3114545345 +-1.1337996721 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.2260487080 +-0.8579391241 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.2071536779 +-0.9040418267 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +1.4051741362 +-0.6402738094 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.4112205505 +-0.7559084892 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.3636049032 +-0.9221805930 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +1.4444758892 +-0.5714976192 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.4663941860 +-0.7256771922 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.4747080803 +-0.8911935091 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.4875566959 +-0.6803302765 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.4535455704 +-0.5609166622 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +1.4750334024 +-0.8895100951 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.4134879112 +-1.1088588238 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +1.7422282696 +-0.1936147064 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.5816051960 +-0.2491238266 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.5508978367 +-0.3235296607 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.4658620358 +-0.3802198172 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +1.3654725552 +-0.3660472631 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.4162578583 +-0.4817896783 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.3996053934 +-0.6303653717 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +1.4376817942 +-0.5771209598 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.4163218737 +-0.4873484075 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + +0.550466 +0.335490 +0.032509 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +0.6274601817 +0.5251475573 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.4705809355 +0.3729170561 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.4511057436 +0.2956217527 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.2311669588 +0.0688870400 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.2144986689 +-0.0122721717 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.1540750116 +-0.0580843948 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.1329125166 +-0.0875599086 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0645405725 +-0.1621961296 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.1125058234 +-0.3256313503 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.1646562517 +-0.3422585428 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.2760694921 +-0.4162033200 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.4571718276 +-0.3881945014 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.7220491171 +-0.2152461410 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.6482236385 +-0.1506635100 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.5987128615 +-0.0847281292 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.6834430695 +-0.0062026721 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.7231949568 +0.0122033628 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.8051028252 +-0.0584026203 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.8143310547 +0.3014148772 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.1295506954 +1.0596289635 + + + + +1.6904302835 +-1.0409200191 + + + + + +0.550526 +0.343850 +0.052530 +1.000000 + + +0.312578 +0.152059 +0.000000 +1.000000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +0.8042168021 +0.1394387931 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.7439830899 +0.2173877507 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.6813873053 +0.1110937148 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.5135896206 +-0.0333886556 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.4051371813 +-0.0020321403 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.4660263658 +0.1392377466 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.3773272336 +0.0015318186 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.2987590134 +-0.0394085124 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.3849959075 +-0.0129938591 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.4995052516 +-0.0518904850 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.6400504708 +-0.1097616851 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.8124841452 +0.0272395257 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +0.7356544733 +0.3518464267 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.6762970090 +0.3600734174 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.5659818053 +0.2383201867 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.6741260886 +0.1516422331 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.5958645940 +0.2427407801 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.6554368138 +0.3268317580 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.7331269383 +0.3284094632 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +0.0731453598 +-0.2089694589 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.1215770990 +-0.2781262398 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.1626306176 +-0.2972659171 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.2452905178 +-0.2160401791 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.2079429477 +-0.3073347807 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.2382744551 +-0.3245810568 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.3235284686 +-0.3412464857 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.4156505466 +-0.3058151305 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.3979347646 +-0.3908503652 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.4841515720 +-0.4664372504 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.4758842289 +-0.5361189246 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.4888757765 +-0.5762744546 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.5313936472 +-0.5514724851 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.5727304816 +-0.5668260455 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.5821789503 +-0.4983254671 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.5762736797 +-0.4487215877 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.6022568345 +-0.4723424613 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.6400504708 +-0.5384809971 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.7002841830 +-0.5065927505 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.7380778193 +-0.5302136540 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.8337430954 +-0.4865150154 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.8597262502 +-0.5160411596 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.9258651733 +-0.4806097746 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.9459430575 +-0.5998952985 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.8290188909 +-0.7274481654 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.6128863096 +-0.7298102379 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.3601410687 +-0.6731200814 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.0048040999 +-0.3530569375 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +0.6274601817 +0.5251475573 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.4705809355 +0.3729170561 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.4511057436 +0.2956217527 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.2311669588 +0.0688870400 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.2144986689 +-0.0122721717 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.1540750116 +-0.0580843948 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.1329125166 +-0.0875599086 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0645405725 +-0.1621961296 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.1125058234 +-0.3256313503 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.1646562517 +-0.3422585428 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.2760694921 +-0.4162033200 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.4571718276 +-0.3881945014 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.7220491171 +-0.2152461410 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.6482236385 +-0.1506635100 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.5987128615 +-0.0847281292 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.6834430695 +-0.0062026721 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.7231949568 +0.0122033628 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.8051028252 +-0.0584026203 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.8143310547 +0.3014148772 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +0.7484456897 +-0.0516210534 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.7389972806 +0.0345952250 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.7555319667 +0.0499488078 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.7366351485 +0.0948285162 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.7626183033 +0.1219925508 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.7437214851 +0.1373461336 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.7590751648 +0.1633291245 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.7307581306 +0.1998354495 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.7271867394 +0.2778904736 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.6944800019 +0.3662337065 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.6338835955 +0.4066243768 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.6657720208 +0.4349694550 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.6161677837 +0.4326073527 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.6197109818 +0.4644955695 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.5724688768 +0.4774870574 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.5498512983 +0.4997392893 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.6043573022 +0.5613412857 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.8287572265 +0.4786681235 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.8724561930 +0.2436401695 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.8665509224 +-0.0941386744 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +0.6042322516 +-0.0871656090 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.5038002133 +-0.0526425764 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.3447212875 +-0.0192201231 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +0.2456160486 +-0.3766772747 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.1614370644 +-0.3417716324 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +0.6890441179 +0.0944411308 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.6830468178 +-0.0042214552 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +0.7144377828 +-0.0154410591 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.7374127507 +-0.0372087285 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.7404357791 +0.0341408551 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.7555508614 +0.0498619489 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.7362035513 +0.0940019414 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.7628061175 +0.1212115288 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.7428541780 +0.1357233077 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.7591785192 +0.1635375470 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.7307621241 +0.1986076832 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.7271344662 +0.2778178155 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.6956950426 +0.3660978079 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.6334208250 +0.4054005444 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.6630464196 +0.4368427396 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.6158872843 +0.4326101243 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.6183057427 +0.4634476602 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.5723558068 +0.4767501056 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.5572407246 +0.4924712181 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + +0.550466 +0.335490 +0.032509 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +0.9470582008 +0.3777756989 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.8982124329 +0.4929949641 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.0069154501 +0.6615995765 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.9756039977 +0.6578424573 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.9367778897 +0.7592855096 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.0960775614 +0.7543900013 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.4204862118 +0.7134143710 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.4292534590 +0.5255569220 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.1036151648 +0.5230521560 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.1295506954 +1.0596289635 + + + + +1.6904302835 +-1.0409200191 + + + + + +0.550526 +0.343850 +0.052530 +1.000000 + + +0.312578 +0.152059 +0.000000 +1.000000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +0.9470582008 +0.3777756989 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.8982124329 +0.4929949641 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.0069154501 +0.6615995765 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.9756039977 +0.6578424573 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.9367778897 +0.7592855096 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.0960775614 +0.7543900013 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.4204862118 +0.7134143710 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.4292534590 +0.5255569220 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.1036151648 +0.5230521560 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +1.1360647678 +0.6230297685 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.2104710340 +0.6490127444 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.1774016619 +0.7092460394 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + +0.856416 +0.798789 +0.690076 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +0.9904989600 +0.9081187248 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.2081702948 +1.0570077896 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.4424693584 +1.0139281750 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +0.9904989600 +0.9081187248 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.2081702948 +1.0570077896 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.4424693584 +1.0139281750 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.856416 +0.798789 +0.690076 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +0.9670690894 +0.8952704072 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.9579994082 +0.9345710874 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.9979273081 +0.9784955382 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.0736373663 +0.9451520443 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +0.9670690894 +0.8952704072 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.9579994082 +0.9345710874 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.9979273081 +0.9784955382 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.0736373663 +0.9451520443 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.856416 +0.798789 +0.690076 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +1.3774702549 +1.0282881260 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.4258416891 +1.0524730682 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.4764804840 +0.9935221076 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +1.3774702549 +1.0282881260 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.4258416891 +1.0524730682 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.4764804840 +0.9935221076 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.856416 +0.798789 +0.690076 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +1.2837506533 +1.0131723881 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.2973551750 +1.0668330193 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.3472381830 +1.0827044249 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.3903189898 +1.0494500399 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.3903189898 +0.9988125563 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +1.2837506533 +1.0131723881 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.2973551750 +1.0668330193 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.3472381830 +1.0827044249 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.3903189898 +1.0494500399 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.3903189898 +0.9988125563 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.856416 +0.798789 +0.690076 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +1.1892752647 +0.9859642982 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.1802055836 +1.0366016626 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.2210190296 +1.0842159986 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.2761926651 +1.0721234083 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.2935761213 +1.0063704252 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +1.1892752647 +0.9859642982 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.1802055836 +1.0366016626 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.2210190296 +1.0842159986 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.2761926651 +1.0721234083 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.2935761213 +1.0063704252 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.856416 +0.798789 +0.690076 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +1.0804395676 +0.9511982799 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.0570096970 +0.9988125563 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.0878679752 +1.0434927940 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.1371247768 +1.0479384661 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.1741591692 +0.9904989600 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +1.0804395676 +0.9511982799 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.0570096970 +0.9988125563 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.0878679752 +1.0434927940 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.1371247768 +1.0479384661 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.1741591692 +0.9904989600 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + +0.243528 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +1.4530501366 +0.6783476472 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.0009137392 +0.8449146152 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.0297203064 +0.8962623477 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.3040078878 +1.0215007067 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.5808005333 +0.8712146878 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +1.0881993771 +0.9661380053 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.0916975737 +0.9577421546 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.1049906015 +0.9059675932 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.1539649963 +0.8744830489 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.1784522533 +0.8926740885 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.1770529747 +0.9059675932 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.1077891588 +0.9647387266 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.1651591063 +0.9969229102 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.1994411945 +1.0046191216 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.2120345831 +0.9878273606 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.2169320583 +0.9185613990 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.2344229221 +0.8842782378 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.2771005630 +0.9038686156 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.2882946730 +0.9346534610 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.2833973169 +0.9745339155 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.2805987597 +1.0172129869 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.3239760399 +1.0200115442 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.3183789253 +0.9801311493 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.3176792860 +0.9248583317 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.3442654610 +0.8954727650 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.3834449053 +0.9199607372 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.3967379332 +0.9871277213 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.3876427412 +1.0123153925 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.3967379332 +1.0137146711 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.4233239889 +1.0060184002 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.4177269936 +0.9514452219 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.4422141314 +0.8989710212 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.4771958590 +0.9220596552 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.4813936949 +0.9794315100 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.4317196608 +1.0081174374 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.3561592102 +1.0235098600 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.2428184748 +1.0172129869 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.1322764158 +0.9885270000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +1.0581151247 +0.9003703594 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.0714082718 +0.8765820265 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.0539174080 +0.8485957980 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.0413240194 +0.8618892431 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.0546170473 +0.8870768547 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +1.2875254154 +0.7343676090 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.0297462940 +0.8958376646 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +1.4530501366 +0.6783476472 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.0009137392 +0.8449146152 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.0297203064 +0.8962623477 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.3040078878 +1.0215007067 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.5808005333 +0.8712146878 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +1.3413351774 +0.7361815572 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.3139301538 +0.7869826555 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.3847886324 +0.8427234292 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.4594261646 +0.8814585805 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.5227264166 +0.8342206478 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + +0.856416 +0.798789 +0.690076 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +0.9753829241 +0.9368384480 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.9927663803 +0.9451520443 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.0071266890 +0.9602676630 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.0554980040 +0.9171881080 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.0403820276 +0.8627717495 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.9867199659 +0.8831778765 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +0.9601664543 +0.9374521375 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.9727598429 +0.9318548441 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.9734594822 +0.9227593541 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.9832543731 +0.9297558665 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.0371261835 +0.8807799816 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.0294301510 +0.8681861162 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.9573678970 +0.9136638045 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +0.9753829241 +0.9368384480 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.9927663803 +0.9451520443 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.0071266890 +0.9602676630 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.0554980040 +0.9171881080 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.0403820276 +0.8627717495 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.9867199659 +0.8831778765 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.856416 +0.798789 +0.690076 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +1.0985788107 +1.0056146383 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.1212528944 +1.0109051466 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.1409038305 +1.0229976177 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.1824730635 +0.9595118761 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.1620663404 +0.8945146203 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.1068927050 +0.9398615360 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +1.0595144033 +0.9486466050 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.0574156046 +0.9759331942 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.0609136820 +0.9899263382 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.0588147640 +1.0067180395 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.0965950489 +0.9850287437 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.1245803833 +0.9416500330 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.1595621109 +0.9129641652 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.1784522533 +0.9136638045 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.1686573029 +0.8947730660 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.1378734112 +0.9024692774 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.1091884375 +0.9360527992 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.0979943275 +0.9689366221 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +1.0985788107 +1.0056146383 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.1212528944 +1.0109051466 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.1409038305 +1.0229976177 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.1824730635 +0.9595118761 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.1620663404 +0.8945146203 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.1068927050 +0.9398615360 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.856416 +0.798789 +0.690076 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +1.2179957628 +1.0418921709 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.2459604740 +1.0381132364 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.2716578245 +1.0464268923 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.2829948664 +0.9572445750 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.2316002846 +0.9066071510 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.2134609222 +0.9708486199 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +1.2179957628 +1.0418921709 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.2459604740 +1.0381132364 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.2716578245 +1.0464268923 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.2829948664 +0.9572445750 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.2316002846 +0.9066071510 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.2134609222 +0.9708486199 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.856416 +0.798789 +0.690076 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +1.3351453543 +1.0426479578 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.3593310118 +1.0381132364 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.3827608824 +1.0358458757 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.3827608824 +0.9595118761 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.3351453543 +0.9156765342 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.3148101568 +0.9741555452 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +1.3351453543 +1.0426479578 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.3593310118 +1.0381132364 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.3827608824 +1.0358458757 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.3827608824 +0.9595118761 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.3351453543 +0.9156765342 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.3148101568 +0.9741555452 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.856416 +0.798789 +0.690076 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +1.4333997965 +1.0267765522 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.4538064003 +1.0192186832 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.4719457626 +1.0192186832 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.4742131233 +0.9625350237 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.4417135715 +0.9171881080 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.4190394878 +0.9723601937 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +1.4333997965 +1.0267765522 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.4538064003 +1.0192186832 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.4719457626 +1.0192186832 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.4742131233 +0.9625350237 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.4417135715 +0.9171881080 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.4190394878 +0.9723601937 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + +0.178170 +0.062433 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +1.0046710968 +0.7296953797 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.8243175745 +0.7722764015 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.6978196502 +0.9200575948 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.9583303332 +0.9163004756 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.0935955048 +0.7760335803 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +0.9796866179 +0.7545958161 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.9135521054 +0.8178946376 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.9078834057 +0.8434031010 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.8134054542 +0.7536510229 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.8285219669 +0.7763252258 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.8785952330 +0.8358450532 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.8209637403 +0.8670220971 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.7954546809 +0.8509612083 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.7803382277 +0.8745801449 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.7217618823 +0.8783591986 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.7444366217 +0.8311212659 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.7831725478 +0.7923861742 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.7992337942 +0.7253082991 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.8861534595 +0.7640433908 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.9721283913 +0.7432587147 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +0.7510535121 +0.8821116686 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.8956047297 +0.8310946822 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.9815796614 +0.7517349124 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +1.0046710968 +0.7296953797 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.8243175745 +0.7722764015 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.6978196502 +0.9200575948 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.9583303332 +0.9163004756 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.0935955048 +0.7760335803 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + +0.227280 +0.010169 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +0.7311611772 +0.9674617648 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.7724341750 +1.0030002594 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.8228789568 +0.9078487158 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.7907777429 +0.8505284786 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.7460653186 +0.9491192698 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.9857653975 +1.7417933941 + + + + +0.7784197330 +0.7424194813 + + + + + +0.491727 +0.047432 +0.000000 +1.000000 + + +0.095765 +0.002050 +0.000000 +1.000000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +0.7311611772 +0.9674617648 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.7724341750 +1.0030002594 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.8228789568 +0.9078487158 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.7907777429 +0.8505284786 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.7460653186 +0.9491192698 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + +0.227280 +0.010169 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +0.7840671539 +0.7943609357 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.7993285656 +0.7268574238 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.8962531686 +0.7840369940 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.9054249525 +0.8654317260 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.8194395304 +0.7760121822 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.9857653975 +1.7417933941 + + + + +0.7784197330 +0.7424194813 + + + + + +0.491727 +0.047432 +0.000000 +1.000000 + + +0.095765 +0.002050 +0.000000 +1.000000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +0.9796866179 +0.7545958161 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.9135521054 +0.8178946376 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.9078834057 +0.8434031010 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.8134054542 +0.7536510229 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.8285219669 +0.7763252258 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.8785952330 +0.8358450532 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.8209637403 +0.8670220971 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.7954546809 +0.8509612083 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.7803382277 +0.8745801449 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.7217618823 +0.8783591986 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.7444366217 +0.8311212659 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.7831725478 +0.7923861742 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.7992337942 +0.7253082991 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.8861534595 +0.7640433908 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.9721283913 +0.7432587147 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +0.7840671539 +0.7943609357 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.7993285656 +0.7268574238 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.8962531686 +0.7840369940 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.9054249525 +0.8654317260 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.8194395304 +0.7760121822 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +0.8016764522 +0.7661855221 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.8292642832 +0.7755773067 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + +0.030309 +0.030309 +0.030309 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +0.9558253884 +0.6006999016 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.9069796205 +0.6658238173 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.1800148487 +0.8474193811 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.2451425791 +0.8286336660 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.2238508463 +0.7647621036 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +0.9558253884 +0.6006999016 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.9069796205 +0.6658238173 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.1800148487 +0.8474193811 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.2451425791 +0.8286336660 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.2238508463 +0.7647621036 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.789159 +0.789159 +0.789159 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +1.1717501879 +0.7920143008 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.1907693148 +0.8321090341 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.2295051813 +0.8179376125 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.2124991417 +0.7792025208 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +1.1717501879 +0.7920143008 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.1907693148 +0.8321090341 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.2295051813 +0.8179376125 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.2124991417 +0.7792025208 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +1.2896015644 +0.6608232260 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.2896015644 +0.6832630634 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + +0.178170 +0.062433 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +1.1599756479 +0.1210371405 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.0247104168 +0.0609227456 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.8794256449 +0.2876040936 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.9658450484 +0.4704520404 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.9683499336 +0.6382713914 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.2025591135 +0.5668855309 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.5908201933 +0.6432809234 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.7210755348 +0.4278710186 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.6409183741 +0.2011896670 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.5519940853 +0.2162182629 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.3941847086 +0.0959894732 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +1.2991912365 +0.0820726529 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.2163252831 +0.1335054189 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.2549008131 +0.3192348778 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.4177751541 +0.3135201037 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.4877825975 +0.3763823807 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.5335017443 +0.1992250681 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.4806389809 +0.1149324775 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.5635049343 +0.1863668859 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.4863538742 +0.3992413878 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.4806389809 +0.4349586070 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.4134889841 +0.3863832057 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.2577582598 +0.3749537170 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.2206114531 +0.3792397678 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.2263263464 +0.3192348778 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.1520327330 +0.1006455943 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +1.1599756479 +0.1210371405 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.0247104168 +0.0609227456 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.8794256449 +0.2876040936 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.9658450484 +0.4704520404 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.9683499336 +0.6382713914 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.2025591135 +0.5668855309 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.5908201933 +0.6432809234 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.7210755348 +0.4278710186 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.6409183741 +0.2011896670 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.5519940853 +0.2162182629 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.3941847086 +0.0959894732 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.000000 +1.000000 +1.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +1.4025330544 +0.4577698410 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.4122067690 +0.4861887693 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.4200665951 +0.4976772368 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.4376001358 +0.5103750825 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.4569474459 +0.4656304121 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +1.4025330544 +0.4577698410 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.4122067690 +0.4861887693 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.4200665951 +0.4976772368 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.4376001358 +0.5103750825 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.4569474459 +0.4656304121 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +1.3595720530 +0.3455493450 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.4871776104 +0.4420487583 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.3517463207 +0.4420487583 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.2241748571 +0.3162800074 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +1.4817361832 +0.3985134363 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.5506610870 +0.2177208364 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +1.1989489794 +0.4093257785 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.2261132002 +0.3313768208 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.1606050730 +0.1206472293 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +1.3323990107 +0.4910260141 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.3511416912 +0.4450720549 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +1.1194249392 +0.5228263736 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.0466769934 +0.5700643063 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.0041618347 +0.5313292146 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +1.1222592592 +0.4850360155 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.0646277666 +0.4500799477 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.0211678743 +0.4576380253 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +1.4192023277 +0.5740300417 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.5582036972 +0.5796402693 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.5837600231 +0.5808869600 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.6161729097 +0.5628095865 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + +0.228328 +0.094040 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +1.4914878607 +0.7775396109 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.3910083771 +0.6640272737 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.4884197712 +0.5443791151 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.5819963217 +0.6640272737 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.448959 +0.238088 +0.033912 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +1.4060125351 +0.6850575209 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.6625036001 +0.6386202574 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +1.4914878607 +0.7775396109 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.3910083771 +0.6640272737 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.4884197712 +0.5443791151 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.5819963217 +0.6640272737 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +1.4865214825 +0.5771468282 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.5843833685 +0.5796402693 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + +0.529708 +0.446991 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +1.5987032652 +0.5828943849 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.4843689203 +0.5773438811 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.4323512316 +0.6589781046 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.4710484743 +0.7383090854 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.5698422194 +0.7760527134 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.715572 +0.624982 +0.135397 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +2.0538735390 +0.9194552302 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.4281238317 +0.6961140037 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.4347572327 +0.7071705461 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.0649292469 +0.9658924937 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +1.5987032652 +0.5828943849 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.4843689203 +0.5773438811 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.4323512316 +0.6589781046 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.4710484743 +0.7383090854 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.5698422194 +0.7760527134 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + +0.047366 +0.008513 +-0.066761 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +1.2667250633 +0.5102469921 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.2080620527 +0.5184917450 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.2930266857 +0.6580282450 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.4203044176 +0.5499132276 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.3794460297 +0.5315375328 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.3299261332 +0.4984533787 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +1.2663152218 +0.5081998110 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.2781139612 +0.5507762432 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.2699061632 +0.5795025826 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.2745230198 +0.5918138623 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.2842699289 +0.5825803876 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.2796529531 +0.5733469129 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +1.3827642202 +0.5246148109 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.3623850346 +0.5595081449 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.3629326820 +0.5868275762 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.3562756777 +0.5957970619 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.3495121002 +0.5861938596 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.3557516336 +0.5791074038 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +1.2667250633 +0.5102469921 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.2080620527 +0.5184917450 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.2930266857 +0.6580282450 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.4203044176 +0.5499132276 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.3794460297 +0.5315375328 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.3299261332 +0.4984533787 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +1.3304390907 +0.4958885312 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.3319780827 +0.5394909382 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.3258221149 +0.5712950230 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +2.0364122391 +0.7306970358 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.4420634508 +0.6149733067 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.4249187708 +0.5735413432 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.4834964275 +0.4506741762 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.4834964275 +0.3978127241 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.5277868509 +0.2978045344 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.5549325943 +0.2006537616 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.6649442911 +0.1663652509 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.6763740778 +0.2135119587 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.6520857811 +0.4020987749 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.5549325943 +0.5778273940 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.6749453545 +0.5221085548 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.1207067966 +0.5649692416 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.1435663700 +0.6178306937 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +1.7769906521 +1.0203540325 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.8754760027 +1.0633656979 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.9340684414 +0.9742255807 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.0431501865 +0.9972898364 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.0711998940 +1.0103802681 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.2232911587 +1.0795730352 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.4034318924 +0.8526708484 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.3454627991 +0.6619234681 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.1447522640 +0.6157950163 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.1123392582 +0.6145482659 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.9577548504 +0.5933541059 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.9134987593 +0.5921074152 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.7801072598 +0.5808869600 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.7233847380 +0.5783935189 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + +0.550466 +0.335490 +0.032509 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +1.8688294888 +1.0625140667 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.9336463213 +0.9565802813 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.8291654587 +0.8951483965 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.7788598537 +1.0136587620 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.550466 +0.335490 +0.032509 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +1.6245115995 +0.5955697894 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.6209684610 +0.5188018680 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.6918315887 +0.4680169225 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.7922210693 +0.4609306455 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.8217473030 +0.4951809347 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.8241094351 +0.6073802114 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.1295506954 +1.0596289635 + + + + +1.6904302835 +-1.0409200191 + + + + + +0.550526 +0.343850 +0.052530 +1.000000 + + +0.312578 +0.152059 +0.000000 +1.000000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +1.7227613926 +0.5790169239 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.7801072598 +0.5808869600 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.8511663675 +0.5690431595 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +1.9129104614 +0.9577995539 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.8814609051 +0.9976365566 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.8542045355 +0.9557028413 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.7986437082 +0.8686903715 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.7650974989 +0.8707870245 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.7556625605 +0.8372400403 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.7032467127 +0.8487718105 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.6780869961 +0.8288533092 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.6256711483 +0.8508685231 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.5994631052 +0.8131281734 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.5428539515 +0.8288533092 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.5187425613 +0.8047414422 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.5501921177 +0.7628076673 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.5743035078 +0.7313573956 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.5994631052 +0.6443449259 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.4432636499 +0.6139429212 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.4568917751 +0.5877343416 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.5795451403 +0.5814443231 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.6130912304 +0.5594291091 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.6225261688 +0.6139429212 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.6613138914 +0.6317647696 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.6970700026 +0.5970093012 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.7052692175 +0.5546451211 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.6843769550 +0.5091086030 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.6183328629 +0.5269304514 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.6822803020 +0.4713682532 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.7965470552 +0.4640298486 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.8164651394 +0.4787066579 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.9108138084 +0.4535464346 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.9915343523 +0.2732313871 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.1005594730 +0.2312976569 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.1341056824 +0.3413737118 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.1687002182 +0.4776583314 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.1068494320 +0.5688641667 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.1131391525 +0.6128945947 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.9034755230 +0.7009554505 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.8636394739 +0.6904720068 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.7871121168 +0.6747468710 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.7975953817 +0.7428891659 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.8091268539 +0.8215149045 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.8521078825 +0.8592552543 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.8877507448 +0.9294942617 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + +0.228328 +0.094040 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +1.6564654112 +0.8482691646 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.5312097073 +0.7067670226 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.6526407003 +0.5576161146 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.7692911625 +0.7067670226 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.448959 +0.238088 +0.033912 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +1.5431026220 +0.7270722389 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.8592940569 +0.7580304146 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +1.6564654112 +0.8482691646 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.5312097073 +0.7067670226 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.6526407003 +0.5576161146 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.7692911625 +0.7067670226 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.529708 +0.446991 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +1.8051711321 +0.5817843080 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.6467248201 +0.5770022869 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.5631818771 +0.6983453035 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.6204140186 +0.8186072707 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.7596594095 +0.8848429918 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +1.9129104614 +0.9577995539 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.8814609051 +0.9976365566 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.8542045355 +0.9557028413 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.7986437082 +0.8686903715 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.7650974989 +0.8707870245 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.7556625605 +0.8372400403 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.7032467127 +0.8487718105 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.6780869961 +0.8288533092 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.6256711483 +0.8508685231 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.5994631052 +0.8131281734 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.5428539515 +0.8288533092 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.5187425613 +0.8047414422 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.5501921177 +0.7628076673 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.5826900005 +0.7271640301 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.6068013906 +0.6464415789 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.5764001608 +0.6391031742 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.5457875729 +0.6339628100 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.4432636499 +0.6139429212 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.4568917751 +0.5877343416 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.5795451403 +0.5814443231 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.6130912304 +0.5594291091 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.6225261688 +0.6139429212 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.6613138914 +0.6317647696 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.7063916922 +0.6097495556 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.7210681438 +0.5594291091 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.6843769550 +0.5091086030 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.6183328629 +0.5269304514 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.6822803020 +0.4713682532 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.7965470552 +0.4640298486 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.8164651394 +0.4787066579 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.9108138084 +0.4535464346 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.9915343523 +0.2732313871 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.1005594730 +0.2312976569 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.1341056824 +0.3413737118 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.1687002182 +0.4776583314 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.1068494320 +0.5688641667 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.1131391525 +0.6128945947 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.9034755230 +0.7009554505 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.8636394739 +0.6904720068 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.7871121168 +0.6747468710 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.7975953817 +0.7428891659 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.8091268539 +0.8215149045 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.8521078825 +0.8592552543 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.8877507448 +0.9294942617 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +1.8051711321 +0.5817843080 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.6467248201 +0.5770022869 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.5631818771 +0.6983453035 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.6204140186 +0.8186072707 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.7596594095 +0.8848429918 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + +0.228328 +0.094040 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +1.8437079191 +0.9259988666 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.6901702881 +0.7525464296 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.8390196562 +0.5697182417 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.9820090532 +0.7525464296 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +1.9129104614 +0.9577995539 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.8814609051 +0.9976365566 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.8542045355 +0.9557028413 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.7986437082 +0.8686903715 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.7650974989 +0.8707870245 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.7556625605 +0.8372400403 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.7032467127 +0.8487718105 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.6780869961 +0.8288533092 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.6256711483 +0.8508685231 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.5994631052 +0.8131281734 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.5428539515 +0.8288533092 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.5187425613 +0.8047414422 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.5501921177 +0.7628076673 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.5743035078 +0.7313573956 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.5994631052 +0.6443449259 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.4432636499 +0.6139429212 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.4568917751 +0.5877343416 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.5795451403 +0.5814443231 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.6130912304 +0.5594291091 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.6225261688 +0.6139429212 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.6613138914 +0.6317647696 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.7063916922 +0.6097495556 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.7210681438 +0.5594291091 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.6843769550 +0.5091086030 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.6183328629 +0.5269304514 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.6822803020 +0.4713682532 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.7965470552 +0.4640298486 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.8164651394 +0.4787066579 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.9108138084 +0.4535464346 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.9915343523 +0.2732313871 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.1005594730 +0.2312976569 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.1341056824 +0.3413737118 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.1687002182 +0.4776583314 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.1068494320 +0.5688641667 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.1131391525 +0.6128945947 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.9034755230 +0.7009554505 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.8636394739 +0.6904720068 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.7871121168 +0.6747468710 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.7975953817 +0.7428891659 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.8091268539 +0.8215149045 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.8521078825 +0.8592552543 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.8877507448 +0.9294942617 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +1.8437079191 +0.9259988666 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.6901702881 +0.7525464296 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.8390196562 +0.5697182417 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.9820090532 +0.7525464296 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + +0.529708 +0.446991 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +2.0277700424 +0.5945765376 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.8317680359 +0.5934816599 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.7293616533 +0.7422232032 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.7995163202 +0.8896394968 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.9655786753 +0.9766684175 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +2.0277700424 +0.5945765376 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.8317680359 +0.5934816599 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.7293616533 +0.7422232032 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.7995163202 +0.8896394968 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.9655786753 +0.9766684175 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.228328 +0.094040 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +2.0229575634 +0.9991837740 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.8440965414 +0.7971233726 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.0174961090 +0.5841407776 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.1840691566 +0.7971233726 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.448959 +0.238088 +0.033912 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +1.8747719526 +0.8752292395 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.1843302250 +0.9061874151 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +1.9129104614 +0.9577995539 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.8814609051 +0.9976365566 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.8542045355 +0.9557028413 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.7986437082 +0.8686903715 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.7650974989 +0.8707870245 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.7556625605 +0.8372400403 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.7032467127 +0.8487718105 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.6780869961 +0.8288533092 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.6256711483 +0.8508685231 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.5994631052 +0.8131281734 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.5428539515 +0.8288533092 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.5187425613 +0.8047414422 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.5501921177 +0.7628076673 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.5743035078 +0.7313573956 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.5994631052 +0.6443449259 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.4432636499 +0.6139429212 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.4568917751 +0.5877343416 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.5795451403 +0.5814443231 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.6130912304 +0.5594291091 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.6225261688 +0.6139429212 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.6613138914 +0.6317647696 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.7063916922 +0.6097495556 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.7210681438 +0.5594291091 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.6843769550 +0.5091086030 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.6183328629 +0.5269304514 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.6822803020 +0.4713682532 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.7965470552 +0.4640298486 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.8164651394 +0.4787066579 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.9108138084 +0.4535464346 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.9915343523 +0.2732313871 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.1005594730 +0.2312976569 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.1341056824 +0.3413737118 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.1687002182 +0.4776583314 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.1068494320 +0.5688641667 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.1131391525 +0.6128945947 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.9034755230 +0.7009554505 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.8636394739 +0.6904720068 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.7871121168 +0.6747468710 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.7975953817 +0.7428891659 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.8091268539 +0.8215149045 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.8521078825 +0.8592552543 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.8877507448 +0.9294942617 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +2.0229575634 +0.9991837740 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.8440965414 +0.7971233726 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.0174961090 +0.5841407776 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.1840691566 +0.7971233726 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + +0.301677 +0.288332 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +2.1690292358 +0.6415215731 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.3877074718 +0.8668729663 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.2112109661 +1.0511504412 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.0369343758 +0.8446708322 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.715572 +0.624982 +0.135397 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +2.3700649738 +0.7005366087 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.5320469141 +0.6098733544 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.5386803150 +0.6209298372 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.3811206818 +0.7469738722 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.076032 +0.051635 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +2.1975259781 +1.0203300714 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.0493505001 +0.8479725718 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.1951847076 +0.6666131616 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.3393471241 +0.8479725718 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.013192 +0.025332 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +2.1975259781 +1.0203300714 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.0493505001 +0.8479725718 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.1951847076 +0.6666131616 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.3393471241 +0.8479725718 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +2.0664153099 +0.7878445387 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.2121450901 +0.7421265244 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.3364441395 +0.8935675025 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.3635897636 +0.9064256549 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.1821420193 +1.0264354944 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +2.0664153099 +0.7878445387 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.2121450901 +0.7421265244 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.3364441395 +0.8935675025 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.3635897636 +0.9064256549 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.1821420193 +1.0264354944 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +2.2013423443 +0.7006875873 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.0873188972 +0.8302744627 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.1857936382 +0.9754117727 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.3024086952 +0.8432331085 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.000000 +1.000000 +1.000000 +1.000000 + + + + + + + + + + +2.2453968525 +0.9417191744 + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + +0.529708 +0.446991 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +2.2243018150 +0.6165137887 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.0001122952 +0.6152614355 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.8847675323 +0.7857376337 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.9629144669 +0.9526910782 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.1680502892 +1.0619212389 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.715572 +0.624982 +0.135397 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +2.0538735390 +0.9194552302 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.4281238317 +0.6961140037 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.4347572327 +0.7071705461 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.0649292469 +0.9658924937 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +2.2243018150 +0.6165137887 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.0001122952 +0.6152614355 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.8847675323 +0.7857376337 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.9629144669 +0.9526910782 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.1680502892 +1.0619212389 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.228328 +0.094040 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +2.2187972069 +1.0793082714 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.0142138004 +0.8481892347 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.2125504017 +0.6045772433 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.4030785561 +0.8481892347 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.448959 +0.238088 +0.033912 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +2.0560846329 +0.9459908009 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.3656427860 +0.9769489765 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +2.2187972069 +1.0793082714 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.0142138004 +0.8481892347 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.2125504017 +0.6045772433 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.4030785561 +0.8481892347 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.078453 +0.051977 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +2.2195775509 +1.0323050022 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.0602302551 +0.8469523191 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.2170598507 +0.6519191265 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.3720915318 +0.8469523191 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +2.2195775509 +1.0323050022 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.0602302551 +0.8469523191 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.2170598507 +0.6519191265 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.3720915318 +0.8469523191 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +2.0364122391 +0.7306970358 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.4420634508 +0.6149733067 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.4263474941 +0.5678265691 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.4963549376 +0.4763905704 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.5777921677 +0.3820971549 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.5749347210 +0.2006537616 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.6649442911 +0.1663652509 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.6763740778 +0.2135119587 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.6520857811 +0.4278151691 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.5549325943 +0.5778273940 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.6749453545 +0.5221085548 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.1207067966 +0.5649692416 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.1435663700 +0.6178306937 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + +0.550466 +0.335490 +0.032509 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +1.6545467377 +0.9336445928 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.6356499195 +0.9549033642 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.5754162073 +0.9489981532 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.5553383827 +0.8864027858 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.5171737671 +0.8230746984 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.5466799736 +0.7684147954 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.5824743509 +0.7292338610 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.6368309259 +0.7588499188 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.1295506954 +1.0596289635 + + + + +1.6904302835 +-1.0409200191 + + + + + +0.550526 +0.343850 +0.052530 +1.000000 + + +0.312578 +0.152059 +0.000000 +1.000000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +1.6545467377 +0.9336445928 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.6356499195 +0.9549033642 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.5754162073 +0.9489981532 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.5553383827 +0.8864027858 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.5171737671 +0.8230746984 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.5466799736 +0.7684147954 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.5824743509 +0.7292338610 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.6368309259 +0.7588499188 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + +0.550466 +0.335490 +0.032509 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +1.7154940367 +0.9662545919 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.6202036142 +0.8936972618 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.5984367132 +0.8254932761 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.6332637072 +0.7664799690 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.6714766026 +0.7229455113 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.7193636894 +0.7408429980 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.1295506954 +1.0596289635 + + + + +1.6904302835 +-1.0409200191 + + + + + +0.550526 +0.343850 +0.052530 +1.000000 + + +0.312578 +0.152059 +0.000000 +1.000000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +1.7154940367 +0.9662545919 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.6202036142 +0.8936972618 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.5984367132 +0.8254932761 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.6332637072 +0.7664799690 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.6714766026 +0.7229455113 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.7193636894 +0.7408429980 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + +0.550466 +0.335490 +0.032509 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +1.7769249678 +0.9885055423 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.7150104046 +0.9710917473 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.7029176950 +0.9053063989 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.6767973900 +0.8206561208 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.7009828091 +0.7814751267 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.7237170935 +0.7297175527 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.7832131386 +0.7616428137 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.7735390663 +0.8530650735 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.8073985577 +0.9585151672 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.1295506954 +1.0596289635 + + + + +1.6904302835 +-1.0409200191 + + + + + +0.550526 +0.343850 +0.052530 +1.000000 + + +0.312578 +0.152059 +0.000000 +1.000000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +1.7769249678 +0.9885055423 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.7150104046 +0.9710917473 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.7029176950 +0.9053063989 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.6767973900 +0.8206561208 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.7009828091 +0.7814751267 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.7237170935 +0.7297175527 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.7832131386 +0.7616428137 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.7735390663 +0.8530650735 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.8073985577 +0.9585151672 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + +0.550466 +0.335490 +0.032509 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +1.8359373808 +1.0494537354 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.7662833929 +0.9909241199 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.7793434858 +0.9406176805 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.7672507763 +0.8651580215 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.8059474230 +0.8414559364 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.8514159918 +0.8883763552 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.8523833752 +0.9512594342 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.8818895817 +1.0078542233 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.1295506954 +1.0596289635 + + + + +1.6904302835 +-1.0409200191 + + + + + +0.550526 +0.343850 +0.052530 +1.000000 + + +0.312578 +0.152059 +0.000000 +1.000000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +1.9129104614 +0.9577995539 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.8814609051 +0.9976365566 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.8542045355 +0.9557028413 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.7986437082 +0.8686903715 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.7650974989 +0.8707870245 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.7556625605 +0.8372400403 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.7032467127 +0.8487718105 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.6780869961 +0.8288533092 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.6256711483 +0.8508685231 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.5994631052 +0.8131281734 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.5428539515 +0.8288533092 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.5187425613 +0.8047414422 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.5501921177 +0.7628076673 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.5743035078 +0.7313573956 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.5994631052 +0.6443449259 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.4432636499 +0.6139429212 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.4568917751 +0.5877343416 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.5795451403 +0.5814443231 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.6130912304 +0.5594291091 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.6225261688 +0.6139429212 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.6613138914 +0.6317647696 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.7063916922 +0.6097495556 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.7210681438 +0.5594291091 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.6843769550 +0.5091086030 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.6183328629 +0.5269304514 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.6822803020 +0.4713682532 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.7965470552 +0.4640298486 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.8164651394 +0.4787066579 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.9108138084 +0.4535464346 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.9915343523 +0.2732313871 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.1005594730 +0.2312976569 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.1341056824 +0.3413737118 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.1687002182 +0.4776583314 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.1068494320 +0.5688641667 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.1131391525 +0.6128945947 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.9034755230 +0.7009554505 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.8636394739 +0.6904720068 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.7871121168 +0.6747468710 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.7975953817 +0.7428891659 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.8091268539 +0.8215149045 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.8521078825 +0.8592552543 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.8877507448 +0.9294942617 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + +0.550466 +0.335490 +0.032509 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +1.6977368593 +0.4810084105 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.6174253225 +0.5282502174 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.6197873354 +0.6038370728 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.6528568268 +0.6333631873 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.7153295279 +0.5993712544 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +1.9129104614 +0.9577995539 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.8814609051 +0.9976365566 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.8542045355 +0.9557028413 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.7986437082 +0.8686903715 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.7650974989 +0.8707870245 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.7556625605 +0.8372400403 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.7032467127 +0.8487718105 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.6780869961 +0.8288533092 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.6256711483 +0.8508685231 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.5994631052 +0.8131281734 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.5428539515 +0.8288533092 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.5187425613 +0.8047414422 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.5501921177 +0.7628076673 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.5743035078 +0.7313573956 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.5994631052 +0.6443449259 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.4432636499 +0.6139429212 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.4568917751 +0.5877343416 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.5795451403 +0.5814443231 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.6130912304 +0.5594291091 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.6225261688 +0.6139429212 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.6613138914 +0.6317647696 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.6984366179 +0.5997424722 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.7052692175 +0.5546451211 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.6843769550 +0.5091086030 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.6183328629 +0.5269304514 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.6822803020 +0.4713682532 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.7965470552 +0.4640298486 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.8164651394 +0.4787066579 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.9108138084 +0.4535464346 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.9915343523 +0.2732313871 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.1005594730 +0.2312976569 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.1341056824 +0.3413737118 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.1687002182 +0.4776583314 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.1068494320 +0.5688641667 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.1131391525 +0.6128945947 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.9034755230 +0.7009554505 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.8636394739 +0.6904720068 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.7871121168 +0.6747468710 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.7975953817 +0.7428891659 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.8091268539 +0.8215149045 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.8521078825 +0.8592552543 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.8877507448 +0.9294942617 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +1.9326789379 +0.9744777679 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.8678621054 +1.0625140667 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.7657996416 +0.9967287183 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.7759575844 +0.9430362582 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.7648322582 +0.8680602908 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.8030451536 +0.8404884934 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.8528671265 +0.8932135105 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.8533508778 +0.9556128383 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.8799548149 +0.9764126539 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.8770525455 +1.0044682026 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +1.8291654587 +0.9875380993 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.7633811235 +0.9768963456 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +1.7445164919 +0.8414559364 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.6787322760 +0.8308141828 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +1.6608350277 +0.8404884934 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.6003715992 +0.8351675868 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +1.5815069675 +0.8206561208 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.5195922852 +0.8129166961 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +1.8414078951 +0.5084038973 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.8014266491 +0.4674452841 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.6890476942 +0.4697057903 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.6183090210 +0.5204970241 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.6183090210 +0.6039397717 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.6721187830 +0.6317539811 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.7204871178 +0.5821720958 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.7192778587 +0.5198923945 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.6969075203 +0.4811942875 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + +0.113298 +0.113298 +0.113298 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +0.6959641576 +-0.9028599858 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.8162804246 +-1.2565846443 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.8283724785 +-1.2662590742 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.8253495097 +-1.2874221802 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.8753290772 +-1.4267207384 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.9934294820 +-1.5208199024 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.0096793175 +-1.3750579357 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.8410692215 +-0.8550920486 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.000000 +1.000000 +1.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +0.9107531905 +-1.0083016157 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.8349509239 +-1.1541463137 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.8505936265 +-1.1697896719 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.9357583523 +-1.0537613630 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.9448511600 +-1.1355890036 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.8810556531 +-1.2784700394 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.8925818205 +-1.3064633608 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.9766759276 +-1.1765028238 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.9834954739 +-1.2060517073 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.9024614096 +-1.3352801800 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.0221397877 +-1.1878677607 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +0.6959641576 +-0.9028599858 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.8162804246 +-1.2565846443 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.8283724785 +-1.2662590742 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.8253495097 +-1.2874221802 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.8753290772 +-1.4267207384 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.9934294820 +-1.5208199024 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.0096793175 +-1.3750579357 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.8410692215 +-0.8550920486 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.198185 +0.115576 +0.031715 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +0.7307338119 +-0.8004859090 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.8129296303 +-0.7626955509 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.9102419019 +-0.7882040739 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.8997157812 +-0.8647665977 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.8495336771 +-0.8375569582 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.8554446697 +-0.8600057364 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.8450521231 +-0.8703980446 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.7713593245 +-0.9592053890 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.6901082993 +-0.9129121900 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.6778260469 +-0.8925808072 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.6699662209 +-0.9367207885 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.6131333709 +-0.8859295845 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.6633155346 +-0.8085334301 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +0.7307338119 +-0.8004859090 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.8129296303 +-0.7626955509 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.9102419019 +-0.7882040739 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.8997157812 +-0.8647665977 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.8495336771 +-0.8375569582 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.8554446697 +-0.8600057364 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.8450521231 +-0.8703980446 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.7713593245 +-0.9592053890 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.6901082993 +-0.9129121900 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.6778260469 +-0.8925808072 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.6699662209 +-0.9367207885 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.6131333709 +-0.8859295845 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.6633155346 +-0.8085334301 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.198185 +0.115576 +0.031715 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +0.6016376615 +-0.6360771060 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.6865205169 +-0.8224440813 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.7437241673 +-0.8224440813 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.7917014360 +-0.7892301679 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.7658675313 +-0.5770301223 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.6920563579 +-0.4201866090 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.5721131563 +-0.4515553117 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +0.6016376615 +-0.6360771060 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.6865205169 +-0.8224440813 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.7437241673 +-0.8224440813 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.7917014360 +-0.7892301679 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.7658675313 +-0.5770301223 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.6920563579 +-0.4201866090 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.5721131563 +-0.4515553117 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +0.8225820661 +-0.5747735500 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.7081747651 +-0.4105491638 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.5365637541 +-0.4474535286 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.6011485457 +-0.8017353415 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.6159107685 +-0.9991736412 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.9074649215 +-1.5508937836 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.0347892046 +-1.4106572866 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.9905025363 +-1.3885146379 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.9148460627 +-1.3700624704 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.8680072427 +-1.2449469566 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.8547059298 +-1.1766207218 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.8329402208 +-1.1518297195 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.8202372789 +-1.1095534563 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.8637750149 +-0.9359669685 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.8480553031 +-0.8706640005 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.8553105593 +-0.8573614955 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.8504737020 +-0.8398264647 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.8909822106 +-0.8652220964 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.8666870594 +-0.7951255441 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.8595409393 +-0.7647546530 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +0.9916983843 +-1.5092569590 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.9879192710 +-1.3892725706 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.9161160588 +-1.3703774214 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.8707666397 +-1.2532273531 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.8556501865 +-1.1795361042 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.8339202404 +-1.1521381140 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.7772334814 +-0.9584625959 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + +0.550466 +0.335490 +0.032509 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +0.3946900964 +-0.3817862272 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.4810971022 +-0.5040253997 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.4948772490 +-0.5950541496 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.5221908092 +-0.6732857823 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.5792525411 +-0.6554635167 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.5772768259 +-0.5645723939 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.5796221495 +-0.4787345231 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.6043851376 +-0.4803152084 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.6358902454 +-0.5355926156 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.6279873252 +-0.6139697433 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.6569647193 +-0.6851019263 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.7287496924 +-0.6686361432 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.7215053439 +-0.6007971168 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.7386283875 +-0.5290063024 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.7487809062 +-0.5374628901 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.7428458333 +-0.6234095693 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.7738337517 +-0.6793375015 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.8403444886 +-0.6672449708 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.8342980146 +-0.6113170385 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.8397099972 +-0.5972916484 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.8589197993 +-0.6326496601 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.9115203619 +-0.6193472147 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.9030559063 +-0.5667420030 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.9278447032 +-0.4766480327 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.8716164827 +-0.3575305045 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.8504553437 +-0.2904135287 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.7815304995 +-0.2632039487 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.6684694886 +-0.1882264167 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.1295506954 +1.0596289635 + + + + +1.6904302835 +-1.0409200191 + + + + + +0.550526 +0.343850 +0.052530 +1.000000 + + +0.312578 +0.152059 +0.000000 +1.000000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +0.0731453598 +-0.2089694589 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.1286548227 +-0.2845563293 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.2337684780 +-0.3188066483 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.3235284686 +-0.3412464857 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.4156505466 +-0.3058151305 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.3979347646 +-0.3908503652 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.4841515720 +-0.4664372504 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.4758842289 +-0.5361189246 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.4888757765 +-0.5762744546 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.5313936472 +-0.5514724851 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.5727304816 +-0.5668260455 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.5821789503 +-0.4983254671 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.5762736797 +-0.4487215877 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.6022568345 +-0.4723424613 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.6400504708 +-0.5384809971 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.7002841830 +-0.5065927505 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.7380778193 +-0.5302136540 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.8337430954 +-0.4865150154 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.8597262502 +-0.5160411596 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.9258651733 +-0.4806097746 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.9459430575 +-0.5998952985 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.8290188909 +-0.7274481654 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.6128863096 +-0.7298102379 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.3601410687 +-0.6731200814 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.0048040999 +-0.3530569375 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +0.4386189282 +-0.2411807328 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.4128979743 +-0.3160114884 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.4078618884 +-0.4286797047 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.4695059061 +-0.4897992909 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.4804703593 +-0.5084533095 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.4859480560 +-0.4587480724 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.4908308089 +-0.5812287331 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.5144526958 +-0.6688325405 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.5779361725 +-0.6591579914 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.5771504641 +-0.5934868455 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.5782042146 +-0.5497547388 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.5782042146 +-0.4427954853 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.5457375646 +-0.3753234148 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +0.5790953040 +-0.4766269624 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.6022776365 +-0.4792614281 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +0.5996684432 +-0.4545809925 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.6293044686 +-0.5257131457 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.6279873252 +-0.6001384854 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.6609162092 +-0.6864191890 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.7280911207 +-0.6660016179 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.7201882005 +-0.6014557481 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.7399455309 +-0.5125405192 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.6846928596 +-0.4092755020 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.6476636529 +-0.3302083313 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +0.7406041026 +-0.5217613578 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.7511993051 +-0.5350442529 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.7451532483 +-0.6263475418 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.7778018713 +-0.6807667017 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.8388668895 +-0.6674642563 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.8346346617 +-0.5949053764 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.8606326580 +-0.4800204337 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.7898939848 +-0.3814612627 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.7487542629 +-0.3126635551 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +0.8364484906 +-0.5924867392 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.8576096296 +-0.6329987645 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.9126286507 +-0.6209056377 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.9035595655 +-0.5580212474 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.9283483624 +-0.4788111150 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.8715155125 +-0.3590889573 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.7832432985 +-0.2623437643 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.5746548772 +-0.1837382764 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +1.3420528173 +0.4392446578 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.2577582598 +0.4478167892 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.2063242197 +0.5163938403 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.2763316631 +0.5649692416 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.3257359266 +0.5660665631 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.3652049303 +0.5637447238 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.4163464308 +0.5806847811 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.4163464308 +0.5206798911 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.4063453674 +0.4721044898 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +1.1286625862 +0.4941165745 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.0493031740 +0.4495254159 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.9540719986 +0.4858029485 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.0379661322 +0.5644043088 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +1.2478125095 +0.7798195481 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.2313663960 +0.7522477508 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.1898316145 +0.7292361259 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.3068248034 +0.7038761377 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.3044062853 +0.7638569474 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.5312653780 +0.7841730118 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.5467439890 +0.7653080821 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.5370697975 +0.7638569474 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.3900226355 +0.6777554750 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.1825119257 +0.7072621584 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.1636472940 +0.7130667567 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.1264017820 +0.6734020710 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.2066972256 +0.6482488513 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.1878327131 +0.7029087543 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.2221759558 +0.6980715394 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.3895388842 +0.6767880917 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.3977619410 +0.6143887043 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.3005366325 +0.6579231620 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.2028275728 +0.5703705549 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.1191461086 +0.6327699423 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.0166000128 +0.6584068537 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.1264017820 +0.7212899327 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +1.1693569422 +1.0039194822 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.1700565815 +1.0186122656 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.1840492487 +1.0144143105 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.1868478060 +1.0305063725 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.2134338617 +1.0214108229 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.2127342224 +1.0102163553 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +1.2253276110 +0.9101655483 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.2204302549 +0.9220596552 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.2414191961 +0.9304555655 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.2617086172 +0.9206603765 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +1.3421665430 +0.9157627821 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.3239760399 +0.9227593541 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.3407672644 +0.9374521375 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.3848441839 +0.9752335548 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.3785474300 +0.9416500330 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +1.3855438232 +1.0326054096 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.3925400972 +1.0458987951 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.3960382938 +1.0151139498 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.3883423805 +1.0151139498 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +1.4415144920 +0.9164624214 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.4296207428 +0.9248583317 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.4436134100 +0.9346534610 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.4743973017 +0.9724349380 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.4646024704 +0.9304555655 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-0.8230235577 +-1.5580958128 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.2178977132 +-1.7048133612 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.2186276615 +-1.6201405525 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.2244672328 +-1.5310881138 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.2332265973 +-1.4471452236 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.2317667007 +-1.3719615936 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.2434458435 +-1.3069971800 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.2376062721 +-1.1858274937 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.2500153780 +-1.1770682335 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.0120527288 +-1.0084525347 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +0.7913249135 +-1.5404245853 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.9655007124 +-1.4546748400 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.0244525671 +-1.3528469801 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.1771913767 +-1.3414583206 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.5731062889 +-1.0567424297 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +2.1271193027 +-0.4986991584 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.3167030811 +-0.2454694510 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.3702955246 +-0.2756158412 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.4513542652 +-0.2943736017 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.6751031876 +-0.6715384722 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + +0.279263 +0.179721 +0.039114 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-0.7235468030 +-1.9408752918 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.3131934106 +-2.9711000919 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.5578064919 +-3.0577118397 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.4529385567 +-1.4713480473 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.3586628437 +-0.6964001060 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + +0.824137 +0.557381 +0.198743 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +2.8840682507 +-1.6101098061 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.8135590553 +-1.6554607153 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.7682316303 +-1.7058504820 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.6826131344 +-1.7562403679 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.6423223019 +-1.8167082071 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.5919585228 +-1.8167082071 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.5415947437 +-1.8872541189 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.4509398937 +-1.9275660515 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.3451762199 +-1.9577999115 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.5947563648 +-2.2349443436 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.4738833904 +-2.2651782036 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.3630831242 +-2.2752561569 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.3177556992 +-2.2853341103 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.2472465038 +-2.3004510403 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.1717008352 +-2.3407630920 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.0860824585 +-2.3709969521 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.9803186655 +-2.3760359287 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.8393001556 +-2.3810749054 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.7637545466 +-2.3961918354 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.7033180594 +-2.4012308121 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.6378451586 +-2.4213867188 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.5673359036 +-2.4012308121 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.4689006805 +-2.4004983902 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.3838161826 +-2.4030776024 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.3270932138 +-2.4004983902 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.2701898217 +-2.3861138821 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.1878640503 +-2.3669710159 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.1208277941 +-2.3695502281 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0641048029 +-2.3540759087 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.0370290205 +-2.3558800220 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.0924291387 +-2.3357241154 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.1629383862 +-2.3155679703 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.2066185474 +-2.2999165058 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.2427150011 +-2.2973372936 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.2813897729 +-2.2870213985 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.3097512424 +-2.2586519718 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.3484260142 +-2.2483358383 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.3767875135 +-2.2354407310 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.4051490128 +-2.2302827835 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.4464021027 +-2.1941761971 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.4928117990 +-2.1735441685 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.5392215252 +-2.1451747417 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.5778962970 +-2.3024954796 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.5108600259 +-2.3566551208 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.4206189215 +-2.4082355499 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.3896791041 +-2.4340257645 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.3458476961 +-2.4520790577 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.3123295605 +-2.4623951912 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.2478716224 +-2.4907643795 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.1705220938 +-2.5165545940 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.0751243457 +-2.5500819683 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.0080880877 +-2.5655562878 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0847313479 +-2.5965044498 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.1904423684 +-2.6145577431 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.3580330312 +-2.6377689838 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.4611657262 +-2.6506640911 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.4972621799 +-2.6480851173 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.5307803154 +-2.6584012508 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.5849249959 +-2.6635591984 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.6364912987 +-2.6609802246 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.6932142973 +-2.6687173843 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.7834554315 +-2.6738753319 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.8608049750 +-2.6764543056 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.8891664743 +-2.6661381721 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.9587810040 +-2.6790335178 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.0361305475 +-2.6867704391 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.1109018326 +-2.6893494129 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.1805163622 +-2.6738753319 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.2578659058 +-2.6764543056 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.3249021769 +-2.6764543056 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.4331915379 +-2.6687173843 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.5131193399 +-2.6635591984 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.6523485184 +-2.6532430649 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.7554812431 +-2.6300318241 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.8379873037 +-2.6171367168 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.9179152250 +-2.6068205833 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.0416743755 +-2.5887675285 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.1705904007 +-2.5500819683 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.2530965805 +-2.5268707275 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.3227109909 +-2.5036594868 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.4000606537 +-2.4830274582 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.4748318195 +-2.4546580315 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.5728077888 +-2.4211306572 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.6450006962 +-2.3798663616 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.7455551624 +-2.3566551208 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.8435311317 +-2.3102326393 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.9672904015 +-2.2405986786 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.0033869743 +-2.2328617573 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.0446400642 +-2.1606490612 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.824137 +0.557381 +0.198743 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +3.0008087158 +-2.2741260529 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.9363505840 +-2.3102326393 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.8590011597 +-2.3463389874 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.7971215248 +-2.3850243092 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.6501574516 +-2.4391839504 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.5985910892 +-2.5010805130 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.5238199234 +-2.4856064320 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.4335787296 +-2.5088176727 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.3794341087 +-2.5346078873 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.3356027603 +-2.5603981018 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.2685663700 +-2.5603981018 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.1344938278 +-2.6042416096 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.0262045860 +-2.6248738766 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.9565899372 +-2.6455061436 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.8766621351 +-2.6712963581 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.7245414257 +-2.6816124916 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.5517940521 +-2.6816124916 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.4744445086 +-2.7048237324 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.3842034340 +-2.7074027061 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.2862273455 +-2.7202978134 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.2423959970 +-2.7202978134 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.1598898172 +-2.7074027061 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.0902752876 +-2.7099816799 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.0077691078 +-2.7254559994 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.8530700207 +-2.6970865726 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.7757204771 +-2.6945075989 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.6957926154 +-2.6919286251 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.6339129806 +-2.6970865726 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.5875033140 +-2.6919286251 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.5024188161 +-2.6841914654 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.4276475906 +-2.6764543056 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.3296715319 +-2.6635591984 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.2007556409 +-2.6403479576 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.1543459296 +-2.6377689838 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0873096660 +-2.6171367168 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.0261363108 +-2.5913465023 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.0802809820 +-2.5810303688 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.1189557463 +-2.5810303688 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.1395822912 +-2.5526611805 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.1911486387 +-2.5449240208 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.2401366830 +-2.5242917538 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.2917030156 +-2.5062386990 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.3432693779 +-2.4830274582 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.3200645149 +-2.6790335178 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.2788114548 +-2.7331929207 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.2117751837 +-2.7615623474 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.1137991101 +-2.8131427765 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0692614391 +-2.8698813915 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.2162255496 +-2.9034087658 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.8151698112 +-2.9111459255 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.9105675220 +-2.8698813915 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.9776036739 +-2.8518283367 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.0085434914 +-2.8079848289 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.0575315952 +-2.7976686954 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.824137 +0.557381 +0.198743 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-0.2633415461 +-2.7718784809 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.2324017286 +-2.7847735882 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.2040402293 +-2.8028266430 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.1731004119 +-2.8131427765 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.1370039731 +-2.8363540173 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.0957508907 +-2.8415122032 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.0416062176 +-2.8621442318 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.0003531349 +-2.8801975250 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.1156711578 +-2.9034087658 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.1466109753 +-2.9627263546 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.2427150011 +-2.9266200066 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.824137 +0.557381 +0.198743 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +2.6114826202 +-1.7222143412 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.5624945164 +-1.7583206892 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.5006148815 +-1.8099012375 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.4206871986 +-1.8408495188 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.3897473812 +-1.8717979193 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.3072412014 +-1.9053252935 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.2273132801 +-1.7067401409 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.4284222126 +-1.5004179478 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +3.6851665974 +2.1575455666 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.6922492981 +-0.7665405273 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.4387385845 +-1.0201961994 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.5240291357 +-0.9113261700 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.5564712286 +-1.0879324675 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.7163959742 +-1.5158673525 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.2764904499 +-1.6478390694 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.7670961618 +-1.5789365768 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.3201147020 +-2.1772356033 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.7240640521 +-1.9634065628 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.0551765151 +-3.0604531765 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.1254615039 +-2.5953240395 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.3633709848 +-2.5304481983 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.6733742356 +-2.4835934639 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.9869821668 +-2.4763851166 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.0482618809 +-2.6638040543 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.1708213091 +-2.5376565456 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.4519870281 +-2.6674082279 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.7403621674 +-2.5124270916 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.8629215956 +-2.6493871212 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.0575747490 +-2.4763851166 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.1585061550 +-2.5304481983 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.3603687286 +-2.0655050278 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.3928108215 +-1.7879807949 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.4973468781 +-1.7987934351 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.4144389629 +-1.6546250582 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.6595578194 +-1.7627513409 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.9371187687 +-2.0691092014 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.0200266838 +-2.9521408081 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.7589879036 +-3.0314333439 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.012294 +0.000919 +-0.062625 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +2.4816515446 +-1.1987366676 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.2386362553 +-1.8258693218 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.2134034634 +-3.1089682579 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.5774769783 +-3.0837388039 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.4909644127 +-1.7609935999 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +2.4816515446 +-1.1987366676 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.2386362553 +-1.8258693218 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.2134034634 +-3.1089682579 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.5774769783 +-3.0837388039 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.4909644127 +-1.7609935999 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.125992 +0.056486 +-0.046576 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-0.1823792607 +-1.3941037655 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.2146779299 +-1.1772906780 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.0647198334 +-1.1011754274 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0898523480 +-1.1057884693 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.1590637863 +-1.3479732275 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.199183 +0.103351 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +0.1235101819 +-1.1780132055 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.1136847436 +-1.1802805662 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.1287151277 +-1.2485330105 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.1717959195 +-1.2243479490 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-0.1823792607 +-1.3941037655 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.2146779299 +-1.1772906780 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.0647198334 +-1.1011754274 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0898523480 +-1.1057884693 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.1590637863 +-1.3479732275 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.199183 +0.103351 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-0.2141183466 +-1.7073459625 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.2093370855 +-1.6069493294 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.2401014715 +-1.5376278162 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.3108637333 +-1.5939254761 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.2866780162 +-1.6566554308 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0705182627 +-1.7148506641 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-0.2251971811 +-1.7048133612 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.1908724606 +-1.7033534050 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-0.2141183466 +-1.7073459625 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.2093370855 +-1.6069493294 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.2401014715 +-1.5376278162 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.3108637333 +-1.5939254761 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.2866780162 +-1.6566554308 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0705182627 +-1.7148506641 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.199183 +0.103351 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-0.2165089846 +-1.6189013720 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.2188996077 +-1.5280662775 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.2377108485 +-1.4467928410 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.2926953435 +-1.5017719269 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.2640077770 +-1.5591413975 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0546463914 +-1.6241568327 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-0.2165089846 +-1.6189013720 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.2188996077 +-1.5280662775 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.2377108485 +-1.4467928410 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.2926953435 +-1.5017719269 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.2640077770 +-1.5591413975 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0546463914 +-1.6241568327 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.199183 +0.103351 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-0.2284621298 +-1.5256758928 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.2201482803 +-1.4395166636 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.1994607449 +-1.3559577465 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.2640039325 +-1.4140492678 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.2367950082 +-1.4684656858 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0198794361 +-1.5357302427 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-0.2284621298 +-1.5256758928 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.2201482803 +-1.4395166636 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.1994607449 +-1.3559577465 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.2640039325 +-1.4140492678 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.2367950082 +-1.4684656858 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0198794361 +-1.5357302427 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.199183 +0.103351 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-0.2308527678 +-1.4467928410 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.2242450565 +-1.3687024117 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.1827263385 +-1.2746843100 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.2383066118 +-1.3203322887 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.2114139050 +-1.3750809431 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0273353439 +-1.4444024563 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-0.2308527678 +-1.4467928410 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.2242450565 +-1.3687024117 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.1827263385 +-1.2746843100 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.2383066118 +-1.3203322887 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.2114139050 +-1.3750809431 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0273353439 +-1.4444024563 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.199183 +0.103351 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +0.1597457826 +-1.2098066807 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.1207710579 +-1.2310655117 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.0398520678 +-1.2724020481 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.2311825454 +-1.2983850241 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.2461633533 +-1.3603887558 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.0723285750 +-1.3679466248 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.1845478863 +-1.2842125893 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.1127054840 +-1.1770538092 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +0.0972530097 +-1.1145559549 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0972530097 +-1.1396493912 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0780601129 +-1.1426014900 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0721546039 +-1.1617906094 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0426270738 +-1.1617906094 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0314533524 +-1.1882420778 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0093077021 +-1.1985746622 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.0128379473 +-1.1838139296 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.0415263921 +-1.1750752926 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.0738328695 +-1.1730662584 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.1106792614 +-1.1910166740 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.1640494019 +-1.2918039560 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.0745953247 +-1.4531245232 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.0133670000 +-1.5207374096 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0083629228 +-1.5367983580 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0036390268 +-1.5519144535 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0300928466 +-1.6010419130 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.1066199690 +-1.6000971794 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0518227704 +-1.6435561180 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0735526904 +-1.7125234604 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.1607534438 +-1.7390562296 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.2065211236 +-1.8276211023 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.2271904051 +-1.7966233492 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.5121310949 +-1.8025276661 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.3453005254 +-2.1774520874 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.1917573661 +-2.1774520874 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.1415605545 +-2.1080763340 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.1725644618 +-1.9693247080 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.1386078000 +-1.9693247080 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.1238440350 +-1.9338988066 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0352614373 +-1.7508648634 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.0178881213 +-1.7139629126 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.0369864814 +-1.7125234604 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.0398208201 +-1.6454455853 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.1881511658 +-1.6048209667 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.0568268448 +-1.6076552868 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.0785567686 +-1.5585278273 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.1843720526 +-1.5226269960 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.1002866924 +-1.5245164633 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.1537147760 +-1.4586009979 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.1625730246 +-1.5397855043 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.1389510036 +-1.6283502579 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.0908389017 +-1.7125234604 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.2467264980 +-1.7006782293 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.2688721418 +-1.2918039560 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.1950533241 +-1.1707653999 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0825054869 +-1.0999135971 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +0.1597457826 +-1.2098066807 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.1207710579 +-1.2310655117 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.0398520678 +-1.2724020481 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.2311825454 +-1.2983850241 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.2461633533 +-1.3603887558 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.0723285750 +-1.3679466248 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.1845478863 +-1.2842125893 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.1127054840 +-1.1770538092 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + +0.415308 +0.268536 +0.051101 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-0.0912236571 +-1.0059268475 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.2500503957 +-1.1761628389 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.2355820984 +-1.1744663715 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.2295356840 +-1.1903377771 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.2144196033 +-1.1744663715 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.2008151412 +-1.2107439041 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.1811642647 +-1.1805125475 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.1622691751 +-1.1926051378 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.1607575715 +-1.1684200764 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.1554669440 +-1.1948724985 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.1154093668 +-1.1616179943 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.0957584828 +-1.1767336130 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.0844214261 +-1.1563274860 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.0572125092 +-1.1638853550 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.0254687667 +-1.1646411419 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.0163991265 +-1.1480139494 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.0088410918 +-1.1631295681 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.0005272548 +-1.1517928839 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0062749754 +-1.1820241213 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0259258635 +-1.1774893999 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0417977348 +-1.1782451868 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0334838964 +-1.1457465887 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0561579987 +-1.1517928839 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0637160316 +-1.1336541176 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0856343284 +-1.1389445066 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0977271870 +-1.1313867569 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.1083084345 +-1.1192941666 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.570365 +0.389323 +0.121105 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-0.0912305787 +-1.1127480268 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.1208344921 +-1.0992919207 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.1652403623 +-1.1033287048 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.1733141541 +-1.1410057545 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.1369820833 +-1.1477336884 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.1033412665 +-1.1342777014 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.570365 +0.389323 +0.121105 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-0.1961857527 +-1.0924364328 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.2065199614 +-1.0745227337 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.2361446917 +-1.1082832813 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.2320110053 +-1.1351538897 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.2175431103 +-1.1241300106 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.2030752301 +-1.1020823717 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.570365 +0.389323 +0.121105 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-0.1720726043 +-1.1020823717 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.1886073351 +-1.0972594023 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.2051420659 +-1.1199960709 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.1927410215 +-1.1372208595 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.1782731265 +-1.1268860102 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.1762062758 +-1.1089721918 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.570365 +0.389323 +0.121105 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-0.0625299886 +-1.1103502512 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.0776868314 +-1.1213740110 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.0721752569 +-1.1447997093 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.0487510487 +-1.1544455290 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.0322163142 +-1.1592684984 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.0239489488 +-1.1420437098 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.0149926348 +-1.1261969805 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.0184373707 +-1.1117281914 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.0273936838 +-1.1027712822 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.0418615751 +-1.1103502512 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.570365 +0.389323 +0.121105 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-0.0900878832 +-1.1503115892 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.0928436667 +-1.1620244980 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.1038668230 +-1.1640914679 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.1100673527 +-1.1544455290 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.1024889275 +-1.1434217691 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.570365 +0.389323 +0.121105 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-0.0811315700 +-1.1392878294 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.0893989354 +-1.1399767399 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.0962884054 +-1.1351538897 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.0900878832 +-1.1261969805 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.0838873535 +-1.1151731014 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.0804426223 +-1.1275749207 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.570365 +0.389323 +0.121105 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-0.2085867971 +-1.1289529800 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.2175431103 +-1.1344648600 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.2251215279 +-1.1489336491 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.2182320654 +-1.1592684984 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.2120315433 +-1.1737372875 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.2065199614 +-1.1950960159 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.1975636482 +-1.1937179565 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.1913631260 +-1.1826941967 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.1865404844 +-1.1730482578 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.1789620668 +-1.1620244980 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.1844736487 +-1.1468666792 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.1954967976 +-1.1454887390 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.2030752301 +-1.1379097700 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.570365 +0.389323 +0.121105 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-0.1672499627 +-1.1482446194 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.1762062758 +-1.1565124989 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.1775841713 +-1.1744263172 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.1748283952 +-1.1854500771 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.1679389179 +-1.1882060766 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.1658720672 +-1.1771821976 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.1679389179 +-1.1634024382 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.570365 +0.389323 +0.121105 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-0.1355583966 +-1.1544455290 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.1500262916 +-1.1516896486 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.1589826047 +-1.1578905582 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.1582936496 +-1.1737372875 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.1520931274 +-1.1840721369 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.1431368142 +-1.1758042574 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.1328026056 +-1.1696033478 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.1210905090 +-1.1613354683 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.1238462925 +-1.1544455290 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.570365 +0.389323 +0.121105 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-0.2395894229 +-1.1303309202 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.2368336320 +-1.1482446194 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.2402783781 +-1.1606464386 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.2471678406 +-1.1730482578 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.2471678406 +-1.1572015285 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.2464789003 +-1.1413547993 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.570365 +0.389323 +0.121105 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-0.2271883786 +-1.1820051670 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.2320110053 +-1.1751152277 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.2333889008 +-1.1675363779 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.2320110053 +-1.1572015285 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.2230546921 +-1.1606464386 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.2202989012 +-1.1716703176 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.570365 +0.389323 +0.121105 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +0.0063647293 +-1.1330869198 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0091205183 +-1.1489336491 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0125652542 +-1.1640914679 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0104984129 +-1.1751152277 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0166989379 +-1.1833831072 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0235884096 +-1.1792491674 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0242773574 +-1.1702923775 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0235884096 +-1.1606464386 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0311668292 +-1.1689143181 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0359894596 +-1.1792491674 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0428789333 +-1.1709812880 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0401231423 +-1.1565124989 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0346115641 +-1.1454887390 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0311668292 +-1.1385987997 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0270331465 +-1.1241300106 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0166989379 +-1.1199960709 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.570365 +0.389323 +0.121105 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-0.0012136900 +-1.1275749207 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.0108589511 +-1.1310199499 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.0156815816 +-1.1399767399 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.0136147402 +-1.1496226788 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.0060363207 +-1.1551345587 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.0012136900 +-1.1475557089 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0008531515 +-1.1351538897 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.570365 +0.389323 +0.121105 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +0.0146320956 +-1.1027712822 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0036089404 +-1.0945034027 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.0115478979 +-1.0951924324 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.0149926348 +-1.1041493416 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.0074142152 +-1.1186181307 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0049868347 +-1.1234409809 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0180768315 +-1.1124172211 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.570365 +0.389323 +0.121105 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +0.0166989379 +-1.0717668533 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0056757820 +-1.0724557638 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.0019026373 +-1.0807236433 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0084315706 +-1.0889915228 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0242773574 +-1.0986373425 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0373673551 +-1.1020823717 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0490794554 +-1.0862356424 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0504573509 +-1.0696998835 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0435678773 +-1.0641878843 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0380563028 +-1.0717668533 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0311668292 +-1.0759007931 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.570365 +0.389323 +0.121105 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +0.0463236682 +-1.1089721918 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0332336724 +-1.1131061316 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0408120900 +-1.1289529800 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0415010378 +-1.1392878294 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0511462986 +-1.1489336491 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0614805073 +-1.1406657696 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0614805073 +-1.1289529800 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0594136640 +-1.1151731014 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0711257681 +-1.1220630407 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0766373426 +-1.1344648600 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0849047154 +-1.1323978901 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0855936557 +-1.1199960709 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0738815591 +-1.1082832813 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0656141862 +-1.0986373425 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0552799813 +-1.1027712822 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.570365 +0.389323 +0.121105 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +0.0787041858 +-1.0924364328 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0862826034 +-1.1082832813 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0911052376 +-1.1172400713 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.1021283939 +-1.1151731014 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.1055731252 +-1.1069052219 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.1028173417 +-1.0910584927 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0938610286 +-1.0834796429 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0869715512 +-1.0731447935 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0676810294 +-1.0731447935 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0573468246 +-1.0717668533 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0545910336 +-1.0848575830 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0607915595 +-1.0958814621 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.570365 +0.389323 +0.121105 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-0.1167975962 +-1.0037539005 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.1894617528 +-1.0400853157 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.1961899102 +-1.0817990303 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.1302539259 +-1.0912183523 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.0522072315 +-1.1006375551 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.0037644599 +-1.0683430433 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0312219858 +-1.0602693558 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0473695770 +-1.0373940468 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.0078013577 +-1.0118275881 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-0.1702003628 +-1.0407999754 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.2155497670 +-1.1059883833 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.1853168309 +-1.1201597452 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.1579182297 +-1.1513367891 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.1135136038 +-1.1579500437 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.1276852936 +-1.1985746622 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.1938198358 +-1.2344754934 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.2712917328 +-1.1957404613 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.3015246689 +-1.0870931149 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.2061019689 +-1.0332418680 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-0.0912236571 +-1.0059268475 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.2500503957 +-1.1761628389 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.2355820984 +-1.1744663715 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.2295356840 +-1.1903377771 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.2144196033 +-1.1744663715 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.2008151412 +-1.2107439041 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.1811642647 +-1.1805125475 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.1622691751 +-1.1926051378 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.1607575715 +-1.1684200764 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.1554669440 +-1.1948724985 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.1154093668 +-1.1616179943 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.0957584828 +-1.1767336130 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.0844214261 +-1.1563274860 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.0572125092 +-1.1638853550 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.0254687667 +-1.1646411419 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.0163991265 +-1.1480139494 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.0088410918 +-1.1631295681 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.0005272548 +-1.1517928839 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0062749754 +-1.1820241213 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0259258635 +-1.1774893999 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0417977348 +-1.1782451868 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0334838964 +-1.1457465887 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0561579987 +-1.1517928839 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0637160316 +-1.1336541176 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0856343284 +-1.1389445066 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0977271870 +-1.1313867569 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.1083084345 +-1.1192941666 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-0.7235468030 +-1.9408752918 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.3131934106 +-2.9711000919 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.5578064919 +-3.0577118397 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.4529385567 +-1.4713480473 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.3586628437 +-0.6964001060 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.125992 +0.056486 +-0.046576 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +3.3556718826 +2.9534499645 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.4665730000 +-0.3058896065 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.4650993347 +-1.4683114290 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.6976330280 +-1.4455188513 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.6201217175 +2.9306573868 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + +0.322770 +0.153861 +0.006707 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +3.3467385769 +2.9135110378 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.2775216103 +2.3569514751 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.1794641018 +1.8667178154 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.0093054771 +1.2121115923 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.9602768421 +1.0304367542 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.5709309578 +-0.0596123263 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.4382650852 +-0.3624037504 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.6545681953 +-0.7517070174 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.2284927368 +0.2835512757 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.6351428032 +1.6158335209 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.5976502895 +2.9308133125 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +2.5894377232 +-0.1181432605 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.5796306133 +-0.1442964524 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.5600166321 +-0.1671804935 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.5567474365 +-0.1933336705 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.5453059673 +-0.2211214304 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.5354988575 +-0.2521783412 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.5273263454 +-0.2734278142 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.4962706566 +-0.3159267306 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.4864635468 +-0.3600602448 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.4782910347 +-0.4009245932 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.4979050159 +-0.3469836414 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.5142502785 +-0.3191958964 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.5371334553 +-0.2897735536 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.5518438816 +-0.2423709035 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.5632855892 +-0.2113139927 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.5747270584 +-0.1786225140 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.5910723209 +-0.1524693221 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +3.0454664230 +1.2352842093 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.0274868011 +1.1927852631 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.0127761364 +1.1519209146 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.0078725815 +1.1208639145 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.9980657101 +1.0865379572 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.9898929596 +1.0293277502 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.9702789783 +0.9786559939 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.9604718685 +0.9410607815 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.9539337158 +0.8969272971 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.9310505390 +0.8331788778 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.9147055149 +0.7547193170 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.8918223381 +0.6975092292 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.8885533810 +0.6533757448 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.9098019600 +0.6860672235 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.9179744720 +0.7138549685 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.9179744720 +0.7318353057 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.9310505390 +0.7579885125 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.9359540939 +0.7972182631 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.9490301609 +0.8266406059 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.9506647587 +0.8511592150 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.9670100212 +0.8854852915 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.9735479355 +0.9214459062 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.9735479355 +0.9574065208 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.9915275574 +0.9819251299 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.9898929596 +0.9999054670 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.0029692650 +1.0211548805 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.0160453320 +1.0391352177 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.0095071793 +1.0603847504 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.0127761364 +1.1061527729 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.0193142891 +1.1355751753 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.0356593132 +1.1649974585 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.0421974659 +1.2058618069 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +3.2383387089 +0.8086602688 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.2644910812 +0.8527938128 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.2661254406 +0.8789469600 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.2693946362 +0.9296187758 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.2873742580 +0.9672139883 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.2841050625 +1.0309623480 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.2922775745 +1.0750958920 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.3020846844 +1.1159602404 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.3216989040 +1.1486517191 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.3249678612 +1.1927852631 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.3331403732 +1.1355751753 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.3184299469 +1.1208639145 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.3037192822 +1.0832687616 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.2971811295 +1.0358661413 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.2922775745 +1.0113475323 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.3053538799 +0.9868288636 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.2955467701 +0.9475991130 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.2775671482 +0.9149076343 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.2759325504 +0.8920235634 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.2857396603 +0.8675049543 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.2742979527 +0.8413517475 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +3.0127761364 +0.1744455099 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.0258522034 +0.2267518938 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.0258522034 +0.2545396388 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.0274868011 +0.2970385849 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.0471010208 +0.3395375013 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.0634460449 +0.3656906784 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.0797913074 +0.3885747194 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.0748877525 +0.4343428016 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.0977709293 +0.4621305764 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.1206538677 +0.5503975749 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.1435370445 +0.6402991414 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.1337301731 +0.5700124502 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.1402680874 +0.5373209715 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.1271920204 +0.5144369602 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.1141159534 +0.4915528893 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.1043088436 +0.4343428016 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.0912327766 +0.4147279263 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.0928673744 +0.3722289801 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.0683495998 +0.3509795368 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.0421974659 +0.3019422889 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.0340249538 +0.2692508101 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.0454664230 +0.2398284823 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.0340249538 +0.2071370035 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +3.1451716423 +0.8936581612 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.1190195084 +0.8348134756 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.1190195084 +0.7955837250 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.0683495998 +0.7661613822 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.0650806427 +0.7416427732 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.0487353802 +0.7056820989 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.0421974659 +0.6729906201 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.0405628681 +0.6402991414 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.0340249538 +0.6076076627 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.0307557583 +0.5896273255 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.0127761364 +0.5618395805 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.0013346672 +0.5373209715 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.9866240025 +0.4899183214 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.9898929596 +0.4686688781 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.9751825333 +0.4245353639 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.9670100212 +0.3885747194 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.9539337158 +0.3509795368 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.9441268444 +0.3313646317 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.9473958015 +0.3052114546 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.9310505390 +0.2823274136 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.9343197346 +0.2529050708 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.9163401127 +0.2365593314 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.9130709171 +0.2153098732 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.9081676006 +0.1875221133 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.9048984051 +0.1531960517 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.8918223381 +0.1221391410 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.8476905823 +-0.0478565730 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.8852844238 +-0.0952592269 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.9130709171 +-0.1508347541 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.9310505390 +-0.1639113426 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.9392232895 +-0.1230469868 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.9604718685 +-0.1099703908 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.9653754234 +-0.0707406104 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.0046036243 +-0.0200688131 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.0078725815 +0.0289684124 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.0242178440 +0.0731019154 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.0323903561 +0.1106971204 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.0111417770 +0.0665636212 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.9915275574 +0.0126226703 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.9866240025 +-0.0102613680 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.9604718685 +-0.0413182788 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.9392232895 +-0.0805480555 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.9326851368 +-0.1099703908 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.9098019600 +-0.1116049662 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.9032640457 +-0.0838172063 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.9196090698 +-0.0266071092 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.9310505390 +-0.0020884969 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.9343197346 +0.0371412821 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.9604718685 +0.0861785114 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.9686443806 +0.1384848803 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.9457612038 +0.0780056342 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.9196090698 +0.0420450047 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.9130709171 +0.0665636212 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.9310505390 +0.0959859565 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.9392232895 +0.1319465786 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.9490301609 +0.1564652026 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.9621064663 +0.2087715715 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.9621064663 +0.2480013520 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.9849896431 +0.3346337974 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.0029692650 +0.3722289801 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.0062382221 +0.3951130211 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.0176796913 +0.4294390976 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.0144107342 +0.4572268426 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.0356593132 +0.4735725820 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.0274868011 +0.4948220551 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.0193142891 +0.5095332265 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.0340249538 +0.5356864333 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.0487353802 +0.5536667109 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.0650806427 +0.5716470480 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.0667150021 +0.5896273255 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.0699841976 +0.6304917336 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.0601770878 +0.6746252179 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.0830602646 +0.7154895663 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.0928673744 +0.7596230507 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.1206538677 +0.7792379856 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.1369991302 +0.8201023340 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.1337301731 +0.8413517475 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +3.2367043495 +1.9724770784 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.2236282825 +1.9397855997 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.2138211727 +1.8989212513 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.2023794651 +1.8515186310 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.1958415508 +1.8008468151 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.1860344410 +1.7763282061 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.1713237762 +1.7354638577 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.1615166664 +1.6749845743 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.1843998432 +1.7501749992 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.1991105080 +1.7845010757 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.2056486607 +1.8302690983 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.2154555321 +1.8809409142 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.2252626419 +1.9201707840 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +3.2775671482 +1.7174835205 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.2465114594 +1.6439276934 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.2236282825 +1.6046979427 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.2252626419 +1.5523915291 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.2089176178 +1.5164308548 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.1893033981 +1.4232602119 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.1696894169 +1.4020106792 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.1500751972 +1.3611463308 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.1386334896 +1.2745139599 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.1451716423 +1.2287458181 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.1320955753 +1.1878814697 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.0765221119 +1.0963453054 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.0748877525 +1.0554809570 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.0846946239 +0.9982708693 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.0487353802 +0.9525028467 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.0438318253 +0.9116384387 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.0356593132 +0.8822161555 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.0356593132 +0.8348134756 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.0193142891 +0.7857762575 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.0160453320 +0.7547193170 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.0372939110 +0.8102948666 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.0503699780 +0.8397172093 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.0520045757 +0.8773124218 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.0716185570 +0.9018310308 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.0667150021 +0.9426953793 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.0781567097 +0.9541373849 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.0912327766 +0.9704831243 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.1043088436 +1.0097129345 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.0961363316 +1.0522118807 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.1092123985 +1.0898070335 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.1173849106 +1.1306713820 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.1386334896 +1.1649974585 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.1549787521 +1.2074964046 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.1664202213 +1.2647064924 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.1778619289 +1.3284548521 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.1843998432 +1.3546080589 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.1762273312 +1.3709537983 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.1974759102 +1.4069144726 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.2105522156 +1.4379713535 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.2154555321 +1.4902777672 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.2448768616 +1.5442186594 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.2383387089 +1.5948904753 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.2661254406 +1.6373894215 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.2693946362 +1.6684463024 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +3.4160070419 +2.9332776070 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.3959493637 +2.8931612968 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.3879263401 +2.8530449867 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.3799033165 +2.7587718964 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.3698744774 +2.7166500092 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.3518226147 +2.6524639130 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.3538284302 +2.5942955017 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.3377821445 +2.5080456734 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.3337707520 +2.4498772621 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.3498167992 +2.5361270905 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.3738858700 +2.5902838707 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.3718802929 +2.6263885498 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.3718802929 +2.6745278835 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.3939435482 +2.7226674557 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.3979551792 +2.7688009739 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.4079837799 +2.8249638081 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.4260356426 +2.8650798798 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.4701623917 +2.9092078209 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.4641451836 +2.8610682487 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.4621393681 +2.8249638081 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.4541163445 +2.7728126049 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.4320530891 +2.7326965332 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.4160070419 +2.6624929905 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.4079837799 +2.5983071327 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.3778975010 +2.5020282269 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.3678686619 +2.4338307381 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.3638570309 +2.3856911659 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.3578398228 +2.3335402012 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.3578398228 +2.2934238911 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.3397879601 +2.2432787418 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.3237419128 +2.1329591274 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.3177247047 +2.0908370018 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.3217360973 +2.0426976681 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.3076958656 +2.0146162510 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.2936553955 +1.9143257141 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.3237419128 +2.0146162510 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.3417937756 +2.0366802216 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.3397879601 +2.1088893414 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.3538284302 +2.1389765739 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.3437995911 +2.1730751991 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.3638570309 +2.2312438488 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.3879263401 +2.2693541050 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.3819088936 +2.3014471531 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.3839147091 +2.4117667675 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.3979551792 +2.4739468098 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.3959493637 +2.5080456734 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.4019665718 +2.5301096439 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.4380702972 +2.5521733761 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.4280414581 +2.5762431622 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.4380702972 +2.6404292583 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.4360644817 +2.6945860386 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.4661509991 +2.7326965332 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.4781854153 +2.7908649445 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.4942317009 +2.8390045166 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.5162949562 +2.8650798798 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.5263237953 +2.9172310829 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +3.5784735680 +2.8510391712 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.5403640270 +2.7587718964 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.5243179798 +2.7026093006 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.5183007717 +2.6584813595 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.5102777481 +2.6103420258 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.4942317009 +2.5622024536 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.4781854153 +2.4919991493 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.4882142544 +2.4779584408 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.4721682072 +2.4157783985 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.4882142544 +2.3796737194 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.4761798382 +2.3094704151 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.4821970463 +2.2412729263 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.4541163445 +2.1790926456 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.4360644817 +2.0948486328 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.4260356426 +2.0507209301 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.4280414581 +1.9885406494 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.4140012264 +1.9383953810 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.4079837799 +1.8802269697 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.3999607563 +1.8441222906 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.3819088936 +1.8020002842 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.3658628464 +1.7137446404 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.3718802929 +1.6756342649 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.3538284302 +1.6375237703 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.3357765675 +1.5673204660 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.3337707520 +1.5151693821 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.3217360973 +1.4650241137 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.3036842346 +1.3867974281 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.2956612110 +1.3145883083 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.3117072582 +1.3567103148 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.3257477283 +1.4008381367 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.3257477283 +1.4369426966 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.3498167992 +1.4650241137 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.3478109837 +1.4910995960 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.3558340073 +1.5332217216 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.3498167992 +1.5532797575 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.3758916855 +1.5974075794 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.4039723873 +1.6615935564 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.4019665718 +1.7197620869 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.4180126190 +1.7939770222 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.4240300655 +1.8240642548 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.4360644817 +1.8701978922 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.4501049519 +1.9183373451 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.4480991364 +1.9424070120 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.4641451836 +1.9684826136 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.4801912308 +2.0065929890 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.4801912308 +2.0346744061 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.5022547245 +2.1048777103 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.5022547245 +2.1550228596 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.5162949562 +2.2071740627 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.5263237953 +2.2232205868 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.5423698425 +2.2613308430 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.5323410034 +2.2874064445 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.5323410034 +2.3616213799 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.5443756580 +2.4238016605 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.5644333363 +2.4739468098 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.6005370617 +2.5260980129 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +3.5824851990 +2.1108951569 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.5343468189 +2.0005755424 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.5122835636 +1.9363895655 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.5062661171 +1.8922617435 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.5022547245 +1.8621746302 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.5062661171 +1.8160409927 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.4501049519 +1.6796458960 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.4360644817 +1.6054308414 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.4340586662 +1.5532797575 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.3999607563 +1.4750531912 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.3879263401 +1.4289195538 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.3939435482 +1.3948206902 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.3698744774 +1.3486870527 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.3738858700 +1.3025534153 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.3658628464 +1.2463907003 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.3558340073 +1.1882222891 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.3578398228 +1.1420885324 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.3478109837 +1.1039781570 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.3437995911 +1.0598503351 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.3377821445 +1.0237457752 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.3237419128 +0.9836295247 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.3257477283 +0.9174377918 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.3016784191 +0.8692983389 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.2876381874 +0.8131356239 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.2615633011 +0.7549670935 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.2274653912 +0.6867695451 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.2254595757 +0.6486591697 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.2054018974 +0.6045313478 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.1953732967 +0.5664209127 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.1913616657 +0.5323221087 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.1692981720 +0.4902001023 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.1713039875 +0.4601129591 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.1592695713 +0.4079618752 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.1472349167 +0.3497933745 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.1211600304 +0.3237178326 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.1151428223 +0.2956364751 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.0890679359 +0.2675551176 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.0810446739 +0.2234272957 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.0810446739 +0.1973517537 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.0589814186 +0.1752878428 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.0690102577 +0.1351716220 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.2435114384 +0.4902001023 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.4079837799 +1.0939490795 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.4200184345 +1.1380770206 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.4220242500 +1.1962454319 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.4300472736 +1.2664488554 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.4501049519 +1.3226115704 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.4541163445 +1.3928148746 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.4641451836 +1.4670299292 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.4962372780 +1.5873785019 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.5122835636 +1.6555761099 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.5343468189 +1.6756342649 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.5523986816 +1.7518550158 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.5644333363 +1.8381048441 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.5945196152 +1.8681920767 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +3.6851665974 +2.1575455666 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.6922492981 +-0.7665405273 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.4387385845 +-1.0201961994 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.5240291357 +-0.9113261700 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.5564712286 +-1.0879324675 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.7163959742 +-1.5158673525 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.2764904499 +-1.6478390694 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.7670961618 +-1.5789365768 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.3201147020 +-2.1772356033 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.7240640521 +-1.9634065628 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.0551765151 +-3.0604531765 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.3537558913 +-2.2887766361 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.2155787349 +-2.4655723572 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.1254615039 +-2.5953240395 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.3633709848 +-2.5304481983 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.6733742356 +-2.4835934639 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.9869821668 +-2.4763851166 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.0482618809 +-2.6638040543 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.1708213091 +-2.5376565456 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.4519870281 +-2.6674082279 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.7403621674 +-2.5124270916 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.8629215956 +-2.6493871212 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.0575747490 +-2.4763851166 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.1585061550 +-2.5304481983 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.3603687286 +-2.0655050278 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.3928108215 +-1.7879807949 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.4973468781 +-1.7987934351 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.4144389629 +-1.6546250582 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.6595578194 +-1.7627513409 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.9371187687 +-2.0691092014 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.0200266838 +-2.9521408081 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.7589879036 +-3.0314333439 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +2.4567284584 +-0.3190976381 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.5819199085 +-0.0288556349 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.6322290897 +0.3407104313 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.6791226864 +0.5725027323 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.8271720409 +0.9275602102 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.0495812893 +1.3697073460 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.3503694534 +2.9091832638 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +2.6883912086 +-0.5180397034 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.6883912086 +-0.1767302155 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.7350647449 +-0.3721809387 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.0005204678 +1.1826733351 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.6913082600 +-0.7397449613 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.6067123413 +-0.6755671501 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000446 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +3.0950198174 +-1.1311246157 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.3066267967 +-0.8283613920 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.3503255844 +-0.7823006511 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.4058456421 +-0.7797141075 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.9193837643 +0.3015490472 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000446 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +3.3066384792 +-0.2267146707 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.4783096313 +0.0272600353 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.5735561848 +0.2149961144 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.8263013363 +0.6933193207 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000446 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +2.5932710171 +-0.6582909226 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.7952311039 +-0.1433553547 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.8070416451 +-0.2744513452 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.6499614716 +-0.7161621451 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.8094036579 +-0.9133966565 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.9180605412 +-0.7102569342 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.9216036797 +-0.6748255491 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.9971909523 +-0.6346700191 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.0609676838 +-0.5283759832 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.1767108440 +-0.3146068454 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000446 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +3.1813807487 +0.4592139423 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.3301525116 +0.8705356121 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.4340147972 +1.4772202969 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.5989792347 +2.1260809898 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.7309508324 +2.7639441490 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000446 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +3.0645110607 +0.7329799533 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.0444331169 +0.6373153329 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.0467951298 +0.6042460799 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.0385277271 +0.5794441700 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.0267171860 +0.5629094839 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.0054583549 +0.5286592245 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.0066394806 +0.4825984538 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.9298710823 +0.1861561835 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.8991637230 +0.0810431838 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.8507404327 +-0.0795789212 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000446 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +2.4987869263 +-0.4504270256 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.6168920994 +-0.1280017644 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.6109869480 +-0.0701305643 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.5224080086 +-0.3299604356 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000446 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +3.4318182468 +-0.9204828739 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.3928434849 +-0.9878024459 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.3704035282 +-1.0539410114 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.2924540043 +-1.1873990297 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000446 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +3.2204098701 +-0.9393796325 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.1341929436 +-1.0492167473 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.1164772511 +-1.1047259569 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000446 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +3.4979572296 +-0.9133966565 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.4625256062 +-0.9630005360 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.4660687447 +-1.0031560659 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +3.3556718826 +2.9534499645 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.4665730000 +-0.3058896065 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.4650993347 +-1.4683114290 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.6976330280 +-1.4455188513 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.6201217175 +2.9306573868 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + +0.039114 +0.009105 +-0.062625 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +3.6416003704 +-1.2054319382 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.6281571388 +-3.0385668278 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.3921515942 +-2.9190468788 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.3808641434 +-1.7884427309 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.4102745056 +-1.0408042669 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.7104574442 +-2.1613297462 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.9106889963 +-1.7963224649 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.9261516333 +-1.7223550081 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.9127082825 +-1.6909810305 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.9395949841 +-1.6625951529 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.9498832822 +-1.5484445095 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.8932901025 +-1.5326173306 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.4585624933 +-1.6558787823 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.3181772232 +-0.2403095663 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.3704569340 +-0.2761655152 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.4511170387 +-0.2955874801 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.4250130653 +-1.1934798956 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +1.5868433714 +-1.4437397718 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.4585522413 +-1.1739783287 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.161833 +0.068218 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-0.9499673843 +-1.5492522717 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.9292006493 +-1.5718196630 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.9239959717 +-1.5805375576 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.8738746047 +-1.6042807102 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.8611884117 +-1.6156977415 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.8424457312 +-1.6120698452 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.8484917283 +-1.6229536533 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.8140293360 +-1.6247676611 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.7886359096 +-1.6344422102 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.7831944823 +-1.6465352774 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.7602195144 +-1.6531865597 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.6810163856 +-1.6852333546 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.5788382888 +-1.6961171627 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.5183778405 +-1.7142570019 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.4863338172 +-1.7160708904 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.4554989934 +-1.7311873436 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.4113628864 +-1.7239314318 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.4004800320 +-1.7384432554 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.3019295335 +-1.7348152399 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.2553749979 +-1.7565829754 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.1658935845 +-1.7529550791 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.0830627978 +-1.7620248795 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0741342977 +-1.7475130558 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0995276719 +-1.7517457008 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.1237118468 +-1.7408618927 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.1660341471 +-1.7414665222 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.2886606157 +-1.7348084450 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.8197461963 +-1.5712622404 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.9667595029 +-1.5032711029 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.9715142250 +-1.4838370085 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.9827358127 +-1.4911893606 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.0575115681 +-1.4484285116 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.1340179443 +-1.4320727587 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.2323035002 +-1.3345572948 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.2969242334 +-1.3005043268 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.3584493399 +-1.2409114838 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.4335178137 +-1.1797708273 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.4555739164 +-1.1716445684 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.5263859034 +-1.0981209278 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.3805055618 +-1.2068583965 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.1738739014 +-1.3422966003 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.9757551551 +-1.4545168877 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.8991389275 +-1.4932134151 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.7021810412 +-1.5826026201 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.3503383696 +-1.6768940687 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0757997110 +-1.7184115648 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.1420731544 +-1.7131886482 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.3648463786 +-1.6884267330 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.5770947337 +-1.6376832724 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.8377911448 +-1.5546483994 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.8926586509 +-1.5302994251 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-0.4459960461 +-2.0868968964 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.4925743043 +-1.7159686089 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.5201762319 +-1.7142432928 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.5840056539 +-1.6935403347 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.6655417681 +-1.6895718575 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.7660234571 +-1.6476132870 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.7847947478 +-1.6454049349 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.7881073356 +-1.6321549416 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.8146079779 +-1.6222172976 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.6876256466 +-1.6034463644 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.8819638491 +-1.5217376947 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.9857580662 +-1.5394043922 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.9349651337 +-1.8706561327 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +0.0972530097 +-1.1145559549 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0972530097 +-1.1396493912 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0780601129 +-1.1426014900 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0721546039 +-1.1617906094 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0426270738 +-1.1617906094 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0314533524 +-1.1882420778 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0093077021 +-1.1985746622 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.0128379473 +-1.1838139296 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.0415263921 +-1.1750752926 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.0738328695 +-1.1730662584 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.1106792614 +-1.1910166740 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.1640494019 +-1.2918039560 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.0745953247 +-1.4531245232 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.0234545358 +-1.5259815454 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0083629228 +-1.5367983580 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0008046889 +-1.5519144535 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0244241711 +-1.6076552868 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.1056751907 +-1.6019866467 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0461540930 +-1.6397770643 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0795527324 +-1.7139629126 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.1607534438 +-1.7390562296 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.2065211236 +-1.8276211023 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.2271904051 +-1.7966233492 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.5121310949 +-1.8025276661 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.3453005254 +-2.1774520874 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.1917573661 +-2.1774520874 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.1415605545 +-2.1080763340 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.1725644618 +-1.9693247080 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.1386078000 +-1.9693247080 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.1238440350 +-1.9338988066 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0352614373 +-1.7508648634 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.0178881213 +-1.7139629126 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.0459392779 +-1.7139629126 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.0398208201 +-1.6454455853 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.1853168309 +-1.6104894876 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.0464342758 +-1.6095447540 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.0785567686 +-1.5585278273 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.1843720526 +-1.5226269960 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.1040658131 +-1.5216821432 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.1537147760 +-1.4586009979 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.1625730246 +-1.5397855043 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.1389510036 +-1.6283502579 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.0908389017 +-1.7125234604 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.2467264980 +-1.7006782293 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.2688721418 +-1.2918039560 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.1950533241 +-1.1707653999 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0825054869 +-1.0999135971 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-0.9458881021 +-1.5521975756 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.9299257398 +-1.5744484663 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.9241212606 +-1.5763833523 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.9250886440 +-1.5817041397 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.8960661888 +-1.5908948183 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.8747830391 +-1.6025040150 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.8752667308 +-1.6078248024 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.8602718115 +-1.6155643463 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.8428583145 +-1.6116945744 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.8481791019 +-1.6233037710 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.8162543774 +-1.6228200197 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.7886829972 +-1.6344292164 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.7852970362 +-1.6465221643 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.7683672905 +-1.6484569311 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.7615953684 +-1.6528104544 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.6721093655 +-1.6876379251 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.5821396708 +-1.6948937178 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.5245784521 +-1.7123074532 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.4868492186 +-1.7152097225 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.4578267336 +-1.7306886911 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.4104233384 +-1.7239166498 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.3988143504 +-1.7393956184 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.3020727634 +-1.7350420952 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.2570879161 +-1.7558418512 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.1680856347 +-1.7510046959 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.0863389894 +-1.7621302605 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0723172352 +-1.7481024265 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0960189253 +-1.7519721985 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.1206880361 +-1.7403630018 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.1666402966 +-1.7408467531 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.1845375001 +-1.7379443645 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.2087228894 +-1.7389118671 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.8496360183 +-1.5691275597 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.9013927579 +-1.5430068970 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.9657258987 +-1.5033422709 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.9724978209 +-1.4839935303 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.9816882610 +-1.4922167063 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.0595653057 +-1.4472311735 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.1567906141 +-1.4298174381 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.2303141356 +-1.3350090981 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.2960984707 +-1.3016327620 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.3555945158 +-1.2426193953 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.4141231775 +-1.2000523806 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.4344389439 +-1.1782851219 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.4547547102 +-1.1729643345 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.5190879107 +-1.1028255224 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +0.9653308392 +-1.5014615059 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.1192567348 +-1.8999865055 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +0.9776390791 +-1.7618656158 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.0126701593 +-1.8357256651 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.0334994793 +-1.9645073414 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-0.8242481947 +-1.7898607254 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.8535363674 +-1.6746002436 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.8592050672 +-1.6141356230 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-0.7979341149 +-1.7788417339 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.7884863019 +-1.8383615017 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.7903758883 +-1.8855994940 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.7809280753 +-1.9243345261 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-0.7724250555 +-1.8553671837 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.7610877156 +-1.8931576014 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.7535294890 +-1.9375611544 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-0.5389248729 +-1.8087559938 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.5313666463 +-1.9145689011 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.4812933505 +-2.0562827587 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-0.4614529908 +-1.9684201479 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.4501156211 +-2.0647854805 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-0.3764228523 +-1.8106454611 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.3783124089 +-1.7388437986 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-0.3150121868 +-2.0260505676 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.3348525465 +-1.8446568251 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.3509137928 +-1.7369543314 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000446 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-0.0913315490 +-1.7627860308 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.0718154162 +-1.9250714779 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.0748969093 +-1.9908074141 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.0492177904 +-2.1551470757 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000446 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +0.1366990507 +-1.9661563635 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.1212915853 +-1.8192777634 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.1007482857 +-1.7525147200 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +3.6416003704 +-1.2054319382 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.6281571388 +-3.0385668278 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.3921515942 +-2.9190468788 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.3808641434 +-1.7884427309 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.4102745056 +-1.0408042669 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.7104574442 +-2.1613297462 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.9106889963 +-1.7963224649 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.9261516333 +-1.7223550081 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.9127082825 +-1.6909810305 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.9395949841 +-1.6625951529 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.9498832822 +-1.5484445095 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.8932901025 +-1.5326173306 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.4585624933 +-1.6558787823 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.3181772232 +-0.2403095663 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.3704569340 +-0.2761655152 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.4511170387 +-0.2955874801 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.4250130653 +-1.1934798956 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +0.6644202471 +-2.6784908772 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.6798970103 +-2.1972591877 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +0.0932303891 +-2.3415410519 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.7030715346 +-1.9745013714 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +0.7496831417 +-2.9538502693 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.6084323525 +-2.4514291286 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +0.8301720619 +-3.2156121731 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.5237286091 +-2.6496770382 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +3.6851665974 +2.1575455666 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.6922492981 +-0.7665405273 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.4387385845 +-1.0201961994 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.5240291357 +-0.9113261700 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.5564712286 +-1.0879324675 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.7163959742 +-1.5158673525 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.2764904499 +-1.6478390694 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.7670961618 +-1.5789365768 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.3201147020 +-2.1772356033 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.7240640521 +-1.9634065628 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.0551765151 +-3.0604531765 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.1254615039 +-2.5953240395 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.3633709848 +-2.5304481983 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.6733742356 +-2.4835934639 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.9869821668 +-2.4763851166 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.0482618809 +-2.6638040543 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.1708213091 +-2.5376565456 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.4519870281 +-2.6674082279 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.7403621674 +-2.5124270916 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.8629215956 +-2.6493871212 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.0575747490 +-2.4763851166 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.1585061550 +-2.5304481983 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.3603687286 +-2.0655050278 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.3928108215 +-1.7879807949 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.4973468781 +-1.7987934351 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.4144389629 +-1.6546250582 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.6595578194 +-1.7627513409 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.9371187687 +-2.0691092014 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.0200266838 +-2.9521408081 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.7589879036 +-3.0314333439 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +1.8148407936 +-1.4118591547 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.4346998930 +-1.4259397984 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.4612060785 +-1.3648716211 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.0527778864 +-1.3408435583 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.9686897993 +-1.4549769163 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.1128408909 +-1.4429628849 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.3756163120 +-1.8619524240 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.5107580423 +-1.8349207640 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.2434778214 +-1.4549769163 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.6984547377 +-1.4699944258 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +3.3795208931 +-1.7907997370 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.2426292896 +-1.8264380693 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +3.3651578426 +1.6085808277 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.4905929565 +2.1920158863 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.5051784515 +2.4458100796 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.6218624115 +3.0263278484 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-0.4513280392 +-1.7326345444 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.4182022214 +-1.8905311823 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.4049519002 +-1.9810732603 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.4005351067 +-1.7403637171 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.4137854576 +-1.7249053717 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +0.9165744185 +-2.6913404465 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.2352595329 +-2.1061229706 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +0.2018856406 +-2.9422605038 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.2188956738 +-2.7552375793 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +1.1604795456 +-2.3415410519 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.8086907864 +-1.5969256163 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-0.2452045977 +-1.3054164648 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.2370946258 +-1.7333564758 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.2446628064 +-1.8496296406 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.3052082062 +-1.8441255093 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.2666793168 +-2.0016789436 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.3409850597 +-2.1640484333 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.2873198092 +-2.1991369724 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.3347929120 +-2.2012009621 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.1669169962 +-2.2789456844 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.3932742774 +-2.3105938435 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.3533693254 +-2.3284821510 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.5116130114 +-2.2837617397 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.7517306209 +-2.2280330658 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.8611251712 +-2.0704796314 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.8920859098 +-2.1041920185 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.9684556723 +-2.0553436279 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.9973523617 +-2.0608475208 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.9911602139 +-2.0883679390 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.0640898943 +-2.2686254978 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.0393213034 +-2.3408660889 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.0523936749 +-2.4825954437 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.0991786718 +-2.3621942997 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.1865566969 +-2.3016498089 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.2230216265 +-2.3539383411 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.2209575176 +-2.3044018745 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.2870070934 +-2.3869626522 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.2911351919 +-2.3621942997 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.3902094364 +-2.4309949875 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.4438747168 +-2.5169959068 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.5023560524 +-2.4468190670 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.5278127193 +-2.4447550774 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.5257486105 +-2.4137947559 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.5429490805 +-2.4309949875 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.5491411686 +-2.3965947628 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.5986783504 +-2.4378750324 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.6317031384 +-2.3697624207 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.6440874338 +-2.4103548527 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.6901844740 +-2.3277940750 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.6936246157 +-2.3484342098 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.7321534157 +-2.2479853630 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.7438497543 +-2.2761936188 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.7727464437 +-2.1509764194 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.7940748930 +-2.1592323780 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.8298517466 +-2.3388020992 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.0782256126 +-2.1784965992 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.0651531219 +-2.2514252663 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.3128390312 +-1.9872308969 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.3183431625 +-1.7890850306 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.3747603893 +-1.5641069412 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.3004546165 +-1.4382017851 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.3334794044 +-1.4182496071 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.4903471470 +-1.3893532753 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.3472397327 +-1.2861523628 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.3554959297 +-1.2778962851 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.4064092636 +-1.2889043093 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.4304897785 +-1.2352398634 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.5151157379 +-1.2889043093 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.5116755962 +-1.3405048847 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.5371322632 +-1.3239927292 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.6307024956 +-1.3294967413 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.6671671867 +-1.3150485754 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.7689936161 +-1.2834002972 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.8536195755 +-1.2262958288 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.8900845051 +-1.1685032845 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.9003801346 +-1.1067303419 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.5652077198 +-1.6287863255 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-0.2101903856 +-1.2054718733 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.2084625512 +-1.2184305191 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.2900188565 +-1.6477950811 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.3124807775 +-1.6382919550 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +0.4247902632 +-1.6201498508 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.7729497552 +-1.5303030014 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.9085850716 +-1.9156079292 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.0027523041 +-1.9605313540 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.0450843573 +-1.9683065414 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.0753214359 +-1.9104244709 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.0494039059 +-1.8024353981 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.1660330296 +-1.6572980881 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.2481052876 +-1.6339724064 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.2999404669 +-1.6650732756 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.3128992319 +-1.5104329586 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.3319054842 +-1.6521146297 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.3768292665 +-1.5207998753 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.5176481009 +-1.5830016136 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.6567391157 +-1.5899128914 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.5867617130 +-1.6028715372 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.6766092777 +-1.6391558647 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.6973433495 +-1.4041717052 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.7897827625 +-1.3635678291 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.7465867996 +-1.2694014311 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.8321146965 +-1.3514730930 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.8969086409 +-1.0715653896 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.8753106594 +-1.2236139774 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.9357850552 +-1.0715653896 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.1025214195 +-1.0033162832 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.1120245457 +-0.9324755073 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.0904266834 +-0.9272920489 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.1146163940 +-0.7458704114 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.0835151672 +-0.7475982308 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.1932330132 +-0.6992191076 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.2165589333 +-0.6810769439 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.2251980305 +-0.6517039537 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.2467958927 +-0.6102361679 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.3176374435 +-0.5566735864 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.3461468220 +-0.5670405030 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.5033800602 +-0.5186614394 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.6018667221 +-0.2534402907 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.5819966793 +-0.0262313075 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +2.5914998055 +-0.6033248305 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.6390154362 +-0.4771936238 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.6899864674 +-0.6698461175 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.6856670380 +-0.6758934855 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.6511101723 +-0.6879882812 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.6372876167 +-0.6776213050 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.5992751122 +-0.6283783317 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +2.7202236652 +-0.2145642340 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.7003536224 +-0.2897246182 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.0847976208 +-1.1527731419 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.7189145088 +-1.5372142792 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.6161079407 +-0.8555873036 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.1711895466 +-0.6888521910 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +2.9897665977 +1.1443700790 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.8031599522 +0.1491429210 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.5798234940 +-0.6033248305 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +2.7426855564 +-0.5877743959 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.8446280956 +-0.4080806375 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +2.7988405228 +-0.7009469867 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.9232447147 +-0.5057027340 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +1.0992985964 +-1.4231039286 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.6790312529 +-1.4725966454 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.7367688417 +-1.3559352160 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.1723543406 +-1.3417943716 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + +0.199183 +0.103351 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +2.7149536610 +0.4970257878 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.5822877884 +0.0067920596 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.7726345062 +-0.8871635795 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.6407315731 +-1.6484676600 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.6557133198 +-1.5187942982 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.8562717438 +-0.8208377957 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +3.7056467533 +-1.6823425293 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.9240529537 +-1.4891208410 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.6908290386 +-0.4851974249 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.5540828705 +-1.3791332245 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +2.7149536610 +0.4970257878 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.5822877884 +0.0067920596 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.7726345062 +-0.8871635795 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.6407315731 +-1.6484676600 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.6557133198 +-1.5187942982 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.8562717438 +-0.8208377957 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.199183 +0.103351 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +2.7610983849 +0.7623287439 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.6284325123 +0.2201879174 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.8735761642 +-0.4430694878 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.6926443577 +-0.8640937209 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.7047419548 +-0.7055830359 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.0206623077 +-0.3421390057 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +2.7610983849 +0.7623287439 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.6284325123 +0.2201879174 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.8735761642 +-0.4430694878 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.6926443577 +-0.8640937209 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.7047419548 +-0.7055830359 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.0206623077 +-0.3421390057 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.199183 +0.103351 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +2.8713684082 +0.9748801589 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.6686558723 +0.4793011844 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.0020053387 +-0.4172461927 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.7362749577 +-0.7551409602 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.7317702770 +-0.6334988475 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.0380430222 +-0.2820882797 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +3.6395645142 +-0.8872341514 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.8753147125 +-0.4870996773 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.8732669353 +-0.4578319490 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.8888461590 +-0.3088557124 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.8498983383 +-0.2591969371 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.8255560398 +-0.3838306963 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.7632396221 +-0.2903553843 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.7885556221 +-0.1550109386 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.7505815029 +-0.0878255591 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.7583711147 +-0.0693252385 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.7943978310 +-0.1374843121 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.8226349354 +0.0864669308 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.8810565472 +-0.0566671267 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.8625564575 +-0.2514073253 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.8956620693 +-0.2981449962 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.9472677708 +-0.1686427444 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.3649828434 +-0.5191751122 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.6123011112 +-0.6058345437 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +2.8713684082 +0.9748801589 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.6686558723 +0.4793011844 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.0020053387 +-0.4172461927 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.7362749577 +-0.7551409602 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.7317702770 +-0.6334988475 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.0380430222 +-0.2820882797 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +2.8051085472 +0.8117779493 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.6594223976 +-0.0475677587 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.5952513218 +-0.2799639702 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +3.0078215599 +1.2051969767 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.7660613060 +-0.0512739383 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.5976090431 +-0.5964466333 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.199183 +0.103351 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +3.0559134483 +1.3799335957 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.8173117638 +0.8802696466 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.6713826656 +0.0083051268 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.0819520950 +-1.2225373983 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.0674415827 +-1.3360660076 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.9652422071 +-1.4573892355 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.0984935760 +-1.4243983030 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.1866507530 +-1.2687408924 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.8163201809 +0.2398175001 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.9610314369 +1.0349454880 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +3.0369830132 +1.2635439634 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.8051793575 +0.6630706787 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.5347421169 +-0.5319307446 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.8794753551 +0.0804331750 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +2.2425472736 +-1.2685182095 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.1781656742 +-1.1255327463 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.8148407936 +-1.4118591547 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.4146572351 +-1.4249418974 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.4612060785 +-1.3648716211 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.0527778864 +-1.3408435583 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.9686897993 +-1.4549769163 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.1323614120 +-1.4309488535 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.3756163120 +-1.8619524240 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.5107580423 +-1.8349207640 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.2434778214 +-1.4549769163 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.6984547377 +-1.4699944258 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +3.0559134483 +1.3799335957 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.8173117638 +0.8802696466 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.6713826656 +0.0083051268 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.0819520950 +-1.2225373983 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.0674415827 +-1.3360660076 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.9652422071 +-1.4573892355 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.0984935760 +-1.4243983030 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.1866507530 +-1.2687408924 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.8163201809 +0.2398175001 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.9610314369 +1.0349454880 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +2.0826473236 +-0.4390767515 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.1937747002 +-0.6206559539 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +1.8626838923 +-1.1739856005 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.7452555895 +-1.0863463879 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.6639149189 +-1.0892105103 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.5262128115 +-1.0198968649 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + +0.005583 +0.005583 +0.005583 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +1.5475237370 +-0.7855924368 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.5163459778 +-1.0047764778 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.6675107479 +-1.0860257149 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.7478169203 +-1.0831915140 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.6816823483 +-1.0161136389 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.6788480282 +-0.8725102544 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.250406 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +1.5229594707 +-0.9783232212 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.5994865894 +-1.0217821598 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.6401121616 +-1.0180031061 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.5635850430 +-0.9849365354 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.5267386436 +-0.9594280720 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.250406 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +1.5399655104 +-0.8706207275 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.5862597227 +-0.8885711432 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.6325539351 +-0.8942397237 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.5796462297 +-0.8470017910 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.5446894169 +-0.8394436836 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.059216 +0.080307 +0.201993 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +1.8049538136 +-0.6289832592 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.5497201681 +-0.7876793146 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.6778149605 +-0.8737193942 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.6978895664 +-1.0438873768 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.7454837561 +-1.0857619047 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.1562845707 +-1.1674449444 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.1300911903 +-0.5224372149 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +1.7456860542 +-1.0878634453 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.6548725367 +-0.9779233932 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.6720793247 +-0.8737193942 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +2.0965130329 +-0.4702872336 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.2284314632 +-0.7131112814 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.9636385441 +-1.1758154631 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.7447301149 +-1.0859514475 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.6663438082 +-1.0888193846 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.5162625313 +-1.0066033602 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.5468523502 +-0.7771633267 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +1.8038195372 +-0.9969063997 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.7255716324 +-0.9304828048 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.7300007343 +-0.8699634671 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.6679929495 +-0.8699634671 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.5439772606 +-0.7813987136 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +1.9632682800 +-0.9880499244 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.7772448063 +-0.9408153296 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.7252668142 +-0.8929117918 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +1.7296202183 +-0.8808189034 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.8156305552 +-0.8965329528 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.9115951061 +-0.8743917346 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.8156305552 +-0.8463461995 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.6871858835 +-0.8729156256 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +0.6435055137 +-1.5302994251 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.6376713514 +-1.4340326786 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.5255548358 +-1.1842795610 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.7514068484 +-1.4474775791 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.9585933685 +-1.4736107588 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.1004507542 +-1.2514790297 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.9847249985 +-0.9770810604 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.8801984191 +-0.6000171304 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.8671326041 +-0.3218857944 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.8540667892 +-0.2098865956 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.7159424424 +-0.1296205223 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.6991435289 +-0.0045547588 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.7196755409 +0.0607781000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.8727322817 +0.1205110028 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.9025970101 +0.3165095747 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.6734801531 +0.4621085227 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.7966722250 +0.4061089158 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.8433358669 +0.0066451598 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.7182773352 +-0.1408204287 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.7593412399 +-0.1874867678 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.0075917244 +-0.5141510367 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.9814602137 +-0.6410834789 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.1027855873 +-0.8034822941 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.2857069969 +-1.1712129116 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.7481420040 +-1.1842795610 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.0463210344 +-1.6080098152 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +2.1749765873 +-0.5802885890 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.2160513401 +-0.6795536876 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.1938025951 +-0.7000912428 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.0817027092 +-0.7471566200 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.1150758266 +-0.7445893884 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.0902597904 +-0.9285721183 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.1210658550 +-0.9106016755 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.1852452755 +-1.0689123869 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.2117726803 +-1.1707446575 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.2853648663 +-1.2101083994 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.2460017204 +-1.2528951168 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.2066383362 +-1.2520393133 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.2408673763 +-1.2143870592 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + +0.893289 +0.639883 +0.407035 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +0.4349708557 +-2.2756795883 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.2671925128 +-2.0009572506 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.3022694588 +-1.8450863361 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.2383239567 +-1.8445838690 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.2446729988 +-1.7170237303 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.3318038881 +-1.6363160610 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.3840527534 +-1.6828891039 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.7855520844 +-1.5352929831 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.9044240117 +-1.9230217934 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.9726292491 +-1.9035378695 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.9861323237 +-2.0250971317 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.8961201906 +-2.1030282974 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.8615521789 +-2.0710990429 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.7463851571 +-2.2297689915 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.8090931177 +-1.4755780697 + + + + +0.5349860191 +-2.0689790249 + + + + + +0.205256 +0.205253 +0.313884 +1.000000 + + +0.893289 +0.639883 +0.407035 +1.000000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +0.2266943306 +-1.7664642334 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.2467722297 +-1.7298518419 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.3070058823 +-1.7829989195 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.2810227275 +-1.8089818954 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.2715743184 +-1.8361458778 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.3199974597 +-1.8196113110 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.2845658958 +-1.9967679977 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.3944037557 +-2.1621143818 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.4262921810 +-2.1857352257 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.5255005956 +-2.2199854851 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.5892773867 +-2.2424254417 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.7581679225 +-2.1751058102 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.8621004820 +-2.0581824780 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.9046183825 +-2.0676307678 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.8998941779 +-2.0215699673 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.9294204712 +-1.9542504549 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.9624899626 +-1.9400779009 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.9577657580 +-1.9507073164 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.0593363047 +-1.9696040154 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.9766625762 +-2.1904594898 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.7239173651 +-2.3227365017 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.3778690398 +-2.3593487740 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.1912627667 +-2.0664496422 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.189939 +0.124402 +0.037379 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +0.3226949573 +-1.8184511662 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.3699370623 +-1.8137270212 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.4589072168 +-1.6591902971 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.4441387355 +-1.6484479904 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.5018700957 +-1.6430767775 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.4897868037 +-1.5987645388 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.5354349017 +-1.5531095266 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.6227032542 +-1.5611664057 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.6227032542 +-1.5813082457 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.5985366106 +-1.6027929783 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.6334439516 +-1.5933934450 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.6092773676 +-1.6215920448 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.6468698978 +-1.6068212986 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.6322236061 +-1.6285492182 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.6679659486 +-1.6134275198 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.6597177386 +-1.6326733828 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.6700280309 +-1.6367974281 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.6913359165 +-1.6278618574 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.6844624281 +-1.6409215927 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.7373885512 +-1.6649788618 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.7456367612 +-1.6512318850 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.7449494004 +-1.6814754009 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.7552596927 +-1.6656662226 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.7628206015 +-1.6862868071 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.7696940899 +-1.6725398302 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.7868779302 +-1.7137808800 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.7923767567 +-1.6828501225 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.8109352589 +-1.7110315561 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.8150593638 +-1.6842247248 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.8459902406 +-1.6821627617 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.8989163637 +-1.7481485605 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.8824198842 +-1.7804541588 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.8432407975 +-1.7845782042 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.8782957792 +-1.7990126610 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.8343052268 +-1.8051987886 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.8801516891 +-1.8385289907 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.8293664455 +-2.0145046711 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.8612548113 +-2.0522980690 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.8966864347 +-1.9353746176 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.9339713454 +-1.8491894007 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.9504677653 +-1.7309647799 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.7848158479 +-1.5295704603 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.3836635947 +-1.6919661760 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.017212 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +0.5884317160 +-2.1267039776 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.5925439596 +-2.1611106396 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.5097131729 +-2.1756222248 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.4384380877 +-2.1137125492 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.5369203687 +-2.0740399361 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.6179373264 +-2.1097147465 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.470726 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +0.4377652407 +-2.1218078136 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.5072947145 +-2.1054821014 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.5399433374 +-2.1768317223 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.4728322923 +-2.1611106396 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +0.5884317160 +-2.1267039776 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.5925439596 +-2.1611106396 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.5097131729 +-2.1756222248 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.4384380877 +-2.1137125492 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.5369203687 +-2.0740399361 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.6179373264 +-2.1097147465 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +0.4349708557 +-2.2756795883 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.2671925128 +-2.0009572506 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.3022694588 +-1.8450863361 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.2383239567 +-1.8445838690 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.2446729988 +-1.7170237303 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.3318038881 +-1.6363160610 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.3840527534 +-1.6828891039 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.7855520844 +-1.5352929831 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.9044240117 +-1.9230217934 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.9726292491 +-1.9035378695 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.9861323237 +-2.0250971317 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.8961201906 +-2.1030282974 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.8615521789 +-2.0710990429 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.7463851571 +-2.2297689915 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.3809141815 +-1.6644721031 + + + + +0.3909953535 +-1.6736367941 + + + + + + + + + + + + + + + + + + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + +0.003010 +0.002144 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +0.3971064091 +-2.1638503075 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.2837359011 +-2.2016394138 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.3381537497 +-2.2023952007 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.1673421711 +-2.2787292004 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.4001296163 +-2.3074488640 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.3510023952 +-2.3270993233 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.5248371959 +-2.2492537498 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.5014072657 +-2.2560558319 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.4893144071 +-2.2394285202 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.4666403234 +-2.2424516678 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.4636170864 +-2.2288475037 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.4311175644 +-2.2273359299 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.4280943274 +-2.2023952007 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.4023970366 +-2.1963489056 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +0.5275636911 +-2.2370424271 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.5252962708 +-2.2982606888 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.3514614999 +-2.3677926064 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.1693128943 +-2.3012838364 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.1708244979 +-2.2786102295 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.3144271374 +-2.2891912460 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.2668115199 +-2.2823891640 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.4648320079 +-2.2302403450 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.4391347170 +-2.2052993774 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.4058793485 +-2.1969859600 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.3393686712 +-2.2037878036 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.2766369879 +-2.2075667381 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.3484382927 +-2.1811144352 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.4557623863 +-2.2098340988 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +0.3950570822 +-2.1636438370 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.2859370112 +-2.2004055977 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.3381753266 +-2.2019536495 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.1679170579 +-2.2789597511 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.4000874460 +-2.3072082996 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.3521055579 +-2.3273305893 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.5250725150 +-2.2503242493 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +0.2495374382 +-1.7880493402 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.3224788606 +-1.7567855120 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.3072173893 +-1.6772384644 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +0.9264574051 +-2.0670855045 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.9056836963 +-1.9912765026 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.9750092626 +-1.9581403732 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + +0.199183 +0.103351 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +0.9445827603 +-1.9469175339 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.1320141554 +-1.9876552820 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.1340515614 +-2.0813519955 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.8977248669 +-2.0324666500 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.9067934752 +-1.9871143103 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +0.2266943306 +-1.7664642334 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.2467722297 +-1.7298518419 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.3070058823 +-1.7829989195 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.2810227275 +-1.8089818954 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.2715743184 +-1.8361458778 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.3199974597 +-1.8196113110 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.2845658958 +-1.9967679977 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.3944037557 +-2.1621143818 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.4262921810 +-2.1857352257 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.5255005956 +-2.2199854851 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.5892773867 +-2.2424254417 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.7581679225 +-2.1751058102 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.8621004820 +-2.0581824780 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.9046183825 +-2.0676307678 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.8998941779 +-2.0215699673 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.9294204712 +-1.9542504549 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.9624899626 +-1.9400779009 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.9577657580 +-1.9507073164 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.0593363047 +-1.9696040154 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.9766625762 +-2.1904594898 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.7239173651 +-2.3227365017 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.3778690398 +-2.3593487740 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.1912627667 +-2.0664496422 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +0.9445827603 +-1.9469175339 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.1320141554 +-1.9876552820 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.1340515614 +-2.0813519955 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.8977248669 +-2.0324666500 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.9067934752 +-1.9871143103 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + +0.199183 +0.103351 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +0.3367906809 +-1.6886171103 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.2044535726 +-1.2238227129 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.2574233413 +-1.2217859030 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.2432346195 +-1.3052272797 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.3048710525 +-1.7839665413 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.3260326385 +-1.7552053928 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-0.2467274815 +-1.1787347794 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.2089363039 +-1.2155803442 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.2410587966 +-1.2580945492 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.3314774334 +-1.7578718662 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.2274234593 +-1.8806498051 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.3078115880 +-1.2855670452 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +0.3367906809 +-1.6886171103 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.2044535726 +-1.2238227129 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.2574233413 +-1.2217859030 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.2432346195 +-1.3052272797 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.3048710525 +-1.7839665413 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.3260326385 +-1.7552053928 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + +0.199183 +0.103351 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-0.2468149811 +-1.3006323576 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.2328101844 +-1.1840401888 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.2310298979 +-1.1826230288 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.2288579047 +-1.1900545359 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.2163137197 +-1.1832669973 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.2129628807 +-1.1938350201 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.2094114572 +-1.2175064087 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.1843537092 +-1.2437918186 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-0.2467274815 +-1.1787347794 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.2089363039 +-1.2155803442 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.2410587966 +-1.2580945492 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.3314774334 +-1.7578718662 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.2274234593 +-1.8806498051 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.3078115880 +-1.2855670452 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-0.2468149811 +-1.3006323576 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.2328101844 +-1.1840401888 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.2310298979 +-1.1826230288 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.2288579047 +-1.1900545359 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.2163137197 +-1.1832669973 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.2129628807 +-1.1938350201 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.2094114572 +-1.2175064087 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.1843537092 +-1.2437918186 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +0.4604300261 +-1.7554246187 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.4869453907 +-1.7485817671 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.4944244325 +-1.8255771399 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.5091840029 +-1.8999805450 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.4835240543 +-1.9051125050 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.4679090977 +-1.8332754374 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +0.5522624254 +-1.7999382019 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.5537244081 +-1.8243042231 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.4800886810 +-1.8415087461 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.4167846739 +-1.8647519350 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.4070413709 +-1.8401051760 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.4766673148 +-1.8149926662 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +0.7100857496 +-1.8753865957 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.7366011143 +-1.8685436249 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.7503392100 +-1.9530842304 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.7588397264 +-2.0199425220 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.7331797481 +-2.0250744820 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.7238238454 +-1.9607824087 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +0.8017564416 +-1.9165824652 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.8095898628 +-1.9425417185 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.7360033989 +-1.9658294916 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.6662786603 +-1.9813963175 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.6565353274 +-1.9567494392 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.7325820923 +-1.9393134117 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + +0.893289 +0.639883 +0.407035 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +2.8251757622 +-1.2331897020 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.5504956245 +-1.3022078276 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.4287490845 +-1.2319422960 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.4115881920 +-1.2855237722 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.3061022758 +-1.2468000650 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.2611169815 +-1.1524853706 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.3114507198 +-1.1234288216 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.2950346470 +-0.7449012995 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.6518359184 +-0.7465447187 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.6533236504 +-0.6841534972 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.7589657307 +-0.7046310306 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.8008644581 +-0.8006390929 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.7649958134 +-0.8213176727 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.8681287766 +-0.9595898390 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.3729393482 +-0.8007008433 + + + + +2.6616599560 +-1.0825405121 + + + + + +0.205256 +0.205253 +0.313884 +1.000000 + + +0.893289 +0.639883 +0.407035 +1.000000 + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +2.8456513882 +-1.2692412138 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.7816958427 +-1.2631504536 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.7344906330 +-1.2372643948 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.6537849903 +-1.2768547535 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.5548062325 +-1.2692412138 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.5578517914 +-1.2326962948 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.4832370281 +-1.2235600948 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.4040539265 +-1.0849938393 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.2944159508 +-0.9890634418 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.3416211605 +-0.9692682624 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.3553259373 +-0.8459291458 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.4101450443 +-0.8383156061 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.5273966789 +-0.7621803284 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.5502378941 +-0.7499986887 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.5746018887 +-0.7652257085 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.6081023216 +-0.7652257085 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.6613986492 +-0.7789300680 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.6385574341 +-0.6906131506 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.4954190254 +-0.5870692134 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.2350287437 +-0.7576122284 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.1923916340 +-1.0408353806 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.2198011875 +-1.2692412138 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.4451682568 +-1.3286267519 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.6918537617 +-1.3727852106 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.8410832882 +-1.3133996725 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +2.8251757622 +-1.2331897020 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.5504956245 +-1.3022078276 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.4287490845 +-1.2319422960 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.4115881920 +-1.2855237722 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.3061022758 +-1.2468000650 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.2611169815 +-1.1524853706 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.3114507198 +-1.1234288216 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.2950346470 +-0.7449012995 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.6518359184 +-0.7465447187 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.6533236504 +-0.6841534972 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.7589657307 +-0.7046310306 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.8008644581 +-0.8006390929 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.7649958134 +-0.8213176727 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.8681287766 +-0.9595898390 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +2.3846039772 +-1.2685709000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.3654360771 +-1.1923401356 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.2912323475 +-1.2024224997 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + +0.199183 +0.103351 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +2.3550806046 +-1.1883038282 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.3931019306 +-1.2278965712 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.2749385834 +-1.3643679619 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.2039058208 +-1.3241239786 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.2039058208 +-1.2886925936 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.3090195656 +-1.1800365448 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +1.9540591240 +-1.5480312109 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.0477147102 +-1.4370906353 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.2768106461 +-1.5422680378 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.3848748207 +-1.5912548304 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.4799714088 +-1.5091298819 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.3719072342 +-1.2958935499 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.4050467014 +-1.2224134207 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.3387675285 +-1.1662226915 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.1284027100 +-1.3405579329 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.9482957125 +-1.3247092962 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.8359090090 +-1.4659063816 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.6543612480 +-1.7569452524 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.8416724205 +-1.9384843111 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.2926599979 +-1.8232214451 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.0419514179 +-1.9039055109 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.9310054779 +-1.7799978256 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +2.3550806046 +-1.1883038282 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.3931019306 +-1.2278965712 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.2749385834 +-1.3643679619 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.2039058208 +-1.3241239786 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.2039058208 +-1.2886925936 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.3090195656 +-1.1800365448 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +2.7791903019 +-0.7664686441 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.7006175518 +-0.7686718106 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.6902179718 +-0.6945118904 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.199183 +0.103351 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +2.7414801121 +-0.7838552594 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.6247889996 +0.6945444942 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.5551440716 +1.0724339485 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.6681365967 +-0.7073558569 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.6941196918 +-0.7675891519 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +2.7046484947 +-0.7711876035 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.3105721474 +0.3480140865 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.2471232414 +0.3999211788 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.5825695992 +0.4382674694 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.8036146164 +-0.7797110081 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.7790477276 +-0.7786873579 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.7391264439 +-0.7879003882 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +2.7414801121 +-0.7838552594 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.6247889996 +0.6945444942 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.5551440716 +1.0724339485 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.6681365967 +-0.7073558569 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.6941196918 +-0.7675891519 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + +0.093165 +0.016095 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +2.3048875332 +-0.7745586634 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.3321089745 +-0.9195921421 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.3219230175 +-0.9096986651 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.3004884720 +-0.9557257891 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.2705373764 +-0.9169331789 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.2631664276 +-0.9617029428 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.2486362457 +-0.9445617199 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.2430951595 +-0.9684528708 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.2646758556 +-1.0322018862 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.2832581997 +-1.0365113020 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.3018004894 +-1.0771769285 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.3167545795 +-1.0804295540 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.3363707066 +-1.1303818226 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.3606054783 +-1.1157150269 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.3699243069 +-1.1508587599 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.3913102150 +-1.1347304583 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.4016966820 +-1.1623153687 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.4138000011 +-1.1998742819 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.2634506226 +-1.1747978926 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.2349712849 +-1.1120312214 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.2146594524 +-1.1374461651 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.1849229336 +-1.0606162548 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.1460630894 +-1.1075515747 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.1257905960 +-0.8971374035 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.0949864388 +-0.9483077526 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.0935287476 +-0.9165533185 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.0480730534 +-0.9537258148 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.1158561707 +-0.7442069054 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.0838003159 +-0.7191281319 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.1955919266 +-0.7028776407 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.1958634853 +-0.6804759502 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.2219650745 +-0.6825357676 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.1754398346 +-0.5828673840 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.2265794277 +-0.6564837694 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.2180507183 +-0.5925238132 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.2489364147 +-0.6155246496 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.2850954533 +-0.4768271446 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.3155057430 +-0.5671999454 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.3490769863 +-0.5245808959 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.3421244621 +-0.5747507215 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.4865221977 +-0.4931927025 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.4986813068 +-0.5233404636 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.5493574142 +-0.5101593733 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.5538945198 +-0.5585753322 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.5806314945 +-0.5618469119 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.5834658146 +-0.6071953177 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.5976374149 +-0.6081400514 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.5976374149 +-0.6279799938 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.6427714825 +-0.6601577997 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.6343069077 +-0.6764835715 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.6741645336 +-0.7016711831 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.7072319984 +-0.7517434359 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.7280170918 +-0.7999261022 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.6989629269 +-0.8048942685 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.6893260479 +-0.7720194459 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.6637721062 +-0.7810309529 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.6512358189 +-0.7623448968 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.6080300808 +-0.7167873383 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.5929136276 +-0.7186768651 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.5702388287 +-0.7007264495 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.5503985882 +-0.7186768651 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.5305581093 +-0.6893893480 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.5055263042 +-0.6547158957 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.5031077862 +-0.6801115274 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.4632039070 +-0.6655997038 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.4958698750 +-0.7367934585 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.3454418182 +-0.7683994174 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.3799862862 +-0.8022321463 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.093165 +0.016095 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +2.6856083870 +-1.0992168188 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.6203842163 +-1.1094182730 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.5282535553 +-1.2473982573 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.5523405075 +-1.2323428392 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.5124475956 +-1.2991496325 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.5194869041 +-1.3479272127 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.5372130871 +-1.3247046471 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.6052236557 +-1.3604956865 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.6308157444 +-1.3277506828 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.6541881561 +-1.3303093910 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.6686403751 +-1.3145767450 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.7299883366 +-1.3222906590 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.7676239014 +-1.2820179462 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.8373270035 +-1.2769727707 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.8514769077 +-1.2245814800 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.8909573555 +-1.2120473385 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.8881709576 +-1.1660548449 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.9048056602 +-1.1397460699 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.8943040371 +-1.1048568487 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.9209876060 +-1.0751980543 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.8936238289 +-1.0140008926 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.9167695045 +-0.9806914926 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.8804869652 +-0.9514484406 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.8959174156 +-0.9292421341 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.8378434181 +-0.9140383005 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.6889936924 +-1.0342928171 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.4537971020 +-0.4926061928 + + + + +2.4726378918 +-1.4017741680 + + + + + +0.150544 +0.047366 +0.003869 +1.000000 + + +0.093165 +0.016095 +0.000000 +1.000000 + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +2.0446848869 +-0.9479503632 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.1005001068 +-0.8609562516 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.1215522289 +-0.8827884793 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.1465024948 +-0.8453618288 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.1722326279 +-0.9880509377 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.2174553871 +-1.0551071167 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.2377276421 +-1.0488692522 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.3445467949 +-1.1767437458 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.4279747009 +-1.1876598597 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.4201776981 +-1.2469186783 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.2611186504 +-1.2321039438 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.0583963394 +-1.1081281900 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +2.3048875332 +-0.7745586634 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.3321089745 +-0.9195921421 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.3219230175 +-0.9096986651 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.3004884720 +-0.9557257891 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.2705373764 +-0.9169331789 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.2631664276 +-0.9617029428 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.2486362457 +-0.9445617199 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.2430951595 +-0.9684528708 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.2646758556 +-1.0322018862 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.2832581997 +-1.0365113020 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.3018004894 +-1.0771769285 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.3167545795 +-1.0804295540 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.3363707066 +-1.1303818226 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.3606054783 +-1.1157150269 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.3699243069 +-1.1508587599 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.3913102150 +-1.1347304583 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.4016966820 +-1.1623153687 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.4138000011 +-1.1998742819 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.2634506226 +-1.1747978926 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.2349712849 +-1.1120312214 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.2146594524 +-1.1374461651 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.1849229336 +-1.0606162548 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.1460630894 +-1.1075515747 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.1257905960 +-0.8971374035 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.0949864388 +-0.9483077526 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.0935287476 +-0.9165533185 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.0480730534 +-0.9537258148 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.1158561707 +-0.7442069054 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.0838003159 +-0.7191281319 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.1955919266 +-0.7028776407 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.1958634853 +-0.6804759502 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.2219650745 +-0.6825357676 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.1754398346 +-0.5828673840 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.2265794277 +-0.6564837694 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.2180507183 +-0.5925238132 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.2489364147 +-0.6155246496 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.2850954533 +-0.4768271446 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.3155057430 +-0.5671999454 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.3490769863 +-0.5245808959 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.3421244621 +-0.5747507215 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.4865221977 +-0.4931927025 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.4986813068 +-0.5233404636 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.5493574142 +-0.5101593733 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.5538945198 +-0.5585753322 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.5806314945 +-0.5618469119 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.5834658146 +-0.6071953177 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.5976374149 +-0.6081400514 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.5976374149 +-0.6279799938 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.6427714825 +-0.6601577997 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.6343069077 +-0.6764835715 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.6741645336 +-0.7016711831 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.7072319984 +-0.7517434359 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.7280170918 +-0.7999261022 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.6989629269 +-0.8048942685 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.6893260479 +-0.7720194459 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.6637721062 +-0.7810309529 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.6512358189 +-0.7623448968 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.6080300808 +-0.7167873383 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.5929136276 +-0.7186768651 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.5702388287 +-0.7007264495 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.5503985882 +-0.7186768651 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.5305581093 +-0.6893893480 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.5055263042 +-0.6547158957 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.5031077862 +-0.6801115274 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.4632039070 +-0.6655997038 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.4958698750 +-0.7367934585 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.3454418182 +-0.7683994174 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.3799862862 +-0.8022321463 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +2.8456513882 +-1.2692412138 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.7816958427 +-1.2631504536 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.7344906330 +-1.2372643948 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.6537849903 +-1.2768547535 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.5548062325 +-1.2692412138 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.5578517914 +-1.2326962948 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.4832370281 +-1.2235600948 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.3933947086 +-1.0438808203 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.2944159508 +-0.9890634418 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.3416211605 +-0.9692682624 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.3553259373 +-0.8459291458 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.4101450443 +-0.8383156061 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.5273966789 +-0.7621803284 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.5502378941 +-0.7499986887 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.5746018887 +-0.7652257085 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.6081023216 +-0.7652257085 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.6613986492 +-0.7789300680 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.6385574341 +-0.6906131506 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.4954190254 +-0.5870692134 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.2350287437 +-0.7576122284 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.1923916340 +-1.0408353806 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.2198011875 +-1.2692412138 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.4451682568 +-1.3286267519 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.6918537617 +-1.3727852106 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.8410832882 +-1.3133996725 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +2.6856083870 +-1.0992168188 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.6203842163 +-1.1094182730 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.5282535553 +-1.2473982573 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.5523405075 +-1.2323428392 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.5124475956 +-1.2991496325 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.5194869041 +-1.3479272127 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.5372130871 +-1.3247046471 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.6052236557 +-1.3604956865 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.6308157444 +-1.3277506828 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.6541881561 +-1.3303093910 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.6686403751 +-1.3145767450 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.7299883366 +-1.3222906590 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.7676239014 +-1.2820179462 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.8373270035 +-1.2769727707 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.8514769077 +-1.2245814800 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.8909573555 +-1.2120473385 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.8881709576 +-1.1660548449 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.9048056602 +-1.1397460699 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.8943040371 +-1.1048568487 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.9209876060 +-1.0751980543 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.8936238289 +-1.0140008926 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.9167695045 +-0.9806914926 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.8804869652 +-0.9514484406 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.8959174156 +-0.9292421341 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.8378434181 +-0.9140383005 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.6889936924 +-1.0342928171 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.017212 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +2.7219617367 +-1.1251165867 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.6306579113 +-1.2561191320 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.7680108547 +-1.1648143530 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.8513751030 +-1.0353996754 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + +0.860111 +0.842899 +0.677202 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +2.6417760849 +-1.2283591032 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.6735522747 +-1.2360880375 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.7671635151 +-1.1699618101 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.8289983273 +-1.0866599083 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.8186924458 +-1.0471559763 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.7216460705 +-1.1253051758 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +2.6807045937 +-1.2340296507 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.6622354984 +-1.2217160463 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.6771867275 +-1.1988478899 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.6974148750 +-1.2217160463 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.7176430225 +-1.2419455051 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.6824636459 +-1.1918115616 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.6938967705 +-1.1689434052 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.7387506962 +-1.2094024420 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.7537019253 +-1.2199568748 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.7088482380 +-1.1601479053 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.7290763855 +-1.1320025921 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.7800865173 +-1.1847752333 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.7915196419 +-1.1979683638 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.7396302223 +-1.1276048422 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.7668941021 +-1.1056162119 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.7871222496 +-1.1258457899 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.7712914944 +-1.0985798836 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.7844839096 +-1.0809890032 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.8073503971 +-1.1038571596 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.7915196419 +-1.0748322010 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.8099889755 +-1.0598800182 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.8328554630 +-1.0924230814 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.8319761753 +-1.0290960073 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.7369916439 +-1.0519640446 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.6173815727 +-1.2050046921 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.6288149357 +-1.2788863182 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.7026917934 +-1.2692114115 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +2.7021150589 +-1.2235643864 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.6296694279 +-1.2563139200 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.7199783325 +-1.1253157854 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.8479988575 +-1.0330216885 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.8271582127 +-1.1014980078 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +2.3954803944 +-1.0985314846 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.3919980526 +-1.0713698864 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.4623205662 +-1.0712041855 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.5379838943 +-1.0658400059 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.5398750305 +-1.0919396877 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.4666514397 +-1.0984725952 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +2.4440958500 +-1.0106197596 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.4684538841 +-1.0122083426 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.4763395786 +-1.0874150991 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.4915053844 +-1.1531237364 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.4658358097 +-1.1597168446 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.4496037960 +-1.0875024796 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +2.5727057457 +-0.8863409162 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.5707988739 +-0.8590231538 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.6564280987 +-0.8608878255 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.7237174511 +-0.8646872044 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.7240972519 +-0.8908526897 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.6591758728 +-0.8883610368 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +2.6298851967 +-0.8036901355 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.6568360329 +-0.8007079959 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.6663537025 +-0.8773023486 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.6689815521 +-0.9486953616 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.6429738998 +-0.9537941813 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.6396577358 +-0.8758446574 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +2.4128677845 +-1.3170751333 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.1450262070 +-1.2315016985 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.4359724522 +-1.1647545099 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.0132446289 +-1.1245350838 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.1989369392 +-0.9448310137 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.9302394390 +-1.0757582188 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.8806074858 +-1.1972724199 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.8985776901 +-1.0672008991 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.8292640448 +-1.3453142643 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.7471145391 +-1.2640196085 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.7736419439 +-1.3581502438 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.6795123816 +-1.4788086414 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + +0.035754 +0.016095 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +1.8443616629 +-1.8158595562 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.8431521654 +-2.3432862759 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.1056172848 +-2.1170735359 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.0632841587 +-2.2477204800 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.3003494740 +-2.0118300915 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.3015589714 +-1.7311810255 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.7725745440 +-0.8836359978 + + + + +2.0840682983 +-2.2435171604 + + + + + +0.095441 +0.047366 +-0.034289 +1.000000 + + +0.014302 +0.006438 +0.000000 +1.000000 + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +1.8239072561 +-2.1148726940 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.9565956593 +-2.3304536343 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.8391110897 +-2.2655029297 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.8570793867 +-2.3484187126 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.7644739151 +-2.3636200428 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.7243909836 +-2.0844700336 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +2.3201065063 +-1.7928829193 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.1639211178 +-2.0291929245 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.9441560507 +-2.1286919117 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.8335824013 +-2.1204004288 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.8004103899 +-1.9752976894 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.8529328108 +-1.8108479977 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +1.8443616629 +-1.8158595562 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.8431521654 +-2.3432862759 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.1056172848 +-2.1170735359 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.0632841587 +-2.2477204800 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.3003494740 +-2.0118300915 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.3015589714 +-1.7311810255 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + +0.891179 +0.829156 +0.675605 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +2.2983109951 +-1.8146655560 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.0222744942 +-1.9274393320 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.8815709352 +-1.8468866348 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.8708301783 +-1.8887740374 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.7827563286 +-1.8468866348 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.7473119497 +-1.7588156462 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.8074599504 +-1.7534455061 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.8557932377 +-1.3764587641 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.1976063251 +-1.3590872288 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.2033646107 +-1.3001991510 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.3018224239 +-1.3269294500 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.3326814175 +-1.4194202423 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.2993850708 +-1.4376788139 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.3745701313 +-1.5708593130 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.9856311083 +-1.4418859482 + + + + +2.2532258034 +-1.7378175259 + + + + + +0.205256 +0.205253 +0.313884 +1.000000 + + +0.891179 +0.829156 +0.675605 +1.000000 + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +1.9540591240 +-1.5480312109 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.0477147102 +-1.4370906353 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.2768106461 +-1.5422680378 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.3848748207 +-1.5912548304 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.4799714088 +-1.5091298819 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.3719072342 +-1.2958935499 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.4050467014 +-1.2224134207 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.3387675285 +-1.1662226915 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.1284027100 +-1.3405579329 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.9482957125 +-1.3247092962 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.8359090090 +-1.4659063816 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.6543612480 +-1.7569452524 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.8416724205 +-1.9384843111 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.2926599979 +-1.8232214451 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.0419514179 +-1.9039055109 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.9310054779 +-1.7799978256 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +2.2983109951 +-1.8146655560 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.0222744942 +-1.9274393320 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.8815709352 +-1.8468866348 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.8708301783 +-1.8887740374 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.7827563286 +-1.8468866348 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.7473119497 +-1.7588156462 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.8074599504 +-1.7534455061 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.8557932377 +-1.3764587641 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.1976063251 +-1.3590872288 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.2033646107 +-1.3001991510 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.3018224239 +-1.3269294500 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.3326814175 +-1.4194202423 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.2993850708 +-1.4376788139 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.3745701313 +-1.5708593130 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + +0.035754 +0.016095 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +1.8223376274 +-1.3770644665 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.7093886137 +-1.3755381107 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.6925989389 +-1.7342236042 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.8467589617 +-1.7647501230 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.9273281097 +-1.5555837154 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.9331886768 +-1.6298224926 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.9439331293 +-1.5086961985 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.9361189604 +-1.3748711348 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.9488168955 +-1.4412952662 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.0010097027 +-1.3677116632 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.9781198502 +-1.4412952662 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.1617515087 +-1.4090600014 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.1217041016 +-1.3934308290 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.4899442196 +-1.3895235062 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.0670053959 +-1.2312778234 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.4342687130 +-1.1638768911 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.0103530884 +-1.1238270998 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.1978917122 +-0.9411607981 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.9331886768 +-1.0730321407 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.8570010662 +-1.3406822681 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.8990728855 +-1.0658569336 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.8316051960 +-1.3494737148 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.7446732521 +-1.2586289644 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.7725745440 +-0.8836359978 + + + + +2.0840682983 +-2.2435171604 + + + + + +0.095441 +0.047366 +-0.034289 +1.000000 + + +0.014302 +0.006438 +0.000000 +1.000000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +2.5268805027 +-1.3949481249 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.3260931969 +-1.3506656885 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.0647745132 +-1.3728069067 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.1297349930 +-1.3934720755 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.0381996632 +-1.3742829561 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.0071959496 +-1.3964241743 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.0602607727 +-1.3235716820 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.9496182203 +-1.4336193800 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.9786392450 +-1.3229670525 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.9338985682 +-1.3798048496 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.9478044510 +-1.4414799213 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.9973820448 +-1.3731535673 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.9792438745 +-1.4384566545 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.0221707821 +-1.4088283777 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.3166129589 +-1.4692941904 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +1.8223376274 +-1.3770644665 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.7093886137 +-1.3755381107 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.6925989389 +-1.7342236042 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.8467589617 +-1.7647501230 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.9273281097 +-1.5555837154 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.9331886768 +-1.6298224926 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.9439331293 +-1.5086961985 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.9361189604 +-1.3748711348 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.9488168955 +-1.4412952662 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.0010097027 +-1.3677116632 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.9781198502 +-1.4412952662 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.1617515087 +-1.4090600014 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.1217041016 +-1.3934308290 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.4899442196 +-1.3895235062 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.0670053959 +-1.2312778234 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.4342687130 +-1.1638768911 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.0103530884 +-1.1238270998 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.1978917122 +-0.9411607981 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.9331886768 +-1.0730321407 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.8570010662 +-1.3406822681 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.8990728855 +-1.0658569336 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.8316051960 +-1.3494737148 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.7446732521 +-1.2586289644 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.017212 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +2.2478201389 +-1.8002763987 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.0787615776 +-1.9043165445 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.0168352127 +-1.8838801384 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.1332566738 +-1.6974747181 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.3357553482 +-1.5779523849 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.3450441360 +-1.6429774761 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.470726 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +2.2169339657 +-1.7743288279 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.2354769707 +-1.7167574167 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.2840409279 +-1.7108488083 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.2475945950 +-1.8030164242 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.1522450447 +-1.8378762007 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.1632981300 +-1.7885673046 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +2.2169339657 +-1.7743288279 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.2354769707 +-1.7167574167 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.2840409279 +-1.7108488083 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.2475945950 +-1.8030164242 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.1522450447 +-1.8378762007 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.1632981300 +-1.7885673046 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +2.0814268589 +-1.9041672945 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.0149035454 +-1.8884412050 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.1394836903 +-1.6888417006 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.3378443718 +-1.5799691677 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.3451013565 +-1.6428732872 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +1.8280348778 +-1.8742891550 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.8088668585 +-1.7980582714 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.7468341589 +-1.8034373522 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + +0.199183 +0.103351 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +1.7137691975 +-1.7823693752 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.8070722818 +-1.7965419292 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.8420999050 +-1.8638887405 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.7598302364 +-1.9040170908 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +1.9540591240 +-1.5480312109 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.0477147102 +-1.4370906353 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.2696063519 +-1.5004851818 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.3848748207 +-1.5912548304 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.4799714088 +-1.5091298819 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.3719072342 +-1.2958935499 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.4050467014 +-1.2224134207 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.3387675285 +-1.1662226915 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.1284027100 +-1.3405579329 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.9482957125 +-1.3247092962 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.8359090090 +-1.4659063816 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.6543612480 +-1.7569452524 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.8416724205 +-1.9384843111 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.2926599979 +-1.8232214451 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.0419514179 +-1.9039055109 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.9310054779 +-1.7799978256 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +1.7137691975 +-1.7823693752 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.8070722818 +-1.7965419292 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.8420999050 +-1.8638887405 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.7598302364 +-1.9040170908 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +1.8911230564 +-1.7017439604 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.8901780844 +-1.6743763685 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.9602119923 +-1.6807413101 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.0360465050 +-1.6824262142 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.0355060101 +-1.7085887194 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.9619921446 +-1.7082941532 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +1.9476917982 +-1.6187263727 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.9717971087 +-1.6225699186 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.9726653099 +-1.6981840134 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.9816640615 +-1.7650170326 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.9554932117 +-1.7691980600 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.9460369349 +-1.6957883835 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +2.0872859955 +-1.5069267750 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.0879240036 +-1.4795500040 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.1730101109 +-1.4893578291 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.2396559715 +-1.4993890524 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.2376046181 +-1.5254768133 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.1731951237 +-1.5169675350 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +2.1518931389 +-1.4299426079 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.1790044308 +-1.4294759035 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.1813688278 +-1.5066231489 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.1773560047 +-1.5779516697 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.1509871483 +-1.5806134939 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.1549234390 +-1.5026928186 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +2.4296739101 +-1.1639420986 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.2132256031 +-1.1645468473 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.0046372414 +-1.2316638231 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.2289454937 +-1.2250125408 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +2.1884369850 +-0.9559399486 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.9689656496 +-1.1107323170 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.9024591446 +-1.2256171703 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.0076603889 +-1.1252440214 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +1.7839106321 +-2.1599724293 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.8686273098 +-2.1779429913 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.9490654469 +-2.2301425934 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.8455227613 +-2.0658419132 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.8677716255 +-1.9785569906 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.8908761740 +-2.0110747814 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.8652044535 +-1.9092426300 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.7556717396 +-1.8099775314 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.6700993776 +-1.6311292648 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +1.0471322536 +-1.9614423513 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.9906544685 +-2.0658419132 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + +0.670435 +0.497793 +0.267271 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +1.5691744089 +-2.3609426022 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.2864801884 +-2.3491115570 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.1978309155 +-2.2161927223 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.1533558369 +-2.2621409893 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.0653854609 +-2.1695497036 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.0670605898 +-2.0507948399 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.1329805851 +-2.0465447903 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.3167649508 +-1.6886775494 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.6696373224 +-1.8340109587 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.6970181465 +-1.8034545183 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.7691351175 +-1.8592033386 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.7855254412 +-1.9575835466 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.7472671270 +-1.9671969414 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.7560230494 +-2.1477854252 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.3586691618 +-1.7639149427 + + + + +1.5343533754 +-2.1423571110 + + + + + +0.205256 +0.205253 +0.313884 +1.000000 + + +0.670435 +0.497793 +0.267271 +1.000000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + +0.003010 +0.002144 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +1.2236380577 +-2.3568887711 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.2189016342 +-2.3019402027 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.2861592770 +-2.3872053623 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.2890011072 +-2.3644678593 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.5201401711 +-2.4459433556 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.5220347643 +-2.4071004391 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.5428751707 +-2.4307851791 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.5466643572 +-2.3966791630 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.5978180170 +-2.4412064552 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.6338150501 +-2.3587837219 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.6432880163 +-2.4099426270 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.6944416761 +-2.3104667664 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.6944416761 +-2.3512043953 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.7313860655 +-2.2422547340 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.7465426922 +-2.2773082256 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.7673830986 +-2.1209888458 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.7332806587 +-1.8670886755 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.6461298466 +-1.9011946917 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.6688648462 +-1.9201424122 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.6489716768 +-1.9362480640 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.6754958630 +-1.9637223482 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.6499190331 +-1.9741436243 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.6622338295 +-1.9902492762 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.6413934231 +-2.0167760849 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.6593918800 +-2.0300395489 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.6432880163 +-2.0385661125 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.6688648462 +-2.0594086647 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.5157846212 +-2.0788400173 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.4756361246 +-2.1425371170 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.3884854317 +-2.1302211285 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.2795282602 +-2.2195174694 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.2719498873 +-2.2005696297 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.2511094809 +-2.2081487179 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.2577406168 +-2.1835167408 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.2350056171 +-2.1901483536 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.2359528542 +-2.1740427017 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.2226908207 +-2.1626739502 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.2321636677 +-2.1323575974 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.2113232613 +-2.1370944977 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.2245854139 +-2.1001462936 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.2009030581 +-2.1200416088 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.2217434645 +-2.0736193657 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.1800626516 +-2.1001462936 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.1212404966 +-0.3703345954 + + + + +1.5490732193 +-2.4638826847 + + + + + +0.097047 +0.029211 +0.000000 +1.000000 + + +0.003010 +0.002144 +0.000000 +1.000000 + + + + + + + + + + + + + + + + + + + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + +0.003010 +0.002144 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +1.3516786098 +-1.7703682184 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.2502834797 +-1.9748909473 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.1934809685 +-2.0091102123 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.2039011717 +-2.1019544601 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.1906391382 +-2.2914321423 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.0523346663 +-2.4790153503 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.0627548695 +-2.2677474022 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.0354211330 +-2.1883857250 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.9945498705 +-2.1095335484 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.0723831654 +-1.9208716154 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.0523346663 +-1.8063689470 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.1099716425 +-1.7181999683 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.1688603163 +-1.6564899683 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.2474765778 +-1.6358388662 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.3063952923 +-1.6719610691 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.3052613735 +-1.5354156494 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.3137869835 +-1.5003622770 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.3336800337 +-1.6528918743 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.4056742191 +-1.5183626413 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.5303366184 +-1.5806839466 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.6614427567 +-1.5922590494 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.5776355267 +-1.6057437658 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.7508258820 +-1.8044087887 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.8717412949 +-1.9295295477 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.8963708878 +-2.0166893005 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.8130092621 +-1.9077396393 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.8651102781 +-1.9882676601 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.8480590582 +-2.0716378689 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.9503664970 +-2.2307991982 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.7590137720 +-2.1389026642 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.7078599930 +-2.0081627369 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.7230166197 +-1.9304769039 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.6159727573 +-1.8774231672 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.5657663345 +-1.8404749632 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.4748264551 +-1.8215272427 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.1212404966 +-0.3703345954 + + + + +1.5490732193 +-2.4638826847 + + + + + +0.097047 +0.029211 +0.000000 +1.000000 + + +0.021436 +0.004529 +0.000000 +1.000000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +1.5235781670 +-2.2731068134 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.5245580673 +-2.4122624397 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.5372979641 +-2.4926199913 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.4461591244 +-2.4867401123 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.4706587791 +-2.2848663330 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +1.3539857864 +-1.7721199989 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.2855930328 +-2.0342648029 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.2000586987 +-2.1551854610 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.1894836426 +-2.3032414913 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.0978323221 +-2.3643438816 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.0543568134 +-2.4759733677 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.1048824787 +-2.2997162342 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.1330828667 +-2.2832655907 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.1189826727 +-2.1775112152 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.1777334213 +-2.0130047798 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.2400093079 +-1.9718780518 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.2905349731 +-1.9589525461 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +1.1614037752 +-2.1687858105 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.2242183685 +-2.3559029102 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.2195898294 +-2.3003628254 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.2870328426 +-2.3869788647 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.2903388739 +-2.3631761074 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.5270502567 +-2.4445023537 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.5237442255 +-2.4087982178 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.5435804129 +-2.4319398403 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.5475476980 +-2.3942520618 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.5997829437 +-2.4392130375 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.6348267794 +-2.3585476875 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.6434224844 +-2.4101204872 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.6936739683 +-2.3135867119 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.6936739683 +-2.3506133556 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.7320239544 +-2.2401945591 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.7452480793 +-2.2778823376 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.7710350752 +-2.1463053226 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.470726 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +1.5210874081 +-2.2678341866 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.5040361881 +-2.4118373394 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.4443569183 +-2.5169975758 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.3892744780 +-2.4132790565 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.4455350637 +-2.2662253380 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.4746701717 +-2.2640447617 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.4983682632 +-2.2539298534 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +1.5210874081 +-2.2678341866 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.5040361881 +-2.4118373394 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.4443569183 +-2.5169975758 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.3892744780 +-2.4132790565 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.4455350637 +-2.2662253380 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.4746701717 +-2.2640447617 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.4983682632 +-2.2539298534 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +1.2949168682 +-1.8244657516 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.2225797176 +-1.9730275869 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +1.1865296364 +-2.3010239601 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.0973726511 +-2.3641781807 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.0527391434 +-2.4831957817 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.0634843111 +-2.2616906166 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.9915748835 +-2.0922555923 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.0725762844 +-1.9137290716 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.0486065149 +-1.8038029671 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.1692820787 +-1.6550308466 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.2469772100 +-1.6335414648 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.3048354387 +-1.6707345247 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.3122743368 +-1.5095646381 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.3329379559 +-1.6542042494 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.3899694681 +-1.5170032978 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.5222166777 +-1.5839507580 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.6619027853 +-1.5905628204 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.5805747509 +-1.6044449806 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.6757861376 +-1.6416840553 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.7569553852 +-1.8112416267 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.8644062281 +-1.9104230404 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.8941619396 +-2.0145635605 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.8305178881 +-1.9253002405 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.8652328253 +-1.9905947447 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.8544877768 +-2.0839905739 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.9495403767 +-2.2302832603 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.7759659290 +-2.1509380341 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.7073627710 +-2.0228285789 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.7252961397 +-1.9256323576 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.6114835739 +-1.8757095337 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.5660235882 +-1.8343839645 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.4705526829 +-1.8075674772 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +1.5594111681 +-1.8294248581 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.6205755472 +-1.8162006140 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.7197608948 +-1.8517407179 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.6362799406 +-1.7575182915 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.5635439157 +-1.7500796318 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.4593992233 +-1.6682549715 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.3982349634 +-1.7244578600 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +1.7908437252 +-2.0434913635 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.7257193327 +-1.9235165119 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +1.2398388386 +-2.2667539120 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.2617998123 +-2.2237133980 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.4089248180 +-2.1187462807 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.4758749008 +-2.1435415745 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.4990181923 +-2.0799002647 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.6792049408 +-2.0542783737 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.7308064699 +-2.0832684040 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +1.1403529644 +-2.2765679359 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.1982110739 +-2.1063063145 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.1915987730 +-2.0145635605 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.2486302853 +-1.9740644693 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.3519484997 +-1.7715690136 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.4775832891 +-1.8219861984 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.4279905558 +-1.7327228785 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.3552546501 +-1.7451206446 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +1.4396891594 +-2.4051570892 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.4754689932 +-2.2620444298 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +1.2337898016 +-2.0208642483 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.2433537245 +-1.9952046871 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.3056669235 +-2.0277981758 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.3751270771 +-2.0582776070 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.3646496534 +-2.0822565556 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.2968044281 +-2.0539474487 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +1.3177442551 +-1.9656955004 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.3385617733 +-1.9784418344 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.3105266094 +-2.0486719608 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.2933564186 +-2.1138856411 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.2675690651 +-2.1077694893 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.2868245840 +-2.0363018513 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +1.4717798233 +-1.9088436365 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.4844754934 +-1.8845802546 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.5564199686 +-1.9310544729 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.6117318869 +-1.9695626497 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.5983397961 +-1.9920443296 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.5443588495 +-1.9558911324 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +1.5637986660 +-1.8684313297 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.5883132219 +-1.8800191879 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.5562683344 +-1.9502360821 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.5210825205 +-2.0124118328 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.4962614775 +-2.0031208992 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.5342980623 +-1.9350007772 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +1.5497468710 +-1.7766855955 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.5603073835 +-1.7986928225 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.4986315966 +-1.8424457312 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.4488034248 +-1.8878856897 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.4304693937 +-1.8687477112 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.4854445457 +-1.8191882372 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +1.1923893690 +-1.9169778824 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.1990258694 +-1.9404681921 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.2742223740 +-1.9324865341 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.3416492939 +-1.9336067438 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.3427406549 +-1.9071265459 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.2687287331 +-1.9063211679 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +1.3527259827 +-1.7706370354 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.4468120337 +-1.8567234278 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.6060733795 +-1.9351457357 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.7064905167 +-2.0047793388 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.7288157940 +-2.1469600201 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.7664163113 +-2.2550644875 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.9520688057 +-2.2632896900 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.8322170973 +-2.1305093765 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.7934416533 +-2.0423808098 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.6947402954 +-1.8825744390 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.7346909046 +-1.8907997608 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.6653649807 +-1.8343975544 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.6148391962 +-1.8155966997 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.5737136602 +-1.8332225084 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.4754508734 +-1.8193696737 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.3904112577 +-1.7732950449 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.550466 +0.335490 +0.032509 +1.000000 + + + + + + + + + + + + + + + + + + + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + +1.000000 +1.000000 +1.000000 +1.000000 + + + + + + + + + + +0.7568001747 +-1.7542842627 + + + + + + + + + + + + + + + + + + + + + +1.000000 +1.000000 +1.000000 +1.000000 + + + + + + + + + + +1.4093135595 +-1.8336327076 + + + + + + + + + + + + + + + + + + + + + +1.000000 +1.000000 +1.000000 +1.000000 + + + + + + + + + + +2.0208849907 +-1.4676060677 + + + + + + + + + + + + + + + + + + + + + +1.000000 +1.000000 +1.000000 +1.000000 + + + + + + + + + + +2.5121891499 +-0.7969836593 + + + + + + + + + + + + + + + + + + + + + +0.1430746913 +0.1430746913 + + + + + + + + + + + + + + + + + + + + + + + + + +1.000000 +1.000000 +1.000000 +1.000000 + + + + + + + + + + +2.5016808510 +0.4105438888 + + + + + + + + + + + + + + + + + + + + + +1.000000 +1.000000 +1.000000 +1.000000 + + + + + + + + + + +2.8748173714 +1.4299800396 + + + + + + + + + + + + + + + + + + + + + +1.000000 +1.000000 +1.000000 +1.000000 + + + + + + + + + + +1.2043813467 +0.8139803410 + + + + + + + + + + + + + + + + + + + + + +0.713453 +0.444079 +0.227961 +1.000000 + + + + + + + + + + +1.3367146254 +0.6317832470 + + + + + + + + + + + + + + + + + + + + + +0.591832 +0.373566 +0.065942 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +0.5794723630 +0.1978465617 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.5118663311 +0.1567540914 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.5344016552 +0.1116849408 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.5874260068 +0.1541029662 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.591832 +0.373566 +0.065942 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +0.6802185774 +0.3091938794 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.6351478696 +0.2760547996 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.6523808241 +0.2442412674 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.6921490431 +0.2734036744 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.591832 +0.373566 +0.065942 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +0.5622394681 +0.4192156196 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.5158431530 +0.3807742894 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.5383784771 +0.3197983801 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.5701931119 +0.3728209138 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.591832 +0.373566 +0.065942 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +0.4694468677 +0.2296600789 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.4296786189 +0.2217066884 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.4124456942 +0.1580796540 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.4601676166 +0.2044743747 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.591832 +0.373566 +0.065942 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +0.1976971775 +-0.1693344563 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.1539520919 +-0.1454743296 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.1685337871 +-0.2197058648 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.591832 +0.373566 +0.065942 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +0.4071432650 +-0.0473826453 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.3355604410 +-0.0778705999 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.3315836191 +-0.1123352423 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.3952127993 +-0.0725683495 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.4296786189 +-0.0593127161 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.591832 +0.373566 +0.065942 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +0.6461514831 +-0.2094277292 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.5832009912 +-0.2236817628 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.5879519582 +-0.2462506294 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.6314386725 +-0.2355504483 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.6681841612 +-0.2318932414 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.000000 +1.000000 +1.000000 +1.000000 + + + + + + + + + + +0.6560738087 +1.9123169184 + + + + + + + + + + + + + + + + + + + + + +1.000000 +1.000000 +1.000000 +1.000000 + + + + + + + + + + +0.6398419142 +1.9238146544 + + + + + + + + + + + + + + + + + + + + + +1.000000 +1.000000 +1.000000 +1.000000 + + + + + + + + + + +-0.8132436275 +0.1440407783 + + + + + + + + + + + + + + + + + + + + + +1.000000 +1.000000 +1.000000 +1.000000 + + + + + + + + + + +-0.7737447619 +0.0922500715 + + + + + + + + + + + + + + + + + + + + + +1.000000 +1.000000 +1.000000 +1.000000 + + + + + + + + + + +-1.0634030104 +-0.1175461560 + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +2.3880400658 +-2.3704807758 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.3055958748 +-2.3271183968 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.3889544010 +-2.3692562580 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.4300858974 +-2.2559552193 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.3579726219 +-2.2235186100 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.3332355022 +-2.2853212357 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.4050562382 +-2.3221395016 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +2.3474674225 +-2.2567028999 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.4178700447 +-2.2914302349 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +2.3976538181 +-2.2000052929 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.3902981281 +-2.1442770958 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.4442584515 +-2.2150893211 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.4605398178 +-2.1566605568 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +2.4695303440 +-2.1215307713 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.4271390438 +-2.1229467392 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.4120645523 +-2.0792605877 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.4645919800 +-2.1000385284 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.4439332485 +-2.1132295132 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +2.4880375862 +-2.0558614731 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.4456467628 +-2.0572776794 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.4305722713 +-2.0135912895 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.4830996990 +-2.0343694687 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.4624407291 +-2.0475602150 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +2.4358847141 +-1.9724088907 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.4674046040 +-1.9864041805 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.4751555920 +-1.9419553280 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +2.4366462231 +-1.9475414753 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.5094630718 +-1.9726579189 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/synfig-core/tags/stable/examples/preambletaffy.sif b/synfig-core/tags/stable/examples/preambletaffy.sif new file mode 100644 index 0000000..5ead0a4 --- /dev/null +++ b/synfig-core/tags/stable/examples/preambletaffy.sif @@ -0,0 +1,174 @@ + + + Untitled4 + + + + + + + + + + + + + + + + 1.000000 + 1.000000 + 1.000000 + 1.000000 + + + + + + + + + + + + We, the people of the United States, +in order to form a more perfect union, +establish justice, ensure domestic +tranquility, provide for the common defence, +promote the general welfare, and ensure +the blessings of liberty for ourselves and our +posterity, do ordain and establish this +constitution for the United States of America. + + + + 0.000000 + 0.000000 + 0.000000 + 1.000000 + + + + Comic + + + + + + + + + + + + + + + + 0.3000000000 + 0.3000000000 + + + + + 0.5000000000 + 0.5000000000 + + + + + 0.0000000000 + 0.0000000000 + + + + + + + + + + + + + + + -3.9000000000 + 0.0833333333 + + + + + -1.8500000000 + 0.0833333333 + + + + + -0.0666666667 + -1.0666666667 + + + + + 1.1000000000 + 0.7166666667 + + + + + 3.4333333333 + -0.2666666667 + + + + + 0.2666666667 + -0.0333333333 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/synfig-core/tags/stable/examples/prologue_kid.sif b/synfig-core/tags/stable/examples/prologue_kid.sif new file mode 100644 index 0000000..1333daa --- /dev/null +++ b/synfig-core/tags/stable/examples/prologue_kid.sif @@ -0,0 +1,62822 @@ + + +Untitled0 + + + + + + + + +-0.5142894387 +2.9006247520 + + + + +-0.4749926329 +2.9457879066 + + + + +-0.5142894387 +2.9006247520 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.7275033593 +2.9510037899 + + + + +-0.6882065535 +2.9961671829 + + + + +-0.7275033593 +2.9510037899 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.8170565963 +2.4693975449 + + + + +-0.7777597904 +2.5145606995 + + + + +-0.8170565963 +2.4693975449 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.6346197724 +2.8369276524 + + + + +-0.5953229666 +2.8820910454 + + + + +-0.6346197724 +2.8369276524 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.5765018463 +2.5647649765 + + + + +-0.5372050405 +2.6099281311 + + + + +-0.5765018463 +2.5647649765 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.1753337532 +1.5198321342 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.2592710555 +1.7298367023 + + + + +-0.2199742496 +1.7749999762 + + + + +-0.2592710555 +1.7298367023 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.5692368746 +1.7362037897 + + + + +-0.5299400687 +1.7813669443 + + + + +-0.5692368746 +1.7362037897 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.7145081758 +1.9717915058 + + + + +-0.6752113700 +2.0169546604 + + + + +-0.7145081758 +1.9717915058 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.7684255838 +2.0132558346 + + + + +-0.7291288376 +2.0584189892 + + + + +-0.7684255838 +2.0132558346 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.7433272600 +2.0821464062 + + + + +-0.7040304542 +2.1273095608 + + + + +-0.7433272600 +2.0821464062 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.8070188761 +2.2073647976 + + + + +-0.7677220702 +2.2525279522 + + + + +-0.8070188761 +2.2073647976 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.6638062596 +2.3559291363 + + + + +-0.6245094538 +2.4010922909 + + + + +-0.6638062596 +2.3559291363 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.7062131763 +2.7927820683 + + + + +-0.6669163704 +2.8379452229 + + + + +-0.7062131763 +2.7927820683 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0425418951 +3.2572019100 + + + + +0.0818386897 +3.3023653030 + + + + +0.0425418951 +3.2572019100 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.6182690263 +2.4851326942 + + + + +0.6575658321 +2.5302960873 + + + + +0.6182690263 +2.4851326942 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.1730558574 +1.8671618700 + + + + +0.2123526484 +1.9123250246 + + + + +0.1730558574 +1.8671618700 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.1772033572 +1.6845220327 + + + + +0.2165001482 +1.7296853065 + + + + +0.1772033572 +1.6845220327 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.1689083576 +1.3984193802 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.4684853256 +2.4849879742 + + + + +-0.4291885197 +2.5301511288 + + + + +-0.4593684673 +2.4954657555 + + + + +-0.4881241322 +2.4928174019 + + + + +-0.4684853256 +2.4849879742 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.4663622677 +2.3725035191 + + + + +-0.4270654917 +2.4176666737 + + + + +-0.4572454095 +2.3829815388 + + + + +-0.4562783241 +2.4758386612 + + + + +-0.4663622677 +2.3725035191 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.4026706517 +2.4764986038 + + + + +-0.3633738756 +2.5216617584 + + + + +-0.3990981579 +2.4806044102 + + + + +-0.4026706517 +2.4764986038 + + + + +-0.4026706517 +2.4764986038 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.4812236428 +2.5571477413 + + + + +-0.4419268668 +2.6023108959 + + + + +-0.4721067846 +2.5676255226 + + + + +-0.4562783241 +2.5034291744 + + + + +-0.4812236428 +2.5571477413 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.4515008926 +2.4828655720 + + + + +-0.4122041166 +2.5280287266 + + + + +-0.4423840344 +2.4933433533 + + + + +-0.4440382421 +2.4879934788 + + + + +-0.4515008926 +2.4828655720 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.4515008926 +2.4446632862 + + + + +-0.4122041166 +2.4898266792 + + + + +-0.4423840344 +2.4551413059 + + + + +-0.4420416951 +2.4775784016 + + + + +-0.4515008926 +2.4446632862 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.4260242581 +2.4849879742 + + + + +-0.3867274523 +2.5301511288 + + + + +-0.4169073999 +2.4954657555 + + + + +-0.4275609553 +2.4890031815 + + + + +-0.4260242581 +2.4849879742 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.4515008926 +2.5231902599 + + + + +-0.4122041166 +2.5683534145 + + + + +-0.4423840344 +2.5336680412 + + + + +-0.4471423328 +2.4994971752 + + + + +-0.4515008926 +2.5231902599 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.5195475817 +2.6287400723 + + + + +-0.4802507758 +2.6739032269 + + + + +-0.5195475817 +2.6287400723 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.3866714835 +2.6257624626 + + + + +-0.3473747075 +2.6709256172 + + + + +-0.3866714835 +2.6257624626 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.5342999697 +2.7217445374 + + + + +-0.4950031936 +2.7669076920 + + + + +-0.5342999697 +2.7217445374 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.3347329497 +2.6983985901 + + + + +-0.2954361439 +2.7435619831 + + + + +-0.3347329497 +2.6983985901 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.3262407482 +2.7620689869 + + + + +-0.2869439423 +2.8072323799 + + + + +-0.3262407482 +2.7620689869 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.4982080758 +2.8236172199 + + + + +-0.4589112699 +2.8687803745 + + + + +-0.4982080758 +2.8236172199 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.8034437895 +2.7568781376 + + + + +-0.7641469836 +2.8020412922 + + + + +-0.8034437895 +2.7568781376 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.9775341749 +2.8905858994 + + + + +-0.9382373691 +2.9357490540 + + + + +-0.9775341749 +2.8905858994 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.7970746160 +3.2428953648 + + + + +-0.7577778101 +3.2880587578 + + + + +-0.7970746160 +3.2428953648 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.7227677703 +3.2407732010 + + + + +-0.6834709644 +3.2859363556 + + + + +-0.7227677703 +3.2407732010 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.7439982891 +3.3468904495 + + + + +-0.7047014832 +3.3920536041 + + + + +-0.7439982891 +3.3468904495 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.5911384225 +3.3490128517 + + + + +-0.5518416166 +3.3941760063 + + + + +-0.5911384225 +3.3490128517 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.4128019214 +3.4996993542 + + + + +-0.3735051155 +3.5448627472 + + + + +-0.4128019214 +3.4996993542 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.2726803720 +3.4551301003 + + + + +-0.2333835959 +3.5002932549 + + + + +-0.2726803720 +3.4551301003 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.1249246523 +3.0296225548 + + + + +0.1642214507 +3.0747857094 + + + + +0.1249246523 +3.0296225548 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.4218430817 +2.5222826004 + + + + +0.4611398578 +2.5674457550 + + + + +0.4218430817 +2.5222826004 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.4011926949 +2.5070695877 + + + + +0.4404895008 +2.5522329807 + + + + +0.4011926949 +2.5070695877 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.4011926949 +2.4864234924 + + + + +0.4404895008 +2.5315866470 + + + + +0.4011926949 +2.4864234924 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.3805423379 +2.4766438007 + + + + +0.4198391140 +2.5218069553 + + + + +0.3805423379 +2.4766438007 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.4031749964 +2.4267244339 + + + + +0.4424718022 +2.4718878269 + + + + +0.4031749964 +2.4267244339 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.2197944671 +2.3401188850 + + + + +0.2590912580 +2.3852820396 + + + + +0.2197944671 +2.3401188850 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.2058299333 +2.4239387512 + + + + +0.2451267242 +2.4691021442 + + + + +0.2058299333 +2.4239387512 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.1376352459 +2.7522666454 + + + + +-0.0983384550 +2.7974298000 + + + + +-0.1376352459 +2.7522666454 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.5142894387 +2.9006247520 + + + + +-0.4749926329 +2.9457879066 + + + + +-0.5142894387 +2.9006247520 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.7048059702 +2.8981902599 + + + + +-0.6655092239 +2.9433534145 + + + + +-0.7048059702 +2.8981902599 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.6738110185 +3.2752954960 + + + + +-0.6345142126 +3.3204586506 + + + + +-0.6738110185 +3.2752954960 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.5838634372 +3.2868919373 + + + + +-0.5445666313 +3.3320553303 + + + + +-0.5838634372 +3.2868919373 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.3444499373 +3.1506798267 + + + + +-0.3051531613 +3.1958432198 + + + + +-0.3444499373 +3.1506798267 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.0910880119 +2.9047515392 + + + + +-0.0517912172 +2.9499146938 + + + + +-0.0910880119 +2.9047515392 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.3172067702 +2.9218215942 + + + + +-0.2779099643 +2.9669847488 + + + + +-0.3172067702 +2.9218215942 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.2641304135 +2.5716342926 + + + + +-0.2248336226 +2.6167976856 + + + + +-0.2641304135 +2.5716342926 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.1792082787 +2.9961037636 + + + + +-0.1399114877 +3.0412669182 + + + + +-0.1792082787 +2.9961037636 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.1394010186 +2.3196055889 + + + + +-0.1001042277 +2.3647689819 + + + + +-0.1394010186 +2.3196055889 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.2109028250 +2.5555675030 + + + + +0.2501996160 +2.6007306576 + + + + +0.2109028250 +2.5555675030 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.2322846204 +3.1314263344 + + + + +-0.1929878145 +3.1765894890 + + + + +-0.2322846204 +3.1314263344 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.5753629208 +3.3048374653 + + + + +0.6146597266 +3.3500008583 + + + + +0.5753629208 +3.3048374653 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.1477277279 +2.9085798264 + + + + +1.1870244741 +2.9537432194 + + + + +1.1477277279 +2.9085798264 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.9141918421 +2.7467508316 + + + + +0.9534886479 +2.7919142246 + + + + +0.9141918421 +2.7467508316 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.8505002260 +2.7812390327 + + + + +0.8897970319 +2.8264021873 + + + + +0.8505002260 +2.7812390327 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.7284246683 +2.1311094761 + + + + +0.7677214146 +2.1762728691 + + + + +0.7284246683 +2.1311094761 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.7204632163 +2.3300795555 + + + + +0.7597599626 +2.3752427101 + + + + +0.7204632163 +2.3300795555 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.6673868299 +2.1841683388 + + + + +0.7066836357 +2.2293314934 + + + + +0.6673868299 +2.1841683388 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.4948887527 +2.0807037354 + + + + +0.5341855288 +2.1258671284 + + + + +0.4948887527 +2.0807037354 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.2000125498 +1.8751945496 + + + + +0.2393093407 +1.9203577042 + + + + +0.2000125498 +1.8751945496 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.1498925388 +2.3088560104 + + + + +0.1891893297 +2.3540194035 + + + + +0.1498925388 +2.3088560104 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.0119903022 +2.2637562752 + + + + +0.0273064915 +2.3089194298 + + + + +-0.0119903022 +2.2637562752 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0749806464 +2.6989061832 + + + + +0.1142774373 +2.7440695763 + + + + +0.0749806464 +2.6989061832 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.4345522225 +3.0252170563 + + + + +-0.3952554166 +3.0703802109 + + + + +-0.4345522225 +3.0252170563 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.5433587432 +3.3544564247 + + + + +-0.5040619373 +3.3996198177 + + + + +-0.5433587432 +3.3544564247 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.5008976460 +3.5719969273 + + + + +-0.4616008401 +3.6171603203 + + + + +-0.5008976460 +3.5719969273 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.4478213191 +3.4473092556 + + + + +-0.4085245132 +3.4924724102 + + + + +-0.4478213191 +3.4473092556 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.2249006778 +3.3995563984 + + + + +-0.1856038868 +3.4447195530 + + + + +-0.2249006778 +3.3995563984 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0378272049 +3.4499621391 + + + + +0.0771239996 +3.4951252937 + + + + +0.0378272049 +3.4499621391 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.1121340841 +3.3889446259 + + + + +0.1514308751 +3.4341077805 + + + + +0.1121340841 +3.3889446259 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0219043028 +3.6834201813 + + + + +0.0612010956 +3.7285835743 + + + + +0.0219043028 +3.6834201813 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.2474787533 +3.5322029591 + + + + +0.2867755294 +3.5773663521 + + + + +0.2474787533 +3.5322029591 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.1917485893 +3.3624153137 + + + + +0.2310453802 +3.4075784683 + + + + +0.1917485893 +3.3624153137 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.3111703694 +3.5083265305 + + + + +0.3504671454 +3.5534899235 + + + + +0.3111703694 +3.5083265305 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.2819783688 +3.3571093082 + + + + +0.3212751746 +3.4022727013 + + + + +0.2819783688 +3.3571093082 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.0119903022 +2.2637562752 + + + + +0.0273064915 +2.3089194298 + + + + +-0.0119903022 +2.2637562752 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.1052341536 +2.3655486107 + + + + +0.1445309520 +2.4107117653 + + + + +0.1052341536 +2.3655486107 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.1880332530 +2.1978831291 + + + + +0.2273300439 +2.2430462837 + + + + +0.1880332530 +2.1978831291 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0479117110 +2.0026271343 + + + + +0.0872085020 +2.0477905273 + + + + +0.0479117110 +2.0026271343 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0564039238 +2.0535635948 + + + + +0.0957007185 +2.0987267494 + + + + +0.0564039238 +2.0535635948 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.1328338534 +2.1469466686 + + + + +0.1721306443 +2.1921100616 + + + + +0.1328338534 +2.1469466686 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0606500320 +2.1469466686 + + + + +0.0999468267 +2.1921100616 + + + + +0.0606500320 +2.1469466686 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0967419446 +2.3040003777 + + + + +0.1360387355 +2.3491637707 + + + + +0.0967419446 +2.3040003777 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.1413260698 +2.2106173038 + + + + +0.1806228608 +2.2557804585 + + + + +0.1413260698 +2.2106173038 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.3114847243 +2.3189399242 + + + + +0.3507815301 +2.3641030788 + + + + +0.3114847243 +2.3189399242 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.3963831365 +2.3529028893 + + + + +0.4356799126 +2.3980660439 + + + + +0.3963831365 +2.3529028893 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.4626038969 +2.3376195431 + + + + +0.5019006729 +2.3827826977 + + + + +0.4626038969 +2.3376195431 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.4609059095 +2.2460958958 + + + + +0.5002027154 +2.2912590504 + + + + +0.4609059095 +2.2460958958 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.4795835614 +2.1577920914 + + + + +0.5188803673 +2.2029552460 + + + + +0.4795835614 +2.1577920914 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.4897713661 +2.0253365040 + + + + +0.5290681720 +2.0704996586 + + + + +0.4897713661 +2.0253365040 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.5542941689 +1.9930716753 + + + + +0.5935909152 +2.0382349491 + + + + +0.5542941689 +1.9930716753 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.5169388652 +1.9319382906 + + + + +0.5562356710 +1.9771015644 + + + + +0.5169388652 +1.9319382906 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.3033468127 +2.0175588131 + + + + +0.3426435888 +2.0627219677 + + + + +0.3033468127 +2.0175588131 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.3963831365 +2.3529028893 + + + + +0.4356799126 +2.3980660439 + + + + +0.3963831365 +2.3529028893 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.3420481682 +2.1221311092 + + + + +0.3813449442 +2.1672942638 + + + + +0.3420481682 +2.1221311092 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.4065709412 +2.0677902699 + + + + +0.4458677471 +2.1129534245 + + + + +0.4065709412 +2.0677902699 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.3963831365 +2.1917550564 + + + + +0.4356799126 +2.2369184494 + + + + +0.3963831365 +2.1917550564 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.3165786266 +2.3817713261 + + + + +0.3558754325 +2.4269344807 + + + + +0.3165786266 +2.3817713261 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.4439262450 +2.4038472176 + + + + +0.4832230210 +2.4490106106 + + + + +0.4439262450 +2.4038472176 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.3369542658 +2.3359212875 + + + + +0.3762510419 +2.3810844421 + + + + +0.3369542658 +2.3359212875 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.2792233527 +2.2925708294 + + + + +0.3185201287 +2.3377339840 + + + + +0.2792233527 +2.2925708294 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.2062107325 +2.3291287422 + + + + +0.2455075234 +2.3742918968 + + + + +0.2062107325 +2.3291287422 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.2724314630 +2.3749787807 + + + + +0.3117282689 +2.4201419353 + + + + +0.2724314630 +2.3749787807 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.2809213102 +2.3953566551 + + + + +0.3202181160 +2.4405198097 + + + + +0.2809213102 +2.3953566551 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.3267664611 +2.3427138329 + + + + +0.3660632372 +2.3878772259 + + + + +0.3267664611 +2.3427138329 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.3454440832 +2.4310176373 + + + + +0.3847408891 +2.4761807919 + + + + +0.3454440832 +2.4310176373 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.2524077594 +2.2077515125 + + + + +0.2917045653 +2.2529146671 + + + + +0.2524077594 +2.2077515125 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.2439179271 +2.0362384319 + + + + +0.2832147181 +2.0814018250 + + + + +0.2439179271 +2.0362384319 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.2371260524 +1.9937847853 + + + + +0.2764228582 +2.0389480591 + + + + +0.2371260524 +1.9937847853 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.2693874538 +1.9224625826 + + + + +0.3086842299 +1.9676257372 + + + + +0.2693874538 +1.9224625826 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.2727833986 +1.8545365334 + + + + +0.3120801747 +1.8996998072 + + + + +0.2727833986 +1.8545365334 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.3118366599 +1.8392531872 + + + + +0.3511334360 +1.8844164610 + + + + +0.3118366599 +1.8392531872 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.3457960188 +1.9122736454 + + + + +0.3850927949 +1.9574368000 + + + + +0.3457960188 +1.9122736454 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.3848492801 +1.9241607189 + + + + +0.4241460562 +1.9693238735 + + + + +0.3848492801 +1.9241607189 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.4272984564 +2.0311441422 + + + + +0.4665952623 +2.0763072968 + + + + +0.4272984564 +2.0311441422 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.3593797386 +2.3537924290 + + + + +0.3986765444 +2.3989555836 + + + + +0.3593797386 +2.3537924290 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.0191459842 +3.3337061405 + + + + +0.0201508105 +3.3788692951 + + + + +-0.0191459842 +3.3337061405 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0954989120 +3.3188498020 + + + + +0.1347957104 +3.3640129566 + + + + +0.0954989120 +3.3188498020 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.0000385010 +3.2785251141 + + + + +0.0392582938 +3.3236882687 + + + + +-0.0000385010 +3.2785251141 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0827605873 +3.2827699184 + + + + +0.1220573857 +3.3279330730 + + + + +0.0827605873 +3.2827699184 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0296842493 +3.2127323151 + + + + +0.0689810440 +3.2578957081 + + + + +0.0296842493 +3.2127323151 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.2170766592 +3.2944433689 + + + + +0.2563734651 +3.3396065235 + + + + +0.2170766592 +3.2944433689 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.1260520071 +3.2740681171 + + + + +0.1653487980 +3.3192312717 + + + + +0.1260520071 +3.2740681171 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.1668093204 +3.1966423988 + + + + +0.2061061114 +3.2418055534 + + + + +0.1668093204 +3.1966423988 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.1708850414 +3.1667587757 + + + + +0.2101818472 +3.2119221687 + + + + +0.1708850414 +3.1667587757 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.1260520071 +3.2740681171 + + + + +0.1653487980 +3.3192312717 + + + + +0.1260520071 +3.2740681171 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.2401724756 +3.2183759212 + + + + +0.2794692516 +3.2635390759 + + + + +0.2401724756 +3.2183759212 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.6112290621 +2.6339259148 + + + + +-0.5719322562 +2.6790890694 + + + + +-0.6112290621 +2.6339259148 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.7107689977 +2.5344119072 + + + + +-0.6714721918 +2.5795750618 + + + + +-0.7107689977 +2.5344119072 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.7356539369 +2.7458789349 + + + + +-0.6963571310 +2.7910423279 + + + + +-0.7356539369 +2.7458789349 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.3628056645 +2.5349779129 + + + + +0.4021024406 +2.5801410675 + + + + +0.3628056645 +2.5349779129 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.3224676549 +2.5073873997 + + + + +0.3617644310 +2.5525505543 + + + + +0.3224676549 +2.5073873997 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.2715143561 +2.6326057911 + + + + +0.3108111620 +2.6777691841 + + + + +0.2715143561 +2.6326057911 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.5297386646 +1.3673791885 + + + + +-0.4816431701 +1.4089561701 + + + + +-0.5297386646 +1.3673791885 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.3210265934 +1.4569084644 + + + + +-0.2664684355 +1.5040723085 + + + + +-0.3210265934 +1.4569084644 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.1234726161 +1.6596155167 + + + + +0.1683161110 +1.6983813047 + + + + +0.1234726161 +1.6596155167 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.5247297287 +1.7254083157 + + + + +0.5546984076 +1.7513152361 + + + + +0.5247297287 +1.7254083157 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.5119914412 +1.5280300379 + + + + +0.5461785197 +1.5575836897 + + + + +0.5119914412 +1.5280300379 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.5820521712 +1.5046842098 + + + + +0.6136667728 +1.5320140123 + + + + +0.5820521712 +1.5046842098 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.6138979793 +1.3879550695 + + + + +0.6451584697 +1.4149788618 + + + + +0.6138979793 +1.3879550695 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.5510753989 +1.3146651983 + + + + +0.5852674246 +1.3442231417 + + + + +0.5510753989 +1.3146651983 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.4088308215 +1.4059261084 + + + + +0.4486930072 +1.4403858185 + + + + +0.4088308215 +1.4059261084 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0840036198 +1.2785853148 + + + + +0.1382823437 +1.3255076408 + + + + +0.0840036198 +1.2785853148 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.2726693749 +1.0111696720 + + + + +-0.2213673145 +1.0555186272 + + + + +-0.2726693749 +1.0111696720 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.3830681741 +0.7850248814 + + + + +-0.3425857723 +0.8200206161 + + + + +-0.3830681741 +0.7850248814 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.5062052608 +0.6555616856 + + + + +-0.4730792642 +0.6841980815 + + + + +-0.5062052608 +0.6555616856 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.6526959538 +0.7064980268 + + + + +-0.6213471889 +0.7335981131 + + + + +-0.6526959538 +0.7064980268 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.7291259170 +0.9314668179 + + + + +-0.6938561201 +0.9619564414 + + + + +-0.7291259170 +0.9314668179 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.5227167010 +1.1415791512 + + + + +-0.4753499329 +1.1825262308 + + + + +-0.5227167010 +1.1415791512 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.6714519262 +1.3575866222 + + + + +-0.6293211579 +1.3940073252 + + + + +-0.6714519262 +1.3575866222 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.6714519262 +1.3575866222 + + + + +-0.6293211579 +1.3940073252 + + + + +-0.6714519262 +1.3575866222 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.1087212414 +1.6060607433 + + + + +-0.0576810203 +1.6501834393 + + + + +-0.1087212414 +1.6060607433 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.0322913155 +1.4086824656 + + + + +0.0251006335 +1.4582959414 + + + + +-0.0322913155 +1.4086824656 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.5297386646 +1.3673791885 + + + + +-0.4816431701 +1.4089561701 + + + + +-0.5297386646 +1.3673791885 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.4367122352 +1.4282342196 + + + + +-0.3855961561 +1.4724224806 + + + + +-0.4367122352 +1.4282342196 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.5590109825 +1.0318455696 + + + + +-0.5152465105 +1.0696786642 + + + + +-0.5590109825 +1.0318455696 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.5399909616 +0.9978869557 + + + + +-0.4964043796 +1.0355662107 + + + + +-0.5399909616 +0.9978869557 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.1541550756 +1.2953646183 + + + + +-0.0896016434 +1.3511689901 + + + + +-0.1541550756 +1.2953646183 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.1312047392 +1.5072547197 + + + + +0.1804621965 +1.5498362780 + + + + +0.1312047392 +1.5072547197 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.5119914412 +1.5280300379 + + + + +0.5461785197 +1.5575836897 + + + + +0.5119914412 +1.5280300379 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.5204663873 +1.1258478165 + + + + +-0.4732835591 +1.1666358709 + + + + +-0.5204663873 +1.1258478165 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.4927959442 +1.0753821135 + + + + +-0.4456211030 +1.1161632538 + + + + +-0.4927959442 +1.0753821135 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.4312273860 +1.1199513674 + + + + +-0.3807866871 +1.1635558605 + + + + +-0.4312273860 +1.1199513674 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.1934453845 +1.3130849600 + + + + +-0.1307468563 +1.3672858477 + + + + +-0.1934453845 +1.3130849600 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.4106788635 +2.0827343464 + + + + +0.4499756694 +2.1278975010 + + + + +0.4106788635 +2.0827343464 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.4276632965 +1.9957181215 + + + + +0.4669601023 +2.0408813953 + + + + +0.4276632965 +1.9957181215 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.4382785559 +1.9320477247 + + + + +0.4775753617 +1.9772108793 + + + + +0.4382785559 +1.9320477247 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.3958174884 +1.9044572115 + + + + +0.4351142943 +1.9496203661 + + + + +0.3958174884 +1.9044572115 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.3172644973 +1.9469040632 + + + + +0.3565613031 +1.9920673370 + + + + +0.3172644973 +1.9469040632 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.2620651126 +1.8620102406 + + + + +0.3013619184 +1.9071735144 + + + + +0.2620651126 +1.8620102406 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.1983735114 +1.9108241796 + + + + +0.2376703024 +1.9559874535 + + + + +0.1983735114 +1.9108241796 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.2323423624 +2.1315484047 + + + + +0.2716391683 +2.1767115593 + + + + +0.2323423624 +2.1315484047 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.2684342861 +2.3246817589 + + + + +0.3077310622 +2.3698451519 + + + + +0.2684342861 +2.3246817589 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.2132348865 +2.2482774258 + + + + +0.2525316775 +2.2934405804 + + + + +0.2132348865 +2.2482774258 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.2832956612 +2.2037081718 + + + + +0.3225924373 +2.2488713264 + + + + +0.2832956612 +2.2037081718 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.3427411616 +2.2801125050 + + + + +0.3820379376 +2.3252758980 + + + + +0.3427411616 +2.2801125050 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.444580 +0.402832 +0.000000 +1.000000 + + +0.872559 +0.654785 +0.258057 +1.000000 + + +0.350098 +0.082825 +0.000000 +1.000000 + + +0.377197 +0.210938 +0.054535 +1.000000 + + + + + + + + +-0.5280247331 +3.3762998581 + + + + +-0.4887279570 +3.4214632511 + + + + +-0.5280247331 +3.3762998581 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.4324873388 +3.2754883766 + + + + +-0.3931905627 +3.3206517696 + + + + +-0.4324873388 +3.2754883766 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.5970240235 +3.3365058899 + + + + +-0.5577272177 +3.3816690445 + + + + +-0.5970240235 +3.3365058899 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.9260973334 +3.2171239853 + + + + +-0.8868005276 +3.2622871399 + + + + +-0.9260973334 +3.2171239853 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.7404149771 +3.1910600662 + + + + +-0.7011181712 +3.2362232208 + + + + +-0.7404149771 +3.1910600662 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.5838397145 +3.1300425529 + + + + +-0.5445429683 +3.1752057076 + + + + +-0.5838397145 +3.1300425529 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.7749145627 +3.0451486111 + + + + +-0.7356177568 +3.0903120041 + + + + +-0.7749145627 +3.0451486111 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.0373879671 +2.9310724735 + + + + +-0.9980911613 +2.9762358665 + + + + +-1.0373879671 +2.9310724735 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.0039765835 +2.8549101353 + + + + +-0.9646797776 +2.9000732899 + + + + +-1.0039765835 +2.8549101353 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.6982568502 +2.9376816750 + + + + +-0.6589600444 +2.9828448296 + + + + +-0.6982568502 +2.9376816750 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.1476564407 +2.8237450123 + + + + +-0.1083596498 +2.8689084053 + + + + +-0.1476564407 +2.8237450123 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.1920321435 +2.5018093586 + + + + +0.2313289344 +2.5469725132 + + + + +0.1920321435 +2.5018093586 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.2955310047 +2.3028392792 + + + + +0.3348277807 +2.3480024338 + + + + +0.2955310047 +2.3028392792 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.5741817951 +2.5362973213 + + + + +0.6134786010 +2.5814607143 + + + + +0.5741817951 +2.5362973213 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.5377675295 +3.7035415173 + + + + +-0.4984707534 +3.7487049103 + + + + +-0.5377675295 +3.7035415173 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.7704406381 +2.7954843044 + + + + +-0.7311438322 +2.8406476974 + + + + +-0.7704406381 +2.7954843044 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.9041930437 +2.8633995056 + + + + +-0.8648962379 +2.9085626602 + + + + +-0.9041930437 +2.8633995056 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.7407178879 +2.8782558441 + + + + +-0.7014210820 +2.9234192371 + + + + +-0.7407178879 +2.8782558441 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.7442051172 +2.4802937508 + + + + +-0.7049083710 +2.5254571438 + + + + +-0.7442051172 +2.4802937508 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.3448268473 +2.9000091553 + + + + +-0.3055300415 +2.9451725483 + + + + +-0.3448268473 +2.9000091553 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.2412737906 +2.8844642639 + + + + +0.2805705965 +2.9296274185 + + + + +0.2412737906 +2.8844642639 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.2827676237 +2.5217471123 + + + + +0.3220644295 +2.5669105053 + + + + +0.2827676237 +2.5217471123 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0182443466 +1.9932166338 + + + + +0.0575411394 +2.0383799076 + + + + +0.0182443466 +1.9932166338 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.1494245827 +1.5023921728 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.0562162772 +1.4327468872 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.1711621284 +1.8233784437 + + + + +-0.1318653375 +1.8685415983 + + + + +-0.1711621284 +1.8233784437 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.7105821967 +1.6731098890 + + + + +-0.6712853909 +1.7182731628 + + + + +-0.7105821967 +1.6731098890 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.9451154470 +1.8771502972 + + + + +-0.9058187008 +1.9223134518 + + + + +-0.9451154470 +1.8771502972 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.7493918538 +2.0864868164 + + + + +-0.7100951076 +2.1316499710 + + + + +-0.7493918538 +2.0864868164 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.6940691471 +2.2025382519 + + + + +-0.6547723413 +2.2477014065 + + + + +-0.6940691471 +2.2025382519 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.8066585660 +2.2000172138 + + + + +-0.7673617601 +2.2451803684 + + + + +-0.8066585660 +2.2000172138 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.7407763600 +2.3192672729 + + + + +-0.7014795542 +2.3644304276 + + + + +-0.7407763600 +2.3192672729 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.6409928203 +2.2662086487 + + + + +-0.6016960144 +2.3113718033 + + + + +-0.6409928203 +2.2662086487 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.8577296734 +2.5760915279 + + + + +-0.8184328675 +2.6212549210 + + + + +-0.8577296734 +2.5760915279 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.6183161736 +2.9276084900 + + + + +-0.5790193677 +2.9727716446 + + + + +-0.6183161736 +2.9276084900 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.5639812350 +2.9123251438 + + + + +-0.5246844292 +2.9574882984 + + + + +-0.5639812350 +2.9123251438 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.6998186707 +2.6321306229 + + + + +-0.6605218649 +2.6772937775 + + + + +-0.6998186707 +2.6321306229 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.6013364792 +2.5421285629 + + + + +-0.5620397329 +2.5872919559 + + + + +-0.6013364792 +2.5421285629 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.5554913878 +2.8511917591 + + + + +-0.5161945820 +2.8963549137 + + + + +-0.5554913878 +2.8511917591 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.5673771501 +2.4045786858 + + + + +-0.5280803442 +2.4497418404 + + + + +-0.5673771501 +2.4045786858 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.9069707394 +2.4096729755 + + + + +-0.8676739335 +2.4548363686 + + + + +-0.9069707394 +2.4096729755 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.2912412584 +2.5164608955 + + + + +-0.2519444823 +2.5616240501 + + + + +-0.2912412584 +2.5164608955 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.2317957729 +2.8921163082 + + + + +-0.1924989820 +2.9372794628 + + + + +-0.2317957729 +2.8921163082 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.1086586565 +2.8242011070 + + + + +-0.0693618655 +2.8693645000 + + + + +-0.1086586565 +2.8242011070 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.2317957729 +2.2299442291 + + + + +-0.1924989820 +2.2751073837 + + + + +-0.2317957729 +2.2299442291 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0548164696 +2.6735146046 + + + + +0.0941132605 +2.7186777592 + + + + +0.0548164696 +2.6735146046 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.2628757358 +2.5058491230 + + + + +0.3021725118 +2.5510125160 + + + + +0.2628757358 +2.5058491230 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.2445340902 +2.1301939487 + + + + +-0.2052372992 +2.1753571033 + + + + +-0.2445340902 +2.1301939487 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.1726420969 +3.3369960785 + + + + +-0.1333453059 +3.3821592331 + + + + +-0.1726420969 +3.3369960785 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.4342102706 +2.7956027985 + + + + +0.4735070467 +2.8407661915 + + + + +0.4342102706 +2.7956027985 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.6532381177 +2.9920859337 + + + + +0.6925349236 +3.0372490883 + + + + +0.6532381177 +2.9920859337 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.0512527227 +2.7831499577 + + + + +1.0905494690 +2.8283133507 + + + + +1.0512527227 +2.7831499577 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.4455385208 +3.0039601326 + + + + +1.4848353863 +3.0491235256 + + + + +1.4455385208 +3.0039601326 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.3451150656 +3.6615710258 + + + + +0.3844118714 +3.7067341805 + + + + +0.3451150656 +3.6615710258 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.1801055372 +3.3477075100 + + + + +0.2194023281 +3.3928709030 + + + + +0.1801055372 +3.3477075100 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.1394742131 +3.3664076328 + + + + +0.1787710190 +3.4115707874 + + + + +0.1394742131 +3.3664076328 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.2600864172 +3.6842758656 + + + + +0.2993831933 +3.7294390202 + + + + +0.2600864172 +3.6842758656 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.6852201223 +3.7166719437 + + + + +1.7245168686 +3.7618350983 + + + + +1.6852201223 +3.7166719437 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.7912726402 +1.6757248640 + + + + +0.8305693865 +1.7208881378 + + + + +0.7912726402 +1.6757248640 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.4313515723 +2.3001711369 + + + + +-0.3920547664 +2.3453345299 + + + + +-0.4313515723 +2.3001711369 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.5319658518 +1.3661562204 + + + + +-0.4839546978 +1.4076603651 + + + + +-0.5319658518 +1.3661562204 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.2865235507 +1.5651427507 + + + + +-0.2349024117 +1.6097676754 + + + + +-0.2865235507 +1.5651427507 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.0875162557 +1.6978005171 + + + + +-0.0405177362 +1.7384293079 + + + + +-0.0875162557 +1.6978005171 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.0079133417 +1.5253454447 + + + + +0.0449111797 +1.5710105896 + + + + +-0.0079133417 +1.5253454447 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.6745877266 +1.2857761383 + + + + +-0.6324352622 +1.3222156763 + + + + +-0.6745877266 +1.2857761383 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.3661264479 +1.3023583889 + + + + +-0.3107002974 +1.3502725363 + + + + +-0.3661264479 +1.3023583889 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.5186986923 +1.1464855671 + + + + +-0.4710915387 +1.1876404285 + + + + +-0.5186986923 +1.1464855671 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.8072592616 +1.0834730864 + + + + +-0.7722548246 +1.1137334108 + + + + +-0.8072592616 +1.0834730864 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.6944884658 +0.8712207675 + + + + +-0.6594970226 +0.9014697671 + + + + +-0.6944884658 +0.8712207675 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.4357790053 +0.9110181332 + + + + +-0.3917312324 +0.9490960240 + + + + +-0.4357790053 +0.9110181332 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.0410812236 +1.2559281588 + + + + +0.0183185376 +1.3072773218 + + + + +-0.0410812236 +1.2559281588 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.2740136385 +1.4250667095 + + + + +0.3193137050 +1.4642271996 + + + + +0.2740136385 +1.4250667095 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.3105292022 +1.5361121893 + + + + +0.3525601327 +1.5724467039 + + + + +0.3105292022 +1.5361121893 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.0576651618 +1.3753200769 + + + + +0.0014953747 +1.4264625311 + + + + +-0.0576651618 +1.3753200769 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.2997906804 +1.1697006226 + + + + +-0.2435154617 +1.2183488607 + + + + +-0.2997906804 +1.1697006226 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.5585001707 +0.9939291477 + + + + +-0.5156512856 +1.0309706926 + + + + +-0.5585001707 +0.9939291477 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.4954811931 +1.0702073574 + + + + +-0.4485250115 +1.1107994318 + + + + +-0.4954811931 +1.0702073574 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.3196914196 +1.2194472551 + + + + +-0.2629753947 +1.2684764862 + + + + +-0.3196914196 +1.2194472551 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0252545383 +1.4814462662 + + + + +0.0786839351 +1.5276342630 + + + + +0.0252545383 +1.4814462662 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.3436661959 +1.6671670675 + + + + +0.3814798892 +1.6998558044 + + + + +0.3436661959 +1.6671670675 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.4730209410 +1.8363056183 + + + + +0.5019308925 +1.8612973690 + + + + +0.4730209410 +1.8363056183 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.3429089487 +1.8727865219 + + + + +-0.3044992089 +1.9059904814 + + + + +-0.3429089487 +1.8727865219 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.5195475817 +2.6287400723 + + + + +-0.4802507758 +2.6739032269 + + + + +-0.5195475817 +2.6287400723 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.3866714835 +2.6257624626 + + + + +-0.3473747075 +2.6709256172 + + + + +-0.3866714835 +2.6257624626 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.3612298071 +2.4982886314 + + + + +-0.3219330013 +2.5434517860 + + + + +-0.3612298071 +2.4982886314 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.6675335169 +1.9666893482 + + + + +-0.6282367110 +2.0118525028 + + + + +-0.6675335169 +1.9666893482 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.6356877089 +1.9518328905 + + + + +-0.5963909030 +1.9969961643 + + + + +-0.6356877089 +1.9518328905 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.3424060047 +2.3465893269 + + + + +-0.3031091988 +2.3917527199 + + + + +-0.3424060047 +2.3465893269 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.2617299557 +2.1725568771 + + + + +-0.2224331796 +2.2177202702 + + + + +-0.2617299557 +2.1725568771 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.3041910529 +2.3635683060 + + + + +-0.2648942471 +2.4087314606 + + + + +-0.3041910529 +2.3635683060 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.2298841625 +2.2065145969 + + + + +-0.1905873716 +2.2516777515 + + + + +-0.2298841625 +2.2065145969 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.2702221870 +2.3826692104 + + + + +-0.2309253812 +2.4278326035 + + + + +-0.2702221870 +2.3826692104 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.2065305710 +2.2510838509 + + + + +-0.1672337800 +2.2962470055 + + + + +-0.2065305710 +2.2510838509 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.3593904376 +2.2765519619 + + + + +-0.3200936317 +2.3217151165 + + + + +-0.3593904376 +2.2765519619 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.1980383545 +2.3847916126 + + + + +-0.1587415636 +2.4299550056 + + + + +-0.1980383545 +2.3847916126 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.3211754560 +2.2701849937 + + + + +-0.2818786800 +2.3153481483 + + + + +-0.3211754560 +2.2701849937 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.2192688882 +2.3423447609 + + + + +-0.1799720973 +2.3875079155 + + + + +-0.2192688882 +2.3423447609 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.3041910529 +2.2404720783 + + + + +-0.2648942471 +2.2856352329 + + + + +-0.3041910529 +2.2404720783 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.2150227875 +2.2956531048 + + + + +-0.1757259965 +2.3408162594 + + + + +-0.2150227875 +2.2956531048 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.2848578393 +1.4174782038 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.5183937550 +1.3555136919 + + + + +0.5538880825 +1.3861974478 + + + + +0.5183937550 +1.3555136919 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.5449318886 +0.8969326615 + + + + +0.5516808629 +0.8960226178 + + + + +0.5449318886 +0.8969326615 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.5767776966 +0.3180226088 + + + + +0.5982826948 +0.3151227534 + + + + +0.5767776966 +0.3180226088 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.6908918619 +-0.1451995820 + + + + +0.7306646109 +-0.1504160166 + + + + +0.6908918619 +-0.1451995820 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.4838941097 +-0.3343166709 + + + + +0.5383639336 +-0.3413516283 + + + + +0.4838941097 +-0.3343166709 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.2668527961 +-0.2404821664 + + + + +0.3125697374 +-0.2463860214 + + + + +0.2668527961 +-0.2404821664 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0672448352 +-0.3634989262 + + + + +0.1122403517 +-0.3692349792 + + + + +0.0672448352 +-0.3634989262 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.0972918198 +-0.0504527949 + + + + +-0.0712464079 +-0.0538689569 + + + + +-0.0972918198 +-0.0504527949 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.0097158570 +0.3946753144 + + + + +0.0053472053 +0.3926441371 + + + + +-0.0097158570 +0.3946753144 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0194761306 +0.9050797224 + + + + +0.0234472994 +0.9045442343 + + + + +0.0194761306 +0.9050797224 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.4759326577 +-0.0783115327 + + + + +0.5150528550 +-0.0834484771 + + + + +0.4759326577 +-0.0783115327 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.5900467634 +-0.4815574288 + + + + +0.6452236176 +-0.4886103570 + + + + +0.5900467634 +-0.4815574288 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.3034345508 +-0.5770630240 + + + + +0.3605164886 +-0.5842689276 + + + + +0.3034345508 +-0.5770630240 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0141684962 +-0.4921691418 + + + + +0.0615136661 +-0.4981450438 + + + + +0.0141684962 +-0.4921691418 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0645910203 +-0.0995350033 + + + + +0.0980760828 +-0.1038974822 + + + + +0.0645910203 +-0.0995350033 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0473441780 +-1.0368403196 + + + + +0.1058565080 +-1.0439703465 + + + + +0.0473441780 +-1.0368403196 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.1256288141 +-0.7419272661 + + + + +0.1821994334 +-0.7489618659 + + + + +0.1256288141 +-0.7419272661 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.1256288141 +-0.4806103706 + + + + +0.1762793213 +-0.4870226979 + + + + +0.1256288141 +-0.4806103706 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.3618185222 +-0.5044867396 + + + + +0.4183701575 +-0.5116738677 + + + + +0.3618185222 +-0.5044867396 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.3591647148 +-0.6716215611 + + + + +0.4182786942 +-0.6790400743 + + + + +0.3591647148 +-0.6716215611 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.4202024937 +-0.7842932940 + + + + +0.4806852043 +-0.7918283939 + + + + +0.4202024937 +-0.7842932940 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.4255101383 +-0.9620398283 + + + + +0.4877724349 +-0.9696998596 + + + + +0.4255101383 +-0.9620398283 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.3886678815 +-1.1614351273 + + + + +0.4530772567 +-1.1692503691 + + + + +0.3886678815 +-1.1614351273 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.3886678815 +-1.1614351273 + + + + +0.4530772567 +-1.1692503691 + + + + +0.3886678815 +-1.1614351273 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.3883566856 +-1.2220273018 + + + + +0.4530733228 +-1.2298499346 + + + + +0.3883566856 +-1.2220273018 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.4493944943 +-1.3971209526 + + + + +0.5096963644 +-1.4043492079 + + + + +0.4493944943 +-1.3971209526 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.4016257823 +-1.4316090345 + + + + +0.4622357786 +-1.4388558865 + + + + +0.4016257823 +-1.4316090345 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.2928192914 +-1.2618212700 + + + + +0.3592009544 +-1.2698127031 + + + + +0.2928192914 +-1.2618212700 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.2848578393 +-1.1477451324 + + + + +0.3498536944 +-1.1556265354 + + + + +0.2848578393 +-1.1477451324 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0473441780 +-1.0349199772 + + + + +0.1058381945 +-1.0420485735 + + + + +0.0473441780 +-1.0349199772 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.3869377673 +-1.1571867466 + + + + +0.4513460994 +-1.1650036573 + + + + +0.3869377673 +-1.1571867466 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.2086511254 +-1.1537903547 + + + + +0.2728820741 +-1.1615700722 + + + + +0.2086511254 +-1.1537903547 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0999811813 +-1.1011477709 + + + + +0.1608420163 +-1.1085376740 + + + + +0.0999811813 +-1.1011477709 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0116868503 +-1.1758663654 + + + + +0.0695273206 +-1.1828539371 + + + + +0.0116868503 +-1.1758663654 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.0052928291 +-1.1215255260 + + + + +0.0517439954 +-1.1284371614 + + + + +-0.0052928291 +-1.1215255260 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0728136972 +-0.9890699983 + + + + +0.1316582263 +-0.9962638021 + + + + +0.0728136972 +-0.9890699983 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.6603384018 +-3.0914909840 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.8142597675 +-3.1525084972 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.8009907007 +-3.3700489998 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.9389891624 +-3.4867780209 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.0716800690 +-3.4257605076 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.0929105282 +-3.6406481266 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.2755348682 +-3.6724834442 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.8933852315 +-3.6326894760 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.5657385588 +-3.5239191055 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.1942041814 +-3.5928952694 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.2375598848 +-3.7563269138 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.4206683338 +-3.6088130474 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.1154793873 +-3.1657731533 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.3400436044 +-3.1496720314 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.5321286321 +-3.2347493172 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.6250122786 +-2.3964223862 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.5931664705 +-0.9320031404 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.4843599498 +0.4957691431 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.1128255725 +1.2918432951 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.2394094020 +1.3823747635 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.1919301301 +0.9387081861 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.3370924592 +0.3789419830 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.3661249280 +-0.3450443447 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.3453874588 +-1.4277921915 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.2334050834 +-2.5359978676 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.0758002549 +-2.9050288200 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.1315745264 +-2.9164566994 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.1469659507 +-3.0435440540 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.4592266679 +-3.0850625038 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.4008818269 +-3.2345552444 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.5241365433 +-3.2931139469 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.7444033623 +-3.2612786293 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.9593625069 +-3.4814722538 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.2884358168 +-3.3541314602 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.4347639084 +-3.4310665131 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.6682997942 +-3.3965783119 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.6895303726 +-3.2427082062 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.4173369706 +-0.2285335809 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.1168963313 +-0.2751686275 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.3502992392 +-0.1663535088 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.5785154104 +-0.2337152511 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.6845774055 +-0.0446704589 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.5386174917 +0.1330760866 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.4191957116 +0.6864979863 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.3475426435 +1.0499498844 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.2097589225 +1.4493134022 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.4671791792 +1.4493134022 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.554688 +0.371826 +0.109070 +1.000000 + + + + + + +-0.8393781185 +-0.0500893407 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.4565521777 +0.8927114606 + + + + +-0.4136697948 +0.9297819138 + + + + +-0.4565521777 +0.8927114606 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.1911124587 +1.4110134840 + + + + +-0.1317840070 +1.4623010159 + + + + +-0.1911124587 +1.4110134840 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.4109297097 +0.8678329587 + + + + +-0.3678388000 +0.9050837159 + + + + +-0.4109297097 +0.8678329587 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.7850304246 +-0.0684060231 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.8529491425 +-0.0531226844 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.7629568577 +-0.0616134293 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.7799365520 +-0.1702949554 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.8495532274 +-0.1787856966 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.8104999661 +-0.0887838081 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.8121979237 +-0.1380301267 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.9208208919 +-1.0138497353 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.8876529932 +-0.4168900847 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.8379011750 +-0.0354991741 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.5944623351 +0.0488678962 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.2408793420 +0.1037914231 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.1844939440 +-0.8679262996 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.6952793002 +-1.1199759245 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.4691375196 +-0.1332653016 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.5501686335 +-0.7325909734 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.5013434887 +-1.0105947256 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.5635559559 +-1.8585873842 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.3779255450 +-1.9124908447 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.5189403892 +-0.1268288493 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.3128828108 +1.4466056824 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.1383627951 +0.9336201549 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.2899870276 +-0.0239234604 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.6041134596 +-0.0450498909 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.2130263448 +1.0036206245 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.2620069087 +1.4599251747 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.2456914037 +-1.8612965345 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.3104702234 +-2.1787772179 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.3064068854 +-2.3452754021 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.0151704391 +-2.3556387424 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.0976362601 +-1.9196093082 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0428059138 +-1.8376159668 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.1075847149 +-2.1550965309 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.1075847149 +-2.4725773335 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.2227871865 +-2.3559517860 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.3005217612 +-1.8959287405 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.3235046566 +-2.1514852047 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.1807245612 +-2.1049573421 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.2095900178 +-2.3477926254 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.1535570621 +-2.4445869923 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.1655170321 +-2.5848717690 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.1493098289 +-2.8066189289 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.1493098289 +-3.0595502853 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.7631391883 +-3.2668712139 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-1.0700538158 +-3.1922357082 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.9580714703 +-2.9973542690 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.6846848130 +-2.8941664696 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.3774220943 +-2.7029585838 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.2903246880 +-2.5495412350 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.3235046566 +-2.2924633026 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.1324651837 +-2.2625679970 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.0794806778 +-2.2068760395 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.0957836062 +-2.2324676514 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0523012877 +-2.2379009724 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0781142488 +-2.3003849983 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.3566225171 +-2.2582762241 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.3525468111 +-2.2229592800 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.3593396842 +-2.1890006065 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.4068898857 +-2.2351844311 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.4014555812 +-2.3454272747 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.3226580918 +-2.4744699001 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.0998593345 +-2.4391529560 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.128296 +0.055023 +0.000000 +1.000000 + + + + + + +-0.4237516820 +-3.7095303535 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.6519799232 +-3.5689249039 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.6493261456 +-3.4946427345 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.5564425588 +-3.5503542423 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.2326768637 +-3.5901482105 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.2503178418 +-3.4256665707 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.4705846608 +-3.3381197453 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.4865075648 +-3.4097487926 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.1892800480 +-3.5423955917 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.1212165430 +-3.6750421524 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.2844768763 +-0.0405731127 + + + + +0.3197966516 +-0.0452121794 + + + + +0.2844768763 +-0.0405731127 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0893523321 +-0.1721853763 + + + + +0.1270747930 +-0.1770673692 + + + + +0.0893523321 +-0.1721853763 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0914753824 +-0.2422228158 + + + + +0.1324337423 +-0.2474934310 + + + + +0.0914753824 +-0.2422228158 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.2315969169 +-0.1382278353 + + + + +0.2713433802 +-0.1433971524 + + + + +0.2315969169 +-0.1382278353 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.5081360340 +-0.0166344941 + + + + +0.5432937741 +-0.0212825350 + + + + +0.5081360340 +-0.0166344941 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.5819007754 +-0.0660680458 + + + + +0.6194217801 +-0.0710119233 + + + + +0.5819007754 +-0.0660680458 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0914753824 +0.2405569404 + + + + +0.1112424284 +0.2378914505 + + + + +0.0914753824 +0.2405569404 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.1148289740 +0.0983597115 + + + + +0.1390220225 +0.0951201618 + + + + +0.1148289740 +0.0983597115 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0341529362 +0.2914932668 + + + + +0.0519942194 +0.2890874445 + + + + +0.0341529362 +0.2914932668 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0638756901 +-0.0332257859 + + + + +0.0939739272 +-0.0371765792 + + + + +0.0638756901 +-0.0332257859 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.0168003496 +0.2426792979 + + + + +0.0011376030 +0.2402604520 + + + + +-0.0168003496 +0.2426792979 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0256607234 +-0.0374704786 + + + + +0.0549073778 +-0.0413079523 + + + + +0.0256607234 +-0.0374704786 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.0635075271 +0.1683971584 + + + + +-0.0451221168 +0.1659179777 + + + + +-0.0635075271 +0.1683971584 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.0252925642 +0.0155881895 + + + + +-0.0002381326 +0.0122734793 + + + + +-0.0252925642 +0.0155881895 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0766140074 +0.2617804110 + + + + +0.0957192630 +0.2592041790 + + + + +0.0766140074 +0.2617804110 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.0656305850 +0.1174608320 + + + + +-0.0464677848 +0.1148768291 + + + + +-0.0656305850 +0.1174608320 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.1063367575 +0.2214558274 + + + + +0.1267223209 +0.2187069356 + + + + +0.1063367575 +0.2214558274 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.0783689022 +0.0537904315 + + + + +-0.0568614155 +0.0509202965 + + + + +-0.0783689022 +0.0537904315 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.1381825656 +0.1662748009 + + + + +0.1601828337 +0.1633081883 + + + + +0.1381825656 +0.1662748009 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.0613844767 +0.0134658432 + + + + +-0.0373123214 +0.0102795167 + + + + +-0.0613844767 +0.0134658432 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.1254442483 +0.0962373689 + + + + +0.1499839276 +0.0929532573 + + + + +0.1254442483 +0.0962373689 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.0146772955 +-0.0141246645 + + + + +0.0122037288 +-0.0176642258 + + + + +-0.0146772955 +-0.0141246645 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0744909570 +0.0177105367 + + + + +0.1021796465 +0.0140511477 + + + + +0.0744909570 +0.0177105367 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0192915630 +-0.0289810915 + + + + +0.0479227938 +-0.0327421054 + + + + +0.0192915630 +-0.0289810915 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.2231047153 +1.0789638758 + + + + +0.2243650854 +1.0787940025 + + + + +0.2231047153 +1.0789638758 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.3143960238 +0.9176655412 + + + + +0.3201487362 +0.9168898463 + + + + +0.3143960238 +0.9176655412 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.2485813498 +1.0959427357 + + + + +0.2495481670 +1.0958123207 + + + + +0.2485813498 +1.0959427357 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.2825502157 +1.0259052515 + + + + +0.2854370773 +1.0255159140 + + + + +0.2825502157 +1.0259052515 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.2783041000 +1.0619851351 + + + + +0.2802641690 +1.0617208481 + + + + +0.2783041000 +1.0619851351 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.1806436330 +0.9601125121 + + + + +0.1846013814 +0.9595788121 + + + + +0.1806436330 +0.9601125121 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.2846732736 +1.0386393070 + + + + +0.2872493565 +1.0382919312 + + + + +0.2846732736 +1.0386393070 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.2146124989 +0.9558677673 + + + + +0.2188907564 +0.9552909136 + + + + +0.2146124989 +0.9558677673 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.3059037924 +1.0237828493 + + + + +0.3089457154 +1.0233726501 + + + + +0.3059037924 +1.0237828493 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.2443352491 +0.9431337118 + + + + +0.2491029501 +0.9424908161 + + + + +0.2443352491 +0.9431337118 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.1931405962 +-0.0117619736 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.1404504180 +-0.1288013756 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.3934476376 +-0.0506865382 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.1237629801 +-0.4227963984 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.1980698556 +-1.8431828022 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.1386243552 +-1.8496440649 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0643174797 +-0.4206740558 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.2414022386 +-0.5148902535 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.1195168719 +-0.7462260723 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.1046554968 +-0.8183858395 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.2753711045 +-0.5488477945 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.2668788731 +-0.7126308680 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.2626327872 +-0.9078867435 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.1925720125 +-0.9651901126 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.2774941623 +-0.6150029302 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.2307869792 +-0.6256146431 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.2583866715 +-0.6574498415 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0897941217 +-1.8560110331 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.5462506413 +-1.7414042950 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.3878929317 +-1.8008300066 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.2541405559 +-1.8453992605 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.0800501630 +-1.8645004034 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.8233207464 +-0.1389265954 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.8996068835 +-0.1455594897 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.9095572233 +-0.0593319684 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.9725762010 +0.0501106419 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.8631222248 +0.1562368125 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.8034200072 +0.2225656658 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.5712448359 +0.1628696918 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.5314434171 +-0.0195346568 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.5845119953 +0.0498017929 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.7768856883 +0.0332195796 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.8465382457 +0.1393457502 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.7337674499 +0.2089910507 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.5115426779 +0.1658772975 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.5977791548 +-0.0713549927 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.8564886451 +-0.2736580074 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.9360915422 +-0.2106455863 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.9957937002 +-0.1343674064 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.9327747226 +0.0082396325 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.1610237956 +-2.2102406025 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.4589224458 +-2.1804776192 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.4877879024 +-2.4233129025 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.4317549765 +-2.5201072693 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.4198691845 +-2.8169369698 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.4886620343 +-3.0625865459 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.5405293703 +-3.2957618237 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.3706753552 +-3.6379010677 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.6652490497 +-3.4521958828 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.5564425588 +-3.2558786869 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.2963684797 +-3.1490967274 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.0999860093 +-2.9773206711 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.1212165430 +-2.7328684330 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.2034848779 +-2.3322756290 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.3028053641 +-2.2184159756 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.2569308579 +-2.1368381977 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.2710461020 +-2.1743247509 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.1428327262 +-2.1822836399 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.1204836071 +-2.2738099098 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.1206516400 +-2.2121291161 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.1171228290 +-2.1603970528 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.1230041757 +-2.1106543541 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.1641736031 +-2.1783041954 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.1594685316 +-2.3397874832 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0912448987 +-2.5288090706 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.2745749056 +-2.4770770073 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.3838181198 +0.8286620378 + + + + +-0.3416496813 +0.8651153445 + + + + +-0.3838181198 +0.8286620378 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.5290465951 +-0.2007785439 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.5653536916 +-1.2008413076 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.5549802184 +-2.1946408749 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.4045650363 +-2.7516031265 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.2177716643 +-2.9308602810 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.2575779259 +-1.0160554647 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.1301947087 +-1.2601253986 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.2172399014 +-0.9757309556 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.0473956168 +-1.2983276844 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.1684096754 +-0.9396510124 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.0495186709 +-1.1794762611 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.1280716509 +-0.9396510124 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.0537647791 +-1.0860929489 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.0771183670 +-1.1094387770 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.1769018918 +-1.2113114595 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.0091806520 +-0.9884650111 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.2002554834 +-1.1943325996 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.0304111894 +-0.9672415257 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.2299782336 +-1.1518857479 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.0728722587 +-0.9417733550 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.2257321179 +-1.0903376341 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.1004719585 +-0.9311616421 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.2490857095 +-1.0500130653 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.4010927975 +-1.5239078999 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.4515153170 +-1.6645133495 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.4223233461 +-1.5132961273 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.4807073176 +-1.6247193813 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.4568229616 +-1.5053373575 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.4886687696 +-1.5769665241 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.3533240855 +-1.6194134951 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.4780534804 +-1.5424784422 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.3477049768 +-0.4515670538 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.2547379136 +-0.3867751062 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.4231627882 +-0.1405656189 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.3671386242 +-0.2377535701 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.1640475839 +-0.4580462575 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.1640475839 +-0.2507119775 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.0927908942 +-0.2766287625 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.0863130167 +-0.4710046649 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.3752619624 +-0.1623651683 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.3752619624 +-0.4409463704 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0403695852 +0.9416803122 + + + + +0.0902750716 +0.9821005464 + + + + +0.0403695852 +0.9416803122 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.2063449770 +1.2473989725 + + + + +0.2552473545 +1.2896735668 + + + + +0.2063449770 +1.2473989725 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.4235422313 +1.2591958046 + + + + +0.4631854296 +1.2934660912 + + + + +0.4235422313 +1.2591958046 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.4167278409 +0.8492846489 + + + + +0.4572671950 +0.8771694899 + + + + +0.4167278409 +0.8492846489 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.3088929653 +0.9653843045 + + + + +0.3527818024 +0.9995221496 + + + + +0.3088929653 +0.9653843045 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.4042853713 +0.6253781915 + + + + +0.4442727268 +0.6469851732 + + + + +0.4042853713 +0.6253781915 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.4872352779 +0.0656119734 + + + + +0.5173373222 +0.0615923181 + + + + +0.4872352779 +0.0656119734 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0932232067 +-0.2080515027 + + + + +0.1327184290 +-0.2131478041 + + + + +0.0932232067 +-0.2080515027 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.5245627165 +-0.0421948470 + + + + +0.5612140298 +-0.0470291004 + + + + +0.5245627165 +-0.0421948470 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.5411527157 +-0.1251231730 + + + + +0.5828164816 +-0.1305799037 + + + + +0.5411527157 +-0.1251231730 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.2923029959 +-0.1956122518 + + + + +0.3363595903 +-0.2013231516 + + + + +0.2923029959 +-0.1956122518 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.1015181914 +-0.3034190834 + + + + +0.1453429461 +-0.3090336621 + + + + +0.1015181914 +-0.3034190834 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.0491188392 +-0.0753661767 + + + + +-0.0202964153 +-0.0791318417 + + + + +-0.0491188392 +-0.0753661767 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0086267907 +0.3073219657 + + + + +0.0471672527 +0.3235694468 + + + + +0.0086267907 +0.3073219657 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0403695852 +0.9416803122 + + + + +0.0902750716 +0.9821005464 + + + + +0.0403695852 +0.9416803122 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.2063449770 +1.2473989725 + + + + +0.2552473545 +1.2896735668 + + + + +0.2063449770 +1.2473989725 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.2193729132 +-0.0144592682 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.1342872828 +-0.1046988666 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.2120218426 +0.1544689983 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.0371190682 +0.7894302607 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.0360197648 +0.4531591535 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.0957219452 +-0.0376743674 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.1032853350 +0.1977930665 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.1269719899 +-2.9360342026 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.4221661091 +-2.9990465641 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.5283033252 +-2.4120361805 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.3525135815 +-2.8199586868 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.2431290448 +-2.6789369583 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.3924329877 +-1.9573364258 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.4214713573 +-0.3448920250 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.3193456829 +0.6580392718 + + + + +-0.2831262946 +0.6893498302 + + + + +-0.3193456829 +0.6580392718 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.4088989794 +0.6679885983 + + + + +-0.3734859228 +0.6986020803 + + + + +-0.4088989794 +0.6679885983 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.5548376441 +0.4192554057 + + + + +-0.5317441821 +0.4392189980 + + + + +-0.5548376441 +0.4192554057 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.5084025860 +1.2174830437 + + + + +-0.4594585299 +1.2597936392 + + + + +-0.5084025860 +1.2174830437 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.3174776137 +1.5557602644 + + + + +0.3588459492 +1.5915218592 + + + + +0.3174776137 +1.5557602644 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0786688775 +0.9786991477 + + + + +0.1263073832 +1.0198811293 + + + + +0.0786688775 +0.9786991477 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.1933077425 +-1.2678422928 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.0274683423 +-2.6965742111 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.3456741273 +-3.1564614773 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.0338960476 +-3.0204873085 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.1499836296 +-3.1863093376 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.4105535448 +-3.3255999088 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.1566172093 +-3.5113208294 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.1732011437 +-3.3554480076 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.1499836296 +-3.4483082294 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.2082294822 +-3.2095243931 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.1418937147 +-2.9873228073 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.5432250500 +-2.9972720146 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.4138703346 +-3.2028915882 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.4120098948 +-3.5492169857 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.0948334485 +-3.6818747520 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.6613942385 +-3.4165592194 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.8604015112 +-3.5890142918 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.6016920209 +-3.7747349739 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.4099283218 +-3.8344309330 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.4961647987 +-3.4696223736 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.8259376287 +-1.0297840834 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.7065332532 +-0.5157354474 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.6269303560 +0.0082625169 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.2454997152 +0.2271477431 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0065761819 +-0.9170250297 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.8989069462 +-1.2453528643 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.3962539434 +-2.2752592564 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.0053746351 +-2.1845505238 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.2256225795 +-2.2363841534 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.1025428399 +-1.8087571859 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.4739885330 +-1.7698819637 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.2580119669 +-2.1757254601 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.1478880048 +-2.0785374641 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.0701534376 +-2.1692461967 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.1349322498 +-2.3053092957 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.1349322498 +-2.0581502914 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.2256225795 +-1.3195219040 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.2644898593 +-0.8983741403 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.2717128992 +-0.4528602958 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.2509659827 +-0.2507750690 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0658820495 +-0.3411632180 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.1954396665 +-0.6845606565 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.2573336661 +-1.3648346663 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.3092009723 +-1.9814536572 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.5172042847 +-0.5590828657 + + + + +0.5745374560 +-0.5663601756 + + + + +0.5172042847 +-0.5590828657 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.2624378502 +-0.3441952467 + + + + +0.3124760389 +-0.3506106436 + + + + +0.2624378502 +-0.3441952467 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.0029438518 +-0.4954124391 + + + + +0.0438873544 +-0.5013203025 + + + + +-0.0029438518 +-0.4954124391 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.1144041643 +-0.2805248499 + + + + +-0.0790327191 +-0.2850515544 + + + + +-0.1144041643 +-0.2805248499 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.1005550101 +0.0696623698 + + + + +0.1260371208 +0.0662674755 + + + + +0.1005550101 +0.0696623698 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.6790871024 +-0.0576784313 + + + + +0.7142616510 +-0.0623293035 + + + + +0.6790871024 +-0.0576784313 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.7242020369 +-0.5139829516 + + + + +0.7755670547 +-0.5205393434 + + + + +0.7242020369 +-0.5139829516 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.3420523703 +-1.0624998808 + + + + +0.4059904516 +-1.0703027248 + + + + +0.3420523703 +-1.0624998808 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.1854771525 +-0.6592539549 + + + + +0.2419342697 +-0.6663221121 + + + + +0.1854771525 +-0.6592539549 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.0082514854 +-0.4841603637 + + + + +0.0380606428 +-0.4900066853 + + + + +-0.0082514854 +-0.4841603637 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.3818596303 +-0.4019194245 + + + + +0.4365114570 +-0.4089218378 + + + + +0.3818596303 +-0.4019194245 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.5490500927 +-0.9404649138 + + + + +0.6090239286 +-0.9478690028 + + + + +0.5490500927 +-0.9404649138 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.4694355726 +-1.4869692326 + + + + +0.5254759789 +-1.4936592579 + + + + +0.4694355726 +-1.4869692326 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.3659367263 +-1.3437107801 + + + + +0.4306528866 +-1.3514754772 + + + + +0.3659367263 +-1.3437107801 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.3393985331 +-1.4339104891 + + + + +0.4016122520 +-1.4413402081 + + + + +0.3393985331 +-1.4339104891 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.2624378502 +-1.2455521822 + + + + +0.3285477757 +-1.2535164356 + + + + +0.2624378502 +-1.2455521822 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.3171064854 +-1.1606583595 + + + + +0.3822506368 +-1.1685543060 + + + + +0.3171064854 +-1.1606583595 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.4375897646 +-1.4312576056 + + + + +0.4970535934 +-1.4383720160 + + + + +0.4375897646 +-1.4312576056 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.6445491314 +-1.4608857632 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.3271329701 +-1.5580737591 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.5945434570 +-1.4437122345 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.7355325222 +-3.0646219254 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.4509105682 +-4.5351681709 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-2.5299723148 +-3.9989840984 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Breath Out +Breath In +Breath Out +Blink +Breath Out + + + + + + + + + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-0.9095572233 +-0.0593319684 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.8749288917 +-0.0026623486 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-0.8465382457 +0.1393457502 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.7556484938 +0.1257570237 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + +0.000000 +0.045746 +0.111084 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-0.6865805387 +-1.1142042875 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.6793466806 +-0.6499841809 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.6841692328 +-0.2404730320 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-0.9175062776 +-0.8757397532 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.6990078688 +-0.9569048882 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.5782587528 +-0.9046482444 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.199951 +0.199951 +0.199951 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.444580 +0.402832 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.029556 +0.024918 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + +0.099976 +0.099976 +0.099976 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.099976 +0.099976 +0.099976 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.197632 +0.179077 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.199951 +0.049988 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.099976 +0.099976 +0.099976 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.399902 +0.399902 +0.399902 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +-0.0480587408 +-0.9859215617 + + + + +0.1663696766 +-1.2215020657 + + + + + + + + + + + + + + + + + + + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + + + +0.0999811813 +-1.0672826767 + + + + +0.1605238616 +-1.0746495724 + + + + +0.0999811813 +-1.0672826767 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.1101689935 +-1.2337012291 + + + + +0.1720535457 +-1.2411563396 + + + + +0.1101689935 +-1.2337012291 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.1662019342 +-1.3016272783 + + + + +0.2301325947 +-1.3093000650 + + + + +0.1662019342 +-1.3016272783 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.1390344501 +-1.3406846523 + + + + +0.2013077289 +-1.3481429815 + + + + +0.1390344501 +-1.3406846523 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0456462093 +-1.2404938936 + + + + +0.1048028320 +-1.2476156950 + + + + +0.0456462093 +-1.2404938936 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0473441780 +-1.0368403196 + + + + +0.1058565080 +-1.0439703465 + + + + +0.0473441780 +-1.0368403196 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + + + +0.0999811813 +-1.0672826767 + + + + +0.1605238616 +-1.0746495724 + + + + +0.0999811813 +-1.0672826767 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.1101689935 +-1.2337012291 + + + + +0.1720535457 +-1.2411563396 + + + + +0.1101689935 +-1.2337012291 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.1662019342 +-1.3016272783 + + + + +0.2301325947 +-1.3093000650 + + + + +0.1662019342 +-1.3016272783 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.1390344501 +-1.3406846523 + + + + +0.2013077289 +-1.3481429815 + + + + +0.1390344501 +-1.3406846523 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0456462093 +-1.2404938936 + + + + +0.1048028320 +-1.2476156950 + + + + +0.0456462093 +-1.2404938936 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0473441780 +-1.0368403196 + + + + +0.1058565080 +-1.0439703465 + + + + +0.0473441780 +-1.0368403196 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +0.1557544023 +-1.3626381159 + + + + +0.2183082998 +-1.3701218367 + + + + +0.1557544023 +-1.3626381159 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0687092096 +-1.1992174387 + + + + +0.1289384216 +-1.2064862251 + + + + +0.0687092096 +-1.1992174387 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.1132933348 +-1.1058341265 + + + + +0.1746143103 +-1.1132785082 + + + + +0.1132933348 +-1.1058341265 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.2343073934 +-1.3753721714 + + + + +0.2999039292 +-1.3832143545 + + + + +0.2343073934 +-1.3753721714 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + + + +0.1712958366 +-1.1049619913 + + + + +0.2341779470 +-1.1125997305 + + + + +0.1712958366 +-1.1049619913 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.1882755160 +-1.2386978865 + + + + +0.2528771162 +-1.2464799881 + + + + +0.1882755160 +-1.2386978865 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.2765698433 +-1.3643608093 + + + + +0.3437785208 +-1.3724000454 + + + + +0.2765698433 +-1.3643608093 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.2443084568 +-1.4017201662 + + + + +0.3089188039 +-1.4094363451 + + + + +0.2443084568 +-1.4017201662 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.1712958366 +-1.3151144981 + + + + +0.2353392094 +-1.3227952719 + + + + +0.1712958366 +-1.3151144981 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.1067730561 +-1.2408139706 + + + + +0.1685176045 +-1.2482490540 + + + + +0.1067730561 +-1.2408139706 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.1016791537 +-1.0726971626 + + + + +0.1623280644 +-1.0800745487 + + + + +0.1016791537 +-1.0726971626 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + + + +0.1712958366 +-1.1049619913 + + + + +0.2341779470 +-1.1125997305 + + + + +0.1712958366 +-1.1049619913 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.1882755160 +-1.2386978865 + + + + +0.2528771162 +-1.2464799881 + + + + +0.1882755160 +-1.2386978865 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.2765698433 +-1.3643608093 + + + + +0.3437785208 +-1.3724000454 + + + + +0.2765698433 +-1.3643608093 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.2443084568 +-1.4017201662 + + + + +0.3089188039 +-1.4094363451 + + + + +0.2443084568 +-1.4017201662 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.1712958366 +-1.3151144981 + + + + +0.2353392094 +-1.3227952719 + + + + +0.1712958366 +-1.3151144981 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.1067730561 +-1.2408139706 + + + + +0.1685176045 +-1.2482490540 + + + + +0.1067730561 +-1.2408139706 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.1016791537 +-1.0726971626 + + + + +0.1623280644 +-1.0800745487 + + + + +0.1016791537 +-1.0726971626 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +0.2364304364 +-1.3856271505 + + + + +0.3016564846 +-1.3934216499 + + + + +0.2364304364 +-1.3856271505 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.1493852437 +-1.2222064734 + + + + +0.2126784176 +-1.2298374176 + + + + +0.1493852437 +-1.2222064734 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.1939693689 +-1.1288231611 + + + + +0.2576205730 +-1.1365439892 + + + + +0.1939693689 +-1.1288231611 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.3149834275 +-1.3983612061 + + + + +0.3795884848 +-1.4060844183 + + + + +0.3149834275 +-1.3983612061 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + + + +0.2822040021 +-1.1371334791 + + + + +0.3470568061 +-1.1450026035 + + + + +0.2822040021 +-1.1371334791 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.3088312447 +-1.2522829771 + + + + +0.3750137091 +-1.2602571249 + + + + +0.3088312447 +-1.2522829771 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.3591647148 +-1.3838562965 + + + + +0.4230346680 +-1.3915032148 + + + + +0.3591647148 +-1.3838562965 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.3113960028 +-1.4209972620 + + + + +0.3748770058 +-1.4285788536 + + + + +0.3113960028 +-1.4209972620 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.2477043867 +-1.3303978443 + + + + +0.3145421147 +-1.3384066820 + + + + +0.2477043867 +-1.3303978443 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.1899734885 +-1.2624719143 + + + + +0.2547661662 +-1.2702660561 + + + + +0.1899734885 +-1.2624719143 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.1733975112 +-1.1106040478 + + + + +0.2363923341 +-1.1182528734 + + + + +0.1733975112 +-1.1106040478 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + + + +0.2822040021 +-1.1371334791 + + + + +0.3470568061 +-1.1450026035 + + + + +0.2822040021 +-1.1371334791 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.3088312447 +-1.2522829771 + + + + +0.3750137091 +-1.2602571249 + + + + +0.3088312447 +-1.2522829771 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.3591647148 +-1.3838562965 + + + + +0.4230346680 +-1.3915032148 + + + + +0.3591647148 +-1.3838562965 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.3113960028 +-1.4209972620 + + + + +0.3748770058 +-1.4285788536 + + + + +0.3113960028 +-1.4209972620 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.2477043867 +-1.3303978443 + + + + +0.3145421147 +-1.3384066820 + + + + +0.2477043867 +-1.3303978443 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.1899734885 +-1.2624719143 + + + + +0.2547661662 +-1.2702660561 + + + + +0.1899734885 +-1.2624719143 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.1733975112 +-1.1106040478 + + + + +0.2363923341 +-1.1182528734 + + + + +0.1733975112 +-1.1106040478 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + + + +0.5183937550 +1.3555136919 + + + + +0.5538880825 +1.3861974478 + + + + +0.5183937550 +1.3555136919 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.4991016686 +1.0114156008 + + + + +0.5360769629 +1.0403054953 + + + + +0.4991016686 +1.0114156008 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.4805249572 +0.6430099010 + + + + +0.5185824633 +0.6632448435 + + + + +0.4805249572 +0.6430099010 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + + + +0.4353163242 +-0.2122295499 + + + + +0.4825317562 +-0.2183630466 + + + + +0.4353163242 +-0.2122295499 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.5092229247 +-0.1611575037 + + + + +0.5533915758 +-0.1669233143 + + + + +0.5092229247 +-0.1611575037 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.4233608544 +-0.1568109542 + + + + +0.4671775401 +-0.1625227034 + + + + +0.4233608544 +-0.1568109542 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.2668527961 +-0.2404821664 + + + + +0.3125697374 +-0.2463860214 + + + + +0.2668527961 +-0.2404821664 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +0.1469659507 +-3.0435440540 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.1915500760 +-3.1411721706 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.3292287588 +-3.1337437630 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +0.4008818269 +-3.2345552444 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.4008818269 +-3.3035316467 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-0.0758002549 +-2.9050288200 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.4325721860 +-2.9996371269 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.5174943209 +-2.6070029736 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-0.3400436044 +-3.1496720314 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.1533004194 +-3.0403859615 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-0.1154793873 +-3.1657731533 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.0074196383 +-3.0519154072 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.0188918319 +-3.0166714191 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.0597662702 +-3.0154585838 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +0.5241365433 +-3.2931139469 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0158642065 +-3.4602670670 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.0930836424 +-3.5003623962 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.1705921739 +-3.5070350170 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.2249352485 +-3.4391176701 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.1692335904 +-3.3481085300 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-0.0930836424 +-3.5003623962 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.1856209338 +-3.5508739948 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.2724854350 +-3.5695188046 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +-0.2375598848 +-3.7563269138 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.1022888049 +-3.5987586975 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.4147615135 +-3.4602074623 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.6185480356 +-3.4085903168 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +0.8933852315 +-3.6326894760 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.8195769787 +-3.5299706459 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.7204298973 +-3.4452853203 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +0.9593625069 +-3.4814722538 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.0275200605 +-3.5162012577 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.1490037441 +-3.5358922482 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.2509618998 +-3.5208384991 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.2850570679 +-3.4724326134 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +1.8009907007 +-3.3700489998 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.8206951618 +-3.4379367828 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +1.8237341642 +-3.4718251228 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.8753969669 +-3.5024318695 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.9389891624 +-3.4867780209 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +-0.8799572587 +2.9673943520 + + + + +-0.4850692749 +2.4728877544 + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + + + +-0.7227677703 +3.2407732010 + + + + +-0.6834709644 +3.2859363556 + + + + +-0.7227677703 +3.2407732010 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.4517122507 +3.1311106682 + + + + +-0.4124154747 +3.1762740612 + + + + +-0.4517122507 +3.1311106682 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.1481864601 +2.9042587280 + + + + +-0.1088896766 +2.9494221210 + + + + +-0.1481864601 +2.9042587280 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + + + +-0.6670638323 +3.2274568081 + + + + +-0.6277670860 +3.2726199627 + + + + +-0.6670638323 +3.2274568081 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.6212187409 +3.2817976475 + + + + +-0.5819219351 +3.3269608021 + + + + +-0.6212187409 +3.2817976475 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + + + +0.3186285198 +1.9768033028 + + + + +0.3579253256 +2.0219664574 + + + + +0.3186285198 +1.9768033028 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.3254203796 +2.0362384319 + + + + +0.3647171855 +2.0814018250 + + + + +0.3254203796 +2.0362384319 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + + + +0.1516956687 +2.8615403175 + + + + +0.1909924597 +2.9067037106 + + + + +0.1516956687 +2.8615403175 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.2100796402 +2.7925641537 + + + + +0.2493764311 +2.8377273083 + + + + +0.2100796402 +2.7925641537 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + +1.000000 +1.000000 +1.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + + + +0.0187920053 +2.8115873337 + + + + +0.0580887981 +2.8567507267 + + + + +0.0187920053 +2.8115873337 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0014022205 +2.8517930508 + + + + +0.0406990126 +2.8969562054 + + + + +0.0014022205 +2.8517930508 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0861774236 +2.7974610329 + + + + +0.1254742146 +2.8426241875 + + + + +0.0861774236 +2.7974610329 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.2013847530 +2.6659777164 + + + + +0.2406815439 +2.7111408710 + + + + +0.2013847530 +2.6659777164 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.2665964365 +2.4725558758 + + + + +0.3058932424 +2.5177192688 + + + + +0.2665964365 +2.4725558758 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.1174829677 +2.6299300194 + + + + +0.1567797661 +2.6750931740 + + + + +0.1174829677 +2.6299300194 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0524847135 +2.7072699070 + + + + +0.0917815045 +2.7524333000 + + + + +0.0524847135 +2.7072699070 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0318343453 +2.7496490479 + + + + +0.0711311400 +2.7948122025 + + + + +0.0318343453 +2.7496490479 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.1664885432 +2.7082874775 + + + + +0.0902782530 +2.6723883152 + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + +1.000000 +1.000000 +1.000000 +1.000000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + + + +-0.0562440865 +2.9514598846 + + + + +-0.0169472937 +2.9966230392 + + + + +-0.0562440865 +2.9514598846 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.0437804349 +2.9751195908 + + + + +-0.0044836425 +3.0202827454 + + + + +-0.0437804349 +2.9751195908 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0829168409 +2.8686289787 + + + + +0.1222136319 +2.9137921333 + + + + +0.0829168409 +2.8686289787 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.2372511774 +2.7078063488 + + + + +0.2765479684 +2.7529695034 + + + + +0.2372511774 +2.7078063488 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + + + +0.0187920053 +2.8115873337 + + + + +0.0580887981 +2.8567507267 + + + + +0.0187920053 +2.8115873337 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0014022205 +2.8517930508 + + + + +0.0406990126 +2.8969562054 + + + + +0.0014022205 +2.8517930508 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0861774236 +2.7974610329 + + + + +0.1254742146 +2.8426241875 + + + + +0.0861774236 +2.7974610329 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.2013847530 +2.6659777164 + + + + +0.2406815439 +2.7111408710 + + + + +0.2013847530 +2.6659777164 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.2665964365 +2.4725558758 + + + + +0.3058932424 +2.5177192688 + + + + +0.2665964365 +2.4725558758 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.1174829677 +2.6299300194 + + + + +0.1567797661 +2.6750931740 + + + + +0.1174829677 +2.6299300194 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0524847135 +2.7072699070 + + + + +0.0917815045 +2.7524333000 + + + + +0.0524847135 +2.7072699070 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0318343453 +2.7496490479 + + + + +0.0711311400 +2.7948122025 + + + + +0.0318343453 +2.7496490479 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +-0.0474369787 + + + + +0.0474369787 +0.0474369787 + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.000000 +1.000000 +1.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + +0.0316246524 +-0.0316246524 + + + + +0.0632493049 +0.0632493049 + + + + + + + + + + + + + + + + + + + + + +-1.0278011560 +-0.0632493049 + + + + +0.1897479147 +-0.0790616274 + + + + + +1.000000 +1.000000 +1.000000 +1.000000 + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + +0.824707 +0.743164 +0.558105 +1.000000 + + +0.848633 +0.805176 +0.681641 +1.000000 + + + + + + + + +0.6324930787 +0.6324930787 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +1.000000 + + +1.000000 +1.000000 +1.000000 +1.000000 + + + + + + + + +0.0316246524 +0.0316246524 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.056427 +0.193970 +0.146362 +1.000000 + + + + +-2.8145940304 +-0.9932073951 + + + + +2.6406586170 +-4.2821712494 + + + + + + + + + + + + + + + + + + + + + +0.7537025213 +-2.2992615700 + + + + +0.7219676971 +-4.7867321968 + + + + + +0.056335 +0.201782 +0.154297 +1.000000 + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + + + + + + + + + + + + + + + + + + + +-0.9282441735 +0.3723284006 + + + + + + + + + + + + + + + + +0.5000000000 +0.3499999940 + + + + +0.5000000000 +0.3000000119 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +0.000000 + + + + +-3.0306775570 +-1.1110472679 + + + + +4.6491546631 +-3.0598299503 + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +0.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + +-6.1168808937 +-2.6231210232 + + + + +-6.1042308807 +-3.6224598885 + + + + +4.5582561493 +-3.2096145153 + + + + +4.4570574760 +-2.4632728100 + + + + + + + + + + + + + + + + + + + + + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +0.3499999940 +0.3499999940 + + + + +0.5000000000 +0.5000000000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.265869 +0.265869 +0.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.7748039961 +-1.5546774864 + + + + +0.8222409487 +-3.1486053467 + + + + + +0.499756 +1.000000 +1.000000 +1.000000 + + +0.000000 +0.000000 +0.000000 +1.000000 + + + + + + + + + + + + + + + + + + + + + + +0.000000 +0.000000 +0.000000 +0.000000 + + + + +-2.5932214260 +-1.2210415602 + + + + +2.6564707756 +-4.2570080757 + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + +0.000000 +0.265869 +0.265869 +0.000000 + + + + +0.0000000000 +0.0000000000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1.000000 +1.000000 +1.000000 +1.000000 + + + + + + + + + + + + + + +voria.com + + + +0.000000 +0.000000 +0.000000 +1.000000 + + + +Sans Serif + + + + + + + + + + + + + + + +0.1106862873 +0.1106862873 + + + + +0.0000000000 +1.0000000000 + + + + +-2.2158401012 +-3.9335911274 + + + + + + + + + + + + + + + + + + + + + + + + +0.5000000000 +0.5000000000 + + + + + + + diff --git a/synfig-core/tags/stable/examples/sparkle.sif b/synfig-core/tags/stable/examples/sparkle.sif new file mode 100644 index 0000000..c15a1ba --- /dev/null +++ b/synfig-core/tags/stable/examples/sparkle.sif @@ -0,0 +1,526 @@ + + + Untitled0 + + + + + + + + + + + + + + + + + + + + 0.257790 + 0.258648 + 0.258648 + 1.000000 + + + + + + + + + + + + + + + + 1.000000 + 1.000000 + 1.000000 + 1.000000 + + + + + 0.1250000000 + 0.1250000000 + + + + + 0.2500000000 + 0.2500000000 + + + + + + + + + + + + + + + + 0.0000000000 + 0.0000000000 + + + + + + + + + + + + + + + + + 0.000000 + 0.000000 + 0.000000 + 1.000000 + + + + + + + + + + + + + + + + -0.3799999952 + 0.0500000007 + + + + + + + + + + + + + + + + + + 1.000000 + 1.000000 + 1.000000 + 0.000000 + + + 1.633812 + 1.233286 + 1.000000 + 1.000000 + + + -0.000000 + -0.000000 + -0.000000 + 0.000000 + + + -0.000000 + -0.000000 + -0.000000 + 0.000000 + + + 1.633812 + 1.233286 + 1.000000 + 1.000000 + + + 1.000000 + 1.000000 + 1.000000 + 0.000000 + + + + + + 0.0000000000 + 0.0000000000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + -0.000000 + -0.000000 + -0.000000 + 0.000000 + + + + + + + + + + + 0.0000000000 + 0.0000000000 + + + + + + + + + + + + + + + + + + + + + + 1.633812 + 1.233286 + 1.000000 + 1.000000 + + + + + + + + + + + + + + + + + + + + + + + + + 0.0000000000 + 0.0000000000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + -0.000000 + -0.000000 + -0.000000 + 0.000000 + + + 0.170855 + 0.567654 + 0.056975 + 1.000000 + + + 1.000000 + 1.000000 + 1.000000 + 0.000000 + + + + + + + + -0.3799999952 + 0.0500000007 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + -0.000000 + -0.000000 + -0.000000 + 0.000000 + + + -0.000000 + -0.000000 + -0.000000 + 0.000000 + + + -0.000000 + 0.645789 + -0.000000 + 0.283262 + + + 1.000000 + 1.000000 + -0.000000 + 0.386266 + + + 1.000000 + -0.000000 + -0.000000 + 0.643777 + + + 1.000000 + -0.000000 + 0.474302 + 0.583691 + + + 0.203512 + -0.000000 + 1.000000 + 0.210300 + + + 1.000000 + 1.000000 + 1.000000 + 0.000000 + + + + + + + + -0.3799999952 + 0.0500000007 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + -0.000000 + -0.000000 + -0.000000 + 0.000000 + + + 0.714633 + 0.254108 + 0.245250 + 0.530769 + + + 0.714633 + 0.254108 + 0.245250 + 1.000000 + + + 0.714633 + 0.254108 + 0.245250 + 0.240000 + + + 1.000000 + 1.000000 + 1.000000 + 0.000000 + + + + + + + + -0.3799999952 + 0.0500000007 + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/synfig-core/tags/stable/examples/splat.sif b/synfig-core/tags/stable/examples/splat.sif new file mode 100644 index 0000000..1cbd455 --- /dev/null +++ b/synfig-core/tags/stable/examples/splat.sif @@ -0,0 +1,224 @@ + + + Splat! + + + + + + + + + + + + + 0.750000 + 0.750000 + 0.750000 + 1.000000 + + + + + + + + + + + + + + + + 0.500000 + 0.500000 + 0.500000 + 1.000000 + + + + + 0.1250000000 + 0.1250000000 + + + + + 0.2500000000 + 0.2500000000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0.000000 + 0.000000 + 0.000000 + 0.000000 + + + 0.000000 + 0.000000 + 0.000000 + 1.000000 + + + + + + + + + + + + + + + + + + + + + + + + + 0.000000 + 0.000000 + 0.000000 + 0.000000 + + + 0.000000 + 0.000000 + 0.000000 + 1.000000 + + + + + + + + + + + + + + + + + + + + + + + + + + 0.000000 + 0.000000 + 0.000000 + 1.000000 + + + + + + + + + + + + + + + + + + + + + 0.5699999928 + -0.3700000048 + + + + + + + + + + 0.0000000000 + 0.0000000000 + + + + + + + + + + + + + + + + 0.347316 + 0.706518 + 0.942210 + 1.000000 + + + + + + + + + + + + + + + + + + + + + diff --git a/synfig-core/tags/stable/examples/star.sif b/synfig-core/tags/stable/examples/star.sif new file mode 100644 index 0000000..c099e2a --- /dev/null +++ b/synfig-core/tags/stable/examples/star.sif @@ -0,0 +1,2183 @@ + + + Untitled0 + Start of change to Star + Yellow Star + Circle + Circle 1 + Circle 2 + Circle 3 + Circle 4 + Circle 5 + Finish + + + + + + + + + 0.2500000000 + 0.5000000000 + + + + + 0.2500000000 + 0.5000000000 + + + + + 0.2500000000 + 0.5000000000 + + + + + 0.2500000000 + 0.2500000000 + + + + + 0.2500000000 + 0.2500000000 + + + + + 0.2500000000 + 0.2500000000 + + + + + 0.2500000000 + 0.2500000000 + + + + + 0.2500000000 + 0.2500000000 + + + + + 0.2500000000 + 0.2500000000 + + + + + 0.2500000000 + 0.2500000000 + + + + + + + + + + + + + + + + + + -0.7500000000 + -0.7500000000 + + + + + -0.7500000000 + -0.7500000000 + + + + + -0.7500000000 + -0.7500000000 + + + + + -0.7500000000 + 0.0000000000 + + + + + -0.7500000000 + 0.0000000000 + + + + + -0.7500000000 + 0.0000000000 + + + + + -0.7500000000 + 0.0000000000 + + + + + -0.7500000000 + 0.0000000000 + + + + + -0.7500000000 + 0.0000000000 + + + + + -0.7500000000 + 0.0000000000 + + + + + + + -0.2500000000 + 0.7500000000 + + + + + + + + + + + 0.0000000000 + 1.2500000000 + + + + + 0.0000000000 + 1.2500000149 + + + + + 0.0000000000 + 1.2500000149 + + + + + 0.0000000000 + 1.0000000000 + + + + + 0.0000000000 + 1.0000000000 + + + + + 0.0000000000 + 1.0000000000 + + + + + 0.0000000000 + 1.0000000000 + + + + + 0.0000000000 + 1.0000000000 + + + + + 0.0000000000 + 1.0000000000 + + + + + 0.0000000000 + 1.0000000000 + + + + + + + + + + + + + + + + -0.2500000000 + 0.7500000000 + + + + + -0.2500000000 + -0.7500000000 + + + + + + + + + + + -0.2500000000 + 0.5000000000 + + + + + -0.2500000000 + 0.5000000000 + + + + + -0.2500000000 + 0.5000000000 + + + + + -0.2500000000 + 0.2500000000 + + + + + -0.2500000000 + 0.2500000000 + + + + + -0.2500000000 + 0.2500000000 + + + + + -0.2500000000 + 0.2500000000 + + + + + -0.2500000000 + 0.2500000000 + + + + + -0.2500000000 + 0.2500000000 + + + + + -0.2500000000 + 0.2500000000 + + + + + + + + + + + + + + + + -0.2500000000 + -0.7500000000 + + + + + + + -0.7500000000 + 0.7500000000 + + + + + -0.7500000000 + 0.7500000000 + + + + + -0.7500000000 + 0.7500000000 + + + + + -0.7500000000 + 0.0000000000 + + + + + -0.7500000000 + 0.0000000000 + + + + + -0.7500000000 + 0.0000000000 + + + + + -0.7500000000 + 0.0000000000 + + + + + -0.7500000000 + 0.0000000000 + + + + + -0.7500000000 + 0.0000000000 + + + + + -0.7500000000 + 0.0000000000 + + + + + + + + + + + + + -1.0000000000 + 1.0000000000 + + + + + -1.0000000000 + 1.0000000000 + + + + + -1.0000000000 + 1.0000000000 + + + + + -1.0000000000 + 0.2500000000 + + + + + -1.0000000000 + 0.2500000000 + + + + + -1.0000000000 + 0.2500000000 + + + + + -1.0000000000 + 0.2500000000 + + + + + -1.0000000000 + 0.2500000000 + + + + + -1.0000000000 + 0.2500000000 + + + + + -1.0000000000 + 0.2500000000 + + + + + + + + + + + + + + + + + + -1.5000000000 + -1.5000000000 + + + + + -1.5000000000 + -1.5000000000 + + + + + -1.5000000000 + -1.5000000000 + + + + + -0.7500000000 + 0.0000000000 + + + + + -0.7500000000 + 0.0000000000 + + + + + -0.7500000000 + 0.0000000000 + + + + + -0.7500000000 + 0.0000000000 + + + + + -0.7500000000 + 0.0000000000 + + + + + -0.7500000000 + 0.0000000000 + + + + + -0.7500000000 + 0.0000000000 + + + + + + + + + -1.5000000000 + -1.5000000000 + + + + + -1.5000000000 + -1.5000000000 + + + + + -1.5000000000 + -1.5000000000 + + + + + 0.5000000000 + -0.5000000000 + + + + + 0.5000000000 + -0.5000000000 + + + + + 0.5000000000 + -0.5000000000 + + + + + 0.5000000000 + -0.5000000000 + + + + + 0.5000000000 + -0.5000000000 + + + + + 0.5000000000 + -0.5000000000 + + + + + 0.5000000000 + -0.5000000000 + + + + + + + + + + + + + -0.5000000000 + 0.0000000000 + + + + + -0.5000000000 + 0.0000000000 + + + + + -0.5000000000 + 0.0000000000 + + + + + -0.5000000000 + -0.2500000000 + + + + + -0.5000000000 + -0.2500000000 + + + + + -0.5000000000 + -0.2500000000 + + + + + -0.5000000000 + -0.2500000000 + + + + + -0.5000000000 + -0.2500000000 + + + + + -0.5000000000 + -0.2500000000 + + + + + -0.5000000000 + -0.2500000000 + + + + + + + + + + + + + + + + + + 0.7500000000 + -0.7500000000 + + + + + 0.7500000000 + -0.7500000000 + + + + + 0.7500000000 + -0.7500000000 + + + + + 0.2500000000 + -0.2500000000 + + + + + 0.2500000000 + -0.2500000000 + + + + + 0.2500000000 + -0.2500000000 + + + + + 0.2500000000 + -0.2500000000 + + + + + 0.2500000000 + -0.2500000000 + + + + + 0.2500000000 + -0.2500000000 + + + + + 0.2500000000 + -0.2500000000 + + + + + + + + + -0.7500000000 + -0.7500000000 + + + + + -0.7500000000 + -0.7500000000 + + + + + -0.7500000000 + -0.7500000000 + + + + + -0.2500000000 + -0.7500000000 + + + + + -0.2500000000 + -0.7500000000 + + + + + -0.2500000000 + -0.7500000000 + + + + + -0.2500000000 + -0.7500000000 + + + + + -0.2500000000 + -0.7500000000 + + + + + -0.2500000000 + -0.7500000000 + + + + + -0.2500000000 + -0.7500000000 + + + + + + + + + + + + + -1.0000000000 + -1.0000000000 + + + + + -1.0000000000 + -1.0000000000 + + + + + -1.0000000000 + -1.0000000000 + + + + + -0.7500000000 + -1.0000000000 + + + + + -0.7500000000 + -1.0000000000 + + + + + -0.7500000000 + -1.0000000000 + + + + + -0.7500000000 + -1.0000000000 + + + + + -0.7500000000 + -1.0000000000 + + + + + -0.7500000000 + -1.0000000000 + + + + + -0.7500000000 + -1.0000000000 + + + + + + + + + + + + + + + + + + 1.5000000000 + -1.5000000000 + + + + + 1.5000000000 + -1.5000000000 + + + + + 1.5000000000 + -1.5000000000 + + + + + -0.2500000000 + -0.7500000000 + + + + + -0.2500000000 + -0.7500000000 + + + + + -0.2500000000 + -0.7500000000 + + + + + -0.2500000000 + -0.7500000000 + + + + + -0.2500000000 + -0.7500000000 + + + + + -0.2500000000 + -0.7500000000 + + + + + -0.2500000000 + -0.7500000000 + + + + + + + + + 1.5000000000 + -1.5000000000 + + + + + 1.5000000000 + -1.5000000000 + + + + + 1.5000000000 + -1.5000000000 + + + + + 0.7500000000 + 0.5000000000 + + + + + 0.7500000000 + 0.5000000000 + + + + + 0.7500000000 + 0.5000000000 + + + + + 0.7500000000 + 0.5000000000 + + + + + 0.7500000000 + 0.5000000000 + + + + + 0.7500000000 + 0.5000000000 + + + + + 0.7500000000 + 0.5000000000 + + + + + + + + + + + + + 0.0000000000 + -0.5000000000 + + + + + 0.0000000000 + -0.5000000000 + + + + + 0.0000000000 + -0.5000000000 + + + + + 0.0000000000 + -0.5000000000 + + + + + 0.0000000000 + -0.5000000000 + + + + + 0.0000000000 + -0.5000000000 + + + + + 0.0000000000 + -0.5000000000 + + + + + 0.0000000000 + -0.5000000000 + + + + + 0.0000000000 + -0.5000000000 + + + + + 0.0000000000 + -0.5000000000 + + + + + + + + + + + + + + + + + + 0.7500000000 + 0.7500000000 + + + + + 0.7500000000 + 0.7500000000 + + + + + 0.7500000000 + 0.7500000000 + + + + + 0.7500000000 + 0.5000000000 + + + + + 0.7500000000 + 0.5000000000 + + + + + 0.7500000000 + 0.5000000000 + + + + + 0.7500000000 + 0.5000000000 + + + + + 0.7500000000 + 0.5000000000 + + + + + 0.7500000000 + 0.5000000000 + + + + + 0.7500000000 + 0.5000000000 + + + + + + + + + 0.7500000000 + -0.7500000000 + + + + + 0.7500000000 + -0.7500000000 + + + + + 0.7500000000 + -0.7500000000 + + + + + 0.7500000000 + -0.5000000000 + + + + + 0.7500000000 + -0.5000000000 + + + + + 0.7500000000 + -0.5000000000 + + + + + 0.7500000000 + -0.5000000000 + + + + + 0.7500000000 + -0.5000000000 + + + + + 0.7500000000 + -0.5000000000 + + + + + 0.7500000000 + -0.5000000000 + + + + + + + + + + + + + 1.0000000000 + -1.0000000000 + + + + + 1.0000000000 + -1.0000000000 + + + + + 1.0000000000 + -1.0000000000 + + + + + 0.7500000000 + -1.0000000000 + + + + + 0.7500000000 + -1.0000000000 + + + + + 0.7500000000 + -1.0000000000 + + + + + 0.7500000000 + -1.0000000000 + + + + + 0.7500000000 + -1.0000000000 + + + + + 0.7500000000 + -1.0000000000 + + + + + 0.7500000000 + -1.0000000000 + + + + + + + + + + + + + + + + + + 1.5000000000 + 1.5000000000 + + + + + 1.5000000000 + 1.5000000000 + + + + + 1.5000000000 + 1.5000000000 + + + + + 0.7500000000 + -0.5000000000 + + + + + 0.7500000000 + -0.5000000000 + + + + + 0.7500000000 + -0.5000000000 + + + + + 0.7500000000 + -0.5000000000 + + + + + 0.7500000000 + -0.5000000000 + + + + + 0.7500000000 + -0.5000000000 + + + + + 0.7500000000 + -0.5000000000 + + + + + + + + + 1.5000000000 + 1.5000000000 + + + + + 1.5000000000 + 1.5000000000 + + + + + 1.5000000000 + 1.5000000000 + + + + + -0.2500000000 + 0.7500000000 + + + + + -0.2500000000 + 0.7500000000 + + + + + -0.2500000000 + 0.7500000000 + + + + + -0.2500000000 + 0.7500000000 + + + + + -0.2500000000 + 0.7500000000 + + + + + -0.2500000000 + 0.7500000000 + + + + + -0.2500000000 + 0.7500000000 + + + + + + + + + + + + + 0.5000000000 + 0.0000000000 + + + + + 0.5000000000 + 0.0000000000 + + + + + 0.5000000000 + 0.0000000000 + + + + + 0.5000000000 + -0.2500000000 + + + + + 0.5000000000 + -0.2500000000 + + + + + 0.5000000000 + -0.2500000000 + + + + + 0.5000000000 + -0.2500000000 + + + + + 0.5000000000 + -0.2500000000 + + + + + 0.5000000000 + -0.2500000000 + + + + + 0.5000000000 + -0.2500000000 + + + + + + + + + + + + + + + + + + -0.7500000000 + 0.7500000000 + + + + + -0.7500000000 + 0.7500000000 + + + + + -0.7500000000 + 0.7500000000 + + + + + -0.2500000000 + 0.7500000000 + + + + + -0.2500000000 + 0.7500000000 + + + + + -0.2500000000 + 0.7500000000 + + + + + -0.2500000000 + 0.7500000000 + + + + + -0.2500000000 + 0.7500000000 + + + + + -0.2500000000 + 0.7500000000 + + + + + -0.2500000000 + 0.7500000000 + + + + + + + + + 0.7500000000 + 0.7500000000 + + + + + 0.7500000000 + 0.7500000000 + + + + + 0.7500000000 + 0.7500000000 + + + + + 0.5000000000 + 0.5000000000 + + + + + 0.5000000000 + 0.5000000000 + + + + + 0.5000000000 + 0.5000000000 + + + + + 0.5000000000 + 0.5000000000 + + + + + 0.5000000000 + 0.5000000000 + + + + + 0.5000000000 + 0.5000000000 + + + + + 0.5000000000 + 0.5000000000 + + + + + + + + + + + + + 1.0000000000 + 1.0000000000 + + + + + 1.0000000000 + 1.0000000000 + + + + + 1.0000000000 + 1.0000000000 + + + + + 1.0000000000 + 0.2500000000 + + + + + 1.0000000000 + 0.2500000000 + + + + + 1.0000000000 + 0.2500000000 + + + + + 1.0000000000 + 0.2500000000 + + + + + 1.0000000000 + 0.2500000000 + + + + + 1.0000000000 + 0.2500000000 + + + + + 1.0000000000 + 0.2500000000 + + + + + + + + + + + + + + + + + + -1.5000000000 + 1.5000000000 + + + + + -1.5000000000 + 1.5000000000 + + + + + -1.5000000000 + 1.5000000000 + + + + + 0.5000000000 + 0.5000000000 + + + + + 0.5000000000 + 0.5000000000 + + + + + 0.5000000000 + 0.5000000000 + + + + + 0.5000000000 + 0.5000000000 + + + + + 0.5000000000 + 0.5000000000 + + + + + 0.5000000000 + 0.5000000000 + + + + + 0.5000000000 + 0.5000000000 + + + + + + + + + -1.5000000000 + 1.5000000000 + + + + + -1.5000000000 + 1.5000000000 + + + + + -1.5000000000 + 1.5000000000 + + + + + -0.7500000000 + 0.0000000000 + + + + + -0.7500000000 + 0.0000000000 + + + + + -0.7500000000 + 0.0000000000 + + + + + -0.7500000000 + 0.0000000000 + + + + + -0.7500000000 + 0.0000000000 + + + + + -0.7500000000 + 0.0000000000 + + + + + -0.7500000000 + 0.0000000000 + + + + + + + + + + + + + + + + + + 1.000000 + 1.000000 + 1.000000 + 1.000000 + + + + + + + + + + + + + 1.000000 + 1.000000 + 0.000000 + 1.000000 + + + + + 0.0000000000 + 0.0000000000 + + + + + + + + + + + + + + + + + + + + + + + 0.000000 + 0.000000 + 0.000000 + 1.000000 + + + + + 0.0000000000 + 0.0000000000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0.000000 + 0.000000 + 0.000000 + 1.000000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0.5750000000 + 0.6750000000 + + + + + + + + + + + + + + + + + + + 0.000000 + 0.000000 + 0.000000 + 1.000000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0.9750000000 + -0.3250000000 + + + + + + + + + + + + + + + + + + + 0.000000 + 0.000000 + 0.000000 + 1.000000 + + + + + + + + + + + + + + + + + + + + + + + + + + + 0.0000000000 + -0.9625000000 + + + + + + + + + + + + + + + + + + + 0.000000 + 0.000000 + 0.000000 + 1.000000 + + + + + + + + + + + + + + + + + + + + + + + + -0.9125000000 + -0.3250000000 + + + + + + + + + + + + + + + + + + + 0.000000 + 0.000000 + 0.000000 + 1.000000 + + + + + + + + + + + + + + + + + + + + + + + + -0.5375000000 + 0.6625000000 + + + + + + + + + + diff --git a/synfig-core/tags/stable/examples/walk/Makefile.am b/synfig-core/tags/stable/examples/walk/Makefile.am new file mode 100644 index 0000000..8cd878b --- /dev/null +++ b/synfig-core/tags/stable/examples/walk/Makefile.am @@ -0,0 +1,2 @@ +MAINTAINERCLEANFILES=Makefile.in +EXTRA_DIST=animation.lst frame_01.jpg frame_02.jpg frame_03.jpg frame_04.jpg walk.sif diff --git a/synfig-core/tags/stable/examples/walk/animation.lst b/synfig-core/tags/stable/examples/walk/animation.lst new file mode 100755 index 0000000..4456c0a --- /dev/null +++ b/synfig-core/tags/stable/examples/walk/animation.lst @@ -0,0 +1,53 @@ +FPS 4 +frame_01.jpg +frame_02.jpg +frame_03.jpg +frame_04.jpg +frame_01.jpg +frame_02.jpg +frame_03.jpg +frame_04.jpg +frame_01.jpg +frame_02.jpg +frame_03.jpg +frame_04.jpg +frame_01.jpg +frame_02.jpg +frame_03.jpg +frame_04.jpg +frame_01.jpg +frame_02.jpg +frame_03.jpg +frame_04.jpg +frame_01.jpg +frame_02.jpg +frame_03.jpg +frame_04.jpg +frame_01.jpg +frame_02.jpg +frame_03.jpg +frame_04.jpg +frame_01.jpg +frame_02.jpg +frame_03.jpg +frame_04.jpg +frame_01.jpg +frame_02.jpg +frame_03.jpg +frame_04.jpg +frame_01.jpg +frame_02.jpg +frame_03.jpg +frame_04.jpg +frame_01.jpg +frame_02.jpg +frame_03.jpg +frame_04.jpg +frame_01.jpg +frame_02.jpg +frame_03.jpg +frame_04.jpg +frame_01.jpg +frame_02.jpg +frame_03.jpg +frame_04.jpg diff --git a/synfig-core/tags/stable/examples/walk/frame_01.jpg b/synfig-core/tags/stable/examples/walk/frame_01.jpg new file mode 100755 index 0000000000000000000000000000000000000000..e59b8da072640315b2e6cae020c79796858f908c GIT binary patch literal 5934 zcmZu#2UJtZ*MEp&!38N21%(w12toqV1ri$|%`9E|Qi6se0#YSlK{`gdG$UOgfB^vs zO==)WiJ>T=EQA)Sl+Ym`y5+xn&i9*h=Dv5&nYq7v-^|=QkNK7P2XIPTLrVi-IRpR> z2Mu7(16;Sf?4A7p7T_=d0D=dqMS$bFgPR=^aQJkfVPR5%VBi!xJNrrYQzuWJ0&)Jr z2@>Evb&6L&2=oI&f*}3_fCL3az+zw#K`2yK77D%gU$Ag-a&qx-o#y5~&C7Mr_<8yG zc=<*7`Ooq5i%N?K9zaC;GDJ*F402gsURqjS{@OM8zo%e+0=SN`ya&2jS%iT@Tr8|y zEX-!$Ex_^@4w(Ll!z@Qw53wEnss3B{Q?eXlJp~*(bRbxd9c4Rw_~;Mq!P{Z3BNt@2 zuj}*Jx<8G{5WaE)-(X<(OoW&05i5K1bY`jNMMHZz`R8$EMh;*$E|vp}Y)4pGS&y*% zIXes21)1ym?s(g$F%5^lXONe#c-*jiHpVS%kXgzc1WvND9MEOu0^q>@6970V_vfe| zJxj=Iwgc7w3)Wx$QU5dKXo!jN-2@evzGeL=;qv&2Ese{yPv?*c14mUZW*l3N&;Fv* z^$oNk0P+8wrX$S1OmJ%~yt7HtBH4sUk}3uQvH~aiHpFmF`_X~7iIrU)TP%F36a)0# z_dyr0x?nT93xp7a$Q#D%FUxX4bdpR`q2XI#nMfj%Lc=k3rI(*mQqW%z z5rLjxBQHOQPE<`p1!849DpYeeTrlDybL{d%lbC=2Nz#X9=Xumhnvl!g(@*|!=I@8i z(l%pD9Dc3wI0;cDEGdx}&EYGrqB(CL&~@77mge z{S|okUu)B}a+A3PouIBLNNAEe8JcnakW>@@w|7YUpg#NB-?8E?yT|f~hYm_6S&D?5NA3?nih^rb~yfJns zYkW0*fPEY#ur9LXmFZ*K(P&OJj4sciUV;^|M>Tu&+ch_e`q3>cLMtg@({>&eJMd&Q zrodyx`D;xWZn>qsL?X<_uwT}E%Wwff!q{mz{l~4pUjn-HgDof4q6}TPPH}x1+HgsR zh7`<|EGvp9ak;v?ou6n&sphNLq}ZI;KhLfq3&Xu{6d3@)hS>87W-2Z;qbWv3a_%gC z<2wyBsW}3pouzKOq>Lyake;Y~CXgrJsGhy`8c)hJR-{0@Is<-7*>u3ZvT4GQtd_sO zJ>@Eprg#pib`=_-J-dVTUx77#|8Mkv&}89Q5LZR8!TD~{v{&_ZMjFS@6-f@gpA9fN zomhW^ZZick@racFL{i$ZE0y^zBFZEtLJKMkdwR~Te6f@`yZgE)kDR%gmNH-+@QNUp z*YL95_z9qNCf>qYqLXMo8jZxqgBTKX{=`rpIq#Xenh0Ao;_lt}%-xA<)vMmy*<0WG z>~~!|=3p}AO+#X#q^RJ~R_=jsM} zhoEH;ztn{|`iS$+=86tku9c_5SLWqo?eUXGXvoRQI)m8U`r$(CW-7#0U11a461Tw6 zPLps>I{Pk9Y$In0?tD&m-o1km8!*=o16RV_BPko$BMX;)9fGTf@bHv+F1y%x6vL-_ z@W?6)vM5y+k9-*I)%x*!6nDfbID=!us^o+z?R#6R)8LzwT{!nzR%QT6Lf<_gJ0&pI z_ltPK5JsZYvp%)St>fi`^Je;EVQ{Vif0I_Jow3so!{Tr>T9d?QT!3UwL1RDB4#mh>?42Ci+J4zKmbg00p*(-e z7T)XVfLsl>d5TC85?Je)Q7c;!RFIs1HjAg9pp7a&#;;@V-t7SK5#;+C9)DSiqlwM& zc*zbPtE+N@J_OE5hWVPE^&yV85Nd+==V=r>#`&hyt67e;WSvQGRe9^=<{3k~ig#v$ z67B|wu5!uGrWj{2f;y_H*Bi~x!uww@Wj-X9JhS|ktrDN(;M`C|cQkbOu#s|(8ZCVC zgvwJ!?1-f>_!K$U#ul5_lZ2#$or7(UWZT6?tcXZe@b;;=_}@4<(c6Meykb%Onhrkj z-UnX4)t$V*+3(|}GyH7Z%w3dflyIdDkMcIEG0W=|`>sjmZU`8Nzi%~a!g}qLG10ee zMcHzqkJL{#O$OCUv3H3|&R6=G86-`P z3fNj2j*$%`5FLfRwz3`hQC>3(2Rr2VL+7kjie0L+jL^}0_V>mxE`govCCe2GOMwR_ zDFutcJH5i0j=h74NJQEd(LHW$o4aX2N-txiV?xKQ%h)@mkNn6u|8wNbV1(<6<=s<7 zS1L8O`d*v|`9#VyH0e+<^<9Dz-aF`O|3dj5eL1jL{l<>}eXDx~rHEXq4XHaf^VZ52 z3=!&v(FT;Hshfyw`UDf8P^pVLGonK>!&HY15JgEt;d))W=@Rs2CgCEtGxF%}al!>dcyA~@9NKBPSQ6jB15amrxRD8y; zr5CM4K3`ur$jBZ(+~4Q58r5ugieQ~Hf<_3023&354)v2MKa3p8f37=d}cR#8jh)A=IhqA;e2!%ZZwkaaWHNiKkf%%)}S@ej|(aDN0ofSwo~}{C%2+w<9?M$&1E; zD*gmW8k!sJe6S3~?~)v^N;yC9W}qN5Yt&M#lmr$oqYs%BEUE|l^ugZ_gbveiveWBZ zDDesxCLknuW`o$+QNT5uzfMGWyD#Y$%Bl!)eUBLS& zdtfs70Gk52rfdH`-gqYdpdr_)GjL9eg>Q+_n?IPH&hq##=7$X86c=ZZ|c2b`yM&ujhUi^%sj!eFf!@gEtC6tF-FD) zWwNqT<<6G&+fF;as3J^%w`;MdZ$Y7TMbEI|t}4%3){KvYgxVPr0`-tCV1U5^jE52`)AM7KBcq`80^9<0kn}sRUXNgfZxQ#=S z;OXc9k4wdyD=COOi);SpX5|})?nQ0tClr0y&~TJjZc?jiPMIF74v_EgTX* z+G#;MItx|adFESn`hm=*{gxSfT@{RbSJJjsN~XU%^csby&*=&OUx)sW!u$s=jBh05 zfnPG#K7R};0#{Gy*gQ+2<)xF<8w2V4@U3T%myg?SRzB{ZG9Nu_P0RCmrmx;Cpve!x zQtJlxr4A48W}#&EWosY+3xpQ7@@}`1g4Q$B-N_T8wrzjvF!Nn5yOUgG@1kO>^gZ6} zdM63t*6znBSzn(i9j{g?qO=cMFrs4@9}_e`&%JmRFG|Re>&@KE#j?&`G0@ic&n-u^ z9k;Z#+!c^)tzD>8^9Py8W2Oq{>m~0zRR|Pm&++w`Y0GDj?Y121^4e3MCa%1jO$$(Y zI|M1(Ewk*wqJ~Czp8%hJUax+-3miIkR(Wz-uh>N6_?F0#9i1?RE-1ttReWnN928#X z>!lrG|2T8I!yA#Us;z!DdA4|Mz@4V;CD z)9pE`$mYf=YT;T$*zDkTt2kf2MO!;B95AmmNgkUcJJ=YTKpv({v~oDe%Jku_u57wI zpFUp99m!KS;gTH*DZF3F_==xRF}Km)&jvZ|kmnhEui0+6ry2dxn+3)>e9TQ=^O!vA zDw~kd((Q(yQ__sgM5JZb5rf>nL}e-EtLJOz7!B}JSZ7#)9^lO1*ZP|uYTf6PT#C!< zY4<-wI@;`^Jp!ht;p1`0MmH?U=gJrt3){hk>_PrURlVhewfYB5y^5E^_Ij)GWFym?T`+GC9AyK+6TpNY`@ff%A$R6utU!2OSN|W`NdPHE-JN! z@YprF{K&X{`+Dza)20n;rqb=!ICGfzs-|MDg)SrXJi%=Qqj(GJw1fHj=ySaNrH}1m zd>>HDdK}!xbK?+3o4L`-PKJXH8Suvs;x_KJ5Cpc68!A{^%0bQZV>e<%9<}C^>5`@S=sG_j_n}IpC??RJEFU+in$8dnSkEjua75@ zG~3>VcD(74(aySwBtEU}S|S8Kzg%-n>tQ{3tzKQf-`dq2ymy7VA+gkvR_atPL2s)b zNs!%v>WM7*%y@^0az==Us7YtmKl}KO*y9hd!PpJZb!umnmKTfR*B9*R#RiLdJ0~;M zw0!LI4}b@V%WHjS=sL}jPH=&QALFv{GG z+POfD%l#Y$O-yDO@29_6u?{WZ37)h)LzMpmfFaLxL3p(FW660fa&6KJ)qIS~iAps? z-+}r!mnV`&Fdt@krtNM*&-d?rBaRk0r-=#5#DczBxf!#?EchuP|LF7T(BXIT_jmx! zDWC3n4@mc@mP+{OBlS~@x*!tn{z?^9nQ94!)|WHoTX7LKcW#+BPt|#kg8DjTGjAq` zyG4{eTr>O4Tw97RV7m@x$ONEVKzAyO4}bOhFxl|YS>V^Tiu~_s;Ngn~N7L7gV|4Qg zYQ~+Yi)d3$j*ktBkod&X@safDgWn^pO$t_Ld^!kKaNGIBaLBmYaQ(u1EBti2dD48QGM#RxR)S;jnCdhXVpEf{w%N^Jcv5W7a7G)~BDHBa=-<;F0_%k4zI`J_mT3k3L$tE<$Jk77juVtfU74i9Kex7X8 z@I#Y$_#*Fa`8P0o*5>GOf8W%-Rlegjgr#N_eXCDLb1I(ql?45ee6_1vA`+G=T$hLr z@}vfBJPMk+x&Cyz3Z*=*-`z}*DgmRqXCcZumjx7ka^)=8?J-7ELl?6N*}W>Np+&jYNr?{u5%#1Q3BjU@T15JprU{e+Fgk~44 z`-OoA;p4=FSu3?DB0hT*8@uvLX)@_bS8ZS*q9$(o#QyETFJqR)qv5(s47&hyJtto~ zHQLB2AzXazAp%j|mfdu1rLC^U=^nb|wn@3mYD25<*I8M#NoN%mvegk4jQ-KyE%_yWPXbX(8TSq2ofJ6=7z)H^b6YxxILC{M`aIz}&qhN4~vaye>1W vRmNQXVs#Rr`fxcb62osdltL4)^N6E~!&TH8p8PBA{AB%S_g7f~XMX!XPTC5$ literal 0 HcmV?d00001 diff --git a/synfig-core/tags/stable/examples/walk/frame_02.jpg b/synfig-core/tags/stable/examples/walk/frame_02.jpg new file mode 100755 index 0000000000000000000000000000000000000000..145d8193c2ee221b776da9eaa53d645dedf581f4 GIT binary patch literal 5118 zcmZ8l2{@Ep|9%j9sq99GH~W&YW!KPx5VD6EUR%Y8%#7Wj@+y1w>}5B$kQj;AGGs8a zPGd-xNtVc#op03J_wWDR=eo{0&+mDzbMD_c_c`Zxo}&*(p8!?^U431Eh86%^s0lb) z0@$wkIKu+~8sG!~00LCgGH~Xyi=(ofcQ9B zSvmOxLB|jj0P#`*5)cp;6&Dp2kd;+bl$F)~|Da)GVPWH7<6>v$;$)*HUQTXqPF^uy zUVdI)F*#uYDum^v!Q$fLU}+^KIXNXIZEdaJn>hLhU^_|k66mL+5dvu0Xz18zjyix` zfaYINnf?UL33@tO2F7FaFVnv-XjuVTS{hn9S|&z%#uIeMR_fCUHv04O?3W!)y&ojJ zs1{PV!qIBxgm|dPnV452%r($v?u-<8x6HT20BK%6LkMJPQ!Ly{<5ie zLUk+cH^&Dr2Cg8c6dtY$nI$^4A#0AtfK${DY1!!504?A!>?e;OIW6aJ59hT3;HQBH zfn4&_ym3-`&ANGZ3{$l!k~A~k@Sve5WUhWjg>MZWo~DWgSCOD5Ec1ewLT453;REk} zDwr?J-S$zM_aN$uft6c|i@4zZc~a`z8`@3|djh><4yA_nMs02ZCF9GKm$Em zcN=_lq2+7|-oc(FMx0`wwOeqm$cYO(rgc1;zrf=c z+3e*^RCo< zo@||P7aevzO6NyAtqprNJW7?GhgBlNVtsRvz{w_Su4N~S&xZ%i_=Dk2j@4&}qe%H! zcwJ@Kua5sMX&xcaAV=uIJNx7oekiCgv;S1@UCNBjwOkY1DN%xqx5>LMUvGKrWOB#S z7K2PZ*pDbx1ye&oqVp$7N)y6&sqLI(?0bDBgK{svh}GE4t6ErK=ns6EqKvIgn#%3? zjK@;Mr5vlC-AcXr#hFLf>YCvxweeEZduH2l&$4P--p8!J`RT>)%xE5~(E5`2%k?ox zX|H2mxFHL>K89LPp!Up9XJQBT;)*TDmd{u0TG!b z=07nJP>)>&k%bXrf?!DWrSvLs_Z8iIh&?w1YSsuD_9wca(_6QlMR8|W*F3x4#hrmK zB26}S_){{16<~?>Pt}hp{4W^z{rI-{GqD)XyN_13<`#8HN}RLXB6S|PS2~BW(1WE& z{M_~=i|(V-cNV`m7X*ASyMKNzHo@3ZzB%2;S_u<)ai8CuZn&$_si|E0JmU}w1XG0a zd&Kj+@;LA0rlcR$t~{9=-!R=JE?|rMmN+{D{!nYW)7OY-%~2W?HTpVDaceJHAjcv@ zAbMXSJ#18!T)#aB!v2RQ%PA6SYEqUSv8g!cWuVH_?Q6+0rC0IZ%3OU?5{KKdia-~k zgM2l<#&8P83G{6K(Z06+LSUsU(~(ei<6N5sg!8tFtNqEbx7&x{5M-Xqcr_&^Z^XAJa3qSP9?2L7=zqC+J4&zwUxYQAkJY#)JOH5wxSBa|XJN1GE`U#bD!Y4#>O057R^3d2m-uY#`wV_t(~*C zu<$hVqOR{Al&b0LAH{Z74#<U z&7aZ+XqW&x!h$1Ou?Saw!B_#-y8$?nE7PvMTn?Odb~}qM+2^pocu&O5+#Io=k>4mLd9e-ekGp$qRJtljV9}wMTxA%Zl`$KnsY0_J8y3t6VFpj*;}E=|U(M10TP*iq^;e%+K5x&BthyL4$tC~fb{ z#z*c3c4%D++<|{O*h|yB^Wofu3^e<2gGpD}15nq2dVo6ppMMtocM|?P8R<#3Z|*l1 z)tPsAuXkrNQHW62&BPFtb495qR<@=Q9=%#G$?L6jAfvv%<4x=h?_VzVsxNp_`x}5$(Q6XsUK?kMgO=ACK#|LPf8R`K0U<)8DC!s<*H=HK`o44RY+DK2c?Hy z#{N12irP#*wqS@=5uKEcC!VUqf6b6k2W5@|QPYjZDtS{pUD2WkR-vgQFAIgng^M)J zk)zgs4L3^<=SHz1RI(Ox3FF`RjCrs0sEfAgzsko27)RdT-tO?uaetxo? z3?^*(9$vDK8@PTFqkZ#tw*Y_vM(9tgpEZFA_9WUXztYWTSUUnpCEtz5^7f7IR$t7Z zcy`O%Dc1Uy2aep@v`UR)jX|vnXI4*LVGW4KzyiC@ni#?JVNR)8b;_Q8_!wzXmfqA9 z;@0O~>+&IK<1vHT^5@F2aGUh6_m*VGKF%E4Ypml#H&mWU8}5$uRf3C3Cdibba? z_7v@%Q7(mC601h;xk!$X>b5rUp#NCWsXn)HxivLiPYa`i%@Gy@m1kRl=eD^^LR{gW ziCc@`(@LtjYBe

u1=dow8%{pSG`&$Gk<wt|_><_W>fGp%zl_lu*;+r_Mk&^Tk=_I}RD8*Yedb^-u35DVEh>9XH*-cwX#YXuhXEf40j$gdxat^wyUM z8Iz)MEGD^$E%^3+C%T^(e2d4wZ@?*Y$F~(+a)oWCs99jh+%J67A8pg+nKP!|)klyj z#kvjVZ4y&6__wmLGZhLivj+^MB{z<`(k+z1d>ldbv z03Y@~*SCXjr1KDKczqBYjqI(5S*(d9Ek86B4H?}D3T4n_-#1I*SXq7++nC3Gsqw}N z2RICnpwVXKJbCj+w?8>hyMGj5`^ms|en5S$Y9h;~sT)gNSKfazU$%pA^DD$$(77$F z!R`@7@$A!H@2a-Zu>zZiyEK(-DstS4w23m}KS*(lRGDfd?kzpr_seQtz#OjnmZHkD z{8mg++vxP>hTZPCBVgSI-fn5Kolv^9-!dNW)pY=)UiGM;ryeXn&c(2wYo1nLQXJG> zaaNnhH{C62b#^o7BE=#N^AUblSvTFcdj zF3E45cvH+g+7LwP-rnI3#ZSW1ZX2C}sMsyoM|d@2Rw^y+xYR$tN_G&7CoG#N!VfgR zj_%4=m=z08$A~WB-)Lr~dqoa@*e3I{&&T?c`gXNxeyCOw_)WZ2&I}$))+up|F^w|O z=9o|`?-_2i<7e~Cc)s~S+&B1Z1?cp?9u}9KJ6L~@-L$n2h73-Yf$}$*MC6}VaEqNHr0e5^2Wqg_h3YQ5r;04%nqjxT7w&3Iy2CA@hr~y1s5nn9F3P>CGn*KUSz+_Y`-61xsiCVw974T8 z+-F=eYg0fyDFY6Zux13J#wX5@@L?rljWf)(hddSB>|>q^v9L;L zYcW?30{|v!EOM-ypMe$CF`CEBANmMowUykWThn!$yb9GAeBlscR5l7-4Np$`mJgBk z^6m>n?3fa9=R%TT@dmT|f3#fo*555sJYi8IsuoU2gyUP8n(lp#` zO?bH9XdoYEO?WOLrAF?sjAqYPLcV*Pq29e4_n;pis_5HZwy#QpucKsb-gAUx%k$q! z2f-CJu>f!!Xq=?(@IQu~nw_BI<}guFtME7eqnW^}TOR+e)}&O{G~R6#E-oCG=AhhU z`W;jSOnafLhh4K+FH` zGt5fs6s7aVu(T~9SWePV;p?9O&Gr9o4#&R&SegF9k6YDtwnca2hl;NUrPPyM4nAyS z6a5@=Rjfp^Z@ot=&sHMfSyD#;<+HMBys?r2=FhT9&3yI=jKjIX?e?x)4Ry|o!;4YI z_Mox-x$4VY1X3L)^M2uq6G=iAE9=S9OL#!QhvxN1cuC0)WNhOx;AbhraskBHuOe=?%eMGe1TtOB>j$Z1ICf8hCVqGA8(~3U-WE)NS}8F zK{$XE+({Wb5C{W+=O@j6t=$vAO@MzXQ#?E20+Yzh4J`^;fQ5QR-IskeDPCY_Xq6Pm zUlA|MvJnOTav}4M8p$rvd@(tf5!35Q(ttKws~x1nxdp@jNC>fie(^MirRG9 zryqNiS?eH+Or|TzLI)hIW8!wBd=d67?(g~niWyMa{3MTMUvsZ>yiC*8yjw=62H$Vxjf`=k+>&x^mg0>CfGSpX86J{S0u9NdEy`=N=~j literal 0 HcmV?d00001 diff --git a/synfig-core/tags/stable/examples/walk/frame_03.jpg b/synfig-core/tags/stable/examples/walk/frame_03.jpg new file mode 100755 index 0000000000000000000000000000000000000000..57b583ebe81f3ee0a4762caf2c097bf7b71426c3 GIT binary patch literal 5842 zcmZ8l2|QF^`@e%qlBFz#Mv-LSvK2;){E%gcjKNeh60&dEq6Jwedo*^DJ%btRNV0Fq zmLal?eVxJBz2n#Kec%84|K9t#_j8|f?)g05=Q-y*&vOoc9{vW{wC`%&1weEFfTCT% z;Ud6(#~o?s1%Lns006)=(K5ht6Xp2W3P63KNkE6gz#D+=)TvX#}1-r2OWL` z-UFaNpegzfKn(Q9=uR9-|1J6R2GOwrbaWsP!!gDaC+O);97#cR^bG8mWX>GB34P>z z_GMJMfb16Jgu4x;_SaEyVD{@;UxWNxxw zf;vBX8C6ohn%*-`_iF8oi|ip0V5W7UW2a{aAi)0rDgp#v?HGI9g20Im^h~9gHQU)H=$5a|!d4Ccr|m=F zQld$*FkK_Zx?u*iQtcNvbKMVbfaTm!MWxmjmx$6LMxn`hwN%K4o6EO$ZDsdDxMgS5*7!zIfI1DdszSmJ2 zf=^Q_1CBbMr;tq~FW^_4!p1FJd<1GpZ=0O1IE9;gi9h$Ugb>l(6AlPi#f&aAJ82$W zYJUGg)KfP(j?O2guQ=E~0R|UEfGpbmkDuvT#8$V1ELg{WSE>FmKePUA6dIOh7=IIuiqsb}Qg$Q~+R5S&$}wE{NMJ7a3G+bl^*6hWn7rQ?dIevH(h|D(U-p z1UW@ztkT`}wZ%%XzSi&_UaS{^$vgyH_{;iypL0AXtO7Ltmk@CCzpgmLD5X3$IhQF<}%Z!a#W;5nSFA%C)$QaLKK}tX%ncjRf4{9+(Qwf_^Fmjrh)3^&%(cXt?fT5Kr}$a$Oh}wQY)GOMLl9~I zn8cVAZ5Y3d?r%cpxRl z=|3z>GC$joG_NruEF$onBi)}|m3vW7r;UBfNLX&+#yexEO(#MtIAqP<_?LMePSm~A z=4x$jdcvv?;pOXuDY!*6Y1?IBC%*jWAz)Gz;#m~)oFf1@2B_0~16)1YBmSVFqfW-? zEpD$dM9aUK)zbfF#n-Y@j9P)WA$dq@h}|X?Hf5=5r0{E){bqxtmvR3D@|HrI6l`EL z5;|w#&;9&Di%Vl$j%1v>lxb~*YNRZDQs{fnPiEhCF3-M#^i`6<)@*_;6@kKEa3ZHC zpihmLhM_X3O**KI-NX^fN8y*4Dj8Ry%w6t-)_nn+$YjFXA|C3lH%&PXMkaND12|e< ze{iluVP+b)xn@$fXmAL8BR={Tjh5*w9(}>L7pVd+gyIdc6kK)Wr+D2T0EG;>hM$cNv=C{_K94v0- zaoh5?X0CZ^HQ5dB47KwfO}%Z=vCM$d5te94-WpLj1e|r;%?TskzSW(YsU8)WuIl(U zSMET^gDjKs_BI?iAZxr!K`hmxF939tHbZESKgOnQ#;i9WJLV(4`)-8?8v9WnHZJdG zc?;i|Efz@Zu^r$NJ}^Q2j*9LSahw#;S z8u`lUYF8GnV*C;X)#-!4_hr|{-4yJwP@hR5EYz=K(W|HTR8qxqj8{o0FbuswZ;P`fgoE#)}j z!{D5CKUo0Vw6+*@!FNE$PEywMXY{b>^uFzwo4%u$60)HoCqFyMv6gL`eh_3&m>>YdI{BTdZo<>oQKL+c9Jk=JL*m62Ag?ilWRKT?C#J>8iY zmG^arz)kau<)L}TFjWudUE2#gmu$v^UDi4m*wPpuk)+JX;3UX_6UeX{ovfwd&op3yUE$b_>9q>L5~rGP@#M9Q!|gbUj-} zT^c_kCkM6nm9oa*bJkGv4W*|a(476EPOI4II=SYELI1%G#D@@Yf=ubxFD<1Oe0K2> z?z2`i(y(iT?T?mFtyd11#uu~^pDV1s`r}m9dimy3AZU*f-z4mPl1Y(tOfXl{mC3r` zf<@QtyxBaCfr>|F(9lKATcYPG9YSF?s%9-I`T6$~%NhbOa&im)%XjUnpoq`#&5&gc zf7r_DX7N0eyQ*ci0~*a;k!g3vm152{F^^QuSp=KsU|Wh#aT9~{4qj^oB|BFpm(6W^ zLD$lDI3}~65P}@eJ&KPdHYv>%=N@^O>E97anxZSrbk)w-{d<^2l&|BKZgXk}4)t4W z`N8Zi>HJd($P9VW5;8dXYnG0KS!D*XmdN7^F;nyM-VVovQ*p8{PO}~;Ioc642d_t? zMOz(xUPBQ!i|DL=4e5;cMyKBuiHfzr4uSWPa*I*0@e98IhWpa~Vwj~Nz9bKiHvI1S znlVZEEzgUHp)dh~XF_Xv>Il zvW!dt|5f9oqAP`=hQkIFHR z&n-@ye^?#Y9Pumg+2`W;A?-5Em7N**27KxA=gMS^3?8CQ)&H9NKv{}FQdN1&0>j;g zsHIrICn97YkmSoHSs$~Om-ef48Hb^DhYYj%WQ>eOYKzQI!4!qdcRJSJ3_Q2$T@2Oa z+u0WZQS3iwSHe-TkB${&Q7;FycF2kkD47=T)U1ukt5OK5_c-k^1;ybLE0W{#$&fN~N9f(U zfg1|%w|#uQ?9veuDm{I3iOJ|-#0Bg|O4|b5TG{PtqrG*vct)GEQMJ`TCH(Px>=;*y z?pGV$2@UIKJOM}Z?P${d4cg9P@Ftt8p|BU+gHF=g%gj?7xRa^fyHv}cR??I(BphhN zi^+vVJ6H_uXn zhh{rcuOH_lXtsce0dp}vm_#Jg!UVrc=Ozm9U}zj0hVaDu{Ti*Je(%NfgIP>Z*hd9?7v z#N_tKR9>*Vo#W02u9V~#Va+DrZ(hm3q)e4RM3(qAO9%Srgw|*k1*34cJ8-FIdig&z z`J^YZoamo;P;NJNHb>kr{zgkGK1SGX*+-y`>CSXnSBI8f@r*%#zu&BVZyS!Q;v3>B zN#8B|tU{O9VCKV<*)eb<;(LM5u8N}18apgI6`Y2s;v2kV)zdTLRa|=VWsttG$l79O zX)-b{!t#zHjDtAuC)V<9I7fdfY$yLSZJ`{6ZW^>5Y(Ll?Z-H&ZTAU_5G@6 zdaa(FYktVY&Sn-TG~OXjlhE9-k@Sd@v5EZ`M>P2)9)Z4$$mtI5iAmHgcyQmZdMX#a zQp-yggrbGEFwI;kZ$*Ad3H(N{v0V2oX+RhbGJd)%9of=&xjIUno>d&{p8MPU5K!br z@i!W63T^O)t2Bi@9#4({i--HU2k*w!+47soBgZUtr3pC&;%4bYn^n)yy{dDfh)eNv z{=}))wwzV7&9)0aMk8j#3!bBTM6F80+~T)d?F}tDoRq5Bx&vdx(iZT4O&M-U1UueI zK;bjh>E6-&c$HSI|4CVni+5Tl25bLn7PI=rxVYZ(6KPqe;J?~4hed4bzOpO3<3-j` zY@Yo3KF{2@YkOg@YTPoJ2RD6?X%l?fCKaJVF^#1RJmC0)grc* z6ExijF+Ivt$ibLh{y&1+|kfh4AIb1YPC&iN|{C{Ee4i1 z5vM+$EJO-bX8XOIp0IEL-y&@ry1c0?tK98DU} zdHcMs;!?>9Lag7!RD8_d-7C!t1)nz_J*uYNb%gfPPPvgJ6W7EA2W+@hyFW<@a zN~c*Up_w8l+;d|zwffvQcp~S%b&UdTp|H{H9kVGk(qW!(2;?^}dsF8-I~rQcO|?%i z6?xoV?F@63x}iur{qiu{7AImKuIFE|%^&|hHJGb*@VZB3^wGY_69s0ECRrHw=3Q`` zADL^fu44mV`FxCc(EZoZ7VF&Bo_VI2YuhP%Jrr&wqS_M*hs&-~RF+C(zBKt{o(A8x zzRf{MzEh^k<50Ad z?rvyUWM|symhBhF$(d!S^(5s*x!r@(z{=mUSzh=M1nL5UveDg zw^3THFW?9`I<5gRs}yTcjNKXp{O5llU}JI$;n(|?>?_rH7D5MHW2i`QOm{O{DPK@f zQmK3k#v;4z1^*b*=(LdcI;g+rQ<7_Q{R>kM@824D4&u1Iy@kaG;P?;S+7SC^t?jwd zZ?J`CC@UM~{r9`?$bvJ8ZLUQ%*HdEJ66pO;+u27`o+*Uj5w9%+j^eV{&~qws%Ku#h znqyr@08M>Z^?<0Ep{|TX^~BwC$S`+G(AW0Ub(70|EtoKL$`T=!lyhkbi{Hy9?7&lP zuTQx0`6i4nTEPUeA}RJ%(K?RO$rHbLLbh=YZKs4LMmFD6s~<3FRZA@v( zua?3n%_3lb87z#eA>NP}mmelzHxSo02P!FSuLgAp4C_Bz-@P}g zy%6XW;iN773K|NJ*5Gqj(uk#_#R5hq207Bh$J1B0R`r~QPjTlfK}vjLfK8pGJU23RN-VOUvK^ZFPuH92}*g zmaLLkmpLQsd#US~&MErVHneJ2Q!+F!T0B!{^T)jv;O$-EXy#gH$ F{R_iV(`Wzy literal 0 HcmV?d00001 diff --git a/synfig-core/tags/stable/examples/walk/frame_04.jpg b/synfig-core/tags/stable/examples/walk/frame_04.jpg new file mode 100755 index 0000000000000000000000000000000000000000..e4ed4d6da62516fa2d49aa2a4b557ca4fa882402 GIT binary patch literal 4891 zcmZ8l2{@G9`+f&mN_M6X@nv6P!XSjU;TuA>ghAG_mSq&#DlL{w*2$8|z6>)N*~XSV zrVvSENsPfXD9SpPzm~6m-|sosbwV9;?{lB`Jm-3M-|v0|c#I6-1^|c&0NnNp zusaX%o<+KPhX5de1polCz0e}Sb;|9ki#y=wXT;}aC%-7CTZLP7$< zGQz^5!oo7gB*pej@|dEstgNiEqPqIAW9sTBPwM|U#O@1#mmTyB=wk*+08G3fW?s;4 zJCFf@e%T(=w}OJ;sKbLKupXmtZZydENtJS-+R3Kj;QdRa+csX z_rH~xqgv5o;Sz9L;LYhINi|m~f?)2MK=oG3JIPQhAzsklbZpGbEKJP5#s={oQ8{Jq zpV;Djt0LzO)0d@y+kC2%5*CEr5rA{=AtqjCUO*q%iTVlQN6mcjkIrwG6;zZ;KE6)V zS-1;d4opgDZZ{yP*054y$`7HkEgiLXfq}SPz;adWJ;Ost$MT`qb#H7_-{JC21ht); zdlxuW8ItYvDQ^guK~u&|(fWy5v8s~8ut(J=h&j^Ic$_Tx@TkE)0{vkGjO3u4vtenn zNKYccRd6Js!H$hTiG0a%Od}eUN+pH2>Q;Sttr%=dYb*GhRwD1SZqZI`xRCz;y zk{^jm%WA%SB*=S3c7GCFDlI0!APQgx21H*OAGu6_mSn54ldokkhaX2r=AaL;+PEo2 z`;?cQ_B`GlTo^98U1O)*-7?&AE`_#;>l4cED(OG0`v0hYdOUsy$q_Qj8Q7zA%w!2N zTpRqT*TKHSe{eI%$Zkgq77lB@Iv}An9aojU`tiprpnYN2Gc%~de;3dLl3~*#_Sa9u zPmI5;+=#qg^#;7~hOngBJ8IhkHeihWuX;=zO%G>qqDr~`!%eDYbcn>*r)sMKtE-_7UHqJ8hn%SQi zy_6X=M8Vw8F4c!TPa6|hV}Fw#PKLVMC>_xe<;yx=HE4D==n5XPKco6phKkoiBWuz> zEz;P*+6wUn-gkT+-PuWByYeJ8kknbZ&gUs}9dVz`uf{$}+NOo^zBzHN>|t#R8C>Sh z{(QK2O^yFzOqO#=?72=0V1LvfB>#2U)gm|6Ih33nP~?8n18*})B;f;cs;vjL4PP%> zw3ArUqzTL>A4C*)$$DlzM?IHO>rzKw{*Pc$vQ53wy4H#%WA2hDX?Ixxvd+WkbEnbGm?vr-q&-!H1zs< z-U^tf4c2H+OFJR5Y6P3Qn*HJLxV+{R5tL{dyFVom&0Ws{=9%#ydj@t1ZeE8%_`@Pp zX8x%s?%xH_4Gv-?TJ$jPV8^yx!z^`O^PHmI2%&J>6CTcX(qyy!<~7)xiI<#E(7ng3 zQNN@)bmhClbZ*|(E-zeEb&g_H=e_!rk$-a#d41?WX}I-kBy3Hse|8{SEU*)P)F&IO zz^GPMLzR3Ly`k-~d3*SJwUfsKNLW7Ufj{~JHC?|_IA_t+$@W_2Y|R6SxzAKCQ&do! zL#ak{w7KWOhU@XjRnH0rRRAHgtemiOe({9rHRh z{f;=H9MfV*{~?AL0X9BMe)=2hzYdECX_(0h2azx@hzLgaJDy2MVJL>-ALIb-n9kcT9(D(Tj#S4|97*i1AQ} ze`s!t-RP70vJRPaTY|`q&rk?VNIxtW5jZ_o(=)LBDnxT5zuCE;KWuf018f+n+JA}p z9P~S$y$$d~_U}HEf>U~(n=zr-#c(HR?dteL7Gh55< z5|mv-S7`XG&7v&#q@Q%Vj?GqpTU#}%;IlF5l~2P4t%HVyOJg5iGg672|A%on z@Q~-dsDJMS-x2<>JC{SJ;B;*8D0XWZqBW{CWRD6cH8Q`uiW6QA_=MPY@!QU8f4tMs zmJ5msd^Z1(Z_F3N-b#aSrbzVdf9Ak&gw;Tn11+nX-meaclU^(lEC^-9WJ-GabUAdx z#t74*Moe)%2xjl_oQIX`IW?20Is;n9JNiXk6p;%zZhUmwj8}jxWbsEd9^Wzx#8l9C zCd4a;FB?wMLk}}qq`7;Lv}S}a0ejGY0sh&5zG?-vS}^3B{a>_I_}1Sk?3%flEQYbC)6Tl~#dSNd$@&!yD(Y~(RDduS9dN+O-D6w*%u~%P3 zq$S3Nk0d+628a5veVsMD8>%mtosY&pI1^9NnRt~qniFh_OkdeazIr$I!n#irvX`e+ zzp>NP8*ENPOId9cl0y3cZN4*bj0s|hx+MQXA|##Yy=PC zro*F7LfcNh_`R)u(q}qM*_m*e_uKE#pq+{bz7}B!lyjZuI_^5+v&rs735O#t zNULu@hJ|svoc(_Cd&on3UI2Uf^M3#U+@i#-F?;Nw&2hLi{cJtI#fX1~FI{ZH9`g5l z$|2u=+zD)IqGR_<6VJo4eedIMhK7$bw`uq_=*-l0*6H6`G^xdvai-ErBhRQW?Yt>d zTi&V6Z=52!Bu%H?iynmI3?Qp|)4JYYcPm52$Axu^pldaVj3ZRq#fiaydJU zy4(}yuaEu4>t7Ly>5jSyWj#rhH@K>iM)L^DxAR#?qc5`-a7a<4y9@U+VVR*zRgIn< z0C+|nWEK7o9srn~#Ve|DD+O3C`)p|}?*b3z_-9>riuguCjEq~i`4BGK)Ht8s_DrRo zAy)p6ZaY{$EQUipe>m5CQu?#JL|vLRs=>g*si*fo8e*94B=|XIdFyrV>l=N(nbWlm z!Hh_@e)D>3#bZ?WFy$PqcVwt&gj^x^Ncb^=wviAFx>1;MbQhq%vYk()v^V9+b<4ww zz#Zz{d8T0%ke00SQOb;^vW9a_?v}M?E2KWrKxQ)TaltgHi;Euz@AQuhRh@#J2bfR( zVg>sBt%0~W!{X!1e4(+JCr){Vy`d3qqz3`^MgE=j4oAFF`Bs`m_3j~LHt2q9n~6a| zl^)Ox&n2^T)}eBR`M=b0&-i9$)#HhX0TYMr^fc z&6@l=F!XHY-Dd3MaWZ=^R0>^fLnE&4LYY2%CC(BZ(N7S-bkF`BmFOC=ngFAe-d zJK<19dcOUMv1fUR?8;n=LZ`&JrhWObO3V?p+_8)%i8g6MK zgUQwJniF8J=Q1V9BR7#2W{$WbymEk#Gs9m-H!TX7ouZk}rlPv-@)E_b-gY__!sVEH zd2(8Bzo`{`M}0^<-Y9@@Bo3uByWHYkRIn;dSNd8mOD8%A+g5#euq^(m#!H2=?1I-D zUc=lwK-ZSK=^$ithPbk0dgiOr;xH9Og+-TpH0HsG@=Z@!Z~aV&&QE_UaAJ{I7E1LU zIFCDlcq}IJWHDaRUHlU~=t83!=AJ&B9(TH{v-IvRpsb+1nRqy8yw+_P9p-*P9fB2$ zxt2oR1=7{YV+oH)MN+QAQ2>ihdt^)MljlYnMe9k{M4(O6t1O&&%L^6?WpTtsGz=gGr+;G*k($oWGt-6gZqrkLKwOyp|LLx0)Joy z0Jbz!*p26=45!-%Y>G6;>fisBoNAzCN~gZr*ETR39urLPQc-StNnPa7k?hO>AF`ZS zE0|bR;};&Cw90;QfCA`-?kUBQ;JU!}A~M3JAGPH4>v)e5EZmR}CrW&pzrFl+1<%Y{g0x0iN!1x0i;ZMq3BJk*w7`o6 zylgfcbU2nZmi^?Rp;=4>RN7J3ngo+Ot>PIlq{Mwv1!ujY^%45w_r3WK-v4oT$^Qqu CF__Q* literal 0 HcmV?d00001 diff --git a/synfig-core/tags/stable/examples/walk/walk.sif b/synfig-core/tags/stable/examples/walk/walk.sif new file mode 100644 index 0000000..a3c366a --- /dev/null +++ b/synfig-core/tags/stable/examples/walk/walk.sif @@ -0,0 +1,6597 @@ + + + Simple Walk + Step 1 + Step 2 + Step 3 + Step 4 + Step 1 (Duplicate) + Step 2 (Duplicate) + Step 3 (Duplicate) + Step 4 (Duplicate) + Step 1 (Duplicate) + + + + + -0.1591803279 + 1.8670491803 + + + + + -0.2124590164 + 2.0022950820 + + + + + -0.1573588342 + 1.8941527303 + + + + + -0.1692307692 + 2.0021460968 + + + + + -0.1591803279 + 1.8670491803 + + + + + -0.2124590164 + 2.0022950820 + + + + + -0.1573588342 + 1.8941527303 + + + + + -0.1692307692 + 2.0021460968 + + + + + -0.1591803279 + 1.8670491803 + + + + + + + -0.4993442623 + 1.5596721311 + + + + + -0.5526229508 + 1.6867213115 + + + + + -0.4940315725 + 1.5501940175 + + + + + -0.4974358974 + 1.6792531583 + + + + + -0.4993442623 + 1.5596721311 + + + + + -0.5526229508 + 1.6867213115 + + + + + -0.4940315725 + 1.5501940175 + + + + + -0.4974358974 + 1.6792531583 + + + + + -0.4993442623 + 1.5596721311 + + + + + + + -0.2944262295 + 1.1744262295 + + + + + -0.3108196721 + 1.3178688525 + + + + + -0.2762112933 + 1.1928776848 + + + + + -0.2358974359 + 1.3051073724 + + + + + -0.2944262295 + 1.1744262295 + + + + + -0.3108196721 + 1.3178688525 + + + + + -0.2762112933 + 1.1928776848 + + + + + -0.2358974359 + 1.3051073724 + + + + + -0.2944262295 + 1.1744262295 + + + + + + + 0.0867213115 + 1.5022950820 + + + + + 0.0580327869 + 1.6580327869 + + + + + 0.1017486339 + 1.5256038536 + + + + + 0.1076923077 + 1.6587520194 + + + + + 0.0867213115 + 1.5022950820 + + + + + 0.0580327869 + 1.6580327869 + + + + + 0.1017486339 + 1.5256038536 + + + + + 0.1076923077 + 1.6587520194 + + + + + 0.0867213115 + 1.5022950820 + + + + + + + -0.5163934426 + 0.0614754098 + + + + + -0.5080719023 + 0.0636232052 + + + + + -0.4929217071 + 0.0675334814 + + + + + -0.4929217071 + 0.0675334814 + + + + + -0.5163934426 + 0.0614754098 + + + + + -0.5080719023 + 0.0636232052 + + + + + -0.4929217071 + 0.0675334814 + + + + + -0.4929217071 + 0.0675334814 + + + + + -0.5163934426 + 0.0614754098 + + + + + + + -0.1318537200 + -0.5189425525 + + + + + -0.1261096516 + -0.5274814067 + + + + + -0.1227987172 + -0.5866765333 + + + + + -0.1227987172 + -0.5866765333 + + + + + -0.1318537200 + -0.5189425525 + + + + + -0.1261096516 + -0.5274814067 + + + + + -0.1227987172 + -0.5866765333 + + + + + -0.1227987172 + -0.5866765333 + + + + + -0.1318537200 + -0.5189425525 + + + + + + + 0.4918032787 + -0.0614754098 + + + + + 0.4918032787 + -0.0122950820 + + + + + 0.4918032787 + -0.0122950820 + + + + + 0.4918032787 + -0.0122950820 + + + + + 0.4918032787 + -0.0614754098 + + + + + 0.4918032787 + -0.0122950820 + + + + + 0.4918032787 + -0.0122950820 + + + + + 0.4918032787 + -0.0122950820 + + + + + 0.4918032787 + -0.0614754098 + + + + + + + 0.0491803279 + 0.6885245902 + + + + + 0.0614754098 + 0.6762295082 + + + + + 0.0731483818 + 0.6953140402 + + + + + 0.0769230769 + 0.6304100228 + + + + + 0.0491803279 + 0.6885245902 + + + + + 0.0614754098 + 0.6762295082 + + + + + 0.0731483818 + 0.6953140402 + + + + + 0.0769230769 + 0.6304100228 + + + + + 0.0491803279 + 0.6885245902 + + + + + + + + + + + + + + + + + + + + + -0.0559469829 + -0.0088164493 + + + + + -0.0657830485 + 0.1042477605 + + + + + -0.0497888836 + 0.0327505022 + + + + + -0.0497888836 + 0.0327505022 + + + + + -0.0559469829 + -0.0088164493 + + + + + -0.0657830485 + 0.1042477605 + + + + + -0.0497888836 + 0.0327505022 + + + + + -0.0497888836 + 0.0327505022 + + + + + -0.0559469829 + -0.0088164493 + + + + + + + -0.0603674541 + -0.2963286713 + + + + + -0.1811023622 + -0.1431257911 + + + + + -0.1659316763 + -0.2251473665 + + + + + -0.1087641866 + -0.2255329100 + + + + + -0.0603674541 + -0.2963286713 + + + + + -0.1811023622 + -0.1431257911 + + + + + -0.1659316763 + -0.2251473665 + + + + + -0.1087641866 + -0.2255329100 + + + + + -0.0603674541 + -0.2963286713 + + + + + + + 0.0472440945 + -0.7149719650 + + + + + -0.2377049180 + -0.5070044709 + + + + + -0.2540983607 + -0.5807749627 + + + + + -0.1333543506 + -0.5615984837 + + + + + 0.0472440945 + -0.7149719650 + + + + + -0.2377049180 + -0.5070044709 + + + + + -0.2540983607 + -0.5807749627 + + + + + -0.1333543506 + -0.5615984837 + + + + + 0.0472440945 + -0.7149719650 + + + + + + + 0.2533817888 + -1.1100952351 + + + + + -0.1936519009 + -0.8563859984 + + + + + -0.3333333333 + -1.0197367071 + + + + + -0.0554854981 + -1.1072219761 + + + + + 0.2533817888 + -1.1100952351 + + + + + -0.1936519009 + -0.8563859984 + + + + + -0.3333333333 + -1.0197367071 + + + + + -0.0554854981 + -1.1072219761 + + + + + 0.2533817888 + -1.1100952351 + + + + + + + 0.4843529174 + -1.5165637666 + + + + + -0.0559469829 + -1.1164786792 + + + + + -0.3743589744 + -1.5015134725 + + + + + 0.0122950820 + -1.6464232489 + + + + + 0.4843529174 + -1.5165637666 + + + + + -0.0559469829 + -1.1164786792 + + + + + -0.3743589744 + -1.5015134725 + + + + + 0.0122950820 + -1.6464232489 + + + + + 0.4843529174 + -1.5165637666 + + + + + + + 0.5243808859 + -1.7473683226 + + + + + 0.0915940007 + -1.2836309006 + + + + + -0.4899117276 + -1.6015605770 + + + + + -0.1065573770 + -1.7619970194 + + + + + 0.5243808859 + -1.7473683226 + + + + + 0.0915940007 + -1.2836309006 + + + + + -0.4899117276 + -1.6015605770 + + + + + -0.1065573770 + -1.7619970194 + + + + + 0.5243808859 + -1.7473683226 + + + + + + + 0.3604464597 + -1.9899029184 + + + + + 0.1768399023 + -1.7944799687 + + + + + -0.3333333333 + -1.7656188217 + + + + + -0.6787148594 + -1.6775405299 + + + + + -0.7846153846 + -1.6706478688 + + + + + -0.2686002522 + -1.9634839758 + + + + + 0.3604464597 + -1.9899029184 + + + + + 0.1768399023 + -1.7944799687 + + + + + -0.7846153846 + -1.6706478688 + + + + + -0.2686002522 + -1.9634839758 + + + + + 0.3604464597 + -1.9899029184 + + + + + + + 0.6555284269 + -1.9964579075 + + + + + 0.3729508197 + -1.5871676539 + + + + + -0.4724409449 + -1.9700566496 + + + + + 0.0368852459 + -2.0160953800 + + + + + 0.6555284269 + -1.9964579075 + + + + + 0.3729508197 + -1.5871676539 + + + + + -0.4724409449 + -1.9700566496 + + + + + 0.0368852459 + -2.0160953800 + + + + + 0.6555284269 + -1.9964579075 + + + + + + + 0.8686431810 + -1.5933260794 + + + + + 0.4549180328 + -1.2838889654 + + + + + -0.1702395965 + -1.9622163147 + + + + + 0.3010718789 + -1.9880741397 + + + + + 0.8686431810 + -1.5933260794 + + + + + 0.4549180328 + -1.2838889654 + + + + + -0.1702395965 + -1.9622163147 + + + + + 0.3010718789 + -1.9880741397 + + + + + 0.8686431810 + -1.5933260794 + + + + + + + 0.8653644925 + -1.5244986941 + + + + + 0.4344262295 + -1.2306102769 + + + + + -0.1497477932 + -1.9458228721 + + + + + 0.3174653216 + -1.9593856151 + + + + + 0.8653644925 + -1.5244986941 + + + + + 0.4344262295 + -1.2306102769 + + + + + -0.1497477932 + -1.9458228721 + + + + + 0.3174653216 + -1.9593856151 + + + + + 0.8653644925 + -1.5244986941 + + + + + + + 0.6106557377 + -1.2405863985 + + + + + 0.1885245902 + -1.0256922441 + + + + + -0.1333333333 + -1.6347708757 + + + + + 0.2764817150 + -1.5003692217 + + + + + 0.6106557377 + -1.2405863985 + + + + + 0.1885245902 + -1.0256922441 + + + + + -0.1333333333 + -1.6347708757 + + + + + 0.2764817150 + -1.5003692217 + + + + + 0.6106557377 + -1.2405863985 + + + + + + + 0.3866759679 + -0.9059884963 + + + + + -0.0200000000 + -0.6786407767 + + + + + -0.1179487179 + -1.0453631308 + + + + + 0.1535308953 + -1.0290577463 + + + + + 0.3866759679 + -0.9059884963 + + + + + -0.0200000000 + -0.6786407767 + + + + + -0.1179487179 + -1.0453631308 + + + + + 0.1535308953 + -1.0290577463 + + + + + 0.3866759679 + -0.9059884963 + + + + + + + 0.2522497384 + -0.5061341627 + + + + + 0.0600000000 + -0.2786407767 + + + + + 0.0000000000 + -0.5687116501 + + + + + 0.0879571248 + -0.5493034018 + + + + + 0.2522497384 + -0.5061341627 + + + + + 0.0600000000 + -0.2786407767 + + + + + 0.0000000000 + -0.5687116501 + + + + + 0.0879571248 + -0.5493034018 + + + + + 0.2522497384 + -0.5061341627 + + + + + + + 0.2600000000 + -0.0286407767 + + + + + 0.2000000000 + 0.0713592233 + + + + + 0.2400000000 + -0.0486407767 + + + + + 0.2500000000 + 0.0313592233 + + + + + 0.2600000000 + -0.0286407767 + + + + + 0.2000000000 + 0.0713592233 + + + + + 0.2400000000 + -0.0486407767 + + + + + 0.2500000000 + 0.0313592233 + + + + + 0.2600000000 + -0.0286407767 + + + + + + + -0.0295081967 + -0.2851420248 + + + + + -0.0484554815 + -0.2091569984 + + + + + -0.1580103984 + -0.2668059030 + + + + + -0.0660179645 + -0.1996079883 + + + + + -0.0295081967 + -0.2851420248 + + + + + -0.0484554815 + -0.2091569984 + + + + + -0.1580103984 + -0.2668059030 + + + + + -0.0660179645 + -0.1996079883 + + + + + -0.0295081967 + -0.2851420248 + + + + + + + 0.0418308803 + -0.3414608737 + + + + + -0.0337503330 + -0.1428257896 + + + + + -0.0551720781 + -0.2118057359 + + + + + -0.0688524590 + -0.3343044428 + + + + + 0.0418308803 + -0.3414608737 + + + + + -0.0337503330 + -0.1428257896 + + + + + -0.0551720781 + -0.2118057359 + + + + + -0.0688524590 + -0.3343044428 + + + + + 0.0418308803 + -0.3414608737 + + + + + + + 0.1889763780 + -0.4484265734 + + + + + 0.0000000000 + -0.3565573770 + + + + + -0.0967239945 + -0.3638759355 + + + + + -0.0368852459 + -0.4549180328 + + + + + 0.1889763780 + -0.4484265734 + + + + + 0.0000000000 + -0.3565573770 + + + + + -0.0967239945 + -0.3638759355 + + + + + -0.0368852459 + -0.4549180328 + + + + + 0.1889763780 + -0.4484265734 + + + + + + + 0.2677165354 + -0.3854895105 + + + + + 0.1137425879 + -0.2920193520 + + + + + -0.0593671776 + -0.3396515348 + + + + + 0.2827868852 + -0.6279353124 + + + + + 0.2677165354 + -0.3854895105 + + + + + 0.1137425879 + -0.2920193520 + + + + + -0.0593671776 + -0.3396515348 + + + + + 0.2827868852 + -0.6279353124 + + + + + 0.2677165354 + -0.3854895105 + + + + + + + 0.1417322835 + -0.2910839161 + + + + + 0.0983606557 + -0.1376547706 + + + + + -0.0307692308 + -0.0768792711 + + + + + -0.0548549812 + -0.1430801143 + + + + + 0.1417322835 + -0.2910839161 + + + + + 0.0983606557 + -0.1376547706 + + + + + -0.0307692308 + -0.0768792711 + + + + + -0.0548549812 + -0.1430801143 + + + + + 0.1417322835 + -0.2910839161 + + + + + + + 0.0295081967 + -0.2113142324 + + + + + 0.1081967213 + -0.1376547706 + + + + + -0.0803909205 + -0.0990185417 + + + + + -0.1475409836 + -0.0885245902 + + + + + 0.0295081967 + -0.2113142324 + + + + + 0.1081967213 + -0.1376547706 + + + + + -0.0803909205 + -0.0990185417 + + + + + -0.1475409836 + -0.0885245902 + + + + + 0.0295081967 + -0.2113142324 + + + + + + + -0.1752020157 + -0.0818492312 + + + + + -0.0295081967 + -0.5604515659 + + + + + -0.3846153846 + 0.1383826879 + + + + + -0.1475409836 + -0.0959016393 + + + + + -0.1752020157 + -0.0818492312 + + + + + -0.0295081967 + -0.5604515659 + + + + + -0.3846153846 + 0.1383826879 + + + + + -0.1475409836 + -0.0959016393 + + + + + -0.1752020157 + -0.0818492312 + + + + + + + -0.1040028377 + -0.3782720388 + + + + + 0.2754098361 + -0.3244719592 + + + + + -0.0722891566 + -0.4083629893 + + + + + -0.1846153846 + -0.1845102506 + + + + + -0.0803909205 + -0.2847887381 + + + + + -0.1040028377 + -0.3782720388 + + + + + 0.2754098361 + -0.3244719592 + + + + + -0.1846153846 + -0.1845102506 + + + + + -0.0803909205 + -0.2847887381 + + + + + -0.1040028377 + -0.3782720388 + + + + + + + 0.3648144671 + -0.0579954866 + + + + + 0.3464033700 + 0.1245283750 + + + + + 0.1491217444 + -0.3789955731 + + + + + 0.2090163934 + -0.1475409836 + + + + + 0.3648144671 + -0.0579954866 + + + + + 0.3464033700 + 0.1245283750 + + + + + 0.1491217444 + -0.3789955731 + + + + + 0.2090163934 + -0.1475409836 + + + + + 0.3648144671 + -0.0579954866 + + + + + + + 0.2655737705 + 0.0024160383 + + + + + 0.1352459016 + 0.2336065574 + + + + + 0.2571774683 + -0.1051467084 + + + + + 0.2827868852 + 0.0122950820 + + + + + 0.2655737705 + 0.0024160383 + + + + + 0.1352459016 + 0.2336065574 + + + + + 0.2571774683 + -0.1051467084 + + + + + 0.2827868852 + 0.0122950820 + + + + + 0.2655737705 + 0.0024160383 + + + + + + + 0.3344262295 + 0.3515533718 + + + + + 0.1721311475 + 0.2827868852 + + + + + 0.2992125984 + -0.0393356643 + + + + + 0.3196721311 + -0.0122950820 + + + + + 0.3344262295 + 0.3515533718 + + + + + 0.1721311475 + 0.2827868852 + + + + + 0.2992125984 + -0.0393356643 + + + + + 0.3196721311 + -0.0122950820 + + + + + 0.3344262295 + 0.3515533718 + + + + + + + -0.0000000000 + 0.0860655738 + + + + + -0.0000000000 + 0.0860655738 + + + + + 0.0675283733 + 0.0136294945 + + + + + 0.0675283733 + 0.0136294945 + + + + + -0.0000000000 + 0.0860655738 + + + + + -0.0000000000 + 0.0860655738 + + + + + 0.0675283733 + 0.0136294945 + + + + + 0.0675283733 + 0.0136294945 + + + + + -0.0000000000 + 0.0860655738 + + + + + + + -0.0614754098 + 0.0614754098 + + + + + -0.0614754098 + 0.0614754098 + + + + + 0.0122950820 + 0.0570042110 + + + + + 0.0122950820 + 0.0570042110 + + + + + -0.0614754098 + 0.0614754098 + + + + + -0.0614754098 + 0.0614754098 + + + + + 0.0122950820 + 0.0570042110 + + + + + 0.0122950820 + 0.0570042110 + + + + + -0.0614754098 + 0.0614754098 + + + + + + + -0.2182246251 + 0.2717099026 + + + + + -0.2827868852 + 0.2090163934 + + + + + 0.0307692308 + 0.4920273349 + + + + + -0.0983606557 + 0.4795081967 + + + + + -0.2182246251 + 0.2717099026 + + + + + -0.2827868852 + 0.2090163934 + + + + + 0.0307692308 + 0.4920273349 + + + + + -0.0983606557 + 0.4795081967 + + + + + -0.2182246251 + 0.2717099026 + + + + + + + -0.2416114406 + 0.3890396082 + + + + + -0.0614754098 + 0.5163934426 + + + + + 0.0307692308 + 0.5227790433 + + + + + -0.2581967213 + 0.6031974598 + + + + + -0.2416114406 + 0.3890396082 + + + + + -0.0614754098 + 0.5163934426 + + + + + 0.0307692308 + 0.5227790433 + + + + + -0.2581967213 + 0.6031974598 + + + + + -0.2416114406 + 0.3890396082 + + + + + + + -0.0916114405 + 0.4328649041 + + + + + 0.1653543307 + 0.3068181818 + + + + + 0.1538461538 + 0.3690205011 + + + + + 0.0614754098 + 0.4057377049 + + + + + -0.0916114405 + 0.4328649041 + + + + + 0.1653543307 + 0.3068181818 + + + + + 0.1538461538 + 0.3690205011 + + + + + 0.0614754098 + 0.4057377049 + + + + + -0.0916114405 + 0.4328649041 + + + + + + + 0.0900000000 + 0.6000000000 + + + + + 0.1108170905 + 0.4308616152 + + + + + 0.2195487107 + 0.3607297437 + + + + + 0.1200000000 + 0.3600000000 + + + + + 0.0900000000 + 0.6000000000 + + + + + 0.1108170905 + 0.4308616152 + + + + + 0.2195487107 + 0.3607297437 + + + + + 0.1200000000 + 0.3600000000 + + + + + 0.0900000000 + 0.6000000000 + + + + + + + -0.0778688525 + -0.0256481977 + + + + + -0.0778688525 + -0.0256481977 + + + + + -0.1300000000 + 0.0813592233 + + + + + -0.0778688525 + -0.0256481977 + + + + + -0.0615384615 + 0.0202459731 + + + + + -0.0778688525 + -0.0256481977 + + + + + -0.1300000000 + 0.0813592233 + + + + + -0.0778688525 + -0.0256481977 + + + + + -0.0615384615 + 0.0202459731 + + + + + -0.0778688525 + -0.0256481977 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + -0.1393442623 + 0.9271737861 + + + + + -0.1393442623 + 0.9271737861 + + + + + -0.0860655738 + 0.7919278844 + + + + + -0.0950819672 + 0.9420413163 + + + + + -0.1393442623 + 0.9271737861 + + + + + -0.1393442623 + 0.9271737861 + + + + + -0.0860655738 + 0.7919278844 + + + + + -0.0950819672 + 0.9420413163 + + + + + -0.1393442623 + 0.9271737861 + + + + + + + -0.1639344262 + 0.5091409992 + + + + + 0.0000000000 + 0.5419278844 + + + + + 0.1475409836 + 0.3943869008 + + + + + -0.0360655738 + 0.6568992915 + + + + + -0.1639344262 + 0.5091409992 + + + + + 0.0000000000 + 0.5419278844 + + + + + 0.1475409836 + 0.3943869008 + + + + + -0.0360655738 + 0.6568992915 + + + + + -0.1639344262 + 0.5091409992 + + + + + + + -0.2868852459 + 0.1771737861 + + + + + -0.0262295082 + 0.1029634294 + + + + + 0.1721311475 + 0.2550426385 + + + + + -0.0426229508 + 0.3619247832 + + + + + -0.2868852459 + 0.1771737861 + + + + + -0.0262295082 + 0.1029634294 + + + + + 0.1721311475 + 0.2550426385 + + + + + -0.0426229508 + 0.3619247832 + + + + + -0.2868852459 + 0.1771737861 + + + + + + + -0.3934426230 + -0.2859409680 + + + + + 0.0655737705 + -0.3422732785 + + + + + 0.2827868852 + -0.3310229352 + + + + + -0.1245901639 + -0.2345792227 + + + + + -0.3934426230 + -0.2859409680 + + + + + 0.0655737705 + -0.3422732785 + + + + + 0.2827868852 + -0.3310229352 + + + + + -0.1245901639 + -0.2345792227 + + + + + -0.3934426230 + -0.2859409680 + + + + + + + -0.1475409836 + -0.2859409680 + + + + + 0.2393442623 + -0.2144509916 + + + + + 0.4795081967 + -0.2285639189 + + + + + 0.1016393443 + -0.1657518374 + + + + + -0.1475409836 + -0.2859409680 + + + + + 0.2393442623 + -0.2144509916 + + + + + 0.4795081967 + -0.2285639189 + + + + + 0.1016393443 + -0.1657518374 + + + + + -0.1475409836 + -0.2859409680 + + + + + + + -0.1311475410 + 0.0952065730 + + + + + 0.1540983607 + 0.2275082218 + + + + + 0.3606557377 + 0.2345508352 + + + + + 0.1049180328 + 0.2996523869 + + + + + -0.1311475410 + 0.0952065730 + + + + + 0.1540983607 + 0.2275082218 + + + + + 0.3606557377 + 0.2345508352 + + + + + 0.1049180328 + 0.2996523869 + + + + + -0.1311475410 + 0.0952065730 + + + + + + + 0.0245901639 + 0.5091409992 + + + + + 0.1475409836 + 0.6273625554 + + + + + 0.2459016393 + 0.6976655893 + + + + + 0.1344262295 + 0.6902039330 + + + + + 0.0245901639 + 0.5091409992 + + + + + 0.1475409836 + 0.6273625554 + + + + + 0.2459016393 + 0.6976655893 + + + + + 0.1344262295 + 0.6902039330 + + + + + 0.0245901639 + 0.5091409992 + + + + + + + 0.0778688525 + 0.9927475566 + + + + + 0.0721311475 + 1.0695578799 + + + + + 0.0778688525 + 0.9968459172 + + + + + 0.0885245902 + 1.1195557174 + + + + + 0.0778688525 + 0.9927475566 + + + + + 0.0721311475 + 1.0695578799 + + + + + 0.0778688525 + 0.9968459172 + + + + + 0.0885245902 + 1.1195557174 + + + + + 0.0778688525 + 0.9927475566 + + + + + + + 0.2090163934 + -0.3811475410 + + + + + 0.2090163934 + -0.3811475410 + + + + + 0.3442622951 + -0.3811475410 + + + + + 0.1180327869 + -0.2949745084 + + + + + 0.2090163934 + -0.3811475410 + + + + + 0.2090163934 + -0.3811475410 + + + + + 0.3442622951 + -0.3811475410 + + + + + 0.1180327869 + -0.2949745084 + + + + + 0.2090163934 + -0.3811475410 + + + + + + + -0.0737704918 + -0.2213114754 + + + + + 0.0368852459 + -0.2704918033 + + + + + 0.0245901639 + -0.1106557377 + + + + + 0.0098360656 + -0.2064821559 + + + + + -0.0737704918 + -0.2213114754 + + + + + 0.0368852459 + -0.2704918033 + + + + + 0.0245901639 + -0.1106557377 + + + + + 0.0098360656 + -0.2064821559 + + + + + -0.0737704918 + -0.2213114754 + + + + + + + -0.0983606557 + -0.2581967213 + + + + + -0.0737704918 + -0.3811475410 + + + + + 0.0122950820 + -0.1475409836 + + + + + -0.0737704918 + -0.3811475410 + + + + + -0.0983606557 + -0.2581967213 + + + + + -0.0737704918 + -0.3811475410 + + + + + 0.0122950820 + -0.1475409836 + + + + + -0.0737704918 + -0.3811475410 + + + + + -0.0983606557 + -0.2581967213 + + + + + + + 0.0614754098 + -0.7254098361 + + + + + 0.3344262295 + -0.3948069920 + + + + + 0.3811475410 + -0.5778688525 + + + + + 0.1081967213 + -0.6576243131 + + + + + 0.0614754098 + -0.7254098361 + + + + + 0.3344262295 + -0.3948069920 + + + + + 0.3811475410 + -0.5778688525 + + + + + 0.1081967213 + -0.6576243131 + + + + + 0.0614754098 + -0.7254098361 + + + + + + + -0.0737704918 + 0.5040983607 + + + + + -0.2040983607 + 0.5083519396 + + + + + -0.1229508197 + 0.5163934426 + + + + + -0.0983606557 + 0.8109316030 + + + + + -0.0737704918 + 0.5040983607 + + + + + -0.2040983607 + 0.5083519396 + + + + + -0.1229508197 + 0.5163934426 + + + + + -0.0983606557 + 0.8109316030 + + + + + -0.0737704918 + 0.5040983607 + + + + + + + 0.0368852459 + 0.3196721311 + + + + + -0.0122950820 + 0.3196721311 + + + + + 0.0122950820 + 0.3319672131 + + + + + 0.0393442623 + 0.2277362113 + + + + + 0.0368852459 + 0.3196721311 + + + + + -0.0122950820 + 0.3196721311 + + + + + 0.0122950820 + 0.3319672131 + + + + + 0.0393442623 + 0.2277362113 + + + + + 0.0368852459 + 0.3196721311 + + + + + + + 0.1352459016 + 0.3688524590 + + + + + -0.0122950820 + 0.2950819672 + + + + + -0.1721311475 + 0.3073770492 + + + + + -0.0196721311 + 0.3146394756 + + + + + 0.1352459016 + 0.3688524590 + + + + + -0.0122950820 + 0.2950819672 + + + + + -0.1721311475 + 0.3073770492 + + + + + -0.0196721311 + 0.3146394756 + + + + + 0.1352459016 + 0.3688524590 + + + + + + + -0.1475409836 + 0.3688524590 + + + + + -0.0491803279 + 0.1769847050 + + + + + -0.1721311475 + 0.3811475410 + + + + + -0.1573770492 + 0.1966496723 + + + + + -0.1475409836 + 0.3688524590 + + + + + -0.0491803279 + 0.1769847050 + + + + + -0.1721311475 + 0.3811475410 + + + + + -0.1573770492 + 0.1966496723 + + + + + -0.1475409836 + 0.3688524590 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + -0.2000000000 + -0.0800512233 + + + + + -0.0538812785 + -0.0357894737 + + + + + -0.1384615385 + 0.0532310275 + + + + + -0.0759188562 + -0.0121420631 + + + + + -0.0792911146 + 0.0239430544 + + + + + -0.0538812785 + -0.0357894737 + + + + + -0.1384615385 + 0.0532310275 + + + + + -0.0759188562 + -0.0121420631 + + + + + -0.0792911146 + 0.0239430544 + + + + + -0.0538812785 + -0.0357894737 + + + + + + + -0.2307692308 + -0.3923728064 + + + + + -0.2307718717 + -0.3923704230 + + + + + -0.2307692308 + -0.3923728064 + + + + + 0.0384615385 + -0.6006401138 + + + + + -0.1612583277 + -0.4104831752 + + + + + -0.2307718717 + -0.3923704230 + + + + + -0.2307692308 + -0.3923728064 + + + + + 0.0384615385 + -0.6006401138 + + + + + -0.1612583277 + -0.4104831752 + + + + + -0.2307718717 + -0.3923704230 + + + + + + + -0.3230769231 + -0.7155865309 + + + + + -0.3230769231 + -0.7155865309 + + + + + -0.1641025641 + -0.7809914878 + + + + + 0.2060483569 + -0.9789837850 + + + + + -0.1038812785 + -0.8039257981 + + + + + -0.3230769231 + -0.7155865309 + + + + + -0.1641025641 + -0.7809914878 + + + + + 0.2060483569 + -0.9789837850 + + + + + -0.1038812785 + -0.8039257981 + + + + + -0.3230769231 + -0.7155865309 + + + + + + + -0.3717948718 + -1.4485605731 + + + + + -0.3717948718 + -1.4485605731 + + + + + -0.0717948718 + -1.6304999401 + + + + + 0.4749008159 + -1.3839364434 + + + + + 0.1830039674 + -1.2694132873 + + + + + -0.3717948718 + -1.4485605731 + + + + + -0.0717948718 + -1.6304999401 + + + + + 0.4749008159 + -1.3839364434 + + + + + 0.1830039674 + -1.2694132873 + + + + + -0.3717948718 + -1.4485605731 + + + + + + + -0.5128205128 + -1.5253815195 + + + + + -0.5128205128 + -1.5253815195 + + + + + -0.2102564103 + -1.7381309196 + + + + + 0.4978516356 + -1.7116858972 + + + + + 0.1543154428 + -1.4907247627 + + + + + -0.5128205128 + -1.5253815195 + + + + + -0.2102564103 + -1.7381309196 + + + + + 0.4978516356 + -1.7116858972 + + + + + 0.1543154428 + -1.4907247627 + + + + + -0.5128205128 + -1.5253815195 + + + + + + + -0.7692307692 + -1.6021878846 + + + + + -0.7692307692 + -1.6021878846 + + + + + -0.2923076923 + -1.9175158854 + + + + + 0.3699827831 + -1.9113255645 + + + + + 0.1912006887 + -1.7407247627 + + + + + -0.7692307692 + -1.6021878846 + + + + + -0.2923076923 + -1.9175158854 + + + + + 0.3699827831 + -1.9113255645 + + + + + 0.1912006887 + -1.7407247627 + + + + + -0.7692307692 + -1.6021878846 + + + + + + + -0.4205128205 + -1.9149031596 + + + + + -0.4205128205 + -1.9149031596 + + + + + 0.0051282051 + -1.9380170243 + + + + + 0.6388352422 + -1.9211580481 + + + + + 0.3921139307 + -1.5522001726 + + + + + -0.4205128205 + -1.9149031596 + + + + + 0.0051282051 + -1.9380170243 + + + + + 0.6388352422 + -1.9211580481 + + + + + 0.3921139307 + -1.5522001726 + + + + + -0.4205128205 + -1.9149031596 + + + + + + + -0.1923076923 + -1.9222447836 + + + + + -0.1923076923 + -1.9222447836 + + + + + 0.2461538462 + -1.8970147464 + + + + + 0.8333333333 + -1.4967994310 + + + + + 0.4803652968 + -1.1790852416 + + + + + -0.1923076923 + -1.9222447836 + + + + + 0.2461538462 + -1.8970147464 + + + + + 0.8333333333 + -1.4967994310 + + + + + 0.4803652968 + -1.1790852416 + + + + + -0.1923076923 + -1.9222447836 + + + + + + + -0.1474358974 + -1.5573799188 + + + + + -0.1474358974 + -1.5573799188 + + + + + 0.2051282051 + -1.4934060664 + + + + + 0.5929336028 + -1.1461360064 + + + + + 0.2034957706 + -0.9559965487 + + + + + -0.1474358974 + -1.5573799188 + + + + + 0.2051282051 + -1.4934060664 + + + + + 0.5929336028 + -1.1461360064 + + + + + 0.2034957706 + -0.9559965487 + + + + + -0.1474358974 + -1.5573799188 + + + + + + + -0.1282051282 + -0.9428706727 + + + + + -0.1282051282 + -0.9428706727 + + + + + 0.0615384615 + -0.8732466131 + + + + + 0.3503106520 + -0.7921665964 + + + + + 0.0518564264 + -0.6117342537 + + + + + -0.1282051282 + -0.9428706727 + + + + + 0.0615384615 + -0.8732466131 + + + + + 0.3503106520 + -0.7921665964 + + + + + 0.0518564264 + -0.6117342537 + + + + + -0.1282051282 + -0.9428706727 + + + + + + + 0.0064102564 + -0.5267967040 + + + + + 0.0064102564 + -0.5267967040 + + + + + 0.0410256410 + -0.4900491548 + + + + + 0.2716221274 + -0.4327155288 + + + + + 0.1174301969 + -0.2387834340 + + + + + 0.0064102564 + -0.5267967040 + + + + + 0.0410256410 + -0.4900491548 + + + + + 0.2716221274 + -0.4327155288 + + + + + 0.1174301969 + -0.2387834340 + + + + + 0.0064102564 + -0.5267967040 + + + + + + + 0.2371794872 + -0.0595136314 + + + + + 0.2371794872 + -0.0595136314 + + + + + 0.2102564103 + 0.1403608680 + + + + + 0.2371794872 + -0.0595136314 + + + + + 0.2772662624 + 0.0627696290 + + + + + 0.2371794872 + -0.0595136314 + + + + + 0.2102564103 + 0.1403608680 + + + + + 0.2371794872 + -0.0595136314 + + + + + 0.2772662624 + 0.0627696290 + + + + + 0.2371794872 + -0.0595136314 + + + + + + + -0.0307692308 + -0.3536446469 + + + + + -0.0900000000 + -0.3600000000 + + + + + -0.0307692308 + -0.3536446469 + + + + + 0.0196721311 + -0.5997815004 + + + + + -0.0307692308 + -0.3536446469 + + + + + -0.0900000000 + -0.3600000000 + + + + + -0.0307692308 + -0.3536446469 + + + + + 0.0196721311 + -0.5997815004 + + + + + -0.0307692308 + -0.3536446469 + + + + + -0.0900000000 + -0.3600000000 + + + + + + + -0.0769230769 + -0.2162243169 + + + + + -0.0769230769 + -0.2162243169 + + + + + 0.0153846153 + -0.4142602487 + + + + + 0.0503014390 + -0.1943325815 + + + + + -0.0368852459 + -0.1967213115 + + + + + -0.0769230769 + -0.2162243169 + + + + + 0.0153846153 + -0.4142602487 + + + + + 0.0503014390 + -0.1943325815 + + + + + -0.0368852459 + -0.1967213115 + + + + + -0.0769230769 + -0.2162243169 + + + + + + + -0.0615384615 + -0.3997722096 + + + + + -0.0615384615 + -0.3997722096 + + + + + 0.0461538462 + -0.3039203932 + + + + + 0.2459016393 + -0.3733468778 + + + + + 0.0983606557 + -0.3319672131 + + + + + -0.0615384615 + -0.3997722096 + + + + + 0.0461538462 + -0.3039203932 + + + + + 0.2459016393 + -0.3733468778 + + + + + 0.0983606557 + -0.3319672131 + + + + + -0.0615384615 + -0.3997722096 + + + + + + + -0.0384615385 + -0.7997193933 + + + + + -0.0384615385 + -0.7997193933 + + + + + -0.2769230769 + -0.9494365184 + + + + + 0.0491803279 + -0.2556445739 + + + + + 0.2950819672 + -0.3565573770 + + + + + -0.0384615385 + -0.7997193933 + + + + + -0.2769230769 + -0.9494365184 + + + + + 0.0491803279 + -0.2556445739 + + + + + 0.2950819672 + -0.3565573770 + + + + + -0.0384615385 + -0.7997193933 + + + + + + + -0.1461538462 + -0.0613284427 + + + + + -0.1461555188 + -0.0613271191 + + + + + -0.1461538462 + -0.0613284427 + + + + + 0.0393442623 + -0.1769847050 + + + + + 0.0368852459 + -0.1598360656 + + + + + -0.1461555188 + -0.0613271191 + + + + + -0.1461538462 + -0.0613284427 + + + + + 0.0393442623 + -0.1769847050 + + + + + 0.0368852459 + -0.1598360656 + + + + + -0.1461555188 + -0.0613271191 + + + + + + + -0.1076923077 + -0.1076309795 + + + + + -0.1076935401 + -0.1076302983 + + + + + -0.1076923077 + -0.1076309795 + + + + + 0.0196721311 + -0.1671522214 + + + + + 0.0122950820 + -0.2090163934 + + + + + -0.1076935401 + -0.1076302983 + + + + + -0.1076923077 + -0.1076309795 + + + + + 0.0196721311 + -0.1671522214 + + + + + 0.0122950820 + -0.2090163934 + + + + + -0.1076935401 + -0.1076302983 + + + + + + + -0.2269230769 + 0.0115264227 + + + + + -0.2269230769 + 0.0115264227 + + + + + -0.1076923077 + -0.1383826879 + + + + + -0.1770491803 + -0.0974623376 + + + + + 0.0000000000 + -0.1967213115 + + + + + -0.2269230769 + 0.0115264227 + + + + + -0.1076923077 + -0.1383826879 + + + + + -0.1770491803 + -0.0974623376 + + + + + 0.0000000000 + -0.1967213115 + + + + + -0.2269230769 + 0.0115264227 + + + + + + + -0.2153846154 + -0.1842915329 + + + + + -0.2153846154 + -0.1842915329 + + + + + -0.0153846154 + -0.2306378132 + + + + + -0.0343493583 + -0.2214803065 + + + + + 0.0614754098 + -0.2336065574 + + + + + -0.2153846154 + -0.1842915329 + + + + + -0.0153846154 + -0.2306378132 + + + + + -0.0343493583 + -0.2214803065 + + + + + 0.0614754098 + -0.2336065574 + + + + + -0.2153846154 + -0.1842915329 + + + + + + + 0.1076923077 + -0.4768701983 + + + + + 0.1076923077 + -0.4768701983 + + + + + 0.2769230769 + -0.1230068337 + + + + + 0.2950819672 + -0.0786598689 + + + + + 0.3073770492 + 0.0860655738 + + + + + 0.1076923077 + -0.4768701983 + + + + + 0.2769230769 + -0.1230068337 + + + + + 0.2950819672 + -0.0786598689 + + + + + 0.3073770492 + 0.0860655738 + + + + + 0.1076923077 + -0.4768701983 + + + + + + + 0.1384615385 + -0.0768792711 + + + + + 0.1384615385 + -0.0768792711 + + + + + 0.2461538462 + 0.0307517084 + + + + + 0.2163934426 + 0.0196649672 + + + + + 0.1229508197 + 0.2704918033 + + + + + 0.1384615385 + -0.0768792711 + + + + + 0.2461538462 + 0.0307517084 + + + + + 0.2163934426 + 0.0196649672 + + + + + 0.1229508197 + 0.2704918033 + + + + + 0.1384615385 + -0.0768792711 + + + + + + + 0.2153846154 + -0.0615034169 + + + + + 0.2153846154 + -0.0615034169 + + + + + 0.2461538462 + 0.0153758542 + + + + + 0.2884615385 + 0.3840682788 + + + + + 0.0983606557 + 0.2090163934 + + + + + 0.2153846154 + -0.0615034169 + + + + + 0.2461538462 + 0.0153758542 + + + + + 0.2884615385 + 0.3840682788 + + + + + 0.0983606557 + 0.2090163934 + + + + + 0.2153846154 + -0.0615034169 + + + + + + + 0.2076923077 + 0.0087268362 + + + + + 0.2153846154 + 0.0461275626 + + + + + -0.0558499888 + 0.2013351374 + + + + + -0.0057377049 + 0.4211135591 + + + + + 0.2076923077 + 0.0087268362 + + + + + 0.2153846154 + 0.0461275626 + + + + + -0.0558499888 + 0.2013351374 + + + + + -0.0057377049 + 0.4211135591 + + + + + 0.2076923077 + 0.0087268362 + + + + + + + 0.0538461538 + 0.2987902481 + + + + + 0.0538461538 + 0.2987902481 + + + + + -0.0523467325 + 0.2804565596 + + + + + -0.2527397260 + 0.2467035246 + + + + + 0.0538461538 + 0.2987902481 + + + + + 0.0538461538 + 0.2987902481 + + + + + -0.0523467325 + 0.2804565596 + + + + + -0.2527397260 + 0.2467035246 + + + + + 0.0538461538 + 0.2987902481 + + + + + + + 0.0115384615 + 0.3266330111 + + + + + 0.0115384615 + 0.3266330111 + + + + + -0.0461538462 + 0.3497782041 + + + + + -0.2174515020 + 0.2669052308 + + + + + -0.2213114754 + 0.2581967213 + + + + + 0.0115384615 + 0.3266330111 + + + + + -0.0461538462 + 0.3497782041 + + + + + -0.2174515020 + 0.2669052308 + + + + + -0.2213114754 + 0.2581967213 + + + + + 0.0115384615 + 0.3266330111 + + + + + + + 0.0615384615 + 0.4358387581 + + + + + 0.0615384615 + 0.4358387581 + + + + + -0.0153846154 + 0.2496103585 + + + + + -0.0785486016 + 0.1857557715 + + + + + -0.0000000000 + 0.4426229508 + + + + + 0.0615384615 + 0.4358387581 + + + + + -0.0153846154 + 0.2496103585 + + + + + -0.0785486016 + 0.1857557715 + + + + + -0.0000000000 + 0.4426229508 + + + + + 0.0615384615 + 0.4358387581 + + + + + + + 0.1269230769 + 0.2896041048 + + + + + 0.1269230769 + 0.2896041048 + + + + + 0.0461538462 + 0.2921412301 + + + + + -0.0295081967 + 0.2556445739 + + + + + 0.0368852459 + 0.1844262295 + + + + + 0.1269230769 + 0.2896041048 + + + + + 0.0461538462 + 0.2921412301 + + + + + -0.0295081967 + 0.2556445739 + + + + + 0.0368852459 + 0.1844262295 + + + + + 0.1269230769 + 0.2896041048 + + + + + + + -0.0423076923 + 0.4767608395 + + + + + -0.0423076923 + 0.4767608395 + + + + + 0.0923076923 + 0.4458997722 + + + + + -0.0423076923 + 0.4767608395 + + + + + 0.2459016393 + 0.3442622951 + + + + + -0.0423076923 + 0.4767608395 + + + + + 0.0923076923 + 0.4458997722 + + + + + -0.0423076923 + 0.4767608395 + + + + + 0.2459016393 + 0.3442622951 + + + + + -0.0423076923 + 0.4767608395 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0.2540983607 + -0.1445006567 + + + + + 0.2540983607 + -0.1445006567 + + + + + 0.2051282051 + 0.0971252442 + + + + + 0.2540983607 + -0.1445006567 + + + + + 0.2615384615 + 0.0356218273 + + + + + 0.2540983607 + -0.1445006567 + + + + + 0.2051282051 + 0.0971252442 + + + + + 0.2540983607 + -0.1445006567 + + + + + 0.2615384615 + 0.0356218273 + + + + + 0.2540983607 + -0.1445006567 + + + + + + + 0.2622950820 + 0.5768108187 + + + + + 0.2622950820 + 0.5768108187 + + + + + 0.2153846154 + 0.6916582738 + + + + + 0.2512820513 + 0.5697396970 + + + + + 0.2820512821 + 0.6865465078 + + + + + 0.2622950820 + 0.5768108187 + + + + + 0.2153846154 + 0.6916582738 + + + + + 0.2512820513 + 0.5697396970 + + + + + 0.2820512821 + 0.6865465078 + + + + + 0.2622950820 + 0.5768108187 + + + + + + + 0.0778688525 + 0.9784501630 + + + + + 0.0778688525 + 0.9784501630 + + + + + 0.0717948718 + 1.0601549245 + + + + + 0.0778688525 + 0.9784501630 + + + + + 0.1025641026 + 1.1016945716 + + + + + 0.0778688525 + 0.9784501630 + + + + + 0.0717948718 + 1.0601549245 + + + + + 0.0778688525 + 0.9784501630 + + + + + 0.1025641026 + 1.1016945716 + + + + + 0.0778688525 + 0.9784501630 + + + + + + + -0.0942622951 + 1.1874665564 + + + + + -0.0942622951 + 1.1874665564 + + + + + -0.1435897436 + 1.3215444462 + + + + + -0.0942622951 + 1.1874665564 + + + + + -0.0820512821 + 1.3425829542 + + + + + -0.0942622951 + 1.1874665564 + + + + + -0.1435897436 + 1.3215444462 + + + + + -0.0942622951 + 1.1874665564 + + + + + -0.0820512821 + 1.3425829542 + + + + + -0.0942622951 + 1.1874665564 + + + + + + + -0.1858974359 + 1.5652386339 + + + + + -0.1858974359 + 1.5652386339 + + + + + -0.2410256410 + 1.6546879541 + + + + + -0.1858974359 + 1.5652386339 + + + + + -0.1692307692 + 1.6838275552 + + + + + -0.1858974359 + 1.5652386339 + + + + + -0.2410256410 + 1.6546879541 + + + + + -0.1858974359 + 1.5652386339 + + + + + -0.1692307692 + 1.6838275552 + + + + + -0.1858974359 + 1.5652386339 + + + + + + + -0.2051282051 + 1.1683680792 + + + + + -0.2051282051 + 1.1683680792 + + + + + -0.2512820513 + 1.3061685920 + + + + + -0.2051282051 + 1.1683680792 + + + + + -0.1948717949 + 1.3148070541 + + + + + -0.2051282051 + 1.1683680792 + + + + + -0.2512820513 + 1.3061685920 + + + + + -0.2051282051 + 1.1683680792 + + + + + -0.1948717949 + 1.3148070541 + + + + + -0.2051282051 + 1.1683680792 + + + + + + + -0.1967213115 + 1.0194337695 + + + + + -0.1967213115 + 1.0194337695 + + + + + -0.2410256410 + 1.1370341956 + + + + + -0.1948717949 + 1.0207647540 + + + + + -0.1794871795 + 1.1507979425 + + + + + -0.1967213115 + 1.0194337695 + + + + + -0.2410256410 + 1.1370341956 + + + + + -0.1948717949 + 1.0207647540 + + + + + -0.1794871795 + 1.1507979425 + + + + + -0.1967213115 + 1.0194337695 + + + + + + + -0.2622950820 + 0.7899255728 + + + + + -0.2622950820 + 0.7899255728 + + + + + -0.3000000000 + 0.7797117517 + + + + + -0.2622950820 + 0.7899255728 + + + + + -0.2615384615 + 0.8227797192 + + + + + -0.2622950820 + 0.7899255728 + + + + + -0.3000000000 + 0.7797117517 + + + + + -0.2622950820 + 0.7899255728 + + + + + -0.2615384615 + 0.8227797192 + + + + + -0.2622950820 + 0.7899255728 + + + + + + + -0.2254098361 + 0.4743518023 + + + + + -0.2254098361 + 0.4743518023 + + + + + -0.1900000000 + 0.4213592233 + + + + + -0.2254098361 + 0.4743518023 + + + + + -0.1282051282 + 0.4815215995 + + + + + -0.2254098361 + 0.4743518023 + + + + + -0.1900000000 + 0.4213592233 + + + + + -0.2254098361 + 0.4743518023 + + + + + -0.1282051282 + 0.4815215995 + + + + + -0.2254098361 + 0.4743518023 + + + + + 0.0192307692 + 0.4160739687 + + + + + -0.0406683480 + 0.3632383462 + + + + + -0.0406692789 + 0.3632340796 + + + + + -0.0138461538 + 0.5408971515 + + + + + -0.0638461538 + 0.5448585788 + + + + + -0.0661538462 + 0.5544381466 + + + + + -0.0406692789 + 0.3632340796 + + + + + -0.0138461538 + 0.5408971515 + + + + + -0.0638461538 + 0.5448585788 + + + + + -0.0661538462 + 0.5544381466 + + + + + -0.0406692789 + 0.3632340796 + + + + + + + -0.1352459016 + 0.1598360656 + + + + + -0.1352459016 + 0.1598360656 + + + + + -0.2307692308 + 0.3228929385 + + + + + -0.1352459016 + 0.1598360656 + + + + + -0.1352459016 + 0.1598360656 + + + + + -0.1352459016 + 0.1598360656 + + + + + -0.2307692308 + 0.3228929385 + + + + + -0.1352459016 + 0.1598360656 + + + + + -0.1352459016 + 0.1598360656 + + + + + -0.1352459016 + 0.1598360656 + + + + + + + -0.0040983607 + 0.3868491010 + + + + + -0.0040983607 + 0.3868491010 + + + + + -0.0000000000 + 0.3228929385 + + + + + 0.0249054224 + 0.4539778446 + + + + + -0.0000000000 + 0.5138516185 + + + + + -0.0040983607 + 0.3868491010 + + + + + -0.0000000000 + 0.3228929385 + + + + + 0.0249054224 + 0.4539778446 + + + + + -0.0000000000 + 0.5138516185 + + + + + -0.0040983607 + 0.3868491010 + + + + + -0.2115384615 + 0.0192034139 + + + + + 0.0252206810 + -0.1763111256 + + + + + 0.0252209696 + -0.1763108912 + + + + + 0.0252206810 + -0.1763111256 + + + + + 0.0769230769 + -0.1967963081 + + + + + 0.0461538462 + -0.1691343964 + + + + + 0.0252209696 + -0.1763108912 + + + + + 0.0252206810 + -0.1763111256 + + + + + 0.0769230769 + -0.1967963081 + + + + + 0.0461538462 + -0.1691343964 + + + + + 0.0252209696 + -0.1763108912 + + + + + + + -0.0122950820 + -0.1106557377 + + + + + -0.0122953634 + -0.1106543993 + + + + + -0.0122952227 + -0.1106550685 + + + + + -0.0122950820 + -0.1106557377 + + + + + -0.0461538462 + -0.1691343964 + + + + + -0.0122953634 + -0.1106543993 + + + + + -0.0122952227 + -0.1106550685 + + + + + -0.0122950820 + -0.1106557377 + + + + + -0.0461538462 + -0.1691343964 + + + + + -0.0122953634 + -0.1106543993 + + + + + + + -0.0122950820 + -0.2459016393 + + + + + -0.0122950820 + -0.2459016393 + + + + + 0.0376923077 + -0.3342864682 + + + + + -0.0122950820 + -0.2459016393 + + + + + -0.0022698613 + -0.3753278151 + + + + + -0.0122950820 + -0.2459016393 + + + + + 0.0376923077 + -0.3342864682 + + + + + -0.0122950820 + -0.2459016393 + + + + + -0.0022698613 + -0.3753278151 + + + + + -0.0122950820 + -0.2459016393 + + + + + + + 0.1721311475 + -0.3319672131 + + + + + 0.1721311475 + -0.3319672131 + + + + + 0.0900000000 + -0.3000000000 + + + + + 0.1662295082 + -0.3739201519 + + + + + 0.1721311475 + -0.3319672131 + + + + + 0.1721311475 + -0.3319672131 + + + + + 0.0900000000 + -0.3000000000 + + + + + 0.1662295082 + -0.3739201519 + + + + + 0.1721311475 + -0.3319672131 + + + + + 0.1721311475 + -0.3319672131 + + + + + 0.0491803279 + -0.3565573770 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0.800000 + 0.800000 + 1.000000 + 1.000000 + + + + + + + + + + + + + -1.0000000000 + 2.2500000000 + + + + + 1.0000000000 + -2.2500000000 + + + + + + + animation.lst + + + + + + + + + + + + + 0.0000000000 + 0.0000000000 + + + + + + + + + + + + + + 0.200000 + 0.600000 + 1.000000 + 1.000000 + + + + + 0.0000000000 + 0.0000000000 + + + + + + + + + + + + + + + + + 0.000000 + 0.000000 + 0.000000 + 1.000000 + + + + + 0.0000000000 + 0.0000000000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0.0000000000 + 0.0000000000 + + + + + + + + + + + + + + 0.200000 + 0.600000 + 1.000000 + 1.000000 + + + + + 0.0000000000 + 0.0000000000 + + + + + + + + + + + + + + + + + 0.000000 + 0.000000 + 0.000000 + 1.000000 + + + + + 0.0000000000 + 0.0000000000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0.0000000000 + 0.0000000000 + + + + + + + + + + + + + + 1.000000 + 1.000000 + 1.000000 + 1.000000 + + + + + 0.0000000000 + 0.0000000000 + + + + + + + + + + + + + + + + + 0.000000 + 0.000000 + 0.000000 + 1.000000 + + + + + 0.0000000000 + 0.0000000000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0.0000000000 + 0.0000000000 + + + + + + + + + + + + + + 1.000000 + 1.000000 + 1.000000 + 1.000000 + + + + + 0.0000000000 + 0.0000000000 + + + + + + + + + + + + + + + + + 0.000000 + 0.000000 + 0.000000 + 1.000000 + + + + + 0.0000000000 + 0.0000000000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0.0000000000 + 0.0000000000 + + + + + + + + + + + + + + 1.000000 + 1.000000 + 1.000000 + 1.000000 + + + + + 0.0000000000 + 0.0000000000 + + + + + + + + + + + + + + + + + 0.000000 + 0.000000 + 0.000000 + 1.000000 + + + + + 0.0000000000 + 0.0000000000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/synfig-core/tags/stable/examples/wallpaper.sif b/synfig-core/tags/stable/examples/wallpaper.sif new file mode 100644 index 0000000..10b803d --- /dev/null +++ b/synfig-core/tags/stable/examples/wallpaper.sif @@ -0,0 +1,746 @@ + + + Untitled0 + + + + + + + + + + + + + 0.0000000000 + 0.0000000000 + + + + + + + + + + + + + + + + + + 0.000000 + 0.000000 + 0.000000 + 1.000000 + + + 1.000000 + 1.000000 + 1.000000 + 1.000000 + + + + + + + + + 0.0149999997 + 0.1562500000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0.0000000000 + 0.1000000015 + + + + + + + + + + 0.0000000000 + 0.0000000000 + + + + + + + + + + + + + + + + + + + 0.470726 + 0.477000 + 0.477000 + 1.000000 + + + + + + + + + + + + + + + + 0.638086 + 0.509474 + 0.361408 + 1.000000 + + + + + + + + + + + + + + + + + + + + + + + + 0.531049 + 0.531049 + 0.531049 + 0.000000 + + + 0.006310 + 0.000000 + 0.000000 + 0.485794 + + + 0.006310 + 0.000000 + 0.000000 + 0.750000 + + + 0.076829 + 0.010931 + 0.001345 + 0.652360 + + + + + + + + + 1.0000000000 + 1.0000000000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0.0000000000 + -1.5000000000 + + + + + 0.0000000000 + 1.5000000000 + + + + + + 0.000000 + 0.000000 + 0.000000 + 1.000000 + + + 1.000000 + 1.000000 + 1.000000 + 1.000000 + + + + + + + + + + + + + + + + + + + + + + + 0.0000000000 + 0.0000000000 + + + + + + + + + + + + + + + + + + 0.457498 + 0.383419 + 0.344119 + 0.000000 + + + 0.500000 + 0.500000 + 0.500000 + 1.000000 + + + + + + + + + 1.0000000000 + 1.0000000000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0.295985 + 0.026400 + 0.000000 + 1.000000 + + + + + 0.0000000000 + 0.0000000000 + + + + + 0.0750000030 + 0.0750000030 + + + + + + + + + + + + + + + + + + + + + + 0.0000000000 + 0.0000000000 + + + + + + + + + + + + + + + + + + 0.000000 + 0.000000 + 0.000000 + 1.000000 + + + 1.000000 + 1.000000 + 1.000000 + 1.000000 + + + + + + + + + 0.0111111114 + 0.0111111114 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0.881822 + 0.788820 + 0.722108 + 0.602041 + + + + + 0.000000 + 0.000000 + 0.000000 + 1.000000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0.956527 + 0.878455 + 0.809212 + 0.500000 + + + + + 0.000000 + 0.000000 + 0.000000 + 1.000000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0.000000 + 0.000000 + 0.000000 + 1.000000 + + + + + + + + + + + 0.0000000000 + 0.0000000000 + + + + + + + + + + + + + + + + + + + + + + 0.0000000000 + 0.0000000000 + + + + + + + + + + + + + + + + + 0.0000000000 + 0.0000000000 + + + + + + + + + + + + + + + + + + + + + + + + 1.000000 + 1.000000 + 1.000000 + 0.561224 + + + + + 0.000000 + 0.000000 + 0.000000 + 1.100000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + -1.1237038374 + 0.7277859449 + + + + + 1.1237038374 + -0.6625441909 + + + + + -1.0113334656 + 0.7625441551 + + + + + 1.0113334656 + 0.7625441551 + + + + + 1.2360743284 + -0.6625441909 + + + + + -1.2360743284 + -0.6625441909 + + + + + + + + + + diff --git a/synfig-core/tags/stable/examples/warpcube.sif b/synfig-core/tags/stable/examples/warpcube.sif new file mode 100644 index 0000000..63052ad --- /dev/null +++ b/synfig-core/tags/stable/examples/warpcube.sif @@ -0,0 +1,1751 @@ + + + Untitled0 + + + + + + + + + (Duplicate) + + + + + + + + + + + + + 0.2196368724 + -1.5176842213 + + + + + 0.0605197363 + 2.2766704559 + + + + + + 0.000000 + 0.066444 + 0.066444 + 1.000000 + + + 0.000000 + 0.182959 + 0.444444 + 1.000000 + + + + + + + + + + + + + + + + + + + + + + + 0.0000000000 + 0.0000000000 + + + + + + + + + + + + + + + + + 1.000000 + 1.000000 + 1.000000 + 1.000000 + + + + + + + + + + + + + + + + 0.000000 + 0.000000 + 0.000000 + 1.000000 + + + + + 0.0000000000 + 0.0000000000 + + + + + 0.5000000000 + 0.5000000000 + + + + + + + + + + + + + + + + 1.000000 + 1.000000 + 0.000000 + 1.000000 + + + + + + + + + + + + + + + + + + + + + + + + + + 0.0554962642 + 0.0042694495 + + + + + 0.0852544382 + 0.0446652137 + + + + + 0.0554962642 + 0.0042694495 + + + + + 0.0554962642 + 0.0042694495 + + + + + + + + + + + + + + + -1.5000000000 + 1.5000000000 + + + + + 1.5000000000 + -1.5000000000 + + + + + + + -1.4819145203 + -1.3976771832 + + + + + -2.6424760818 + -1.1570209265 + + + + + -1.4819145203 + -1.3976771832 + + + + + + + + + 0.7250324488 + -0.3984678388 + + + + + -1.2593382597 + -0.1835863441 + + + + + 0.7250324488 + -0.3984678388 + + + + + + + + + 2.0372712612 + -1.2336279154 + + + + + 1.0742598772 + -1.0739212036 + + + + + 2.0372712612 + -1.2336279154 + + + + + + + + + -0.1547639519 + -2.0240471363 + + + + + -0.3970117271 + -1.9084440470 + + + + + -0.1547639519 + -2.0240471363 + + + + + + + + + + + + + + + + + + + + + + + + 0.000000 + 0.000000 + 0.000000 + 1.000000 + + + + + 0.0000000000 + 0.0000000000 + + + + + + + + + + + + + + + + + + + + + + + 2.0372712612 + -1.2336279154 + + + + + 1.0742598772 + -1.0739212036 + + + + + 2.0372712612 + -1.2336279154 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + -0.1547639519 + -2.0240471363 + + + + + -0.3970117271 + -1.9084440470 + + + + + -0.1547639519 + -2.0240471363 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + -1.4819145203 + -1.3976771832 + + + + + -2.6424760818 + -1.1570209265 + + + + + -1.4819145203 + -1.3976771832 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0.7250324488 + -0.3984678388 + + + + + -1.2593382597 + -0.1835863441 + + + + + 0.7250324488 + -0.3984678388 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0.002051 + 0.002144 + 0.002144 + 1.000000 + + + + + + + + + + + + + + + + + + + + + + + 0.0000000000 + 0.0000000000 + + + + + + + + + + + + + + + + + 1.000000 + 1.000000 + 1.000000 + 1.000000 + + + + + + + + + + + + + + + + 0.000000 + 0.000000 + 0.000000 + 1.000000 + + + + + 0.0000000000 + 0.0000000000 + + + + + 0.5000000000 + 0.5000000000 + + + + + + + 0.0000000000 + 0.0000000000 + + + + + + + + + + + + + + + + + + + -1.5000000000 + 1.5000000000 + + + + + 1.5000000000 + -1.5000000000 + + + + + -2.3617107868 + 1.0034079552 + + + + + + + -0.2210593373 + 2.0327758789 + + + + + -0.9418228865 + 2.0768792629 + + + + + -0.2210593373 + 2.0327758789 + + + + + + + + + 0.7250324488 + -0.3984678388 + + + + + -1.2593382597 + -0.1835863441 + + + + + 0.7250324488 + -0.3984678388 + + + + + + + + + -1.4819145203 + -1.3976771832 + + + + + -2.6424760818 + -1.1570209265 + + + + + -1.4819145203 + -1.3976771832 + + + + + + + + + + + + + + + + + + + + + + + + 0.000000 + 0.000000 + 0.000000 + 1.000000 + + + + + 0.0000000000 + 0.0000000000 + + + + + + + + + + + + + + + + + + + + + -2.3617107868 + 1.0034079552 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + -1.4819145203 + -1.3976771832 + + + + + -2.6424760818 + -1.1570209265 + + + + + -1.4819145203 + -1.3976771832 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0.7250324488 + -0.3984678388 + + + + + -1.2593382597 + -0.1835863441 + + + + + 0.7250324488 + -0.3984678388 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + -0.2210593373 + 2.0327758789 + + + + + -0.9418228865 + 2.0768792629 + + + + + -0.2210593373 + 2.0327758789 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0.002051 + 0.002144 + 0.002144 + 1.000000 + + + + + + + + + + + + + + + + + + + + + + + 0.0000000000 + 0.0000000000 + + + + + + + + + + + + + + + + + 1.000000 + 1.000000 + 1.000000 + 1.000000 + + + + + + + + + + + + + + + + 0.000000 + 0.000000 + 0.000000 + 1.000000 + + + + + 0.0000000000 + 0.0000000000 + + + + + 0.5000000000 + 0.5000000000 + + + + + + + -1.5000000000 + 1.5000000000 + + + + + 1.5000000000 + -1.5000000000 + + + + + + + -0.2210593373 + 2.0327758789 + + + + + -0.9418228865 + 2.0768792629 + + + + + -0.2210593373 + 2.0327758789 + + + + + + + + + 1.1739594936 + 0.9862428904 + + + + + 1.2732270956 + 1.1274627447 + + + + + 1.1739594936 + 0.9862428904 + + + + + + + + + 2.0372712612 + -1.2336279154 + + + + + 1.0742598772 + -1.0739212036 + + + + + 2.0372712612 + -1.2336279154 + + + + + + + + + 0.7250324488 + -0.3984678388 + + + + + -1.2593382597 + -0.1835863441 + + + + + 0.7250324488 + -0.3984678388 + + + + + + + + + + + + + + + + + + + + + + + + 0.000000 + 0.000000 + 0.000000 + 1.000000 + + + + + 0.0000000000 + 0.0000000000 + + + + + + + + + + + + + + + + + + + + + + + 1.1739594936 + 0.9862428904 + + + + + 1.2732270956 + 1.1274627447 + + + + + 1.1739594936 + 0.9862428904 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 2.0372712612 + -1.2336279154 + + + + + 1.0742598772 + -1.0739212036 + + + + + 2.0372712612 + -1.2336279154 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0.7250324488 + -0.3984678388 + + + + + -1.2593382597 + -0.1835863441 + + + + + 0.7250324488 + -0.3984678388 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + -0.2210593373 + 2.0327758789 + + + + + -0.9418228865 + 2.0768792629 + + + + + -0.2210593373 + 2.0327758789 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0.002051 + 0.002144 + 0.002144 + 1.000000 + + + + + + + + + + + + + + 0.8099986911 + -0.7714273334 + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0.8099986911 + -0.7714273334 + + + + + + + + + + + + + + + + + 0.000000 + 0.182959 + 0.444444 + 1.000000 + + + + + + + + + + + 0.0000000000 + 0.0000000000 + + + + + + + + + + + + + + + + + + + + + + + + + 1.000000 + 1.000000 + 1.000000 + 1.000000 + + + + + 0.000000 + 0.000000 + 0.000000 + 1.000000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/synfig-core/tags/stable/examples/warptext.sif b/synfig-core/tags/stable/examples/warptext.sif new file mode 100644 index 0000000..5f3b495 --- /dev/null +++ b/synfig-core/tags/stable/examples/warptext.sif @@ -0,0 +1,109 @@ + + + Untitled4 + + + + + + + + + + + + Text Layer + + + + 0.000000 + 0.000000 + 0.000000 + 1.000000 + + + + Sans Serif + + + + + + + + + + + + + + + + 0.2500000000 + 0.2500000000 + + + + + 0.5000000000 + 0.5000000000 + + + + + 0.0000000000 + 0.0000000000 + + + + + + + + + + + + + -1.0158383846 + 0.1596209854 + + + + + 1.0289459229 + -0.1615634710 + + + + + -3.7956678867 + 0.8303482533 + + + + + 3.5876655579 + 2.0803482533 + + + + + 3.7209987640 + 0.9136815667 + + + + + -3.1966948509 + -1.9696516991 + + + + + + + + + + diff --git a/synfig-core/tags/stable/examples/z_depth_test.sif b/synfig-core/tags/stable/examples/z_depth_test.sif new file mode 100644 index 0000000..28ed575 --- /dev/null +++ b/synfig-core/tags/stable/examples/z_depth_test.sif @@ -0,0 +1,554 @@ + + + Untitled0 + + + + + Purple Left, Blue Right + Purple Behind Blue + Purple Right, Blue Left + Blue Behind Purple + Purple Left, Blue Right (Duplicate) + + + + + + + + + + + + + 0.700000 + 0.700000 + 0.700000 + 1.000000 + + + + + + + + + + + + + + + + 0.000000 + 0.000000 + 0.000000 + 1.000000 + + + + + 0.1250000000 + 0.1250000000 + + + + + 0.2500000000 + 0.2500000000 + + + + + + + + + + + + + + + + 0.0000000000 + 0.0000000000 + + + + + + + + + + + + + + + + + 0.250000 + 0.000000 + 1.000000 + 1.000000 + + + + + + + + + + + + + -1.5000000000 + 0.0000000000 + + + + + 0.0000000000 + 0.5000000000 + + + + + 1.5000000000 + 0.0000000000 + + + + + 0.0000000000 + -0.5000000000 + + + + + -1.5000000000 + 0.0000000000 + + + + + + + + + + + + + + + + + + + + + + + + 0.000000 + 0.000000 + 0.000000 + 0.000000 + + + + + + + + + + + + + -1.5000000000 + 0.0000000000 + + + + + 0.0000000000 + 0.5000000000 + + + + + 1.5000000000 + 0.0000000000 + + + + + 0.0000000000 + -0.5000000000 + + + + + -1.5000000000 + 0.0000000000 + + + + + + + + + + + + + + + + + + + + + + + + + + + 1.000000 + 1.000000 + 1.000000 + 1.000000 + + + + + 0.000000 + 0.000000 + 0.000000 + 1.000000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0.000000 + 0.000000 + 0.000000 + 1.000000 + + + + + 0.2000000030 + -0.2000000030 + + + + + 0.2000000030 + 0.2000000030 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0.0000000000 + 0.0000000000 + + + + + + + + + + + + + + + + + 0.000000 + 0.411657 + 1.000000 + 1.000000 + + + + + + + + + + + + + 1.5000000000 + 0.0000000000 + + + + + 0.0000000000 + -0.5000000000 + + + + + -1.5000000000 + 0.0000000000 + + + + + 0.0000000000 + 0.5000000000 + + + + + 1.5000000000 + 0.0000000000 + + + + + + + + + + + + + + + + + + + + + + + + 0.000000 + 0.000000 + 0.000000 + 0.000000 + + + + + + + + + + + + + 1.5000000000 + 0.0000000000 + + + + + 0.0000000000 + -0.5000000000 + + + + + -1.5000000000 + 0.0000000000 + + + + + 0.0000000000 + 0.5000000000 + + + + + 1.5000000000 + 0.0000000000 + + + + + + + + + + + + + + + + + + + + + + + + + + + 1.000000 + 1.000000 + 1.000000 + 1.000000 + + + + + 0.000000 + 0.000000 + 0.000000 + 1.000000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0.000000 + 0.000000 + 0.000000 + 1.000000 + + + + + 0.2000000030 + -0.2000000030 + + + + + 0.2000000030 + 0.2000000030 + + + + + + + + + + + + + + + + + diff --git a/synfig-core/tags/stable/macosxbuild.sh b/synfig-core/tags/stable/macosxbuild.sh new file mode 100755 index 0000000..b43b49c --- /dev/null +++ b/synfig-core/tags/stable/macosxbuild.sh @@ -0,0 +1,60 @@ +#!/bin/sh + +#OPTIONS="--disable-optimization --enable-debug" + +PREFIX=/Users/darco/Projects/Voria/synfig-build + +export PKG_CONFIG_PATH=$PREFIX/lib/pkgconfig:/usr/lib/pkgconfig:/usr/X11R6/lib/pkgconfig +OPTIONS="--prefix=$PREFIX" +#OPTIONS="$OPTIONS --enable-timelimit=120" +#OPTIONS="$OPTIONS --enable-optimization=2" +OPTIONS="$OPTIONS --enable-optimization=3" +#OPTIONS="$OPTIONS --enable-g5opt" +#OPTIONS="$OPTIONS --disable-optimization" +OPTIONS="$OPTIONS --disable-debug" +#OPTIONS="$OPTIONS --with-vimage" +OPTIONS="$OPTIONS --without-openexr" +OPTIONS="$OPTIONS --disable-dependency-tracking" +#OPTIONS="$OPTIONS --enable-universal" + +ARCH_FLAGS="" +#ARCH_FLAGS="$ARCH_FLAGS -arch ppc" +ARCH_FLAGS="$ARCH_FLAGS -arch i386" + +LDFLAGS="-L$PREFIX/lib" +CFLAGS="-I$PREFIX/include" +CXXFLAGS="-I$PREFIX/include" + +CC="gcc $LDFLAGS $CFLAGS $ARCH_FLAGS" +CXX="g++ $LDFLAGS $CFLAGS $ARCH_FLAGS" +CPP="gcc -E" +CXXCPP="g++ -E" + +#distcc --version && { +# CC=distcc +# CXX="distcc g++" +#} + + +BUILDDIR=macosxbuild + +[ -e configure ] || ./bootstrap || exit 1 + +[ -d $BUILDDIR ] && rm -fr $BUILDDIR + +mkdir $BUILDDIR + +cd $BUILDDIR + +echo ../configure $OPTIONS CC=\"$CC\" CXX=\"$CXX\" CPP=\"$CPP\" CXXCPP=\"$CXXCPP\" LDFLAGS=\"$LDFLAGS\" CFLAGS=\"$CFLAGS\" CXXFLAGS=\"$CXXFLAGS\" + +../configure $OPTIONS CC="$CC" CXX="$CXX" CPP="$CPP" CXXCPP="$CXXCPP" LDFLAGS="$LDFLAGS" CFLAGS="$CFLAGS" CXXFLAGS="$CXXFLAGS" MACOS_DEPLOYMENT_TARGET=10.4 || exit 1 + +make -j2 +make install-strip + +#make package $MAKEFLAGS + +#make installer + + diff --git a/synfig-core/tags/stable/pkg-info/macosx/core-resources/License.txt b/synfig-core/tags/stable/pkg-info/macosx/core-resources/License.txt new file mode 100644 index 0000000..c4792dd --- /dev/null +++ b/synfig-core/tags/stable/pkg-info/macosx/core-resources/License.txt @@ -0,0 +1,515 @@ + + GNU LESSER GENERAL PUBLIC LICENSE + Version 2.1, February 1999 + + Copyright (C) 1991, 1999 Free Software Foundation, Inc. + 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + +[This is the first released version of the Lesser GPL. It also counts + as the successor of the GNU Library Public License, version 2, hence + the version number 2.1.] + + Preamble + + The licenses for most software are designed to take away your +freedom to share and change it. By contrast, the GNU General Public +Licenses are intended to guarantee your freedom to share and change +free software--to make sure the software is free for all its users. + + This license, the Lesser General Public License, applies to some +specially designated software packages--typically libraries--of the +Free Software Foundation and other authors who decide to use it. You +can use it too, but we suggest you first think carefully about whether +this license or the ordinary General Public License is the better +strategy to use in any particular case, based on the explanations +below. + + When we speak of free software, we are referring to freedom of use, +not price. Our General Public Licenses are designed to make sure that +you have the freedom to distribute copies of free software (and charge +for this service if you wish); that you receive source code or can get +it if you want it; that you can change the software and use pieces of +it in new free programs; and that you are informed that you can do +these things. + + To protect your rights, we need to make restrictions that forbid +distributors to deny you these rights or to ask you to surrender these +rights. These restrictions translate to certain responsibilities for +you if you distribute copies of the library or if you modify it. + + For example, if you distribute copies of the library, whether gratis +or for a fee, you must give the recipients all the rights that we gave +you. You must make sure that they, too, receive or can get the source +code. If you link other code with the library, you must provide +complete object files to the recipients, so that they can relink them +with the library after making changes to the library and recompiling +it. And you must show them these terms so they know their rights. + + We protect your rights with a two-step method: (1) we copyright the +library, and (2) we offer you this license, which gives you legal +permission to copy, distribute and/or modify the library. + + To protect each distributor, we want to make it very clear that +there is no warranty for the free library. Also, if the library is +modified by someone else and passed on, the recipients should know +that what they have is not the original version, so that the original +author's reputation will not be affected by problems that might be +introduced by others. +^L + Finally, software patents pose a constant threat to the existence of +any free program. We wish to make sure that a company cannot +effectively restrict the users of a free program by obtaining a +restrictive license from a patent holder. Therefore, we insist that +any patent license obtained for a version of the library must be +consistent with the full freedom of use specified in this license. + + Most GNU software, including some libraries, is covered by the +ordinary GNU General Public License. This license, the GNU Lesser +General Public License, applies to certain designated libraries, and +is quite different from the ordinary General Public License. We use +this license for certain libraries in order to permit linking those +libraries into non-free programs. + + When a program is linked with a library, whether statically or using +a shared library, the combination of the two is legally speaking a +combined work, a derivative of the original library. The ordinary +General Public License therefore permits such linking only if the +entire combination fits its criteria of freedom. The Lesser General +Public License permits more lax criteria for linking other code with +the library. + + We call this license the "Lesser" General Public License because it +does Less to protect the user's freedom than the ordinary General +Public License. It also provides other free software developers Less +of an advantage over competing non-free programs. These disadvantages +are the reason we use the ordinary General Public License for many +libraries. However, the Lesser license provides advantages in certain +special circumstances. + + For example, on rare occasions, there may be a special need to +encourage the widest possible use of a certain library, so that it +becomes +a de-facto standard. To achieve this, non-free programs must be +allowed to use the library. A more frequent case is that a free +library does the same job as widely used non-free libraries. In this +case, there is little to gain by limiting the free library to free +software only, so we use the Lesser General Public License. + + In other cases, permission to use a particular library in non-free +programs enables a greater number of people to use a large body of +free software. For example, permission to use the GNU C Library in +non-free programs enables many more people to use the whole GNU +operating system, as well as its variant, the GNU/Linux operating +system. + + Although the Lesser General Public License is Less protective of the +users' freedom, it does ensure that the user of a program that is +linked with the Library has the freedom and the wherewithal to run +that program using a modified version of the Library. + + The precise terms and conditions for copying, distribution and +modification follow. Pay close attention to the difference between a +"work based on the library" and a "work that uses the library". The +former contains code derived from the library, whereas the latter must +be combined with the library in order to run. +^L + GNU LESSER GENERAL PUBLIC LICENSE + TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION + + 0. This License Agreement applies to any software library or other +program which contains a notice placed by the copyright holder or +other authorized party saying it may be distributed under the terms of +this Lesser General Public License (also called "this License"). +Each licensee is addressed as "you". + + A "library" means a collection of software functions and/or data +prepared so as to be conveniently linked with application programs +(which use some of those functions and data) to form executables. + + The "Library", below, refers to any such software library or work +which has been distributed under these terms. A "work based on the +Library" means either the Library or any derivative work under +copyright law: that is to say, a work containing the Library or a +portion of it, either verbatim or with modifications and/or translated +straightforwardly into another language. (Hereinafter, translation is +included without limitation in the term "modification".) + + "Source code" for a work means the preferred form of the work for +making modifications to it. For a library, complete source code means +all the source code for all modules it contains, plus any associated +interface definition files, plus the scripts used to control +compilation +and installation of the library. + + Activities other than copying, distribution and modification are not +covered by this License; they are outside its scope. The act of +running a program using the Library is not restricted, and output from +such a program is covered only if its contents constitute a work based +on the Library (independent of the use of the Library in a tool for +writing it). Whether that is true depends on what the Library does +and what the program that uses the Library does. + + 1. You may copy and distribute verbatim copies of the Library's +complete source code as you receive it, in any medium, provided that +you conspicuously and appropriately publish on each copy an +appropriate copyright notice and disclaimer of warranty; keep intact +all the notices that refer to this License and to the absence of any +warranty; and distribute a copy of this License along with the +Library. + + You may charge a fee for the physical act of transferring a copy, +and you may at your option offer warranty protection in exchange for a +fee. + + 2. You may modify your copy or copies of the Library or any portion +of it, thus forming a work based on the Library, and copy and +distribute such modifications or work under the terms of Section 1 +above, provided that you also meet all of these conditions: + + a) The modified work must itself be a software library. + + b) You must cause the files modified to carry prominent notices + stating that you changed the files and the date of any change. + + c) You must cause the whole of the work to be licensed at no + charge to all third parties under the terms of this License. + + d) If a facility in the modified Library refers to a function or a + table of data to be supplied by an application program that uses + the facility, other than as an argument passed when the facility + is invoked, then you must make a good faith effort to ensure that, + in the event an application does not supply such function or + table, the facility still operates, and performs whatever part of + its purpose remains meaningful. + + (For example, a function in a library to compute square roots has + a purpose that is entirely well-defined independent of the + application. Therefore, Subsection 2d requires that any + application-supplied function or table used by this function must + be optional: if the application does not supply it, the square + root function must still compute square roots.) + +These requirements apply to the modified work as a whole. If +identifiable sections of that work are not derived from the Library, +and can be reasonably considered independent and separate works in +themselves, then this License, and its terms, do not apply to those +sections when you distribute them as separate works. But when you +distribute the same sections as part of a whole which is a work based +on the Library, the distribution of the whole must be on the terms of +this License, whose permissions for other licensees extend to the +entire whole, and thus to each and every part regardless of who wrote +it. + +Thus, it is not the intent of this section to claim rights or contest +your rights to work written entirely by you; rather, the intent is to +exercise the right to control the distribution of derivative or +collective works based on the Library. + +In addition, mere aggregation of another work not based on the Library +with the Library (or with a work based on the Library) on a volume of +a storage or distribution medium does not bring the other work under +the scope of this License. + + 3. You may opt to apply the terms of the ordinary GNU General Public +License instead of this License to a given copy of the Library. To do +this, you must alter all the notices that refer to this License, so +that they refer to the ordinary GNU General Public License, version 2, +instead of to this License. (If a newer version than version 2 of the +ordinary GNU General Public License has appeared, then you can specify +that version instead if you wish.) Do not make any other change in +these notices. +^L + Once this change is made in a given copy, it is irreversible for +that copy, so the ordinary GNU General Public License applies to all +subsequent copies and derivative works made from that copy. + + This option is useful when you wish to copy part of the code of +the Library into a program that is not a library. + + 4. You may copy and distribute the Library (or a portion or +derivative of it, under Section 2) in object code or executable form +under the terms of Sections 1 and 2 above provided that you accompany +it with the complete corresponding machine-readable source code, which +must be distributed under the terms of Sections 1 and 2 above on a +medium customarily used for software interchange. + + If distribution of object code is made by offering access to copy +from a designated place, then offering equivalent access to copy the +source code from the same place satisfies the requirement to +distribute the source code, even though third parties are not +compelled to copy the source along with the object code. + + 5. A program that contains no derivative of any portion of the +Library, but is designed to work with the Library by being compiled or +linked with it, is called a "work that uses the Library". Such a +work, in isolation, is not a derivative work of the Library, and +therefore falls outside the scope of this License. + + However, linking a "work that uses the Library" with the Library +creates an executable that is a derivative of the Library (because it +contains portions of the Library), rather than a "work that uses the +library". The executable is therefore covered by this License. +Section 6 states terms for distribution of such executables. + + When a "work that uses the Library" uses material from a header file +that is part of the Library, the object code for the work may be a +derivative work of the Library even though the source code is not. +Whether this is true is especially significant if the work can be +linked without the Library, or if the work is itself a library. The +threshold for this to be true is not precisely defined by law. + + If such an object file uses only numerical parameters, data +structure layouts and accessors, and small macros and small inline +functions (ten lines or less in length), then the use of the object +file is unrestricted, regardless of whether it is legally a derivative +work. (Executables containing this object code plus portions of the +Library will still fall under Section 6.) + + Otherwise, if the work is a derivative of the Library, you may +distribute the object code for the work under the terms of Section 6. +Any executables containing that work also fall under Section 6, +whether or not they are linked directly with the Library itself. +^L + 6. As an exception to the Sections above, you may also combine or +link a "work that uses the Library" with the Library to produce a +work containing portions of the Library, and distribute that work +under terms of your choice, provided that the terms permit +modification of the work for the customer's own use and reverse +engineering for debugging such modifications. + + You must give prominent notice with each copy of the work that the +Library is used in it and that the Library and its use are covered by +this License. You must supply a copy of this License. If the work +during execution displays copyright notices, you must include the +copyright notice for the Library among them, as well as a reference +directing the user to the copy of this License. Also, you must do one +of these things: + + a) Accompany the work with the complete corresponding + machine-readable source code for the Library including whatever + changes were used in the work (which must be distributed under + Sections 1 and 2 above); and, if the work is an executable linked + with the Library, with the complete machine-readable "work that + uses the Library", as object code and/or source code, so that the + user can modify the Library and then relink to produce a modified + executable containing the modified Library. (It is understood + that the user who changes the contents of definitions files in the + Library will not necessarily be able to recompile the application + to use the modified definitions.) + + b) Use a suitable shared library mechanism for linking with the + Library. A suitable mechanism is one that (1) uses at run time a + copy of the library already present on the user's computer system, + rather than copying library functions into the executable, and (2) + will operate properly with a modified version of the library, if + the user installs one, as long as the modified version is + interface-compatible with the version that the work was made with. + + c) Accompany the work with a written offer, valid for at + least three years, to give the same user the materials + specified in Subsection 6a, above, for a charge no more + than the cost of performing this distribution. + + d) If distribution of the work is made by offering access to copy + from a designated place, offer equivalent access to copy the above + specified materials from the same place. + + e) Verify that the user has already received a copy of these + materials or that you have already sent this user a copy. + + For an executable, the required form of the "work that uses the +Library" must include any data and utility programs needed for +reproducing the executable from it. However, as a special exception, +the materials to be distributed need not include anything that is +normally distributed (in either source or binary form) with the major +components (compiler, kernel, and so on) of the operating system on +which the executable runs, unless that component itself accompanies +the executable. + + It may happen that this requirement contradicts the license +restrictions of other proprietary libraries that do not normally +accompany the operating system. Such a contradiction means you cannot +use both them and the Library together in an executable that you +distribute. +^L + 7. You may place library facilities that are a work based on the +Library side-by-side in a single library together with other library +facilities not covered by this License, and distribute such a combined +library, provided that the separate distribution of the work based on +the Library and of the other library facilities is otherwise +permitted, and provided that you do these two things: + + a) Accompany the combined library with a copy of the same work + based on the Library, uncombined with any other library + facilities. This must be distributed under the terms of the + Sections above. + + b) Give prominent notice with the combined library of the fact + that part of it is a work based on the Library, and explaining + where to find the accompanying uncombined form of the same work. + + 8. You may not copy, modify, sublicense, link with, or distribute +the Library except as expressly provided under this License. Any +attempt otherwise to copy, modify, sublicense, link with, or +distribute the Library is void, and will automatically terminate your +rights under this License. However, parties who have received copies, +or rights, from you under this License will not have their licenses +terminated so long as such parties remain in full compliance. + + 9. You are not required to accept this License, since you have not +signed it. However, nothing else grants you permission to modify or +distribute the Library or its derivative works. These actions are +prohibited by law if you do not accept this License. Therefore, by +modifying or distributing the Library (or any work based on the +Library), you indicate your acceptance of this License to do so, and +all its terms and conditions for copying, distributing or modifying +the Library or works based on it. + + 10. Each time you redistribute the Library (or any work based on the +Library), the recipient automatically receives a license from the +original licensor to copy, distribute, link with or modify the Library +subject to these terms and conditions. You may not impose any further +restrictions on the recipients' exercise of the rights granted herein. +You are not responsible for enforcing compliance by third parties with +this License. +^L + 11. If, as a consequence of a court judgment or allegation of patent +infringement or for any other reason (not limited to patent issues), +conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot +distribute so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you +may not distribute the Library at all. For example, if a patent +license would not permit royalty-free redistribution of the Library by +all those who receive copies directly or indirectly through you, then +the only way you could satisfy both it and this License would be to +refrain entirely from distribution of the Library. + +If any portion of this section is held invalid or unenforceable under +any particular circumstance, the balance of the section is intended to +apply, and the section as a whole is intended to apply in other +circumstances. + +It is not the purpose of this section to induce you to infringe any +patents or other property right claims or to contest validity of any +such claims; this section has the sole purpose of protecting the +integrity of the free software distribution system which is +implemented by public license practices. Many people have made +generous contributions to the wide range of software distributed +through that system in reliance on consistent application of that +system; it is up to the author/donor to decide if he or she is willing +to distribute software through any other system and a licensee cannot +impose that choice. + +This section is intended to make thoroughly clear what is believed to +be a consequence of the rest of this License. + + 12. If the distribution and/or use of the Library is restricted in +certain countries either by patents or by copyrighted interfaces, the +original copyright holder who places the Library under this License +may add an explicit geographical distribution limitation excluding those +countries, so that distribution is permitted only in or among +countries not thus excluded. In such case, this License incorporates +the limitation as if written in the body of this License. + + 13. The Free Software Foundation may publish revised and/or new +versions of the Lesser General Public License from time to time. +Such new versions will be similar in spirit to the present version, +but may differ in detail to address new problems or concerns. + +Each version is given a distinguishing version number. If the Library +specifies a version number of this License which applies to it and +"any later version", you have the option of following the terms and +conditions either of that version or of any later version published by +the Free Software Foundation. If the Library does not specify a +license version number, you may choose any version ever published by +the Free Software Foundation. +^L + 14. If you wish to incorporate parts of the Library into other free +programs whose distribution conditions are incompatible with these, +write to the author to ask for permission. For software which is +copyrighted by the Free Software Foundation, write to the Free +Software Foundation; we sometimes make exceptions for this. Our +decision will be guided by the two goals of preserving the free status +of all derivatives of our free software and of promoting the sharing +and reuse of software generally. + + NO WARRANTY + + 15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO +WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW. +EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR +OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY +KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE +LIBRARY IS WITH YOU. SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME +THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. + + 16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN +WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY +AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU +FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR +CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE +LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING +RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A +FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF +SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH +DAMAGES. + + END OF TERMS AND CONDITIONS +^L + How to Apply These Terms to Your New Libraries + + If you develop a new library, and you want it to be of the greatest +possible use to the public, we recommend making it free software that +everyone can redistribute and change. You can do so by permitting +redistribution under these terms (or, alternatively, under the terms +of the ordinary General Public License). + + To apply these terms, attach the following notices to the library. +It is safest to attach them to the start of each source file to most +effectively convey the exclusion of warranty; and each file should +have at least the "copyright" line and a pointer to where the full +notice is found. + + + + Copyright (C) + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with this library; if not, write to the Free Software + Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + +Also add information on how to contact you by electronic and paper +mail. + +You should also get your employer (if you work as a programmer) or +your +school, if any, to sign a "copyright disclaimer" for the library, if +necessary. Here is a sample; alter the names: + + Yoyodyne, Inc., hereby disclaims all copyright interest in the + library `Frob' (a library for tweaking knobs) written by James +Random Hacker. + + , 1 April 1990 + Ty Coon, President of Vice + +That's all there is to it! + + diff --git a/synfig-core/tags/stable/pkg-info/macosx/core-resources/ReadMe.txt b/synfig-core/tags/stable/pkg-info/macosx/core-resources/ReadMe.txt new file mode 100644 index 0000000..cdb5c31 --- /dev/null +++ b/synfig-core/tags/stable/pkg-info/macosx/core-resources/ReadMe.txt @@ -0,0 +1 @@ +This is the readme for Synfig Core. diff --git a/synfig-core/tags/stable/pkg-info/macosx/core-resources/Welcome.txt b/synfig-core/tags/stable/pkg-info/macosx/core-resources/Welcome.txt new file mode 100644 index 0000000..f1e8e92 --- /dev/null +++ b/synfig-core/tags/stable/pkg-info/macosx/core-resources/Welcome.txt @@ -0,0 +1 @@ +This is the welcome for Synfig. diff --git a/synfig-core/tags/stable/pkg-info/macosx/core-resources/install.sh b/synfig-core/tags/stable/pkg-info/macosx/core-resources/install.sh new file mode 100755 index 0000000..5a537cc --- /dev/null +++ b/synfig-core/tags/stable/pkg-info/macosx/core-resources/install.sh @@ -0,0 +1,58 @@ +#!/bin/sh +# finish up the installation +# this script should be executed using the sudo command +# this file is copied to synfig-devel.post_install and synfig-devel.post_upgrade +# inside the .pkg bundle +LOGFILE="/synfig_install.log" + +exit 0 + + +umask 022 + +RESOURCE_DIR=`dirname $0` +PREFIX=/usr/local + +cd $RESOURCE_DIR + +echo "Creating synfig-config script" +[ -d $PREFIX ] || mkdir $PREFIX +[ -d $PREFIX/bin ] || mkdir $PREFIX/bin +[ -d $PREFIX/include ] || mkdir $PREFIX/include +[ -d $PREFIX/lib ] || mkdir $PREFIX/lib +[ -d $PREFIX/sbin ] || mkdir $PREFIX/sbin + +echo "Cleaning up any previous installation" +[ -d $PREFIX/include/synfig ] && rm -fr $PREFIX/include/synfig +ln -s /Library/Frameworks/synfig.framework/Headers $PREFIX/include/synfig + +sed ' +s:@exec_prefix@:/usr/local:g; +s:@prefix@:/usr/local:g; +s:@bindir@:$exec_prefix/bin:g; +s:@libdir@:$exec_prefix/lib:g; +s:@includedir@:$prefix/include:g; +s:@VERSION@:@_VERSION_@:g; +s:@PACKAGE@:@_PACKAGE_@:g; +s:@LIBS@::g; +s:@VERSION@:@_VERSION_@:; +s:@PACKAGE@:@_PACKAGE_@:; +s:@CONFIG_LIBS@:-F/Library/Frameworks/synfig.framework:; +s:@SYNFIG_LIBS@:-F/Library/Frameworks/synfig.framework:; +s:@CONFIG_CFLAGS@:-framework synfig:; +' < $RESOURCE_DIR/synfig-config.in > $PREFIX/bin/synfig-config +chmod 775 $PREFIX/bin/synfig-config + +echo "Precompiling Headers" +#/usr/bin/c++ -precomp /Library/Frameworks/synfig.framework/Headers/synfig.h -o /Library/Frameworks/synfig.framework/Headers/synfig.p + +echo "Moving synfig tool" +cp $RESOURCE_DIR/synfig $PREFIX/bin || exit 1 + +echo "Done with shell script" + + +exit 0 + + + diff --git a/synfig-core/tags/stable/pkg-info/macosx/core-resources/upgrade.sh b/synfig-core/tags/stable/pkg-info/macosx/core-resources/upgrade.sh new file mode 100755 index 0000000..5a537cc --- /dev/null +++ b/synfig-core/tags/stable/pkg-info/macosx/core-resources/upgrade.sh @@ -0,0 +1,58 @@ +#!/bin/sh +# finish up the installation +# this script should be executed using the sudo command +# this file is copied to synfig-devel.post_install and synfig-devel.post_upgrade +# inside the .pkg bundle +LOGFILE="/synfig_install.log" + +exit 0 + + +umask 022 + +RESOURCE_DIR=`dirname $0` +PREFIX=/usr/local + +cd $RESOURCE_DIR + +echo "Creating synfig-config script" +[ -d $PREFIX ] || mkdir $PREFIX +[ -d $PREFIX/bin ] || mkdir $PREFIX/bin +[ -d $PREFIX/include ] || mkdir $PREFIX/include +[ -d $PREFIX/lib ] || mkdir $PREFIX/lib +[ -d $PREFIX/sbin ] || mkdir $PREFIX/sbin + +echo "Cleaning up any previous installation" +[ -d $PREFIX/include/synfig ] && rm -fr $PREFIX/include/synfig +ln -s /Library/Frameworks/synfig.framework/Headers $PREFIX/include/synfig + +sed ' +s:@exec_prefix@:/usr/local:g; +s:@prefix@:/usr/local:g; +s:@bindir@:$exec_prefix/bin:g; +s:@libdir@:$exec_prefix/lib:g; +s:@includedir@:$prefix/include:g; +s:@VERSION@:@_VERSION_@:g; +s:@PACKAGE@:@_PACKAGE_@:g; +s:@LIBS@::g; +s:@VERSION@:@_VERSION_@:; +s:@PACKAGE@:@_PACKAGE_@:; +s:@CONFIG_LIBS@:-F/Library/Frameworks/synfig.framework:; +s:@SYNFIG_LIBS@:-F/Library/Frameworks/synfig.framework:; +s:@CONFIG_CFLAGS@:-framework synfig:; +' < $RESOURCE_DIR/synfig-config.in > $PREFIX/bin/synfig-config +chmod 775 $PREFIX/bin/synfig-config + +echo "Precompiling Headers" +#/usr/bin/c++ -precomp /Library/Frameworks/synfig.framework/Headers/synfig.h -o /Library/Frameworks/synfig.framework/Headers/synfig.p + +echo "Moving synfig tool" +cp $RESOURCE_DIR/synfig $PREFIX/bin || exit 1 + +echo "Done with shell script" + + +exit 0 + + + diff --git a/synfig-core/tags/stable/pkg-info/macosx/synfig-core.info.in b/synfig-core/tags/stable/pkg-info/macosx/synfig-core.info.in new file mode 100644 index 0000000..7dc1a3b --- /dev/null +++ b/synfig-core/tags/stable/pkg-info/macosx/synfig-core.info.in @@ -0,0 +1,14 @@ +Title @PACKAGE_NAME@ @VERSION@ +Version @VERSION@ +Description @PACKAGE_NAME@ +DefaultLocation /usr/local +DeleteWarning +NeedsAuthorization YES +DisableStop NO +UseUserMask YES +Application NO +Relocatable NO +Required NO +InstallOnly NO +RequiresReboot NO +InstallFat NO diff --git a/synfig-core/tags/stable/src/Makefile.am b/synfig-core/tags/stable/src/Makefile.am new file mode 100644 index 0000000..0db496d --- /dev/null +++ b/synfig-core/tags/stable/src/Makefile.am @@ -0,0 +1,6 @@ +# $Id$ + +MAINTAINERCLEANFILES=Makefile.in +SUBDIRS=synfig modules tool +EXTRA_DIST=template.cpp template.h + diff --git a/synfig-core/tags/stable/src/modules/Makefile.am b/synfig-core/tags/stable/src/modules/Makefile.am new file mode 100644 index 0000000..0883907 --- /dev/null +++ b/synfig-core/tags/stable/src/modules/Makefile.am @@ -0,0 +1,9 @@ +# $Id$ + +synfiglibdir=@SYNFIGLIB_DIR@ + +MAINTAINERCLEANFILES=Makefile.in +SUBDIRS=mod_particle mod_filter mod_yuv420p mod_gif mod_gradient mod_geometry mod_noise mod_libavcodec mod_jpeg mod_openexr mod_bmp mod_ppm mod_png mod_dv mod_imagemagick mod_ffmpeg lyr_freetype lyr_std +EXTRA_DIST=untemplate.nsh template.nsh example/simplecircle.h example/simplecircle.cpp example/filledrect.h example/main.cpp example/Makefile.am example/filledrect.cpp example/metaballs.cpp example/metaballs.h mod_mng/trgt_mng.h mod_mng/unmod_mng.nsh mod_mng/main.cpp mod_mng/Makefile.am mod_mng/mod_mng.nsh mod_mng/trgt_mng.cpp mptr_mplayer/main.cpp mptr_mplayer/mptr_mplayer.h mptr_mplayer/Makefile.am mptr_mplayer/mptr_mplayer.cpp + +sysconf_DATA = synfig_modules.cfg diff --git a/synfig-core/tags/stable/src/modules/example/Makefile.am b/synfig-core/tags/stable/src/modules/example/Makefile.am new file mode 100644 index 0000000..1b5d892 --- /dev/null +++ b/synfig-core/tags/stable/src/modules/example/Makefile.am @@ -0,0 +1,13 @@ +# $Id$ + + +MAINTAINERCLEANFILES=Makefile.in +INCLUDES = -I$(top_srcdir)/src + +moduledir=@MODULE_DIR@ + +module_LTLIBRARIES = libexample.la +libexample_la_SOURCES = main.cpp simplecircle.cpp simplecircle.h filledrect.h filledrect.cpp metaballs.h metaballs.cpp +libexample_la_LIBADD = ../../synfig/libsynfig.la @SYNFIG_LIBS@ +libexample_la_LDFLAGS = -module -no-undefined +libexample_la_CXXFLAGS = @SYNFIG_CFLAGS@ diff --git a/synfig-core/tags/stable/src/modules/example/filledrect.cpp b/synfig-core/tags/stable/src/modules/example/filledrect.cpp new file mode 100644 index 0000000..72125ee --- /dev/null +++ b/synfig-core/tags/stable/src/modules/example/filledrect.cpp @@ -0,0 +1,564 @@ +/* === S Y N F I G ========================================================= */ +/*! \file filledrect.cpp +** \brief Template Header +** +** $Id$ +** +** \legal +** Copyright (c) 2002-2005 Robert B. Quattlebaum Jr., Adrian Bentley +** +** This package is free software; you can redistribute it and/or +** modify it under the terms of the GNU General Public License as +** published by the Free Software Foundation; either version 2 of +** the License, or (at your option) any later version. +** +** This package is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +** General Public License for more details. +** \endlegal +*/ +/* ========================================================================= */ + +/* === H E A D E R S ======================================================= */ + +#ifdef USING_PCH +# include "pch.h" +#else +#ifdef HAVE_CONFIG_H +# include +#endif + +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include "filledrect.h" + +#endif + +/* === U S I N G =========================================================== */ + +using namespace etl; +using namespace std; +using namespace synfig; + +/* === G L O B A L S ======================================================= */ + +SYNFIG_LAYER_INIT(FilledRect); +SYNFIG_LAYER_SET_NAME(FilledRect,"rectangle"); +SYNFIG_LAYER_SET_LOCAL_NAME(FilledRect,_("Rectangle")); +SYNFIG_LAYER_SET_CATEGORY(FilledRect,_("Geometry")); +SYNFIG_LAYER_SET_VERSION(FilledRect,"0.1"); +SYNFIG_LAYER_SET_CVS_ID(FilledRect,"$Id$"); + +/* === P R O C E D U R E S ================================================= */ + +/* === M E T H O D S ======================================================= */ + +/* === E N T R Y P O I N T ================================================= */ + +FilledRect::FilledRect(): + Layer_Composite(1.0,Color::BLEND_STRAIGHT), + color(Color::black()), + point1(0,0), + point2(1,1), + feather_x(0), + feather_y(0), + bevel(0), + bevCircle(0) +{ +} + +bool +FilledRect::set_param(const String & param, const ValueBase &value) +{ + IMPORT(color); + IMPORT(point1); + IMPORT(point2); + IMPORT(feather_x); + IMPORT(feather_y); + IMPORT(bevel); + IMPORT(bevCircle); + + return Layer_Composite::set_param(param,value); +} + +ValueBase +FilledRect::get_param(const String ¶m)const +{ + EXPORT(color); + EXPORT(point1); + EXPORT(point2); + EXPORT(feather_x); + EXPORT(feather_y); + EXPORT(bevel); + EXPORT(bevCircle); + + EXPORT_NAME(); + EXPORT_VERSION(); + + return Layer_Composite::get_param(param); +} + +Layer::Vocab +FilledRect::get_param_vocab()const +{ + Layer::Vocab ret(Layer_Composite::get_param_vocab()); + + ret.push_back(ParamDesc("color") + .set_local_name(_("Color")) + ); + + ret.push_back(ParamDesc("point1") + .set_local_name(_("Point 1")) + ); + + ret.push_back(ParamDesc("point2") + .set_local_name(_("Point 2")) + ); + + ret.push_back(ParamDesc("feather_x") + .set_local_name(_("Feather X")) + ); + + ret.push_back(ParamDesc("feather_y") + .set_local_name(_("Feather Y")) + ); + + ret.push_back(ParamDesc("bevel") + .set_local_name(_("Bevel")) + ); + + ret.push_back(ParamDesc("bevCircle") + .set_local_name(_("Keep Bevel Circular")) + ); + + return ret; +} + +bool +FilledRect::get_color(const Point &pos, Color &out, Real &outamount) const +{ + Point p[2] = {point1,point2}; + Real swap; + + if(p[0][0] > p[1][0]) + { + swap = p[0][0]; + p[0][0] = p[1][0]; + p[1][0] = swap; + } + + if(p[0][1] > p[1][1]) + { + swap = p[0][1]; + p[0][1] = p[1][1]; + p[1][1] = swap; + } + + /* + p[0][0] -= feather_x; + p[1][0] += feather_x; + p[0][1] -= feather_y; + p[1][1] += feather_y;*/ + const Real w = p[1][0] - p[0][0]; + const Real h = p[1][1] - p[0][1]; + + if(pos[0] >= p[0][0] && pos[0] <= p[1][0] && pos[1] >= p[0][1] && pos[1] <= p[1][1]) + { + Real value = 1; + + if(feather_x > 0) + { + Real xdist = pos[0] - p[0][0]; + xdist = min(xdist,p[1][0]-pos[0]); + + if(xdist < feather_x) + { + value = xdist/feather_x; + } + } + + if(feather_y > 0) + { + Real ydist = pos[1]-p[0][1]; + ydist = min(ydist,p[1][1]-pos[1]); + + if(ydist < feather_y) + { + value = min(value,(ydist/feather_y)); + } + } + + //if we're beveled then check with ellipse code... + if(bevel > 0) + { + const Real bev = (bevel > 1) ? 1 : bevel; + const Real bevx = bevCircle ? min(w*bev/2,h*bev/2) : w*bev/2; + const Real bevy = bevCircle ? min(w*bev/2,h*bev/2) : h*bev/2;; + + Vector v(0,0); + bool in = false; + + //based on which quarter it is in (and because it's x/y symmetric) get a positive vector (x/y) + if(pos[0] < p[0][0] + bevx) + { + if(pos[1] < p[0][1] + bevy) + { + v[0] = p[0][0] + bevx - pos[0]; + v[1] = p[0][1] + bevy - pos[1]; + in = true; + }else if(pos[1] > p[1][1] - bevy) + { + v[0] = p[0][0] + bevx - pos[0]; + v[1] = pos[1] - (p[1][1] - bevy); + in = true; + } + } + else if(pos[0] > p[1][0] - bevx) + { + if(pos[1] < p[0][1] + bevy) + { + v[0] = pos[0] - (p[1][0] - bevx); + v[1] = p[0][1] + bevy - pos[1]; + in = true; + }else if(pos[1] > p[1][1] - bevy) + { + v[0] = pos[0] - (p[1][0] - bevx); + v[1] = pos[1] - (p[1][1] - bevy); + in = true; + } + } + + //if it's inside a bevelled block + if(in) + { + const Vector scale(bevx,bevy); + + Vector vc(v[0]/scale[0],v[1]/scale[1]); + Real d = vc.mag(); + + //if it's inside the ellipse + if(d < 1) + { + Real val = atan2(vc[1],vc[0]); + val /= (PI/2); //< will always be (0,pi/2) because both components are positive + + Real fthx=1,fthy=1; + + //change d into distance away from edge + d = 1 - d; + + if(feather_x > 0) + { + if(scale[0] < feather_x) + { + fthy = scale[0]/feather_x; + } + + if(d*scale[0] < feather_x) + { + fthx = d*scale[0]/feather_x; + } + } + + if(feather_y > 0) + { + if(scale[1] < feather_y) + { + fthx = min(fthx,scale[1]/feather_y); + } + + if(d*scale[1] < feather_y) + { + fthy = min(fthy,d*scale[1]/feather_y); + } + } + + //interpolate + outamount = min(value,((1-val)*fthx + val*fthy)) * get_amount(); + out = color; + return true; + + }else return false; + } + } + + outamount = value * get_amount(); + out = color; + + return true; + }else + return false; +} + +Color +FilledRect::get_color(Context context, const Point &pos)const +{ + Color clr; + Real amt; + + if(get_color(pos,clr,amt)) + { + if(amt==1.0 && get_blend_method()==Color::BLEND_STRAIGHT) + return clr; + else + return Color::blend(clr,context.get_color(pos),amt,get_blend_method()); + } + else + return context.get_color(pos); +} + +bool +FilledRect::accelerated_render(Context context,Surface *surface,int quality, const RendDesc &renddesc, ProgressCallback *cb)const +{ + // Width and Height of a pixel + const Point br(renddesc.get_br()), tl(renddesc.get_tl()); + const int w = renddesc.get_w(), h = renddesc.get_h(); + + Real wpp = (br[0]-tl[0])/w; + Real hpp = (br[1]-tl[1])/h; + //const Real xneg = wpp<0?-1:1; + //const Real yneg = hpp<0?-1:1; + + //the bounds of the rectangle + Point p[2] = {point1,point2}; + + if((p[0][0] > p[1][0]) ^ wpp < 0) + { + swap(p[0][0],p[1][0]); + } + + if((p[0][1] > p[1][1]) ^ hpp < 0) + { + swap(p[0][1],p[1][1]); + } + + /*p[0][0] -= xneg*feather_x; + p[1][0] += xneg*feather_x; + p[0][1] -= yneg*feather_y; + p[1][1] += yneg*feather_y;*/ + + //the integer coordinates + int y_start = (int)((p[0][1] - tl[1])/hpp +.5); //round start up + int x_start = (int)((p[0][0] - tl[0])/wpp +.5); + int y_end = (int)((p[1][1] - tl[1])/hpp +.5); //and ends up + int x_end = (int)((p[1][0] - tl[0])/wpp +.5); + + y_start = max(0,y_start); + x_start = max(0,x_start); + y_end = min(h,y_end); + x_end = min(w,x_end); + + SuperCallback supercb(cb,0,9000,10000); + + if(y_start >= h || x_start > w || x_end < 0 || y_end < 0) + { + if(!context.accelerated_render(surface,quality,renddesc,&supercb)) + { + if(cb)cb->error(strprintf(__FILE__"%d: Accelerated Renderer Failure",__LINE__)); + return false; + } + + return true; + } + + Real xf_start = tl[0] + x_start*wpp; + Point pos(xf_start,tl[1] + y_start*hpp); + + Color clr = Color::black(); + Real amt; + + if(!context.accelerated_render(surface,quality,renddesc,&supercb)) + { + if(cb)cb->error(strprintf(__FILE__"%d: Accelerated Renderer Failure",__LINE__)); + return false; + } + + for(int y = y_start; y < y_end; y++, pos[1] += hpp) + { + pos[0] = xf_start; + for(int x = x_start; x < x_end; x++, pos[0] += wpp) + { + if(get_color(pos,clr,amt)) + { + if(amt==1.0 && get_blend_method()==Color::BLEND_STRAIGHT) + (*surface)[y][x] = clr; + else + (*surface)[y][x] = Color::blend(clr,(*surface)[y][x],amt,get_blend_method()); + } + } + } + + return true; + +#if 0 + //faster version but much more complex + //the floating point + Real y1,y2,y3; + Real x1,x2,x3; + Real dx1,dx2; //reversed in 3rd y section, not used in 2nd + + //the transparent + Real fx = 0, fy = 0; + Real dfx,dfy; + + //Get the slopes of the lines we need to worry about + if(feather_x) + { + dfx = 1/(fxsize); + + if(fxsize*2 > xfw) + { + x1 = xfw/2; + x2 = 0; + x3 = xfw; + }else + { + x1 = fxsize; + x2 = xfw - fxsize; + x3 = xfw; + } + }else + { + fx = 1; + dfx = 0; + x1=0; + x2=xfw; + x3=0; + } + + if(feather_y) + { + dfy = 1/(fysize); + + if(fysize*2 > yfh) + { + y1 = yfh/2; + y2 = 0; + y3 = yfh; + }else + { + y1 = fysize; + y2 = yfh - fysize; + y3 = yfh; + } + + dx1 = ph*feather_x/feather_y; + dx2 = -2*dx1; + + }else + { + fy = 1; + dfy = 0; + y1=0; + y2=yfh; + y3=0; + } + + fy = yf*dfy; + + int x,y; + Real value = 0; + SuperCallback supercb(cb,0,9000,10000); + Surface::pen p; + + Real tx1 = 0,tx2 = + for(y = y_start;yf < y1; y++,yf++,fy+=dfy, tx1+=dx1) + { + fx = xf*dfx; + + p = surface->get_pen(x_start,y); + for(; xf < x1; xf++,p.inc_x(), fx+=dfx) + { + //we are in the x portion... use fx + value = fx*get_amount(); + if(value==1.0 && get_blend_method()==Color::BLEND_STRAIGHT) + p.put_value(color); + else + p.put_value(Color::blend(color,p.get_value(),value,get_blend_method())); + } + + for(;xf < x2; xf++,p.inc_x()) + { + //we are now in y... use fy + value = fy*get_amount(); + if(value==1.0 && get_blend_method()==Color::BLEND_STRAIGHT) + p.put_value(color); + else + p.put_value(Color::blend(color,p.get_value(),value,get_blend_method())); + } + + fx = xfw?(xfw - xf)/xfw:1; + for(;xf < x3 && ; xf++,p.inc_x(), fx-=dfx) + { + //we are in the x portion... use fx + value = max(0,fx*get_amount()); + if(value==1.0 && get_blend_method()==Color::BLEND_STRAIGHT) + p.put_value(color); + else + p.put_value(Color::blend(color,p.get_value(),value,get_blend_method())); + } + } + + x1 = + for(;fy < 1.0; y++,yf++,fy+=dfy) + { + fx = xf*dfx; + + p = surface->get_pen(x_start,y); + for(; xf < x1; xf++,p.inc_x(), fx+=dfx) + { + //we are in the x portion... use fx + value = fx*get_amount(); + if(value==1.0 && get_blend_method()==Color::BLEND_STRAIGHT) + p.put_value(color); + else + p.put_value(Color::blend(color,p.get_value(),value,get_blend_method())); + } + + for(;xf < x2; xf++,p.inc_x()) + { + //we are now in y... use fy + value = fy*get_amount(); + if(value==1.0 && get_blend_method()==Color::BLEND_STRAIGHT) + p.put_value(color); + else + p.put_value(Color::blend(color,p.get_value(),value,get_blend_method())); + } + + fx = xfw?(xfw - xf)/xfw:1; + for(;xf < x3 && ; xf++,p.inc_x(), fx-=dfx) + { + //we are in the x portion... use fx + value = max(0,fx*get_amount()); + if(value==1.0 && get_blend_method()==Color::BLEND_STRAIGHT) + p.put_value(color); + else + p.put_value(Color::blend(color,p.get_value(),value,get_blend_method())); + } + } + + for() + { + for(int x = x_start; x < x_end; x++) + { + + } + } + +#endif + + // Mark our progress as finished + if(cb && !cb->amount_complete(10000,10000)) + return false; + + return true; +} diff --git a/synfig-core/tags/stable/src/modules/example/filledrect.h b/synfig-core/tags/stable/src/modules/example/filledrect.h new file mode 100644 index 0000000..535b697 --- /dev/null +++ b/synfig-core/tags/stable/src/modules/example/filledrect.h @@ -0,0 +1,79 @@ +/* === S Y N F I G ========================================================= */ +/*! \file filledrect.h +** \brief Template Header +** +** $Id$ +** +** \legal +** Copyright (c) 2002-2005 Robert B. Quattlebaum Jr., Adrian Bentley +** +** This package is free software; you can redistribute it and/or +** modify it under the terms of the GNU General Public License as +** published by the Free Software Foundation; either version 2 of +** the License, or (at your option) any later version. +** +** This package is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +** General Public License for more details. +** \endlegal +*/ +/* ========================================================================= */ + +/* === S T A R T =========================================================== */ + +#ifndef __SYNFIG_FILLEDRECT_H +#define __SYNFIG_FILLEDRECT_H + +/* === H E A D E R S ======================================================= */ + +#include +#include +#include +#include +#include + +/* === M A C R O S ========================================================= */ + +/* === T Y P E D E F S ===================================================== */ + +/* === C L A S S E S & S T R U C T S ======================================= */ + +class FilledRect : public synfig::Layer_Composite +{ + SYNFIG_LAYER_MODULE_EXT + +private: + + synfig::Color color; + + synfig::Point point1; + synfig::Point point2; + + synfig::Real feather_x; + synfig::Real feather_y; + + synfig::Real bevel; + + bool bevCircle; + + bool get_color(const synfig::Point &pos, synfig::Color &out, synfig::Real &outamount)const; + +public: + + FilledRect(); + + virtual bool set_param(const synfig::String & param, const synfig::ValueBase &value); + + virtual synfig::ValueBase get_param(const synfig::String & param)const; + + virtual synfig::Color get_color(synfig::Context context, const synfig::Point &pos)const; + + virtual bool accelerated_render(synfig::Context context,synfig::Surface *surface,int quality, const synfig::RendDesc &renddesc, synfig::ProgressCallback *cb)const; + + virtual Vocab get_param_vocab()const; +}; // END of class FilledRect + +/* === E N D =============================================================== */ + +#endif diff --git a/synfig-core/tags/stable/src/modules/example/main.cpp b/synfig-core/tags/stable/src/modules/example/main.cpp new file mode 100644 index 0000000..e57d4c8 --- /dev/null +++ b/synfig-core/tags/stable/src/modules/example/main.cpp @@ -0,0 +1,61 @@ +/* === S Y N F I G ========================================================= */ +/*! \file example/main.cpp +** \brief Template Header +** +** $Id$ +** +** \legal +** Copyright (c) 2002-2005 Robert B. Quattlebaum Jr., Adrian Bentley +** +** This package is free software; you can redistribute it and/or +** modify it under the terms of the GNU General Public License as +** published by the Free Software Foundation; either version 2 of +** the License, or (at your option) any later version. +** +** This package is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +** General Public License for more details. +** \endlegal +** +** === N O T E S =========================================================== +** +** ========================================================================= */ + +/* === H E A D E R S ======================================================= */ + +#define SYNFIG_MODULE + +#ifdef USING_PCH +# include "pch.h" +#else +#ifdef HAVE_CONFIG_H +# include +#endif + +#include +#include +#include +#include "simplecircle.h" +#include "filledrect.h" +#include "metaballs.h" + +#endif + +/* === E N T R Y P O I N T ================================================= */ + +MODULE_DESC_BEGIN(example) + MODULE_NAME("Example Module") + MODULE_DESCRIPTION("A dummy module that serves as a starting point for writing other modules.") + MODULE_AUTHOR("Robert B. Quattlebaum") + MODULE_VERSION("1.0") + MODULE_COPYRIGHT(SYNFIG_COPYRIGHT) +MODULE_DESC_END + +MODULE_INVENTORY_BEGIN(example) + BEGIN_LAYERS + //LAYER(SimpleCircle) + //LAYER(FilledRect) + //LAYER(Metaballs) + END_LAYERS +MODULE_INVENTORY_END diff --git a/synfig-core/tags/stable/src/modules/example/metaballs.cpp b/synfig-core/tags/stable/src/modules/example/metaballs.cpp new file mode 100644 index 0000000..5559f93 --- /dev/null +++ b/synfig-core/tags/stable/src/modules/example/metaballs.cpp @@ -0,0 +1,237 @@ +/* === S Y N F I G ========================================================= */ +/*! \file metaballs.cpp +** \brief Implements metaballs +** +** $Id$ +** +** \legal +** Copyright (c) 2002-2005 Robert B. Quattlebaum Jr., Adrian Bentley +** +** This package is free software; you can redistribute it and/or +** modify it under the terms of the GNU General Public License as +** published by the Free Software Foundation; either version 2 of +** the License, or (at your option) any later version. +** +** This package is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +** General Public License for more details. +** \endlegal +*/ +/* ========================================================================= */ + +/* === H E A D E R S ======================================================= */ + +#ifdef USING_PCH +# include "pch.h" +#else +#ifdef HAVE_CONFIG_H +# include +#endif + +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include "metaballs.h" + +#endif + +/* === U S I N G =========================================================== */ + +using namespace etl; +using namespace std; +using namespace synfig; + +/* === G L O B A L S ======================================================= */ + +SYNFIG_LAYER_INIT(Metaballs); +SYNFIG_LAYER_SET_NAME(Metaballs,"metaballs"); +SYNFIG_LAYER_SET_LOCAL_NAME(Metaballs,_("Metaballs")); +SYNFIG_LAYER_SET_CATEGORY(Metaballs,_("Default")); +SYNFIG_LAYER_SET_VERSION(Metaballs,"0.1"); +SYNFIG_LAYER_SET_CVS_ID(Metaballs,"$Id$"); + +/* === P R O C E D U R E S ================================================= */ + +/* === M E T H O D S ======================================================= */ + +/* === E N T R Y P O I N T ================================================= */ + +Metaballs::Metaballs(): + Layer_Composite(1.0,Color::BLEND_STRAIGHT), + color(Color::black()) +{ +} + +bool +Metaballs::set_param(const String & param, const ValueBase &value) +{ + if( param=="centers" && value.same_as(centers)) + { + centers = value; + return true; + } + + if( param=="weights" && value.same_as(weights)) + { + weights = value; + return true; + } + + if( param=="radii" && value.same_as(radii)) + { + radii = value; + return true; + } + + IMPORT(color); + IMPORT(threshold); + + return Layer_Composite::set_param(param,value); +} + +ValueBase +Metaballs::get_param(const String ¶m)const +{ + EXPORT(color); + + EXPORT(radii); + EXPORT(weights); + EXPORT(centers); + EXPORT(threshold); + + EXPORT_NAME(); + EXPORT_VERSION(); + + return Layer_Composite::get_param(param); +} + +Layer::Vocab +Metaballs::get_param_vocab()const +{ + Layer::Vocab ret(Layer_Composite::get_param_vocab()); + + ret.push_back(ParamDesc("color") + .set_local_name(_("Color")) + ); + + ret.push_back(ParamDesc("centers") + .set_local_name(_("Points")) + ); + + ret.push_back(ParamDesc("radii") + .set_local_name(_("Radii")) + ); + + ret.push_back(ParamDesc("weights") + .set_local_name(_("Weights")) + ); + + ret.push_back(ParamDesc("threshold") + .set_local_name(_("Threshold")) + ); + + return ret; +} + +static inline Real densityfunc(const synfig::Point &p, const synfig::Point &c, Real R) +{ + const Real dx = p[0] - c[0]; + const Real dy = p[1] - c[1]; + + const Real n = (1 - (dx*dx + dy*dy)/(R*R)); + return (n*n*n); + + /* + f(d) = (1 - d^2)^3 + f'(d) = -6d * (1 - d^2)^2 + + could use this too... + f(d) = (1 - d^2)^2 + f'(d) = -6d * (1 - d^2) + */ +} + +Real +Metaballs::totaldensity(const Point &pos) const +{ + Real density = 0; + + //sum up weighted functions + for(unsigned int i=0;i= threshold) + return color; + else + return context.get_color(pos); +} + +bool +Metaballs::accelerated_render(Context context,Surface *surface,int quality, const RendDesc &renddesc, ProgressCallback *cb)const +{ + // Width and Height of a pixel + const Point br(renddesc.get_br()), + tl(renddesc.get_tl()); + + const int w = renddesc.get_w(), + h = renddesc.get_h(); + + Real pw = renddesc.get_pw(); + Real ph = renddesc.get_ph(); + + SuperCallback supercb(cb,0,9000,10000); + + if(!context.accelerated_render(surface,quality,renddesc,&supercb)) + { + if(cb)cb->error(strprintf(__FILE__"%d: Accelerated Renderer Failure",__LINE__)); + return false; + } + + Point pos(tl[0],tl[1]); + + Real dens; + + if(!context.accelerated_render(surface,quality,renddesc,&supercb)) + { + if(cb)cb->error(strprintf(__FILE__"%d: Accelerated Renderer Failure",__LINE__)); + return false; + } + + for(int y = 0; y < h; y++, pos[1] += ph) + { + pos[0] = tl[0]; + for(int x = 0; x < w; x++, pos[0] += pw) + { + dens = totaldensity(pos); + + if(dens >= threshold) + { + (*surface)[y][x] = Color::blend(color,(*surface)[y][x],get_amount(),get_blend_method()); + } + } + } + + // Mark our progress as finished + if(cb && !cb->amount_complete(10000,10000)) + return false; + + return true; +} diff --git a/synfig-core/tags/stable/src/modules/example/metaballs.h b/synfig-core/tags/stable/src/modules/example/metaballs.h new file mode 100644 index 0000000..c3e7202 --- /dev/null +++ b/synfig-core/tags/stable/src/modules/example/metaballs.h @@ -0,0 +1,75 @@ +/* === S Y N F I G ========================================================= */ +/*! \file metaballs.h +** \brief Declares information for defining Metaballs. +** +** $Id$ +** +** \legal +** Copyright (c) 2002-2005 Robert B. Quattlebaum Jr., Adrian Bentley +** +** This package is free software; you can redistribute it and/or +** modify it under the terms of the GNU General Public License as +** published by the Free Software Foundation; either version 2 of +** the License, or (at your option) any later version. +** +** This package is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +** General Public License for more details. +** \endlegal +*/ +/* ========================================================================= */ + +/* === S T A R T =========================================================== */ + +#ifndef __SYNFIG_METABALLS_H +#define __SYNFIG_METABALLS_H + +/* === H E A D E R S ======================================================= */ + +#include +#include +#include +#include +#include + +/* === M A C R O S ========================================================= */ + +/* === T Y P E D E F S ===================================================== */ + +/* === C L A S S E S & S T R U C T S ======================================= */ +class Metaballs : public synfig::Layer_Composite +{ + SYNFIG_LAYER_MODULE_EXT + +private: + + synfig::Color color; + + std::vector centers; + std::vector radii; + std::vector weights; + + synfig::Real threshold; + //Real threshold2; + + synfig::Real totaldensity(const synfig::Point &pos)const; + +public: + + Metaballs(); + + virtual bool set_param(const synfig::String & param, const synfig::ValueBase &value); + + virtual synfig::ValueBase get_param(const synfig::String & param)const; + + virtual synfig::Color get_color(synfig::Context context, const synfig::Point &pos)const; + + virtual bool accelerated_render(synfig::Context context,synfig::Surface *surface,int quality, const synfig::RendDesc &renddesc, synfig::ProgressCallback *cb)const; + + virtual Vocab get_param_vocab()const; +}; // END of class Metaballs + +/* === E N D =============================================================== */ + +#endif diff --git a/synfig-core/tags/stable/src/modules/example/simplecircle.cpp b/synfig-core/tags/stable/src/modules/example/simplecircle.cpp new file mode 100644 index 0000000..10a27a0 --- /dev/null +++ b/synfig-core/tags/stable/src/modules/example/simplecircle.cpp @@ -0,0 +1,186 @@ +/* === S Y N F I G ========================================================= */ +/*! \file simplecircle.cpp +** \brief Template Header +** +** $Id$ +** +** \legal +** Copyright (c) 2002-2005 Robert B. Quattlebaum Jr., Adrian Bentley +** +** This package is free software; you can redistribute it and/or +** modify it under the terms of the GNU General Public License as +** published by the Free Software Foundation; either version 2 of +** the License, or (at your option) any later version. +** +** This package is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +** General Public License for more details. +** \endlegal +*/ +/* ========================================================================= */ + +/* === H E A D E R S ======================================================= */ + +#ifdef USING_PCH +# include "pch.h" +#else +#ifdef HAVE_CONFIG_H +# include +#endif + +#include +#include +#include +#include +#include +#include +#include +#include + +#include "simplecircle.h" + +#endif + +/* === U S I N G =========================================================== */ + +using namespace etl; +using namespace std; +using namespace synfig; + +/* === G L O B A L S ======================================================= */ + +SYNFIG_LAYER_INIT(SimpleCircle); +SYNFIG_LAYER_SET_NAME(SimpleCircle,"simple_circle"); +SYNFIG_LAYER_SET_LOCAL_NAME(SimpleCircle,_("Simple Circle")); +SYNFIG_LAYER_SET_CATEGORY(SimpleCircle,_("Do Not Use")); +SYNFIG_LAYER_SET_VERSION(SimpleCircle,"0.1"); +SYNFIG_LAYER_SET_CVS_ID(SimpleCircle,"$Id$"); + +/* === P R O C E D U R E S ================================================= */ + +/* === M E T H O D S ======================================================= */ + +/* === E N T R Y P O I N T ================================================= */ + +SimpleCircle::SimpleCircle(): + Layer_Composite(1.0,Color::BLEND_STRAIGHT), + color(Color::black()), + center(0,0), + radius(0.5) +{ +} + +bool +SimpleCircle::set_param(const String & param, const ValueBase &value) +{ + IMPORT(color); + IMPORT(center); + IMPORT(radius); + + return Layer_Composite::set_param(param,value); +} + +ValueBase +SimpleCircle::get_param(const String ¶m)const +{ + EXPORT(color); + EXPORT(center); + EXPORT(radius); + + EXPORT_NAME(); + EXPORT_VERSION(); + + return Layer_Composite::get_param(param); +} + +Layer::Vocab +SimpleCircle::get_param_vocab()const +{ + Layer::Vocab ret(Layer_Composite::get_param_vocab()); + + ret.push_back(ParamDesc("color") + .set_local_name(_("Color")) + ); + + ret.push_back(ParamDesc("center") + .set_local_name(_("Center")) + ); + + ret.push_back(ParamDesc("radius") + .set_local_name(_("Radius")) + .set_description(_("This is the radius of the circle")) + .set_origin("center") + ); + + return ret; +} + +Color +SimpleCircle::get_color(Context context, const Point &pos)const +{ + + if((pos-center).mag()(this); + else + return context.hit_check(pos); +} + +/* +bool +SimpleCircle::accelerated_render(Context context,Surface *surface,int quality, const RendDesc &renddesc, ProgressCallback *cb)const +{ + if(get_amount()==1.0 && get_blend_method()==Color::BLEND_STRAIGHT) + { + // Mark our progress as starting + if(cb && !cb->amount_complete(0,1000)) + return false; + + surface->set_wh(renddesc.get_w(),renddesc.get_h()); + surface->fill(color); + + // Mark our progress as finished + if(cb && !cb->amount_complete(1000,1000)) + return false; + + return true; + } + + SuperCallback supercb(cb,0,9500,10000); + + if(!context.accelerated_render(surface,quality,renddesc,&supercb)) + return false; + + int x,y; + + Surface::alpha_pen apen(surface->begin()); + + apen.set_value(color); + apen.set_alpha(get_amount()); + apen.set_blend_method(get_blend_method()); + + for(y=0;yamount_complete(10000,10000)) + return false; + + return true; +} +*/ diff --git a/synfig-core/tags/stable/src/modules/example/simplecircle.h b/synfig-core/tags/stable/src/modules/example/simplecircle.h new file mode 100644 index 0000000..d9f8d20 --- /dev/null +++ b/synfig-core/tags/stable/src/modules/example/simplecircle.h @@ -0,0 +1,73 @@ +/* === S Y N F I G ========================================================= */ +/*! \file simplecircle.h +** \brief Template Header +** +** $Id$ +** +** \legal +** Copyright (c) 2002-2005 Robert B. Quattlebaum Jr., Adrian Bentley +** +** This package is free software; you can redistribute it and/or +** modify it under the terms of the GNU General Public License as +** published by the Free Software Foundation; either version 2 of +** the License, or (at your option) any later version. +** +** This package is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +** General Public License for more details. +** \endlegal +*/ +/* ========================================================================= */ + +/* === S T A R T =========================================================== */ + +#ifndef __SYNFIG_SIMPLECIRCLE_H +#define __SYNFIG_SIMPLECIRCLE_H + +/* === H E A D E R S ======================================================= */ + +#include +#include +#include +#include +#include + +/* === M A C R O S ========================================================= */ + +/* === T Y P E D E F S ===================================================== */ + +/* === C L A S S E S & S T R U C T S ======================================= */ + +class SimpleCircle : public synfig::Layer_Composite +{ + SYNFIG_LAYER_MODULE_EXT + +private: + + synfig::Color color; + + synfig::Point center; + + synfig::Real radius; + +public: + + SimpleCircle(); + + virtual bool set_param(const synfig::String & param, const synfig::ValueBase &value); + + virtual synfig::ValueBase get_param(const synfig::String & param)const; + + virtual synfig::Color get_color(synfig::Context context, const synfig::Point &pos)const; + + //virtual bool accelerated_render(synfig::Context context,synfig::Surface *surface,int quality, const synfig::RendDesc &renddesc, synfig::ProgressCallback *cb)const; + + synfig::Layer::Handle hit_check(synfig::Context context, const synfig::Point &point)const; + + virtual Vocab get_param_vocab()const; +}; // END of class SimpleCircle + +/* === E N D =============================================================== */ + +#endif diff --git a/synfig-core/tags/stable/src/modules/lyr_freetype/Makefile.am b/synfig-core/tags/stable/src/modules/lyr_freetype/Makefile.am new file mode 100644 index 0000000..4528b36 --- /dev/null +++ b/synfig-core/tags/stable/src/modules/lyr_freetype/Makefile.am @@ -0,0 +1,24 @@ +# $Id$ + +MAINTAINERCLEANFILES=Makefile.in +INCLUDES = -I$(top_srcdir)/src +AM_CXXFLAGS=@CXXFLAGS@ @FREETYPE_CFLAGS@ + +moduledir=@MODULE_DIR@ + +if WITH_FREETYPE +module_LTLIBRARIES = liblyr_freetype.la +liblyr_freetype_la_SOURCES = main.cpp lyr_freetype.cpp lyr_freetype.h +liblyr_freetype_la_LIBADD = -L../../synfig -lsynfig @FREETYPE_LIBS@ @SYNFIG_LIBS@ +liblyr_freetype_la_LDFLAGS = -module -no-undefined +liblyr_freetype_la_CXXFLAGS = @SYNFIG_CFLAGS@ @FREETYPE_CFLAGS@ +if WITH_FONTCONFIG +liblyr_freetype_la_LIBADD += @FONTCONFIG_LIBS@ +liblyr_freetype_la_CXXFLAGS += @FONTCONFIG_CFLAGS@ +else +endif +else +endif + + +EXTRA_DIST= lyr_freetype.nsh unlyr_freetype.nsh diff --git a/synfig-core/tags/stable/src/modules/lyr_freetype/lyr_freetype.cpp b/synfig-core/tags/stable/src/modules/lyr_freetype/lyr_freetype.cpp new file mode 100644 index 0000000..321692f --- /dev/null +++ b/synfig-core/tags/stable/src/modules/lyr_freetype/lyr_freetype.cpp @@ -0,0 +1,875 @@ +/* === S Y N F I G ========================================================= */ +/*! \file lyr_freetype.cpp +** \brief Template Header +** +** $Id$ +** +** \legal +** Copyright (c) 2002-2005 Robert B. Quattlebaum Jr., Adrian Bentley +** Copyright (c) 2006 Paul Wise +** +** This package is free software; you can redistribute it and/or +** modify it under the terms of the GNU General Public License as +** published by the Free Software Foundation; either version 2 of +** the License, or (at your option) any later version. +** +** This package is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +** General Public License for more details. +** \endlegal +** +** === N O T E S =========================================================== +** +** ========================================================================= */ + +/* === H E A D E R S ======================================================= */ + +#define SYNFIG_LAYER + +#ifdef USING_PCH +# include "pch.h" +#else +#ifdef HAVE_CONFIG_H +# include +#endif +#ifdef WITH_FONTCONFIG +#include +#endif + +#include "lyr_freetype.h" + + +#endif + +using namespace std; +using namespace etl; +using namespace synfig; + +/* === M A C R O S ========================================================= */ + +#define MAX_GLYPHS 2000 + +#define PANGO_STYLE_NORMAL (0) +#define PANGO_STYLE_OBLIQUE (1) +#define PANGO_STYLE_ITALIC (2) + + +#define WEIGHT_NORMAL (400) +#define WEIGHT_BOLD (700) + +/* === G L O B A L S ======================================================= */ + +SYNFIG_LAYER_INIT(lyr_freetype); +SYNFIG_LAYER_SET_NAME(lyr_freetype,"text"); +SYNFIG_LAYER_SET_LOCAL_NAME(lyr_freetype,_("Simple Text")); +SYNFIG_LAYER_SET_CATEGORY(lyr_freetype,_("Typography")); +SYNFIG_LAYER_SET_VERSION(lyr_freetype,"0.2"); +SYNFIG_LAYER_SET_CVS_ID(lyr_freetype,"$Id$"); + +/* === P R O C E D U R E S ================================================= */ + +/*Glyph::~Glyph() +{ + if(glyph)FT_Done_Glyph(glyph); +} +*/ +void +TextLine::clear_and_free() +{ + std::vector::iterator iter; + for(iter=glyph_table.begin();iter!=glyph_table.end();++iter) + { + if(iter->glyph)FT_Done_Glyph(iter->glyph); + iter->glyph=0; + } + glyph_table.clear(); +} + +/* === M E T H O D S ======================================================= */ + +lyr_freetype::lyr_freetype() +{ + face=0; + + size=Vector(0.25,0.25); + text=_("Text Layer"); + color=Color::black(); + pos=Vector(0,0); + orient=Vector(0.5,0.5); + compress=1.0; + vcompress=1.0; + weight=WEIGHT_NORMAL; + style=PANGO_STYLE_NORMAL; + family="Sans Serif"; + use_kerning=true; + grid_fit=false; + old_version=false; + set_blend_method(Color::BLEND_COMPOSITE); + needs_sync_=true; + + new_font(family,style,weight); + + invert=false; +} + +lyr_freetype::~lyr_freetype() +{ + if(face) + FT_Done_Face(face); +} + +void +lyr_freetype::new_font(const synfig::String &family, int style, int weight) +{ + if( + !new_font_(family,style,weight) && + !new_font_(family,style,WEIGHT_NORMAL) && + !new_font_(family,PANGO_STYLE_NORMAL,weight) && + !new_font_(family,PANGO_STYLE_NORMAL,WEIGHT_NORMAL) && + !new_font_("sans serif",style,weight) && + !new_font_("sans serif",style,WEIGHT_NORMAL) && + !new_font_("sans serif",PANGO_STYLE_NORMAL,weight) + ) + new_font_("sans serif",PANGO_STYLE_NORMAL,WEIGHT_NORMAL); +} + +bool +lyr_freetype::new_font_(const synfig::String &font_fam_, int style, int weight) +{ + synfig::String font_fam(font_fam_); + + if(new_face(font_fam_)) + return true; + + //start evil hack + for(unsigned int i=0;iWEIGHT_NORMAL) + arial+='b'; + if(style==PANGO_STYLE_ITALIC||style==PANGO_STYLE_OBLIQUE) + arial+='i'; + else + if(weight>WEIGHT_NORMAL) arial+='d'; + + if(new_face(arial)) + return true; +#ifdef __APPLE__ + if(new_face("Helvetica RO")) + return true; +#endif + } + + if(font_fam=="comic" || font_fam=="comic sans") + { + String filename("comic"); + if(weight>WEIGHT_NORMAL) + filename+='b'; + if(style==PANGO_STYLE_ITALIC||style==PANGO_STYLE_OBLIQUE) + filename+='i'; + else if(weight>WEIGHT_NORMAL) filename+='d'; + + if(new_face(filename)) + return true; + } + + if(font_fam=="courier" || font_fam=="courier new") + { + String filename("cour"); + if(weight>WEIGHT_NORMAL) + filename+='b'; + if(style==PANGO_STYLE_ITALIC||style==PANGO_STYLE_OBLIQUE) + filename+='i'; + else if(weight>WEIGHT_NORMAL) filename+='d'; + + if(new_face(filename)) + return true; + } + + if(font_fam=="serif" || font_fam=="times" || font_fam=="times new roman") + { + String filename("times"); + if(weight>WEIGHT_NORMAL) + filename+='b'; + if(style==PANGO_STYLE_ITALIC||style==PANGO_STYLE_OBLIQUE) + filename+='i'; + else if(weight>WEIGHT_NORMAL) filename+='d'; + + if(new_face(filename)) + return true; + } + + if(font_fam=="trebuchet") + { + String filename("trebuc"); + if(weight>WEIGHT_NORMAL) + filename+='b'; + if(style==PANGO_STYLE_ITALIC||style==PANGO_STYLE_OBLIQUE) + { + filename+='i'; + if(weight<=WEIGHT_NORMAL) filename+='t'; + } + else if(weight>WEIGHT_NORMAL) filename+='d'; + + if(new_face(filename)) + return true; + } + + + if(font_fam=="sans serif" || font_fam=="luxi sans") + { + { + String luxi("luxis"); + if(weight>WEIGHT_NORMAL) + luxi+='b'; + else + luxi+='r'; + if(style==PANGO_STYLE_ITALIC||style==PANGO_STYLE_OBLIQUE) + luxi+='i'; + + + if(new_face(luxi)) + return true; + } + if(new_face("arial")) + return true; + if(new_face("Arial")) + return true; + } + if(font_fam=="serif" || font_fam=="times" || font_fam=="times new roman" || font_fam=="luxi serif") + { + { + String luxi("luxir"); + if(weight>WEIGHT_NORMAL) + luxi+='b'; + else + luxi+='r'; + if(style==PANGO_STYLE_ITALIC||style==PANGO_STYLE_OBLIQUE) + luxi+='i'; + + if(new_face(luxi)) + return true; + } + if(new_face("Times New Roman")) + return true; + if(new_face("Times")) + return true; + } + if(font_fam=="luxi") + { + { + String luxi("luxim"); + if(weight>WEIGHT_NORMAL) + luxi+='b'; + else + luxi+='r'; + if(style==PANGO_STYLE_ITALIC||style==PANGO_STYLE_OBLIQUE) + luxi+='i'; + + if(new_face(luxi)) + return true; + } + + if(new_face("Times New Roman")) + return true; + if(new_face("Times")) + return true; + } + + return new_face(font_fam_) || new_face(font_fam); + + return false; +} + +#ifdef USE_MAC_FT_FUNCS +void fss2path(char *path, FSSpec *fss) +{ + int l; //fss->name contains name of last item in path + for(l=0; l<(fss->name[0]); l++) path[l] = fss->name[l + 1]; + path[l] = 0; + + if(fss->parID != fsRtParID) //path is more than just a volume name + { + int i, len; + CInfoPBRec pb; + + pb.dirInfo.ioNamePtr = fss->name; + pb.dirInfo.ioVRefNum = fss->vRefNum; + pb.dirInfo.ioDrParID = fss->parID; + do + { + pb.dirInfo.ioFDirIndex = -1; //get parent directory name + pb.dirInfo.ioDrDirID = pb.dirInfo.ioDrParID; + if(PBGetCatInfoSync(&pb) != noErr) break; + + len = fss->name[0] + 1; + for(i=l; i>=0; i--) path[i + len] = path[i]; + for(i=1; iname[i]; //add to start of path + path[i - 1] = ':'; + l += len; +} while(pb.dirInfo.ioDrDirID != fsRtDirID); //while more directory levels + } +} +#endif + +bool +lyr_freetype::new_face(const String &newfont) +{ + int error; + FT_Long face_index=0; + + // If we are already loaded, don't bother reloading. + if(face && font==newfont) + return true; + + if(face) + { + FT_Done_Face(face); + face=0; + } + + error=FT_New_Face(ft_library,newfont.c_str(),face_index,&face); + if(error)error=FT_New_Face(ft_library,(newfont+".ttf").c_str(),face_index,&face); + + if(get_canvas()) + { + if(error)error=FT_New_Face(ft_library,(get_canvas()->get_file_path()+ETL_DIRECTORY_SEPERATOR+newfont).c_str(),face_index,&face); + if(error)error=FT_New_Face(ft_library,(get_canvas()->get_file_path()+ETL_DIRECTORY_SEPERATOR+newfont+".ttf").c_str(),face_index,&face); + } + +#ifdef USE_MAC_FT_FUNCS + if(error) + { + FSSpec fs_spec; + error=FT_GetFile_From_Mac_Name(newfont.c_str(),&fs_spec,&face_index); + if(!error) + { + char filename[512]; + fss2path(filename,&fs_spec); + //FSSpecToNativePathName(fs_spec,filename,sizeof(filename)-1, 0); + + error=FT_New_Face(ft_library, filename, face_index,&face); + //error=FT_New_Face_From_FSSpec(ft_library, &fs_spec, face_index,&face); + synfig::info(__FILE__":%d: \"%s\" (%s) -- ft_error=%d",__LINE__,newfont.c_str(),filename,error); + } + else + { + synfig::info(__FILE__":%d: \"%s\" -- ft_error=%d",__LINE__,newfont.c_str(),error); + // Unable to generate fs_spec + } + + } +#endif + +#ifdef WITH_FONTCONFIG + if(error) + { + FcFontSet *fs; + FcResult result; + if( !FcInit() ) + { + synfig::warning("lyr_freetype: fontconfig: %s",_("unable to initialise")); + error = 1; + } else { + FcPattern* pat = FcNameParse((FcChar8 *) newfont.c_str()); + FcConfigSubstitute(0, pat, FcMatchPattern); + FcDefaultSubstitute(pat); + FcPattern *match; + fs = FcFontSetCreate(); + match = FcFontMatch(0, pat, &result); + if (match) + FcFontSetAdd(fs, match); + if (pat) + FcPatternDestroy(pat); + if(fs){ + FcChar8* file; + if( FcPatternGetString (fs->fonts[0], FC_FILE, 0, &file) == FcResultMatch ) + error=FT_New_Face(ft_library,(const char*)file,face_index,&face); + FcFontSetDestroy(fs); + } else + synfig::warning("lyr_freetype: fontconfig: %s",_("empty font set")); + } + } +#endif + +#ifdef WIN32 + if(error)error=FT_New_Face(ft_library,("C:\\WINDOWS\\FONTS\\"+newfont).c_str(),face_index,&face); + if(error)error=FT_New_Face(ft_library,("C:\\WINDOWS\\FONTS\\"+newfont+".ttf").c_str(),face_index,&face); +#else + +#ifdef __APPLE__ + if(error)error=FT_New_Face(ft_library,("~/Library/Fonts/"+newfont).c_str(),face_index,&face); + if(error)error=FT_New_Face(ft_library,("~/Library/Fonts/"+newfont+".ttf").c_str(),face_index,&face); + if(error)error=FT_New_Face(ft_library,("~/Library/Fonts/"+newfont+".dfont").c_str(),face_index,&face); + + if(error)error=FT_New_Face(ft_library,("/Library/Fonts/"+newfont).c_str(),face_index,&face); + if(error)error=FT_New_Face(ft_library,("/Library/Fonts/"+newfont+".ttf").c_str(),face_index,&face); + if(error)error=FT_New_Face(ft_library,("/Library/Fonts/"+newfont+".dfont").c_str(),face_index,&face); +#endif + + if(error)error=FT_New_Face(ft_library,("/usr/X11R6/lib/X11/fonts/type1/"+newfont).c_str(),face_index,&face); + if(error)error=FT_New_Face(ft_library,("/usr/X11R6/lib/X11/fonts/type1/"+newfont+".ttf").c_str(),face_index,&face); + + if(error)error=FT_New_Face(ft_library,("/usr/share/fonts/truetype/"+newfont).c_str(),face_index,&face); + if(error)error=FT_New_Face(ft_library,("/usr/share/fonts/truetype/"+newfont+".ttf").c_str(),face_index,&face); + + if(error)error=FT_New_Face(ft_library,("/usr/X11R6/lib/X11/fonts/TTF/"+newfont).c_str(),face_index,&face); + if(error)error=FT_New_Face(ft_library,("/usr/X11R6/lib/X11/fonts/TTF/"+newfont+".ttf").c_str(),face_index,&face); + + if(error)error=FT_New_Face(ft_library,("/usr/X11R6/lib/X11/fonts/truetype/"+newfont).c_str(),face_index,&face); + if(error)error=FT_New_Face(ft_library,("/usr/X11R6/lib/X11/fonts/truetype/"+newfont+".ttf").c_str(),face_index,&face); + +#endif + if(error) + { + //synfig::error(strprintf("lyr_freetype:%s (err=%d)",_("Unable to open face."),error)); + return false; + } + + font=newfont; + + needs_sync_=true; + return true; +} + +bool +lyr_freetype::set_param(const String & param, const ValueBase &value) +{ + Mutex::Lock lock(mutex); +/* + if(param=="font" && value.same_as(font)) + { + new_font(etl::basename(value.get(font)),style,weight); + family=etl::basename(value.get(font)); + return true; + } +*/ + IMPORT_PLUS(family,new_font(family,style,weight)); + IMPORT_PLUS(weight,new_font(family,style,weight)); + IMPORT_PLUS(style,new_font(family,style,weight)); + IMPORT_PLUS(size, if(old_version){size/=2.0;} needs_sync_=true ); + IMPORT_PLUS(text,needs_sync_=true); + IMPORT_PLUS(pos,needs_sync_=true); + IMPORT(color); + IMPORT(invert); + IMPORT_PLUS(orient,needs_sync_=true); + IMPORT_PLUS(compress,needs_sync_=true); + IMPORT_PLUS(vcompress,needs_sync_=true); + IMPORT_PLUS(use_kerning,needs_sync_=true); + IMPORT_PLUS(grid_fit,needs_sync_=true); + + return Layer_Composite::set_param(param,value); +} + +ValueBase +lyr_freetype::get_param(const String& param)const +{ + EXPORT(font); + EXPORT(family); + EXPORT(style); + EXPORT(weight); + EXPORT(size); + EXPORT(text); + EXPORT(color); + EXPORT(pos); + EXPORT(orient); + EXPORT(compress); + EXPORT(vcompress); + EXPORT(use_kerning); + EXPORT(grid_fit); + EXPORT(invert); + + EXPORT_NAME(); + EXPORT_VERSION(); + + return Layer_Composite::get_param(param); +} + +Layer::Vocab +lyr_freetype::get_param_vocab(void)const +{ + Layer::Vocab ret(Layer_Composite::get_param_vocab()); + + ret.push_back(ParamDesc("text") + .set_local_name(_("Text")) + .set_description(_("Text to Render")) + .set_hint("paragraph") + ); + + ret.push_back(ParamDesc("color") + .set_local_name(_("Color")) + .set_description(_("Color of the text")) + ); + + ret.push_back(ParamDesc("family") + .set_local_name(_("Font Family")) + .set_hint("font_family") + ); + + ret.push_back(ParamDesc("style") + .set_local_name(_("Style")) + .set_hint("enum") + .add_enum_value(PANGO_STYLE_NORMAL, "normal" ,_("Normal")) + .add_enum_value(PANGO_STYLE_OBLIQUE, "oblique" ,_("Oblique")) + .add_enum_value(PANGO_STYLE_ITALIC, "italic" ,_("Italic")) + ); + + ret.push_back(ParamDesc("weight") + .set_local_name(_("Weight")) + .set_hint("enum") + .add_enum_value(200, "ultralight" ,_("Ultralight")) + .add_enum_value(300, "light" ,_("light")) + .add_enum_value(400, "normal" ,_("Normal")) + .add_enum_value(700, "bold" ,_("Bold")) + .add_enum_value(800, "ultrabold" ,_("Ultrabold")) + .add_enum_value(900, "heavy" ,_("Heavy")) + ); + ret.push_back(ParamDesc("compress") + .set_local_name(_("Hozontal Spacing")) + .set_description(_("Describes how close glyphs are horizontally")) + ); + + ret.push_back(ParamDesc("vcompress") + .set_local_name(_("Vertical Spacing")) + .set_description(_("Describes how close lines of text are vertically")) + ); + + ret.push_back(ParamDesc("size") + .set_local_name(_("Size")) + .set_description(_("Size of the text")) + .set_hint("size") + .set_origin("pos") + .set_scalar(1) + ); + + ret.push_back(ParamDesc("orient") + .set_local_name(_("Orientation")) + .set_description(_("Text Orientation")) + .set_invisible_duck() + ); + + ret.push_back(ParamDesc("pos") + .set_local_name(_("Position")) + .set_description(_("Text Position")) + ); + + ret.push_back(ParamDesc("font") + .set_local_name(_("Font")) + .set_description(_("Filename of the font to use")) + .set_hint("filename") + .not_critical() + .hidden() + ); + + ret.push_back(ParamDesc("use_kerning") + .set_local_name(_("Kerning")) + .set_description(_("Enables/Disables font kerning (If the font supports it)")) + ); + + ret.push_back(ParamDesc("grid_fit") + .set_local_name(_("Sharpen Edges")) + .set_description(_("Turn this off if you are going to be animating the text")) + ); + ret.push_back(ParamDesc("invert") + .set_local_name(_("Invert")) + ); + return ret; +} + +void +lyr_freetype::sync() +{ + needs_sync_=false; + + + + +} + +Color +lyr_freetype::get_color(Context context, const synfig::Point &pos)const +{ + if(needs_sync_) + const_cast(this)->sync(); + + if(!face) + return context.get_color(pos); + return context.get_color(pos); +} + +bool +lyr_freetype::accelerated_render(Context context,Surface *surface,int quality, const RendDesc &renddesc, ProgressCallback *cb)const +{ + static synfig::RecMutex freetype_mutex; + + if(needs_sync_) + const_cast(this)->sync(); + + + + + int error; + Vector size(lyr_freetype::size*2); + + if(!context.accelerated_render(surface,quality,renddesc,cb)) + return false; + + if(is_disabled() || text.empty()) + return true; + + // If there is no font loaded, just bail + if(!face) + { + if(cb)cb->warning(string("lyr_freetype:")+_("No face loaded, no text will be rendered.")); + return true; + } + + String text(lyr_freetype::text); + if(text=="@_FILENAME_@" && get_canvas() && !get_canvas()->get_file_name().empty()) + { + text=basename(get_canvas()->get_file_name()); + } + + // Width and Height of a pixel + Vector::value_type pw=renddesc.get_w()/(renddesc.get_br()[0]-renddesc.get_tl()[0]); + Vector::value_type ph=renddesc.get_h()/(renddesc.get_br()[1]-renddesc.get_tl()[1]); + + // Calculate character width and height + int w=abs(round_to_int(size[0]*pw)); + int h=abs(round_to_int(size[1]*ph)); + + //int bx=(int)((pos[0]-renddesc.get_tl()[0])*pw*64+0.5); + //int by=(int)((pos[1]-renddesc.get_tl()[1])*ph*64+0.5); + int bx=0; + int by=0; + + // If the font is the size of a pixel, don't bother rendering any text + if(w<=1 || h<=1) + { + if(cb)cb->warning(string("lyr_freetype:")+_("Text too small, no text will be rendered.")); + return true; + } + + synfig::RecMutex::Lock lock(freetype_mutex); + +#define CHAR_RESOLUTION (64) + error = FT_Set_Char_Size( + face, // handle to face object + (int)CHAR_RESOLUTION, // char_width in 1/64th of points + (int)CHAR_RESOLUTION, // char_height in 1/64th of points + round_to_int(abs(size[0]*pw*CHAR_RESOLUTION)), // horizontal device resolution + round_to_int(abs(size[1]*ph*CHAR_RESOLUTION)) ); // vertical device resolution + + // Here is where we can compensate for the + // error in freetype's rendering engine. + const float xerror(abs(size[0]*pw)/(float)face->size->metrics.x_ppem/1.13f/0.996); + const float yerror(abs(size[1]*ph)/(float)face->size->metrics.y_ppem/1.13f/0.996); + //synfig::info("xerror=%f, yerror=%f",xerror,yerror); + const float compress(lyr_freetype::compress*xerror); + const float vcompress(lyr_freetype::vcompress*yerror); + + if(error) + { + if(cb)cb->warning(string("lyr_freetype:")+_("Unable to set face size.")+strprintf(" (err=%d)",error)); + } + + FT_GlyphSlot slot = face->glyph; // a small shortcut + FT_UInt glyph_index(0); + FT_UInt previous(0); + int u,v; + + std::list lines; + + /* + -- ** -- CREATE GLYPHS ------------------------------------------------------- + */ + + lines.push_front(TextLine()); + string::const_iterator iter; + for (iter=text.begin(); iter!=text.end(); ++iter) + { + int multiplier(1); + if(*iter=='\n') + { + lines.push_front(TextLine()); + bx=0; + by=0; + previous=0; + continue; + } + if(*iter=='\t') + { + multiplier=8; + glyph_index = FT_Get_Char_Index( face, ' ' ); + } + else + glyph_index = FT_Get_Char_Index( face, *iter ); + + // retrieve kerning distance and move pen position + if ( FT_HAS_KERNING(face) && use_kerning && previous && glyph_index ) + { + FT_Vector delta; + + if(grid_fit) + FT_Get_Kerning( face, previous, glyph_index, ft_kerning_default, &delta ); + else + FT_Get_Kerning( face, previous, glyph_index, ft_kerning_unfitted, &delta ); + + if(compress<1.0f) + { + bx += round_to_int(delta.x*compress); + by += round_to_int(delta.y*compress); + } + else + { + bx += delta.x; + by += delta.y; + } + } + + Glyph curr_glyph; + + // store current pen position + curr_glyph.pos.x = bx; + curr_glyph.pos.y = by; + + // load glyph image into the slot. DO NOT RENDER IT !! + if(grid_fit) + error = FT_Load_Glyph( face, glyph_index, FT_LOAD_DEFAULT); + else + error = FT_Load_Glyph( face, glyph_index, FT_LOAD_DEFAULT|FT_LOAD_NO_HINTING ); + if (error) continue; // ignore errors, jump to next glyph + + // extract glyph image and store it in our table + error = FT_Get_Glyph( face->glyph, &curr_glyph.glyph ); + if (error) continue; // ignore errors, jump to next glyph + + // record current glyph index + previous = glyph_index; + + // Update the line width + lines.front().width=bx+slot->advance.x; + + // increment pen position + if(multiplier>1) + bx += round_to_int(slot->advance.x*multiplier*compress)-bx%round_to_int(slot->advance.x*multiplier*compress); + else + bx += round_to_int(slot->advance.x*compress*multiplier); + + //bx += round_to_int(slot->advance.x*compress*multiplier); + //by += round_to_int(slot->advance.y*compress); + by += slot->advance.y*multiplier; + + lines.front().glyph_table.push_back(curr_glyph); + + } + + + //float string_height; + //string_height=(((lines.size()-1)*face->size->metrics.height+lines.back().actual_height())); + + //int string_height=face->size->metrics.ascender; +//#define METRICS_SCALE_ONE (65536.0f) +#define METRICS_SCALE_ONE ((float)(1<<16)) + + float line_height; + line_height=vcompress*((float)face->height*(((float)face->size->metrics.y_scale/METRICS_SCALE_ONE))); + + int string_height; + string_height=round_to_int(((lines.size()-1)*line_height+lines.back().actual_height())); + //synfig::info("string_height=%d",string_height); + //synfig::info("line_height=%f",line_height); + + /* + -- ** -- RENDER THE GLYPHS --------------------------------------------------- + */ + + Surface src_; + Surface *src_surface; + + src_surface=surface; + + if(invert) + { + src_=*surface; + Surface::alpha_pen pen(surface->begin(),get_amount(),get_blend_method()); + + surface->fill(color,pen,src_.get_w(),src_.get_h()); + + src_surface=&src_; + } + + { + std::list::iterator iter; + int curr_line; + for(curr_line=0,iter=lines.begin();iter!=lines.end();++iter,curr_line++) + { + bx=round_to_int((pos[0]-renddesc.get_tl()[0])*pw*CHAR_RESOLUTION-orient[0]*iter->width); + by=round_to_int((pos[1]-renddesc.get_tl()[1])*ph*CHAR_RESOLUTION+(1.0-orient[1])*string_height-line_height*curr_line); + //by=round_to_int(vcompress*((pos[1]-renddesc.get_tl()[1])*ph*64+(1.0-orient[1])*string_height-face->size->metrics.height*curr_line)); + //synfig::info("curr_line=%d, bx=%d, by=%d",curr_line,bx,by); + + std::vector::iterator iter2; + for(iter2=iter->glyph_table.begin();iter2!=iter->glyph_table.end();++iter2) + { + FT_Glyph image(iter2->glyph); + FT_Vector pen; + FT_BitmapGlyph bit; + + pen.x = bx + iter2->pos.x; + pen.y = by + iter2->pos.y; + + //synfig::info("GLYPH: pen.x=%d, pen,y=%d",curr_line,(pen.x+32)>>6,(pen.y+32)>>6); + + error = FT_Glyph_To_Bitmap( &image, ft_render_mode_normal,0/*&pen*/, 1 ); + if(error) { FT_Done_Glyph( image ); continue; } + + bit = (FT_BitmapGlyph)image; + + for(v=0;vbitmap.rows;v++) + for(u=0;ubitmap.width;u++) + { + int x=u+((pen.x+32)>>6)+ bit->left; + int y=v+((pen.y+32)>>6)- bit->top; + if( y>=0 && + x>=0 && + yget_h() && + xget_w()) + { + float myamount=(float)bit->bitmap.buffer[v*bit->bitmap.pitch+u]/255.0f; + if(invert) + myamount=1.0f-myamount; + (*surface)[y][x]=Color::blend(color,(*src_surface)[y][x],myamount*get_amount(),get_blend_method()); + } + } + + FT_Done_Glyph( image ); + } + //iter->clear_and_free(); + } + } + + + return true; +} + +synfig::Rect +lyr_freetype::get_bounding_rect()const +{ + if(needs_sync_) + const_cast(this)->sync(); +// if(!is_disabled()) + return synfig::Rect::full_plane(); +} diff --git a/synfig-core/tags/stable/src/modules/lyr_freetype/lyr_freetype.h b/synfig-core/tags/stable/src/modules/lyr_freetype/lyr_freetype.h new file mode 100644 index 0000000..36d88fa --- /dev/null +++ b/synfig-core/tags/stable/src/modules/lyr_freetype/lyr_freetype.h @@ -0,0 +1,164 @@ +/* === S Y N F I G ========================================================= */ +/*! \file lyr_freetype.h +** \brief Template Header +** +** $Id$ +** +** \legal +** Copyright (c) 2002-2005 Robert B. Quattlebaum Jr., Adrian Bentley +** +** This package is free software; you can redistribute it and/or +** modify it under the terms of the GNU General Public License as +** published by the Free Software Foundation; either version 2 of +** the License, or (at your option) any later version. +** +** This package is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +** General Public License for more details. +** \endlegal +** +** === N O T E S =========================================================== +** +** ========================================================================= */ + +/* === S T A R T =========================================================== */ + +#ifndef __SYNFIG_LYR_FREETYPE_H +#define __SYNFIG_LYR_FREETYPE_H + +/* === H E A D E R S ======================================================= */ + +//#ifdef __APPLE__ +//#define USE_MAC_FT_FUNCS (1) +//#endif + +#include +#include +#include +#include + +#include +#include FT_FREETYPE_H +#include FT_GLYPH_H +#include + +#include +#include +#include +#include +#include +#include +#include +#include +#include + + +#include + +#ifdef USE_MAC_FT_FUNCS + #include + #include FT_MAC_H +#endif + +/* === M A C R O S ========================================================= */ + +/* === T Y P E D E F S ===================================================== */ + +/* === C L A S S E S & S T R U C T S ======================================= */ + +using namespace synfig; +using namespace std; +using namespace etl; + + +struct Glyph +{ + FT_Glyph glyph; + FT_Vector pos; + //int width; +}; +struct TextLine +{ + int width; + std::vector glyph_table; + + TextLine():width(0) { } + void clear_and_free(); + + int actual_height()const + { + int height(0); + + std::vector::const_iterator iter; + for(iter=glyph_table.begin();iter!=glyph_table.end();++iter) + { + FT_BBox glyph_bbox; + + //FT_Glyph_Get_CBox( glyphs[n], ft_glyph_bbox_pixels, &glyph_bbox ); + FT_Glyph_Get_CBox( iter->glyph, ft_glyph_bbox_subpixels, &glyph_bbox ); + + if(glyph_bbox.yMax>height) + height=glyph_bbox.yMax; + } + return height; + } +}; + + +class lyr_freetype : public synfig::Layer_Composite, public synfig::Layer_NoDeform +{ + SYNFIG_LAYER_MODULE_EXT +private: + + FT_Face face; + synfig::String font; + synfig::String family; + synfig::String text; + synfig::Vector size; + synfig::Vector orient; + synfig::Color color; + synfig::Point pos; + synfig::Real compress; + synfig::Real vcompress; + + int style; + int weight; + bool use_kerning; + bool grid_fit; + bool invert; + + bool old_version; + bool needs_sync_; + + void sync(); + + mutable synfig::Mutex mutex; + +public: + lyr_freetype(); + virtual ~lyr_freetype(); + + virtual bool set_param(const String & param, const synfig::ValueBase &value); + virtual ValueBase get_param(const String & param)const; + virtual Color get_color(Context context, const synfig::Point &pos)const; + virtual bool accelerated_render(Context context,Surface *surface,int quality, const RendDesc &renddesc, ProgressCallback *cb)const; + + virtual Vocab get_param_vocab()const; + + virtual bool set_version(const String &ver){if(ver=="0.1")old_version=true;return true;} + virtual void reset_version(){old_version=false;} + + virtual synfig::Rect get_bounding_rect()const; + +private: + void new_font(const synfig::String &family, int style=0, int weight=400); + bool new_font_(const synfig::String &family, int style=0, int weight=400); + bool new_face(const synfig::String &newfont); +}; + +extern FT_Library ft_library; + +/* === E N D =============================================================== */ + +#endif diff --git a/synfig-core/tags/stable/src/modules/lyr_freetype/lyr_freetype.nsh b/synfig-core/tags/stable/src/modules/lyr_freetype/lyr_freetype.nsh new file mode 100644 index 0000000..5977f97 --- /dev/null +++ b/synfig-core/tags/stable/src/modules/lyr_freetype/lyr_freetype.nsh @@ -0,0 +1,21 @@ +; The stuff to install +Section "lyr_freetype" Sec_lyr_freetype + +; SectionIn RO + + ; Set output path to the installation directory. + SetOutPath "$INSTDIR\lib\synfig\modules" + + ; Put file there + File /oname=lyr_freetype.dll "src\modules\lyr_freetype\.libs\liblyr_freetype-0.dll" + + + FileOpen $0 $INSTDIR\etc\synfig_modules.cfg a + FileSeek $0 0 END + FileWrite $0 "lyr_freetype" + FileWriteByte $0 "13" + FileWriteByte $0 "10" + FileClose $0 + +SectionEnd + diff --git a/synfig-core/tags/stable/src/modules/lyr_freetype/main.cpp b/synfig-core/tags/stable/src/modules/lyr_freetype/main.cpp new file mode 100644 index 0000000..52fb557 --- /dev/null +++ b/synfig-core/tags/stable/src/modules/lyr_freetype/main.cpp @@ -0,0 +1,90 @@ +/* === S Y N F I G ========================================================= */ +/*! \file lyr_freetype/main.cpp +** \brief Template Header +** +** $Id$ +** +** \legal +** Copyright (c) 2002-2005 Robert B. Quattlebaum Jr., Adrian Bentley +** +** This package is free software; you can redistribute it and/or +** modify it under the terms of the GNU General Public License as +** published by the Free Software Foundation; either version 2 of +** the License, or (at your option) any later version. +** +** This package is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +** General Public License for more details. +** \endlegal +** +** === N O T E S =========================================================== +** +** ========================================================================= */ + +/* === H E A D E R S ======================================================= */ + +#define SYNFIG_MODULE + +#ifdef USING_PCH +# include "pch.h" +#else +#ifdef HAVE_CONFIG_H +# include +#endif + +#include +#include +#include "lyr_freetype.h" +#include +#include + +#include +#include FT_FREETYPE_H + +#endif + +using namespace etl; +using namespace std; +using namespace synfig; + +FT_Library ft_library; + +/* === E N T R Y P O I N T ================================================= */ + +bool freetype_constructor(synfig::ProgressCallback *cb) +{ + int error; + if(cb)cb->task("Initializing FreeType..."); + if ( (error = FT_Init_FreeType( &ft_library )) ) + { + if(cb)cb->error(strprintf("lyr_freetype: FreeType initialization failed. (err=%d)",error)); + return false; + } + return true; +} + +void freetype_destructor() +{ + std::cerr<<"freetype_destructor()"< +#endif + +#include "bevel.h" + +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include +#include +#include + +#endif + +using namespace synfig; +using namespace etl; +using namespace std; + +/*#define TYPE_BOX 0 +#define TYPE_FASTGUASSIAN 1 +#define TYPE_FASTGAUSSIAN 1 +#define TYPE_CROSS 2 +#define TYPE_GUASSIAN 3 +#define TYPE_GAUSSIAN 3 +#define TYPE_DISC 4 +*/ + +/* -- G L O B A L S --------------------------------------------------------- */ + +SYNFIG_LAYER_INIT(Layer_Bevel); +SYNFIG_LAYER_SET_NAME(Layer_Bevel,"bevel"); +SYNFIG_LAYER_SET_LOCAL_NAME(Layer_Bevel,_("Bevel")); +SYNFIG_LAYER_SET_CATEGORY(Layer_Bevel,_("Stylize")); +SYNFIG_LAYER_SET_VERSION(Layer_Bevel,"0.2"); +SYNFIG_LAYER_SET_CVS_ID(Layer_Bevel,"$Id$"); + +/* -- F U N C T I O N S ----------------------------------------------------- */ + +inline void clamp(synfig::Vector &v) +{ + if(v[0]<0.0)v[0]=0.0; + if(v[1]<0.0)v[1]=0.0; +} + +Layer_Bevel::Layer_Bevel(): + Layer_Composite (0.75,Color::BLEND_ONTO), + softness(0.1), + type(Blur::FASTGAUSSIAN), + color1(Color::white()), + color2(Color::black()), + depth(0.2) +{ + angle=Angle::deg(135); + calc_offset(); + use_luma=false; + solid=false; +} + +void +Layer_Bevel::calc_offset() +{ + offset[0]=Angle::cos(angle).get()*depth; + offset[1]=Angle::sin(angle).get()*depth; + + offset45[0]=Angle::cos(angle-Angle::deg(45)).get()*depth*0.707106781; + offset45[1]=Angle::sin(angle-Angle::deg(45)).get()*depth*0.707106781; +} + +bool +Layer_Bevel::set_param(const String ¶m, const ValueBase &value) +{ + IMPORT_PLUS(softness,softness=softness>0?softness:0); + IMPORT(color1); + IMPORT(color2); + IMPORT_PLUS(depth,calc_offset()); + IMPORT_PLUS(angle,calc_offset()); + IMPORT(type); + IMPORT(use_luma); + IMPORT(solid); + + return Layer_Composite::set_param(param,value); +} + +ValueBase +Layer_Bevel::get_param(const String ¶m)const +{ + EXPORT(type); + EXPORT(softness); + EXPORT(color1); + EXPORT(color2); + EXPORT(depth); + EXPORT(angle); + EXPORT(use_luma); + EXPORT(solid); + + EXPORT_NAME(); + EXPORT_VERSION(); + + return Layer_Composite::get_param(param); +} + +Color +Layer_Bevel::get_color(Context context, const Point &pos)const +{ + const Vector size(softness,softness); + Point blurpos = Blur(size,type)(pos); + + if(get_amount()==0.0) + return context.get_color(pos); + + Color shade; + + Real hi_alpha(1.0f-context.get_color(blurpos+offset).get_a()); + Real lo_alpha(1.0f-context.get_color(blurpos-offset).get_a()); + + Real shade_alpha(hi_alpha-lo_alpha); + if(shade_alpha>0) + shade=color1,shade.set_a(shade_alpha); + else + shade=color2,shade.set_a(-shade_alpha); + + return Color::blend(shade,context.get_color(pos),get_amount(),get_blend_method()); +} + +bool +Layer_Bevel::accelerated_render(Context context,Surface *surface,int quality, const RendDesc &renddesc, ProgressCallback *cb)const +{ + int x,y; + SuperCallback stageone(cb,0,5000,10000); + SuperCallback stagetwo(cb,5000,10000,10000); + + const int w = renddesc.get_w(), + h = renddesc.get_h(); + const Real pw = renddesc.get_pw(), + ph = renddesc.get_ph(); + const Vector size(softness,softness); + + RendDesc workdesc(renddesc); + Surface worksurface; + etl::surface blurred; + + //callbacks depend on how long the blur takes + if(size[0] || size[1]) + { + if(type == Blur::DISC) + { + stageone = SuperCallback(cb,0,5000,10000); + stagetwo = SuperCallback(cb,5000,10000,10000); + } + else + { + stageone = SuperCallback(cb,0,9000,10000); + stagetwo = SuperCallback(cb,9000,10000,10000); + } + } + else + { + stageone = SuperCallback(cb,0,9999,10000); + stagetwo = SuperCallback(cb,9999,10000,10000); + } + + //expand the working surface to accommodate the blur + + //the expanded size = 1/2 the size in each direction rounded up + int halfsizex = (int) (abs(size[0]*.5/pw) + 3), + halfsizey = (int) (abs(size[1]*.5/ph) + 3); + + int offset_u(round_to_int(offset[0]/pw)),offset_v(round_to_int(offset[1]/ph)); + int offset_w(w+abs(offset_u)*2),offset_h(h+abs(offset_v)*2); + + workdesc.set_subwindow( + -abs(offset_u), + -abs(offset_v), + w+abs(offset_u), + h+abs(offset_v) + ); + + //expand by 1/2 size in each direction on either side + switch(type) + { + case Blur::DISC: + case Blur::BOX: + case Blur::CROSS: + { + workdesc.set_subwindow(-max(1,halfsizex),-max(1,halfsizey),offset_w+2*max(1,halfsizex),offset_h+2*max(1,halfsizey)); + break; + } + case Blur::FASTGAUSSIAN: + { + if(quality < 4) + { + halfsizex*=2; + halfsizey*=2; + } + workdesc.set_subwindow(-max(1,halfsizex),-max(1,halfsizey),offset_w+2*max(1,halfsizex),offset_h+2*max(1,halfsizey)); + break; + } + case Blur::GAUSSIAN: + { + #define GAUSSIAN_ADJUSTMENT (0.05) + Real pw = (Real)workdesc.get_w()/(workdesc.get_br()[0]-workdesc.get_tl()[0]); + Real ph = (Real)workdesc.get_h()/(workdesc.get_br()[1]-workdesc.get_tl()[1]); + + pw=pw*pw; + ph=ph*ph; + + halfsizex = (int)(abs(pw)*size[0]*GAUSSIAN_ADJUSTMENT+0.5); + halfsizey = (int)(abs(ph)*size[1]*GAUSSIAN_ADJUSTMENT+0.5); + + halfsizex = (halfsizex + 1)/2; + halfsizey = (halfsizey + 1)/2; + workdesc.set_subwindow( -halfsizex, -halfsizey, offset_w+2*halfsizex, offset_h+2*halfsizey ); + + break; + } + } + + //render the background onto the expanded surface + if(!context.accelerated_render(&worksurface,quality,workdesc,&stageone)) + return false; + + // Copy over the alpha + blurred.set_wh(worksurface.get_w(),worksurface.get_h()); + if(!use_luma) + { + for(int j=0;jset_wh(renddesc.get_w(),renddesc.get_h()); + + int u = halfsizex+abs(offset_u), v = halfsizey+abs(offset_v); + for(y=0;y0) + shade=color1,shade.set_a(shade.get_a()*alpha); + else + shade=color2,shade.set_a(shade.get_a()*-alpha); + } + + + + if(shade.get_a()) + { + (*surface)[y][x]=Color::blend(shade,worksurface[v][u],get_amount(),get_blend_method()); + } + else (*surface)[y][x] = worksurface[v][u]; + } + } + + if(cb && !cb->amount_complete(10000,10000)) + { + //if(cb)cb->error(strprintf(__FILE__"%d: Accelerated Renderer Failure",__LINE__)); + return false; + } + + return true; +} + +Layer::Vocab +Layer_Bevel::get_param_vocab(void)const +{ + Layer::Vocab ret(Layer_Composite::get_param_vocab()); + + ret.push_back(ParamDesc("type") + .set_local_name(_("Type")) + .set_description(_("Type of blur to use")) + .set_hint("enum") + .add_enum_value(Blur::BOX,"box",_("Box Blur")) + .add_enum_value(Blur::FASTGAUSSIAN,"fastgaussian",_("Fast Gaussian Blur")) + .add_enum_value(Blur::CROSS,"cross",_("Cross-Hatch Blur")) + .add_enum_value(Blur::GAUSSIAN,"gaussian",_("Gaussian Blur")) + .add_enum_value(Blur::DISC,"disc",_("Disc Blur")) + ); + + ret.push_back(ParamDesc("color1") + .set_local_name(_("Hi-Color")) + ); + ret.push_back(ParamDesc("color2") + .set_local_name(_("Lo-Color")) + ); + ret.push_back(ParamDesc("angle") + .set_local_name(_("Light Angle")) + ); + ret.push_back(ParamDesc("depth") + .set_is_distance() + .set_local_name(_("Depth of Bevel")) + ); + ret.push_back(ParamDesc("softness") + .set_is_distance() + .set_local_name(_("Softness")) + ); + ret.push_back(ParamDesc("use_luma") + .set_local_name(_("Use Luma")) + ); + ret.push_back(ParamDesc("solid") + .set_local_name(_("Solid")) + ); + + return ret; +} + +Rect +Layer_Bevel::get_full_bounding_rect(Context context)const +{ + if(is_disabled()) + return context.get_full_bounding_rect(); + + Rect under(context.get_full_bounding_rect()); + + if(Color::is_onto(get_blend_method())) + return under; + + Rect bounds(under.expand(softness)); + bounds.expand_x(abs(depth)); + bounds.expand_y(abs(depth)); + + return bounds; +} diff --git a/synfig-core/tags/stable/src/modules/lyr_std/bevel.h b/synfig-core/tags/stable/src/modules/lyr_std/bevel.h new file mode 100644 index 0000000..3beca4a --- /dev/null +++ b/synfig-core/tags/stable/src/modules/lyr_std/bevel.h @@ -0,0 +1,79 @@ +/* === S Y N F I G ========================================================= */ +/*! \file bevel.h +** \brief Template Header +** +** $Id$ +** +** \legal +** Copyright (c) 2002-2005 Robert B. Quattlebaum Jr., Adrian Bentley +** +** This package is free software; you can redistribute it and/or +** modify it under the terms of the GNU General Public License as +** published by the Free Software Foundation; either version 2 of +** the License, or (at your option) any later version. +** +** This package is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +** General Public License for more details. +** \endlegal +*/ +/* ========================================================================= */ + +/* === H E A D E R S ======================================================= */ + +#ifndef __SYNFIG_LAYER_BEVEL_H__ +#define __SYNFIG_LAYER_BEVEL_H__ + +/* -- H E A D E R S --------------------------------------------------------- */ + +#include +#include +#include +#include +#include + +using namespace synfig; +using namespace std; +using namespace etl; + +class Layer_Bevel : public synfig::Layer_Composite +{ + SYNFIG_LAYER_MODULE_EXT +private: + synfig::Real softness; + int type; + + synfig::Color color1; + synfig::Color color2; + + synfig::Angle angle; + synfig::Real depth; + + synfig::Vector offset; + synfig::Vector offset45; + + bool use_luma; + bool solid; + + void calc_offset(); +public: + Layer_Bevel(); + + virtual bool set_param(const String & param, const synfig::ValueBase &value); + + virtual ValueBase get_param(const String & param)const; + + virtual Color get_color(Context context, const Point &pos)const; + + virtual bool accelerated_render(Context context,Surface *surface,int quality, const RendDesc &renddesc, ProgressCallback *cb)const; + + virtual synfig::Rect get_full_bounding_rect(Context context)const; + virtual Vocab get_param_vocab()const; +}; // END of class Blur + +/* -- E X T E R N S --------------------------------------------------------- */ + +/* -- E N D ----------------------------------------------------------------- */ + +#endif diff --git a/synfig-core/tags/stable/src/modules/lyr_std/booleancurve.cpp b/synfig-core/tags/stable/src/modules/lyr_std/booleancurve.cpp new file mode 100644 index 0000000..30619bf --- /dev/null +++ b/synfig-core/tags/stable/src/modules/lyr_std/booleancurve.cpp @@ -0,0 +1,121 @@ +/* === S Y N F I G ========================================================= */ +/*! \file booleancurve.cpp +** \brief Boolean Curve Implementation File +** +** $Id$ +** +** \legal +** Copyright (c) 2002-2005 Robert B. Quattlebaum Jr., Adrian Bentley +** +** This package is free software; you can redistribute it and/or +** modify it under the terms of the GNU General Public License as +** published by the Free Software Foundation; either version 2 of +** the License, or (at your option) any later version. +** +** This package is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +** General Public License for more details. +** \endlegal +*/ +/* ========================================================================= */ + +/* === H E A D E R S ======================================================= */ + +#ifdef USING_PCH +# include "pch.h" +#else +#ifdef HAVE_CONFIG_H +# include +#endif + +#include "booleancurve.h" + +#include +#include +#include +#include +#include +#include +#include +#include + +#endif + +/* === U S I N G =========================================================== */ + +using namespace std; +using namespace etl; +using namespace synfig; + +/* === M A C R O S ========================================================= */ + +/* === G L O B A L S ======================================================= */ + +/* === P R O C E D U R E S ================================================= */ + +/* === M E T H O D S ======================================================= */ + +/* === E N T R Y P O I N T ================================================= */ + +BooleanCurve::BooleanCurve() +{ +} + +BooleanCurve::~BooleanCurve() +{ +} + +bool BooleanCurve::set_param(const String & param, const synfig::ValueBase &value) +{ + if(param=="regions" && value.same_as(regions)) + { + vector bv; + int size = value.get_list().size(); + + const vector &vlist = value.get_list(); + + regions.clear(); + for(int i = 0; i < size; ++i) + { + regions.push_back(vector(vlist[i].get_list().begin(),vlist[i].get_list().end())); + } + return true; + } + + return Layer_Shape::set_param(param,value); +} + +ValueBase BooleanCurve::get_param(const String & param)const +{ + EXPORT(regions); + + EXPORT_NAME(); + EXPORT_VERSION(); + + return Layer_Shape::get_param(param); +} + +Layer::Vocab BooleanCurve::get_param_vocab()const +{ + Layer::Vocab ret(Layer_Shape::get_param_vocab()); + + ret.push_back(ParamDesc("regions") + .set_local_name(_("Region Set")) + .set_description(_("Set of regions to combine")) + ); + + return ret; +} + +Color BooleanCurve::get_color(Context context, const Point &pos)const +{ + Color c(Color::alpha()); + + return c; +} + +bool BooleanCurve::accelerated_render(Context context,Surface *surface,int quality, const RendDesc &renddesc, ProgressCallback *cb)const +{ + return false; +} diff --git a/synfig-core/tags/stable/src/modules/lyr_std/booleancurve.h b/synfig-core/tags/stable/src/modules/lyr_std/booleancurve.h new file mode 100644 index 0000000..5896e7d --- /dev/null +++ b/synfig-core/tags/stable/src/modules/lyr_std/booleancurve.h @@ -0,0 +1,75 @@ +/* === S Y N F I G ========================================================= */ +/*! \file booleancurve.h +** \brief Boolean Curve Header +** +** $Id$ +** +** \legal +** Copyright (c) 2002-2005 Robert B. Quattlebaum Jr., Adrian Bentley +** +** This package is free software; you can redistribute it and/or +** modify it under the terms of the GNU General Public License as +** published by the Free Software Foundation; either version 2 of +** the License, or (at your option) any later version. +** +** This package is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +** General Public License for more details. +** \endlegal +*/ +/* ========================================================================= */ + +/* === S T A R T =========================================================== */ + +#ifndef __SYNFIG_BOOLEAN_CURVE_H +#define __SYNFIG_BOOLEAN_CURVE_H + +/* === H E A D E R S ======================================================= */ +#include +#include + +#include + +/* === M A C R O S ========================================================= */ + +/* === T Y P E D E F S ===================================================== */ + +/* === C L A S S E S & S T R U C T S ======================================= */ +namespace synfig +{ + +class BooleanCurve : public Layer_Shape +{ + //dynamic list of regions and such + typedef std::vector< std::vector > region_list_type; + region_list_type regions; + + enum BOOLEAN_OP + { + Union = 0, + Intersection, + MutualExclude, + Num_Boolean_Ops + }; + + int operation; + +public: + + BooleanCurve(); + ~BooleanCurve(); + + virtual bool set_param(const String & param, const synfig::ValueBase &value); + virtual ValueBase get_param(const String & param)const; + + virtual Vocab get_param_vocab()const; + + virtual Color get_color(Context context, const Point &pos)const; + virtual bool accelerated_render(Context context,Surface *surface,int quality, const RendDesc &renddesc, ProgressCallback *cb)const; +}; + +} //end of namespace synfig +/* === E N D =============================================================== */ + +#endif diff --git a/synfig-core/tags/stable/src/modules/lyr_std/clamp.cpp b/synfig-core/tags/stable/src/modules/lyr_std/clamp.cpp new file mode 100644 index 0000000..10e36c5 --- /dev/null +++ b/synfig-core/tags/stable/src/modules/lyr_std/clamp.cpp @@ -0,0 +1,207 @@ +/* === S Y N F I G ========================================================= */ +/*! \file clamp.cpp +** \brief Template Header +** +** $Id$ +** +** \legal +** Copyright (c) 2002-2005 Robert B. Quattlebaum Jr., Adrian Bentley +** +** This package is free software; you can redistribute it and/or +** modify it under the terms of the GNU General Public License as +** published by the Free Software Foundation; either version 2 of +** the License, or (at your option) any later version. +** +** This package is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +** General Public License for more details. +** \endlegal +*/ +/* ========================================================================= */ + +/* === H E A D E R S ======================================================= */ + +#ifdef USING_PCH +# include "pch.h" +#else +#ifdef HAVE_CONFIG_H +# include +#endif + +#include "clamp.h" +#include +#include +#include +#include +#include +#include +#include +#include + +#endif + +/* === U S I N G =========================================================== */ + +using namespace etl; +using namespace std; +using namespace synfig; + +/* === G L O B A L S ======================================================= */ + +SYNFIG_LAYER_INIT(Layer_Clamp); +SYNFIG_LAYER_SET_NAME(Layer_Clamp,"clamp"); +SYNFIG_LAYER_SET_LOCAL_NAME(Layer_Clamp,_("Clamp")); +SYNFIG_LAYER_SET_CATEGORY(Layer_Clamp,_("Filters")); +SYNFIG_LAYER_SET_VERSION(Layer_Clamp,"0.2"); +SYNFIG_LAYER_SET_CVS_ID(Layer_Clamp,"$Id$"); + +/* === P R O C E D U R E S ================================================= */ + +/* === M E T H O D S ======================================================= */ + +/* === E N T R Y P O I N T ================================================= */ + +Layer_Clamp::Layer_Clamp(): + invert_negative(false), + clamp_ceiling(true), + ceiling(1.0f), + floor(0.0f) +{ +} + +inline Color +Layer_Clamp::clamp_color(const Color &in)const +{ + Color ret(in); + + if(ret.get_a()==0) + return Color::alpha(); + + if(invert_negative) + { + if(ret.get_a()ceiling) ret.set_r(ceiling); + if(ret.get_g()>ceiling) ret.set_g(ceiling); + if(ret.get_b()>ceiling) ret.set_b(ceiling); + if(ret.get_a()>ceiling) ret.set_a(ceiling); + } + return ret; +} + +bool +Layer_Clamp::set_param(const String & param, const ValueBase &value) +{ + IMPORT(invert_negative); + IMPORT(clamp_ceiling); + IMPORT(ceiling); + IMPORT(floor); + + return false; +} + +ValueBase +Layer_Clamp::get_param(const String ¶m)const +{ + EXPORT(invert_negative); + EXPORT(clamp_ceiling); + + EXPORT(ceiling); + EXPORT(floor); + + EXPORT_NAME(); + EXPORT_VERSION(); + + return ValueBase(); +} + +Layer::Vocab +Layer_Clamp::get_param_vocab()const +{ + Layer::Vocab ret; + + ret.push_back(ParamDesc("invert_negative") + .set_local_name(_("Invert Negative")) + ); + + ret.push_back(ParamDesc("clamp_ceiling") + .set_local_name(_("Clamp Ceiling")) + ); + + ret.push_back(ParamDesc("ceiling") + .set_local_name(_("Ceiling")) + ); + + ret.push_back(ParamDesc("floor") + .set_local_name(_("Floor")) + ); + + return ret; +} + +Color +Layer_Clamp::get_color(Context context, const Point &pos)const +{ + return clamp_color(context.get_color(pos)); +} + +bool +Layer_Clamp::accelerated_render(Context context,Surface *surface,int quality, const RendDesc &renddesc, ProgressCallback *cb)const +{ + SuperCallback supercb(cb,0,9500,10000); + + if(!context.accelerated_render(surface,quality,renddesc,&supercb)) + return false; + + int x,y; + + Surface::pen pen(surface->begin()); + + for(y=0;yamount_complete(10000,10000)) + return false; + + return true; +} + + +Rect +Layer_Clamp::get_full_bounding_rect(Context context)const +{ + return context.get_full_bounding_rect(); +} diff --git a/synfig-core/tags/stable/src/modules/lyr_std/clamp.h b/synfig-core/tags/stable/src/modules/lyr_std/clamp.h new file mode 100644 index 0000000..6ae1721 --- /dev/null +++ b/synfig-core/tags/stable/src/modules/lyr_std/clamp.h @@ -0,0 +1,75 @@ +/* === S Y N F I G ========================================================= */ +/*! \file clamp.h +** \brief Template Header +** +** $Id$ +** +** \legal +** Copyright (c) 2002-2005 Robert B. Quattlebaum Jr., Adrian Bentley +** +** This package is free software; you can redistribute it and/or +** modify it under the terms of the GNU General Public License as +** published by the Free Software Foundation; either version 2 of +** the License, or (at your option) any later version. +** +** This package is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +** General Public License for more details. +** \endlegal +*/ +/* ========================================================================= */ + +/* === S T A R T =========================================================== */ + +#ifndef __SYNFIG_LAYER_SOLIDCOLOR_H +#define __SYNFIG_LAYER_SOLIDCOLOR_H + +/* === H E A D E R S ======================================================= */ + +#include + +/* === M A C R O S ========================================================= */ + +/* === T Y P E D E F S ===================================================== */ + +/* === C L A S S E S & S T R U C T S ======================================= */ + +namespace synfig { + +class Layer_Clamp : public Layer +{ + SYNFIG_LAYER_MODULE_EXT + +private: + + bool invert_negative; + bool clamp_ceiling; + + float ceiling; + float floor; + + Color clamp_color(const Color &in)const; + +public: + + Layer_Clamp(); + + virtual bool set_param(const String & param, const synfig::ValueBase &value); + + virtual ValueBase get_param(const String & param)const; + + virtual Color get_color(Context context, const Point &pos)const; + + virtual Rect get_full_bounding_rect(Context context)const; + + virtual bool accelerated_render(Context context,Surface *surface,int quality, const RendDesc &renddesc, ProgressCallback *cb)const; + + virtual Vocab get_param_vocab()const; +}; // END of class Layer_Clamp + +}; // END of namespace synfig + +/* === E N D =============================================================== */ + +#endif diff --git a/synfig-core/tags/stable/src/modules/lyr_std/import.cpp b/synfig-core/tags/stable/src/modules/lyr_std/import.cpp new file mode 100644 index 0000000..2af6a4d --- /dev/null +++ b/synfig-core/tags/stable/src/modules/lyr_std/import.cpp @@ -0,0 +1,233 @@ +/* === S Y N F I G ========================================================= */ +/*! \file import.cpp +** \brief Image Import Layer Implementation +** +** $Id$ +** +** \legal +** Copyright (c) 2002-2005 Robert B. Quattlebaum Jr., Adrian Bentley +** +** This package is free software; you can redistribute it and/or +** modify it under the terms of the GNU General Public License as +** published by the Free Software Foundation; either version 2 of +** the License, or (at your option) any later version. +** +** This package is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +** General Public License for more details. +** \endlegal +** +** === N O T E S =========================================================== +** +** ========================================================================= */ + +/* === H E A D E R S ======================================================= */ + +#ifdef USING_PCH +# include "pch.h" +#else +#ifdef HAVE_CONFIG_H +# include +#endif + +#include "import.h" +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#endif + +using namespace synfig; +using namespace std; +using namespace etl; + +/* === M A C R O S ========================================================= */ + +/* === G L O B A L S ======================================================= */ + +SYNFIG_LAYER_INIT(Import); +SYNFIG_LAYER_SET_NAME(Import,"import"); +SYNFIG_LAYER_SET_LOCAL_NAME(Import,_("Import")); +SYNFIG_LAYER_SET_CATEGORY(Import,_("Other")); +SYNFIG_LAYER_SET_VERSION(Import,"0.1"); +SYNFIG_LAYER_SET_CVS_ID(Import,"$Id$"); + +/* === P R O C E D U R E S ================================================= */ + +/* === M E T H O D S ======================================================= */ + +Import::Import() +{ + time_offset=0; +} + +Import::~Import() +{ +} + +void +Import::on_canvas_set() +{ + if(get_canvas())set_param("filename",filename); +} + +bool +Import::set_param(const String & param, const ValueBase &value) +{ + try{ + IMPORT(time_offset); + if(param=="filename" && value.same_as(filename)) + { + if(!get_canvas()) + { + filename=value.get(filename); + importer=0; + surface.clear(); + return true; + } + + String newfilename=value.get(string()); + String filename_with_path; + + // Get rid of any %20 crap + { + unsigned int n; + while((n=newfilename.find("%20"))!=String::npos) + newfilename.replace(n,3," "); + } + + //if(get_canvas()->get_file_path()==dirname(newfilename)) + //{ + // synfig::info("Image seems to be in local directory. Adjusting path..."); + // newfilename=basename(newfilename); + //} + +#ifndef WIN32 + if(is_absolute_path(newfilename)) + { + string curpath(cleanup_path(absolute_path(get_canvas()->get_file_path()))); + while(basename(curpath)==".")curpath=dirname(curpath); + + newfilename=relative_path(curpath,newfilename); + synfig::info("basename(curpath)=%s, Path adjusted to %s",basename(curpath).c_str(),newfilename.c_str()); + } +#endif + + if(filename.empty()) + filename=newfilename; + + if(newfilename.empty()) + { + filename=newfilename; + importer=0; + surface.clear(); + return true; + } + + // If we are already loaded, don't reload + if(filename==newfilename && importer) + { + synfig::warning(strprintf(_("Filename seems to already be set to \"%s\" (%s)"),filename.c_str(),newfilename.c_str())); + return true; + } + + assert(get_canvas()); + + if(is_absolute_path(newfilename)) + filename_with_path=newfilename; + else + filename_with_path=get_canvas()->get_file_path()+ETL_DIRECTORY_SEPERATOR+newfilename; + + handle newimporter; + + newimporter=Importer::open(absolute_path(filename_with_path)); + + if(!newimporter) + { + newimporter=Importer::open(get_canvas()->get_file_path()+ETL_DIRECTORY_SEPERATOR+basename(newfilename)); + if(!newimporter) + { + synfig::error(strprintf("Unable to create an importer object with file \"%s\"",filename_with_path.c_str())); + surface.clear(); + return false; + } + } + + surface.clear(); + if(!newimporter->get_frame(surface,Time(0))) + { + synfig::warning(strprintf("Unable to get frame from \"%s\"",filename_with_path.c_str())); + } + + importer=newimporter; + filename=newfilename; + abs_filename=absolute_path(filename_with_path); + + return true; + } + } catch(...) { set_amount(0); return false; } + + return Layer_Bitmap::set_param(param,value); +} + +ValueBase +Import::get_param(const String & param)const +{ + EXPORT(time_offset); + + if(get_canvas()) + { + if(param=="filename") + { + string curpath(cleanup_path(absolute_path(get_canvas()->get_file_path()))); + return relative_path(curpath,abs_filename); + } + } + else + EXPORT(filename); + + EXPORT_NAME(); + EXPORT_VERSION(); + + return Layer_Bitmap::get_param(param); +} + +Layer::Vocab +Import::get_param_vocab()const +{ + Layer::Vocab ret(Layer_Bitmap::get_param_vocab()); + + ret.push_back(ParamDesc("filename") + .set_local_name(_("Filename")) + .set_description(_("File to import")) + .set_hint("filename") + ); + ret.push_back(ParamDesc("time_offset") + .set_local_name(_("Time Offset")) + ); + + return ret; +} + +void +Import::set_time(Context context, Time time)const +{ + if(get_amount() && importer && importer->is_animated())importer->get_frame(surface,time+time_offset); + //else surface.clear(); + context.set_time(time); +} + +void +Import::set_time(Context context, Time time, const Point &pos)const +{ + if(get_amount() && importer && importer->is_animated())importer->get_frame(surface,time+time_offset); + //else surface.clear(); + context.set_time(time,pos); +} diff --git a/synfig-core/tags/stable/src/modules/lyr_std/import.h b/synfig-core/tags/stable/src/modules/lyr_std/import.h new file mode 100644 index 0000000..36ff1a2 --- /dev/null +++ b/synfig-core/tags/stable/src/modules/lyr_std/import.h @@ -0,0 +1,72 @@ +/* === S Y N F I G ========================================================= */ +/*! \file import.h +** \brief Template Header +** +** $Id$ +** +** \legal +** Copyright (c) 2002-2005 Robert B. Quattlebaum Jr., Adrian Bentley +** +** This package is free software; you can redistribute it and/or +** modify it under the terms of the GNU General Public License as +** published by the Free Software Foundation; either version 2 of +** the License, or (at your option) any later version. +** +** This package is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +** General Public License for more details. +** \endlegal +*/ +/* ========================================================================= */ + +/* === S T A R T =========================================================== */ + +#ifndef __SYNFIG_IMPORT_H +#define __SYNFIG_IMPORT_H + +/* === H E A D E R S ======================================================= */ + +#include +#include +#include +#include + +/* === M A C R O S ========================================================= */ + +/* === T Y P E D E F S ===================================================== */ + +/* === C L A S S E S & S T R U C T S ======================================= */ + +class Import : public synfig::Layer_Bitmap +{ + SYNFIG_LAYER_MODULE_EXT + +private: + synfig::String filename; + synfig::String abs_filename; + synfig::Importer::Handle importer; + synfig::Time time_offset; + +protected: + Import(); + +public: + ~Import(); + + virtual bool set_param(const synfig::String & param, const synfig::ValueBase &value); + + virtual synfig::ValueBase get_param(const synfig::String & param)const; + + virtual Vocab get_param_vocab()const; + + virtual void on_canvas_set(); + + virtual void set_time(synfig::Context context, synfig::Time time)const; + + virtual void set_time(synfig::Context context, synfig::Time time, const synfig::Point &point)const; +}; + +/* === E N D =============================================================== */ + +#endif diff --git a/synfig-core/tags/stable/src/modules/lyr_std/insideout.cpp b/synfig-core/tags/stable/src/modules/lyr_std/insideout.cpp new file mode 100644 index 0000000..d7263a6 --- /dev/null +++ b/synfig-core/tags/stable/src/modules/lyr_std/insideout.cpp @@ -0,0 +1,145 @@ +/* === S Y N F I G ========================================================= */ +/*! \file insideout.cpp +** \brief Template Header +** +** $Id$ +** +** \legal +** Copyright (c) 2002-2005 Robert B. Quattlebaum Jr., Adrian Bentley +** +** This package is free software; you can redistribute it and/or +** modify it under the terms of the GNU General Public License as +** published by the Free Software Foundation; either version 2 of +** the License, or (at your option) any later version. +** +** This package is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +** General Public License for more details. +** \endlegal +** +** === N O T E S =========================================================== +** +** ========================================================================= */ + +/* === H E A D E R S ======================================================= */ + +#ifdef USING_PCH +# include "pch.h" +#else +#ifdef HAVE_CONFIG_H +# include +#endif + +#include "insideout.h" + +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#endif + +/* === M A C R O S ========================================================= */ + +/* === G L O B A L S ======================================================= */ + +SYNFIG_LAYER_INIT(InsideOut); +SYNFIG_LAYER_SET_NAME(InsideOut,"inside_out"); +SYNFIG_LAYER_SET_LOCAL_NAME(InsideOut,_("InsideOut")); +SYNFIG_LAYER_SET_CATEGORY(InsideOut,_("Distortions")); +SYNFIG_LAYER_SET_VERSION(InsideOut,"0.1"); +SYNFIG_LAYER_SET_CVS_ID(InsideOut,"$Id$"); + +/* === P R O C E D U R E S ================================================= */ + +/* === M E T H O D S ======================================================= */ + +InsideOut::InsideOut(): + origin(0,0) +{ +} + +bool +InsideOut::set_param(const String & param, const ValueBase &value) +{ + IMPORT(origin); + return false; +} + +ValueBase +InsideOut::get_param(const String & param)const +{ + EXPORT(origin); + + EXPORT_NAME(); + EXPORT_VERSION(); + + return ValueBase(); +} + +synfig::Layer::Handle +InsideOut::hit_check(synfig::Context context, const synfig::Point &p)const +{ + Point pos(p-origin); + Real inv_mag=pos.inv_mag(); + Point invpos(pos*inv_mag*inv_mag); + return context.hit_check(invpos+origin); +} + +Color +InsideOut::get_color(Context context, const Point &p)const +{ + Point pos(p-origin); + Real inv_mag=pos.inv_mag(); + Point invpos(pos*inv_mag*inv_mag); + return context.get_color(invpos+origin); +} + +class InsideOut_Trans : public Transform +{ + etl::handle layer; +public: + InsideOut_Trans(const InsideOut* x):layer(x) { } + + synfig::Vector perform(const synfig::Vector& x)const + { + Point pos(x-layer->origin); + Real inv_mag=pos.inv_mag(); + if(!isnan(inv_mag)) + return (pos*(inv_mag*inv_mag)+layer->origin); + return x; + } + + synfig::Vector unperform(const synfig::Vector& x)const + { + Point pos(x-layer->origin); + Real inv_mag=pos.inv_mag(); + if(!isnan(inv_mag)) + return (pos*(inv_mag*inv_mag)+layer->origin); + return x; + } +}; +etl::handle +InsideOut::get_transform()const +{ + return new InsideOut_Trans(this); +} + +Layer::Vocab +InsideOut::get_param_vocab()const +{ + Layer::Vocab ret; + + ret.push_back(ParamDesc("origin") + .set_local_name(_("Origin")) + .set_description(_("Defines the where the center will be")) + ); + + return ret; +} diff --git a/synfig-core/tags/stable/src/modules/lyr_std/insideout.h b/synfig-core/tags/stable/src/modules/lyr_std/insideout.h new file mode 100644 index 0000000..c355f1c --- /dev/null +++ b/synfig-core/tags/stable/src/modules/lyr_std/insideout.h @@ -0,0 +1,69 @@ +/* === S Y N F I G ========================================================= */ +/*! \file insideout.h +** \brief Template Header +** +** $Id$ +** +** \legal +** Copyright (c) 2002-2005 Robert B. Quattlebaum Jr., Adrian Bentley +** +** This package is free software; you can redistribute it and/or +** modify it under the terms of the GNU General Public License as +** published by the Free Software Foundation; either version 2 of +** the License, or (at your option) any later version. +** +** This package is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +** General Public License for more details. +** \endlegal +** +** === N O T E S =========================================================== +** +** ========================================================================= */ + +/* === S T A R T =========================================================== */ + +#ifndef __SYNFIG_INSIDEOUT_H +#define __SYNFIG_INSIDEOUT_H + +/* === H E A D E R S ======================================================= */ + +#include +#include +#include + +/* === M A C R O S ========================================================= */ + +/* === T Y P E D E F S ===================================================== */ + +/* === C L A S S E S & S T R U C T S ======================================= */ + +using namespace synfig; +using namespace std; +using namespace etl; +class InsideOut_Trans; + +class InsideOut : public Layer +{ + SYNFIG_LAYER_MODULE_EXT + friend class InsideOut_Trans; + +private: + + Point origin; + +public: + InsideOut(); + + virtual bool set_param(const String ¶m, const ValueBase &value); + virtual ValueBase get_param(const String ¶m)const; + virtual Color get_color(Context context, const Point &pos)const; + synfig::Layer::Handle hit_check(synfig::Context context, const synfig::Point &point)const; + virtual Vocab get_param_vocab()const; + virtual etl::handle get_transform()const; +}; + +/* === E N D =============================================================== */ + +#endif diff --git a/synfig-core/tags/stable/src/modules/lyr_std/julia.cpp b/synfig-core/tags/stable/src/modules/lyr_std/julia.cpp new file mode 100644 index 0000000..bb32cd3 --- /dev/null +++ b/synfig-core/tags/stable/src/modules/lyr_std/julia.cpp @@ -0,0 +1,364 @@ +/* === S Y N F I G ========================================================= */ +/*! \file julia.cpp +** \brief Template Header +** +** $Id$ +** +** \legal +** Copyright (c) 2002-2005 Robert B. Quattlebaum Jr., Adrian Bentley +** +** This package is free software; you can redistribute it and/or +** modify it under the terms of the GNU General Public License as +** published by the Free Software Foundation; either version 2 of +** the License, or (at your option) any later version. +** +** This package is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +** General Public License for more details. +** \endlegal +** +** === N O T E S =========================================================== +** +** ========================================================================= */ + +/* === H E A D E R S ======================================================= */ + +#ifdef USING_PCH +# include "pch.h" +#else +#ifdef HAVE_CONFIG_H +# include +#endif + +#include "julia.h" + +#include +#include +#include +#include +#include +#include +#include +#include + +#endif + +/* === M A C R O S ========================================================= */ + +#define LOG_OF_2 0.69314718055994528623 + +/* === G L O B A L S ======================================================= */ + +SYNFIG_LAYER_INIT(Julia); +SYNFIG_LAYER_SET_NAME(Julia,"julia"); +SYNFIG_LAYER_SET_LOCAL_NAME(Julia,_("Julia Set")); +SYNFIG_LAYER_SET_CATEGORY(Julia,_("Fractals")); +SYNFIG_LAYER_SET_VERSION(Julia,"0.1"); +SYNFIG_LAYER_SET_CVS_ID(Julia,"$Id$"); + +/* === P R O C E D U R E S ================================================= */ + +inline void +color_neg_flip(Color &color) +{ + if(color.get_a()==0) + { + color=Color::alpha(); + return; + } + + if(color.get_a()<0) + color=-color; + + if(color.get_r()<0) + { + color.set_g(color.get_g()-color.get_r()); + color.set_b(color.get_b()-color.get_r()); + color.set_r(0); + } + if(color.get_g()<0) + { + color.set_r(color.get_r()-color.get_g()); + color.set_b(color.get_b()-color.get_g()); + color.set_g(0); + } + if(color.get_b()<0) + { + color.set_r(color.get_r()-color.get_b()); + color.set_g(color.get_g()-color.get_b()); + color.set_b(0); + } +} + +/* === M E T H O D S ======================================================= */ + +Julia::Julia():color_shift(angle::degrees(0)) +{ + icolor=Color::black(); + ocolor=Color::black(); + iterations=32; + color_shift=Angle::deg(0); + + distort_inside=true; + distort_outside=true; + shade_inside=true; + shade_outside=true; + solid_inside=false; + solid_outside=false; + invert_inside=false; + invert_outside=false; + color_inside=true; + color_outside=false; + color_cycle=false; + smooth_outside=true; + broken=false; + seed=Point(0,0); + + bailout=4; + lp=log(log(bailout)); +} + +bool +Julia::set_param(const String & param, const ValueBase &value) +{ + + IMPORT(icolor); + IMPORT(ocolor); + IMPORT(color_shift); + IMPORT(seed); + + IMPORT(distort_inside); + IMPORT(distort_outside); + IMPORT(shade_inside); + IMPORT(shade_outside); + IMPORT(solid_inside); + IMPORT(solid_outside); + IMPORT(invert_inside); + IMPORT(invert_outside); + IMPORT(color_inside); + IMPORT(color_outside); + + IMPORT(color_cycle); + IMPORT(smooth_outside); + IMPORT(broken); + + if(param=="iterations" && value.same_as(iterations)) + { + iterations=value.get(iterations); + if(iterations<0) + iterations=0; + if(iterations>500000) + iterations=500000; + return true; + } + if(param=="bailout" && value.same_as(bailout)) + { + bailout=value.get(bailout); + bailout*=bailout; + lp=log(log(bailout)); + return true; + } + + return false; +} + +ValueBase +Julia::get_param(const String & param)const +{ + EXPORT(icolor); + EXPORT(ocolor); + EXPORT(color_shift); + EXPORT(iterations); + EXPORT(seed); + + EXPORT(distort_inside); + EXPORT(distort_outside); + EXPORT(shade_inside); + EXPORT(shade_outside); + EXPORT(solid_inside); + EXPORT(solid_outside); + EXPORT(invert_inside); + EXPORT(invert_outside); + EXPORT(color_inside); + EXPORT(color_outside); + EXPORT(color_cycle); + EXPORT(smooth_outside); + EXPORT(broken); + + if(param=="bailout") + return sqrt(bailout); + + EXPORT_NAME(); + EXPORT_VERSION(); + + return ValueBase(); +} + +Color +Julia::get_color(Context context, const Point &pos)const +{ + Real + cr, ci, + zr, zi, + zr_hold; + + ColorReal + depth, mag; + + Color + ret; + + cr=seed[0]; + ci=seed[1]; + zr=pos[0]; + zi=pos[1]; + + for(int i=0;i4) + { + if(smooth_outside) + { + // Darco's original mandelbrot smoothing algo + // depth=((Point::value_type)i+(2.0-sqrt(mag))/PI); + + // Linas Vepstas algo (Better than darco's) + // See (http://linas.org/art-gallery/escape/smooth.html) + depth= (ColorReal)i - log(log(sqrt(mag))) / LOG_OF_2; + + // Clamp + if(depth<0) depth=0; + } + else + depth=static_cast(i); + + if(solid_outside) + ret=ocolor; + else + if(distort_outside) + ret=context.get_color(Point(zr,zi)); + else + ret=context.get_color(pos); + + if(invert_outside) + ret=~ret; + + if(color_outside) + ret=ret.set_uv(zr,zi).clamped_negative(); + + if(color_cycle) + ret=ret.rotate_uv(color_shift.operator*(depth)).clamped_negative(); + + if(shade_outside) + { + ColorReal alpha=depth/static_cast(iterations); + ret=(ocolor-ret)*alpha+ret; + } + return ret; + } + } + + if(solid_inside) + ret=icolor; + else + if(distort_inside) + ret=context.get_color(Point(zr,zi)); + else + ret=context.get_color(pos); + + if(invert_inside) + ret=~ret; + + if(color_inside) + ret=ret.set_uv(zr,zi).clamped_negative(); + + if(shade_inside) + ret=(icolor-ret)*mag+ret; + + return ret; +} + +Layer::Vocab +Julia::get_param_vocab()const +{ + Layer::Vocab ret; + + ret.push_back(ParamDesc("icolor") + .set_local_name(_("Inside Color")) + .set_description(_("Color of the Set")) + ); + ret.push_back(ParamDesc("ocolor") + .set_local_name(_("Outside Color")) + .set_description(_("Color outside the Set")) + ); + ret.push_back(ParamDesc("color_shift") + .set_local_name(_("Color Shift")) + ); + ret.push_back(ParamDesc("iterations") + .set_local_name(_("Iterations")) + ); + ret.push_back(ParamDesc("seed") + .set_local_name(_("Seed Point")) + ); + ret.push_back(ParamDesc("bailout") + .set_local_name(_("Bailout ValueBase")) + ); + + ret.push_back(ParamDesc("distort_inside") + .set_local_name(_("Distort Inside")) + ); + ret.push_back(ParamDesc("shade_inside") + .set_local_name(_("Shade Inside")) + ); + ret.push_back(ParamDesc("solid_inside") + .set_local_name(_("Solid Inside")) + ); + ret.push_back(ParamDesc("invert_inside") + .set_local_name(_("Invert Inside")) + ); + ret.push_back(ParamDesc("color_inside") + .set_local_name(_("Color Inside")) + ); + ret.push_back(ParamDesc("distort_outside") + .set_local_name(_("Distort Outside")) + ); + ret.push_back(ParamDesc("shade_outside") + .set_local_name(_("Shade Outside")) + ); + ret.push_back(ParamDesc("solid_outside") + .set_local_name(_("Solid Outside")) + ); + ret.push_back(ParamDesc("invert_outside") + .set_local_name(_("Invert Outside")) + ); + ret.push_back(ParamDesc("color_outside") + .set_local_name(_("Color Outside")) + ); + + ret.push_back(ParamDesc("color_cycle") + .set_local_name(_("Color Cycle")) + ); + ret.push_back(ParamDesc("smooth_outside") + .set_local_name(_("Smooth Outside")) + .set_description(_("Smooth the coloration outside the set")) + ); + ret.push_back(ParamDesc("broken") + .set_local_name(_("Break Set")) + .set_description(_("Modify equation to achieve interesting results")) + ); + + + return ret; +} diff --git a/synfig-core/tags/stable/src/modules/lyr_std/julia.h b/synfig-core/tags/stable/src/modules/lyr_std/julia.h new file mode 100644 index 0000000..c2d9ef1 --- /dev/null +++ b/synfig-core/tags/stable/src/modules/lyr_std/julia.h @@ -0,0 +1,90 @@ +/* === S Y N F I G ========================================================= */ +/*! \file julia.h +** \brief Template Header +** +** $Id$ +** +** \legal +** Copyright (c) 2002-2005 Robert B. Quattlebaum Jr., Adrian Bentley +** +** This package is free software; you can redistribute it and/or +** modify it under the terms of the GNU General Public License as +** published by the Free Software Foundation; either version 2 of +** the License, or (at your option) any later version. +** +** This package is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +** General Public License for more details. +** \endlegal +** +** === N O T E S =========================================================== +** +** ========================================================================= */ + +/* === S T A R T =========================================================== */ + +#ifndef __SYNFIG_JULIA_H +#define __SYNFIG_JULIA_H + +/* === H E A D E R S ======================================================= */ + +#include +#include +#include +#include + +/* === M A C R O S ========================================================= */ + +/* === T Y P E D E F S ===================================================== */ + +/* === C L A S S E S & S T R U C T S ======================================= */ + +using namespace synfig; +using namespace std; +using namespace etl; + +class Julia : public synfig::Layer +{ + SYNFIG_LAYER_MODULE_EXT + +private: + + synfig::Color icolor; + synfig::Color ocolor; + synfig::Angle color_shift; + Real bailout; + Real lp; + int iterations; + synfig::Point seed; + + bool distort_inside; + bool distort_outside; + bool shade_inside; + bool shade_outside; + bool solid_inside; + bool solid_outside; + bool invert_inside; + bool invert_outside; + bool color_inside; + bool color_outside; + + bool color_cycle; + bool smooth_outside; + bool broken; + +public: + Julia(); + + virtual bool set_param(const synfig::String ¶m, const synfig::ValueBase &value); + + virtual ValueBase get_param(const synfig::String ¶m)const; + + virtual Color get_color(synfig::Context context, const synfig::Point &pos)const; + + virtual Vocab get_param_vocab()const; +}; + +/* === E N D =============================================================== */ + +#endif diff --git a/synfig-core/tags/stable/src/modules/lyr_std/lyr_std.nsh b/synfig-core/tags/stable/src/modules/lyr_std/lyr_std.nsh new file mode 100644 index 0000000..8c3df9c --- /dev/null +++ b/synfig-core/tags/stable/src/modules/lyr_std/lyr_std.nsh @@ -0,0 +1,21 @@ +; The stuff to install +Section "lyr_std" Sec_lyr_std + +; SectionIn RO + + ; Set output path to the installation directory. + SetOutPath "$INSTDIR\lib\synfig\modules" + + ; Put file there + File /oname=lyr_std.dll "src\modules\lyr_std\.libs\liblyr_std-0.dll" + + + FileOpen $0 $INSTDIR\etc\synfig_modules.cfg a + FileSeek $0 0 END + FileWrite $0 "lyr_std" + FileWriteByte $0 "13" + FileWriteByte $0 "10" + FileClose $0 + +SectionEnd + diff --git a/synfig-core/tags/stable/src/modules/lyr_std/main.cpp b/synfig-core/tags/stable/src/modules/lyr_std/main.cpp new file mode 100644 index 0000000..6a166f5 --- /dev/null +++ b/synfig-core/tags/stable/src/modules/lyr_std/main.cpp @@ -0,0 +1,114 @@ +/* === S Y N F I G ========================================================= */ +/*! \file lyr_std/main.cpp +** \brief Template Header +** +** $Id$ +** +** \legal +** Copyright (c) 2002-2005 Robert B. Quattlebaum Jr., Adrian Bentley +** +** This package is free software; you can redistribute it and/or +** modify it under the terms of the GNU General Public License as +** published by the Free Software Foundation; either version 2 of +** the License, or (at your option) any later version. +** +** This package is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +** General Public License for more details. +** \endlegal +** +** === N O T E S =========================================================== +** +** ========================================================================= */ + +/* === H E A D E R S ======================================================= */ + +#define SYNFIG_MODULE + +#ifdef USING_PCH +# include "pch.h" +#else +#ifdef HAVE_CONFIG_H +# include +#endif + +#include +#include + +#include "zoom.h" +//#include "blur.h" +#include "import.h" +#include "translate.h" +#include "rotate.h" +#include "clamp.h" +#include "stretch.h" + +//#include "colorcorrect.h" + +#include "supersample.h" + +#include "mandelbrot.h" +#include "julia.h" +#include "insideout.h" +#include "xorpattern.h" +#include "twirl.h" +#include "sphere_distort.h" + + + +#include "shade.h" +#include "bevel.h" +//#include "halftone2.h" + +//#include "radialblur.h" + +#include "warp.h" +#include "timeloop.h" + +#endif + +/* === E N T R Y P O I N T ================================================= */ + +MODULE_DESC_BEGIN(liblyr_std) + MODULE_NAME("Standard Layers") + MODULE_DESCRIPTION("Provides a basic set of standard layers") + MODULE_AUTHOR("Robert B. Quattlebaum") + MODULE_VERSION("1.0") + MODULE_COPYRIGHT(SYNFIG_COPYRIGHT) +MODULE_DESC_END + +MODULE_INVENTORY_BEGIN(liblyr_std) + BEGIN_LAYERS + LAYER(Zoom) +// LAYER(Blur_Layer) +// LAYER(RadialBlur) + LAYER(Import) + LAYER(Translate) + LAYER(SuperSample) + LAYER(Rotate) + LAYER(Warp) + + LAYER_ALIAS(Zoom,"Zoom") + LAYER_ALIAS(Translate,"Translate") + LAYER_ALIAS(SuperSample,"SuperSample") + LAYER_ALIAS(Rotate,"Rotate") + LAYER_ALIAS(Import,"Import") +// LAYER_ALIAS(Blur_Layer,"Blur") + +// LAYER(Halftone2) + + LAYER(Julia) + LAYER(InsideOut) + LAYER(Mandelbrot) + LAYER(Layer_Clamp) + LAYER(Layer_Stretch) +// LAYER(Layer_ColorCorrect) +// LAYER(XORPattern) + LAYER(Twirl) + LAYER(Layer_Shade) + LAYER(Layer_Bevel) + LAYER(Layer_TimeLoop) + LAYER(Layer_SphereDistort) + END_LAYERS +MODULE_INVENTORY_END diff --git a/synfig-core/tags/stable/src/modules/lyr_std/mandelbrot.cpp b/synfig-core/tags/stable/src/modules/lyr_std/mandelbrot.cpp new file mode 100644 index 0000000..9901436 --- /dev/null +++ b/synfig-core/tags/stable/src/modules/lyr_std/mandelbrot.cpp @@ -0,0 +1,384 @@ +/* === S Y N F I G ========================================================= */ +/*! \file mandelbrot.cpp +** \brief Template Header +** +** $Id$ +** +** \legal +** Copyright (c) 2002-2005 Robert B. Quattlebaum Jr., Adrian Bentley +** +** This package is free software; you can redistribute it and/or +** modify it under the terms of the GNU General Public License as +** published by the Free Software Foundation; either version 2 of +** the License, or (at your option) any later version. +** +** This package is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +** General Public License for more details. +** \endlegal +** +** === N O T E S =========================================================== +** +** ========================================================================= */ + +/* === H E A D E R S ======================================================= */ + +#ifdef USING_PCH +# include "pch.h" +#else +#ifdef HAVE_CONFIG_H +# include +#endif + +#include "mandelbrot.h" + +#include +#include +#include +#include +#include +#include +#include +#include + +#endif + +/* === M A C R O S ========================================================= */ + +#define LOG_OF_2 0.69314718055994528623 + +/* === G L O B A L S ======================================================= */ + +SYNFIG_LAYER_INIT(Mandelbrot); +SYNFIG_LAYER_SET_NAME(Mandelbrot,"mandelbrot"); +SYNFIG_LAYER_SET_LOCAL_NAME(Mandelbrot,_("Mandelbrot Set")); +SYNFIG_LAYER_SET_CATEGORY(Mandelbrot,_("Fractals")); +SYNFIG_LAYER_SET_VERSION(Mandelbrot,"0.2"); +SYNFIG_LAYER_SET_CVS_ID(Mandelbrot,"$Id$"); + +/* === P R O C E D U R E S ================================================= */ + +inline void +color_neg_flip(Color &color) +{ + if(color.get_a()==0) + { + color=Color::alpha(); + return; + } + + if(color.get_a()<0) + color=-color; + + if(color.get_r()<0) + { + color.set_g(color.get_g()-color.get_r()); + color.set_b(color.get_b()-color.get_r()); + color.set_r(0); + } + if(color.get_g()<0) + { + color.set_r(color.get_r()-color.get_g()); + color.set_b(color.get_b()-color.get_g()); + color.set_g(0); + } + if(color.get_b()<0) + { + color.set_r(color.get_r()-color.get_b()); + color.set_g(color.get_g()-color.get_b()); + color.set_b(0); + } +} + +/* === M E T H O D S ======================================================= */ + +Mandelbrot::Mandelbrot(): + gradient_offset_inside(0.0), + gradient_offset_outside(0.0), + gradient_loop_inside(true), + gradient_scale_outside(1.0), + gradient_inside(Color::alpha(),Color::black()), + gradient_outside(Color::alpha(),Color::black()) +{ + iterations=32; +// color_shift=Angle::deg(0); + + distort_inside=true; + distort_outside=true; + solid_inside=false; + solid_outside=false; + invert_inside=false; + invert_outside=false; + shade_inside=true; + shade_outside=true; + + smooth_outside=true; + broken=false; + + bailout=4; + lp=log(log(bailout)); +} + +bool +Mandelbrot::set_param(const String & param, const ValueBase &value) +{ + +// IMPORT(color_shift); + + IMPORT(gradient_offset_inside); + IMPORT(gradient_offset_outside); + IMPORT(gradient_loop_inside); + IMPORT(gradient_scale_outside); + + IMPORT(distort_inside); + IMPORT(distort_outside); + IMPORT(solid_inside); + IMPORT(solid_outside); + IMPORT(invert_inside); + IMPORT(invert_outside); + IMPORT(shade_inside); + IMPORT(shade_outside); + + IMPORT(smooth_outside); + IMPORT(broken); + + IMPORT(gradient_inside); + IMPORT(gradient_outside); + + if(param=="iterations" && value.same_as(iterations)) + { + iterations=value.get(iterations); + if(iterations<0) + iterations=0; + if(iterations>500000) + iterations=500000; + return true; + } + if(param=="bailout" && value.same_as(bailout)) + { + bailout=value.get(bailout); + bailout*=bailout; + lp=log(log(bailout)); + return true; + } + + return false; +} + +ValueBase +Mandelbrot::get_param(const String & param)const +{ +// EXPORT(icolor); +// EXPORT(ocolor); +// EXPORT(color_shift); + EXPORT(iterations); + + EXPORT(gradient_offset_inside); + EXPORT(gradient_offset_outside); + EXPORT(gradient_loop_inside); + EXPORT(gradient_scale_outside); + + EXPORT(distort_inside); + EXPORT(distort_outside); + EXPORT(solid_inside); + EXPORT(solid_outside); + EXPORT(invert_inside); + EXPORT(invert_outside); + EXPORT(shade_inside); + EXPORT(shade_outside); + EXPORT(smooth_outside); + EXPORT(broken); + + EXPORT(gradient_inside); + EXPORT(gradient_outside); + + if(param=="bailout") + return sqrt(bailout); + + EXPORT_NAME(); + EXPORT_VERSION(); + + return ValueBase(); +} + +Layer::Vocab +Mandelbrot::get_param_vocab()const +{ + Layer::Vocab ret; + + + ret.push_back(ParamDesc("iterations") + .set_local_name(_("Iterations")) + ); + ret.push_back(ParamDesc("bailout") + .set_local_name(_("Bailout ValueBase")) + ); + + ret.push_back(ParamDesc("broken") + .set_local_name(_("Break Set")) + .set_description(_("Modify equation to achieve interesting results")) + ); + + + ret.push_back(ParamDesc("distort_inside") + .set_local_name(_("Distort Inside")) + .set_group(_("Inside")) + ); + ret.push_back(ParamDesc("shade_inside") + .set_local_name(_("Shade Inside")) + .set_group(_("Inside")) + ); + ret.push_back(ParamDesc("solid_inside") + .set_local_name(_("Solid Inside")) + .set_group(_("Inside")) + ); + ret.push_back(ParamDesc("invert_inside") + .set_local_name(_("Invert Inside")) + .set_group(_("Inside")) + ); + ret.push_back(ParamDesc("gradient_inside") + .set_local_name(_("Gradient Inside")) + .set_group(_("Inside")) + ); + ret.push_back(ParamDesc("gradient_offset_inside") + .set_local_name(_("Offset Inside")) + .set_group(_("Inside")) + ); + ret.push_back(ParamDesc("gradient_loop_inside") + .set_local_name(_("Loop Inside")) + .set_group(_("Inside")) + ); + + ret.push_back(ParamDesc("distort_outside") + .set_local_name(_("Distort Outside")) + .set_group(_("Outside")) + ); + ret.push_back(ParamDesc("shade_outside") + .set_local_name(_("Shade Outside")) + .set_group(_("Outside")) + ); + ret.push_back(ParamDesc("solid_outside") + .set_local_name(_("Solid Outside")) + .set_group(_("Outside")) + ); + ret.push_back(ParamDesc("invert_outside") + .set_local_name(_("Invert Outside")) + .set_group(_("Outside")) + ); + ret.push_back(ParamDesc("gradient_outside") + .set_local_name(_("Gradient outside")) + .set_group(_("Outside")) + ); + ret.push_back(ParamDesc("smooth_outside") + .set_local_name(_("Smooth Outside")) + .set_description(_("Smooth the coloration outside the set")) + .set_group(_("Outside")) + ); + ret.push_back(ParamDesc("gradient_offset_outside") + .set_local_name(_("Offset Outside")) + .set_group(_("Outside")) + ); + ret.push_back(ParamDesc("gradient_scale_outside") + .set_local_name(_("Scale Outside")) + .set_group(_("Outside")) + ); + + return ret; +} + +Color +Mandelbrot::get_color(Context context, const Point &pos)const +{ + Real + cr, ci, + zr, zi, + zr_hold; + + ColorReal + depth, mag; + + Color + ret; + + + zr=zi=0; + cr=pos[0]; + ci=pos[1]; + + for(int i=0;ibailout) + { + if(smooth_outside) + { + // Darco's original mandelbrot smoothing algo + // depth=((Point::value_type)i+(2.0-sqrt(mag))/PI); + + // Linas Vepstas algo (Better than darco's) + // See (http://linas.org/art-gallery/escape/smooth.html) + depth= (ColorReal)i + LOG_OF_2*lp - log(log(sqrt(mag))) / LOG_OF_2; + + // Clamp + if(depth<0) depth=0; + } + else + depth=static_cast(i); + + ColorReal amount(depth/static_cast(iterations)); + amount=amount*gradient_scale_outside+gradient_offset_outside; + amount-=floor(amount); + + if(solid_outside) + ret=gradient_outside(amount); + else + { + if(distort_outside) + ret=context.get_color(Point(pos[0]+zr,pos[1]+zi)); + else + ret=context.get_color(pos); + + if(invert_outside) + ret=~ret; + + if(shade_outside) + ret=Color::blend(gradient_outside(amount), ret, 1.0); + } + + + return ret; + } + } + + ColorReal amount(abs(mag+gradient_offset_inside)); + if(gradient_loop_inside) + amount-=floor(amount); + + if(solid_inside) + ret=gradient_inside(amount); + else + { + if(distort_inside) + ret=context.get_color(Point(pos[0]+zr,pos[1]+zi)); + else + ret=context.get_color(pos); + + if(invert_inside) + ret=~ret; + + if(shade_inside) + ret=Color::blend(gradient_inside(amount), ret, 1.0); + } + + return ret; +} diff --git a/synfig-core/tags/stable/src/modules/lyr_std/mandelbrot.h b/synfig-core/tags/stable/src/modules/lyr_std/mandelbrot.h new file mode 100644 index 0000000..05cd575 --- /dev/null +++ b/synfig-core/tags/stable/src/modules/lyr_std/mandelbrot.h @@ -0,0 +1,86 @@ +/* === S Y N F I G ========================================================= */ +/*! \file mandelbrot.h +** \brief Template Header +** +** $Id$ +** +** \legal +** Copyright (c) 2002-2005 Robert B. Quattlebaum Jr., Adrian Bentley +** +** This package is free software; you can redistribute it and/or +** modify it under the terms of the GNU General Public License as +** published by the Free Software Foundation; either version 2 of +** the License, or (at your option) any later version. +** +** This package is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +** General Public License for more details. +** \endlegal +** +** === N O T E S =========================================================== +** +** ========================================================================= */ + +/* === S T A R T =========================================================== */ + +#ifndef __SYNFIG_MANDELBROT_H +#define __SYNFIG_MANDELBROT_H + +/* === H E A D E R S ======================================================= */ + +#include +#include +#include +#include + +/* === M A C R O S ========================================================= */ + +/* === T Y P E D E F S ===================================================== */ + +/* === C L A S S E S & S T R U C T S ======================================= */ + +using namespace synfig; +using namespace std; +using namespace etl; + +class Mandelbrot : public Layer +{ + SYNFIG_LAYER_MODULE_EXT + +private: + + Real bailout; + Real lp; + int iterations; + + bool smooth_outside; + bool broken; + + bool distort_inside; + bool distort_outside; + bool solid_inside; + bool solid_outside; + bool invert_inside; + bool invert_outside; + bool shade_outside; + bool shade_inside; + Real gradient_offset_inside; + Real gradient_offset_outside; + bool gradient_loop_inside; + Real gradient_scale_outside; + Gradient gradient_inside; + Gradient gradient_outside; + +public: + Mandelbrot(); + + virtual bool set_param(const String ¶m, const ValueBase &value); + virtual ValueBase get_param(const String ¶m)const; + virtual Color get_color(Context context, const Point &pos)const; + virtual Vocab get_param_vocab()const; +}; + +/* === E N D =============================================================== */ + +#endif diff --git a/synfig-core/tags/stable/src/modules/lyr_std/radialgradient.cpp b/synfig-core/tags/stable/src/modules/lyr_std/radialgradient.cpp new file mode 100644 index 0000000..373ac26 --- /dev/null +++ b/synfig-core/tags/stable/src/modules/lyr_std/radialgradient.cpp @@ -0,0 +1,256 @@ +/* === S Y N F I G ========================================================= */ +/*! \file lyr_std/radialgradient.cpp +** \brief Template Header +** +** $Id$ +** +** \legal +** Copyright (c) 2002-2005 Robert B. Quattlebaum Jr., Adrian Bentley +** +** This package is free software; you can redistribute it and/or +** modify it under the terms of the GNU General Public License as +** published by the Free Software Foundation; either version 2 of +** the License, or (at your option) any later version. +** +** This package is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +** General Public License for more details. +** \endlegal +*/ +/* ========================================================================= */ + +/* === H E A D E R S ======================================================= */ + +#ifdef USING_PCH +# include "pch.h" +#else +#ifdef HAVE_CONFIG_H +# include +#endif + +#include +#include +#include +#include +#include +#include +#include +#include + +#include "radialgradient.h" + +#endif + +/* === U S I N G =========================================================== */ + +using namespace etl; +using namespace std; +using namespace synfig; + +/* === G L O B A L S ======================================================= */ + +SYNFIG_LAYER_INIT(RadialGradient); +SYNFIG_LAYER_SET_NAME(RadialGradient,"radial_gradient"); +SYNFIG_LAYER_SET_LOCAL_NAME(RadialGradient,_("Radial Gradient")); +SYNFIG_LAYER_SET_CATEGORY(RadialGradient,_("Gradients")); +SYNFIG_LAYER_SET_VERSION(RadialGradient,"0.1"); +SYNFIG_LAYER_SET_CVS_ID(RadialGradient,"$Id$"); + +/* === P R O C E D U R E S ================================================= */ + +/* === M E T H O D S ======================================================= */ + +/* === E N T R Y P O I N T ================================================= */ + +RadialGradient::RadialGradient(): + Layer_Composite(1.0,Color::BLEND_STRAIGHT), + gradient(Color::black(),Color::white()), + center(0,0), + radius(0.5), + loop(false), + zigzag(false) +{ +} + +bool +RadialGradient::set_param(const String & param, const ValueBase &value) +{ + IMPORT(gradient); + IMPORT(center); + IMPORT(radius); + IMPORT(loop); + IMPORT(zigzag); + + return Layer_Composite::set_param(param,value); +} + +ValueBase +RadialGradient::get_param(const String ¶m)const +{ + EXPORT(gradient); + EXPORT(center); + EXPORT(radius); + EXPORT(loop); + EXPORT(zigzag); + + EXPORT_NAME(); + EXPORT_VERSION(); + + return Layer_Composite::get_param(param); +} + +Layer::Vocab +RadialGradient::get_param_vocab()const +{ + Layer::Vocab ret(Layer_Composite::get_param_vocab()); + + ret.push_back(ParamDesc("gradient") + .set_local_name(_("Gradient")) + ); + + ret.push_back(ParamDesc("center") + .set_local_name(_("Center")) + ); + + ret.push_back(ParamDesc("radius") + .set_local_name(_("Radius")) + .set_description(_("This is the radius of the circle")) + .set_origin("center") + ); + + ret.push_back(ParamDesc("loop") + .set_local_name(_("Loop")) + ); + + ret.push_back(ParamDesc("zigzag") + .set_local_name(_("Zig-Zag")) + ); + + return ret; +} + +inline Color +RadialGradient::color_func(const Point &point, float supersample)const +{ + Real dist((point-center).mag()/radius); + + if(zigzag) + { + dist*=2.0; + supersample*=2.0; + if(dist>1)dist=2.0-dist; + } + + if(loop) + { + dist-=floor(dist); + + if(dist+supersample*0.5>1.0) + { + Color pool(gradient(dist,supersample*0.5)*(1.0-(dist-supersample*0.5))); + pool+=gradient((dist+supersample*0.5)-1.0,supersample*0.5)*((dist+supersample*0.5)-1.0); + if(pool.get_a() && pool.is_valid()) + { + pool.set_r(pool.get_r()/pool.get_a()); + pool.set_g(pool.get_g()/pool.get_a()); + pool.set_b(pool.get_b()/pool.get_a()); + pool.set_a(pool.get_a()/supersample); + } + return pool; + } + if(dist-supersample*0.5<0.0) + { + Color pool(gradient(dist,supersample*0.5)*(dist+supersample*0.5)); + pool+=gradient(1.0-(dist-supersample*0.5),supersample*0.5)*(-(dist-supersample*0.5)); + if(pool.get_a() && pool.is_valid()) + { + pool.set_r(pool.get_r()/pool.get_a()); + pool.set_g(pool.get_g()/pool.get_a()); + pool.set_b(pool.get_b()/pool.get_a()); + pool.set_a(pool.get_a()/supersample); + return pool; + } + } + } + + return gradient(dist,supersample); +} + + +float +RadialGradient::calc_supersample(const synfig::Point &x, float pw,float ph)const +{ +// return sqrt(pw*pw+ph*ph)/radius; + return 1.2*pw/radius; +} + +synfig::Layer::Handle +RadialGradient::hit_check(synfig::Context context, const synfig::Point &point)const +{ + if(get_blend_method()==Color::BLEND_STRAIGHT && get_amount()>=0.5) + return const_cast(this); + if(get_amount()==0.0) + return context.hit_check(point); + if((get_blend_method()==Color::BLEND_STRAIGHT || get_blend_method()==Color::BLEND_COMPOSITE) && color_func(point).get_a()>0.5) + return const_cast(this); + return context.hit_check(point); +} + +Color +RadialGradient::get_color(Context context, const Point &pos)const +{ + const Color color(color_func(pos)); + + if(get_amount()==1.0 && get_blend_method()==Color::BLEND_STRAIGHT) + return color; + else + return Color::blend(color,context.get_color(pos),get_amount(),get_blend_method()); +} + +bool +RadialGradient::accelerated_render(Context context,Surface *surface,int quality, const RendDesc &renddesc, ProgressCallback *cb)const +{ + SuperCallback supercb(cb,0,9500,10000); + + if(get_amount()==1.0 && get_blend_method()==Color::BLEND_STRAIGHT) + { + surface->set_wh(renddesc.get_w(),renddesc.get_h()); + } + else + { + if(!context.accelerated_render(surface,quality,renddesc,&supercb)) + return false; + if(get_amount()==0) + return true; + } + + + int x,y; + + Surface::pen pen(surface->begin()); + const Real pw(renddesc.get_pw()),ph(renddesc.get_ph()); + Point pos; + Point tl(renddesc.get_tl()); + const int w(surface->get_w()); + const int h(surface->get_h()); + + if(get_amount()==1.0 && get_blend_method()==Color::BLEND_STRAIGHT) + { + for(y=0,pos[1]=tl[1];yamount_complete(10000,10000)) + return false; + + return true; +} diff --git a/synfig-core/tags/stable/src/modules/lyr_std/rotate.cpp b/synfig-core/tags/stable/src/modules/lyr_std/rotate.cpp new file mode 100644 index 0000000..963e8e5 --- /dev/null +++ b/synfig-core/tags/stable/src/modules/lyr_std/rotate.cpp @@ -0,0 +1,328 @@ +/* === S Y N F I G ========================================================= */ +/*! \file rotate.cpp +** \brief Template Header +** +** $Id$ +** +** \legal +** Copyright (c) 2002-2005 Robert B. Quattlebaum Jr., Adrian Bentley +** +** This package is free software; you can redistribute it and/or +** modify it under the terms of the GNU General Public License as +** published by the Free Software Foundation; either version 2 of +** the License, or (at your option) any later version. +** +** This package is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +** General Public License for more details. +** \endlegal +** +** === N O T E S =========================================================== +** +** ========================================================================= */ + +/* === H E A D E R S ======================================================= */ + +#ifdef USING_PCH +# include "pch.h" +#else +#ifdef HAVE_CONFIG_H +# include +#endif + +#include "rotate.h" +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#endif + +/* === M A C R O S ========================================================= */ + +/* === G L O B A L S ======================================================= */ + +SYNFIG_LAYER_INIT(Rotate); +SYNFIG_LAYER_SET_NAME(Rotate,"rotate"); +SYNFIG_LAYER_SET_LOCAL_NAME(Rotate,_("Rotate")); +SYNFIG_LAYER_SET_CATEGORY(Rotate,_("Transform")); +SYNFIG_LAYER_SET_VERSION(Rotate,"0.1"); +SYNFIG_LAYER_SET_CVS_ID(Rotate,"$Id$"); + +/* === P R O C E D U R E S ================================================= */ + +/* === M E T H O D S ======================================================= */ + +/* === E N T R Y P O I N T ================================================= */ + +Rotate::Rotate(): + origin (0,0), + amount (Angle::deg(0)), + sin_val (0), + cos_val (1) +{ +} + +Rotate::~Rotate() +{ +} + +bool +Rotate::set_param(const String & param, const ValueBase &value) +{ + IMPORT(origin); + + if(param=="amount" && value.same_as(amount)) + { + amount=value.get(amount); + sin_val=Angle::sin(amount).get(); + cos_val=Angle::cos(amount).get(); + return true; + } + + return false; +} + +ValueBase +Rotate::get_param(const String ¶m)const +{ + EXPORT(origin); + EXPORT(amount); + + EXPORT_NAME(); + EXPORT_VERSION(); + + return ValueBase(); +} + +Layer::Vocab +Rotate::get_param_vocab()const +{ + Layer::Vocab ret; + + ret.push_back(ParamDesc("origin") + .set_local_name(_("Origin")) + .set_description(_("Point where you want the origin to be")) + ); + + ret.push_back(ParamDesc("amount") + .set_local_name(_("Amount")) + .set_description(_("Amount of rotation")) + .set_origin("origin") + ); + + return ret; +} + +class Rotate_Trans : public Transform +{ + etl::handle layer; +public: + Rotate_Trans(const Rotate* x):Transform(x->get_guid()),layer(x) { } + + synfig::Vector perform(const synfig::Vector& x)const + { + Point pos(x-layer->origin); + return Point(layer->cos_val*pos[0]-layer->sin_val*pos[1],layer->sin_val*pos[0]+layer->cos_val*pos[1])+layer->origin; + } + + synfig::Vector unperform(const synfig::Vector& x)const + { + Point pos(x-layer->origin); + return Point(layer->cos_val*pos[0]+layer->sin_val*pos[1],-layer->sin_val*pos[0]+layer->cos_val*pos[1])+layer->origin; + } +}; +etl::handle +Rotate::get_transform()const +{ + return new Rotate_Trans(this); +} + +synfig::Layer::Handle +Rotate::hit_check(synfig::Context context, const synfig::Point &p)const +{ + Point pos(p-origin); + Point newpos(cos_val*pos[0]+sin_val*pos[1],-sin_val*pos[0]+cos_val*pos[1]); + newpos+=origin; + return context.hit_check(newpos); +} + +Color +Rotate::get_color(Context context, const Point &p)const +{ + Point pos(p-origin); + Point newpos(cos_val*pos[0]+sin_val*pos[1],-sin_val*pos[0]+cos_val*pos[1]); + newpos+=origin; + return context.get_color(newpos); +} + +bool +Rotate::accelerated_render(Context context,Surface *surface,int quality, const RendDesc &renddesc, ProgressCallback *cb)const +{ + if(amount.dist(Angle::deg(0))==Angle::deg(0)) + return context.accelerated_render(surface,quality,renddesc,cb); + if(amount.dist(Angle::deg(180))==Angle::deg(0)) + { + RendDesc desc(renddesc); + desc.clear_flags(); + Point tmp; + tmp=renddesc.get_tl()-origin; + desc.set_tl(Point(-tmp[0],-tmp[1])+origin); + tmp=renddesc.get_br()-origin; + desc.set_br(Point(-tmp[0],-tmp[1])+origin); + return context.accelerated_render(surface,quality,desc,cb); + } + + SuperCallback stageone(cb,0,9000,10000); + SuperCallback stagetwo(cb,9000,10000,10000); + + if(cb && !cb->amount_complete(0,10000)) + return false; + + Point tl(renddesc.get_tl()-origin); + Point br(renddesc.get_br()-origin); + Point rot_tl(cos_val*tl[0]+sin_val*tl[1],-sin_val*tl[0]+cos_val*tl[1]); + Point rot_br(cos_val*br[0]+sin_val*br[1],-sin_val*br[0]+cos_val*br[1]); + Point rot_tr(cos_val*br[0]+sin_val*tl[1],-sin_val*br[0]+cos_val*tl[1]); + Point rot_bl(cos_val*tl[0]+sin_val*br[1],-sin_val*tl[0]+cos_val*br[1]); + rot_tl+=origin; + rot_br+=origin; + rot_tr+=origin; + rot_bl+=origin; + + Point min_point(min(min(min(rot_tl[0],rot_br[0]),rot_tr[0]),rot_bl[0]),min(min(min(rot_tl[1],rot_br[1]),rot_tr[1]),rot_bl[1])); + Point max_point(max(max(max(rot_tl[0],rot_br[0]),rot_tr[0]),rot_bl[0]),max(max(max(rot_tl[1],rot_br[1]),rot_tr[1]),rot_bl[1])); + + if(tl[0]>br[0]) + { + tl[0]=max_point[0]; + br[0]=min_point[0]; + } + else + { + br[0]=max_point[0]; + tl[0]=min_point[0]; + } + if(tl[1]>br[1]) + { + tl[1]=max_point[1]; + br[1]=min_point[1]; + } + else + { + br[1]=max_point[1]; + tl[1]=min_point[1]; + } + + Real pw=(renddesc.get_w())/(renddesc.get_br()[0]-renddesc.get_tl()[0]); + Real ph=(renddesc.get_h())/(renddesc.get_br()[1]-renddesc.get_tl()[1]); + + RendDesc desc(renddesc); + desc.clear_flags(); + //desc.set_flags(RendDesc::PX_ASPECT); + desc.set_tl(tl); + desc.set_br(br); + desc.set_wh(round_to_int(pw*(br[0]-tl[0])),round_to_int(ph*(br[1]-tl[1]))); + + //synfig::warning("given window: [%f,%f]-[%f,%f] %dx%d",renddesc.get_tl()[0],renddesc.get_tl()[1],renddesc.get_br()[0],renddesc.get_br()[1],renddesc.get_w(),renddesc.get_h()); + //synfig::warning("surface to render: [%f,%f]-[%f,%f] %dx%d",desc.get_tl()[0],desc.get_tl()[1],desc.get_br()[0],desc.get_br()[1],desc.get_w(),desc.get_h()); + + Surface source; + source.set_wh(desc.get_w(),desc.get_h()); + + if(!context.accelerated_render(&source,quality,desc,&stageone)) + return false; + + surface->set_wh(renddesc.get_w(),renddesc.get_h()); + + Surface::pen pen(surface->begin()); + + if(quality<=4) + { + // CUBIC + int x,y;//,u,v,u2,v2; + Point point,tmp; + for(y=0,point[1]=renddesc.get_tl()[1];yget_h();y++,pen.inc_y(),pen.dec_x(x),point[1]+=1.0/ph) + { + for(x=0,point[0]=renddesc.get_tl()[0];xget_w();x++,pen.inc_x(),point[0]+=1.0/pw) + { + tmp=Point(cos_val*(point[0]-origin[0])+sin_val*(point[1]-origin[1]),-sin_val*(point[0]-origin[0])+cos_val*(point[1]-origin[1])) +origin; + (*surface)[y][x]=source.cubic_sample((tmp[0]-tl[0])*pw,(tmp[1]-tl[1])*ph); + } + if(y&31==0 && cb) + { + if(!stagetwo.amount_complete(y,surface->get_h())) + return false; + } + } + } + else + if(quality<=6) + { + // INTERPOLATION_LINEAR + int x,y;//,u,v,u2,v2; + Point point,tmp; + for(y=0,point[1]=renddesc.get_tl()[1];yget_h();y++,pen.inc_y(),pen.dec_x(x),point[1]+=1.0/ph) + { + for(x=0,point[0]=renddesc.get_tl()[0];xget_w();x++,pen.inc_x(),point[0]+=1.0/pw) + { + tmp=Point(cos_val*(point[0]-origin[0])+sin_val*(point[1]-origin[1]),-sin_val*(point[0]-origin[0])+cos_val*(point[1]-origin[1])) +origin; + (*surface)[y][x]=source.linear_sample((tmp[0]-tl[0])*pw,(tmp[1]-tl[1])*ph); + } + if(y&31==0 && cb) + { + if(!stagetwo.amount_complete(y,surface->get_h())) + return false; + } + } + } + else + { + // NEAREST_NEIGHBOR + int x,y,u,v; + Point point,tmp; + for(y=0,point[1]=renddesc.get_tl()[1];yget_h();y++,pen.inc_y(),pen.dec_x(x),point[1]+=1.0/ph) + { + for(x=0,point[0]=renddesc.get_tl()[0];xget_w();x++,pen.inc_x(),point[0]+=1.0/pw) + { + tmp=Point(cos_val*(point[0]-origin[0])+sin_val*(point[1]-origin[1]),-sin_val*(point[0]-origin[0])+cos_val*(point[1]-origin[1])) +origin; + u=int((tmp[0]-tl[0])*pw); + v=int((tmp[1]-tl[1])*ph); + if(u<0) + u=0; + if(v<0) + v=0; + if(u>=source.get_w()) + u=source.get_w()-1; + if(v>=source.get_h()) + v=source.get_h()-1; + //pen.set_value(source[v][u]); + (*surface)[y][x]=source[v][u]; + } + if(y&31==0 && cb) + { + if(!stagetwo.amount_complete(y,surface->get_h())) + return false; + } + } + } + + if(cb && !cb->amount_complete(10000,10000)) return false; + + return true; +} + +Rect +Rotate::get_full_bounding_rect(Context context)const +{ + Rect under(context.get_full_bounding_rect()); + return get_transform()->perform(under); +} + diff --git a/synfig-core/tags/stable/src/modules/lyr_std/rotate.h b/synfig-core/tags/stable/src/modules/lyr_std/rotate.h new file mode 100644 index 0000000..28662e9 --- /dev/null +++ b/synfig-core/tags/stable/src/modules/lyr_std/rotate.h @@ -0,0 +1,74 @@ +/* === S Y N F I G ========================================================= */ +/*! \file rotate.h +** \brief Template Header +** +** $Id$ +** +** \legal +** Copyright (c) 2002-2005 Robert B. Quattlebaum Jr., Adrian Bentley +** +** This package is free software; you can redistribute it and/or +** modify it under the terms of the GNU General Public License as +** published by the Free Software Foundation; either version 2 of +** the License, or (at your option) any later version. +** +** This package is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +** General Public License for more details. +** \endlegal +** +** === N O T E S =========================================================== +** +** ========================================================================= */ + +/* === S T A R T =========================================================== */ + +#ifndef __SYNFIG_ROTATE_H +#define __SYNFIG_ROTATE_H + +/* === H E A D E R S ======================================================= */ + +#include +#include +#include + +/* === M A C R O S ========================================================= */ + +/* === T Y P E D E F S ===================================================== */ + +/* === C L A S S E S & S T R U C T S ======================================= */ + +using namespace synfig; +using namespace std; +using namespace etl; +class Rotate_Trans; + +class Rotate : public Layer +{ + SYNFIG_LAYER_MODULE_EXT + friend class Rotate_Trans; +private: + Vector origin; + Angle amount; + + Real sin_val; + Real cos_val; +public: + Rotate(); + ~Rotate(); + + virtual bool set_param(const synfig::String & param, const synfig::ValueBase &value); + virtual ValueBase get_param(const synfig::String & param)const; + virtual Color get_color(Context context, const Point &pos)const; + virtual bool accelerated_render(Context context,Surface *surface,int quality, const RendDesc &renddesc, ProgressCallback *cb)const; + synfig::Layer::Handle hit_check(synfig::Context context, const synfig::Point &point)const; + virtual Vocab get_param_vocab()const; + virtual Rect get_full_bounding_rect(Context context)const; + + virtual etl::handle get_transform()const; +}; + +/* === E N D =============================================================== */ + +#endif diff --git a/synfig-core/tags/stable/src/modules/lyr_std/shade.cpp b/synfig-core/tags/stable/src/modules/lyr_std/shade.cpp new file mode 100644 index 0000000..33815bf --- /dev/null +++ b/synfig-core/tags/stable/src/modules/lyr_std/shade.cpp @@ -0,0 +1,423 @@ +/* === S Y N F I G ========================================================= */ +/*! \file shade.cpp +** \brief Template Header +** +** $Id$ +** +** \legal +** Copyright (c) 2002-2005 Robert B. Quattlebaum Jr., Adrian Bentley +** +** This package is free software; you can redistribute it and/or +** modify it under the terms of the GNU General Public License as +** published by the Free Software Foundation; either version 2 of +** the License, or (at your option) any later version. +** +** This package is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +** General Public License for more details. +** \endlegal +*/ +/* ========================================================================= */ + +/* === H E A D E R S ======================================================= */ + +#ifdef USING_PCH +# include "pch.h" +#else +#ifdef HAVE_CONFIG_H +# include +#endif + +#include "shade.h" + +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include +#include +#include + +#endif + +using namespace synfig; +using namespace etl; +using namespace std; + +/*#define TYPE_BOX 0 +#define TYPE_FASTGUASSIAN 1 +#define TYPE_FASTGAUSSIAN 1 +#define TYPE_CROSS 2 +#define TYPE_GUASSIAN 3 +#define TYPE_GAUSSIAN 3 +#define TYPE_DISC 4 +*/ + +/* -- G L O B A L S --------------------------------------------------------- */ + +SYNFIG_LAYER_INIT(Layer_Shade); +SYNFIG_LAYER_SET_NAME(Layer_Shade,"shade"); +SYNFIG_LAYER_SET_LOCAL_NAME(Layer_Shade,_("Shade")); +SYNFIG_LAYER_SET_CATEGORY(Layer_Shade,_("Stylize")); +SYNFIG_LAYER_SET_VERSION(Layer_Shade,"0.2"); +SYNFIG_LAYER_SET_CVS_ID(Layer_Shade,"$Id$"); + +/* -- F U N C T I O N S ----------------------------------------------------- */ + +inline void clamp(synfig::Vector &v) +{ + if(v[0]<0.0)v[0]=0.0; + if(v[1]<0.0)v[1]=0.0; +} + +Layer_Shade::Layer_Shade(): + Layer_Composite (0.75,Color::BLEND_BEHIND), + size(0.1,0.1), + type(Blur::FASTGAUSSIAN), + color(Color::black()), + offset(0.2,-0.2), + invert(false) +{ +} + +bool +Layer_Shade::set_param(const String ¶m, const ValueBase &value) +{ + IMPORT_PLUS(size,clamp(size)); + IMPORT(type); + IMPORT(color); + IMPORT(offset); + IMPORT(invert); + + return Layer_Composite::set_param(param,value); +} + +ValueBase +Layer_Shade::get_param(const String ¶m)const +{ + EXPORT(size); + EXPORT(type); + EXPORT(color); + EXPORT(offset); + EXPORT(invert); + + EXPORT_NAME(); + EXPORT_VERSION(); + + return Layer_Composite::get_param(param); +} + +Color +Layer_Shade::get_color(Context context, const Point &pos)const +{ + Point blurpos = Blur(size,type)(pos); + + if(get_amount()==0.0) + return context.get_color(pos); + + Color shade(color); + + if(!invert) + shade.set_a(context.get_color(blurpos-offset).get_a()); + else + shade.set_a(1.0f-context.get_color(blurpos-offset).get_a()); + + return Color::blend(shade,context.get_color(pos),get_amount(),get_blend_method()); +} + +bool +Layer_Shade::accelerated_render(Context context,Surface *surface,int quality, const RendDesc &renddesc, ProgressCallback *cb)const +{ + int x,y; + + const int w = renddesc.get_w(), + h = renddesc.get_h(); + const Real pw = renddesc.get_pw(), + ph = renddesc.get_ph(); + + RendDesc workdesc(renddesc); + Surface worksurface; + etl::surface blurred; + + //expand the working surface to accommodate the blur + + //the expanded size = 1/2 the size in each direction rounded up + int halfsizex = (int) (abs(size[0]*.5/pw) + 3), + halfsizey = (int) (abs(size[1]*.5/ph) + 3); + + int offset_u(-round_to_int(offset[0]/pw)),offset_v(-round_to_int(offset[1]/ph)); + + int offset_w(w+abs(offset_u)),offset_h(h+abs(offset_v)); + + workdesc.set_subwindow( + offset_u<0?offset_u:0, + offset_v<0?offset_v:0, + (offset_u>0?offset_u:0)+w, + (offset_v>0?offset_v:0)+h + ); + + /* + if(quality >=10) + { + halfsizex=1; + halfsizey=1; + }else + */ + if(quality == 9) + { + halfsizex/=4; + halfsizey/=4; + } + + //expand by 1/2 size in each direction on either side + switch(type) + { + case Blur::DISC: + case Blur::BOX: + case Blur::CROSS: + { + workdesc.set_subwindow(-max(1,halfsizex),-max(1,halfsizey),offset_w+2*max(1,halfsizex),offset_h+2*max(1,halfsizey)); + break; + } + case Blur::FASTGAUSSIAN: + { + if(quality < 4) + { + halfsizex*=2; + halfsizey*=2; + } + workdesc.set_subwindow(-max(1,halfsizex),-max(1,halfsizey),offset_w+2*max(1,halfsizex),offset_h+2*max(1,halfsizey)); + break; + } + case Blur::GAUSSIAN: + { + #define GAUSSIAN_ADJUSTMENT (0.05) + Real pw = (Real)workdesc.get_w()/(workdesc.get_br()[0]-workdesc.get_tl()[0]); + Real ph = (Real)workdesc.get_h()/(workdesc.get_br()[1]-workdesc.get_tl()[1]); + + pw=pw*pw; + ph=ph*ph; + + halfsizex = (int)(abs(pw)*size[0]*GAUSSIAN_ADJUSTMENT+0.5); + halfsizey = (int)(abs(ph)*size[1]*GAUSSIAN_ADJUSTMENT+0.5); + + halfsizex = (halfsizex + 1)/2; + halfsizey = (halfsizey + 1)/2; + workdesc.set_subwindow( -halfsizex, -halfsizey, offset_w+2*halfsizex, offset_h+2*halfsizey ); + + break; + } + } +#define SCALE_FACTOR (64.0) + if(/*quality>9 || */size[0]<=pw*SCALE_FACTOR) + { + SuperCallback stageone(cb,0,5000,10000); + SuperCallback stagetwo(cb,5000,10000,10000); + + //callbacks depend on how long the blur takes + if(size[0] || size[1]) + { + if(type == Blur::DISC) + { + stageone = SuperCallback(cb,0,5000,10000); + stagetwo = SuperCallback(cb,5000,10000,10000); + } + else + { + stageone = SuperCallback(cb,0,9000,10000); + stagetwo = SuperCallback(cb,9000,10000,10000); + } + } + else + { + stageone = SuperCallback(cb,0,9999,10000); + stagetwo = SuperCallback(cb,9999,10000,10000); + } + + + + //render the background onto the expanded surface + if(!context.accelerated_render(&worksurface,quality,workdesc,&stageone)) + return false; + + // Copy over the alpha + blurred.set_wh(worksurface.get_w(),worksurface.get_h()); + for(int j=0;jset_wh(renddesc.get_w(),renddesc.get_h()); + + int u = halfsizex-(offset_u<0?offset_u:0), v = halfsizey-(offset_v<0?offset_v:0); + for(y=0;yamount_complete(10000,10000)) + { + //if(cb)cb->error(strprintf(__FILE__"%d: Accelerated Renderer Failure",__LINE__)); + return false; + } + + return true; +} + +Layer::Vocab +Layer_Shade::get_param_vocab(void)const +{ + Layer::Vocab ret(Layer_Composite::get_param_vocab()); + + ret.push_back(ParamDesc("color") + .set_local_name(_("Color")) + ); + ret.push_back(ParamDesc("offset") + .set_local_name(_("Offset")) + ); + ret.push_back(ParamDesc("size") + .set_local_name(_("Size")) + .set_description(_("Size of Shade")) + .set_is_distance() + .set_origin("offset") + ); + ret.push_back(ParamDesc("type") + .set_local_name(_("Type")) + .set_description(_("Type of blur to use")) + .set_hint("enum") + .add_enum_value(Blur::BOX,"box",_("Box Blur")) + .add_enum_value(Blur::FASTGAUSSIAN,"fastgaussian",_("Fast Gaussian Blur")) + .add_enum_value(Blur::CROSS,"cross",_("Cross-Hatch Blur")) + .add_enum_value(Blur::GAUSSIAN,"gaussian",_("Gaussian Blur")) + .add_enum_value(Blur::DISC,"disc",_("Disc Blur")) + ); + + ret.push_back(ParamDesc("invert") + .set_local_name(_("Invert")) + ); + + return ret; +} + +Rect +Layer_Shade::get_full_bounding_rect(Context context)const +{ + if(is_disabled()) + return context.get_full_bounding_rect(); + + if(invert) + return Rect::full_plane(); + + Rect under(context.get_full_bounding_rect()); + + if(Color::is_onto(get_blend_method())) + return under; + + Rect bounds((under+offset).expand_x(size[0]).expand_y(size[1])); + + if(is_solid_color()) + return bounds; + + return bounds|under; +} diff --git a/synfig-core/tags/stable/src/modules/lyr_std/shade.h b/synfig-core/tags/stable/src/modules/lyr_std/shade.h new file mode 100644 index 0000000..3b563af --- /dev/null +++ b/synfig-core/tags/stable/src/modules/lyr_std/shade.h @@ -0,0 +1,68 @@ +/* === S Y N F I G ========================================================= */ +/*! \file shade.h +** \brief Template Header +** +** $Id$ +** +** \legal +** Copyright (c) 2002-2005 Robert B. Quattlebaum Jr., Adrian Bentley +** +** This package is free software; you can redistribute it and/or +** modify it under the terms of the GNU General Public License as +** published by the Free Software Foundation; either version 2 of +** the License, or (at your option) any later version. +** +** This package is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +** General Public License for more details. +** \endlegal +*/ +/* ========================================================================= */ + +/* === H E A D E R S ======================================================= */ + +#ifndef __SYNFIG_LAYER_SHADE_H__ +#define __SYNFIG_LAYER_SHADE_H__ + +/* -- H E A D E R S --------------------------------------------------------- */ + +#include +#include +#include +#include + +using namespace synfig; +using namespace std; +using namespace etl; + +class Layer_Shade : public synfig::Layer_Composite +{ + SYNFIG_LAYER_MODULE_EXT +private: + synfig::Vector size; + int type; + synfig::Color color; + synfig::Vector offset; + bool invert; + +public: + Layer_Shade(); + + virtual bool set_param(const String & param, const synfig::ValueBase &value); + + virtual ValueBase get_param(const String & param)const; + + virtual Color get_color(Context context, const Point &pos)const; + + virtual bool accelerated_render(Context context,Surface *surface,int quality, const RendDesc &renddesc, ProgressCallback *cb)const; + virtual Rect get_full_bounding_rect(Context context)const; + + virtual Vocab get_param_vocab()const; +}; // END of class Blur + +/* -- E X T E R N S --------------------------------------------------------- */ + +/* -- E N D ----------------------------------------------------------------- */ + +#endif diff --git a/synfig-core/tags/stable/src/modules/lyr_std/sphere_distort.cpp b/synfig-core/tags/stable/src/modules/lyr_std/sphere_distort.cpp new file mode 100644 index 0000000..6194b0e --- /dev/null +++ b/synfig-core/tags/stable/src/modules/lyr_std/sphere_distort.cpp @@ -0,0 +1,575 @@ +/* === S Y N F I G ========================================================= */ +/*! \file sphere_distort.cpp +** \brief Sphere Distort File +** +** $Id$ +** +** \legal +** Copyright (c) 2002-2005 Robert B. Quattlebaum Jr., Adrian Bentley +** +** This package is free software; you can redistribute it and/or +** modify it under the terms of the GNU General Public License as +** published by the Free Software Foundation; either version 2 of +** the License, or (at your option) any later version. +** +** This package is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +** General Public License for more details. +** \endlegal +*/ +/* ========================================================================= */ + +/* === H E A D E R S ======================================================= */ + +#ifdef USING_PCH +# include "pch.h" +#else +#ifdef HAVE_CONFIG_H +# include +#endif + +#include "sphere_distort.h" +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include + +#endif + +/* === U S I N G =========================================================== */ + +using namespace std; +using namespace etl; +using namespace synfig; + +/* === M A C R O S ========================================================= */ + +#ifndef PI +const double PI = 3.14159265; +#endif + +enum +{ + TYPE_NORMAL = 0, + TYPE_DISTH = 1, //axe the horizontal axis + TYPE_DISTV = 2, //axe the vertical axis + N_TYPES +}; + +/* === G L O B A L S ======================================================= */ + +SYNFIG_LAYER_INIT(Layer_SphereDistort); +SYNFIG_LAYER_SET_NAME(Layer_SphereDistort,"spherize"); +SYNFIG_LAYER_SET_LOCAL_NAME(Layer_SphereDistort,_("Spherize")); +SYNFIG_LAYER_SET_CATEGORY(Layer_SphereDistort,_("Distortions")); +SYNFIG_LAYER_SET_VERSION(Layer_SphereDistort,"0.2"); +SYNFIG_LAYER_SET_CVS_ID(Layer_SphereDistort,"$Id$"); + +/* === P R O C E D U R E S ================================================= */ + +/* === M E T H O D S ======================================================= */ + +/* === E N T R Y P O I N T ================================================= */ + +Layer_SphereDistort::Layer_SphereDistort() +:Layer_Composite(1.0,Color::BLEND_STRAIGHT), +center(0,0), +radius(1), +percent(1.0), +type(TYPE_NORMAL), +clip(false) +{ +} + + +bool +Layer_SphereDistort::set_param(const String & param, const ValueBase &value) +{ + IMPORT_PLUS(center,sync()); + IMPORT_PLUS(radius,sync()); + IMPORT(type); + IMPORT_AS(percent,"amount"); + IMPORT(clip); + + if(param=="percent") + { + if(dynamic_param_list().count("percent")) + { + connect_dynamic_param("amount",dynamic_param_list().find("percent")->second); + disconnect_dynamic_param("percent"); + synfig::warning("Layer_SphereDistort::::set_param(): Updated valuenode connection to use the new \"amount\" parameter."); + } + else + synfig::warning("Layer_SphereDistort::::set_param(): The parameter \"segment_list\" is deprecated. Use \"bline\" instead."); + } + + return false; +} + +ValueBase +Layer_SphereDistort::get_param(const String ¶m)const +{ + EXPORT(center); + EXPORT(radius); + EXPORT(type); + EXPORT_AS(percent,"amount"); + EXPORT(clip); + + EXPORT_NAME(); + EXPORT_VERSION(); + + return ValueBase(); +} + +void +Layer_SphereDistort::sync() +{ +} + +Layer::Vocab +Layer_SphereDistort::get_param_vocab()const +{ + Layer::Vocab ret; + + ret.push_back(ParamDesc("center") + .set_local_name(_("Position")) + ); + + ret.push_back(ParamDesc("radius") + .set_local_name(_("Radius")) + .set_origin("center") + .set_is_distance() + ); + + ret.push_back(ParamDesc("amount") + .set_local_name(_("Amount")) + .set_is_distance(false) + ); + + ret.push_back(ParamDesc("clip") + .set_local_name(_("Clip")) + ); + + ret.push_back(ParamDesc("type") + .set_local_name(_("Distort Type")) + .set_description(_("The direction of the distortion")) + .set_hint("enum") + .add_enum_value(TYPE_NORMAL,"normal",_("Spherize")) + .add_enum_value(TYPE_DISTH,"honly",_("Vertical Bar")) + .add_enum_value(TYPE_DISTV,"vonly",_("Horizontal Bar")) + ); + + return ret; +} + +/* + Spherical Distortion: maps an image onto a ellipsoid of some sort + + so the image coordinate (i.e. distance away from the center) + will determine how things get mapped + + so with the radius and position the mapping would go as follows + + r = (pos - center) / radius clamped to [-1,1] + + if it's outside of that range then it's not distorted + but if it's inside of that range then it goes as follows + + angle = r * pi/2 (-pi/2,pi/2) + + newr = cos(angle)*radius + + the inverse of this is (which is actually what we'd be transforming it from + + +*/ + +inline float spherify(float f) +{ + if(f > -1 && f < 1 && f!=0) + return sinf(f*(PI/2)); + else return f; +} + +inline float unspherify(float f) +{ + if(f > -1 && f < 1 && f!=0) + return asin(f)/(PI/2); + else return f; +} + +Point sphtrans(const Point &p, const Point ¢er, const float &radius, + const Real &percent, int type, bool& clipped) +{ + const Vector v = (p - center) / radius; + + Point newp = p; + const float t = percent; + + clipped=false; + + if(type == TYPE_NORMAL) + { + const float m = v.mag(); + float lerp(0); + + if(m <= -1 || m >= 1) + { + clipped=true; + return newp; + }else + if(m==0) + return newp; + else + if(t > 0) + { + lerp = (t*unspherify(m) + (1-t)*m); + }else if(t < 0) + { + lerp = ((1+t)*m - t*spherify(m)); + }else lerp = m; + + const float d = lerp*radius; + newp = center + v*(d/m); + } + + else if(type == TYPE_DISTH) + { + float lerp(0); + if(v[0] <= -1 || v[0] >= 1) + { + clipped=true; + return newp; + }else + if(v[0]==0) + return newp; + else + if(t > 0) + { + lerp = (t*unspherify(v[0]) + (1-t)*v[0]); + }else if(t < 0) + { + lerp = ((1+t)*v[0] - t*spherify(v[0])); + }else lerp = v[0]; + + newp[0] = center[0] + lerp*radius; + } + + else if(type == TYPE_DISTV) + { + float lerp(0); + if(v[1] <= -1 || v[1] >= 1) + { + clipped=true; + return newp; + } + else + if(v[1]==0) + return newp; + else + if(t > 0) + { + lerp = (t*unspherify(v[1]) + (1-t)*v[1]); + }else if(t < 0) + { + lerp = ((1+t)*v[1] - t*spherify(v[1])); + }else lerp = v[1]; + + newp[1] = center[1] + lerp*radius; + } + + return newp; +} + +inline Point sphtrans(const Point &p, const Point ¢er, const Real &radius, + const Real &percent, int type) +{ + bool tmp; + return sphtrans(p, center, radius, percent, type, tmp); +} + +synfig::Layer::Handle +Layer_SphereDistort::hit_check(synfig::Context context, const synfig::Point &pos)const +{ + bool clipped; + Point point(sphtrans(pos,center,radius,percent,type,clipped)); + if(clip && clipped) + return 0; + return context.hit_check(point); +} + +Color +Layer_SphereDistort::get_color(Context context, const Point &pos)const +{ + bool clipped; + Point point(sphtrans(pos,center,radius,percent,type,clipped)); + if(clip && clipped) + return Color::alpha(); + return context.get_color(point); +} + +#if 1 +bool Layer_SphereDistort::accelerated_render(Context context,Surface *surface,int quality, const RendDesc &renddesc, ProgressCallback *cb)const +{ + /* Things to consider: + 1) Block expansion for distortion (ouch... quality level??) + 2) Bounding box clipping + 3) Super sampling for better visual quality (based on the quality level?) + 4) Interpolation type for sampling (based on quality level?) + + //things to defer until after + super sampling, non-linear interpolation + */ + + //bounding box reject + { + Rect sphr; + + sphr.set_point(center[0]-radius,center[1]-radius); + sphr.expand(center[0]+radius,center[1]+radius); + + //get the bounding box of the transform + Rect windr; + + //and the bounding box of the rendering + windr.set_point(renddesc.get_tl()[0],renddesc.get_tl()[1]); + windr.expand(renddesc.get_br()[0],renddesc.get_br()[1]); + + //test bounding boxes for collision + if( (type == TYPE_NORMAL && !intersect(sphr,windr)) || + (type == TYPE_DISTH && (sphr.minx >= windr.maxx || windr.minx >= sphr.maxx)) || + (type == TYPE_DISTV && (sphr.miny >= windr.maxy || windr.miny >= sphr.maxy)) ) + { + //synfig::warning("Spherize: Bounding box reject"); + return context.accelerated_render(surface,quality,renddesc,cb); + } + + //synfig::warning("Spherize: Bounding box accept"); + } + + //Ok, so we overlap some... now expand the window for rendering + RendDesc r = renddesc; + Surface background; + Real pw = renddesc.get_pw(),ph = renddesc.get_ph(); + + int nl=0,nt=0,nr=0,nb=0, nw=0,nh=0; + Point tl = renddesc.get_tl(), br = renddesc.get_br(); + + { + //must enlarge window by pixel coordinates so go! + + //need to figure out closest and farthest point and distort THOSE + + Point origin[4] = {tl,tl,br,br}; + Vector v[4] = {Vector(0,br[1]-tl[1]), + Vector(br[0]-tl[0],0), + Vector(0,tl[1]-br[1]), + Vector(tl[0]-br[0],0)}; + + Point close(0,0); + Real t = 0; + Rect expandr(tl,br); + + //expandr.set_point(tl[0],tl[1]); + //expandr.expand(br[0],br[1]); + + //synfig::warning("Spherize: Loop through lines and stuff"); + for(int i=0; i<4; ++i) + { + //synfig::warning("Spherize: %d", i); + Vector p_o = center-origin[i]; + + //project onto left line + t = (p_o*v[i])/v[i].mag_squared(); + + //clamp + if(t < 0) t = 0; if(t > 1) t = 1; + + close = origin[i] + v[i]*t; + + //now get transforms and expand the rectangle to accomodate + Point p = sphtrans(close,center,radius,percent,type); + expandr.expand(p[0],p[1]); + p = sphtrans(origin[i],center,radius,percent,type); + expandr.expand(p[0],p[1]); + p = sphtrans(origin[i]+v[i],center,radius,percent,type); + expandr.expand(p[0],p[1]); + } + + /*synfig::warning("Spherize: Bounding box (%f,%f)-(%f,%f)", + expandr.minx,expandr.miny,expandr.maxx,expandr.maxy);*/ + + //now that we have the bouding rectangle of ALL the pixels (should be...) + //order it so that it's in the same orientation as the tl,br pair + + //synfig::warning("Spherize: Organize like tl,br"); + Point ntl(0,0),nbr(0,0); + + //sort x + if(tl[0] < br[0]) + { + ntl[0] = expandr.minx; + nbr[0] = expandr.maxx; + } + else + { + ntl[0] = expandr.maxx; + nbr[0] = expandr.minx; + } + + //sort y + if(tl[1] < br[1]) + { + ntl[1] = expandr.miny; + nbr[1] = expandr.maxy; + } + else + { + ntl[1] = expandr.maxy; + nbr[1] = expandr.miny; + } + + //now expand the window as needed + Vector temp = ntl-tl; + + //pixel offset + nl = (int)(temp[0]/pw)-1; + nt = (int)(temp[1]/ph)-1; + + temp = nbr - br; + nr = (int)(temp[0]/pw)+1; + nb = (int)(temp[1]/ph)+1; + + nw = renddesc.get_w() + nr - nl; + nh = renddesc.get_h() + nb - nt; + + //synfig::warning("Spherize: Setting subwindow (%d,%d) (%d,%d) (%d,%d)",nl,nt,nr,nb,nw,nh); + r.set_subwindow(nl,nt,nw,nh); + + /*r = renddesc; + nw = r.get_w(), nh = r.get_h(); + nl = 0, nt = 0;*/ + } + + //synfig::warning("Spherize: render background"); + if(!context.accelerated_render(&background,quality,r,cb)) + { + synfig::warning("SphereDistort: Layer below failed"); + return false; + } + + //now distort and check to make sure we aren't overshooting our bounds here + int w = renddesc.get_w(), h = renddesc.get_h(); + surface->set_wh(w,h); + + Point sample = tl, sub = tl, trans(0,0); + float xs = 0,ys = 0; + int y=0,x=0; + Real invpw = 1/pw, invph = 1/ph; + Surface::pen p = surface->begin(); + + Point rtl = r.get_tl(); + + //synfig::warning("Spherize: About to transform"); + + for(y = 0; y < h; ++y, sample[1] += ph, p.inc_y()) + { + sub = sample; + for(x = 0; x < w; ++x, sub[0] += pw, p.inc_x()) + { + bool clipped; + trans=sphtrans(sub,center,radius,percent,type,clipped); + if(clip && clipped) + { + p.put_value(Color::alpha()); + continue; + } + + xs = (trans[0]-rtl[0])*invpw; + ys = (trans[1]-rtl[1])*invph; + + if(!(xs >= 0 && xs < nw && ys >= 0 && ys < nh)) + { + //synfig::warning("Spherize: we failed to account for %f,%f",xs,ys); + p.put_value(context.get_color(trans));//Color::alpha()); + continue; + } + + //sample at that pixel location based on the quality + if(quality <= 4) //cubic + { + p.put_value(background.cubic_sample(xs,ys)); + }else if(quality <= 5) //cosine + { + p.put_value(background.cosine_sample(xs,ys)); + }else if(quality <= 6) //linear + { + p.put_value(background.linear_sample(xs,ys)); + }else //nearest + { + p.put_value(background[round_to_int(ys)][round_to_int(xs)]); + } + } + p.dec_x(w); + } + + return true; +} +#endif + +class synfig::Spherize_Trans : public synfig::Transform +{ + etl::handle layer; +public: + Spherize_Trans(const Layer_SphereDistort* x):Transform(x->get_guid()),layer(x) { } + + synfig::Vector perform(const synfig::Vector& x)const + { + return sphtrans(x,layer->center,layer->radius,-layer->percent,layer->type); + } + + synfig::Vector unperform(const synfig::Vector& x)const + { + return sphtrans(x,layer->center,layer->radius,layer->percent,layer->type); + } +}; + +etl::handle +Layer_SphereDistort::get_transform()const +{ + return new Spherize_Trans(this); +} + +Rect +Layer_SphereDistort::get_bounding_rect()const +{ + Rect bounds(Rect::full_plane()); + switch(type) + { + case TYPE_NORMAL: + bounds=Rect( + center[0]+(radius), + center[1]+(radius), + center[0]-(radius), + center[1]-(radius) + ); + break; + case TYPE_DISTH: + break; + case TYPE_DISTV: + break; + default: + break; + } + + return bounds; +} + diff --git a/synfig-core/tags/stable/src/modules/lyr_std/sphere_distort.h b/synfig-core/tags/stable/src/modules/lyr_std/sphere_distort.h new file mode 100644 index 0000000..aef9993 --- /dev/null +++ b/synfig-core/tags/stable/src/modules/lyr_std/sphere_distort.h @@ -0,0 +1,91 @@ +/* === S Y N F I G ========================================================= */ +/*! \file sphere_distort.h +** \brief Sphere Distort Header +** +** $Id$ +** +** \legal +** Copyright (c) 2002-2005 Robert B. Quattlebaum Jr., Adrian Bentley +** +** This package is free software; you can redistribute it and/or +** modify it under the terms of the GNU General Public License as +** published by the Free Software Foundation; either version 2 of +** the License, or (at your option) any later version. +** +** This package is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +** General Public License for more details. +** \endlegal +*/ +/* ========================================================================= */ + +/* === S T A R T =========================================================== */ + +#ifndef __SYNFIG_SPHERE_DISTORT_H +#define __SYNFIG_SPHERE_DISTORT_H + +/* === H E A D E R S ======================================================= */ + +#include +#include +#include + +/* === M A C R O S ========================================================= */ + +/* === T Y P E D E F S ===================================================== */ + +/* === C L A S S E S & S T R U C T S ======================================= */ +namespace synfig +{ +class Spherize_Trans; + +class Layer_SphereDistort : public Layer_Composite +{ + SYNFIG_LAYER_MODULE_EXT + friend class Spherize_Trans; + +private: + + Vector center; + double radius; + + double percent; + + int type; + +// static Point sphtrans(const Point &xoff, const Point ¢er, const Real &radius, const Real &percent, int type); + +// static double spherify(double xoff); +// static double unspherify(double xoff); + + bool clip; + + synfig::Rect bounds; + + void sync(); + +public: + + Layer_SphereDistort(); + + virtual bool set_param(const String & param, const synfig::ValueBase &value); + + virtual ValueBase get_param(const String & param)const; + + virtual Color get_color(Context context, const Point &pos)const; + + virtual bool accelerated_render(Context context,Surface *surface,int quality, const RendDesc &renddesc, ProgressCallback *cb)const; + synfig::Layer::Handle hit_check(synfig::Context context, const synfig::Point &point)const; + + virtual Rect get_bounding_rect()const; + + virtual Vocab get_param_vocab()const; + virtual etl::handle get_transform()const; +}; // END of class Layer_SphereDistort + +} + +/* === E N D =============================================================== */ + +#endif diff --git a/synfig-core/tags/stable/src/modules/lyr_std/stretch.cpp b/synfig-core/tags/stable/src/modules/lyr_std/stretch.cpp new file mode 100644 index 0000000..a6f4def --- /dev/null +++ b/synfig-core/tags/stable/src/modules/lyr_std/stretch.cpp @@ -0,0 +1,184 @@ +/* === S Y N F I G ========================================================= */ +/*! \file stretch.cpp +** \brief Template Header +** +** $Id$ +** +** \legal +** Copyright (c) 2002-2005 Robert B. Quattlebaum Jr., Adrian Bentley +** Copyright (c) 2007 Chris Moore +** +** This package is free software; you can redistribute it and/or +** modify it under the terms of the GNU General Public License as +** published by the Free Software Foundation; either version 2 of +** the License, or (at your option) any later version. +** +** This package is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +** General Public License for more details. +** \endlegal +*/ +/* ========================================================================= */ + +/* === H E A D E R S ======================================================= */ + +#define SYNFIG_NO_ANGLE + +#ifdef USING_PCH +# include "pch.h" +#else +#ifdef HAVE_CONFIG_H +# include +#endif + +#include "stretch.h" +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#endif + +/* === U S I N G =========================================================== */ + +using namespace etl; +using namespace std; +using namespace synfig; + +/* === G L O B A L S ======================================================= */ + +SYNFIG_LAYER_INIT(Layer_Stretch); +SYNFIG_LAYER_SET_NAME(Layer_Stretch,"stretch"); +SYNFIG_LAYER_SET_LOCAL_NAME(Layer_Stretch,_("Stretch")); +SYNFIG_LAYER_SET_CATEGORY(Layer_Stretch,_("Distortions")); +SYNFIG_LAYER_SET_VERSION(Layer_Stretch,"0.1"); +SYNFIG_LAYER_SET_CVS_ID(Layer_Stretch,"$Id$"); + +/* === P R O C E D U R E S ================================================= */ + +/* === M E T H O D S ======================================================= */ + +/* === E N T R Y P O I N T ================================================= */ + +Layer_Stretch::Layer_Stretch(): + amount(1,1), + center(0,0) +{ +} + + +bool +Layer_Stretch::set_param(const String & param, const ValueBase &value) +{ + IMPORT(amount); + IMPORT(center); + + return false; +} + +ValueBase +Layer_Stretch::get_param(const String ¶m)const +{ + EXPORT(amount); + EXPORT(center); + + EXPORT_NAME(); + EXPORT_VERSION(); + + return ValueBase(); +} + +Layer::Vocab +Layer_Stretch::get_param_vocab()const +{ + Layer::Vocab ret; + + ret.push_back(ParamDesc("amount") + .set_local_name(_("Amount")) + ); + + ret.push_back(ParamDesc("center") + .set_local_name(_("Center")) + ); + + return ret; +} + +synfig::Layer::Handle +Layer_Stretch::hit_check(synfig::Context context, const synfig::Point &pos)const +{ + Point npos(pos); + npos[0]=(npos[0]-center[0])/amount[0]+center[0]; + npos[1]=(npos[1]-center[1])/amount[1]+center[1]; + return context.hit_check(npos); +} + +Color +Layer_Stretch::get_color(Context context, const Point &pos)const +{ + Point npos(pos); + npos[0]=(npos[0]-center[0])/amount[0]+center[0]; + npos[1]=(npos[1]-center[1])/amount[1]+center[1]; + return context.get_color(npos); +} + +class Stretch_Trans : public Transform +{ + etl::handle layer; +public: + Stretch_Trans(const Layer_Stretch* x):Transform(x->get_guid()),layer(x) { } + + synfig::Vector perform(const synfig::Vector& x)const + { + return Vector((x[0]-layer->center[0])*layer->amount[0]+layer->center[0], + (x[1]-layer->center[1])*layer->amount[1]+layer->center[1]); + } + + synfig::Vector unperform(const synfig::Vector& x)const + { + return Vector((x[0]-layer->center[0])/layer->amount[0]+layer->center[0], + (x[1]-layer->center[1])/layer->amount[1]+layer->center[1]); + } +}; +etl::handle +Layer_Stretch::get_transform()const +{ + return new Stretch_Trans(this); +} + +bool +Layer_Stretch::accelerated_render(Context context,Surface *surface,int quality, const RendDesc &renddesc, ProgressCallback *cb)const +{ + RendDesc desc(renddesc); + desc.clear_flags(); + // Adjust the top_left and bottom_right points + // for our zoom amount + Point npos; + npos[0]=(desc.get_tl()[0]-center[0])/amount[0]+center[0]; + npos[1]=(desc.get_tl()[1]-center[1])/amount[1]+center[1]; + desc.set_tl(npos); + npos[0]=(desc.get_br()[0]-center[0])/amount[0]+center[0]; + npos[1]=(desc.get_br()[1]-center[1])/amount[1]+center[1]; + desc.set_br(npos); + + // Render the scene + return context.accelerated_render(surface,quality,desc,cb); +} + +Rect +Layer_Stretch::get_full_bounding_rect(Context context)const +{ + Rect rect(context.get_full_bounding_rect()); + Point min(rect.get_min()), max(rect.get_max()); + + return Rect(Point((min[0]-center[0])*amount[0]+center[0], + (min[1]-center[1])*amount[1]+center[1]), + Point((max[0]-center[0])*amount[0]+center[0], + (max[1]-center[1])*amount[1]+center[1])); +} diff --git a/synfig-core/tags/stable/src/modules/lyr_std/stretch.h b/synfig-core/tags/stable/src/modules/lyr_std/stretch.h new file mode 100644 index 0000000..2b70ecc --- /dev/null +++ b/synfig-core/tags/stable/src/modules/lyr_std/stretch.h @@ -0,0 +1,75 @@ +/* === S Y N F I G ========================================================= */ +/*! \file stretch.h +** \brief Template Header +** +** $Id$ +** +** \legal +** Copyright (c) 2002-2005 Robert B. Quattlebaum Jr., Adrian Bentley +** Copyright (c) 2007 Chris Moore +** +** This package is free software; you can redistribute it and/or +** modify it under the terms of the GNU General Public License as +** published by the Free Software Foundation; either version 2 of +** the License, or (at your option) any later version. +** +** This package is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +** General Public License for more details. +** \endlegal +*/ +/* ========================================================================= */ + +/* === S T A R T =========================================================== */ + +#ifndef __SYNFIG_LAYER_STRETCH_H +#define __SYNFIG_LAYER_STRETCH_H + +/* === H E A D E R S ======================================================= */ + +#include +#include + +/* === M A C R O S ========================================================= */ + +/* === T Y P E D E F S ===================================================== */ + +/* === C L A S S E S & S T R U C T S ======================================= */ + +class Stretch_Trans; +namespace synfig { + +class Layer_Stretch : public Layer +{ + SYNFIG_LAYER_MODULE_EXT + friend class ::Stretch_Trans; + +private: + + Vector amount; + Point center; + +public: + + Layer_Stretch(); + + virtual bool set_param(const String & param, const synfig::ValueBase &value); + + virtual ValueBase get_param(const String & param)const; + + virtual Color get_color(Context context, const Point &pos)const; + + virtual bool accelerated_render(Context context,Surface *surface,int quality, const RendDesc &renddesc, ProgressCallback *cb)const; + synfig::Layer::Handle hit_check(synfig::Context context, const synfig::Point &point)const; + + virtual Vocab get_param_vocab()const; + virtual etl::handle get_transform()const; + virtual synfig::Rect get_full_bounding_rect(Context context)const; +}; // END of class Layer_Stretch + +}; // END of namespace synfig + +/* === E N D =============================================================== */ + +#endif diff --git a/synfig-core/tags/stable/src/modules/lyr_std/supersample.cpp b/synfig-core/tags/stable/src/modules/lyr_std/supersample.cpp new file mode 100644 index 0000000..a666363 --- /dev/null +++ b/synfig-core/tags/stable/src/modules/lyr_std/supersample.cpp @@ -0,0 +1,237 @@ +/* === S Y N F I G ========================================================= */ +/*! \file supersample.cpp +** \brief Template Header +** +** $Id$ +** +** \legal +** Copyright (c) 2002-2005 Robert B. Quattlebaum Jr., Adrian Bentley +** +** This package is free software; you can redistribute it and/or +** modify it under the terms of the GNU General Public License as +** published by the Free Software Foundation; either version 2 of +** the License, or (at your option) any later version. +** +** This package is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +** General Public License for more details. +** \endlegal +** +** === N O T E S =========================================================== +** +** ========================================================================= */ + +/* === H E A D E R S ======================================================= */ + +#ifdef USING_PCH +# include "pch.h" +#else +#ifdef HAVE_CONFIG_H +# include +#endif + +#include "supersample.h" +#include +#include +#include +#include +#include +#include +#include +#include + +#include +#include + +#endif + +/* === M A C R O S ========================================================= */ + +/* === G L O B A L S ======================================================= */ + +SYNFIG_LAYER_INIT(SuperSample); +SYNFIG_LAYER_SET_NAME(SuperSample,"super_sample"); +SYNFIG_LAYER_SET_LOCAL_NAME(SuperSample,_("Super Sample")); +SYNFIG_LAYER_SET_CATEGORY(SuperSample,_("Other")); +SYNFIG_LAYER_SET_VERSION(SuperSample,"0.1"); +SYNFIG_LAYER_SET_CVS_ID(SuperSample,"$Id$"); + +/* === P R O C E D U R E S ================================================= */ + +/* === M E T H O D S ======================================================= */ + +SuperSample::SuperSample():width(2),height(2) +{ + scanline=false; + alpha_aware=true; +} + +bool +SuperSample::set_param(const String & param, const ValueBase &value) +{ + + IMPORT(width); + IMPORT(height); + IMPORT(scanline); + IMPORT(alpha_aware); + + return false; +} + +ValueBase +SuperSample::get_param(const String& param)const +{ + EXPORT(width); + EXPORT(height); + EXPORT(scanline); + EXPORT(alpha_aware); + + EXPORT_NAME(); + EXPORT_VERSION(); + + return ValueBase(); +} + +bool +SuperSample::accelerated_render(Context context,Surface *surface,int quality, const RendDesc &renddesc, ProgressCallback *cb)const +{ + // don't bother supersampling if our quality is too low. + if(quality>=10) + return context.accelerated_render(surface,quality,renddesc,cb); + + RendDesc desc(renddesc); + + SuperCallback subcb(cb,1,9000,10000); + SuperCallback stagetwo(cb,9000,10000,10000); + + desc.clear_flags(); + desc.set_wh(desc.get_w()*width,desc.get_h()*height); + + Surface tempsurface; + + // Render the scene + if(scanline) + { + handle target=surface_target(&tempsurface); + if(!target) + { + if(cb)cb->error(_("Unable to create SurfaceTarget")); + return false; + } + target->set_rend_desc(&desc); + + if(!render(context-1,target,desc,&subcb)) + { + if(cb)cb->error(strprintf(__FILE__"%d: Scanline Renderer Failure",__LINE__)); + return false; + } + } + else + if(!context.accelerated_render(&tempsurface,quality,desc,cb)) + { + //if(cb)cb->error(strprintf(__FILE__"%d: Accelerated Renderer Failure",__LINE__)); + return false; + } + + surface->set_wh(renddesc.get_w(),renddesc.get_h()); + + Surface::pen pen(surface->begin()); + Surface::pen temp_pen(tempsurface.begin()); + + if(cb && !cb->amount_complete(9001,10000)) return false; + + if(alpha_aware) + { + int x,y,u,v; + float sum; + Color pool; + for(y=0;yget_h();y++,pen.inc_y(),pen.dec_x(x),temp_pen.inc_y(height),temp_pen.dec_x(x*width)) + { + for(x=0;xget_w();x++,pen.inc_x(),temp_pen.inc_x(width)) + { + pool=Color(0,0,0,0); + sum=0; + + for(v=0;vget_h())) + return false; + } + } + } + else + { + int x,y,u,v; + Color pool; + float multiplier=1.0f/float(width*height); + for(y=0;yget_h();y++,pen.inc_y(),pen.dec_x(x),temp_pen.inc_y(height),temp_pen.dec_x(x*width)) + { + for(x=0;xget_w();x++,pen.inc_x(),temp_pen.inc_x(width)) + { + pool=Color(0,0,0,0); + for(v=0;vget_h())) + return false; + } + } + } + + if(cb && !cb->amount_complete(10000,10000)) return false; + + return true; +} + +Layer::Vocab +SuperSample::get_param_vocab(void)const +{ + Layer::Vocab ret; + + ret.push_back(ParamDesc("width") + .set_local_name(_("Width")) + .set_description(_("Width of sample area (In pixels)")) + ); + ret.push_back(ParamDesc("height") + .set_local_name(_("Height")) + .set_description(_("Height of sample area (In pixels)")) + ); + ret.push_back(ParamDesc("scanline") + .set_local_name(_("Use Parametric")) + .set_description(_("Use the Parametric Renderer")) + ); + ret.push_back(ParamDesc("alpha_aware") + .set_local_name(_("Be Alpha Safe")) + ); + + return ret; +} + +Rect +SuperSample::get_bounding_rect(Context context)const +{ + return context.get_full_bounding_rect(); +} diff --git a/synfig-core/tags/stable/src/modules/lyr_std/supersample.h b/synfig-core/tags/stable/src/modules/lyr_std/supersample.h new file mode 100644 index 0000000..a636988 --- /dev/null +++ b/synfig-core/tags/stable/src/modules/lyr_std/supersample.h @@ -0,0 +1,66 @@ +/* === S Y N F I G ========================================================= */ +/*! \file supersample.h +** \brief Template Header +** +** $Id$ +** +** \legal +** Copyright (c) 2002-2005 Robert B. Quattlebaum Jr., Adrian Bentley +** +** This package is free software; you can redistribute it and/or +** modify it under the terms of the GNU General Public License as +** published by the Free Software Foundation; either version 2 of +** the License, or (at your option) any later version. +** +** This package is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +** General Public License for more details. +** \endlegal +** +** === N O T E S =========================================================== +** +** ========================================================================= */ + +/* === S T A R T =========================================================== */ + +#ifndef __SYNFIG_SUPERSAMPLE_H +#define __SYNFIG_SUPERSAMPLE_H + +/* === H E A D E R S ======================================================= */ + +#include + +/* === M A C R O S ========================================================= */ + +/* === T Y P E D E F S ===================================================== */ + +/* === C L A S S E S & S T R U C T S ======================================= */ + +using namespace synfig; +using namespace std; +using namespace etl; + +class SuperSample : public synfig::Layer +{ + SYNFIG_LAYER_MODULE_EXT + +private: + int width, height; + bool scanline,alpha_aware; +public: + SuperSample(); + + virtual bool set_param(const String & param, const synfig::ValueBase &value); + + virtual ValueBase get_param(const String & param)const; + + virtual bool accelerated_render(Context context,Surface *surface,int quality, const RendDesc &renddesc, ProgressCallback *cb)const; + virtual synfig::Rect get_bounding_rect(Context context)const; + + virtual Vocab get_param_vocab()const; +}; + +/* === E N D =============================================================== */ + +#endif diff --git a/synfig-core/tags/stable/src/modules/lyr_std/timeloop.cpp b/synfig-core/tags/stable/src/modules/lyr_std/timeloop.cpp new file mode 100644 index 0000000..58b80b3 --- /dev/null +++ b/synfig-core/tags/stable/src/modules/lyr_std/timeloop.cpp @@ -0,0 +1,126 @@ +/* === S Y N F I G ========================================================= */ +/*! \file timeloop.cpp +** \brief Image Layer_TimeLoop Layer Implementation +** +** $Id$ +** +** \legal +** Copyright (c) 2002-2005 Robert B. Quattlebaum Jr., Adrian Bentley +** +** This package is free software; you can redistribute it and/or +** modify it under the terms of the GNU General Public License as +** published by the Free Software Foundation; either version 2 of +** the License, or (at your option) any later version. +** +** This package is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +** General Public License for more details. +** \endlegal +** +** === N O T E S =========================================================== +** +** ========================================================================= */ + +/* === H E A D E R S ======================================================= */ + +#ifdef USING_PCH +# include "pch.h" +#else +#ifdef HAVE_CONFIG_H +# include +#endif + +#include "timeloop.h" +#include +#include +#include +#include +#include + +#endif + +using namespace synfig; +using namespace std; +using namespace etl; + +/* === M A C R O S ========================================================= */ + +/* === G L O B A L S ======================================================= */ + +SYNFIG_LAYER_INIT(Layer_TimeLoop); +SYNFIG_LAYER_SET_NAME(Layer_TimeLoop,"timeloop"); +SYNFIG_LAYER_SET_LOCAL_NAME(Layer_TimeLoop,_("TimeLoop")); +SYNFIG_LAYER_SET_CATEGORY(Layer_TimeLoop,_("Other")); +SYNFIG_LAYER_SET_VERSION(Layer_TimeLoop,"0.1"); +SYNFIG_LAYER_SET_CVS_ID(Layer_TimeLoop,"$Id$"); + +/* === P R O C E D U R E S ================================================= */ + +/* === M E T H O D S ======================================================= */ + +Layer_TimeLoop::Layer_TimeLoop() +{ + start_time=0; + end_time=1; +} + +Layer_TimeLoop::~Layer_TimeLoop() +{ +} + +bool +Layer_TimeLoop::set_param(const String & param, const ValueBase &value) +{ + IMPORT(start_time); + IMPORT(end_time); + return Layer::set_param(param,value); +} + +ValueBase +Layer_TimeLoop::get_param(const String & param)const +{ + EXPORT(start_time); + EXPORT(end_time); + EXPORT_NAME(); + EXPORT_VERSION(); + + return Layer::get_param(param); +} + +Layer::Vocab +Layer_TimeLoop::get_param_vocab()const +{ + Layer::Vocab ret(Layer::get_param_vocab()); + + ret.push_back(ParamDesc("start_time") + .set_local_name(_("Start Time")) + ); + + ret.push_back(ParamDesc("end_time") + .set_local_name(_("End Time")) + ); + + return ret; +} + +void +Layer_TimeLoop::set_time(Context context, Time time)const +{ + Real diff(end_time-start_time); + if(diff>0) + time-=int(Real(time-start_time)/diff)*diff+start_time; + context.set_time(time); +} + +Color +Layer_TimeLoop::get_color(Context context, const Point &pos)const +{ + return context.get_color(pos); +} + +bool +Layer_TimeLoop::accelerated_render(Context context,Surface *surface,int quality, const RendDesc &renddesc, ProgressCallback *cb)const +{ + return context.accelerated_render(surface,quality,renddesc,cb); +} diff --git a/synfig-core/tags/stable/src/modules/lyr_std/timeloop.h b/synfig-core/tags/stable/src/modules/lyr_std/timeloop.h new file mode 100644 index 0000000..ccc6215 --- /dev/null +++ b/synfig-core/tags/stable/src/modules/lyr_std/timeloop.h @@ -0,0 +1,68 @@ +/* === S Y N F I G ========================================================= */ +/*! \file timeloop.h +** \brief Template Header +** +** $Id$ +** +** \legal +** Copyright (c) 2002-2005 Robert B. Quattlebaum Jr., Adrian Bentley +** +** This package is free software; you can redistribute it and/or +** modify it under the terms of the GNU General Public License as +** published by the Free Software Foundation; either version 2 of +** the License, or (at your option) any later version. +** +** This package is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +** General Public License for more details. +** \endlegal +*/ +/* ========================================================================= */ + +/* === S T A R T =========================================================== */ + +#ifndef __SYNFIG_TIMELOOP_H +#define __SYNFIG_TIMELOOP_H + +/* === H E A D E R S ======================================================= */ + +#include +#include +#include +#include + +/* === M A C R O S ========================================================= */ + +/* === T Y P E D E F S ===================================================== */ + +/* === C L A S S E S & S T R U C T S ======================================= */ + +class Layer_TimeLoop : public synfig::Layer +{ + SYNFIG_LAYER_MODULE_EXT + +private: + synfig::Time start_time; + synfig::Time end_time; + +protected: + Layer_TimeLoop(); + +public: + ~Layer_TimeLoop(); + + virtual bool set_param(const synfig::String & param, const synfig::ValueBase &value); + + virtual synfig::ValueBase get_param(const synfig::String & param)const; + + virtual Vocab get_param_vocab()const; + virtual synfig::Color get_color(synfig::Context context, const synfig::Point &pos)const; + + virtual void set_time(synfig::Context context, synfig::Time time)const; + virtual bool accelerated_render(synfig::Context context,synfig::Surface *surface,int quality, const synfig::RendDesc &renddesc, synfig::ProgressCallback *cb)const; +}; + +/* === E N D =============================================================== */ + +#endif diff --git a/synfig-core/tags/stable/src/modules/lyr_std/translate.cpp b/synfig-core/tags/stable/src/modules/lyr_std/translate.cpp new file mode 100644 index 0000000..037bdda --- /dev/null +++ b/synfig-core/tags/stable/src/modules/lyr_std/translate.cpp @@ -0,0 +1,161 @@ +/* === S Y N F I G ========================================================= */ +/*! \file translate.cpp +** \brief Template File +** +** $Id$ +** +** \legal +** Copyright (c) 2002-2005 Robert B. Quattlebaum Jr., Adrian Bentley +** +** This package is free software; you can redistribute it and/or +** modify it under the terms of the GNU General Public License as +** published by the Free Software Foundation; either version 2 of +** the License, or (at your option) any later version. +** +** This package is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +** General Public License for more details. +** \endlegal +** +** === N O T E S =========================================================== +** +** ========================================================================= */ + +/* === H E A D E R S ======================================================= */ + +#ifdef USING_PCH +# include "pch.h" +#else +#ifdef HAVE_CONFIG_H +# include +#endif + +#include "translate.h" +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#endif + +/* === M A C R O S ========================================================= */ + +/* === G L O B A L S ======================================================= */ + +SYNFIG_LAYER_INIT(Translate); +SYNFIG_LAYER_SET_NAME(Translate,"translate"); +SYNFIG_LAYER_SET_LOCAL_NAME(Translate,_("Translate")); +SYNFIG_LAYER_SET_CATEGORY(Translate,_("Transform")); +SYNFIG_LAYER_SET_VERSION(Translate,"0.1"); +SYNFIG_LAYER_SET_CVS_ID(Translate,"$Id$"); + +/* === P R O C E D U R E S ================================================= */ + +/* === M E T H O D S ======================================================= */ + +/* === E N T R Y P O I N T ================================================= */ + +Translate::Translate():origin(0,0) +{ +} + +Translate::~Translate() +{ +} + +bool +Translate::set_param(const String & param, const ValueBase &value) +{ + IMPORT(origin); + + return false; +} + +ValueBase +Translate::get_param(const String& param)const +{ + EXPORT(origin); + EXPORT_NAME(); + EXPORT_VERSION(); + + return ValueBase(); +} + +Layer::Vocab +Translate::get_param_vocab()const +{ + Layer::Vocab ret; + + ret.push_back(ParamDesc("origin") + .set_local_name(_("Origin")) + .set_description(_("Point where you want the origin to be")) + ); + + return ret; +} + +synfig::Layer::Handle +Translate::hit_check(synfig::Context context, const synfig::Point &pos)const +{ + return context.hit_check(pos-origin); +} + +Color +Translate::get_color(Context context, const Point &pos)const +{ + return context.get_color(pos-origin); +} + +class Translate_Trans : public Transform +{ + etl::handle layer; +public: + Translate_Trans(const Translate* x):Transform(x->get_guid()),layer(x) { } + + synfig::Vector perform(const synfig::Vector& x)const + { + return x+layer->origin; + } + + synfig::Vector unperform(const synfig::Vector& x)const + { + return x-layer->origin; + } +}; +etl::handle +Translate::get_transform()const +{ + return new Translate_Trans(this); +} + +bool +Translate::accelerated_render(Context context,Surface *surface,int quality, const RendDesc &renddesc, ProgressCallback *cb)const +{ + RendDesc desc(renddesc); + + desc.clear_flags(); + desc.set_tl(desc.get_tl()-origin); + desc.set_br(desc.get_br()-origin); + + // Render the scene + if(!context.accelerated_render(surface,quality,desc,cb)) + { + if(cb)cb->error(strprintf(__FILE__"%d: Accelerated Renderer Failure",__LINE__)); + return false; + } + + return true; +} + +Rect +Translate::get_full_bounding_rect(Context context)const +{ + return context.get_full_bounding_rect() + origin; +} diff --git a/synfig-core/tags/stable/src/modules/lyr_std/translate.h b/synfig-core/tags/stable/src/modules/lyr_std/translate.h new file mode 100644 index 0000000..3e06d60 --- /dev/null +++ b/synfig-core/tags/stable/src/modules/lyr_std/translate.h @@ -0,0 +1,71 @@ +/* === S Y N F I G ========================================================= */ +/*! \file translate.h +** \brief Template Header +** +** $Id$ +** +** \legal +** Copyright (c) 2002-2005 Robert B. Quattlebaum Jr., Adrian Bentley +** +** This package is free software; you can redistribute it and/or +** modify it under the terms of the GNU General Public License as +** published by the Free Software Foundation; either version 2 of +** the License, or (at your option) any later version. +** +** This package is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +** General Public License for more details. +** \endlegal +** +** === N O T E S =========================================================== +** +** ========================================================================= */ + +/* === S T A R T =========================================================== */ + +#ifndef __SYNFIG_TRANSLATE_H +#define __SYNFIG_TRANSLATE_H + +/* === H E A D E R S ======================================================= */ + +#include +#include +#include + +/* === M A C R O S ========================================================= */ + +/* === T Y P E D E F S ===================================================== */ + +/* === C L A S S E S & S T R U C T S ======================================= */ + +using namespace synfig; +using namespace std; +using namespace etl; + +class Translate_Trans; + +class Translate : public Layer +{ + SYNFIG_LAYER_MODULE_EXT + friend class Translate_Trans; +private: + Vector origin; +public: + Translate(); + ~Translate(); + + virtual bool set_param(const String & param, const synfig::ValueBase &value); + virtual ValueBase get_param(const String & param)const; + virtual Color get_color(Context context, const Point &pos)const; + virtual bool accelerated_render(Context context,Surface *surface,int quality, const RendDesc &renddesc, ProgressCallback *cb)const; + virtual Vocab get_param_vocab()const; + virtual synfig::Rect get_full_bounding_rect(Context context)const; + synfig::Layer::Handle hit_check(synfig::Context context, const synfig::Point &point)const; + virtual etl::handle get_transform()const; + +}; + +/* === E N D =============================================================== */ + +#endif diff --git a/synfig-core/tags/stable/src/modules/lyr_std/twirl.cpp b/synfig-core/tags/stable/src/modules/lyr_std/twirl.cpp new file mode 100644 index 0000000..1c91d0b --- /dev/null +++ b/synfig-core/tags/stable/src/modules/lyr_std/twirl.cpp @@ -0,0 +1,241 @@ +/* === S Y N F I G ========================================================= */ +/*! \file twirl.cpp +** \brief Template Header +** +** $Id$ +** +** \legal +** Copyright (c) 2002-2005 Robert B. Quattlebaum Jr., Adrian Bentley +** +** This package is free software; you can redistribute it and/or +** modify it under the terms of the GNU General Public License as +** published by the Free Software Foundation; either version 2 of +** the License, or (at your option) any later version. +** +** This package is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +** General Public License for more details. +** \endlegal +*/ +/* ========================================================================= */ + +/* === H E A D E R S ======================================================= */ + +#ifdef USING_PCH +# include "pch.h" +#else +#ifdef HAVE_CONFIG_H +# include +#endif + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include "twirl.h" + +#endif + +/* === U S I N G =========================================================== */ + +using namespace etl; +using namespace std; +using namespace synfig; + +/* === G L O B A L S ======================================================= */ + +SYNFIG_LAYER_INIT(Twirl); +SYNFIG_LAYER_SET_NAME(Twirl,"twirl"); +SYNFIG_LAYER_SET_LOCAL_NAME(Twirl,_("Twirl")); +SYNFIG_LAYER_SET_CATEGORY(Twirl,_("Distortions")); +SYNFIG_LAYER_SET_VERSION(Twirl,"0.1"); +SYNFIG_LAYER_SET_CVS_ID(Twirl,"$Id$"); + +/* === P R O C E D U R E S ================================================= */ + +/* === M E T H O D S ======================================================= */ + +/* === E N T R Y P O I N T ================================================= */ + +Twirl::Twirl(): + Layer_Composite(1.0,Color::BLEND_STRAIGHT), + center(0,0), + radius(1.0), + rotations(Angle::zero()), + distort_inside(true), + distort_outside(false) +{ +} + +bool +Twirl::set_param(const String & param, const ValueBase &value) +{ + IMPORT(center); + IMPORT(radius); + IMPORT(rotations); + IMPORT(distort_inside); + IMPORT(distort_outside); + + return Layer_Composite::set_param(param,value); +} + +ValueBase +Twirl::get_param(const String ¶m)const +{ + EXPORT(center); + EXPORT(radius); + EXPORT(rotations); + EXPORT(distort_inside); + EXPORT(distort_outside); + + EXPORT_NAME(); + EXPORT_VERSION(); + + return false; +} + +Layer::Vocab +Twirl::get_param_vocab()const +{ + Layer::Vocab ret; + + ret.push_back(ParamDesc("center") + .set_local_name(_("Center")) + ); + + ret.push_back(ParamDesc("radius") + .set_local_name(_("Radius")) + .set_description(_("This is the radius of the circle")) + .set_is_distance() + .set_origin("center") + ); + + ret.push_back(ParamDesc("rotations") + .set_local_name(_("Rotations")) + .set_origin("center") + ); + + ret.push_back(ParamDesc("distort_inside") + .set_local_name(_("Distort Inside")) + ); + + ret.push_back(ParamDesc("distort_outside") + .set_local_name(_("Distort Outside")) + ); + + return ret; +} + +synfig::Point +Twirl::distort(const synfig::Point &pos,bool reverse)const +{ + Point centered(pos-center); + Real mag(centered.mag()); + + Angle a; + + if((distort_inside || mag>radius) && (distort_outside || mag layer; +public: + Twirl_Trans(const Twirl* x):Transform(x->get_guid()),layer(x) { } + + synfig::Vector perform(const synfig::Vector& x)const + { + return layer->distort(x,true); + } + + synfig::Vector unperform(const synfig::Vector& x)const + { + return layer->distort(x,false); + } +}; +etl::handle +Twirl::get_transform()const +{ + return new Twirl_Trans(this); +} + +/* +bool +Twirl::accelerated_render(Context context,Surface *surface,int quality, const RendDesc &renddesc, ProgressCallback *cb)const +{ + SuperCallback supercb(cb,0,9500,10000); + + if(get_amount()==1.0 && get_blend_method()==Color::BLEND_STRAIGHT) + { + surface->set_wh(renddesc.get_w(),renddesc.get_h()); + } + else + { + if(!context.accelerated_render(surface,quality,renddesc,&supercb)) + return false; + if(get_amount()==0) + return true; + } + + + int x,y; + + Surface::pen pen(surface->begin()); + const Real pw(renddesc.get_pw()),ph(renddesc.get_ph()); + Point pos; + Point tl(renddesc.get_tl()); + const int w(surface->get_w()); + const int h(surface->get_h()); + + if(get_amount()==1.0 && get_blend_method()==Color::BLEND_STRAIGHT) + { + for(y=0,pos[1]=tl[1];yamount_complete(10000,10000)) + return false; + + return true; +} +*/ diff --git a/synfig-core/tags/stable/src/modules/lyr_std/twirl.h b/synfig-core/tags/stable/src/modules/lyr_std/twirl.h new file mode 100644 index 0000000..e759099 --- /dev/null +++ b/synfig-core/tags/stable/src/modules/lyr_std/twirl.h @@ -0,0 +1,82 @@ +/* === S Y N F I G ========================================================= */ +/*! \file twirl.h +** \brief Template Header +** +** $Id$ +** +** \legal +** Copyright (c) 2002-2005 Robert B. Quattlebaum Jr., Adrian Bentley +** +** This package is free software; you can redistribute it and/or +** modify it under the terms of the GNU General Public License as +** published by the Free Software Foundation; either version 2 of +** the License, or (at your option) any later version. +** +** This package is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +** General Public License for more details. +** \endlegal +*/ +/* ========================================================================= */ + +/* === S T A R T =========================================================== */ + +#ifndef __SYNFIG_TWIRL_H +#define __SYNFIG_TWIRL_H + +/* === H E A D E R S ======================================================= */ + +#include +#include +#include +#include +#include +#include + +/* === M A C R O S ========================================================= */ + +/* === T Y P E D E F S ===================================================== */ + +/* === C L A S S E S & S T R U C T S ======================================= */ +class Twirl_Trans; + +class Twirl : public synfig::Layer_Composite +{ + SYNFIG_LAYER_MODULE_EXT + friend class Twirl_Trans; + +private: + + synfig::Point center; + + synfig::Real radius; + + synfig::Angle rotations; + + bool distort_inside; + + bool distort_outside; + + synfig::Point distort(const synfig::Point &pos, bool reverse=false)const; +public: + + Twirl(); + + virtual bool set_param(const synfig::String & param, const synfig::ValueBase &value); + + virtual synfig::ValueBase get_param(const synfig::String & param)const; + + virtual synfig::Color get_color(synfig::Context context, const synfig::Point &pos)const; + + //virtual bool accelerated_render(synfig::Context context,synfig::Surface *surface,int quality, const synfig::RendDesc &renddesc, synfig::ProgressCallback *cb)const; + + synfig::Layer::Handle hit_check(synfig::Context context, const synfig::Point &point)const; + + virtual Vocab get_param_vocab()const; + virtual etl::handle get_transform()const; +}; // END of class Twirl + +/* === E N D =============================================================== */ + +#endif diff --git a/synfig-core/tags/stable/src/modules/lyr_std/unlyr_std.nsh b/synfig-core/tags/stable/src/modules/lyr_std/unlyr_std.nsh new file mode 100644 index 0000000..b8b5c04 --- /dev/null +++ b/synfig-core/tags/stable/src/modules/lyr_std/unlyr_std.nsh @@ -0,0 +1,8 @@ +Section "un.lyr_std" + Delete "$INSTDIR\lib\synfig\modules\lyr_std.dll" + RMDir "$INSTDIR\lib\synfig\modules" + RMDir "$INSTDIR\lib\synfig" + RMDir "$INSTDIR\lib" + RMDir "$INSTDIR" +SectionEnd + diff --git a/synfig-core/tags/stable/src/modules/lyr_std/warp.cpp b/synfig-core/tags/stable/src/modules/lyr_std/warp.cpp new file mode 100644 index 0000000..f3767ae --- /dev/null +++ b/synfig-core/tags/stable/src/modules/lyr_std/warp.cpp @@ -0,0 +1,844 @@ +/* === S Y N F I G ========================================================= */ +/*! \file warp.cpp +** \brief Template File +** +** $Id$ +** +** \legal +** Copyright (c) 2002-2005 Robert B. Quattlebaum Jr., Adrian Bentley +** +** This package is free software; you can redistribute it and/or +** modify it under the terms of the GNU General Public License as +** published by the Free Software Foundation; either version 2 of +** the License, or (at your option) any later version. +** +** This package is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +** General Public License for more details. +** \endlegal +** +** === N O T E S =========================================================== +** +** ========================================================================= */ + +/* === H E A D E R S ======================================================= */ + +#ifdef USING_PCH +# include "pch.h" +#else +#ifdef HAVE_CONFIG_H +# include +#endif + +#include "warp.h" +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#endif + +/* === M A C R O S ========================================================= */ + +/* === G L O B A L S ======================================================= */ + +SYNFIG_LAYER_INIT(Warp); +SYNFIG_LAYER_SET_NAME(Warp,"warp"); +SYNFIG_LAYER_SET_LOCAL_NAME(Warp,_("Warp")); +SYNFIG_LAYER_SET_CATEGORY(Warp,_("Distortions")); +SYNFIG_LAYER_SET_VERSION(Warp,"0.1"); +SYNFIG_LAYER_SET_CVS_ID(Warp,"$Id$"); + +/* === P R O C E D U R E S ================================================= */ + +/* === M E T H O D S ======================================================= */ + +/* === E N T R Y P O I N T ================================================= */ + +Warp::Warp(): + src_tl (-2,2), + src_br (2,-2), + dest_tl (-1.8,2.1), + dest_tr (1.8,2.1), + dest_bl (-2.2,-2), + dest_br (2.2,-2), + clip (true) +{ + sync(); + horizon=4; +} + +Warp::~Warp() +{ +} + +inline Point +Warp::transform_forward(const Point& p)const +{ + return Point( + (inv_matrix[0][0]*p[0] + inv_matrix[0][1]*p[1] + inv_matrix[0][2])/(inv_matrix[2][0]*p[0] + inv_matrix[2][1]*p[1] + inv_matrix[2][2]), + (inv_matrix[1][0]*p[0] + inv_matrix[1][1]*p[1] + inv_matrix[1][2])/(inv_matrix[2][0]*p[0] + inv_matrix[2][1]*p[1] + inv_matrix[2][2]) + ); +} + +inline Point +Warp::transform_backward(const Point& p)const +{ + return Point( + (matrix[0][0]*p[0] + matrix[0][1]*p[1] + matrix[0][2])/(matrix[2][0]*p[0] + matrix[2][1]*p[1] + matrix[2][2]), + (matrix[1][0]*p[0] + matrix[1][1]*p[1] + matrix[1][2])/(matrix[2][0]*p[0] + matrix[2][1]*p[1] + matrix[2][2]) + ); +} + +inline Real +Warp::transform_forward_z(const Point& p)const +{ + return inv_matrix[2][0]*p[0] + inv_matrix[2][1]*p[1] + inv_matrix[2][2]; +} + +inline Real +Warp::transform_backward_z(const Point& p)const +{ + return matrix[2][0]*p[0] + matrix[2][1]*p[1] + matrix[2][2]; +} + +/* +#define transform_forward(p) Point( \ + cache_a*p[0] + cache_b*p[1] + cache_c*p[0]*p[1] + cache_d, \ + cache_e*p[0] + cache_f*p[1] + cache_i*p[0]*p[1] + cache_j ) + +#define transform_backward(p) Point( \ + cache_a*p[0] + cache_b*p[1] + cache_c*p[0]*p[1] + cache_d, \ + cache_e*p[0] + cache_f*p[1] + cache_i*p[0]*p[1] + cache_j ) +*/ + +#define triangle_area(a,b,c) (0.5*(-b[0]*a[1]+c[0]*a[1]+a[0]*b[1]-c[0]*b[1]-a[0]*c[1]+b[0]*c[1])) +#define quad_area(a,b,c,d) (triangle_area(a,b,c)+triangle_area(a,c,d)) + +Real mat3_determinant(Real matrix[3][3]) +{ + Real ret; + + ret = (matrix[0][0] * + (matrix[1][1] * matrix[2][2] - + matrix[1][2] * matrix[2][1])); + ret -= (matrix[1][0] * + (matrix[0][1] * matrix[2][2] - + matrix[0][2] * matrix[2][1])); + ret += (matrix[2][0] * + (matrix[0][1] * matrix[1][2] - + matrix[0][2] * matrix[1][1])); + +return ret; +} + +void mat3_invert(Real in[3][3], Real out[3][3]) +{ + Real det(mat3_determinant(in)); + + if (det == 0.0) + return; + + det = 1.0 / det; + + out[0][0] = (in[1][1] * in[2][2] - + in[1][2] * in[2][1]) * det; + + out[1][0] = - (in[1][0] * in[2][2] - + in[1][2] * in[2][0]) * det; + + out[2][0] = (in[1][0] * in[2][1] - + in[1][1] * in[2][0]) * det; + + out[0][1] = - (in[0][1] * in[2][2] - + in[0][2] * in[2][1]) * det; + + out[1][1] = (in[0][0] * in[2][2] - + in[0][2] * in[2][0]) * det; + + out[2][1] = - (in[0][0] * in[2][1] - + in[0][1] * in[2][0]) * det; + + out[0][2] = (in[0][1] * in[1][2] - + in[0][2] * in[1][1]) * det; + + out[1][2] = - (in[0][0] * in[1][2] - + in[0][2] * in[1][0]) * det; + + out[2][2] = (in[0][0] * in[1][1] - + in[0][1] * in[1][0]) * det; + +} + +void +Warp::sync() +{ +/* cache_a=(-dest_tl[0]+dest_tr[0])/(src_br[1]-src_tl[1]); + cache_b=(-dest_tl[0]+dest_bl[0])/(src_br[0]-src_tl[0]); + cache_c=(dest_tl[0]-dest_tr[0]+dest_br[0]-dest_bl[0])/((src_br[1]-src_tl[1])*(src_br[0]-src_tl[0])); + cache_d=dest_tl[0]; + + cache_e=(-dest_tl[1]+dest_tr[1])/(src_br[0]-src_tl[0]); + cache_f=(-dest_tl[1]+dest_bl[1])/(src_br[1]-src_tl[1]); + cache_i=(dest_tl[1]-dest_tr[1]+dest_br[1]-dest_bl[1])/((src_br[1]-src_tl[1])*(src_br[0]-src_tl[0])); + cache_j=dest_tl[1]; +*/ + +/* matrix[2][0]=(dest_tl[0]-dest_tr[0]+dest_br[0]-dest_bl[0])/((src_br[1]-src_tl[1])*(src_br[0]-src_tl[0])); + matrix[2][1]=(dest_tl[1]-dest_tr[1]+dest_br[1]-dest_bl[1])/((src_br[1]-src_tl[1])*(src_br[0]-src_tl[0])); + matrix[2][2]=quad_area(dest_tl,dest_tr,dest_br,dest_bl)/((src_br[1]-src_tl[1])*(src_br[0]-src_tl[0])); + + matrix[0][0]=-(-dest_tl[1]+dest_tr[1])/(src_br[0]-src_tl[0]); + matrix[0][1]=-(-dest_tl[1]+dest_bl[1])/(src_br[1]-src_tl[1]); + + matrix[1][0]=-(-dest_tl[0]+dest_tr[0])/(src_br[1]-src_tl[1]); + matrix[1][1]=-(-dest_tl[0]+dest_bl[0])/(src_br[0]-src_tl[0]); + + matrix[0][2]=matrix[0][0]*dest_tl[0] + matrix[0][1]*dest_tl[1]; + matrix[1][2]=matrix[1][0]*dest_tl[0] + matrix[1][1]*dest_tl[1]; +*/ + +#define matrix tmp + Real tmp[3][3]; + + const Real& x1(min(src_br[0],src_tl[0])); + const Real& y1(min(src_br[1],src_tl[1])); + const Real& x2(max(src_br[0],src_tl[0])); + const Real& y2(max(src_br[1],src_tl[1])); + + Real tx1(dest_bl[0]); + Real ty1(dest_bl[1]); + Real tx2(dest_br[0]); + Real ty2(dest_br[1]); + Real tx3(dest_tl[0]); + Real ty3(dest_tl[1]); + Real tx4(dest_tr[0]); + Real ty4(dest_tr[1]); + + if(src_br[0]src_tl[1]) + swap(tx3,tx1),swap(ty3,ty1),swap(tx4,tx2),swap(ty4,ty2); + + Real scalex; + Real scaley; + + scalex = scaley = 1.0; + + if ((x2 - x1) > 0) + scalex = 1.0 / (Real) (x2 - x1); + + if ((y2 - y1) > 0) + scaley = 1.0 / (Real) (y2 - y1); + + /* Determine the perspective transform that maps from + * the unit cube to the transformed coordinates + */ + { + Real dx1, dx2, dx3, dy1, dy2, dy3; + + dx1 = tx2 - tx4; + dx2 = tx3 - tx4; + dx3 = tx1 - tx2 + tx4 - tx3; + + dy1 = ty2 - ty4; + dy2 = ty3 - ty4; + dy3 = ty1 - ty2 + ty4 - ty3; + + /* Is the mapping affine? */ + if ((dx3 == 0.0) && (dy3 == 0.0)) + { + matrix[0][0] = tx2 - tx1; + matrix[0][1] = tx4 - tx2; + matrix[0][2] = tx1; + matrix[1][0] = ty2 - ty1; + matrix[1][1] = ty4 - ty2; + matrix[1][2] = ty1; + matrix[2][0] = 0.0; + matrix[2][1] = 0.0; + } + else + { + Real det1, det2; + + det1 = dx3 * dy2 - dy3 * dx2; + det2 = dx1 * dy2 - dy1 * dx2; + + if (det1 == 0.0 && det2 == 0.0) + matrix[2][0] = 1.0; + else + matrix[2][0] = det1 / det2; + + det1 = dx1 * dy3 - dy1 * dx3; + + if (det1 == 0.0 && det2 == 0.0) + matrix[2][1] = 1.0; + else + matrix[2][1] = det1 / det2; + + matrix[0][0] = tx2 - tx1 + matrix[2][0] * tx2; + matrix[0][1] = tx3 - tx1 + matrix[2][1] * tx3; + matrix[0][2] = tx1; + + matrix[1][0] = ty2 - ty1 + matrix[2][0] * ty2; + matrix[1][1] = ty3 - ty1 + matrix[2][1] * ty3; + matrix[1][2] = ty1; + } + + matrix[2][2] = 1.0; + } +#undef matrix + + Real scaletrans[3][3]={ + { scalex, 0, -x1*scalex }, + { 0, scaley, -y1*scaley }, + { 0, 0, 1 } + }; + + Real t1,t2,t3; + + for (int i = 0; i < 3; i++) + { + t1 = tmp[i][0]; + t2 = tmp[i][1]; + t3 = tmp[i][2]; + + for (int j = 0; j < 3; j++) + { + matrix[i][j] = t1 * scaletrans[0][j]; + matrix[i][j] += t2 * scaletrans[1][j]; + matrix[i][j] += t3 * scaletrans[2][j]; + } + } + + mat3_invert(matrix, inv_matrix); +/* + gimp_matrix3_identity (result); + gimp_matrix3_translate (result, -x1, -y1); + gimp_matrix3_scale (result, scalex, scaley); + gimp_matrix3_mult (&matrix, result); +*/ +} + +bool +Warp::set_param(const String & param, const ValueBase &value) +{ + IMPORT_PLUS(src_tl,sync()); + IMPORT_PLUS(src_br,sync()); + IMPORT_PLUS(dest_tl,sync()); + IMPORT_PLUS(dest_tr,sync()); + IMPORT_PLUS(dest_bl,sync()); + IMPORT_PLUS(dest_br,sync()); + IMPORT(clip); + IMPORT(horizon); + + return false; +} + +ValueBase +Warp::get_param(const String ¶m)const +{ + EXPORT(src_tl); + EXPORT(src_br); + EXPORT(dest_tl); + EXPORT(dest_tr); + EXPORT(dest_bl); + EXPORT(dest_br); + EXPORT(clip); + EXPORT(horizon); + + EXPORT_NAME(); + EXPORT_VERSION(); + + return ValueBase(); +} + +Layer::Vocab +Warp::get_param_vocab()const +{ + Layer::Vocab ret; + + ret.push_back(ParamDesc("src_tl") + .set_local_name(_("Source TL")) + .set_box("src_br") + ); + + ret.push_back(ParamDesc("src_br") + .set_local_name(_("Source BR")) + ); + + ret.push_back(ParamDesc("dest_tl") + .set_local_name(_("Dest TL")) + .set_connect("dest_tr") + ); + + ret.push_back(ParamDesc("dest_tr") + .set_local_name(_("Dest TR")) + .set_connect("dest_br") + ); + + ret.push_back(ParamDesc("dest_br") + .set_local_name(_("Dest BR")) + .set_connect("dest_bl") + ); + + ret.push_back(ParamDesc("dest_bl") + .set_local_name(_("Dest BL")) + .set_connect("dest_tl") + ); + + ret.push_back(ParamDesc("clip") + .set_local_name(_("Clip")) + ); + + ret.push_back(ParamDesc("horizon") + .set_local_name(_("Horizon")) + ); + + return ret; +} + + +class Warp_Trans : public Transform +{ + etl::handle layer; +public: + Warp_Trans(const Warp* x):Transform(x->get_guid()),layer(x) { } + + synfig::Vector perform(const synfig::Vector& x)const + { + return layer->transform_backward(x); + //Point pos(x-layer->origin); + //return Point(layer->cos_val*pos[0]-layer->sin_val*pos[1],layer->sin_val*pos[0]+layer->cos_val*pos[1])+layer->origin; + } + + synfig::Vector unperform(const synfig::Vector& x)const + { + + return layer->transform_forward(x); + //Point pos(x-layer->origin); + //return Point(layer->cos_val*pos[0]+layer->sin_val*pos[1],-layer->sin_val*pos[0]+layer->cos_val*pos[1])+layer->origin; + } +}; +etl::handle +Warp::get_transform()const +{ + return new Warp_Trans(this); +} + +synfig::Layer::Handle +Warp::hit_check(synfig::Context context, const synfig::Point &p)const +{ + Point newpos(transform_forward(p)); + + if(clip) + { + Rect rect(src_tl,src_br); + if(!rect.is_inside(newpos)) + return 0; + } + + return context.hit_check(newpos); +} + +Color +Warp::get_color(Context context, const Point &p)const +{ + Point newpos(transform_forward(p)); + + if(clip) + { + Rect rect(src_tl,src_br); + if(!rect.is_inside(newpos)) + return Color::alpha(); + } + + const float z(transform_backward_z(newpos)); + if(z>0 && zamount_complete(0,10000)) + return false; + + Point tl(renddesc.get_tl()); + Point br(renddesc.get_br()); + + Rect bounding_rect; + + Rect render_rect(tl,br); + Rect clip_rect(Rect::full_plane()); + Rect dest_rect(dest_tl,dest_br); dest_rect.expand(dest_tr).expand(dest_bl); + + Real zoom_factor(1.0); + + // Quick exclusion clip, if necessary + if(clip && !intersect(render_rect,dest_rect)) + { + surface->set_wh(renddesc.get_w(),renddesc.get_h()); + surface->clear(); + return true; + } + + { + Rect other(render_rect); + if(clip) + other&=dest_rect; + + Point min(other.get_min()); + Point max(other.get_max()); + + bool init_point_set=false; + + // Point trans_point[4]; + Point p; + // Real trans_z[4]; + Real z,minz(10000000000000.0f),maxz(0); + + //! \todo checking the 4 corners for 0<=z0 && z0 && z0 && z0 && zset_wh(renddesc.get_w(),renddesc.get_h()); + surface->clear(); + return true; + } + zoom_factor=(1+(maxz-minz)); + + } + +#ifdef ACCEL_WARP_IS_BROKEN + return Layer::accelerated_render(context,surface,quality,renddesc, cb); +#else + + /*swap(tl[1],br[1]); + bounding_rect + .expand(transform_forward(tl)) + .expand(transform_forward(br)) + ; + swap(tl[1],br[1]);*/ + + //synfig::warning("given window: [%f,%f]-[%f,%f] %dx%d",tl[0],tl[1],br[0],br[1],renddesc.get_w(),renddesc.get_h()); + //synfig::warning("Projected: [%f,%f]-[%f,%f]",bounding_rect.get_min()[0],bounding_rect.get_min()[1],bounding_rect.get_max()[0],bounding_rect.get_max()[1]); + + // If we are clipping, then go ahead and clip to the + // source rectangle + if(clip) + clip_rect&=Rect(src_tl,src_br); + + // Bound ourselves to the bounding rectangle of + // what is under us + clip_rect&=context.get_full_bounding_rect();//.expand_x(abs(zoom_factor/pw)).expand_y(abs(zoom_factor/ph)); + + bounding_rect&=clip_rect; + + Point min_point(bounding_rect.get_min()); + Point max_point(bounding_rect.get_max()); + + + if(tl[0]>br[0]) + { + tl[0]=max_point[0]; + br[0]=min_point[0]; + } + else + { + br[0]=max_point[0]; + tl[0]=min_point[0]; + } + if(tl[1]>br[1]) + { + tl[1]=max_point[1]; + br[1]=min_point[1]; + } + else + { + br[1]=max_point[1]; + tl[1]=min_point[1]; + } + + + + const int tmp_d(max(renddesc.get_w(),renddesc.get_h())); + Real src_pw=(tmp_d*zoom_factor)/(br[0]-tl[0]); + Real src_ph=(tmp_d*zoom_factor)/(br[1]-tl[1]); + + + RendDesc desc(renddesc); + desc.clear_flags(); + //desc.set_flags(RendDesc::PX_ASPECT); + desc.set_tl(tl); + desc.set_br(br); + desc.set_wh(ceil_to_int(src_pw*(br[0]-tl[0])),ceil_to_int(src_ph*(br[1]-tl[1]))); + + //synfig::warning("surface to render: [%f,%f]-[%f,%f] %dx%d",desc.get_tl()[0],desc.get_tl()[1],desc.get_br()[0],desc.get_br()[1],desc.get_w(),desc.get_h()); + if(desc.get_w()==0 && desc.get_h()==0) + { + surface->set_wh(renddesc.get_w(),renddesc.get_h()); + surface->clear(); + return true; + } + + // Recalculate the pixel widths for the src renddesc + src_pw=(desc.get_w())/(desc.get_br()[0]-desc.get_tl()[0]); + src_ph=(desc.get_h())/(desc.get_br()[1]-desc.get_tl()[1]); + + + Surface source; + source.set_wh(desc.get_w(),desc.get_h()); + + if(!context.accelerated_render(&source,quality,desc,&stageone)) + return false; + + surface->set_wh(renddesc.get_w(),renddesc.get_h()); + surface->clear(); + + Surface::pen pen(surface->begin()); + + if(quality<=4) + { + // CUBIC + int x,y; + float u,v; + Point point,tmp; + for(y=0,point[1]=renddesc.get_tl()[1];yget_h();y++,pen.inc_y(),pen.dec_x(x),point[1]+=1.0/ph) + { + for(x=0,point[0]=renddesc.get_tl()[0];xget_w();x++,pen.inc_x(),point[0]+=1.0/pw) + { + tmp=transform_forward(point); + const float z(transform_backward_z(tmp)); + if(!clip_rect.is_inside(tmp) || !(z>0 && z=source.get_w() || v>=source.get_h() || isnan(u) || isnan(v)) + (*surface)[y][x]=context.get_color(tmp); + else + (*surface)[y][x]=source.cubic_sample(u,v); + } + if(y&31==0 && cb) + { + if(!stagetwo.amount_complete(y,surface->get_h())) + return false; + } + } + } + else + if(quality<=6) + { + // INTERPOLATION_LINEAR + int x,y; + float u,v; + Point point,tmp; + for(y=0,point[1]=renddesc.get_tl()[1];yget_h();y++,pen.inc_y(),pen.dec_x(x),point[1]+=1.0/ph) + { + for(x=0,point[0]=renddesc.get_tl()[0];xget_w();x++,pen.inc_x(),point[0]+=1.0/pw) + { + tmp=transform_forward(point); + const float z(transform_backward_z(tmp)); + if(!clip_rect.is_inside(tmp) || !(z>0 && z=source.get_w() || v>=source.get_h() || isnan(u) || isnan(v)) + (*surface)[y][x]=context.get_color(tmp); + else + (*surface)[y][x]=source.linear_sample(u,v); + } + if(y&31==0 && cb) + { + if(!stagetwo.amount_complete(y,surface->get_h())) + return false; + } + } + } + else + { + // NEAREST_NEIGHBOR + int x,y; + float u,v; + Point point,tmp; + for(y=0,point[1]=renddesc.get_tl()[1];yget_h();y++,pen.inc_y(),pen.dec_x(x),point[1]+=1.0/ph) + { + for(x=0,point[0]=renddesc.get_tl()[0];xget_w();x++,pen.inc_x(),point[0]+=1.0/pw) + { + tmp=transform_forward(point); + const float z(transform_backward_z(tmp)); + if(!clip_rect.is_inside(tmp) || !(z>0 && z=source.get_w() || v>=source.get_h() || isnan(u) || isnan(v)) + (*surface)[y][x]=context.get_color(tmp); + else + //pen.set_value(source[v][u]); + (*surface)[y][x]=source[floor_to_int(v)][floor_to_int(u)]; + } + if(y&31==0 && cb) + { + if(!stagetwo.amount_complete(y,surface->get_h())) + return false; + } + } + } + +#endif + + if(cb && !cb->amount_complete(10000,10000)) return false; + + return true; +} + +synfig::Rect +Warp::get_bounding_rect()const +{ + return Rect::full_plane(); +} + +synfig::Rect +Warp::get_full_bounding_rect(Context context)const +{ +// return Rect::full_plane(); + + Rect under(context.get_full_bounding_rect()); + + if(clip) + { + under&=Rect(src_tl,src_br); + } + + return get_transform()->perform(under); + + /* + Rect under(context.get_full_bounding_rect()); + Rect ret(Rect::zero()); + + if(under.area()==HUGE_VAL) + return Rect::full_plane(); + + ret.expand( + transform_backward( + under.get_min() + ) + ); + ret.expand( + transform_backward( + under.get_max() + ) + ); + ret.expand( + transform_backward( + Vector( + under.get_min()[0], + under.get_max()[1] + ) + ) + ); + ret.expand( + transform_backward( + Vector( + under.get_max()[0], + under.get_min()[1] + ) + ) + ); + + if(ret.area()==HUGE_VAL) + return Rect::full_plane(); + + return ret; + */ +} diff --git a/synfig-core/tags/stable/src/modules/lyr_std/warp.h b/synfig-core/tags/stable/src/modules/lyr_std/warp.h new file mode 100644 index 0000000..c0b6e83 --- /dev/null +++ b/synfig-core/tags/stable/src/modules/lyr_std/warp.h @@ -0,0 +1,91 @@ +/* === S Y N F I G ========================================================= */ +/*! \file warp.h +** \brief Template Header +** +** $Id$ +** +** \legal +** Copyright (c) 2002-2005 Robert B. Quattlebaum Jr., Adrian Bentley +** +** This package is free software; you can redistribute it and/or +** modify it under the terms of the GNU General Public License as +** published by the Free Software Foundation; either version 2 of +** the License, or (at your option) any later version. +** +** This package is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +** General Public License for more details. +** \endlegal +** +** === N O T E S =========================================================== +** +** ========================================================================= */ + +/* === S T A R T =========================================================== */ + +#ifndef __SYNFIG_WARP_H +#define __SYNFIG_WARP_H + +/* === H E A D E R S ======================================================= */ + +#include +#include +#include +#include + +/* === M A C R O S ========================================================= */ + +/* === T Y P E D E F S ===================================================== */ + +/* === C L A S S E S & S T R U C T S ======================================= */ + +using namespace synfig; +using namespace std; +using namespace etl; +class Warp_Trans; + +class Warp : public Layer +{ + SYNFIG_LAYER_MODULE_EXT + friend class Warp_Trans; +private: + + Point src_tl,src_br,dest_tl,dest_tr,dest_bl,dest_br; + + Real horizon; + + Real cache_a,cache_b,cache_c,cache_d,cache_e,cache_f,cache_i,cache_j; + + Real matrix[3][3]; + Real inv_matrix[3][3]; + + Point transform_forward(const Point& p)const; + Point transform_backward(const Point& p)const; + + Real transform_forward_z(const Point& p)const; + Real transform_backward_z(const Point& p)const; + + bool clip; + +public: + void sync(); + + Warp(); + ~Warp(); + + virtual synfig::Rect get_full_bounding_rect(synfig::Context context)const; + virtual synfig::Rect get_bounding_rect()const; + + virtual bool set_param(const synfig::String & param, const synfig::ValueBase &value); + virtual ValueBase get_param(const synfig::String & param)const; + virtual Color get_color(Context context, const Point &pos)const; + virtual bool accelerated_render(Context context,Surface *surface,int quality, const RendDesc &renddesc, ProgressCallback *cb)const; + synfig::Layer::Handle hit_check(synfig::Context context, const synfig::Point &point)const; + virtual Vocab get_param_vocab()const; + virtual etl::handle get_transform()const; +}; + +/* === E N D =============================================================== */ + +#endif diff --git a/synfig-core/tags/stable/src/modules/lyr_std/xorpattern.cpp b/synfig-core/tags/stable/src/modules/lyr_std/xorpattern.cpp new file mode 100644 index 0000000..aaf3a9f --- /dev/null +++ b/synfig-core/tags/stable/src/modules/lyr_std/xorpattern.cpp @@ -0,0 +1,113 @@ +/* === S Y N F I G ========================================================= */ +/*! \file xorpattern.cpp +** \brief Template Header +** +** $Id$ +** +** \legal +** Copyright (c) 2002-2005 Robert B. Quattlebaum Jr., Adrian Bentley +** +** This package is free software; you can redistribute it and/or +** modify it under the terms of the GNU General Public License as +** published by the Free Software Foundation; either version 2 of +** the License, or (at your option) any later version. +** +** This package is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +** General Public License for more details. +** \endlegal +** +** === N O T E S =========================================================== +** +** ========================================================================= */ + +/* === H E A D E R S ======================================================= */ + +#ifdef USING_PCH +# include "pch.h" +#else +#ifdef HAVE_CONFIG_H +# include +#endif + +#include "xorpattern.h" + +#include +#include +#include +#include +#include +#include +#include +#include + +#endif + +/* === M A C R O S ========================================================= */ + +/* === G L O B A L S ======================================================= */ + +SYNFIG_LAYER_INIT(XORPattern); +SYNFIG_LAYER_SET_NAME(XORPattern,"XORPattern"); +SYNFIG_LAYER_SET_LOCAL_NAME(XORPattern,_("XOR Pattern")); +SYNFIG_LAYER_SET_CATEGORY(XORPattern,_("Other")); +SYNFIG_LAYER_SET_VERSION(XORPattern,"0.1"); +SYNFIG_LAYER_SET_CVS_ID(XORPattern,"$Id$"); + +/* === P R O C E D U R E S ================================================= */ + +/* === M E T H O D S ======================================================= */ + +XORPattern::XORPattern(): + pos(0.125,0.125), + size(0.25,0.25) +{ +} + +bool +XORPattern::set_param(const String & param, const ValueBase &value) +{ + IMPORT(pos); + IMPORT(size); + return false; +} + +ValueBase +XORPattern::get_param(const String & param)const +{ + EXPORT(pos); + EXPORT(size); + + EXPORT_NAME(); + EXPORT_VERSION(); + + return ValueBase(); +} + +Color +XORPattern::get_color(Context context, const Point &point)const +{ + unsigned int a=(unsigned int)floor((point[0]+pos[0])/size[0]), b=(unsigned int)floor((point[1]+pos[1])/size[1]); + unsigned char rindex=(a^b); + unsigned char gindex=(a^(~b))*4; + unsigned char bindex=~(a^b)*2; + + return Color((Color::value_type)rindex/(Color::value_type)255.0,(Color::value_type)gindex/(Color::value_type)255.0,(Color::value_type)bindex/(Color::value_type)255.0,1.0); +} + +Layer::Vocab +XORPattern::get_param_vocab()const +{ + Layer::Vocab ret; + + ret.push_back(ParamDesc("pos") + .set_local_name(_("Offset")) + ); + ret.push_back(ParamDesc("size") + .set_local_name(_("Size")) + .set_origin("pos") + ); + + return ret; +} diff --git a/synfig-core/tags/stable/src/modules/lyr_std/xorpattern.h b/synfig-core/tags/stable/src/modules/lyr_std/xorpattern.h new file mode 100644 index 0000000..2408f37 --- /dev/null +++ b/synfig-core/tags/stable/src/modules/lyr_std/xorpattern.h @@ -0,0 +1,67 @@ +/* === S Y N F I G ========================================================= */ +/*! \file xorpattern.h +** \brief Template Header +** +** $Id$ +** +** \legal +** Copyright (c) 2002-2005 Robert B. Quattlebaum Jr., Adrian Bentley +** +** This package is free software; you can redistribute it and/or +** modify it under the terms of the GNU General Public License as +** published by the Free Software Foundation; either version 2 of +** the License, or (at your option) any later version. +** +** This package is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +** General Public License for more details. +** \endlegal +** +** === N O T E S =========================================================== +** +** ========================================================================= */ + +/* === S T A R T =========================================================== */ + +#ifndef __SYNFIG_XORPATTERN_H +#define __SYNFIG_XORPATTERN_H + +/* === H E A D E R S ======================================================= */ + +#include +#include +#include +#include + +/* === M A C R O S ========================================================= */ + +/* === T Y P E D E F S ===================================================== */ + +/* === C L A S S E S & S T R U C T S ======================================= */ + +using namespace synfig; +using namespace std; +using namespace etl; + +class XORPattern : public Layer +{ + SYNFIG_LAYER_MODULE_EXT + +private: + + Point pos; + Point size; + +public: + XORPattern(); + + virtual bool set_param(const String ¶m, const ValueBase &value); + virtual ValueBase get_param(const String ¶m)const; + virtual Color get_color(Context context, const Point &pos)const; + virtual Vocab get_param_vocab()const; +}; + +/* === E N D =============================================================== */ + +#endif diff --git a/synfig-core/tags/stable/src/modules/lyr_std/zoom.cpp b/synfig-core/tags/stable/src/modules/lyr_std/zoom.cpp new file mode 100644 index 0000000..d8a88bc --- /dev/null +++ b/synfig-core/tags/stable/src/modules/lyr_std/zoom.cpp @@ -0,0 +1,162 @@ +/* === S Y N F I G ========================================================= */ +/*! \file zoom.cpp +** \brief writeme +** +** $Id$ +** +** \legal +** Copyright (c) 2002-2005 Robert B. Quattlebaum Jr., Adrian Bentley +** +** This package is free software; you can redistribute it and/or +** modify it under the terms of the GNU General Public License as +** published by the Free Software Foundation; either version 2 of +** the License, or (at your option) any later version. +** +** This package is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +** General Public License for more details. +** \endlegal +*/ +/* ========================================================================= */ + +/* === H E A D E R S ======================================================= */ + +#ifdef USING_PCH +# include "pch.h" +#else +#ifdef HAVE_CONFIG_H +# include +#endif + +#include "zoom.h" +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#endif + +/* === M A C R O S ========================================================= */ + +/* === G L O B A L S ======================================================= */ + +SYNFIG_LAYER_INIT(Zoom); +SYNFIG_LAYER_SET_NAME(Zoom,"zoom"); +SYNFIG_LAYER_SET_LOCAL_NAME(Zoom,_("Zoom")); +SYNFIG_LAYER_SET_CATEGORY(Zoom,_("Transform")); +SYNFIG_LAYER_SET_VERSION(Zoom,"0.1"); +SYNFIG_LAYER_SET_CVS_ID(Zoom,"$Id$"); + +/* === P R O C E D U R E S ================================================= */ + +/* === M E T H O D S ======================================================= */ + +/* === E N T R Y P O I N T ================================================= */ + +Zoom::Zoom(): + center(0,0), + amount(0) +{ +} + +bool +Zoom::set_param(const String & param, const ValueBase &value) +{ + + IMPORT(center); + IMPORT(amount); + + return false; +} + +ValueBase +Zoom::get_param(const String ¶m)const +{ + EXPORT(center); + EXPORT(amount); + + EXPORT_NAME(); + EXPORT_VERSION(); + + return ValueBase(); +} + +Layer::Vocab +Zoom::get_param_vocab()const +{ + Layer::Vocab ret; + + ret.push_back(ParamDesc("amount") + .set_local_name(_("Amount")) + .set_description(_("Amount to zoom in")) + ); + + ret.push_back(ParamDesc("center") + .set_local_name(_("Center")) + .set_description(_("Point to zoom in to")) + ); + + return ret; +} + +synfig::Layer::Handle +Zoom::hit_check(synfig::Context context, const synfig::Point &pos)const +{ + return context.hit_check((pos-center)/exp(amount)+center); +} + +Color +Zoom::get_color(Context context, const Point &pos)const +{ + return context.get_color((pos-center)/exp(amount)+center); +} + +class Zoom_Trans : public Transform +{ + etl::handle layer; +public: + Zoom_Trans(const Zoom* x):Transform(x->get_guid()),layer(x) { } + + synfig::Vector perform(const synfig::Vector& x)const + { + return (x-layer->center)*exp(layer->amount)+layer->center; + } + + synfig::Vector unperform(const synfig::Vector& x)const + { + return (x-layer->center)/exp(layer->amount)+layer->center; + } +}; +etl::handle +Zoom::get_transform()const +{ + return new Zoom_Trans(this); +} + +bool +Zoom::accelerated_render(Context context,Surface *surface,int quality, const RendDesc &renddesc, ProgressCallback *cb)const +{ + Vector::value_type zoomfactor=1.0/exp(amount); + RendDesc desc(renddesc); + desc.clear_flags(); + + // Adjust the top_left and bottom_right points + // for our zoom amount + desc.set_tl((desc.get_tl()-center)*zoomfactor+center); + desc.set_br((desc.get_br()-center)*zoomfactor+center); + + // Render the scene + return context.accelerated_render(surface,quality,desc,cb); +} + +synfig::Rect +Zoom::get_full_bounding_rect(synfig::Context context)const +{ + return (context.get_full_bounding_rect()-center)*exp(amount)+center; +} diff --git a/synfig-core/tags/stable/src/modules/lyr_std/zoom.h b/synfig-core/tags/stable/src/modules/lyr_std/zoom.h new file mode 100644 index 0000000..34169b6 --- /dev/null +++ b/synfig-core/tags/stable/src/modules/lyr_std/zoom.h @@ -0,0 +1,68 @@ +/* === S Y N F I G ========================================================= */ +/*! \file zoom.h +** \brief writeme +** +** $Id$ +** +** \legal +** Copyright (c) 2002-2005 Robert B. Quattlebaum Jr., Adrian Bentley +** +** This package is free software; you can redistribute it and/or +** modify it under the terms of the GNU General Public License as +** published by the Free Software Foundation; either version 2 of +** the License, or (at your option) any later version. +** +** This package is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +** General Public License for more details. +** \endlegal +*/ +/* ========================================================================= */ + +/* === S T A R T =========================================================== */ + +#ifndef __SYNFIG_ZOOM_H +#define __SYNFIG_ZOOM_H + +/* === H E A D E R S ======================================================= */ + +#include +#include + +/* === M A C R O S ========================================================= */ + +/* === T Y P E D E F S ===================================================== */ + +/* === C L A S S E S & S T R U C T S ======================================= */ + +using namespace synfig; +using namespace std; +using namespace etl; + +class Zoom_Trans; + +class Zoom : public Layer +{ + SYNFIG_LAYER_MODULE_EXT + friend class Zoom_Trans; +private: + Vector center; + Real amount; +public: + Zoom(); + + virtual bool set_param(const String & param, const synfig::ValueBase &value); + virtual ValueBase get_param(const String & param)const; + virtual Color get_color(Context context, const Point &pos)const; + virtual bool accelerated_render(Context context,Surface *surface,int quality, const RendDesc &renddesc, ProgressCallback *cb)const; + synfig::Layer::Handle hit_check(synfig::Context context, const synfig::Point &point)const; + virtual Vocab get_param_vocab()const; + virtual synfig::Rect get_full_bounding_rect(synfig::Context context)const; + virtual etl::handle get_transform()const; + +}; + +/* === E N D =============================================================== */ + +#endif diff --git a/synfig-core/tags/stable/src/modules/mod_bmp/Makefile.am b/synfig-core/tags/stable/src/modules/mod_bmp/Makefile.am new file mode 100644 index 0000000..4997b90 --- /dev/null +++ b/synfig-core/tags/stable/src/modules/mod_bmp/Makefile.am @@ -0,0 +1,14 @@ +# $Id$ + + +MAINTAINERCLEANFILES=Makefile.in +INCLUDES = -I$(top_srcdir)/src + +moduledir=@MODULE_DIR@ + +module_LTLIBRARIES = libmod_bmp.la +libmod_bmp_la_SOURCES = main.cpp trgt_bmp.cpp trgt_bmp.h mptr_bmp.cpp mptr_bmp.h +libmod_bmp_la_LDFLAGS = -module -no-undefined +libmod_bmp_la_CXXFLAGS = @SYNFIG_CFLAGS@ +libmod_bmp_la_LIBADD = -L../../synfig -lsynfig @SYNFIG_LIBS@ +EXTRA_DIST= mod_bmp.nsh unmod_bmp.nsh diff --git a/synfig-core/tags/stable/src/modules/mod_bmp/main.cpp b/synfig-core/tags/stable/src/modules/mod_bmp/main.cpp new file mode 100644 index 0000000..88fbbbd --- /dev/null +++ b/synfig-core/tags/stable/src/modules/mod_bmp/main.cpp @@ -0,0 +1,58 @@ +/* === S Y N F I G ========================================================= */ +/*! \file mod_bmp/main.cpp +** \brief writeme +** +** $Id$ +** +** \legal +** Copyright (c) 2002-2005 Robert B. Quattlebaum Jr., Adrian Bentley +** +** This package is free software; you can redistribute it and/or +** modify it under the terms of the GNU General Public License as +** published by the Free Software Foundation; either version 2 of +** the License, or (at your option) any later version. +** +** This package is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +** General Public License for more details. +** \endlegal +*/ +/* ========================================================================= */ + +/* === H E A D E R S ======================================================= */ + +#define SYNFIG_NO_ANGLE + +#ifdef USING_PCH +# include "pch.h" +#else +#ifdef HAVE_CONFIG_H +# include +#endif + +#include +#include +#include "trgt_bmp.h" +#include "mptr_bmp.h" + +#endif + +/* === E N T R Y P O I N T ================================================= */ + +MODULE_DESC_BEGIN(mod_bmp) + MODULE_NAME("Microsoft BMP File Format Module") + MODULE_DESCRIPTION("Provides a Microsoft BMP output target and importer") + MODULE_AUTHOR("Robert B. Quattlebaum") + MODULE_VERSION("1.0") + MODULE_COPYRIGHT(SYNFIG_COPYRIGHT) +MODULE_DESC_END + +MODULE_INVENTORY_BEGIN(mod_bmp) + BEGIN_TARGETS + TARGET(bmp) + END_TARGETS + BEGIN_IMPORTERS + IMPORTER(bmp_mptr) + END_IMPORTERS +MODULE_INVENTORY_END diff --git a/synfig-core/tags/stable/src/modules/mod_bmp/mod_bmp.nsh b/synfig-core/tags/stable/src/modules/mod_bmp/mod_bmp.nsh new file mode 100644 index 0000000..0556ef0 --- /dev/null +++ b/synfig-core/tags/stable/src/modules/mod_bmp/mod_bmp.nsh @@ -0,0 +1,21 @@ +; The stuff to install +Section "mod_bmp" Sec_mod_bmp + +; SectionIn RO + + ; Set output path to the installation directory. + SetOutPath "$INSTDIR\lib\synfig\modules" + + ; Put file there + File /oname=mod_bmp.dll "src\modules\mod_bmp\.libs\libmod_bmp-0.dll" + + + FileOpen $0 $INSTDIR\etc\synfig_modules.cfg a + FileSeek $0 0 END + FileWrite $0 "mod_bmp" + FileWriteByte $0 "13" + FileWriteByte $0 "10" + FileClose $0 + +SectionEnd + diff --git a/synfig-core/tags/stable/src/modules/mod_bmp/mptr_bmp.cpp b/synfig-core/tags/stable/src/modules/mod_bmp/mptr_bmp.cpp new file mode 100644 index 0000000..60cf672 --- /dev/null +++ b/synfig-core/tags/stable/src/modules/mod_bmp/mptr_bmp.cpp @@ -0,0 +1,232 @@ +/* === S Y N F I G ========================================================= */ +/*! \file mptr_bmp.cpp +** \brief bmp Target Module +** +** $Id$ +** +** \legal +** Copyright (c) 2002-2005 Robert B. Quattlebaum Jr., Adrian Bentley +** +** This package is free software; you can redistribute it and/or +** modify it under the terms of the GNU General Public License as +** published by the Free Software Foundation; either version 2 of +** the License, or (at your option) any later version. +** +** This package is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +** General Public License for more details. +** \endlegal +** +** === N O T E S =========================================================== +** +** ========================================================================= */ + +/* === H E A D E R S ======================================================= */ + +#define SYNFIG_NO_ANGLE + +#ifdef USING_PCH +# include "pch.h" +#else +#ifdef HAVE_CONFIG_H +# include +#endif + +#include "mptr_bmp.h" +#include +#include + +#include +#include +#endif + +/* === U S I N G =========================================================== */ + +using namespace synfig; +using namespace std; +using namespace etl; + +/* === G L O B A L S ======================================================= */ + +SYNFIG_IMPORTER_INIT(bmp_mptr); +SYNFIG_IMPORTER_SET_NAME(bmp_mptr,"bmp"); +SYNFIG_IMPORTER_SET_EXT(bmp_mptr,"bmp"); +SYNFIG_IMPORTER_SET_VERSION(bmp_mptr,"0.1"); +SYNFIG_IMPORTER_SET_CVS_ID(bmp_mptr,"$Id$"); + +/* === M E T H O D S ======================================================= */ + +struct BITMAPFILEHEADER +{ + unsigned char bfType[2]; + unsigned long bfSize; + unsigned short bfReserved1; + unsigned short bfReserved2; + unsigned long bfOffsetBits; +}; + +struct BITMAPINFOHEADER +{ + unsigned long biSize; + long biWidth; + long biHeight; + unsigned short biPlanes; + unsigned short biBitCount; + unsigned long biCompression; + unsigned long biSizeImage; + long biXPelsPerMeter; + long biYPelsPerMeter; + unsigned long biClrUsed; + unsigned long biClrImportant; +}; + +#ifdef WORDS_BIGENDIAN +inline long little_endian(const long &x) +{ + long ret; + char *big_e=(char *)&ret; + char *lit_e=(char *)&x; + big_e[0]=lit_e[3]; + big_e[1]=lit_e[2]; + big_e[2]=lit_e[1]; + big_e[3]=lit_e[0]; + return ret; +} +inline short little_endian_short(const short &x) +{ + short ret; + char *big_e=(char *)&ret; + char *lit_e=(char *)&x; + big_e[0]=lit_e[1]; + big_e[1]=lit_e[0]; + return ret; +} +#else +#define little_endian(x) (x) +#define little_endian_short(x) (x) +#endif + + + + + + +bmp_mptr::bmp_mptr(const char *file) +{ + filename=file; +} + +bmp_mptr::~bmp_mptr() +{ +} + +bool +bmp_mptr::get_frame(synfig::Surface &surface,Time time, synfig::ProgressCallback *cb) +{ + FILE *file=fopen(filename.c_str(),"rb"); + if(!file) + { + if(cb)cb->error("bmp_mptr::GetFrame(): "+strprintf(_("Unable to open %s"),filename.c_str())); + else synfig::error("bmp_mptr::GetFrame(): "+strprintf(_("Unable to open %s"),filename.c_str())); + return false; + } + + BITMAPFILEHEADER fileheader; + BITMAPINFOHEADER infoheader; + char b_char=fgetc(file); + char m_char=fgetc(file); + + if(b_char!='B' || m_char!='M') + { + if(cb)cb->error("bmp_mptr::GetFrame(): "+strprintf(_("%s is not in BMP format"),filename.c_str())); + else synfig::error("bmp_mptr::GetFrame(): "+strprintf(_("%s is not in BMP format"),filename.c_str())); + return false; + } + + if(fread(&fileheader.bfSize, 1, sizeof(BITMAPFILEHEADER)-4, file)!=sizeof(BITMAPFILEHEADER)-4) + { + String str("bmp_mptr::get_frame(): "+strprintf(_("Failure while reading BITMAPFILEHEADER from %s"),filename.c_str())); + if(cb)cb->error(str); + else synfig::error(str); + return false; + } + + if(fread(&infoheader, 1, sizeof(BITMAPINFOHEADER), file)!=sizeof(BITMAPINFOHEADER)) + { + String str("bmp_mptr::get_frame(): "+strprintf(_("Failure while reading BITMAPINFOHEADER from %s"),filename.c_str())); + if(cb)cb->error(str); + else synfig::error(str); + return false; + } + + int offset=little_endian(fileheader.bfOffsetBits); + + if(offset!=sizeof(BITMAPFILEHEADER)+sizeof(BITMAPINFOHEADER)-2) + { + String str("bmp_mptr::get_frame(): "+strprintf(_("Bad BITMAPFILEHEADER in %s. (bfOffsetBits=%d, should be %d)"),filename.c_str(),offset,sizeof(BITMAPFILEHEADER)+sizeof(BITMAPINFOHEADER)-2)); + if(cb)cb->error(str); + else synfig::error(str); + return false; + } + + if(little_endian(infoheader.biSize)!=little_endian(40)) + { + String str("bmp_mptr::get_frame(): "+strprintf(_("Bad BITMAPINFOHEADER in %s. (biSize=%d, should be 40)"),filename.c_str(),little_endian(infoheader.biSize))); + if(cb)cb->error(str); + else synfig::error(str); + return false; + } + + int w,h,bit_count; + + w=little_endian(infoheader.biWidth); + h=little_endian(infoheader.biHeight); + bit_count=little_endian_short(infoheader.biBitCount); + + synfig::warning("w:%d\n",w); + synfig::warning("h:%d\n",h); + synfig::warning("bit_count:%d\n",bit_count); + + if(little_endian(infoheader.biCompression)) + { + if(cb)cb->error("bmp_mptr::GetFrame(): "+string(_("Reading compressed bitmaps is not supported"))); + else synfig::error("bmp_mptr::GetFrame(): "+string(_("Reading compressed bitmaps is not supported"))); + return false; + } + + if(bit_count!=24 && bit_count!=32) + { + if(cb)cb->error("bmp_mptr::GetFrame(): "+strprintf(_("Unsupported bit depth (bit_count=%d, should be 24 or 32)"),bit_count)); + else synfig::error("bmp_mptr::GetFrame(): "+strprintf(_("Unsupported bit depth (bit_count=%d, should be 24 or 32)"),bit_count)); + return false; + } + + int x; + int y; + surface.set_wh(w,h); + for(y=0;y +#include +#include +#include + +/* === M A C R O S ========================================================= */ + +/* === T Y P E D E F S ===================================================== */ + +/* === C L A S S E S & S T R U C T S ======================================= */ + +class bmp_mptr : public synfig::Importer +{ +SYNFIG_IMPORTER_MODULE_EXT + +private: + synfig::String filename; + +public: + bmp_mptr(const char *filename); + ~bmp_mptr(); + + virtual bool get_frame(synfig::Surface &surface,synfig::Time time, synfig::ProgressCallback *callback); +}; + +/* === E N D =============================================================== */ + +#endif diff --git a/synfig-core/tags/stable/src/modules/mod_bmp/trgt_bmp.cpp b/synfig-core/tags/stable/src/modules/mod_bmp/trgt_bmp.cpp new file mode 100644 index 0000000..bfc484a --- /dev/null +++ b/synfig-core/tags/stable/src/modules/mod_bmp/trgt_bmp.cpp @@ -0,0 +1,265 @@ +/* === S Y N F I G ========================================================= */ +/*! \file trgt_bmp.cpp +** \brief Bitmap Target +** +** $Id$ +** +** \legal +** Copyright (c) 2002-2005 Robert B. Quattlebaum Jr., Adrian Bentley +** +** This package is free software; you can redistribute it and/or +** modify it under the terms of the GNU General Public License as +** published by the Free Software Foundation; either version 2 of +** the License, or (at your option) any later version. +** +** This package is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +** General Public License for more details. +** \endlegal +*/ +/* ========================================================================= */ + +/* === H E A D E R S ======================================================= */ + +#define SYNFIG_NO_ANGLE + +#ifdef USING_PCH +# include "pch.h" +#else +#ifdef HAVE_CONFIG_H +# include +#endif + +#include "trgt_bmp.h" +#include + +#include +#include +#include +#endif + +/* === U S I N G =========================================================== */ + +using namespace synfig; +using namespace std; +using namespace etl; + +/* === I N F O ============================================================= */ + +SYNFIG_TARGET_INIT(bmp); +SYNFIG_TARGET_SET_NAME(bmp,"bmp"); +SYNFIG_TARGET_SET_EXT(bmp,"bmp"); +SYNFIG_TARGET_SET_VERSION(bmp,"0.1"); +SYNFIG_TARGET_SET_CVS_ID(bmp,"$Id$"); + +/* === C L A S S E S & S T R U C T S ======================================= */ + +struct BITMAPFILEHEADER +{ + unsigned char bfType[2]; + unsigned long bfSize; + unsigned short bfReserved1; + unsigned short bfReserved2; + unsigned long bfOffsetBits; +}; + +struct BITMAPINFOHEADER +{ + unsigned long biSize; + long biWidth; + long biHeight; + unsigned short biPlanes; + unsigned short biBitCount; + unsigned long biCompression; + unsigned long biSizeImage; + long biXPelsPerMeter; + long biYPelsPerMeter; + unsigned long biClrUsed; + unsigned long biClrImportant; +}; + +/* === M E T H O D S ======================================================= */ + +#ifdef WORDS_BIGENDIAN +inline long little_endian(const long &x) +{ + long ret; + char *big_e=(char *)&ret; + char *lit_e=(char *)&x; + big_e[0]=lit_e[3]; + big_e[1]=lit_e[2]; + big_e[2]=lit_e[1]; + big_e[3]=lit_e[0]; + return ret; +} +inline short little_endian_short(const short &x) +{ + short ret; + char *big_e=(char *)&ret; + char *lit_e=(char *)&x; + big_e[0]=lit_e[1]; + big_e[1]=lit_e[0]; + return ret; +} +#else +#define little_endian(x) (x) +#define little_endian_short(x) (x) +#endif + +bmp::bmp(const char *Filename) +{ + file=NULL; + filename=Filename; + multi_image=false; + buffer=0; + color_buffer=0; + set_remove_alpha(); + +} + +bmp::~bmp() +{ + if(file) + fclose(file); + file=NULL; + delete [] buffer; + delete [] color_buffer; +} + +bool +bmp::set_rend_desc(RendDesc *given_desc) +{ + pf=PF_BGR; + + // Flip the image upside down, + // because bitmaps are upside down. + given_desc->set_flags(0); + Point tl=given_desc->get_tl(); + Point br=given_desc->get_br(); + Point::value_type tmp; + tmp=tl[1]; + tl[1]=br[1]; + br[1]=tmp; + given_desc->set_tl(tl); + given_desc->set_br(br); + + desc=*given_desc; + if(desc.get_frame_end()-desc.get_frame_start()>0) + { + multi_image=true; + imagecount=desc.get_frame_start(); + } + else + multi_image=false; + + return true; +} + +void +bmp::end_frame() +{ + if(file) + fclose(file); + delete [] color_buffer; + color_buffer=0; + file=NULL; + imagecount++; +} + +bool +bmp::start_frame(synfig::ProgressCallback *callback) +{ + int w=desc.get_w(),h=desc.get_h(); + + rowspan=4*((w*(channels(pf)*8)+31)/32); + if(multi_image) + { + String + newfilename(filename), + ext(find(filename.begin(),filename.end(),'.'),filename.end()); + newfilename.erase(find(newfilename.begin(),newfilename.end(),'.'),newfilename.end()); + + newfilename+=etl::strprintf("%04d",imagecount)+ext; + file=fopen(newfilename.c_str(),"wb"); + if(callback)callback->task(newfilename+_(" (animated)")); + } + else + { + file=fopen(filename.c_str(),"wb"); + if(callback)callback->task(filename); + } + + if(!file) + { + if(callback)callback->error(_("Unable to open file")); + else synfig::error(_("Unable to open file")); + return false; + } + + BITMAPFILEHEADER fileheader; + BITMAPINFOHEADER infoheader; + + fileheader.bfType[0]='B'; + fileheader.bfType[1]='M'; + fileheader.bfSize=little_endian(sizeof(BITMAPFILEHEADER)+sizeof(BITMAPINFOHEADER)+rowspan*h); + fileheader.bfReserved1=0; + fileheader.bfReserved2=0; + fileheader.bfOffsetBits=little_endian(sizeof(BITMAPFILEHEADER)+sizeof(BITMAPINFOHEADER)-2); + + infoheader.biSize=little_endian(40); + infoheader.biWidth=little_endian(w); + infoheader.biHeight=little_endian(h); + infoheader.biPlanes=little_endian_short((short)1); + infoheader.biBitCount=little_endian_short((short)(channels(pf)*8)); + infoheader.biCompression=little_endian(0); + infoheader.biSizeImage=little_endian(0); + infoheader.biXPelsPerMeter=little_endian((int)rend_desc().get_x_res()); + infoheader.biYPelsPerMeter=little_endian((int)rend_desc().get_y_res()); // pels per meter...? + infoheader.biClrUsed=little_endian(0); + infoheader.biClrImportant=little_endian(0); + + fprintf(file,"BM"); + + if(!fwrite(&fileheader.bfSize,sizeof(BITMAPFILEHEADER)-4,1,file)) + { + if(callback)callback->error(_("Unable to write file header to file")); + else synfig::error(_("Unable to write file header to file")); + return false; + } + + if(!fwrite(&infoheader,sizeof(BITMAPINFOHEADER),1,file)) + { + if(callback)callback->error(_("Unable to write info header")); + else synfig::error(_("Unable to write info header")); + return false; + } + + delete [] buffer; + buffer=new unsigned char[rowspan]; + + delete [] color_buffer; + color_buffer=new Color[desc.get_w()]; + + return true; +} + +Color * +bmp::start_scanline(int scanline) +{ + return color_buffer; +} + +bool +bmp::end_scanline() +{ + if(!file) + return false; + + convert_color_format(buffer, color_buffer, desc.get_w(), pf, gamma()); + + if(!fwrite(buffer,1,rowspan,file)) + return false; + + return true; +} diff --git a/synfig-core/tags/stable/src/modules/mod_bmp/trgt_bmp.h b/synfig-core/tags/stable/src/modules/mod_bmp/trgt_bmp.h new file mode 100644 index 0000000..8a045c7 --- /dev/null +++ b/synfig-core/tags/stable/src/modules/mod_bmp/trgt_bmp.h @@ -0,0 +1,67 @@ +/* === S Y N F I G ========================================================= */ +/*! \file trgt_bmp.h +** \brief Template Header +** +** $Id$ +** +** \legal +** Copyright (c) 2002-2005 Robert B. Quattlebaum Jr., Adrian Bentley +** +** This package is free software; you can redistribute it and/or +** modify it under the terms of the GNU General Public License as +** published by the Free Software Foundation; either version 2 of +** the License, or (at your option) any later version. +** +** This package is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +** General Public License for more details. +** \endlegal +*/ +/* ========================================================================= */ + +/* === S T A R T =========================================================== */ + +#ifndef __SYNFIG_TRGT_BMP_H +#define __SYNFIG_TRGT_BMP_H + +/* === H E A D E R S ======================================================= */ + +#include +#include +#include + +/* === M A C R O S ========================================================= */ + +/* === T Y P E D E F S ===================================================== */ + +/* === C L A S S E S & S T R U C T S ======================================= */ + +class bmp : public synfig::Target_Scanline +{ + SYNFIG_TARGET_MODULE_EXT +private: + int rowspan; + int imagecount; + bool multi_image; + FILE *file; + synfig::String filename; + unsigned char *buffer; + synfig::Color *color_buffer; + synfig::PixelFormat pf; + +public: + bmp(const char *filename); + virtual ~bmp(); + + virtual bool set_rend_desc(synfig::RendDesc *desc); + virtual bool start_frame(synfig::ProgressCallback *cb); + virtual void end_frame(); + virtual synfig::Color * start_scanline(int scanline); + virtual bool end_scanline(); + +}; + +/* === E N D =============================================================== */ + +#endif diff --git a/synfig-core/tags/stable/src/modules/mod_bmp/unmod_bmp.nsh b/synfig-core/tags/stable/src/modules/mod_bmp/unmod_bmp.nsh new file mode 100644 index 0000000..1df228a --- /dev/null +++ b/synfig-core/tags/stable/src/modules/mod_bmp/unmod_bmp.nsh @@ -0,0 +1,8 @@ +Section "un.mod_bmp" + Delete "$INSTDIR\lib\synfig\modules\mod_bmp.dll" + RMDir "$INSTDIR\lib\synfig\modules" + RMDir "$INSTDIR\lib\synfig" + RMDir "$INSTDIR\lib" + RMDir "$INSTDIR" +SectionEnd + diff --git a/synfig-core/tags/stable/src/modules/mod_dv/Makefile.am b/synfig-core/tags/stable/src/modules/mod_dv/Makefile.am new file mode 100644 index 0000000..53accb8 --- /dev/null +++ b/synfig-core/tags/stable/src/modules/mod_dv/Makefile.am @@ -0,0 +1,17 @@ +# $Id$ + + +MAINTAINERCLEANFILES=Makefile.in +INCLUDES = -I$(top_srcdir)/src + +moduledir=@MODULE_DIR@ + +if WITH_LIBDV +module_LTLIBRARIES = libmod_dv.la +libmod_dv_la_SOURCES = main.cpp trgt_dv.cpp trgt_dv.h +libmod_dv_la_LDFLAGS = -module -no-undefined +libmod_dv_la_CXXFLAGS = @SYNFIG_CFLAGS@ +libmod_dv_la_LIBADD = -L../../synfig -lsynfig @SYNFIG_LIBS@ +else +endif +EXTRA_DIST= mod_dv.nsh unmod_dv.nsh diff --git a/synfig-core/tags/stable/src/modules/mod_dv/main.cpp b/synfig-core/tags/stable/src/modules/mod_dv/main.cpp new file mode 100644 index 0000000..8d3abbf --- /dev/null +++ b/synfig-core/tags/stable/src/modules/mod_dv/main.cpp @@ -0,0 +1,54 @@ +/* === S Y N F I G ========================================================= */ +/*! \file mod_dv/main.cpp +** \brief Template Header +** +** $Id$ +** +** \legal +** Copyright (c) 2002-2005 Robert B. Quattlebaum Jr., Adrian Bentley +** +** This package is free software; you can redistribute it and/or +** modify it under the terms of the GNU General Public License as +** published by the Free Software Foundation; either version 2 of +** the License, or (at your option) any later version. +** +** This package is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +** General Public License for more details. +** \endlegal +** +** === N O T E S =========================================================== +** +** ========================================================================= */ + +/* === H E A D E R S ======================================================= */ + +#define SYNFIG_MODULE + +#ifdef USING_PCH +# include "pch.h" +#else +#ifdef HAVE_CONFIG_H +# include +#endif + +#include +#include "trgt_dv.h" +#endif + +/* === E N T R Y P O I N T ================================================= */ + +MODULE_DESC_BEGIN(mod_dv) + MODULE_NAME("DV Target") + MODULE_DESCRIPTION("Provides a DV Stream target (ie: for miniDV stuff)") + MODULE_AUTHOR("Robert B. Quattlebaum") + MODULE_VERSION("1.0") + MODULE_COPYRIGHT(SYNFIG_COPYRIGHT) +MODULE_DESC_END + +MODULE_INVENTORY_BEGIN(mod_dv) + BEGIN_TARGETS + TARGET(dv_trgt) + END_TARGETS +MODULE_INVENTORY_END diff --git a/synfig-core/tags/stable/src/modules/mod_dv/mod_dv.nsh b/synfig-core/tags/stable/src/modules/mod_dv/mod_dv.nsh new file mode 100644 index 0000000..66e7efb --- /dev/null +++ b/synfig-core/tags/stable/src/modules/mod_dv/mod_dv.nsh @@ -0,0 +1,21 @@ +; The stuff to install +Section "mod_dv" Sec_mod_dv + +; SectionIn RO + + ; Set output path to the installation directory. + SetOutPath "$INSTDIR\lib\synfig\modules" + + ; Put file there + File /oname=mod_dv.dll "src\modules\mod_dv\.libs\libmod_dv-0.dll" + + + FileOpen $0 $INSTDIR\etc\synfig_modules.cfg a + FileSeek $0 0 END + FileWrite $0 "mod_dv" + FileWriteByte $0 "13" + FileWriteByte $0 "10" + FileClose $0 + +SectionEnd + diff --git a/synfig-core/tags/stable/src/modules/mod_dv/trgt_dv.cpp b/synfig-core/tags/stable/src/modules/mod_dv/trgt_dv.cpp new file mode 100644 index 0000000..e2ec32a --- /dev/null +++ b/synfig-core/tags/stable/src/modules/mod_dv/trgt_dv.cpp @@ -0,0 +1,192 @@ +/* === S Y N F I G ========================================================= */ +/*! \file trgt_dv.cpp +** \brief ppm Target Module +** +** $Id$ +** +** \legal +** Copyright (c) 2002-2005 Robert B. Quattlebaum Jr., Adrian Bentley +** +** This package is free software; you can redistribute it and/or +** modify it under the terms of the GNU General Public License as +** published by the Free Software Foundation; either version 2 of +** the License, or (at your option) any later version. +** +** This package is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +** General Public License for more details. +** \endlegal +** +** === N O T E S =========================================================== +** +** ========================================================================= */ + +/* === H E A D E R S ======================================================= */ + +#define SYNFIG_TARGET + +#ifdef USING_PCH +# include "pch.h" +#else +#ifdef HAVE_CONFIG_H +# include +#endif + +#include +#include "trgt_dv.h" +#include +#include +#include +#include + +#endif + +/* === M A C R O S ========================================================= */ + +using namespace synfig; +using namespace std; +using namespace etl; + +/* === G L O B A L S ======================================================= */ + +SYNFIG_TARGET_INIT(dv_trgt); +SYNFIG_TARGET_SET_NAME(dv_trgt,"dv"); +SYNFIG_TARGET_SET_EXT(dv_trgt,"dv"); +SYNFIG_TARGET_SET_VERSION(dv_trgt,"0.1"); +SYNFIG_TARGET_SET_CVS_ID(dv_trgt,"$Id$"); + +/* === M E T H O D S ======================================================= */ + + +dv_trgt::dv_trgt(const char *Filename) +{ + file=NULL; + filename=Filename; + buffer=NULL; + wide_aspect=false; + color_buffer=0; + set_remove_alpha(); + +} + +dv_trgt::~dv_trgt() +{ + if(file) + pclose(file); + file=NULL; + delete [] buffer; + delete [] color_buffer; +} + +bool +dv_trgt::set_rend_desc(RendDesc *given_desc) +{ + // Set the aspect ratio + if(wide_aspect) + { + // 16:9 Aspect + given_desc->set_wh(160,90); + + // Widescreen should be progressive scan + given_desc->set_interlaced(false); + } + else + { + // 4:3 Aspect + given_desc->set_wh(400,300); + + // We should be interlaced + given_desc->set_interlaced(true); + } + + // but the pixel res should be 720x480 + given_desc->clear_flags(),given_desc->set_wh(720,480); + + // NTSC Frame rate is 29.97 + given_desc->set_frame_rate(29.97); + + // The pipe to encodedv is PPM, which needs RGB data + //given_desc->set_pixel_format(PF_RGB); + + // Set the description + desc=*given_desc; + + return true; +} + +bool +dv_trgt::init() +{ + imagecount=desc.get_frame_start(); + + string command; + + if(wide_aspect) + command=strprintf("encodedv -w 1 - > \"%s\"\n",filename.c_str()); + else + command=strprintf("encodedv - > \"%s\"\n",filename.c_str()); + + // Open the pipe to encodedv + file=popen(command.c_str(),"w"); + + if(!file) + { + synfig::error(_("Unable to open pipe to encodedv")); + return false; + } + + // Sleep for a moment to let the pipe catch up + etl::clock().sleep(0.25f); + + return true; +} + +void +dv_trgt::end_frame() +{ + fprintf(file, " "); + fflush(file); + imagecount++; +} + +bool +dv_trgt::start_frame(synfig::ProgressCallback *callback) +{ + int w=desc.get_w(),h=desc.get_h(); + + if(!file) + return false; + + fprintf(file, "P6\n"); + fprintf(file, "%d %d\n", w, h); + fprintf(file, "%d\n", 255); + + delete [] buffer; + buffer=new unsigned char[3*w]; + + delete [] color_buffer; + color_buffer=new Color[w]; + + return true; +} + +Color * +dv_trgt::start_scanline(int scanline) +{ + return color_buffer; +} + +bool +dv_trgt::end_scanline() +{ + if(!file) + return false; + + convert_color_format(buffer, color_buffer, desc.get_w(), PF_RGB, gamma()); + + if(!fwrite(buffer,1,desc.get_w()*3,file)) + return false; + + return true; +} diff --git a/synfig-core/tags/stable/src/modules/mod_dv/trgt_dv.h b/synfig-core/tags/stable/src/modules/mod_dv/trgt_dv.h new file mode 100644 index 0000000..b135b42 --- /dev/null +++ b/synfig-core/tags/stable/src/modules/mod_dv/trgt_dv.h @@ -0,0 +1,69 @@ +/* === S Y N F I G ========================================================= */ +/*! \file trgt_dv.h +** \brief Template Header +** +** $Id$ +** +** \legal +** Copyright (c) 2002-2005 Robert B. Quattlebaum Jr., Adrian Bentley +** +** This package is free software; you can redistribute it and/or +** modify it under the terms of the GNU General Public License as +** published by the Free Software Foundation; either version 2 of +** the License, or (at your option) any later version. +** +** This package is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +** General Public License for more details. +** \endlegal +** +** === N O T E S =========================================================== +** +** ========================================================================= */ + +/* === S T A R T =========================================================== */ + +#ifndef __SYNFIG_TRGT_DV_H +#define __SYNFIG_TRGT_DV_H + +/* === H E A D E R S ======================================================= */ + +#include +#include +#include + +/* === M A C R O S ========================================================= */ + +/* === T Y P E D E F S ===================================================== */ + +/* === C L A S S E S & S T R U C T S ======================================= */ + + +class dv_trgt : public synfig::Target_Scanline +{ + SYNFIG_TARGET_MODULE_EXT +private: + int imagecount; + bool wide_aspect; + FILE *file; + synfig::String filename; + unsigned char *buffer; + synfig::Color *color_buffer; +public: + dv_trgt(const char *filename); + virtual ~dv_trgt(); + + + virtual bool set_rend_desc(synfig::RendDesc *desc); + virtual bool init(); + virtual bool start_frame(synfig::ProgressCallback *cb); + virtual void end_frame(); + + virtual synfig::Color * start_scanline(int scanline); + virtual bool end_scanline(); +}; + +/* === E N D =============================================================== */ + +#endif diff --git a/synfig-core/tags/stable/src/modules/mod_dv/unmod_dv.nsh b/synfig-core/tags/stable/src/modules/mod_dv/unmod_dv.nsh new file mode 100644 index 0000000..39b1299 --- /dev/null +++ b/synfig-core/tags/stable/src/modules/mod_dv/unmod_dv.nsh @@ -0,0 +1,8 @@ +Section "un.mod_dv" + Delete "$INSTDIR\lib\synfig\modules\mod_dv.dll" + RMDir "$INSTDIR\lib\synfig\modules" + RMDir "$INSTDIR\lib\synfig" + RMDir "$INSTDIR\lib" + RMDir "$INSTDIR" +SectionEnd + diff --git a/synfig-core/tags/stable/src/modules/mod_ffmpeg/Makefile.am b/synfig-core/tags/stable/src/modules/mod_ffmpeg/Makefile.am new file mode 100644 index 0000000..3aea405 --- /dev/null +++ b/synfig-core/tags/stable/src/modules/mod_ffmpeg/Makefile.am @@ -0,0 +1,19 @@ +# $Id$ + + +MAINTAINERCLEANFILES=Makefile.in +INCLUDES = -I$(top_srcdir)/src + +moduledir=@MODULE_DIR@ + +if WITH_FFMPEG +module_LTLIBRARIES = libmod_ffmpeg.la +libmod_ffmpeg_la_SOURCES = main.cpp mptr_ffmpeg.cpp mptr_ffmpeg.h trgt_ffmpeg.cpp trgt_ffmpeg.h +libmod_ffmpeg_la_LDFLAGS = -module -no-undefined +libmod_ffmpeg_la_CXXFLAGS = @SYNFIG_CFLAGS@ +libmod_ffmpeg_la_LIBADD = -L../../synfig -lsynfig @SYNFIG_LIBS@ +else +endif + + +EXTRA_DIST= mod_ffmpeg.nsh unmod_ffmpeg.nsh diff --git a/synfig-core/tags/stable/src/modules/mod_ffmpeg/main.cpp b/synfig-core/tags/stable/src/modules/mod_ffmpeg/main.cpp new file mode 100644 index 0000000..b8a73cd --- /dev/null +++ b/synfig-core/tags/stable/src/modules/mod_ffmpeg/main.cpp @@ -0,0 +1,70 @@ +/* === S Y N F I G ========================================================= */ +/*! \file mod_ffmpeg/main.cpp +** \brief Template Header +** +** $Id$ +** +** \legal +** Copyright (c) 2002-2005 Robert B. Quattlebaum Jr., Adrian Bentley +** +** This package is free software; you can redistribute it and/or +** modify it under the terms of the GNU General Public License as +** published by the Free Software Foundation; either version 2 of +** the License, or (at your option) any later version. +** +** This package is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +** General Public License for more details. +** \endlegal +** +** === N O T E S =========================================================== +** +** ========================================================================= */ + +/* === H E A D E R S ======================================================= */ + +#define SYNFIG_MODULE + +#ifdef USING_PCH +# include "pch.h" +#else +#ifdef HAVE_CONFIG_H +# include +#endif + +#include +#include "mptr_ffmpeg.h" +#include "trgt_ffmpeg.h" +#endif + +/* === E N T R Y P O I N T ================================================= */ + +MODULE_DESC_BEGIN(mod_ffmpeg) + MODULE_NAME("FFMPEG Module") + MODULE_DESCRIPTION("Provides output targets for each format that FFMPEG supports") + MODULE_AUTHOR("Robert B. Quattlebaum Jr.") + MODULE_VERSION("1.0") + MODULE_COPYRIGHT(SYNFIG_COPYRIGHT) +MODULE_DESC_END + +MODULE_INVENTORY_BEGIN(mod_ffmpeg) + BEGIN_TARGETS + TARGET(ffmpeg_trgt) + TARGET_EXT(ffmpeg_trgt,"avi") + TARGET_EXT(ffmpeg_trgt,"mpg") + TARGET_EXT(ffmpeg_trgt,"rm") + TARGET_EXT(ffmpeg_trgt,"asf") + TARGET_EXT(ffmpeg_trgt,"swf") + TARGET_EXT(ffmpeg_trgt,"yuv") + TARGET_EXT(ffmpeg_trgt,"rgb") + END_TARGETS +// BEGIN_IMPORTERS +// IMPORTER_EXT(ffmpeg_mptr,"avi") +// IMPORTER_EXT(ffmpeg_mptr,"mpg") +// IMPORTER_EXT(ffmpeg_mptr,"mpeg") +// IMPORTER_EXT(ffmpeg_mptr,"mov") +// IMPORTER_EXT(ffmpeg_mptr,"rm") +// IMPORTER_EXT(ffmpeg_mptr,"dv") +// END_IMPORTERS +MODULE_INVENTORY_END diff --git a/synfig-core/tags/stable/src/modules/mod_ffmpeg/mod_ffmpeg.nsh b/synfig-core/tags/stable/src/modules/mod_ffmpeg/mod_ffmpeg.nsh new file mode 100644 index 0000000..68412d8 --- /dev/null +++ b/synfig-core/tags/stable/src/modules/mod_ffmpeg/mod_ffmpeg.nsh @@ -0,0 +1,21 @@ +; The stuff to install +Section "mod_ffmpeg" Sec_mod_ffmpeg + +; SectionIn RO + + ; Set output path to the installation directory. + SetOutPath "$INSTDIR\lib\synfig\modules" + + ; Put file there + File /oname=mod_ffmpeg.dll "src\modules\mod_ffmpeg\.libs\libmod_ffmpeg-0.dll" + + + FileOpen $0 $INSTDIR\etc\synfig_modules.cfg a + FileSeek $0 0 END + FileWrite $0 "mod_ffmpeg" + FileWriteByte $0 "13" + FileWriteByte $0 "10" + FileClose $0 + +SectionEnd + diff --git a/synfig-core/tags/stable/src/modules/mod_ffmpeg/mptr_ffmpeg.cpp b/synfig-core/tags/stable/src/modules/mod_ffmpeg/mptr_ffmpeg.cpp new file mode 100644 index 0000000..116c6da --- /dev/null +++ b/synfig-core/tags/stable/src/modules/mod_ffmpeg/mptr_ffmpeg.cpp @@ -0,0 +1,183 @@ +/* === S Y N F I G ========================================================= */ +/*! \file mptr_ffmpeg.cpp +** \brief ppm Target Module +** +** $Id$ +** +** \legal +** Copyright (c) 2002-2005 Robert B. Quattlebaum Jr., Adrian Bentley +** +** This package is free software; you can redistribute it and/or +** modify it under the terms of the GNU General Public License as +** published by the Free Software Foundation; either version 2 of +** the License, or (at your option) any later version. +** +** This package is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +** General Public License for more details. +** \endlegal +** +** === N O T E S =========================================================== +** +** ========================================================================= */ + +/* === H E A D E R S ======================================================= */ + +#ifdef USING_PCH +# include "pch.h" +#else +#ifdef HAVE_CONFIG_H +# include +#endif + +#include +#include "mptr_ffmpeg.h" +#include +#include +#include +#include +#include +#endif + +/* === M A C R O S ========================================================= */ + +using namespace synfig; +using namespace std; +using namespace etl; + +/* === G L O B A L S ======================================================= */ + +SYNFIG_IMPORTER_INIT(ffmpeg_mptr); +SYNFIG_IMPORTER_SET_NAME(ffmpeg_mptr,"ffmpeg"); +SYNFIG_IMPORTER_SET_EXT(ffmpeg_mptr,"avi"); +SYNFIG_IMPORTER_SET_VERSION(ffmpeg_mptr,"0.1"); +SYNFIG_IMPORTER_SET_CVS_ID(ffmpeg_mptr,"$Id$"); + +/* === M E T H O D S ======================================================= */ + +bool +ffmpeg_mptr::seek_to(int frame) +{ + if(frame +#include +#include "string.h" +#ifdef HAVE_TERMIOS_H +#include + +#endif + +#include +/* === M A C R O S ========================================================= */ + +/* === T Y P E D E F S ===================================================== */ + +/* === C L A S S E S & S T R U C T S ======================================= */ + +class ffmpeg_mptr : public synfig::Importer +{ + SYNFIG_IMPORTER_MODULE_EXT +public: +private: + synfig::String filename; + FILE *file; + int cur_frame; + synfig::Surface frame; + float fps; +#ifdef HAVE_TERMIOS_H + struct termios oldtty; +#endif + + bool seek_to(int frame); + bool grab_frame(void); + +public: + ffmpeg_mptr(const char *filename); + ~ffmpeg_mptr(); + + + virtual bool get_frame(synfig::Surface &surface,synfig::Time time, synfig::ProgressCallback *callback); +}; + +/* === E N D =============================================================== */ + +#endif diff --git a/synfig-core/tags/stable/src/modules/mod_ffmpeg/trgt_ffmpeg.cpp b/synfig-core/tags/stable/src/modules/mod_ffmpeg/trgt_ffmpeg.cpp new file mode 100644 index 0000000..d42677a --- /dev/null +++ b/synfig-core/tags/stable/src/modules/mod_ffmpeg/trgt_ffmpeg.cpp @@ -0,0 +1,190 @@ +/* === S Y N F I G ========================================================= */ +/*! \file trgt_ffmpeg.cpp +** \brief ppm Target Module +** +** $Id$ +** +** \legal +** Copyright (c) 2002-2005 Robert B. Quattlebaum Jr., Adrian Bentley +** +** This package is free software; you can redistribute it and/or +** modify it under the terms of the GNU General Public License as +** published by the Free Software Foundation; either version 2 of +** the License, or (at your option) any later version. +** +** This package is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +** General Public License for more details. +** \endlegal +** +** === N O T E S =========================================================== +** +** ========================================================================= */ + +/* === H E A D E R S ======================================================= */ + +#define SYNFIG_TARGET + +#ifdef USING_PCH +# include "pch.h" +#else +#ifdef HAVE_CONFIG_H +# include +#endif + +#include +#include "trgt_ffmpeg.h" +#include +#include +#include +#include + +#endif + +/* === M A C R O S ========================================================= */ + +using namespace synfig; +using namespace std; +using namespace etl; + +/* === G L O B A L S ======================================================= */ + +SYNFIG_TARGET_INIT(ffmpeg_trgt); +SYNFIG_TARGET_SET_NAME(ffmpeg_trgt,"ffmpeg"); +SYNFIG_TARGET_SET_EXT(ffmpeg_trgt,"mpg"); +SYNFIG_TARGET_SET_VERSION(ffmpeg_trgt,"0.1"); +SYNFIG_TARGET_SET_CVS_ID(ffmpeg_trgt,"$Id$"); + +/* === M E T H O D S ======================================================= */ + +ffmpeg_trgt::ffmpeg_trgt(const char *Filename) +{ + file=NULL; + filename=Filename; + multi_image=false; + buffer=NULL; + color_buffer=0; + set_remove_alpha(); +} + +ffmpeg_trgt::~ffmpeg_trgt() +{ + if(file) + { + etl::yield(); + sleep(1); + pclose(file); + } + file=NULL; + delete [] buffer; + delete [] color_buffer; +} + +bool +ffmpeg_trgt::set_rend_desc(RendDesc *given_desc) +{ + //given_desc->set_pixel_format(PF_RGB); + + // Make sure that the width and height + // are multiples of 8 + given_desc->set_w((given_desc->get_w()+4)/8*8); + given_desc->set_h((given_desc->get_h()+4)/8*8); + + /* + // Valid framerates: + // 23.976, 24, 25, 29.97, 30, 50 ,59.94, 60 + float fps=given_desc->get_frame_rate(); + if(fps <24.0) + given_desc->set_frame_rate(23.976); + if(fps>=24.0 && fps <25.0) + given_desc->set_frame_rate(24); + if(fps>=25.0 && fps <29.97) + given_desc->set_frame_rate(25); + if(fps>=29.97 && fps <30.0) + given_desc->set_frame_rate(29.97); + if(fps>=29.97 && fps <30.0) + given_desc->set_frame_rate(29.97); + if(fps>=30.0 && fps <50.0) + given_desc->set_frame_rate(30.0); + if(fps>=50.0 && fps <59.94) + given_desc->set_frame_rate(50); + if(fps>=59.94) + given_desc->set_frame_rate(59.94); + */ + + desc=*given_desc; + + return true; +} + +bool +ffmpeg_trgt::init() +{ + imagecount=desc.get_frame_start(); + if(desc.get_frame_end()-desc.get_frame_start()>0) + multi_image=true; + string command; + + command=strprintf("ffmpeg -f image2pipe -vcodec ppm -an -r %f -i pipe: -loop -hq -title \"%s\" -vcodec mpeg1video -y \"%s\"\n",desc.get_frame_rate(),get_canvas()->get_name().c_str(),filename.c_str()); + + file=popen(command.c_str(),"w"); + + // etl::yield(); + + if(!file) + { + synfig::error(_("Unable to open pipe to ffmpeg")); + return false; + } + + return true; +} + +void +ffmpeg_trgt::end_frame() +{ + //fprintf(file, " "); + fflush(file); + imagecount++; +} + +bool +ffmpeg_trgt::start_frame(synfig::ProgressCallback *callback) +{ + int w=desc.get_w(),h=desc.get_h(); + + if(!file) + return false; + + fprintf(file, "P6\n"); + fprintf(file, "%d %d\n", w, h); + fprintf(file, "%d\n", 255); + + delete [] buffer; + buffer=new unsigned char[3*w]; + delete [] color_buffer; + color_buffer=new Color[w]; + + return true; +} + +Color * +ffmpeg_trgt::start_scanline(int scanline) +{ + return color_buffer; +} + +bool +ffmpeg_trgt::end_scanline() +{ + if(!file) + return false; + + convert_color_format(buffer, color_buffer, desc.get_w(), PF_RGB, gamma()); + + if(!fwrite(buffer,1,desc.get_w()*3,file)) + return false; + + return true; +} diff --git a/synfig-core/tags/stable/src/modules/mod_ffmpeg/trgt_ffmpeg.h b/synfig-core/tags/stable/src/modules/mod_ffmpeg/trgt_ffmpeg.h new file mode 100644 index 0000000..f16d39b --- /dev/null +++ b/synfig-core/tags/stable/src/modules/mod_ffmpeg/trgt_ffmpeg.h @@ -0,0 +1,68 @@ +/* === S Y N F I G ========================================================= */ +/*! \file trgt_ffmpeg.h +** \brief Template Header +** +** $Id$ +** +** \legal +** Copyright (c) 2002-2005 Robert B. Quattlebaum Jr., Adrian Bentley +** +** This package is free software; you can redistribute it and/or +** modify it under the terms of the GNU General Public License as +** published by the Free Software Foundation; either version 2 of +** the License, or (at your option) any later version. +** +** This package is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +** General Public License for more details. +** \endlegal +** +** === N O T E S =========================================================== +** +** ========================================================================= */ + +/* === S T A R T =========================================================== */ + +#ifndef __SYNFIG_TRGT_FFMPEG_H +#define __SYNFIG_TRGT_FFMPEG_H + +/* === H E A D E R S ======================================================= */ + +#include +#include +#include + +/* === M A C R O S ========================================================= */ + +/* === T Y P E D E F S ===================================================== */ + +/* === C L A S S E S & S T R U C T S ======================================= */ + +class ffmpeg_trgt : public synfig::Target_Scanline +{ + SYNFIG_TARGET_MODULE_EXT +private: + int imagecount; + bool multi_image; + FILE *file; + synfig::String filename; + unsigned char *buffer; + synfig::Color *color_buffer; +public: + ffmpeg_trgt(const char *filename); + + virtual bool set_rend_desc(synfig::RendDesc *desc); + virtual bool init(); + virtual bool start_frame(synfig::ProgressCallback *cb); + virtual void end_frame(); + + virtual ~ffmpeg_trgt(); + + virtual synfig::Color * start_scanline(int scanline); + virtual bool end_scanline(); +}; + +/* === E N D =============================================================== */ + +#endif diff --git a/synfig-core/tags/stable/src/modules/mod_ffmpeg/unmod_ffmpeg.nsh b/synfig-core/tags/stable/src/modules/mod_ffmpeg/unmod_ffmpeg.nsh new file mode 100644 index 0000000..09ed59b --- /dev/null +++ b/synfig-core/tags/stable/src/modules/mod_ffmpeg/unmod_ffmpeg.nsh @@ -0,0 +1,8 @@ +Section "un.mod_ffmpeg" + Delete "$INSTDIR\lib\synfig\modules\mod_ffmpeg.dll" + RMDir "$INSTDIR\lib\synfig\modules" + RMDir "$INSTDIR\lib\synfig" + RMDir "$INSTDIR\lib" + RMDir "$INSTDIR" +SectionEnd + diff --git a/synfig-core/tags/stable/src/modules/mod_filter/Makefile.am b/synfig-core/tags/stable/src/modules/mod_filter/Makefile.am new file mode 100644 index 0000000..ea54387 --- /dev/null +++ b/synfig-core/tags/stable/src/modules/mod_filter/Makefile.am @@ -0,0 +1,14 @@ +# $Id$ + + +MAINTAINERCLEANFILES=Makefile.in +INCLUDES = -I$(top_srcdir)/src + +moduledir=@MODULE_DIR@ + +module_LTLIBRARIES = libmod_filter.la +libmod_filter_la_SOURCES = blur.cpp blur.h colorcorrect.cpp colorcorrect.h halftone2.cpp halftone2.h lumakey.cpp lumakey.h radialblur.cpp radialblur.h main.cpp halftone.cpp halftone.h halftone3.cpp halftone3.h +libmod_filter_la_CXXFLAGS = @SYNFIG_CFLAGS@ +libmod_filter_la_LIBADD = -L../../synfig -lsynfig @SYNFIG_LIBS@ +libmod_filter_la_LDFLAGS = -module -no-undefined +EXTRA_DIST= mod_filter.nsh unmod_filter.nsh diff --git a/synfig-core/tags/stable/src/modules/mod_filter/blur.cpp b/synfig-core/tags/stable/src/modules/mod_filter/blur.cpp new file mode 100644 index 0000000..3f22b9c --- /dev/null +++ b/synfig-core/tags/stable/src/modules/mod_filter/blur.cpp @@ -0,0 +1,263 @@ +/* === S Y N F I G ========================================================= */ +/*! \file mod_filter/blur.cpp +** \brief Template Header +** +** $Id$ +** +** \legal +** Copyright (c) 2002-2005 Robert B. Quattlebaum Jr., Adrian Bentley +** +** This package is free software; you can redistribute it and/or +** modify it under the terms of the GNU General Public License as +** published by the Free Software Foundation; either version 2 of +** the License, or (at your option) any later version. +** +** This package is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +** General Public License for more details. +** \endlegal +*/ +/* ========================================================================= */ + +/* === H E A D E R S ======================================================= */ + +#ifdef USING_PCH +# include "pch.h" +#else +#ifdef HAVE_CONFIG_H +# include +#endif + +#include "blur.h" + +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include +#include + +#endif + +using namespace synfig; +using namespace etl; +using namespace std; + +/*#define TYPE_BOX 0 +#define TYPE_FASTGUASSIAN 1 +#define TYPE_FASTGAUSSIAN 1 +#define TYPE_CROSS 2 +#define TYPE_GUASSIAN 3 +#define TYPE_GAUSSIAN 3 +#define TYPE_DISC 4 +*/ + +/* -- G L O B A L S --------------------------------------------------------- */ + +SYNFIG_LAYER_INIT(Blur_Layer); +SYNFIG_LAYER_SET_NAME(Blur_Layer,"blur"); +SYNFIG_LAYER_SET_LOCAL_NAME(Blur_Layer,_("Blur")); +SYNFIG_LAYER_SET_CATEGORY(Blur_Layer,_("Blurs")); +SYNFIG_LAYER_SET_VERSION(Blur_Layer,"0.2"); +SYNFIG_LAYER_SET_CVS_ID(Blur_Layer,"$Id$"); + +/* -- F U N C T I O N S ----------------------------------------------------- */ + +inline void clamp(synfig::Vector &v) +{ + if(v[0]<0.0)v[0]=0.0; + if(v[1]<0.0)v[1]=0.0; +} + +Blur_Layer::Blur_Layer(): + Layer_Composite (1.0,Color::BLEND_STRAIGHT), + size(0.1,0.1), + type(Blur::FASTGAUSSIAN) +{ +} + +bool +Blur_Layer::set_param(const String ¶m, const ValueBase &value) +{ + IMPORT_PLUS(size,clamp(size)); + IMPORT(type); + + return Layer_Composite::set_param(param,value); +} + +ValueBase +Blur_Layer::get_param(const String ¶m)const +{ + EXPORT(size); + EXPORT(type); + + EXPORT_NAME(); + EXPORT_VERSION(); + + return Layer_Composite::get_param(param); +} + +Color +Blur_Layer::get_color(Context context, const Point &pos)const +{ + Point blurpos = Blur(size,type)(pos); + + if(get_amount()==1.0 && get_blend_method()==Color::BLEND_STRAIGHT) + return context.get_color(blurpos); + + if(get_amount()==0.0) + return context.get_color(pos); + + return Color::blend(context.get_color(blurpos),context.get_color(pos),get_amount(),get_blend_method()); +} + +bool +Blur_Layer::accelerated_render(Context context,Surface *surface,int quality, const RendDesc &renddesc, ProgressCallback *cb)const +{ + // int x,y; + SuperCallback stageone(cb,0,5000,10000); + SuperCallback stagetwo(cb,5000,10000,10000); + + const int w = renddesc.get_w(), + h = renddesc.get_h(); + const Real pw = renddesc.get_pw(), + ph = renddesc.get_ph(); + + RendDesc workdesc(renddesc); + Surface worksurface,blurred; + + //callbacks depend on how long the blur takes + if(size[0] || size[1]) + { + if(type == Blur::DISC) + { + stageone = SuperCallback(cb,0,5000,10000); + stagetwo = SuperCallback(cb,5000,10000,10000); + } + else + { + stageone = SuperCallback(cb,0,9000,10000); + stagetwo = SuperCallback(cb,9000,10000,10000); + } + } + else + { + stageone = SuperCallback(cb,0,9999,10000); + stagetwo = SuperCallback(cb,9999,10000,10000); + } + + //expand the working surface to accommodate the blur + + //the expanded size = 1/2 the size in each direction rounded up + int halfsizex = (int) (abs(size[0]*.5/pw) + 3), + halfsizey = (int) (abs(size[1]*.5/ph) + 3); + + //expand by 1/2 size in each direction on either side + switch(type) + { + case Blur::DISC: + case Blur::BOX: + case Blur::CROSS: + { + workdesc.set_subwindow(-max(1,halfsizex),-max(1,halfsizey),w+2*max(1,halfsizex),h+2*max(1,halfsizey)); + break; + } + case Blur::FASTGAUSSIAN: + { + if(quality < 4) + { + halfsizex*=2; + halfsizey*=2; + } + workdesc.set_subwindow(-max(1,halfsizex),-max(1,halfsizey),w+2*max(1,halfsizex),h+2*max(1,halfsizey)); + break; + } + case Blur::GAUSSIAN: + { + #define GAUSSIAN_ADJUSTMENT (0.05) + Real pw = (Real)workdesc.get_w()/(workdesc.get_br()[0]-workdesc.get_tl()[0]); + Real ph = (Real)workdesc.get_h()/(workdesc.get_br()[1]-workdesc.get_tl()[1]); + + pw=pw*pw; + ph=ph*ph; + + halfsizex = (int)(abs(pw)*size[0]*GAUSSIAN_ADJUSTMENT+0.5); + halfsizey = (int)(abs(ph)*size[1]*GAUSSIAN_ADJUSTMENT+0.5); + + halfsizex = (halfsizex + 1)/2; + halfsizey = (halfsizey + 1)/2; + workdesc.set_subwindow( -halfsizex, -halfsizey, w+2*halfsizex, h+2*halfsizey ); + + break; + } + } + + //render the background onto the expanded surface + if(!context.accelerated_render(&worksurface,quality,workdesc,&stageone)) + return false; + + //blur the image + Blur(size,type,&stagetwo)(worksurface,workdesc.get_br()-workdesc.get_tl(),blurred); + + //be sure the surface is of the correct size + surface->set_wh(renddesc.get_w(),renddesc.get_h()); + + { + Surface::pen pen(surface->begin()); + worksurface.blit_to(pen,halfsizex,halfsizey,renddesc.get_w(),renddesc.get_h()); + } + { + Surface::alpha_pen pen(surface->begin()); + pen.set_alpha(get_amount()); + pen.set_blend_method(get_blend_method()); + blurred.blit_to(pen,halfsizex,halfsizey,renddesc.get_w(),renddesc.get_h()); + } + if(cb && !cb->amount_complete(10000,10000)) + { + //if(cb)cb->error(strprintf(__FILE__"%d: Accelerated Renderer Failure",__LINE__)); + return false; + } + + return true; +} + +Layer::Vocab +Blur_Layer::get_param_vocab(void)const +{ + Layer::Vocab ret(Layer_Composite::get_param_vocab()); + + ret.push_back(ParamDesc("size") + .set_local_name(_("Size")) + .set_description(_("Size of Blur")) + ); + ret.push_back(ParamDesc("type") + .set_local_name(_("Type")) + .set_description(_("Type of blur to use")) + .set_hint("enum") + .add_enum_value(Blur::BOX,"box",_("Box Blur")) + .add_enum_value(Blur::FASTGAUSSIAN,"fastgaussian",_("Fast Gaussian Blur")) + .add_enum_value(Blur::CROSS,"cross",_("Cross-Hatch Blur")) + .add_enum_value(Blur::GAUSSIAN,"gaussian",_("Gaussian Blur")) + .add_enum_value(Blur::DISC,"disc",_("Disc Blur")) + ); + + return ret; +} + +Rect +Blur_Layer::get_full_bounding_rect(Context context)const +{ + if(is_disabled() || Color::is_onto(get_blend_method())) + return context.get_full_bounding_rect(); + + Rect bounds(context.get_full_bounding_rect().expand_x(size[0]).expand_y(size[1])); + + return bounds; +} diff --git a/synfig-core/tags/stable/src/modules/mod_filter/blur.h b/synfig-core/tags/stable/src/modules/mod_filter/blur.h new file mode 100644 index 0000000..ddbdb81 --- /dev/null +++ b/synfig-core/tags/stable/src/modules/mod_filter/blur.h @@ -0,0 +1,65 @@ +/* === S Y N F I G ========================================================= */ +/*! \file mod_filter/blur.h +** \brief Template Header +** +** $Id$ +** +** \legal +** Copyright (c) 2002-2005 Robert B. Quattlebaum Jr., Adrian Bentley +** +** This package is free software; you can redistribute it and/or +** modify it under the terms of the GNU General Public License as +** published by the Free Software Foundation; either version 2 of +** the License, or (at your option) any later version. +** +** This package is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +** General Public License for more details. +** \endlegal +*/ +/* ========================================================================= */ + +/* === H E A D E R S ======================================================= */ + +#ifndef __SYNFIG_LAYER_BLUR_H__ +#define __SYNFIG_LAYER_BLUR_H__ + +/* -- H E A D E R S --------------------------------------------------------- */ + +#include +#include +#include +#include + +using namespace synfig; +using namespace std; +using namespace etl; + +class Blur_Layer : public synfig::Layer_Composite +{ + SYNFIG_LAYER_MODULE_EXT +private: + synfig::Point size; + int type; + +public: + Blur_Layer(); + + virtual bool set_param(const String & param, const synfig::ValueBase &value); + + virtual ValueBase get_param(const String & param)const; + + virtual Color get_color(Context context, const Point &pos)const; + + virtual bool accelerated_render(Context context,Surface *surface,int quality, const RendDesc &renddesc, ProgressCallback *cb)const; + virtual synfig::Rect get_full_bounding_rect(Context context)const; + + virtual Vocab get_param_vocab()const; +}; // END of class Blur + +/* -- E X T E R N S --------------------------------------------------------- */ + +/* -- E N D ----------------------------------------------------------------- */ + +#endif diff --git a/synfig-core/tags/stable/src/modules/mod_filter/colorcorrect.cpp b/synfig-core/tags/stable/src/modules/mod_filter/colorcorrect.cpp new file mode 100644 index 0000000..5afce85 --- /dev/null +++ b/synfig-core/tags/stable/src/modules/mod_filter/colorcorrect.cpp @@ -0,0 +1,258 @@ +/* === S Y N F I G ========================================================= */ +/*! \file colorcorrect.cpp +** \brief Template Header +** +** $Id$ +** +** \legal +** Copyright (c) 2002-2005 Robert B. Quattlebaum Jr., Adrian Bentley +** +** This package is free software; you can redistribute it and/or +** modify it under the terms of the GNU General Public License as +** published by the Free Software Foundation; either version 2 of +** the License, or (at your option) any later version. +** +** This package is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +** General Public License for more details. +** \endlegal +*/ +/* ========================================================================= */ + +/* === H E A D E R S ======================================================= */ + +#ifdef USING_PCH +# include "pch.h" +#else +#ifdef HAVE_CONFIG_H +# include +#endif + +#include "colorcorrect.h" +#include +#include +#include +#include +#include +#include +#include +#include + +#endif + +/* === U S I N G =========================================================== */ + +using namespace etl; +using namespace std; +using namespace synfig; + +/* === G L O B A L S ======================================================= */ + +SYNFIG_LAYER_INIT(Layer_ColorCorrect); +SYNFIG_LAYER_SET_NAME(Layer_ColorCorrect,"colorcorrect"); +SYNFIG_LAYER_SET_LOCAL_NAME(Layer_ColorCorrect,_("Color Correct")); +SYNFIG_LAYER_SET_CATEGORY(Layer_ColorCorrect,_("Filters")); +SYNFIG_LAYER_SET_VERSION(Layer_ColorCorrect,"0.1"); +SYNFIG_LAYER_SET_CVS_ID(Layer_ColorCorrect,"$Id$"); + +/* === P R O C E D U R E S ================================================= */ + +/* === M E T H O D S ======================================================= */ + +/* === E N T R Y P O I N T ================================================= */ + +Layer_ColorCorrect::Layer_ColorCorrect(): + hue_adjust(Angle::zero()), + brightness(0), + contrast(1.0), + exposure(0.0) +{ +} + +inline Color +Layer_ColorCorrect::correct_color(const Color &in)const +{ + Color ret(in); + Real brightness((this->brightness-0.5)*this->contrast+0.5); + + if(gamma.get_gamma_r()!=1.0) + { + if(ret.get_r() < 0) + { + ret.set_r(-gamma.r_F32_to_F32(-ret.get_r())); + }else + { + ret.set_r(gamma.r_F32_to_F32(ret.get_r())); + } + } + if(gamma.get_gamma_g()!=1.0) + { + if(ret.get_g() < 0) + { + ret.set_g(-gamma.g_F32_to_F32(-ret.get_g())); + }else + { + ret.set_g(gamma.g_F32_to_F32(ret.get_g())); + } + } + if(gamma.get_gamma_b()!=1.0) + { + if(ret.get_b() < 0) + { + ret.set_b(-gamma.b_F32_to_F32(-ret.get_b())); + }else + { + ret.set_b(gamma.b_F32_to_F32(ret.get_b())); + } + } + + assert(!isnan(ret.get_r())); + assert(!isnan(ret.get_g())); + assert(!isnan(ret.get_b())); + + if(exposure!=0.0) + { + const float factor(exp(exposure)); + ret.set_r(ret.get_r()*factor); + ret.set_g(ret.get_g()*factor); + ret.set_b(ret.get_b()*factor); + } + + // Adjust Contrast + if(contrast!=1.0) + { + ret.set_r(ret.get_r()*contrast); + ret.set_g(ret.get_g()*contrast); + ret.set_b(ret.get_b()*contrast); + } + + if(brightness) + { + // Adjust R Channel Brightness + if(ret.get_r()>-brightness) + ret.set_r(ret.get_r()+brightness); + else if(ret.get_r()-brightness) + ret.set_g(ret.get_g()+brightness); + else if(ret.get_g()-brightness) + ret.set_b(ret.get_b()+brightness); + else if(ret.get_b()begin()); + + for(y=0;yamount_complete(10000,10000)) + return false; + + return true; +} + +Rect +Layer_ColorCorrect::get_full_bounding_rect(Context context)const +{ + return context.get_full_bounding_rect(); +} diff --git a/synfig-core/tags/stable/src/modules/mod_filter/colorcorrect.h b/synfig-core/tags/stable/src/modules/mod_filter/colorcorrect.h new file mode 100644 index 0000000..6840483 --- /dev/null +++ b/synfig-core/tags/stable/src/modules/mod_filter/colorcorrect.h @@ -0,0 +1,79 @@ +/* === S Y N F I G ========================================================= */ +/*! \file colorcorrect.h +** \brief Template Header +** +** $Id$ +** +** \legal +** Copyright (c) 2002-2005 Robert B. Quattlebaum Jr., Adrian Bentley +** +** This package is free software; you can redistribute it and/or +** modify it under the terms of the GNU General Public License as +** published by the Free Software Foundation; either version 2 of +** the License, or (at your option) any later version. +** +** This package is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +** General Public License for more details. +** \endlegal +*/ +/* ========================================================================= */ + +/* === S T A R T =========================================================== */ + +#ifndef __SYNFIG_LAYER_COLORCORRECT_H +#define __SYNFIG_LAYER_COLORCORRECT_H + +/* === H E A D E R S ======================================================= */ + +#include +#include +#include +#include + +/* === M A C R O S ========================================================= */ + +/* === T Y P E D E F S ===================================================== */ + +/* === C L A S S E S & S T R U C T S ======================================= */ + +namespace synfig { + +class Layer_ColorCorrect : public Layer +{ + SYNFIG_LAYER_MODULE_EXT + +private: + + Angle hue_adjust; + Real brightness; + Real contrast; + Real exposure; + + Gamma gamma; + + Color correct_color(const Color &in)const; + +public: + + Layer_ColorCorrect(); + + virtual bool set_param(const String & param, const synfig::ValueBase &value); + + virtual ValueBase get_param(const String & param)const; + + virtual Color get_color(Context context, const Point &pos)const; + + virtual Rect get_full_bounding_rect(Context context)const; + + virtual bool accelerated_render(Context context,Surface *surface,int quality, const RendDesc &renddesc, ProgressCallback *cb)const; + + virtual Vocab get_param_vocab()const; +}; // END of class Layer_ColorCorrect + +}; // END of namespace synfig + +/* === E N D =============================================================== */ + +#endif diff --git a/synfig-core/tags/stable/src/modules/mod_filter/halftone.cpp b/synfig-core/tags/stable/src/modules/mod_filter/halftone.cpp new file mode 100644 index 0000000..4afacd0 --- /dev/null +++ b/synfig-core/tags/stable/src/modules/mod_filter/halftone.cpp @@ -0,0 +1,167 @@ +/* === S Y N F I G ========================================================= */ +/*! \file halftone.cpp +** \brief blehh +** +** $Id$ +** +** \legal +** Copyright (c) 2002-2005 Robert B. Quattlebaum Jr., Adrian Bentley +** +** This package is free software; you can redistribute it and/or +** modify it under the terms of the GNU General Public License as +** published by the Free Software Foundation; either version 2 of +** the License, or (at your option) any later version. +** +** This package is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +** General Public License for more details. +** \endlegal +*/ +/* ========================================================================= */ + +/* === H E A D E R S ======================================================= */ + +#ifdef USING_PCH +# include "pch.h" +#else +#ifdef HAVE_CONFIG_H +# include +#endif + +#include "halftone.h" + +#endif + +/* === M A C R O S ========================================================= */ + +using namespace synfig; +using namespace std; +using namespace etl; + +/* === G L O B A L S ======================================================= */ + + +/* === P R O C E D U R E S ================================================= */ + +#define SQRT2 (1.414213562f) + +/* === M E T H O D S ======================================================= */ + +float +Halftone::operator()(const Point &point, const float& luma, float supersample)const +{ + float halftone(mask(point)); + + if(supersample>=0.5f) + supersample=0.4999999999f; + + halftone=(halftone-0.5f)*(1.0f-supersample*2.0f)+0.5f; + + const float diff(halftone-luma); + + if(supersample) + { + const float amount(diff/(supersample*2.0f)+0.5f); + + if(amount<=0.0f+0.01f) + return 1.0f; + else if(amount>=1.0f-0.01f) + return 0.0f; + else + return 1.0f-amount; + } + else + { + if(diff>=0) + return 0.0f; + else + return 1.0f; + } + + return 0.0f; +} + +float +Halftone::mask(synfig::Point point)const +{ + float radius1; + float radius2; + + point-=offset; + + { + const float a(Angle::sin(-angle).get()), b(Angle::cos(-angle).get()); + const float u(point[0]),v(point[1]); + + point[0]=b*u-a*v; + point[1]=a*u+b*v; + } + + if(type==TYPE_STRIPE) + { + Point pnt(fmod(point[0],size[0]),fmod(point[1],size[1])); + while(pnt[0]<0)pnt[0]+=abs(size[0]); + while(pnt[1]<0)pnt[1]+=abs(size[1]); + + float x(pnt[1]/size[1]); + if(x>0.5)x=1.0-x; + x*=2; + return x; + } + + { + Point pnt(fmod(point[0],size[0]),fmod(point[1],size[1])); + while(pnt[0]<0)pnt[0]+=abs(size[0]); + while(pnt[1]<0)pnt[1]+=abs(size[1]); + pnt-=Vector(size[0]*0.5,size[1]*0.5); + pnt*=2.0; + pnt[0]/=size[0]; + pnt[1]/=size[1]; + + radius1=pnt.mag()/SQRT2; + radius1*=radius1; + } + if(type==TYPE_DARKONLIGHT || type== TYPE_LIGHTONDARK) + return radius1; + + { + Point pnt(fmod(point[0]+size[0]*0.5,size[0]),fmod(point[1]+size[0]*0.5,size[1])); + while(pnt[0]<0)pnt[0]+=abs(size[0]); + while(pnt[1]<0)pnt[1]+=abs(size[1]); + pnt-=Vector(size[0]*0.5,size[1]*0.5); + pnt*=2.0; + pnt[0]/=size[0]; + pnt[1]/=size[1]; + + radius2=pnt.mag()/SQRT2; + radius2*=radius2; + } + + if(type==TYPE_DIAMOND) + { + //return (radius1+(1.0f-radius2))*0.5; + float x((radius1+(1.0f-radius2))*0.5); + //float x(((radius2-radius1)*((radius1+(1.0f-radius2))*0.5)+radius1)*2.0f); + x-=0.5; + x*=2.0; + if(x<0)x=-sqrt(-x);else x=sqrt(x); + x*=1.01f; + x/=2.0; + x+=0.5; + return x; + } + + if(type==TYPE_SYMMETRIC) + { + float x(((radius2-radius1)*((radius1+(1.0f-radius2))*0.5)+radius1)*2.0f); + x-=0.5; + x*=2.0; + if(x<0)x=-sqrt(-x);else x=sqrt(x); + x*=1.01f; + x/=2.0; + x+=0.5; + return x; + } + return 0; +} diff --git a/synfig-core/tags/stable/src/modules/mod_filter/halftone.h b/synfig-core/tags/stable/src/modules/mod_filter/halftone.h new file mode 100644 index 0000000..43d83d0 --- /dev/null +++ b/synfig-core/tags/stable/src/modules/mod_filter/halftone.h @@ -0,0 +1,61 @@ +/* === S Y N F I G ========================================================= */ +/*! \file halftone.h +** \brief Template Header +** +** $Id$ +** +** \legal +** Copyright (c) 2002-2005 Robert B. Quattlebaum Jr., Adrian Bentley +** +** This package is free software; you can redistribute it and/or +** modify it under the terms of the GNU General Public License as +** published by the Free Software Foundation; either version 2 of +** the License, or (at your option) any later version. +** +** This package is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +** General Public License for more details. +** \endlegal +*/ +/* ========================================================================= */ + +/* === S T A R T =========================================================== */ + +#ifndef __SYNFIG_HALFTONE_H +#define __SYNFIG_HALFTONE_H + +/* === H E A D E R S ======================================================= */ + +#include +#include + +/* === M A C R O S ========================================================= */ + +#define TYPE_SYMMETRIC 0 +#define TYPE_DARKONLIGHT 1 +#define TYPE_LIGHTONDARK 2 +#define TYPE_DIAMOND 3 +#define TYPE_STRIPE 4 + +/* === T Y P E D E F S ===================================================== */ + +/* === C L A S S E S & S T R U C T S ======================================= */ + +class Halftone +{ +public: + + int type; + synfig::Point offset; + synfig::Vector size; + synfig::Angle angle; + + float mask(synfig::Point point)const; + + float operator()(const synfig::Point &point, const float& intensity, float supersample=0)const; +}; + +/* === E N D =============================================================== */ + +#endif diff --git a/synfig-core/tags/stable/src/modules/mod_filter/halftone2.cpp b/synfig-core/tags/stable/src/modules/mod_filter/halftone2.cpp new file mode 100644 index 0000000..202e719 --- /dev/null +++ b/synfig-core/tags/stable/src/modules/mod_filter/halftone2.cpp @@ -0,0 +1,242 @@ +/* === S Y N F I G ========================================================= */ +/*! \file halftone2.cpp +** \brief blehh +** +** $Id$ +** +** \legal +** Copyright (c) 2002-2005 Robert B. Quattlebaum Jr., Adrian Bentley +** +** This package is free software; you can redistribute it and/or +** modify it under the terms of the GNU General Public License as +** published by the Free Software Foundation; either version 2 of +** the License, or (at your option) any later version. +** +** This package is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +** General Public License for more details. +** \endlegal +*/ +/* ========================================================================= */ + +/* === H E A D E R S ======================================================= */ + +#ifdef USING_PCH +# include "pch.h" +#else +#ifdef HAVE_CONFIG_H +# include +#endif + +#include "halftone2.h" +#include "halftone.h" + +#include +#include +#include +#include +#include +#include +#include +#include + +#endif + +/* === M A C R O S ========================================================= */ + +using namespace synfig; +using namespace std; +using namespace etl; + +/* === G L O B A L S ======================================================= */ + +SYNFIG_LAYER_INIT(Halftone2); +SYNFIG_LAYER_SET_NAME(Halftone2,"halftone2"); +SYNFIG_LAYER_SET_LOCAL_NAME(Halftone2,_("Halftone2")); +SYNFIG_LAYER_SET_CATEGORY(Halftone2,_("Filters")); +SYNFIG_LAYER_SET_VERSION(Halftone2,"0.0"); +SYNFIG_LAYER_SET_CVS_ID(Halftone2,"$Id$"); + +/* === P R O C E D U R E S ================================================= */ + +/* === M E T H O D S ======================================================= */ + +Halftone2::Halftone2(): + color_dark(Color::black()), + color_light(Color::white()) +{ + halftone.offset=(synfig::Point(0,0)); + halftone.size=(synfig::Vector(0.25,0.25)); + halftone.angle=(Angle::zero()); + halftone.type=TYPE_SYMMETRIC; + + set_blend_method(Color::BLEND_STRAIGHT); +} + +inline Color +Halftone2::color_func(const Point &point, float supersample,const Color& color)const +{ + const float amount(halftone(point,color.get_y(),supersample)); + Color halfcolor; + + if(amount<=0.0f) + halfcolor=color_dark; + else if(amount>=1.0f) + halfcolor=color_light; + else + halfcolor=Color::blend(color_light,color_dark,amount,Color::BLEND_STRAIGHT); + + halfcolor.set_a(color.get_a()); + + return halfcolor; +} + +inline float +Halftone2::calc_supersample(const synfig::Point &x, float pw,float ph)const +{ + return abs(pw/(halftone.size).mag()); +} + +synfig::Layer::Handle +Halftone2::hit_check(synfig::Context context, const synfig::Point &point)const +{ + return const_cast(this); +} + +bool +Halftone2::set_param(const String & param, const ValueBase &value) +{ + IMPORT(color_dark); + IMPORT(color_light); + + IMPORT_AS(halftone.size,"size"); + IMPORT_AS(halftone.type,"type"); + IMPORT_AS(halftone.angle,"angle"); + IMPORT_AS(halftone.offset,"offset"); + + return Layer_Composite::set_param(param,value); +} + +ValueBase +Halftone2::get_param(const String & param)const +{ + EXPORT_AS(halftone.size,"size"); + EXPORT_AS(halftone.type,"type"); + EXPORT_AS(halftone.angle,"angle"); + EXPORT_AS(halftone.offset,"offset"); + + EXPORT(color_dark); + EXPORT(color_light); + + EXPORT_NAME(); + EXPORT_VERSION(); + + return Layer_Composite::get_param(param); +} + +Layer::Vocab +Halftone2::get_param_vocab()const +{ + Layer::Vocab ret(Layer_Composite::get_param_vocab()); + + ret.push_back(ParamDesc("offset") + .set_local_name(_("Mask Offset")) + .set_is_distance() + ); + ret.push_back(ParamDesc("angle") + .set_local_name(_("Mask Angle")) + .set_origin("offset") + ); + ret.push_back(ParamDesc("size") + .set_local_name(_("Mask Size")) + .set_is_distance() + .set_origin("offset") + ); + ret.push_back(ParamDesc("color_light") + .set_local_name(_("Light Color")) + ); + ret.push_back(ParamDesc("color_dark") + .set_local_name(_("Dark Color")) + ); + ret.push_back(ParamDesc("type") + .set_local_name(_("Type")) + .set_hint("enum") + .add_enum_value(TYPE_SYMMETRIC,"symmetric",_("Symmetric")) + .add_enum_value(TYPE_LIGHTONDARK,"lightondark",_("Light On Dark")) + //.add_enum_value(TYPE_DARKONLIGHT,"darkonlight",_("Dark on Light")) + .add_enum_value(TYPE_DIAMOND,"diamond",_("Diamond")) + .add_enum_value(TYPE_STRIPE,"stripe",_("Stripe")) + ); + + return ret; +} + +Color +Halftone2::get_color(Context context, const Point &point)const +{ + const Color undercolor(context.get_color(point)); + const Color color(color_func(point,0,undercolor)); + + if(get_amount()==1.0 && get_blend_method()==Color::BLEND_STRAIGHT) + return color; + else + return Color::blend(color,undercolor,get_amount(),get_blend_method()); +} + +bool +Halftone2::accelerated_render(Context context,Surface *surface,int quality, const RendDesc &renddesc, ProgressCallback *cb)const +{ + SuperCallback supercb(cb,0,9500,10000); + + if(!context.accelerated_render(surface,quality,renddesc,&supercb)) + return false; + if(get_amount()==0) + return true; + + const Real pw(renddesc.get_pw()),ph(renddesc.get_ph()); + const Point tl(renddesc.get_tl()); + const int w(surface->get_w()); + const int h(surface->get_h()); + const float supersample_size(abs(pw/(halftone.size).mag())); + + Surface::pen pen(surface->begin()); + Point pos; + int x,y; + + if(is_solid_color()) + { + for(y=0,pos[1]=tl[1];yamount_complete(10000,10000)) + return false; + + return true; +} diff --git a/synfig-core/tags/stable/src/modules/mod_filter/halftone2.h b/synfig-core/tags/stable/src/modules/mod_filter/halftone2.h new file mode 100644 index 0000000..0015ad6 --- /dev/null +++ b/synfig-core/tags/stable/src/modules/mod_filter/halftone2.h @@ -0,0 +1,73 @@ +/* === S Y N F I G ========================================================= */ +/*! \file halftone2.h +** \brief Template Header +** +** $Id$ +** +** \legal +** Copyright (c) 2002-2005 Robert B. Quattlebaum Jr., Adrian Bentley +** +** This package is free software; you can redistribute it and/or +** modify it under the terms of the GNU General Public License as +** published by the Free Software Foundation; either version 2 of +** the License, or (at your option) any later version. +** +** This package is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +** General Public License for more details. +** \endlegal +*/ +/* ========================================================================= */ + +/* === S T A R T =========================================================== */ + +#ifndef __SYNFIG_HALFTONE2_H +#define __SYNFIG_HALFTONE2_H + +/* === H E A D E R S ======================================================= */ + +#include +#include +#include +#include +#include +#include "halftone.h" + +/* === M A C R O S ========================================================= */ + +/* === T Y P E D E F S ===================================================== */ + +/* === C L A S S E S & S T R U C T S ======================================= */ + +class Halftone2 : public synfig::Layer_Composite +{ + SYNFIG_LAYER_MODULE_EXT + +private: + + Halftone halftone; + synfig::Color color_dark; + synfig::Color color_light; + + synfig::Color color_func(const synfig::Point &x, float supersample,const synfig::Color &under_color)const; + + float calc_supersample(const synfig::Point &x, float pw,float ph)const; + + //float halftone_func(synfig::Point x)const; + +public: + Halftone2(); + + virtual bool set_param(const synfig::String ¶m, const synfig::ValueBase &value); + virtual synfig::ValueBase get_param(const synfig::String ¶m)const; + virtual synfig::Color get_color(synfig::Context context, const synfig::Point &pos)const; + virtual bool accelerated_render(synfig::Context context,synfig::Surface *surface,int quality, const synfig::RendDesc &renddesc, synfig::ProgressCallback *cb)const; + synfig::Layer::Handle hit_check(synfig::Context context, const synfig::Point &point)const; + + virtual Vocab get_param_vocab()const; +}; + +/* === E N D =============================================================== */ + +#endif diff --git a/synfig-core/tags/stable/src/modules/mod_filter/halftone3.cpp b/synfig-core/tags/stable/src/modules/mod_filter/halftone3.cpp new file mode 100644 index 0000000..3677591 --- /dev/null +++ b/synfig-core/tags/stable/src/modules/mod_filter/halftone3.cpp @@ -0,0 +1,403 @@ +/* === S Y N F I G ========================================================= */ +/*! \file halftone3.cpp +** \brief blehh +** +** $Id$ +** +** \legal +** Copyright (c) 2002-2005 Robert B. Quattlebaum Jr., Adrian Bentley +** +** This package is free software; you can redistribute it and/or +** modify it under the terms of the GNU General Public License as +** published by the Free Software Foundation; either version 2 of +** the License, or (at your option) any later version. +** +** This package is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +** General Public License for more details. +** \endlegal +*/ +/* ========================================================================= */ + +/* === H E A D E R S ======================================================= */ + +#ifdef USING_PCH +# include "pch.h" +#else +#ifdef HAVE_CONFIG_H +# include +#endif + +#include "halftone3.h" +#include "halftone.h" + +#include +#include +#include +#include +#include +#include +#include +#include + +#endif + +/* === M A C R O S ========================================================= */ + +using namespace synfig; +using namespace std; +using namespace etl; + +/* === G L O B A L S ======================================================= */ + +SYNFIG_LAYER_INIT(Halftone3); +SYNFIG_LAYER_SET_NAME(Halftone3,"halftone3"); +SYNFIG_LAYER_SET_LOCAL_NAME(Halftone3,_("Halftone3")); +SYNFIG_LAYER_SET_CATEGORY(Halftone3,_("Filters")); +SYNFIG_LAYER_SET_VERSION(Halftone3,"0.0"); +SYNFIG_LAYER_SET_CVS_ID(Halftone3,"$Id$"); + +/* === P R O C E D U R E S ================================================= */ + +#define HALFSQRT2 (0.7) +#define SQRT2 (1.414213562f) + +/* === M E T H O D S ======================================================= */ + +Halftone3::Halftone3() +{ + size=(synfig::Vector(0.25,0.25)); + type=TYPE_SYMMETRIC; + + for(int i=0;i<3;i++) + { + tone[i].size=size; + tone[i].type=type; + tone[i].offset=(synfig::Point(0,0)); + tone[i].angle=Angle::deg(30.0)*(float)i; + } + + subtractive=true; + + if(subtractive) + { + color[0]=Color::cyan(); + color[1]=Color::magenta(); + color[2]=Color::yellow(); + } + else + { + color[0]=Color::red(); + color[1]=Color::green(); + color[2]=Color::blue(); + } + + set_blend_method(Color::BLEND_STRAIGHT); + + for(int i=0;i<3;i++) + for(int j=0;j<3;j++) + inverse_matrix[i][j]=(j==i)?1.0f:0.0f; + + sync(); +} + +void +Halftone3::sync() +{ + for(int i=0;i<3;i++) + { + tone[i].size=size; + tone[i].type=type; + } + +#define matrix inverse_matrix + //float matrix[3][3]; + + if(subtractive) + { + for(int i=0;i<3;i++) + { + matrix[i][0]=1.0f-(color[i].get_r()); + matrix[i][1]=1.0f-(color[i].get_g()); + matrix[i][2]=1.0f-(color[i].get_b()); + float mult=sqrt(matrix[i][0]*matrix[i][0]+matrix[i][1]*matrix[i][1]+matrix[i][2]*matrix[i][2]); + if(mult) + { + matrix[i][0]/=mult; + matrix[i][1]/=mult; + matrix[i][2]/=mult; + matrix[i][0]/=mult; + matrix[i][1]/=mult; + matrix[i][2]/=mult; + } + } + } + else + { + for(int i=0;i<3;i++) + { + matrix[i][0]=color[i].get_r(); + matrix[i][1]=color[i].get_g(); + matrix[i][2]=color[i].get_b(); + float mult=sqrt(matrix[i][0]*matrix[i][0]+matrix[i][1]*matrix[i][1]+matrix[i][2]*matrix[i][2]); + if(mult) + { + matrix[i][0]/=mult; + matrix[i][1]/=mult; + matrix[i][2]/=mult; + matrix[i][0]/=mult; + matrix[i][1]/=mult; + matrix[i][2]/=mult; + } + } + } +#undef matrix + + + +#if 0 + // Insert guass-jordan elimination code here + int k=0,i=0,j=0,z_size=3; +#define A inverse_matrix + + for (k=0;k(this); +} + +bool +Halftone3::set_param(const String & param, const ValueBase &value) +{ + IMPORT_PLUS(size, {tone[0].size=size; tone[1].size=size; tone[2].size=size;}); + IMPORT_PLUS(type, {tone[0].type=type; tone[1].type=type; tone[2].type=type;}); + + IMPORT_PLUS(color[0],sync()); + IMPORT_PLUS(color[1],sync()); + IMPORT_PLUS(color[2],sync()); + + IMPORT_PLUS(subtractive,sync()); + + IMPORT(tone[0].angle); + IMPORT(tone[0].offset); + + IMPORT(tone[1].angle); + IMPORT(tone[1].offset); + + IMPORT(tone[2].angle); + IMPORT(tone[2].offset); + + return Layer_Composite::set_param(param,value); +} + +ValueBase +Halftone3::get_param(const String & param)const +{ + EXPORT(size); + EXPORT(type); + + EXPORT(color[0]); + EXPORT(color[1]); + EXPORT(color[2]); + + EXPORT(subtractive); + + EXPORT(tone[0].angle); + EXPORT(tone[0].offset); + + EXPORT(tone[1].angle); + EXPORT(tone[1].offset); + + EXPORT(tone[2].angle); + EXPORT(tone[2].offset); + + EXPORT_NAME(); + EXPORT_VERSION(); + + return Layer_Composite::get_param(param); +} + +Layer::Vocab +Halftone3::get_param_vocab()const +{ + Layer::Vocab ret(Layer_Composite::get_param_vocab()); + + ret.push_back(ParamDesc("size") + .set_local_name(_("Mask Size")) + ); + ret.push_back(ParamDesc("type") + .set_local_name(_(" Type")) + .set_hint("enum") + .add_enum_value(TYPE_SYMMETRIC,"symmetric",_("Symmetric")) + .add_enum_value(TYPE_LIGHTONDARK,"lightondark",_("Light On Dark")) + //.add_enum_value(TYPE_DARKONLIGHT,"darkonlight",_("Dark on Light")) + .add_enum_value(TYPE_DIAMOND,"diamond",_("Diamond")) + .add_enum_value(TYPE_STRIPE,"stripe",_("Stripe")) + ); + ret.push_back(ParamDesc("subtractive") + .set_local_name(_("Subtractive Flag")) + ); + + for(int i=0;i<3;i++) + { + String chan_name(strprintf("Chan%d",i)); + + ret.push_back(ParamDesc(strprintf("color[%d]",i)) + .set_local_name(chan_name+_(" Color")) + ); + + ret.push_back(ParamDesc(strprintf("tone[%d].offset",i)) + .set_local_name(chan_name+_(" Mask Offset")) + .set_is_distance() + ); + ret.push_back(ParamDesc(strprintf("tone[%d].angle",i)) + .set_local_name(chan_name+_(" Mask Angle")) + .set_origin(strprintf("tone[%d].offset",i)) + ); + } + + return ret; +} + +Color +Halftone3::get_color(Context context, const Point &point)const +{ + const Color undercolor(context.get_color(point)); + const Color color(color_func(point,0,undercolor)); + + if(get_amount()==1.0 && get_blend_method()==Color::BLEND_STRAIGHT) + return color; + else + return Color::blend(color,undercolor,get_amount(),get_blend_method()); +} + +bool +Halftone3::accelerated_render(Context context,Surface *surface,int quality, const RendDesc &renddesc, ProgressCallback *cb)const +{ + SuperCallback supercb(cb,0,9500,10000); + + if(!context.accelerated_render(surface,quality,renddesc,&supercb)) + return false; + if(get_amount()==0) + return true; + + const Real pw(renddesc.get_pw()),ph(renddesc.get_ph()); + const Point tl(renddesc.get_tl()); + const int w(surface->get_w()); + const int h(surface->get_h()); + const float supersample_size(abs(pw/(tone[0].size).mag())); + + Surface::pen pen(surface->begin()); + Point pos; + int x,y; + + if(is_solid_color()) + { + for(y=0,pos[1]=tl[1];yamount_complete(10000,10000)) + return false; + + return true; +} diff --git a/synfig-core/tags/stable/src/modules/mod_filter/halftone3.h b/synfig-core/tags/stable/src/modules/mod_filter/halftone3.h new file mode 100644 index 0000000..5aea199 --- /dev/null +++ b/synfig-core/tags/stable/src/modules/mod_filter/halftone3.h @@ -0,0 +1,78 @@ +/* === S Y N F I G ========================================================= */ +/*! \file halftone3.h +** \brief Template Header +** +** $Id$ +** +** \legal +** Copyright (c) 2002-2005 Robert B. Quattlebaum Jr., Adrian Bentley +** +** This package is free software; you can redistribute it and/or +** modify it under the terms of the GNU General Public License as +** published by the Free Software Foundation; either version 2 of +** the License, or (at your option) any later version. +** +** This package is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +** General Public License for more details. +** \endlegal +*/ +/* ========================================================================= */ + +/* === S T A R T =========================================================== */ + +#ifndef __SYNFIG_HALFTONE3_H +#define __SYNFIG_HALFTONE3_H + +/* === H E A D E R S ======================================================= */ + +#include +#include +#include +#include +#include +#include "halftone.h" + +/* === M A C R O S ========================================================= */ + +/* === T Y P E D E F S ===================================================== */ + +/* === C L A S S E S & S T R U C T S ======================================= */ + +class Halftone3 : public synfig::Layer_Composite +{ + SYNFIG_LAYER_MODULE_EXT + +private: + + synfig::Vector size; + int type; + Halftone tone[3]; + synfig::Color color[3]; + float inverse_matrix[3][3]; + bool subtractive; + + synfig::Color color_func(const synfig::Point &x, float supersample,const synfig::Color &under_color)const; + + float calc_supersample(const synfig::Point &x, float pw,float ph)const; + + //float halftone_func(synfig::Point x)const; + + void sync(); + +public: + Halftone3(); + + virtual bool set_param(const synfig::String ¶m, const synfig::ValueBase &value); + virtual synfig::ValueBase get_param(const synfig::String ¶m)const; + virtual synfig::Color get_color(synfig::Context context, const synfig::Point &pos)const; + virtual bool accelerated_render(synfig::Context context,synfig::Surface *surface,int quality, const synfig::RendDesc &renddesc, synfig::ProgressCallback *cb)const; + synfig::Layer::Handle hit_check(synfig::Context context, const synfig::Point &point)const; + + virtual Vocab get_param_vocab()const; +}; + +/* === E N D =============================================================== */ + +#endif diff --git a/synfig-core/tags/stable/src/modules/mod_filter/lumakey.cpp b/synfig-core/tags/stable/src/modules/mod_filter/lumakey.cpp new file mode 100644 index 0000000..d0602e3 --- /dev/null +++ b/synfig-core/tags/stable/src/modules/mod_filter/lumakey.cpp @@ -0,0 +1,167 @@ +/* === S Y N F I G ========================================================= */ +/*! \file lumakey.cpp +** \brief Template Header +** +** $Id$ +** +** \legal +** Copyright (c) 2002-2005 Robert B. Quattlebaum Jr., Adrian Bentley +** +** This package is free software; you can redistribute it and/or +** modify it under the terms of the GNU General Public License as +** published by the Free Software Foundation; either version 2 of +** the License, or (at your option) any later version. +** +** This package is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +** General Public License for more details. +** \endlegal +*/ +/* ========================================================================= */ + +/* === H E A D E R S ======================================================= */ + +#ifdef USING_PCH +# include "pch.h" +#else +#ifdef HAVE_CONFIG_H +# include +#endif + +#include "lumakey.h" + +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#endif + +using namespace synfig; +using namespace std; +using namespace etl; + +/* === M A C R O S ========================================================= */ + +/* === G L O B A L S ======================================================= */ + +SYNFIG_LAYER_INIT(LumaKey); +SYNFIG_LAYER_SET_NAME(LumaKey,"lumakey"); +SYNFIG_LAYER_SET_LOCAL_NAME(LumaKey,_("LumaKey")); +SYNFIG_LAYER_SET_CATEGORY(LumaKey,_("Filters")); +SYNFIG_LAYER_SET_VERSION(LumaKey,"0.1"); +SYNFIG_LAYER_SET_CVS_ID(LumaKey,"$Id$"); + +/* === P R O C E D U R E S ================================================= */ + +/* === M E T H O D S ======================================================= */ + +LumaKey::LumaKey(): + Layer_Composite (1.0,Color::BLEND_STRAIGHT) +{ + set_blend_method(Color::BLEND_STRAIGHT); +} + + +bool +LumaKey::set_param(const String ¶m, const ValueBase &value) +{ + return Layer_Composite::set_param(param,value); +} + +ValueBase +LumaKey::get_param(const String ¶m)const +{ + EXPORT_NAME(); + EXPORT_VERSION(); + + return Layer_Composite::get_param(param); +} + +Layer::Vocab +LumaKey::get_param_vocab()const +{ + Layer::Vocab ret(Layer_Composite::get_param_vocab()); + +/* ret.push_back(ParamDesc("color") + .set_local_name(_("Color")) + .set_description(_("Color of checkers")) + ); + ret.push_back(ParamDesc("pos") + .set_local_name(_("Offset")) + ); + ret.push_back(ParamDesc("size") + .set_local_name(_("Size")) + .set_description(_("Size of checkers")) + .set_origin("pos") + ); +*/ + return ret; +} + +synfig::Layer::Handle +LumaKey::hit_check(synfig::Context context, const synfig::Point &getpos)const +{ + return context.hit_check(getpos); +} + +Color +LumaKey::get_color(Context context, const Point &getpos)const +{ + const Color color(context.get_color(getpos)); + + if(get_amount()==0.0) + return color; + + Color ret(color); + ret.set_a(ret.get_y()*ret.get_a()); + ret.set_y(1); + + if(get_amount()==1.0 && get_blend_method()==Color::BLEND_STRAIGHT) + return ret; + + return Color::blend(ret,color,get_amount(),get_blend_method()); +} + +bool +LumaKey::accelerated_render(Context context,Surface *surface,int quality, const RendDesc &renddesc, ProgressCallback *cb)const +{ + SuperCallback supercb(cb,0,9500,10000); + + if(!context.accelerated_render(surface,quality,renddesc,&supercb)) + return false; + + int x,y; + + Surface::pen pen(surface->begin()); + + for(y=0;yamount_complete(10000,10000)) + return false; + + return true; +} + +Rect +LumaKey::get_bounding_rect(Context context)const +{ + if(is_disabled()) + return Rect::zero(); + + return context.get_full_bounding_rect(); +} diff --git a/synfig-core/tags/stable/src/modules/mod_filter/lumakey.h b/synfig-core/tags/stable/src/modules/mod_filter/lumakey.h new file mode 100644 index 0000000..ddbd4e0 --- /dev/null +++ b/synfig-core/tags/stable/src/modules/mod_filter/lumakey.h @@ -0,0 +1,66 @@ +/* === S Y N F I G ========================================================= */ +/*! \file lumakey.h +** \brief Checkerboard Layer +** +** $Id$ +** +** \legal +** Copyright (c) 2002-2005 Robert B. Quattlebaum Jr., Adrian Bentley +** +** This package is free software; you can redistribute it and/or +** modify it under the terms of the GNU General Public License as +** published by the Free Software Foundation; either version 2 of +** the License, or (at your option) any later version. +** +** This package is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +** General Public License for more details. +** \endlegal +** +** === N O T E S =========================================================== +** +** ========================================================================= */ + +/* === S T A R T =========================================================== */ + +#ifndef __SYNFIG_LUMAKEY_H +#define __SYNFIG_LUMAKEY_H + +/* === H E A D E R S ======================================================= */ + +#include +#include +#include + +/* === M A C R O S ========================================================= */ + +/* === T Y P E D E F S ===================================================== */ + +/* === C L A S S E S & S T R U C T S ======================================= */ + +class LumaKey : public synfig::Layer_Composite, public synfig::Layer_NoDeform +{ + SYNFIG_LAYER_MODULE_EXT +private: + +public: + LumaKey(); + + virtual bool set_param(const synfig::String & param, const synfig::ValueBase &value); + + virtual synfig::ValueBase get_param(const synfig::String & param)const; + + virtual synfig::Color get_color(synfig::Context context, const synfig::Point &pos)const; + + virtual Vocab get_param_vocab()const; + + synfig::Layer::Handle hit_check(synfig::Context context, const synfig::Point &point)const; + virtual synfig::Rect get_bounding_rect(synfig::Context context)const; + + virtual bool accelerated_render(synfig::Context context,synfig::Surface *surface,int quality, const synfig::RendDesc &renddesc, synfig::ProgressCallback *cb)const; +}; + +/* === E N D =============================================================== */ + +#endif diff --git a/synfig-core/tags/stable/src/modules/mod_filter/main.cpp b/synfig-core/tags/stable/src/modules/mod_filter/main.cpp new file mode 100644 index 0000000..01feb7f --- /dev/null +++ b/synfig-core/tags/stable/src/modules/mod_filter/main.cpp @@ -0,0 +1,68 @@ +/* === S Y N F I G ========================================================= */ +/*! \file mod_filter/main.cpp +** \brief Template Header +** +** $Id$ +** +** \legal +** Copyright (c) 2002-2005 Robert B. Quattlebaum Jr., Adrian Bentley +** +** This package is free software; you can redistribute it and/or +** modify it under the terms of the GNU General Public License as +** published by the Free Software Foundation; either version 2 of +** the License, or (at your option) any later version. +** +** This package is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +** General Public License for more details. +** \endlegal +** +** === N O T E S =========================================================== +** +** ========================================================================= */ + +/* === H E A D E R S ======================================================= */ + +#define SYNFIG_MODULE + +#ifdef USING_PCH +# include "pch.h" +#else +#ifdef HAVE_CONFIG_H +# include +#endif + +#include +#include +#include + +#include "blur.h" +#include "colorcorrect.h" +#include "halftone2.h" +#include "halftone3.h" +#include "lumakey.h" +#include "radialblur.h" + +#endif + +/* === E N T R Y P O I N T ================================================= */ + +MODULE_DESC_BEGIN(libmod_filter) + MODULE_NAME("Filters") + MODULE_DESCRIPTION("Writeme") + MODULE_AUTHOR("Robert B. Quattlebaum") + MODULE_VERSION("1.0") + MODULE_COPYRIGHT(SYNFIG_COPYRIGHT) +MODULE_DESC_END + +MODULE_INVENTORY_BEGIN(libmod_filter) + BEGIN_LAYERS + LAYER(Blur_Layer) + LAYER(Halftone2) + LAYER(Halftone3) + LAYER(LumaKey) + LAYER(RadialBlur) + LAYER(Layer_ColorCorrect) + END_LAYERS +MODULE_INVENTORY_END diff --git a/synfig-core/tags/stable/src/modules/mod_filter/mod_filter.nsh b/synfig-core/tags/stable/src/modules/mod_filter/mod_filter.nsh new file mode 100644 index 0000000..617f20b --- /dev/null +++ b/synfig-core/tags/stable/src/modules/mod_filter/mod_filter.nsh @@ -0,0 +1,21 @@ +; The stuff to install +Section "mod_filter" Sec_mod_filter + +; SectionIn RO + + ; Set output path to the installation directory. + SetOutPath "$INSTDIR\lib\synfig\modules" + + ; Put file there + File /oname=mod_filter.dll "src\modules\mod_filter\.libs\libmod_filter-0.dll" + + + FileOpen $0 $INSTDIR\etc\synfig_modules.cfg a + FileSeek $0 0 END + FileWrite $0 "mod_filter" + FileWriteByte $0 "13" + FileWriteByte $0 "10" + FileClose $0 + +SectionEnd + diff --git a/synfig-core/tags/stable/src/modules/mod_filter/radialblur.cpp b/synfig-core/tags/stable/src/modules/mod_filter/radialblur.cpp new file mode 100644 index 0000000..786615a --- /dev/null +++ b/synfig-core/tags/stable/src/modules/mod_filter/radialblur.cpp @@ -0,0 +1,265 @@ +/* === S Y N F I G ========================================================= */ +/*! \file radialblur.cpp +** \brief Template Header +** +** $Id$ +** +** \legal +** Copyright (c) 2002-2005 Robert B. Quattlebaum Jr., Adrian Bentley +** +** This package is free software; you can redistribute it and/or +** modify it under the terms of the GNU General Public License as +** published by the Free Software Foundation; either version 2 of +** the License, or (at your option) any later version. +** +** This package is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +** General Public License for more details. +** \endlegal +** +** === N O T E S =========================================================== +** +** ========================================================================= */ + +/* === H E A D E R S ======================================================= */ + +#ifdef USING_PCH +# include "pch.h" +#else +#ifdef HAVE_CONFIG_H +# include +#endif + +#include "radialblur.h" +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#endif + +/* === M A C R O S ========================================================= */ + +/* === G L O B A L S ======================================================= */ + +SYNFIG_LAYER_INIT(RadialBlur); +SYNFIG_LAYER_SET_NAME(RadialBlur,"radial_blur"); +SYNFIG_LAYER_SET_LOCAL_NAME(RadialBlur,_("Radial Blur")); +SYNFIG_LAYER_SET_CATEGORY(RadialBlur,_("Blurs")); +SYNFIG_LAYER_SET_VERSION(RadialBlur,"0.1"); +SYNFIG_LAYER_SET_CVS_ID(RadialBlur,"$Id$"); + +/* === P R O C E D U R E S ================================================= */ + +/* === M E T H O D S ======================================================= */ + +/* === E N T R Y P O I N T ================================================= */ + +RadialBlur::RadialBlur(): + origin (0,0), + size (0.2), + fade_out(false) +{ +} + +RadialBlur::~RadialBlur() +{ +} + +bool +RadialBlur::set_param(const String & param, const ValueBase &value) +{ + IMPORT(origin); + IMPORT(size); + IMPORT(fade_out); + + return Layer_Composite::set_param(param,value); +} + +ValueBase +RadialBlur::get_param(const String ¶m)const +{ + EXPORT(origin); + EXPORT(size); + EXPORT(fade_out); + + EXPORT_NAME(); + EXPORT_VERSION(); + + return Layer_Composite::get_param(param); +} + +Layer::Vocab +RadialBlur::get_param_vocab()const +{ + Layer::Vocab ret(Layer_Composite::get_param_vocab()); + + ret.push_back(ParamDesc("origin") + .set_local_name(_("Origin")) + .set_description(_("Point where you want the origin to be")) + ); + + ret.push_back(ParamDesc("size") + .set_local_name(_("Size")) + .set_description(_("Size of blur")) + .set_origin("origin") + ); + + ret.push_back(ParamDesc("fade_out") + .set_local_name(_("Fade Out")) + ); + + return ret; +} + +Color +RadialBlur::get_color(Context context, const Point &p)const +{ + //! \writeme + return context.get_color(p); +} + +bool +RadialBlur::accelerated_render(Context context,Surface *surface,int quality, const RendDesc &renddesc, ProgressCallback *cb)const +{ + if(cb && !cb->amount_complete(0,10000)) + return false; + + Surface tmp_surface; + + if(!context.accelerated_render(surface,quality,renddesc,cb)) + return false; + + tmp_surface=*surface; + + int x,y; + + const Point tl(renddesc.get_tl()); + Point pos; + const int w(surface->get_w()); + const int h(surface->get_h()); + const Real pw(renddesc.get_pw()),ph(renddesc.get_ph()); + + Surface::alpha_pen apen(surface->begin()); + + apen.set_alpha(get_amount()); + apen.set_blend_method(get_blend_method()); + + int steps(5); + + if(quality>=9)steps=20; + else if(quality>=5)steps=30; + else if(quality>=4)steps=60; + else if(quality>=3)steps=100; + else steps=120; + + Surface::value_prep_type cooker; + + for(y=0,pos[1]=tl[1];y 0) ? 1 : -1; + dy = abs(y1 - y0); + sy = ((y1 - y0) > 0) ? 1 : -1; + if (dy > dx) + { + steep = 0; + swap(x0, y0); + swap(dx, dy); + swap(sx, sy); + swap(w,h); + } + e = (dy << 1) - dx; + for (i = 0; i < dx; i++) + { + if(y0>=0 && x0>=0 && y0= 0) + { + y0 += sy; + e -= (dx << 1); + } + x0 += sx; + e += (dy << 1); + } + if(poolsize) + { + pool/=poolsize; + apen.put_value(cooker.uncook(pool)); + } +/* + Point begin,end; + begin=pos; + end=(pos-origin)*(1.0f-size)+origin; + + Color pool(Color::alpha()); + float f,poolsize(0); + int i; + int steps(steps*size); + for(f=0,i=0;iamount_complete(10000,10000)) return false; + + return true; +} diff --git a/synfig-core/tags/stable/src/modules/mod_filter/radialblur.h b/synfig-core/tags/stable/src/modules/mod_filter/radialblur.h new file mode 100644 index 0000000..59d810a --- /dev/null +++ b/synfig-core/tags/stable/src/modules/mod_filter/radialblur.h @@ -0,0 +1,68 @@ +/* === S Y N F I G ========================================================= */ +/*! \file radialblur.h +** \brief Template Header +** +** $Id$ +** +** \legal +** Copyright (c) 2002-2005 Robert B. Quattlebaum Jr., Adrian Bentley +** +** This package is free software; you can redistribute it and/or +** modify it under the terms of the GNU General Public License as +** published by the Free Software Foundation; either version 2 of +** the License, or (at your option) any later version. +** +** This package is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +** General Public License for more details. +** \endlegal +** +** === N O T E S =========================================================== +** +** ========================================================================= */ + +/* === S T A R T =========================================================== */ + +#ifndef __SYNFIG_RADIALBLUR_H +#define __SYNFIG_RADIALBLUR_H + +/* === H E A D E R S ======================================================= */ + +#include +#include +#include + +/* === M A C R O S ========================================================= */ + +/* === T Y P E D E F S ===================================================== */ + +/* === C L A S S E S & S T R U C T S ======================================= */ + +using namespace synfig; +using namespace std; +using namespace etl; + +class RadialBlur : public Layer_Composite +{ + SYNFIG_LAYER_MODULE_EXT + friend class RadialBlur_Trans; +private: + Vector origin; + Real size; + bool fade_out; + +public: + RadialBlur(); + ~RadialBlur(); + + virtual bool set_param(const synfig::String & param, const synfig::ValueBase &value); + virtual ValueBase get_param(const synfig::String & param)const; + virtual Color get_color(Context context, const Point &pos)const; + virtual bool accelerated_render(Context context,Surface *surface,int quality, const RendDesc &renddesc, ProgressCallback *cb)const; + virtual Vocab get_param_vocab()const; +}; + +/* === E N D =============================================================== */ + +#endif diff --git a/synfig-core/tags/stable/src/modules/mod_filter/unmod_filter.nsh b/synfig-core/tags/stable/src/modules/mod_filter/unmod_filter.nsh new file mode 100644 index 0000000..3fcce9b --- /dev/null +++ b/synfig-core/tags/stable/src/modules/mod_filter/unmod_filter.nsh @@ -0,0 +1,8 @@ +Section "un.mod_filter" + Delete "$INSTDIR\lib\synfig\modules\mod_filter.dll" + RMDir "$INSTDIR\lib\synfig\modules" + RMDir "$INSTDIR\lib\synfig" + RMDir "$INSTDIR\lib" + RMDir "$INSTDIR" +SectionEnd + diff --git a/synfig-core/tags/stable/src/modules/mod_geometry/Makefile.am b/synfig-core/tags/stable/src/modules/mod_geometry/Makefile.am new file mode 100644 index 0000000..3d5f33f --- /dev/null +++ b/synfig-core/tags/stable/src/modules/mod_geometry/Makefile.am @@ -0,0 +1,18 @@ +# $Id$ + + +MAINTAINERCLEANFILES=Makefile.in +INCLUDES = -I$(top_srcdir)/src + +# GCC on MacOS X does not take kindly to the -ffastmath optimization +# in this module for some reason. +AM_CXXFLAGS=`echo @CXXFLAGS@ | sed s/-ffast-math//g` + +moduledir=@MODULE_DIR@ + +module_LTLIBRARIES = libmod_geometry.la +libmod_geometry_la_SOURCES = rectangle.cpp rectangle.h star.h star.cpp checkerboard.cpp checkerboard.h circle.cpp circle.h region.h region.cpp outline.h outline.cpp main.cpp +libmod_geometry_la_CXXFLAGS = @SYNFIG_CFLAGS@ +libmod_geometry_la_LIBADD = -L../../synfig -lsynfig @SYNFIG_LIBS@ +libmod_geometry_la_LDFLAGS = -module -no-undefined +EXTRA_DIST= mod_geometry.nsh unmod_geometry.nsh diff --git a/synfig-core/tags/stable/src/modules/mod_geometry/checkerboard.cpp b/synfig-core/tags/stable/src/modules/mod_geometry/checkerboard.cpp new file mode 100644 index 0000000..b6e42f2 --- /dev/null +++ b/synfig-core/tags/stable/src/modules/mod_geometry/checkerboard.cpp @@ -0,0 +1,197 @@ +/* === S Y N F I G ========================================================= */ +/*! \file checkerboard.cpp +** \brief Template Header +** +** $Id$ +** +** \legal +** Copyright (c) 2002-2005 Robert B. Quattlebaum Jr., Adrian Bentley +** +** This package is free software; you can redistribute it and/or +** modify it under the terms of the GNU General Public License as +** published by the Free Software Foundation; either version 2 of +** the License, or (at your option) any later version. +** +** This package is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +** General Public License for more details. +** \endlegal +*/ +/* ========================================================================= */ + +/* === H E A D E R S ======================================================= */ + +#ifdef USING_PCH +# include "pch.h" +#else +#ifdef HAVE_CONFIG_H +# include +#endif + +#include "checkerboard.h" + +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#endif + +using namespace synfig; +using namespace std; +using namespace etl; + +/* === M A C R O S ========================================================= */ + +/* === G L O B A L S ======================================================= */ + +SYNFIG_LAYER_INIT(CheckerBoard); +SYNFIG_LAYER_SET_NAME(CheckerBoard,"checker_board"); +SYNFIG_LAYER_SET_LOCAL_NAME(CheckerBoard,_("CheckerBoard")); +SYNFIG_LAYER_SET_CATEGORY(CheckerBoard,_("Geometry")); +SYNFIG_LAYER_SET_VERSION(CheckerBoard,"0.1"); +SYNFIG_LAYER_SET_CVS_ID(CheckerBoard,"$Id$"); + +/* === P R O C E D U R E S ================================================= */ + +/* === M E T H O D S ======================================================= */ + +CheckerBoard::CheckerBoard(): + Layer_Composite (1.0,Color::BLEND_STRAIGHT), + color (Color::black()), + pos (Point(0.125,0.125)), + size (Point(0.25,0.25)) +{ + + set_blend_method(Color::BLEND_STRAIGHT); +} + +inline bool +CheckerBoard::point_test(const synfig::Point& getpos)const +{ + int val=((int)((getpos[0]-pos[0])/size[0])+(int)((getpos[1]-pos[1])/size[1])); + if(getpos[0]-pos[0] < 0.0) + val++; + if(getpos[1]-pos[1] < 0.0) + val++; + return val&1; +} + +bool +CheckerBoard::set_param(const String ¶m, const ValueBase &value) +{ + IMPORT(color); + IMPORT(pos); + IMPORT(pos[0]); + IMPORT(pos[1]); + IMPORT(size); + + return Layer_Composite::set_param(param,value); +} + +ValueBase +CheckerBoard::get_param(const String ¶m)const +{ + EXPORT(color); + EXPORT(pos); + EXPORT(pos[0]); + EXPORT(pos[1]); + EXPORT(size); + EXPORT_NAME(); + EXPORT_VERSION(); + + return Layer_Composite::get_param(param); +} + +Layer::Vocab +CheckerBoard::get_param_vocab()const +{ + Layer::Vocab ret(Layer_Composite::get_param_vocab()); + + ret.push_back(ParamDesc("color") + .set_local_name(_("Color")) + .set_description(_("Color of checkers")) + ); + ret.push_back(ParamDesc("pos") + .set_local_name(_("Offset")) + ); + ret.push_back(ParamDesc("size") + .set_local_name(_("Size")) + .set_description(_("Size of checkers")) + .set_origin("pos") + ); + + return ret; +} + +synfig::Layer::Handle +CheckerBoard::hit_check(synfig::Context context, const synfig::Point &getpos)const +{ + if(get_amount()!=0.0 && point_test(getpos)) + { + synfig::Layer::Handle tmp; + if(get_blend_method()==Color::BLEND_BEHIND && (tmp=context.hit_check(getpos))) + return tmp; + if(Color::is_onto(get_blend_method()) && !(tmp=context.hit_check(getpos))) + return 0; + return const_cast(this); + } + else + return context.hit_check(getpos); +} + +Color +CheckerBoard::get_color(Context context, const Point &getpos)const +{ + if(get_amount()!=0.0 && point_test(getpos)) + { + if(get_amount()==1.0 && get_blend_method()==Color::BLEND_STRAIGHT) + return color; + else + return Color::blend(color,context.get_color(getpos),get_amount(),get_blend_method()); + } + else + return context.get_color(getpos); +} + +bool +CheckerBoard::accelerated_render(Context context,Surface *surface,int quality, const RendDesc &renddesc, ProgressCallback *cb)const +{ + SuperCallback supercb(cb,0,9500,10000); + + if(!context.accelerated_render(surface,quality,renddesc,&supercb)) + return false; + if(get_amount()==0) + return true; + + int x,y; + + const Point tl(renddesc.get_tl()); + Point pos; + const int w(surface->get_w()); + const int h(surface->get_h()); + const Real pw(renddesc.get_pw()),ph(renddesc.get_ph()); + + Surface::alpha_pen apen(surface->begin()); + + apen.set_alpha(get_amount()); + apen.set_blend_method(get_blend_method()); + apen.set_value(color); + + for(y=0,pos[1]=tl[1];yamount_complete(10000,10000)) + return false; + + return true; +} diff --git a/synfig-core/tags/stable/src/modules/mod_geometry/checkerboard.h b/synfig-core/tags/stable/src/modules/mod_geometry/checkerboard.h new file mode 100644 index 0000000..1b34f99 --- /dev/null +++ b/synfig-core/tags/stable/src/modules/mod_geometry/checkerboard.h @@ -0,0 +1,70 @@ +/* === S Y N F I G ========================================================= */ +/*! \file checkerboard.h +** \brief Checkerboard Layer +** +** $Id$ +** +** \legal +** Copyright (c) 2002-2005 Robert B. Quattlebaum Jr., Adrian Bentley +** +** This package is free software; you can redistribute it and/or +** modify it under the terms of the GNU General Public License as +** published by the Free Software Foundation; either version 2 of +** the License, or (at your option) any later version. +** +** This package is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +** General Public License for more details. +** \endlegal +** +** === N O T E S =========================================================== +** +** ========================================================================= */ + +/* === S T A R T =========================================================== */ + +#ifndef __SYNFIG_CHECKERBOARD_H +#define __SYNFIG_CHECKERBOARD_H + +/* === H E A D E R S ======================================================= */ + +#include +#include +#include + +/* === M A C R O S ========================================================= */ + +/* === T Y P E D E F S ===================================================== */ + +/* === C L A S S E S & S T R U C T S ======================================= */ + +class CheckerBoard : public synfig::Layer_Composite, public synfig::Layer_NoDeform +{ + SYNFIG_LAYER_MODULE_EXT +private: + synfig::Color color; + synfig::Point pos; + synfig::Point size; + + bool point_test(const synfig::Point& x)const; + +public: + CheckerBoard(); + + virtual bool set_param(const synfig::String & param, const synfig::ValueBase &value); + + virtual synfig::ValueBase get_param(const synfig::String & param)const; + + virtual synfig::Color get_color(synfig::Context context, const synfig::Point &pos)const; + + virtual Vocab get_param_vocab()const; + + synfig::Layer::Handle hit_check(synfig::Context context, const synfig::Point &point)const; + + virtual bool accelerated_render(synfig::Context context,synfig::Surface *surface,int quality, const synfig::RendDesc &renddesc, synfig::ProgressCallback *cb)const; +}; + +/* === E N D =============================================================== */ + +#endif diff --git a/synfig-core/tags/stable/src/modules/mod_geometry/circle.cpp b/synfig-core/tags/stable/src/modules/mod_geometry/circle.cpp new file mode 100644 index 0000000..5d2ae39 --- /dev/null +++ b/synfig-core/tags/stable/src/modules/mod_geometry/circle.cpp @@ -0,0 +1,780 @@ +/* === S Y N F I G ========================================================= */ +/*! \file circle.cpp +** \brief Template Header +** +** $Id$ +** +** \legal +** Copyright (c) 2002-2005 Robert B. Quattlebaum Jr., Adrian Bentley +** +** This package is free software; you can redistribute it and/or +** modify it under the terms of the GNU General Public License as +** published by the Free Software Foundation; either version 2 of +** the License, or (at your option) any later version. +** +** This package is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +** General Public License for more details. +** \endlegal +*/ +/* ========================================================================= */ + +/* === H E A D E R S ======================================================= */ + +#ifdef USING_PCH +# include "pch.h" +#else +#ifdef HAVE_CONFIG_H +# include +#endif + +#include "circle.h" +#include +#include +#include +#include +#include +#include +#include +#include + +#include + +#endif + +using namespace synfig; +using namespace std; +using namespace etl; + +/* -- G L O B A L S --------------------------------------------------------- */ + +SYNFIG_LAYER_INIT(Circle); +SYNFIG_LAYER_SET_NAME(Circle,"circle"); +SYNFIG_LAYER_SET_LOCAL_NAME(Circle,_("Circle")); +SYNFIG_LAYER_SET_CATEGORY(Circle,_("Geometry")); +SYNFIG_LAYER_SET_VERSION(Circle,"0.1"); +SYNFIG_LAYER_SET_CVS_ID(Circle,"$Id$"); + +/* -- F U N C T I O N S ----------------------------------------------------- */ + +Circle::Circle(): + Layer_Composite (1.0,Color::BLEND_STRAIGHT), + color (Color::black()), + pos (0,0), + radius (1), + feather (0), + invert (false), + falloff (FALLOFF_INTERPOLATION_LINEAR) +{ + constructcache(); +} + +bool +Circle::ImportParameters(const String ¶m, const ValueBase &value) +{ + IMPORT(color); + IMPORT(radius); + IMPORT(feather); + IMPORT(invert); + IMPORT(pos); + IMPORT(falloff); + + return Layer_Composite::set_param(param,value); +} + +bool +Circle::set_param(const String ¶m, const ValueBase &value) +{ + if(ImportParameters(param,value)) + { + constructcache(); + return true; + } + + return false; +} + +ValueBase +Circle::get_param(const String ¶m)const +{ + EXPORT(color); + EXPORT(radius); + EXPORT(feather); + EXPORT(invert); + EXPORT(pos); + EXPORT(falloff); + + EXPORT_NAME(); + EXPORT_VERSION(); + + return Layer_Composite::get_param(param); +} + +Layer::Vocab +Circle::get_param_vocab()const +{ + Layer::Vocab ret(Layer_Composite::get_param_vocab()); + + ret.push_back(ParamDesc("color") + .set_local_name(_("Color")) + ); + ret.push_back(ParamDesc("radius") + .set_local_name(_("Radius")) + .set_origin("pos") + .set_is_distance() + ); + ret.push_back(ParamDesc("feather") + .set_local_name(_("Feather")) + .set_is_distance() + ); + ret.push_back(ParamDesc("pos") + .set_local_name(_("Center")) + ); + ret.push_back(ParamDesc("invert") + .set_local_name(_("Invert")) + .set_description(_("Invert the circle")) + ); + + ret.push_back(ParamDesc("falloff") + .set_local_name(_("Falloff")) + .set_description(_("Determines the falloff function for the feather")) + .set_hint("enum") + .add_enum_value(FALLOFF_INTERPOLATION_LINEAR,"linear",_("Linear")) + .add_enum_value(FALLOFF_SQUARED,"squared",_("Squared")) + .add_enum_value(FALLOFF_SQRT,"sqrt",_("Square Root")) + .add_enum_value(FALLOFF_SIGMOND,"sigmond",_("Sigmond")) + .add_enum_value(FALLOFF_COSINE,"cosine",_("Cosine")) + ); + + return ret; +} + +synfig::Layer::Handle +Circle::hit_check(synfig::Context context, const synfig::Point &point)const +{ + Point temp=pos-point; + + if(get_amount()==0) + return context.hit_check(point); + + bool in_circle(temp.mag_squared() <= radius*radius); + + if(invert) + { + in_circle=!in_circle; + if(in_circle && get_amount()-(feather/radius)<=0.1 && get_blend_method()!=Color::BLEND_STRAIGHT) + in_circle=false; + } + else + { + if(get_amount()-(feather/radius)<=0.0) + in_circle=false; + } + + if(in_circle) + { + synfig::Layer::Handle tmp; + if(get_blend_method()==Color::BLEND_BEHIND && (tmp=context.hit_check(point))) + return tmp; + if(Color::is_onto(get_blend_method()) && !(tmp=context.hit_check(point))) + return 0; + return const_cast(this); + } + + return context.hit_check(point); +} + +//falloff functions +Real Circle::SqdFalloff(const Circle::CircleDataCache &c, const Real &mag_sqd) +{ + //squared proportional falloff + return (c.outer_radius_sqd - mag_sqd) / c.diff_sqd; +} + +Real Circle::InvSqdFalloff(const Circle::CircleDataCache &c, const Real &mag_sqd) +{ + //squared proportional falloff + return 1.0 - (c.outer_radius_sqd - mag_sqd) / c.diff_sqd; +} + + +Real Circle::SqrtFalloff(const Circle::CircleDataCache &c, const Real &mag_sqd) +{ + //linear distance falloff + Real ret = ( c.outer_radius - sqrt(mag_sqd) ) / c.double_feather; + //then take the square root of it + ret = sqrt(ret); + return ret; +} + +Real Circle::InvSqrtFalloff(const Circle::CircleDataCache &c, const Real &mag_sqd) +{ + //linear distance falloff + Real ret = ( c.outer_radius - sqrt(mag_sqd) ) / c.double_feather; + //then take the square root of it + ret = 1.0 - sqrt(ret); + return ret; +} + +Real Circle::LinearFalloff(const Circle::CircleDataCache &c, const Real &mag_sqd) +{ + //linear distance falloff + return ( c.outer_radius - sqrt(mag_sqd) ) / c.double_feather; +} + +Real Circle::InvLinearFalloff(const Circle::CircleDataCache &c, const Real &mag_sqd) +{ + return 1.0 - ( c.outer_radius - sqrt(mag_sqd) ) / c.double_feather; + //linear distance falloff +} + +Real Circle::SigmondFalloff(const Circle::CircleDataCache &c, const Real &mag_sqd) +{ + //linear distance falloff + Real ret = ( c.outer_radius - sqrt(mag_sqd) ) / c.double_feather; + // inverse exponential of the linear falloff (asymptotes at 0 and 1) + // \frac{1.0}{ 1 + e^{- \( a*10-5 \)}} + ret = 1.0 / (1 + exp(-(ret*10-5)) ); + return ret; +} + +Real Circle::InvSigmondFalloff(const Circle::CircleDataCache &c, const Real &mag_sqd) +{ + //linear distance falloff + Real ret = ( c.outer_radius - sqrt(mag_sqd) ) / c.double_feather; + // inverse exponential of the linear falloff (asymptotes at 0 and 1) + // \frac{1.0}{ 1 + e^{- \( a*10-5 \)}} + ret = 1.0 - 1.0 / (1 + exp(-(ret*10-5)) ); + return ret; +} + + +Real +Circle::CosineFalloff(const Circle::CircleDataCache &c, const Real &mag_sqd) +{ + //Cosine distance falloff + return (1.0f-cos((( c.outer_radius - sqrt(mag_sqd) ) / c.double_feather)*3.1415927))*0.5f; +} + +Real +Circle::InvCosineFalloff(const Circle::CircleDataCache &c, const Real &mag_sqd) +{ + return 1.0f-(1.0f-cos((( c.outer_radius - sqrt(mag_sqd) ) / c.double_feather)*3.1415927))*0.5f; + //Cosine distance falloff +} + +void Circle::constructcache() +{ + cache.inner_radius = radius - feather; + if(cache.inner_radius < 0) + cache.inner_radius = 0; + + cache.outer_radius = radius + feather; + + cache.inner_radius_sqd = cache.inner_radius > 0 ? (radius-feather)*(radius-feather) : 0; + cache.outer_radius_sqd = (radius+feather)*(radius+feather); + + cache.diff_sqd = feather*feather*4.0; + cache.double_feather = feather*2.0; + + falloff_func = GetFalloffFunc(); +} + +Circle::FALLOFF_FUNC *Circle::GetFalloffFunc()const +{ + switch(falloff) + { + case FALLOFF_SQUARED: return invert?InvSqdFalloff:SqdFalloff; + + case FALLOFF_SQRT: return invert?InvSqrtFalloff:SqrtFalloff; + + case FALLOFF_INTERPOLATION_LINEAR: return invert?InvLinearFalloff:LinearFalloff; + + case FALLOFF_SIGMOND: return invert?InvSigmondFalloff:SigmondFalloff; + + case FALLOFF_COSINE: + default: return invert?InvCosineFalloff:CosineFalloff; + } +} + +Color +Circle::get_color(Context context, const Point &point)const +{ + if(radius==0 || is_disabled()) + return context.get_color(point); + + + Point temp=pos-point; + + /*const Real inner_radius = radius-feather; + const Real outer_radius = radius+feather; + + const Real inner_radius_sqd = inner_radius > 0 ? (radius-feather)*(radius-feather) : 0; + const Real outer_radius_sqd = (radius+feather)*(radius+feather); + + const Real diff_radii_sqd = outer_radius_sqd - inner_radius_sqd; + const Real double_feather = feather*2.0;*/ + + /*const Real &inner_radius = cache.inner_radius; + const Real &outer_radius = cache.outer_radius;*/ + + const Real &inner_radius_sqd = cache.inner_radius_sqd; + const Real &outer_radius_sqd = cache.outer_radius_sqd; + + /*const Real &diff_radii_sqd = cache.diff_radii_sqd; + const Real &double_feather = cache.double_feather;*/ + + const Vector::value_type mag_squared = temp.mag_squared(); + + //Outside the circle, with feathering enabled + if( mag_squared > outer_radius_sqd ) + { + // inverted -> outside == colored in + if(invert) + { + if(get_amount() == 1 && get_blend_method() == Color::BLEND_STRAIGHT) + return color; + else + return Color::blend(color,context.get_color(point),get_amount(),get_blend_method()); + } + else + return context.get_color(point); + } + + //inside the circle's solid area (with feathering) + else if(mag_squared <= inner_radius_sqd) + { + // !invert -> solid area + if(!invert) + if(get_amount() == 1 && get_blend_method() == Color::BLEND_STRAIGHT) + return color; + else + return Color::blend(color,context.get_color(point),get_amount(),get_blend_method()); + else + return context.get_color(point); + } + + //If we get here, the pixel is within the feathering area, and is thus subject to falloff + else + { + Color::value_type alpha; + + /*switch(falloff) + { + + case FALLOFF_SQUARED: + //squared proportional falloff + alpha = (outer_radius_sqd - mag_squared) / diff_radii_sqd; + break; + + case FALLOFF_SQRT: + //linear distance falloff + alpha = ( outer_radius - sqrt(mag_squared) ) / double_feather; + //then take the square root of it + alpha = sqrt(alpha); + break; + + case FALLOFF_INTERPOLATION_LINEAR: + //linear distance falloff + alpha = ( outer_radius - sqrt(mag_squared) ) / double_feather; + break; + + case FALLOFF_SIGMOND: + default: + //linear distance falloff + alpha = ( outer_radius - sqrt(mag_squared) ) / double_feather; + // inverse exponential of the linear falloff (asymptotes at 0 and 1) + // \frac{1.0}{ 1 + e^{- \( a*10-5 \)}} + alpha = 1.0 / (1 + exp(-(alpha*10-5)) ); + break; + } + + //If we're inverted, we need to invert the falloff value + if(invert) + alpha=1.0-alpha;*/ + + alpha = falloff_func(cache,mag_squared); + + //Compose falloff value with amount from the composite layer, and that is the blend value + alpha *= get_amount(); + + return Color::blend(color,context.get_color(point),alpha,get_blend_method()); + } +} + +Color NormalBlend(Color a, Color b, float amount) +{ + return (b-a)*amount+a; +} + + +bool +Circle::accelerated_render(Context context,Surface *surface,int quality, const RendDesc &renddesc, ProgressCallback *cb)const +{ + // trivial case + if(is_disabled() || (radius==0 && invert==false)) + return context.accelerated_render(surface,quality, renddesc, cb); + + // Another trivial case + if(invert && radius==0 && is_solid_color()) + { + surface->set_wh(renddesc.get_w(),renddesc.get_h()); + surface->fill(color); + if(cb && !cb->amount_complete(10000,10000)) + return false; + return true; + } + + // Window Boundaries + const Point tl(renddesc.get_tl()); + const Point br(renddesc.get_br()); + const int w(renddesc.get_w()); + const int h(renddesc.get_h()); + + const Real x_neg = tl[0] > br[0] ? -1 : 1; + const Real y_neg = tl[1] > br[1] ? -1 : 1; + + // Width and Height of a pixel + const Real pw = (br[0] - tl[0]) / w; + const Real ph = (br[1] - tl[1]) / h; + + // Increasing the feather amount by the size of + // a pixel will create an anti-aliased appearance + const Real newfeather=feather + (abs(ph)+abs(pw))/4.0; + + //int u,v; + int left = (int) floor( (pos[0] - x_neg*(radius+newfeather) - tl[0]) / pw ); + int right = (int) ceil( (pos[0] + x_neg*(radius+newfeather) - tl[0]) / pw ); + int top = (int) floor( (pos[1] - y_neg*(radius+newfeather) - tl[1]) / ph ); + int bottom = (int) ceil( (pos[1] + y_neg*(radius+newfeather) - tl[1]) / ph ); + + //clip the rectangle bounds + if(left < 0) + left = 0; + if(top < 0) + top = 0; + if(right >= w) + right = w-1; + if(bottom >= h) + bottom = h-1; + + const Real inner_radius = radius-newfeather>0 ? radius-newfeather : 0; + const Real outer_radius = radius+newfeather; + + const Real inner_radius_sqd = inner_radius*inner_radius; + const Real outer_radius_sqd = outer_radius*outer_radius; + + const Real diff_radii_sqd = 4*newfeather*std::max(newfeather,radius);//4.0*radius*newfeather; + const Real double_feather = newfeather * 2.0; + + //Compile the temporary cache for the falloff calculations + FALLOFF_FUNC *func = GetFalloffFunc(); + + const CircleDataCache cache = + { + inner_radius,outer_radius, + inner_radius_sqd,outer_radius_sqd, + diff_radii_sqd,double_feather + }; + + //info("Circle: Initialized everything"); + + //let the rendering begin + SuperCallback supercb(cb,0,9000,10000); + + //if it's a degenerate circle, do what we need to do, and then leave + if(left >= right || top >= bottom) + { + if(invert) + { + if(get_amount() == 1 && get_blend_method() == Color::BLEND_STRAIGHT) + { + surface->set_wh(w,h); + surface->fill(color); + return true; + }else + { + // Render what is behind us + if(!context.accelerated_render(surface,quality,renddesc,&supercb)) + { + if(cb)cb->error(strprintf(__FILE__"%d: Accelerated Renderer Failure",__LINE__)); + return false; + } + + Surface::alpha_pen p(surface->begin(),get_amount(),_BlendFunc(get_blend_method())); + + p.set_value(color); + p.put_block(h,w); + return true; + } + }else + { + // Render what is behind us + if(!context.accelerated_render(surface,quality,renddesc,&supercb)) + { + if(cb)cb->error(strprintf(__FILE__"%d: Accelerated Renderer Failure",__LINE__)); + return false; + } + return true; + } + } + + if( (pos[0] - tl[0])*(pos[0] - tl[0]) + (pos[1] - tl[1])*(pos[1] - tl[1]) < inner_radius_sqd + && (pos[0] - br[0])*(pos[0] - br[0]) + (pos[1] - br[1])*(pos[1] - br[1]) < inner_radius_sqd + && (pos[0] - tl[0])*(pos[0] - tl[0]) + (pos[1] - br[1])*(pos[1] - br[1]) < inner_radius_sqd + && (pos[0] - br[0])*(pos[0] - br[0]) + (pos[1] - tl[1])*(pos[1] - tl[1]) < inner_radius_sqd ) + { + if(invert) + { + // Render what is behind us + if(!context.accelerated_render(surface,quality,renddesc,&supercb)) + { + if(cb)cb->error(strprintf(__FILE__"%d: Accelerated Renderer Failure",__LINE__)); + return false; + } + }else + { + if(get_amount() == 1 && get_blend_method() == Color::BLEND_STRAIGHT) + { + surface->set_wh(w,h); + surface->fill(color); + return true; + } + } + } + + //info("Circle: Non degenerate, rasterize %c", invert); + + //we start in the middle of the left-top pixel + Real leftf = (left + 0.5)*pw + tl[0]; + Real topf = (top + 0.5)*ph + tl[1]; + + //the looping variables + Real x,y; + int i,j; + + //Loop normally, since we are not inverted + if(!invert) + { + // Render what is behind us + if(!context.accelerated_render(surface,quality,renddesc,&supercb)) + { + if(cb)cb->error(strprintf(__FILE__"%d: Accelerated Renderer Failure",__LINE__)); + return false; + } + + //make topf and leftf relative to the center of the circle + leftf -= pos[0]; + topf -= pos[1]; + + j = top; + y = topf; + + //Loop over the valid y-values in the bounding square + for(;j <= bottom; j++, y += ph) + { + i = left; + x = leftf; + + //for each y-value, Loop over the bounding x-values in the bounding square + for(;i <= right; i++, x += pw) + { + //for each pixel, figure out the distance and blend + Real r = x*x + y*y; + + //if in the inner circle then the full color shows through + if(r <= inner_radius_sqd) + { + if(get_amount() == 1 && get_blend_method() == Color::BLEND_STRAIGHT) + (*surface)[j][i]=color; + else + (*surface)[j][i]=Color::blend(color,(*surface)[j][i],get_amount(),get_blend_method()); + } + //if it's within the outer circle then it's in the feathering range + else if(r <= outer_radius_sqd) + { + /*float myamount; + + switch(falloff) + { + case FALLOFF_SQUARED: + myamount = (outer_radius_sqd - r) / diff_radii_sqd; + break; + + case FALLOFF_SQRT: + myamount = (outer_radius - sqrt(r)) / double_feather; + myamount = sqrt(myamount); + break; + + case FALLOFF_INTERPOLATION_LINEAR: + myamount = (outer_radius - sqrt(r)) / double_feather; + break; + + case FALLOFF_SIGMOND: + default: + myamount = (outer_radius - sqrt(r)) / double_feather; + myamount = 1.0 / ( 1 + exp(-(myamount*10 - 5)) ); + break; + }*/ + + Real myamount = func(cache,r); + + //if(myamount<0.0)myamount=0.0; + //if(myamount>1.0)myamount=1.0; + myamount *= get_amount(); + (*surface)[j][i] = Color::blend(color,(*surface)[j][i],myamount,get_blend_method()); + } + } + } + } + else + { + Surface background; + RendDesc desc(renddesc); + desc.set_flags(0); + + int offset_x=0,offset_y=0; + + //fill the surface with the background color initially + surface->set_wh(w,h); + surface->fill(color); + + //then render the background to an alternate surface + if(get_amount() == 1 && get_blend_method() == Color::BLEND_STRAIGHT) + { + offset_x = left; + offset_y = top; + + //if there is no background showing through we are done + if(right < left || bottom < top) + return true; + + desc.set_subwindow(left,top,right-left+1,bottom-top+1); + + // Render what is behind us + if(!context.accelerated_render(&background,quality,desc,&supercb)) + { + if(cb)cb->error(strprintf(__FILE__"%d: Accelerated Renderer Failure",__LINE__)); + return false; + } + } + else + { + left = 0; + right = w-1; + top = 0; + bottom = h-1; + + leftf = /*0.5*pw +*/ tl[0]; + topf = /*0.5*ph +*/ tl[1]; + + // Render what is behind us + if(!context.accelerated_render(&background,quality,renddesc,&supercb)) + { + if(cb)cb->error(strprintf(__FILE__"%d: Accelerated Renderer Failure",__LINE__)); + return false; + } + } + + topf -= pos[1]; + leftf-= pos[0]; + + j = top; + y = topf; + + for(;j <= bottom; j++, y+=ph) + { + i = left; + x = leftf; + + for(;i <= right; i++, x+=pw) + { + Vector::value_type r = x*x + y*y; + + if(r < inner_radius_sqd) + { + (*surface)[j][i] = background[j-offset_y][i-offset_x]; + } + else if(r < outer_radius_sqd) + { + /*float amount; + + switch(falloff) + { + case FALLOFF_SQUARED: + amount = (r - inner_radius_sqd) / diff_radii_sqd; + break; + case FALLOFF_INTERPOLATION_LINEAR: + amount = (sqrt(r) - inner_radius) / double_feather; + break; + case FALLOFF_SQRT: + amount = (outer_radius - sqrt(r)) / double_feather; + amount = 1.0 - sqrt(amount); + break; + case FALLOFF_SIGMOND: + default: + amount = (outer_radius - sqrt(r)) / double_feather; + amount = 1.0 - ( 1.0/( 1 + exp(-(amount*10-5)) ) ); + break; + }*/ + + Real amount = func(cache,r); + + if(amount<0.0)amount=0.0; + if(amount>1.0)amount=1.0; + + amount*=get_amount(); + + (*surface)[j][i]=Color::blend(color,background[j-offset_y][i-offset_x],amount,get_blend_method()); + }else if(get_amount() != 1 || get_blend_method() != Color::BLEND_STRAIGHT) + { + (*surface)[j][i]=Color::blend(color,background[j][i],get_amount(),get_blend_method()); + } + } + } + } + + // Mark our progress as finished + if(cb && !cb->amount_complete(10000,10000)) + return false; + + return true; +} + +Rect +Circle::get_bounding_rect()const +{ + if(invert) + return Rect::full_plane(); + + Rect bounds( + pos[0]+(radius+feather), + pos[1]+(radius+feather), + pos[0]-(radius+feather), + pos[1]-(radius+feather) + ); + + return bounds; +} + +Rect +Circle::get_full_bounding_rect(Context context)const +{ + if(invert) + { + if(is_solid_color() && color.get_a()==0) + { + Rect bounds( + pos[0]+(radius+feather), + pos[1]+(radius+feather), + pos[0]-(radius+feather), + pos[1]-(radius+feather) + ); + return bounds & context.get_full_bounding_rect(); + } + return Rect::full_plane(); + } + + return Layer_Composite::get_full_bounding_rect(context); +} diff --git a/synfig-core/tags/stable/src/modules/mod_geometry/circle.h b/synfig-core/tags/stable/src/modules/mod_geometry/circle.h new file mode 100644 index 0000000..27a6c58 --- /dev/null +++ b/synfig-core/tags/stable/src/modules/mod_geometry/circle.h @@ -0,0 +1,123 @@ +/* === S Y N F I G ========================================================= */ +/*! \file circle.h +** \brief Template Header +** +** $Id$ +** +** \legal +** Copyright (c) 2002-2005 Robert B. Quattlebaum Jr., Adrian Bentley +** +** This package is free software; you can redistribute it and/or +** modify it under the terms of the GNU General Public License as +** published by the Free Software Foundation; either version 2 of +** the License, or (at your option) any later version. +** +** This package is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +** General Public License for more details. +** \endlegal +*/ +/* ========================================================================= */ + +/* === H E A D E R S ======================================================= */ + +#ifndef __SYNFIG_LAYER_CIRCLE_H__ +#define __SYNFIG_LAYER_CIRCLE_H__ + +/* -- H E A D E R S --------------------------------------------------------- */ + +#include +#include +#include + +using namespace synfig; +using namespace std; +using namespace etl; + +/* -- M A C R O S ----------------------------------------------------------- */ + +/* -- T Y P E D E F S ------------------------------------------------------- */ + +/* -- S T R U C T S & C L A S S E S ----------------------------------------- */ + +class Circle : public synfig::Layer_Composite, public synfig::Layer_NoDeform +{ + SYNFIG_LAYER_MODULE_EXT +private: + synfig::Color color; + synfig::Point pos; + synfig::Real radius; + synfig::Real feather; + bool invert; + int falloff; + + //Caching system for circle + struct CircleDataCache + { + Real inner_radius; + Real outer_radius; + + Real inner_radius_sqd; + Real outer_radius_sqd; + + Real diff_sqd; + Real double_feather; + }; + + typedef Real FALLOFF_FUNC(const CircleDataCache &c, const Real &mag_sqd); + + FALLOFF_FUNC *falloff_func; + CircleDataCache cache; + + void constructcache(); + + static Real SqdFalloff(const CircleDataCache &c, const Real &mag_sqd); + static Real InvSqdFalloff(const CircleDataCache &c, const Real &mag_sqd); + static Real SqrtFalloff(const CircleDataCache &c, const Real &mag_sqd); + static Real InvSqrtFalloff(const CircleDataCache &c, const Real &mag_sqd); + static Real LinearFalloff(const CircleDataCache &c, const Real &mag_sqd); + static Real InvLinearFalloff(const CircleDataCache &c, const Real &mag_sqd); + static Real SigmondFalloff(const CircleDataCache &c, const Real &mag_sqd); + static Real InvSigmondFalloff(const CircleDataCache &c, const Real &mag_sqd); + static Real CosineFalloff(const CircleDataCache &c, const Real &mag_sqd); + static Real InvCosineFalloff(const CircleDataCache &c, const Real &mag_sqd); + + FALLOFF_FUNC *GetFalloffFunc()const; + bool ImportParameters(const String ¶m, const ValueBase &value); + +public: + enum Falloff + { + FALLOFF_SQUARED =0, + FALLOFF_INTERPOLATION_LINEAR =1, + FALLOFF_SMOOTH =2, + FALLOFF_COSINE =2, + FALLOFF_SIGMOND =3, + FALLOFF_SQRT =4 + }; + + Circle(); + + virtual bool set_param(const String ¶m, const ValueBase &value); + + virtual ValueBase get_param(const String ¶m)const; + + virtual Color get_color(Context context, const Point &pos)const; + + virtual bool accelerated_render(Context context,Surface *surface,int quality, const RendDesc &renddesc, ProgressCallback *cb)const; + + virtual synfig::Rect get_full_bounding_rect(synfig::Context context)const; + virtual synfig::Rect get_bounding_rect()const; + + synfig::Layer::Handle hit_check(synfig::Context context, const synfig::Point &point)const; + + virtual Vocab get_param_vocab()const; +}; + +/* -- E X T E R N S --------------------------------------------------------- */ + + +/* -- E N D ----------------------------------------------------------------- */ + +#endif diff --git a/synfig-core/tags/stable/src/modules/mod_geometry/main.cpp b/synfig-core/tags/stable/src/modules/mod_geometry/main.cpp new file mode 100644 index 0000000..715465c --- /dev/null +++ b/synfig-core/tags/stable/src/modules/mod_geometry/main.cpp @@ -0,0 +1,75 @@ +/* === S Y N F I G ========================================================= */ +/*! \file mod_geometry/main.cpp +** \brief Template Header +** +** $Id$ +** +** \legal +** Copyright (c) 2002-2005 Robert B. Quattlebaum Jr., Adrian Bentley +** +** This package is free software; you can redistribute it and/or +** modify it under the terms of the GNU General Public License as +** published by the Free Software Foundation; either version 2 of +** the License, or (at your option) any later version. +** +** This package is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +** General Public License for more details. +** \endlegal +** +** === N O T E S =========================================================== +** +** ========================================================================= */ + +/* === H E A D E R S ======================================================= */ + +#define SYNFIG_MODULE + +#ifdef USING_PCH +# include "pch.h" +#else +#ifdef HAVE_CONFIG_H +# include +#endif + +#include +#include +#include + +#include "checkerboard.h" +#include "circle.h" +#include "region.h" +#include "outline.h" +#include "star.h" +#include "rectangle.h" + +#endif + +/* === E N T R Y P O I N T ================================================= */ + +MODULE_DESC_BEGIN(libmod_geometry) + MODULE_NAME("Geometry") + MODULE_DESCRIPTION("writeme") + MODULE_AUTHOR("Robert B. Quattlebaum") + MODULE_VERSION("1.0") + MODULE_COPYRIGHT(SYNFIG_COPYRIGHT) +MODULE_DESC_END + +MODULE_INVENTORY_BEGIN(libmod_geometry) + BEGIN_LAYERS + LAYER(CheckerBoard) + LAYER(Circle) + LAYER(Region) + LAYER(Outline) + LAYER(Star) + LAYER(Rectangle) + + LAYER_ALIAS(Outline,"BLine") + LAYER_ALIAS(Outline,"Bezier") + LAYER_ALIAS(Region,"Region") + LAYER_ALIAS(Circle,"Circle") + LAYER_ALIAS(CheckerBoard,"CheckerBoard") + + END_LAYERS +MODULE_INVENTORY_END diff --git a/synfig-core/tags/stable/src/modules/mod_geometry/mod_geometry.nsh b/synfig-core/tags/stable/src/modules/mod_geometry/mod_geometry.nsh new file mode 100644 index 0000000..316fdf9 --- /dev/null +++ b/synfig-core/tags/stable/src/modules/mod_geometry/mod_geometry.nsh @@ -0,0 +1,21 @@ +; The stuff to install +Section "mod_geometry" Sec_mod_geometry + +; SectionIn RO + + ; Set output path to the installation directory. + SetOutPath "$INSTDIR\lib\synfig\modules" + + ; Put file there + File /oname=mod_geometry.dll "src\modules\mod_geometry\.libs\libmod_geometry-0.dll" + + + FileOpen $0 $INSTDIR\etc\synfig_modules.cfg a + FileSeek $0 0 END + FileWrite $0 "mod_geometry" + FileWriteByte $0 "13" + FileWriteByte $0 "10" + FileClose $0 + +SectionEnd + diff --git a/synfig-core/tags/stable/src/modules/mod_geometry/outline.cpp b/synfig-core/tags/stable/src/modules/mod_geometry/outline.cpp new file mode 100644 index 0000000..597fe82 --- /dev/null +++ b/synfig-core/tags/stable/src/modules/mod_geometry/outline.cpp @@ -0,0 +1,838 @@ +/* === S Y N F I G ========================================================= */ +/*! \file outline.cpp +** \brief Template +** +** $Id$ +** +** \legal +** Copyright (c) 2002-2005 Robert B. Quattlebaum Jr., Adrian Bentley +** +** This package is free software; you can redistribute it and/or +** modify it under the terms of the GNU General Public License as +** published by the Free Software Foundation; either version 2 of +** the License, or (at your option) any later version. +** +** This package is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +** General Public License for more details. +** \endlegal +*/ +/* ========================================================================= */ + +//! \note This whole file should be rewritten at some point (darco) + +/* === H E A D E R S ======================================================= */ + +#ifdef USING_PCH +# include "pch.h" +#else +#ifdef HAVE_CONFIG_H +# include +#endif + +#include "outline.h" +#include +#include +#include +#include +#include +#include +#include +#include + +#include +#include +#include +#include + +#include + +#endif + +using namespace etl; + +/* === M A C R O S ========================================================= */ + +#define SAMPLES 50 +#define ROUND_END_FACTOR (4) +#define CUSP_THRESHOLD (0.40) +#define SPIKE_AMOUNT (4) +#define NO_LOOP_COOKIE synfig::Vector(84951305,7836658) +#define EPSILON (0.000000001) +#define CUSP_TANGENT_ADJUST (0.025) + +/* === G L O B A L S ======================================================= */ + +SYNFIG_LAYER_INIT(Outline); +SYNFIG_LAYER_SET_NAME(Outline,"outline"); +SYNFIG_LAYER_SET_LOCAL_NAME(Outline,_("Outline")); +SYNFIG_LAYER_SET_CATEGORY(Outline,_("Geometry")); +SYNFIG_LAYER_SET_VERSION(Outline,"0.2"); +SYNFIG_LAYER_SET_CVS_ID(Outline,"$Id$"); + +/* === P R O C E D U R E S ================================================= */ + +// This function was adapted from what was +// described on http://www.whisqu.se/per/docs/math28.htm +Point line_intersection( + const Point& p1, + const Vector& t1, + const Point& p2, + const Vector& t2 +) +{ + const float& x0(p1[0]); + const float& y0(p1[1]); + + const float x1(p1[0]+t1[0]); + const float y1(p1[1]+t1[1]); + + const float& x2(p2[0]); + const float& y2(p2[1]); + + const float x3(p2[0]+t2[0]); + const float y3(p2[1]+t2[1]); + + const float near_infinity((float)1e+10); + + float m1,m2; // the slopes of each line + + // compute slopes, note the cludge for infinity, however, this will + // be close enough + + if ((x1-x0)!=0) + m1 = (y1-y0)/(x1-x0); + else + m1 = near_infinity; + + if ((x3-x2)!=0) + m2 = (y3-y2)/(x3-x2); + else + m2 = near_infinity; + + // compute constants + const float& a1(m1); + const float& a2(m2); + const float b1(-1.0f); + const float b2(-1.0f); + const float c1(y0-m1*x0); + const float c2(y2-m2*x2); + + // compute the inverse of the determinate + const float det_inv(1.0f/(a1*b2 - a2*b1)); + + // use Kramers rule to compute the intersection + return Point( + ((b1*c2 - b2*c1)*det_inv), + ((a2*c1 - a1*c2)*det_inv) + ); +} // end Intersect_Lines + +/* === M E T H O D S ======================================================= */ + + +Outline::Outline() +{ + old_version=false; + round_tip[0]=true; + round_tip[1]=true; + sharp_cusps=true; + width=1.0f; + loopyness=1.0f; + expand=0; + homogeneous_width=true; + clear(); + + vector bline_point_list; + bline_point_list.push_back(BLinePoint()); + bline_point_list.push_back(BLinePoint()); + bline_point_list.push_back(BLinePoint()); + bline_point_list[0].set_vertex(Point(0,1)); + bline_point_list[1].set_vertex(Point(0,-1)); + bline_point_list[2].set_vertex(Point(1,0)); + bline_point_list[0].set_tangent(bline_point_list[1].get_vertex()-bline_point_list[2].get_vertex()*0.5f); + bline_point_list[1].set_tangent(bline_point_list[2].get_vertex()-bline_point_list[0].get_vertex()*0.5f); + bline_point_list[2].set_tangent(bline_point_list[0].get_vertex()-bline_point_list[1].get_vertex()*0.5f); + bline_point_list[0].set_width(1.0f); + bline_point_list[1].set_width(1.0f); + bline_point_list[2].set_width(1.0f); + bline=bline_point_list; + + needs_sync=true; +} + + +/*! The Sync() function takes the values +** and creates a polygon to be rendered +** with the polygon layer. +*/ +void +Outline::sync() +{ + clear(); + try { +#if 1 + + const bool loop(bline.get_loop()); + const vector bline_(bline.get_list().begin(),bline.get_list().end()); +#define bline bline_ + + vector::const_iterator + iter, + next(bline.begin()); + + const vector::const_iterator + end(bline.end()); + + vector + side_a, + side_b; + + if(loop) + iter=--bline.end(); + else + iter=next++; + + // iter next + // ---- ---- + // looped nth 1st + // !looped 1st 2nd + + Vector first_tangent=bline.front().get_tangent2(); + Vector last_tangent=iter->get_tangent1(); + + // if we are looped and drawing sharp cusps, we'll need a value for the incoming tangent + if (loop && sharp_cusps && last_tangent.is_equal_to(Vector::zero())) + { + hermite curve((iter-1)->get_vertex(), iter->get_vertex(), (iter-1)->get_tangent2(), iter->get_tangent1()); + const derivative< hermite > deriv(curve); + last_tangent=deriv(1.0-CUSP_TANGENT_ADJUST); + } + + // `first' is for making the cusps; don't do that for the first point if we're not looped + for(bool first=!loop; next!=end; iter=next++) + { + Vector prev_t(iter->get_tangent1()); + Vector iter_t(iter->get_tangent2()); + Vector next_t(next->get_tangent1()); + + bool split_flag(iter->get_split_tangent_flag()); + + // if iter.t2 == 0 and next.t1 == 0, this is a straight line + if(iter_t.is_equal_to(Vector::zero()) && next_t.is_equal_to(Vector::zero())) + { + iter_t=next_t=next->get_vertex()-iter->get_vertex(); + // split_flag=true; + + // if the two points are on top of each other, ignore this segment + // leave `first' true if was before + if (iter_t.is_equal_to(Vector::zero())) + continue; + } + + // Setup the curve + hermite curve( + iter->get_vertex(), + next->get_vertex(), + iter_t, + next_t + ); + + const float + iter_w((iter->get_width()*width)*0.5f+expand), + next_w((next->get_width()*width)*0.5f+expand); + + const derivative< hermite > deriv(curve); + + if (first) + first_tangent = deriv(CUSP_TANGENT_ADJUST); + + // Make cusps as necessary + if(!first && sharp_cusps && split_flag && (!prev_t.is_equal_to(iter_t) || iter_t.is_equal_to(Vector::zero())) && !last_tangent.is_equal_to(Vector::zero())) + { + Vector curr_tangent(deriv(CUSP_TANGENT_ADJUST)); + + const Vector t1(last_tangent.perp().norm()); + const Vector t2(curr_tangent.perp().norm()); + + Real cross(t1*t2.perp()); + Real perp((t1-t2).mag()); + if(cross>CUSP_THRESHOLD) + { + const Point p1(iter->get_vertex()+t1*iter_w); + const Point p2(iter->get_vertex()+t2*iter_w); + + side_a.push_back(line_intersection(p1,last_tangent,p2,curr_tangent)); + } + else if(cross<-CUSP_THRESHOLD) + { + const Point p1(iter->get_vertex()-t1*iter_w); + const Point p2(iter->get_vertex()-t2*iter_w); + + side_b.push_back(line_intersection(p1,last_tangent,p2,curr_tangent)); + } + else if(cross>0 && perp>1) + { + float amount(max(0.0f,(float)(cross/CUSP_THRESHOLD))*(SPIKE_AMOUNT-1)+1); + + side_a.push_back(iter->get_vertex()+(t1+t2).norm()*iter_w*amount); + } + else if(cross<0 && perp>1) + { + float amount(max(0.0f,(float)(-cross/CUSP_THRESHOLD))*(SPIKE_AMOUNT-1)+1); + + side_b.push_back(iter->get_vertex()-(t1+t2).norm()*iter_w*amount); + } + } + + // Make the outline + if(homogeneous_width) + { + const float length(curve.length()); + float dist(0); + Point lastpoint; + for(float n=0.0f;n<0.999999f;n+=1.0f/SAMPLES) + { + const Vector d(deriv(n>CUSP_TANGENT_ADJUST?n:CUSP_TANGENT_ADJUST).perp().norm()); + const Vector p(curve(n)); + + if(n) + dist+=(p-lastpoint).mag(); + + const float w(((next_w-iter_w)*(dist/length)+iter_w)); + + side_a.push_back(p+d*w); + side_b.push_back(p-d*w); + + lastpoint=p; + } + } + else + for(float n=0.0f;n<0.999999f;n+=1.0f/SAMPLES) + { + const Vector d(deriv(n>CUSP_TANGENT_ADJUST?n:CUSP_TANGENT_ADJUST).perp().norm()); + const Vector p(curve(n)); + const float w(((next_w-iter_w)*n+iter_w)); + + side_a.push_back(p+d*w); + side_b.push_back(p-d*w); + } + last_tangent=deriv(1.0-CUSP_TANGENT_ADJUST); + side_a.push_back(curve(1.0)+last_tangent.perp().norm()*next_w); + side_b.push_back(curve(1.0)-last_tangent.perp().norm()*next_w); + + first=false; + } + + if(loop) + { + reverse(side_b.begin(),side_b.end()); + add_polygon(side_a); + add_polygon(side_b); + return; + } + + // Insert code for adding end tip + if(round_tip[1] && !loop && side_a.size()) + { + // remove the last point + side_a.pop_back(); + + const Point vertex(bline.back().get_vertex()); + const Vector tangent(last_tangent.norm()); + const float w((bline.back().get_width()*width)*0.5f+expand); + + hermite curve( + vertex+tangent.perp()*w, + vertex-tangent.perp()*w, + tangent*w*ROUND_END_FACTOR, + -tangent*w*ROUND_END_FACTOR + ); + + for(float n=0.0f;n<0.999999f;n+=1.0f/SAMPLES) + side_a.push_back(curve(n)); + } + + for(;!side_b.empty();side_b.pop_back()) + side_a.push_back(side_b.back()); + + // Insert code for adding begin tip + if(round_tip[0] && !loop && side_a.size()) + { + // remove the last point + side_a.pop_back(); + + const Point vertex(bline.front().get_vertex()); + const Vector tangent(first_tangent.norm()); + const float w((bline.front().get_width()*width)*0.5f+expand); + + hermite curve( + vertex-tangent.perp()*w, + vertex+tangent.perp()*w, + -tangent*w*ROUND_END_FACTOR, + tangent*w*ROUND_END_FACTOR + ); + + for(float n=0.0f;n<0.999999f;n+=1.0f/SAMPLES) + side_a.push_back(curve(n)); + } + + add_polygon(side_a); + + +#else /* 1 */ + + bool loop_; + if(bline.get_contained_type()==ValueBase::TYPE_BLINEPOINT) + { + ValueBase value(bline); + + if(loopyness<0.5f) + { + value.set_loop(false); + loop_=false; + } + else + loop_=value.get_loop(); + + segment_list=convert_bline_to_segment_list(value); + width_list=convert_bline_to_width_list(value); + } + else + { + clear(); + return; + } + + + + if(segment_list.empty()) + { + synfig::warning("Outline: segment_list is empty, layer disabled"); + clear(); + return; + } + + + // Repair the width list if we need to + { + Real default_width; + if(width_list.empty()) + default_width=0.01; + else + default_width=width_list.back(); + + while(width_list.size()segment_list.size()+1) + width_list.pop_back(); + + } + + // Repair the zero tangents (if any) + { + vector::iterator iter; + for(iter=segment_list.begin();iter!=segment_list.end();++iter) + { + if(iter->t1.mag_squared()<=EPSILON && iter->t2.mag_squared()<=EPSILON) + iter->t1=iter->t2=iter->p2-iter->p1; + } + } + + vector::iterator iter; + vector scaled_width_list; + for(iter=width_list.begin();iter!=width_list.end();++iter) + { + scaled_width_list.push_back((*iter*width+expand)*0.5f); + } + + Vector::value_type n; + etl::hermite curve; + vector vector_list; + Vector last_tangent(segment_list.back().t2); + clear(); + + if(!loop_) + last_tangent=NO_LOOP_COOKIE; + + { + vector::iterator iter; + vector::iterator witer; + for( + iter=segment_list.begin(), + witer=scaled_width_list.begin(); + iter!=segment_list.end(); + ++iter,++witer) + { + if(iter->t1.mag_squared()<=EPSILON && iter->t2.mag_squared()<=EPSILON) + { + vector_list.push_back(iter->p1-(iter->p2-iter->p1).perp().norm()*witer[0]); + vector_list.push_back((iter->p2-iter->p1)*0.05+iter->p1-(iter->p2-iter->p1).perp().norm()*((witer[1]-witer[0])*0.05+witer[0])); + vector_list.push_back((iter->p2-iter->p1)*0.95+iter->p1-(iter->p2-iter->p1).perp().norm()*((witer[1]-witer[0])*0.95+witer[0])); + vector_list.push_back(iter->p2-(iter->p2-iter->p1).perp().norm()*witer[1]); + } + else + { + curve.p1()=iter->p1; + curve.t1()=iter->t1; + curve.p2()=iter->p2; + curve.t2()=iter->t2; + curve.sync(); + + etl::derivative > deriv(curve); + + // without this if statement, the broken tangents would + // have boxed edges + if(sharp_cusps && last_tangent!=NO_LOOP_COOKIE && !last_tangent.is_equal_to(iter->t1)) + { + //Vector curr_tangent(iter->t1); + Vector curr_tangent(deriv(CUSP_TANGENT_ADJUST)); + + const Vector t1(last_tangent.perp().norm()); + const Vector t2(curr_tangent.perp().norm()); + + Point p1(iter->p1+t1*witer[0]); + Point p2(iter->p1+t2*witer[0]); + + Real cross(t1*t2.perp()); + + if(cross>CUSP_THRESHOLD) + vector_list.push_back(line_intersection(p1,last_tangent,p2,curr_tangent)); + else if(cross>0) + { + float amount(max(0.0f,(float)(cross/CUSP_THRESHOLD))*(SPIKE_AMOUNT-1)+1); + // Push back something to make it look vaguely round; + //vector_list.push_back(iter->p1+(t1*1.25+t2).norm()*witer[0]*amount); + vector_list.push_back(iter->p1+(t1+t2).norm()*witer[0]*amount); + //vector_list.push_back(iter->p1+(t1+t2*1.25).norm()*witer[0]*amount); + } + } + //last_tangent=iter->t2; + last_tangent=deriv(1.0f-CUSP_TANGENT_ADJUST); + + for(n=0.0f;n<1.0f;n+=1.0f/SAMPLES) + vector_list.push_back(curve(n)+deriv(n>CUSP_TANGENT_ADJUST?n:CUSP_TANGENT_ADJUST).perp().norm()*((witer[1]-witer[0])*n+witer[0]) ); + vector_list.push_back(curve(1.0)+deriv(1.0-CUSP_TANGENT_ADJUST).perp().norm()*witer[1]); + + } + } + if(round_tip[1] && !loop_/* && (!sharp_cusps || segment_list.front().p1!=segment_list.back().p2)*/) + { + // remove the last point + vector_list.pop_back(); + + iter--; + + curve.p1()=iter->p2+Vector(last_tangent[1],-last_tangent[0]).norm()*(*witer); + curve.p2()=iter->p2-(Vector(last_tangent[1],-last_tangent[0]).norm()*(*witer)); + curve.t2()=-(curve.t1()=last_tangent/last_tangent.mag()*(*witer)*ROUND_END_FACTOR); + curve.sync(); + for(n=0.0f;n<1.0f;n+=1.0f/SAMPLES) + vector_list.push_back(curve(n)); + + // remove the last point + vector_list.pop_back(); + } + } + + if(!loop_) + last_tangent=NO_LOOP_COOKIE; + else + { + add_polygon(vector_list); + vector_list.clear(); + last_tangent=segment_list.front().t1; + } + + //else + // last_tangent=segment_list.back().t2; + + { + vector::reverse_iterator iter; + vector::reverse_iterator witer; + for( + iter=segment_list.rbegin(), + witer=scaled_width_list.rbegin(),++witer; + !(iter==segment_list.rend()); + ++iter,++witer) + { + + if(iter->t1.mag_squared()<=EPSILON && iter->t2.mag_squared()<=EPSILON) + { + vector_list.push_back(iter->p2+(iter->p2-iter->p1).perp().norm()*witer[0]); + vector_list.push_back((iter->p2-iter->p1)*0.95+iter->p1+(iter->p2-iter->p1).perp().norm()*((witer[-1]-witer[0])*0.95+witer[0])); + vector_list.push_back((iter->p2-iter->p1)*0.05+iter->p1+(iter->p2-iter->p1).perp().norm()*((witer[-1]-witer[0])*0.05+witer[0])); + vector_list.push_back(iter->p1+(iter->p2-iter->p1).perp().norm()*witer[-1]); + } + else + { + curve.p1()=iter->p1; + curve.t1()=iter->t1; + curve.p2()=iter->p2; + curve.t2()=iter->t2; + curve.sync(); + + etl::derivative > deriv(curve); + + // without this if statement, the broken tangents would + // have boxed edges + if(sharp_cusps && last_tangent!=NO_LOOP_COOKIE && !last_tangent.is_equal_to(iter->t2)) + { + //Vector curr_tangent(iter->t2); + Vector curr_tangent(deriv(1.0f-CUSP_TANGENT_ADJUST)); + + const Vector t1(last_tangent.perp().norm()); + const Vector t2(curr_tangent.perp().norm()); + + Point p1(iter->p2-t1*witer[-1]); + Point p2(iter->p2-t2*witer[-1]); + + Real cross(t1*t2.perp()); + + //if(last_tangent.perp().norm()*curr_tangent.norm()<-CUSP_THRESHOLD) + if(cross>CUSP_THRESHOLD) + vector_list.push_back(line_intersection(p1,last_tangent,p2,curr_tangent)); + else if(cross>0) + { + float amount(max(0.0f,(float)(cross/CUSP_THRESHOLD))*(SPIKE_AMOUNT-1)+1); + // Push back something to make it look vaguely round; + //vector_list.push_back(iter->p2-(t1*1.25+t2).norm()*witer[-1]*amount); + vector_list.push_back(iter->p2-(t1+t2).norm()*witer[-1]*amount); + //vector_list.push_back(iter->p2-(t1+t2*1.25).norm()*witer[-1]*amount); + } + } + //last_tangent=iter->t1; + last_tangent=deriv(CUSP_TANGENT_ADJUST); + + for(n=1.0f;n>CUSP_TANGENT_ADJUST;n-=1.0f/SAMPLES) + vector_list.push_back(curve(n)-deriv(1-n>CUSP_TANGENT_ADJUST?n:1-CUSP_TANGENT_ADJUST).perp().norm()*((witer[-1]-witer[0])*n+witer[0]) ); + vector_list.push_back(curve(0.0f)-deriv(CUSP_TANGENT_ADJUST).perp().norm()*witer[0]); + } + } + if(round_tip[0] && !loop_/* && (!sharp_cusps || segment_list.front().p1!=segment_list.back().p2)*/) + { + // remove the last point + vector_list.pop_back(); + iter--; + witer--; + + curve.p1()=iter->p1+Vector(last_tangent[1],-last_tangent[0]).norm()*(*witer); + curve.p2()=iter->p1-(Vector(last_tangent[1],-last_tangent[0]).norm()*(*witer)); + curve.t1()=-(curve.t2()=last_tangent/last_tangent.mag()*(*witer)*ROUND_END_FACTOR); + curve.sync(); + + for(n=1.0;n>0.0;n-=1.0/SAMPLES) + vector_list.push_back(curve(n)); + + // remove the last point + vector_list.pop_back(); + } + } + + //if(loop_) + // reverse(vector_list.begin(),vector_list.end()); + +#ifdef _DEBUG + { + vector::iterator iter; + for(iter=vector_list.begin();iter!=vector_list.end();++iter) + if(!iter->is_valid()) + { + synfig::error("Outline::sync(): Bad point in vector_list!"); + } + //synfig::info("BLEHH__________--- x:%f, y:%f",vector_list.front()[0],vector_list.front()[1]); + } +#endif /* _DEBUG */ + + add_polygon(vector_list); + + +#endif /* 1 */ + } catch (...) { synfig::error("Outline::sync(): Exception thrown"); throw; } +} + +#undef bline + +bool +Outline::set_param(const String & param, const ValueBase &value) +{ + if(param=="segment_list") + { + if(dynamic_param_list().count("segment_list")) + { + connect_dynamic_param("bline",dynamic_param_list().find("segment_list")->second); + disconnect_dynamic_param("segment_list"); + synfig::warning("Outline::set_param(): Updated valuenode connection to use the new \"bline\" parameter."); + } + else + synfig::warning("Outline::set_param(): The parameter \"segment_list\" is deprecated. Use \"bline\" instead."); + } + + if( (param=="segment_list" || param=="bline") && value.get_type()==ValueBase::TYPE_LIST) + { + //if(value.get_contained_type()!=ValueBase::TYPE_BLINEPOINT) + // return false; + + bline=value; + + return true; + } + /* + if( param=="seg" && value.get_type()==ValueBase::TYPE_SEGMENT) + { + if(!segment_list.empty()) + segment_list.clear(); + + segment_list.push_back(value.get(Segment())); + loop_=false; + //sync(); + return true; + } + if( param=="w[0]" && value.get_type()==ValueBase::TYPE_REAL) + { + if(width_list.size()<2) + { + width_list.push_back(value.get(Real())); + width_list.push_back(value.get(Real())); + } + else + { + width_list[0]=value.get(Real()); + } + width=1; + //sync(); + return true; + } + + if( param=="w[1]" && value.get_type()==ValueBase::TYPE_REAL) + { + if(width_list.size()<2) + { + width_list.push_back(value.get(Real())); + width_list.push_back(value.get(Real())); + } + else + { + width_list[1]=value.get(Real()); + } + width=1; + //sync(); + return true; + } + + if( param=="width_list" && value.same_as(width_list)) + { + width_list=value; + //sync(); + return true; + } + */ + + IMPORT(round_tip[0]); + IMPORT(round_tip[1]); + IMPORT(sharp_cusps); + IMPORT_PLUS(width,if(old_version){width*=2.0;}); + IMPORT(loopyness); + IMPORT(expand); + IMPORT(homogeneous_width); + + if(param!="vector_list") + return Layer_Polygon::set_param(param,value); + + return false; +} + +void +Outline::set_time(Context context, Time time)const +{ + const_cast(this)->sync(); + context.set_time(time); +} + +void +Outline::set_time(Context context, Time time, Vector pos)const +{ + const_cast(this)->sync(); + context.set_time(time,pos); +} + +ValueBase +Outline::get_param(const String& param)const +{ + EXPORT(bline); + EXPORT(expand); + //EXPORT(width_list); + //EXPORT(segment_list); + EXPORT(homogeneous_width); + EXPORT(round_tip[0]); + EXPORT(round_tip[1]); + EXPORT(sharp_cusps); + EXPORT(width); + EXPORT(loopyness); + + EXPORT_NAME(); + EXPORT_VERSION(); + + if(param!="vector_list") + return Layer_Polygon::get_param(param); + return ValueBase(); +} + +Layer::Vocab +Outline::get_param_vocab()const +{ + Layer::Vocab ret(Layer_Polygon::get_param_vocab()); + + // Pop off the polygon parameter from the polygon vocab + ret.pop_back(); + + ret.push_back(ParamDesc("bline") + .set_local_name(_("Vertices")) + .set_origin("offset") + .set_scalar("width") + .set_description(_("A list of BLine Points")) + ); + + /* + ret.push_back(ParamDesc("width_list") + .set_local_name(_("Point Widths")) + .set_origin("segment_list") + .hidden() + .not_critical() + ); + */ + + ret.push_back(ParamDesc("width") + .set_is_distance() + .set_local_name(_("Outline Width")) + ); + + ret.push_back(ParamDesc("expand") + .set_is_distance() + .set_local_name(_("Expand")) + ); + + ret.push_back(ParamDesc("sharp_cusps") + .set_local_name(_("Sharp Cusps")) + .set_description(_("Determines cusp type")) + ); + + ret.push_back(ParamDesc("round_tip[0]") + .set_local_name(_("Rounded Begin")) + .set_description(_("Round off the tip")) + ); + + ret.push_back(ParamDesc("round_tip[1]") + .set_local_name(_("Rounded End")) + .set_description(_("Round off the tip")) + ); + ret.push_back(ParamDesc("loopyness") + .set_local_name(_("Loopyness")) + ); + ret.push_back(ParamDesc("homogeneous_width") + .set_local_name(_("Homogeneous")) + ); + + return ret; +} diff --git a/synfig-core/tags/stable/src/modules/mod_geometry/outline.h b/synfig-core/tags/stable/src/modules/mod_geometry/outline.h new file mode 100644 index 0000000..7f22050 --- /dev/null +++ b/synfig-core/tags/stable/src/modules/mod_geometry/outline.h @@ -0,0 +1,94 @@ +/* === S Y N F I G ========================================================= */ +/*! \file outline.h +** \brief Template Header +** +** $Id$ +** +** \legal +** Copyright (c) 2002-2005 Robert B. Quattlebaum Jr., Adrian Bentley +** +** This package is free software; you can redistribute it and/or +** modify it under the terms of the GNU General Public License as +** published by the Free Software Foundation; either version 2 of +** the License, or (at your option) any later version. +** +** This package is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +** General Public License for more details. +** \endlegal +*/ +/* ========================================================================= */ + +/* === S T A R T =========================================================== */ + +#ifndef __SYNFIG_OUTLINE_H +#define __SYNFIG_OUTLINE_H + +/* === H E A D E R S ======================================================= */ + +#include +#include +#include +#include +#include + +/* === M A C R O S ========================================================= */ + +/* === T Y P E D E F S ===================================================== */ + +/* === C L A S S E S & S T R U C T S ======================================= */ + +using namespace synfig; +using namespace std; +using namespace etl; + +class Outline : public synfig::Layer_Polygon +{ + SYNFIG_LAYER_MODULE_EXT +private: + + synfig::ValueBase bline; + + std::vector segment_list; + std::vector width_list; + + bool round_tip[2]; + + bool sharp_cusps; + + bool loop_; + + synfig::Real width; + + synfig::Real expand; + + Real loopyness; + bool old_version; + + bool needs_sync; + + bool homogeneous_width; + +public: + + Outline(); + + //! Updates the polygon data to match the parameters. + void sync(); + + virtual bool set_param(const String & param, const synfig::ValueBase &value); + + virtual ValueBase get_param(const String & param)const; + + virtual Vocab get_param_vocab()const; + virtual void set_time(Context context, Time time)const; + virtual void set_time(Context context, Time time, Vector pos)const; + virtual bool set_version(const String &ver){if(ver=="0.1")old_version=true; return true;} + virtual void reset_version(){old_version=false;} + +}; + +/* === E N D =============================================================== */ + +#endif diff --git a/synfig-core/tags/stable/src/modules/mod_geometry/rectangle.cpp b/synfig-core/tags/stable/src/modules/mod_geometry/rectangle.cpp new file mode 100644 index 0000000..48d9e9d --- /dev/null +++ b/synfig-core/tags/stable/src/modules/mod_geometry/rectangle.cpp @@ -0,0 +1,630 @@ +/* === S Y N F I G ========================================================= */ +/*! \file rectangle.cpp +** \brief Template Header +** +** $Id$ +** +** \legal +** Copyright (c) 2002 Robert B. Quattlebaum Jr. +** +** This package is free software; you can redistribute it and/or +** modify it under the terms of the GNU General Public License as +** published by the Free Software Foundation; either version 2 of +** the License, or (at your option) any later version. +** +** This package is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +** General Public License for more details. +** \endlegal +*/ +/* ========================================================================= */ + +/* === H E A D E R S ======================================================= */ + +#ifdef USING_PCH +# include "pch.h" +#else +#ifdef HAVE_CONFIG_H +# include +#endif + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include "rectangle.h" + +#endif + +/* === U S I N G =========================================================== */ + +using namespace etl; +using namespace std; +using namespace synfig; + +/* === G L O B A L S ======================================================= */ + +SYNFIG_LAYER_INIT(Rectangle); +SYNFIG_LAYER_SET_NAME(Rectangle,"rectangle"); +SYNFIG_LAYER_SET_LOCAL_NAME(Rectangle,_("Rectangle")); +SYNFIG_LAYER_SET_CATEGORY(Rectangle,_("Geometry")); +SYNFIG_LAYER_SET_VERSION(Rectangle,"0.2"); +SYNFIG_LAYER_SET_CVS_ID(Rectangle,"$Id$"); + +/* === P R O C E D U R E S ================================================= */ + +/* +inline int ceil_to_int(const float x) { return static_cast(ceil(x)); } +inline int ceil_to_int(const double x) { return static_cast(ceil(x)); } + +inline int floor_to_int(const float x) { return static_cast(floor(x)); } +inline int floor_to_int(const double x) { return static_cast(floor(x)); } +*/ + +/* === M E T H O D S ======================================================= */ + +/* === E N T R Y P O I N T ================================================= */ + +Rectangle::Rectangle(): + Layer_Composite(1.0,Color::BLEND_STRAIGHT), + color(Color::black()), + point1(0,0), + point2(1,1), + expand(0), + invert(false) +{ +} + +bool +Rectangle::set_param(const String & param, const ValueBase &value) +{ + IMPORT(color); + IMPORT(point1); + IMPORT(point2); + IMPORT(expand); + IMPORT(invert); + + return Layer_Composite::set_param(param,value); +} + +ValueBase +Rectangle::get_param(const String ¶m)const +{ + EXPORT(color); + EXPORT(point1); + EXPORT(point2); + EXPORT(expand); + EXPORT(invert); + + EXPORT_NAME(); + EXPORT_VERSION(); + + return Layer_Composite::get_param(param); +} + +Layer::Vocab +Rectangle::get_param_vocab()const +{ + Layer::Vocab ret(Layer_Composite::get_param_vocab()); + + ret.push_back(ParamDesc("color") + .set_local_name(_("Color")) + ); + + ret.push_back(ParamDesc("point1") + .set_local_name(_("Point 1")) + .set_box("point2") + ); + + ret.push_back(ParamDesc("point2") + .set_local_name(_("Point 2")) + ); + + ret.push_back(ParamDesc("expand") + .set_is_distance() + .set_local_name(_("Expand amount")) + ); + + ret.push_back(ParamDesc("invert") + .set_local_name(_("Invert the rectangle")) + ); + + return ret; +} + +synfig::Layer::Handle +Rectangle::hit_check(synfig::Context context, const synfig::Point &pos)const +{ + if(is_disabled()) + return context.hit_check(pos); + + Point max,min; + + max[0]=std::max(point1[0],point2[0])+expand; + max[1]=std::max(point1[1],point2[1])+expand; + min[0]=std::min(point1[0],point2[0])-expand; + min[1]=std::min(point1[1],point2[1])-expand; + + bool intersect(false); + + if( pos[0]min[0] && + pos[1]min[1] ) + { + intersect=true; + } + + if(invert) + intersect=!intersect; + + if(intersect) + { + synfig::Layer::Handle tmp; + if(get_blend_method()==Color::BLEND_BEHIND && (tmp=context.hit_check(pos))) + return tmp; + if(Color::is_onto(get_blend_method()) && !(tmp=context.hit_check(pos))) + return 0; + return const_cast(this); + } + + return context.hit_check(pos); +} + +bool +Rectangle::is_solid_color()const +{ + return Layer_Composite::is_solid_color() || + (get_blend_method() == Color::BLEND_COMPOSITE && + get_amount() == 1.0f && + color.get_a() == 1.0f); +} + +Color +Rectangle::get_color(Context context, const Point &pos)const +{ + if(is_disabled()) + return context.get_color(pos); + + Point max,min; + + max[0]=std::max(point1[0],point2[0])+expand; + max[1]=std::max(point1[1],point2[1])+expand; + min[0]=std::min(point1[0],point2[0])-expand; + min[1]=std::min(point1[1],point2[1])-expand; + +/************************** +// This is darco's old-old-old feathered box code +// it produces really nice feathered edges + if(feather!=0.0) + { + if( pos[0]<=max[0]-feather/2.0 && pos[0]>=min[0]+feather/2.0 && + pos[1]<=max[1]-feather/2.0 && pos[1]>=min[1]+feather/2.0 ) + { + if(invert) + return (*context).GetColor(context,pos); + else + return color; + } + + if( pos[0]>=max[0]+feather/2.0 || pos[0]<=min[0]-feather/2.0 || + pos[1]>=max[1]+feather/2.0 || pos[1]<=min[1]-feather/2.0 ) + { + if(invert) + return color; + else + return (*context).GetColor(context,pos); + } + + Color::unit alpha=1000000; + Color::unit alpha2=1000000; + + if(max[0]-pos[0]+feather/2.0=feather) + { + if(invert) + return color; + else + return (*context).GetColor(context,pos); + } + + alpha=feather-alpha; + } + else + { + alpha=(alphamin[0] && + pos[1]min[1] ) + { + if(invert) + return context.get_color(pos); + else + { + if(is_solid_color()) + return color; + else + return Color::blend(color,context.get_color(pos),get_amount(),get_blend_method()); + + } + } + + if(invert) + { + if(is_solid_color()) + return color; + else + return Color::blend(color,context.get_color(pos),get_amount(),get_blend_method()); + } + + return context.get_color(pos); +} + +bool +Rectangle::accelerated_render(Context context,Surface *surface,int quality, const RendDesc &renddesc, ProgressCallback *cb)const +{ + if(is_disabled()) + return context.accelerated_render(surface,quality,renddesc,cb); + + const Point tl(renddesc.get_tl()); + const Point br(renddesc.get_br()); + + const int w(renddesc.get_w()); + const int h(renddesc.get_h()); + + // Width and Height of a pixel + const Real pw = (br[0] - tl[0]) / w; + const Real ph = (br[1] - tl[1]) / h; + + Point max(point1),min(point2); + + + + + /* + + if(invert) + { + max=context.get_bounding_rect().get_max(); + min=context.get_bounding_rect().get_min(); + } + else + { + max=context.get_full_bounding_rect().get_max(); + min=context.get_full_bounding_rect().get_min(); + } + */ + + + + + + if((min[0] > max[0]) ^ (pw < 0))swap(min[0],max[0]); + if((min[1] > max[1]) ^ (ph < 0))swap(min[1],max[1]); + + if(min[0] > max[0]) + { + min[0]+=expand; + max[0]-=expand; + } + else + { + min[0]-=expand; + max[0]+=expand; + } + + if(min[1] > max[1]) + { + min[1]+=expand; + max[1]-=expand; + } + else + { + min[1]-=expand; + max[1]+=expand; + } + + if(invert) + { + int left(floor_to_int((min[0]-tl[0])/pw)); + int right(ceil_to_int((max[0]-tl[0])/pw)); + int top(floor_to_int((min[1]-tl[1])/ph)); + int bottom(ceil_to_int((max[1]-tl[1])/ph)); + + float left_edge((min[0]-tl[0])/pw-float(left)); + float right_edge(float(right)-(max[0]-tl[0])/pw); + float top_edge((min[1]-tl[1])/ph-float(top)); + float bottom_edge(float(bottom)-(max[1]-tl[1])/ph); + + if(top<0)top=0,top_edge=0; + if(left<0)left=0,left_edge=0; + if(bottom>h)bottom=h,bottom_edge=0; + if(right>w)right=w,right_edge=0; + + if(is_solid_color()) + { + Surface subimage; + RendDesc desc(renddesc); + desc.set_flags(0); + + //fill the surface with the background color initially + surface->set_wh(w,h); + surface->fill(color); + + // Check for the case where there is nothing to render + if (right <= left || bottom <= top) + return true; + + desc.set_subwindow(left,top,right-left,bottom-top); + + // Render what is behind us + if(!context.accelerated_render(&subimage,quality,desc,cb)) + { + if(cb)cb->error(strprintf(__FILE__"%d: Accelerated Renderer Failure",__LINE__)); + return false; + } + + Surface::pen pen(surface->get_pen(left,top)); + + subimage.blit_to(pen); + } + else + { + if(!context.accelerated_render(surface,quality,renddesc,cb)) + { + if(cb)cb->error(strprintf(__FILE__"%d: Accelerated Renderer Failure",__LINE__)); + return false; + } + + Surface subimage; + + // Check for the case where there is something to render + if (right > left && bottom > top) + { + // save a copy of the overlapping region from surface into subimage + subimage.set_wh(right-left,bottom-top); + Surface::pen subimage_pen(subimage.begin()); + surface->blit_to(subimage_pen,left,top,right-left,bottom-top); + } + + // fill surface with the rectangle's colour + Surface::alpha_pen surface_pen(surface->begin(),get_amount(),get_blend_method()); + surface->fill(color,surface_pen,w,h); + + if (subimage) + { + // copy the saved overlapping region back from subimage into surface + Surface::pen pen(surface->get_pen(left,top)); + subimage.blit_to(pen); + } + else + // if there's no overlapping region, return now of the following code corrupts memory + return true; + } + + Surface::alpha_pen pen; + + if(bottom-1>=0 && bottom_edge) + { + pen=Surface::alpha_pen(surface->get_pen(left,bottom-1),get_amount()*bottom_edge,get_blend_method()); + surface->fill(color,pen,right-left,1); + } + + if(right-1>=0 && right_edge) + { + pen=Surface::alpha_pen(surface->get_pen(right-1,top),get_amount()*right_edge,get_blend_method()); + surface->fill(color,pen,1,bottom-top); + } + + if(left>=0 && left_edge) + { + pen=Surface::alpha_pen(surface->get_pen(left,top),get_amount()*left_edge,get_blend_method()); + surface->fill(color,pen,1,bottom-top); + } + + if(top>=0 && top_edge) + { + pen=Surface::alpha_pen(surface->get_pen(left,top),get_amount()*top_edge,get_blend_method()); + surface->fill(color,pen,right-left,1); + } + + return true; + } + + // not inverted + + int left(ceil_to_int((min[0]-tl[0])/pw)); + int right(floor_to_int((max[0]-tl[0])/pw)); + int top(ceil_to_int((min[1]-tl[1])/ph)); + int bottom(floor_to_int((max[1]-tl[1])/ph)); + + float left_edge(float(left)-(min[0]-tl[0])/pw); + float right_edge((max[0]-tl[0])/pw-float(right)); + float top_edge(float(top)-(min[1]-tl[1])/ph); + float bottom_edge((max[1]-tl[1])/ph-float(bottom)); + + if(top<=0)top=0,top_edge=0; + if(left<=0)left=0,left_edge=0; + if(bottom>=h)bottom=h,bottom_edge=0; + if(right>=w)right=w,right_edge=0; + +/* + top = std::max(0,top); + left = std::max(0,left); + bottom = std::min(h,bottom); + right = std::min(w,right); +*/ + + // optimisation - if the whole tile is covered by this rectangle, + // and the rectangle is a solid colour, we don't need to render + // what's behind us + if (is_solid_color() && top == 0 && left == 0 && bottom == h && right == w) + { + surface->set_wh(w,h); + surface->fill(color); + return true; + } + + // Render what is behind us + if(!context.accelerated_render(surface,quality,renddesc,cb)) + { + if(cb)cb->error(strprintf(__FILE__"%d: Accelerated Renderer Failure",__LINE__)); + return false; + } + + // In the case where there is nothing to render... + if (right < left || bottom < top) + return true; + + Surface::alpha_pen pen; + + if(right-left>0&&bottom-top>0) + { + if(is_solid_color()) + surface->fill(color,left,top,right-left,bottom-top); + else + { + pen=Surface::alpha_pen(surface->get_pen(left,top),get_amount(),get_blend_method()); + surface->fill(color,pen,right-left,bottom-top); + } + } + + if(bottomget_h() && bottom_edge>=0.0001) + { + pen=Surface::alpha_pen(surface->get_pen(left,bottom),get_amount()*bottom_edge,get_blend_method()); + surface->fill(color,pen,right-left,1); + } + + if(rightget_w() && right_edge>=0.0001) + { + pen=Surface::alpha_pen(surface->get_pen(right,top),get_amount()*right_edge,get_blend_method()); + surface->fill(color,pen,1,bottom-top); + } + + if(left>0 && left_edge>=0.0001) + { + pen=Surface::alpha_pen(surface->get_pen(left-1,top),get_amount()*left_edge,get_blend_method()); + surface->fill(color,pen,1,bottom-top); + } + + if(top>0 && top_edge>=0.0001) + { + pen=Surface::alpha_pen(surface->get_pen(left,top-1),get_amount()*top_edge,get_blend_method()); + surface->fill(color,pen,right-left,1); + } + + + return true; +} + +Rect +Rectangle::get_bounding_rect()const +{ + if(invert) + return Rect::full_plane(); + + Point max(point1),min(point2); + if((min[0] > max[0]))swap(min[0],max[0]); + if((min[1] > max[1]))swap(min[1],max[1]); + if(min[0] > max[0]) + { + min[0]+=expand; + max[0]-=expand; + } + else + { + min[0]-=expand; + max[0]+=expand; + } + + if(min[1] > max[1]) + { + min[1]+=expand; + max[1]-=expand; + } + else + { + min[1]-=expand; + max[1]+=expand; + } + + Rect bounds(min,max); + + return bounds; +} + +Rect +Rectangle::get_full_bounding_rect(Context context)const +{ + if(invert) + { + if(is_solid_color() && color.get_a()==0) + { + Point max(point1),min(point2); + if((min[0] > max[0]))swap(min[0],max[0]); + if((min[1] > max[1]))swap(min[1],max[1]); + if(min[0] > max[0]) + { + min[0]+=expand; + max[0]-=expand; + } + else + { + min[0]-=expand; + max[0]+=expand; + } + + if(min[1] > max[1]) + { + min[1]+=expand; + max[1]-=expand; + } + else + { + min[1]-=expand; + max[1]+=expand; + } + + Rect bounds(min,max); + + return bounds & context.get_full_bounding_rect(); + } + return Rect::full_plane(); + } + + return Layer_Composite::get_full_bounding_rect(context); +} diff --git a/synfig-core/tags/stable/src/modules/mod_geometry/rectangle.h b/synfig-core/tags/stable/src/modules/mod_geometry/rectangle.h new file mode 100644 index 0000000..422ad05 --- /dev/null +++ b/synfig-core/tags/stable/src/modules/mod_geometry/rectangle.h @@ -0,0 +1,81 @@ +/* === S Y N F I G ========================================================= */ +/*! \file rectangle.h +** \brief Template Header +** +** $Id$ +** +** \legal +** Copyright (c) 2002-2005 Robert B. Quattlebaum Jr., Adrian Bentley +** +** This package is free software; you can redistribute it and/or +** modify it under the terms of the GNU General Public License as +** published by the Free Software Foundation; either version 2 of +** the License, or (at your option) any later version. +** +** This package is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +** General Public License for more details. +** \endlegal +*/ +/* ========================================================================= */ + +/* === S T A R T =========================================================== */ + +#ifndef __SYNFIG_FILLEDRECT_H +#define __SYNFIG_FILLEDRECT_H + +/* === H E A D E R S ======================================================= */ + +#include +#include +#include +#include +#include + +/* === M A C R O S ========================================================= */ + +/* === T Y P E D E F S ===================================================== */ + +/* === C L A S S E S & S T R U C T S ======================================= */ + +class Rectangle : public synfig::Layer_Composite, public synfig::Layer_NoDeform +{ + SYNFIG_LAYER_MODULE_EXT + +private: + + synfig::Color color; + + synfig::Point point1; + synfig::Point point2; + + synfig::Real expand; + + bool invert; + +public: + + Rectangle(); + + virtual bool set_param(const synfig::String & param, const synfig::ValueBase &value); + + virtual synfig::ValueBase get_param(const synfig::String & param)const; + + virtual bool Rectangle::is_solid_color()const; + + virtual synfig::Color get_color(synfig::Context context, const synfig::Point &pos)const; + + virtual bool accelerated_render(synfig::Context context,synfig::Surface *surface,int quality, const synfig::RendDesc &renddesc, synfig::ProgressCallback *cb)const; + + synfig::Layer::Handle hit_check(synfig::Context context, const synfig::Point &point)const; + + virtual synfig::Rect get_bounding_rect()const; + virtual synfig::Rect get_full_bounding_rect(synfig::Context context)const; + + virtual Vocab get_param_vocab()const; +}; // END of class FilledRect + +/* === E N D =============================================================== */ + +#endif diff --git a/synfig-core/tags/stable/src/modules/mod_geometry/region.cpp b/synfig-core/tags/stable/src/modules/mod_geometry/region.cpp new file mode 100644 index 0000000..75a9a1e --- /dev/null +++ b/synfig-core/tags/stable/src/modules/mod_geometry/region.cpp @@ -0,0 +1,250 @@ +/* === S Y N F I G ========================================================= */ +/*! \file region.cpp +** \brief Template Header +** +** $Id$ +** +** \legal +** Copyright (c) 2002-2005 Robert B. Quattlebaum Jr., Adrian Bentley +** +** This package is free software; you can redistribute it and/or +** modify it under the terms of the GNU General Public License as +** published by the Free Software Foundation; either version 2 of +** the License, or (at your option) any later version. +** +** This package is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +** General Public License for more details. +** \endlegal +** +** === N O T E S =========================================================== +** +** ========================================================================= */ + +/* === H E A D E R S ======================================================= */ + +#ifdef USING_PCH +# include "pch.h" +#else +#ifdef HAVE_CONFIG_H +# include +#endif + +#include "region.h" +#include +#include +#include + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#endif + +using namespace etl; + +/* === M A C R O S ========================================================= */ + +#define SAMPLES 75 + +/* === G L O B A L S ======================================================= */ + +SYNFIG_LAYER_INIT(Region); +SYNFIG_LAYER_SET_NAME(Region,"region"); +SYNFIG_LAYER_SET_LOCAL_NAME(Region,_("Region")); +SYNFIG_LAYER_SET_CATEGORY(Region,_("Geometry")); +SYNFIG_LAYER_SET_VERSION(Region,"0.1"); +SYNFIG_LAYER_SET_CVS_ID(Region,"$Id$"); + +/* === P R O C E D U R E S ================================================= */ + +/* === M E T H O D S ======================================================= */ + +/* === E N T R Y P O I N T ================================================= */ + +Region::Region() +{ + clear(); + vector bline_point_list; + bline_point_list.push_back(BLinePoint()); + bline_point_list.push_back(BLinePoint()); + bline_point_list.push_back(BLinePoint()); + bline_point_list[0].set_vertex(Point(0,1)); + bline_point_list[1].set_vertex(Point(0,-1)); + bline_point_list[2].set_vertex(Point(1,0)); + bline_point_list[0].set_tangent(bline_point_list[1].get_vertex()-bline_point_list[2].get_vertex()*0.5f); + bline_point_list[1].set_tangent(bline_point_list[2].get_vertex()-bline_point_list[0].get_vertex()*0.5f); + bline_point_list[2].set_tangent(bline_point_list[0].get_vertex()-bline_point_list[1].get_vertex()*0.5f); + bline_point_list[0].set_width(1.0f); + bline_point_list[1].set_width(1.0f); + bline_point_list[2].set_width(1.0f); + bline=bline_point_list; +} + +void +Region::sync() +{ + if(bline.get_contained_type()==ValueBase::TYPE_BLINEPOINT) + { + segment_list=convert_bline_to_segment_list(bline); + } + else + { + synfig::warning("Region: incorrect type on bline, layer disabled"); + clear(); + return; + } + + if(segment_list.empty()) + { + synfig::warning("Region: segment_list is empty, layer disabled"); + clear(); + return; + } + + bool looped = bline.get_loop(); + + Vector::value_type n; + etl::hermite curve; + vector vector_list; + + vector::const_iterator iter=segment_list.begin(); + //Vector last = iter->p1; + + //make sure the shape has a clean slate for writing + //clear(); + + //and start off at the first point + //move_to(last[0],last[1]); + + for(;iter!=segment_list.end();++iter) + { + //connect them with a line if they aren't already joined + /*if(iter->p1 != last) + { + line_to(iter->p1[0],iter->p1[1]); + } + + //curve to the next end point + curve_to(iter->p1[0] + iter->t1[0]/3.0,iter->p1[1] + iter->t1[1]/3.0, + iter->p2[0] - iter->t2[0]/3.0,iter->p2[1] - iter->t2[1]/3.0, + iter->p2[0],iter->p2[1]); + + last = iter->p2;*/ + + if(iter->t1.is_equal_to(Vector(0,0)) && iter->t2.is_equal_to(Vector(0,0))) + { + vector_list.push_back(iter->p2); + } + else + { + curve.p1()=iter->p1; + curve.t1()=iter->t1; + curve.p2()=iter->p2; + curve.t2()=iter->t2; + curve.sync(); + + for(n=0.0;n<1.0;n+=1.0/SAMPLES) + vector_list.push_back(curve(n)); + } + } + + //add the starting point onto the end so it actually fits the shape, so we can be extra awesome... + if(!looped) + vector_list.push_back(segment_list[0].p1); + + clear(); + add_polygon(vector_list); + + /*close(); + endpath();*/ +} + +bool +Region::set_param(const String & param, const ValueBase &value) +{ + if(param=="segment_list") + { + if(dynamic_param_list().count("segment_list")) + { + connect_dynamic_param("bline",dynamic_param_list().find("segment_list")->second); + disconnect_dynamic_param("segment_list"); + synfig::warning("Region::set_param(): Updated valuenode connection to use the new \"bline\" parameter."); + } + else + synfig::warning("Region::set_param(): The parameter \"segment_list\" is deprecated. Use \"bline\" instead."); + } + + if( (param=="segment_list" || param=="bline") && value.get_type()==ValueBase::TYPE_LIST) + { + //if(value.get_contained_type()!=ValueBase::TYPE_BLINEPOINT) + // return false; + + bline=value; + + return true; + } + +/* if( param=="segment_list" && value.get_type()==ValueBase::TYPE_LIST) + { + if(value.get_contained_type()==ValueBase::TYPE_BLINEPOINT) + segment_list=convert_bline_to_segment_list(value); + else + if(value.get_contained_type()==ValueBase::TYPE_SEGMENT) + segment_list=value; + else + if(value.empty()) + segment_list.clear(); + else + return false; + sync(); + return true; + } + */ + return Layer_Shape::set_param(param,value); +} + +ValueBase +Region::get_param(const String& param)const +{ + EXPORT(bline); + EXPORT_NAME(); + EXPORT_VERSION(); + + return Layer_Shape::get_param(param); +} + +Layer::Vocab +Region::get_param_vocab()const +{ + Layer::Vocab ret(Layer_Shape::get_param_vocab()); + + ret.push_back(ParamDesc("bline") + .set_local_name(_("Vertices")) + .set_origin("offset") + ); + + return ret; +} + +void +Region::set_time(Context context, Time time)const +{ + const_cast(this)->sync(); + context.set_time(time); +} + +void +Region::set_time(Context context, Time time, Vector pos)const +{ + const_cast(this)->sync(); + context.set_time(time,pos); +} diff --git a/synfig-core/tags/stable/src/modules/mod_geometry/region.h b/synfig-core/tags/stable/src/modules/mod_geometry/region.h new file mode 100644 index 0000000..079955b --- /dev/null +++ b/synfig-core/tags/stable/src/modules/mod_geometry/region.h @@ -0,0 +1,73 @@ +/* === S Y N F I G ========================================================= */ +/*! \file region.h +** \brief Header File +** +** $Id$ +** +** \legal +** Copyright (c) 2002-2005 Robert B. Quattlebaum Jr., Adrian Bentley +** +** This package is free software; you can redistribute it and/or +** modify it under the terms of the GNU General Public License as +** published by the Free Software Foundation; either version 2 of +** the License, or (at your option) any later version. +** +** This package is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +** General Public License for more details. +** \endlegal +** +** === N O T E S =========================================================== +** +** ========================================================================= */ + +/* === S T A R T =========================================================== */ + +#ifndef __SYNFIG_REGION_H +#define __SYNFIG_REGION_H + +/* === H E A D E R S ======================================================= */ + +#include +#include +#include +#include + +/* === M A C R O S ========================================================= */ + +/* === T Y P E D E F S ===================================================== */ + +/* === C L A S S E S & S T R U C T S ======================================= */ + +namespace synfig { class Segment; } + +using namespace synfig; +using namespace std; +using namespace etl; + +class Region : protected synfig::Layer_Polygon//Shape +{ + SYNFIG_LAYER_MODULE_EXT +private: + synfig::ValueBase bline; + std::vector segment_list; +public: + Region(); + + //! Updates the polygon data to match the parameters. + void sync(); + + virtual bool set_param(const String & param, const synfig::ValueBase &value); + + virtual ValueBase get_param(const String & param)const; + + virtual Vocab get_param_vocab()const; + virtual void set_time(Context context, Time time)const; + virtual void set_time(Context context, Time time, Vector pos)const; + +}; + +/* === E N D =============================================================== */ + +#endif diff --git a/synfig-core/tags/stable/src/modules/mod_geometry/star.cpp b/synfig-core/tags/stable/src/modules/mod_geometry/star.cpp new file mode 100644 index 0000000..4dfc358 --- /dev/null +++ b/synfig-core/tags/stable/src/modules/mod_geometry/star.cpp @@ -0,0 +1,188 @@ +/* === S Y N F I G ========================================================= */ +/*! \file star.cpp +** \brief Template Header +** +** $Id$ +** +** \legal +** Copyright (c) 2002-2005 Robert B. Quattlebaum Jr., Adrian Bentley +** +** This package is free software; you can redistribute it and/or +** modify it under the terms of the GNU General Public License as +** published by the Free Software Foundation; either version 2 of +** the License, or (at your option) any later version. +** +** This package is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +** General Public License for more details. +** \endlegal +** +** === N O T E S =========================================================== +** +** ========================================================================= */ + +/* === H E A D E R S ======================================================= */ + +#ifdef USING_PCH +# include "pch.h" +#else +#ifdef HAVE_CONFIG_H +# include +#endif + +#include "star.h" +#include +#include +#include + +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#endif + +using namespace etl; + +/* === M A C R O S ========================================================= */ + +#define SAMPLES 75 + +/* === G L O B A L S ======================================================= */ + +SYNFIG_LAYER_INIT(Star); +SYNFIG_LAYER_SET_NAME(Star,"star"); +SYNFIG_LAYER_SET_LOCAL_NAME(Star,_("Star")); +SYNFIG_LAYER_SET_CATEGORY(Star,_("Geometry")); +SYNFIG_LAYER_SET_VERSION(Star,"0.1"); +SYNFIG_LAYER_SET_CVS_ID(Star,"$Id$"); + +/* === P R O C E D U R E S ================================================= */ + +/* === M E T H O D S ======================================================= */ + +/* === E N T R Y P O I N T ================================================= */ + +Star::Star(): + radius1(1.0), + radius2(0.38), + points(5), + angle(Angle::deg(90)) +{ + sync(); +} + +void +Star::sync() +{ + Angle dist_between_points(Angle::rot(1)/float(points)); + std::vector vector_list; + + int i; + for(i=0;i +#include +#include + +/* === M A C R O S ========================================================= */ + +/* === T Y P E D E F S ===================================================== */ + +/* === C L A S S E S & S T R U C T S ======================================= */ + +using namespace synfig; +using namespace std; +using namespace etl; + +class Star : protected synfig::Layer_Polygon +{ + SYNFIG_LAYER_MODULE_EXT +private: + + Real radius1; + Real radius2; + int points; + Angle angle; +public: + Star(); + + //! Updates the polygon data to match the parameters. + void sync(); + + virtual bool set_param(const String & param, const synfig::ValueBase &value); + + virtual ValueBase get_param(const String & param)const; + + virtual Vocab get_param_vocab()const; +}; + +/* === E N D =============================================================== */ + +#endif diff --git a/synfig-core/tags/stable/src/modules/mod_geometry/unmod_geometry.nsh b/synfig-core/tags/stable/src/modules/mod_geometry/unmod_geometry.nsh new file mode 100644 index 0000000..3f5b516 --- /dev/null +++ b/synfig-core/tags/stable/src/modules/mod_geometry/unmod_geometry.nsh @@ -0,0 +1,8 @@ +Section "un.mod_geometry" + Delete "$INSTDIR\lib\synfig\modules\mod_geometry.dll" + RMDir "$INSTDIR\lib\synfig\modules" + RMDir "$INSTDIR\lib\synfig" + RMDir "$INSTDIR\lib" + RMDir "$INSTDIR" +SectionEnd + diff --git a/synfig-core/tags/stable/src/modules/mod_gif/Makefile.am b/synfig-core/tags/stable/src/modules/mod_gif/Makefile.am new file mode 100644 index 0000000..66bf7bf --- /dev/null +++ b/synfig-core/tags/stable/src/modules/mod_gif/Makefile.am @@ -0,0 +1,14 @@ +# $Id$ + + +MAINTAINERCLEANFILES=Makefile.in +INCLUDES = -I$(top_srcdir)/src + +moduledir=@MODULE_DIR@ + +module_LTLIBRARIES = libmod_gif.la +libmod_gif_la_SOURCES = main.cpp trgt_gif.cpp trgt_gif.h +libmod_gif_la_LDFLAGS = -module -no-undefined +libmod_gif_la_CXXFLAGS = @SYNFIG_CFLAGS@ +libmod_gif_la_LIBADD = -L../../synfig -lsynfig @SYNFIG_LIBS@ +EXTRA_DIST= mod_gif.nsh unmod_gif.nsh diff --git a/synfig-core/tags/stable/src/modules/mod_gif/main.cpp b/synfig-core/tags/stable/src/modules/mod_gif/main.cpp new file mode 100644 index 0000000..f236426 --- /dev/null +++ b/synfig-core/tags/stable/src/modules/mod_gif/main.cpp @@ -0,0 +1,55 @@ +/* === S Y N F I G ========================================================= */ +/*! \file mod_gif/main.cpp +** \brief Template Header +** +** $Id$ +** +** \legal +** Copyright (c) 2002-2005 Robert B. Quattlebaum Jr., Adrian Bentley +** +** This package is free software; you can redistribute it and/or +** modify it under the terms of the GNU General Public License as +** published by the Free Software Foundation; either version 2 of +** the License, or (at your option) any later version. +** +** This package is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +** General Public License for more details. +** \endlegal +** +** === N O T E S =========================================================== +** +** ========================================================================= */ + +/* === H E A D E R S ======================================================= */ + +#define SYNFIG_MODULE + +#ifdef USING_PCH +# include "pch.h" +#else +#ifdef HAVE_CONFIG_H +# include +#endif + +#include +#include "trgt_gif.h" + +#endif + +/* === E N T R Y P O I N T ================================================= */ + +MODULE_DESC_BEGIN(mod_gif) + MODULE_NAME("GIF Target") + MODULE_DESCRIPTION("Target for the GIF image format (B/W only)") + MODULE_AUTHOR("Robert B. Quattlebaum") + MODULE_VERSION("1.0") + MODULE_COPYRIGHT(SYNFIG_COPYRIGHT) +MODULE_DESC_END + +MODULE_INVENTORY_BEGIN(mod_gif) + BEGIN_TARGETS + TARGET(gif) + END_TARGETS +MODULE_INVENTORY_END diff --git a/synfig-core/tags/stable/src/modules/mod_gif/mod_gif.nsh b/synfig-core/tags/stable/src/modules/mod_gif/mod_gif.nsh new file mode 100644 index 0000000..a11d38b --- /dev/null +++ b/synfig-core/tags/stable/src/modules/mod_gif/mod_gif.nsh @@ -0,0 +1,21 @@ +; The stuff to install +Section "mod_gif" Sec_mod_gif + +; SectionIn RO + + ; Set output path to the installation directory. + SetOutPath "$INSTDIR\lib\synfig\modules" + + ; Put file there + File /oname=mod_gif.dll "src\modules\mod_gif\.libs\libmod_gif-0.dll" + + + FileOpen $0 $INSTDIR\etc\synfig_modules.cfg a + FileSeek $0 0 END + FileWrite $0 "mod_gif" + FileWriteByte $0 "13" + FileWriteByte $0 "10" + FileClose $0 + +SectionEnd + diff --git a/synfig-core/tags/stable/src/modules/mod_gif/trgt_gif.cpp b/synfig-core/tags/stable/src/modules/mod_gif/trgt_gif.cpp new file mode 100644 index 0000000..0801310 --- /dev/null +++ b/synfig-core/tags/stable/src/modules/mod_gif/trgt_gif.cpp @@ -0,0 +1,460 @@ +/* === S Y N F I G ========================================================= */ +/*! \file trgt_gif.cpp +** \brief BMP Target Module +** +** $Id$ +** +** \legal +** Copyright (c) 2002-2005 Robert B. Quattlebaum Jr., Adrian Bentley +** +** This package is free software; you can redistribute it and/or +** modify it under the terms of the GNU General Public License as +** published by the Free Software Foundation; either version 2 of +** the License, or (at your option) any later version. +** +** This package is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +** General Public License for more details. +** \endlegal +** +** === N O T E S =========================================================== +** +** ========================================================================= */ + +/* === H E A D E R S ======================================================= */ + +#define SYNFIG_TARGET + +#ifdef USING_PCH +# include "pch.h" +#else +#ifdef HAVE_CONFIG_H +# include +#endif + +#include +#include "trgt_gif.h" +#include +#endif + +/* === M A C R O S ========================================================= */ + +using namespace synfig; +using namespace std; +using namespace etl; + +#define MAX_FRAME_RATE (20.0) + +/* === G L O B A L S ======================================================= */ + +SYNFIG_TARGET_INIT(gif); +SYNFIG_TARGET_SET_NAME(gif,"gif"); +SYNFIG_TARGET_SET_EXT(gif,"gif"); +SYNFIG_TARGET_SET_VERSION(gif,"0.1"); +SYNFIG_TARGET_SET_CVS_ID(gif,"$Id$"); + +/* === M E T H O D S ======================================================= */ + +gif::gif(const char *filename_): + filename(filename_), + file( (filename=="-")?stdout:fopen(filename_,"wb") ), + imagecount(0), + + lossy(true), + multi_image(false), + dithering(true), + color_bits(8), + iframe_density(30), + loop_count(0x7fff), + local_palette(true) +{ +} + +gif::~gif() +{ + if(file) + fputc(';',file.get()); // Image terminator +} + +bool +gif::set_rend_desc(RendDesc *given_desc) +{ + if(given_desc->get_frame_rate()>MAX_FRAME_RATE) + given_desc->set_frame_rate(MAX_FRAME_RATE); + + desc=*given_desc; + + if(desc.get_frame_end()-desc.get_frame_start()>0) + { + multi_image=true; + //set_remove_alpha(); + imagecount=desc.get_frame_end()-desc.get_frame_start(); + } + else + multi_image=false; + return true; +} + +bool +gif::init() +{ + int w=desc.get_w(),h=desc.get_h(); + + if(!file) + { + synfig::error(strprintf(_("Unable to open \"%s\" for write access!"),filename.c_str())); + return false; + } + + rootsize=color_bits; // Size of pixel bits + + curr_frame.set_wh(w,h); + prev_frame.set_wh(w,h); + curr_surface.set_wh(w,h); + curr_frame.clear(); + prev_frame.clear(); + curr_surface.clear(); + + if(get_quality()>5) + lossy=true; + else + lossy=false; + + // Output the header + fprintf(file.get(),"GIF89a"); + fputc(w&0x000000ff,file.get()); + fputc((w&0x0000ff00)>>8,file.get()); + fputc(h&0x000000ff,file.get()); + fputc((h&0x0000ff00)>>8,file.get()); + if(!local_palette) + fputc(0xF0+(rootsize-1),file.get()); // flags + else + fputc((0xF0+(rootsize-1))&~(1<<7),file.get()); // flags + + fputc(0,file.get()); // backgound color + fputc(0,file.get()); // Pixel Aspect Ratio + + DEBUGPOINT(); + + if(!local_palette) + { + DEBUGPOINT(); + curr_palette=Palette::grayscale(256/(1<<(8-rootsize))-1); + output_curr_palette(); + } + + if(loop_count && multi_image) + { + DEBUGPOINT(); + fputc(33,file.get()); // 33 (hex 0x21) GIF Extension code + fputc(255,file.get()); // 255 (hex 0xFF) Application Extension Label + fputc(11,file.get()); // 11 (hex (0x0B) Length of Application Block + fprintf(file.get(),"NETSCAPE2.0"); + fputc(3,file.get()); // 3 (hex 0x03) Length of Data Sub-Block + fputc(1,file.get()); // 1 (hex 0x01) + fputc(loop_count&0x000000ff,file.get()); + fputc((loop_count&0x0000ff00)>>8,file.get()); + fputc(0,file.get()); // 0 (hex 0x00) a Data Sub-block Terminator. + } + DEBUGPOINT(); + + return true; +} + +void +gif::output_curr_palette() +{ + // Output the color table + for(i=0;i<256/(1<<(8-rootsize));i++) + { + if(i<(signed)curr_palette.size()) + { + Color color(curr_palette[i].color.clamped()); + //fputc(i*(1<<(8-rootsize)),file.get()); + //fputc(i*(1<<(8-rootsize)),file.get()); + //fputc(i*(1<<(8-rootsize)),file.get()); + fputc(gamma().r_F32_to_U8(color.get_r()),file.get()); + fputc(gamma().g_F32_to_U8(color.get_g()),file.get()); + fputc(gamma().b_F32_to_U8(color.get_b()),file.get()); + } + else + { + fputc(255,file.get()); + fputc(0,file.get()); + fputc(255,file.get()); + } + } +} + +bool +gif::start_frame(synfig::ProgressCallback *callback) +{ +// int +// w=desc.get_w(), +// h=desc.get_h(); + + if(!file) + { + if(callback)callback->error(string("BUG:")+_("Description not set!")); + return false; + } + + if(callback)callback->task(filename+strprintf(" %d",imagecount)); + + + + return true; +} + +void +gif::end_frame() +{ + int w=desc.get_w(),h=desc.get_h(),i; + unsigned int value; + int + delaytime=round_to_int(100.0/desc.get_frame_rate()); + + bool build_off_previous(multi_image); + + Palette prev_palette(curr_palette); + + // Fill in the background color + if(!get_remove_alpha()) + { + Surface::alpha_pen pen(curr_surface.begin(),1.0,Color::BLEND_BEHIND); + pen.set_value(get_canvas()->rend_desc().get_bg_color()); + for(int y=0;y0.1) + pen.put_value(); + else + pen[0][0]=Color::alpha(); + } + pen.dec_x(x); + } + } + + if(local_palette) + { + curr_palette=Palette(curr_surface,256/(1<<(8-rootsize))-build_off_previous-1); + synfig::info("curr_palette.size()=%d",curr_palette.size()); + } + + int transparent_index(curr_palette.find_closest(Color(1,0,1,0))-curr_palette.begin()); + bool has_transparency(curr_palette[transparent_index].color.get_a()<=0.00001); + + if(has_transparency) + build_off_previous=false; + + if(build_off_previous) + { + transparent_index=0; + has_transparency=true; + } + +#define DISPOSE_UNDEFINED (0) +#define DISPOSE_NONE (1<<2) +#define DISPOSE_RESTORE_BGCOLOR (2<<2) +#define DISPOSE_RESTORE_PREVIOUS (3<<2) + int gec_flags(0); + if(build_off_previous) + gec_flags|=DISPOSE_NONE; + else + gec_flags|=DISPOSE_RESTORE_PREVIOUS; + if(has_transparency) + gec_flags|=1; + + // output the Graphic Control Extension + fputc(0x21,file.get()); // Extension introducer + fputc(0xF9,file.get()); // Graphic Control Label + fputc(4,file.get()); // Block Size + fputc(gec_flags,file.get()); // Flags (Packed Fields) + fputc(delaytime&0x000000ff,file.get()); // Delay Time (MSB) + fputc((delaytime&0x0000ff00)>>8,file.get()); // Delay Time (LSB) + fputc(transparent_index,file.get()); // Transparent Color Index + fputc(0,file.get()); // Block Terminator + + // output the image header + fputc(',',file.get()); + fputc(0,file.get()); // image left + fputc(0,file.get()); // image left + fputc(0,file.get()); // image top + fputc(0,file.get()); // image top + fputc(w&0x000000ff,file.get()); + fputc((w&0x0000ff00)>>8,file.get()); + fputc(h&0x000000ff,file.get()); + fputc((h&0x0000ff00)>>8,file.get()); + if(local_palette) + fputc(0x80|(rootsize-1),file.get()); // flags + else + fputc(0x00+ rootsize-1,file.get()); // flags + + + if(local_palette) + { + Palette out(curr_palette); + + if(build_off_previous) + curr_palette.insert(curr_palette.begin(),Color(1,0,1,0)); + output_curr_palette(); + curr_palette=out; + } + + bs=bitstream(file); + + // Prepare ourselves for LZW compression + codesize=rootsize+1; + nextcode=(1<color); + //error*=0.25; + if(curr_surface.get_h()>cur_scanline+1) + { + curr_surface[cur_scanline+1][i-1] += error * ((float)3/(float)16); + curr_surface[cur_scanline+1][i] += error * ((float)5/(float)16); + if(curr_surface.get_w()>i+1) + curr_surface[cur_scanline+1][i+1] += error * ((float)1/(float)16); + } + if(curr_surface.get_w()>i+1) + curr_surface[cur_scanline][i+1] += error * ((float)7/(float)16); + } + + curr_frame[cur_scanline][i]=iter-curr_palette.begin(); + + value=curr_frame[cur_scanline][i]; + if(build_off_previous) + value++; + if(value>(unsigned)(1<color-prev_palette[prev_frame[cur_scanline][i]-1].color ).get_y() ) > (1.0/16.0) || +// abs((int)value-(int)prev_frame[cur_scanline][i])>2|| +// (value<=2 && value!=prev_frame[cur_scanline][i]) || + (imagecount%iframe_density)==0 || imagecount==desc.get_frame_end()-1 ) // lossy version + prev_frame[cur_scanline][i]=value; + else + { + prev_frame[cur_scanline][i]=value; + value=0; + } + } + else + { + // lossless version + if(value!=prev_frame[cur_scanline][i]) + prev_frame[cur_scanline][i]=value; + else + value=0; + } + } + else + prev_frame[cur_scanline][i]=value; + + next=node->FindCode(value); + if(next) + node=next; + else + { + node->AddNode(nextcode, value); + bs.push_value(node->code, codesize); + node = table->FindCode(value); + + // Check to see if we need to increase the codesize + if (nextcode == ( 1 << codesize)) + codesize += 1; + + nextcode += 1; + + // check to see if we have filled up the table + if (nextcode == 4096) + { + // output the clear code: make sure to use the current + // codesize + bs.push_value((unsigned) 1 << rootsize, codesize); + + delete table; + table = lzwcode::NewTable((1<FindCode(value); + } + } + } + } + + + + + + // Push the last code onto the bitstream + bs.push_value(node->code,codesize); + + // Push a end-of-stream code onto the bitstream + bs.push_value((1< +#include +#include +#include +#include +#include + +/* === M A C R O S ========================================================= */ + +/* === T Y P E D E F S ===================================================== */ + +/* === C L A S S E S & S T R U C T S ======================================= */ + +class gif : public synfig::Target_Scanline +{ + SYNFIG_TARGET_MODULE_EXT +private: + // Class for abstracting the + // output of the codes + struct bitstream + { + synfig::SmartFILE file; + unsigned char pool; + char curr_bit; + bitstream():pool(0),curr_bit(0),curr_pos(0) {} + bitstream(synfig::SmartFILE file):file(file),pool(0),curr_bit(0),curr_pos(0) {} + unsigned char buffer[256]; + int curr_pos; + + // Pushes a single bit onto the bit + void push_bit(bool bit) + { + if(bit) + pool|=(1<<(curr_bit)); + curr_bit++; + if(curr_bit==8) + empty(); + } + + // Emptys out the current pool into + // the buffer. Calls 'dump()' if the + // buffer is full. + void empty() + { + buffer[curr_pos++]=pool; + curr_bit=0; + pool=0; + if(curr_pos==255)dump(); + } + + // If there is anything in the + // buffer or in the pool, it + // dumps it to the filestream. + // Buffer and pool are cleared. + void dump() + { + if(curr_bit) + empty(); + if(curr_pos || curr_bit) + { + fputc(curr_pos,file.get()); + fwrite(buffer,curr_pos,1,file.get()); + curr_pos=0; + } + } + + // Pushes a symbol of the given size + // onto the bitstream. + void push_value(int value, int size) + { + int i; + for(i=0;i>(i))&1); + } + }; + + // Class for dealing with the LZW codes + struct lzwcode + { + int value; // the data element or character + int code; // lzwcode + struct lzwcode* kids; // children of this node + struct lzwcode* next; // siblings of this node + + lzwcode():value(0),code(0),kids(0),next(0) { } + + lzwcode *FindCode(int value) + { + lzwcode *node=this; + + // check the children (kids) of the node for the value + for (node = node->kids; node != 0; node = node->next) + if (node->value == value) + return(node); + return(0); + } + + void AddNode(unsigned short code, unsigned short value) + { + lzwcode *n = new lzwcode; + + // add a new child to node; the child will have code and value + n->value = value; + n->code = code; + n->kids = 0; + n->next = this->kids; + this->kids = n; + } + + static lzwcode * NewTable(int values) + { + int i; + lzwcode * table = new lzwcode; + + table->kids = 0; + for (i = 0; i < values; i++) + table->AddNode( i, i); + + return(table); + } + + // Destructor just deletes any + // children and sibblings. + ~lzwcode() + { + if(kids) + delete kids; + if(next) + delete next; + } + }; + +private: + bitstream bs; + synfig::String filename; + synfig::SmartFILE file; + int + i, // General-purpose index + codesize, // Current code size + rootsize, // Size of pixel bits (will be recalculted) + nextcode; // Next code to use + lzwcode *table,*next,*node; + + synfig::Surface curr_surface; + etl::surface curr_frame; + etl::surface prev_frame; + + int imagecount; + int cur_scanline; + + + // GIF compression parameters + bool lossy; + bool multi_image; + bool dithering; + int color_bits; + int iframe_density; + int loop_count; + bool local_palette; + + synfig::Palette curr_palette; + + void output_curr_palette(); + +public: + gif(const char *filename); + + virtual bool set_rend_desc(synfig::RendDesc *desc); + virtual bool init(); + virtual bool start_frame(synfig::ProgressCallback *cb); + virtual void end_frame(); + + virtual ~gif(); + + virtual synfig::Color * start_scanline(int scanline); + virtual bool end_scanline(void); + +}; + +/* === E N D =============================================================== */ + +#endif diff --git a/synfig-core/tags/stable/src/modules/mod_gif/unmod_gif.nsh b/synfig-core/tags/stable/src/modules/mod_gif/unmod_gif.nsh new file mode 100644 index 0000000..16d17ce --- /dev/null +++ b/synfig-core/tags/stable/src/modules/mod_gif/unmod_gif.nsh @@ -0,0 +1,8 @@ +Section "un.mod_gif" + Delete "$INSTDIR\lib\synfig\modules\mod_gif.dll" + RMDir "$INSTDIR\lib\synfig\modules" + RMDir "$INSTDIR\lib\synfig" + RMDir "$INSTDIR\lib" + RMDir "$INSTDIR" +SectionEnd + diff --git a/synfig-core/tags/stable/src/modules/mod_gradient/Makefile.am b/synfig-core/tags/stable/src/modules/mod_gradient/Makefile.am new file mode 100644 index 0000000..9cd34a8 --- /dev/null +++ b/synfig-core/tags/stable/src/modules/mod_gradient/Makefile.am @@ -0,0 +1,14 @@ +# $Id$ + + +MAINTAINERCLEANFILES=Makefile.in +INCLUDES = -I$(top_srcdir)/src + +moduledir=@MODULE_DIR@ + +module_LTLIBRARIES = libmod_gradient.la +libmod_gradient_la_SOURCES = curvegradient.cpp curvegradient.h lineargradient.cpp lineargradient.h conicalgradient.cpp conicalgradient.h spiralgradient.cpp spiralgradient.h radialgradient.cpp radialgradient.h main.cpp +libmod_gradient_la_CXXFLAGS = @SYNFIG_CFLAGS@ +libmod_gradient_la_LIBADD = -L../../synfig -lsynfig @SYNFIG_LIBS@ +libmod_gradient_la_LDFLAGS = -module -no-undefined +EXTRA_DIST= mod_gradient.nsh unmod_gradient.nsh diff --git a/synfig-core/tags/stable/src/modules/mod_gradient/conicalgradient.cpp b/synfig-core/tags/stable/src/modules/mod_gradient/conicalgradient.cpp new file mode 100644 index 0000000..c4c2e62 --- /dev/null +++ b/synfig-core/tags/stable/src/modules/mod_gradient/conicalgradient.cpp @@ -0,0 +1,284 @@ +/* === S Y N F I G ========================================================= */ +/*! \file conicalgradient.cpp +** \brief Template Header +** +** $Id$ +** +** \legal +** Copyright (c) 2002-2005 Robert B. Quattlebaum Jr., Adrian Bentley +** +** This package is free software; you can redistribute it and/or +** modify it under the terms of the GNU General Public License as +** published by the Free Software Foundation; either version 2 of +** the License, or (at your option) any later version. +** +** This package is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +** General Public License for more details. +** \endlegal +*/ +/* ========================================================================= */ + +/* === H E A D E R S ======================================================= */ + +#ifdef USING_PCH +# include "pch.h" +#else +#ifdef HAVE_CONFIG_H +# include +#endif + +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include "conicalgradient.h" + +#endif + +/* === U S I N G =========================================================== */ + +using namespace etl; +using namespace std; +using namespace synfig; + +/* === G L O B A L S ======================================================= */ + +SYNFIG_LAYER_INIT(ConicalGradient); +SYNFIG_LAYER_SET_NAME(ConicalGradient,"conical_gradient"); +SYNFIG_LAYER_SET_LOCAL_NAME(ConicalGradient,_("Conical Gradient")); +SYNFIG_LAYER_SET_CATEGORY(ConicalGradient,_("Gradients")); +SYNFIG_LAYER_SET_VERSION(ConicalGradient,"0.1"); +SYNFIG_LAYER_SET_CVS_ID(ConicalGradient,"$Id$"); + +/* === P R O C E D U R E S ================================================= */ + +/* === M E T H O D S ======================================================= */ + +/* === E N T R Y P O I N T ================================================= */ + +ConicalGradient::ConicalGradient(): + Layer_Composite(1.0,Color::BLEND_STRAIGHT), + gradient(Color::black(),Color::white()), + center(0,0), + angle(Angle::zero()), + symmetric(false) +{ +} + +bool +ConicalGradient::set_param(const String & param, const ValueBase &value) +{ + IMPORT(gradient); + IMPORT(center); + IMPORT(angle); + IMPORT(symmetric); + return Layer_Composite::set_param(param,value); +} + +ValueBase +ConicalGradient::get_param(const String ¶m)const +{ + EXPORT(gradient); + EXPORT(center); + EXPORT(angle); + EXPORT(symmetric); + + EXPORT_NAME(); + EXPORT_VERSION(); + + return Layer_Composite::get_param(param); +} + +Layer::Vocab +ConicalGradient::get_param_vocab()const +{ + Layer::Vocab ret(Layer_Composite::get_param_vocab()); + + ret.push_back(ParamDesc("gradient") + .set_local_name(_("Gradient")) + ); + + ret.push_back(ParamDesc("center") + .set_local_name(_("Center")) + ); + + ret.push_back(ParamDesc("angle") + .set_local_name(_("Angle")) + .set_origin("center") + ); + + ret.push_back(ParamDesc("symmetric") + .set_local_name(_("Symmetric")) + ); + + return ret; +} + +inline Color +ConicalGradient::color_func(const Point &pos, float supersample)const +{ + const Point centered(pos-center); + Angle::rot a=Angle::tan(-centered[1],centered[0]).mod(); + a+=angle; + Real dist(a.mod().get()); + + dist-=floor(dist); + + if(symmetric) + { + dist*=2.0; + supersample*=2.0; + if(dist>1)dist=2.0-dist; + } +/* if(dist+supersample*0.5>1.0) + { + Color pool(gradient(dist,supersample*0.5)*(1.0-(dist-supersample*0.5))); + pool+=gradient((dist+supersample*0.5)-1.0,supersample*0.5)*((dist+supersample*0.5)-1.0); + if(pool.get_a() && pool.is_valid()) + { + pool.set_r(pool.get_r()/pool.get_a()); + pool.set_g(pool.get_g()/pool.get_a()); + pool.set_b(pool.get_b()/pool.get_a()); + pool.set_a(pool.get_a()/supersample); + } + return pool; + } + + if(dist-supersample*0.5<0.0) + { + Color pool(gradient(dist,supersample*0.5)*(dist+supersample*0.5)); + pool+=gradient(1.0-(dist-supersample*0.5),supersample*0.5)*(-(dist-supersample*0.5)); + if(pool.get_a() && pool.is_valid()) + { + pool.set_r(pool.get_r()/pool.get_a()); + pool.set_g(pool.get_g()/pool.get_a()); + pool.set_b(pool.get_b()/pool.get_a()); + pool.set_a(pool.get_a()/supersample); + return pool; + } + } +*/ + if(dist+supersample*0.5>1.0) + { + float left(supersample*0.5-(dist-1.0)); + float right(supersample*0.5+(dist-1.0)); + Color pool(gradient(1.0-(left*0.5),left).premult_alpha()*left/supersample); + pool+=gradient(right*0.5,right).premult_alpha()*right/supersample; + return pool.demult_alpha(); + } + if(dist-supersample*0.5<0.0) + { + float left(supersample*0.5-dist); + float right(supersample*0.5+dist); + Color pool(gradient(right*0.5,right).premult_alpha()*right/supersample); + pool+=gradient(1.0-left*0.5,left).premult_alpha()*left/supersample; + return pool.demult_alpha(); + } + + return gradient(dist,supersample); +} + +float +ConicalGradient::calc_supersample(const synfig::Point &x, float pw,float ph)const +{ + Point adj(x-center); + if(abs(adj[0])=0.5) + return const_cast(this); + if(get_amount()==0.0) + return context.hit_check(point); + if((get_blend_method()==Color::BLEND_STRAIGHT || get_blend_method()==Color::BLEND_COMPOSITE) && color_func(point).get_a()>0.5) + return const_cast(this); + return context.hit_check(point); +} + +Color +ConicalGradient::get_color(Context context, const Point &pos)const +{ + const Color color(color_func(pos)); + + if(get_amount()==1.0 && get_blend_method()==Color::BLEND_STRAIGHT) + return color; + else + return Color::blend(color,context.get_color(pos),get_amount(),get_blend_method()); +} + +bool +ConicalGradient::accelerated_render(Context context,Surface *surface,int quality, const RendDesc &renddesc, ProgressCallback *cb)const +{ + SuperCallback supercb(cb,0,9500,10000); + + if(get_amount()==1.0 && get_blend_method()==Color::BLEND_STRAIGHT) + { + surface->set_wh(renddesc.get_w(),renddesc.get_h()); + } + else + { + if(!context.accelerated_render(surface,quality,renddesc,&supercb)) + return false; + if(get_amount()==0) + return true; + } + + + int x,y; + + Surface::pen pen(surface->begin()); + const Real pw(renddesc.get_pw()),ph(renddesc.get_ph()); + Point pos; + Point tl(renddesc.get_tl()); + const int w(surface->get_w()); + const int h(surface->get_h()); + + if(get_amount()==1.0 && get_blend_method()==Color::BLEND_STRAIGHT) + { + if(quality<9) + { + for(y=0,pos[1]=tl[1];yamount_complete(10000,10000)) + return false; + + return true; +} diff --git a/synfig-core/tags/stable/src/modules/mod_gradient/conicalgradient.h b/synfig-core/tags/stable/src/modules/mod_gradient/conicalgradient.h new file mode 100644 index 0000000..35bcb2e --- /dev/null +++ b/synfig-core/tags/stable/src/modules/mod_gradient/conicalgradient.h @@ -0,0 +1,79 @@ +/* === S Y N F I G ========================================================= */ +/*! \file conicalgradient.h +** \brief Template Header +** +** $Id$ +** +** \legal +** Copyright (c) 2002-2005 Robert B. Quattlebaum Jr., Adrian Bentley +** +** This package is free software; you can redistribute it and/or +** modify it under the terms of the GNU General Public License as +** published by the Free Software Foundation; either version 2 of +** the License, or (at your option) any later version. +** +** This package is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +** General Public License for more details. +** \endlegal +*/ +/* ========================================================================= */ + +/* === S T A R T =========================================================== */ + +#ifndef __SYNFIG_CONICALGRADIENT_H +#define __SYNFIG_CONICALGRADIENT_H + +/* === H E A D E R S ======================================================= */ + +#include +#include +#include +#include +#include +#include + +/* === M A C R O S ========================================================= */ + +/* === T Y P E D E F S ===================================================== */ + +/* === C L A S S E S & S T R U C T S ======================================= */ + +class ConicalGradient : public synfig::Layer_Composite, public synfig::Layer_NoDeform +{ + SYNFIG_LAYER_MODULE_EXT + +private: + + synfig::Gradient gradient; + + synfig::Point center; + + synfig::Angle angle; + + bool symmetric; + + synfig::Color color_func(const synfig::Point &x, float supersample=0)const; + + float calc_supersample(const synfig::Point &x, float pw,float ph)const; + +public: + + ConicalGradient(); + + virtual bool set_param(const synfig::String & param, const synfig::ValueBase &value); + + virtual synfig::ValueBase get_param(const synfig::String & param)const; + + virtual synfig::Color get_color(synfig::Context context, const synfig::Point &pos)const; + + virtual bool accelerated_render(synfig::Context context,synfig::Surface *surface,int quality, const synfig::RendDesc &renddesc, synfig::ProgressCallback *cb)const; + synfig::Layer::Handle hit_check(synfig::Context context, const synfig::Point &point)const; + + virtual Vocab get_param_vocab()const; +}; // END of class ConicalGradient + +/* === E N D =============================================================== */ + +#endif diff --git a/synfig-core/tags/stable/src/modules/mod_gradient/curvegradient.cpp b/synfig-core/tags/stable/src/modules/mod_gradient/curvegradient.cpp new file mode 100644 index 0000000..9ae4af2 --- /dev/null +++ b/synfig-core/tags/stable/src/modules/mod_gradient/curvegradient.cpp @@ -0,0 +1,537 @@ +/* === S Y N F I G ========================================================= */ +/*! \file curvegradient.cpp +** \brief Template Header +** +** $Id$ +** +** \legal +** Copyright (c) 2002-2005 Robert B. Quattlebaum Jr., Adrian Bentley +** +** This package is free software; you can redistribute it and/or +** modify it under the terms of the GNU General Public License as +** published by the Free Software Foundation; either version 2 of +** the License, or (at your option) any later version. +** +** This package is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +** General Public License for more details. +** \endlegal +** +** === N O T E S =========================================================== +** +** ========================================================================= */ + +/* === H E A D E R S ======================================================= */ + +#ifdef USING_PCH +# include "pch.h" +#else +#ifdef HAVE_CONFIG_H +# include +#endif + +#include "curvegradient.h" + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#endif + +/* === M A C R O S ========================================================= */ + +/* === G L O B A L S ======================================================= */ + +SYNFIG_LAYER_INIT(CurveGradient); +SYNFIG_LAYER_SET_NAME(CurveGradient,"curve_gradient"); +SYNFIG_LAYER_SET_LOCAL_NAME(CurveGradient,_("Curve Gradient")); +SYNFIG_LAYER_SET_CATEGORY(CurveGradient,_("Gradients")); +SYNFIG_LAYER_SET_VERSION(CurveGradient,"0.0"); +SYNFIG_LAYER_SET_CVS_ID(CurveGradient,"$Id$"); + +/* === P R O C E D U R E S ================================================= */ + +inline float calculate_distance(const synfig::BLinePoint& a,const synfig::BLinePoint& b) +{ +#if 1 + const Point& c1(a.get_vertex()); + const Point c2(a.get_vertex()+a.get_tangent2()/3); + const Point c3(b.get_vertex()-b.get_tangent1()/3); + const Point& c4(b.get_vertex()); + return (c1-c2).mag()+(c2-c3).mag()+(c3-c4).mag(); +#else +#endif +} + +inline float calculate_distance(const std::vector& bline) +{ + std::vector::const_iterator iter,next,ret; + std::vector::const_iterator end(bline.end()); + + float dist(0); + + if (bline.empty()) return dist; + + next=bline.begin(); + + //if(loop) + // iter=--bline.end(); + //else + iter=next++; + + for(;next!=end;iter=next++) + { + // Setup the curve + etl::hermite curve( + iter->get_vertex(), + next->get_vertex(), + iter->get_tangent2(), + next->get_tangent1()); + +// dist+=calculate_distance(*iter,*next); + dist+=curve.length(); + } + + return dist; +} + +std::vector::const_iterator +find_closest(bool fast, const std::vector& bline,const Point& p,float& t,bool loop=false,float *bline_dist_ret=0) +{ + std::vector::const_iterator iter,next,ret; + std::vector::const_iterator end(bline.end()); + + ret=bline.end(); + float dist(100000000000.0); + + next=bline.begin(); + + float best_bline_dist(0); + float best_bline_len(0); + float total_bline_dist(0); + float best_pos(0); + etl::hermite best_curve; + + if(loop) + iter=--bline.end(); + else + iter=next++; + + Point bp; + + for(;next!=end;iter=next++) + { + // Setup the curve + etl::hermite curve( + iter->get_vertex(), + next->get_vertex(), + iter->get_tangent2(), + next->get_tangent1()); + + /* + const float t(curve.find_closest(p,6,0.01,0.99)); + bp=curve(t);if((bp-p).mag_squared()::const_iterator iter,next; + + // Figure out the BLinePoints we will be using, + // Taking into account looping. + if(perpendicular) + { + next=find_closest(fast,bline,point,t,bline_loop,&perp_dist); + perp_dist/=curve_length_; + } + else + { + next=find_closest(fast,bline,point,t,bline_loop); + } + + iter=next++; + if(next==bline.end()) next=bline.begin(); + + // Setup the curve + etl::hermite curve( + iter->get_vertex(), + next->get_vertex(), + iter->get_tangent2(), + next->get_tangent1() + ); + + // Setup the derivative function + etl::derivative > deriv(curve); + + int search_iterations(7); + + /*if(quality==0)search_iterations=8; + else if(quality<=2)search_iterations=10; + else if(quality<=4)search_iterations=8; + */ + if(!perpendicular) + { + if(quality<=6)search_iterations=7; + else if(quality<=7)search_iterations=6; + else if(quality<=8)search_iterations=5; + else search_iterations=4; + } + else + { + if(quality>7) + search_iterations=4; + } + + // Figure out the closest point on the curve + if (fast) + t = curve.find_closest(fast, point,search_iterations); + + + // Calculate our values + p1=curve(t); + tangent=deriv(t).norm(); + + if(perpendicular) + { + tangent*=curve_length_; + p1-=tangent*perp_dist; + tangent=-tangent.perp(); + } + else + { + thickness=(next->get_width()-iter->get_width())*t+iter->get_width(); + } + //} + } + + if(!perpendicular) + { + diff=tangent.perp()*thickness*width; + p1-=diff*0.5; + const Real mag(diff.inv_mag()); + supersample=supersample*mag; + diff*=mag*mag; + dist=((point_-offset)*diff-p1*diff); + } + else + { + if(quality>7) + { + dist=perp_dist; +/* diff=tangent.perp(); + const Real mag(diff.inv_mag()); + supersample=supersample*mag; +*/ + supersample=0; + } + else + { + diff=tangent.perp(); + //p1-=diff*0.5; + const Real mag(diff.inv_mag()); + supersample=supersample*mag; + diff*=mag*mag; + dist=((point_-offset)*diff-p1*diff); + } + } + + if(loop) + dist-=floor(dist); + + if(zigzag) + { + dist*=2.0; + supersample*=2.0; + if(dist>1)dist=2.0-dist; + } + + if(loop) + { + if(dist+supersample*0.5>1.0) + { + float left(supersample*0.5-(dist-1.0)); + float right(supersample*0.5+(dist-1.0)); + Color pool(gradient(1.0-(left*0.5),left).premult_alpha()*left/supersample); + if (zigzag) pool+=gradient(1.0-right*0.5,right).premult_alpha()*right/supersample; + else pool+=gradient(right*0.5,right).premult_alpha()*right/supersample; + return pool.demult_alpha(); + } + if(dist-supersample*0.5<0.0) + { + float left(supersample*0.5-dist); + float right(supersample*0.5+dist); + Color pool(gradient(right*0.5,right).premult_alpha()*right/supersample); + if (zigzag) pool+=gradient(left*0.5,left).premult_alpha()*left/supersample; + else pool+=gradient(1.0-left*0.5,left).premult_alpha()*left/supersample; + return pool.demult_alpha(); + } + } + return gradient(dist,supersample); +} + +float +CurveGradient::calc_supersample(const synfig::Point &x, float pw,float ph)const +{ + return pw; +} + +synfig::Layer::Handle +CurveGradient::hit_check(synfig::Context context, const synfig::Point &point)const +{ + if(get_blend_method()==Color::BLEND_STRAIGHT && get_amount()>=0.5) + return const_cast(this); + if(get_amount()==0.0) + return context.hit_check(point); + if((get_blend_method()==Color::BLEND_STRAIGHT || get_blend_method()==Color::BLEND_COMPOSITE|| get_blend_method()==Color::BLEND_ONTO) && color_func(point).get_a()>0.5) + return const_cast(this); + return context.hit_check(point); +} + +bool +CurveGradient::set_param(const String & param, const ValueBase &value) +{ + + + IMPORT(offset); + IMPORT(perpendicular); + IMPORT(fast); + + if(param=="bline" && value.get_type()==ValueBase::TYPE_LIST) + { + bline=value; + bline_loop=value.get_loop(); + sync(); + + return true; + } + + IMPORT(width); + IMPORT(gradient); + IMPORT(loop); + IMPORT(zigzag); + return Layer_Composite::set_param(param,value); +} + +ValueBase +CurveGradient::get_param(const String & param)const +{ + EXPORT(offset); + EXPORT(bline); + EXPORT(gradient); + EXPORT(loop); + EXPORT(zigzag); + EXPORT(width); + EXPORT(perpendicular); + EXPORT(fast); + + EXPORT_NAME(); + EXPORT_VERSION(); + + return Layer_Composite::get_param(param); +} + +Layer::Vocab +CurveGradient::get_param_vocab()const +{ + Layer::Vocab ret(Layer_Composite::get_param_vocab()); + + ret.push_back(ParamDesc("offset") + .set_local_name(_("Offset"))); + + ret.push_back(ParamDesc("width") + .set_is_distance() + .set_local_name(_("Width"))); + + ret.push_back(ParamDesc("bline") + .set_local_name(_("Vertices")) + .set_origin("offset") + .set_scalar("width") + .set_description(_("A list of BLine Points"))); + + ret.push_back(ParamDesc("gradient") + .set_local_name(_("Gradient"))); + ret.push_back(ParamDesc("loop") + .set_local_name(_("Loop"))); + ret.push_back(ParamDesc("zigzag") + .set_local_name(_("ZigZag"))); + ret.push_back(ParamDesc("perpendicular") + .set_local_name(_("Perpendicular"))); + ret.push_back(ParamDesc("fast") + .set_local_name(_("Fast"))); + + return ret; +} + +Color +CurveGradient::get_color(Context context, const Point &point)const +{ + const Color color(color_func(point,0)); + + if(get_amount()==1.0 && get_blend_method()==Color::BLEND_STRAIGHT) + return color; + else + return Color::blend(color,context.get_color(point),get_amount(),get_blend_method()); +} + +bool +CurveGradient::accelerated_render(Context context,Surface *surface,int quality, const RendDesc &renddesc, ProgressCallback *cb)const +{ + SuperCallback supercb(cb,0,9500,10000); + + if(get_amount()==1.0 && get_blend_method()==Color::BLEND_STRAIGHT) + { + surface->set_wh(renddesc.get_w(),renddesc.get_h()); + } + else + { + if(!context.accelerated_render(surface,quality,renddesc,&supercb)) + return false; + if(get_amount()==0) + return true; + } + + + int x,y; + + Surface::pen pen(surface->begin()); + const Real pw(renddesc.get_pw()),ph(renddesc.get_ph()); + Point pos; + Point tl(renddesc.get_tl()); + const int w(surface->get_w()); + const int h(surface->get_h()); + + if(get_amount()==1.0 && get_blend_method()==Color::BLEND_STRAIGHT) + { + for(y=0,pos[1]=tl[1];yamount_complete(10000,10000)) + return false; + + return true; +} diff --git a/synfig-core/tags/stable/src/modules/mod_gradient/curvegradient.h b/synfig-core/tags/stable/src/modules/mod_gradient/curvegradient.h new file mode 100644 index 0000000..1c06d62 --- /dev/null +++ b/synfig-core/tags/stable/src/modules/mod_gradient/curvegradient.h @@ -0,0 +1,85 @@ +/* === S Y N F I G ========================================================= */ +/*! \file curvegradient.h +** \brief Template Header +** +** $Id$ +** +** \legal +** Copyright (c) 2002-2005 Robert B. Quattlebaum Jr., Adrian Bentley +** +** This package is free software; you can redistribute it and/or +** modify it under the terms of the GNU General Public License as +** published by the Free Software Foundation; either version 2 of +** the License, or (at your option) any later version. +** +** This package is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +** General Public License for more details. +** \endlegal +** +** === N O T E S =========================================================== +** +** ========================================================================= */ + +/* === S T A R T =========================================================== */ + +#ifndef __SYNFIG_CURVEGRADIENT_H +#define __SYNFIG_CURVEGRADIENT_H + +/* === H E A D E R S ======================================================= */ + +#include +#include +#include +#include + +/* === M A C R O S ========================================================= */ + +/* === T Y P E D E F S ===================================================== */ + +/* === C L A S S E S & S T R U C T S ======================================= */ + +using namespace synfig; +using namespace std; +using namespace etl; + +class CurveGradient : public Layer_Composite, public Layer_NoDeform +{ + SYNFIG_LAYER_MODULE_EXT + +private: + std::vector bline; + + Point offset; + Real width; + Gradient gradient; + Real curve_length_; + + bool loop; + bool zigzag; + bool bline_loop; + bool perpendicular; + bool fast; + + void sync(); + + synfig::Color color_func(const synfig::Point &x, int quality=10, float supersample=0)const; + + float calc_supersample(const synfig::Point &x, float pw,float ph)const; + +public: + CurveGradient(); + + virtual bool set_param(const String ¶m, const ValueBase &value); + virtual ValueBase get_param(const String ¶m)const; + virtual Color get_color(Context context, const Point &pos)const; + virtual bool accelerated_render(Context context,Surface *surface,int quality, const RendDesc &renddesc, ProgressCallback *cb)const; + synfig::Layer::Handle hit_check(synfig::Context context, const synfig::Point &point)const; + + virtual Vocab get_param_vocab()const; +}; + +/* === E N D =============================================================== */ + +#endif diff --git a/synfig-core/tags/stable/src/modules/mod_gradient/lineargradient.cpp b/synfig-core/tags/stable/src/modules/mod_gradient/lineargradient.cpp new file mode 100644 index 0000000..f8bf419 --- /dev/null +++ b/synfig-core/tags/stable/src/modules/mod_gradient/lineargradient.cpp @@ -0,0 +1,259 @@ +/* === S Y N F I G ========================================================= */ +/*! \file lineargradient.cpp +** \brief Template Header +** +** $Id$ +** +** \legal +** Copyright (c) 2002-2005 Robert B. Quattlebaum Jr., Adrian Bentley +** +** This package is free software; you can redistribute it and/or +** modify it under the terms of the GNU General Public License as +** published by the Free Software Foundation; either version 2 of +** the License, or (at your option) any later version. +** +** This package is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +** General Public License for more details. +** \endlegal +** +** === N O T E S =========================================================== +** +** ========================================================================= */ + +/* === H E A D E R S ======================================================= */ + +#ifdef USING_PCH +# include "pch.h" +#else +#ifdef HAVE_CONFIG_H +# include +#endif + +#include "lineargradient.h" + +#include +#include +#include +#include +#include +#include +#include +#include + +#endif + +/* === M A C R O S ========================================================= */ + +/* === G L O B A L S ======================================================= */ + +SYNFIG_LAYER_INIT(LinearGradient); +SYNFIG_LAYER_SET_NAME(LinearGradient,"linear_gradient"); +SYNFIG_LAYER_SET_LOCAL_NAME(LinearGradient,_("Linear Gradient")); +SYNFIG_LAYER_SET_CATEGORY(LinearGradient,_("Gradients")); +SYNFIG_LAYER_SET_VERSION(LinearGradient,"0.0"); +SYNFIG_LAYER_SET_CVS_ID(LinearGradient,"$Id$"); + +/* === P R O C E D U R E S ================================================= */ + +/* === M E T H O D S ======================================================= */ + +inline void +LinearGradient::sync() +{ + diff=(p2-p1); + const Real mag(diff.inv_mag()); + diff*=mag*mag; +} + + +LinearGradient::LinearGradient(): + p1(1,1), + p2(-1,-1), + gradient(Color::black(), Color::white()), + loop(false), + zigzag(false) +{ + sync(); +} + +inline Color +LinearGradient::color_func(const Point &point, float supersample)const +{ + Real dist(point*diff-p1*diff); + + if(loop) + dist-=floor(dist); + + if(zigzag) + { + dist*=2.0; + supersample*=2.0; + if(dist>1)dist=2.0-dist; + } + + if(loop) + { + if(dist+supersample*0.5>1.0) + { + float left(supersample*0.5-(dist-1.0)); + float right(supersample*0.5+(dist-1.0)); + Color pool(gradient(1.0-(left*0.5),left).premult_alpha()*left/supersample); + if (zigzag) pool+=gradient(1.0-right*0.5,right).premult_alpha()*right/supersample; + else pool+=gradient(right*0.5,right).premult_alpha()*right/supersample; + return pool.demult_alpha(); + } + if(dist-supersample*0.5<0.0) + { + float left(supersample*0.5-dist); + float right(supersample*0.5+dist); + Color pool(gradient(right*0.5,right).premult_alpha()*right/supersample); + if (zigzag) pool+=gradient(left*0.5,left).premult_alpha()*left/supersample; + else pool+=gradient(1.0-left*0.5,left).premult_alpha()*left/supersample; + return pool.demult_alpha(); + } + } + return gradient(dist,supersample); +} + +float +LinearGradient::calc_supersample(const synfig::Point &x, float pw,float ph)const +{ + return pw/(p2-p1).mag(); +} + +synfig::Layer::Handle +LinearGradient::hit_check(synfig::Context context, const synfig::Point &point)const +{ + if(get_blend_method()==Color::BLEND_STRAIGHT && get_amount()>=0.5) + return const_cast(this); + if(get_amount()==0.0) + return context.hit_check(point); + if((get_blend_method()==Color::BLEND_STRAIGHT || get_blend_method()==Color::BLEND_COMPOSITE) && color_func(point).get_a()>0.5) + return const_cast(this); + return context.hit_check(point); +} + +bool +LinearGradient::set_param(const String & param, const ValueBase &value) +{ + if(param=="p1" && value.same_as(p1)) + { + p1=value.get(p1); + sync(); + return true; + } + if(param=="p2" && value.same_as(p2)) + { + p2=value.get(p2); + sync(); + return true; + } + //IMPORT(p1); + //IMPORT(p2); + + + IMPORT(gradient); + IMPORT(loop); + IMPORT(zigzag); + return Layer_Composite::set_param(param,value); +} + +ValueBase +LinearGradient::get_param(const String & param)const +{ + EXPORT(p1); + EXPORT(p2); + EXPORT(gradient); + EXPORT(loop); + EXPORT(zigzag); + + EXPORT_NAME(); + EXPORT_VERSION(); + + return Layer_Composite::get_param(param); +} + +Layer::Vocab +LinearGradient::get_param_vocab()const +{ + Layer::Vocab ret(Layer_Composite::get_param_vocab()); + + ret.push_back(ParamDesc("p1") + .set_local_name(_("Point 1")) + .set_connect("p2") + ); + ret.push_back(ParamDesc("p2") + .set_local_name(_("Point 2")) + ); + ret.push_back(ParamDesc("gradient") + .set_local_name(_("Gradient")) + ); + ret.push_back(ParamDesc("loop") + .set_local_name(_("Loop")) + ); + ret.push_back(ParamDesc("zigzag") + .set_local_name(_("ZigZag")) + ); + + return ret; +} + +Color +LinearGradient::get_color(Context context, const Point &point)const +{ + const Color color(color_func(point)); + + if(get_amount()==1.0 && get_blend_method()==Color::BLEND_STRAIGHT) + return color; + else + return Color::blend(color,context.get_color(point),get_amount(),get_blend_method()); +} + +bool +LinearGradient::accelerated_render(Context context,Surface *surface,int quality, const RendDesc &renddesc, ProgressCallback *cb)const +{ + SuperCallback supercb(cb,0,9500,10000); + + if(get_amount()==1.0 && get_blend_method()==Color::BLEND_STRAIGHT) + { + surface->set_wh(renddesc.get_w(),renddesc.get_h()); + } + else + { + if(!context.accelerated_render(surface,quality,renddesc,&supercb)) + return false; + if(get_amount()==0) + return true; + } + + + int x,y; + + Surface::pen pen(surface->begin()); + const Real pw(renddesc.get_pw()),ph(renddesc.get_ph()); + Point pos; + Point tl(renddesc.get_tl()); + const int w(surface->get_w()); + const int h(surface->get_h()); + + if(get_amount()==1.0 && get_blend_method()==Color::BLEND_STRAIGHT) + { + for(y=0,pos[1]=tl[1];yamount_complete(10000,10000)) + return false; + + return true; +} diff --git a/synfig-core/tags/stable/src/modules/mod_gradient/lineargradient.h b/synfig-core/tags/stable/src/modules/mod_gradient/lineargradient.h new file mode 100644 index 0000000..2b9d2c0 --- /dev/null +++ b/synfig-core/tags/stable/src/modules/mod_gradient/lineargradient.h @@ -0,0 +1,79 @@ +/* === S Y N F I G ========================================================= */ +/*! \file lineargradient.h +** \brief Template Header +** +** $Id$ +** +** \legal +** Copyright (c) 2002-2005 Robert B. Quattlebaum Jr., Adrian Bentley +** +** This package is free software; you can redistribute it and/or +** modify it under the terms of the GNU General Public License as +** published by the Free Software Foundation; either version 2 of +** the License, or (at your option) any later version. +** +** This package is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +** General Public License for more details. +** \endlegal +** +** === N O T E S =========================================================== +** +** ========================================================================= */ + +/* === S T A R T =========================================================== */ + +#ifndef __SYNFIG_INTERPOLATION_LINEARGRADIENT_H +#define __SYNFIG_INTERPOLATION_LINEARGRADIENT_H + +/* === H E A D E R S ======================================================= */ + +#include +#include +#include + +/* === M A C R O S ========================================================= */ + +/* === T Y P E D E F S ===================================================== */ + +/* === C L A S S E S & S T R U C T S ======================================= */ + +using namespace synfig; +using namespace std; +using namespace etl; + +class LinearGradient : public Layer_Composite, public Layer_NoDeform +{ + SYNFIG_LAYER_MODULE_EXT + +private: + + Point p1,p2; + Vector diff; + Gradient gradient; + + bool loop; + bool zigzag; + + void sync(); + + synfig::Color color_func(const synfig::Point &x, float supersample=0)const; + + float calc_supersample(const synfig::Point &x, float pw,float ph)const; + +public: + LinearGradient(); + + virtual bool set_param(const String ¶m, const ValueBase &value); + virtual ValueBase get_param(const String ¶m)const; + virtual Color get_color(Context context, const Point &pos)const; + virtual bool accelerated_render(Context context,Surface *surface,int quality, const RendDesc &renddesc, ProgressCallback *cb)const; + synfig::Layer::Handle hit_check(synfig::Context context, const synfig::Point &point)const; + + virtual Vocab get_param_vocab()const; +}; + +/* === E N D =============================================================== */ + +#endif diff --git a/synfig-core/tags/stable/src/modules/mod_gradient/main.cpp b/synfig-core/tags/stable/src/modules/mod_gradient/main.cpp new file mode 100644 index 0000000..48d375a --- /dev/null +++ b/synfig-core/tags/stable/src/modules/mod_gradient/main.cpp @@ -0,0 +1,66 @@ +/* === S Y N F I G ========================================================= */ +/*! \file mod_gradient/main.cpp +** \brief Template Header +** +** $Id$ +** +** \legal +** Copyright (c) 2002-2005 Robert B. Quattlebaum Jr., Adrian Bentley +** +** This package is free software; you can redistribute it and/or +** modify it under the terms of the GNU General Public License as +** published by the Free Software Foundation; either version 2 of +** the License, or (at your option) any later version. +** +** This package is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +** General Public License for more details. +** \endlegal +** +** === N O T E S =========================================================== +** +** ========================================================================= */ + +/* === H E A D E R S ======================================================= */ + +#define SYNFIG_MODULE + +#ifdef USING_PCH +# include "pch.h" +#else +#ifdef HAVE_CONFIG_H +# include +#endif + +#include +#include +#include + +#include "lineargradient.h" +#include "radialgradient.h" +#include "conicalgradient.h" +#include "spiralgradient.h" +#include "curvegradient.h" + +#endif + +/* === E N T R Y P O I N T ================================================= */ + +MODULE_DESC_BEGIN(libmod_gradient) + MODULE_NAME("Gradient") + MODULE_DESCRIPTION("Writeme") + MODULE_AUTHOR("Robert B. Quattlebaum") + MODULE_VERSION("1.0") + MODULE_COPYRIGHT(SYNFIG_COPYRIGHT) +MODULE_DESC_END + +MODULE_INVENTORY_BEGIN(libmod_gradient) + BEGIN_LAYERS + LAYER(LinearGradient) + LAYER(RadialGradient) + LAYER(ConicalGradient) + LAYER(SpiralGradient) + LAYER(CurveGradient) + END_LAYERS +MODULE_INVENTORY_END diff --git a/synfig-core/tags/stable/src/modules/mod_gradient/mod_gradient.nsh b/synfig-core/tags/stable/src/modules/mod_gradient/mod_gradient.nsh new file mode 100644 index 0000000..c5eadc8 --- /dev/null +++ b/synfig-core/tags/stable/src/modules/mod_gradient/mod_gradient.nsh @@ -0,0 +1,21 @@ +; The stuff to install +Section "mod_gradient" Sec_mod_gradient + +; SectionIn RO + + ; Set output path to the installation directory. + SetOutPath "$INSTDIR\lib\synfig\modules" + + ; Put file there + File /oname=mod_gradient.dll "src\modules\mod_gradient\.libs\libmod_gradient-0.dll" + + + FileOpen $0 $INSTDIR\etc\synfig_modules.cfg a + FileSeek $0 0 END + FileWrite $0 "mod_gradient" + FileWriteByte $0 "13" + FileWriteByte $0 "10" + FileClose $0 + +SectionEnd + diff --git a/synfig-core/tags/stable/src/modules/mod_gradient/radialgradient.cpp b/synfig-core/tags/stable/src/modules/mod_gradient/radialgradient.cpp new file mode 100644 index 0000000..b3e892e --- /dev/null +++ b/synfig-core/tags/stable/src/modules/mod_gradient/radialgradient.cpp @@ -0,0 +1,249 @@ +/* === S Y N F I G ========================================================= */ +/*! \file mod_gradient/radialgradient.cpp +** \brief Template Header +** +** $Id$ +** +** \legal +** Copyright (c) 2002-2005 Robert B. Quattlebaum Jr., Adrian Bentley +** +** This package is free software; you can redistribute it and/or +** modify it under the terms of the GNU General Public License as +** published by the Free Software Foundation; either version 2 of +** the License, or (at your option) any later version. +** +** This package is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +** General Public License for more details. +** \endlegal +*/ +/* ========================================================================= */ + +/* === H E A D E R S ======================================================= */ + +#ifdef USING_PCH +# include "pch.h" +#else +#ifdef HAVE_CONFIG_H +# include +#endif + +#include +#include +#include +#include +#include +#include +#include +#include + +#include "radialgradient.h" + +#endif + +/* === U S I N G =========================================================== */ + +using namespace etl; +using namespace std; +using namespace synfig; + +/* === G L O B A L S ======================================================= */ + +SYNFIG_LAYER_INIT(RadialGradient); +SYNFIG_LAYER_SET_NAME(RadialGradient,"radial_gradient"); +SYNFIG_LAYER_SET_LOCAL_NAME(RadialGradient,_("Radial Gradient")); +SYNFIG_LAYER_SET_CATEGORY(RadialGradient,_("Gradients")); +SYNFIG_LAYER_SET_VERSION(RadialGradient,"0.1"); +SYNFIG_LAYER_SET_CVS_ID(RadialGradient,"$Id$"); + +/* === P R O C E D U R E S ================================================= */ + +/* === M E T H O D S ======================================================= */ + +/* === E N T R Y P O I N T ================================================= */ + +RadialGradient::RadialGradient(): + Layer_Composite(1.0,Color::BLEND_STRAIGHT), + gradient(Color::black(),Color::white()), + center(0,0), + radius(0.5), + loop(false), + zigzag(false) +{ +} + +bool +RadialGradient::set_param(const String & param, const ValueBase &value) +{ + IMPORT(gradient); + IMPORT(center); + IMPORT(radius); + IMPORT(loop); + IMPORT(zigzag); + + return Layer_Composite::set_param(param,value); +} + +ValueBase +RadialGradient::get_param(const String ¶m)const +{ + EXPORT(gradient); + EXPORT(center); + EXPORT(radius); + EXPORT(loop); + EXPORT(zigzag); + + EXPORT_NAME(); + EXPORT_VERSION(); + + return Layer_Composite::get_param(param); +} + +Layer::Vocab +RadialGradient::get_param_vocab()const +{ + Layer::Vocab ret(Layer_Composite::get_param_vocab()); + + ret.push_back(ParamDesc("gradient") + .set_local_name(_("Gradient")) + ); + + ret.push_back(ParamDesc("center") + .set_local_name(_("Center")) + ); + + ret.push_back(ParamDesc("radius") + .set_local_name(_("Radius")) + .set_description(_("This is the radius of the circle")) + .set_is_distance() + .set_origin("center") + ); + + ret.push_back(ParamDesc("loop") + .set_local_name(_("Loop")) + ); + + ret.push_back(ParamDesc("zigzag") + .set_local_name(_("Zig-Zag")) + ); + + return ret; +} + +inline Color +RadialGradient::color_func(const Point &point, float supersample)const +{ + Real dist((point-center).mag()/radius); + + if(zigzag) + { + dist*=2.0; + supersample*=2.0; + if(dist>1)dist=2.0-dist; + } + + if(loop) + { + dist-=floor(dist); + + if(dist+supersample*0.5>1.0) + { + float left(supersample*0.5-(dist-1.0)); + float right(supersample*0.5+(dist-1.0)); + Color pool(gradient(1.0-(left*0.5),left).premult_alpha()*left/supersample); + if (zigzag) pool+=gradient(1.0-right*0.5,right).premult_alpha()*right/supersample; + else pool+=gradient(right*0.5,right).premult_alpha()*right/supersample; + return pool.demult_alpha(); + } + if(dist-supersample*0.5<0.0) + { + float left(supersample*0.5-dist); + float right(supersample*0.5+dist); + Color pool(gradient(right*0.5,right).premult_alpha()*right/supersample); + if (zigzag) pool+=gradient(left*0.5,left).premult_alpha()*left/supersample; + else pool+=gradient(1.0-left*0.5,left).premult_alpha()*left/supersample; + return pool.demult_alpha(); + } + } + + return gradient(dist,supersample); +} + + +float +RadialGradient::calc_supersample(const synfig::Point &x, float pw,float ph)const +{ +// return sqrt(pw*pw+ph*ph)/radius; + return 1.2*pw/radius; +} + +synfig::Layer::Handle +RadialGradient::hit_check(synfig::Context context, const synfig::Point &point)const +{ + if(get_blend_method()==Color::BLEND_STRAIGHT && get_amount()>=0.5) + return const_cast(this); + if(get_amount()==0.0) + return context.hit_check(point); + if((get_blend_method()==Color::BLEND_STRAIGHT || get_blend_method()==Color::BLEND_COMPOSITE) && color_func(point).get_a()>0.5) + return const_cast(this); + return context.hit_check(point); +} + +Color +RadialGradient::get_color(Context context, const Point &pos)const +{ + const Color color(color_func(pos)); + + if(get_amount()==1.0 && get_blend_method()==Color::BLEND_STRAIGHT) + return color; + else + return Color::blend(color,context.get_color(pos),get_amount(),get_blend_method()); +} + +bool +RadialGradient::accelerated_render(Context context,Surface *surface,int quality, const RendDesc &renddesc, ProgressCallback *cb)const +{ + SuperCallback supercb(cb,0,9500,10000); + + if(get_amount()==1.0 && get_blend_method()==Color::BLEND_STRAIGHT) + { + surface->set_wh(renddesc.get_w(),renddesc.get_h()); + } + else + { + if(!context.accelerated_render(surface,quality,renddesc,&supercb)) + return false; + if(get_amount()==0) + return true; + } + + + int x,y; + + Surface::pen pen(surface->begin()); + const Real pw(renddesc.get_pw()),ph(renddesc.get_ph()); + Point pos; + Point tl(renddesc.get_tl()); + const int w(surface->get_w()); + const int h(surface->get_h()); + + if(get_amount()==1.0 && get_blend_method()==Color::BLEND_STRAIGHT) + { + for(y=0,pos[1]=tl[1];yamount_complete(10000,10000)) + return false; + + return true; +} diff --git a/synfig-core/tags/stable/src/modules/mod_gradient/radialgradient.h b/synfig-core/tags/stable/src/modules/mod_gradient/radialgradient.h new file mode 100644 index 0000000..ddf75ca --- /dev/null +++ b/synfig-core/tags/stable/src/modules/mod_gradient/radialgradient.h @@ -0,0 +1,79 @@ +/* === S Y N F I G ========================================================= */ +/*! \file radialgradient.h +** \brief Template Header +** +** $Id$ +** +** \legal +** Copyright (c) 2002-2005 Robert B. Quattlebaum Jr., Adrian Bentley +** +** This package is free software; you can redistribute it and/or +** modify it under the terms of the GNU General Public License as +** published by the Free Software Foundation; either version 2 of +** the License, or (at your option) any later version. +** +** This package is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +** General Public License for more details. +** \endlegal +*/ +/* ========================================================================= */ + +/* === S T A R T =========================================================== */ + +#ifndef __SYNFIG_RADIALGRADIENT_H +#define __SYNFIG_RADIALGRADIENT_H + +/* === H E A D E R S ======================================================= */ + +#include +#include +#include +#include +#include + +/* === M A C R O S ========================================================= */ + +/* === T Y P E D E F S ===================================================== */ + +/* === C L A S S E S & S T R U C T S ======================================= */ + +class RadialGradient : public synfig::Layer_Composite, public synfig::Layer_NoDeform +{ + SYNFIG_LAYER_MODULE_EXT + +private: + + synfig::Gradient gradient; + + synfig::Point center; + + synfig::Real radius; + + bool loop; + bool zigzag; + + synfig::Color color_func(const synfig::Point &x, float supersample=0)const; + + float calc_supersample(const synfig::Point &x, float pw,float ph)const; + +public: + + RadialGradient(); + + virtual bool set_param(const synfig::String & param, const synfig::ValueBase &value); + + virtual synfig::ValueBase get_param(const synfig::String & param)const; + + virtual synfig::Color get_color(synfig::Context context, const synfig::Point &pos)const; + + virtual bool accelerated_render(synfig::Context context,synfig::Surface *surface,int quality, const synfig::RendDesc &renddesc, synfig::ProgressCallback *cb)const; + synfig::Layer::Handle hit_check(synfig::Context context, const synfig::Point &point)const; + + virtual Vocab get_param_vocab()const; +}; // END of class RadialGradient + +/* === E N D =============================================================== */ + +#endif diff --git a/synfig-core/tags/stable/src/modules/mod_gradient/spiralgradient.cpp b/synfig-core/tags/stable/src/modules/mod_gradient/spiralgradient.cpp new file mode 100644 index 0000000..0ff6346 --- /dev/null +++ b/synfig-core/tags/stable/src/modules/mod_gradient/spiralgradient.cpp @@ -0,0 +1,246 @@ +/* === S Y N F I G ========================================================= */ +/*! \file spiralgradient.cpp +** \brief Template Header +** +** $Id$ +** +** \legal +** Copyright (c) 2002-2005 Robert B. Quattlebaum Jr., Adrian Bentley +** +** This package is free software; you can redistribute it and/or +** modify it under the terms of the GNU General Public License as +** published by the Free Software Foundation; either version 2 of +** the License, or (at your option) any later version. +** +** This package is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +** General Public License for more details. +** \endlegal +*/ +/* ========================================================================= */ + +/* === H E A D E R S ======================================================= */ + +#ifdef USING_PCH +# include "pch.h" +#else +#ifdef HAVE_CONFIG_H +# include +#endif + +#include +#include +#include +#include +#include +#include +#include +#include + +#include "spiralgradient.h" + +#endif + +/* === U S I N G =========================================================== */ + +using namespace etl; +using namespace std; +using namespace synfig; + +/* === G L O B A L S ======================================================= */ + +SYNFIG_LAYER_INIT(SpiralGradient); +SYNFIG_LAYER_SET_NAME(SpiralGradient,"spiral_gradient"); +SYNFIG_LAYER_SET_LOCAL_NAME(SpiralGradient,_("Spiral Gradient")); +SYNFIG_LAYER_SET_CATEGORY(SpiralGradient,_("Gradients")); +SYNFIG_LAYER_SET_VERSION(SpiralGradient,"0.1"); +SYNFIG_LAYER_SET_CVS_ID(SpiralGradient,"$Id$"); + +/* === P R O C E D U R E S ================================================= */ + +/* === M E T H O D S ======================================================= */ + +/* === E N T R Y P O I N T ================================================= */ + +SpiralGradient::SpiralGradient(): + Layer_Composite(1.0,Color::BLEND_STRAIGHT), + gradient(Color::black(),Color::white()), + center(0,0), + radius(0.5), + angle(Angle::zero()), + clockwise(false) +{ +} + +bool +SpiralGradient::set_param(const String & param, const ValueBase &value) +{ + IMPORT(gradient); + IMPORT(center); + IMPORT(radius); + IMPORT(angle); + IMPORT(clockwise); + + return Layer_Composite::set_param(param,value); +} + +ValueBase +SpiralGradient::get_param(const String ¶m)const +{ + EXPORT(gradient); + EXPORT(center); + EXPORT(radius); + EXPORT(angle); + EXPORT(clockwise); + + EXPORT_NAME(); + EXPORT_VERSION(); + + return Layer_Composite::get_param(param); +} + +Layer::Vocab +SpiralGradient::get_param_vocab()const +{ + Layer::Vocab ret(Layer_Composite::get_param_vocab()); + + ret.push_back(ParamDesc("gradient") + .set_local_name(_("Gradient")) + ); + + ret.push_back(ParamDesc("center") + .set_local_name(_("Center")) + ); + + ret.push_back(ParamDesc("radius") + .set_local_name(_("Radius")) + .set_description(_("This is the radius of the circle")) + .set_is_distance() + .set_origin("center") + ); + + ret.push_back(ParamDesc("angle") + .set_local_name(_("Angle")) + .set_origin("center") + ); + + ret.push_back(ParamDesc("clockwise") + .set_local_name(_("Clockwise")) + ); + + return ret; +} + +inline Color +SpiralGradient::color_func(const Point &pos, float supersample)const +{ + const Point centered(pos-center); + Angle a; + a=Angle::tan(-centered[1],centered[0]).mod(); + a=a+angle; + + if(supersample<0.00001)supersample=0.00001; + + Real dist((pos-center).mag()/radius); + if(clockwise) + dist+=Angle::rot(a.mod()).get(); + else + dist-=Angle::rot(a.mod()).get(); + + dist-=floor(dist); + if(dist+supersample*0.5>1.0) + { + float left(supersample*0.5-(dist-1.0)); + float right(supersample*0.5+(dist-1.0)); + Color pool(gradient(1.0-(left*0.5),left).premult_alpha()*left/supersample); + pool+=gradient(right*0.5,right).premult_alpha()*right/supersample; + return pool.demult_alpha(); + } + if(dist-supersample*0.5<0.0) + { + float left(supersample*0.5-dist); + float right(supersample*0.5+dist); + Color pool(gradient(right*0.5,right).premult_alpha()*right/supersample); + pool+=gradient(1.0-left*0.5,left).premult_alpha()*left/supersample; + return pool.demult_alpha(); + } + + return gradient(dist,supersample); +} + +float +SpiralGradient::calc_supersample(const synfig::Point &x, float pw,float ph)const +{ + return (1.41421*pw/radius+(1.41421*pw/Point(x-center).mag())/(PI*2))*0.5; +} + +synfig::Layer::Handle +SpiralGradient::hit_check(synfig::Context context, const synfig::Point &point)const +{ + if(get_blend_method()==Color::BLEND_STRAIGHT && get_amount()>=0.5) + return const_cast(this); + if(get_amount()==0.0) + return context.hit_check(point); + if((get_blend_method()==Color::BLEND_STRAIGHT || get_blend_method()==Color::BLEND_COMPOSITE) && color_func(point).get_a()>0.5) + return const_cast(this); + return context.hit_check(point); +} + +Color +SpiralGradient::get_color(Context context, const Point &pos)const +{ + const Color color(color_func(pos)); + + if(get_amount()==1.0 && get_blend_method()==Color::BLEND_STRAIGHT) + return color; + else + return Color::blend(color,context.get_color(pos),get_amount(),get_blend_method()); +} + +bool +SpiralGradient::accelerated_render(Context context,Surface *surface,int quality, const RendDesc &renddesc, ProgressCallback *cb)const +{ + SuperCallback supercb(cb,0,9500,10000); + + if(get_amount()==1.0 && get_blend_method()==Color::BLEND_STRAIGHT) + { + surface->set_wh(renddesc.get_w(),renddesc.get_h()); + } + else + { + if(!context.accelerated_render(surface,quality,renddesc,&supercb)) + return false; + if(get_amount()==0) + return true; + } + + + int x,y; + + Surface::pen pen(surface->begin()); + const Real pw(renddesc.get_pw()),ph(renddesc.get_ph()); + Point pos; + Point tl(renddesc.get_tl()); + const int w(surface->get_w()); + const int h(surface->get_h()); + + if(get_amount()==1.0 && get_blend_method()==Color::BLEND_STRAIGHT) + { + for(y=0,pos[1]=tl[1];yamount_complete(10000,10000)) + return false; + + return true; +} diff --git a/synfig-core/tags/stable/src/modules/mod_gradient/spiralgradient.h b/synfig-core/tags/stable/src/modules/mod_gradient/spiralgradient.h new file mode 100644 index 0000000..824d7dd --- /dev/null +++ b/synfig-core/tags/stable/src/modules/mod_gradient/spiralgradient.h @@ -0,0 +1,81 @@ +/* === S Y N F I G ========================================================= */ +/*! \file spiralgradient.h +** \brief Template Header +** +** $Id$ +** +** \legal +** Copyright (c) 2002-2005 Robert B. Quattlebaum Jr., Adrian Bentley +** +** This package is free software; you can redistribute it and/or +** modify it under the terms of the GNU General Public License as +** published by the Free Software Foundation; either version 2 of +** the License, or (at your option) any later version. +** +** This package is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +** General Public License for more details. +** \endlegal +*/ +/* ========================================================================= */ + +/* === S T A R T =========================================================== */ + +#ifndef __SYNFIG_SPIRALGRADIENT_H +#define __SYNFIG_SPIRALGRADIENT_H + +/* === H E A D E R S ======================================================= */ + +#include +#include +#include +#include +#include +#include + +/* === M A C R O S ========================================================= */ + +/* === T Y P E D E F S ===================================================== */ + +/* === C L A S S E S & S T R U C T S ======================================= */ + +class SpiralGradient : public synfig::Layer_Composite, public synfig::Layer_NoDeform +{ + SYNFIG_LAYER_MODULE_EXT + +private: + + synfig::Gradient gradient; + + synfig::Point center; + + synfig::Real radius; + + synfig::Angle angle; + + bool clockwise; + + synfig::Color color_func(const synfig::Point &x, float supersample=0)const; + + float calc_supersample(const synfig::Point &x, float pw,float ph)const; + +public: + + SpiralGradient(); + + virtual bool set_param(const synfig::String & param, const synfig::ValueBase &value); + + virtual synfig::ValueBase get_param(const synfig::String & param)const; + + virtual synfig::Color get_color(synfig::Context context, const synfig::Point &pos)const; + + virtual bool accelerated_render(synfig::Context context,synfig::Surface *surface,int quality, const synfig::RendDesc &renddesc, synfig::ProgressCallback *cb)const; + synfig::Layer::Handle hit_check(synfig::Context context, const synfig::Point &point)const; + + virtual Vocab get_param_vocab()const; +}; // END of class SpiralGradient + +/* === E N D =============================================================== */ + +#endif diff --git a/synfig-core/tags/stable/src/modules/mod_gradient/unmod_gradient.nsh b/synfig-core/tags/stable/src/modules/mod_gradient/unmod_gradient.nsh new file mode 100644 index 0000000..e5bf48e --- /dev/null +++ b/synfig-core/tags/stable/src/modules/mod_gradient/unmod_gradient.nsh @@ -0,0 +1,8 @@ +Section "un.mod_gradient" + Delete "$INSTDIR\lib\synfig\modules\mod_gradient.dll" + RMDir "$INSTDIR\lib\synfig\modules" + RMDir "$INSTDIR\lib\synfig" + RMDir "$INSTDIR\lib" + RMDir "$INSTDIR" +SectionEnd + diff --git a/synfig-core/tags/stable/src/modules/mod_imagemagick/Makefile.am b/synfig-core/tags/stable/src/modules/mod_imagemagick/Makefile.am new file mode 100644 index 0000000..bd7dd94 --- /dev/null +++ b/synfig-core/tags/stable/src/modules/mod_imagemagick/Makefile.am @@ -0,0 +1,19 @@ +# $Id$ + + +MAINTAINERCLEANFILES=Makefile.in +INCLUDES = -I$(top_srcdir)/src + +moduledir=@MODULE_DIR@ + +if WITH_IMAGEMAGICK +module_LTLIBRARIES = libmod_imagemagick.la +libmod_imagemagick_la_SOURCES = main.cpp mptr_imagemagick.cpp mptr_imagemagick.h trgt_imagemagick.cpp trgt_imagemagick.h +libmod_imagemagick_la_LDFLAGS = -module -no-undefined +libmod_imagemagick_la_CXXFLAGS = @SYNFIG_CFLAGS@ +libmod_imagemagick_la_LIBADD = -L../../synfig -lsynfig @SYNFIG_LIBS@ +else +endif + + +EXTRA_DIST= mod_imagemagick.nsh unmod_imagemagick.nsh diff --git a/synfig-core/tags/stable/src/modules/mod_imagemagick/main.cpp b/synfig-core/tags/stable/src/modules/mod_imagemagick/main.cpp new file mode 100644 index 0000000..ae6e16a --- /dev/null +++ b/synfig-core/tags/stable/src/modules/mod_imagemagick/main.cpp @@ -0,0 +1,103 @@ +/* === S Y N F I G ========================================================= */ +/*! \file mod_imagemagick/main.cpp +** \brief Template Header +** +** $Id$ +** +** \legal +** Copyright (c) 2002-2005 Robert B. Quattlebaum Jr., Adrian Bentley +** +** This package is free software; you can redistribute it and/or +** modify it under the terms of the GNU General Public License as +** published by the Free Software Foundation; either version 2 of +** the License, or (at your option) any later version. +** +** This package is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +** General Public License for more details. +** \endlegal +** +** === N O T E S =========================================================== +** +** ========================================================================= */ + +/* === H E A D E R S ======================================================= */ + +#define SYNFIG_MODULE + +#ifdef USING_PCH +# include "pch.h" +#else +#ifdef HAVE_CONFIG_H +# include +#endif + +#include +#include "mptr_imagemagick.h" +#include "trgt_imagemagick.h" +#endif + +/* === E N T R Y P O I N T ================================================= */ + +MODULE_DESC_BEGIN(mod_imagemagick) + MODULE_NAME("ImageMagick Module") + MODULE_DESCRIPTION("Provides targets and importers for nearly every format that ImageMagick supports") + MODULE_AUTHOR("Robert B. Quattlebaum") + MODULE_VERSION("1.0") + MODULE_COPYRIGHT(SYNFIG_COPYRIGHT) +MODULE_DESC_END + +MODULE_INVENTORY_BEGIN(mod_imagemagick) + BEGIN_TARGETS + TARGET(imagemagick_trgt) + TARGET_EXT(imagemagick_trgt,"jpg") + TARGET_EXT(imagemagick_trgt,"jpeg") + TARGET_EXT(imagemagick_trgt,"png") + TARGET_EXT(imagemagick_trgt,"tga") + TARGET_EXT(imagemagick_trgt,"tif") + TARGET_EXT(imagemagick_trgt,"tiff") + TARGET_EXT(imagemagick_trgt,"pcx") + TARGET_EXT(imagemagick_trgt,"ps") + TARGET_EXT(imagemagick_trgt,"pdf") + TARGET_EXT(imagemagick_trgt,"pgm") + TARGET_EXT(imagemagick_trgt,"psd") + TARGET_EXT(imagemagick_trgt,"xcf") + TARGET_EXT(imagemagick_trgt,"svg") + TARGET_EXT(imagemagick_trgt,"xpm") + TARGET_EXT(imagemagick_trgt,"miff") + TARGET_EXT(imagemagick_trgt,"eps") + TARGET_EXT(imagemagick_trgt,"cmyk") + TARGET_EXT(imagemagick_trgt,"gif") + END_TARGETS + BEGIN_IMPORTERS + IMPORTER_EXT(imagemagick_mptr,"jpg") + IMPORTER_EXT(imagemagick_mptr,"jpeg") + IMPORTER_EXT(imagemagick_mptr,"png") + IMPORTER_EXT(imagemagick_mptr,"bmp") + IMPORTER_EXT(imagemagick_mptr,"gif") + IMPORTER_EXT(imagemagick_mptr,"pcx") + IMPORTER_EXT(imagemagick_mptr,"tif") + IMPORTER_EXT(imagemagick_mptr,"tiff") + IMPORTER_EXT(imagemagick_mptr,"tga") + IMPORTER_EXT(imagemagick_mptr,"ps") + IMPORTER_EXT(imagemagick_mptr,"pdf") + IMPORTER_EXT(imagemagick_mptr,"pgm") + IMPORTER_EXT(imagemagick_mptr,"psd") + IMPORTER_EXT(imagemagick_mptr,"xcf") + IMPORTER_EXT(imagemagick_mptr,"svg") + IMPORTER_EXT(imagemagick_mptr,"tim") + IMPORTER_EXT(imagemagick_mptr,"xpm") + IMPORTER_EXT(imagemagick_mptr,"miff") + IMPORTER_EXT(imagemagick_mptr,"ico") + IMPORTER_EXT(imagemagick_mptr,"eps") + IMPORTER_EXT(imagemagick_mptr,"ttf") + IMPORTER_EXT(imagemagick_mptr,"pix") + IMPORTER_EXT(imagemagick_mptr,"rla") + IMPORTER_EXT(imagemagick_mptr,"mat") + IMPORTER_EXT(imagemagick_mptr,"html") + IMPORTER_EXT(imagemagick_mptr,"ept") + IMPORTER_EXT(imagemagick_mptr,"dcm") + IMPORTER_EXT(imagemagick_mptr,"fig") + END_IMPORTERS +MODULE_INVENTORY_END diff --git a/synfig-core/tags/stable/src/modules/mod_imagemagick/mod_imagemagick.nsh b/synfig-core/tags/stable/src/modules/mod_imagemagick/mod_imagemagick.nsh new file mode 100644 index 0000000..4db24bc --- /dev/null +++ b/synfig-core/tags/stable/src/modules/mod_imagemagick/mod_imagemagick.nsh @@ -0,0 +1,21 @@ +; The stuff to install +Section "mod_imagemagick" Sec_mod_imagemagick + +; SectionIn RO + + ; Set output path to the installation directory. + SetOutPath "$INSTDIR\lib\synfig\modules" + + ; Put file there + File /oname=mod_imagemagick.dll "src\modules\mod_imagemagick\.libs\libmod_imagemagick-0.dll" + + + FileOpen $0 $INSTDIR\etc\synfig_modules.cfg a + FileSeek $0 0 END + FileWrite $0 "mod_imagemagick" + FileWriteByte $0 "13" + FileWriteByte $0 "10" + FileClose $0 + +SectionEnd + diff --git a/synfig-core/tags/stable/src/modules/mod_imagemagick/mptr_imagemagick.cpp b/synfig-core/tags/stable/src/modules/mod_imagemagick/mptr_imagemagick.cpp new file mode 100644 index 0000000..bd577ac --- /dev/null +++ b/synfig-core/tags/stable/src/modules/mod_imagemagick/mptr_imagemagick.cpp @@ -0,0 +1,252 @@ +/* === S Y N F I G ========================================================= */ +/*! \file mptr_imagemagick.cpp +** \brief ppm Target Module +** +** $Id$ +** +** \legal +** Copyright (c) 2002-2005 Robert B. Quattlebaum Jr., Adrian Bentley +** +** This package is free software; you can redistribute it and/or +** modify it under the terms of the GNU General Public License as +** published by the Free Software Foundation; either version 2 of +** the License, or (at your option) any later version. +** +** This package is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +** General Public License for more details. +** \endlegal +** +** === N O T E S =========================================================== +** +** ========================================================================= */ + +/* === H E A D E R S ======================================================= */ + +#ifdef USING_PCH +# include "pch.h" +#else +#ifdef HAVE_CONFIG_H +# include +#endif + +#include +#include "mptr_imagemagick.h" +#include +#include +#include +#include +#include + +#endif + +/* === M A C R O S ========================================================= */ + +using namespace synfig; +using namespace std; +using namespace etl; + +/* === G L O B A L S ======================================================= */ + +SYNFIG_IMPORTER_INIT(imagemagick_mptr); +SYNFIG_IMPORTER_SET_NAME(imagemagick_mptr,"imagemagick"); +SYNFIG_IMPORTER_SET_EXT(imagemagick_mptr,"miff"); +SYNFIG_IMPORTER_SET_VERSION(imagemagick_mptr,"0.1"); +SYNFIG_IMPORTER_SET_CVS_ID(imagemagick_mptr,"$Id$"); + +/* === M E T H O D S ======================================================= */ + + +imagemagick_mptr::imagemagick_mptr(const char *f) +{ + + filename=f; + file=NULL; +} + +imagemagick_mptr::~imagemagick_mptr() +{ + if(file) + pclose(file); +} + +bool +imagemagick_mptr::get_frame(synfig::Surface &surface,Time time, synfig::ProgressCallback *cb) +{ +//#define HAS_LIBPNG 1 + +#if 1 + if(file) + pclose(file); + + string command; + + if(filename.empty()) + { + if(cb)cb->error(_("No file to load")); + else synfig::error(_("No file to load")); + return false; + } + string temp_file="/tmp/deleteme.png"; + + if(filename.find("psd")!=String::npos) + command=strprintf("convert \"%s\" -flatten \"png32:%s\"\n",filename.c_str(),temp_file.c_str()); + else + command=strprintf("convert \"%s\" \"png32:%s\"\n",filename.c_str(),temp_file.c_str()); + + synfig::info("command=%s",command.c_str()); + + if(system(command.c_str())!=0) + return false; + + Importer::Handle importer(Importer::open(temp_file)); + + DEBUGPOINT(); + + if(!importer) + { + if(cb)cb->error(_("Unable to open ")+temp_file); + else synfig::error(_("Unable to open ")+temp_file); + return false; + } + + DEBUGPOINT(); + + if(!importer->get_frame(surface,0,cb)) + { + if(cb)cb->error(_("Unable to get frame from ")+temp_file); + else synfig::error(_("Unable to get frame from ")+temp_file); + return false; + } + + if(!surface) + { + if(cb)cb->error(_("Bad surface from ")+temp_file); + else synfig::error(_("Bad surface from ")+temp_file); + return false; + } + + if(1) + { + // remove odd premultiplication + for(int i=0;ierror(_("No file to load")); + else synfig::error(_("No file to load")); + return false; + } + + command=strprintf("convert \"%s\" -flatten ppm:-\n",filename.c_str()); + + file=popen(command.c_str(),"r"); + + if(!file) + { + if(cb)cb->error(_("Unable to open pipe to imagemagick")); + else synfig::error(_("Unable to open pipe to imagemagick")); + return false; + } + int w,h; + float divisor; + char cookie[2]; + + while((cookie[0]=fgetc(file))!='P' && !feof(file)); + + if(feof(file)) + { + if(cb)cb->error(_("Reached end of stream without finding PPM header")); + else synfig::error(_("Reached end of stream without finding PPM header")); + return false; + } + + cookie[1]=fgetc(file); + + if(cookie[0]!='P' || cookie[1]!='6') + { + if(cb)cb->error(string(_("stream not in PPM format"))+" \""+cookie[0]+cookie[1]+'"'); + else synfig::error(string(_("stream not in PPM format"))+" \""+cookie[0]+cookie[1]+'"'); + return false; + } + + fgetc(file); + fscanf(file,"%d %d\n",&w,&h); + fscanf(file,"%f",&divisor); + fgetc(file); + + if(feof(file)) + { + if(cb)cb->error(_("Premature end of file (after header)")); + else synfig::error(_("Premature end of file (after header)")); + return false; + } + + int x; + int y; + frame.set_wh(w,h); + for(y=0;yerror(_("Premature end of file")); + else synfig::error(_("Premature end of file")); + return false; + } + float b=gamma().r_U8_to_F32((unsigned char)fgetc(file)); + float g=gamma().g_U8_to_F32((unsigned char)fgetc(file)); + float r=gamma().b_U8_to_F32((unsigned char)fgetc(file)); +/* + float b=(float)(unsigned char)fgetc(file)/divisor; + float g=(float)(unsigned char)fgetc(file)/divisor; + float r=(float)(unsigned char)fgetc(file)/divisor; +*/ + frame[y][x]=Color( + b, + g, + r, + 1.0 + ); + } + + surface=frame; + + return true; +#endif + + +} diff --git a/synfig-core/tags/stable/src/modules/mod_imagemagick/mptr_imagemagick.h b/synfig-core/tags/stable/src/modules/mod_imagemagick/mptr_imagemagick.h new file mode 100644 index 0000000..fcd8bdb --- /dev/null +++ b/synfig-core/tags/stable/src/modules/mod_imagemagick/mptr_imagemagick.h @@ -0,0 +1,62 @@ +/* === S Y N F I G ========================================================= */ +/*! \file mptr_imagemagick.h +** \brief Template Header +** +** $Id$ +** +** \legal +** Copyright (c) 2002-2005 Robert B. Quattlebaum Jr., Adrian Bentley +** +** This package is free software; you can redistribute it and/or +** modify it under the terms of the GNU General Public License as +** published by the Free Software Foundation; either version 2 of +** the License, or (at your option) any later version. +** +** This package is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +** General Public License for more details. +** \endlegal +** +** === N O T E S =========================================================== +** +** ========================================================================= */ + +/* === S T A R T =========================================================== */ + +#ifndef __SYNFIG_MPTR_IMAGEMAGICK_H +#define __SYNFIG_MPTR_IMAGEMAGICK_H + +/* === H E A D E R S ======================================================= */ + +#include +#include +#include "string.h" +#include + +/* === M A C R O S ========================================================= */ + +/* === T Y P E D E F S ===================================================== */ + +/* === C L A S S E S & S T R U C T S ======================================= */ + +class imagemagick_mptr : public synfig::Importer +{ + SYNFIG_IMPORTER_MODULE_EXT +private: + synfig::String filename; + FILE *file; + int cur_frame; + synfig::Surface frame; + +public: + imagemagick_mptr(const char *filename); + + ~imagemagick_mptr(); + + virtual bool get_frame(synfig::Surface &surface,synfig::Time time, synfig::ProgressCallback *callback); +}; + +/* === E N D =============================================================== */ + +#endif diff --git a/synfig-core/tags/stable/src/modules/mod_imagemagick/trgt_imagemagick.cpp b/synfig-core/tags/stable/src/modules/mod_imagemagick/trgt_imagemagick.cpp new file mode 100644 index 0000000..99dd425 --- /dev/null +++ b/synfig-core/tags/stable/src/modules/mod_imagemagick/trgt_imagemagick.cpp @@ -0,0 +1,162 @@ +/* === S Y N F I G ========================================================= */ +/*! \file trgt_imagemagick.cpp +** \brief ppm Target Module +** +** \legal +** $Id$ +** +** Copyright (c) 2002-2005 Robert B. Quattlebaum Jr., Adrian Bentley +** +** This package is free software; you can redistribute it and/or +** modify it under the terms of the GNU General Public License as +** published by the Free Software Foundation; either version 2 of +** the License, or (at your option) any later version. +** +** This package is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +** General Public License for more details. +** \endlegal +** +** === N O T E S =========================================================== +** +** ========================================================================= */ + +/* === H E A D E R S ======================================================= */ + +#define SYNFIG_TARGET + +#ifdef USING_PCH +# include "pch.h" +#else +#ifdef HAVE_CONFIG_H +# include +#endif + +#include +#include "trgt_imagemagick.h" +#include +#include +#include +#include +#include + +#endif + +/* === M A C R O S ========================================================= */ + +using namespace synfig; +using namespace std; +using namespace etl; + +/* === G L O B A L S ======================================================= */ + +SYNFIG_TARGET_INIT(imagemagick_trgt); +SYNFIG_TARGET_SET_NAME(imagemagick_trgt,"imagemagick"); +SYNFIG_TARGET_SET_EXT(imagemagick_trgt,"miff"); +SYNFIG_TARGET_SET_VERSION(imagemagick_trgt,"0.1"); +SYNFIG_TARGET_SET_CVS_ID(imagemagick_trgt,"$Id$"); + +/* === M E T H O D S ======================================================= */ + +imagemagick_trgt::imagemagick_trgt(const char *Filename) +{ + file=NULL; + filename=Filename; + multi_image=false; + buffer=NULL; + color_buffer=0; +} + +imagemagick_trgt::~imagemagick_trgt() +{ + if(file) + pclose(file); + file=NULL; + delete [] buffer; + delete [] color_buffer; +} + +bool +imagemagick_trgt::set_rend_desc(RendDesc *given_desc) +{ + String ext(find(filename.begin(),filename.end(),'.')+1,filename.end()); + if(ext=="xpm") + pf=PF_RGB; + else + pf=PF_RGB|PF_A; + + desc=*given_desc; + return true; +} + +bool +imagemagick_trgt::init() +{ + imagecount=desc.get_frame_start(); + if(desc.get_frame_end()-desc.get_frame_start()>0) + multi_image=true; + + delete [] buffer; + buffer=new unsigned char[channels(pf)*desc.get_w()]; + delete [] color_buffer; + color_buffer=new Color[desc.get_w()]; + return true; +} + +void +imagemagick_trgt::end_frame() +{ + if(file) + { + fputc(0,file); + fflush(file); + pclose(file); + } + file=NULL; +} + +bool +imagemagick_trgt::start_frame(synfig::ProgressCallback *cb) +{ + string command; + + if(channels(pf)==4) + command=strprintf("convert -depth 8 -size %dx%d rgba:-[0] -density %dx%d \"%s\"\n",desc.get_w(),desc.get_h(),round_to_int(desc.get_x_res()/39.3700787402),round_to_int(desc.get_y_res()/39.3700787402),filename.c_str()); + else + command=strprintf("convert -depth 8 -size %dx%d rgb:-[0] -density %dx%d \"%s\"\n",desc.get_w(),desc.get_h(),round_to_int(desc.get_x_res()/39.3700787402),round_to_int(desc.get_y_res()/39.3700787402),filename.c_str()); + + file=popen(command.c_str(),"w"); + + if(!file) + { + const char *msg=_("Unable to open pipe to imagemagick's convert utility"); + if(cb)cb->error(N_(msg)); + else synfig::error(N_(msg)); + return false; + } + + //etl::yield(); + + return true; +} + +Color * +imagemagick_trgt::start_scanline(int scanline) +{ + return color_buffer; +} + +bool +imagemagick_trgt::end_scanline(void) +{ + if(!file) + return false; + + convert_color_format(buffer, color_buffer, desc.get_w(), pf, gamma()); + + if(!fwrite(buffer,channels(pf),desc.get_w(),file)) + return false; + + return true; +} diff --git a/synfig-core/tags/stable/src/modules/mod_imagemagick/trgt_imagemagick.h b/synfig-core/tags/stable/src/modules/mod_imagemagick/trgt_imagemagick.h new file mode 100644 index 0000000..15287dd --- /dev/null +++ b/synfig-core/tags/stable/src/modules/mod_imagemagick/trgt_imagemagick.h @@ -0,0 +1,68 @@ +/* === S Y N F I G ========================================================= */ +/*! \file trgt_imagemagick.h +** \brief Template Header +** +** $Id$ +** +** \legal +** Copyright (c) 2002-2005 Robert B. Quattlebaum Jr., Adrian Bentley +** +** This package is free software; you can redistribute it and/or +** modify it under the terms of the GNU General Public License as +** published by the Free Software Foundation; either version 2 of +** the License, or (at your option) any later version. +** +** This package is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +** General Public License for more details. +** \endlegal +** +** === N O T E S =========================================================== +** +** ========================================================================= */ + +/* === S T A R T =========================================================== */ + +#ifndef __SYNFIG_TRGT_IMAGEMAGICK_H +#define __SYNFIG_TRGT_IMAGEMAGICK_H + +/* === H E A D E R S ======================================================= */ + +#include +#include +#include + +/* === M A C R O S ========================================================= */ + +/* === T Y P E D E F S ===================================================== */ + +/* === C L A S S E S & S T R U C T S ======================================= */ + + +class imagemagick_trgt : public synfig::Target_Scanline +{ + SYNFIG_TARGET_MODULE_EXT +private: + int imagecount; + bool multi_image; + FILE *file; + synfig::String filename; + unsigned char *buffer; + synfig::Color *color_buffer; + synfig::PixelFormat pf; +public: + imagemagick_trgt(const char *filename); + virtual ~imagemagick_trgt(); + + virtual bool set_rend_desc(synfig::RendDesc *desc); + virtual bool init(); + virtual bool start_frame(synfig::ProgressCallback *cb); + virtual void end_frame(); + virtual synfig::Color * start_scanline(int scanline); + virtual bool end_scanline(); +}; + +/* === E N D =============================================================== */ + +#endif diff --git a/synfig-core/tags/stable/src/modules/mod_imagemagick/unmod_imagemagick.nsh b/synfig-core/tags/stable/src/modules/mod_imagemagick/unmod_imagemagick.nsh new file mode 100644 index 0000000..a849b55 --- /dev/null +++ b/synfig-core/tags/stable/src/modules/mod_imagemagick/unmod_imagemagick.nsh @@ -0,0 +1,8 @@ +Section "un.mod_imagemagick" + Delete "$INSTDIR\lib\synfig\modules\mod_imagemagick.dll" + RMDir "$INSTDIR\lib\synfig\modules" + RMDir "$INSTDIR\lib\synfig" + RMDir "$INSTDIR\lib" + RMDir "$INSTDIR" +SectionEnd + diff --git a/synfig-core/tags/stable/src/modules/mod_jpeg/Makefile.am b/synfig-core/tags/stable/src/modules/mod_jpeg/Makefile.am new file mode 100644 index 0000000..1225d1d --- /dev/null +++ b/synfig-core/tags/stable/src/modules/mod_jpeg/Makefile.am @@ -0,0 +1,17 @@ +# $Id$ + + +MAINTAINERCLEANFILES=Makefile.in +INCLUDES = -I$(top_srcdir)/src + +moduledir=@MODULE_DIR@ + +if HAVE_LIBJPEG +module_LTLIBRARIES = libmod_jpeg.la +libmod_jpeg_la_SOURCES = main.cpp trgt_jpeg.cpp trgt_jpeg.h mptr_jpeg.cpp mptr_jpeg.h +libmod_jpeg_la_LDFLAGS = -module @JPEG_LIBS@ -no-undefined +libmod_jpeg_la_CXXFLAGS = @SYNFIG_CFLAGS@ +libmod_jpeg_la_LIBADD = -L../../synfig -lsynfig @SYNFIG_LIBS@ +else +endif +EXTRA_DIST= mod_jpeg.nsh unmod_jpeg.nsh diff --git a/synfig-core/tags/stable/src/modules/mod_jpeg/main.cpp b/synfig-core/tags/stable/src/modules/mod_jpeg/main.cpp new file mode 100644 index 0000000..7b5c647 --- /dev/null +++ b/synfig-core/tags/stable/src/modules/mod_jpeg/main.cpp @@ -0,0 +1,61 @@ +/* === S Y N F I G ========================================================= */ +/*! \file mod_jpeg/main.cpp +** \brief Template Header +** +** $Id$ +** +** \legal +** Copyright (c) 2002-2005 Robert B. Quattlebaum Jr., Adrian Bentley +** +** This package is free software; you can redistribute it and/or +** modify it under the terms of the GNU General Public License as +** published by the Free Software Foundation; either version 2 of +** the License, or (at your option) any later version. +** +** This package is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +** General Public License for more details. +** \endlegal +** +** === N O T E S =========================================================== +** +** ========================================================================= */ + +/* === H E A D E R S ======================================================= */ + +#define SYNFIG_MODULE + +#ifdef USING_PCH +# include "pch.h" +#else +#ifdef HAVE_CONFIG_H +# include +#endif + +#include +#include "trgt_jpeg.h" +#include "mptr_jpeg.h" +#endif + +/* === E N T R Y P O I N T ================================================= */ + +MODULE_DESC_BEGIN(mod_jpeg) + MODULE_NAME("JPEG Module (libjpeg)") + MODULE_DESCRIPTION("Provides a JPEG target and importer") + MODULE_AUTHOR("Robert B. Quattlebaum Jr") + MODULE_VERSION("1.0") + MODULE_COPYRIGHT(SYNFIG_COPYRIGHT) +MODULE_DESC_END + +MODULE_INVENTORY_BEGIN(mod_jpeg) + BEGIN_TARGETS + TARGET(jpeg_trgt) + TARGET_EXT(jpeg_trgt,"jpeg") + TARGET_EXT(jpeg_trgt,"jpg") + END_TARGETS + BEGIN_IMPORTERS + IMPORTER_EXT(jpeg_mptr,"jpg") + IMPORTER_EXT(jpeg_mptr,"jpeg") + END_IMPORTERS +MODULE_INVENTORY_END diff --git a/synfig-core/tags/stable/src/modules/mod_jpeg/mod_jpeg.nsh b/synfig-core/tags/stable/src/modules/mod_jpeg/mod_jpeg.nsh new file mode 100644 index 0000000..66e19c7 --- /dev/null +++ b/synfig-core/tags/stable/src/modules/mod_jpeg/mod_jpeg.nsh @@ -0,0 +1,21 @@ +; The stuff to install +Section "mod_jpeg" Sec_mod_jpeg + +; SectionIn RO + + ; Set output path to the installation directory. + SetOutPath "$INSTDIR\lib\synfig\modules" + + ; Put file there + File /oname=mod_jpeg.dll "src\modules\mod_jpeg\.libs\libmod_jpeg-0.dll" + + + FileOpen $0 $INSTDIR\etc\synfig_modules.cfg a + FileSeek $0 0 END + FileWrite $0 "mod_jpeg" + FileWriteByte $0 "13" + FileWriteByte $0 "10" + FileClose $0 + +SectionEnd + diff --git a/synfig-core/tags/stable/src/modules/mod_jpeg/mptr_jpeg.cpp b/synfig-core/tags/stable/src/modules/mod_jpeg/mptr_jpeg.cpp new file mode 100644 index 0000000..cc81bb1 --- /dev/null +++ b/synfig-core/tags/stable/src/modules/mod_jpeg/mptr_jpeg.cpp @@ -0,0 +1,256 @@ +/* === S Y N F I G ========================================================= */ +/*! \file mptr_jpeg.cpp +** \brief ppm Target Module +** +** $Id$ +** +** \legal +** Copyright (c) 2002-2005 Robert B. Quattlebaum Jr., Adrian Bentley +** +** This package is free software; you can redistribute it and/or +** modify it under the terms of the GNU General Public License as +** published by the Free Software Foundation; either version 2 of +** the License, or (at your option) any later version. +** +** This package is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +** General Public License for more details. +** \endlegal +** +** === N O T E S =========================================================== +** +** ========================================================================= */ + +/*! \todo Support 16 bit JPEG files +** \todo Support for paletted JPEG files +** \todo Support GAMMA correction +** \todo Fix memory leaks +*/ + +/* === H E A D E R S ======================================================= */ + +#ifdef USING_PCH +# include "pch.h" +#else +#ifdef HAVE_CONFIG_H +# include +#endif + +#include "mptr_jpeg.h" +#include +#include +#include + + +#include +#include +#include +#endif + +/* === M A C R O S ========================================================= */ + +using namespace synfig; +using namespace std; +using namespace etl; + +#define JPEG_CHECK_BYTES 8 + +/* === G L O B A L S ======================================================= */ + +SYNFIG_IMPORTER_INIT(jpeg_mptr); +SYNFIG_IMPORTER_SET_NAME(jpeg_mptr,"jpeg"); +SYNFIG_IMPORTER_SET_EXT(jpeg_mptr,"jpg"); +SYNFIG_IMPORTER_SET_VERSION(jpeg_mptr,"0.1"); +SYNFIG_IMPORTER_SET_CVS_ID(jpeg_mptr,"$Id$"); + +/* === M E T H O D S ======================================================= */ + +struct my_error_mgr { + struct jpeg_error_mgr pub; /* "public" fields */ + + jmp_buf setjmp_buffer; /* for return to caller */ +}; + +typedef struct my_error_mgr * my_error_ptr; + +/* + * Here's the routine that will replace the standard error_exit method: + */ + +void +jpeg_mptr::my_error_exit (j_common_ptr cinfo) +{ + /* cinfo->err really points to a my_error_mgr struct, so coerce pointer */ + my_error_ptr myerr = (my_error_ptr) cinfo->err; + + /* Always display the message. */ + /* We could postpone this until after returning, if we chose. */ + (*cinfo->err->output_message) (cinfo); + + /* Return control to the setjmp point */ + longjmp(myerr->setjmp_buffer, 1); +} + + + + + +jpeg_mptr::jpeg_mptr(const char *file_name) +{ + struct my_error_mgr jerr; + filename=file_name; + + /* Open the file pointer */ + FILE *file = fopen(file_name, "rb"); + if (!file) + { + //! \todo THROW SOMETHING + throw String("error on importer construction, *WRITEME*1"); + return; + } + + /* Step 1: allocate and initialize JPEG decompression object */ + + /* We set up the normal JPEG error routines, then override error_exit. */ + cinfo.err = jpeg_std_error(&jerr.pub); + jerr.pub.error_exit = my_error_exit; + /* Establish the setjmp return context for my_error_exit to use. */ + if (setjmp(jerr.setjmp_buffer)) { + /* If we get here, the JPEG code has signaled an error. + * We need to clean up the JPEG object, close the input file, and return. + */ + jpeg_destroy_decompress(&cinfo); + fclose(file); + throw String("error on importer construction, *WRITEME*2"); + } + /* Now we can initialize the JPEG decompression object. */ + jpeg_create_decompress(&cinfo); + + /* Step 2: specify data source (eg, a file) */ + + jpeg_stdio_src(&cinfo, file); + + /* Step 3: read file parameters with jpeg_read_header() */ + + (void) jpeg_read_header(&cinfo, TRUE); + /* We can ignore the return value from jpeg_read_header since + * (a) suspension is not possible with the stdio data source, and + * (b) we passed TRUE to reject a tables-only JPEG file as an error. + * See libjpeg.doc for more info. + */ + + /* Step 4: set parameters for decompression */ + + /* In this example, we don't need to change any of the defaults set by + * jpeg_read_header(), so we do nothing here. + */ + + /* Step 5: Start decompressor */ + + (void) jpeg_start_decompress(&cinfo); + /* We can ignore the return value since suspension is not possible + * with the stdio data source. + */ + + JSAMPARRAY buffer; /* Output row buffer */ + int row_stride; /* physical row width in output buffer */ + row_stride = cinfo.output_width * cinfo.output_components; + /* Make a one-row-high sample array that will go away when done with image */ + buffer = (*cinfo.mem->alloc_sarray)((j_common_ptr) &cinfo, JPOOL_IMAGE, row_stride, 1); + + if(!buffer) + { + synfig::error("jpeg_mptr: error: alloc of \"buffer\" failed (bug?)"); + throw String("alloc of \"buffer\" failed (bug?)"); + } + + int x; + int y; + surface_buffer.set_wh(cinfo.output_width,cinfo.output_height); + + switch(cinfo.output_components) + { + case 3: + for(y=0;y +#include +#include +_ETL_BEGIN_CDECLS +#include +_ETL_END_CDECLS +#include + +/* === M A C R O S ========================================================= */ + +/* === T Y P E D E F S ===================================================== */ + +/* === C L A S S E S & S T R U C T S ======================================= */ + +class jpeg_mptr : public synfig::Importer +{ + SYNFIG_IMPORTER_MODULE_EXT +private: + synfig::String filename; + synfig::Surface surface_buffer; + + struct jpeg_decompress_struct cinfo; + + static void my_error_exit (j_common_ptr cinfo); + +public: + jpeg_mptr(const char *filename); + ~jpeg_mptr(); + + virtual bool get_frame(synfig::Surface &surface,synfig::Time time, synfig::ProgressCallback *callback); +}; + +/* === E N D =============================================================== */ + +#endif diff --git a/synfig-core/tags/stable/src/modules/mod_jpeg/trgt_jpeg.cpp b/synfig-core/tags/stable/src/modules/mod_jpeg/trgt_jpeg.cpp new file mode 100644 index 0000000..c0c116c --- /dev/null +++ b/synfig-core/tags/stable/src/modules/mod_jpeg/trgt_jpeg.cpp @@ -0,0 +1,199 @@ +/* === S Y N F I G ========================================================= */ +/*! \file trgt_jpeg.cpp +** \brief jpeg_trgt Target Module +** +** $Id$ +** +** \legal +** Copyright (c) 2002-2005 Robert B. Quattlebaum Jr., Adrian Bentley +** +** This package is free software; you can redistribute it and/or +** modify it under the terms of the GNU General Public License as +** published by the Free Software Foundation; either version 2 of +** the License, or (at your option) any later version. +** +** This package is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +** General Public License for more details. +** \endlegal +** +** === N O T E S =========================================================== +** +** ========================================================================= */ + +/* === H E A D E R S ======================================================= */ + +#define SYNFIG_TARGET + +#ifdef USING_PCH +# include "pch.h" +#else +#ifdef HAVE_CONFIG_H +# include +#endif + +#include "trgt_jpeg.h" +#include +#include +#include +#include +#include +#endif + +/* === M A C R O S ========================================================= */ + +using namespace synfig; +using namespace std; +using namespace etl; + +/* === G L O B A L S ======================================================= */ + +SYNFIG_TARGET_INIT(jpeg_trgt); +SYNFIG_TARGET_SET_NAME(jpeg_trgt,"jpeg"); +SYNFIG_TARGET_SET_EXT(jpeg_trgt,"jpg"); +SYNFIG_TARGET_SET_VERSION(jpeg_trgt,"0.1"); +SYNFIG_TARGET_SET_CVS_ID(jpeg_trgt,"$Id$"); + +/* === M E T H O D S ======================================================= */ + +jpeg_trgt::jpeg_trgt(const char *Filename) +{ + file=NULL; + filename=Filename; + buffer=NULL; + ready=false; + quality=95; + color_buffer=0; + set_remove_alpha(); +} + +jpeg_trgt::~jpeg_trgt() +{ + if(ready) + { + jpeg_finish_compress(&cinfo); + jpeg_destroy_compress(&cinfo); + ready=false; + } + if(file) + fclose(file); + file=NULL; + delete [] buffer; + delete [] color_buffer; +} + +bool +jpeg_trgt::set_rend_desc(RendDesc *given_desc) +{ + desc=*given_desc; + imagecount=desc.get_frame_start(); + if(desc.get_frame_end()-desc.get_frame_start()>0) + multi_image=true; + else + multi_image=false; + return true; +} + +bool +jpeg_trgt::start_frame(synfig::ProgressCallback *callback) +{ + int w=desc.get_w(),h=desc.get_h(); + + if(file && file!=stdout) + fclose(file); + if(filename=="-") + { + if(callback)callback->task(strprintf("(stdout) %d",imagecount).c_str()); + file=stdout; + } + else if(multi_image) + { + String + newfilename(filename), + ext(find(filename.begin(),filename.end(),'.'),filename.end()); + newfilename.erase(find(newfilename.begin(),newfilename.end(),'.'),newfilename.end()); + + newfilename+=etl::strprintf("%04d",imagecount)+ext; + file=fopen(newfilename.c_str(),"wb"); + if(callback)callback->task(newfilename); + } + else + { + file=fopen(filename.c_str(),"wb"); + if(callback)callback->task(filename); + } + + if(!file) + return false; + + delete [] buffer; + buffer=new unsigned char[3*w]; + + delete [] color_buffer; + color_buffer=new Color[w]; + + + cinfo.err = jpeg_std_error(&jerr); + jpeg_create_compress(&cinfo); + jpeg_stdio_dest(&cinfo, file); + + cinfo.image_width = w; /* image width and height, in pixels */ + cinfo.image_height = h; + cinfo.input_components = 3; /* # of color components per pixel */ + cinfo.in_color_space = JCS_RGB; /* colorspace of input image */ + /* Now use the library's routine to set default compression parameters. + * (You must set at least cinfo.in_color_space before calling this, + * since the defaults depend on the source color space.) + */ + jpeg_set_defaults(&cinfo); + /* Now you can set any non-default parameters you wish to. + * Here we just illustrate the use of quality (quantization table) scaling: + */ + jpeg_set_quality(&cinfo, quality, TRUE /* limit to baseline-JPEG values */); + + /* Step 4: Start compressor */ + + /* TRUE ensures that we will write a complete interchange-JPEG file. + * Pass TRUE unless you are very sure of what you're doing. + */ + jpeg_start_compress(&cinfo, TRUE); + + ready=true; + return true; +} + +void +jpeg_trgt::end_frame() +{ + if(ready) + { + jpeg_finish_compress(&cinfo); + jpeg_destroy_compress(&cinfo); + ready=false; + } + + if(file && file!=stdout) + fclose(file); + file=NULL; + imagecount++; +} + +Color * +jpeg_trgt::start_scanline(int scanline) +{ + return color_buffer; +} + +bool +jpeg_trgt::end_scanline() +{ + if(!file || !ready) + return false; + + convert_color_format(buffer, color_buffer, desc.get_w(), PF_RGB,gamma()); + JSAMPROW *row_pointer(&buffer); + jpeg_write_scanlines(&cinfo, row_pointer, 1); + + return true; +} diff --git a/synfig-core/tags/stable/src/modules/mod_jpeg/trgt_jpeg.h b/synfig-core/tags/stable/src/modules/mod_jpeg/trgt_jpeg.h new file mode 100644 index 0000000..65518d0 --- /dev/null +++ b/synfig-core/tags/stable/src/modules/mod_jpeg/trgt_jpeg.h @@ -0,0 +1,76 @@ +/* === S Y N F I G ========================================================= */ +/*! \file trgt_jpeg.h +** \brief Template Header +** +** $Id$ +** +** \legal +** Copyright (c) 2002-2005 Robert B. Quattlebaum Jr., Adrian Bentley +** +** This package is free software; you can redistribute it and/or +** modify it under the terms of the GNU General Public License as +** published by the Free Software Foundation; either version 2 of +** the License, or (at your option) any later version. +** +** This package is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +** General Public License for more details. +** \endlegal +** +** === N O T E S =========================================================== +** +** ========================================================================= */ + +/* === S T A R T =========================================================== */ + +#ifndef __SYNFIG_TRGT_JPEG_H +#define __SYNFIG_TRGT_JPEG_H + +/* === H E A D E R S ======================================================= */ + +#define NOMINMAX +#include +#include +#include +_ETL_BEGIN_CDECLS +#include +_ETL_END_CDECLS +#include + +/* === M A C R O S ========================================================= */ + +/* === T Y P E D E F S ===================================================== */ + +/* === C L A S S E S & S T R U C T S ======================================= */ + +class jpeg_trgt : public synfig::Target_Scanline +{ + SYNFIG_TARGET_MODULE_EXT +private: + FILE *file; + int w,h,quality; + struct jpeg_compress_struct cinfo; + struct jpeg_error_mgr jerr; + + + bool multi_image,ready; + int imagecount; + synfig::String filename; + unsigned char *buffer; + synfig::Color *color_buffer; +public: + jpeg_trgt(const char *filename); + virtual ~jpeg_trgt(); + + virtual bool set_rend_desc(synfig::RendDesc *desc); + virtual bool start_frame(synfig::ProgressCallback *cb); + virtual void end_frame(); + + virtual synfig::Color * start_scanline(int scanline); + virtual bool end_scanline(); +}; + +/* === E N D =============================================================== */ + +#endif diff --git a/synfig-core/tags/stable/src/modules/mod_jpeg/unmod_jpeg.nsh b/synfig-core/tags/stable/src/modules/mod_jpeg/unmod_jpeg.nsh new file mode 100644 index 0000000..56c9547 --- /dev/null +++ b/synfig-core/tags/stable/src/modules/mod_jpeg/unmod_jpeg.nsh @@ -0,0 +1,8 @@ +Section "un.mod_jpeg" + Delete "$INSTDIR\lib\synfig\modules\mod_jpeg.dll" + RMDir "$INSTDIR\lib\synfig\modules" + RMDir "$INSTDIR\lib\synfig" + RMDir "$INSTDIR\lib" + RMDir "$INSTDIR" +SectionEnd + diff --git a/synfig-core/tags/stable/src/modules/mod_libavcodec/Makefile.am b/synfig-core/tags/stable/src/modules/mod_libavcodec/Makefile.am new file mode 100644 index 0000000..1453b1f --- /dev/null +++ b/synfig-core/tags/stable/src/modules/mod_libavcodec/Makefile.am @@ -0,0 +1,17 @@ +# $Id$ + + +MAINTAINERCLEANFILES=Makefile.in +INCLUDES = -I$(top_srcdir)/src + +moduledir=@MODULE_DIR@ + +if WITH_LIBAVCODEC +module_LTLIBRARIES = libmod_libavcodec.la +libmod_libavcodec_la_SOURCES = main.cpp trgt_av.cpp trgt_av.h mptr.cpp mptr.h +libmod_libavcodec_la_LDFLAGS = -module -no-undefined +libmod_libavcodec_la_CXXFLAGS = @SYNFIG_CFLAGS@ @LIBAVCODEC_CFLAGS@ -D__STDC_CONSTANT_MACROS +libmod_libavcodec_la_LIBADD = -L../../synfig -lsynfig @SYNFIG_LIBS@ @LIBAVCODEC_LIBS@ +else +endif +EXTRA_DIST= mod_libavcodec.nsh unmod_libavcodec.nsh diff --git a/synfig-core/tags/stable/src/modules/mod_libavcodec/main.cpp b/synfig-core/tags/stable/src/modules/mod_libavcodec/main.cpp new file mode 100644 index 0000000..70fa9c5 --- /dev/null +++ b/synfig-core/tags/stable/src/modules/mod_libavcodec/main.cpp @@ -0,0 +1,68 @@ +/* === S Y N F I G ========================================================= */ +/*! \file mod_libavcodec/main.cpp +** \brief writeme +** +** $Id$ +** +** \legal +** Copyright (c) 2002-2005 Robert B. Quattlebaum Jr., Adrian Bentley +** +** This package is free software; you can redistribute it and/or +** modify it under the terms of the GNU General Public License as +** published by the Free Software Foundation; either version 2 of +** the License, or (at your option) any later version. +** +** This package is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +** General Public License for more details. +** \endlegal +*/ +/* ========================================================================= */ + +/* === H E A D E R S ======================================================= */ + +#define SYNFIG_NO_ANGLE + +#ifdef USING_PCH +# include "pch.h" +#else +#ifdef HAVE_CONFIG_H +# include +#endif + +#include +#include + +//#include "mptr.h" +#include "trgt_av.h" + +#endif + +/* === E N T R Y P O I N T ================================================= */ + +MODULE_DESC_BEGIN(mod_libavcodec) + MODULE_NAME("LibAVCodec Module (From FFMPEG)") + MODULE_DESCRIPTION("Provides import/export ability for AVI, MPG, ASF, and a variety of other formats.") + MODULE_AUTHOR("Adrian Bentley") + MODULE_VERSION("0.0") + MODULE_COPYRIGHT(SYNFIG_COPYRIGHT) +MODULE_DESC_END + +MODULE_INVENTORY_BEGIN(mod_libavcodec) + BEGIN_TARGETS + TARGET(Target_LibAVCodec) + //TARGET_EXT(Target_LibAVCodec,"mpg") + //TARGET_EXT(Target_LibAVCodec,"mpeg") + //TARGET_EXT(Target_LibAVCodec,"mov") + TARGET_EXT(Target_LibAVCodec,"asf") + TARGET_EXT(Target_LibAVCodec,"rm") + //TARGET_EXT(Target_LibAVCodec,"mpg") + TARGET_EXT(Target_LibAVCodec,"wmv") + TARGET_EXT(Target_LibAVCodec,"yuv") + //TARGET_EXT(Target_LibAVCodec,"dv") + END_TARGETS + BEGIN_IMPORTERS +// IMPORTER(bmp_mptr) + END_IMPORTERS +MODULE_INVENTORY_END diff --git a/synfig-core/tags/stable/src/modules/mod_libavcodec/mod_libavcodec.nsh b/synfig-core/tags/stable/src/modules/mod_libavcodec/mod_libavcodec.nsh new file mode 100644 index 0000000..2ced97c --- /dev/null +++ b/synfig-core/tags/stable/src/modules/mod_libavcodec/mod_libavcodec.nsh @@ -0,0 +1,21 @@ +; The stuff to install +Section "mod_libavcodec" Sec_mod_libavcodec + +; SectionIn RO + + ; Set output path to the installation directory. + SetOutPath "$INSTDIR\lib\synfig\modules" + + ; Put file there + File /oname=mod_libavcodec.dll "src\modules\mod_libavcodec\.libs\libmod_libavcodec-0.dll" + + + FileOpen $0 $INSTDIR\etc\synfig_modules.cfg a + FileSeek $0 0 END + FileWrite $0 "mod_libavcodec" + FileWriteByte $0 "13" + FileWriteByte $0 "10" + FileClose $0 + +SectionEnd + diff --git a/synfig-core/tags/stable/src/modules/mod_libavcodec/mptr.cpp b/synfig-core/tags/stable/src/modules/mod_libavcodec/mptr.cpp new file mode 100644 index 0000000..5552793 --- /dev/null +++ b/synfig-core/tags/stable/src/modules/mod_libavcodec/mptr.cpp @@ -0,0 +1,72 @@ +/* === S Y N F I G ========================================================= */ +/*! \file mptr.cpp +** \brief writeme +** +** $Id$ +** +** \legal +** Copyright (c) 2002-2005 Robert B. Quattlebaum Jr., Adrian Bentley +** +** This package is free software; you can redistribute it and/or +** modify it under the terms of the GNU General Public License as +** published by the Free Software Foundation; either version 2 of +** the License, or (at your option) any later version. +** +** This package is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +** General Public License for more details. +** \endlegal +*/ +/* ========================================================================= */ + +/* === H E A D E R S ======================================================= */ + +#define SYNFIG_NO_ANGLE + +#ifdef USING_PCH +# include "pch.h" +#else +#ifdef HAVE_CONFIG_H +# include +#endif + +#include "mptr.h" +#include +#include + +#include +#include +#endif + +/* === U S I N G =========================================================== */ + +using namespace synfig; +using namespace std; +using namespace etl; + +/* === G L O B A L S ======================================================= */ + +SYNFIG_IMPORTER_INIT(Importer_LibAVCodec); +SYNFIG_IMPORTER_SET_NAME(Importer_LibAVCodec,"libav"); +SYNFIG_IMPORTER_SET_EXT(Importer_LibAVCodec,"avi"); +SYNFIG_IMPORTER_SET_VERSION(Importer_LibAVCodec,"0.1"); +SYNFIG_IMPORTER_SET_CVS_ID(Importer_LibAVCodec,"$Id$"); + +/* === M E T H O D S ======================================================= */ + + +Importer_LibAVCodec::Importer_LibAVCodec(const char *file): + filename(file) +{ +} + +Importer_LibAVCodec::~Importer_LibAVCodec() +{ +} + +bool +Importer_LibAVCodec::get_frame(synfig::Surface &surface,Time, synfig::ProgressCallback *cb) +{ + return false; +} diff --git a/synfig-core/tags/stable/src/modules/mod_libavcodec/mptr.h b/synfig-core/tags/stable/src/modules/mod_libavcodec/mptr.h new file mode 100644 index 0000000..f7cb41f --- /dev/null +++ b/synfig-core/tags/stable/src/modules/mod_libavcodec/mptr.h @@ -0,0 +1,57 @@ +/* === S Y N F I G ========================================================= */ +/*! \file mptr.h +** \brief writeme +** +** $Id$ +** +** \legal +** Copyright (c) 2002-2005 Robert B. Quattlebaum Jr., Adrian Bentley +** +** This package is free software; you can redistribute it and/or +** modify it under the terms of the GNU General Public License as +** published by the Free Software Foundation; either version 2 of +** the License, or (at your option) any later version. +** +** This package is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +** General Public License for more details. +** \endlegal +*/ +/* ========================================================================= */ + +/* === S T A R T =========================================================== */ + +#ifndef __SYNFIG_MPTR_H +#define __SYNFIG_MPTR_H + +/* === H E A D E R S ======================================================= */ + +#include +#include +#include +#include + +/* === M A C R O S ========================================================= */ + +/* === T Y P E D E F S ===================================================== */ + +/* === C L A S S E S & S T R U C T S ======================================= */ + +class Importer_LibAVCodec : public synfig::Importer +{ +SYNFIG_IMPORTER_MODULE_EXT + +private: + synfig::String filename; + +public: + Importer_LibAVCodec(const char *filename); + ~Importer_LibAVCodec(); + + virtual bool get_frame(synfig::Surface &surface,synfig::Time time, synfig::ProgressCallback *callback); +}; + +/* === E N D =============================================================== */ + +#endif diff --git a/synfig-core/tags/stable/src/modules/mod_libavcodec/trgt_av.cpp b/synfig-core/tags/stable/src/modules/mod_libavcodec/trgt_av.cpp new file mode 100644 index 0000000..93f0d08 --- /dev/null +++ b/synfig-core/tags/stable/src/modules/mod_libavcodec/trgt_av.cpp @@ -0,0 +1,940 @@ +/* === S Y N F I G ========================================================= */ +/*! \file trgt_av.cpp +** \brief \writeme +** +** $Id$ +** +** \legal +** Copyright (c) 2002-2005 Robert B. Quattlebaum Jr., Adrian Bentley +** +** This package is free software; you can redistribute it and/or +** modify it under the terms of the GNU General Public License as +** published by the Free Software Foundation; either version 2 of +** the License, or (at your option) any later version. +** +** This package is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +** General Public License for more details. +** \endlegal +*/ +/* ========================================================================= */ + +/* === H E A D E R S ======================================================= */ + +#define SYNFIG_NO_ANGLE + +#ifdef USING_PCH +# include "pch.h" +#else +#ifdef HAVE_CONFIG_H +# include +#endif + +#include "trgt_av.h" + +extern "C" +{ +#include +} + +#include + +#include +#include +#include +#endif + +#ifdef WIN32 +#define snprintf _snprintf +#endif + +/* === U S I N G =========================================================== */ + +using namespace synfig; +using namespace std; +using namespace etl; + +/* === I N F O ============================================================= */ + +SYNFIG_TARGET_INIT(Target_LibAVCodec); +SYNFIG_TARGET_SET_NAME(Target_LibAVCodec,"libav"); +SYNFIG_TARGET_SET_EXT(Target_LibAVCodec,"avi"); +SYNFIG_TARGET_SET_VERSION(Target_LibAVCodec,"0.1"); +SYNFIG_TARGET_SET_CVS_ID(Target_LibAVCodec,"$Id$"); + +/* === C L A S S E S & S T R U C T S ======================================= */ + +bool Target_LibAVCodec::registered = false; + +//for now compilation +//float STREAM_DURATION = 5.0f; + +struct VideoInfo +{ + int w,h; + int fps; + + int bitrate; +}; + +struct AudioInfo +{ + int samplerate; //in HZ + int samplesize; //in bytes +}; + +AVFrame *alloc_picture(int pix_fmt, int width, int height) +{ + AVFrame *picture; + uint8_t *picture_buf; + int size; + + picture = avcodec_alloc_frame(); + if (!picture) + return NULL; + size = avpicture_get_size(pix_fmt, width, height); + picture_buf = (uint8_t *)malloc(size); + if (!picture_buf) { + av_free(picture); + return NULL; + } + avpicture_fill((AVPicture *)picture, picture_buf, + pix_fmt, width, height); + return picture; +} + +void free_picture(AVFrame *pic) +{ + av_free(pic->data[0]); + av_free(pic); +} + +//the frame must be RGB24 +static void convert_surface_frame(AVFrame *pic, const Surface &s, const Gamma &gamma) +{ + unsigned int j; + Surface::const_pen p = s.begin(); + unsigned int w,h; + Color c; + + uint8_t *ptr; + int stride; + + w = s.size().x; + h = s.size().y; + + ptr = pic->data[0]; + stride = pic->linesize[0]; + + for(j = 0; j < h; j++, p.inc_y(), ptr += stride) + { + uint8_t *tptr = ptr; + + //use convert_color_format instead... + #if 0 + const int channels = 3; + + for(int i = 0; i < w; i++, p.inc_x(), tptr += channels) + { + c = p.get_value(); + + Color::value_type r = c.get_r(); + Color::value_type g = c.get_g(); + Color::value_type b = c.get_b(); + Color::value_type a = c.get_a(); + + //premultiply alpha + r *= a; + g *= a; + b *= a; + + //essentially treats it as if it has a background color of black + + //we must also clamp the rgb values [0,1] + r = min(1.0f,r); + g = min(1.0f,g); + b = min(1.0f,b); + + r = max(0.0f,r); + g = max(0.0f,g); + b = max(0.0f,b); + + //now scale to range of char [0,255] + tptr[0] = (int)(r*255); + tptr[1] = (int)(g*255); + tptr[2] = (int)(b*255); + } + + p.dec_x(w); + #else + + convert_color_format((unsigned char *)tptr,&p.get_value(),w,PF_RGB,gamma); + + #endif + } +} + +//Audio Streamer (abstracts the open, write and close operations for audio streams) +#if 0 +class AudioEncoder +{ +public: + + void *samples; + + vectoraudiobuffer; + + int audio_input_frame_size; + + bool open(AVFormatContext *formatc, AVStream *stream) + { + AVCodecContext *context; + AVCodec *codec; + + context = &stream->codec; + + //find audio encoder + codec = avcodec_find_encoder(context->codec_id); + if(!codec) + { + synfig::warning("audio-open: could not find codec"); + return 0; + } + + //open the codec + if(avcodec_open(context, codec) < 0) + { + synfig::warning("audio-open: could not open codec"); + return 0; + } + + /* hardcoded example for generating samples array*/ + /* + t = 0; + tincr = 2 * M_PI * 110.0 / c->sample_rate; + tincr2 = 2 * M_PI * 110.0 / c->sample_rate / c->sample_rate;*/ + + audiobuffer.resize(10000); + + /* ugly hack for PCM codecs (will be removed ASAP with new PCM + support to compute the input frame size in samples */ + if (context->frame_size <= 1) { + audio_input_frame_size = audiobuffer.size() / context->channels; + switch(stream->codec.codec_id) { + case CODEC_ID_PCM_S16LE: + case CODEC_ID_PCM_S16BE: + case CODEC_ID_PCM_U16LE: + case CODEC_ID_PCM_U16BE: + audio_input_frame_size >>= 1; + break; + default: + break; + } + } else { + audio_input_frame_size = context->frame_size; + } + + //hardcoded array + //samples = (int16_t *)malloc(audio_input_frame_size * 2 * c->channels); + + return true; + } + + bool write_frame(AVFormatContext *formatc, AVStream *stream, void *samples) + { + int size; + AVCodecContext *context; + + context = &stream->codec; + + //hardcoded in example + //must read in from somewhere... + //get_audio_frame(samples, audio_input_frame_size, c->channels); + + //encode the audio + const short int*samps=(const short int *)samples; //assuming it's set from somewhere right now + + size = avcodec_encode_audio(context, &audiobuffer[0], audiobuffer.size(), samps); + + //write the compressed audio to a file + if(av_write_frame(formatc, stream->index, &audiobuffer[0], size) != 0) + { + synfig::warning("audio-write_frame: unable to write the entire audio frame"); + return 0; + } + + return true; + } + + void close(AVFormatContext *formatc, AVStream *stream) + { + //we may also want to catch delayed frames from here (don't for now) + + if(stream) + { + avcodec_close(&stream->codec); + } + + //if(samples)av_free(samples); + audiobuffer.resize(0); + } +}; + +#endif + +class VideoEncoder +{ +public: + AVFrame *encodable; //for compressiong and output to a file (in compatible pixel format) + + vector videobuffer; + + bool startedencoding; + + //int stream_nb_frames; + + bool open(AVFormatContext *formatc, AVStream *stream) + { + if(!formatc || !stream) + { + synfig::warning("Attempt to open a video codec with a bad format or stream"); + return false; + } + + //codec and context + AVCodec *codec; + AVCodecContext *context; + + //get from inside stream + context = stream->codec; + + //search for desired codec (contained in the stream) + codec = avcodec_find_encoder(context->codec_id); + if(!codec) + { + synfig::warning("Open_video: could not find desired codec"); + return 0; + } + + //try to open the codec + if(avcodec_open(context, codec) < 0) + { + synfig::warning("open_video: could not open desired codec"); + return 0; + } + + videobuffer.resize(0); + if(!(formatc->oformat->flags & AVFMT_RAWPICTURE)) + { + //resize buffer to desired buffersize + videobuffer.resize(200000); //TODO: need to figure out a good size + } + + //allocate the base picture which will be used to encode + /*picture = alloc_picture(PIX_FMT_RGBA32, context->width, context->height); + if(!picture) + { + synfig::warning("open_video: could not allocate the picture to be encoded"); + return 0; + }*/ + + //if our output (rgb) needs to be translated to a different coordinate system, need a temporary picture in that color space + + /* Should use defaults of RGB + Possible formats: + PIX_FMT_RGB24 + PIX_FMT_BGR24 + PIX_FMT_RGBA32 //stored in cpu endianness (!!!!) + + (possibly translate directly to required coordinate systems later on... less error) + */ + encodable = NULL; + if(context->pix_fmt != PIX_FMT_RGB24) + { + encodable = alloc_picture(context->pix_fmt, context->width, context->height); + if(!encodable) + { + synfig::warning("open_video: could not allocate encodable picture"); + return 0; + } + } + + return true; + } + + //write a frame with the frame passed in + bool write_frame(AVFormatContext *formatc, AVStream *stream, AVFrame *pict) + { + if(!formatc || !stream) + { + synfig::warning("Attempt to open a video codec with a bad format or stream"); + return false; + } + + int size, + ret = 0; + AVCodecContext *context = stream->codec; + + /* + If pict is invalid (NULL), then we are done compressing frames and we are trying to get + the buffer cleared out (or if it's already in the right format) so no transform necessary + */ + if ( pict ) + { + startedencoding = true; + } + + + if ( pict && context->pix_fmt != PIX_FMT_RGB24 ) + { + //We're using RGBA at the moment, write custom conversion code later (get less accuracy errors) + img_convert((AVPicture *)encodable, context->pix_fmt, + (AVPicture *)pict, PIX_FMT_RGB24, + context->width, context->height); + + pict = encodable; + } + + AVPacket pkt; + av_init_packet(&pkt); + pkt.stream_index = stream->index; + pkt.data = (uint8_t *)pict; + pkt.size = sizeof(AVPicture); + if( context->coded_frame ) + pkt.pts = context->coded_frame->pts; + if( context->coded_frame && context->coded_frame->key_frame) + pkt.flags |= PKT_FLAG_KEY; + + //cludge for raw picture format (they said they'd fix) + if (formatc->oformat->flags & AVFMT_RAWPICTURE) + { + ret = av_write_frame(formatc, &pkt); + } + else + { + //encode our given image + size = avcodec_encode_video(context, &videobuffer[0], videobuffer.size(), pict); + + //if greater than zero we've got stuff to write + if (size > 0) + { + av_init_packet(&pkt); + pkt.stream_index = stream->index; + pkt.data = &videobuffer[0]; + pkt.size = size; + if( context->coded_frame ) + pkt.pts = context->coded_frame->pts; + if( context->coded_frame && context->coded_frame->key_frame) + pkt.flags |= PKT_FLAG_KEY; + + ret = av_write_frame(formatc, &pkt); + + //error detect - possibly throw later... + if(ret < 0) + { + synfig::warning("write_frame: error while writing video frame"); + return false; + } + } + //if 0, it was buffered (if invalid picture we don't have ANY data left) + else + { + //if we're clearing the buffers and there was no stuff to be written, we're done (like in codec example) + if(pict == NULL) + { + return false; + startedencoding = false; + } + + //buffered picture + } + } + + return true; + } + + void close(AVFormatContext *formatc, AVStream *stream) + { + if(stream) + avcodec_close(stream->codec); + + if (encodable) + { + free_picture(encodable); + encodable = 0; + } + + videobuffer.resize(0); + } +}; + +class Target_LibAVCodec::LibAVEncoder +{ +public: + + bool initialized; + + AVOutputFormat *format; //reference to global, do not delete + + AVFormatContext *formatc; + + AVStream *video_st; + //AVStream *audio_st; + + double video_pts; + //double audio_pts; + + VideoEncoder vid; + VideoInfo vInfo; + + /*AudioEncoder aud; + AudioInfo aInfo;*/ + + AVFrame *picture; //for encoding to RGB24 (perhaps RGBA later) + + int frame_count; + int num_frames; + + LibAVEncoder() + { + format = 0; + formatc = 0; + + //video settings + video_st = 0; + video_pts = 0; + + vid.encodable = 0; + //vid.stream_nb_frames = 2; //reasonable default + + initialized = false; + picture = 0; + + frame_count = 0; + num_frames = 0; + + //aud.samples = 0; + //audio_st = 0; + //audio_pts = 0; + } + + ~LibAVEncoder() + { + CleanUp(); + } + + bool Initialize(const char *filename, const char *typestring) + { + //guess if we have a type string, otherwise use filename + if (typestring) + { + //formatptr guess_format(type, filename, MIME type) + format = guess_format(typestring,NULL,NULL); + } + else + { + format = guess_format(NULL, filename, NULL); + } + + if(!format) + { + synfig::warning("Unable to Guess the output, defaulting to mpeg"); + format = guess_format("mpeg", NULL, NULL); + } + + if(!format) + { + synfig::warning("Unable to find output format"); + return 0; + } + + //allocate the output context + formatc = (AVFormatContext *)av_mallocz(sizeof(AVFormatContext)); + if(!formatc) + { + synfig::warning("Memory error\n"); + return 0; + } + //set the output format to the one we found + formatc->oformat = format; + + //print the output filename + snprintf(formatc->filename, sizeof(formatc->filename), "%s", filename); + + //initial + video_st = NULL; + //audio_st = NULL; + + //video stream + if(format->video_codec != CODEC_ID_NONE) + { + video_st = add_video_stream(format->video_codec,vInfo); + if(!video_st) + { + av_free(formatc); + } + } + + //audio stream + /*if(format->audio_codec != CODEC_ID_NONE) + { + audio_st = add_audio_stream(format->audio_codec,aInfo); + }*/ + + //set output parameters: required in ALL cases + + video_st->codec->time_base= (AVRational){1,vInfo.fps}; + video_st->codec->width = vInfo.w; + video_st->codec->height = vInfo.h; + video_st->codec->pix_fmt = PIX_FMT_YUV420P; + + //dump the formatting information as the file header + dump_format(formatc, 0, filename, 1); + + //open codecs and allocate buffers + if(video_st) + { + if(!vid.open(formatc, video_st)) + { + synfig::warning("Could not open video encoder"); + return 0; + } + } + /*if(audio_st) + { + if(!aud.open(formatc, audio_st)) + { + synfig::warning("Could not open audio encoder"); + return 0; + } + }*/ + + //open output file + if(!(format->flags & AVFMT_NOFILE)) + { + //use libav's file open function (what does it do differently????) + if(url_fopen(&formatc->pb, filename, URL_WRONLY) < 0) + { + synfig::warning("Unable to open file: %s", filename); + return 0; + } + } + + //allocate the picture to render to + //may have to retrieve the width, height from the codec... for resizing... + picture = alloc_picture(PIX_FMT_RGB24,vInfo.w,vInfo.h);//video_st->codec.width, video_st->codec.height); + if(!picture) + { + synfig::warning("Unable to allocate the temporary AVFrame surface"); + return 0; + } + + initialized = true; + //vInfo.w = video_st->codec.width; + //vInfo.h = video_st->codec.height; + + //write the stream header + av_write_header(formatc); + + return true; + } + + void CleanUp() + { + int i; + + if(picture) free_picture(picture); + + //do all the clean up file rendering + if(formatc && video_st) + { + //want to scan in delayed frames until no longer needed (TODO) + if(vid.startedencoding) while( vid.write_frame(formatc, video_st, 0) ); + + //may want to move this... probably to the end of the last frame... + av_write_trailer(formatc); + } + + //close codecs + if (video_st) + vid.close(formatc,video_st); + /*if (audio_st) + aud.close(formatc,audio_st);*/ + + /* write the trailer, if any */ + if(formatc) + { + /* free the streams */ + for(i = 0; i < formatc->nb_streams; i++) + { + av_freep(&formatc->streams[i]); + } + + if(!(format->flags & AVFMT_NOFILE)) + { + /* close the output file */ + url_fclose(&formatc->pb); + } + + /* free the stream */ + av_free(formatc); + } + + initialized = false; + + format = 0; + formatc = 0; + + //video settings + video_st = 0; + video_pts = 0; + + vid.encodable = 0; + //vid.stream_nb_frames = 2; //reasonable default + + initialized = false; + picture = 0; + } + + //create a video output stream + AVStream *add_video_stream(int codec_id, const VideoInfo &info) + { + AVCodecContext *context; + AVStream *st; + + st = av_new_stream(formatc, 0); + if(!st) + { + synfig::warning("video-add_stream: Unable to allocate stream"); + return 0; + } + + context = st->codec; + context->codec_id = (CodecID)codec_id; + context->codec_type = CODEC_TYPE_VIDEO; + + //PARAMETERS MUST BE PASSED IN SOMEHOW (ANOTHER FUNCTION PARAMETER???) + + /* resolution must be a multiple of two */ + context->width = info.w; + context->height = info.h; + + //have another way to input these + context->bit_rate = info.bitrate; //TODO: Make dependant on the quality + + /* frames per second */ + // FIXME: Port next two lines to recent libavcodec versions + //context->frame_rate = info.fps; + //context->frame_rate_base = 1; + + /* "High Quality" */ + context->mb_decision=FF_MB_DECISION_BITS; + + context->gop_size = info.fps/4; /* emit one intra frame every twelve frames at most */ + + //HACK: MPEG requires b frames be set... any better way to do this? + if (context->codec_id == CODEC_ID_MPEG1VIDEO || + context->codec_id == CODEC_ID_MPEG2VIDEO) + { + /* just for testing, we also add B frames */ + context->max_b_frames = 2; + } + + return st; + } + + // add an audio output stream + AVStream *add_audio_stream(int codec_id,const AudioInfo &aInfo) + { + AVCodecContext *context; + AVStream *stream; + + stream = av_new_stream(formatc, 1); + if(!stream) + { + synfig::warning("could not alloc stream"); + return 0; + } + + context = stream->codec; + context->codec_id = (CodecID)codec_id; + context->codec_type = CODEC_TYPE_AUDIO; + + /* put sample parameters */ + context->bit_rate = 64000; + context->sample_rate = 44100; + context->channels = 2; + + return stream; + } +}; + +/* === M E T H O D S ======================================================= */ + +Target_LibAVCodec::Target_LibAVCodec(const char *Filename): + filename(Filename) +{ + if(!registered) + { + registered = true; + av_register_all(); + } + set_remove_alpha(); + + data = new LibAVEncoder; +} + +Target_LibAVCodec::~Target_LibAVCodec() +{ + data->CleanUp(); +} + +bool +Target_LibAVCodec::set_rend_desc(RendDesc *given_desc) +{ + // This is where you can determine how you want stuff + // to be rendered! given_desc is the suggestion, and + // you need to modify it to suit the needs of the codec. + // ie: Making the pixel dimensions divisible by 8, etc... + + desc=*given_desc; + + //resize surface (round even) + int w = desc.get_w(); + int h = desc.get_h(); + Point tl = desc.get_tl(); + Point br = desc.get_br(); + Real pw = desc.get_pw(); + Real ph = desc.get_ph(); + + //resize to the size it should be... + //desc.set_subwindow(-offx/2,-offy/2, desc.get_w() - offx?(offx + 8):0, desc.get_h() - offy?(offy + 8):0); + + //if resolution is broken, change the size... or something + //budge to nearest pixel values + if(w&1) + { + w += 1; + tl[0] -= pw/2; + br[0] += pw/2; + } + + if(h&1) + { + h += 1; + tl[1] -= ph/2; + br[1] += ph/2; + } + + desc.set_w(w); + desc.set_h(h); + desc.set_tl(tl); + desc.set_br(br); + + data->vInfo.w = w; + data->vInfo.h = h; + + //may want to round frame rate + data->vInfo.fps = (int)floor(desc.get_frame_rate()+0.5); +#define MEGABYTES_PER_HOUR(x) (((x)*1024/3600*1024*8)/*/640*w/480*h*/) + data->vInfo.bitrate = MEGABYTES_PER_HOUR(400); + //data->vInfo.bitrate = 800000; //make customizable somehow + + desc.set_frame_rate(data->vInfo.fps); + + data->frame_count = desc.get_frame_start(); + data->num_frames = desc.get_frame_end()+1; //number of frames should be 1 greater than the last one + + surface.set_wh(data->vInfo.w,data->vInfo.h); + + return true; +} + +void +Target_LibAVCodec::end_frame() +{ + //AVStream *audio_st = data->audio_st; + AVStream *video_st = data->video_st; + + AVFormatContext *formatc = data->formatc; + + //double &audio_pts = data->audio_pts; + //double &video_pts = data->video_pts; + + //ignore audio for now + /*if (audio_st) + audio_pts = (double)audio_st->pts.val * formatc->pts_num / formatc->pts_den; + else + audio_pts = 0.0; + + if (video_st) + video_pts = (double)video_st->pts.val * formatc->pts_num / formatc->pts_den; + else + video_pts = 0.0;*/ + + //hardcoded crappiness + /*if ((!audio_st || audio_pts >= STREAM_DURATION) && + (!video_st || video_pts >= STREAM_DURATION)) + break;*/ + + if(data->frame_count >= data->num_frames) return; + + //copy the current surface to the buffer + if(data->picture)convert_surface_frame(data->picture,surface,gamma()); + + //encode the frame and write it to the file + if(!data->vid.write_frame(formatc,video_st,data->picture)) + { + synfig::warning("Unable to write a frame"); + } + + data->frame_count++; + + if(data->frame_count >= data->num_frames) + { + data->CleanUp(); + } + + /* write interleaved audio and video frames */ + /*if (!video_st || (video_st && audio_st && audio_pts < video_pts)) { + data->aud.write_frame(formatc,audio_st); + } else { + data->vid.write_frame(formatc,video_st); + }*/ +} + +bool +Target_LibAVCodec::start_frame(synfig::ProgressCallback *callback) +{ + //prepare all the color buffer stuff, etc. + + return true; +} + +Color * +Target_LibAVCodec::start_scanline(int scanline) +{ + return surface[scanline]; + + return 0; // This should kill the render process +} + +bool +Target_LibAVCodec::end_scanline() +{ + //don't need to do anything until the whole frame is done + return true; +} + +bool Target_LibAVCodec::init() +{ + //hardcode test for mpeg + if(!data->Initialize(filename.c_str(),NULL)) + { + synfig::warning("Unable to Initialize the audio video encoders"); + return 0; + } + + return true; +} diff --git a/synfig-core/tags/stable/src/modules/mod_libavcodec/trgt_av.h b/synfig-core/tags/stable/src/modules/mod_libavcodec/trgt_av.h new file mode 100644 index 0000000..a2df7d7 --- /dev/null +++ b/synfig-core/tags/stable/src/modules/mod_libavcodec/trgt_av.h @@ -0,0 +1,69 @@ +/* === S Y N F I G ========================================================= */ +/*! \file trgt_av.h +** \brief Template Header +** +** $Id$ +** +** \legal +** Copyright (c) 2002-2005 Robert B. Quattlebaum Jr., Adrian Bentley +** +** This package is free software; you can redistribute it and/or +** modify it under the terms of the GNU General Public License as +** published by the Free Software Foundation; either version 2 of +** the License, or (at your option) any later version. +** +** This package is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +** General Public License for more details. +** \endlegal +*/ +/* ========================================================================= */ + +/* === S T A R T =========================================================== */ + +#ifndef __SYNFIG_TRGT_H +#define __SYNFIG_TRGT_H + +/* === H E A D E R S ======================================================= */ + +#include +#include +#include +#include "synfig/surface.h" + +/* === M A C R O S ========================================================= */ + +/* === T Y P E D E F S ===================================================== */ + +/* === C L A S S E S & S T R U C T S ======================================= */ + +class Target_LibAVCodec : public synfig::Target_Scanline +{ + SYNFIG_TARGET_MODULE_EXT +private: + synfig::String filename; + + class LibAVEncoder; + LibAVEncoder *data; + + static bool registered; + + synfig::Surface surface; + +public: + Target_LibAVCodec(const char *filename); + virtual ~Target_LibAVCodec(); + + virtual bool init(); + + virtual bool set_rend_desc(synfig::RendDesc *desc); + virtual bool start_frame(synfig::ProgressCallback *cb); + virtual void end_frame(); + virtual synfig::Color * start_scanline(int scanline); + virtual bool end_scanline(); +}; + +/* === E N D =============================================================== */ + +#endif diff --git a/synfig-core/tags/stable/src/modules/mod_libavcodec/unmod_libavcodec.nsh b/synfig-core/tags/stable/src/modules/mod_libavcodec/unmod_libavcodec.nsh new file mode 100644 index 0000000..77acf4d --- /dev/null +++ b/synfig-core/tags/stable/src/modules/mod_libavcodec/unmod_libavcodec.nsh @@ -0,0 +1,8 @@ +Section "un.mod_libavcodec" + Delete "$INSTDIR\lib\synfig\modules\mod_libavcodec.dll" + RMDir "$INSTDIR\lib\synfig\modules" + RMDir "$INSTDIR\lib\synfig" + RMDir "$INSTDIR\lib" + RMDir "$INSTDIR" +SectionEnd + diff --git a/synfig-core/tags/stable/src/modules/mod_mng/Makefile.am b/synfig-core/tags/stable/src/modules/mod_mng/Makefile.am new file mode 100644 index 0000000..3a6b5e8 --- /dev/null +++ b/synfig-core/tags/stable/src/modules/mod_mng/Makefile.am @@ -0,0 +1,18 @@ +# $Id$ + +# FIXME: THIS DOES NOT ACTUALLY WORK YET + +MAINTAINERCLEANFILES=Makefile.in +INCLUDES = -I$(top_srcdir)/src + +moduledir=@MODULE_DIR@ + +if HAVE_LIBMNG +module_LTLIBRARIES = libmod_mng.la +libmod_mng_la_SOURCES = main.cpp trgt_mng.cpp trgt_mng.h +libmod_mng_la_LDFLAGS = -module @MNG_LIBS@ -no-undefined +libmod_mng_la_CXXFLAGS = @SYNFIG_CFLAGS@ +libmod_mng_la_LIBADD = -L../../synfig -lsynfig @SYNFIG_LIBS@ +else +endif +EXTRA_DIST= mod_mng.nsh unmod_mng.nsh diff --git a/synfig-core/tags/stable/src/modules/mod_mng/main.cpp b/synfig-core/tags/stable/src/modules/mod_mng/main.cpp new file mode 100644 index 0000000..f1ab11c --- /dev/null +++ b/synfig-core/tags/stable/src/modules/mod_mng/main.cpp @@ -0,0 +1,67 @@ +/* === S Y N F I G ========================================================= */ +/*! \file mod_mng/main.cpp +** \brief MNG plugin +** +** $Id$ +** +** \legal +** Copyright 2007 Paul Wise +** +** This package is free software; you can redistribute it and/or +** modify it under the terms of the GNU General Public License as +** published by the Free Software Foundation; either version 2 of +** the License, or (at your option) any later version. +** +** This package is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +** General Public License for more details. +** \endlegal +** +** === N O T E S =========================================================== +** +** FIXME: THIS DOES NOT ACTUALLY WORK YET +** +** ========================================================================= */ + +/* === H E A D E R S ======================================================= */ + +#define SYNFIG_MODULE + +#ifdef USING_PCH +# include "pch.h" +#else +#ifdef HAVE_CONFIG_H +# include +#endif + +#include +#include "trgt_mng.h" +/* FIXME: Implement MNG import +#include "mptr_mng.h" +*/ +#endif + +/* === E N T R Y P O I N T ================================================= */ + +MODULE_DESC_BEGIN(mod_mng) + MODULE_NAME("MNG Module (libmng)") +/* FIXME: Implement MNG import + MODULE_DESCRIPTION("Provides an MNG target and importer") +*/ + MODULE_DESCRIPTION("Provides an MNG target") + MODULE_AUTHOR("Paul Wise") + MODULE_VERSION("1.0") + MODULE_COPYRIGHT(SYNFIG_COPYRIGHT) +MODULE_DESC_END + +MODULE_INVENTORY_BEGIN(mod_mng) + BEGIN_TARGETS + TARGET(mng_trgt) + END_TARGETS +/* FIXME: implement MNG import + BEGIN_IMPORTERS + IMPORTER(mng_mptr) + END_IMPORTERS +*/ +MODULE_INVENTORY_END diff --git a/synfig-core/tags/stable/src/modules/mod_mng/mod_mng.nsh b/synfig-core/tags/stable/src/modules/mod_mng/mod_mng.nsh new file mode 100644 index 0000000..4986de7 --- /dev/null +++ b/synfig-core/tags/stable/src/modules/mod_mng/mod_mng.nsh @@ -0,0 +1,13 @@ +; FIXME: THIS DOES NOT ACTUALLY WORK YET + +Section "mod_mng" Sec_mod_mng + SetOutPath "$INSTDIR\lib\synfig\modules" + File /oname=mod_mng.dll "src\modules\mod_mng\.libs\libmod_mng-0.dll" + FileOpen $0 $INSTDIR\etc\synfig_modules.cfg a + FileSeek $0 0 END + FileWrite $0 "mod_mng" + FileWriteByte $0 "13" + FileWriteByte $0 "10" + FileClose $0 +SectionEnd + diff --git a/synfig-core/tags/stable/src/modules/mod_mng/trgt_mng.cpp b/synfig-core/tags/stable/src/modules/mod_mng/trgt_mng.cpp new file mode 100644 index 0000000..d925846 --- /dev/null +++ b/synfig-core/tags/stable/src/modules/mod_mng/trgt_mng.cpp @@ -0,0 +1,304 @@ +/* === S Y N F I G ========================================================= */ +/*! \file trgt_mng.cpp +** \brief MNG Target Module +** +** $Id$ +** +** \legal +** Copyright 2007 Paul Wise +** +** This package is free software; you can redistribute it and/or +** modify it under the terms of the GNU General Public License as +** published by the Free Software Foundation; either version 2 of +** the License, or (at your option) any later version. +** +** This package is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +** General Public License for more details. +** \endlegal +** +** === N O T E S =========================================================== +** +** FIXME: THIS DOES NOT ACTUALLY WORK YET +** +** You will need to read the PNG and MNG specs to understand this code +** +** ========================================================================= */ + +/* === H E A D E R S ======================================================= */ + +#define SYNFIG_TARGET + +#ifdef USING_PCH +# include "pch.h" +#else +#ifdef HAVE_CONFIG_H +# include +#endif + +#include "trgt_mng.h" +#include +#include +#include +#include +#include +#include + +#endif + +/* === M A C R O S ========================================================= */ + +using namespace synfig; +using namespace std; +using namespace etl; + +/* === G L O B A L S ======================================================= */ + +SYNFIG_TARGET_INIT(mng_trgt); +SYNFIG_TARGET_SET_NAME(mng_trgt,"mng"); +SYNFIG_TARGET_SET_EXT(mng_trgt,"mng"); +SYNFIG_TARGET_SET_VERSION(mng_trgt,"0.1"); +SYNFIG_TARGET_SET_CVS_ID(mng_trgt,"$Id$"); + +/* === M E T H O D S ======================================================= */ + +static mng_ptr MNG_DECL mng_alloc_proc(mng_size_t size){ + return (mng_ptr)calloc(1,size); +} + +static void MNG_DECL mng_free_proc(mng_ptr ptr, mng_size_t size) +{ + free(ptr); return; +} + +static mng_bool MNG_DECL mng_null_proc(mng_handle mng) +{ + synfig::error("mng_trgt: error: mng_null_proc"); + return MNG_TRUE; +} + +static mng_bool MNG_DECL mng_write_proc(mng_handle mng, mng_ptr buf, mng_uint32 size, mng_uint32* written) +{ + synfig::error("mng_trgt: error: mng_write_proc"); + FILE* file = (FILE*)mng_get_userdata (mng); + *written = fwrite(buf, 1, size, file); + return MNG_TRUE; +} + +static mng_bool MNG_DECL mng_error_proc( + mng_handle mng, mng_int32 error, mng_int8 severity, mng_chunkid chunkname, + mng_uint32 chunkseq, mng_int32 extra1, mng_int32 extra2, mng_pchar errortext){ + mng_trgt* me = (mng_trgt*)mng_get_userdata (mng); + fprintf(stderr,"mng_trgt: error: %s",errortext); + // me->ready=false; + return MNG_TRUE; +} + +mng_trgt::mng_trgt(const char *Filename): + filename(Filename) +{ + file=NULL; + buffer=NULL; + color_buffer=NULL; + zbuffer=NULL; + zbuffer_len=0; + ready=false; +} + +mng_trgt::~mng_trgt() +{ + synfig::error("mng_trgt: error: ~mng_trgt"); + if( mng != MNG_NULL){ + mng_putchunk_mend(mng); + if( mng_write(mng) != 0 ){ + mng_int8 severity; + mng_chunkid chunkname; + mng_uint32 chunkseq; + mng_int32 extra1; + mng_int32 extra2; + mng_pchar errortext; + mng_getlasterror(mng, &severity, &chunkname, &chunkseq, &extra1,&extra2, &errortext); + synfig::error("mng_trgt: error: couldn't write mng: %s",errortext); + } + mng_cleanup (&mng); + } + if( file != NULL ) fclose(file); file=NULL; + if( buffer != NULL ){ delete [] buffer; buffer = NULL; } + if( color_buffer != NULL ){ delete [] color_buffer; color_buffer = NULL; } + if( zbuffer != NULL ){ free(zbuffer); zbuffer = NULL; zbuffer_len = 0; } +} + +bool +mng_trgt::set_rend_desc(RendDesc *given_desc) +{ + desc=*given_desc; + imagecount=desc.get_frame_start(); + if(desc.get_frame_end()-desc.get_frame_start()>0) + multi_image=true; + else + multi_image=false; + return true; +} + + +bool +mng_trgt::init(){ + time_t t = time (NULL); + struct tm* gmt = gmtime(&t); + w=desc.get_w(); h=desc.get_h(); + //synfig::error("mng_trgt: init %d %d",w,h); + file = fopen(filename.c_str(), "wb"); + if( file == NULL ) goto cleanup_on_error; + mng = mng_initialize((mng_ptr)file, mng_alloc_proc, mng_free_proc, MNG_NULL); + if(mng == MNG_NULL) goto cleanup_on_error; + if( mng_setcb_errorproc(mng, mng_error_proc) != 0 ) goto cleanup_on_error; + if( mng_setcb_writedata(mng, mng_write_proc) != 0 ) goto cleanup_on_error; + if( mng_setcb_openstream(mng, mng_null_proc) != 0 ) goto cleanup_on_error; + if( mng_setcb_closestream(mng, mng_null_proc) != 0 ) goto cleanup_on_error; + if( mng_create(mng) != 0 ) goto cleanup_on_error; + if( mng_putchunk_mhdr(mng, w, h, multi_image?1000:0, 1, desc.get_frame_end()-desc.get_frame_start(), 0, 0) != 0 ) goto cleanup_on_error; + if( mng_putchunk_term(mng, MNG_TERMACTION_REPEAT, MNG_ITERACTION_LASTFRAME, 0, 0x7fffffff) != 0 ) goto cleanup_on_error; + if( mng_putchunk_text(mng, sizeof(MNG_TEXT_TITLE), MNG_TEXT_TITLE, get_canvas()->get_name().length(), const_cast(get_canvas()->get_name().c_str()) ) != 0 ) goto cleanup_on_error; + if( mng_putchunk_text(mng, sizeof(MNG_TEXT_DESCRIPTION), MNG_TEXT_DESCRIPTION, get_canvas()->get_description().length(), const_cast(get_canvas()->get_description().c_str()) ) != 0 ) goto cleanup_on_error; + if( mng_putchunk_text(mng, sizeof(MNG_TEXT_SOFTWARE), MNG_TEXT_SOFTWARE, sizeof("SYNFIG"), "SYNFIG" ) != 0 ) goto cleanup_on_error; + /* FIXME: not sure if this is correct */ + if( mng_putchunk_gama(mng, MNG_FALSE, (int)(1.0/gamma().get_gamma()*100000)) != 0 ) goto cleanup_on_error; + if( mng_putchunk_phyg(mng, MNG_FALSE,round_to_int(desc.get_x_res()),round_to_int(desc.get_y_res()),MNG_UNIT_METER) != 0 ) goto cleanup_on_error; + if( mng_putchunk_time(mng, gmt->tm_year + 1900, gmt->tm_mon + 1, gmt->tm_mday, gmt->tm_hour, gmt->tm_min, gmt->tm_sec) != 0 ) goto cleanup_on_error; + buffer=new unsigned char[4*w]; + if( buffer == NULL ) goto cleanup_on_error; + color_buffer=new Color[w]; + if( color_buffer == NULL ) goto cleanup_on_error; + return true; + +cleanup_on_error: + ready=false; + if( mng != MNG_NULL){ + mng_int8 severity; + mng_chunkid chunkname; + mng_uint32 chunkseq; + mng_int32 extra1; + mng_int32 extra2; + mng_pchar errortext; + mng_getlasterror (mng, &severity, &chunkname, &chunkseq, &extra1,&extra2, &errortext); + synfig::error("mng_trgt: libmng: %s",errortext); + mng_cleanup (&mng); + } + if( file && file!=stdout ) fclose(file); file=NULL; + if( buffer != NULL ){ delete [] buffer; buffer = NULL; } + if( color_buffer != NULL ){ delete [] color_buffer; color_buffer = NULL; } + return false; +} + +void +mng_trgt::end_frame() +{ + //synfig::error("mng_trgt: endf %d %d",w,h); + //synfig::error("mng_trgt: error: endframe"); + deflate(&zstream,Z_FINISH); + deflateEnd(&zstream); + if( mng != MNG_NULL ){ + mng_int8 severity; + mng_chunkid chunkname; + mng_uint32 chunkseq; + mng_int32 extra1; + mng_int32 extra2; + mng_pchar errortext; + mng_putchunk_idat(mng, zbuffer_len, zbuffer); + //mng_getlasterror (mng, &severity, &chunkname, &chunkseq, &extra1,&extra2, &errortext); + //synfig::error("mng_trgt: libmng: %s %d",errortext,zbuffer_len); + mng_putchunk_iend(mng); + //mng_getlasterror (mng, &severity, &chunkname, &chunkseq, &extra1,&extra2, &errortext); + //synfig::error("mng_trgt: libmng: %s %d",errortext); + } + imagecount++; + ready=false; +} + +bool +mng_trgt::start_frame(synfig::ProgressCallback *callback) +{ + //synfig::error("mng_trgt: startf %d %d",w,h); + //synfig::error("mng_trgt: error: startframe"); + /* + FIXME: figure out if we need this + mng_putchunk_fram(mng, + MNG_FALSE, + MNG_FRAMINGMODE_NOCHANGE, + 0, + NULL, + MNG_CHANGEDELAY_NO, + MNG_CHANGETIMOUT_NO, + MNG_CHANGECLIPPING_NO, + MNG_CHANGESYNCID_NO, + 0, + 0, + 0, + layer_offset_x, + layer_offset_x + layer_cols, + layer_offset_y, + layer_offset_y + layer_rows, + 0, + 0) + mng_getchunk_fram(mng_handle hHandle, + mng_handle hChunk, + mng_bool *bEmpty, + mng_uint8 *iMode, + mng_uint32 *iNamesize, + mng_pchar *zName, + mng_uint8 *iChangedelay, + mng_uint8 *iChangetimeout, + mng_uint8 *iChangeclipping, + mng_uint8 *iChangesyncid, + mng_uint32 *iDelay, + mng_uint32 *iTimeout, + mng_uint8 *iBoundarytype, + mng_int32 *iBoundaryl, + mng_int32 *iBoundaryr, + mng_int32 *iBoundaryt, + mng_int32 *iBoundaryb, + mng_uint32 *iCount, + mng_uint32p *pSyncids); + */ + if( mng == MNG_NULL ) return false; + if( mng_putchunk_defi(mng,0,MNG_DONOTSHOW_VISIBLE,MNG_ABSTRACT,MNG_FALSE,0,0,MNG_FALSE,0,0,0,0) != 0) return false; + if( mng_putchunk_ihdr(mng,w,h,MNG_BITDEPTH_8,MNG_COLORTYPE_RGBA,MNG_COMPRESSION_DEFLATE, 0/*MNG_FILTER_NO_DIFFERING*/,MNG_INTERLACE_NONE) != 0) return false; + zstream.zalloc = Z_NULL; + zstream.zfree = Z_NULL; + zstream.opaque = Z_NULL; + zstream.data_type = Z_BINARY; + if( deflateInit(&zstream, Z_DEFAULT_COMPRESSION) != Z_OK ) return false; + //zbuffer_len = deflateBound(&zstream,4*w*h); + if(zbuffer == NULL){ + zbuffer_len = 4*w*h; + zbuffer = (unsigned char*)realloc(zbuffer, zbuffer_len); + zstream.next_out = zbuffer; + zstream.avail_out = zbuffer_len; + } + ready=true; + return true; +} + +Color * +mng_trgt::start_scanline(int scanline) +{ + //synfig::error("mng_trgt: starts %d %d",w,h); + //synfig::error("mng_trgt: error: startscanline"); + return color_buffer; +} + +bool +mng_trgt::end_scanline() +{ + //synfig::error("mng_trgt: ends %d %d",w,h); + //synfig::error("mng_trgt: error: endscanline"); + if(!file || !ready) + return false; + convert_color_format(buffer, color_buffer, desc.get_w(), PF_RGB|PF_A, gamma()); + /* FIXME: Implement buffer management */ + zstream.next_in = buffer; + zstream.avail_in = 4*w; + deflate(&zstream,Z_NO_FLUSH); + return true; +} diff --git a/synfig-core/tags/stable/src/modules/mod_mng/trgt_mng.h b/synfig-core/tags/stable/src/modules/mod_mng/trgt_mng.h new file mode 100644 index 0000000..1d211c5 --- /dev/null +++ b/synfig-core/tags/stable/src/modules/mod_mng/trgt_mng.h @@ -0,0 +1,100 @@ +/*! ======================================================================== +** Synfig +** +** Copyright (c) 2007 Paul Wise +** +** This package is free software; you can redistribute it and/or +** modify it under the terms of the GNU General Public License as +** published by the Free Software Foundation; either version 2 of +** the License, or (at your option) any later version. +** +** This package is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +** General Public License for more details. +** +** === N O T E S =========================================================== +** +** FIXME: THIS DOES NOT ACTUALLY WORK YET +** +** ========================================================================= */ + +/* === S T A R T =========================================================== */ + +#ifndef __SYNFIG_TRGT_MNG_H +#define __SYNFIG_TRGT_MNG_H + +/* === H E A D E R S ======================================================= */ + +#include +#include +#include + +#include +#include + +#if !defined(MNG_SUPPORT_FULL) +#define MNG_SUPPORT_FULL 1 +#endif + +#if !defined(MNG_SUPPORT_READ) +#define MNG_SUPPORT_READ 1 +#endif + +#if !defined(MNG_SUPPORT_WRITE) +#define MNG_SUPPORT_WRITE 1 +#endif + +#if !defined(MNG_SUPPORT_DISPLAY) +#define MNG_SUPPORT_DISPLAY 1 +#endif + +#if !defined(MNG_ACCESS_CHUNKS) +#define MNG_ACCESS_CHUNKS 1 +#endif + +#include + +/* === M A C R O S ========================================================= */ + +/* === T Y P E D E F S ===================================================== */ + +/* === C L A S S E S & S T R U C T S ======================================= */ + +class mng_trgt : public synfig::Target_Scanline +{ + SYNFIG_TARGET_MODULE_EXT + +private: + + FILE *file; + int w,h; + mng_handle mng; + + bool multi_image,ready; + int imagecount; + synfig::String filename; + unsigned char *buffer; + synfig::Color *color_buffer; + + z_stream zstream; + unsigned char* zbuffer; + unsigned int zbuffer_len; + +public: + + mng_trgt(const char *filename); + virtual ~mng_trgt(); + + virtual bool set_rend_desc(synfig::RendDesc *desc); + virtual bool init(); + virtual bool start_frame(synfig::ProgressCallback *cb); + virtual void end_frame(); + + virtual synfig::Color * start_scanline(int scanline); + virtual bool end_scanline(); +}; + +/* === E N D =============================================================== */ + +#endif diff --git a/synfig-core/tags/stable/src/modules/mod_mng/unmod_mng.nsh b/synfig-core/tags/stable/src/modules/mod_mng/unmod_mng.nsh new file mode 100644 index 0000000..ddff595 --- /dev/null +++ b/synfig-core/tags/stable/src/modules/mod_mng/unmod_mng.nsh @@ -0,0 +1,6 @@ +; FIXME: THIS DOES NOT ACTUALLY WORK YET +Section "un.mod_mng" + Delete "$INSTDIR\lib\synfig\modules\mod_mng.dll" + RMDir "$INSTDIR" +SectionEnd + diff --git a/synfig-core/tags/stable/src/modules/mod_noise/Makefile.am b/synfig-core/tags/stable/src/modules/mod_noise/Makefile.am new file mode 100644 index 0000000..cd1c434 --- /dev/null +++ b/synfig-core/tags/stable/src/modules/mod_noise/Makefile.am @@ -0,0 +1,14 @@ +# $Id$ + + +MAINTAINERCLEANFILES=Makefile.in +INCLUDES = -I$(top_srcdir)/src + +moduledir=@MODULE_DIR@ + +module_LTLIBRARIES = libmod_noise.la +libmod_noise_la_SOURCES = random.cpp random.h distort.cpp distort.h noise.cpp noise.h main.cpp +libmod_noise_la_CXXFLAGS = @SYNFIG_CFLAGS@ +libmod_noise_la_LIBADD = -L../../synfig -lsynfig @SYNFIG_LIBS@ +libmod_noise_la_LDFLAGS = -module -no-undefined +EXTRA_DIST= mod_noise.nsh unmod_noise.nsh diff --git a/synfig-core/tags/stable/src/modules/mod_noise/distort.cpp b/synfig-core/tags/stable/src/modules/mod_noise/distort.cpp new file mode 100644 index 0000000..c9571d3 --- /dev/null +++ b/synfig-core/tags/stable/src/modules/mod_noise/distort.cpp @@ -0,0 +1,299 @@ +/* === S Y N F I G ========================================================= */ +/*! \file distort.cpp +** \brief blehh +** +** $Id$ +** +** \legal +** Copyright (c) 2002-2005 Robert B. Quattlebaum Jr., Adrian Bentley +** +** This package is free software; you can redistribute it and/or +** modify it under the terms of the GNU General Public License as +** published by the Free Software Foundation; either version 2 of +** the License, or (at your option) any later version. +** +** This package is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +** General Public License for more details. +** \endlegal +*/ +/* ========================================================================= */ + +/* === H E A D E R S ======================================================= */ + +#ifdef USING_PCH +# include "pch.h" +#else +#ifdef HAVE_CONFIG_H +# include +#endif + +#include "distort.h" + +#include +#include +#include +#include +#include +#include +#include +#include + +#endif + +/* === M A C R O S ========================================================= */ + +using namespace synfig; +using namespace std; +using namespace etl; + +/* === G L O B A L S ======================================================= */ + +SYNFIG_LAYER_INIT(NoiseDistort); +SYNFIG_LAYER_SET_NAME(NoiseDistort,"noise_distort"); +SYNFIG_LAYER_SET_LOCAL_NAME(NoiseDistort,_("Noise Distort")); +SYNFIG_LAYER_SET_CATEGORY(NoiseDistort,_("Distortions")); +SYNFIG_LAYER_SET_VERSION(NoiseDistort,"0.0"); +SYNFIG_LAYER_SET_CVS_ID(NoiseDistort,"$Id$"); + +/* === P R O C E D U R E S ================================================= */ + +/* === M E T H O D S ======================================================= */ + +NoiseDistort::NoiseDistort(): + size(1,1) +{ + set_blend_method(Color::BLEND_STRAIGHT); + smooth=2; + detail=4; + speed=0; + random.set_seed(time(NULL)); + turbulent=false; + displacement=Vector(0.25,0.25); +} + +inline Color +NoiseDistort::color_func(const Point &point, float supersample,Context context)const +{ + Color ret(0,0,0,0); + + float x(point[0]/size[0]*(1<1)vect[0]=1; + if(vect[1]<-1)vect[1]=-1;if(vect[1]>1)vect[1]=1; + + if(turbulent) + { + vect[0]=abs(vect[0]); + vect[1]=abs(vect[1]); + } + + x/=2.0f; + y/=2.0f; + } + + if(!turbulent) + { + vect[0]=vect[0]/2.0f+0.5f; + vect[1]=vect[1]/2.0f+0.5f; + } + vect[0]=(vect[0]-0.5f)*displacement[0]; + vect[1]=(vect[1]-0.5f)*displacement[1]; + + ret=context.get_color(point+vect); + } + return ret; +} + +inline float +NoiseDistort::calc_supersample(const synfig::Point &x, float pw,float ph)const +{ + return 0.0f; +} + +void +NoiseDistort::set_time(synfig::Context context, synfig::Time t)const +{ + curr_time=t; + context.set_time(t); +} + +void +NoiseDistort::set_time(synfig::Context context, synfig::Time t, const synfig::Point &point)const +{ + curr_time=t; + context.set_time(t,point); +} + +synfig::Layer::Handle +NoiseDistort::hit_check(synfig::Context context, const synfig::Point &point)const +{ + if(get_blend_method()==Color::BLEND_STRAIGHT && get_amount()>=0.5) + return const_cast(this); + if(get_amount()==0.0) + return context.hit_check(point); + if(color_func(point,0,context).get_a()>0.5) + return const_cast(this); + return false; +} + +bool +NoiseDistort::set_param(const String & param, const ValueBase &value) +{ + if(param=="seed" && value.same_as(int())) + { + random.set_seed(value.get(int())); + return true; + } + IMPORT(size); + IMPORT(speed); + IMPORT(smooth); + IMPORT(detail); + IMPORT(turbulent); + IMPORT(displacement); + return Layer_Composite::set_param(param,value); +} + +ValueBase +NoiseDistort::get_param(const String & param)const +{ + if(param=="seed") + return random.get_seed(); + EXPORT(size); + EXPORT(speed); + EXPORT(smooth); + EXPORT(detail); + EXPORT(displacement); + EXPORT(turbulent); + + EXPORT_NAME(); + EXPORT_VERSION(); + + return Layer_Composite::get_param(param); +} + +Layer::Vocab +NoiseDistort::get_param_vocab()const +{ + Layer::Vocab ret(Layer_Composite::get_param_vocab()); + + ret.push_back(ParamDesc("displacement") + .set_local_name(_("Displacement")) + ); + + ret.push_back(ParamDesc("size") + .set_local_name(_("Size")) + ); + ret.push_back(ParamDesc("seed") + .set_local_name(_("Random Seed")) + ); + ret.push_back(ParamDesc("smooth") + .set_local_name(_("Interpolation")) + .set_description(_("What type of interpolation to use")) + .set_hint("enum") + .add_enum_value(0,"nearest",_("Nearest Neighbor")) + .add_enum_value(1,"linear",_("Linear")) + .add_enum_value(2,"cosine",_("Cosine")) + .add_enum_value(3,"spline",_("Spline")) + .add_enum_value(4,"cubic",_("Cubic")) + ); + ret.push_back(ParamDesc("detail") + .set_local_name(_("Detail")) + ); + ret.push_back(ParamDesc("speed") + .set_local_name(_("Animation Speed")) + ); + ret.push_back(ParamDesc("turbulent") + .set_local_name(_("Turbulent")) + ); + + return ret; +} + +Color +NoiseDistort::get_color(Context context, const Point &point)const +{ + const Color color(color_func(point,0,context)); + + if(get_amount()==1.0 && get_blend_method()==Color::BLEND_STRAIGHT) + return color; + else + return Color::blend(color,context.get_color(point),get_amount(),get_blend_method()); +} + +Rect +NoiseDistort::get_bounding_rect(Context context)const +{ + if(is_disabled()) + return Rect::zero(); + + if(Color::is_onto(get_blend_method())) + return context.get_full_bounding_rect(); + + Rect bounds(context.get_full_bounding_rect().expand_x(displacement[0]).expand_y(displacement[1])); + + return bounds; +} + +/* +bool +NoiseDistort::accelerated_render(Context context,Surface *surface,int quality, const RendDesc &renddesc, ProgressCallback *cb)const +{ + SuperCallback supercb(cb,0,9500,10000); + + if(get_amount()==1.0 && get_blend_method()==Color::BLEND_STRAIGHT) + { + surface->set_wh(renddesc.get_w(),renddesc.get_h()); + } + else + { + if(!context.accelerated_render(surface,quality,renddesc,&supercb)) + return false; + if(get_amount()==0) + return true; + } + + + int x,y; + + Surface::pen pen(surface->begin()); + const Real pw(renddesc.get_pw()),ph(renddesc.get_ph()); + Point pos; + Point tl(renddesc.get_tl()); + const int w(surface->get_w()); + const int h(surface->get_h()); + + if(get_amount()==1.0 && get_blend_method()==Color::BLEND_STRAIGHT) + { + for(y=0,pos[1]=tl[1];yamount_complete(10000,10000)) + return false; + + return true; +} +*/ diff --git a/synfig-core/tags/stable/src/modules/mod_noise/distort.h b/synfig-core/tags/stable/src/modules/mod_noise/distort.h new file mode 100644 index 0000000..7777138 --- /dev/null +++ b/synfig-core/tags/stable/src/modules/mod_noise/distort.h @@ -0,0 +1,82 @@ +/* === S Y N F I G ========================================================= */ +/*! \file distort.h +** \brief Template Header +** +** $Id$ +** +** \legal +** Copyright (c) 2002-2005 Robert B. Quattlebaum Jr., Adrian Bentley +** +** This package is free software; you can redistribute it and/or +** modify it under the terms of the GNU General Public License as +** published by the Free Software Foundation; either version 2 of +** the License, or (at your option) any later version. +** +** This package is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +** General Public License for more details. +** \endlegal +*/ +/* ========================================================================= */ + +/* === S T A R T =========================================================== */ + +#ifndef __SYNFIG_NOISE_DISTORT_H +#define __SYNFIG_NOISE_DISTORT_H + +/* === H E A D E R S ======================================================= */ + +#include +#include +#include +#include +#include +#include "random.h" + +/* === M A C R O S ========================================================= */ + +/* === T Y P E D E F S ===================================================== */ + +/* === C L A S S E S & S T R U C T S ======================================= */ + +class NoiseDistort : public synfig::Layer_Composite +{ + SYNFIG_LAYER_MODULE_EXT + +private: + + synfig::Vector size; + + Random random; + int smooth; + int detail; + synfig::Real speed; + bool turbulent; + synfig::Vector displacement; + + //void sync(); + mutable synfig::Time curr_time; + + synfig::Color color_func(const synfig::Point &x, float supersample,synfig::Context context)const; + + float calc_supersample(const synfig::Point &x, float pw,float ph)const; + +public: + NoiseDistort(); + + virtual bool set_param(const synfig::String ¶m, const synfig::ValueBase &value); + virtual synfig::ValueBase get_param(const synfig::String ¶m)const; + virtual synfig::Color get_color(synfig::Context context, const synfig::Point &pos)const; + //virtual bool accelerated_render(synfig::Context context,synfig::Surface *surface,int quality, const synfig::RendDesc &renddesc, synfig::ProgressCallback *cb)const; + synfig::Layer::Handle hit_check(synfig::Context context, const synfig::Point &point)const; + virtual void set_time(synfig::Context context, synfig::Time time)const; + virtual void set_time(synfig::Context context, synfig::Time time, const synfig::Point &point)const; + virtual synfig::Rect get_bounding_rect(synfig::Context context)const; + + virtual Vocab get_param_vocab()const; +}; + +/* === E N D =============================================================== */ + +#endif diff --git a/synfig-core/tags/stable/src/modules/mod_noise/main.cpp b/synfig-core/tags/stable/src/modules/mod_noise/main.cpp new file mode 100644 index 0000000..058b317 --- /dev/null +++ b/synfig-core/tags/stable/src/modules/mod_noise/main.cpp @@ -0,0 +1,62 @@ +/* === S Y N F I G ========================================================= */ +/*! \file mod_noise/main.cpp +** \brief Template Header +** +** $Id$ +** +** \legal +** Copyright (c) 2002-2005 Robert B. Quattlebaum Jr., Adrian Bentley +** +** This package is free software; you can redistribute it and/or +** modify it under the terms of the GNU General Public License as +** published by the Free Software Foundation; either version 2 of +** the License, or (at your option) any later version. +** +** This package is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +** General Public License for more details. +** \endlegal +** +** === N O T E S =========================================================== +** +** ========================================================================= */ + +/* === H E A D E R S ======================================================= */ + +#define SYNFIG_MODULE + +#ifdef USING_PCH +# include "pch.h" +#else +#ifdef HAVE_CONFIG_H +# include +#endif + +#include +#include +#include +#include + +#include "noise.h" +#include "distort.h" +#include "random.h" + +#endif + +/* === E N T R Y P O I N T ================================================= */ + +MODULE_DESC_BEGIN(libmod_noise) + MODULE_NAME("Noise") + MODULE_DESCRIPTION("writeme") + MODULE_AUTHOR("Robert B. Quattlebaum") + MODULE_VERSION("1.0") + MODULE_COPYRIGHT(SYNFIG_COPYRIGHT) +MODULE_DESC_END + +MODULE_INVENTORY_BEGIN(libmod_noise) + BEGIN_LAYERS + LAYER(Noise) + LAYER(NoiseDistort) + END_LAYERS +MODULE_INVENTORY_END diff --git a/synfig-core/tags/stable/src/modules/mod_noise/mod_noise.nsh b/synfig-core/tags/stable/src/modules/mod_noise/mod_noise.nsh new file mode 100644 index 0000000..01efeda --- /dev/null +++ b/synfig-core/tags/stable/src/modules/mod_noise/mod_noise.nsh @@ -0,0 +1,21 @@ +; The stuff to install +Section "mod_noise" Sec_mod_noise + +; SectionIn RO + + ; Set output path to the installation directory. + SetOutPath "$INSTDIR\lib\synfig\modules" + + ; Put file there + File /oname=mod_noise.dll "src\modules\mod_noise\.libs\libmod_noise-0.dll" + + + FileOpen $0 $INSTDIR\etc\synfig_modules.cfg a + FileSeek $0 0 END + FileWrite $0 "mod_noise" + FileWriteByte $0 "13" + FileWriteByte $0 "10" + FileClose $0 + +SectionEnd + diff --git a/synfig-core/tags/stable/src/modules/mod_noise/noise.cpp b/synfig-core/tags/stable/src/modules/mod_noise/noise.cpp new file mode 100644 index 0000000..ce9852c --- /dev/null +++ b/synfig-core/tags/stable/src/modules/mod_noise/noise.cpp @@ -0,0 +1,345 @@ +/* === S Y N F I G ========================================================= */ +/*! \file noise.cpp +** \brief blehh +** +** $Id$ +** +** \legal +** Copyright (c) 2002-2005 Robert B. Quattlebaum Jr., Adrian Bentley +** +** This package is free software; you can redistribute it and/or +** modify it under the terms of the GNU General Public License as +** published by the Free Software Foundation; either version 2 of +** the License, or (at your option) any later version. +** +** This package is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +** General Public License for more details. +** \endlegal +*/ +/* ========================================================================= */ + +/* === H E A D E R S ======================================================= */ + +#ifdef USING_PCH +# include "pch.h" +#else +#ifdef HAVE_CONFIG_H +# include +#endif + +#include "noise.h" + +#include +#include +#include +#include +#include +#include +#include +#include + +#endif + +/* === M A C R O S ========================================================= */ + +using namespace synfig; +using namespace std; +using namespace etl; + +/* === G L O B A L S ======================================================= */ + +SYNFIG_LAYER_INIT(Noise); +SYNFIG_LAYER_SET_NAME(Noise,"noise"); +SYNFIG_LAYER_SET_LOCAL_NAME(Noise,_("Noise Gradient")); +SYNFIG_LAYER_SET_CATEGORY(Noise,_("Gradients")); +SYNFIG_LAYER_SET_VERSION(Noise,"0.0"); +SYNFIG_LAYER_SET_CVS_ID(Noise,"$Id$"); + +/* === P R O C E D U R E S ================================================= */ + +/* === M E T H O D S ======================================================= */ + +Noise::Noise(): + size(1,1), + gradient(Color::black(), Color::white()) +{ + smooth=2; + detail=4; + speed=0; + do_alpha=false; + random.set_seed(time(NULL)); + turbulent=false; + displacement=Vector(1,1); + do_displacement=false; + super_sample=false; +} + + + +inline Color +Noise::color_func(const Point &point, float pixel_size,Context context)const +{ + Color ret(0,0,0,0); + + float x(point[0]/size[0]*(1<1)amount=1; + + if(super_sample&&pixel_size) + { + amount2=random(smooth,0+(detail-i)*5,x2,y,t)+amount2*0.5; + if(amount2<-1)amount2=-1;if(amount2>1)amount2=1; + + amount3=random(smooth,0+(detail-i)*5,x,y2,t)+amount3*0.5; + if(amount3<-1)amount3=-1;if(amount3>1)amount3=1; + + if(turbulent) + { + amount2=abs(amount2); + amount3=abs(amount3); + } + + x2*=0.5f; + y2*=0.5f; + } + + if(do_alpha) + { + alpha=random(smooth,3+(detail-i)*5,x,y,t)+alpha*0.5; + if(alpha<-1)alpha=-1;if(alpha>1)alpha=1; + } + + if(turbulent) + { + amount=abs(amount); + alpha=abs(alpha); + } + + x*=0.5f; + y*=0.5f; + //t*=0.5f; + } + + if(!turbulent) + { + amount=amount/2.0f+0.5f; + alpha=alpha/2.0f+0.5f; + + if(super_sample&&pixel_size) + { + amount2=amount2/2.0f+0.5f; + amount3=amount3/2.0f+0.5f; + } + } + + if(super_sample && pixel_size) + ret=gradient(amount,max(amount3,max(amount,amount2))-min(amount3,min(amount,amount2))); + else + ret=gradient(amount); + + if(do_alpha) + ret.set_a(ret.get_a()*(alpha)); + } + return ret; +} + +inline float +Noise::calc_supersample(const synfig::Point &x, float pw,float ph)const +{ + return 0.0f; +} + +void +Noise::set_time(synfig::Context context, synfig::Time t)const +{ + curr_time=t; + context.set_time(t); +} + +void +Noise::set_time(synfig::Context context, synfig::Time t, const synfig::Point &point)const +{ + curr_time=t; + context.set_time(t,point); +} + +synfig::Layer::Handle +Noise::hit_check(synfig::Context context, const synfig::Point &point)const +{ + if(get_blend_method()==Color::BLEND_STRAIGHT && get_amount()>=0.5) + return const_cast(this); + if(get_amount()==0.0) + return context.hit_check(point); + if(color_func(point,0,context).get_a()>0.5) + return const_cast(this); + return false; +} + +bool +Noise::set_param(const String & param, const ValueBase &value) +{ + if(param=="seed" && value.same_as(int())) + { + random.set_seed(value.get(int())); + return true; + } + IMPORT(size); + IMPORT(speed); + IMPORT(smooth); + IMPORT(detail); + IMPORT(do_alpha); + IMPORT(gradient); + IMPORT(turbulent); + IMPORT(super_sample); + + return Layer_Composite::set_param(param,value); +} + +ValueBase +Noise::get_param(const String & param)const +{ + if(param=="seed") + return random.get_seed(); + EXPORT(size); + EXPORT(speed); + EXPORT(smooth); + EXPORT(detail); + EXPORT(do_alpha); + EXPORT(gradient); + EXPORT(turbulent) + EXPORT(super_sample); + + EXPORT_NAME(); + EXPORT_VERSION(); + + return Layer_Composite::get_param(param); +} + +Layer::Vocab +Noise::get_param_vocab()const +{ + Layer::Vocab ret(Layer_Composite::get_param_vocab()); + + ret.push_back(ParamDesc("gradient") + .set_local_name(_("Gradient")) + ); + ret.push_back(ParamDesc("seed") + .set_local_name(_("Random Seed")) + ); + ret.push_back(ParamDesc("size") + .set_local_name(_("Size")) + ); + ret.push_back(ParamDesc("smooth") + .set_local_name(_("Interpolation")) + .set_description(_("What type of interpolation to use")) + .set_hint("enum") + .add_enum_value(0,"nearest",_("Nearest Neighbor")) + .add_enum_value(1,"linear",_("Linear")) + .add_enum_value(2,"cosine",_("Cosine")) + .add_enum_value(3,"spline",_("Spline")) + .add_enum_value(4,"cubic",_("Cubic")) + ); + ret.push_back(ParamDesc("detail") + .set_local_name(_("Detail")) + ); + ret.push_back(ParamDesc("speed") + .set_local_name(_("Animation Speed")) + ); + ret.push_back(ParamDesc("turbulent") + .set_local_name(_("Turbulent")) + ); + ret.push_back(ParamDesc("do_alpha") + .set_local_name(_("Do Alpha")) + ); + ret.push_back(ParamDesc("super_sample") + .set_local_name(_("Super Sampling")) + ); + + return ret; +} + +Color +Noise::get_color(Context context, const Point &point)const +{ + const Color color(color_func(point,0,context)); + + if(get_amount()==1.0 && get_blend_method()==Color::BLEND_STRAIGHT) + return color; + else + return Color::blend(color,context.get_color(point),get_amount(),get_blend_method()); +} + +bool +Noise::accelerated_render(Context context,Surface *surface,int quality, const RendDesc &renddesc, ProgressCallback *cb)const +{ + SuperCallback supercb(cb,0,9500,10000); + + if(get_amount()==1.0 && get_blend_method()==Color::BLEND_STRAIGHT) + { + surface->set_wh(renddesc.get_w(),renddesc.get_h()); + } + else + { + if(!context.accelerated_render(surface,quality,renddesc,&supercb)) + return false; + if(get_amount()==0) + return true; + } + + + int x,y; + + Surface::pen pen(surface->begin()); + const Real pw(renddesc.get_pw()),ph(renddesc.get_ph()); + Point pos; + Point tl(renddesc.get_tl()); + const int w(surface->get_w()); + const int h(surface->get_h()); + float supersampleradius((abs(pw)+abs(ph))*0.5f); + if(quality>=8) + supersampleradius=0; + + if(get_amount()==1.0 && get_blend_method()==Color::BLEND_STRAIGHT) + { + for(y=0,pos[1]=tl[1];yamount_complete(10000,10000)) + return false; + + return true; +} diff --git a/synfig-core/tags/stable/src/modules/mod_noise/noise.h b/synfig-core/tags/stable/src/modules/mod_noise/noise.h new file mode 100644 index 0000000..8cb24b7 --- /dev/null +++ b/synfig-core/tags/stable/src/modules/mod_noise/noise.h @@ -0,0 +1,87 @@ +/* === S Y N F I G ========================================================= */ +/*! \file noise.h +** \brief Template Header +** +** $Id$ +** +** \legal +** Copyright (c) 2002-2005 Robert B. Quattlebaum Jr., Adrian Bentley +** +** This package is free software; you can redistribute it and/or +** modify it under the terms of the GNU General Public License as +** published by the Free Software Foundation; either version 2 of +** the License, or (at your option) any later version. +** +** This package is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +** General Public License for more details. +** \endlegal +*/ +/* ========================================================================= */ + +/* === S T A R T =========================================================== */ + +#ifndef __SYNFIG_NOISE_H +#define __SYNFIG_NOISE_H + +/* === H E A D E R S ======================================================= */ + +#include +#include + +#include +#include +#include +#include "random.h" + +/* === M A C R O S ========================================================= */ + +/* === T Y P E D E F S ===================================================== */ + +/* === C L A S S E S & S T R U C T S ======================================= */ + +class Noise : public synfig::Layer_Composite, public synfig::Layer_NoDeform +{ + SYNFIG_LAYER_MODULE_EXT + +private: + + synfig::Vector size; + + Random random; + int smooth; + int detail; + bool do_alpha; + synfig::Gradient gradient; + synfig::Real speed; + bool turbulent; + bool do_displacement; + synfig::Vector displacement; + + //void sync(); + mutable synfig::Time curr_time; + + bool super_sample; + + synfig::Color color_func(const synfig::Point &x, float supersample,synfig::Context context)const; + + float calc_supersample(const synfig::Point &x, float pw,float ph)const; + +public: + Noise(); + + virtual bool set_param(const synfig::String ¶m, const synfig::ValueBase &value); + virtual synfig::ValueBase get_param(const synfig::String ¶m)const; + virtual synfig::Color get_color(synfig::Context context, const synfig::Point &pos)const; + virtual bool accelerated_render(synfig::Context context,synfig::Surface *surface,int quality, const synfig::RendDesc &renddesc, synfig::ProgressCallback *cb)const; + synfig::Layer::Handle hit_check(synfig::Context context, const synfig::Point &point)const; + virtual void set_time(synfig::Context context, synfig::Time time)const; + virtual void set_time(synfig::Context context, synfig::Time time, const synfig::Point &point)const; + + virtual Vocab get_param_vocab()const; +}; + +/* === E N D =============================================================== */ + +#endif diff --git a/synfig-core/tags/stable/src/modules/mod_noise/random.cpp b/synfig-core/tags/stable/src/modules/mod_noise/random.cpp new file mode 100644 index 0000000..d84f97e --- /dev/null +++ b/synfig-core/tags/stable/src/modules/mod_noise/random.cpp @@ -0,0 +1,304 @@ +/* === S Y N F I G ========================================================= */ +/*! \file mod_noise/random.cpp +** \brief blehh +** +** $Id$ +** +** \legal +** Copyright (c) 2002-2005 Robert B. Quattlebaum Jr., Adrian Bentley +** +** This package is free software; you can redistribute it and/or +** modify it under the terms of the GNU General Public License as +** published by the Free Software Foundation; either version 2 of +** the License, or (at your option) any later version. +** +** This package is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +** General Public License for more details. +** \endlegal +*/ +/* ========================================================================= */ + +/* === H E A D E R S ======================================================= */ + +#ifdef USING_PCH +# include "pch.h" +#else +#ifdef HAVE_CONFIG_H +# include +#endif + +#include "random.h" +#include +#include +#include +#endif + +/* === M A C R O S ========================================================= */ + +#define PI (3.1415927) + +/* === G L O B A L S ======================================================= */ + +/* === P R O C E D U R E S ================================================= */ + +/* === M E T H O D S ======================================================= */ + +void +Random::set_seed(int x) +{ + seed_=x; +} + +float +Random::operator()(const int salt,const int x,const int y,const int t)const +{ + static const unsigned int a(21870); + static const unsigned int b(11213); + static const unsigned int c(36979); + static const unsigned int d(31337); + + quick_rng rng( + ( static_cast(x+y) * a ) ^ + ( static_cast(y+t) * b ) ^ + ( static_cast(t+x) * c ) ^ + ( static_cast(seed_+salt) * d ) + ); + + return rng.f() * 2.0f - 1.0f; +} + +float +Random::operator()(int smooth,int subseed,float xf,float yf,float tf)const +{ + int x((int)floor(xf)); + int y((int)floor(yf)); + int t((int)floor(tf)); + + switch(smooth) + { + case 4: // cubic + { + #define f(j,i,k) ((*this)(subseed,i,j,k)) + //Using catmull rom interpolation because it doesn't blur at all + //bezier curve with intermediate ctrl pts: 0.5/3(p(i+1) - p(i-1)) and similar + float xfa [4], tfa[4]; + + //precalculate indices (all clamped) and offset + const int xa[] = {x-1,x,x+1,x+2}; + + const int ya[] = {y-1,y,y+1,y+2}; + + const int ta[] = {t-1,t,t+1,t+2}; + + const float dx(xf-x); + const float dy(yf-y); + const float dt(tf-t); + + //figure polynomials for each point + const float txf[] = + { + 0.5*dx*(dx*(dx*(-1) + 2) - 1), //-t + 2t^2 -t^3 + 0.5*(dx*(dx*(3*dx - 5)) + 2), //2 - 5t^2 + 3t^3 + 0.5*dx*(dx*(-3*dx + 4) + 1), //t + 4t^2 - 3t^3 + 0.5*dx*dx*(dx-1) //-t^2 + t^3 + }; + + const float tyf[] = + { + 0.5*dy*(dy*(dy*(-1) + 2) - 1), //-t + 2t^2 -t^3 + 0.5*(dy*(dy*(3*dy - 5)) + 2), //2 - 5t^2 + 3t^3 + 0.5*dy*(dy*(-3*dy + 4) + 1), //t + 4t^2 - 3t^3 + 0.5*dy*dy*(dy-1) //-t^2 + t^3 + }; + + const float ttf[] = + { + 0.5*dt*(dt*(dt*(-1) + 2) - 1), //-t + 2t^2 -t^3 + 0.5*(dt*(dt*(3*dt - 5)) + 2), //2 - 5t^2 + 3t^3 + 0.5*dt*(dt*(-3*dt + 4) + 1), //t + 4t^2 - 3t^3 + 0.5*dt*dt*(dt-1) //-t^2 + t^3 + }; + + //evaluate polynomial for each row + for(int i = 0; i < 4; ++i) + { + for(int j = 0; j < 4; ++j) + { + tfa[j] = f(ya[i],xa[j],ta[0])*ttf[0] + f(ya[i],xa[j],ta[1])*ttf[1] + f(ya[i],xa[j],ta[2])*ttf[2] + f(ya[i],xa[j],ta[3])*ttf[3]; + } + xfa[i] = tfa[0]*txf[0] + tfa[1]*txf[1] + tfa[2]*txf[2] + tfa[3]*txf[3]; + } + + //return the cumulative column evaluation + return xfa[0]*tyf[0] + xfa[1]*tyf[1] + xfa[2]*tyf[2] + xfa[3]*tyf[3]; +#undef f + } + break; + + + case 5: // Fast Spline (non-animated) + { +#define P(x) (((x)>0)?((x)*(x)*(x)):0.0f) +#define R(x) ( P(x+2) - 4.0f*P(x+1) + 6.0f*P(x) - 4.0f*P(x-1) )*(1.0f/6.0f) +#define F(i,j) ((*this)(subseed,i+x,j+y)*(R((i)-a)*R(b-(j)))) +#define FT(i,j,k) ((*this)(subseed,i+x,j+y,k+t)*(R((i)-a)*R(b-(j))*R((k)-c))) +#define Z(i,j) ret+=F(i,j) +#define ZT(i,j,k) ret+=FT(i,j,k) +#define X(i,j) // placeholder... To make box more symmetric +#define XT(i,j,k) // placeholder... To make box more symmetric + + float a(xf-x), b(yf-y); + + // Interpolate + float ret(F(0,0)); + Z(-1,-1); Z(-1, 0); Z(-1, 1); Z(-1, 2); + Z( 0,-1); X( 0, 0); Z( 0, 1); Z( 0, 2); + Z( 1,-1); Z( 1, 0); Z( 1, 1); Z( 1, 2); + Z( 2,-1); Z( 2, 0); Z( 2, 1); Z( 2, 2); + + return ret; + } + + case 3: // Spline (animated) + { + float a(xf-x), b(yf-y), c(tf-t); + + // Interpolate + float ret(FT(0,0,0)); + ZT(-1,-1,-1); ZT(-1, 0,-1); ZT(-1, 1,-1); ZT(-1, 2,-1); + ZT( 0,-1,-1); ZT( 0, 0,-1); ZT( 0, 1,-1); ZT( 0, 2,-1); + ZT( 1,-1,-1); ZT( 1, 0,-1); ZT( 1, 1,-1); ZT( 1, 2,-1); + ZT( 2,-1,-1); ZT( 2, 0,-1); ZT( 2, 1,-1); ZT( 2, 2,-1); + + ZT(-1,-1, 0); ZT(-1, 0, 0); ZT(-1, 1, 0); ZT(-1, 2, 0); + ZT( 0,-1, 0); XT( 0, 0, 0); ZT( 0, 1, 0); ZT( 0, 2, 0); + ZT( 1,-1, 0); ZT( 1, 0, 0); ZT( 1, 1, 0); ZT( 1, 2, 0); + ZT( 2,-1, 0); ZT( 2, 0, 0); ZT( 2, 1, 0); ZT( 2, 2, 0); + + ZT(-1,-1, 1); ZT(-1, 0, 1); ZT(-1, 1, 1); ZT(-1, 2, 1); + ZT( 0,-1, 1); ZT( 0, 0, 1); ZT( 0, 1, 1); ZT( 0, 2, 1); + ZT( 1,-1, 1); ZT( 1, 0, 1); ZT( 1, 1, 1); ZT( 1, 2, 1); + ZT( 2,-1, 1); ZT( 2, 0, 1); ZT( 2, 1, 1); ZT( 2, 2, 1); + + ZT(-1,-1, 2); ZT(-1, 0, 2); ZT(-1, 1, 2); ZT(-1, 2, 2); + ZT( 0,-1, 2); ZT( 0, 0, 2); ZT( 0, 1, 2); ZT( 0, 2, 2); + ZT( 1,-1, 2); ZT( 1, 0, 2); ZT( 1, 1, 2); ZT( 1, 2, 2); + ZT( 2,-1, 2); ZT( 2, 0, 2); ZT( 2, 1, 2); ZT( 2, 2, 2); + + return ret; + +/* + + float dx=xf-x; + float dy=yf-y; + float dt=tf-t; + + float ret=0; + int i,j,h; + for(h=-1;h<=2;h++) + for(i=-1;i<=2;i++) + for(j=-1;j<=2;j++) + ret+=(*this)(subseed,i+x,j+y,h+t)*(R(i-dx)*R(j-dy)*R(h-dt)); + return ret; +*/ + } + break; +#undef X +#undef Z +#undef F +#undef P +#undef R + + case 2: // Cosine + if((float)t==tf) + { + int x((int)floor(xf)); + int y((int)floor(yf)); + float a=xf-x; + float b=yf-y; + a=(1.0f-cos(a*PI))*0.5f; + b=(1.0f-cos(b*PI))*0.5f; + float c=1.0-a; + float d=1.0-b; + int x2=x+1,y2=y+1; + return + (*this)(subseed,x,y,t)*(c*d)+ + (*this)(subseed,x2,y,t)*(a*d)+ + (*this)(subseed,x,y2,t)*(c*b)+ + (*this)(subseed,x2,y2,t)*(a*b); + } + else + { + float a=xf-x; + float b=yf-y; + float c=tf-t; + + a=(1.0f-cos(a*3.1415927))*0.5f; + b=(1.0f-cos(b*3.1415927))*0.5f; + + // We don't perform this on the time axis, otherwise we won't + // get smooth motion + //c=(1.0f-cos(c*3.1415927))*0.5f; + + float d=1.0-a; + float e=1.0-b; + float f=1.0-c; + + int x2=x+1,y2=y+1,t2=t+1; + + return + (*this)(subseed,x,y,t)*(d*e*f)+ + (*this)(subseed,x2,y,t)*(a*e*f)+ + (*this)(subseed,x,y2,t)*(d*b*f)+ + (*this)(subseed,x2,y2,t)*(a*b*f)+ + (*this)(subseed,x,y,t2)*(d*e*c)+ + (*this)(subseed,x2,y,t2)*(a*e*c)+ + (*this)(subseed,x,y2,t2)*(d*b*c)+ + (*this)(subseed,x2,y2,t2)*(a*b*c); + } + case 1: // Linear + if((float)t==tf) + { + int x((int)floor(xf)); + int y((int)floor(yf)); + float a=xf-x; + float b=yf-y; + float c=1.0-a; + float d=1.0-b; + int x2=x+1,y2=y+1; + return + (*this)(subseed,x,y,t)*(c*d)+ + (*this)(subseed,x2,y,t)*(a*d)+ + (*this)(subseed,x,y2,t)*(c*b)+ + (*this)(subseed,x2,y2,t)*(a*b); + } + else + { + + float a=xf-x; + float b=yf-y; + float c=tf-t; + + float d=1.0-a; + float e=1.0-b; + float f=1.0-c; + + int x2=x+1,y2=y+1,t2=t+1; + + return + (*this)(subseed,x,y,t)*(d*e*f)+ + (*this)(subseed,x2,y,t)*(a*e*f)+ + (*this)(subseed,x,y2,t)*(d*b*f)+ + (*this)(subseed,x2,y2,t)*(a*b*f)+ + (*this)(subseed,x,y,t2)*(d*e*c)+ + (*this)(subseed,x2,y,t2)*(a*e*c)+ + (*this)(subseed,x,y2,t2)*(d*b*c)+ + (*this)(subseed,x2,y2,t2)*(a*b*c); + } + default: + case 0: + return (*this)(subseed,x,y,t); + } +} diff --git a/synfig-core/tags/stable/src/modules/mod_noise/random.h b/synfig-core/tags/stable/src/modules/mod_noise/random.h new file mode 100644 index 0000000..3a2d0ed --- /dev/null +++ b/synfig-core/tags/stable/src/modules/mod_noise/random.h @@ -0,0 +1,52 @@ +/* === S Y N F I G ========================================================= */ +/*! \file mod_noise/random.h +** \brief Template Header +** +** $Id$ +** +** \legal +** Copyright (c) 2002-2005 Robert B. Quattlebaum Jr., Adrian Bentley +** +** This package is free software; you can redistribute it and/or +** modify it under the terms of the GNU General Public License as +** published by the Free Software Foundation; either version 2 of +** the License, or (at your option) any later version. +** +** This package is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +** General Public License for more details. +** \endlegal +*/ +/* ========================================================================= */ + +/* === S T A R T =========================================================== */ + +#ifndef __SYNFIG_RANDOM_H +#define __SYNFIG_RANDOM_H + +/* === H E A D E R S ======================================================= */ + +/* === M A C R O S ========================================================= */ + +/* === T Y P E D E F S ===================================================== */ + +/* === C L A S S E S & S T R U C T S ======================================= */ + + +#define POOL_SIZE (256) +class Random +{ + int seed_; +public: + + void set_seed(int x); + int get_seed()const { return seed_; } + + float operator()(int subseed,int x,int y=0, int t=0)const; + float operator()(int smooth,int subseed,float x,float y=0, float t=0)const; +}; + +/* === E N D =============================================================== */ + +#endif diff --git a/synfig-core/tags/stable/src/modules/mod_noise/unmod_noise.nsh b/synfig-core/tags/stable/src/modules/mod_noise/unmod_noise.nsh new file mode 100644 index 0000000..fe04e1f --- /dev/null +++ b/synfig-core/tags/stable/src/modules/mod_noise/unmod_noise.nsh @@ -0,0 +1,8 @@ +Section "un.mod_noise" + Delete "$INSTDIR\lib\synfig\modules\mod_noise.dll" + RMDir "$INSTDIR\lib\synfig\modules" + RMDir "$INSTDIR\lib\synfig" + RMDir "$INSTDIR\lib" + RMDir "$INSTDIR" +SectionEnd + diff --git a/synfig-core/tags/stable/src/modules/mod_openexr/Makefile.am b/synfig-core/tags/stable/src/modules/mod_openexr/Makefile.am new file mode 100644 index 0000000..37934cf --- /dev/null +++ b/synfig-core/tags/stable/src/modules/mod_openexr/Makefile.am @@ -0,0 +1,19 @@ +# $Id$ + + +MAINTAINERCLEANFILES=Makefile.in +INCLUDES = -I$(top_srcdir)/src + +moduledir=@MODULE_DIR@ + +if WITH_OPENEXR +module_LTLIBRARIES = libmod_openexr.la +libmod_openexr_la_SOURCES = main.cpp mptr_openexr.cpp mptr_openexr.h trgt_openexr.cpp trgt_openexr.h +libmod_openexr_la_LDFLAGS = -module @PNG_LIBS@ -no-undefined +libmod_openexr_la_LIBADD = -L../../synfig -lsynfig @SYNFIG_LIBS@ @OPENEXR_LIBS@ +libmod_openexr_la_CXXFLAGS = @SYNFIG_CFLAGS@ @OPENEXR_CFLAGS@ +else +endif + + +EXTRA_DIST= mod_openexr.nsh unmod_openexr.nsh diff --git a/synfig-core/tags/stable/src/modules/mod_openexr/main.cpp b/synfig-core/tags/stable/src/modules/mod_openexr/main.cpp new file mode 100644 index 0000000..41aadf7 --- /dev/null +++ b/synfig-core/tags/stable/src/modules/mod_openexr/main.cpp @@ -0,0 +1,60 @@ +/* === S Y N F I G ========================================================= */ +/*! \file mod_openexr/main.cpp +** \brief Template Header +** +** $Id$ +** +** \legal +** Copyright (c) 2002-2005 Robert B. Quattlebaum Jr., Adrian Bentley +** +** This package is free software; you can redistribute it and/or +** modify it under the terms of the GNU General Public License as +** published by the Free Software Foundation; either version 2 of +** the License, or (at your option) any later version. +** +** This package is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +** General Public License for more details. +** \endlegal +** +** === N O T E S =========================================================== +** +** ========================================================================= */ + +/* === H E A D E R S ======================================================= */ + +#define SYNFIG_MODULE + +#ifdef USING_PCH +# include "pch.h" +#else +#ifdef HAVE_CONFIG_H +# include +#else +#warning HAVE_CONFIG_H not defined! +#endif + +#include +#include "trgt_openexr.h" +#include "mptr_openexr.h" +#endif + +/* === E N T R Y P O I N T ================================================= */ + +MODULE_DESC_BEGIN(mod_openexr) + MODULE_NAME("OpenEXR Module") + MODULE_DESCRIPTION("Provides support for the EXR image format.") + MODULE_AUTHOR("Industrial Light & Magic") + MODULE_VERSION("1.0.4") + MODULE_COPYRIGHT("OpenEXR Library is Copyright (c) 2003 Lucas Digital Ltd. LLC.") +MODULE_DESC_END + +MODULE_INVENTORY_BEGIN(mod_openexr) + BEGIN_TARGETS + TARGET(exr_trgt) + END_TARGETS + BEGIN_IMPORTERS + IMPORTER(exr_mptr) + END_IMPORTERS +MODULE_INVENTORY_END diff --git a/synfig-core/tags/stable/src/modules/mod_openexr/mod_openexr.nsh b/synfig-core/tags/stable/src/modules/mod_openexr/mod_openexr.nsh new file mode 100644 index 0000000..ce43164 --- /dev/null +++ b/synfig-core/tags/stable/src/modules/mod_openexr/mod_openexr.nsh @@ -0,0 +1,26 @@ +; The stuff to install +Section "mod_openexr" Sec_mod_openexr + +; SectionIn RO + + ; Set output path to the installation directory. + SetOutPath "$INSTDIR\lib\synfig\modules" + + ; Put file there + File /oname=mod_openexr.dll "src\modules\mod_openexr\.libs\libmod_openexr-0.dll" + + SetOutPath "$INSTDIR\bin" + File /oname=libHalf-4.dll "src\modules\mod_openexr\.libs\libHalf-4.dll" + File /oname=libIlmImf-4.dll "src\modules\mod_openexr\.libs\libIlmImf-4.dll" + File /oname=libIlmThread-4.dll "src\modules\mod_openexr\.libs\libIlmThread-4.dll" + File /oname=libIex-4.dll "src\modules\mod_openexr\.libs\libIex-4.dll" + + FileOpen $0 $INSTDIR\etc\synfig_modules.cfg a + FileSeek $0 0 END + FileWrite $0 "mod_openexr" + FileWriteByte $0 "13" + FileWriteByte $0 "10" + FileClose $0 + +SectionEnd + diff --git a/synfig-core/tags/stable/src/modules/mod_openexr/mptr_openexr.cpp b/synfig-core/tags/stable/src/modules/mod_openexr/mptr_openexr.cpp new file mode 100644 index 0000000..ce45664 --- /dev/null +++ b/synfig-core/tags/stable/src/modules/mod_openexr/mptr_openexr.cpp @@ -0,0 +1,122 @@ +/* === S Y N F I G ========================================================= */ +/*! \file mptr_openexr.cpp +** \brief ppm Target Module +** +** $Id$ +** +** \legal +** Copyright (c) 2002-2005 Robert B. Quattlebaum Jr., Adrian Bentley +** +** This package is free software; you can redistribute it and/or +** modify it under the terms of the GNU General Public License as +** published by the Free Software Foundation; either version 2 of +** the License, or (at your option) any later version. +** +** This package is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +** General Public License for more details. +** \endlegal +** +** === N O T E S =========================================================== +** +** ========================================================================= */ + +/* === H E A D E R S ======================================================= */ + +#ifdef USING_PCH +# include "pch.h" +#else +#ifdef HAVE_CONFIG_H +# include +#endif + +#include "mptr_openexr.h" +#include +#include +#include +#include +#include +#include + +#include +#include +#include + +#endif + +/* === M A C R O S ========================================================= */ + +using namespace synfig; +using namespace std; +using namespace etl; + +/* === G L O B A L S ======================================================= */ + +SYNFIG_IMPORTER_INIT(exr_mptr); +SYNFIG_IMPORTER_SET_NAME(exr_mptr,"openexr"); +SYNFIG_IMPORTER_SET_EXT(exr_mptr,"exr"); +SYNFIG_IMPORTER_SET_VERSION(exr_mptr,"0.1"); +SYNFIG_IMPORTER_SET_CVS_ID(exr_mptr,"$Id$"); + +/* === M E T H O D S ======================================================= */ + +exr_mptr::exr_mptr(const char *file) +{ + filename=file; +} + +exr_mptr::~exr_mptr() +{ +} + +bool +exr_mptr::get_frame(synfig::Surface &out_surface,Time, synfig::ProgressCallback *cb) +{ + try + { + + Imf::RgbaInputFile in(filename.c_str()); + + int w = in.dataWindow().max.x - in.dataWindow().min.x + 1; + int h = in.dataWindow().max.y - in.dataWindow().min.y + 1; + //int dx = in.dataWindow().min.x; + //int dy = in.dataWindow().min.y; + +#ifdef USE_HALF_TYPE + out_surface.set_wh(w,h); + in.setFrameBuffer (reinterpret_cast(out_surface[0]), 1, w); + + in.readPixels (in.dataWindow().min.y, in.dataWindow().max.y); + +#else + etl::surface in_surface; + in_surface.set_wh(w,h); + in.setFrameBuffer (reinterpret_cast(in_surface[0]), 1, w); + + in.readPixels (in.dataWindow().min.y, in.dataWindow().max.y); + + int x; + int y; + out_surface.set_wh(w,h); + for(y=0;yerror(e.what()); + else synfig::error(e.what()); + return false; + } + + return true; +} diff --git a/synfig-core/tags/stable/src/modules/mod_openexr/mptr_openexr.h b/synfig-core/tags/stable/src/modules/mod_openexr/mptr_openexr.h new file mode 100644 index 0000000..2ab295f --- /dev/null +++ b/synfig-core/tags/stable/src/modules/mod_openexr/mptr_openexr.h @@ -0,0 +1,60 @@ +/* === S Y N F I G ========================================================= */ +/*! \file mptr_openexr.h +** \brief Template Header +** +** $Id$ +** +** \legal +** Copyright (c) 2002-2005 Robert B. Quattlebaum Jr., Adrian Bentley +** +** This package is free software; you can redistribute it and/or +** modify it under the terms of the GNU General Public License as +** published by the Free Software Foundation; either version 2 of +** the License, or (at your option) any later version. +** +** This package is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +** General Public License for more details. +** \endlegal +** +** === N O T E S =========================================================== +** +** ========================================================================= */ + +/* === S T A R T =========================================================== */ + +#ifndef __SYNFIG_MPTR_OPENEXR_H +#define __SYNFIG_MPTR_OPENEXR_H + +/* === H E A D E R S ======================================================= */ + +#include +#include +#include + +/* === M A C R O S ========================================================= */ + +/* === T Y P E D E F S ===================================================== */ + +/* === C L A S S E S & S T R U C T S ======================================= */ + +class exr_mptr : public synfig::Importer +{ + SYNFIG_IMPORTER_MODULE_EXT + +private: + synfig::String filename; +public: + exr_mptr(const char *filename); + ~exr_mptr(); + + + + virtual bool get_frame(synfig::Surface &surface,synfig::Time time, synfig::ProgressCallback *callback); + +}; + +/* === E N D =============================================================== */ + +#endif diff --git a/synfig-core/tags/stable/src/modules/mod_openexr/trgt_openexr.cpp b/synfig-core/tags/stable/src/modules/mod_openexr/trgt_openexr.cpp new file mode 100644 index 0000000..b4759b4 --- /dev/null +++ b/synfig-core/tags/stable/src/modules/mod_openexr/trgt_openexr.cpp @@ -0,0 +1,193 @@ +/* === S Y N F I G ========================================================= */ +/*! \file trgt_openexr.cpp +** \brief exr_trgt Target Module +** +** $Id$ +** +** \legal +** Copyright (c) 2002-2005 Robert B. Quattlebaum Jr., Adrian Bentley +** +** This package is free software; you can redistribute it and/or +** modify it under the terms of the GNU General Public License as +** published by the Free Software Foundation; either version 2 of +** the License, or (at your option) any later version. +** +** This package is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +** General Public License for more details. +** \endlegal +** +** === N O T E S =========================================================== +** +** ========================================================================= */ + +/* === H E A D E R S ======================================================= */ + +#define SYNFIG_TARGET + +#ifdef USING_PCH +# include "pch.h" +#else +#ifdef HAVE_CONFIG_H +# include +#endif + +#include "trgt_openexr.h" +#include +#include +#include +#include +#endif + +/* === M A C R O S ========================================================= */ + +using namespace synfig; +using namespace std; +using namespace etl; + +/* === G L O B A L S ======================================================= */ + +SYNFIG_TARGET_INIT(exr_trgt); +SYNFIG_TARGET_SET_NAME(exr_trgt,"openexr"); +SYNFIG_TARGET_SET_EXT(exr_trgt,"exr"); +SYNFIG_TARGET_SET_VERSION(exr_trgt,"1.0.4"); +SYNFIG_TARGET_SET_CVS_ID(exr_trgt,"$Id$"); + +/* === M E T H O D S ======================================================= */ + +bool +exr_trgt::ready() +{ + return (bool)exr_file; +} + +exr_trgt::exr_trgt(const char *Filename): + multi_image(false), + imagecount(0), + filename(Filename), + exr_file(0) +{ + buffer=0; +#ifndef USE_HALF_TYPE + buffer_color=0; +#endif + + // OpenEXR uses linear gamma + gamma().set_gamma(1.0); +} + +exr_trgt::~exr_trgt() +{ + if(exr_file) + delete exr_file; + + if(buffer) delete [] buffer; +#ifndef USE_HALF_TYPE + if(buffer_color) delete [] buffer_color; +#endif +} + +bool +exr_trgt::set_rend_desc(RendDesc *given_desc) +{ + //given_desc->set_pixel_format(PixelFormat((int)PF_RAW_COLOR)); + desc=*given_desc; + imagecount=desc.get_frame_start(); + if(desc.get_frame_end()-desc.get_frame_start()>0) + multi_image=true; + else + multi_image=false; + return true; +} + +bool +exr_trgt::start_frame(synfig::ProgressCallback *cb) +{ + int w=desc.get_w(),h=desc.get_h(); + + String frame_name; + + if(exr_file) + delete exr_file; + if(multi_image) + { + String + newfilename(filename), + ext(find(filename.begin(),filename.end(),'.'),filename.end()); + newfilename.erase(find(newfilename.begin(),newfilename.end(),'.'),newfilename.end()); + + newfilename+=etl::strprintf("%04d",imagecount)+ext; + frame_name=newfilename; + if(cb)cb->task(newfilename); + } + else + { + frame_name=filename; + if(cb)cb->task(filename); + } + exr_file=new Imf::RgbaOutputFile(frame_name.c_str(),w,h,Imf::WRITE_RGBA,desc.get_pixel_aspect()); +#ifndef USE_HALF_TYPE + if(buffer_color) delete [] buffer_color; + buffer_color=new Color[w]; +#endif + //if(buffer) delete [] buffer; + //buffer=new Imf::Rgba[w]; + out_surface.set_wh(w,h); + + return true; +} + +void +exr_trgt::end_frame() +{ + if(exr_file) + { + exr_file->setFrameBuffer(out_surface[0],1,desc.get_w()); + exr_file->writePixels(desc.get_h()); + + delete exr_file; + } + + exr_file=0; + + imagecount++; +} + +Color * +exr_trgt::start_scanline(int i) +{ + scanline=i; +#ifndef USE_HALF_TYPE + return reinterpret_cast(buffer_color); +#else + return reinterpret_cast(out_surface[scanline]); +// return reinterpret_cast(buffer); +#endif +} + +bool +exr_trgt::end_scanline() +{ + if(!ready()) + return false; + +#ifndef USE_HALF_TYPE + int i; + for(i=0;isetFrameBuffer(buffer,1,desc.get_w()); + //exr_file->writePixels(1); + + return true; +} diff --git a/synfig-core/tags/stable/src/modules/mod_openexr/trgt_openexr.h b/synfig-core/tags/stable/src/modules/mod_openexr/trgt_openexr.h new file mode 100644 index 0000000..9a4e13f --- /dev/null +++ b/synfig-core/tags/stable/src/modules/mod_openexr/trgt_openexr.h @@ -0,0 +1,78 @@ +/* === S Y N F I G ========================================================= */ +/*! \file trgt_openexr.h +** \brief Template Header +** +** $Id$ +** +** \legal +** Copyright (c) 2002-2005 Robert B. Quattlebaum Jr., Adrian Bentley +** +** This package is free software; you can redistribute it and/or +** modify it under the terms of the GNU General Public License as +** published by the Free Software Foundation; either version 2 of +** the License, or (at your option) any later version. +** +** This package is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +** General Public License for more details. +** \endlegal +** +** === N O T E S =========================================================== +** +** ========================================================================= */ + +/* === S T A R T =========================================================== */ + +#ifndef __SYNFIG_TRGT_OPENEXR_H +#define __SYNFIG_TRGT_OPENEXR_H + +/* === H E A D E R S ======================================================= */ + +#include +#include +#include +#include +#include +#include +#include + +/* === M A C R O S ========================================================= */ + +/* === T Y P E D E F S ===================================================== */ + +/* === C L A S S E S & S T R U C T S ======================================= */ + +class exr_trgt : public synfig::Target_Scanline +{ +public: +private: + bool multi_image; + int imagecount,scanline; + synfig::String filename; + Imf::RgbaOutputFile *exr_file; + Imf::Rgba *buffer; + etl::surface out_surface; +#ifndef USE_HALF_TYPE + synfig::Color *buffer_color; +#endif + + bool ready(); +public: + exr_trgt(const char *filename); + virtual ~exr_trgt(); + + virtual bool set_rend_desc(synfig::RendDesc *desc); + virtual bool start_frame(synfig::ProgressCallback *cb); + virtual void end_frame(); + + virtual synfig::Color * start_scanline(int scanline); + virtual bool end_scanline(void); + + + SYNFIG_TARGET_MODULE_EXT +}; + +/* === E N D =============================================================== */ + +#endif diff --git a/synfig-core/tags/stable/src/modules/mod_openexr/unmod_openexr.nsh b/synfig-core/tags/stable/src/modules/mod_openexr/unmod_openexr.nsh new file mode 100644 index 0000000..18db45a --- /dev/null +++ b/synfig-core/tags/stable/src/modules/mod_openexr/unmod_openexr.nsh @@ -0,0 +1,13 @@ +Section "un.mod_openexr" + Delete "$INSTDIR\bin\libIex-4.dll" + Delete "$INSTDIR\bin\libIlmImf-4.dll" + Delete "$INSTDIR\bin\libIlmThread-4.dll" + Delete "$INSTDIR\bin\libHalf-4.dll" + Delete "$INSTDIR\lib\synfig\modules\mod_openexr.dll" + RMDir "$INSTDIR\lib\synfig\modules" + RMDir "$INSTDIR\lib\synfig" + RMDir "$INSTDIR\lib" + RMDir "$INSTDIR\bin" + RMDir "$INSTDIR" +SectionEnd + diff --git a/synfig-core/tags/stable/src/modules/mod_particle/Makefile.am b/synfig-core/tags/stable/src/modules/mod_particle/Makefile.am new file mode 100644 index 0000000..c59343a --- /dev/null +++ b/synfig-core/tags/stable/src/modules/mod_particle/Makefile.am @@ -0,0 +1,14 @@ +# $Id$ + + +MAINTAINERCLEANFILES=Makefile.in +INCLUDES = -I$(top_srcdir)/src + +moduledir=@MODULE_DIR@ + +module_LTLIBRARIES = libmod_particle.la +libmod_particle_la_SOURCES = random.cpp random.h plant.cpp plant.h main.cpp +libmod_particle_la_CXXFLAGS = @SYNFIG_CFLAGS@ +libmod_particle_la_LIBADD = -L../../synfig -lsynfig @SYNFIG_LIBS@ +libmod_particle_la_LDFLAGS = -module -no-undefined +EXTRA_DIST= mod_particle.nsh unmod_particle.nsh diff --git a/synfig-core/tags/stable/src/modules/mod_particle/main.cpp b/synfig-core/tags/stable/src/modules/mod_particle/main.cpp new file mode 100644 index 0000000..c55ad9f --- /dev/null +++ b/synfig-core/tags/stable/src/modules/mod_particle/main.cpp @@ -0,0 +1,58 @@ +/* === S Y N F I G ========================================================= */ +/*! \file mod_particle/main.cpp +** \brief Template Header +** +** $Id$ +** +** \legal +** Copyright (c) 2002-2005 Robert B. Quattlebaum Jr., Adrian Bentley +** +** This package is free software; you can redistribute it and/or +** modify it under the terms of the GNU General Public License as +** published by the Free Software Foundation; either version 2 of +** the License, or (at your option) any later version. +** +** This package is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +** General Public License for more details. +** \endlegal +** +** === N O T E S =========================================================== +** +** ========================================================================= */ + +/* === H E A D E R S ======================================================= */ + +#define SYNFIG_MODULE + +#ifdef USING_PCH +# include "pch.h" +#else +#ifdef HAVE_CONFIG_H +# include +#endif + +#include +#include +#include + +#include "plant.h" + +#endif + +/* === E N T R Y P O I N T ================================================= */ + +MODULE_DESC_BEGIN(libmod_particle) + MODULE_NAME("Particle Systems") + MODULE_DESCRIPTION("writeme") + MODULE_AUTHOR("Robert B. Quattlebaum") + MODULE_VERSION("1.0") + MODULE_COPYRIGHT(SYNFIG_COPYRIGHT) +MODULE_DESC_END + +MODULE_INVENTORY_BEGIN(libmod_particle) + BEGIN_LAYERS + LAYER(Plant) + END_LAYERS +MODULE_INVENTORY_END diff --git a/synfig-core/tags/stable/src/modules/mod_particle/mod_particle.nsh b/synfig-core/tags/stable/src/modules/mod_particle/mod_particle.nsh new file mode 100644 index 0000000..908cdde --- /dev/null +++ b/synfig-core/tags/stable/src/modules/mod_particle/mod_particle.nsh @@ -0,0 +1,21 @@ +; The stuff to install +Section "mod_particle" Sec_mod_particle + +; SectionIn RO + + ; Set output path to the installation directory. + SetOutPath "$INSTDIR\lib\synfig\modules" + + ; Put file there + File /oname=mod_particle.dll "src\modules\mod_particle\.libs\libmod_particle-0.dll" + + + FileOpen $0 $INSTDIR\etc\synfig_modules.cfg a + FileSeek $0 0 END + FileWrite $0 "mod_particle" + FileWriteByte $0 "13" + FileWriteByte $0 "10" + FileClose $0 + +SectionEnd + diff --git a/synfig-core/tags/stable/src/modules/mod_particle/plant.cpp b/synfig-core/tags/stable/src/modules/mod_particle/plant.cpp new file mode 100644 index 0000000..6dbd106 --- /dev/null +++ b/synfig-core/tags/stable/src/modules/mod_particle/plant.cpp @@ -0,0 +1,530 @@ +/* === S Y N F I G ========================================================= */ +/*! \file plant.cpp +** \brief Template +** +** $Id$ +** +** \legal +** Copyright (c) 2002-2005 Robert B. Quattlebaum Jr., Adrian Bentley +** +** This package is free software; you can redistribute it and/or +** modify it under the terms of the GNU General Public License as +** published by the Free Software Foundation; either version 2 of +** the License, or (at your option) any later version. +** +** This package is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +** General Public License for more details. +** \endlegal +*/ +/* ========================================================================= */ + +/* === H E A D E R S ======================================================= */ + +#ifdef USING_PCH +# include "pch.h" +#else +#ifdef HAVE_CONFIG_H +# include +#endif + +#include +#include "plant.h" +#include +#include +#include +#include +#include +#include +#include +#include + +#include +#include +#include +#include + +#include + +#endif + +using namespace etl; + +/* === M A C R O S ========================================================= */ + +#define SAMPLES 300 +#define ROUND_END_FACTOR (4) +#define CUSP_THRESHOLD (0.15) +#define NO_LOOP_COOKIE synfig::Vector(84951305,7836658) +#define EPSILON (0.000000001) +#define CUSP_TANGENT_ADJUST (0.025) + +/* === G L O B A L S ======================================================= */ + +SYNFIG_LAYER_INIT(Plant); +SYNFIG_LAYER_SET_NAME(Plant,"plant"); +SYNFIG_LAYER_SET_LOCAL_NAME(Plant,_("Plant")); +SYNFIG_LAYER_SET_CATEGORY(Plant,_("Particle Systems")); +SYNFIG_LAYER_SET_VERSION(Plant,"0.1"); +SYNFIG_LAYER_SET_CVS_ID(Plant,"$Id$"); + +/* === P R O C E D U R E S ================================================= */ + +/* === M E T H O D S ======================================================= */ + + +Plant::Plant(): + split_angle(Angle::deg(10)), + gravity(0,-0.1), + velocity(0.3), + step(0.01), + sprouts(10) +{ + bounding_rect=Rect::zero(); + random_factor=0.2; + random.set_seed(time(NULL)); + + bline.push_back(BLinePoint()); + bline.push_back(BLinePoint()); + bline.push_back(BLinePoint()); + bline[0].set_vertex(Point(0,1)); + bline[1].set_vertex(Point(0,-1)); + bline[2].set_vertex(Point(1,0)); + bline[0].set_tangent(bline[1].get_vertex()-bline[2].get_vertex()*0.5f); + bline[1].set_tangent(bline[2].get_vertex()-bline[0].get_vertex()*0.5f); + bline[2].set_tangent(bline[0].get_vertex()-bline[1].get_vertex()*0.5f); + bline[0].set_width(1.0f); + bline[1].set_width(1.0f); + bline[2].set_width(1.0f); + bline_loop=true; + mass=(0.5); + splits=5; + drag=0.1; + size=0.015; + sync(); + size_as_alpha=false; +} + +void +Plant::branch(int n,int depth,float t, float stunt_growth, synfig::Point position,synfig::Vector vel)const +{ + float next_split((1.0-t)/(splits-depth)+t/*+random_factor*random(40+depth,t*splits,0,0)/splits*/); + for(;t=1.0-stunt_growth)return; + + synfig::Real sin_v=synfig::Angle::cos(split_angle).get(); + synfig::Real cos_v=synfig::Angle::sin(split_angle).get(); + + synfig::Vector velocity1(vel[0]*sin_v-vel[1]*cos_v+random_factor*random(2,30+n+depth,t*splits,0.0f,0.0f),vel[0]*cos_v+vel[1]*sin_v+random_factor*random(2,32+n+depth,t*splits,0.0f,0.0f)); + synfig::Vector velocity2(vel[0]*sin_v+vel[1]*cos_v+random_factor*random(2,31+n+depth,t*splits,0.0f,0.0f),-vel[0]*cos_v+vel[1]*sin_v+random_factor*random(2,33+n+depth,t*splits,0.0f,0.0f)); + + Plant::branch(n,depth+1,t,stunt_growth,position,velocity1); + Plant::branch(n,depth+1,t,stunt_growth,position,velocity2); +} + +void +Plant::calc_bounding_rect()const +{ + std::vector::const_iterator iter,next; + + bounding_rect=Rect::zero(); + + // Bline must have at least 2 points in it + if(bline.size()<=2) + return; + + next=bline.begin(); + + if(bline_loop) + iter=--bline.end(); + else + iter=next++; + + for(;next!=bline.end();iter=next++) + { + bounding_rect.expand(iter->get_vertex()); + bounding_rect.expand(next->get_vertex()); + bounding_rect.expand(iter->get_vertex()+iter->get_tangent2()*0.3333333333333); + bounding_rect.expand(next->get_vertex()-next->get_tangent1()*0.3333333333333); + bounding_rect.expand(next->get_vertex()+next->get_tangent2()*velocity); + } + bounding_rect.expand_x(gravity[0]); + bounding_rect.expand_y(gravity[1]); + bounding_rect.expand_x(size); + bounding_rect.expand_y(size); +} + +void +Plant::sync()const +{ + particle_list.clear(); + + bounding_rect=Rect::zero(); + + // Bline must have at least 2 points in it + if(bline.size()<=2) + return; + + std::vector::const_iterator iter,next; + + etl::hermite curve; + + Real step(abs(this->step)); + + int seg(0); + + next=bline.begin(); + + if(bline_loop) + iter=--bline.end(); + else + iter=next++; + + for(;next!=bline.end();iter=next++,seg++) + { + curve.p1()=iter->get_vertex(); + curve.t1()=iter->get_tangent2(); + curve.p2()=next->get_vertex(); + curve.t2()=next->get_tangent1(); + curve.sync(); + etl::derivative > deriv(curve); + + Real f; + int i(0), b(round_to_int((1.0/step)/(float)sprouts-1)); + if(b<=0)b=1; + for(f=0.0;f<1.0;f+=step,i++) + { + Point point(curve(f)); + + particle_list.push_back(Particle( + point, + gradient(0) + )); + + bounding_rect.expand(point); + + Real stunt_growth(random(2,i,f+seg,0.0f,0.0f)/2.0+0.5); + stunt_growth*=stunt_growth; + + Vector branch_velocity(deriv(f).norm()*velocity); + + branch_velocity[0]+=random_factor*random(2,1,f*splits,0.0f,0.0f); + branch_velocity[1]+=random_factor*random(2,2,f*splits,0.0f,0.0f); + + if(i%b==0) + branch( + i, + 0, + 0, // time + stunt_growth, // stunt growth + point,branch_velocity + ); + } + } + + needs_sync_=false; +} + +bool +Plant::set_param(const String & param, const ValueBase &value) +{ + if(param=="bline" && value.get_type()==ValueBase::TYPE_LIST) + { + bline=value; + bline_loop=value.get_loop(); + needs_sync_=true; + + return true; + } + if(param=="seed" && value.same_as(int())) + { + random.set_seed(value.get(int())); + needs_sync_=true; + return true; + } + IMPORT_PLUS(split_angle,needs_sync_=true); + IMPORT_PLUS(gravity,needs_sync_=true); + IMPORT_PLUS(gradient,needs_sync_=true); + IMPORT_PLUS(velocity,needs_sync_=true); + IMPORT_PLUS(step,needs_sync_=true); + IMPORT_PLUS(splits,needs_sync_=true); + IMPORT_PLUS(sprouts,needs_sync_=true); + IMPORT_PLUS(random_factor,needs_sync_=true); + IMPORT_PLUS(drag,needs_sync_=true); + IMPORT(size); + IMPORT(size_as_alpha); + + return Layer_Composite::set_param(param,value); +} +/* +void +Plant::set_time(Context context, Time time)const +{ + if(needs_sync==true) + { + sync(); + needs_sync_=false; + } + //const_cast(this)->sync(); + context.set_time(time); +} + +void +Plant::set_time(Context context, Time time, Vector pos)const +{ + if(needs_sync==true) + { + sync(); + needs_sync_=false; + } + //const_cast(this)->sync(); + context.set_time(time,pos); +} +*/ +ValueBase +Plant::get_param(const String& param)const +{ + if(param=="seed") + return random.get_seed(); + EXPORT(bline); + EXPORT(split_angle); + EXPORT(gravity); + EXPORT(velocity); + EXPORT(step); + EXPORT(gradient); + EXPORT(splits); + EXPORT(sprouts); + EXPORT(random_factor); + EXPORT(drag); + EXPORT(size); + + EXPORT(size_as_alpha); + + EXPORT_NAME(); + EXPORT_VERSION(); + + return Layer_Composite::get_param(param); +} + +Layer::Vocab +Plant::get_param_vocab()const +{ + Layer::Vocab ret(Layer_Composite::get_param_vocab()); + + ret.push_back(ParamDesc("bline") + .set_local_name(_("Vertices")) + //.set_origin("offset") + //.set_scalar("width") + .set_description(_("A list of BLine Points")) + ); + + ret.push_back(ParamDesc("gradient") + .set_local_name(_("Gradient")) + ); + + ret.push_back(ParamDesc("split_angle") + .set_local_name(_("Split Angle")) + ); + + ret.push_back(ParamDesc("gravity") + .set_local_name(_("Gravity")) + .set_is_distance() + ); + + ret.push_back(ParamDesc("velocity") + .set_local_name(_("Velocity")) + ); + + ret.push_back(ParamDesc("size") + .set_local_name(_("Stem Size")) + .set_is_distance() + ); + + ret.push_back(ParamDesc("size_as_alpha") + .set_local_name(_("SizeAsAlpha")) + ); + + ret.push_back(ParamDesc("step") + .set_local_name(_("Step")) + ); + + ret.push_back(ParamDesc("seed") + .set_local_name(_("Seed")) + ); + + ret.push_back(ParamDesc("splits") + .set_local_name(_("Splits")) + ); + + ret.push_back(ParamDesc("sprouts") + .set_local_name(_("Sprouts")) + ); + + ret.push_back(ParamDesc("random_factor") + .set_local_name(_("Random Factor")) + ); + + ret.push_back(ParamDesc("drag") + .set_local_name(_("Drag")) + ); + + + return ret; +} + +bool +Plant::accelerated_render(Context context,Surface *surface,int quality, const RendDesc &renddesc, ProgressCallback *cb)const +{ + bool ret(context.accelerated_render(surface,quality,renddesc,cb)); + if(is_disabled() || !ret) + return ret; + + Surface dest_surface; + dest_surface.set_wh(surface->get_w(),surface->get_h()); + dest_surface.clear(); + + const Point tl(renddesc.get_tl()); + const Point br(renddesc.get_br()); + + const int w(renddesc.get_w()); + const int h(renddesc.get_h()); + + // Width and Height of a pixel + const Real pw = (br[0] - tl[0]) / w; + const Real ph = (br[1] - tl[1]) / h; + + if(needs_sync_==true) + sync(); + + std::vector::reverse_iterator iter; + const float size_factor(1); + float radius(size_factor*size*sqrt(1.0f/(abs(pw)*abs(ph)))); + + if(radius>1.0f) + { + radius*=1.0; + int x1,y1,x2,y2; + for(iter=particle_list.rbegin();iter!=particle_list.rend();++iter) + { + float radius(radius); + Color color(iter->color); + if(size_as_alpha) + { + radius*=color.get_a(); + color.set_a(1); + } + + x1=ceil_to_int((iter->point[0]-tl[0])/pw-(radius*0.5)); + y1=ceil_to_int((iter->point[1]-tl[1])/ph-(radius*0.5)); + x2=x1+round_to_int(radius); + y2=y1+round_to_int(radius); + + if(x1>=surface->get_w() || y1>=surface->get_h()) + continue; + + if(x2<0 || y2<0) + continue; + + if(x2>=surface->get_w()) + x2=surface->get_w(); + if(y2>=surface->get_h()) + y2=surface->get_h(); + + if(x1<0) + x1=0; + if(y1<0) + y1=0; + + int w(min(round_to_int(radius),x2-x1)); + int h(min(round_to_int(radius),y2-y1)); + + if(w<=0 || h<=0) + continue; + + Surface::alpha_pen surface_pen(dest_surface.get_pen(x1,y1),1.0f); + + dest_surface.fill(color,surface_pen,w,h); + } + } + else + { + //radius/=0.01; + radius*=sqrt(step)*12.0f; + int x,y; + float a,b,c,d; + for(iter=particle_list.rbegin();iter!=particle_list.rend();++iter) + { + float radius(radius); + Color color(iter->color); + if(size_as_alpha) + { + radius*=color.get_a(); + color.set_a(1); + } + + x=floor_to_int((iter->point[0]-tl[0])/pw-0.5f); + y=floor_to_int((iter->point[1]-tl[1])/ph-0.5f); + + if(x>=surface->get_w()-1 || y>=surface->get_h()-1 || x<0 || y<0) + { + continue; + } + + a=((iter->point[0]-tl[0])/pw-0.5f-x)*radius; + b=((iter->point[1]-tl[1])/ph-0.5f-y)*radius; + c=radius-a; + d=radius-b; + + Surface::alpha_pen surface_pen(dest_surface.get_pen(x,y),1.0f); + + surface_pen.set_alpha(c*d); + surface_pen.put_value(color); + surface_pen.inc_x(); + surface_pen.set_alpha(a*d); + surface_pen.put_value(color); + surface_pen.inc_y(); + surface_pen.set_alpha(a*b); + surface_pen.put_value(color); + surface_pen.dec_x(); + surface_pen.set_alpha(c*b); + surface_pen.put_value(color); + } + } + + Surface::alpha_pen pen(surface->get_pen(0,0),get_amount(),get_blend_method()); + dest_surface.blit_to(pen); + + return true; +} + +Rect +Plant::get_bounding_rect(Context context)const +{ + if(needs_sync_==true) + sync(); + + if(is_disabled()) + return Rect::zero(); + + if(Color::is_onto(get_blend_method())) + return context.get_full_bounding_rect() & bounding_rect; + + //if(get_blend_method()==Color::BLEND_BEHIND) + // return context.get_full_bounding_rect() | bounding_rect; + return bounding_rect; +} diff --git a/synfig-core/tags/stable/src/modules/mod_particle/plant.h b/synfig-core/tags/stable/src/modules/mod_particle/plant.h new file mode 100644 index 0000000..54dafe4 --- /dev/null +++ b/synfig-core/tags/stable/src/modules/mod_particle/plant.h @@ -0,0 +1,111 @@ +/* === S Y N F I G ========================================================= */ +/*! \file plant.h +** \brief Template Header +** +** $Id$ +** +** \legal +** Copyright (c) 2002-2005 Robert B. Quattlebaum Jr., Adrian Bentley +** +** This package is free software; you can redistribute it and/or +** modify it under the terms of the GNU General Public License as +** published by the Free Software Foundation; either version 2 of +** the License, or (at your option) any later version. +** +** This package is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +** General Public License for more details. +** \endlegal +*/ +/* ========================================================================= */ + +/* === S T A R T =========================================================== */ + +#ifndef __SYNFIG_PLANT_H +#define __SYNFIG_PLANT_H + +/* === H E A D E R S ======================================================= */ + +#include +#include +#include +#include +#include +#include +#include +#include +#include "random.h" +#include + +/* === M A C R O S ========================================================= */ + +/* === T Y P E D E F S ===================================================== */ + +/* === C L A S S E S & S T R U C T S ======================================= */ + +using namespace synfig; +using namespace std; +using namespace etl; + +class Plant : public synfig::Layer_Composite +{ + SYNFIG_LAYER_MODULE_EXT +private: + + std::vector bline; + bool bline_loop; + + synfig::Gradient gradient; + + struct Particle + { + synfig::Point point; + synfig::Color color; + + Particle(const synfig::Point &point,const synfig::Color& color): + point(point),color(color) { } + }; + + mutable std::vector particle_list; + mutable synfig::Rect bounding_rect; + synfig::Angle split_angle; + synfig::Vector gravity; + synfig::Real velocity; + synfig::Real step; + synfig::Real mass; + synfig::Real drag; + synfig::Real size; + int splits; + int sprouts; + synfig::Real random_factor; + Random random; + + bool size_as_alpha; + mutable bool needs_sync_; + + + void branch(int n, int depth,float t, float stunt_growth, synfig::Point position,synfig::Vector velocity)const; + +public: + + Plant(); + + void sync()const; + + void calc_bounding_rect()const; + + virtual bool set_param(const String & param, const synfig::ValueBase &value); + + virtual ValueBase get_param(const String & param)const; + + virtual Vocab get_param_vocab()const; + + virtual bool accelerated_render(synfig::Context context,synfig::Surface *surface,int quality, const synfig::RendDesc &renddesc, synfig::ProgressCallback *cb)const;\ + + virtual synfig::Rect get_bounding_rect(synfig::Context context)const; +}; + +/* === E N D =============================================================== */ + +#endif diff --git a/synfig-core/tags/stable/src/modules/mod_particle/random.cpp b/synfig-core/tags/stable/src/modules/mod_particle/random.cpp new file mode 100644 index 0000000..ad2e896 --- /dev/null +++ b/synfig-core/tags/stable/src/modules/mod_particle/random.cpp @@ -0,0 +1,304 @@ +/* === S Y N F I G ========================================================= */ +/*! \file mod_particle/random.cpp +** \brief blehh +** +** $Id$ +** +** \legal +** Copyright (c) 2002-2005 Robert B. Quattlebaum Jr., Adrian Bentley +** +** This package is free software; you can redistribute it and/or +** modify it under the terms of the GNU General Public License as +** published by the Free Software Foundation; either version 2 of +** the License, or (at your option) any later version. +** +** This package is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +** General Public License for more details. +** \endlegal +*/ +/* ========================================================================= */ + +/* === H E A D E R S ======================================================= */ + +#ifdef USING_PCH +# include "pch.h" +#else +#ifdef HAVE_CONFIG_H +# include +#endif + +#include "random.h" +#include +#include + +#endif + +/* === M A C R O S ========================================================= */ + +/* === G L O B A L S ======================================================= */ + +/* === P R O C E D U R E S ================================================= */ + +/* === M E T H O D S ======================================================= */ + +void +Random::set_seed(int x) +{ + seed_=x; + srand(x); + int i; + for(i=0;i0)?((x)*(x)*(x)):0.0f) +#define R(x) ( P(x+2) - 4.0f*P(x+1) + 6.0f*P(x) - 4.0f*P(x-1) )*(1.0f/6.0f) +#define F(i,j) ((*this)(subseed,i+x,j+y)*(R((i)-a)*R(b-(j)))) +#define FT(i,j,k) ((*this)(subseed,i+x,j+y,k+t)*(R((i)-a)*R(b-(j))*R((k)-c))) +#define Z(i,j) ret+=F(i,j) +#define ZT(i,j,k) ret+=FT(i,j,k) +#define X(i,j) // placeholder... To make box more symmetric +#define XT(i,j,k) // placeholder... To make box more symmetric + + float a(xf-x), b(yf-y); + + // Interpolate + float ret(F(0,0)); + Z(-1,-1); Z(-1, 0); Z(-1, 1); Z(-1, 2); + Z( 0,-1); X( 0, 0); Z( 0, 1); Z( 0, 2); + Z( 1,-1); Z( 1, 0); Z( 1, 1); Z( 1, 2); + Z( 2,-1); Z( 2, 0); Z( 2, 1); Z( 2, 2); + + return ret; + } + + case 3: // Spline (animated) + { + float a(xf-x), b(yf-y), c(tf-t); + + // Interpolate + float ret(FT(0,0,0)); + ZT(-1,-1,-1); ZT(-1, 0,-1); ZT(-1, 1,-1); ZT(-1, 2,-1); + ZT( 0,-1,-1); ZT( 0, 0,-1); ZT( 0, 1,-1); ZT( 0, 2,-1); + ZT( 1,-1,-1); ZT( 1, 0,-1); ZT( 1, 1,-1); ZT( 1, 2,-1); + ZT( 2,-1,-1); ZT( 2, 0,-1); ZT( 2, 1,-1); ZT( 2, 2,-1); + + ZT(-1,-1, 0); ZT(-1, 0, 0); ZT(-1, 1, 0); ZT(-1, 2, 0); + ZT( 0,-1, 0); XT( 0, 0, 0); ZT( 0, 1, 0); ZT( 0, 2, 0); + ZT( 1,-1, 0); ZT( 1, 0, 0); ZT( 1, 1, 0); ZT( 1, 2, 0); + ZT( 2,-1, 0); ZT( 2, 0, 0); ZT( 2, 1, 0); ZT( 2, 2, 0); + + ZT(-1,-1, 1); ZT(-1, 0, 1); ZT(-1, 1, 1); ZT(-1, 2, 1); + ZT( 0,-1, 1); ZT( 0, 0, 1); ZT( 0, 1, 1); ZT( 0, 2, 1); + ZT( 1,-1, 1); ZT( 1, 0, 1); ZT( 1, 1, 1); ZT( 1, 2, 1); + ZT( 2,-1, 1); ZT( 2, 0, 1); ZT( 2, 1, 1); ZT( 2, 2, 1); + + ZT(-1,-1, 2); ZT(-1, 0, 2); ZT(-1, 1, 2); ZT(-1, 2, 2); + ZT( 0,-1, 2); ZT( 0, 0, 2); ZT( 0, 1, 2); ZT( 0, 2, 2); + ZT( 1,-1, 2); ZT( 1, 0, 2); ZT( 1, 1, 2); ZT( 1, 2, 2); + ZT( 2,-1, 2); ZT( 2, 0, 2); ZT( 2, 1, 2); ZT( 2, 2, 2); + + return ret; + +/* + + float dx=xf-x; + float dy=yf-y; + float dt=tf-t; + + float ret=0; + int i,j,h; + for(h=-1;h<=2;h++) + for(i=-1;i<=2;i++) + for(j=-1;j<=2;j++) + ret+=(*this)(subseed,i+x,j+y,h+t)*(R(i-dx)*R(j-dy)*R(h-dt)); + return ret; +*/ + } + break; +#undef X +#undef Z +#undef F +#undef P +#undef R + + case 2: // Cosine + if((float)t==tf) + { + int x((int)floor(xf)); + int y((int)floor(yf)); + float a=xf-x; + float b=yf-y; + a=(1.0f-cos(a*3.1415927))*0.5f; + b=(1.0f-cos(b*3.1415927))*0.5f; + float c=1.0-a; + float d=1.0-b; + int x2=x+1,y2=y+1; + return + (*this)(subseed,x,y,t)*(c*d)+ + (*this)(subseed,x2,y,t)*(a*d)+ + (*this)(subseed,x,y2,t)*(c*b)+ + (*this)(subseed,x2,y2,t)*(a*b); + } + else + { + float a=xf-x; + float b=yf-y; + float c=tf-t; + + a=(1.0f-cos(a*3.1415927))*0.5f; + b=(1.0f-cos(b*3.1415927))*0.5f; + + // We don't perform this on the time axis, otherwise we won't + // get smooth motion + //c=(1.0f-cos(c*3.1415927))*0.5f; + + float d=1.0-a; + float e=1.0-b; + float f=1.0-c; + + int x2=x+1,y2=y+1,t2=t+1; + + return + (*this)(subseed,x,y,t)*(d*e*f)+ + (*this)(subseed,x2,y,t)*(a*e*f)+ + (*this)(subseed,x,y2,t)*(d*b*f)+ + (*this)(subseed,x2,y2,t)*(a*b*f)+ + (*this)(subseed,x,y,t2)*(d*e*c)+ + (*this)(subseed,x2,y,t2)*(a*e*c)+ + (*this)(subseed,x,y2,t2)*(d*b*c)+ + (*this)(subseed,x2,y2,t2)*(a*b*c); + } + case 1: // Linear + if((float)t==tf) + { + int x((int)floor(xf)); + int y((int)floor(yf)); + float a=xf-x; + float b=yf-y; + float c=1.0-a; + float d=1.0-b; + int x2=x+1,y2=y+1; + return + (*this)(subseed,x,y,t)*(c*d)+ + (*this)(subseed,x2,y,t)*(a*d)+ + (*this)(subseed,x,y2,t)*(c*b)+ + (*this)(subseed,x2,y2,t)*(a*b); + } + else + { + + float a=xf-x; + float b=yf-y; + float c=tf-t; + + float d=1.0-a; + float e=1.0-b; + float f=1.0-c; + + int x2=x+1,y2=y+1,t2=t+1; + + return + (*this)(subseed,x,y,t)*(d*e*f)+ + (*this)(subseed,x2,y,t)*(a*e*f)+ + (*this)(subseed,x,y2,t)*(d*b*f)+ + (*this)(subseed,x2,y2,t)*(a*b*f)+ + (*this)(subseed,x,y,t2)*(d*e*c)+ + (*this)(subseed,x2,y,t2)*(a*e*c)+ + (*this)(subseed,x,y2,t2)*(d*b*c)+ + (*this)(subseed,x2,y2,t2)*(a*b*c); + } + default: + case 0: + return (*this)(subseed,x,y,t); + } +} diff --git a/synfig-core/tags/stable/src/modules/mod_particle/random.h b/synfig-core/tags/stable/src/modules/mod_particle/random.h new file mode 100644 index 0000000..672fb9a --- /dev/null +++ b/synfig-core/tags/stable/src/modules/mod_particle/random.h @@ -0,0 +1,57 @@ +/* === S Y N F I G ========================================================= */ +/*! \file mod_particle/random.h +** \brief Template Header +** +** $Id$ +** +** \legal +** Copyright (c) 2002-2005 Robert B. Quattlebaum Jr., Adrian Bentley +** +** This package is free software; you can redistribute it and/or +** modify it under the terms of the GNU General Public License as +** published by the Free Software Foundation; either version 2 of +** the License, or (at your option) any later version. +** +** This package is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +** General Public License for more details. +** \endlegal +*/ +/* ========================================================================= */ + +/* === S T A R T =========================================================== */ + +#ifndef __SYNFIG_RANDOM_H +#define __SYNFIG_RANDOM_H + +/* === H E A D E R S ======================================================= */ + + +/* === M A C R O S ========================================================= */ + +/* === T Y P E D E F S ===================================================== */ + +/* === C L A S S E S & S T R U C T S ======================================= */ + + +#define POOL_SIZE (256) +class Random +{ + int pool_[POOL_SIZE]; + int seed_; + + int x_mask, y_mask, t_mask; + +public: + + void set_seed(int x); + int get_seed()const { return seed_; } + + float operator()(int subseed,int x,int y=0, int t=0)const; + float operator()(int smooth,int subseed,float x,float y=0, float t=0)const; +}; + +/* === E N D =============================================================== */ + +#endif diff --git a/synfig-core/tags/stable/src/modules/mod_particle/unmod_particle.nsh b/synfig-core/tags/stable/src/modules/mod_particle/unmod_particle.nsh new file mode 100644 index 0000000..d848030 --- /dev/null +++ b/synfig-core/tags/stable/src/modules/mod_particle/unmod_particle.nsh @@ -0,0 +1,8 @@ +Section "un.mod_particle" + Delete "$INSTDIR\lib\synfig\modules\mod_particle.dll" + RMDir "$INSTDIR\lib\synfig\modules" + RMDir "$INSTDIR\lib\synfig" + RMDir "$INSTDIR\lib" + RMDir "$INSTDIR" +SectionEnd + diff --git a/synfig-core/tags/stable/src/modules/mod_png/Makefile.am b/synfig-core/tags/stable/src/modules/mod_png/Makefile.am new file mode 100644 index 0000000..562730a --- /dev/null +++ b/synfig-core/tags/stable/src/modules/mod_png/Makefile.am @@ -0,0 +1,17 @@ +# $Id$ + + +MAINTAINERCLEANFILES=Makefile.in +INCLUDES = -I$(top_srcdir)/src + +moduledir=@MODULE_DIR@ + +if HAVE_LIBPNG +module_LTLIBRARIES = libmod_png.la +libmod_png_la_SOURCES = main.cpp trgt_png.cpp trgt_png.h mptr_png.cpp mptr_png.h +libmod_png_la_LDFLAGS = -module @PNG_LIBS@ -no-undefined +libmod_png_la_CXXFLAGS = @SYNFIG_CFLAGS@ +libmod_png_la_LIBADD = -L../../synfig -lsynfig @SYNFIG_LIBS@ +else +endif +EXTRA_DIST= mod_png.nsh unmod_png.nsh diff --git a/synfig-core/tags/stable/src/modules/mod_png/main.cpp b/synfig-core/tags/stable/src/modules/mod_png/main.cpp new file mode 100644 index 0000000..25ffa4d --- /dev/null +++ b/synfig-core/tags/stable/src/modules/mod_png/main.cpp @@ -0,0 +1,58 @@ +/* === S Y N F I G ========================================================= */ +/*! \file mod_png/main.cpp +** \brief Template Header +** +** $Id$ +** +** \legal +** Copyright (c) 2002-2005 Robert B. Quattlebaum Jr., Adrian Bentley +** +** This package is free software; you can redistribute it and/or +** modify it under the terms of the GNU General Public License as +** published by the Free Software Foundation; either version 2 of +** the License, or (at your option) any later version. +** +** This package is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +** General Public License for more details. +** \endlegal +** +** === N O T E S =========================================================== +** +** ========================================================================= */ + +/* === H E A D E R S ======================================================= */ + +#define SYNFIG_MODULE + +#ifdef USING_PCH +# include "pch.h" +#else +#ifdef HAVE_CONFIG_H +# include +#endif + +#include +#include "trgt_png.h" +#include "mptr_png.h" +#endif + +/* === E N T R Y P O I N T ================================================= */ + +MODULE_DESC_BEGIN(mod_png) + MODULE_NAME("PNG Module (libpng)") + MODULE_DESCRIPTION("Provides a PNG target and importer") + MODULE_AUTHOR("Robert B. Quattlebaum Jr") + MODULE_VERSION("1.0") + MODULE_COPYRIGHT(SYNFIG_COPYRIGHT) +MODULE_DESC_END + +MODULE_INVENTORY_BEGIN(mod_png) + BEGIN_TARGETS + TARGET(png_trgt) + END_TARGETS + BEGIN_IMPORTERS + IMPORTER(png_mptr) + END_IMPORTERS +MODULE_INVENTORY_END diff --git a/synfig-core/tags/stable/src/modules/mod_png/mod_png.nsh b/synfig-core/tags/stable/src/modules/mod_png/mod_png.nsh new file mode 100644 index 0000000..84df93f --- /dev/null +++ b/synfig-core/tags/stable/src/modules/mod_png/mod_png.nsh @@ -0,0 +1,21 @@ +; The stuff to install +Section "mod_png" Sec_mod_png + +; SectionIn RO + + ; Set output path to the installation directory. + SetOutPath "$INSTDIR\lib\synfig\modules" + + ; Put file there + File /oname=mod_png.dll "src\modules\mod_png\.libs\libmod_png-0.dll" + + + FileOpen $0 $INSTDIR\etc\synfig_modules.cfg a + FileSeek $0 0 END + FileWrite $0 "mod_png" + FileWriteByte $0 "13" + FileWriteByte $0 "10" + FileClose $0 + +SectionEnd + diff --git a/synfig-core/tags/stable/src/modules/mod_png/mptr_png.cpp b/synfig-core/tags/stable/src/modules/mod_png/mptr_png.cpp new file mode 100644 index 0000000..d77732f --- /dev/null +++ b/synfig-core/tags/stable/src/modules/mod_png/mptr_png.cpp @@ -0,0 +1,334 @@ +/* === S Y N F I G ========================================================= */ +/*! \file mptr_png.cpp +** \brief ppm Target Module +** +** $Id$ +** +** \legal +** Copyright (c) 2002-2005 Robert B. Quattlebaum Jr., Adrian Bentley +** +** This package is free software; you can redistribute it and/or +** modify it under the terms of the GNU General Public License as +** published by the Free Software Foundation; either version 2 of +** the License, or (at your option) any later version. +** +** This package is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +** General Public License for more details. +** \endlegal +** +** === N O T E S =========================================================== +** +** ========================================================================= */ + +/*! +** \todo Support 16 bit PNG files +** \todo Support GAMMA correction +** \todo Fix memory leaks +*/ + +/* === H E A D E R S ======================================================= */ + +#ifdef USING_PCH +# include "pch.h" +#else +#ifdef HAVE_CONFIG_H +# include +#endif + +#include "mptr_png.h" +#include +#include +#include + + +#include +#include +#include +#endif + +/* === M A C R O S ========================================================= */ + +using namespace synfig; +using namespace std; +using namespace etl; + +#define PNG_CHECK_BYTES 8 + +/* === G L O B A L S ======================================================= */ + +SYNFIG_IMPORTER_INIT(png_mptr); +SYNFIG_IMPORTER_SET_NAME(png_mptr,"png"); +SYNFIG_IMPORTER_SET_EXT(png_mptr,"png"); +SYNFIG_IMPORTER_SET_VERSION(png_mptr,"0.1"); +SYNFIG_IMPORTER_SET_CVS_ID(png_mptr,"$Id$"); + +/* === M E T H O D S ======================================================= */ + +void +png_mptr::png_out_error(png_struct *png_data,const char *msg) +{ + //png_mptr *me=(png_mptr*)png_data->error_ptr; + synfig::error(strprintf("png_mptr: error: %s",msg)); + //me->ready=false; +} + +void +png_mptr::png_out_warning(png_struct *png_data,const char *msg) +{ + //png_mptr *me=(png_mptr*)png_data->error_ptr; + synfig::warning(strprintf("png_mptr: warning: %s",msg)); + //me->ready=false; +} + +int +png_mptr::read_chunk_callback(png_struct *png_data, png_unknown_chunkp chunk) +{ + /* The unknown chunk structure contains your + chunk data: */ + //png_byte name[5]; + //png_byte *data; + //png_size_t size; + /* Note that libpng has already taken care of + the CRC handling */ + + /* put your code here. Return one of the + following: */ + + //return (-n); /* chunk had an error */ + return (0); /* did not recognize */ + //return (n); /* success */ +} + +png_mptr::png_mptr(const char *file_name) +{ + filename=file_name; + + /* Open the file pointer */ + FILE *file = fopen(file_name, "rb"); + if (!file) + { + //! \todo THROW SOMETHING + throw strprintf("Unable to physically open %s",file_name); + return; + } + + + /* Make sure we are dealing with a PNG format file */ + png_byte header[PNG_CHECK_BYTES]; + fread(header, 1, PNG_CHECK_BYTES, file); + bool is_png = !png_sig_cmp(header, 0, PNG_CHECK_BYTES); + if (!is_png) + { + //! \todo THROW SOMETHING + throw strprintf("This (\"%s\") doesn't appear to be a PNG file",file_name); + return; + } + + + png_structp png_ptr = png_create_read_struct + (PNG_LIBPNG_VER_STRING, (png_voidp)this, + &png_mptr::png_out_error, &png_mptr::png_out_warning); + if (!png_ptr) + { + //! \todo THROW SOMETHING + throw String("error on importer construction, *WRITEME*3"); + return; + } + + png_infop info_ptr = png_create_info_struct(png_ptr); + if (!info_ptr) + { + png_destroy_read_struct(&png_ptr, + (png_infopp)NULL, (png_infopp)NULL); + //! \todo THROW SOMETHING + throw String("error on importer construction, *WRITEME*4"); + return; + } + + png_infop end_info = png_create_info_struct(png_ptr); + if (!end_info) + { + png_destroy_read_struct(&png_ptr, &info_ptr, + (png_infopp)NULL); + //! \todo THROW SOMETHING + throw String("error on importer construction, *WRITEME*4"); + return; + } + + + + png_init_io(png_ptr, file); + png_set_sig_bytes(png_ptr,PNG_CHECK_BYTES); + + double fgamma; + if (png_get_gAMA(png_ptr, info_ptr, &fgamma)) + { + synfig::info("PNG: Image gamma is %f",fgamma); + png_set_gamma(png_ptr, gamma().get_gamma(), fgamma); + } + + + /* + if (setjmp(png_jmpbuf(png_ptr))) + { + synfig::error("Unable to setup longjump"); + png_destroy_read_struct(&png_ptr, &info_ptr, &end_info); + fclose(file); + //! \todo THROW SOMETHING + throw String("error on importer construction, *WRITEME*5"); + return; + } + */ + + png_set_read_user_chunk_fn(png_ptr, this, &png_mptr::read_chunk_callback); + + + png_read_png(png_ptr, info_ptr, PNG_TRANSFORM_PACKING|PNG_TRANSFORM_STRIP_16, NULL); + + int bit_depth,color_type,interlace_type, compression_type,filter_method; + png_uint_32 width,height; + + png_get_IHDR(png_ptr, info_ptr, &width, &height, + &bit_depth, &color_type, &interlace_type, + &compression_type, &filter_method); + + png_bytep *row_pointers=new png_bytep[height]; + row_pointers = png_get_rows(png_ptr, info_ptr); + int x; + int y; + surface_buffer.set_wh(width,height); + + switch(color_type) + { + case PNG_COLOR_TYPE_RGB: + DEBUGPOINT(); + for(y=0;ypalette[row_pointers[y][x]].red); + float g=gamma().g_U8_to_F32((unsigned char)png_ptr->palette[row_pointers[y][x]].green); + float b=gamma().b_U8_to_F32((unsigned char)png_ptr->palette[row_pointers[y][x]].blue); + surface_buffer[y][x]=Color( + r, + g, + b, + 1.0 + ); + } + break; + default: + synfig::error("png_mptr: error: Unsupported color type"); + //! \todo THROW SOMETHING + throw String("error on importer construction, *WRITEME*6"); + return; + } + + DEBUGPOINT(); + + // \fixme These shouldn't be uncommented, but for some + // reason, they crash the program. I will have to look into this + // later. This is a memory leak, but it shouldn't be too bad. + + /* + png_read_end(png_ptr, end_info); + png_destroy_read_struct(&png_ptr, &info_ptr, &end_info); + fclose(file); + */ + + delete [] row_pointers; +} + +png_mptr::~png_mptr() +{ + DEBUGPOINT(); +} + +bool +png_mptr::get_frame(synfig::Surface &surface,Time, synfig::ProgressCallback *cb) +{ + surface.mirror(surface_buffer); +// surface=surface_buffer; + return true; +} diff --git a/synfig-core/tags/stable/src/modules/mod_png/mptr_png.h b/synfig-core/tags/stable/src/modules/mod_png/mptr_png.h new file mode 100644 index 0000000..ccddae0 --- /dev/null +++ b/synfig-core/tags/stable/src/modules/mod_png/mptr_png.h @@ -0,0 +1,67 @@ +/* === S Y N F I G ========================================================= */ +/*! \file mptr_png.h +** \brief Template Header +** +** $Id$ +** +** \legal +** Copyright (c) 2002-2005 Robert B. Quattlebaum Jr., Adrian Bentley +** +** This package is free software; you can redistribute it and/or +** modify it under the terms of the GNU General Public License as +** published by the Free Software Foundation; either version 2 of +** the License, or (at your option) any later version. +** +** This package is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +** General Public License for more details. +** \endlegal +** +** === N O T E S =========================================================== +** +** ========================================================================= */ + +/* === S T A R T =========================================================== */ + +#ifndef __SYNFIG_MPTR_PNG_H +#define __SYNFIG_MPTR_PNG_H + +/* === H E A D E R S ======================================================= */ + +#include +#include +#include +#include + +/* === M A C R O S ========================================================= */ + +/* === T Y P E D E F S ===================================================== */ + +/* === C L A S S E S & S T R U C T S ======================================= */ + +class png_mptr : public synfig::Importer +{ + SYNFIG_IMPORTER_MODULE_EXT +private: + synfig::String filename; + synfig::Surface surface_buffer; + + png_structp png_ptr; + png_infop info_ptr; + png_infop end_info; + + static void png_out_error(png_struct *png_data,const char *msg); + static void png_out_warning(png_struct *png_data,const char *msg); + static int read_chunk_callback(png_struct *png_data, png_unknown_chunkp chunk); + +public: + png_mptr(const char *filename); + ~png_mptr(); + + virtual bool get_frame(synfig::Surface &surface,synfig::Time time, synfig::ProgressCallback *callback); +}; + +/* === E N D =============================================================== */ + +#endif diff --git a/synfig-core/tags/stable/src/modules/mod_png/trgt_png.cpp b/synfig-core/tags/stable/src/modules/mod_png/trgt_png.cpp new file mode 100644 index 0000000..00c057d --- /dev/null +++ b/synfig-core/tags/stable/src/modules/mod_png/trgt_png.cpp @@ -0,0 +1,241 @@ +/* === S Y N F I G ========================================================= */ +/*! \file trgt_png.cpp +** \brief png_trgt Target Module +** +** $Id$ +** +** \legal +** Copyright (c) 2002-2005 Robert B. Quattlebaum Jr., Adrian Bentley +** +** This package is free software; you can redistribute it and/or +** modify it under the terms of the GNU General Public License as +** published by the Free Software Foundation; either version 2 of +** the License, or (at your option) any later version. +** +** This package is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +** General Public License for more details. +** \endlegal +** +** === N O T E S =========================================================== +** +** ========================================================================= */ + +/* === H E A D E R S ======================================================= */ + +#define SYNFIG_TARGET + +#ifdef USING_PCH +# include "pch.h" +#else +#ifdef HAVE_CONFIG_H +# include +#endif + +#include "trgt_png.h" +#include +#include +#include +#include +#include +#include + +#endif + +/* === M A C R O S ========================================================= */ + +using namespace synfig; +using namespace std; +using namespace etl; + +/* === G L O B A L S ======================================================= */ + +SYNFIG_TARGET_INIT(png_trgt); +SYNFIG_TARGET_SET_NAME(png_trgt,"png"); +SYNFIG_TARGET_SET_EXT(png_trgt,"png"); +SYNFIG_TARGET_SET_VERSION(png_trgt,"0.1"); +SYNFIG_TARGET_SET_CVS_ID(png_trgt,"$Id$"); + +/* === M E T H O D S ======================================================= */ + +void +png_trgt::png_out_error(png_struct *png_data,const char *msg) +{ + png_trgt *me=(png_trgt*)png_data->error_ptr; + synfig::error(strprintf("png_trgt: error: %s",msg)); + me->ready=false; +} + +void +png_trgt::png_out_warning(png_struct *png_data,const char *msg) +{ + png_trgt *me=(png_trgt*)png_data->error_ptr; + synfig::warning(strprintf("png_trgt: warning: %s",msg)); + me->ready=false; +} + + +//Target *png_trgt::New(const char *filename){ return new png_trgt(filename);} + +png_trgt::png_trgt(const char *Filename) +{ + file=NULL; + filename=Filename; + buffer=NULL; + ready=false; + color_buffer=0; +} + +png_trgt::~png_trgt() +{ + if(file) + fclose(file); + file=NULL; + delete [] buffer; + delete [] color_buffer; +} + +bool +png_trgt::set_rend_desc(RendDesc *given_desc) +{ + //given_desc->set_pixel_format(PixelFormat((int)PF_RGB|(int)PF_A)); + desc=*given_desc; + imagecount=desc.get_frame_start(); + if(desc.get_frame_end()-desc.get_frame_start()>0) + multi_image=true; + else + multi_image=false; + return true; +} + +void +png_trgt::end_frame() +{ + if(ready && file) + { + png_write_end(png_ptr,info_ptr); + png_destroy_write_struct(&png_ptr, &info_ptr); + } + + if(file && file!=stdout) + fclose(file); + file=NULL; + imagecount++; + ready=false; +} + +bool +png_trgt::start_frame(synfig::ProgressCallback *callback) +{ + int w=desc.get_w(),h=desc.get_h(); + + if(file && file!=stdout) + fclose(file); + if(filename=="-") + { + if(callback)callback->task(strprintf("(stdout) %d",imagecount).c_str()); + file=stdout; + } + else if(multi_image) + { + String + newfilename(filename), + ext(find(filename.begin(),filename.end(),'.'),filename.end()); + newfilename.erase(find(newfilename.begin(),newfilename.end(),'.'),newfilename.end()); + + newfilename+=etl::strprintf("%04d",imagecount)+ext; + file=fopen(newfilename.c_str(),"wb"); + if(callback)callback->task(newfilename); + } + else + { + file=fopen(filename.c_str(),"wb"); + if(callback)callback->task(filename); + } + + if(!file) + return false; + + delete [] buffer; + buffer=new unsigned char[4*w]; + + delete [] color_buffer; + color_buffer=new Color[w]; + + png_ptr=png_create_write_struct(PNG_LIBPNG_VER_STRING, (png_voidp)this,png_out_error, png_out_warning); + if (!png_ptr) + { + synfig::error("Unable to setup PNG struct"); + fclose(file); + return false; + } + + info_ptr= png_create_info_struct(png_ptr); + if (!info_ptr) + { + synfig::error("Unable to setup PNG info struct"); + fclose(file); + png_destroy_write_struct(&png_ptr,(png_infopp)NULL); + return false; + } + + if (setjmp(png_jmpbuf(png_ptr))) + { + synfig::error("Unable to setup longjump"); + png_destroy_write_struct(&png_ptr, &info_ptr); + fclose(file); + return false; + } + png_init_io(png_ptr,file); + png_set_filter(png_ptr,0,PNG_FILTER_NONE); + + setjmp(png_jmpbuf(png_ptr)); + png_set_IHDR(png_ptr,info_ptr,w,h,8,PNG_COLOR_TYPE_RGBA,PNG_INTERLACE_NONE,PNG_COMPRESSION_TYPE_DEFAULT,PNG_FILTER_TYPE_DEFAULT); + + // Write the gamma + //png_set_gAMA(png_ptr, info_ptr,1.0/gamma().get_gamma()); + png_set_gAMA(png_ptr, info_ptr,gamma().get_gamma()); + + // Write the physical size + png_set_pHYs(png_ptr,info_ptr,round_to_int(desc.get_x_res()),round_to_int(desc.get_y_res()),PNG_RESOLUTION_METER); + + // Output any text info along with the file + png_text comments[]= + { + { PNG_TEXT_COMPRESSION_NONE, "Title", const_cast(get_canvas()->get_name().c_str()), + strlen(get_canvas()->get_name().c_str()) }, + { PNG_TEXT_COMPRESSION_NONE, "Description", const_cast(get_canvas()->get_description().c_str()), + strlen(get_canvas()->get_description().c_str()) }, +// { PNG_TEXT_COMPRESSION_NONE, "Copyright", "(c) 2004 Voria Studios, LLC", +// strlen("(c) 2004 Voria Studios, LLC") }, + { PNG_TEXT_COMPRESSION_NONE, "Software", "SYNFIG", + strlen("SYNFIG") }, + }; + png_set_text(png_ptr,info_ptr,comments,sizeof(comments)/sizeof(png_text)); + + png_write_info_before_PLTE(png_ptr, info_ptr); + png_write_info(png_ptr, info_ptr); + ready=true; + return true; +} + +Color * +png_trgt::start_scanline(int scanline) +{ + return color_buffer; +} + +bool +png_trgt::end_scanline() +{ + if(!file || !ready) + return false; + + convert_color_format(buffer, color_buffer, desc.get_w(), PF_RGB|PF_A, gamma()); + + setjmp(png_jmpbuf(png_ptr)); + png_write_row(png_ptr,buffer); + + return true; +} diff --git a/synfig-core/tags/stable/src/modules/mod_png/trgt_png.h b/synfig-core/tags/stable/src/modules/mod_png/trgt_png.h new file mode 100644 index 0000000..19dd82b --- /dev/null +++ b/synfig-core/tags/stable/src/modules/mod_png/trgt_png.h @@ -0,0 +1,73 @@ +/* === S Y N F I G ========================================================= */ +/*! \file trgt_png.h +** \brief Template Header +** +** $Id$ +** +** \legal +** Copyright (c) 2002-2005 Robert B. Quattlebaum Jr., Adrian Bentley +** +** This package is free software; you can redistribute it and/or +** modify it under the terms of the GNU General Public License as +** published by the Free Software Foundation; either version 2 of +** the License, or (at your option) any later version. +** +** This package is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +** General Public License for more details. +** \endlegal +** +** === N O T E S =========================================================== +** +** ========================================================================= */ + +/* === S T A R T =========================================================== */ + +#ifndef __SYNFIG_TRGT_PNG_H +#define __SYNFIG_TRGT_PNG_H + +/* === H E A D E R S ======================================================= */ + +#include +#include +#include +#include + +/* === M A C R O S ========================================================= */ + +/* === T Y P E D E F S ===================================================== */ + +/* === C L A S S E S & S T R U C T S ======================================= */ + +class png_trgt : public synfig::Target_Scanline +{ + SYNFIG_TARGET_MODULE_EXT +private: + FILE *file; + int w,h; + png_structp png_ptr; + png_infop info_ptr; + + static void png_out_error(png_struct *png,const char *msg); + static void png_out_warning(png_struct *png,const char *msg); + bool multi_image,ready; + int imagecount; + synfig::String filename; + unsigned char *buffer; + synfig::Color *color_buffer; +public: + png_trgt(const char *filename); + virtual ~png_trgt(); + + virtual bool set_rend_desc(synfig::RendDesc *desc); + virtual bool start_frame(synfig::ProgressCallback *cb); + virtual void end_frame(); + + virtual synfig::Color * start_scanline(int scanline); + virtual bool end_scanline(); +}; + +/* === E N D =============================================================== */ + +#endif diff --git a/synfig-core/tags/stable/src/modules/mod_png/unmod_png.nsh b/synfig-core/tags/stable/src/modules/mod_png/unmod_png.nsh new file mode 100644 index 0000000..4266a9a --- /dev/null +++ b/synfig-core/tags/stable/src/modules/mod_png/unmod_png.nsh @@ -0,0 +1,8 @@ +Section "un.mod_png" + Delete "$INSTDIR\lib\synfig\modules\mod_png.dll" + RMDir "$INSTDIR\lib\synfig\modules" + RMDir "$INSTDIR\lib\synfig" + RMDir "$INSTDIR\lib" + RMDir "$INSTDIR" +SectionEnd + diff --git a/synfig-core/tags/stable/src/modules/mod_ppm/Makefile.am b/synfig-core/tags/stable/src/modules/mod_ppm/Makefile.am new file mode 100644 index 0000000..8ba4438 --- /dev/null +++ b/synfig-core/tags/stable/src/modules/mod_ppm/Makefile.am @@ -0,0 +1,15 @@ +# $Id$ + + +EXTRADIST=trgt_mpg.cpp trgt_mpg.h +MAINTAINERCLEANFILES=Makefile.in +INCLUDES = -I$(top_srcdir)/src + +moduledir=@MODULE_DIR@ + +module_LTLIBRARIES = libmod_ppm.la +libmod_ppm_la_SOURCES = main.cpp trgt_ppm.cpp trgt_ppm.h mptr_ppm.cpp mptr_ppm.h # trgt_mpg.cpp trgt_mpg.h +libmod_ppm_la_LDFLAGS = -module -no-undefined +libmod_ppm_la_CXXFLAGS = @SYNFIG_CFLAGS@ +libmod_ppm_la_LIBADD = -L../../synfig -lsynfig @SYNFIG_LIBS@ +EXTRA_DIST= mod_ppm.nsh unmod_ppm.nsh diff --git a/synfig-core/tags/stable/src/modules/mod_ppm/main.cpp b/synfig-core/tags/stable/src/modules/mod_ppm/main.cpp new file mode 100644 index 0000000..e768223 --- /dev/null +++ b/synfig-core/tags/stable/src/modules/mod_ppm/main.cpp @@ -0,0 +1,58 @@ +/* === S Y N F I G ========================================================= */ +/*! \file mod_ppm/main.cpp +** \brief Template Header +** +** $Id$ +** +** \legal +** Copyright (c) 2002-2005 Robert B. Quattlebaum Jr., Adrian Bentley +** +** This package is free software; you can redistribute it and/or +** modify it under the terms of the GNU General Public License as +** published by the Free Software Foundation; either version 2 of +** the License, or (at your option) any later version. +** +** This package is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +** General Public License for more details. +** \endlegal +** +** === N O T E S =========================================================== +** +** ========================================================================= */ + +/* === H E A D E R S ======================================================= */ + +#define SYNFIG_MODULE + +#ifdef USING_PCH +# include "pch.h" +#else +#ifdef HAVE_CONFIG_H +# include +#endif + +#include +#include "trgt_ppm.h" +#include "mptr_ppm.h" +#endif + +/* === E N T R Y P O I N T ================================================= */ + +MODULE_DESC_BEGIN(mod_ppm) + MODULE_NAME("PPM Target") + MODULE_DESCRIPTION("Provides a PPM target") + MODULE_AUTHOR("Robert B. Quattlebaum") + MODULE_VERSION("1.0") + MODULE_COPYRIGHT(SYNFIG_COPYRIGHT) +MODULE_DESC_END + +MODULE_INVENTORY_BEGIN(mod_ppm) + BEGIN_TARGETS + TARGET(ppm) + END_TARGETS + BEGIN_IMPORTERS + IMPORTER(ppm_mptr) + END_IMPORTERS +MODULE_INVENTORY_END diff --git a/synfig-core/tags/stable/src/modules/mod_ppm/mod_ppm.nsh b/synfig-core/tags/stable/src/modules/mod_ppm/mod_ppm.nsh new file mode 100644 index 0000000..92cce6f --- /dev/null +++ b/synfig-core/tags/stable/src/modules/mod_ppm/mod_ppm.nsh @@ -0,0 +1,21 @@ +; The stuff to install +Section "mod_ppm" Sec_mod_ppm + +; SectionIn RO + + ; Set output path to the installation directory. + SetOutPath "$INSTDIR\lib\synfig\modules" + + ; Put file there + File /oname=mod_ppm.dll "src\modules\mod_ppm\.libs\libmod_ppm-0.dll" + + + FileOpen $0 $INSTDIR\etc\synfig_modules.cfg a + FileSeek $0 0 END + FileWrite $0 "mod_ppm" + FileWriteByte $0 "13" + FileWriteByte $0 "10" + FileClose $0 + +SectionEnd + diff --git a/synfig-core/tags/stable/src/modules/mod_ppm/mptr_ppm.cpp b/synfig-core/tags/stable/src/modules/mod_ppm/mptr_ppm.cpp new file mode 100644 index 0000000..6900c93 --- /dev/null +++ b/synfig-core/tags/stable/src/modules/mod_ppm/mptr_ppm.cpp @@ -0,0 +1,120 @@ +/* === S Y N F I G ========================================================= */ +/*! \file mptr_ppm.cpp +** \brief ppm Target Module +** +** $Id$ +** +** \legal +** Copyright (c) 2002-2005 Robert B. Quattlebaum Jr., Adrian Bentley +** +** This package is free software; you can redistribute it and/or +** modify it under the terms of the GNU General Public License as +** published by the Free Software Foundation; either version 2 of +** the License, or (at your option) any later version. +** +** This package is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +** General Public License for more details. +** \endlegal +** +** === N O T E S =========================================================== +** +** ========================================================================= */ + +/* === H E A D E R S ======================================================= */ + +#ifdef USING_PCH +# include "pch.h" +#else +#ifdef HAVE_CONFIG_H +# include +#endif + +#include "mptr_ppm.h" +#include +#include +#include +#include +#include + +#include +#include +#include + +#endif + +/* === M A C R O S ========================================================= */ + +using namespace synfig; +using namespace std; +using namespace etl; + +/* === G L O B A L S ======================================================= */ + +SYNFIG_IMPORTER_INIT(ppm_mptr); +SYNFIG_IMPORTER_SET_NAME(ppm_mptr,"ppm"); +SYNFIG_IMPORTER_SET_EXT(ppm_mptr,"ppm"); +SYNFIG_IMPORTER_SET_VERSION(ppm_mptr,"0.1"); +SYNFIG_IMPORTER_SET_CVS_ID(ppm_mptr,"$Id$"); + +/* === M E T H O D S ======================================================= */ + +ppm_mptr::ppm_mptr(const char *file) +{ + filename=file; +} + +ppm_mptr::~ppm_mptr() +{ +} + +bool +ppm_mptr::get_frame(synfig::Surface &surface,Time, synfig::ProgressCallback *cb) +{ + SmartFILE file(fopen(filename.c_str(),"rb")); + if(!file) + { + if(cb)cb->error("pp_mptr::GetFrame(): "+strprintf(_("Unable to open %s"),filename.c_str())); + return false; + } + int w,h; + float divisor; + + if(fgetc(file.get())!='P' || fgetc(file.get())!='6') + { + if(cb)cb->error("pp_mptr::GetFrame(): "+strprintf(_("%s was not in PPM format"),filename.c_str())); + return false; + } + + fgetc(file.get()); + fscanf(file.get(),"%d %d\n",&w,&h); + fscanf(file.get(),"%f",&divisor); + fgetc(file.get()); + + int x; + int y; + surface.set_wh(w,h); + for(y=0;y +#include + +/* === M A C R O S ========================================================= */ + +/* === T Y P E D E F S ===================================================== */ + +/* === C L A S S E S & S T R U C T S ======================================= */ + +class ppm_mptr : public synfig::Importer +{ + SYNFIG_IMPORTER_MODULE_EXT +private: + synfig::String filename; +public: + ppm_mptr(const char *filename); + ~ppm_mptr(); + + virtual bool get_frame(synfig::Surface &surface,synfig::Time time, synfig::ProgressCallback *callback); +}; // END of class ppm_mptr + +/* === E N D =============================================================== */ + +#endif diff --git a/synfig-core/tags/stable/src/modules/mod_ppm/trgt_mpg.cpp b/synfig-core/tags/stable/src/modules/mod_ppm/trgt_mpg.cpp new file mode 100644 index 0000000..12709f3 --- /dev/null +++ b/synfig-core/tags/stable/src/modules/mod_ppm/trgt_mpg.cpp @@ -0,0 +1,213 @@ +/* === S Y N F I G ========================================================= */ +/*! \file trgt_mpg.cpp +** \brief bsd_mpeg1 Target Module +** +** $Id$ +** +** \legal +** Copyright (c) 2002-2005 Robert B. Quattlebaum Jr., Adrian Bentley +** +** This package is free software; you can redistribute it and/or +** modify it under the terms of the GNU General Public License as +** published by the Free Software Foundation; either version 2 of +** the License, or (at your option) any later version. +** +** This package is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +** General Public License for more details. +** \endlegal +** +** === N O T E S =========================================================== +** +** ========================================================================= */ + +/* === H E A D E R S ======================================================= */ + +#define SYNFIG_TARGET + +#ifdef USING_PCH +# include "pch.h" +#else +#ifdef HAVE_CONFIG_H +# include +#endif + +#include +#include "trgt_mpg.h" +#include +#include +#include +#include +#endif + +/* === M A C R O S ========================================================= */ + +using namespace synfig; +using namespace std; +using namespace etl; + +/* === G L O B A L S ======================================================= */ + +const char bsd_mpeg1::Name[]="mpeg1"; +const char bsd_mpeg1::Ext[]="mpg"; + +#define tmp_dir string("/tmp/") + +/* === M E T H O D S ======================================================= */ + +Target * +bsd_mpeg1::New(const char *filename) +{ + return new bsd_mpeg1(filename); +} + +bsd_mpeg1::bsd_mpeg1(const char *Filename) +{ + filename=Filename; + passthru=ppm::New((tmp_dir+"temp.ppm").c_str()); + paramfile=NULL; + +} + +bsd_mpeg1::~bsd_mpeg1() +{ + if(paramfile) + fclose(paramfile); + delete passthru; + cerr<<"Encoding "<get_frame_rate(); + + // Valid framerates: + // 23.976, 24, 25, 29.97, 30, 50 ,59.94, 60 + + if(fps <24.0) + { + fprintf(paramfile,"FRAME_RATE 23.976\n"); + given_desc->set_frame_rate(23.976); + } + if(fps>=24.0 && fps <25.0) + { + fprintf(paramfile,"FRAME_RATE 24\n"); + given_desc->set_frame_rate(24); + } + if(fps>=25.0 && fps <29.97) + { + fprintf(paramfile,"FRAME_RATE 25\n"); + given_desc->set_frame_rate(25); + } + if(fps>=29.97 && fps <30.0) + { + fprintf(paramfile,"FRAME_RATE 29.97\n"); + given_desc->set_frame_rate(29.97); + } + if(fps>=29.97 && fps <30.0) + { + fprintf(paramfile,"FRAME_RATE 29.97\n"); + given_desc->set_frame_rate(29.97); + } + if(fps>=30.0 && fps <50.0) + { + fprintf(paramfile,"FRAME_RATE 30\n"); + given_desc->set_frame_rate(30.0); + } + if(fps>=50.0 && fps <59.94) + { + fprintf(paramfile,"FRAME_RATE 50\n"); + given_desc->set_frame_rate(50); + } + if(fps>=59.94) + { + fprintf(paramfile,"FRAME_RATE 59.94\n"); + given_desc->set_frame_rate(59.94); + } + + // Make sure that the width and height + // are multiples of 8 + given_desc->set_w((given_desc->get_w()+4)/8*8); + given_desc->set_h((given_desc->get_h()+4)/8*8); + + if(!passthru->set_rend_desc(given_desc)) + return false; + + desc=*given_desc; + + fprintf(paramfile, + "INPUT\n" + "tmp/temp*.ppm [%04d-%04d]\n" + "END_INPUT\n",desc.get_frame_start(),desc.get_frame_end()-1); + + fclose(paramfile); + paramfile=NULL; + + return true; +} + +void +bsd_mpeg1::end_frame() +{ + passthru->end_frame(); +} + +bool +bsd_mpeg1::start_frame(synfig::ProgressCallback *callback) +{ + return passthru->start_frame(callback); +} + +unsigned char * +bsd_mpeg1::start_scanline(int scanline) +{ + return passthru->start_scanline(scanline); +} + +bool +bsd_mpeg1::end_scanline(void) +{ + return passthru->end_scanline(); +} diff --git a/synfig-core/tags/stable/src/modules/mod_ppm/trgt_mpg.h b/synfig-core/tags/stable/src/modules/mod_ppm/trgt_mpg.h new file mode 100644 index 0000000..5ce96dc --- /dev/null +++ b/synfig-core/tags/stable/src/modules/mod_ppm/trgt_mpg.h @@ -0,0 +1,73 @@ +/* === S Y N F I G ========================================================= */ +/*! \file trgt_mpg.h +** \brief Template Header +** +** $Id$ +** +** \legal +** Copyright (c) 2002-2005 Robert B. Quattlebaum Jr., Adrian Bentley +** +** This package is free software; you can redistribute it and/or +** modify it under the terms of the GNU General Public License as +** published by the Free Software Foundation; either version 2 of +** the License, or (at your option) any later version. +** +** This package is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +** General Public License for more details. +** \endlegal +** +** === N O T E S =========================================================== +** +** ========================================================================= */ + +/* === S T A R T =========================================================== */ + +#ifndef __SYNFIG_TRGT_MPG_H +#define __SYNFIG_TRGT_MPG_H + +/* === H E A D E R S ======================================================= */ + +#include +#include +#include "trgt_ppm.h" + +/* === M A C R O S ========================================================= */ + +/* === T Y P E D E F S ===================================================== */ + +/* === C L A S S E S & S T R U C T S ======================================= */ + + +class bsd_mpeg1 : public synfig::Target +{ +public: +private: +// synfig::RendDesc desc; + synfig::Target *passthru; + String filename; + FILE *paramfile; +public: + bsd_mpeg1(const char *filename); + + virtual bool set_rend_desc(synfig::RendDesc *desc); + virtual bool start_frame(synfig::ProgressCallback *cb); + virtual void end_frame(); + + virtual ~bsd_mpeg1(); + + + virtual unsigned char * start_scanline(int scanline); + virtual bool end_scanline(void); + + static synfig::Target *New(const char *filename); + + static const char Name[]; + static const char Ext[]; + +}; + +/* === E N D =============================================================== */ + +#endif diff --git a/synfig-core/tags/stable/src/modules/mod_ppm/trgt_ppm.cpp b/synfig-core/tags/stable/src/modules/mod_ppm/trgt_ppm.cpp new file mode 100644 index 0000000..252bd47 --- /dev/null +++ b/synfig-core/tags/stable/src/modules/mod_ppm/trgt_ppm.cpp @@ -0,0 +1,154 @@ +/* === S Y N F I G ========================================================= */ +/*! \file trgt_ppm.cpp +** \brief ppm Target Module +** +** $Id$ +** +** \legal +** Copyright (c) 2002-2005 Robert B. Quattlebaum Jr., Adrian Bentley +** +** This package is free software; you can redistribute it and/or +** modify it under the terms of the GNU General Public License as +** published by the Free Software Foundation; either version 2 of +** the License, or (at your option) any later version. +** +** This package is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +** General Public License for more details. +** \endlegal +** +** === N O T E S =========================================================== +** +** ========================================================================= */ + +/* === H E A D E R S ======================================================= */ + +#define SYNFIG_TARGET + +#ifdef USING_PCH +# include "pch.h" +#else +#ifdef HAVE_CONFIG_H +# include +#endif + +#include "trgt_ppm.h" +#include +#include +#include +#include +#endif + +/* === M A C R O S ========================================================= */ + +using namespace synfig; +using namespace std; +using namespace etl; + +/* === G L O B A L S ======================================================= */ + +SYNFIG_TARGET_INIT(ppm); +SYNFIG_TARGET_SET_NAME(ppm,"ppm"); +SYNFIG_TARGET_SET_EXT(ppm,"ppm"); +SYNFIG_TARGET_SET_VERSION(ppm,"0.1"); +SYNFIG_TARGET_SET_CVS_ID(ppm,"$Id$"); + +/* === M E T H O D S ======================================================= */ + +ppm::ppm(const char *Filename) +{ + filename=Filename; + multi_image=false; + buffer=NULL; + color_buffer=0; + set_remove_alpha(); +} + +ppm::~ppm() +{ + delete [] buffer; + delete [] color_buffer; +} + +bool +ppm::set_rend_desc(RendDesc *given_desc) +{ + //given_desc->set_pixel_format(PF_RGB); + desc=*given_desc; + imagecount=desc.get_frame_start(); + if(desc.get_frame_end()-desc.get_frame_start()>0) + multi_image=true; + else + multi_image=false; + return true; +} + +void +ppm::end_frame() +{ + imagecount++; +} + +bool +ppm::start_frame(synfig::ProgressCallback *callback) +{ + int w=desc.get_w(),h=desc.get_h(); + + if(filename=="-") + { + if(callback)callback->task(strprintf("(stdout) %d",imagecount).c_str()); + file=SmartFILE(stdout); + } + else if(multi_image) + { + String + newfilename(filename), + ext(find(filename.begin(),filename.end(),'.'),filename.end()); + newfilename.erase(find(newfilename.begin(),newfilename.end(),'.'),newfilename.end()); + + newfilename+=etl::strprintf("%04d",imagecount)+ext; + file=SmartFILE(fopen(newfilename.c_str(),"wb")); + if(callback)callback->task(newfilename); + } + else + { + file=SmartFILE(fopen(filename.c_str(),"wb")); + if(callback)callback->task(filename); + } + + if(!file) + return false; + + fprintf(file.get(), "P6\n"); + fprintf(file.get(), "%d %d\n", w, h); + fprintf(file.get(), "%d\n", 255); + + delete [] buffer; + buffer=new unsigned char[3*w]; + + delete [] color_buffer; + color_buffer=new Color[desc.get_w()]; + + return true; +} + +Color * +ppm::start_scanline(int scanline) +{ + return color_buffer; +} + +bool +ppm::end_scanline() +{ + if(!file) + return false; + + convert_color_format(buffer, color_buffer, desc.get_w(), PF_RGB, gamma()); + + if(!fwrite(buffer,1,desc.get_w()*3,file.get())) + return false; + + return true; +} diff --git a/synfig-core/tags/stable/src/modules/mod_ppm/trgt_ppm.h b/synfig-core/tags/stable/src/modules/mod_ppm/trgt_ppm.h new file mode 100644 index 0000000..f1a5134 --- /dev/null +++ b/synfig-core/tags/stable/src/modules/mod_ppm/trgt_ppm.h @@ -0,0 +1,68 @@ +/* === S Y N F I G ========================================================= */ +/*! \file trgt_ppm.h +** \brief Template Header +** +** $Id$ +** +** \legal +** Copyright (c) 2002-2005 Robert B. Quattlebaum Jr., Adrian Bentley +** +** This package is free software; you can redistribute it and/or +** modify it under the terms of the GNU General Public License as +** published by the Free Software Foundation; either version 2 of +** the License, or (at your option) any later version. +** +** This package is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +** General Public License for more details. +** \endlegal +** +** === N O T E S =========================================================== +** +** ========================================================================= */ + +/* === S T A R T =========================================================== */ + +#ifndef __SYNFIG_TRGT_PPM_H +#define __SYNFIG_TRGT_PPM_H + +/* === H E A D E R S ======================================================= */ + +#include +#include +#include +#include + +/* === M A C R O S ========================================================= */ + +/* === T Y P E D E F S ===================================================== */ + +/* === C L A S S E S & S T R U C T S ======================================= */ + +class ppm : public synfig::Target_Scanline +{ + SYNFIG_TARGET_MODULE_EXT + +private: + int imagecount; + bool multi_image; + synfig::SmartFILE file; + synfig::String filename; + synfig::Color *color_buffer; + unsigned char *buffer; +public: + ppm(const char *filename); + virtual ~ppm(); + + virtual bool set_rend_desc(synfig::RendDesc *desc); + virtual bool start_frame(synfig::ProgressCallback *cb); + virtual void end_frame(); + + virtual synfig::Color * start_scanline(int scanline); + virtual bool end_scanline(); +}; + +/* === E N D =============================================================== */ + +#endif diff --git a/synfig-core/tags/stable/src/modules/mod_ppm/unmod_ppm.nsh b/synfig-core/tags/stable/src/modules/mod_ppm/unmod_ppm.nsh new file mode 100644 index 0000000..0cf7a12 --- /dev/null +++ b/synfig-core/tags/stable/src/modules/mod_ppm/unmod_ppm.nsh @@ -0,0 +1,8 @@ +Section "un.mod_ppm" + Delete "$INSTDIR\lib\synfig\modules\mod_ppm.dll" + RMDir "$INSTDIR\lib\synfig\modules" + RMDir "$INSTDIR\lib\synfig" + RMDir "$INSTDIR\lib" + RMDir "$INSTDIR" +SectionEnd + diff --git a/synfig-core/tags/stable/src/modules/mod_yuv420p/Makefile.am b/synfig-core/tags/stable/src/modules/mod_yuv420p/Makefile.am new file mode 100644 index 0000000..fdcfe30 --- /dev/null +++ b/synfig-core/tags/stable/src/modules/mod_yuv420p/Makefile.am @@ -0,0 +1,14 @@ +# $Id$ + + +MAINTAINERCLEANFILES=Makefile.in +INCLUDES = -I$(top_srcdir)/src + +moduledir=@MODULE_DIR@ + +module_LTLIBRARIES = libmod_yuv420p.la +libmod_yuv420p_la_SOURCES = main.cpp trgt_yuv.cpp trgt_yuv.h +libmod_yuv420p_la_LDFLAGS = -module -no-undefined +libmod_yuv420p_la_CXXFLAGS = @SYNFIG_CFLAGS@ +libmod_yuv420p_la_LIBADD = -L../../synfig -lsynfig @SYNFIG_LIBS@ +EXTRA_DIST= mod_yuv420p.nsh unmod_yuv420p.nsh diff --git a/synfig-core/tags/stable/src/modules/mod_yuv420p/main.cpp b/synfig-core/tags/stable/src/modules/mod_yuv420p/main.cpp new file mode 100644 index 0000000..3f4bdf8 --- /dev/null +++ b/synfig-core/tags/stable/src/modules/mod_yuv420p/main.cpp @@ -0,0 +1,54 @@ +/* === S Y N F I G ========================================================= */ +/*! \file mod_yuv420p/main.cpp +** \brief Template Header +** +** $Id$ +** +** \legal +** Copyright (c) 2002-2005 Robert B. Quattlebaum Jr., Adrian Bentley +** +** This package is free software; you can redistribute it and/or +** modify it under the terms of the GNU General Public License as +** published by the Free Software Foundation; either version 2 of +** the License, or (at your option) any later version. +** +** This package is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +** General Public License for more details. +** \endlegal +** +** === N O T E S =========================================================== +** +** ========================================================================= */ + +/* === H E A D E R S ======================================================= */ + +#define SYNFIG_MODULE + +#ifdef USING_PCH +# include "pch.h" +#else +#ifdef HAVE_CONFIG_H +# include +#endif + +#include +#include "trgt_yuv.h" +#endif + +/* === E N T R Y P O I N T ================================================= */ + +MODULE_DESC_BEGIN(mod_yuv420p) + MODULE_NAME("YUV420P Target") + MODULE_DESCRIPTION("writeme") + MODULE_AUTHOR("Robert B. Quattlebaum") + MODULE_VERSION("1.0") + MODULE_COPYRIGHT(SYNFIG_COPYRIGHT) +MODULE_DESC_END + +MODULE_INVENTORY_BEGIN(mod_yuv420p) + BEGIN_TARGETS + TARGET(yuv) + END_TARGETS +MODULE_INVENTORY_END diff --git a/synfig-core/tags/stable/src/modules/mod_yuv420p/mod_yuv420p.nsh b/synfig-core/tags/stable/src/modules/mod_yuv420p/mod_yuv420p.nsh new file mode 100644 index 0000000..5376a6e --- /dev/null +++ b/synfig-core/tags/stable/src/modules/mod_yuv420p/mod_yuv420p.nsh @@ -0,0 +1,21 @@ +; The stuff to install +Section "mod_yuv420p" Sec_mod_yuv420p + +; SectionIn RO + + ; Set output path to the installation directory. + SetOutPath "$INSTDIR\lib\synfig\modules" + + ; Put file there + File /oname=mod_yuv420p.dll "src\modules\mod_yuv420p\.libs\libmod_yuv420p-0.dll" + + + FileOpen $0 $INSTDIR\etc\synfig_modules.cfg a + FileSeek $0 0 END + FileWrite $0 "mod_yuv420p" + FileWriteByte $0 "13" + FileWriteByte $0 "10" + FileClose $0 + +SectionEnd + diff --git a/synfig-core/tags/stable/src/modules/mod_yuv420p/trgt_yuv.cpp b/synfig-core/tags/stable/src/modules/mod_yuv420p/trgt_yuv.cpp new file mode 100644 index 0000000..8dcfb5e --- /dev/null +++ b/synfig-core/tags/stable/src/modules/mod_yuv420p/trgt_yuv.cpp @@ -0,0 +1,222 @@ +/* === S Y N F I G ========================================================= */ +/*! \file trgt_yuv.cpp +** \brief Template File +** +** $Id$ +** +** \legal +** Copyright (c) 2002-2005 Robert B. Quattlebaum Jr., Adrian Bentley +** +** This package is free software; you can redistribute it and/or +** modify it under the terms of the GNU General Public License as +** published by the Free Software Foundation; either version 2 of +** the License, or (at your option) any later version. +** +** This package is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +** General Public License for more details. +** \endlegal +*/ +/* ========================================================================= */ + +/* === H E A D E R S ======================================================= */ + +#define SYNFIG_TARGET + +#ifdef USING_PCH +# include "pch.h" +#else +#ifdef HAVE_CONFIG_H +# include +#endif + +#include "trgt_yuv.h" +#include +#include +#include +#include +#endif + +using namespace synfig; +using namespace std; +using namespace etl; + +/* === M A C R O S ========================================================= */ + +#define Y_FLOOR (16) +#define Y_CEIL (235) +#define Y_RANGE (Y_CEIL-Y_FLOOR) + +#define UV_FLOOR (16) +#define UV_CEIL (240) +#define UV_RANGE (UV_CEIL-UV_FLOOR) + +/* === G L O B A L S ======================================================= */ + +SYNFIG_TARGET_INIT(yuv); +SYNFIG_TARGET_SET_NAME(yuv,"yuv420p"); +SYNFIG_TARGET_SET_EXT(yuv,"yuv"); +SYNFIG_TARGET_SET_VERSION(yuv,"0.1"); +SYNFIG_TARGET_SET_CVS_ID(yuv,"$Id$"); + +/* === M E T H O D S ======================================================= */ + +yuv::yuv(const char *FILENAME): + filename(FILENAME), + file( (filename=="-")?stdout:fopen(filename.c_str(),"wb") ), + dithering(true) +{ + // YUV420P doesn't have an alpha channel + set_remove_alpha(); +} + +yuv::~yuv() +{ +} + +bool +yuv::set_rend_desc(RendDesc *given_desc) +{ + given_desc->clear_flags(); + + // Make sure our width is divisible by two + given_desc->set_w(given_desc->get_w()*2/2); + given_desc->set_h(given_desc->get_h()*2/2); + + desc=*given_desc; + + // Set up our surface + surface.set_wh(desc.get_w(),desc.get_h()); + + return true; +} + +bool +yuv::start_frame(synfig::ProgressCallback *callback) +{ + return static_cast(file); +} + +Color * +yuv::start_scanline(int x) +{ + return surface[x]; +} + +bool +yuv::end_scanline() +{ + return static_cast(file); +} + +void +yuv::end_frame() +{ + const int w=desc.get_w(),h=desc.get_h(); + int x,y; + + assert(file); + + // Output Y' channel, adjusting + // the gamma as we go + for(y=0;yy+1) + { + surface[y+1][x-1]+=error * ((float)3/(float)16); + surface[y+1][x]+=error * ((float)5/(float)16); + if(surface.get_w()>x+1) + surface[y+1][x+1]+=error * ((float)1/(float)16); + } + if(surface.get_w()>x+1) + surface[y][x+1]+=error * ((float)7/(float)16); + } + + fputc(i,file.get()); + } + + + // Create new super-sampled surface + Surface sm_surface(w/2,h/2); + for(y=0;yy+1) + { + sm_surface[y+1][x-1]+=error * ((float)3/(float)16); + sm_surface[y+1][x]+=error * ((float)5/(float)16); + if(sm_surface.get_w()>x+1) + sm_surface[y+1][x+1]+=error * ((float)1/(float)16); + } + if(sm_surface.get_w()>x+1) + sm_surface[y][x+1]+=error * ((float)7/(float)16); + } + fputc(i,file.get()); + } + + // Output V channel + for(y=0;yy+1) + { + sm_surface[y+1][x-1]+=error * ((float)3/(float)16); + sm_surface[y+1][x]+=error * ((float)5/(float)16); + if(sm_surface.get_w()>x+1) + sm_surface[y+1][x+1]+=error * ((float)1/(float)16); + } + if(sm_surface.get_w()>x+1) + sm_surface[y][x+1]+=error * ((float)7/(float)16); + } + fputc(i,file.get()); + } + + // Flush out the frame + fflush(file.get()); +} diff --git a/synfig-core/tags/stable/src/modules/mod_yuv420p/trgt_yuv.h b/synfig-core/tags/stable/src/modules/mod_yuv420p/trgt_yuv.h new file mode 100644 index 0000000..a796425 --- /dev/null +++ b/synfig-core/tags/stable/src/modules/mod_yuv420p/trgt_yuv.h @@ -0,0 +1,69 @@ +/* === S Y N F I G ========================================================= */ +/*! \file trgt_yuv.h +** \brief Template File +** +** $Id$ +** +** \legal +** Copyright (c) 2002-2005 Robert B. Quattlebaum Jr., Adrian Bentley +** +** This package is free software; you can redistribute it and/or +** modify it under the terms of the GNU General Public License as +** published by the Free Software Foundation; either version 2 of +** the License, or (at your option) any later version. +** +** This package is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +** General Public License for more details. +** \endlegal +*/ +/* ========================================================================= */ + +/* === S T A R T =========================================================== */ + +#ifndef __SYNFIG_TRGT_PPM_H +#define __SYNFIG_TRGT_PPM_H + +/* === H E A D E R S ======================================================= */ + +#include +#include +#include +#include +#include + +/* === M A C R O S ========================================================= */ + +/* === T Y P E D E F S ===================================================== */ + +/* === C L A S S E S & S T R U C T S ======================================= */ + +class yuv : public synfig::Target_Scanline +{ + SYNFIG_TARGET_MODULE_EXT + +private: + + synfig::String filename; + synfig::SmartFILE file; + synfig::Surface surface; + + bool dithering; + +public: + + yuv(const char *filename); + virtual ~yuv(); + + virtual bool set_rend_desc(synfig::RendDesc *desc); + virtual bool start_frame(synfig::ProgressCallback *cb); + virtual void end_frame(); + + virtual synfig::Color* start_scanline(int scanline); + virtual bool end_scanline(); +}; + +/* === E N D =============================================================== */ + +#endif diff --git a/synfig-core/tags/stable/src/modules/mod_yuv420p/unmod_yuv420p.nsh b/synfig-core/tags/stable/src/modules/mod_yuv420p/unmod_yuv420p.nsh new file mode 100644 index 0000000..954b275 --- /dev/null +++ b/synfig-core/tags/stable/src/modules/mod_yuv420p/unmod_yuv420p.nsh @@ -0,0 +1,8 @@ +Section "un.mod_yuv420p" + Delete "$INSTDIR\lib\synfig\modules\mod_yuv420p.dll" + RMDir "$INSTDIR\lib\synfig\modules" + RMDir "$INSTDIR\lib\synfig" + RMDir "$INSTDIR\lib" + RMDir "$INSTDIR" +SectionEnd + diff --git a/synfig-core/tags/stable/src/modules/mptr_mplayer/Makefile.am b/synfig-core/tags/stable/src/modules/mptr_mplayer/Makefile.am new file mode 100644 index 0000000..5580ade --- /dev/null +++ b/synfig-core/tags/stable/src/modules/mptr_mplayer/Makefile.am @@ -0,0 +1,15 @@ +# $Id$ + + +MAINTAINERCLEANFILES=Makefile.in +INCLUDES = -I$(top_srcdir)/src + +moduledir=@MODULE_DIR@ + +module_LTLIBRARIES = libmptr_mplayer.la +libmptr_mplayer_la_SOURCES = main.cpp mptr_mplayer.cpp mptr_mplayer.h +libmptr_mplayer_la_LDFLAGS = -module -no-undefined +libmptr_mplayer_la_LIBADD = -L../../synfig -lsynfig @SYNFIG_LIBS@ + + + diff --git a/synfig-core/tags/stable/src/modules/mptr_mplayer/main.cpp b/synfig-core/tags/stable/src/modules/mptr_mplayer/main.cpp new file mode 100644 index 0000000..8638ae3 --- /dev/null +++ b/synfig-core/tags/stable/src/modules/mptr_mplayer/main.cpp @@ -0,0 +1,58 @@ +/* === S Y N F I G ========================================================= */ +/*! \file mptr_mplayer/main.cpp +** \brief Template Header +** +** $Id$ +** +** \legal +** Copyright (c) 2002-2005 Robert B. Quattlebaum Jr., Adrian Bentley +** +** This package is free software; you can redistribute it and/or +** modify it under the terms of the GNU General Public License as +** published by the Free Software Foundation; either version 2 of +** the License, or (at your option) any later version. +** +** This package is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +** General Public License for more details. +** \endlegal +** +** === N O T E S =========================================================== +** +** ========================================================================= */ + +/* === H E A D E R S ======================================================= */ + +#define SYNFIG_MODULE + +#ifdef USING_PCH +# include "pch.h" +#else +#ifdef HAVE_CONFIG_H +# include +#endif + +#include +#include "mptr_mplayer.h" +#endif + +/* === E N T R Y P O I N T ================================================= */ + +MODULE_DESC_BEGIN(mptr_mplayer) + MODULE_NAME("MPlayer Movie Importer") + MODULE_DESCRIPTION("ARGH") + MODULE_AUTHOR("Robert B. Quattlebaum") + MODULE_VERSION("1.0") + MODULE_COPYRIGHT(SYNFIG_COPYRIGHT) +MODULE_DESC_END + +MODULE_INVENTORY_BEGIN(mptr_mplayer) + BEGIN_IMPORTERS + IMPORTER_EXT(mplayer_mptr,"avi") + IMPORTER_EXT(mplayer_mptr,"mpg") + IMPORTER_EXT(mplayer_mptr,"mpeg") + IMPORTER_EXT(mplayer_mptr,"mov") + IMPORTER_EXT(mplayer_mptr,"rm") + END_IMPORTERS +MODULE_INVENTORY_END diff --git a/synfig-core/tags/stable/src/modules/mptr_mplayer/mptr_mplayer.cpp b/synfig-core/tags/stable/src/modules/mptr_mplayer/mptr_mplayer.cpp new file mode 100644 index 0000000..f6a621a --- /dev/null +++ b/synfig-core/tags/stable/src/modules/mptr_mplayer/mptr_mplayer.cpp @@ -0,0 +1,130 @@ +/* === S Y N F I G ========================================================= */ +/*! \file mptr_mplayer.cpp +** \brief ppm Target Module +** +** $Id$ +** +** \legal +** Copyright (c) 2002-2005 Robert B. Quattlebaum Jr., Adrian Bentley +** +** This package is free software; you can redistribute it and/or +** modify it under the terms of the GNU General Public License as +** published by the Free Software Foundation; either version 2 of +** the License, or (at your option) any later version. +** +** This package is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +** General Public License for more details. +** \endlegal +** +** === N O T E S =========================================================== +** +** ========================================================================= */ + +/* === H E A D E R S ======================================================= */ + +#ifdef USING_PCH +# include "pch.h" +#else +#ifdef HAVE_CONFIG_H +# include +#endif + +#include +#include +#include "mptr_mplayer.h" +#include +#include +#include +#include +#include +#endif + +/* === M A C R O S ========================================================= */ + +using namespace synfig; +using namespace std; +using namespace etl; + +/* === G L O B A L S ======================================================= */ + +const char mplayer_mptr::Name[]="avi"; +const char mplayer_mptr::Ext[]="avi"; + +/* === M E T H O D S ======================================================= */ + +Importer * +mplayer_mptr::New(const char *file) +{ + return new mplayer_mptr(file); +} + +mplayer_mptr::mplayer_mptr(const char *file) +{ + filename=file; +} + +mplayer_mptr::~mplayer_mptr() +{ +} + +bool +mplayer_mptr::GetFrame(Time time, synfig::Surface &surface, synfig::ProgressCallback *) +{ + int ret; + ret=system( + strprintf("/usr/local/bin/mencoder \"%s\" -ovc rawrgb -ss %f -endpos 0 -nosound -o /tmp/tmp.synfig.rgbdata | grep \"VIDEO\" > /tmp/tmp.synfig.size", + filename.c_str(), + time + ).c_str() + ); + /* + if(ret!=0) + { + cerr<<"mencoder execution failed."< +#include +#include "string.h" + +/* === M A C R O S ========================================================= */ + +/* === T Y P E D E F S ===================================================== */ + +/* === C L A S S E S & S T R U C T S ======================================= */ + +class mplayer_mptr : public synfig::Importer +{ +public: +private: + String filename; + +public: + mplayer_mptr(const char *filename); + ~mplayer_mptr(); + + + static const char Name[]; + static const char Ext[]; + + virtual bool GetFrame(synfig::Time time, synfig::Surface &, synfig::ProgressCallback *); + + static synfig::Importer *New(const char *filename); +}; + +/* === E N D =============================================================== */ + +#endif diff --git a/synfig-core/tags/stable/src/modules/synfig_modules.cfg.in b/synfig-core/tags/stable/src/modules/synfig_modules.cfg.in new file mode 100644 index 0000000..d118c8e --- /dev/null +++ b/synfig-core/tags/stable/src/modules/synfig_modules.cfg.in @@ -0,0 +1,18 @@ +lyr_std +mod_gradient +mod_geometry +mod_noise +mod_particle +lyr_freetype +mod_filter +mod_ffmpeg +mod_imagemagick +mod_bmp +mod_dv +mod_png +mod_ppm +mod_gif +mod_openexr +mod_jpeg +mod_libavcodec +mod_yuv420p diff --git a/synfig-core/tags/stable/src/modules/template.nsh b/synfig-core/tags/stable/src/modules/template.nsh new file mode 100644 index 0000000..bc6ede8 --- /dev/null +++ b/synfig-core/tags/stable/src/modules/template.nsh @@ -0,0 +1,21 @@ +; The stuff to install +Section "@MODNAME@" Sec_@MODNAME@ + +; SectionIn RO + + ; Set output path to the installation directory. + SetOutPath "$INSTDIR\lib\synfig\modules" + + ; Put file there + File /oname=@MODNAME@.dll "src\modules\@MODNAME@\.libs\lib@MODNAME@-0.dll" + + + FileOpen $0 $INSTDIR\etc\synfig_modules.cfg a + FileSeek $0 0 END + FileWrite $0 "@MODNAME@" + FileWriteByte $0 "13" + FileWriteByte $0 "10" + FileClose $0 + +SectionEnd + diff --git a/synfig-core/tags/stable/src/modules/untemplate.nsh b/synfig-core/tags/stable/src/modules/untemplate.nsh new file mode 100644 index 0000000..7736e30 --- /dev/null +++ b/synfig-core/tags/stable/src/modules/untemplate.nsh @@ -0,0 +1,8 @@ +Section "un.@MODNAME@" + Delete "$INSTDIR\lib\synfig\modules\@MODNAME@.dll" + RMDir "$INSTDIR\lib\synfig\modules" + RMDir "$INSTDIR\lib\synfig" + RMDir "$INSTDIR\lib" + RMDir "$INSTDIR" +SectionEnd + diff --git a/synfig-core/tags/stable/src/synfig/Makefile.am b/synfig-core/tags/stable/src/synfig/Makefile.am new file mode 100644 index 0000000..980956d --- /dev/null +++ b/synfig-core/tags/stable/src/synfig/Makefile.am @@ -0,0 +1,35 @@ +# $Id$ + +# SUBDIRS=proto + +MAINTAINERCLEANFILES=Makefile.in proto/nodebase.h +INCLUDES = -I$(top_srcdir)/src -I$(top_srcdir)/libltdl + +EXTRA_DIST=surfacenew.cpp pch.h proto/Makefile proto/nodebase.h proto/nodebase.px proto/proto.m4 synfig.nsh + +LAYERHEADERS=layer_motionblur.h layer_pastecanvas.h layer_solidcolor.h layer_polygon.h layer_composite.h layer_bitmap.h layer_mime.h layer_shape.h +LAYERSOURCES=layer_motionblur.cpp layer_pastecanvas.cpp layer_solidcolor.cpp layer_polygon.cpp layer_composite.cpp layer_bitmap.cpp layer_mime.cpp layer_shape.cpp + +TARGETHEADERS=target_scanline.h target_tile.h target_multi.h target_null.h target_null_tile.h +TARGETSOURCES=target_scanline.cpp target_tile.cpp target_multi.cpp target_null.cpp target_null_tile.cpp + +IMPORTERHEADERS=listimporter.h +IMPORTERSOURCES=listimporter.cpp + +VALUENODEHEADERS=valuenode_sine.h valuenode_radialcomposite.h valuenode_bline.h valuenode_segcalcvertex.h valuenode_segcalctangent.h valuenode_twotone.h valuenode_stripes.h valuenode_subtract.h valuenode_const.h valuenode_reference.h valuenode_linear.h valuenode_composite.h valuenode_dynamiclist.h valuenode_animated.h valuenode_scale.h valuenode_timedswap.h valuenode_gradientrotate.h +VALUENODESOURCES=valuenode_sine.cpp valuenode_radialcomposite.cpp valuenode_bline.cpp valuenode_segcalcvertex.cpp valuenode_segcalctangent.cpp valuenode_twotone.cpp valuenode_stripes.cpp valuenode_subtract.cpp valuenode_const.cpp valuenode_reference.cpp valuenode_linear.cpp valuenode_composite.cpp valuenode_dynamiclist.cpp valuenode_animated.cpp valuenode_scale.cpp valuenode_timedswap.cpp valuenode_gradientrotate.cpp + +VALUEHEADERS=blinepoint.h gradient.h value.h +VALUESOURCES=blinepoint.cpp gradient.cpp value.cpp + +SYNFIGHEADERS=protocol.h surfacenew.h mutex.h timepointcollect.h interpolation.h guidset.h guid.h quick_rng.h rect.h node.h smartfile.h distance.h palette.h main.h waypoint.h activepoint.h gamma.h uniqueid.h canvasbase.h context.h real.h paramdesc.h string_decl.h angle.h keyframe.h synfig.h renddesc.h general.h importer.h surface.h module.h layer.h vector.h color.h canvas.h render.h target.h loadcanvas.h savecanvas.h valuenode.h version.h segment.h types.h exception.h string.h time.h blur.h transform.h curve_helper.h polynomial_root.h curveset.h +SYNFIGSOURCES=mutex.cpp timepointcollect.cpp rect.cpp node.cpp guid.cpp loadcanvas.cpp distance.cpp palette.cpp paramdesc.cpp waypoint.cpp activepoint.cpp gamma.cpp uniqueid.cpp context.cpp renddesc.cpp time.cpp exception.cpp keyframe.cpp main.cpp surface.cpp module.cpp importer.cpp layer.cpp color.cpp canvas.cpp render.cpp target.cpp savecanvas.cpp valuenode.cpp blur.cpp curve_helper.cpp polynomial_root.cpp transform.cpp curveset.cpp + +lib_LTLIBRARIES = libsynfig.la +libsynfig_la_SOURCES = $(VALUEHEADERS) $(VALUESOURCES) $(LAYERSOURCES) $(LAYERHEADERS) $(TARGETHEADERS) $(TARGETSOURCES) $(VALUENODEHEADERS) $(VALUENODESOURCES) $(SYNFIGHEADERS) $(SYNFIGSOURCES) $(IMPORTERHEADERS) $(IMPORTERSOURCES) +libsynfig_la_LIBADD = @LIBLTDL@ @SYNFIG_LIBS@ @LIBADD_DL@ +libsynfig_la_CXXFLAGS = @SYNFIG_CFLAGS@ -DLIBDIR="\"@libdir@\"" -DSYSCONFDIR="\"@sysconfdir@\"" +libsynfig_la_LDFLAGS = -export-dynamic -no-undefined -version-info 0:0:0 + +include_synfigdir=@synfigincludedir@/synfig +include_synfig_HEADERS = $(SYNFIGHEADERS) $(LAYERHEADERS) $(TARGETHEADERS) $(VALUENODEHEADERS) $(IMPORTERHEADERS) $(VALUEHEADERS) diff --git a/synfig-core/tags/stable/src/synfig/activepoint.cpp b/synfig-core/tags/stable/src/synfig/activepoint.cpp new file mode 100644 index 0000000..13bb6ba --- /dev/null +++ b/synfig-core/tags/stable/src/synfig/activepoint.cpp @@ -0,0 +1,55 @@ +/* === S Y N F I G ========================================================= */ +/*! \file activepoint.cpp +** \brief Template File +** +** $Id$ +** +** \legal +** Copyright (c) 2002-2005 Robert B. Quattlebaum Jr., Adrian Bentley +** +** This package is free software; you can redistribute it and/or +** modify it under the terms of the GNU General Public License as +** published by the Free Software Foundation; either version 2 of +** the License, or (at your option) any later version. +** +** This package is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +** General Public License for more details. +** \endlegal +*/ +/* ========================================================================= */ + +/* === H E A D E R S ======================================================= */ + +#ifdef USING_PCH +# include "pch.h" +#else +#ifdef HAVE_CONFIG_H +# include +#endif + +#include "activepoint.h" +#include "guid.h" + +#endif + +/* === U S I N G =========================================================== */ + +using namespace std; +using namespace etl; +using namespace synfig; + +/* === M A C R O S ========================================================= */ + +/* === G L O B A L S ======================================================= */ + +/* === P R O C E D U R E S ================================================= */ + +/* === M E T H O D S ======================================================= */ + +synfig::GUID +Activepoint::get_guid()const +{ + return GUID::hasher(get_uid()); +} diff --git a/synfig-core/tags/stable/src/synfig/activepoint.h b/synfig-core/tags/stable/src/synfig/activepoint.h new file mode 100644 index 0000000..cdd7915 --- /dev/null +++ b/synfig-core/tags/stable/src/synfig/activepoint.h @@ -0,0 +1,90 @@ +#include +/* === S Y N F I G ========================================================= */ +/*! \file activepoint.h +** \brief Template Header +** +** $Id$ +** +** \legal +** Copyright (c) 2002-2005 Robert B. Quattlebaum Jr., Adrian Bentley +** +** This package is free software; you can redistribute it and/or +** modify it under the terms of the GNU General Public License as +** published by the Free Software Foundation; either version 2 of +** the License, or (at your option) any later version. +** +** This package is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +** General Public License for more details. +** \endlegal +*/ +/* ========================================================================= */ + +/* === S T A R T =========================================================== */ + +#ifndef __SYNFIG_ACTIVEPOINT_H +#define __SYNFIG_ACTIVEPOINT_H + +/* === H E A D E R S ======================================================= */ + +#include "time.h" +#include "uniqueid.h" +#include + +/* === M A C R O S ========================================================= */ + +/* === T Y P E D E F S ===================================================== */ + +/* === C L A S S E S & S T R U C T S ======================================= */ + +namespace synfig { +class GUID; +class ValueNode; + +struct Activepoint : public UniqueID +{ +private: + etl::loose_handle parent_; + int index; + +public: + //! Time of the activepoint + Time time; + + //! Priority + int priority; + + //! Does this activepoint turn the entry on, or off? + bool state; + + bool operator<(const Activepoint& rhs) { return time &get_parent_value_node()const { return parent_; } + void set_parent_value_node(const etl::loose_handle &x) { parent_=x; } + + int get_parent_index()const { return index; } + void set_parent_index(int x) { index=x; } + + GUID get_guid()const; +}; // END of struct ValueNode_BLine::Activepoint + +}; // END of namespace synfig + +/* === E N D =============================================================== */ + +#endif diff --git a/synfig-core/tags/stable/src/synfig/angle.h b/synfig-core/tags/stable/src/synfig/angle.h new file mode 100644 index 0000000..d351766 --- /dev/null +++ b/synfig-core/tags/stable/src/synfig/angle.h @@ -0,0 +1,49 @@ +/* === S Y N F I G ========================================================= */ +/*! \file angle.h +** \brief Template Header +** +** $Id$ +** +** \legal +** Copyright (c) 2002-2005 Robert B. Quattlebaum Jr., Adrian Bentley +** +** This package is free software; you can redistribute it and/or +** modify it under the terms of the GNU General Public License as +** published by the Free Software Foundation; either version 2 of +** the License, or (at your option) any later version. +** +** This package is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +** General Public License for more details. +** \endlegal +*/ +/* ========================================================================= */ + +/* === S T A R T =========================================================== */ + +#ifndef __SYNFIG_ANGLE_H +#define __SYNFIG_ANGLE_H + +/* === H E A D E R S ======================================================= */ + +#include + +/* === M A C R O S ========================================================= */ + +/* === T Y P E D E F S ===================================================== */ + +/* === C L A S S E S & S T R U C T S ======================================= */ + +namespace synfig { + +/*! \typedef Angle +** \todo writeme +*/ +typedef etl::angle Angle; + +}; // END of namespace synfig + +/* === E N D =============================================================== */ + +#endif diff --git a/synfig-core/tags/stable/src/synfig/blinepoint.cpp b/synfig-core/tags/stable/src/synfig/blinepoint.cpp new file mode 100644 index 0000000..4291bbf --- /dev/null +++ b/synfig-core/tags/stable/src/synfig/blinepoint.cpp @@ -0,0 +1,63 @@ +/* === S Y N F I G ========================================================= */ +/*! \file blinepoint.cpp +** \brief Template File +** +** $Id$ +** +** \legal +** Copyright (c) 2002-2005 Robert B. Quattlebaum Jr., Adrian Bentley +** +** This package is free software; you can redistribute it and/or +** modify it under the terms of the GNU General Public License as +** published by the Free Software Foundation; either version 2 of +** the License, or (at your option) any later version. +** +** This package is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +** General Public License for more details. +** \endlegal +*/ +/* ========================================================================= */ + +/* === H E A D E R S ======================================================= */ + +#ifdef USING_PCH +# include "pch.h" +#else +#ifdef HAVE_CONFIG_H +# include +#endif + +#include "blinepoint.h" + +#endif + +/* === U S I N G =========================================================== */ + +using namespace std; +using namespace synfig; + +/* === M A C R O S ========================================================= */ + +/* === G L O B A L S ======================================================= */ + +/* === P R O C E D U R E S ================================================= */ + +/* === M E T H O D S ======================================================= */ + +void +synfig::BLinePoint::reverse() +{ + if(split_tangent_) + { + std::swap(tangent_[0],tangent_[1]); + tangent_[0]=-tangent_[0]; + tangent_[1]=-tangent_[1]; + } + else + { + tangent_[0]=-tangent_[0]; + tangent_[1]=-tangent_[1]; + } +} diff --git a/synfig-core/tags/stable/src/synfig/blinepoint.h b/synfig-core/tags/stable/src/synfig/blinepoint.h new file mode 100644 index 0000000..3a75d4b --- /dev/null +++ b/synfig-core/tags/stable/src/synfig/blinepoint.h @@ -0,0 +1,92 @@ +/* === S Y N F I G ========================================================= */ +/*! \file blinepoint.h +** \brief Template Header +** +** $Id$ +** +** \legal +** Copyright (c) 2002-2005 Robert B. Quattlebaum Jr., Adrian Bentley +** +** This package is free software; you can redistribute it and/or +** modify it under the terms of the GNU General Public License as +** published by the Free Software Foundation; either version 2 of +** the License, or (at your option) any later version. +** +** This package is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +** General Public License for more details. +** \endlegal +*/ +/* ========================================================================= */ + +/* === S T A R T =========================================================== */ + +#ifndef __SYNFIG_BLINEPOINT_H +#define __SYNFIG_BLINEPOINT_H + +/* === H E A D E R S ======================================================= */ + +#include "vector.h" +#include "uniqueid.h" +#include + +/* === M A C R O S ========================================================= */ + +/* === T Y P E D E F S ===================================================== */ + +/* === C L A S S E S & S T R U C T S ======================================= */ + +namespace synfig { + +class BLinePoint : public UniqueID +{ +private: + Point vertex_; + Vector tangent_[2]; + float width_; + float origin_; + bool split_tangent_; + +public: + + BLinePoint(): + vertex_(Point(0,0)), + width_(0.01), + origin_(0.0), + split_tangent_(false) + { tangent_[0] = Point(0,0); tangent_[1] = Point(0,0); } + + const Point& get_vertex()const { return vertex_; } + void set_vertex(const Point& x) { vertex_=x; } + + + const Vector& get_tangent1()const { return tangent_[0]; } + const Vector& get_tangent2()const { return split_tangent_?tangent_[1]:tangent_[0]; } + void set_tangent(const Vector& x) { tangent_[0]=tangent_[1]=x; } + void set_tangent1(const Vector& x) { tangent_[0]=x; } + void set_tangent2(const Vector& x) { tangent_[1]=x; } + + + const float& get_width()const { return width_; } + void set_width(float x) { width_=x; } + + // We store the origin offset by 0.5 so that + // can have the origin set to the default by zeroing + // out the structure. + float get_origin()const { return origin_+0.5f; } + void set_origin(float x) { origin_=x-0.5f; } + + + const bool& get_split_tangent_flag()const { return split_tangent_; } + void set_split_tangent_flag(bool x=true) { split_tangent_=x; } + + void reverse(); + +}; // END of class BLinePoint + +}; // END of namespace synfig + +/* === E N D =============================================================== */ + +#endif diff --git a/synfig-core/tags/stable/src/synfig/blur.cpp b/synfig-core/tags/stable/src/synfig/blur.cpp new file mode 100644 index 0000000..ec80fd7 --- /dev/null +++ b/synfig-core/tags/stable/src/synfig/blur.cpp @@ -0,0 +1,1204 @@ +/* === S Y N F I G ========================================================= */ +/*! \file synfig/blur.cpp +** \brief Blur Implementation File +** +** $Id$ +** +** \legal +** Copyright (c) 2002-2005 Robert B. Quattlebaum Jr., Adrian Bentley +** +** This package is free software; you can redistribute it and/or +** modify it under the terms of the GNU General Public License as +** published by the Free Software Foundation; either version 2 of +** the License, or (at your option) any later version. +** +** This package is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +** General Public License for more details. +** \endlegal +*/ +/* ========================================================================= */ + +/* === H E A D E R S ======================================================= */ + +#ifdef USING_PCH +# include "pch.h" +#else +#ifdef HAVE_CONFIG_H +# include +#endif + +#include +#include + +#include "blur.h" + +#include +#include + +#include +#include +#include + +#endif + +/* === U S I N G =========================================================== */ + +using namespace std; +using namespace etl; +using namespace synfig; + +/* === M A C R O S ========================================================= */ + +/* === G L O B A L S ======================================================= */ + +/* === P R O C E D U R E S ================================================= */ + +/* === M E T H O D S ======================================================= */ +Point Blur::operator ()(const Point &pos) const +{ + Point blurpos(pos); + + switch(type) + { + case CROSS: + if(rand()%2) + { + if(size[0]) + blurpos[0]+=(Vector::value_type)( (signed)(RAND_MAX/2)-(signed)rand() )/(Vector::value_type)(RAND_MAX) * size[0]; + } + else + { + if(size[1]) + blurpos[1]+=(Vector::value_type)( (signed)(RAND_MAX/2)-(signed)rand() )/(Vector::value_type)(RAND_MAX) * size[1]; + } + break; + + case DISC: + { + Angle theta=Angle::rotations((float)rand()/(float)RAND_MAX); + Vector::value_type mag=(float)rand()/(float)RAND_MAX; + Vector vect((float)Angle::cos(theta).get()*mag,(float)Angle::sin(theta).get()*mag); + + blurpos[0]+=vect[0]*size[0]; + blurpos[1]+=vect[1]*size[1]; + } + break; + + case FASTGAUSSIAN: + case GAUSSIAN: + // Not quite a true gaussian blur, + // but the results are close enough for me. + if(size[0]) + { + blurpos[0]+=(Vector::value_type)( (signed)(RAND_MAX/2)-(signed)rand() )/(Vector::value_type)(RAND_MAX) * size[0]*3/4; + blurpos[0]+=(Vector::value_type)( (signed)(RAND_MAX/2)-(signed)rand() )/(Vector::value_type)(RAND_MAX) * size[0]*3/4; + } + if(size[1]) + { + blurpos[1]+=(Vector::value_type)( (signed)(RAND_MAX/2)-(signed)rand() )/(Vector::value_type)(RAND_MAX) * size[1]*3/4; + blurpos[1]+=(Vector::value_type)( (signed)(RAND_MAX/2)-(signed)rand() )/(Vector::value_type)(RAND_MAX) * size[1]*3/4; + } + break; + + case BOX: + default: + if(size[0]) + blurpos[0]+=(Vector::value_type)( (signed)(RAND_MAX/2)-(signed)rand() )/(Vector::value_type)(RAND_MAX) * size[0]; + if(size[1]) + blurpos[1]+=(Vector::value_type)( (signed)(RAND_MAX/2)-(signed)rand() )/(Vector::value_type)(RAND_MAX) * size[1]; + break; + } + + return blurpos; +} + +Point Blur::operator ()(synfig::Real x, synfig::Real y) const +{ + return (*this)(Point(x,y)); +} + +//blur functions to make my life easier + +template +static inline T zero() +{ + return (T)0; +} + +template <> +static inline Color zero() +{ + return Color::alpha(); +} + +template +static void GuassianBlur_2x2(etl::surface &surface) +{ + int x,y; + T Tmp1,Tmp2,SR0; + + T *SC0=new T[surface.get_w()]; + + memcpy(SC0,surface[0],surface.get_w()*sizeof(T)); + + for(y=0;y +static void GuassianBlur_3x3(etl::surface &surface) +{ + int x,y,u,v,w,h; + T Tmp1,Tmp2,SR0,SR1; + + w=surface.get_w(); + h=surface.get_h(); + + T *SC0=new T[w+1]; + T *SC1=new T[w+1]; + + // Setup the row bufers + for(x=0;x=h) + v=h-1; + else + v=y; + + SR0=SR1=surface[y][0]; + for(x=0;x<=w;x++) + { + if(x>=w) + u=w-1; + else + u=x; + + // Row Machine + Tmp1=surface[v][u]; + Tmp2=SR0+Tmp1; + SR0=Tmp1; + Tmp1=SR1+Tmp2; + SR1=Tmp2; + + // Column Machine + Tmp2=SC0[x]+Tmp1; + SC0[x]=Tmp1; + if(y&&x) + surface[y-1][x-1]=(SC1[x]+Tmp2)/16; + SC1[x]=Tmp2; + } + } + + delete [] SC0; + delete [] SC1; +} + +template +inline static void GaussianBlur_5x5_(etl::surface &surface,T *SC0,T *SC1,T *SC2,T *SC3) +{ + int x,y,u,v,w,h; + T Tmp1,Tmp2,SR0,SR1,SR2,SR3; + + w=surface.get_w(); + h=surface.get_h(); + + // Setup the row bufers + for(x=0;x=h) + v=h-1; + else + v=y; + + SR0=SR1=SR2=SR3=0; + SR0=surface[v][0]*1.5; + for(x=0;x=w) + u=w-1; + else + u=x; + + // Row Machine + Tmp1=surface[v][u]; + Tmp2=SR0+Tmp1; + SR0=Tmp1; + Tmp1=SR1+Tmp2; + SR1=Tmp2; + Tmp2=SR2+Tmp1; + SR2=Tmp1; + Tmp1=SR3+Tmp2; + SR3=Tmp2; + + // Column Machine + Tmp2=SC0[x]+Tmp1; + SC0[x]=Tmp1; + Tmp1=SC1[x]+Tmp2; + SC1[x]=Tmp2; + Tmp2=SC2[x]+Tmp1; + SC2[x]=Tmp1; + if(y>1&&x>1) + surface[y-2][x-2]=(SC3[x]+Tmp2)/256; + SC3[x]=Tmp2; + } + } + +} + +template +inline static void GaussianBlur_5x5(etl::surface &surface) +{ + int w=surface.get_w(); + + T *SC0=new T[w+2]; + T *SC1=new T[w+2]; + T *SC2=new T[w+2]; + T *SC3=new T[w+2]; + + GaussianBlur_5x5_(surface,SC0,SC1,SC2,SC3); + + delete [] SC0; + delete [] SC1; + delete [] SC2; + delete [] SC3; +} + +template +static void GuassianBlur_nxn(etl::surface &surface,int n) +{ + int x,y,u,v,w,h; + int half_n=n/2,i; + T inv_divisor=pow(2.0,(n-1)); + T Tmp1,Tmp2; + inv_divisor=1.0/(inv_divisor*inv_divisor); + + w=surface.get_w(); + h=surface.get_h(); + + T SR[n-1]; + T *SC[n-1]; + + for(i=0;i=h) + v=h-1; + else + v=y; + + memset(SR,0,(n-1)*sizeof(T)); + +// SR[0]=surface[v][0]*(2.0-1.9/n); + + for(x=0;x=w) + u=w-1; + else + u=x; + + Tmp1=surface[v][u]; + // Row Machine + for(i=0;i=half_n&&x>=half_n) + surface[y-half_n][x-half_n]=(SC[n-2][x]+Tmp2)*inv_divisor; + SC[n-2][x]=Tmp2; + } + } + + for(i=0;i +static void GuassianBlur_2x1(etl::surface &surface) +{ + int x,y; + AT Tmp1,Tmp2,SR0; + + for(y=0;y +static void GuassianBlur_3x1(etl::surface &surface) +{ + int x,y; + AT Tmp1,Tmp2,SR0,SR1; + + for(y=0;y +static void GuassianBlur_1x2(etl::surface &surface) +{ + int x,y; + AT Tmp1,Tmp2,SR0; + + for(x=0;x(); + for(y=0;y +static void GuassianBlur_1x3(etl::surface &surface) +{ + int x,y; + AT Tmp1,Tmp2,SR0,SR1; + + for(x=0;x2) + { + int x2,y2; + Surface tmp_surface(worksurface); + + for(y=0;y1.0) + continue; + + //cap the pixel indices to inside the surface + int u= x+x2, + v= y+y2; + + if( u < 0 ) u = 0; + if( u >= w ) u = w-1; + + if( v < 0 ) v = 0; + if( v >= h ) v = h-1; + + //accumulate the color, and # of pixels added in + color += tmp_surface[v][u]; + total++; + } + } + + //blend the color with the original color + //if(get_amount()==1.0 && get_blend_method()==Color::BLEND_STRAIGHT) + worksurface[y][x]=color/total; + //else + // worksurface[y][x]=Color::blend(color/total,tmp_surface[y][x],get_amount(),get_blend_method()); + } + if(!blurcall.amount_complete(y,h)) + { + //if(cb)cb->error(strprintf(__FILE__"%d: Accelerated Renderer Failure",__LINE__)); + return false; + } + } + break; + } + + //if we don't qualify for disc blur just use box blur + } + + case Blur::BOX: // B O X ------------------------------------------------------- + { + //horizontal part + //synfig::info("Blur: Starting Box blur (surface valid %d)", (int)surface_valid(worksurface)); + + Surface temp_surface; + temp_surface.set_wh(w,h); + + if(size[0]) + { + int length = halfsizex; + length=std::max(1,length); + + //synfig::info("Blur: hbox blur work -> temp %d", length); + etl::hbox_blur(worksurface.begin(),worksurface.end(),length,temp_surface.begin()); + } + else temp_surface = worksurface; + //synfig::info("Blur: hbox finished"); + + //vertical part + //Surface temp_surface2; + //temp_surface2.set_wh(w,h); + + if(size[1]) + { + int length = halfsizey; + length = std::max(1,length); + + //synfig::info("Blur: vbox blur temp -> work %d",length); + etl::vbox_blur(temp_surface.begin(),temp_surface.end(),length,worksurface.begin()); + } + else worksurface = temp_surface; + //synfig::info("Blur: vbox finished"); + + //blend with the original surface + /*int x,y; + for(y=0;y=4 && bh>=4) + { + etl::gaussian_blur_5x5_(gauss_surface->begin(),gauss_surface->get_w(),gauss_surface->get_h(),SC0,SC1,SC2,SC3); + bw-=4,bh-=4; + } + else + if(bw>=2 && bh>=2) + { + etl::gaussian_blur_3x3(gauss_surface->begin(),gauss_surface->end()); + bw-=2,bh-=2; + } + else + if(bw>=1 && bh>=1) + { + GuassianBlur_2x2(*gauss_surface); + bw--,bh--; + } + + //synfig::warning("Didn't crash yet bi - %d",i++); + } + while(bw) + { + if(!blurcall.amount_complete(max-(bw+bh),max))return false; + if(bw>=2) + { + GuassianBlur_3x1(*gauss_surface); + bw-=2; + } + else + if(bw>=1) + { + GuassianBlur_2x1(*gauss_surface); + bw--; + } + //synfig::warning("Didn't crash yet bi - %d",i++); + } + while(bh) + { + if(!blurcall.amount_complete(max-(bw+bh),max))return false; + if(bh>=2) + { + GuassianBlur_1x3(*gauss_surface); + bh-=2; + } + else + if(bh>=1) + { + GuassianBlur_1x2(*gauss_surface); + bh--; + } + //synfig::warning("Didn't crash yet bi - %d",i++); + } + + delete [] SC0; + delete [] SC1; + delete [] SC2; + delete [] SC3; + + /*if(get_amount()!=1.0 || get_blend_method()!=Color::BLEND_STRAIGHT) + { + int x,y; + for(y=0;yset_wh(renddesc.get_w(),renddesc.get_h()); + out.set_wh(w,h); + + //divide out the alpha + for(y=0;y &surface, + const Vector &resolution, + surface &out) const +{ + int w = surface.get_w(), + h = surface.get_h(); + + if(w == 0 || h == 0 || resolution[0] == 0 || resolution[1] == 0) return false; + + const Real pw = resolution[0]/w, + ph = resolution[1]/h; + + int halfsizex = (int) (abs(size[0]*.5/pw) + 1), + halfsizey = (int) (abs(size[1]*.5/ph) + 1); + int x,y; + + SuperCallback blurcall(cb,0,5000,5000); + + etl::surface worksurface(surface); + + //don't need to premultiply because we are dealing with ONLY alpha + + switch(type) + { + case Blur::DISC: // D I S C ---------------------------------------------------------- + { + int bw = halfsizex; + int bh = halfsizey; + + if(size[0] && size[1] && w*h>2) + { + int x2,y2; + etl::surface tmp_surface(worksurface); + + for(y=0;y1.0) + continue; + + //cap the pixel indices to inside the surface + int u= x+x2, + v= y+y2; + + if( u < 0 ) u = 0; + if( u >= w ) u = w-1; + + if( v < 0 ) v = 0; + if( v >= h ) v = h-1; + + //accumulate the color, and # of pixels added in + a += tmp_surface[v][u]; + total++; + } + } + + //blend the color with the original color + //if(get_amount()==1.0 && get_blend_method()==Color::BLEND_STRAIGHT) + worksurface[y][x]=a/total; + //else + // worksurface[y][x]=Color::blend(color/total,tmp_surface[y][x],get_amount(),get_blend_method()); + } + if(!blurcall.amount_complete(y,h)) + { + //if(cb)cb->error(strprintf(__FILE__"%d: Accelerated Renderer Failure",__LINE__)); + return false; + } + } + break; + } + + //if we don't qualify for disc blur just use box blur + } + + case Blur::BOX: // B O X ------------------------------------------------------- + { + //horizontal part + etl::surface temp_surface; + temp_surface.set_wh(w,h); + + if(size[0]) + { + int length = halfsizex; + length=std::max(1,length); + + etl::hbox_blur(worksurface.begin(),worksurface.end(),length,temp_surface.begin()); + } + else temp_surface = worksurface; + + //vertical part + //etl::surface temp_surface2; + //temp_surface2.set_wh(w,h); + + if(size[1]) + { + int length = halfsizey; + length = std::max(1,length); + etl::vbox_blur(temp_surface.begin(),temp_surface.end(),length,worksurface.begin()); + } + else worksurface = temp_surface; + + //blend with the original surface + /*int x,y; + for(y=0;y temp_surface; + temp_surface.set_wh(w,h); + + //etl::surface temp_surface2; + //temp_surface2.set_wh(w,h); + + //horizontal part + if(size[0]) + { + Real length=abs((float)w/(resolution[0]))*size[0]*0.5+1; + length=std::max(1.0,length); + + //two box blurs produces: 1 2 1 + etl::hbox_blur(worksurface.begin(),w,h,(int)(length*3/4),temp_surface.begin()); + etl::hbox_blur(temp_surface.begin(),w,h,(int)(length*3/4),worksurface.begin()); + } + //else temp_surface2=worksurface; + + //vertical part + if(size[1]) + { + Real length=abs((float)h/(resolution[1]))*size[1]*0.5+1; + length=std::max(1.0,length); + + //two box blurs produces: 1 2 1 on the horizontal 1 2 1 + etl::vbox_blur(worksurface.begin(),w,h,(int)(length*3/4),temp_surface.begin()); + etl::vbox_blur(temp_surface.begin(),w,h,(int)(length*3/4),worksurface.begin()); + } + //else temp_surface2=temp_surface2; + + /*int x,y; + for(y=0;y temp_surface; + temp_surface.set_wh(worksurface.get_w(),worksurface.get_h()); + + if(size[0]) + { + int length = halfsizex; + length = std::max(1,length); + + etl::hbox_blur(worksurface.begin(),worksurface.end(),length,temp_surface.begin()); + } + else temp_surface = worksurface; + + //vertical part + etl::surface temp_surface2; + temp_surface2.set_wh(worksurface.get_w(),worksurface.get_h()); + + if(size[1]) + { + int length = halfsizey; + length = std::max(1,length); + + etl::vbox_blur(worksurface.begin(),worksurface.end(),length,temp_surface2.begin()); + } + else temp_surface2 = worksurface; + + //blend the two together + int x,y; + + for(y=0;y temp_surface; + etl::surface *gauss_surface; + + //if(get_amount()==1.0 && get_blend_method()==Color::BLEND_STRAIGHT) + gauss_surface = &worksurface; + /*else + { + temp_surface = worksurface; + gauss_surface = &temp_surface; + }*/ + + /* Squaring the pw and ph values + is necessary to insure consistant + results when rendered to different + resolutions. + Unfortunately, this automaticly + squares our rendertime. + There has got to be a faster way... + */ + pw=pw*pw; + ph=ph*ph; + + int bw = (int)(abs(pw)*size[0]*GAUSSIAN_ADJUSTMENT+0.5); + int bh = (int)(abs(ph)*size[1]*GAUSSIAN_ADJUSTMENT+0.5); + int max=bw+bh; + + float *SC0=new float[w+2]; + float *SC1=new float[w+2]; + float *SC2=new float[w+2]; + float *SC3=new float[w+2]; + + memset(SC0,0,(w+2)*sizeof(float)); + memset(SC0,0,(w+2)*sizeof(float)); + memset(SC0,0,(w+2)*sizeof(float)); + memset(SC0,0,(w+2)*sizeof(float)); + + //int i = 0; + + while(bw&&bh) + { + if(!blurcall.amount_complete(max-(bw+bh),max))return false; + + if(bw>=4 && bh>=4) + { + etl::gaussian_blur_5x5_(gauss_surface->begin(),gauss_surface->get_w(),gauss_surface->get_h(),SC0,SC1,SC2,SC3); + bw-=4,bh-=4; + } + else + if(bw>=2 && bh>=2) + { + etl::gaussian_blur_3x3(gauss_surface->begin(),gauss_surface->end()); + bw-=2,bh-=2; + } + else + if(bw>=1 && bh>=1) + { + GuassianBlur_2x2(*gauss_surface); + bw--,bh--; + } + } + + while(bw) + { + if(!blurcall.amount_complete(max-(bw+bh),max))return false; + if(bw>=2) + { + GuassianBlur_3x1(*gauss_surface); + bw-=2; + } + else + if(bw>=1) + { + GuassianBlur_2x1(*gauss_surface); + bw--; + } + } + + while(bh) + { + if(!blurcall.amount_complete(max-(bw+bh),max))return false; + if(bh>=2) + { + GuassianBlur_1x3(*gauss_surface); + bh-=2; + } + else + if(bh>=1) + { + GuassianBlur_1x2(*gauss_surface); + bh--; + } + } + + delete [] SC0; + delete [] SC1; + delete [] SC2; + delete [] SC3; + + /*if(get_amount()!=1.0 || get_blend_method()!=Color::BLEND_STRAIGHT) + { + int x,y; + for(y=0;yset_wh(renddesc.get_w(),renddesc.get_h()); + out.set_wh(w,h); + + //divide out the alpha - don't need to cause we rock + out = worksurface; + + //we are FRIGGGIN done.... + blurcall.amount_complete(100,100); + + return true; +} + +/* === E N T R Y P O I N T ================================================= */ diff --git a/synfig-core/tags/stable/src/synfig/blur.h b/synfig-core/tags/stable/src/synfig/blur.h new file mode 100644 index 0000000..9672a28 --- /dev/null +++ b/synfig-core/tags/stable/src/synfig/blur.h @@ -0,0 +1,88 @@ +/* === S Y N F I G ========================================================= */ +/*! \file synfig/blur.h +** \brief Blur Helper Header file +** +** $Id$ +** +** \legal +** Copyright (c) 2002-2005 Robert B. Quattlebaum Jr., Adrian Bentley +** +** This package is free software; you can redistribute it and/or +** modify it under the terms of the GNU General Public License as +** published by the Free Software Foundation; either version 2 of +** the License, or (at your option) any later version. +** +** This package is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +** General Public License for more details. +** \endlegal +*/ +/* ========================================================================= */ + +/* === S T A R T =========================================================== */ + +#ifndef __SYNFIG_BLUR_HELPER_H +#define __SYNFIG_BLUR_HELPER_H + +/* === H E A D E R S ======================================================= */ +#include +#include +#include + +/* === M A C R O S ========================================================= */ + +/* === T Y P E D E F S ===================================================== */ + +/* === C L A S S E S & S T R U C T S ======================================= */ +class synfig::ProgressCallback; + +class Blur +{ +public: + enum Type + { + BOX =0, + FASTGAUSSIAN =1, + CROSS =2, + GAUSSIAN =3, + DISC =4, + + FORCE_DWORD = 0x8fffffff + }; + +private: + synfig::Point size; + int type; + + synfig::ProgressCallback *cb; + +public: + synfig::Point & set_size(const synfig::Point &v) { return (size = v); } + const synfig::Point & get_size() const { return size; } + synfig::Point & get_size() { return size; } + + int & set_type(const int &t) { return (type = t); } + const int & get_type() const { return type; } + int & get_type() { return type; } + + Blur() {} + Blur(const synfig::Point &s, int t, synfig::ProgressCallback *callb=0):size(s), type(t), cb(callb) {} + Blur(synfig::Real sx, synfig::Real sy, int t, synfig::ProgressCallback *callb = 0): size(sx,sy), type(t), cb(callb) {} + + //Parametric Blur + synfig::Point operator ()(const synfig::Point &p) const; + synfig::Point operator ()(synfig::Real x, synfig::Real y) const; + + //Surface based blur + // input surface can be the same as output surface, + // though both have to be the same size + bool operator ()(const synfig::Surface &surface, const synfig::Vector &resolution, synfig::Surface &out) const; + + bool operator ()(const etl::surface &surface, const synfig::Vector &resolution, etl::surface &out) const; + //bool operator ()(const etl::surface &surface, const synfig::Vector &resolution, etl::surface &out) const; +}; + +/* === E N D =============================================================== */ + +#endif diff --git a/synfig-core/tags/stable/src/synfig/canvas.cpp b/synfig-core/tags/stable/src/synfig/canvas.cpp new file mode 100644 index 0000000..aba6730 --- /dev/null +++ b/synfig-core/tags/stable/src/synfig/canvas.cpp @@ -0,0 +1,1205 @@ +/* === S Y N F I G ========================================================= */ +/*! \file canvas.cpp +** \brief Canvas Class Member Definitions +** +** $Id$ +** +** \legal +** Copyright (c) 2002-2005 Robert B. Quattlebaum Jr., Adrian Bentley +** +** This package is free software; you can redistribute it and/or +** modify it under the terms of the GNU General Public License as +** published by the Free Software Foundation; either version 2 of +** the License, or (at your option) any later version. +** +** This package is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +** General Public License for more details. +** \endlegal +*/ +/* ========================================================================= */ + +/* === H E A D E R S ======================================================= */ + +#define SYNFIG_NO_ANGLE + +#ifdef USING_PCH +# include "pch.h" +#else +#ifdef HAVE_CONFIG_H +# include +#endif + +#include "layer.h" +#include "canvas.h" +#include +#include "exception.h" +#include "time.h" +#include "context.h" +#include "layer_pastecanvas.h" +#include + +#endif + +using namespace synfig; +using namespace etl; +using namespace std; + +namespace synfig { extern Canvas::Handle open_canvas(const String &filename); }; + +/* === M A C R O S ========================================================= */ + +struct _CanvasCounter +{ + static int counter; + ~_CanvasCounter() + { + if(counter) + synfig::error("%d canvases not yet deleted!",counter); + } +} _canvas_counter; + +int _CanvasCounter::counter(0); + +/* === G L O B A L S ======================================================= */ + +/* === P R O C E D U R E S ================================================= */ + +/* === M E T H O D S ======================================================= */ + +Canvas::Canvas(const string &id): + id_ (id), + cur_time_ (0), + is_inline_ (false), + is_dirty_ (true), + op_flag_ (false) +{ + _CanvasCounter::counter++; + clear(); +} + +void +Canvas::on_changed() +{ + is_dirty_=true; + Node::on_changed(); +} + +Canvas::~Canvas() +{ + //if(is_inline() && parent_) assert(0); + _CanvasCounter::counter--; + //DEBUGPOINT(); + clear(); + begin_delete(); +} + +Canvas::iterator +Canvas::end() +{ + return CanvasBase::end()-1; +} + +Canvas::const_iterator +Canvas::end()const +{ + return CanvasBase::end()-1; +} + +Canvas::reverse_iterator +Canvas::rbegin() +{ + return CanvasBase::rbegin()+1; +} + +Canvas::const_reverse_iterator +Canvas::rbegin()const +{ + return CanvasBase::rbegin()+1; +} + +int +Canvas::size()const +{ + return CanvasBase::size()-1; +} + +void +Canvas::clear() +{ + while(!empty()) + { + Layer::Handle layer(front()); + //if(layer->count()>2)synfig::info("before layer->count()=%d",layer->count()); + + erase(begin()); + //if(layer->count()>1)synfig::info("after layer->count()=%d",layer->count()); + } + //CanvasBase::clear(); + + // We need to keep a blank handle at the + // end of the image list, and acts at + // the bottom. Without it, the layers + // would just continue going when polled + // for a color. + CanvasBase::push_back(Layer::Handle()); + + changed(); +} + +bool +Canvas::empty()const +{ + return CanvasBase::size()<=1; +} + +Layer::Handle & +Canvas::back() +{ + return *(CanvasBase::end()-1); +} + +const Layer::Handle & +Canvas::back()const +{ + return *(CanvasBase::end()-1); +} + +Context +Canvas::get_context()const +{ + return begin(); +} + +const ValueNodeList & +Canvas::value_node_list()const +{ + if(is_inline() && parent_) + return parent_->value_node_list(); + return value_node_list_; +} + +KeyframeList & +Canvas::keyframe_list() +{ + if(is_inline() && parent_) + return parent_->keyframe_list(); + return keyframe_list_; +} + +const KeyframeList & +Canvas::keyframe_list()const +{ + if(is_inline() && parent_) + return parent_->keyframe_list(); + return keyframe_list_; +} + +etl::handle +Canvas::find_layer(const Point &pos) +{ + return get_context().hit_check(pos); +} + +static bool +valid_id(const String &x) +{ + static const char bad_chars[]=" :#@$^&()*"; + unsigned int i; + + if(!x.empty() && x[0]>='0' && x[0]<='9') + return false; + + for(i=0;i(*this).cur_time_=t; + + is_dirty_=false; + get_context().set_time(t); + } + is_dirty_=false; +} + +Canvas::LooseHandle +Canvas::get_root()const +{ + return parent_?parent_->get_root().get():const_cast(this); +} + +int +Canvas::get_depth(etl::handle layer)const +{ + const_iterator iter; + int i(0); + for(iter=begin();iter!=end();++iter,i++) + { + if(layer==*iter) + return i; + } + return -1; +} + +String +Canvas::get_relative_id(etl::loose_handle x)const +{ + if(x->get_root()==this) + return ":"; + if(is_inline() && parent_) + return parent_->_get_relative_id(x); + return _get_relative_id(x); +} + +String +Canvas::_get_relative_id(etl::loose_handle x)const +{ + if(is_inline() && parent_) + return parent_->_get_relative_id(x); + + if(x.get()==this) + return String(); + + if(parent()==x.get()) + return get_id(); + + String id; + + const Canvas* canvas=this; + + for(;!canvas->is_root();canvas=canvas->parent().get()) + id=':'+canvas->get_id()+id; + + if(x && get_root()!=x->get_root()) + { + //String file_name=get_file_name(); + //String file_path=x->get_file_path(); + + String file_name; + if(is_absolute_path(get_file_name())) + file_name=etl::relative_path(x->get_file_path(),get_file_name()); + else + file_name=get_file_name(); + + // If the path of X is inside of file_name, + // then remove it. + //if(file_name.size()>file_path.size()) + // if(file_path==String(file_name,0,file_path.size())) + // file_name.erase(0,file_path.size()+1); + + id=file_name+'#'+id; + } + + return id; +} + + +ValueNode::Handle +Canvas::find_value_node(const String &id) +{ + return + ValueNode::Handle::cast_const( + const_cast(this)->find_value_node(id) + ); +} + +ValueNode::ConstHandle +Canvas::find_value_node(const String &id)const +{ + if(is_inline() && parent_) + return parent_->find_value_node(id); + + if(id.empty()) + throw Exception::IDNotFound("Empty ID"); + + // If we do not have any resolution, then we assume that the + // request is for this immediate canvas + if(id.find_first_of(':')==string::npos && id.find_first_of('#')==string::npos) + return value_node_list_.find(id); + + String canvas_id(id,0,id.rfind(':')); + String value_node_id(id,id.rfind(':')+1); + if(canvas_id.empty()) + canvas_id=':'; + //synfig::warning("constfind:value_node_id: "+value_node_id); + //synfig::warning("constfind:canvas_id: "+canvas_id); + + return find_canvas(canvas_id)->value_node_list_.find(value_node_id); +} + +ValueNode::Handle +Canvas::surefind_value_node(const String &id) +{ + if(is_inline() && parent_) + return parent_->surefind_value_node(id); + + if(id.empty()) + throw Exception::IDNotFound("Empty ID"); + + // If we do not have any resolution, then we assume that the + // request is for this immediate canvas + if(id.find_first_of(':')==string::npos && id.find_first_of('#')==string::npos) + return value_node_list_.surefind(id); + + String canvas_id(id,0,id.rfind(':')); + String value_node_id(id,id.rfind(':')+1); + if(canvas_id.empty()) + canvas_id=':'; + + return surefind_canvas(canvas_id)->value_node_list_.surefind(value_node_id); +} + +void +Canvas::add_value_node(ValueNode::Handle x, const String &id) +{ + if(is_inline() && parent_) + return parent_->add_value_node(x,id); +// throw runtime_error("You cannot add a ValueNode to an inline Canvas"); + + //DEBUGPOINT(); + if(x->is_exported()) + throw runtime_error("ValueNode is already exported"); + + if(id.empty()) + throw Exception::BadLinkName("Empty ID"); + + if(id.find_first_of(':',0)!=string::npos) + throw Exception::BadLinkName("Bad character"); + + try + { + //DEBUGPOINT(); + if(PlaceholderValueNode::Handle::cast_dynamic(value_node_list_.find(id))) + throw Exception::IDNotFound("add_value_node()"); + + //DEBUGPOINT(); + throw Exception::IDAlreadyExists(id); + } + catch(Exception::IDNotFound) + { + //DEBUGPOINT(); + x->set_id(id); + + x->set_parent_canvas(this); + + if(!value_node_list_.add(x)) + { + synfig::error("Unable to add ValueNode"); + throw std::runtime_error("Unable to add ValueNode"); + } + //DEBUGPOINT(); + + return; + } +} + +/* +void +Canvas::rename_value_node(ValueNode::Handle x, const String &id) +{ + if(id.empty()) + throw Exception::BadLinkName("Empty ID"); + + if(id.find_first_of(": ",0)!=string::npos) + throw Exception::BadLinkName("Bad character"); + + try + { + if(PlaceholderValueNode::Handle::cast_dynamic(value_node_list_.find(id))) + throw Exception::IDNotFound("rename_value_node"); + throw Exception::IDAlreadyExists(id); + } + catch(Exception::IDNotFound) + { + x->set_id(id); + + return; + } +} +*/ + +void +Canvas::remove_value_node(ValueNode::Handle x) +{ + if(is_inline() && parent_) + return parent_->remove_value_node(x); +// throw Exception::IDNotFound("Canvas::remove_value_node() was called from an inline canvas"); + + if(!x) + throw Exception::IDNotFound("Canvas::remove_value_node() was passed empty handle"); + + if(!value_node_list_.erase(x)) + throw Exception::IDNotFound("Canvas::remove_value_node(): ValueNode was not found inside of this canvas"); + + //x->set_parent_canvas(0); + + x->set_id(""); +} + + +etl::handle +Canvas::surefind_canvas(const String &id) +{ + if(is_inline() && parent_) + return parent_->surefind_canvas(id); + + if(id.empty()) + return this; + + // If the ID contains a "#" character, then a filename is + // expected on the left side. + if(id.find_first_of('#')!=string::npos) + { + // If '#' is the first character, remove it + // and attempt to parse the ID again. + if(id[0]=='#') + return surefind_canvas(String(id,1)); + + //! \todo This needs a lot more optimization + String file_name(id,0,id.find_first_of('#')); + String external_id(id,id.find_first_of('#')+1); + + file_name=unix_to_local_path(file_name); + + Canvas::Handle external_canvas; + + // If the composition is already open, then use it. + if(externals_.count(file_name)) + external_canvas=externals_[file_name]; + else + { + if(is_absolute_path(file_name)) + external_canvas=open_canvas(file_name); + else + external_canvas=open_canvas(get_file_path()+ETL_DIRECTORY_SEPERATOR+file_name); + + if(!external_canvas) + throw Exception::FileNotFound(file_name); + externals_[file_name]=external_canvas; + } + + return Handle::cast_const(external_canvas.constant()->find_canvas(external_id)); + } + + // If we do not have any resolution, then we assume that the + // request is for this immediate canvas + if(id.find_first_of(':')==string::npos) + { + Children::iterator iter; + + // Search for the image in the image list, + // and return it if it is found + for(iter=children().begin();iter!=children().end();iter++) + if(id==(*iter)->get_id()) + return *iter; + + // Create a new canvas and return it + //synfig::warning("Implicitly creating canvas named "+id); + return new_child_canvas(id); + } + + // If the first character is the seperator, then + // this references the root canvas. + if(id[0]==':') + return get_root()->surefind_canvas(string(id,1)); + + // Now we know that the requested Canvas is in a child + // of this canvas. We have to find that canvas and + // call "find_canvas" on it, and return the result. + + String canvas_name=string(id,0,id.find_first_of(':')); + + Canvas::Handle child_canvas=surefind_canvas(canvas_name); + + return child_canvas->surefind_canvas(string(id,id.find_first_of(':')+1)); +} + +Canvas::Handle +Canvas::find_canvas(const String &id) +{ + return + Canvas::Handle::cast_const( + const_cast(this)->find_canvas(id) + ); +} + +Canvas::ConstHandle +Canvas::find_canvas(const String &id)const +{ + if(is_inline() && parent_)return parent_->find_canvas(id); + + if(id.empty()) + return this; + + // If the ID contains a "#" character, then a filename is + // expected on the left side. + if(id.find_first_of('#')!=string::npos) + { + // If '#' is the first character, remove it + // and attempt to parse the ID again. + if(id[0]=='#') + return find_canvas(String(id,1)); + + //! \todo This needs a lot more optimization + String file_name(id,0,id.find_first_of('#')); + String external_id(id,id.find_first_of('#')+1); + + file_name=unix_to_local_path(file_name); + + Canvas::Handle external_canvas; + + // If the composition is already open, then use it. + if(externals_.count(file_name)) + external_canvas=externals_[file_name]; + else + { + if(is_absolute_path(file_name)) + external_canvas=open_canvas(file_name); + else + external_canvas=open_canvas(get_file_path()+ETL_DIRECTORY_SEPERATOR+file_name); + + if(!external_canvas) + throw Exception::FileNotFound(file_name); + externals_[file_name]=external_canvas; + } + + return Handle::cast_const(external_canvas.constant()->find_canvas(external_id)); + } + + // If we do not have any resolution, then we assume that the + // request is for this immediate canvas + if(id.find_first_of(':')==string::npos) + { + Children::const_iterator iter; + + // Search for the image in the image list, + // and return it if it is found + for(iter=children().begin();iter!=children().end();iter++) + if(id==(*iter)->get_id()) + return *iter; + + throw Exception::IDNotFound("Child Canvas in Parent Canvas: (child)"+id); + } + + // If the first character is the seperator, then + // this references the root canvas. + if(id.find_first_of(':')==0) + return get_root()->find_canvas(string(id,1)); + + // Now we know that the requested Canvas is in a child + // of this canvas. We have to find that canvas and + // call "find_canvas" on it, and return the result. + + String canvas_name=string(id,0,id.find_first_of(':')); + + Canvas::ConstHandle child_canvas=find_canvas(canvas_name); + + return child_canvas->find_canvas(string(id,id.find_first_of(':')+1)); +} + + +Canvas::Handle +Canvas::create() +{ + return new Canvas("Untitled"); +} + +void +Canvas::push_back(etl::handle x) +{ +// DEBUGPOINT(); +// int i(x->count()); + insert(end(),x); + //if(x->count()!=i+1)synfig::info("push_back before %d, after %d",i,x->count()); +} + +void +Canvas::push_front(etl::handle x) +{ +// DEBUGPOINT(); +// int i(x->count()); + insert(begin(),x); + //if(x->count()!=i+1)synfig::error("push_front before %d, after %d",i,x->count()); +} + +void +Canvas::insert(iterator iter,etl::handle x) +{ +// int i(x->count()); + CanvasBase::insert(iter,x); + + /*if(x->count()!=i+1) + { + synfig::error(__FILE__":%d: Canvas::insert(): ***FAILURE*** before %d, after %d",__LINE__,i,x->count()); + return; + //throw runtime_error("Canvas Insertion Failed"); + }*/ + + x->set_canvas(this); + + + add_child(x.get()); + + + LooseHandle correct_canvas(this); + //while(correct_canvas->is_inline())correct_canvas=correct_canvas->parent(); + Layer::LooseHandle loose_layer(x); + + x->signal_added_to_group().connect( + sigc::bind( + sigc::mem_fun( + *correct_canvas, + &Canvas::add_group_pair + ), + loose_layer + ) + ); + x->signal_removed_from_group().connect( + sigc::bind( + sigc::mem_fun( + *correct_canvas, + &Canvas::remove_group_pair + ), + loose_layer + ) + ); + + + if(!x->get_group().empty()) + add_group_pair(x->get_group(),x); + + + changed(); +} + +void +Canvas::push_back_simple(etl::handle x) +{ + CanvasBase::insert(end(),x); + changed(); +} + +void +Canvas::erase(Canvas::iterator iter) +{ + if(!(*iter)->get_group().empty()) + remove_group_pair((*iter)->get_group(),(*iter)); + + // HACK: We really shouldn't be wiping + // out these signals entirely. We should + // only be removing the specific connections + // that we made. At the moment, I'm too + // lazy to add the code to keep track + // of those connections, and no one else + // is using these signals, so I'll just + // leave these next two lines like they + // are for now - darco 07-30-2004 + (*iter)->signal_added_to_group().clear(); + (*iter)->signal_removed_from_group().clear(); + + if(!op_flag_)remove_child(iter->get()); + + CanvasBase::erase(iter); + if(!op_flag_)changed(); +} + +Canvas::Handle +Canvas::clone(const GUID& deriv_guid)const +{ + synfig::String name; + if(is_inline()) + name="inline"; + else + { + name=get_id()+"_CLONE"; + + throw runtime_error("Cloning of non-inline canvases is not yet suported"); + } + + Handle canvas(new Canvas(name)); + + if(is_inline()) + { + canvas->is_inline_=true; + canvas->parent_=0; + //canvas->set_inline(parent()); + } + + canvas->set_guid(get_guid()^deriv_guid); + + const_iterator iter; + for(iter=begin();iter!=end();++iter) + { + Layer::Handle layer((*iter)->clone(deriv_guid)); + if(layer) + { + assert(layer.count()==1); + int presize(size()); + canvas->push_back(layer); + if(!(layer.count()>1)) + { + synfig::error("Canvas::clone(): Cloned layer insertion failure!"); + synfig::error("Canvas::clone(): \tlayer.count()=%d",layer.count()); + synfig::error("Canvas::clone(): \tlayer->get_name()=%s",layer->get_name().c_str()); + synfig::error("Canvas::clone(): \tbefore size()=%d",presize); + synfig::error("Canvas::clone(): \tafter size()=%d",size()); + } + assert(layer.count()>1); + } + else + { + synfig::error("Unable to clone layer"); + } + } + + canvas->signal_group_pair_removed().clear(); + canvas->signal_group_pair_added().clear(); + + return canvas; +} + +void +Canvas::set_inline(LooseHandle parent) +{ + if(is_inline_ && parent_) + { + + } + + id_="inline"; + is_inline_=true; + parent_=parent; + + // Have the parent inherit all of the group stuff + + std::map > >::const_iterator iter; + + for(iter=group_db_.begin();iter!=group_db_.end();++iter) + { + parent->group_db_[iter->first].insert(iter->second.begin(),iter->second.end()); + } + + rend_desc()=parent->rend_desc(); +} + +Canvas::Handle +Canvas::create_inline(Handle parent) +{ + assert(parent); + //if(parent->is_inline()) + // return create_inline(parent->parent()); + + Handle canvas(new Canvas("inline")); + canvas->set_inline(parent); + return canvas; +} + +Canvas::Handle +Canvas::new_child_canvas() +{ + if(is_inline() && parent_) + return parent_->new_child_canvas(); +// runtime_error("You cannot create a child Canvas in an inline Canvas"); + + // Create a new canvas + children().push_back(create()); + Canvas::Handle canvas(children().back()); + + canvas->parent_=this; + + canvas->rend_desc()=rend_desc(); + + return canvas; +} + +Canvas::Handle +Canvas::new_child_canvas(const String &id) +{ + if(is_inline() && parent_) + return parent_->new_child_canvas(id); +// runtime_error("You cannot create a child Canvas in an inline Canvas"); + + // Create a new canvas + children().push_back(create()); + Canvas::Handle canvas(children().back()); + + canvas->set_id(id); + canvas->parent_=this; + canvas->rend_desc()=rend_desc(); + + return canvas; +} + +Canvas::Handle +Canvas::add_child_canvas(Canvas::Handle child_canvas, const synfig::String& id) +{ + if(is_inline() && parent_) + return parent_->add_child_canvas(child_canvas,id); + + if(child_canvas->parent() && !child_canvas->is_inline()) + throw std::runtime_error("Cannot add child canvas because it belongs to someone else!"); + + if(!valid_id(id)) + throw runtime_error("Invalid ID"); + + try + { + find_canvas(id); + throw Exception::IDAlreadyExists(id); + } + catch(Exception::IDNotFound) + { + if(child_canvas->is_inline()) + child_canvas->is_inline_=false; + child_canvas->id_=id; + children().push_back(child_canvas); + child_canvas->parent_=this; + } + + return child_canvas; +} + +void +Canvas::remove_child_canvas(Canvas::Handle child_canvas) +{ + if(is_inline() && parent_) + return parent_->remove_child_canvas(child_canvas); + + if(child_canvas->parent_!=this) + throw runtime_error("Given child does not belong to me"); + + if(find(children().begin(),children().end(),child_canvas)==children().end()) + throw Exception::IDNotFound(child_canvas->get_id()); + + children().remove(child_canvas); + + child_canvas->parent_=0; +} + +void +Canvas::set_file_name(const String &file_name) +{ + if(parent()) + parent()->set_file_name(file_name); + else + { + file_name_=file_name; + signal_file_name_changed_(); + } +} + +sigc::signal& +Canvas::signal_file_name_changed() +{ + if(parent()) + return signal_file_name_changed(); + else + return signal_file_name_changed_; +} + +String +Canvas::get_file_name()const +{ + if(parent()) + return parent()->get_file_name(); + return file_name_; +} + +String +Canvas::get_file_path()const +{ + if(parent()) + return parent()->get_file_path(); + return dirname(file_name_); +} + + +String +Canvas::get_meta_data(const String& key)const +{ + if(!meta_data_.count(key)) + return String(); + return meta_data_.find(key)->second; +} + +void +Canvas::set_meta_data(const String& key, const String& data) +{ + if(meta_data_[key]!=data) + { + meta_data_[key]=data; + signal_meta_data_changed()(key); + signal_meta_data_changed(key)(); + } +} + +void +Canvas::erase_meta_data(const String& key) +{ + if(meta_data_.count(key)) + { + meta_data_.erase(key); + signal_meta_data_changed()(key); + signal_meta_data_changed(key)(); + } +} + +std::list +Canvas::get_meta_data_keys()const +{ + std::list ret; + + std::map::const_iterator iter; + + for(iter=meta_data_.begin();!(iter==meta_data_.end());++iter) + ret.push_back(iter->first); + + return ret; +} + +void +synfig::optimize_layers(Context context, Canvas::Handle op_canvas) +{ + Context iter; + + std::vector< std::pair > sort_list; + int i; + + // Go ahead and start romping through the canvas to paste + for(iter=context,i=0;*iter;iter++,i++) + { + Layer::Handle layer=*iter; + float z_depth(layer->get_z_depth()*1.0001+i); + + // If the layer isn't active, don't worry about it + if(!layer->active()) + continue; + + // Any layer with an amount of zero is implicitly disabled. + ValueBase value(layer->get_param("amount")); + if(value.get_type()==ValueBase::TYPE_REAL && value.get(Real())==0) + continue; + + Layer_PasteCanvas* paste_canvas(static_cast(layer.get())); + if(layer->get_name()=="PasteCanvas" && paste_canvas->get_time_offset()==0) + { + Canvas::Handle sub_canvas(Canvas::create_inline(op_canvas)); + optimize_layers(paste_canvas->get_sub_canvas()->get_context(),sub_canvas); +//#define SYNFIG_OPTIMIZE_PASTE_CANVAS 1 + +#ifdef SYNFIG_OPTIMIZE_PASTE_CANVAS + Canvas::iterator sub_iter; + // Determine if we can just remove the paste canvas + // altogether + if(paste_canvas->get_blend_method()==Color::BLEND_COMPOSITE && paste_canvas->get_amount()==1.0f && paste_canvas->get_zoom()==0 && paste_canvas->get_time_offset()==0 && paste_canvas->get_origin()==Point(0,0)) + try{ + for(sub_iter=sub_canvas->begin();sub_iter!=sub_canvas->end();++sub_iter) + { + Layer* layer=sub_iter->get(); + + // any layers that deform end up breaking things + // so do things the old way if we run into anything like this + if(!dynamic_cast(layer)) + throw int(); + + ValueBase value(layer->get_param("blend_method")); + if(value.get_type()!=ValueBase::TYPE_INTEGER || value.get(int())!=(int)Color::BLEND_COMPOSITE) + throw int(); + } + + // It has turned out that we don't need a paste canvas + // layer, so just go ahead and add all the layers onto + // the current stack and be done with it + while(sub_canvas->size()) + { + sort_list.push_back(std::pair(z_depth,sub_canvas->front())); + //op_canvas->push_back_simple(sub_canvas->front()); + sub_canvas->pop_front(); + } + continue; + }catch(int) { } +#endif + Layer::Handle new_layer(Layer::create("PasteCanvas")); + dynamic_cast(new_layer.get())->set_do_not_muck_with_time(true); + Layer::ParamList param_list(paste_canvas->get_param_list()); + //param_list.erase("canvas"); + new_layer->set_param_list(param_list); + dynamic_cast(new_layer.get())->set_sub_canvas(sub_canvas); + dynamic_cast(new_layer.get())->set_do_not_muck_with_time(false); + layer=new_layer; + } + + sort_list.push_back(std::pair(z_depth,layer)); + //op_canvas->push_back_simple(layer); + } + + //sort_list.sort(); + stable_sort(sort_list.begin(),sort_list.end()); + std::vector< std::pair >::iterator iter2; + for(iter2=sort_list.begin();iter2!=sort_list.end();++iter2) + op_canvas->push_back_simple(iter2->second); + op_canvas->op_flag_=true; +} + +void +Canvas::get_times_vfunc(Node::time_set &set) const +{ + const_iterator i = begin(), + iend = end(); + + for(; i != iend; ++i) + { + const Node::time_set &tset = (*i)->get_times(); + set.insert(tset.begin(),tset.end()); + } +} + +std::set > +Canvas::get_layers_in_group(const String&group) +{ + if(is_inline() && parent_) + return parent_->get_layers_in_group(group); + + if(group_db_.count(group)==0) + return std::set >(); + return group_db_.find(group)->second; +} + +std::set +Canvas::get_groups()const +{ + if(is_inline() && parent_) + return parent_->get_groups(); + + std::set ret; + std::map > >::const_iterator iter; + for(iter=group_db_.begin();iter!=group_db_.end();++iter) + ret.insert(iter->first); + return ret; +} + +int +Canvas::get_group_count()const +{ + if(is_inline() && parent_) + return parent_->get_group_count(); + + return group_db_.size(); +} + +void +Canvas::add_group_pair(String group, etl::handle layer) +{ + group_db_[group].insert(layer); + if(group_db_[group].size()==1) + signal_group_added()(group); + else + signal_group_changed()(group); + + signal_group_pair_added()(group,layer); + + if(is_inline() && parent_) + return parent_->add_group_pair(group,layer); +} + +void +Canvas::remove_group_pair(String group, etl::handle layer) +{ + group_db_[group].erase(layer); + + signal_group_pair_removed()(group,layer); + + if(group_db_[group].empty()) + { + group_db_.erase(group); + signal_group_removed()(group); + } + else + signal_group_changed()(group); + + if(is_inline() && parent_) + return parent_->remove_group_pair(group,layer); +} + +void +Canvas::rename_group(const String&old_name,const String&new_name) +{ + if(is_inline() && parent_) + return parent_->rename_group(old_name,new_name); + + { + std::map > >::iterator iter; + iter=group_db_.find(old_name); + if(iter!=group_db_.end()) + for(++iter;iter!=group_db_.end() && iter->first.find(old_name)==0;iter=group_db_.find(old_name),++iter) + { + String name(iter->first,old_name.size(),String::npos); + name=new_name+name; + rename_group(iter->first,name); + } + } + + std::set > layers(get_layers_in_group(old_name)); + std::set >::iterator iter; + + for(iter=layers.begin();iter!=layers.end();++iter) + { + (*iter)->remove_from_group(old_name); + (*iter)->add_to_group(new_name); + } +} diff --git a/synfig-core/tags/stable/src/synfig/canvas.h b/synfig-core/tags/stable/src/synfig/canvas.h new file mode 100644 index 0000000..470b7c9 --- /dev/null +++ b/synfig-core/tags/stable/src/synfig/canvas.h @@ -0,0 +1,485 @@ +/* === S Y N F I G ========================================================= */ +/*! \file canvas.h +** \brief Canvas Class Implementation +** +** $Id$ +** +** \legal +** Copyright (c) 2002-2005 Robert B. Quattlebaum Jr., Adrian Bentley +** +** This package is free software; you can redistribute it and/or +** modify it under the terms of the GNU General Public License as +** published by the Free Software Foundation; either version 2 of +** the License, or (at your option) any later version. +** +** This package is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +** General Public License for more details. +** \endlegal +*/ +/* ========================================================================= */ + +/* === S T A R T =========================================================== */ + +#ifndef __SYNFIG_CANVAS_H +#define __SYNFIG_CANVAS_H + +/* === H E A D E R S ======================================================= */ + +#include +#include +#include +#include + +#include "vector.h" +#include "string.h" +#include "canvasbase.h" +#include "valuenode.h" +#include "keyframe.h" +#include "renddesc.h" +#include "node.h" +#include "guid.h" + +/* === M A C R O S ========================================================= */ + +/* === T Y P E D E F S ===================================================== */ + +/* === C L A S S E S & S T R U C T S ======================================= */ + +namespace synfig { + +class Context; +class GUID; + +/*! \class Canvas +** \todo writeme +*/ +class Canvas : public CanvasBase, public Node +{ + /* + -- ** -- T Y P E S ----------------------------------------------------------- + */ + +public: + typedef etl::handle Handle; + typedef etl::loose_handle LooseHandle; + typedef etl::handle ConstHandle; + + typedef std::list Children; + + friend void synfig::optimize_layers(Context, Canvas::Handle); + + /* + -- ** -- D A T A ------------------------------------------------------------- + */ + +private: + + //! Contains the ID string for the Canvas + /*! \see get_id(), set_id() */ + String id_; + + //! Contains the name of the Canvas + /*! \see set_name(), get_name() */ + String name_; + + //! Contains a description of the Canvas + /*! \see set_description(), get_description() */ + String description_; + + //! Contains the author's name + /*! \see set_author(), get_author() */ + String author_; + + //! Contains the author's email address + /*! \todo This private parameter has no binding, so it's unusable at the moment */ + String email_; + + //! File name of Canvas + /*! \see get_file_name(), set_file_name() */ + String file_name_; + + //! Metadata map for Canvas. + /*! \see get_meta_data(), set_meta_data(), erase_meta_data() */ + std::map meta_data_; + + //! Contains a list of ValueNodes that are in this Canvas + /*! \see value_node_list(), find_value_node() */ + ValueNodeList value_node_list_; + + //! \writeme + KeyframeList keyframe_list_; + + //! A handle to the parent canvas of this canvas. + /*! If canvas is a root canvas, then this handle is empty + ** \see parent() + */ + LooseHandle parent_; + + //! List containing any child Canvases + /*! \see children() */ + Children children_; + + //! Render Description for Canvas + /*! \see rend_desc() */ + RendDesc desc_; + + //! Contains the value of the last call to set_time() + Time cur_time_; + + //! \writeme + mutable std::map externals_; + + //! This flag is set if this canvas is "inline" + bool is_inline_; + + mutable bool is_dirty_; + + bool op_flag_; + + //! Layer Group database + std::map > > group_db_; + + /* + -- ** -- S I G N A L S ------------------------------------------------------- + */ + +private: + + //! Group Added + sigc::signal signal_group_added_; + + //! Group Removed + sigc::signal signal_group_removed_; + + //! Group Changed + sigc::signal signal_group_changed_; + + sigc::signal > signal_group_pair_added_; + sigc::signal > signal_group_pair_removed_; + + //! Layers Reordered + sigc::signal signal_layers_reordered_; + + //! RendDesc Changed + sigc::signal signal_rend_desc_changed_; + + //! ID Changed + sigc::signal signal_id_changed_; + + //! Dirty + //sigc::signal signal_dirty_; + + //! FileName Changed + sigc::signal signal_file_name_changed_; + + //! Metadata Changed + sigc::signal signal_meta_data_changed_; + + //! Key-Specific meta data changed signals + std::map > signal_map_meta_data_changed_; + + + //! ValueBasenode Changed + sigc::signal > signal_value_node_changed_; + + sigc::signal, etl::handle > signal_value_node_child_added_; + + sigc::signal, etl::handle > signal_value_node_child_removed_; + + /* + -- ** -- S I G N A L I N T E R F A C E ------------------------------------- + */ + +public: + + sigc::signal >& signal_group_pair_added() { return signal_group_pair_added_; } + sigc::signal >& signal_group_pair_removed() { return signal_group_pair_removed_; } + + //! Group Added + sigc::signal& signal_group_added() { return signal_group_added_; } + + //! Group Removed + sigc::signal& signal_group_removed() { return signal_group_removed_; } + + //! Group Changed + sigc::signal& signal_group_changed() { return signal_group_changed_; } + + //! Layers Reordered + sigc::signal& signal_layers_reordered() { return signal_layers_reordered_; } + + //! RendDesc Changed + sigc::signal& signal_rend_desc_changed() { return signal_rend_desc_changed_; } + + //! ID Changed + sigc::signal& signal_id_changed() { return signal_id_changed_; } + + //! File name Changed + sigc::signal& signal_file_name_changed(); + + //! Metadata Changed + sigc::signal& signal_meta_data_changed() { return signal_meta_data_changed_; } + + //! Metadata Changed + sigc::signal& signal_meta_data_changed(const String& key) { return signal_map_meta_data_changed_[key]; } + + + sigc::signal >& signal_value_node_changed() { return signal_value_node_changed_; } + + //! Dirty + sigc::signal& signal_dirty() { return signal_changed(); } + + //! \writeme + sigc::signal, etl::handle >& signal_value_node_child_added() { return signal_value_node_child_added_; } + + //! \writeme + sigc::signal, etl::handle >& signal_value_node_child_removed() { return signal_value_node_child_removed_; } + + /* + -- ** -- C O N S T R U C T O R S --------------------------------------------- + */ + +protected: + + Canvas(const String &name); + +public: + + ~Canvas(); + + /* + -- ** -- M E M B E R F U N C T I O N S ------------------------------------- + */ + +public: + + //! Returns the set of layers in group + std::set > get_layers_in_group(const String&group); + + //! Gets all the groups + std::set get_groups()const; + + //! Gets the number of groups in this canvas + int get_group_count()const; + + //! Renames the given group + void rename_group(const String&old_name,const String&new_name); + + //! \writeme + bool is_inline()const { return is_inline_; } + + //! Returns a handle to the RendDesc for this Canvas + RendDesc &rend_desc() { return desc_; } + + //! Returns a handle to the RendDesc for this Canvas + const RendDesc &rend_desc()const { return desc_; } + + //! Gets the name of the canvas + const String & get_name()const { return name_; } + + //! Sets the name of the canvas + void set_name(const String &x); + + //! Gets the author of the canvas + const String & get_author()const { return author_; } + + //! Sets the author of the canvas + void set_author(const String &x); + + //! Gets the description of the canvas + const String & get_description()const { return description_; } + + //! Sets the name of the canvas + void set_description(const String &x); + + //! Gets the ID of the canvas + const String & get_id()const { return id_; } + + //! Sets the ID of the canvas + void set_id(const String &x); + + //! Returns the data string for the given meta data key + String get_meta_data(const String& key)const; + + //! Returns a list of meta data keys + std::list get_meta_data_keys()const; + + //! Sets a meta data key to a specific string + void set_meta_data(const String& key, const String& data); + + //! Removes a meta data key + void erase_meta_data(const String& key); + + //! \writeme + String get_relative_id(etl::loose_handle x)const; + + //! \internal \writeme + String _get_relative_id(etl::loose_handle x)const; + + //! Returns \c true if the Canvas is a root Canvas. \c false otherwise + bool is_root()const { return !parent_; } + + //! Returns a handle to the parent Canvas. + /*! The returned handle will be empty if this is a root canvas */ + LooseHandle parent()const { return parent_; } + + LooseHandle get_root()const; + + //! Returns a list of all child canvases in this canvas + std::list &children() { return children_; } + + //! Returns a list of all child canvases in this canvas + const std::list &children()const { return children_; } + + //! Gets the color at the specified point + //Color get_color(const Point &pos)const; + + //! Sets the time for all the layers in the canvas + void set_time(Time t)const; + + //! \writeme + Time get_time()const { return cur_time_; } + + //! Returns the number of layers in the canvas + int size()const; + + //! Removes all the layers from the canvas + void clear(); + + //! Returns true if the canvas has no layers + bool empty()const; + + //! Returns a reference to the ValueNodeList for this Canvas + // ValueNodeList &value_node_list() { return value_node_list_; } + + //! Returns a reference to the ValueNodeList for this Canvas + const ValueNodeList &value_node_list()const; + + //! Returns a reference to the KeyframeList for this Canvas + KeyframeList &keyframe_list(); + + //! Returns a reference to the KeyframeList for this Canvas + const KeyframeList &keyframe_list()const; + + //! Finds the ValueNode in the Canvas with the given \a id + /*! \return If found, returns a handle to the ValueNode. + ** Otherwise, returns an empty handle. + */ + ValueNode::Handle find_value_node(const String &id); + + //! \internal \writeme + ValueNode::Handle surefind_value_node(const String &id); + + //! Finds the ValueNode in the Canvas with the given \a id + /*! \return If found, returns a handle to the ValueNode. + ** Otherwise, returns an empty handle. + */ + ValueNode::ConstHandle find_value_node(const String &id)const; + + //! \writeme + void add_value_node(ValueNode::Handle x, const String &id); + + //! writeme + //void rename_value_node(ValueNode::Handle x, const String &id); + + //! \writeme + void remove_value_node(ValueNode::Handle x); + + //! \writeme + void remove_value_node(const String &id) { remove_value_node(find_value_node(id)); } + + //! Finds a child Canvas in the Canvas with the given \a name + /*! \return If found, returns a handle to the child Canvas. + ** If not found, it creates a new Canvas and returns it + ** If an error occurs, it returns an empty handle + */ + Handle surefind_canvas(const String &id); + + //! Finds a child Canvas in the Canvas with the given \a id + /*! \return If found, returns a handle to the child Canvas. + ** Otherwise, returns an empty handle. + */ + Handle find_canvas(const String &id); + + //! Finds a child Canvas in the Canvas with the given \a id + /*! \return If found, returns a handle to the child Canvas. + ** Otherwise, returns an empty handle. + */ + ConstHandle find_canvas(const String &id)const; + + //! Sets the file path for the Canvas + //void set_file_path(const String &); + + //! Returns the file path from the file name + String get_file_path()const; + + //! Sets the filename (with path) + void set_file_name(const String &); + + //! Gets the filename (with path) + String get_file_name()const; + + //! Creates a new child canvas, and returns its handle + Handle new_child_canvas(); + + //! Creates a new child canvas with an ID of \a id, and returns its handle + Handle new_child_canvas(const String &id); + + //! Adds the given canvas as a child + Handle add_child_canvas(Handle child_canvas, const String &id); + + void remove_child_canvas(Handle child_canvas); + + etl::handle find_layer(const Point &pos); + + int get_depth(etl::handle)const; + + Context get_context()const; + + iterator end(); + + const_iterator end()const; + + reverse_iterator rbegin(); + + const_reverse_iterator rbegin()const; + + etl::handle &back(); + + void push_back(etl::handle x); + + void push_front(etl::handle x); + + void push_back_simple(etl::handle x); + + void insert(iterator iter,etl::handle x); + void erase(iterator iter); + + const etl::handle &back()const; + + void set_inline(LooseHandle parent); + + static Handle create(); + + static Handle create_inline(Handle parent); + + Handle clone(const GUID& deriv_guid=GUID())const; + +private: + void add_group_pair(String group, etl::handle layer); + void remove_group_pair(String group, etl::handle layer); + +protected: + virtual void on_changed(); + virtual void get_times_vfunc(Node::time_set &set) const; +}; // END of class Canvas + +void optimize_layers(Context context, Canvas::Handle op_canvas); + + +}; // END of namespace synfig + +/* === E N D =============================================================== */ + +#endif diff --git a/synfig-core/tags/stable/src/synfig/canvasbase.h b/synfig-core/tags/stable/src/synfig/canvasbase.h new file mode 100644 index 0000000..c20ace7 --- /dev/null +++ b/synfig-core/tags/stable/src/synfig/canvasbase.h @@ -0,0 +1,47 @@ +/* === S Y N F I G ========================================================= */ +/*! \file canvasbase.h +** \brief Template Header +** +** $Id$ +** +** \legal +** Copyright (c) 2002-2005 Robert B. Quattlebaum Jr., Adrian Bentley +** +** This package is free software; you can redistribute it and/or +** modify it under the terms of the GNU General Public License as +** published by the Free Software Foundation; either version 2 of +** the License, or (at your option) any later version. +** +** This package is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +** General Public License for more details. +** \endlegal +*/ +/* ========================================================================= */ + +/* === S T A R T =========================================================== */ + +#ifndef __SYNFIG_CANVASBASE_H +#define __SYNFIG_CANVASBASE_H + +/* === H E A D E R S ======================================================= */ + +#include +#include + +/* === M A C R O S ========================================================= */ + +/* === T Y P E D E F S ===================================================== */ + +namespace synfig { + +class Layer; + +typedef std::deque< etl::handle< Layer > > CanvasBase; + +}; // END of namespace synfig + +/* === E N D =============================================================== */ + +#endif diff --git a/synfig-core/tags/stable/src/synfig/color.cpp b/synfig-core/tags/stable/src/synfig/color.cpp new file mode 100644 index 0000000..d70ed3f --- /dev/null +++ b/synfig-core/tags/stable/src/synfig/color.cpp @@ -0,0 +1,582 @@ +/* === S Y N F I G ========================================================= */ +/*! \file color.cpp +** \brief Color Class +** +** $Id$ +** +** \legal +** Copyright (c) 2002-2005 Robert B. Quattlebaum Jr., Adrian Bentley +** +** This package is free software; you can redistribute it and/or +** modify it under the terms of the GNU General Public License as +** published by the Free Software Foundation; either version 2 of +** the License, or (at your option) any later version. +** +** This package is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +** General Public License for more details. +** \endlegal +*/ +/* ========================================================================= */ + +/* === H E A D E R S ======================================================= */ + +#ifdef USING_PCH +# include "pch.h" +#else +#ifdef HAVE_CONFIG_H +# include +#endif + +#include +#include "color.h" +#include +#include +#include + +#endif + +using namespace synfig; +using namespace etl; +using namespace std; + +/* === M A C R O S ========================================================= */ + +#define COLOR_EPSILON (0.000001f) + +/* === G L O B A L S ======================================================= */ + +String Color::hex_; + +/* === P R O C E D U R E S ================================================= */ + +/* === M E T H O D S ======================================================= */ + + + +ColorReal +Color::hex2real(String s) +{ + std::istringstream i(s); + int n; + i.fill('0'); + if (!(i >> hex >> n)) + throw String("bad conversion from hex string \"") + s + String("\""); + return n / 255.0f; +} + +const String +Color::real2hex(ColorReal c) +{ + std::ostringstream o; + o.width(2); + o.fill('0'); + if (c<0) c = 0; + if (c>1) c = 1; + o << hex << int(c*255.0f); + return o.str(); +} + +void +Color::set_hex(String& hex) +{ + value_type r, g, b; + try + { + if (hex.size() == 1) + { + r = hex2real(hex.substr(0,1)+hex.substr(0,1)); + r_ = g_ = b_ = r; + } + else if (hex.size() == 3) + { + r = hex2real(hex.substr(0,1)+hex.substr(0,1)); + g = hex2real(hex.substr(1,1)+hex.substr(1,1)); + b = hex2real(hex.substr(2,1)+hex.substr(2,1)); + r_ = r; g_ = g; b_ = b; + } + else if (hex.size() == 6) + { + r = hex2real(hex.substr(0,2)); + g = hex2real(hex.substr(2,2)); + b = hex2real(hex.substr(4,2)); + r_ = r; g_ = g; b_ = b; + } + } + catch (string s) + { + printf("caught <%s>\n", s.c_str()); + return; + } +} + +#if 0 +Color& +Color::rotate_uv(const Angle& theta)const +{ +/*/ + Color ret(*this); + ret.set_hue(ret.get_hue()+theta); + return ret; +/*/ + const float + a(angle::sin(theta).get()), + b(angle::cos(theta).get()); + const float + u(get_u()), + v(get_v()); + + return set_uv(b*u-a*v,a*u+b*v); + //return YUV(get_y(),b*u-a*v,a*u+b*v,get_a()); +//*/ +} +#endif + +Color +Color::clamped_negative()const +{ + Color ret=*this; + + if(ret.a_==0) + return alpha(); + + if(ret.a_<0) + ret=-ret; + + if(ret.r_<0) + { + ret.g_-=ret.r_; + ret.b_-=ret.r_; + ret.r_=0.0f; + } + if(ret.g_<0) + { + ret.r_-=ret.g_; + ret.b_-=ret.g_; + ret.g_=0.0f; + } + if(ret.b_<0) + { + ret.r_-=ret.b_; + ret.g_-=ret.b_; + ret.b_=0.0f; + } + + if(ret.r_>1) ret.r_=1; + if(ret.g_>1) ret.g_=1; + if(ret.b_>1) ret.b_=1; + if(ret.a_>1) ret.a_=1; + + if(isnan(ret.get_r())) ret.r_=0.5; + if(isnan(ret.get_g())) ret.g_=0.5; + if(isnan(ret.get_b())) ret.b_=0.5; + if(isnan(ret.get_a())) ret.a_=1; + +/* + if(ret.r_>1) { ret.g_/=ret.r_; ret.b_/=ret.r_; ret.r_=1; } + if(ret.g_>1) { ret.r_/=ret.g_; ret.b_/=ret.g_; ret.g_=1; } + if(ret.b_>1) { ret.g_/=ret.b_; ret.r_/=ret.b_; ret.b_=1; } + if(ret.a_>1) ret.a_=1; +*/ + + return ret; +} + +Color +Color::clamped()const +{ + Color ret(*this); + if(ret.get_r()<0) + ret.set_r(0); + if(ret.get_g()<0) + ret.set_g(0); + if(ret.get_b()<0) + ret.set_b(0); + if(ret.get_a()<0) + ret.set_a(0); + + if(ret.r_>1) ret.r_=1; + if(ret.g_>1) ret.g_=1; + if(ret.b_>1) ret.b_=1; + if(ret.a_>1) ret.a_=1; + + if(isnan(ret.get_r())) ret.r_=0.5; + if(isnan(ret.get_g())) ret.g_=0.5; + if(isnan(ret.get_b())) ret.b_=0.5; + if(isnan(ret.get_a())) ret.a_=1; + + return(ret); +} + +typedef Color (*blendfunc)(Color &,Color &,float); + +static Color +blendfunc_COMPOSITE(Color &src,Color &dest,float amount) +{ + //c_dest'=c_src+(1.0-a_src)*c_dest + //a_dest'=a_src+(1.0-a_src)*a_dest + + float a_src=src.get_a()*amount; + float a_dest=dest.get_a(); + + // if a_arc==0.0 + //if(fabsf(a_src)COLOR_EPSILON) + { + dest/=a_dest; + dest.set_a(a_dest); + } + else + { + dest=Color::alpha(); + } + assert(dest.is_valid()); + return dest; +} + +static Color +blendfunc_STRAIGHT(Color &src,Color &bg,float amount) +{ + //a_out'=(a_src-a_bg)*amount+a_bg + //c_out'=(((c_src*a_src)-(c_bg*a_bg))*amount+(c_bg*a_bg))/a_out' + + // ie: if(amount==1.0) + //if(fabsf(amount-1.0f)COLOR_EPSILON) +// if(a_out>COLOR_EPSILON || a_out<-COLOR_EPSILON) + { + out=((src*src.get_a()-bg*bg.get_a())*amount+bg*bg.get_a())/a_out; + out.set_a(a_out); + } + else + out=Color::alpha(); + + assert(out.is_valid()); + return out; +} + +static Color +blendfunc_ONTO(Color &a,Color &b,float amount) +{ + float alpha(b.get_a()); + return blendfunc_COMPOSITE(a,b.set_a(1.0f),amount).set_a(alpha); +} + +static Color +blendfunc_STRAIGHT_ONTO(Color &a,Color &b,float amount) +{ + a.set_a(a.get_a()*b.get_a()); + return blendfunc_STRAIGHT(a,b,amount); +} + +static Color +blendfunc_BRIGHTEN(Color &a,Color &b,float amount) +{ + const float alpha(a.get_a()*amount); + + if(b.get_r()(a.get_r()-1.0f)*alpha+1.0f) + b.set_r((a.get_r()-1.0f)*alpha+1.0f); + + if(b.get_g()>(a.get_g()-1.0f)*alpha+1.0f) + b.set_g((a.get_g()-1.0f)*alpha+1.0f); + + if(b.get_b()>(a.get_b()-1.0f)*alpha+1.0f) + b.set_b((a.get_b()-1.0f)*alpha+1.0f); + + + return b; +} + +static Color +blendfunc_ADD(Color &a,Color &b,float amount) +{ + const float alpha(a.get_a()*amount); + + b.set_r(b.get_r()+a.get_r()*alpha); + b.set_g(b.get_g()+a.get_g()*alpha); + b.set_b(b.get_b()+a.get_b()*alpha); + + return b; +} + +static Color +blendfunc_SUBTRACT(Color &a,Color &b,float amount) +{ + const float alpha(a.get_a()*amount); + + b.set_r(b.get_r()-a.get_r()*alpha); + b.set_g(b.get_g()-a.get_g()*alpha); + b.set_b(b.get_b()-a.get_b()*alpha); + + return b; +} + +static Color +blendfunc_DIFFERENCE(Color &a,Color &b,float amount) +{ + const float alpha(a.get_a()*amount); + + b.set_r(abs(b.get_r()-a.get_r()*alpha)); + b.set_g(abs(b.get_g()-a.get_g()*alpha)); + b.set_b(abs(b.get_b()-a.get_b()*alpha)); + + return b; +} + +static Color +blendfunc_MULTIPLY(Color &a,Color &b,float amount) +{ + if(amount<0) a=~a, amount=-amount; + + amount*=a.get_a(); + b.set_r(((b.get_r()*a.get_r())-b.get_r())*(amount)+b.get_r()); + b.set_g(((b.get_g()*a.get_g())-b.get_g())*(amount)+b.get_g()); + b.set_b(((b.get_b()*a.get_b())-b.get_b())*(amount)+b.get_b()); + return b; +} + +static Color +blendfunc_DIVIDE(Color &a,Color &b,float amount) +{ + amount*=a.get_a(); + + // We add COLOR_EPSILON in order to avoid a divide-by-zero condition. + // This causes DIVIDE to bias toward positive values, but the effect is + // really neglegable. There is a reason why we use COLOR_EPSILON--we + // want the change to be imperceptable. + + b.set_r(((b.get_r()/(a.get_r()+COLOR_EPSILON))-b.get_r())*(amount)+b.get_r()); + b.set_g(((b.get_g()/(a.get_g()+COLOR_EPSILON))-b.get_g())*(amount)+b.get_g()); + b.set_b(((b.get_b()/(a.get_b()+COLOR_EPSILON))-b.get_b())*(amount)+b.get_b()); + + return b; +} + +static Color +blendfunc_COLOR(Color &a,Color &b,float amount) +{ + Color temp(b); + temp.set_uv(a.get_u(),a.get_v()); + return (temp-b)*amount*a.get_a()+b; +} + +static Color +blendfunc_HUE(Color &a,Color &b,float amount) +{ + Color temp(b); + temp.set_hue(a.get_hue()); + return (temp-b)*amount*a.get_a()+b; +} + +static Color +blendfunc_SATURATION(Color &a,Color &b,float amount) +{ + Color temp(b); + temp.set_s(a.get_s()); + return (temp-b)*amount*a.get_a()+b; +} + +static Color +blendfunc_LUMINANCE(Color &a,Color &b,float amount) +{ + Color temp(b); + temp.set_y(a.get_y()); + return (temp-b)*amount*a.get_a()+b; +} + +static Color +blendfunc_BEHIND(Color &a,Color &b,float amount) +{ + if(a.get_a()==0)a.set_a(COLOR_EPSILON); //!< \hack + a.set_a(a.get_a()*amount); + return blendfunc_COMPOSITE(b,a,1.0); +} + +static Color +blendfunc_ALPHA_BRIGHTEN(Color &a,Color &b,float amount) +{ + if(a.get_a()b.get_a()) + return a.set_a(a.get_a()*amount); + return b; +} + +static Color +blendfunc_SCREEN(Color &a,Color &b,float amount) +{ + if(amount<0) a=~a, amount=-amount; + + a.set_r(1.0-(1.0f-a.get_r())*(1.0f-b.get_r())); + a.set_g(1.0-(1.0f-a.get_g())*(1.0f-b.get_g())); + a.set_b(1.0-(1.0f-a.get_b())*(1.0f-b.get_b())); + + return blendfunc_ONTO(a,b,amount); +} + +static Color +blendfunc_OVERLAY(Color &a,Color &b,float amount) +{ + if(amount<0) a=~a, amount=-amount; + + Color rm; + rm.set_r(b.get_r()*a.get_r()); + rm.set_g(b.get_g()*a.get_g()); + rm.set_b(b.get_b()*a.get_b()); + + Color rs; + rs.set_r(1.0-(1.0f-a.get_r())*(1.0f-b.get_r())); + rs.set_g(1.0-(1.0f-a.get_g())*(1.0f-b.get_g())); + rs.set_b(1.0-(1.0f-a.get_b())*(1.0f-b.get_b())); + + Color& ret(a); + + ret.set_r(a.get_r()*rs.get_r() + (1.0-a.get_r())*rm.get_r()); + ret.set_g(a.get_g()*rs.get_g() + (1.0-a.get_g())*rm.get_g()); + ret.set_b(a.get_b()*rs.get_b() + (1.0-a.get_b())*rm.get_b()); + + return blendfunc_ONTO(ret,b,amount); +} + +static Color +blendfunc_HARD_LIGHT(Color &a,Color &b,float amount) +{ + if(amount<0) a=~a, amount=-amount; + + if(a.get_r()>0.5f) a.set_r(1.0-(1.0f-(a.get_r()*2.0f-1.0f))*(1.0f-b.get_r())); + else a.set_r(b.get_r()*(a.get_r()*2.0f)); + if(a.get_g()>0.5f) a.set_g(1.0-(1.0f-(a.get_g()*2.0f-1.0f))*(1.0f-b.get_g())); + else a.set_g(b.get_g()*(a.get_g()*2.0f)); + if(a.get_b()>0.5f) a.set_b(1.0-(1.0f-(a.get_b()*2.0f-1.0f))*(1.0f-b.get_b())); + else a.set_b(b.get_b()*(a.get_b()*2.0f)); + + return blendfunc_ONTO(a,b,amount); +} + +static Color +blendfunc_ALPHA_OVER(Color &a,Color &b,float amount) +{ + Color rm(b); + + //multiply the inverse alpha channel with the one below us + rm.set_a((1-a.get_a())*b.get_a()); + + return blendfunc_STRAIGHT(rm,b,amount); +} + + +Color +Color::blend(Color a, Color b,float amount, Color::BlendMethod type) +{ +#if 0 + if(isnan(a.get_r()) || isnan(a.get_g()) || isnan(a.get_b())) + { +#ifdef _DEBUG + a=magenta().set_a(a.get_a()); +#else + a=black().set_a(a.get_a()); +#endif + } + + if(isnan(b.get_r()) || isnan(b.get_g()) || isnan(b.get_b())) + { +#ifdef _DEBUG + b=magenta().set_a(b.get_a()); +#else + b=black().set_a(b.get_a()); +#endif + } +#endif + +/* + if(!a.is_valid()&&b.is_valid()) + return b; + + if(a.is_valid()&&!b.is_valid()) + return a; + + if(!a.is_valid()||!b.is_valid()) + { +#ifdef _DEBUG + return magenta(); +#else + return black(); +#endif + } +*/ + + // No matter what blend method is being used, + // if the amount is equal to zero, then only B + // will shine through + if(fabsf(amount)<=COLOR_EPSILON)return b; + + assert(type +#include +#include +#include "gamma.h" +#include + +#ifdef USE_HALF_TYPE +#include +#endif + +#ifndef SYNFIG_NO_ANGLE +# include "angle.h" +#endif + +/* === M A C R O S ========================================================= */ + +#ifdef WIN32 +#include +#ifndef isnan +extern "C" { int _isnan(double x); } +#define isnan _isnan +#endif +#endif + +// For some reason isnan() isn't working on macosx any more. +// This is a quick fix. +#if defined(__APPLE__) && !defined(SYNFIG_ISNAN_FIX) +#ifdef isnan +#undef isnan +#endif +inline bool isnan(double x) { return x != x; } +inline bool isnan(float x) { return x != x; } +#define SYNFIG_ISNAN_FIX 1 +#endif + +namespace synfig { + +#ifdef USE_HALF_TYPE +typedef half ColorReal; +#else +typedef float ColorReal; +#endif + +static const float EncodeYUV[3][3]= +{ + { 0.299f, 0.587f, 0.114f }, + { -0.168736f, -0.331264f, 0.5f }, + { 0.5f, -0.418688f, -0.081312f } +}; + +static const float DecodeYUV[3][3]= +{ + { 1.0f, 0.0f, 1.402f }, + { 1.0f, -0.344136f, -0.714136f }, + { 1.0f, 1.772f, 0.0f } +}; + +/* === T Y P E D E F S ===================================================== */ + +/* === C L A S S E S & S T R U C T S ======================================= */ + +#ifdef USE_HALF_TYPE +class ColorAccumulator; +#endif + + + + +/*! \class Color +** \todo Writeme +** Future optimizations: lookup table for sqrt()? +*/ +class Color +{ +public: + typedef ColorReal value_type; + +private: + value_type a_, r_, g_, b_; + static String hex_; + +public: + + Color & + operator+=(const Color &rhs) + { + r_+=rhs.r_; + g_+=rhs.g_; + b_+=rhs.b_; + a_+=rhs.a_; + return *this; + } + + Color & + operator-=(const Color &rhs) + { + r_-=rhs.r_; + g_-=rhs.g_; + b_-=rhs.b_; + a_-=rhs.a_; + return *this; + } + + Color & + operator*=(const float &rhs) + { + r_*=rhs; + g_*=rhs; + b_*=rhs; + a_*=rhs; + return *this; + } + + Color & + operator/=(const float &rhs) + { + const float temp(value_type(1)/rhs); + r_*=temp; + g_*=temp; + b_*=temp; + a_*=temp; + return *this; + } + + Color + operator+(const Color &rhs)const + { return Color(*this)+=rhs; } + + Color + operator-(const Color &rhs)const + { return Color(*this)-=rhs; } + + Color + operator*(const float &rhs)const + { return Color(*this)*=rhs; } + + Color + operator/(const float &rhs)const + { return Color(*this)/=rhs; } + + bool + operator==(const Color &rhs)const + { return r_==rhs.r_ && g_==rhs.g_ && b_==rhs.b_ && a_==rhs.a_; } + + bool + operator!=(const Color &rhs)const + { return r_!=rhs.r_ || g_!=rhs.g_ || b_!=rhs.b_ || a_!=rhs.a_; } + + Color + operator-()const + { return Color(-r_,-g_,-b_,-a_); } + + //! Effectively 1.0-color + Color + operator~()const + { return Color(1.0f-r_,1.0f-g_,1.0f-b_,a_); } + + bool is_valid()const + { return !isnan(r_) && !isnan(g_) && !isnan(b_) && !isnan(a_); } + + Color premult_alpha() const + { + return Color (r_*a_, g_*a_, b_*a_, a_); + } + + Color demult_alpha() const + { + if(a_) + { + const value_type inva = 1/a_; + return Color (r_*inva, g_*inva, b_*inva, a_); + }else return alpha(); + } + +public: + Color() /*:r_(0), g_(0), b_(0), a_(0)*/ { } + Color(const value_type &f) :a_(f),r_(f), g_(f), b_(f) { } + Color(int f) :a_(f),r_(f), g_(f), b_(f) { } + + /*! \param R Red + ** \param G Green + ** \param B Blue + ** \param A Opacity(alpha) */ + Color(const value_type& R, const value_type& G, const value_type& B, const value_type& A=1): + a_(A), + r_(R), + g_(G), + b_(B) { } + + /*! \param c Source for color components + ** \param A Opacity(alpha) */ + Color(const Color& c, const value_type& A): + a_(A), + r_(c.r_), + g_(c.g_), + b_(c.b_) { } + + + //! Copy constructor + Color(const Color& c): + a_(c.a_), + r_(c.r_), + g_(c.g_), + b_(c.b_) { } + +#ifdef USE_HALF_TYPE + friend class ColorAccumulator; + //! Convert constructor + Color(const ColorAccumulator& c); +#endif + + //! Copy constructor + //Color(const Color &c) { memcpy((void*)this, (const void*)&c, sizeof(Color)); } + + /*const Color &operator=(const value_type &i) + { + r_ = g_ = b_ = a_ = i; + return *this; + }*/ + //Color& operator=(const Color &c) { memcpy((void*)this, (const void*)&c, sizeof(Color)); return *this; } + + //! Returns the RED component + const value_type& get_r()const { return r_; } + + //! Returns the GREEN component + const value_type& get_g()const { return g_; } + + //! Returns the BLUE component + const value_type& get_b()const { return b_; } + + //! Returns the amount of opacity (alpha) + const value_type& get_a()const { return a_; } + + //! Synonym for get_a(). \see get_a() + const value_type& get_alpha()const { return get_a(); } + + //! Converts a 2 character hex string \a s (00-ff) into a ColorReal (0.0-1.0) + static ColorReal hex2real(String s); + + //! Converts a ColorReal \a c (0.0-1.0) into a 2 character hex string (00-ff) + static const String real2hex(ColorReal c); + + //! Returns the color as a 6 character hex sting + const String& get_hex()const { return hex_ = real2hex(r_)+real2hex(g_)+real2hex(b_); } + + //! Sets the color's R, G, and B from a 3 or 6 character hex string + void set_hex(String& hex); + + //! Sets the RED component to \a x + Color& set_r(const value_type& x) { r_ = x; return *this; } + + //! Sets the GREEN component to \a x + Color& set_g(const value_type& x) { g_ = x; return *this; } + + //! Sets the BLUE component to \a x + Color& set_b(const value_type& x) { b_ = x; return *this; } + + //! Sets the opacity (alpha) to \a x + Color& set_a(const value_type& x) { a_ = x; return *this; } + + //! Synonym for set_a(). \see set_a() + Color& set_alpha(const value_type& x) { return set_a(x); } + + //! Returns color's luminance + float + get_y() const + { + return + (float)get_r()*EncodeYUV[0][0]+ + (float)get_g()*EncodeYUV[0][1]+ + (float)get_b()*EncodeYUV[0][2]; + } + + + //! Returns U component of chromanance + float + get_u() const + { + return + (float)get_r()*EncodeYUV[1][0]+ + (float)get_g()*EncodeYUV[1][1]+ + (float)get_b()*EncodeYUV[1][2]; + } + + + //! Returns V component of chromanance + float + get_v() const + { + return + (float)get_r()*EncodeYUV[2][0]+ + (float)get_g()*EncodeYUV[2][1]+ + (float)get_b()*EncodeYUV[2][2]; + } + + //! Returns the color's saturation + /*! This is is the magnitude of the U and V components. + ** \see set_s() */ + float + get_s() const + { + const float u(get_u()), v(get_v()); + return sqrt(u*u+v*v); + } + + //! Sets the luminance (\a y) and chromanance (\a u and \a v) + Color& + set_yuv(const float &y, const float &u, const float &v) + { + set_r(y*DecodeYUV[0][0]+u*DecodeYUV[0][1]+v*DecodeYUV[0][2]); + set_g(y*DecodeYUV[1][0]+u*DecodeYUV[1][1]+v*DecodeYUV[1][2]); + set_b(y*DecodeYUV[2][0]+u*DecodeYUV[2][1]+v*DecodeYUV[2][2]); + return *this; + } + + //! Sets color luminance + Color& set_y(const float &y) { return set_yuv(y,get_u(),get_v()); } + + //! Set U component of chromanance + Color& set_u(const float &u) { return set_yuv(get_y(),u,get_v()); } + + //! Set V component of chromanance + Color& set_v(const float &v) { return set_yuv(get_y(),get_u(),v); } + + //! Set the U and V components of chromanance + Color& set_uv(const float& u, const float& v) { return set_yuv(get_y(),u,v); } + + //! Sets the color's saturation + /*! \see get_s() */ + Color& + set_s(const float &x) + { + float u(get_u()), v(get_v()); + const float s(sqrt(u*u+v*v)); + if(s) + { + u=(u/s)*x; + v=(v/s)*x; + return set_uv(u,v); + } + return *this; + } + + //! YUV Color constructor + static Color YUV(const float& y, const float& u, const float& v, const value_type& a=1) + { return Color().set_yuv(y,u,v).set_a(a); } + +#ifndef SYNFIG_NO_ANGLE + //! Returns the hue of the chromanance + /*! This is the angle of the U and V components. + ** \see set_hue() */ + Angle + get_hue() const + { return Angle::tan(get_u(),get_v()); } + + //! Synonym for get_hue(). \see get_hue() + Angle get_uv_angle() const { return get_hue(); } + + //! Sets the color's hue + /*! \see get_hue() */ + Color& + set_hue(const Angle& theta) + { + const float s(get_s()); + const float + u(s*(float)Angle::sin(theta).get()), + v(s*(float)Angle::cos(theta).get()); + return set_uv(u,v); + } + + //! Synonym for set_hue(). \see set_hue() + Color& set_uv_angle(const Angle& theta) { return set_hue(theta); } + + //! Rotates the chromanance vector by amount specified by \a theta + Color& rotate_uv(const Angle& theta) + { + const float a(Angle::sin(theta).get()), b(Angle::cos(theta).get()); + const float u(get_u()), v(get_v()); + + return set_uv(b*u-a*v,a*u+b*v); + } + + //! Sets the luminance (\a y) and chromanance (\a s and \a theta). + /*! \param y Luminance + ** \param s Saturation + ** \param theta Hue */ + Color& set_yuv(const float& y, const float& s, const Angle& theta) + { + return + set_yuv( + y, + s*(float)Angle::sin(theta).get(), + s*(float)Angle::cos(theta).get() + ); + } + + //! YUV color constructor where the chroma is in the saturation/hue form. + /*! \param y Luminance + ** \param s Saturation + ** \param theta Hue + ** \param a Opacity (alpha) */ + static Color YUV(const float& y, const float& s, const Angle& theta, const value_type& a=1) + { return Color().set_yuv(y,s,theta).set_a(a); } + +#endif + + //! Clamps a color so that its values are in range. Ignores attempting to visualize negative colors. + Color clamped()const; + + //! Clamps a color so that its values are in range. + Color clamped_negative()const; + + /* Preset Colors */ + + //! Preset Color Constructors + //@{ +#ifdef HAS_VIMAGE + static inline Color alpha() { return Color(0,0,0,0.0000001f); } +#else + static inline Color alpha() { return Color(0,0,0,0); } +#endif + static inline Color black() { return Color(0,0,0); } + static inline Color white() { return Color(1,1,1); } + static inline Color gray() { return Color(0.5f,0.5f,0.5f); } + static inline Color magenta() { return Color(1,0,1); } + static inline Color red() { return Color(1,0,0); } + static inline Color green() { return Color(0,1,0); } + static inline Color blue() { return Color(0,0,1); } + static inline Color cyan() { return Color(0,1,1); } + static inline Color yellow() { return Color(1,1,0); } + //@} + + //! \writeme + enum BlendMethod + { + BLEND_COMPOSITE=0, //!< Color A is composited onto B (Taking into about A's alpha) + BLEND_STRAIGHT=1, //!< Straight linear interpolation from A->B (Alpha ignored) + BLEND_BRIGHTEN=2, //!< If composite is brighter than B, use composite. B otherwise. + BLEND_DARKEN=3, //!< If composite is brighter than B, use composite. B otherwise. + BLEND_ADD=4, //!< Simple A+B. + BLEND_SUBTRACT=5, //!< Simple A-B. + BLEND_MULTIPLY=6, //!< Simple A*B. + BLEND_DIVIDE=7, //!< Simple B/A + BLEND_COLOR=8, //!< Preserves the U and V channels of color A + BLEND_HUE=9, //!< Preserves the angle of the UV vector of color A + BLEND_SATURATION=10,//!< Preserves the magnitude of the UV Vector of color A + BLEND_LUMINANCE=11, //!< Preserves the Y channel of color A + BLEND_BEHIND=12, //!< Similar to BLEND_COMPOSITE, except that B is composited onto A. + BLEND_ONTO=13, //!< Similar to BLEND_COMPOSITE, except that B's alpha is maintained + BLEND_SCREEN=16, //!< \writeme + BLEND_OVERLAY=20, //!< \writeme + BLEND_DIFFERENCE=18, //!< \writeme + BLEND_HARD_LIGHT=17, //!< \writeme + + //! Deprecated + BLEND_ALPHA_BRIGHTEN=14, //!< If A is less opaque than B, use A + BLEND_ALPHA_DARKEN=15, //!< If A is more opaque than B, use B + BLEND_ALPHA_OVER=19,//!< multiply alphas and then straight blends that using the amount + BLEND_STRAIGHT_ONTO=21,//!< \writeme + + BLEND_END=22 //!< \internal + }; + + /* Other */ + static Color blend(Color a, Color b,float amount,BlendMethod type=BLEND_COMPOSITE); + + static bool is_onto(BlendMethod x) + { + return x==BLEND_BRIGHTEN + || x==BLEND_DARKEN + || x==BLEND_ADD + || x==BLEND_SUBTRACT + || x==BLEND_MULTIPLY + || x==BLEND_DIVIDE + || x==BLEND_COLOR + || x==BLEND_HUE + || x==BLEND_SATURATION + || x==BLEND_LUMINANCE + || x==BLEND_ONTO + || x==BLEND_STRAIGHT_ONTO + || x==BLEND_SCREEN + || x==BLEND_OVERLAY + || x==BLEND_DIFFERENCE + || x==BLEND_HARD_LIGHT + ; + } +/*protected: + + value_type& operator[](const int i) + { + assert(i>=0); + assert(i<(signed)(sizeof(Color)/sizeof(value_type))); + return (&r_)[i]; + } + + const value_type& operator[](const int i)const + { + assert(i>=0); + assert(i<(signed)(sizeof(Color)/sizeof(value_type))); + return (&r_)[i]; + } +*/ +}; // END of class Color + +#ifndef USE_HALF_TYPE +typedef Color ColorAccumulator; +#else +class ColorAccumulator +{ + friend class Color; +public: + typedef float value_type; + +private: + value_type a_, r_, g_, b_; + +public: + + ColorAccumulator & + operator+=(const ColorAccumulator &rhs) + { + r_+=rhs.r_; + g_+=rhs.g_; + b_+=rhs.b_; + a_+=rhs.a_; + return *this; + } + + ColorAccumulator & + operator-=(const ColorAccumulator &rhs) + { + r_-=rhs.r_; + g_-=rhs.g_; + b_-=rhs.b_; + a_-=rhs.a_; + return *this; + } + + ColorAccumulator & + operator*=(const float &rhs) + { + r_*=rhs; + g_*=rhs; + b_*=rhs; + a_*=rhs; + return *this; + } + + ColorAccumulator & + operator/=(const float &rhs) + { + const float temp(value_type(1)/rhs); + r_*=temp; + g_*=temp; + b_*=temp; + a_*=temp; + return *this; + } + + ColorAccumulator + operator+(const ColorAccumulator &rhs)const + { return Color(*this)+=rhs; } + + ColorAccumulator + operator-(const ColorAccumulator &rhs)const + { return Color(*this)-=rhs; } + + ColorAccumulator + operator*(const float &rhs)const + { return Color(*this)*=rhs; } + + ColorAccumulator + operator/(const float &rhs)const + { return Color(*this)/=rhs; } + + bool + operator==(const ColorAccumulator &rhs)const + { return r_==rhs.r_ && g_==rhs.g_ && b_==rhs.b_ && a_!=rhs.a_; } + + bool + operator!=(const ColorAccumulator &rhs)const + { return r_!=rhs.r_ || g_!=rhs.g_ || b_!=rhs.b_ || a_!=rhs.a_; } + + Color + operator-()const + { return ColorAccumulator(-r_,-g_,-b_,-a_); } + + bool is_valid()const + { return !isnan(r_) && !isnan(g_) && !isnan(b_) && !isnan(a_); } + +public: + ColorAccumulator() { } + + /*! \param R Red + ** \param G Green + ** \param B Blue + ** \param A Opacity(alpha) */ + ColorAccumulator(const value_type& R, const value_type& G, const value_type& B, const value_type& A=1): + a_(A), + r_(R), + g_(G), + b_(B) { } + + //! Copy constructor + ColorAccumulator(const ColorAccumulator& c): + a_(c.a_), + r_(c.r_), + g_(c.g_), + b_(c.b_) { } + + //! Converter + ColorAccumulator(const Color& c): + a_(c.a_), + r_(c.r_), + g_(c.g_), + b_(c.b_) { } + + //! Converter + ColorAccumulator(int c): a_(c),r_(c), g_(c), b_(c) { } + + //! Returns the RED component + const value_type& get_r()const { return r_; } + + //! Returns the GREEN component + const value_type& get_g()const { return g_; } + + //! Returns the BLUE component + const value_type& get_b()const { return b_; } + + //! Returns the amount of opacity (alpha) + const value_type& get_a()const { return a_; } + + //! Synonym for get_a(). \see get_a() + const value_type& get_alpha()const { return get_a(); } + + //! Sets the RED component to \a x + ColorAccumulator& set_r(const value_type& x) { r_ = x; return *this; } + + //! Sets the GREEN component to \a x + ColorAccumulator& set_g(const value_type& x) { g_ = x; return *this; } + + //! Sets the BLUE component to \a x + ColorAccumulator& set_b(const value_type& x) { b_ = x; return *this; } + + //! Sets the opacity (alpha) to \a x + ColorAccumulator& set_a(const value_type& x) { a_ = x; return *this; } + + //! Synonym for set_a(). \see set_a() + ColorAccumulator& set_alpha(const value_type& x) { return set_a(x); } +}; + +inline +Color::Color(const ColorAccumulator& c): + a_(c.a_), + r_(c.r_), + g_(c.g_), + b_(c.b_) { } + +#endif + + + + + +enum PixelFormat +{ +/* Bit Descriptions (ON/OFF) +** ----+------------- +** 0 Color Channels (Gray/RGB) +** 1 Alpha Channel (WITH/WITHOUT) +** 2 ZDepth (WITH/WITHOUT) +** 3 Endian (BGR/RGB) +** 4 Alpha Location (Start/End) +** 5 ZDepth Location (Start/End) +** 6 Alpha/ZDepth Arangement (ZA,AZ) +** 7 Alpha Range (Inverted,Normal) +** 8 Z Range (Inverted,Normal) +*/ + PF_RGB=0, + PF_GRAY=(1<<0), //!< If set, use one grayscale channel. If clear, use three channels for RGB + PF_A=(1<<1), //!< If set, include alpha channel + PF_Z=(1<<2), //!< If set, include ZDepth channel + PF_BGR=(1<<3), //!< If set, reverse the order of the RGB channels + PF_A_START=(1<<4), //!< If set, alpha channel is before the color data. If clear, it is after. + PF_Z_START=(1<<5), //!< If set, ZDepth channel is before the color data. If clear, it is after. + PF_ZA=(1<<6), //!< If set, the ZDepth channel will be infront of the alpha channel. If clear, they are reversed. + + PF_A_INV=(1<<7), //!< If set, the alpha channel is stored as 1.0-a + PF_Z_INV=(1<<8), //!< If set, the ZDepth channel is stored as 1.0-z + PF_RAW_COLOR=(1<<9)+(1<<1) //!< If set, the data represents a raw Color datastructure, and all other bits are ignored. +}; + +inline PixelFormat operator|(PixelFormat lhs, PixelFormat rhs) + { return static_cast((int)lhs|(int)rhs); } + +inline PixelFormat operator&(PixelFormat lhs, PixelFormat rhs) + { return static_cast((int)lhs&(int)rhs); } +#define FLAGS(x,y) (((x)&(y))==(y)) + +//! Returns the number of channels that the given PixelFormat calls for +inline int +channels(PixelFormat x) +{ + int chan=0; + if(FLAGS(x,PF_GRAY)) + ++chan; + else + chan+=3; + if(FLAGS(x,PF_A)) + ++chan; + if(FLAGS(x,PF_Z)) + ++chan; + if(FLAGS(x,PF_RAW_COLOR)) + chan=sizeof(Color); + + return chan; +} + +inline unsigned char * +Color2PixelFormat(const Color &color, const PixelFormat &pf, unsigned char *out, const Gamma &gamma) +{ + if(FLAGS(pf,PF_RAW_COLOR)) + { + Color *outcol=reinterpret_cast(out); + *outcol=color; + out+=sizeof(color); + return out; + } + + int alpha=(int)((FLAGS(pf,PF_A_INV)?(-(float)color.get_a()+1):(float)color.get_a())*255); + if(alpha<0)alpha=0; + if(alpha>255)alpha=255; + + if(FLAGS(pf,PF_ZA|PF_A_START|PF_Z_START)) + { + if(FLAGS(pf,PF_Z_START)) + *out++/*=(unsigned char)(color.GetZ()*255.0f)*/; + if(FLAGS(pf,PF_A_START)) + *out++=static_cast(alpha); + } + else + { + if(FLAGS(pf,PF_A_START)) + *out++=static_cast(alpha); + if(FLAGS(pf,PF_Z_START)) + *out++/*=(unsigned char)(color.GetZ()*255.0f)*/; + + } + + if(FLAGS(pf,PF_GRAY)) + *out++=static_cast(gamma.g_F32_to_U8(color.get_y())); + else + { + if(FLAGS(pf,PF_BGR)) + { + *out++=static_cast(gamma.r_F32_to_U8(color.get_b())); + *out++=static_cast(gamma.g_F32_to_U8(color.get_g())); + *out++=static_cast(gamma.b_F32_to_U8(color.get_r())); + } + else + { + *out++=static_cast(gamma.r_F32_to_U8(color.get_r())); + *out++=static_cast(gamma.g_F32_to_U8(color.get_g())); + *out++=static_cast(gamma.b_F32_to_U8(color.get_b())); + } + } + + if(FLAGS(pf,PF_ZA)) + { + if(!FLAGS(pf,PF_Z_START) && FLAGS(pf,PF_Z)) + out++;//*out++=(unsigned char)(color.GetZ()*255.0f); + if(!FLAGS(pf,PF_A_START) && FLAGS(pf,PF_A)) + *out++=static_cast(alpha); + } + else + { + if(!FLAGS(pf,PF_Z_START) && FLAGS(pf,PF_Z)) + out++;//*out++=(unsigned char)(color.GetZ()*255.0f); + if(!FLAGS(pf,PF_A_START) && FLAGS(pf,PF_A)) + *out++=static_cast(alpha); + } + return out; +} + +inline void +convert_color_format(unsigned char *dest, const Color *src, int w, PixelFormat pf,const Gamma &gamma) +{ + assert(w>=0); + while(w--) + dest=Color2PixelFormat((*(src++)).clamped(),pf,dest,gamma); +} + +inline const unsigned char * +PixelFormat2Color(Color &color, const PixelFormat &pf,const unsigned char *out) +{ + if(FLAGS(pf,PF_ZA|PF_A_START|PF_Z_START)) + { + if(FLAGS(pf,PF_Z_START)) + out++;//color.SetZ((Color::value_type)*out++/255.0f); + if(FLAGS(pf,PF_A_START)) + color.set_a((float)*out++/255); + } + else + { + if(FLAGS(pf,PF_A_START)) + color.set_a((float)*out++/255); + if(FLAGS(pf,PF_Z_START)) + out++;//color.SetZ((Color::value_type)*out++/255.0f); + } + + if(FLAGS(pf,PF_GRAY)) + color.set_yuv((float)*out++/255,0,0); + else + { + if(FLAGS(pf,PF_BGR)) + { + color.set_b((float)*out++/255); + color.set_g((float)*out++/255); + color.set_r((float)*out++/255); + } + else + { + color.set_r((float)*out++/255); + color.set_g((float)*out++/255); + color.set_b((float)*out++/255); + } + } + + if(FLAGS(pf,PF_ZA)) + { + if(!FLAGS(pf,PF_Z_START) && FLAGS(pf,PF_Z)) + out++;//color.SetZ((Color::value_type)*out++/255.0f); + if(!FLAGS(pf,PF_A_START) && FLAGS(pf,PF_A)) + color.set_a((float)*out++/255); + } + else + { + if(!FLAGS(pf,PF_A_START) && FLAGS(pf,PF_A)) + color.set_a((float)*out++/255); + if(!FLAGS(pf,PF_Z_START) && FLAGS(pf,PF_Z)) + out++;//color.SetZ((Color::value_type)*out++/255.0f); + } + return out; +} + + + +}; // END of namespace synfig + +/* === E N D =============================================================== */ + +#endif diff --git a/synfig-core/tags/stable/src/synfig/context.cpp b/synfig-core/tags/stable/src/synfig/context.cpp new file mode 100644 index 0000000..247dac1 --- /dev/null +++ b/synfig-core/tags/stable/src/synfig/context.cpp @@ -0,0 +1,369 @@ +/* === S Y N F I G ========================================================= */ +/*! \file context.cpp +** \brief Template File +** +** $Id$ +** +** \legal +** Copyright (c) 2002-2005 Robert B. Quattlebaum Jr., Adrian Bentley +** +** This package is free software; you can redistribute it and/or +** modify it under the terms of the GNU General Public License as +** published by the Free Software Foundation; either version 2 of +** the License, or (at your option) any later version. +** +** This package is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +** General Public License for more details. +** \endlegal +*/ +/* ========================================================================= */ + +/* === H E A D E R S ======================================================= */ + +#ifdef USING_PCH +# include "pch.h" +#else +#ifdef HAVE_CONFIG_H +# include +#endif + +#include "context.h" +#include "layer.h" +#include "string.h" +#include "vector.h" +#include "color.h" +#include "surface.h" +#include "renddesc.h" +#include "valuenode.h" + +#endif + +/* === U S I N G =========================================================== */ + +using namespace std; +using namespace etl; +using namespace synfig; + +/* === M A C R O S ========================================================= */ + +//#define SYNFIG_PROFILE_LAYERS +//#define SYNFIG_DEBUG_LAYERS + +/* === G L O B A L S ======================================================= */ + +#ifdef SYNFIG_PROFILE_LAYERS +#include +static int depth(0); +static std::map time_table; +static std::map run_table; +static etl::clock profile_timer; +static String curr_layer; +static void +_print_profile_report() +{ + synfig::info(">>>> Profile Report: (Times are in msecs)"); + std::map::iterator iter; + float total_time(0); + for(iter=time_table.begin();iter!=time_table.end();++iter) + { + String layer(iter->first); + float time(iter->second); + int runs(run_table[layer]); + total_time+=time; + synfig::info(" Layer \"%s\",\tExecs: %03d, Avg Time: %05.1f, Total Time: %05.1f",layer.c_str(),runs,time/runs*1000,time*1000); + } + synfig::info("Total Time: %f seconds", total_time); + synfig::info("<<<< End of Profile Report"); +} + +#endif + +/* === P R O C E D U R E S ================================================= */ + +/* === M E T H O D S ======================================================= */ + +Color +Context::get_color(const Point &pos)const +{ + Context context(*this); + + while(!context->empty()) + { + // If this layer is active, then go + // ahead and break out of the loop + if((*context)->active()) + break; + + // Otherwise, we want to keep searching + // till we find either an active layer, + // or the end of the layer list + ++context; + } + + // If this layer isn't defined, return alpha + if((context)->empty()) return Color::alpha(); + + RWLock::ReaderLock lock((*context)->get_rw_lock()); + + return (*context)->get_color(context+1, pos); +} + +Rect +Context::get_full_bounding_rect()const +{ + Context context(*this); + + while(!context->empty()) + { + // If this layer is active, then go + // ahead and break out of the loop + if((*context)->active()) + break; + + // Otherwise, we want to keep searching + // till we find either an active layer, + // or the end of the layer list + ++context; + } + + // If this layer isn't defined, return zero-sized rectangle + if(context->empty()) return Rect::zero(); + + return (*context)->get_full_bounding_rect(context+1); +} + + +/* Profiling will go like this: + Profile start = +, stop = - + + + + - + + time diff is recorded + + to get the independent times we need to break at the one inside and record etc... + so it looks more like this: + + + + - + + + - + + + ... + - + + + - + + + - + + at each minus we must record all the info for that which we are worried about... + each layer can do work before or after the other work is done... so both values must be recorded... +*/ + +bool +Context::accelerated_render(Surface *surface,int quality, const RendDesc &renddesc, ProgressCallback *cb) const +{ + #ifdef SYNFIG_PROFILE_LAYERS + String layer_name(curr_layer); + + //sum the pre-work done by layer above us... (curr_layer is layer above us...) + if(depth>0) + { + time_table[curr_layer]+=profile_timer(); + //if(run_table.count(curr_layer))run_table[curr_layer]++; + // else run_table[curr_layer]=1; + } + #endif + + const Rect bbox(renddesc.get_rect()); + + Context context(*this); + for(;!(context)->empty();++context) + { + // If we are not active + // then move on to next layer + if(!(*context)->active()) + continue; + + const Rect layer_bounds((*context)->get_bounding_rect()); + + // If the box area is less than zero + // then move on to next layer + if(layer_bounds.area()<=0.0000000000001) + continue; + + // If the boxes do not intersect + // then move on to next layer + if(!(layer_bounds && bbox)) + continue; + + // Break out of the loop--we have found a good layer + break; + } + + // If this layer isn't defined, return alpha + if((context)->empty()) + { +#ifdef SYNFIG_DEBUG_LAYERS + synfig::info("Context::accelerated_render(): Hit end of list"); +#endif + surface->set_wh(renddesc.get_w(),renddesc.get_h()); + surface->clear(); + #ifdef SYNFIG_PROFILE_LAYERS + profile_timer.reset(); + #endif + return true; + } + +#ifdef SYNFIG_DEBUG_LAYERS + synfig::info("Context::accelerated_render(): Descending into %s",(*context)->get_name().c_str()); +#endif + + try { + RWLock::ReaderLock lock((*context)->get_rw_lock()); + + #ifdef SYNFIG_PROFILE_LAYERS + + //go down one layer :P + depth++; + curr_layer=(*context)->get_name(); //make sure the layer inside is referring to the correct layer outside + profile_timer.reset(); // + + bool ret((*context)->accelerated_render(context+1,surface,quality,renddesc, cb)); + + //post work for the previous layer + time_table[curr_layer]+=profile_timer(); //- + if(run_table.count(curr_layer))run_table[curr_layer]++; + else run_table[curr_layer]=1; + + depth--; + curr_layer = layer_name; //we are now onto this layer (make sure the post gets recorded correctly... + + //print out the table it we're done... + if(depth==0) _print_profile_report(),time_table.clear(),run_table.clear(); + profile_timer.reset(); //+ + return ret; + #else + return (*context)->accelerated_render(context+1,surface,quality,renddesc, cb); + #endif + + } + catch(std::bad_alloc) + { + synfig::error("Context::accelerated_render(): Layer \"%s\" threw a bad_alloc exception!",(*context)->get_name().c_str()); +#ifdef _DEBUG + return false; +#else + ++context; + return context.accelerated_render(surface, quality, renddesc, cb); +#endif + } + catch(...) + { + synfig::error("Context::accelerated_render(): Layer \"%s\" threw an exception, rethrowing...",(*context)->get_name().c_str()); + throw; + } +} + +void +Context::set_time(Time time)const +{ + Context context(*this); + while(!(context)->empty()) + { + // If this layer is active, then go + // ahead and break out of the loop + if((*context)->active() && !(*context)->dirty_time_.is_equal(time)) + break; + + // Otherwise, we want to keep searching + // till we find either an active layer, + // or the end of the layer list + ++context; + } + + // If this layer isn't defined, just return + if((context)->empty()) return; + + // Set up a wrter lock + RWLock::WriterLock lock((*context)->get_rw_lock()); + + //synfig::info("%s: dirty_time=%f",(*context)->get_name().c_str(),(float)(*context)->dirty_time_); + //synfig::info("%s: time=%f",(*context)->get_name().c_str(),(float)time); + + { + Layer::ParamList params; + Layer::DynamicParamList::const_iterator iter; + + for(iter=(*context)->dynamic_param_list().begin();iter!=(*context)->dynamic_param_list().end();iter++) + params[iter->first]=(*iter->second)(time); + + (*context)->set_param_list(params); + + (*context)->set_time(context+1,time); + (*context)->dirty_time_=time; + + } +} + +void +Context::set_time(Time time,const Vector &pos)const +{ + set_time(time); +/* + Context context(*this); + while(!(context)->empty()) + { + // If this layer is active, then go + // ahead and break out of the loop + if((*context)->active()) + break; + + // Otherwise, we want to keep searching + // till we find either an active layer, + // or the end of the layer list + ++context; + } + + // If this layer isn't defined, just return + if((context)->empty()) return; + + else + { + Layer::ParamList params; + Layer::DynamicParamList::const_iterator iter; + + for(iter=(*context)->dynamic_param_list().begin();iter!=(*context)->dynamic_param_list().end();iter++) + params[iter->first]=(*iter->second)(time); + + (*context)->set_param_list(params); + + (*context)->set_time(context+1,time,pos); + } +*/ +} + +etl::handle +Context::hit_check(const Point &pos)const +{ + Context context(*this); + + while(!context->empty()) + { + // If this layer is active, then go + // ahead and break out of the loop + if((*context)->active()) + break; + + // Otherwise, we want to keep searching + // till we find either an active layer, + // or the end of the layer list + ++context; + } + + // If this layer isn't defined, return an empty handle + if((context)->empty()) return 0; + + return (*context)->hit_check(context+1, pos); +} diff --git a/synfig-core/tags/stable/src/synfig/context.h b/synfig-core/tags/stable/src/synfig/context.h new file mode 100644 index 0000000..c03d312 --- /dev/null +++ b/synfig-core/tags/stable/src/synfig/context.h @@ -0,0 +1,87 @@ +/* === S Y N F I G ========================================================= */ +/*! \file context.h +** \brief Template Header +** +** $Id$ +** +** \legal +** Copyright (c) 2002-2005 Robert B. Quattlebaum Jr., Adrian Bentley +** +** This package is free software; you can redistribute it and/or +** modify it under the terms of the GNU General Public License as +** published by the Free Software Foundation; either version 2 of +** the License, or (at your option) any later version. +** +** This package is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +** General Public License for more details. +** \endlegal +*/ +/* ========================================================================= */ + +/* === S T A R T =========================================================== */ + +#ifndef __SYNFIG_CONTEXT_H +#define __SYNFIG_CONTEXT_H + +/* === H E A D E R S ======================================================= */ + +#include "canvasbase.h" +#include "rect.h" + +/* === M A C R O S ========================================================= */ + +/* === T Y P E D E F S ===================================================== */ + +/* === C L A S S E S & S T R U C T S ======================================= */ + +namespace synfig { + +class Vector; +typedef Vector Point; +class Color; +class Surface; +class RendDesc; +class ProgressCallback; +class Layer; +class Time; +class Rect; + +/*! \class Context +** \todo writeme +** \see Layer, Canvas */ +class Context : public CanvasBase::const_iterator +{ +public: + Context() { } + + Context(const CanvasBase::const_iterator &x):CanvasBase::const_iterator(x) { } + + Context operator=(const CanvasBase::const_iterator &x) + { return CanvasBase::const_iterator::operator=(x); } + + /*! \todo write me */ + Color get_color(const Point &pos)const; + + /*! \todo write me */ + bool accelerated_render(Surface *surface,int quality, const RendDesc &renddesc, ProgressCallback *cb) const; + + /*! \todo write me */ + void set_time(Time time)const; + + /*! \writeme */ + void set_time(Time time,const Vector &pos)const; + + Rect get_full_bounding_rect()const; + + /*! \writeme */ + etl::handle hit_check(const Point &point)const; + +}; // END of class Context + +}; // END of namespace synfig + +/* === E N D =============================================================== */ + +#endif diff --git a/synfig-core/tags/stable/src/synfig/curve_helper.cpp b/synfig-core/tags/stable/src/synfig/curve_helper.cpp new file mode 100644 index 0000000..b066d9d --- /dev/null +++ b/synfig-core/tags/stable/src/synfig/curve_helper.cpp @@ -0,0 +1,704 @@ +/* === S Y N F I G ========================================================= */ +/*! \file curve_helper.cpp +** \brief Curve Helper File +** +** $Id$ +** +** \legal +** Copyright (c) 2002-2005 Robert B. Quattlebaum Jr., Adrian Bentley +** +** This package is free software; you can redistribute it and/or +** modify it under the terms of the GNU General Public License as +** published by the Free Software Foundation; either version 2 of +** the License, or (at your option) any later version. +** +** This package is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +** General Public License for more details. +** \endlegal +*/ +/* ========================================================================= */ + +/* === H E A D E R S ======================================================= */ + +#ifdef USING_PCH +# include "pch.h" +#else +#ifdef HAVE_CONFIG_H +# include +#endif + +#include "curve_helper.h" + +#include +#include + +#endif + +/* === U S I N G =========================================================== */ + +using namespace std; +using namespace etl; +using namespace synfig; + +/* === M A C R O S ========================================================= */ +#define ERR 1e-11 +const Real ERROR = 1e-11; + +/* === G L O B A L S ======================================================= */ + +/* === P R O C E D U R E S ================================================= */ + +/* === M E T H O D S ======================================================= */ + +/* === E N T R Y P O I N T ================================================= */ + +Real synfig::find_closest(const etl::bezier &curve, const Point &point, + float step, Real *dout, float *tout) +{ +#if 0 + float time(curve.find_closest(point,4)); + Real dist((curve(time)-point).mag()); + if(dout) *dout=dist; + if(tout) *tout=time; + return time; +#else + Real d,closest = 1.0e50; + float t,time,closestt = -1; + Vector p0,p1,end; + + if(dout && *dout > 0) + closest = *dout; + + p0 = curve[0]; + end = curve[3]; + + for(t = step; t < 1; t+=step, p0=p1) + { + p1 = curve(t); + d = line_point_distsq(p0,p1,point,time); + + if(d=0) + { + if(tout) *tout = closestt; + } + + return closest; +#endif +} + +// Line and BezHull Definitions +void BezHull::Bound(const etl::bezier &b) +{ + #if 1 + + //with a starting vertex, find the only vertex that has all other vertices on its right + int i,j; + int first,cur,last; + + float d,ds; + + Vector n,vi; + Vector::value_type deqn; + + //get left most vertex + d = b[0][0]; + first = 0; + for(i = 1; i < 4; ++i) + { + if(b[i][0] < d) + { + d = b[i][0]; + first = i; + } + } + cur = last = first; + size = 0; + + //find the farthest point with all points on right + ds = 0; + do //should reassign cur so it won't break on first step + { + for(i = 0; i < 4; ++i) + { + if(i == cur || i == last) continue; + + //rotate vector to right to make normal + vi = -(b[i] - b[cur]).perp(); + d = vi.mag_squared(); + + //we want only the farthest (solves the case with many points on a line) + if(d > ds) + { + ds = d; + deqn = n*b[cur]; + for(j = 0; j < 4; ++j) + { + d = n*b[i] - deqn; + if(d < 0) break; //we're on left, nope! + } + + //everyone is on right... yay! :) + if(d >= 0) + { + //advance point and add last one into hull + p[size++] = p[last]; + last = cur; + cur = i; + } + } + } + }while(cur != first); + + #else + + //will work but does not keep winding order + + //convex hull alg. + //build set of line segs which have no points on other side... + //start with initial normal segments + + //start with single triangle + p[0] = b[0]; + p[1] = b[1]; + p[2] = b[2]; + p[3] = b[3]; + + //initial reject (if point is inside triangle don't care) + { + Vector v1,v2,vp; + + v1 = p[1]-p[0]; + v2 = p[2]-p[0]; + + vp = p[3]-p[0]; + + float s = (vp*v1) / (v1*v1), + t = (vp*v2) / (v2*v2); + + //if we're inside the triangle we don't this sissy point + if( s >= 0 && s <= 1 && t >= 0 && t <= 1 ) + { + size = 3; + return; + } + } + + //expand triangle based on info... + bool line; + int index,i,j; + float ds,d; + + //distance from point to vertices + line = false; + index = 0; + ds = (p[0]-b[3]).mag_squared(); + for(i = 1; i < 3; ++i) + { + d = (p[3]-p[i]).mag_squared(); + if(d < ds) + { + index = i; + ds = d; + } + } + + //distance to line + float t; + j = 2; + for(i = 0; i < 3; j = i++) + { + d = line_point_distsq(p[j],p[i],b[4],t); + if(d < ds) + { + index = j; + ds = d; + line = true; + } + } + + //We don't need no stinkin extra vertex, just replace + if(!line) + { + p[index] = p[3]; + size = 3; + }else + { + //must expand volume to work with point... + // after the index then + + /* Pattern: + 0 - push 1,2 -> 2,3 + 1 - push 2 -> 3 + 2 - none + */ + for(i = 3; i > index+1; --i) + { + p[i] = p[i-1]; + } + + p[index] = b[3]; //recopy b3 + size = 4; + } + + #endif +} + +//Line Intersection +int +synfig::intersect(const Point &p1, const Vector &v1, float &t1, + const Point &p2, const Vector &v2, float &t2) +{ + /* Parametric intersection: + l1 = p1 + tv1, l2 = p2 + sv2 + + 0 = p1+tv1-(p2+sv2) + group parameters: sv2 - tv1 = p1-p2 + + ^ = transpose + invert matrix (on condition det != 0): + A[t s]^ = [p1-p2]^ + + A = [-v1 v2] + + det = v1y.v2x - v1x.v2y + + if non 0 then A^-1 = invdet * | v2y -v2x | + | v1y -v1x | + + [t s]^ = A^-1 [p1-p2]^ + */ + + Vector::value_type det = v1[1]*v2[0] - v1[0]*v2[1]; + + //is determinant valid? + if(det > ERR || det < -ERR) + { + Vector p_p = p1-p2; + + det = 1/det; + + t1 = det*(v2[1]*p_p[0] - v2[0]*p_p[1]); + t2 = det*(v1[1]*p_p[0] - v1[0]*p_p[1]); + + return 1; + } + + return 0; +} + +//Returns the true or false intersection of a rectangle and a line +int intersect(const Rect &r, const Point &p, const Vector &v) +{ + float t[4] = {0}; + + /*get horizontal intersections and then vertical intersections + and intersect them + + Vertical planes - n = (1,0) + Horizontal planes - n = (0,1) + + so if we are solving for ray with implicit line + */ + + //solve horizontal + if(v[0] > ERR || v[0] < -ERR) + { + //solve for t0, t1 + t[0] = (r.minx - p[0])/v[0]; + t[1] = (r.maxx - p[0])/v[0]; + }else + { + return (int)(p[1] >= r.miny && p[1] <= r.maxy); + } + + //solve vertical + if(v[1] > ERR || v[1] < -ERR) + { + //solve for t0, t1 + t[2] = (r.miny - p[1])/v[1]; + t[3] = (r.maxy - p[1])/v[1]; + }else + { + return (int)(p[0] >= r.minx && p[0] <= r.maxx); + } + + return (int)(t[0] <= t[3] && t[1] >= t[2]); +} + +int synfig::intersect(const Rect &r, const Point &p) +{ + return (p[1] < r.maxy && p[1] > r.miny) && p[0] > r.minx; +} + +//returns 0 or 1 for true or false number of intersections of a ray with a bezier convex hull +int intersect(const BezHull &bh, const Point &p, const Vector &v) +{ + float mint = 0, maxt = 1e20; + + //polygon cliping + Vector n; + Vector::value_type nv; + + Point last = bh.p[3]; + for(int i = 0; i < bh.size; ++i) + { + n = (bh.p[i] - last).perp(); //rotate 90 deg. + + /* + since rotated left + if n.v < 0 - going in + > 0 - going out + = 0 - parallel + */ + nv = n*v; + + //going OUT + if(nv > ERR) + { + maxt = min(maxt,(float)((n*(p-last))/nv)); + }else + if( nv < -ERR) //going IN + { + mint = max(mint,(float)((n*(p-last))/nv)); + }else + { + if( n*(p-last) > 0 ) //outside entirely + { + return 0; + } + } + + last = bh.p[i]; + } + + return 0; +} + +int Clip(const Rect &r, const Point &p1, const Point &p2, Point *op1, Point *op2) +{ + float t1=0,t2=1; + Vector v=p2-p1; + + /*get horizontal intersections and then vertical intersections + and intersect them + + Vertical planes - n = (1,0) + Horizontal planes - n = (0,1) + + so if we are solving for ray with implicit line + */ + + //solve horizontal + if(v[0] > ERR || v[0] < -ERR) + { + //solve for t0, t1 + float tt1 = (r.minx - p1[0])/v[0], + tt2 = (r.maxx - p1[0])/v[0]; + + //line in positive direction (normal comparisons + if(tt1 < tt2) + { + t1 = max(t1,tt1); + t2 = min(t2,tt2); + }else + { + t1 = max(t1,tt2); + t2 = min(t2,tt1); + } + }else + { + if(p1[1] < r.miny || p1[1] > r.maxy) + return 0; + } + + //solve vertical + if(v[1] > ERR || v[1] < -ERR) + { + //solve for t0, t1 + float tt1 = (r.miny - p1[1])/v[1], + tt2 = (r.maxy - p1[1])/v[1]; + + //line in positive direction (normal comparisons + if(tt1 < tt2) + { + t1 = max(t1,tt1); + t2 = min(t2,tt2); + }else + { + t1 = max(t1,tt2); + t2 = min(t2,tt1); + } + }else + { + if(p1[0] < r.minx || p1[0] > r.maxx) + return 0; + } + + if(op1) *op1 = p1 + v*t1; + if(op2) *op2 = p1 + v*t2; + + return 1; +} + +static void clean_bez(const bezier &b, bezier &out) +{ + bezier temp; + + temp = b; + temp.set_r(0); + temp.set_s(1); + + if(b.get_r() != 0) + temp.subdivide(0,&temp,b.get_r()); + + if(b.get_s() != 1) + temp.subdivide(&temp,0,b.get_s()); + + out = temp; +} + +// CIntersect Definitions + +CIntersect::CIntersect() + : max_depth(10) //depth of 10 means timevalue parameters will have an approx. error bound of 2^-10 +{ +} + +struct CIntersect::SCurve +{ + bezier b; //the current subdivided curve + float rt,st; + //float mid, //the midpoint time value on this section of the subdivided curve + // scale; //the current delta in time values this curve would be on original curve + + float mag; //approximate sum of magnitudes of each edge of control polygon + Rect aabb; //Axis Aligned Bounding Box for quick (albeit less accurate) collision + + SCurve() {} + + SCurve(const bezier &c,float rin, float sin) + :b(c),rt(rin),st(sin),mag(1) + { + Bound(aabb,b); + } + + void Split(SCurve &l, SCurve &r) const + { + b.subdivide(&l.b,&r.b); + + l.rt = rt; + r.st = st; + l.st = r.rt = (rt+st)/2; + + Bound(l.aabb,l.b); + Bound(r.aabb,r.b); + } +}; + +//Curve to the left of point test +static int recurse_intersect(const CIntersect::SCurve &b, const Point &p1, int depthleft = 10) +{ + //reject when the line does not intersect the bounding box + if(!intersect(b.aabb,p1)) return 0; + + //accept curves (and perform super detailed check for intersections) + //if the values are below tolerance + + //NOTE FOR BETTERING OF ALGORITHM: SHOULD ALSO/IN-PLACE-OF CHECK MAGNITUDE OF EDGES (or approximate) + if(depthleft <= 0) + { + //NOTE FOR IMPROVEMENT: Polish roots based on original curve + // (may be too expensive to be effective) + int turn = 0; + + for(int i = 0; i < 3; ++i) + { + //intersect line segmentsssss + + //solve for the y_value + Vector v = b.b[i+1] - b.b[i]; + + if(v[1] > ERROR && v[1] < ERROR) + { + Real xi = (p1[1] - b.b[i][1])/v[1]; + + //and add in the turn (up or down) if it's valid + if(xi < p1[0]) turn += (v[1] > 0) ? 1 : -1; + } + } + + return turn; + } + + //subdivide the curve and continue + CIntersect::SCurve l1,r1; + b.Split(l1,r1); //subdivide left + + //test each subdivision against the point + return recurse_intersect(l1,p1) + recurse_intersect(r1,p1); +} + +int intersect(const bezier &b, const Point &p) +{ + CIntersect::SCurve sb; + clean_bez(b,sb.b); + + sb.rt = 0; sb.st = 1; + sb.mag = 1; Bound(sb.aabb,sb.b); + + return recurse_intersect(sb,p); +} + +//Curve curve intersection +void CIntersect::recurse_intersect(const SCurve &left, const SCurve &right, int depth) +{ + //reject curves that do not overlap with bouding boxes + if(!intersect(left.aabb,right.aabb)) return; + + //accept curves (and perform super detailed check for intersections) + //if the values are below tolerance + + //NOTE FOR BETTERING OF ALGORITHM: SHOULD ALSO/IN-PLACE-OF CHECK MAGNITUDE OF EDGES (or approximate) + if(depth >= max_depth) + { + //NOTE FOR IMPROVEMENT: Polish roots based on original curve with the Jacobian + // (may be too expensive to be effective) + + //perform root approximation + //collide line segments + + float t,s; + + for(int i = 0; i < 3; ++i) + { + for(int j = 0; j < 3; ++j) + { + //intersect line segmentsssss + if(intersect_line_segments(left.b[i],left.b[i+1],t,right.b[j],right.b[j+1],s)) + { + //We got one Jimmy + times.push_back(intersect_set::value_type(t,s)); + } + } + } + + return; + } + + //NOTE FOR IMPROVEMENT: only subdivide one curve and choose the one that has + // the highest approximated length + //fast approximation to curve length may be hard (accurate would + // involve 3 square roots), could sum the squares which would be + // quick but inaccurate + + SCurve l1,r1,l2,r2; + left.Split(l1,r1); //subdivide left + right.Split(l2,r2); //subdivide right + + //Test each cantidate against eachother + recurse_intersect(l1,l2); + recurse_intersect(l1,r2); + recurse_intersect(r1,l2); + recurse_intersect(r1,r2); +} + + + +bool CIntersect::operator()(const bezier &c1, const bezier &c2) +{ + times.clear(); + + //need to subdivide and check recursive bounding regions against eachother + //so track a list of dirty curves and compare compare compare + + + //temporary curves for subdivision + CIntersect intersector; + CIntersect::SCurve left,right; + + //Make sure the parameters are normalized (so we don't compare unwanted parts of the curves, + // and don't miss any for that matter) + + //left curve + //Compile information about curve + clean_bez(c1,left.b); + left.rt = 0; left.st = 1; + Bound(left.aabb, left.b); + + //right curve + //Compile information about right curve + clean_bez(c2,right.b); + right.rt = 0; right.st = 1; + Bound(right.aabb, right.b); + + //Perform Curve intersection + intersector.recurse_intersect(left,right); + + //Get information about roots (yay! :P) + return times.size() != 0; +} + +//point inside curve - return +/- hit up or down edge +int intersect_scurve(const CIntersect::SCurve &b, const Point &p) +{ + //initial reject/approve etc. + + /* + *-----------*--------- + | | + | | + | | + | 1 | 2 + | | + | | + | | + | | + *-----------*-------- + 1,2 are only regions not rejected + */ + if(p[0] < b.aabb.minx || p[1] < b.aabb.miny || p[1] > b.aabb.maxy) + return 0; + + //approve only if to the right of rect around 2 end points + { + Rect r; + r.set_point(b.b[0][0],b.b[0][1]); + r.expand(b.b[3][0],b.b[3][1]); + + if(p[0] >= r.maxx && p[1] <= r.maxy && p[1] >= r.miny) + { + float df = b.b[3][1] - b.b[0][1]; + + return df >= 0 ? 1 : -1; + } + } + + //subdivide and check again! + CIntersect::SCurve l,r; + b.Split(l,r); + return intersect_scurve(l,p) + intersect_scurve(r,p); +} + +int synfig::intersect(const bezier &b, const Point &p) +{ + CIntersect::SCurve c(b,0,1); + + return intersect_scurve(c,p); +} diff --git a/synfig-core/tags/stable/src/synfig/curve_helper.h b/synfig-core/tags/stable/src/synfig/curve_helper.h new file mode 100644 index 0000000..620387f --- /dev/null +++ b/synfig-core/tags/stable/src/synfig/curve_helper.h @@ -0,0 +1,172 @@ +/* === S Y N F I G ========================================================= */ +/*! \file curve_helper.h +** \brief Curve Helper Header +** +** $Id$ +** +** \legal +** Copyright (c) 2002-2005 Robert B. Quattlebaum Jr., Adrian Bentley +** +** This package is free software; you can redistribute it and/or +** modify it under the terms of the GNU General Public License as +** published by the Free Software Foundation; either version 2 of +** the License, or (at your option) any later version. +** +** This package is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +** General Public License for more details. +** \endlegal +*/ +/* ========================================================================= */ + +/* === S T A R T =========================================================== */ + +#ifndef __SYNFIG_CURVE_HELPER_H +#define __SYNFIG_CURVE_HELPER_H + +/* === H E A D E R S ======================================================= */ +#include + +#include "rect.h" +#include "real.h" +#include "vector.h" + +#include + +/* === M A C R O S ========================================================= */ + +/* === T Y P E D E F S ===================================================== */ + +/* === C L A S S E S & S T R U C T S ======================================= */ + +namespace synfig { + +//line helper functions +inline Real line_point_distsq(const Point &p1, const Point &p2, + const Point &p, float &t) +{ + Vector v,vt; + + v = p2 - p1; + vt = p - p1; + + t = v.mag_squared() > 1e-12 ? (vt*v)/v.mag_squared() : 0; //get the projected time value for the current line + + //get distance to line segment with the time value clamped 0-1 + if(t >= 1) //use p+v + { + vt += v; //makes it pp - (p+v) + t = 1; + }else if(t > 0) //use vt-proj + { + vt -= v * t; // vt - proj_v(vt) //must normalize the projection vector to work + }else + { + t = 0; + } + + //else use p + return vt.mag_squared(); +} + + +//----- RAY CLASS AND FUNCTIONS -------------- +struct Ray +{ + Point p; + Vector v; + + Ray() {} + Ray(const Point &pin, const Vector &vin):p(pin), v(vin) {} +}; + +/* This algorithm calculates the INTERSECTION of 2 line segments + (not the closest point or anything like that, just intersection) + //parameter values returned are [0,1] +*/ +int intersect(const Point &p1, const Vector &v1, float &t1, + const Point &p2, const Vector &v2, float &t2); + +inline bool intersect_line_segments(const Point &a, const Point &b, float &tout, + const Point &c, const Point &d, float &sout) +{ + Vector v1(b-a), v2(d-c); + + //ok so treat both lines as parametric (so we can find the time values simultaneously) + float t,s; + + if( intersect(a,v1,t, b,v2,s) && t >= 0 && t <= 1 && s >= 0 && s <= 1 ) + { + tout = t; + sout = s; + return true; + } + + return false; +} + +//Find the closest point on the curve to a point (and return its distance, and time value) +Real find_closest(const etl::bezier &curve, const Point &point, float step, Real *closest, float *t); + +//----------- Rectangle helper functions --------------- + +template < typename T > +inline void Bound(etl::rect &r, const etl::bezier &b) +{ + r.set_point(b[0][0],b[0][1]); + r.expand(b[1][0],b[1][1]); + r.expand(b[2][0],b[2][1]); + r.expand(b[3][0],b[3][1]); +} + +/*template < typename T > +inline bool intersect(const etl::rect &r1, const etl::rect &r2) +{ + return (r1.minx < r2.maxx) & + (r2.minx < r1.maxx) & + (r1.miny < r2.maxy) & + (r2.miny < r1.maxy); +}*/ + +//----- Convex Hull of a Bezier Curve -------------- +struct BezHull +{ + Point p[4]; + int size; + + void Bound(const etl::bezier &b); +}; + +//Line Intersection +int intersect(const Rect &r1, const Point &p, const Vector &v); +int intersect(const Rect &r1, const Point &p); //inside or to the right +int intersect(const BezHull &bh, const Point &p, const Vector &v); +//int intersect(const etl::bezier &b, const Point &p, const Vector &v); +int intersect(const etl::bezier &b, const Point &p); //for use in containment tests for regions + +//Curve intersection object +class CIntersect +{ +public: + struct SCurve; +private: + void recurse_intersect(const SCurve &left, const SCurve &right, int depth = 0); + +public: + //size should be equal + typedef std::vector< std::pair > intersect_set; + intersect_set times; + + int max_depth; + + CIntersect(); + + bool operator()(const etl::bezier &b1, const etl::bezier &b2); +}; + +}; // END of namespace studio + +/* === E N D =============================================================== */ + +#endif diff --git a/synfig-core/tags/stable/src/synfig/curveset.cpp b/synfig-core/tags/stable/src/synfig/curveset.cpp new file mode 100644 index 0000000..2e607bd --- /dev/null +++ b/synfig-core/tags/stable/src/synfig/curveset.cpp @@ -0,0 +1,483 @@ +/* === S Y N F I G ========================================================= */ +/*! \file curveset.cpp +** \brief Curve Set Implementation File +** +** $Id$ +** +** \legal +** Copyright (c) 2002-2005 Robert B. Quattlebaum Jr., Adrian Bentley +** +** This package is free software; you can redistribute it and/or +** modify it under the terms of the GNU General Public License as +** published by the Free Software Foundation; either version 2 of +** the License, or (at your option) any later version. +** +** This package is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +** General Public License for more details. +** \endlegal +*/ +/* ========================================================================= */ + +/* === H E A D E R S ======================================================= */ + +#ifdef USING_PCH +# include "pch.h" +#else +#ifdef HAVE_CONFIG_H +# include +#endif + +#include "curve_helper.h" +#include "curveset.h" +#include "blinepoint.h" +#include +#include +#include +#include + +#endif + +/* === U S I N G =========================================================== */ + +using namespace std; +using namespace etl; +using namespace synfig; + +/* === M A C R O S ========================================================= */ + +/* === G L O B A L S ======================================================= */ +const Real ERROR = 1e-10; + +/* === P R O C E D U R E S ================================================= */ + +/* === M E T H O D S ======================================================= */ + +/* === E N T R Y P O I N T ================================================= */ +template < typename T > +inline bool Zero(const T &a, const T &tol = (T)ERROR) +{ + return a < tol && a > -tol; +} + +CurvePoint::CurvePoint(const Point &pin, const Vector &left, const Vector &right) +:p(pin),l(left),r(right) +{ +} + +CurvePoint::CurvePoint(const BLinePoint &bpoint) +{ + p = bpoint.get_vertex(); + + l = p + bpoint.get_tangent1()*(1/3.0f); + r = p + bpoint.get_tangent2()*(1/3.0f); +} + +struct ipoint +{ + int curveindex; + int vertindex; + float tvalue; + + ipoint *next; + ipoint *prev; + ipoint *neighbor; + + int go_in; //going in = 1, coming out = -1 + + ipoint() + { + next = this; + prev = this; + neighbor = 0; + } + + bool operator<(const ipoint &rhs) const + { + if(curveindex == rhs.curveindex) + { + if(vertindex == rhs.vertindex) + { + return tvalue < rhs.tvalue; + }else return vertindex < rhs.vertindex; + }else return curveindex < rhs.curveindex; + } + + bool operator >(const ipoint &rhs) const + { + return rhs < *this; + } + + void insert_after(ipoint *i) + { + //from: next - next.prev + //to: next* - i - next.prev* + + ipoint *bef = this, + *aft = next; + + //assuming the input point is not connected to anything, we don't have to do anything with it... + bef->next = i; + i->prev = bef; + aft->prev = i; + i->next = aft; + } + + void insert_before(ipoint *i) + { + //from: prev.next - prev + //to: prev.next* - i - prev* + + ipoint *bef = prev, + *aft = this; + + //assuming the input point is not connected to anything, we don't have to do anything with it... + bef->next = i; + i->prev = bef; + aft->prev = i; + i->next = aft; + } + + void insert_sorted(ipoint *i) + { + ipoint *search = this; + + if(*i < *this) + { + //we go forward + search = this; + do + { + search = search->next; + }while(*i < *search && search != this); //ending conditions... + + //now we insert previously... + search->insert_before(i); + }else if(*i > *this) + { + //we go backwards... + search = this; + do + { + search = search->prev; + }while(*i > *search && search != this); //ending conditions... + + //now we insert previously... + search->insert_after(i); + } + } +}; + +enum SetOp +{ + INTERSECT = 0, + UNION, + SUBTRACT, + INVSUBTRACT, + NUM_SETOPERATIONS +}; + +class PolygonClipper +{ +public: + typedef vector CurveInts; //in no particular order + + vector c1ints; + vector c2ints; + + //get the intersections + void GetIntersections(const CurveSet &lhs, const CurveSet &rhs) + { + CIntersect isect; + bezier b1,b2; + + int i1,j1,ci1,s1; + int i2,j2,ci2,s2; + + //clear out so everyone's happy + c1ints.clear(); + c2ints.clear(); + + c1ints.resize(lhs.set.size()); + c2ints.resize(rhs.set.size()); + + //loop through everyone and be happy... + + //intersect each curve with each other curve, and we're good + for(ci1=0;ci1 < (int)lhs.set.size(); ++ci1) + { + const CurveSet::region &cur1 = lhs.set[ci1]; + s1 = cur1.size(); + for(j1 = s1-1, i1=0; i1 < s1; j1 = i1++) + { + b1[0] = cur1[j1].p; + b1[3] = cur1[i1].p; + b1[1] = b1[0] + cur1[j1].r/3; + b1[2] = b1[3] - cur1[i1].l/3; + + for(ci2=0;ci2 < (int)rhs.set.size(); ++ci2) + { + const CurveSet::region &cur2 = rhs.set[ci2]; + s2 = cur2.size(); + for(j2 = s2-1, i2=0; i2 < s2; j2 = i2++) + { + b2[0] = cur2[j2].p; + b2[3] = cur2[i2].p; + b2[1] = b2[0] + cur2[j2].r/3; + b2[2] = b2[3] - cur2[i2].l/3; + + isect(b1,b2); + + for(int index=0; index < (int)isect.times.size(); ++index) + { + //prepare basic intersection information + ipoint *ip1 = new ipoint, *ip2 = new ipoint; + + //set parameters + ip1->curveindex = ci1; ip1->vertindex = j1; ip1->tvalue = isect.times[index].first; + ip2->curveindex = ci2; ip2->vertindex = j2; ip2->tvalue = isect.times[index].second; + + //set neighbors + ip1->neighbor = ip2; + ip2->neighbor = ip1; + + //first one just goes on end of list + c1ints[ci1].back()->insert_sorted(ip1); + c1ints[ci1].push_back(ip1); + + //second one must go in order + c2ints[ci2].back()->insert_sorted(ip2); + c2ints[ci2].push_back(ip2); + + //we're all good... + } + } + } + } + } + + //Now figure out the containment properties of each int point + Point p; + int inside = 0; + for(int i = 0; i < (int)c1ints.size(); ++i) + { + if(c1ints[i].size() == 0) continue; + + //must test insideness for the edges + ipoint *start, *iter; + start = iter = c1ints[i].front(); + + //i == iter->curveindex == the index of the current curve we're looking at + + //set the initial insideness on the other curve... + p = lhs.set[i][iter->vertindex].p; + inside = rhs.intersect(p)%2; //if it's inside by the even odd rule + + do + { + iter->go_in = inside? -1 : 1; //leaving if inside, or coming in if not + inside = !inside; + iter = iter->next; + }while(iter != start); //I hope this isn't an infinite loop! + } + + //and curve 2 + for(int i = 0; i < (int)c2ints.size(); ++i) + { + if(c2ints[i].size() == 0) continue; + + //must test insideness for the edges + ipoint *start, *iter; + start = iter = c1ints[i].front(); + + //set the initial insideness on the other curve... + p = rhs.set[i][iter->vertindex].p; + inside = lhs.intersect(p)%2; //if it's inside by the even odd rule + + do + { + iter->go_in = inside? -1 : 1; //leaving if inside, or coming in if not + inside = !inside; + iter = iter->next; + }while(iter != start); //I hope this isn't an infinite loop! + } + } + + bool ConstructSet(CurveSet &c, const CurveSet &lhs, const CurveSet &rhs, int type) + { + bool in1,in2; + + switch(type) + { + case INTERSECT: //1&2 + { + in1 = true; in2 = true; + break; + } + + case UNION: //1|2 + { + in1 = false; in2 = false; + break; + } + + case SUBTRACT: //1-2 + { + in1 = true; in2 = false; + break; + } + + case INVSUBTRACT: //2-1 + { + in1 = false; in2 = true; + break; + } + + default: + { + return false; + } + } + + //traverse path based on inside flags + + //fill all the paths of native stuff + set ipset; + for(int ci=0; ci<(int)c1ints.size(); ++ci) + { + for(int i=0; i < (int)c1ints[ci].size(); ++i) + { + ipset.insert(c1ints[ci][i]); + } + } + + // + while(ipset.size() > 0) + { + //start from one point (always on curveset 1) and traverse until we find it again + ipoint *start, *iter; + start = iter = *ipset.begin(); + + //All the info to swap when we transition curves... + const CurveSet *cur, *other; + bool curin, otherin; + bool delcur = true; + + set::iterator deliter; + + int ci,i1,i2,size; + float t1,t2; + + CurveSet::region current; + CurvePoint cp; + + cur = &lhs; other = &rhs; + curin = in1; otherin = in2; + delcur = true; + + do + { + //remove the current iter from the set + if(delcur) + { + deliter = ipset.find(iter); + if(deliter != ipset.end()) ipset.erase(deliter); + } + + //go to next and accumulate information + ci = iter->curveindex; + i1 = iter->vertindex; + t1 = iter->tvalue; + iter = iter->next; //move to next and get its info + + i2 = iter->vertindex; + t2 = iter->tvalue; + + size = cur->set[ci].size(); + + //record all the stuff between us... + //start on an intersection - get the curve point... + + + //transition curves... + iter = iter->neighbor; + swap(cur,other); + swap(curin,otherin); + delcur = !delcur; + }while(iter != start); //I hope THIS isn't an infinite loop + } + + return true; + } +}; + +void CurveSet::SetClamp(int &i, int &si) +{ + if(si > 0 && si < (int)set.size()) + { + if(i >= (int)set[si].size()) + { + i -= set[si].size(); + si++; + }else if (i < 0) + { + i += set[si].size(); + si--; + } + } +} + +void CurveSet::CleanUp(int curve) +{ +} + +/* Detect intersections that are crazy happy good + + Performance annoyances: + 1) Recursing down to find an intersection at the end points that doesn't actually exist + (can be helped a bit by not including the edges of bouding rectaingles) + 2) Intersecting curves is slow... oh well + + Algorithm: + 1) Inside out scheme, track when edges go into and come out of various objects etc. + + + doesn't require initial conditions + - only works with odd-even rule +*/ + +CurveSet CurveSet::operator &(const CurveSet &rhs) const +{ + return *this; +} + +CurveSet CurveSet::operator |(const CurveSet &rhs) const +{ + return *this; +} + +CurveSet CurveSet::operator -(const CurveSet &rhs) const +{ + return *this; +} + +int CurveSet::intersect(const Point &p) const +{ + int inter = 0, ci,i,j,s; + bezier b; + + for(ci=0; ci < (int)set.size(); ++ci) + { + const vector &curve = set[ci]; + s = curve.size(); + for(j=s-1,i=0; i < s; j = i++) + { + b[0] = curve[j].p; b[3] = curve[i].p; + b[1] = b[0] + curve[j].r/3; b[2] = b[3] - curve[i].l/3; + + inter += synfig::intersect(b,p); + } + } + + return inter; +} diff --git a/synfig-core/tags/stable/src/synfig/curveset.h b/synfig-core/tags/stable/src/synfig/curveset.h new file mode 100644 index 0000000..ed867f5 --- /dev/null +++ b/synfig-core/tags/stable/src/synfig/curveset.h @@ -0,0 +1,92 @@ +/* === S Y N F I G ========================================================= */ +/*! \file curveset.h +** \brief Curve Set Header +** +** $Id$ +** +** \legal +** Copyright (c) 2002-2005 Robert B. Quattlebaum Jr., Adrian Bentley +** +** This package is free software; you can redistribute it and/or +** modify it under the terms of the GNU General Public License as +** published by the Free Software Foundation; either version 2 of +** the License, or (at your option) any later version. +** +** This package is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +** General Public License for more details. +** \endlegal +*/ +/* ========================================================================= */ + +/* === S T A R T =========================================================== */ + +#ifndef __SYNFIG_CURVESET_H +#define __SYNFIG_CURVESET_H + +/* === H E A D E R S ======================================================= */ +#include "blinepoint.h" +#include + +/* === M A C R O S ========================================================= */ + +/* === T Y P E D E F S ===================================================== */ + +/* === C L A S S E S & S T R U C T S ======================================= */ +namespace synfig +{ + +class BLinePoint; + +struct CurvePoint +{ + Point p; + Point l,r; + + CurvePoint () {} + CurvePoint(const Point &pin, const Vector &left, const Vector &right); + + CurvePoint(const BLinePoint &bpoint); +}; + +class CurveSet +{ + bool invert; //winding order... + + void CleanUp(int curve = 0); +public: + + typedef std::vector region; + typedef std::vector set_type; + + set_type set; //specifies a region object (assumes looping) + + void SetClamp(int &i, int &si); + + //actual stuff + CurveSet() + { + } + + //anything supporting iterator type operations + template < typename Iterator > + CurveSet(Iterator begin, Iterator end, bool invert = false) + { + set.push_back(std::vector(begin,end)); + CleanUp(invert); + } + + CurveSet operator &(const CurveSet &rhs) const; //intersect + CurveSet operator |(const CurveSet &rhs) const; //union + CurveSet operator -(const CurveSet &rhs) const; //subtract + + + //Point containment + int intersect(const Point &p) const; +}; + +} +/* === E N D =============================================================== */ + +#endif diff --git a/synfig-core/tags/stable/src/synfig/distance.cpp b/synfig-core/tags/stable/src/synfig/distance.cpp new file mode 100644 index 0000000..318e3d2 --- /dev/null +++ b/synfig-core/tags/stable/src/synfig/distance.cpp @@ -0,0 +1,252 @@ +/* === S Y N F I G ========================================================= */ +/*! \file distance.cpp +** \brief Template File +** +** $Id$ +** +** \legal +** Copyright (c) 2002-2005 Robert B. Quattlebaum Jr., Adrian Bentley +** +** This package is free software; you can redistribute it and/or +** modify it under the terms of the GNU General Public License as +** published by the Free Software Foundation; either version 2 of +** the License, or (at your option) any later version. +** +** This package is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +** General Public License for more details. +** \endlegal +*/ +/* ========================================================================= */ + +/* === H E A D E R S ======================================================= */ + +#ifdef USING_PCH +# include "pch.h" +#else +#ifdef HAVE_CONFIG_H +# include +#endif + +#include "distance.h" +#include "renddesc.h" +#include "general.h" +#include +#endif + +/* === U S I N G =========================================================== */ + +using namespace std; +using namespace etl; +using namespace synfig; + +/* === M A C R O S ========================================================= */ + +#define POINTS_PER_INCH (72.0) + +/* === G L O B A L S ======================================================= */ + +#define METERS_PER_UNIT (rend_desc.get_physical_w()/abs(rend_desc.get_tl()[0]-rend_desc.get_br()[0])) + +/* === P R O C E D U R E S ================================================= */ + +/* === M E T H O D S ======================================================= */ + +Distance::Distance(const synfig::String& str) +{ + (*this)=str; +/* int i(0); + float val; + int ret(strscanf(str,"%f%n",&val,&i)); + synfig::info("Distance::Distance(): ret=%d, val=%f",ret,val); + + if(ret<=0) + { + // Error + synfig::error("Distance::Distance(): Bad value \"%s\"",str.c_str()); + value_=0; + } + else + value_=val; + + synfig::info("Distance::Distance(): system=\"%s\"",String(str.begin()+i,str.end()).c_str()); + system_=ident_system(String(str.begin()+i,str.end())); +*/ +} + +Distance& +Distance::operator=(const synfig::String& str) +{ + int i(0); + float val; + int ret(strscanf(str,"%f%n",&val,&i)); + synfig::info("Distance::Distance(): ret=%d, val=%f",ret,val); + + if(ret<=0) + { + // Error + synfig::error("Distance::Distance(): Bad value \"%s\"",str.c_str()); + return *this; + } + else + value_=val; + + synfig::String sys(str.begin()+i,str.end()); + + if(sys.size()) + system_=ident_system(sys); + return *this; +} + +synfig::String +Distance::get_string(int digits)const +{ + digits=min(9,max(0,digits)); + String fmt(strprintf("%%.%01df%%s",digits)); + return strprintf(fmt.c_str(),value_,system_name(system_).c_str()); +} + +void +Distance::convert(Distance::System target, const RendDesc& rend_desc) +{ + value_=get(target,rend_desc); + system_=target; +} + +Real +Distance::get(Distance::System target, const RendDesc& rend_desc)const +{ + if(target==SYSTEM_UNITS) + return units(rend_desc); + if(target==SYSTEM_PIXELS) + return units(rend_desc)*METERS_PER_UNIT*rend_desc.get_x_res(); + + return meters_to_system(meters(rend_desc),target); +} + +Real +Distance::meters()const +{ + switch(system_) + { + case SYSTEM_INCHES: return value_/39.3700787402; + case SYSTEM_POINTS: return value_/POINTS_PER_INCH/39.3700787402; + case SYSTEM_METERS: return value_; + case SYSTEM_CENTIMETERS: return value_/100.0; + case SYSTEM_MILLIMETERS: return value_/1000.0; + default: throw BadSystem(); + } +} + +Real +Distance::meters(const RendDesc& rend_desc)const +{ + if(system_>SYSTEM_PIXELS) + return meters(); + if(system_==SYSTEM_UNITS) + return value_*METERS_PER_UNIT; + if(system_==SYSTEM_PIXELS) + return value_/rend_desc.get_x_res(); + + throw BadSystem(); +} + +Real +Distance::units(const RendDesc& rend_desc)const +{ + if(system_==SYSTEM_UNITS) + return value_; + + Real ret; + + if(system_>SYSTEM_PIXELS) + ret=meters(); + else + ret=value_/rend_desc.get_x_res(); + + return ret/METERS_PER_UNIT; +} + + +Real // (static) +Distance::meters_to_system(Real x,System target_system) +{ + switch(target_system) + { + case SYSTEM_INCHES: return x*39.3700787402; + case SYSTEM_POINTS: return x*39.3700787402*POINTS_PER_INCH; + case SYSTEM_METERS: return x; + case SYSTEM_CENTIMETERS: return x*100.0; + case SYSTEM_MILLIMETERS: return x*1000.0; + default: throw BadSystem(); + } +} + +Distance::System // (static) +Distance::ident_system(const synfig::String& x) +{ + synfig::String str; + + // Make it all upper case, and remove white space + for(unsigned int i=0;i const Time& operator+=(const U &rhs) { value_+=rhs; return *this; } + template const Time& operator-=(const U &rhs) { value_-=rhs; return *this; } + template const Time& operator*=(const U &rhs) { value_*=rhs; return *this; } + template const Time& operator/=(const U &rhs) { value_/=rhs; return *this; } + + template Time operator+(const U &rhs)const { return value_+rhs; } + template Time operator-(const U &rhs)const { return value_-rhs; } + template Time operator*(const U &rhs)const { return value_*rhs; } + template Time operator/(const U &rhs)const { return value_/rhs; } + + Time operator-()const { return -value_; } +*/ +}; // END of class Distance + +}; // END of namespace synfig + +/* === E N D =============================================================== */ + +#endif diff --git a/synfig-core/tags/stable/src/synfig/exception.cpp b/synfig-core/tags/stable/src/synfig/exception.cpp new file mode 100644 index 0000000..9896cff --- /dev/null +++ b/synfig-core/tags/stable/src/synfig/exception.cpp @@ -0,0 +1,105 @@ +/* === S Y N F I G ========================================================= */ +/*! \file exception.cpp +** \brief Template File +** +** $Id$ +** +** \legal +** Copyright (c) 2002-2005 Robert B. Quattlebaum Jr., Adrian Bentley +** +** This package is free software; you can redistribute it and/or +** modify it under the terms of the GNU General Public License as +** published by the Free Software Foundation; either version 2 of +** the License, or (at your option) any later version. +** +** This package is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +** General Public License for more details. +** \endlegal +*/ +/* ========================================================================= */ + +/* === H E A D E R S ======================================================= */ + +#ifdef USING_PCH +# include "pch.h" +#else +#ifdef HAVE_CONFIG_H +# include +#endif + +#include "exception.h" +#include "general.h" + +#endif + +/* === U S I N G =========================================================== */ + +using namespace std; +using namespace etl; +using namespace synfig; + +/* === M A C R O S ========================================================= */ + +/* === G L O B A L S ======================================================= */ + +/* === P R O C E D U R E S ================================================= */ + +/* === M E T H O D S ======================================================= */ + +Exception::BadLinkName::BadLinkName(const String &what): + std::runtime_error(what) +// std::runtime_error(_("Bad Link Name")+what.empty()?"":(String(": ")+what)) +{ + synfig::error("EXCEPTION: bad link name: "+what); +} + +Exception::BadType::BadType(const String &what): + std::runtime_error(what) +// std::runtime_error(_("Bad Type")+what.empty()?"":(String(": ")+what)) +{ + synfig::error("EXCEPTION: bad type: "+what); +} + +Exception::BadFrameRate::BadFrameRate(const String &what): + std::runtime_error(what) +// std::runtime_error(_("Bad Link Name")+what.empty()?"":(String(": ")+what)) +{ + synfig::error("EXCEPTION: bad frame rate: "+what); +} + +Exception::BadTime::BadTime(const String &what): + std::runtime_error(what) +// std::runtime_error(_("Bad Link Name")+what.empty()?"":(String(": ")+what)) +{ + synfig::error("EXCEPTION: bad time: "+what); +} + +Exception::NotFound::NotFound(const String &what): + std::runtime_error(what) +// std::runtime_error(_("Not Found")+what.empty()?"":(String(": ")+what)) +{ +// synfig::error("EXCEPTION: not found: "+what); +} + +Exception::IDNotFound::IDNotFound(const String &what): + NotFound(what) +// std::runtime_error(_("Not Found")+what.empty()?"":(String(": ")+what)) +{ +// synfig::error("EXCEPTION: not found: "+what); +} + +Exception::FileNotFound::FileNotFound(const String &what): + NotFound(what) +// std::runtime_error(_("Not Found")+what.empty()?"":(String(": ")+what)) +{ + synfig::error("EXCEPTION: file not found: "+what); +} + +Exception::IDAlreadyExists::IDAlreadyExists(const String &what): + std::runtime_error(what) +// std::runtime_error(_("ID Already Exists")+what.empty()?"":(String(": ")+what)) +{ + synfig::error("EXCEPTION: id already exists: "+what); +} diff --git a/synfig-core/tags/stable/src/synfig/exception.h b/synfig-core/tags/stable/src/synfig/exception.h new file mode 100644 index 0000000..2132c16 --- /dev/null +++ b/synfig-core/tags/stable/src/synfig/exception.h @@ -0,0 +1,97 @@ +/* === S Y N F I G ========================================================= */ +/*! \file exception.h +** \brief Exceptions +** +** $Id$ +** +** \legal +** Copyright (c) 2002-2005 Robert B. Quattlebaum Jr., Adrian Bentley +** +** This package is free software; you can redistribute it and/or +** modify it under the terms of the GNU General Public License as +** published by the Free Software Foundation; either version 2 of +** the License, or (at your option) any later version. +** +** This package is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +** General Public License for more details. +** \endlegal +*/ +/* ========================================================================= */ + +/* === S T A R T =========================================================== */ + +#ifndef __SYNFIG_EXCEPTION_H +#define __SYNFIG_EXCEPTION_H + +/* === H E A D E R S ======================================================= */ + +#include +#include "string_decl.h" + +/* === M A C R O S ========================================================= */ + +/* === T Y P E D E F S ===================================================== */ + +/* === C L A S S E S & S T R U C T S ======================================= */ + +namespace synfig { + +namespace Exception { + +class BadLinkName : public std::runtime_error +{ +public: + BadLinkName(const String &what); +}; // END of class BadLinkName + +class BadType : public std::runtime_error +{ +public: + BadType(const String &what); +}; // END of class BadType + +class IDAlreadyExists : public std::runtime_error +{ +public: + IDAlreadyExists(const String &what); +}; + +class NotFound : public std::runtime_error +{ +public: + NotFound(const String &what); +}; + +class IDNotFound : public NotFound +{ +public: + IDNotFound(const String &what); +}; + +class FileNotFound : public NotFound +{ +public: + FileNotFound(const String &what); +}; + +class BadTime : public std::runtime_error +{ +public: + BadTime(const String &what); +}; + +class BadFrameRate : public std::runtime_error +{ +public: + BadFrameRate(const String &what); +}; + +}; // END of namespace Exception + +}; // END of namespace synfig + +/* === E N D =============================================================== */ + +#endif diff --git a/synfig-core/tags/stable/src/synfig/gamma.cpp b/synfig-core/tags/stable/src/synfig/gamma.cpp new file mode 100644 index 0000000..f1d1add --- /dev/null +++ b/synfig-core/tags/stable/src/synfig/gamma.cpp @@ -0,0 +1,193 @@ +/* === S Y N F I G ========================================================= */ +/*! \file gamma.cpp +** \brief Template File +** +** $Id$ +** +** \legal +** Copyright (c) 2002-2005 Robert B. Quattlebaum Jr., Adrian Bentley +** +** This package is free software; you can redistribute it and/or +** modify it under the terms of the GNU General Public License as +** published by the Free Software Foundation; either version 2 of +** the License, or (at your option) any later version. +** +** This package is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +** General Public License for more details. +** \endlegal +*/ +/* ========================================================================= */ + +/* === H E A D E R S ======================================================= */ + +#ifdef USING_PCH +# include "pch.h" +#else +#ifdef HAVE_CONFIG_H +# include +#endif + +#include "gamma.h" +#include +#include +#endif + +/* === U S I N G =========================================================== */ + +using namespace std; +//using namespace etl; +using namespace synfig; + +/* === M A C R O S ========================================================= */ + +/* === G L O B A L S ======================================================= */ + +/* === P R O C E D U R E S ================================================= */ + +/* === M E T H O D S ======================================================= */ + +void +Gamma::set_gamma(float x) +{ + gamma_r=gamma_g=gamma_b=x; + int i; + red_blue_level=1.0f; + for(i=0;i<65536;i++) + { + float f(float(i)/65536.0f); + f=pow(f,gamma_r); + table_r_U16_to_U8[i]=table_g_U16_to_U8[i]=table_b_U16_to_U8[i]=(unsigned char)(f*(255.0f-(black_level*255))+0.5f + black_level*255.0f); + } + + for(i=0;i<256;i++) + table_r_U8_to_F32[i]=table_g_U8_to_F32[i]=table_b_U8_to_F32[i]=pow((float(i)/255.0f)*(1.0f-black_level)+black_level,gamma_r); +} + + +void +Gamma::refresh_gamma_r() +{ + int i; +// const float scalar(min(red_blue_level,1.0f)); + const float scalar(1.0f); + for(i=0;i<65536;i++) + { + float f(float(i)/65536.0f); + f=pow(f,gamma_r)*scalar; + table_r_U16_to_U8[i]=(unsigned char)(f*(255.0f-(black_level*255))+0.5f + black_level*255.0f); + } + + for(i=0;i<256;i++) + table_r_U8_to_F32[i]=pow((float(i)/255.0f)*(1.0f-black_level)+black_level,gamma_r)*scalar; +} + +void +Gamma::refresh_gamma_g() +{ + int i; +// const float scalar(sqrt(min(red_blue_level,2.0f-red_blue_level))); + const float scalar(1.0f); + for(i=0;i<65536;i++) + { + float f(float(i)/65536.0f); + f=pow(f,gamma_g)*scalar; + table_g_U16_to_U8[i]=(unsigned char)(f*(255.0f-(black_level*255))+0.5f + black_level*255.0f); + } + for(i=0;i<256;i++) + table_g_U8_to_F32[i]=pow((float(i)/255.0f)*(1.0f-black_level)+black_level,gamma_g)*scalar; +} + +void +Gamma::refresh_gamma_b() +{ + int i; +// const float scalar(min(2.0f-red_blue_level,1.0f)); + const float scalar(1.0f); + for(i=0;i<65536;i++) + { + float f(float(i)/65536.0f); + f=pow(f,gamma_b)*scalar; + table_b_U16_to_U8[i]=(unsigned char)(f*(255.0f-(black_level*255))+0.5f + black_level*255.0f); + } + for(i=0;i<256;i++) + table_b_U8_to_F32[i]=pow((float(i)/255.0f)*(1.0f-black_level)+black_level,gamma_b)*scalar; +} + +void +Gamma::set_gamma_r(float x) +{ + // If the gamma hasn't changed, then don't recompute the tables + if(x==gamma_r) return; + + gamma_r=x; + refresh_gamma_r(); +} + +void +Gamma::set_gamma_g(float x) +{ + // If the gamma hasn't changed, then don't recompute the tables + if(x==gamma_g) return; + + gamma_g=x; + refresh_gamma_g(); +} + +void +Gamma::set_gamma_b(float x) +{ + // If the gamma hasn't changed, then don't recompute the tables + if(x==gamma_b) return; + + gamma_b=x; + refresh_gamma_b(); +} + +void +Gamma::set_black_level(float x) +{ + // If the black_level hasn't changed, then don't recompute the tables + if(x==black_level) return; + + black_level=x; + + // Rebuild tables + refresh_gamma_r(); + refresh_gamma_g(); + refresh_gamma_b(); +} + +void +Gamma::set_red_blue_level(float x) +{ + // If the black_level hasn't changed, then don't recompute the tables + if(x==red_blue_level) return; + + red_blue_level=x; + + // Rebuild tables + refresh_gamma_r(); + refresh_gamma_g(); + refresh_gamma_b(); +} + +void +Gamma::set_all(float r, float g, float b, float black, float red_blue) +{ + // If nothing has changed, then don't recompute the tables + if(gamma_r==r && gamma_g==g && gamma_b==b && black_level==black && red_blue_level==red_blue) + return; + + gamma_r=r; + gamma_g=g; + gamma_b=b; + black_level=black; + red_blue_level=red_blue; + + // Rebuild tables + refresh_gamma_r(); + refresh_gamma_g(); + refresh_gamma_b(); +} diff --git a/synfig-core/tags/stable/src/synfig/gamma.h b/synfig-core/tags/stable/src/synfig/gamma.h new file mode 100644 index 0000000..0d3da08 --- /dev/null +++ b/synfig-core/tags/stable/src/synfig/gamma.h @@ -0,0 +1,108 @@ +/* === S Y N F I G ========================================================= */ +/*! \file gamma.h +** \brief Template Header +** +** $Id$ +** +** \legal +** Copyright (c) 2002-2005 Robert B. Quattlebaum Jr., Adrian Bentley +** +** This package is free software; you can redistribute it and/or +** modify it under the terms of the GNU General Public License as +** published by the Free Software Foundation; either version 2 of +** the License, or (at your option) any later version. +** +** This package is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +** General Public License for more details. +** \endlegal +*/ +/* ========================================================================= */ + +/* === S T A R T =========================================================== */ + +#ifndef __SYNFIG_GAMMA_H +#define __SYNFIG_GAMMA_H + +/* === H E A D E R S ======================================================= */ + +#include + +/* === M A C R O S ========================================================= */ + +/* === T Y P E D E F S ===================================================== */ + +/* === C L A S S E S & S T R U C T S ======================================= */ + +namespace synfig { + +/*! \class Gamma +** \brief This class performs color correction on Color classes. +** \stub +*/ +class Gamma +{ + float gamma_r; + float gamma_g; + float gamma_b; + float black_level; + float red_blue_level; + + unsigned char table_r_U16_to_U8[65536]; + unsigned char table_g_U16_to_U8[65536]; + unsigned char table_b_U16_to_U8[65536]; + + float table_r_U8_to_F32[256]; + float table_g_U8_to_F32[256]; + float table_b_U8_to_F32[256]; + +public: + Gamma(float x=1):black_level(0) { set_gamma(x); } + + void set_gamma(float x); + void set_gamma_r(float x); + void set_gamma_g(float x); + void set_gamma_b(float x); + void set_black_level(float x); + + void set_red_blue_level(float x); + void set_all(float r, float g, float b, float black, float red_blue=1.0f); + + float get_gamma()const { return (gamma_r+gamma_g+gamma_b)*0.33333333; } + float get_gamma_r()const { return gamma_r; } + float get_gamma_g()const { return gamma_g; } + float get_gamma_b()const { return gamma_b; } + float get_black_level()const { return black_level; } + float get_red_blue_level()const { return red_blue_level; } + + void refresh_gamma_r(); + void refresh_gamma_g(); + void refresh_gamma_b(); + + const unsigned char &r_U16_to_U8(int i)const { return table_r_U16_to_U8[i]; } + const unsigned char &g_U16_to_U8(int i)const { return table_g_U16_to_U8[i]; } + const unsigned char &b_U16_to_U8(int i)const { return table_b_U16_to_U8[i]; } + + const unsigned char &r_F32_to_U8(float x)const { return table_r_U16_to_U8[(int)(x*65535.0f)]; } + const unsigned char &g_F32_to_U8(float x)const { return table_g_U16_to_U8[(int)(x*65535.0f)]; } + const unsigned char &b_F32_to_U8(float x)const { return table_b_U16_to_U8[(int)(x*65535.0f)]; } + + unsigned short r_F32_to_U16(float x)const { return (unsigned short)table_r_U16_to_U8[(int)(x*65535.0f)]<<8; } + unsigned short g_F32_to_U16(float x)const { return (unsigned short)table_g_U16_to_U8[(int)(x*65535.0f)]<<8; } + unsigned short b_F32_to_U16(float x)const { return (unsigned short)table_b_U16_to_U8[(int)(x*65535.0f)]<<8; } + + const float& r_U8_to_F32(int i)const { return table_r_U8_to_F32[i]; } + const float& g_U8_to_F32(int i)const { return table_g_U8_to_F32[i]; } + const float& b_U8_to_F32(int i)const { return table_b_U8_to_F32[i]; } + + float r_F32_to_F32(float x)const { return static_cast(pow(x,gamma_r)*(1.0f-black_level)+black_level); } + float g_F32_to_F32(float x)const { return static_cast(pow(x,gamma_g)*(1.0f-black_level)+black_level); } + float b_F32_to_F32(float x)const { return static_cast(pow(x,gamma_b)*(1.0f-black_level)+black_level); } +}; // END of class Gamma + +}; // END of namespace synfig + +/* === E N D =============================================================== */ + +#endif diff --git a/synfig-core/tags/stable/src/synfig/general.h b/synfig-core/tags/stable/src/synfig/general.h new file mode 100644 index 0000000..43e768d --- /dev/null +++ b/synfig-core/tags/stable/src/synfig/general.h @@ -0,0 +1,163 @@ +/* === S Y N F I G ========================================================= */ +/*! \file general.h +** \brief General macros, classes, and prodecure declarations +** +** $Id$ +** +** \legal +** Copyright (c) 2002-2005 Robert B. Quattlebaum Jr., Adrian Bentley +** +** This package is free software; you can redistribute it and/or +** modify it under the terms of the GNU General Public License as +** published by the Free Software Foundation; either version 2 of +** the License, or (at your option) any later version. +** +** This package is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +** General Public License for more details. +** \endlegal +*/ +/* ========================================================================= */ + +/* === S T A R T =========================================================== */ + +#ifndef __SYNFIG_GENERAL_H +#define __SYNFIG_GENERAL_H + +/* === H E A D E R S ======================================================= */ + +#include +#include "string.h" +#include "version.h" +#include + +/* === M A C R O S ========================================================= */ + +// Quick hack to keep stuff working until gettext support is added +#ifndef _ +#define _(x) (x) +#define N_(x) (x) +//#define gettext(x) (x) +#endif + +#define SYNFIG_COPYRIGHT "Copyright (c) 2001-2005 Robert B. Quattlebaum Jr., Adrian Bentley" + + +#ifdef _DEBUG +#ifdef __FUNC__ +#define DEBUGPOINT() synfig::warning(etl::strprintf(__FILE__":"__FUNC__":%d DEBUGPOINT",__LINE__)) +#define DEBUGINFO(x) synfig::warning(etl::strprintf(__FILE__":"__FUNC__":%d:DEBUGINFO:",__LINE__)+x) +#else +#define DEBUGPOINT() synfig::warning(etl::strprintf(__FILE__":%d DEBUGPOINT",__LINE__)) +#define DEBUGINFO(x) synfig::warning(etl::strprintf(__FILE__":%d:DEBUGINFO:",__LINE__)+x) +#endif + +#else +#define DEBUGPOINT() +#define DEBUGINFO(x) +#endif + +/* === C L A S S E S & S T R U C T S ======================================= */ + +namespace synfig { + +class ChangeLocale { + const String previous; + const int category; +public: + ChangeLocale(int category, const char *locale): + previous(setlocale(category,locale)),category(category) + { + } + ~ChangeLocale() { + setlocale(category,previous.c_str()); + } +}; + +/*! \class ProgressCallback +** \todo writeme +*/ +class ProgressCallback +{ +public: + + virtual ~ProgressCallback() { } + virtual bool task(const String &task) { return true; } + virtual bool error(const String &task) { return true; } + virtual bool warning(const String &task) { return true; } + virtual bool amount_complete(int current, int total) { return true; } + + virtual bool valid() const { return true; } +}; + +typedef ProgressCallback ProgressManager; + +/*! \class SuperCallback +** \todo writeme +*/ +class SuperCallback : public ProgressCallback +{ + ProgressCallback *cb; + int start,end,tot; + int w; +public: + + SuperCallback() { cb=NULL; } + SuperCallback(ProgressCallback *cb,int start, int end, int total):cb(cb),start(start),end(end),tot(total) + { + //make sure we don't "inherit" if our subcallback is invalid + if(!cb || !cb->valid()) + cb = NULL; + w=end-start; + } + virtual bool task(const String &task) { if(cb)return cb->task(task); return true; } + virtual bool error(const String &task) { if(cb)return cb->error(task); return true; } + virtual bool warning(const String &task) { if(cb)return cb->warning(task); return true; } + virtual bool amount_complete(int cur, int total) { if(cb)return cb->amount_complete(start+cur*w/total,tot); return true; } + + virtual bool valid() const { return cb != 0; } +}; + +/*! \class SoftwareExpired +** \brief This class is thrown when the software timeout has been reached. +*/ +class SoftwareExpired +{ +}; // END of class SoftwareExpired + + +#ifdef DEATH_TIME +inline void CHECK_EXPIRE_TIME() { if(time(0)>DEATH_TIME) throw SoftwareExpired(); } +#else +#define CHECK_EXPIRE_TIME() while(0){ } +#endif + +/* +extern bool add_to_module_search_path(const std:string &path); +extern bool add_to_config_search_path(const std:string &path); +*/ + +//! Shutdown the synfig environment +extern void shutdown(); + +//! Reports an error +/*! Call this when an error occurs, describing what happened */ +extern void error(const char *format,...); +extern void error(const String &str); + +//! Reports a warning +/*! Call this when something questionable occurs, describing what happened */ +extern void warning(const char *format,...); +extern void warning(const String &str); + +//! Reports some information +/*! Call this to report various information. Please be sparse... */ +extern void info(const char *format,...); +extern void info(const String &str); + +}; // END of namespace synfig + +/* === E N D =============================================================== */ + +#endif diff --git a/synfig-core/tags/stable/src/synfig/gradient.cpp b/synfig-core/tags/stable/src/synfig/gradient.cpp new file mode 100644 index 0000000..21ea107 --- /dev/null +++ b/synfig-core/tags/stable/src/synfig/gradient.cpp @@ -0,0 +1,424 @@ +/* === S Y N F I G ========================================================= */ +/*! \file gradient.cpp +** \brief Color Gradient Class Member Definitions +** +** $Id$ +** +** \legal +** Copyright (c) 2002-2005 Robert B. Quattlebaum Jr., Adrian Bentley +** +** This package is free software; you can redistribute it and/or +** modify it under the terms of the GNU General Public License as +** published by the Free Software Foundation; either version 2 of +** the License, or (at your option) any later version. +** +** This package is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +** General Public License for more details. +** \endlegal +*/ +/* ========================================================================= */ + +/* === H E A D E R S ======================================================= */ + +#ifdef USING_PCH +# include "pch.h" +#else +#ifdef HAVE_CONFIG_H +# include +#endif + +#include "gradient.h" +#include "general.h" +#include +#include "exception.h" +#include + +#include +#endif + +/* === U S I N G =========================================================== */ + +using namespace std; +using namespace etl; +using namespace synfig; + +/* === M A C R O S ========================================================= */ + +/* === G L O B A L S ======================================================= */ + +/* === P R O C E D U R E S ================================================= */ + +/* === M E T H O D S ======================================================= */ + +synfig::Gradient::Gradient(const Color &c1, const Color &c2) +{ + push_back(CPoint(0.0,c1)); + push_back(CPoint(1.0,c2)); +} + +synfig::Gradient::Gradient(const Color &c1, const Color &c2, const Color &c3) +{ + push_back(CPoint(0.0,c1)); + push_back(CPoint(0.5,c2)); + push_back(CPoint(1.0,c3)); +} + +// This sort algorithm MUST be stable +// ie: it must not change the order of items with the same value. +// I am using a bubble sort. +// This algorithm will sort a nearly-sorted list at ~O(N), and +// it will sort an inverse sorted list at ~O(N*N). +void +synfig::Gradient::sort() +{ + stable_sort(begin(),end()); + /* + iterator iter; + iterator iter2,next; + + for(iter=begin();iter!=end();iter++) + { + for(next=iter, iter2=next--;iter2!=begin();iter2=next--) + { + if(*iter<*next) + { + //insert(next,*iter); + //erase(iter); + iter_swap(next,iter); + + continue; + } + else + break; + } + } + */ +} + +static synfig::ColorAccumulator +supersample_helper(const synfig::Gradient::CPoint &color1, const synfig::Gradient::CPoint &color2, float begin, float end, float &weight) +{ + if(color1.pos==color2.pos || color1.pos>=end || color2.pos<=begin) + { + weight=0; + return Color::alpha(); + } + if(color1.pos>=begin && color2.pos=begin && color2.pos>=end) + { + weight=end-color1.pos; + float pos((end+color1.pos)*0.5); + float amount((pos-color1.pos)/(color2.pos-color1.pos)); + //if(abs(amount)>1)amount=(amount>0)?1:-1; + ColorAccumulator ret(Color::blend(color2.color,color1.color, amount, Color::BLEND_STRAIGHT).premult_alpha()*weight); + return ret; + } + if(color1.pos1)amount=(amount>0)?1:-1; + ColorAccumulator ret(Color::blend(color2.color,color1.color, amount, Color::BLEND_STRAIGHT).premult_alpha()*weight); + return ret; + } + synfig::error("color1.pos=%f",color1.pos); + synfig::error("color2.pos=%f",color2.pos); + synfig::error("begin=%f",begin); + synfig::error("end=%f",end); + + weight=0; + return Color::alpha(); + +// assert(0); +} + +Color +synfig::Gradient::operator()(const Real &x,float supersample)const +{ + if(empty()) + return Color(0,0,0,0); + if(supersample<0) + supersample=-supersample; + if(supersample>2.0) + supersample=2.0f; + + float begin_sample(x-supersample*0.5); + float end_sample(x+supersample*0.5); + + if(size()==1 || end_sample<=front().pos || isnan(x)) + return front().color; + + if(begin_sample>=back().pos) + return back().color; + + /* + if(end_sample>=back().pos) + end_sample=back().pos; + + if(begin_sample<=front().pos) + begin_sample=front().pos; + */ + + const_iterator iter,next; + + /* + //optimizize... + Real left = x-supersample/2, right = x+supersample/2; + + if(left < front().pos) left = front().pos; + if(right > back().pos) right = back().pos; + + //find using binary search... + const_iterator iterl,iterr; + + //the binary search should give us the values BEFORE the point we're looking for... + iterl = binary_find(begin(),end(),left); + iterr = binary_find(iterl,end(),right); + + //now integrate over the range of left to right... + + if(iterl == iterr) + { + iterr++; //let's look at the next one shall we :) + + //interpolate neighboring colors + const Real one = iterr->pos - iterl->pos; + const Real lambda = (x - iterl->pos)/one; + + //(1-l)iterl + (l)iterr + return iterl->color.premult_alpha()*(1-lambda) + iterr->color.premult_alpha()*lambda; + + //return Color::blend(iterr->color,iterl->color,lambda,Color::BLEND_STRAIGHT); + }else + { + //itegration madness + const_iterator i = iterl, ie = iterr+1; + Real wlast = left; + + ColorAccumulator clast,cwork; + { + const Real lambda = (x - iterl->pos)/(iterr->pos - iterl->pos); + + //premultiply because that's the form in which we can combine things... + clast = iterl->color.premult_alpha()*(1-lambda) + iterr->color.premult_alpha()*lambda; + //Color::blend((i+1)->color,i->color,(left - i->pos)/((i+1)->pos - i->pos),Color::BLEND_STRAIGHT); + } + + ColorAccumulator accum = 0; + + //loop through all the trapezoids and integrate them as we go... + // area of trap = (yi + yi1)*(xi1 - xi) + // yi = clast, xi = wlast, yi1 = i->color, xi1 = i->pos + + for(;i<=iterr; wlast=i->pos,clast=i->color.premult_alpha(),++i) + { + const Real diff = i->pos - wlast; + if(diff > 0) //only accumulate if there will be area to add + { + cwork = i->color.premult_alpha(); + accum += (cwork + clast)*diff; + } + } + + { + const_iterator ibef = i-1; + const Real diff = right - ibef->pos; + + if(diff > 0) + { + const Real lambda = diff/(i->pos - ibef->pos); + cwork = ibef->color.premult_alpha()*(1-lambda) + i->color.premult_alpha()*lambda; + + accum += (cwork + clast)*diff; //can probably optimize this more... but it's not too bad + } + } + + accum /= supersample; //should be the total area it was sampled over... + return accum.demult_alpha(); + }*/ + + next=begin(),iter=next++; + + //add for optimization + next = binary_find(begin(),end(),(Real)begin_sample); + iter = next++; + + //! As a future optimization, this could be performed faster + //! using a binary search. + for(;iter=iter->pos && xpos && iter->pos!=next->pos) + { + // If the supersample region falls square in between + // two CPoints, then we don't have to do anything special. + if(next!=end() && (!supersample || (iter->pos<=begin_sample && next->pos>=end_sample))) + { + const Real dist(next->pos-iter->pos); + const Real pos(x-iter->pos); + const Real amount(pos/dist); + return Color::blend(next->color,iter->color, amount, Color::BLEND_STRAIGHT); + } + // In this case our supersample region extends over one or more + // CPoints. So, we need to calculate our coverage amount. + ColorAccumulator pool(Color::alpha()); + float divisor(0.0),weight(0); + + const_iterator iter2,next2; + iter2=iter; + if(iter==begin() && iter->pos>x) + { + weight=x-iter->pos; + //weight*=iter->color.get_a(); + pool+=ColorAccumulator(iter->color).premult_alpha()*weight; + divisor+=weight; + } + else + { + while(iter2->pos>=begin_sample) + { + if(iter2==begin()) + { + weight=iter2->pos-(begin_sample); + //weight*=iter2->color.get_a(); + pool+=ColorAccumulator(iter2->color).premult_alpha()*weight; + divisor+=weight; + break; + } + next2=iter2--; + pool+=supersample_helper(*iter2, *next2, begin_sample, end_sample, weight); + divisor+=weight; + } + } + + next2=iter; + iter2=next2++; + while(iter2->pos<=end_sample) + { + if(next2==end()) + { + weight=(end_sample)-iter2->pos; + pool+=ColorAccumulator(iter2->color).premult_alpha()*weight; + divisor+=weight; + break; + } + pool+=supersample_helper(*iter2, *next2, begin_sample, end_sample, weight); + divisor+=weight; + iter2=next2++; + } + + if(divisor && pool.get_a() && pool.is_valid()) + { +/* + pool.set_r(pool.get_r()/pool.get_a()); + pool.set_g(pool.get_g()/pool.get_a()); + pool.set_b(pool.get_b()/pool.get_a()); + pool.set_a(pool.get_a()/divisor); +*/ + pool/=divisor; + pool.set_r(pool.get_r()/pool.get_a()); + pool.set_g(pool.get_g()/pool.get_a()); + pool.set_b(pool.get_b()/pool.get_a()); + if(pool.is_valid()) + return pool; + else + return Color::alpha(); + } + else + return Color::alpha(); + } + } + + // We should never get to this point. + + synfig::error("synfig::Gradient::operator()(): Logic Error (x=%f)",x); + assert(0); + throw std::logic_error(strprintf("synfig::Gradient::operator()(): Logic Error (x=%f)",x)); +} + +synfig::Gradient::iterator +synfig::Gradient::proximity(const Real &x) +{ + iterator iter; + float dist(100000000); + float prev_pos(-0230); + // This algorithm requires a sorted list. + for(iter=begin();iterpos) + new_dist=(abs(x-iter->pos-0.00001)); + else + new_dist=(abs(x-iter->pos)); + + if(new_dist>dist) + { + iter--; + return iter; + } + dist=new_dist; + prev_pos=iter->pos; + } + iter--; + return iter; +} + +synfig::Gradient::const_iterator +synfig::Gradient::proximity(const Real &x)const +{ + return const_cast(this)->proximity(x); + /* + const_iterator iter; + float dist(100000000); + + // This algorithm requires a sorted list. + for(iter=begin();iterpos)); + if(new_dist>dist) + { + iter--; + return iter; + } + dist=new_dist; + } + iter--; + return iter; + */ +} + +synfig::Gradient::iterator +synfig::Gradient::find(const UniqueID &id) +{ + iterator iter; + + for(iter=begin();iter +#include +#include "uniqueid.h" + +/* === M A C R O S ========================================================= */ + +/* === T Y P E D E F S ===================================================== */ + +/* === C L A S S E S & S T R U C T S ======================================= */ + +namespace synfig { + +/*! \struct GradientCPoint +** \brief \todo +*/ +struct GradientCPoint : public UniqueID +{ + Real pos; + Color color; + + bool operator<(const GradientCPoint &rhs)const { return pos +{ +public: + typedef GradientCPoint CPoint; +private: + +public: + Gradient() { } + + //! Two-Tone Color Gradient Convience Constructor + Gradient(const Color &c1, const Color &c2); + + //! Three-Tone Color Gradient Convience Constructor + Gradient(const Color &c1, const Color &c2, const Color &c3); + + //! Alias for sort (Implemented for consistancy) + void sync() { sort(); } + + //! You should call this function after changing stuff. + void sort(); + + Color operator()(const Real &x, float supersample=0)const; + + //! Returns the iterator of the CPoint closest to \a x + iterator proximity(const Real &x); + + //! Returns the const_iterator of the CPoint closest to \a x + const_iterator proximity(const Real &x)const; + + //! Returns the iterator of the CPoint with UniqueID \a id + iterator find(const UniqueID &id); + + //! Returns the const_iterator of the CPoint with UniqueID \a id + const_iterator find(const UniqueID &id)const; +}; // END of class Gradient + +}; // END of namespace synfig + +/* === E N D =============================================================== */ + +#endif diff --git a/synfig-core/tags/stable/src/synfig/guid.cpp b/synfig-core/tags/stable/src/synfig/guid.cpp new file mode 100644 index 0000000..1369aba --- /dev/null +++ b/synfig-core/tags/stable/src/synfig/guid.cpp @@ -0,0 +1,202 @@ +/* === S Y N F I G ========================================================= */ +/*! \file guid.cpp +** \brief Template File +** +** $Id$ +** +** \legal +** Copyright (c) 2002-2005 Robert B. Quattlebaum Jr., Adrian Bentley +** +** This package is free software; you can redistribute it and/or +** modify it under the terms of the GNU General Public License as +** published by the Free Software Foundation; either version 2 of +** the License, or (at your option) any later version. +** +** This package is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +** General Public License for more details. +** \endlegal +*/ +/* ========================================================================= */ + +/* === H E A D E R S ======================================================= */ + +#define HASH_MAP_H +#define SUBTRACT_RNG_H + +#ifdef USING_PCH +# include "pch.h" +#else +#ifdef HAVE_CONFIG_H +# include +#endif + +#include "guid.h" +#include "quick_rng.h" +#include +#include +#include +#include +#include +#include + +#ifdef _DEBUG +#include "general.h" +#endif + +#ifdef HASH_MAP_H +#include HASH_MAP_H +using namespace __gnu_cxx; +#endif + +#ifdef SUBTRACT_RNG_H +#include SUBTRACT_RNG_H +using namespace __gnu_cxx; +#endif + +#ifdef _WIN32 +#include +#endif + +#endif + +/* === U S I N G =========================================================== */ + +using namespace std; +using namespace etl; +using namespace synfig; + +/* === M A C R O S ========================================================= */ + +#define MANUAL_GUID_CALC + +/* === G L O B A L S ======================================================= */ + +/* === P R O C E D U R E S ================================================= */ + +/* === M E T H O D S ======================================================= */ + +#define GUID_RNG quick_rng +//#define GUID_RNG subtractive_rng + + + +#ifdef MANUAL_GUID_CALC +#include +static GUID_RNG _a, _b; +static void _set_up_rand_long_long(uint64_t &x); +static void _get_rand_long_long(uint64_t &x); +static void (*get_rand_long_long)(uint64_t&)=_set_up_rand_long_long; +static void _set_up_rand_long_long(uint64_t &x) +{ +#ifdef _DEBUG + synfig::info("Starting up GUID system..."); +#endif + _a=GUID_RNG(time(0)+clock()); + _b=GUID_RNG(clock()); + get_rand_long_long=_get_rand_long_long; + _get_rand_long_long(x); +} + +static void _get_rand_long_long(uint64_t &x) +{ + //subtractive_rng _c(clock()); + unsigned short* data(reinterpret_cast(&x)); + data[0]=_a(65536); + data[1]=_a(65536); + data[2]=_a(65536); + data[3]=_a(65536); +} + +#else +// Use OS-Dependent method + +#ifdef _WIN32 +// Win32 +static void get_rand_long_long(uint64_t &x) +{ + _GUID* guid(reinterpret_cast<_GUID*>(&x)); + CoCreateGuid(guid); +} + +#else +// Unix +static int rand_fd; +static void _set_up_rand_long_long(uint64_t &x); +static void _get_rand_long_long(uint64_t &x); +static void (*get_rand_long_long)(uint64_t&)=_set_up_rand_long_long; +static void _set_up_rand_long_long(uint64_t &x) +{ +#ifdef _DEBUG + synfig::info("Starting up GUID system..."); +#endif + rand_fd=open("/dev/urandom",O_RDONLY); + get_rand_long_long=_get_rand_long_long; + _get_rand_long_long(x); +} + +static void _get_rand_long_long(uint64_t &x){ read(rand_fd,&x,sizeof(x));} + +#endif +#endif + + + +void +synfig::GUID::make_unique() +{ + get_rand_long_long(data.u_64.a); + get_rand_long_long(data.u_64.b); +} + +synfig::GUID +synfig::GUID::hasher(const String& str) +{ +#ifdef HASH_MAP_H + hash string_hash_; + const unsigned int seed( + string_hash_( + str.c_str() + ) + ); +#else + const unsigned int seed(0x3B642879); + for(int i=0;i>(32-(i%24)))^(seed<<(i%24)) + } +#endif + + GUID_RNG random(seed); + GUID ret(0); + ret.data.u_32.a=random(~(unsigned int)0); + ret.data.u_32.b=random(~(unsigned int)0); + ret.data.u_32.c=random(~(unsigned int)0); + ret.data.u_32.d=random(~(unsigned int)0); + return ret; +} + +synfig::GUID +synfig::GUID::hasher(int i) +{ + GUID ret(0); + GUID_RNG random(i); + ret.data.u_32.a=random(~(unsigned int)0); + ret.data.u_32.b=random(~(unsigned int)0); + ret.data.u_32.c=random(~(unsigned int)0); + ret.data.u_32.d=random(~(unsigned int)0); + return ret; +} + +String +synfig::GUID::get_string()const +{ + return strprintf("%08X%08X%08X%08X",data.u_32.a,data.u_32.b,data.u_32.c,data.u_32.d); +} + +synfig::GUID::GUID(const String &str) +{ + strscanf(str,"%08X%08X%08X%08X",&data.u_32.a,&data.u_32.b,&data.u_32.c,&data.u_32.d); +} diff --git a/synfig-core/tags/stable/src/synfig/guid.h b/synfig-core/tags/stable/src/synfig/guid.h new file mode 100644 index 0000000..d9a4008 --- /dev/null +++ b/synfig-core/tags/stable/src/synfig/guid.h @@ -0,0 +1,141 @@ +/* === S Y N F I G ========================================================= */ +/*! \file guid.h +** \brief Template Header +** +** $Id$ +** +** \legal +** Copyright (c) 2002-2005 Robert B. Quattlebaum Jr., Adrian Bentley +** +** This package is free software; you can redistribute it and/or +** modify it under the terms of the GNU General Public License as +** published by the Free Software Foundation; either version 2 of +** the License, or (at your option) any later version. +** +** This package is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +** General Public License for more details. +** \endlegal +*/ +/* ========================================================================= */ + +/* === S T A R T =========================================================== */ + +#ifndef __SYNFIG_GUID_H +#define __SYNFIG_GUID_H + +/* === H E A D E R S ======================================================= */ + +#include "string.h" +#include +#include + +/* === M A C R O S ========================================================= */ + +/* === T Y P E D E F S ===================================================== */ + +/* === C L A S S E S & S T R U C T S ======================================= */ + +namespace synfig { + +class GUID +{ + union { + struct { + unsigned int a; + unsigned int b; + unsigned int c; + unsigned int d; + } u_32; + struct { + uint64_t a; + uint64_t b; + } u_64; + + } data; + +public: + GUID() + { make_unique(); } + GUID(const GUID& x):data(x.data) + { } + GUID(const int i){assert(!i); data.u_64.a=0;data.u_64.b=0;} + + GUID(const String& str); + + static GUID zero() { return GUID(0); } + static GUID hasher(const String& str); + static GUID hasher(int i); + + operator bool()const { return data.u_32.a||data.u_32.b||data.u_32.c||data.u_32.d; } + + uint64_t get_hi()const { return data.u_64.a; } + uint64_t get_lo()const { return data.u_64.b; } + + uint64_t get_hi_hi()const { return data.u_32.a; } + uint64_t get_hi_lo()const { return data.u_32.b; } + uint64_t get_lo_hi()const { return data.u_32.c; } + uint64_t get_lo_lo()const { return data.u_32.d; } + + void make_unique(); + String get_string()const; + + bool operator==(const GUID& rhs)const + { return data.u_64.a==rhs.data.u_64.a && data.u_64.b==rhs.data.u_64.b; } + bool operator!=(const GUID& rhs)const + { return data.u_64.a!=rhs.data.u_64.a || data.u_64.b!=rhs.data.u_64.b; } + bool operator<(const GUID& rhs)const + { return (data.u_64.a==rhs.data.u_64.a)?(data.u_64.b(const GUID& rhs)const + { return (data.u_64.a==rhs.data.u_64.a)?(data.u_64.b>rhs.data.u_64.b):(data.u_64.a>rhs.data.u_64.a); } + bool operator<=(const GUID& rhs)const + { return operator<(rhs) || operator==(rhs); } + bool operator>=(const GUID& rhs)const + { return operator>(rhs) || operator==(rhs); } + + //! Operator '^' (xor) + /*! If A ^ B == C, then C ^ B == A and B ^ A == C. + ** Also keep in mind that A ^ A == 0 and A ^ B ^ B = A. */ + GUID& operator^=(const GUID& rhs) + { + data.u_32.a^=rhs.data.u_32.a; + data.u_32.b^=rhs.data.u_32.b; + data.u_32.c^=rhs.data.u_32.c; + data.u_32.d^=rhs.data.u_32.d; + return *this; + } + GUID operator^(const GUID& rhs)const { return GUID(*this)^=rhs; } + + //! Operator '%' (alt-xor) + /*! A % B != B % A. */ + GUID& operator%=(const GUID& rhs) + { + data.u_32.a^=rhs.data.u_32.b; + data.u_32.b^=rhs.data.u_32.c; + data.u_32.c^=rhs.data.u_32.d; + data.u_32.d^=rhs.data.u_32.a; + return *this; + } + GUID operator%(const GUID& rhs)const { return GUID(*this)%=rhs; } + +}; + +class GUIDHash +{ +public: + size_t operator()(const GUID& guid)const + { + return + guid.get_hi_hi()+ + guid.get_hi_lo()+ + guid.get_lo_hi()+ + guid.get_lo_lo(); + } +}; + +}; + +/* === E N D =============================================================== */ + +#endif diff --git a/synfig-core/tags/stable/src/synfig/guidset.h b/synfig-core/tags/stable/src/synfig/guidset.h new file mode 100644 index 0000000..e8a2bce --- /dev/null +++ b/synfig-core/tags/stable/src/synfig/guidset.h @@ -0,0 +1,61 @@ +/* === S Y N F I G ========================================================= */ +/*! \file guidset.h +** \brief Template Header +** +** $Id$ +** +** \legal +** Copyright (c) 2002-2005 Robert B. Quattlebaum Jr., Adrian Bentley +** +** This package is free software; you can redistribute it and/or +** modify it under the terms of the GNU General Public License as +** published by the Free Software Foundation; either version 2 of +** the License, or (at your option) any later version. +** +** This package is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +** General Public License for more details. +** \endlegal +*/ +/* ========================================================================= */ + +/* === S T A R T =========================================================== */ + +#ifndef __SYNFIG_GUIDSET_H +#define __SYNFIG_GUIDSET_H + +#define HASH_SET_H + +/* === H E A D E R S ======================================================= */ + +#include "guid.h" + +#ifdef HASH_SET_H +#include HASH_SET_H +#else +#include +#endif + +/* === M A C R O S ========================================================= */ + +/* === T Y P E D E F S ===================================================== */ + +/* === C L A S S E S & S T R U C T S ======================================= */ + +namespace synfig { + +class GUIDSet : public +#ifdef HASH_SET_H +std::set +#else +std::hash_set +#endif +{ +}; // END of class GUIDSet + +}; + +/* === E N D =============================================================== */ + +#endif diff --git a/synfig-core/tags/stable/src/synfig/importer.cpp b/synfig-core/tags/stable/src/synfig/importer.cpp new file mode 100644 index 0000000..524eea3 --- /dev/null +++ b/synfig-core/tags/stable/src/synfig/importer.cpp @@ -0,0 +1,144 @@ +/* === S Y N F I G ========================================================= */ +/*! \file importer.cpp +** \brief writeme +** +** $Id$ +** +** \legal +** Copyright (c) 2002-2005 Robert B. Quattlebaum Jr., Adrian Bentley +** +** This package is free software; you can redistribute it and/or +** modify it under the terms of the GNU General Public License as +** published by the Free Software Foundation; either version 2 of +** the License, or (at your option) any later version. +** +** This package is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +** General Public License for more details. +** \endlegal +*/ +/* ========================================================================= */ + +/* === H E A D E R S ======================================================= */ + +#define SYNFIG_NO_ANGLE + +#ifdef USING_PCH +# include "pch.h" +#else +#ifdef HAVE_CONFIG_H +# include +#endif + +#include "canvas.h" +#include "importer.h" +#include "surface.h" +#include +#include "string.h" +#include +#include +#include + +#endif + +/* === M A C R O S ========================================================= */ + +/* === G L O B A L S ======================================================= */ + +using namespace etl; +using namespace std; +using namespace synfig; + +Importer::Book* synfig::Importer::book_; + +map *__open_importers; + +/* === P R O C E D U R E S ================================================= */ + +/* === M E T H O D S ======================================================= */ + +bool +Importer::subsys_init() +{ + book_=new Book(); + __open_importers=new map(); + return true; +} + +bool +Importer::subsys_stop() +{ + delete book_; + delete __open_importers; + return true; +} + +Importer::Book& +Importer::book() +{ + return *book_; +} + +Importer::Handle +Importer::open(const String &filename) +{ + if(filename.empty()) + { + synfig::error(_("Importer::open(): Cannot open empty filename")); + return 0; + } + + // If we already have an importer open under that filename, + // then use it instead. + if(__open_importers->count(filename)) + { + //synfig::info("Found importer already open, using it..."); + return (*__open_importers)[filename]; + } + + if(find(filename.begin(),filename.end(),'.')==filename.end()) + { + synfig::error(_("Importer::open(): Couldn't find extension")); + return 0; + } + + String ext=string(filename.begin()+filename.find_last_of('.')+1,filename.end()); + std::transform(ext.begin(),ext.end(),ext.begin(),&::tolower); + + + if(!Importer::book().count(ext)) + { + synfig::error(_("Importer::open(): Unknown file type -- ")+ext); + return 0; + } + + try { + Importer::Handle importer; + importer=Importer::book()[ext](filename.c_str()); + (*__open_importers)[filename]=importer; + return importer; + } + catch (String str) + { + synfig::error(str); + } + return 0; +} + +Importer::Importer(): + gamma_(2.2) +{ +} + + +Importer::~Importer() +{ + // Remove ourselves from the open importer list + map::iterator iter; + for(iter=__open_importers->begin();iter!=__open_importers->end();++iter) + if(iter->second==this) + { + __open_importers->erase(iter); + } +} diff --git a/synfig-core/tags/stable/src/synfig/importer.h b/synfig-core/tags/stable/src/synfig/importer.h new file mode 100644 index 0000000..62c410e --- /dev/null +++ b/synfig-core/tags/stable/src/synfig/importer.h @@ -0,0 +1,123 @@ +/* === S Y N F I G ========================================================= */ +/*! \file importer.h +** \brief writeme +** +** $Id$ +** +** \legal +** Copyright (c) 2002-2005 Robert B. Quattlebaum Jr., Adrian Bentley +** +** This package is free software; you can redistribute it and/or +** modify it under the terms of the GNU General Public License as +** published by the Free Software Foundation; either version 2 of +** the License, or (at your option) any later version. +** +** This package is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +** General Public License for more details. +** \endlegal +*/ +/* ========================================================================= */ + +/* === S T A R T =========================================================== */ + +#ifndef __SYNFIG_IMPORTER_H +#define __SYNFIG_IMPORTER_H + +/* === H E A D E R S ======================================================= */ + +#include +//#include +#include +#include "string.h" +//#include "surface.h" +//#include "general.h" +//#include "vector.h" +#include "time.h" +#include "gamma.h" + +/* === M A C R O S ========================================================= */ + +//! \writeme +#define SYNFIG_IMPORTER_MODULE_EXT public: static const char name__[], version__[], ext__[],cvs_id__[]; static Importer *create(const char *filename); + +//! Sets the name of the importer +#define SYNFIG_IMPORTER_SET_NAME(class,x) const char class::name__[]=x + +//! \writeme +#define SYNFIG_IMPORTER_SET_EXT(class,x) const char class::ext__[]=x + +//! Sets the version of the importer +#define SYNFIG_IMPORTER_SET_VERSION(class,x) const char class::version__[]=x + +//! Sets the CVS ID of the importer +#define SYNFIG_IMPORTER_SET_CVS_ID(class,x) const char class::cvs_id__[]=x + +//! \writeme +#define SYNFIG_IMPORTER_INIT(class) synfig::Importer* class::create(const char *filename) { return new class(filename); } + +/* === T Y P E D E F S ===================================================== */ + +/* === C L A S S E S & S T R U C T S ======================================= */ + +namespace synfig { + +class Surface; +class ProgressCallback; + +/*! \class Importer +** \brief Used for importing bitmaps of various formats, including animations +** \todo Write more detailed description +*/ +class Importer : public etl::shared_object +{ +public: + typedef Importer* (*Factory)(const char *filename); + typedef std::map Book; + static Book* book_; + + static Book& book(); + + static bool subsys_init(); + static bool subsys_stop(); + + typedef etl::handle Handle; + typedef etl::loose_handle LooseHandle; + typedef etl::handle ConstHandle; + +private: + Gamma gamma_; + +protected: + Importer(); + +public: + + Gamma& gamma() { return gamma_; } + const Gamma& gamma()const { return gamma_; } + + virtual ~Importer(); + + //! Gets a frame and puts it into \a surface + /*! \param surface Reference to surface to put frame into + ** \param time For animated importers, determines which frame to get. + ** For static importers, this parameter is unused. + ** \param callback Pointer to callback class for progress, errors, etc. + ** \return \c true on success, \c false on error + ** \see ProgressCallback, Surface + */ + virtual bool get_frame(Surface &surface,Time time, ProgressCallback *callback=NULL)=0; + + //! Returns \c true if the importer pays attention to the \a time parameter of get_frame() + virtual bool is_animated() { return false; } + + //! Attempts to open \a filename, and returns a handle to the associated Importer + static Handle open(const String &filename); +}; + +}; // END of namespace synfig + +/* === E N D =============================================================== */ + +#endif diff --git a/synfig-core/tags/stable/src/synfig/interpolation.h b/synfig-core/tags/stable/src/synfig/interpolation.h new file mode 100644 index 0000000..4826f07 --- /dev/null +++ b/synfig-core/tags/stable/src/synfig/interpolation.h @@ -0,0 +1,53 @@ +/* === S Y N F I G ========================================================= */ +/*! \file interpolation.h +** \brief Template Header +** +** $Id$ +** +** \legal +** Copyright (c) 2002-2005 Robert B. Quattlebaum Jr., Adrian Bentley +** +** This package is free software; you can redistribute it and/or +** modify it under the terms of the GNU General Public License as +** published by the Free Software Foundation; either version 2 of +** the License, or (at your option) any later version. +** +** This package is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +** General Public License for more details. +** \endlegal +*/ +/* ========================================================================= */ + +/* === S T A R T =========================================================== */ + +#ifndef __SYNFIG_INTERPOLATION_H +#define __SYNFIG_INTERPOLATION_H + +/* === H E A D E R S ======================================================= */ + +/* === M A C R O S ========================================================= */ + +/* === T Y P E D E F S ===================================================== */ + +/* === C L A S S E S & S T R U C T S ======================================= */ + +namespace synfig { + +enum Interpolation +{ + INTERPOLATION_TCB, + INTERPOLATION_CONSTANT, + INTERPOLATION_LINEAR, + INTERPOLATION_HALT, + INTERPOLATION_MANUAL, + INTERPOLATION_UNDEFINED, + INTERPOLATION_NIL +}; // END enum Interpolation + +}; // END of namespace synfig + +/* === E N D =============================================================== */ + +#endif diff --git a/synfig-core/tags/stable/src/synfig/keyframe.cpp b/synfig-core/tags/stable/src/synfig/keyframe.cpp new file mode 100644 index 0000000..0a9d2fd --- /dev/null +++ b/synfig-core/tags/stable/src/synfig/keyframe.cpp @@ -0,0 +1,237 @@ +/* === S Y N F I G ========================================================= */ +/*! \file keyframe.cpp +** \brief Template File +** +** $Id$ +** +** \legal +** Copyright (c) 2002-2005 Robert B. Quattlebaum Jr., Adrian Bentley +** +** This package is free software; you can redistribute it and/or +** modify it under the terms of the GNU General Public License as +** published by the Free Software Foundation; either version 2 of +** the License, or (at your option) any later version. +** +** This package is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +** General Public License for more details. +** \endlegal +*/ +/* ========================================================================= */ + +/* === H E A D E R S ======================================================= */ + +#ifdef USING_PCH +# include "pch.h" +#else +#ifdef HAVE_CONFIG_H +# include +#endif + +#include + +#include + +#include "keyframe.h" +#include "exception.h" +#include "general.h" +#include + +#endif + +/* === U S I N G =========================================================== */ + +using namespace std; +using namespace etl; +using namespace synfig; + +/* === M A C R O S ========================================================= */ + +/* === G L O B A L S ======================================================= */ + +/* === P R O C E D U R E S ================================================= */ + +/* === M E T H O D S ======================================================= */ + +Keyframe::Keyframe(): + time_(0) +{ +} + +Keyframe::Keyframe(const Time &time): + time_(time) +{ +} + +Keyframe::~Keyframe() +{ +} + +void +KeyframeList::dump()const +{ + const_iterator iter; + int i; + synfig::info(">>>>>>>>BEGIN KEYFRAME DUMP"); + for(iter=begin(),i=0;iter!=end();++iter,i++) + { + synfig::info("#%d, time: %s, desc: %s",i,iter->get_time().get_string().c_str(),iter->get_description().c_str()); + } + synfig::info("<<<<<<<::erase(find(x)); +} + +KeyframeList::iterator +KeyframeList::find(const Time &x) +{ + KeyframeList::iterator iter; + iter=binary_find(begin(),end(),x); + if(iter!=end() && iter->get_time().is_equal(x)) + return iter; +/* iter++; + if(iter!=end() && iter->get_time().is_equal(x)) + return iter; +*/ + throw Exception::NotFound(strprintf("KeyframeList::find(): Can't find Keyframe %s",x.get_string().c_str())); +} + +KeyframeList::iterator +KeyframeList::find_next(const Time &x) +{ + KeyframeList::iterator iter(binary_find(begin(),end(),x)); + + if(iter!=end()) + { + if(iter->get_time().is_more_than(x)) + return iter; + ++iter; + if(iter!=end()) + { + if(iter->get_time().is_more_than(x)) + return iter; +/* ++iter; + if(iter!=end() && iter->get_time().is_more_than(x)) + return iter; +*/ + } + } + + throw Exception::NotFound(strprintf("KeyframeList::find(): Can't find next Keyframe %s",x.get_string().c_str())); +} + + +KeyframeList::iterator +KeyframeList::find_prev(const Time &x) +{ + KeyframeList::iterator iter(binary_find(begin(),end(),x)); + + if(iter!=end()) + { + if(iter->get_time()+Time::epsilon()get_time()+Time::epsilon()(this)->find(x); +} + + +KeyframeList::const_iterator +KeyframeList::find_next(const Time &x)const +{ + return const_cast(this)->find_next(x); + +} + + +KeyframeList::const_iterator +KeyframeList::find_prev(const Time &x)const +{ + return const_cast(this)->find_prev(x); + +} + +void +KeyframeList::find_prev_next(const Time& time, Time &prev, Time &next)const +{ + try { prev=find_prev(time)->get_time(); } + catch(...) { prev=Time::begin(); } + try { next=find_next(time)->get_time(); } + catch(...) { next=Time::end(); } +} + +void +KeyframeList::insert_time(const Time& location, const Time& delta) +{ +// synfig::info("KeyframeList::insert_time(): loc=%s, delta=%s",location.get_string().c_str(),delta.get_string().c_str()); + if(!delta) + return; + try + { + iterator iter(find_next(location)); + for(;iter!=end();++iter) + { + iter->set_time(iter->get_time()+delta); + } + sync(); + } + catch(Exception::NotFound) { } +} diff --git a/synfig-core/tags/stable/src/synfig/keyframe.h b/synfig-core/tags/stable/src/synfig/keyframe.h new file mode 100644 index 0000000..d8f9bf7 --- /dev/null +++ b/synfig-core/tags/stable/src/synfig/keyframe.h @@ -0,0 +1,128 @@ +/* === S Y N F I G ========================================================= */ +/*! \file keyframe.h +** \brief Template Header +** +** $Id$ +** +** \legal +** Copyright (c) 2002-2005 Robert B. Quattlebaum Jr., Adrian Bentley +** +** This package is free software; you can redistribute it and/or +** modify it under the terms of the GNU General Public License as +** published by the Free Software Foundation; either version 2 of +** the License, or (at your option) any later version. +** +** This package is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +** General Public License for more details. +** \endlegal +*/ +/* ========================================================================= */ + +/* === S T A R T =========================================================== */ + +#ifndef __SYNFIG_KEYFRAME_H +#define __SYNFIG_KEYFRAME_H + +/* === H E A D E R S ======================================================= */ + +#include +#include +#include "string.h" +#include "time.h" +#include "uniqueid.h" +#include "guid.h" + +/* === M A C R O S ========================================================= */ + +/* === T Y P E D E F S ===================================================== */ + +/* === C L A S S E S & S T R U C T S ======================================= */ + +namespace synfig { + +//! \writeme +class Keyframe : public UniqueID +{ +public: + + Time time_; + String desc_; + GUID guid_; + +public: + + Keyframe(); + + Keyframe(const Time &time); + + ~Keyframe(); + + void set_time(Time x) { time_=x; } + + Time get_time()const { return time_; } + + void set_description(String x) { desc_=x; } + + String get_description()const { return desc_; } + + const GUID& get_guid()const { return guid_; } + void set_guid(const GUID& x) { guid_=x; } + + using UniqueID::operator<; + using UniqueID::operator==; + using UniqueID::operator!=; + using UniqueID::operator=; + + bool operator<(const Keyframe &rhs)const { return time_ +{ + +public: + + iterator add(const Keyframe &x); + + void erase(const UniqueID &x); + + iterator find(const UniqueID &x); + + const_iterator find(const UniqueID &x)const; + + //! Finds the keyframe at an exact point in time + iterator find(const Time &x); + + //! Finds the keyframe after that point in time + iterator find_next(const Time &x); + + //! Finds the keyframe before that point in time + iterator find_prev(const Time &x); + + const_iterator find(const Time &x)const; + const_iterator find_next(const Time &x)const; + const_iterator find_prev(const Time &x)const; + + void find_prev_next(const Time& time, Time &prev, Time &next)const; + + void insert_time(const Time& location, const Time& delta); + + void dump()const; + void sync(); +}; + +//typedef std::list KeyframeList; + +}; // END of namespace synfig + +/* === E N D =============================================================== */ + +#endif diff --git a/synfig-core/tags/stable/src/synfig/layer.cpp b/synfig-core/tags/stable/src/synfig/layer.cpp new file mode 100644 index 0000000..8d6ae4a --- /dev/null +++ b/synfig-core/tags/stable/src/synfig/layer.cpp @@ -0,0 +1,565 @@ +/* === S Y N F I G ========================================================= */ +/*! \file layer.cpp +** \brief Layer class implementation +** +** $Id$ +** +** \legal +** Copyright (c) 2002-2005 Robert B. Quattlebaum Jr., Adrian Bentley +** +** This package is free software; you can redistribute it and/or +** modify it under the terms of the GNU General Public License as +** published by the Free Software Foundation; either version 2 of +** the License, or (at your option) any later version. +** +** This package is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +** General Public License for more details. +** \endlegal +*/ +/* ========================================================================= */ + +/* === H E A D E R S ======================================================= */ + +#define SYNFIG_NO_ANGLE + +#ifdef USING_PCH +# include "pch.h" +#else +#ifdef HAVE_CONFIG_H +# include +#endif + +#include "canvas.h" +#include "layer.h" +#include "render.h" +#include "value.h" +#include "layer_bitmap.h" +#include "layer_mime.h" +#include "context.h" +#include "paramdesc.h" + +#include "layer_solidcolor.h" +#include "layer_polygon.h" +#include "layer_pastecanvas.h" +#include "layer_motionblur.h" + +#include "valuenode_const.h" + +#include "transform.h" +#include "rect.h" +#include "guid.h" + +#include +#endif + +/* === U S I N G =========================================================== */ + +using namespace etl; +using namespace std; +using namespace synfig; + +/* === G L O B A L S ======================================================= */ + +static Layer::Book* _layer_book; + +struct _LayerCounter +{ + static int counter; + ~_LayerCounter() + { + if(counter) + synfig::error("%d layers not yet deleted!",counter); + } +} _layer_counter; + +int _LayerCounter::counter(0); + +/* === P R O C E D U R E S ================================================= */ + +Layer::Book& +Layer::book() +{ + return *_layer_book; +} + +void +Layer::register_in_book(const BookEntry &entry) +{ + book()[entry.name]=entry; +} + +bool +Layer::subsys_init() +{ + _layer_book=new Book(); + +#define INCLUDE_LAYER(class) synfig::Layer::book()[synfig::String(class::name__)]=BookEntry(class::create,class::name__,class::local_name__,class::category__,class::cvs_id__,class::version__) +#define LAYER_ALIAS(class,alias) synfig::Layer::book()[synfig::String(alias)]=synfig::Layer::BookEntry(class::create,alias,alias,_("Do Not Use"),class::cvs_id__,class::version__); + + INCLUDE_LAYER(Layer_SolidColor); + INCLUDE_LAYER(Layer_PasteCanvas); + INCLUDE_LAYER(Layer_Polygon); + LAYER_ALIAS(Layer_Polygon,"Polygon"); + INCLUDE_LAYER(Layer_MotionBlur); + +#undef INCLUDE_LAYER + + return true; +} + +bool +Layer::subsys_stop() +{ + delete _layer_book; + return true; +} + +/* === M E T H O D S ======================================================= */ + +Layer::Layer(): + active_(true), + z_depth_(0.0f), + dirty_time_(Time::end()) +{ + _LayerCounter::counter++; +} + +Layer::LooseHandle +synfig::Layer::create(const String &name) +{ + if(!book().count(name)) + { + return Layer::LooseHandle(new Layer_Mime(name)); + } + + Layer* layer(book()[name].factory()); + return Layer::LooseHandle(layer); +} + +synfig::Layer::~Layer() +{ + _LayerCounter::counter--; + while(!dynamic_param_list_.empty()) + { + remove_child(dynamic_param_list_.begin()->second.get()); + dynamic_param_list_.erase(dynamic_param_list_.begin()); + } + + remove_from_all_groups(); + + parent_death_connect_.disconnect(); + begin_delete(); +} + +void +synfig::Layer::set_canvas(etl::loose_handle x) +{ + if(canvas_!=x) + { + parent_death_connect_.disconnect(); + canvas_=x; + if(x) + { + parent_death_connect_=x->signal_deleted().connect( + sigc::bind( + sigc::mem_fun( + *this, + &Layer::set_canvas + ), + etl::loose_handle(0) + ) + ); + } + on_canvas_set(); + } +} + +void +synfig::Layer::on_canvas_set() +{ +} + +etl::loose_handle +synfig::Layer::get_canvas()const +{ + return canvas_; +} + +int +Layer::get_depth()const +{ + if(!get_canvas()) + return -1; + return get_canvas()->get_depth(const_cast(this)); +} + +void +Layer::set_active(bool x) +{ + if(active_!=x) + { + active_=x; + + Node::on_changed(); + signal_status_changed_(); + } +} + +void +Layer::set_description(const String& x) +{ + if(description_!=x) + { + description_=x; + signal_description_changed_(); + } +} + +bool +Layer::connect_dynamic_param(const String& param, etl::loose_handle value_node) +{ + ValueNode::Handle previous(dynamic_param_list_[param]); + + if(previous==value_node) + return true; + + dynamic_param_list_[param]=ValueNode::Handle(value_node); + + if(previous) + remove_child(previous.get()); + + add_child(value_node.get()); + + if(!value_node->is_exported() && get_canvas()) + { + value_node->set_parent_canvas(get_canvas()); + } + + changed(); + return true; +} + +bool +Layer::disconnect_dynamic_param(const String& param) +{ + ValueNode::Handle previous(dynamic_param_list_[param]); + + if(previous) + { + dynamic_param_list_.erase(param); + remove_child(previous.get()); + changed(); + } + return true; +} + +void +Layer::on_changed() +{ + dirty_time_=Time::end(); + if(active()) + Node::on_changed(); +} + +bool +Layer::set_param(const String ¶m, const ValueBase &value) +{ + if(param=="z_depth" && value.same_as(z_depth_)) + { + z_depth_=value.get(z_depth_); + return true; + } + return false; +} + +etl::handle +Layer::get_transform()const +{ + return 0; +} + +float +Layer::get_z_depth(const synfig::Time& t)const +{ + if(!dynamic_param_list().count("z_depth")) + return z_depth_; + return (*dynamic_param_list().find("z_depth")->second)(t).get(Real()); +} + +Layer* +Layer::simple_clone()const +{ + if(!book().count(get_name())) return 0; + Layer *ret = create(get_name()).get(); + ret->set_canvas(get_canvas()); + ret->set_description(get_description()); + ret->set_param_list(get_param_list()); + return ret; +} + +Layer::Handle +Layer::clone(const GUID& deriv_guid) const +{ + if(!book().count(get_name())) return 0; + + //Layer *ret = book()[get_name()].factory();//create(get_name()).get(); + Handle ret = create(get_name()).get(); + + ret->group_=group_; + //ret->set_canvas(get_canvas()); + ret->set_description(get_description()); + ret->set_active(active()); + ret->set_guid(get_guid()^deriv_guid); + + //ret->set_param_list(get_param_list()); + // Process the parameter list sothat + // we can duplicate any inlinecanvases + ParamList param_list(get_param_list()); + for(ParamList::const_iterator iter(param_list.begin()); iter != param_list.end(); ++iter) + { + if(dynamic_param_list().count(iter->first)==0 && iter->second.get_type()==ValueBase::TYPE_CANVAS) + { + + // This parameter is a canvas. We need a close look. + Canvas::Handle canvas(iter->second.get(Canvas::Handle())); + if(canvas->is_inline()) + { + // This parameter is an inlinecanvas! we need to clone it + // before we set it as aparameter. + Canvas::Handle new_canvas(canvas->clone(deriv_guid)); + ValueBase value(new_canvas); + ret->set_param(iter->first, value); + continue; + } + } + + // This is a normal parameter,go ahead and set it. + ret->set_param(iter->first, iter->second); + } + + // Duplicate the dynamic paramlist, but only the exported data nodes + DynamicParamList::const_iterator iter; + for(iter=dynamic_param_list().begin();iter!=dynamic_param_list().end();++iter) + { + // Make sure we clone inlinecanvases + if(iter->second->get_type()==ValueBase::TYPE_CANVAS) + { + Canvas::Handle canvas((*iter->second)(0).get(Canvas::Handle())); + if(canvas->is_inline()) + { + Canvas::Handle new_canvas(canvas->clone(deriv_guid)); + ValueBase value(new_canvas); + ret->connect_dynamic_param(iter->first,ValueNode_Const::create(value)); + continue; + } + } + + if(iter->second->is_exported()) + ret->connect_dynamic_param(iter->first,iter->second); + else + ret->connect_dynamic_param(iter->first,iter->second->clone(deriv_guid)); + } + + //ret->set_canvas(0); + + return ret; +} + +Rect +Layer::get_full_bounding_rect(Context context)const +{ + if(active()) + return context.get_full_bounding_rect()|get_bounding_rect(); + return context.get_full_bounding_rect(); +} + +Rect +Layer::get_bounding_rect()const +{ + return Rect::full_plane(); +} + +bool +Layer::set_param_list(const ParamList &list) +{ + bool ret=true; + if(!list.size()) + return false; + ParamList::const_iterator iter(list.begin()); + for(;iter!=list.end();++iter) + { + if(!set_param(iter->first, iter->second))ret=false; + } + return ret; +} + +Layer::ParamList +Layer::get_param_list()const +{ + ParamList ret; + + Vocab vocab(get_param_vocab()); + + Vocab::const_iterator iter=vocab.begin(); + for(;iter!=vocab.end();++iter) + { + ret[iter->get_name()]=get_param(iter->get_name()); + } + return ret; +} + +ValueBase +Layer::get_param(const String & param)const +{ + if(param=="z_depth") + return get_z_depth(); + + return ValueBase(); +} + +String +Layer::get_version()const +{ + return get_param("version__").get(String()); +} + +bool +Layer::set_version(const String &ver) +{ + return false; +} + +void +Layer::reset_version() +{ +} + + +void +Layer::set_time(Context context, Time time)const +{ + context.set_time(time); + dirty_time_=time; +} + +void +Layer::set_time(Context context, Time time, const Point &pos)const +{ + context.set_time(time,pos); + dirty_time_=time; +} + +Color +Layer::get_color(Context context, const Point &pos)const +{ + return context.get_color(pos); +} + +synfig::Layer::Handle +Layer::hit_check(synfig::Context context, const synfig::Point &pos)const +{ + return context.hit_check(pos); +} + +/* The default accelerated renderer +** is anything but accelerated... +*/ +bool +Layer::accelerated_render(Context context,Surface *surface,int quality, const RendDesc &renddesc, ProgressCallback *cb) const +{ + handle target=surface_target(surface); + if(!target) + { + if(cb)cb->error(_("Unable to create surface target")); + return false; + } + RendDesc desc=renddesc; + target->set_rend_desc(&desc); + + // When we render, we want to + // make sure that we are rendered too... + // Since the context iterator is for + // the layer after us, we need to back up. + // This could be considered a hack, as + // it is a possibility that we are indeed + // not the previous layer. + --context; + + return render(context,target,desc,cb); + //return render_threaded(context,target,desc,cb,2); +} + +String +Layer::get_name()const +{ + return get_param("name__").get(String()); +} + +String +Layer::get_local_name()const +{ + return get_param("local_name__").get(String()); +} + + +Layer::Vocab +Layer::get_param_vocab()const +{ + Layer::Vocab ret; + + ret.push_back(ParamDesc(z_depth_,"z_depth") + .set_local_name(_("Z Depth")) + .set_animation_only(true) + ); + + return ret; +} + +void +Layer::get_times_vfunc(Node::time_set &set) const +{ + DynamicParamList::const_iterator i = dynamic_param_list_.begin(), + end = dynamic_param_list_.end(); + + for(; i != end; ++i) + { + const Node::time_set &tset = i->second->get_times(); + set.insert(tset.begin(),tset.end()); + } +} + + +void +Layer::add_to_group(const String&x) +{ + if(x==group_) + return; + if(!group_.empty()) + remove_from_all_groups(); + group_=x; + signal_added_to_group()(group_); +} + +void +Layer::remove_from_group(const String&x) +{ + if(group_==x) + remove_from_all_groups(); +} + +void +Layer::remove_from_all_groups() +{ + if(group_.empty()) + return; + signal_removed_from_group()(group_); + group_.clear(); +} + +String +Layer::get_group()const +{ + return group_; +} diff --git a/synfig-core/tags/stable/src/synfig/layer.h b/synfig-core/tags/stable/src/synfig/layer.h new file mode 100644 index 0000000..1716c87 --- /dev/null +++ b/synfig-core/tags/stable/src/synfig/layer.h @@ -0,0 +1,453 @@ +/* === S Y N F I G ========================================================= */ +/*! \file layer.h +** \brief Layer Class Header +** +** $Id$ +** +** \legal +** Copyright (c) 2002-2005 Robert B. Quattlebaum Jr., Adrian Bentley +** +** This package is free software; you can redistribute it and/or +** modify it under the terms of the GNU General Public License as +** published by the Free Software Foundation; either version 2 of +** the License, or (at your option) any later version. +** +** This package is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +** General Public License for more details. +** \endlegal +*/ +/* ========================================================================= */ + +/* === S T A R T =========================================================== */ + +#ifndef __SYNFIG_LAYER_H +#define __SYNFIG_LAYER_H + +/* === H E A D E R S ======================================================= */ + +#include "string_decl.h" +#include +#include +#include "real.h" +#include "string.h" +#include +#include +#include "node.h" +#include "time.h" +#include "guid.h" + +/* === M A C R O S ========================================================= */ + +//! \writeme +#define SYNFIG_LAYER_MODULE_EXT public: static const char name__[], version__[], cvs_id__[], local_name__[], category__[]; static Layer *create(); + +//! Sets the name of the layer +#define SYNFIG_LAYER_SET_NAME(class,x) const char class::name__[]=x + +//! Sets the local name of the layer +#define SYNFIG_LAYER_SET_LOCAL_NAME(class,x) const char class::local_name__[]=x; + +//! Sets the category of the layer +#define SYNFIG_LAYER_SET_CATEGORY(class,x) const char class::category__[]=x + +//! Sets the version string for the layer +#define SYNFIG_LAYER_SET_VERSION(class,x) const char class::version__[]=x + +//! Sets the CVS ID string for the layer +#define SYNFIG_LAYER_SET_CVS_ID(class,x) const char class::cvs_id__[]=x + +//! \writeme +#define SYNFIG_LAYER_INIT(class) synfig::Layer* class::create() { return new class(); } + +//! \writeme +#define IMPORT_PLUS(x,y) if(param==#x && value.same_as(x)) { value.put(&x);{y;}return true;} + +//! \writeme +#define IMPORT_AS(x,y) if(param==y && value.same_as(x)) { value.put(&x); return true;} + +//! \writeme +#define IMPORT(x) IMPORT_AS(x,#x) + +//! \writeme +#define EXPORT_AS(x,y) if(param==y) { return ValueBase(x); } + +//! \writeme +#define EXPORT(x) EXPORT_AS(x,#x) + +//! \writeme +#define EXPORT_NAME() if(param=="Name" || param=="name" || param=="name__") { return name__; } if(param=="local_name__") { return local_name__; } + +//! \writeme +#define EXPORT_VERSION() if(param=="Version" || param=="version" || param=="version__") { return version__; } + +/* === T Y P E D E F S ===================================================== */ + +/* === C L A S S E S & S T R U C T S ======================================= */ + +namespace synfig { + +class Canvas; +class Vector; +typedef Vector Point; +class Canvas; +class ParamDesc; +class ParamVocab; +class ValueNode; +class ValueBase; +class Time; +class Surface; +class RendDesc; +class ProgressCallback; +class Context; +class Color; +class Transform; +class Rect; +class GUID; + + +/*! \class Layer +** \todo writeme +** \see Canvas +*/ +class Layer : public Node +{ + friend class ValueNode; + friend class Context; + + /* + -- ** -- T Y P E S ----------------------------------------------------------- + */ + +public: + + //! Type that represents a pointer to a layer's constructor + typedef Layer* (*Factory)(); + + struct BookEntry + { + Factory factory; + String name; + String local_name; + String category; + String cvs_id; + String version; + BookEntry() { } + BookEntry(Factory factory, const String& name,const String& local_name,const String& category,const String& cvs_id,const String& version): + factory(factory),name(name),local_name(local_name),category(category),cvs_id(cvs_id),version(version) { } + }; + + typedef std::map Book; + + static void register_in_book(const BookEntry &); + + static Book& book(); + + static bool subsys_init(); + + static bool subsys_stop(); + + typedef std::map ParamList; + + typedef etl::handle Handle; + + typedef etl::loose_handle LooseHandle; + + typedef etl::handle ConstHandle; + + typedef std::map > DynamicParamList; + + //! A list type which describes all the parameters that a layer has. + /*! \see get_param_vocab() */ + typedef ParamVocab Vocab; + + /* + -- ** -- D A T A ------------------------------------------------------------- + */ + +private: + + /*! \c true if the layer is visible, \c false if it is to be skipped + ** \see set_active(), enable(), disable, active() + */ + bool active_; + + //! Handle to the canvas to which this layer belongs + etl::loose_handle canvas_; + + DynamicParamList dynamic_param_list_; + + //! A description of what this layer does + String description_; + + //! \writeme + float z_depth_; + + //! \writeme + mutable Time dirty_time_; + + //! Contains the name of the group that this layer belongs to + String group_; + + //! \writeme + sigc::connection parent_death_connect_; + + /* + -- ** -- S I G N A L S ------------------------------------------------------- + */ + +private: + + //! Status Changed + sigc::signal signal_status_changed_; + + //! Parameter changed + sigc::signal signal_param_changed_; + + //! Description Changed + sigc::signal signal_description_changed_; + + //! Moved + sigc::signal > signal_moved_; + + sigc::signal signal_added_to_group_; + + sigc::signal signal_removed_from_group_; + + /* + -- ** -- S I G N A L I N T E R F A C E ------------------------------------- + */ + +public: + + //! Status Changed + sigc::signal& signal_status_changed() { return signal_status_changed_; } + + //! Parameter changed + sigc::signal& signal_param_changed() { return signal_param_changed_; } + + //! Description Changed + sigc::signal& signal_description_changed() { return signal_description_changed_;} + + //! Moved + sigc::signal >& signal_moved() { return signal_moved_; } + + sigc::signal& signal_added_to_group() { return signal_added_to_group_; } + + sigc::signal& signal_removed_from_group() { return signal_removed_from_group_; } + + /* + -- ** -- C O N S T R U C T O R S --------------------------------------------- + */ + +protected: + + Layer(); + +public: + virtual ~Layer(); + + /* + -- ** -- M E M B E R F U N C T I O N S ------------------------------------- + */ + +public: + + virtual void on_canvas_set(); + + //! Adds this layer to the given layer group + void add_to_group(const String&); + + //! Removes this layer from the given layer group + void remove_from_group(const String&); + + //! Removes this layer from all layer groups + void remove_from_all_groups(); + + //! Gets the name of the group that this layer belongs to + String get_group()const; + + //! writeme + //DynamicParamList &dynamic_param_list() { return dynamic_param_list_; } + + //! \todo writeme + const DynamicParamList &dynamic_param_list()const { return dynamic_param_list_; } + + bool connect_dynamic_param(const String& param, etl::loose_handle); + bool disconnect_dynamic_param(const String& param); + + //! Enables the layer for rendering (Making it \em active) + void enable() { set_active(true); } + + //! Disables the layer for rendering. (Making it \em inactive) + /*! When a layer is disabled, it will be skipped when the + ** canvas is rendered. */ + void disable() { set_active(false); } + + //! Sets the 'active' flag for the Layer to the state described by \a x + /*! When a layer is disabled, it will be skipped when the + ** canvas is rendered. */ + void set_active(bool x); + + //! Returns that status of the 'active' flag + bool active()const { return active_; } + + //! Returns the position of the layer in the canvas. + /*! Returns negative on error */ + int get_depth()const; + + //! \writeme + float get_z_depth()const { return z_depth_; } + + //! \writeme + float get_z_depth(const synfig::Time& t)const; + + //! \writeme + void set_z_depth(float x) { z_depth_=x; } + + //! Sets the Canvas that this Layer is a part of + void set_canvas(etl::loose_handle canvas); + + //! Returns a handle to the Canvas to which this Layer belongs + etl::loose_handle get_canvas()const; + + //! \writeme + const String& get_description()const { return description_; } + + //! \writeme + void set_description(const String& x); + + /* + -- ** -- V I R T U A L F U N C T I O N S ----------------------------------- + */ + +public: + virtual Rect get_bounding_rect()const; + + virtual Rect get_full_bounding_rect(Context context)const; + + //! Returns a string containing the name of the Layer + virtual String get_name()const; + + //! Returns a string containing the localized name of the Layer + virtual String get_local_name()const; + + //! Gets the paramater vocabulary + virtual Vocab get_param_vocab()const; + + //! Gets the version string for this layer + virtual String get_version()const; + + //! \writeme + virtual etl::handle get_transform()const; + + //! Sets the virtual version to use for backwards-compatibility + /*! + ** \see reset_version() */ + virtual bool set_version(const String &ver); + + //! Resets the virtual version + /*! + ** \see set_version() */ + virtual void reset_version(); + + //! Sets the parameter described by \a param to \a value. + /*! \param param The name of the parameter to set + ** \param value What the parameter is to be set to. + ** \return \c true on success, \c false upon rejection or failure. + ** If it returns \c false, then the Layer is assumed to remain unchanged. + ** \sa get_param() + ** \todo \a param should be of the type const String \¶m + */ + virtual bool set_param(const String ¶m, const ValueBase &value); + + //! Sets a list of parameters + virtual bool set_param_list(const ParamList &); + + //! Get the value of the specified parameter. + /*! \return The requested parameter value, or (upon failure) a NIL ValueBase. + ** \sa set_param() + ** \todo \a param should be of the type const String \& + */ + virtual ValueBase get_param(const String ¶m)const; + + //! Get a list of all of the parameters and their values + virtual ParamList get_param_list()const; + + //! Sets the \a time for the selected Layer and those under it + /*! \param context Context iterator refering to next Layer. + ** \param time writeme + ** \see Handle::set_time() + */ + virtual void set_time(Context context, Time time)const; + + //! Sets the \a time for the selected Layer and those under it for a specific \a point + /*! \param context Context iterator refering to next Layer. + ** \param time writeme + ** \param point writeme + ** \see Handle::set_time() + ** \todo \a point should be of the type const Point \& */ + virtual void set_time(Context context, Time time, const Point &point)const; + + //! Gets the color of the Canvas at \a pos + /*! \param context Context iterator refering to next Layer. + ** \param pos Point which indicates where the Color should come from + ** \see Handle::get_color() + */ + virtual Color get_color(Context context, const Point &pos)const; + + //! Renders the Canvas to the given Surface in an accelerated manner + /*! \param context Context iterator refering to next Layer. + ** \param surface Pointer to Surface to render to. + ** \param quality The requested quality-level to render at. + ** \param renddesc The associated RendDesc. + ** \param cb Pointer to callback object. May be NULL if there is no callback. + ** \return \c true on success, \c false on failure + ** \see Handle::accelerated_render() + */ + virtual bool accelerated_render(Context context,Surface *surface,int quality, const RendDesc &renddesc, ProgressCallback *cb)const; + + //! Checks to see if a part of the layer is directly under \a point + /*! \param context Context iterator refering to next Layer. + ** \param point The point to check + ** \return The handle of the layer under \a point. If there is not + ** a layer under \a point, then returns an empty handle. */ + virtual Handle hit_check(Context context, const Point &point)const; + + //! Duplicates the Layer + virtual Handle clone(const GUID& deriv_guid=GUID())const; + + //! Duplicates the Layer without duplicating the value nodes + virtual Layer *simple_clone()const; + +protected: + + //! This is called whenever a parameter is changed + virtual void on_changed(); + + //! Called to figure out the animation time information + virtual void get_times_vfunc(Node::time_set &set) const; + + /* + -- ** -- S T A T I C F U N C T I O N S -------------------------------------- + */ + +public: + + //! Creates a Layer of type \a type + /*! If the Layer type is unknown, then a Mime layer is created in its place. + ** \param type A string describing the name of the layer to construct. + ** \return Always returns a handle to a new Layer. + ** \see Mime + */ + static Layer::LooseHandle create(const String &type); + +}; // END of class Layer + +}; // END of namespace synfig + + +/* === E N D =============================================================== */ + +#endif diff --git a/synfig-core/tags/stable/src/synfig/layer_bitmap.cpp b/synfig-core/tags/stable/src/synfig/layer_bitmap.cpp new file mode 100644 index 0000000..e84dade --- /dev/null +++ b/synfig-core/tags/stable/src/synfig/layer_bitmap.cpp @@ -0,0 +1,489 @@ +/* === S Y N F I G ========================================================= */ +/*! \file layer_bitmap.cpp +** \brief Template Header +** +** $Id$ +** +** \legal +** Copyright (c) 2002-2005 Robert B. Quattlebaum Jr., Adrian Bentley +** +** This package is free software; you can redistribute it and/or +** modify it under the terms of the GNU General Public License as +** published by the Free Software Foundation; either version 2 of +** the License, or (at your option) any later version. +** +** This package is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +** General Public License for more details. +** \endlegal +*/ +/* ========================================================================= */ + +/* === H E A D E R S ======================================================= */ + +#define SYNFIG_NO_ANGLE + +#ifdef USING_PCH +# include "pch.h" +#else +#ifdef HAVE_CONFIG_H +# include +#endif + +#include "layer_bitmap.h" +#include "layer.h" +#include "time.h" +#include "string.h" +#include "vector.h" + +#include "context.h" +#include "time.h" +#include "color.h" +#include "surface.h" +#include "renddesc.h" +#include "target.h" + +#include "general.h" +#include "paramdesc.h" +#include + +#endif + +/* === U S I N G =========================================================== */ + +using namespace synfig; +using namespace std; +using namespace etl; + +/* === G L O B A L S ======================================================= */ + +/* === P R O C E D U R E S ================================================= */ + +/* === M E T H O D S ======================================================= */ + +synfig::Layer_Bitmap::Layer_Bitmap(): + Layer_Composite (1.0,Color::BLEND_COMPOSITE), + tl (-0.5,0.5), + br (0.5,-0.5), + c (1), + surface (128,128), + gamma_adjust (1.0) +{ +} + +bool +synfig::Layer_Bitmap::set_param(const String & param, ValueBase value) +{ + IMPORT(tl); + IMPORT(br); + IMPORT(c); + if(param=="gamma_adjust"&& value.get_type()==ValueBase::TYPE_REAL) + { + gamma_adjust=1.0/value.get(Real()); + //gamma_adjust.set_gamma(1.0/value.get(Real())); + return true; + } + + return Layer_Composite::set_param(param,value); +} + +ValueBase +synfig::Layer_Bitmap::get_param(const String & param)const +{ + EXPORT(tl); + EXPORT(br); + EXPORT(c); + if(param=="gamma_adjust") + return 1.0/gamma_adjust; + + if(param=="_width") + { + return surface.get_w(); + } + if(param=="_height") + { + return surface.get_h(); + } + + return Layer_Composite::get_param(param); +} + +Layer::Vocab +Layer_Bitmap::get_param_vocab()const +{ + Layer::Vocab ret(Layer_Composite::get_param_vocab()); + + ret.push_back(ParamDesc("tl") + .set_local_name(_("Top-Left")) + .set_description(_("Upper left-hand Corner of image")) + ); + + ret.push_back(ParamDesc("br") + .set_local_name(_("Bottom-Right")) + .set_description(_("Lower right-hand Corner of image")) + ); + + ret.push_back(ParamDesc("c") + .set_local_name(_("Interpolation")) + .set_description(_("What type of interpolation to use")) + .set_hint("enum") + .add_enum_value(0,"nearest",_("Nearest Neighbor")) + .add_enum_value(1,"linear",_("Linear")) + .add_enum_value(2,"cosine",_("Cosine")) + .add_enum_value(3,"cubic",_("Cubic")) + ); + + ret.push_back(ParamDesc("gamma_adjust") + .set_local_name(_("Gamma Adjustment")) + ); + + return ret; +} + +synfig::Layer::Handle +Layer_Bitmap::hit_check(synfig::Context context, const synfig::Point &pos)const +{ + Point surface_pos; + surface_pos=pos-tl; + + surface_pos[0]/=br[0]-tl[0]; + if(surface_pos[0]<=1.0 && surface_pos[0]>=0.0) + { + surface_pos[1]/=br[1]-tl[1]; + if(surface_pos[1]<=1.0 && surface_pos[1]>=0.0) + { + return const_cast(this); + } + } + + return context.hit_check(pos); +} + +inline +const Color& +synfig::Layer_Bitmap::filter(const Color& c)const +{ + if(gamma_adjust==1.0) + return c; + static Color x; + x=c; + + x.set_r(powf((float)x.get_r(),gamma_adjust)); + x.set_g(powf((float)x.get_g(),gamma_adjust)); + x.set_b(powf((float)x.get_b(),gamma_adjust)); + return x; +} + +Color +synfig::Layer_Bitmap::get_color(Context context, const Point &pos)const +{ + Point surface_pos; + + if(!get_amount()) + return context.get_color(pos); + + surface_pos=pos-tl; + + surface_pos[0]/=br[0]-tl[0]; + if(surface_pos[0]<=1.0 && surface_pos[0]>=0.0) + { + surface_pos[1]/=br[1]-tl[1]; + if(surface_pos[1]<=1.0 && surface_pos[1]>=0.0) + { + surface_pos[0]*=surface.get_w(); + surface_pos[1]*=surface.get_h(); + + Color ret(Color::alpha()); + + switch(c) + { + case 6: // Undefined + case 5: // Undefined + case 4: // Undefined + case 3: // Cubic + ret=surface.cubic_sample(surface_pos[0],surface_pos[1]); + break; + + case 2: // Cosine + ret=surface.cosine_sample(surface_pos[0],surface_pos[1]); + break; + case 1: // Linear + ret=surface.linear_sample(surface_pos[0],surface_pos[1]); + break; + case 0: // Nearest Neighbor + default: + { + int x(min(surface.get_w()-1,max(0,round_to_int(surface_pos[0])))); + int y(min(surface.get_h()-1,max(0,round_to_int(surface_pos[1])))); + ret= surface[y][x]; + } + break; + } + + ret=filter(ret); + + if(get_amount()==1 && get_blend_method()==Color::BLEND_STRAIGHT) + return ret; + else + return Color::blend(ret,context.get_color(pos),get_amount(),get_blend_method()); + } + } + + return context.get_color(pos); +} + +bool +Layer_Bitmap::accelerated_render(Context context,Surface *out_surface,int quality, const RendDesc &renddesc, ProgressCallback *cb) const +{ + int interp=c; + if(quality>=10) + interp=0; + else if(quality>=5 && interp>1) + interp=1; + + // We can only handle NN and Linear at the moment + //if(interp>1) + // return Layer_Composite::accelerated_render(context,out_surface,quality,renddesc,cb); + + //if we don't actually have a valid surface just skip us + if(!surface.is_valid()) + { + // Render what is behind us + return context.accelerated_render(out_surface,quality,renddesc,cb); + } + + SuperCallback subcb(cb,1,10000,10001+renddesc.get_h()); + + if( get_amount()==1 && + get_blend_method()==Color::BLEND_STRAIGHT && + renddesc.get_tl()==tl && + renddesc.get_br()==br) + { + // Check for the trivial case + if(surface.get_w()==renddesc.get_w() && surface.get_h()==renddesc.get_h() && gamma_adjust==1.0f) + { + if(cb && !cb->amount_complete(0,100)) return false; + *out_surface=surface; + if(cb && !cb->amount_complete(100,100)) return false; + return true; + } + out_surface->set_wh(renddesc.get_w(),renddesc.get_h()); + } + else + { + // Render what is behind us + if(!context.accelerated_render(out_surface,quality,renddesc,&subcb)) + return false; + } + + if(cb && !cb->amount_complete(10000,10001+renddesc.get_h())) return false; + + Point obr = renddesc.get_br(), + otl = renddesc.get_tl(); + + //Vector::value_type pw=renddesc.get_w()/(renddesc.get_br()[0]-renddesc.get_tl()[0]); + //Vector::value_type ph=renddesc.get_h()/(renddesc.get_br()[1]-renddesc.get_tl()[1]); + + //A = representation of input (just tl,br) //just a scaling right now + //B = representation of output (just tl,br) //just a scaling right now + //sa = scaling for input (0,1) -> (0,w/h) + //sb = scaling for output (0,1) -> (0,w/h) + + float inwf = br[0] - tl[0]; + float inhf = br[1] - tl[1]; + + float outwf = obr[0] - otl[0]; + float outhf = obr[1] - otl[1]; + + int inw = surface.get_w(); + int inh = surface.get_h(); + + int outw = renddesc.get_w(); + int outh = renddesc.get_h(); + + //need to get the input coords in output space, so we can clip + + //get the desired corners of the bitmap (in increasing order) in integers + //floating point corners + float x1f = (tl[0] - otl[0])*outw/outwf; + float x2f = (br[0] - otl[0])*outw/outwf; + float y1f = (tl[1] - otl[1])*outh/outhf; + float y2f = (br[1] - otl[1])*outh/outhf; + + if(x1f > x2f) swap(x1f,x2f); + if(y1f > y2f) swap(y1f,y2f); + + int x_start = max(0,(int)floor(x1f)); //probably floor + int x_end = min(outw,(int)ceil(x2f)); //probably ceil + int y_start = max(0,(int)floor(y1f)); //probably floor + int y_end = min(outh,(int)ceil(y2f)); //probably ceil + + //need to get the x,y,dx,dy values from output space to input, so we can do fast interpolation + + //get the starting position in input space... for interpolating + + // in int -> out float: + // Sb(B^-1)A(Sa^-1) x + float inx_start = (((x_start/*+0.5f*/)*outwf/outw + otl[0]) - tl[0])*inw/inwf; //may want to bias this (center of pixel)??? + float iny_start = (((y_start/*+0.5f*/)*outhf/outh + otl[1]) - tl[1])*inh/inhf; //may want to bias this (center of pixel)??? + + //calculate the delta values in input space for one pixel movement in output space + //same matrix but with a vector instead of a point... + float indx = outwf*(inw)/((outw)*inwf); //translations died + float indy = outhf*(inh)/((outh)*inhf); //translations died + + //perhaps use a DDA algorithm... if faster... + // will still want pixel fractions to be floating point since colors are + + //synfig::info("xstart:%d ystart:%d xend:%d yend:%d",x_start,y_start,x_end,y_end); + + //start drawing at the start of the bitmap (either origin or corner of input...) + //and get other info + Surface::alpha_pen pen(out_surface->get_pen(x_start,y_start)); + pen.set_alpha(get_amount()); + pen.set_blend_method(get_blend_method()); + + //check if we should use the downscale filtering + if(quality <= 7) + { + //the stride of the value should be inverted because we want to downsample + //when the stride is small, not big + //int multw = (int)ceil(indx); + //int multh = (int)ceil(indy); + + if(indx > 1.7 || indy > 1.7) + { + /*synfig::info("Decided to downsample? ratios - (%f,%f) -> (%d,%d)", + indx, indy, multw, multh); */ + + //use sample rect here... + + float iny, inx; + int x,y; + + //Point sample - truncate + iny = iny_start;//+0.5f; + for(y = y_start; y < y_end; ++y, pen.inc_y(), iny += indy) + { + inx = inx_start;//+0.5f; + for(x = x_start; x < x_end; x++, pen.inc_x(), inx += indx) + { + Color rc = surface.sample_rect_clip(inx,iny,inx+indx,iny+indy); + pen.put_value(filter(rc)); + } + pen.dec_x(x_end-x_start); + } + + //Color c = (*out_surface)[0][0]; + //synfig::info("ValueBase of first pixel = (%f,%f,%f,%f)",c.get_r(),c.get_g(),c.get_b(),c.get_a()); + + return true; + } + } + + //perform normal interpolation + if(interp==0) + { + //synfig::info("Decided to do nearest neighbor"); + float iny, inx; + int x,y; + + //Point sample - truncate + iny = iny_start;//+0.5f; + for(y = y_start; y < y_end; y++, pen.inc_y(), iny += indy) + { + inx = inx_start;//+0.5f; + int yclamp = min(inh-1, max(0, round_to_int(iny))); + for(x = x_start; x < x_end; x++, pen.inc_x(), inx += indx) + { + int xclamp = min(inw-1, max(0, round_to_int(inx))); + Color c = filter(surface[yclamp][xclamp]); + pen.put_value(c); //must get rid of the clip + } + pen.dec_x(x_end-x_start); + } + } + else + if(interp==1) + { + //bilinear filtering + + //float xmf,xpf,ymf,ypf; + //int xm,xp,ym,yp; + float inx,iny; + int x,y; + + //can probably buffer for x values... + + //loop and based on inx,iny sample input image + iny = iny_start; + for(y = y_start; y < y_end; y++, pen.inc_y(), iny += indy) + { + inx = inx_start; + for(x = x_start; x < x_end; x++, pen.inc_x(), inx += indx) + { + pen.put_value(filter(surface.linear_sample(inx,iny))); + } + pen.dec_x(x_end-x_start); + + } + } + else + if(interp==2) + { + //cosine filtering + + //float xmf,xpf,ymf,ypf; + //int xm,xp,ym,yp; + float inx,iny; + int x,y; + + //can probably buffer for x values... + + //loop and based on inx,iny sample input image + iny = iny_start; + for(y = y_start; y < y_end; y++, pen.inc_y(), iny += indy) + { + inx = inx_start; + for(x = x_start; x < x_end; x++, pen.inc_x(), inx += indx) + { + pen.put_value(filter(surface.cosine_sample(inx,iny))); + } + pen.dec_x(x_end-x_start); + + } + } + else + { + //cubic filtering + + //float xmf,xpf,ymf,ypf; + //int xm,xp,ym,yp; + float inx,iny; + int x,y; + + //can probably buffer for x values... + + //loop and based on inx,iny sample input image + iny = iny_start; + for(y = y_start; y < y_end; y++, pen.inc_y(), iny += indy) + { + inx = inx_start; + for(x = x_start; x < x_end; x++, pen.inc_x(), inx += indx) + { + pen.put_value(filter(surface.cubic_sample(inx,iny))); + } + pen.dec_x(x_end-x_start); + + } + } + + return true; +} + +Rect +Layer_Bitmap::get_bounding_rect()const +{ + return Rect(tl,br); +} diff --git a/synfig-core/tags/stable/src/synfig/layer_bitmap.h b/synfig-core/tags/stable/src/synfig/layer_bitmap.h new file mode 100644 index 0000000..c313321 --- /dev/null +++ b/synfig-core/tags/stable/src/synfig/layer_bitmap.h @@ -0,0 +1,78 @@ +/* === S Y N F I G ========================================================= */ +/*! \file layer_bitmap.h +** \brief Template Header +** +** $Id$ +** +** \legal +** Copyright (c) 2002-2005 Robert B. Quattlebaum Jr., Adrian Bentley +** +** This package is free software; you can redistribute it and/or +** modify it under the terms of the GNU General Public License as +** published by the Free Software Foundation; either version 2 of +** the License, or (at your option) any later version. +** +** This package is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +** General Public License for more details. +** \endlegal +*/ +/* ========================================================================= */ + +/* === S T A R T =========================================================== */ + +#ifndef __SYNFIG_LAYER_BITMAP_H +#define __SYNFIG_LAYER_BITMAP_H + +/* === H E A D E R S ======================================================= */ + +#include "layer_composite.h" +#include "surface.h" + +/* === M A C R O S ========================================================= */ + +/* === T Y P E D E F S ===================================================== */ + +/* === C L A S S E S & S T R U C T S ======================================= */ + +namespace synfig { + +/*! \class Layer_Bitmap +** \todo writeme +*/ +class Layer_Bitmap : public Layer_Composite, public Layer_NoDeform +{ + const Color& filter(const Color& c)const; +public: + typedef etl::handle Handle; + + Point tl; + Point br; + int c; + mutable Surface surface; + + Real gamma_adjust; + + Layer_Bitmap(); + + virtual bool set_param(const String & param, ValueBase value); + + virtual ValueBase get_param(const String & param)const; + + virtual Color get_color(Context context, const Point &pos)const; + + virtual Vocab get_param_vocab()const; + + virtual Rect get_bounding_rect()const; + + virtual bool accelerated_render(Context context,Surface *surface,int quality, const RendDesc &renddesc, ProgressCallback *cb)const; + + virtual synfig::Layer::Handle hit_check(synfig::Context context, const synfig::Point &point)const; +}; // END of class Layer_Bitmap + +}; // END of namespace synfig + +/* === E N D =============================================================== */ + +#endif diff --git a/synfig-core/tags/stable/src/synfig/layer_composite.cpp b/synfig-core/tags/stable/src/synfig/layer_composite.cpp new file mode 100644 index 0000000..8a4188e --- /dev/null +++ b/synfig-core/tags/stable/src/synfig/layer_composite.cpp @@ -0,0 +1,171 @@ +/* === S Y N F I G ========================================================= */ +/*! \file layer_composite.cpp +** \brief Template File +** +** $Id$ +** +** \legal +** Copyright (c) 2002-2005 Robert B. Quattlebaum Jr., Adrian Bentley +** +** This package is free software; you can redistribute it and/or +** modify it under the terms of the GNU General Public License as +** published by the Free Software Foundation; either version 2 of +** the License, or (at your option) any later version. +** +** This package is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +** General Public License for more details. +** \endlegal +*/ +/* ========================================================================= */ + +/* === H E A D E R S ======================================================= */ + +#ifdef USING_PCH +# include "pch.h" +#else +#ifdef HAVE_CONFIG_H +# include +#endif + +#include "layer_composite.h" +#include "context.h" +#include "time.h" +#include "color.h" +#include "surface.h" +#include "renddesc.h" +#include "target.h" + +#include "layer_bitmap.h" + +#include "general.h" +#include "render.h" +#include "paramdesc.h" + +#endif + +/* === U S I N G =========================================================== */ + +using namespace std; +using namespace etl; +using namespace synfig; + +/* === M A C R O S ========================================================= */ + +/* === G L O B A L S ======================================================= */ + +/* === P R O C E D U R E S ================================================= */ + +/* === M E T H O D S ======================================================= */ + +bool +Layer_Composite::accelerated_render(Context context,Surface *surface,int quality, const RendDesc &renddesc_, ProgressCallback *cb) const +{ + RendDesc renddesc(renddesc_); + + if(!amount_) + return context.accelerated_render(surface,quality,renddesc,cb); + + CanvasBase image; + + SuperCallback stageone(cb,0,50000,100000); + SuperCallback stagetwo(cb,50000,100000,100000); + + Layer_Bitmap::Handle surfacelayer(new class Layer_Bitmap()); + + Context iter; + + for(iter=context;*iter;iter++) + image.push_back(*iter); + + image.push_front(surfacelayer.get()); + + // We want to go ahead and schedule any other + // layers... +// while(dynamic_cast(context->get())) +// while(context->get() && +// &context->get()->AcceleratedRender== +// &Layer_Composite::AcceleratedRender) +// image.push_back(*(context++)); + + image.push_back(0); // Alpha black + + // Render the backdrop + if(!context.accelerated_render(&surfacelayer->surface,quality,renddesc,&stageone)) + return false; + + if(quality<=4)surfacelayer->c=3;else + if(quality<=5)surfacelayer->c=2; + else if(quality<=6)surfacelayer->c=1; + else surfacelayer->c=0; + surfacelayer->tl=renddesc.get_tl(); + surfacelayer->br=renddesc.get_br(); + surfacelayer->set_blend_method(Color::BLEND_STRAIGHT); + + image.push_front(const_cast(this)); + + // Set up a surface target + Target::Handle target(surface_target(surface)); + + if(!target) + { + if(cb)cb->error(_("Unable to create surface target")); + return false; + } + + RendDesc desc(renddesc); + + target->set_rend_desc(&desc); + + // Render the scene + return render(Context(image.begin()),target,desc,&stagetwo); + //return render_threaded(Context(image.begin()),target,desc,&stagetwo,2); +} + +Rect +Layer_Composite::get_full_bounding_rect(Context context)const +{ + if(is_disabled() || Color::is_onto(get_blend_method())) + return context.get_full_bounding_rect(); + + return context.get_full_bounding_rect()|get_bounding_rect(); +} + +Layer::Vocab +Layer_Composite::get_param_vocab()const +{ + Layer::Vocab ret(Layer::get_param_vocab()); + + ret.push_back(ParamDesc(amount_,"amount") + .set_local_name(_("Amount")) + ); + ret.push_back(ParamDesc(blend_method_,"blend_method") + .set_local_name(_("Blend Method")) + ); + + return ret; +} + +bool +Layer_Composite::set_param(const String & param, const ValueBase &value) +{ + if(param=="amount" && value.same_as(amount_)) + amount_=value.get(amount_); + else + if(param=="blend_method" && value.same_as(int())) + blend_method_=static_cast(value.get(int())); + else + return Layer::set_param(param,value); + return true; +} + +ValueBase +Layer_Composite::get_param(const String & param)const +{ + if(param=="amount") + return get_amount(); + if(param=="blend_method") + return static_cast(get_blend_method()); + return Layer::get_param(param); +} diff --git a/synfig-core/tags/stable/src/synfig/layer_composite.h b/synfig-core/tags/stable/src/synfig/layer_composite.h new file mode 100644 index 0000000..d7d47a1 --- /dev/null +++ b/synfig-core/tags/stable/src/synfig/layer_composite.h @@ -0,0 +1,94 @@ +/* === S Y N F I G ========================================================= */ +/*! \file layer_composite.h +** \brief Composite Layer Class Implementation +** +** $Id$ +** +** \legal +** Copyright (c) 2002-2005 Robert B. Quattlebaum Jr., Adrian Bentley +** +** This package is free software; you can redistribute it and/or +** modify it under the terms of the GNU General Public License as +** published by the Free Software Foundation; either version 2 of +** the License, or (at your option) any later version. +** +** This package is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +** General Public License for more details. +** \endlegal +*/ +/* ========================================================================= */ + +/* === S T A R T =========================================================== */ + +#ifndef __SYNFIG_LAYER_COMPOSITE_H +#define __SYNFIG_LAYER_COMPOSITE_H + +/* === H E A D E R S ======================================================= */ + +#include "layer.h" +#include "color.h" + +/* === M A C R O S ========================================================= */ + +/* === T Y P E D E F S ===================================================== */ + +/* === C L A S S E S & S T R U C T S ======================================= */ + +namespace synfig { + +class Layer_NoDeform {}; + + +/*! \class Layer_Composite +** \brief Base class for layers that put stuff ontop of lower layers +*/ +class Layer_Composite : public Layer +{ +private: + + float amount_; + + Color::BlendMethod blend_method_; + +protected: + + Layer_Composite( + float amount=1.0, + Color::BlendMethod blend_method=Color::BLEND_COMPOSITE + ): + amount_ (amount), + blend_method_ (blend_method) + { } + +public: + + float get_amount()const { return amount_; } + + Layer_Composite& set_amount(float x) { amount_=x; return *this; } + + Color::BlendMethod get_blend_method()const { return blend_method_; } + + Layer_Composite& set_blend_method(Color::BlendMethod x) { blend_method_=x; return *this; } + + virtual bool is_solid_color()const { return amount_==1.0f && blend_method_==Color::BLEND_STRAIGHT; } + + bool is_disabled()const { return amount_==0.0f; } + + virtual Vocab get_param_vocab()const; + + virtual bool set_param(const String ¶m, const ValueBase &value); + + virtual ValueBase get_param(const String ¶m)const; + + virtual Rect get_full_bounding_rect(Context context)const; + + virtual bool accelerated_render(Context context,Surface *surface,int quality, const RendDesc &renddesc, ProgressCallback *cb)const; +}; // END of class Layer_Composite + +}; // END of namespace synfig + +/* === E N D =============================================================== */ + +#endif diff --git a/synfig-core/tags/stable/src/synfig/layer_mime.cpp b/synfig-core/tags/stable/src/synfig/layer_mime.cpp new file mode 100644 index 0000000..5524fc2 --- /dev/null +++ b/synfig-core/tags/stable/src/synfig/layer_mime.cpp @@ -0,0 +1,148 @@ +/* === S Y N F I G ========================================================= */ +/*! \file layer_mime.cpp +** \brief Template File +** +** $Id$ +** +** \legal +** Copyright (c) 2002-2005 Robert B. Quattlebaum Jr., Adrian Bentley +** +** This package is free software; you can redistribute it and/or +** modify it under the terms of the GNU General Public License as +** published by the Free Software Foundation; either version 2 of +** the License, or (at your option) any later version. +** +** This package is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +** General Public License for more details. +** \endlegal +*/ +/* ========================================================================= */ + +/* === H E A D E R S ======================================================= */ + +#ifdef USING_PCH +# include "pch.h" +#else +#ifdef HAVE_CONFIG_H +# include +#endif + +#include "layer_mime.h" + +#include "layer.h" +#include "time.h" +#include "string.h" +#include "vector.h" + +#include "context.h" +#include "time.h" +#include "color.h" +#include "surface.h" +#include "renddesc.h" +#include "target.h" + +#include "general.h" +#include "paramdesc.h" + +#endif + +/* === U S I N G =========================================================== */ + +using namespace std; +using namespace etl; +using namespace synfig; + +/* === M A C R O S ========================================================= */ + +/* === G L O B A L S ======================================================= */ + +/* === P R O C E D U R E S ================================================= */ + +/* === M E T H O D S ======================================================= */ + +Layer_Mime::Layer_Mime(String x):name(x) +{ + // Throw a bogus default version onto the parameter list. + param_list["Version"]="9"; +} + +String +Layer_Mime::get_version()const +{ + return get_param("Version").get(String()); +} + +bool +Layer_Mime::set_version(const String &ver) +{ + return set_param("Version",ver); +} + +String +Layer_Mime::get_local_name()const +{ + return _("[MIME]")+get_name(); +} + +bool +Layer_Mime::set_param(const String ¶m, const ValueBase &value) +{ + // Don't try to set the name + if(param=="name" || param=="Name" || param=="name__") + return false; + + // Otherwise, remember this parameter's value + param_list[param]=value; + return true; +} + +ValueBase +Layer_Mime::get_param(const String ¶m)const +{ + // If they are requesting the name of + // the layer, just return it + if(param=="name" || param=="Name" || param=="name__") + return ValueBase(name); + + // Otherwise, return the stored parameter value + map::const_iterator iter=param_list.find(param); + if(iter!=param_list.end()) + return iter->second; + return ValueBase(); +} + +Color +Layer_Mime::get_color(Context context, const Point &pos)const +{ + // A Layer_Mime layer should do nothing at all. + return context.get_color(pos); +} + +bool +Layer_Mime::accelerated_render(Context context,Surface *surface,int quality, const RendDesc &renddesc, ProgressCallback *cb)const +{ + // A Layer_Mime layer should do nothing at all. + return context.accelerated_render(surface,quality,renddesc,cb); +} + +Layer::Vocab +Layer_Mime::get_param_vocab()const +{ + Layer::Vocab ret; + map::const_iterator iter; + + // Construct the vocabulary from the stored + // parameters + for(iter=param_list.begin();iter!=param_list.end();iter++) + { + // Make sure that we don't add the version + // into the vocabulary + if(iter->first!="Version") + ret.push_back(ParamDesc(iter->first)); + } + + // ... and return it + return ret; +} diff --git a/synfig-core/tags/stable/src/synfig/layer_mime.h b/synfig-core/tags/stable/src/synfig/layer_mime.h new file mode 100644 index 0000000..9befa47 --- /dev/null +++ b/synfig-core/tags/stable/src/synfig/layer_mime.h @@ -0,0 +1,75 @@ +/* === S Y N F I G ========================================================= */ +/*! \file layer_mime.h +** \brief Template Header +** +** $Id$ +** +** \legal +** Copyright (c) 2002-2005 Robert B. Quattlebaum Jr., Adrian Bentley +** +** This package is free software; you can redistribute it and/or +** modify it under the terms of the GNU General Public License as +** published by the Free Software Foundation; either version 2 of +** the License, or (at your option) any later version. +** +** This package is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +** General Public License for more details. +** \endlegal +*/ +/* ========================================================================= */ + +/* === S T A R T =========================================================== */ + +#ifndef __SYNFIG_LAYER_MIME_H +#define __SYNFIG_LAYER_MIME_H + +/* === H E A D E R S ======================================================= */ + +#include "layer.h" +#include "string.h" +#include + +/* === M A C R O S ========================================================= */ + +/* === T Y P E D E F S ===================================================== */ + +/* === C L A S S E S & S T R U C T S ======================================= */ + +namespace synfig { + +/*! \class Layer_Mime +** The mime layer is a layer that is used when an unknown +** layer type is requested. This allows people without +** all of the correct layers installed to still work with +** that composition. +*/ +class Layer_Mime : public Layer +{ + std::map param_list; + String name; +public: + Layer_Mime(String name); + + virtual String get_version()const; + + virtual bool set_version(const String &ver); + + virtual bool set_param(const String ¶m, const ValueBase &value); + + virtual ValueBase get_param(const String ¶m)const; + + virtual Color get_color(Context context, const Point &pos)const; + virtual bool accelerated_render(Context context,Surface *surface,int quality, const RendDesc &renddesc, ProgressCallback *cb)const; + + virtual Vocab get_param_vocab()const; + virtual String get_local_name()const; + +}; + +}; // END of namespace synfig + +/* === E N D =============================================================== */ + +#endif diff --git a/synfig-core/tags/stable/src/synfig/layer_motionblur.cpp b/synfig-core/tags/stable/src/synfig/layer_motionblur.cpp new file mode 100644 index 0000000..977f4bd --- /dev/null +++ b/synfig-core/tags/stable/src/synfig/layer_motionblur.cpp @@ -0,0 +1,196 @@ +/* === S Y N F I G ========================================================= */ +/*! \file layer_motionblur.cpp +** \brief Template Header +** +** $Id$ +** +** \legal +** Copyright (c) 2002-2005 Robert B. Quattlebaum Jr., Adrian Bentley +** +** This package is free software; you can redistribute it and/or +** modify it under the terms of the GNU General Public License as +** published by the Free Software Foundation; either version 2 of +** the License, or (at your option) any later version. +** +** This package is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +** General Public License for more details. +** \endlegal +*/ +/* ========================================================================= */ + +/* === H E A D E R S ======================================================= */ + +#ifdef USING_PCH +# include "pch.h" +#else +#ifdef HAVE_CONFIG_H +# include +#endif + +#include "string.h" +#include "layer_motionblur.h" +#include "time.h" +#include "context.h" +#include "paramdesc.h" +#include "renddesc.h" +#include "surface.h" +#include "value.h" +#include "valuenode.h" +#include "canvas.h" + +#endif + +/* === U S I N G =========================================================== */ + +using namespace synfig; +using namespace etl; +using namespace std; + +/* === G L O B A L S ======================================================= */ + +SYNFIG_LAYER_INIT(Layer_MotionBlur); +SYNFIG_LAYER_SET_NAME(Layer_MotionBlur,"MotionBlur"); +SYNFIG_LAYER_SET_LOCAL_NAME(Layer_MotionBlur,_("Motion Blur")); +SYNFIG_LAYER_SET_CATEGORY(Layer_MotionBlur,_("Blurs")); +SYNFIG_LAYER_SET_VERSION(Layer_MotionBlur,"0.1"); +SYNFIG_LAYER_SET_CVS_ID(Layer_MotionBlur,"$Id$"); + +/* === M E M B E R S ======================================================= */ + +Layer_MotionBlur::Layer_MotionBlur(): + Layer_Composite (1.0,Color::BLEND_STRAIGHT), + aperture (0) +{ +} + +bool +Layer_MotionBlur::set_param(const String ¶m, const ValueBase &value) +{ + + IMPORT(aperture); + return Layer_Composite::set_param(param,value); +} + +ValueBase +Layer_MotionBlur::get_param(const String ¶m)const +{ + EXPORT(aperture); + + EXPORT_NAME(); + EXPORT_VERSION(); + + return Layer_Composite::get_param(param); +} + +void +Layer_MotionBlur::set_time(Context context, Time time)const +{ + context.set_time(time); + time_cur=time; +} + +void +Layer_MotionBlur::set_time(Context context, Time time, const Point &pos)const +{ + context.set_time(time,pos); + time_cur=time; +} + +Color +Layer_MotionBlur::get_color(Context context, const Point &pos)const +{ +/* if(aperture) + { + Time time(time_cur); + time+=(Vector::value_type)( (signed)(RAND_MAX/2)-(signed)rand() )/(Vector::value_type)(RAND_MAX) *aperture -aperture*0.5; + context.set_time(time, pos); + } +*/ + return context.get_color(pos); +} + +Layer::Vocab +Layer_MotionBlur::get_param_vocab()const +{ + Layer::Vocab ret; + //ret=Layer_Composite::get_param_vocab(); + + ret.push_back(ParamDesc("aperture") + .set_local_name(_("Aperture")) + .set_description(_("Shutter Time")) + ); + + return ret; +} + +bool +Layer_MotionBlur::accelerated_render(Context context,Surface *surface,int quality, const RendDesc &renddesc, ProgressCallback *cb)const +{ + if(aperture && quality<10) + { + //int x, y; + SuperCallback subimagecb; + int samples=1; + switch(quality) + { + case 1: // Production Quality + samples=32; + break; + case 2: // Excellent Quality + samples=24; + break; + case 3: // Good Quality + samples=16; + break; + case 4: // Moderate Quality + samples=12; + break; + case 5: // Draft Quality + samples=7; + break; + case 6: + samples=6; + break; + case 7: + samples=5; + break; + case 8: + samples=3; + break; + case 9: + samples=3; + break; + case 10: // Rough Quality + default: + samples=1; + break; + + } + + Surface tmp; + int i; + + surface->set_wh(renddesc.get_w(),renddesc.get_h()); + surface->clear(); + + for(i=0;i +#endif + +#include "layer_pastecanvas.h" +#include "string.h" +#include "time.h" +#include "context.h" +#include "paramdesc.h" +#include "renddesc.h" +#include "surface.h" +#include "value.h" +#include "valuenode.h" +#include "canvas.h" + +#endif + +/* === U S I N G =========================================================== */ + +using namespace etl; +using namespace std; +using namespace synfig; + +/* === M A C R O S ========================================================= */ + +#define MAX_DEPTH 10 + +//#ifdef __APPLE__ +//#define SYNFIG_NO_CLIP +//#endif + +/* === C L A S S E S ======================================================= */ + +class depth_counter // Makes our recursive depth counter exception-safe +{ + int *depth; +public: + depth_counter(int &x):depth(&x) { (*depth)++; } + ~depth_counter() { (*depth)--; } +}; + +/* === G L O B A L S ======================================================= */ + +SYNFIG_LAYER_INIT(Layer_PasteCanvas); +SYNFIG_LAYER_SET_NAME(Layer_PasteCanvas,"PasteCanvas"); +SYNFIG_LAYER_SET_LOCAL_NAME(Layer_PasteCanvas,_("Paste Canvas")); +SYNFIG_LAYER_SET_CATEGORY(Layer_PasteCanvas,_("Default")); +SYNFIG_LAYER_SET_VERSION(Layer_PasteCanvas,"0.1"); +SYNFIG_LAYER_SET_CVS_ID(Layer_PasteCanvas,"$Id$"); + +/* === M E T H O D S ======================================================= */ + +Layer_PasteCanvas::Layer_PasteCanvas(): + origin(0,0), + depth(0), + zoom(0), + time_offset(0) +{ + children_lock=false; + do_not_muck_with_time_=false; + curr_time=Time::begin(); +} + +Layer_PasteCanvas::~Layer_PasteCanvas() +{ +/* if(canvas) + canvas->parent_set.erase(this); +*/ + + //if(canvas)DEBUGINFO(strprintf("%d",canvas->count())); + + set_sub_canvas(0); + + //if(canvas && (canvas->is_inline() || !get_canvas() || get_canvas()->get_root()!=canvas->get_root())) + // canvas->unref(); +} + +String +Layer_PasteCanvas::get_local_name()const +{ + if(!canvas) return _("Pasted Canvas"); + if(canvas->is_inline()) return _("Inline Canvas"); + if(canvas->get_root()==get_canvas()->get_root()) return '[' + canvas->get_id() + ']'; + + return '[' + canvas->get_file_name() + ']'; +} + +Layer::Vocab +Layer_PasteCanvas::get_param_vocab()const +{ + Layer::Vocab ret(Layer_Composite::get_param_vocab()); + + ret.push_back(ParamDesc("origin") + .set_local_name(_("Origin")) + .set_description(_("Point where you want the origin to be")) + ); + ret.push_back(ParamDesc("canvas") + .set_local_name(_("Canvas")) + .set_description(_("Canvas to paste")) + ); + ret.push_back(ParamDesc("zoom") + .set_local_name(_("Zoom")) + .set_description(_("Size of canvas")) + ); + + ret.push_back(ParamDesc("time_offset") + .set_local_name(_("Time Offset")) + ); + + ret.push_back(ParamDesc("children_lock") + .set_local_name(_("Children Lock")) + ); + + return ret; +} + +bool +Layer_PasteCanvas::set_param(const String & param, const ValueBase &value) +{ + IMPORT(origin); + + if(param=="canvas" && value.same_as(Canvas::Handle())) + { + set_sub_canvas(value.get(Canvas::Handle())); + return true; + } + +// IMPORT(canvas); + IMPORT(children_lock); + IMPORT(zoom); + IMPORT(time_offset); + + return Layer_Composite::set_param(param,value); +} + +void +Layer_PasteCanvas::set_sub_canvas(etl::handle x) +{ + if(canvas && !do_not_muck_with_time_) + remove_child(canvas.get()); + + if(canvas && (canvas->is_inline() || !get_canvas() || get_canvas()->get_root()!=canvas->get_root())) + canvas->unref(); + + child_changed_connection.disconnect(); + + canvas=x; + + /*if(canvas) + child_changed_connection=canvas->signal_changed().connect( + sigc::mem_fun( + *this, + &Layer_PasteCanvas::changed + ) + ); + */ + if(canvas) + bounds=(canvas->get_context().get_full_bounding_rect()-canvas->rend_desc().get_focus())*exp(zoom)+origin+canvas->rend_desc().get_focus(); + + if(canvas && !do_not_muck_with_time_) + add_child(canvas.get()); + + if(canvas && (canvas->is_inline() || !get_canvas() || get_canvas()->get_root()!=canvas->get_root())) + canvas->ref(); + + if(canvas) + on_canvas_set(); +} + +// This is called whenever the parent canvas gets set/changed +void +Layer_PasteCanvas::on_canvas_set() +{ + //synfig::info("before count()=%d",count()); + if(get_canvas() && canvas && canvas->is_inline() && canvas->parent()!=get_canvas()) + { + //synfig::info("during count()=%d",count()); + canvas->set_inline(get_canvas()); + } + //synfig::info("after count()=%d",count()); +} + +ValueBase +Layer_PasteCanvas::get_param(const String& param)const +{ + EXPORT(origin); + EXPORT(canvas); + EXPORT(zoom); + EXPORT(time_offset); + EXPORT(children_lock); + + EXPORT_NAME(); + EXPORT_VERSION(); + + return Layer_Composite::get_param(param); +} + +void +Layer_PasteCanvas::set_time(Context context, Time time)const +{ + if(depth==MAX_DEPTH)return;depth_counter counter(depth); + curr_time=time; + + context.set_time(time); + if(canvas) + { + canvas->set_time(time); + + bounds=(canvas->get_context().get_full_bounding_rect()-canvas->rend_desc().get_focus())*exp(zoom)+origin+canvas->rend_desc().get_focus(); + } + else + bounds=Rect::zero(); +} + +synfig::Layer::Handle +Layer_PasteCanvas::hit_check(synfig::Context context, const synfig::Point &pos)const +{ + if(depth==MAX_DEPTH)return 0;depth_counter counter(depth); + + Point target_pos=(pos-canvas->rend_desc().get_focus()-origin)/exp(zoom)+canvas->rend_desc().get_focus(); + + if(canvas && get_amount() && canvas->get_context().get_color(target_pos).get_a()>=0.25) + { + if(!children_lock) + { + return canvas->get_context().hit_check(target_pos); + } + return const_cast(this); + } + else + return context.hit_check(pos); +} + +Color +Layer_PasteCanvas::get_color(Context context, const Point &pos)const +{ + if(!canvas || !get_amount()) + return context.get_color(pos); + + if(depth==MAX_DEPTH)return Color::alpha();depth_counter counter(depth); + + Point target_pos=(pos-canvas->rend_desc().get_focus()-origin)/exp(zoom)+canvas->rend_desc().get_focus(); + + return Color::blend(canvas->get_context().get_color(target_pos),context.get_color(pos),get_amount(),get_blend_method()); +} + + +bool +Layer_PasteCanvas::accelerated_render(Context context,Surface *surface,int quality, const RendDesc &renddesc, ProgressCallback *cb)const +{ + if(cb && !cb->amount_complete(0,10000)) return false; + + if(depth==MAX_DEPTH) + { + DEBUGPOINT(); + // if we are at the extent of our depth, + // then we should just return whatever is under us. + return context.accelerated_render(surface,quality,renddesc,cb); + } + depth_counter counter(depth); + + if(!canvas || !get_amount()) + return context.accelerated_render(surface,quality,renddesc,cb); + + if(!do_not_muck_with_time_ && curr_time!=Time::begin() && canvas->get_time()!=curr_time+time_offset) + { + canvas->set_time(curr_time+time_offset); + } + + SuperCallback stageone(cb,0,4500,10000); + SuperCallback stagetwo(cb,4500,9000,10000); + SuperCallback stagethree(cb,9000,9999,10000); + + RendDesc desc(renddesc); + Vector::value_type zoomfactor=1.0/exp(zoom); + desc.clear_flags(); + desc.set_tl((desc.get_tl()-canvas->rend_desc().get_focus()-origin)*zoomfactor+canvas->rend_desc().get_focus()); + desc.set_br((desc.get_br()-canvas->rend_desc().get_focus()-origin)*zoomfactor+canvas->rend_desc().get_focus()); + desc.set_flags(RendDesc::PX_ASPECT); + + if(is_solid_color() || context->empty()) + { + surface->set_wh(renddesc.get_w(),renddesc.get_h()); + surface->clear(); + } + else if(!context.accelerated_render(surface,quality,renddesc,&stageone)) + return false; + Color::BlendMethod blend_method(get_blend_method()); + + const Rect full_bounding_rect(canvas->get_context().get_full_bounding_rect()); + + if(context->empty()) + { + if(Color::is_onto(blend_method)) + return true; + + if(blend_method==Color::BLEND_COMPOSITE) + blend_method=Color::BLEND_STRAIGHT; + } + else + if(!etl::intersect(context.get_full_bounding_rect(),full_bounding_rect+origin)) + { + if(Color::is_onto(blend_method)) + return true; + + if(blend_method==Color::BLEND_COMPOSITE) + blend_method=Color::BLEND_STRAIGHT; + } + +#ifndef SYNFIG_NO_CLIP + { + //synfig::info("PasteCanv Clip"); + Rect area(desc.get_rect()&full_bounding_rect); + + Point min(area.get_min()); + Point max(area.get_max()); + + if(desc.get_tl()[0]>desc.get_br()[0]) + swap(min[0],max[0]); + if(desc.get_tl()[1]>desc.get_br()[1]) + swap(min[1],max[1]); + + const int + x(floor_to_int((min[0]-desc.get_tl()[0])/desc.get_pw())), + y(floor_to_int((min[1]-desc.get_tl()[1])/desc.get_ph())), + w(ceil_to_int((max[0]-desc.get_tl()[0])/desc.get_pw())-x), + h(ceil_to_int((max[1]-desc.get_tl()[1])/desc.get_ph())-y); + + desc.set_subwindow(x,y,w,h); + + Surface pastesurface; + + if(area.area()<=0.000001 || desc.get_w()==0 || desc.get_h()==0) + { + if(cb && !cb->amount_complete(10000,10000)) return false; + + return true; + } + + if(!canvas->get_context().accelerated_render(&pastesurface,quality,desc,&stagetwo)) + return false; + + Surface::alpha_pen apen(surface->get_pen(x,y)); + + apen.set_alpha(get_amount()); + apen.set_blend_method(blend_method); + + pastesurface.blit_to(apen); + } +#else + { + Surface pastesurface; + + if(!canvas->get_context().accelerated_render(&pastesurface,quality,desc,&stagetwo)) + return false; + + Surface::alpha_pen apen(surface->begin()); + + apen.set_alpha(get_amount()); + apen.set_blend_method(blend_method); + + pastesurface.blit_to(apen); + } +#endif + + if(cb && !cb->amount_complete(10000,10000)) return false; + + return true; +} + +Rect +Layer_PasteCanvas::get_bounding_rect()const +{ + return bounds; +} + +void Layer_PasteCanvas::get_times_vfunc(Node::time_set &set) const +{ + Node::time_set tset; + if(canvas) tset = canvas->get_times(); + + Node::time_set::iterator i = tset.begin(), + end = tset.end(); + + //Make sure we offset the time... + //TODO: SOMETHING STILL HAS TO BE DONE WITH THE OTHER DIRECTION + // (recursing down the tree needs to take this into account too...) + for(; i != end; ++i) + { + set.insert(*i + time_offset); + } + + Layer::get_times_vfunc(set); +} diff --git a/synfig-core/tags/stable/src/synfig/layer_pastecanvas.h b/synfig-core/tags/stable/src/synfig/layer_pastecanvas.h new file mode 100644 index 0000000..82cd32d --- /dev/null +++ b/synfig-core/tags/stable/src/synfig/layer_pastecanvas.h @@ -0,0 +1,119 @@ +/* === S Y N F I G ========================================================= */ +/*! \file layer_pastecanvas.h +** \brief Template Header +** +** $Id$ +** +** \legal +** Copyright (c) 2002-2005 Robert B. Quattlebaum Jr., Adrian Bentley +** +** This package is free software; you can redistribute it and/or +** modify it under the terms of the GNU General Public License as +** published by the Free Software Foundation; either version 2 of +** the License, or (at your option) any later version. +** +** This package is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +** General Public License for more details. +** \endlegal +*/ +/* ========================================================================= */ + +/* === S T A R T =========================================================== */ + +#ifndef __SYNFIG_LAYER_PASTEIMAGE_H +#define __SYNFIG_LAYER_PASTEIMAGE_H + +/* === H E A D E R S ======================================================= */ + +#include "layer_composite.h" +#include "color.h" +#include "vector.h" +#include "real.h" +#include "time.h" +#include "canvasbase.h" +#include "canvas.h" +#include "rect.h" + +/* === M A C R O S ========================================================= */ + +/* === T Y P E D E F S ===================================================== */ + +/* === C L A S S E S & S T R U C T S ======================================= */ + +namespace synfig { + +class Layer_PasteCanvas : public Layer_Composite, public Layer_NoDeform +{ + SYNFIG_LAYER_MODULE_EXT +private: + + Vector origin; + + etl::loose_handle canvas; + + //! Recursion depth counter + mutable int depth; + + Real zoom; + + Time time_offset; + + mutable Time curr_time; + + bool optimize_layers(synfig::Context context,synfig::CanvasBase&)const; + + bool do_not_muck_with_time_; + + bool children_lock; + + mutable Rect bounds; + + sigc::connection child_changed_connection; +public: + + virtual void on_canvas_set(); + + void set_do_not_muck_with_time(bool x=true) { do_not_muck_with_time_=true; } + + etl::handle get_sub_canvas()const { return canvas; } + void set_sub_canvas(etl::handle x); + + Real get_zoom()const { return zoom; } + + Time get_time_offset()const { return time_offset; } + + Point get_origin()const { return origin; } + + Layer_PasteCanvas(); + virtual ~Layer_PasteCanvas(); + + virtual String get_local_name()const; + + virtual bool set_param(const String & param, const synfig::ValueBase &value); + + virtual ValueBase get_param(const String & param)const; + + virtual Color get_color(Context context, const Point &pos)const; + + virtual void set_time(Context context, Time time)const; + + virtual bool accelerated_render(Context context,Surface *surface,int quality, const RendDesc &renddesc, ProgressCallback *cb)const; + + virtual Vocab get_param_vocab()const; + + virtual synfig::Rect get_bounding_rect()const; + + virtual synfig::Layer::Handle hit_check(synfig::Context context, const synfig::Point &point)const; + +protected: + virtual void get_times_vfunc(Node::time_set &set) const; + +}; // END of class Layer_PasteCanvas + +}; // END of namespace synfig + +/* === E N D =============================================================== */ + +#endif diff --git a/synfig-core/tags/stable/src/synfig/layer_polygon.cpp b/synfig-core/tags/stable/src/synfig/layer_polygon.cpp new file mode 100644 index 0000000..5445355 --- /dev/null +++ b/synfig-core/tags/stable/src/synfig/layer_polygon.cpp @@ -0,0 +1,176 @@ +/* === S Y N F I G ========================================================= */ +/*! \file layer_polygon.cpp +** \brief Template Header +** +** $Id$ +** +** \legal +** Copyright (c) 2002-2005 Robert B. Quattlebaum Jr., Adrian Bentley +** +** This package is free software; you can redistribute it and/or +** modify it under the terms of the GNU General Public License as +** published by the Free Software Foundation; either version 2 of +** the License, or (at your option) any later version. +** +** This package is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +** General Public License for more details. +** \endlegal +*/ +/* ========================================================================= */ + +/* === H E A D E R S ======================================================= */ + +#ifdef USING_PCH +# include "pch.h" +#else +#ifdef HAVE_CONFIG_H +# include +#endif + +#include "layer_polygon.h" +#include "string.h" +#include "time.h" +#include "context.h" +#include "paramdesc.h" +#include "renddesc.h" +#include "surface.h" +#include "value.h" +#include "valuenode.h" +//#include "ETL/bezier" +#include + +#include +using std::deque; + +#endif + +/* === U S I N G =========================================================== */ + +using namespace synfig; +using namespace std; +using namespace etl; + +/* === G L O B A L S ======================================================= */ + +SYNFIG_LAYER_INIT(Layer_Polygon); +SYNFIG_LAYER_SET_NAME(Layer_Polygon,"polygon"); +SYNFIG_LAYER_SET_LOCAL_NAME(Layer_Polygon,_("Polygon")); +SYNFIG_LAYER_SET_CATEGORY(Layer_Polygon,_("Geometry")); +SYNFIG_LAYER_SET_VERSION(Layer_Polygon,"0.1"); +SYNFIG_LAYER_SET_CVS_ID(Layer_Polygon,"$Id$"); + +/* === C L A S S E S ======================================================= */ + +/* === M E T H O D S ======================================================= */ + +Layer_Polygon::Layer_Polygon(): + Layer_Shape (1.0,Color::BLEND_COMPOSITE), + vector_list (0) +{ + vector_list.push_back(Point(0,0.5)); + vector_list.push_back(Point(-0.333333,0)); + vector_list.push_back(Point(0.333333,0)); + sync(); +} + +Layer_Polygon::~Layer_Polygon() +{ +} + +void +Layer_Polygon::sync() +{ +/* + int i,pointcount=vector_list.size(); + + if(pointcount<3) + return; + + //Layer_Shape::clear(); + //clear(); + + // Build edge table + move_to(vector_list[0][0],vector_list[0][1]); + + for(i = 1;i < pointcount; i++) + { + if(isnan(vector_list[i][0]) || isnan(vector_list[i][1])) + break; + line_to(vector_list[i][0],vector_list[i][1]); + } + close(); + //endpath(); +*/ +} + +void +Layer_Polygon::add_polygon(const vector &point_list) +{ + int i,pointcount=point_list.size(); + + if(pointcount<3) + return; + + //Layer_Shape::clear(); + //clear(); + + // Build edge table + move_to(point_list[0][0],point_list[0][1]); + + for(i = 1;i < pointcount; i++) + { + if(isnan(point_list[i][0]) || isnan(point_list[i][1])) + break; + line_to(point_list[i][0],point_list[i][1]); + } + close(); + //endpath(); +} + +void +Layer_Polygon::clear() +{ + Layer_Shape::clear(); + vector_list.clear(); +} + +bool +Layer_Polygon::set_param(const String & param, const ValueBase &value) +{ + if( param=="vector_list" && value.same_as(vector_list)) + { + vector_list=value; + Layer_Shape::clear(); + add_polygon(value); + sync(); + return true; + } + + return Layer_Shape::set_param(param,value); +} + +ValueBase +Layer_Polygon::get_param(const String ¶m)const +{ + EXPORT(vector_list); + + EXPORT_NAME(); + EXPORT_VERSION(); + + return Layer_Shape::get_param(param); +} + +Layer::Vocab +Layer_Polygon::get_param_vocab()const +{ + Layer::Vocab ret(Layer_Shape::get_param_vocab()); + + ret.push_back(ParamDesc("vector_list") + .set_local_name(_("Vector List")) + .set_origin("offset") + ); + + return ret; +} diff --git a/synfig-core/tags/stable/src/synfig/layer_polygon.h b/synfig-core/tags/stable/src/synfig/layer_polygon.h new file mode 100644 index 0000000..783d4ed --- /dev/null +++ b/synfig-core/tags/stable/src/synfig/layer_polygon.h @@ -0,0 +1,96 @@ +/* === S Y N F I G ========================================================= */ +/*! \file layer_polygon.h +** \brief Template Header +** +** $Id$ +** +** \legal +** Copyright (c) 2002-2005 Robert B. Quattlebaum Jr., Adrian Bentley +** +** This package is free software; you can redistribute it and/or +** modify it under the terms of the GNU General Public License as +** published by the Free Software Foundation; either version 2 of +** the License, or (at your option) any later version. +** +** This package is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +** General Public License for more details. +** \endlegal +*/ +/* ========================================================================= */ + +/* === S T A R T =========================================================== */ + +#ifndef __SYNFIG_LAYER_POLYGON_H +#define __SYNFIG_LAYER_POLYGON_H + +/* === H E A D E R S ======================================================= */ + +#include "layer_shape.h" +#include "color.h" +#include "vector.h" +#include +#include + +/* === M A C R O S ========================================================= */ + +/* === T Y P E D E F S ===================================================== */ + +/* === C L A S S E S & S T R U C T S ======================================= */ + +namespace synfig { + +/*! \class Layer_Polygon +** \brief writeme +** \todo This layer needs to support multiple polygons */ +class Layer_Polygon : public Layer_Shape +{ + SYNFIG_LAYER_MODULE_EXT + +private: + + //exported data + std::vector< Point > vector_list; + +protected: + + Layer_Polygon(); + +public: + + ~Layer_Polygon(); + + //! Adds a polygon to the layer + /*! The edge data is automaticly added to the + ** EdgeTable, so there is no need to call sync() + ** after adding a polygon using this function. + ** \param point_list A list containing the + ** points that define the polygon's parameter. + */ + void add_polygon(const std::vector &point_list); + + //! Clears out any polygon data + /*! Also clears out the EdgeTable, so there is no + ** need to call sync() after using this function. + */ + void clear(); + + //! Updates EdgeTable so it will reflect the parameter data + void sync(); + + virtual bool set_param(const String & param, const synfig::ValueBase &value); + + virtual ValueBase get_param(const String & param)const; + + virtual Vocab get_param_vocab()const; + +private: + class PolySpan; + bool render_polyspan(Surface *surface,PolySpan &polyspan)const; +}; // END of Layer_Polygon + +}; // END of namespace synfig +/* === E N D =============================================================== */ + +#endif diff --git a/synfig-core/tags/stable/src/synfig/layer_shape.cpp b/synfig-core/tags/stable/src/synfig/layer_shape.cpp new file mode 100644 index 0000000..2dd949e --- /dev/null +++ b/synfig-core/tags/stable/src/synfig/layer_shape.cpp @@ -0,0 +1,3097 @@ +/* === S Y N F I G ========================================================= */ +/*! \file layer_shape.cpp +** \brief Template Header +** +** $Id$ +** +** \legal +** Copyright (c) 2002-2005 Robert B. Quattlebaum Jr., Adrian Bentley +** +** This package is free software; you can redistribute it and/or +** modify it under the terms of the GNU General Public License as +** published by the Free Software Foundation; either version 2 of +** the License, or (at your option) any later version. +** +** This package is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +** General Public License for more details. +** \endlegal +*/ +/* ========================================================================= */ + +/* === H E A D E R S ======================================================= */ + +#ifdef USING_PCH +# include "pch.h" +#else +#ifdef HAVE_CONFIG_H +# include +#endif + +#include "layer_shape.h" +#include "string.h" +#include "time.h" +#include "context.h" +#include "paramdesc.h" +#include "renddesc.h" +#include "surface.h" +#include "value.h" +#include "valuenode.h" +#include "float.h" +#include "blur.h" + +#include "curve_helper.h" + +#include + +#include + +#endif + +/* === U S I N G =========================================================== */ + +using namespace synfig; +using namespace std; +using namespace etl; + +/* === G L O B A L S ======================================================= */ + +SYNFIG_LAYER_INIT(Layer_Shape); +SYNFIG_LAYER_SET_NAME(Layer_Shape,"shape"); +SYNFIG_LAYER_SET_LOCAL_NAME(Layer_Shape,_("Shape")); +SYNFIG_LAYER_SET_CATEGORY(Layer_Shape,_("Internal")); +SYNFIG_LAYER_SET_VERSION(Layer_Shape,"0.1"); +SYNFIG_LAYER_SET_CVS_ID(Layer_Shape,"$Id$"); + +#define EPSILON 1e-12 + +template < class T > +inline bool IsZero(const T &n) +{ + return (n < EPSILON) && (n > -EPSILON); +} + +/* === C L A S S E S ======================================================= */ + +//Assumes 64 byte aligned structures if at all +struct Primitive +{ + int operation; + int number; + + //Point data[0]; + + enum Operations + { + NONE = -1, + MOVE_TO = 0, //(x,y)+ after first point treated as line_to + CLOSE, // NOT RUNLENGTH enabled + LINE_TO, //(x,y)+ continuous func + CONIC_TO, //(x1,y1,x,y)+ " " + CONIC_TO_SMOOTH, //(x,y)+ " " + CUBIC_TO, //(x1,y1,x2,y2,x,y)+ " " + CUBIC_TO_SMOOTH, //(x2,y2,x,y)+ " " + END + }; +}; + +//******** CURVE FUNCTIONS ***************** +const int MAX_SUBDIVISION_SIZE = 64; +const int MIN_SUBDIVISION_DRAW_LEVELS = 4; + +static void Subd_Conic_Stack(Point *arc) +{ + /* + + b0 + * 0+1 a + b1 b * 1+2*1+2 a + * 1+2 b * + b2 * + * + + 0.1.2 -> 0.1 2 3.4 + + */ + + Real a,b; + + + arc[4][0] = arc[2][0]; + b = arc[1][0]; + + a = arc[1][0] = (arc[0][0] + b)/2; + b = arc[3][0] = (arc[4][0] + b)/2; + arc[2][0] = (a + b)/2; + + + arc[4][1] = arc[2][1]; + b = arc[1][1]; + + a = arc[1][1] = (arc[0][1] + b)/2; + b = arc[3][1] = (arc[4][1] + b)/2; + arc[2][1] = (a + b)/2; + + /* //USING SIMD + + arc[4] = arc[2]; + + arc[3] = (arc[2] + arc[1])/2; + arc[1] = (arc[0] + arc[1])/2; + + arc[2] = (arc[1] + arc[3])/2; + + */ + +} + +static void Subd_Cubic_Stack(Point *arc) +{ + Real a,b,c; + + /* + + b0 + * 0+1 a + b1 b * 1+2*1+2 a + * 1+2 b * 0+3*1+3*2+3 + b2 c * 1+2*2+2 b * + * 2+3 c * + b3 * + * + + 0.1 2.3 -> 0.1 2 3 4 5.6 + + */ + + arc[6][0] = arc[3][0]; + + b = arc[1][0]; + c = arc[2][0]; + + a = arc[1][0] = (arc[0][0] + b)/2; + b = (b + c)/2; + c = arc[5][0] = (arc[6][0] + c)/2; + + a = arc[2][0] = (a + b)/2; + b = arc[4][0] = (b + c)/2; + + arc[3][0] = (a + b)/2; + + + arc[6][1] = arc[3][1]; + + b = arc[1][1]; + c = arc[2][1]; + + a = arc[1][1] = (arc[0][1] + b)/2; + b = (b + c)/2; + c = arc[5][1] = (arc[6][1] + c)/2; + + a = arc[2][1] = (a + b)/2; + b = arc[4][1] = (b + c)/2; + + arc[3][1] = (a + b)/2; + + /* //USING SIMD + temp + + arc[6] = arc[3]; + + //backwards to avoid overwriting + arc[5] = (arc[2] + arc[3])/2; + temp = (arc[1] + arc[2])/2; + arc[1] = (arc[0] + arc[1])/2; + + arc[4] = (temp + arc[5])/2; + arc[2] = (arc[1] + temp)/2; + + arc[3] = (arc[2] + arc[4])/2; + + */ +} + +//************** PARAMETRIC RENDERER SUPPORT STRUCTURES **************** + +// super segment +struct MonoSegment +{ + Rect aabb; + int ydir; + vector pointlist; + + MonoSegment(int dir = 0, Real x0 = 0, Real x1 = 0, Real y0 = 0, Real y1 = 0) + { + aabb.minx = x0; + aabb.maxx = x1; + aabb.miny = y0; + aabb.maxy = y1; + + ydir = dir; + } + + int intersect(Real x,Real y) const + { + if((y < aabb.miny) || (y > aabb.maxy) || (x < aabb.minx)) return 0; + if(x > aabb.maxx) return ydir; + + //int i = 0; + //int size = pointlist.size(); + //vector::const_iterator end = pointlist.end(); + vector::const_iterator p = pointlist.begin(); + + //assumes that the rect culled away anything that would be beyond the edges + if(ydir > 0) + { + while(y > (*++p)[1]); + } + else + { + while(y < (*++p)[1]); + } + + //for the loop to break there must have been a slope (straight line would do nothing) + //vector::const_iterator p1 = p-1; + Real dy = p[-1][1] - p[0][1]; + Real dx = p[-1][0] - p[0][0]; + + assert(dy != 0); + + Real xi = p[0][0] + (y - p[0][1]) * dx / dy; + return (x > xi)*ydir; + } +}; + +struct CurveArray +{ + Rect aabb; //not necessarily as effective - can only reject values + vector pointlist; //run length - p0, p1, p2, p3 = p10, p11, p12, p13 = p20 ... + vector degrees; + + CurveArray(Real x0 = 0, Real x1 = 0, Real y0 = 0, Real y1 = 0) + { + aabb.set(x0,y0,x1,y1); + } + + void reset(Real x0 = 0, Real x1 = 0, Real y0 = 0, Real y1 = 0) + { + aabb.set(x0,y0,x1,y1); + pointlist.clear(); + degrees.clear(); + } + + int size () const + { + return degrees.size(); + } + + void Start(Point m) + { + reset(m[0],m[0],m[1],m[1]); + pointlist.push_back(m); + } + + void AddCubic(Point p1, Point p2, Point dest) + { + aabb.expand(p1[0],p1[1]); + aabb.expand(p2[0],p2[1]); + aabb.expand(dest[0],dest[1]); + + pointlist.push_back(p1); + pointlist.push_back(p2); + pointlist.push_back(dest); + + degrees.push_back(3); + } + + void AddConic(Point p1, Point dest) + { + aabb.expand(p1[0],p1[1]); + aabb.expand(dest[0],dest[1]); + + pointlist.push_back(p1); + pointlist.push_back(dest); + + degrees.push_back(2); + } + + static int intersect_conic(Real x, Real y, Point *p, int level = 0) + { + Real ymin,ymax,xmin,xmax; + int intersects = 0; + + //sort the overall curve ys - degenerate detection + ymin = min(p[0][1],p[2][1]); + ymax = max(p[0][1],p[2][1]); + + xmin = min(min(p[0][0],p[1][0]),p[2][0]); + xmax = max(max(p[0][0],p[1][0]),p[2][0]); + + //to the left, to the right and out of range y, or completely out of range y + if( x < xmin ) return 0; + if( x > xmax && (y > ymax || y < ymin) ) return 0; + if( (y > ymax && y > p[1][1]) || (y < ymin && y < p[1][1]) ) return 0; + + //degenerate line max + if(ymin == ymax == p[1][1]) + return 0; + + //degenerate accept - to the right and crossing the base line + if(x > xmax) + { + return (y <= ymax && y >= ymin); + } + + //solve for curve = y + + //real roots: + //0 roots - 0 intersection + //1 root - get x, and figure out x + //2 roots (non-double root) - get 2 xs, and count xs to the left + + //for conic we can assume 1 intersection for monotonic curve + Real a = p[2][1] - 2*p[1][1] + p[0][1], + b = 2*p[1][1] - 2*p[0][1], + c = p[0][1] - y; + + Real t1 = -1, t2 = -1; + + if(a == 0) + { + //linear - easier :) + if(b == 0) return 0; //may not need this check + + t1 = - c / b; //bt + c = 0 solved + }else + { + //2 degree polynomial + Real b2_4ac = b*b - 4*a*c; + + //if there are double/no roots - no intersections (in real #s that is) + if(b2_4ac <= 0) + { + return 0; + } + + b2_4ac = sqrt(b2_4ac); + + t1 = (-b - b2_4ac) / 2*a, + t2 = (-b + b2_4ac) / 2*a; + } + + //calculate number of intersections + if(t1 >= 0 && t1 <= 1) + { + const Real t = t1; + const Real invt = 1 - t; + + //find x val and it counts if it's to the left of the point + const Real xi = invt*invt*p[0][0] + 2*t*invt*p[1][0] + t*t*p[2][0]; + const Real dy_t = 2*a*t + b; + + if(dy_t) + { + intersects += (x >= xi) * ( dy_t > 0 ? 1 : -1); + } + } + + if(t2 >= 0 && t2 <= 1) + { + const Real t = t2; + const Real invt = 1 - t; + + //find x val and it counts if it's to the left of the point + const Real xi = invt*invt*p[0][0] + 2*t*invt*p[1][0] + t*t*p[2][0]; + const Real dy_t = 2*a*t + b; + + if(dy_t) + { + intersects += (x >= xi) * ( dy_t > 0 ? 1 : -1); + } + } + + return intersects; + } + + static int quadratic_eqn(Real a, Real b, Real c, Real *t0, Real *t1) + { + const Real b2_4ac = b*b - 4*a*c; + + //degenerate reject (can't take sqrt) + if(b2_4ac < 0) + { + return 0; + } + + const Real sqrtb2_4ac = sqrt(b2_4ac); + const Real signb = b < 0 ? -1 : 1; + const Real q = - 0.5 * (b + signb * sqrtb2_4ac); + + *t0 = q/a; + *t1 = c/q; + + return sqrtb2_4ac == 0 ? 1 : 2; + } + + //Newton-Raphson root polishing (we don't care about bounds, assumes very near the desired root) + static Real polish_cubicroot(Real a, Real b, Real c, Real d, Real t, Real *dpdt) + { + const Real cn[4] = {a,b,c,d}; + Real p,dp,newt,oldpmag=FLT_MAX; + + //eval cubic eqn and its derivative + for(;;) + { + p = cn[0]*t + cn[1]; + dp = cn[0]; + + for(int i = 2; i < 4; i++) + { + dp = p + dp*t; + p = cn[i] + p*t; + } + + if(dp == 0) + { + synfig::warning("polish_cubicroot: Derivative should not vanish!!!"); + return t; + } + + newt = t - p/dp; + + if(newt == t || fabs(p) >= oldpmag) + { + *dpdt = dp; + return t; + } + + t = newt; + oldpmag = fabs(p); + } + } + + static int intersect_cubic(Real x, Real y, Point *p, int level = 0) + { + const Real INVALIDROOT = -FLT_MAX; + Real ymin,ymax,xmin,xmax; + Real ymin2,ymax2,ymintot,ymaxtot; + int intersects = 0; + + //sort the overall curve ys and xs - degenerate detection + + //open span for the two end points + ymin = min(p[0][1],p[3][1]); + ymax = max(p[0][1],p[3][1]); + + //other points etc. + ymin2 = min(p[1][1],p[2][1]); + ymax2 = max(p[1][1],p[2][1]); + + ymintot = min(ymin,ymin2); + ymaxtot = max(ymax,ymax2); + + //the entire curve control polygon is in this x range + xmin = min(min(p[0][0],p[1][0]),min(p[2][0],p[3][0])); + xmax = max(max(p[0][0],p[1][0]),max(p[2][0],p[3][0])); + + //outside all y boundaries (no intersect) + if( (y > ymaxtot) || (y < ymintot) ) return 0; + + //left of curve (no intersect) + if(x < xmin) return 0; + + //right of curve (and outside base range) + if( x > xmax ) + { + if( (y > ymax) || (y < ymin) ) return 0; + + //degenerate accept - to the right and inside the [ymin,ymax] range (already rejected if out of range) + const Real n = p[3][1] - p[0][1]; + + //extract the sign from the value (we need valid data) + return n < 0 ? -1 : 1; + } + + //degenerate horizontal line max -- doesn't happen enough to check for + if( ymintot == ymaxtot ) return 0; + + //calculate roots: + // can have 0,1,2, or 3 real roots + // if any of them are double then reject the two... + + // y-coefficients for f_y(t) - y = 0 + Real a = p[3][1] - 3*p[2][1] + 3*p[1][1] - p[0][1], + b = 3*p[2][1] - 6*p[1][1] + 3*p[0][1], + c = 3*p[1][1] - 3*p[0][1], + d = p[0][1] - y; + + Real ax = p[3][0] - 3*p[2][0] + 3*p[1][0] - p[0][0], + bx = 3*p[2][0] - 6*p[1][0] + 3*p[0][0], + cx = 3*p[1][0] - 3*p[0][0], + dx = p[0][0]; + + Real t1 = INVALIDROOT, t2 = INVALIDROOT, t3 = INVALIDROOT, t, dydt; + + if(a == 0) + { + //only 2nd degree + if(b == 0) + { + //linear + if(c == 0) return 0; + + t1 = - d / c; //equation devolved into: ct + d = 0 - solve... + }else + { + //0 roots = 0 intersections, 1 root = 2 intersections at the same place (0 effective) + if(quadratic_eqn(a,b,c,&t1,&t2) != 2) return 0; + } + }else + { + //cubic - sigh.... + + //algorithm courtesy of Numerical Recipes in C (algorithm copied from pg. 184/185) + Real an = b / a, + bn = c / a, + cn = d / a; + + //if cn is 0 (or really really close), then we can simplify this... + if(IsZero(cn)) + { + t3 = 0; + + //0 roots = 0 intersections, 1 root = 2 intersections at the same place (0 effective) + if(quadratic_eqn(a,b,c,&t1,&t2) != 2) + { + t1 = t2 = INVALIDROOT; + } + } + else + { + //otherwise run the normal cubic root equation + Real Q = (an*an - 3.0*bn) / 9.0; + Real R = ((2.0*an*an - 9.0*bn)*an + 27.0*cn)/54.0; + + if(R*R < Q*Q*Q) + { + Real theta = acos(R / sqrt(Q*Q*Q)); + + t1 = -2.0*sqrt(Q)*cos(theta/3) - an/3.0; + t2 = -2.0*sqrt(Q)*cos((theta+2*PI)/3.0) - an/3.0; + t3 = -2.0*sqrt(Q)*cos((theta-2*PI)/3.0) - an/3.0; + + //don't need to reorder,l just need to eliminate double/triple roots + //if(t3 == t2 && t1 == t2) t2 = t3 = INVALIDROOT; + if(t3 == t2) t2 = t3 = INVALIDROOT; + if(t1 == t2) t1 = t2 = INVALIDROOT; + if(t1 == t3) t1 = t3 = INVALIDROOT; + }else + { + Real signR = R < 0 ? -1 : 1; + Real A = - signR * pow(signR*R + sqrt(R*R - Q*Q*Q),1/3.0); + + Real B; + if(A == 0) B = 0; + else B = Q / A; + + //single real root in this case + t1 = (A + B) - an/3.0; + } + } + } + + //if(t1 != INVALIDROOT) + { + t = t1;//polish_cubicroot(a,b,c,d,t1,&dydt); + if(t >= 0 && t < 1) + { + //const Real invt = 1 - t; + + //find x val and it counts if it's to the left of the point + const Real xi = ((ax*t + bx)*t + cx)*t + dx; + dydt = (3*a*t + 2*b)*t + c; + + if(dydt) + { + intersects += (x >= xi) * ( dydt > 0 ? 1 : -1); + } + } + } + + //if(t2 != INVALIDROOT) + { + t = t2;//polish_cubicroot(a,b,c,d,t2,&dydt); + if(t >= 0 && t < 1) + { + //const Real invt = 1 - t; + + //find x val and it counts if it's to the left of the point + const Real xi = ((ax*t + bx)*t + cx)*t + dx; + dydt = (3*a*t + 2*b)*t + c; + + if(dydt) + { + intersects += (x >= xi) * ( dydt > 0 ? 1 : -1); + } + } + } + + //if(t3 != INVALIDROOT) + { + t = t3;//polish_cubicroot(a,b,c,d,t3,&dydt); + if(t >= 0 && t < 1) + { + //const Real invt = 1 - t; + + //find x val and it counts if it's to the left of the point + const Real xi = ((ax*t + bx)*t + cx)*t + dx; + dydt = (3*a*t + 2*b)*t + c; + + if(dydt) + { + intersects += (x >= xi) * ( dydt > 0 ? 1 : -1); + } + } + } + + return intersects; + } + + int intersect(Real x,Real y, Point *table) const + { + if((y < aabb.miny) || (y > aabb.maxy) || (x < aabb.minx)) return 0; + + int i, curdeg, intersects = 0; + const int numcurves = degrees.size(); + + vector::const_iterator p = pointlist.begin(); + + for(i=0; i < numcurves; i++) + { + curdeg = degrees[i]; + + switch(curdeg) + { + case 2: + { + table[0] = *p++; + table[1] = *p++; + table[2] = *p; //we want to include the last point for the next curve + + intersects += intersect_conic(x,y,table); + + break; + } + + case 3: + { + table[0] = *p++; + table[1] = *p++; + table[2] = *p++; + table[3] = *p; //we want to include the last point for the next curve + + intersects += intersect_cubic(x,y,table); + + break; + } + + default: + { + warning("Invalid degree (%d) inserted into the list (index: %d)\n", curdeg, i); + return 0; + } + } + } + + return intersects; + } +}; + +struct Layer_Shape::Intersector +{ + Rect aabb; + + //! true iff aabb hasn't been initialised yet + bool initaabb; + + int flags; + + enum IntersectorFlags + { + NotClosed = 0x8000 + }; + + enum PrimitiveType + { + TYPE_NONE = 0, + TYPE_LINE, + TYPE_CURVE + }; + + Real cur_x,cur_y; + Real close_x,close_y; + + vector segs; //monotonically increasing + vector curves; //big array of consecutive curves + + int prim; + Vector tangent; + + Intersector() + { + clear(); + } + + bool notclosed() + { + return (flags & NotClosed) || (cur_x != close_x) || (cur_y != close_y); + } + + void move_to(Real x, Real y) + { + close(); + + close_x = cur_x = x; + close_y = cur_y = y; + + tangent[0] = tangent[1] = 0; + + if(initaabb) + { + aabb.set_point(x,y); + initaabb = false; + }else aabb.expand(x,y); + + prim = TYPE_NONE; + } + + void line_to(Real x, Real y) + { + int dir = (y > cur_y)*1 + (-1)*(y < cur_y); + + //check for context (if not line start a new segment) + //if we're not in line mode (covers 0 set case), or if directions are different (not valid for 0 direction) + if(prim != TYPE_LINE || (dir && segs.back().ydir != dir)) + { + MonoSegment seg(dir,x,x,y,y); + + seg.aabb.expand(cur_x,cur_y); + seg.pointlist.push_back(Point(cur_x,cur_y)); + seg.pointlist.push_back(Point(x,y)); + segs.push_back(seg); + } + //add to the last segment, because it works + else + { + segs.back().pointlist.push_back(Point(x,y)); + segs.back().aabb.expand(x,y); + } + + + + cur_x = x; + cur_y = y; + aabb.expand(x,y); //expand the entire thing's bounding box + + tangent[0] = x - cur_x; + tangent[1] = x - cur_y; + + flags |= NotClosed; + prim = TYPE_LINE; + } + + void conic_to_smooth(Real x, Real y) + { + const Real x1 = tangent[0]/2.0 + cur_x; + const Real y1 = tangent[1]/2.0 + cur_y; + + conic_to(x1,y1,x,y); + } + + void conic_to(Real x1, Real y1, Real x, Real y) + { + //if we're not already a curve start one + if(prim != TYPE_CURVE) + { + CurveArray c; + + c.Start(Point(cur_x,cur_y)); + c.AddConic(Point(x1,y1),Point(x,y)); + + curves.push_back(c); + }else + { + curves.back().AddConic(Point(x1,y1),Point(x,y)); + } + + cur_x = x; + cur_y = y; + + aabb.expand(x1,y1); + aabb.expand(x,y); + + tangent[0] = 2*(x - x1); + tangent[1] = 2*(y - y1); + + flags |= NotClosed; + prim = TYPE_CURVE; + } + + void curve_to_smooth(Real x2, Real y2, Real x, Real y) + { + Real x1 = tangent[0]/3.0 + cur_x; + Real y1 = tangent[1]/3.0 + cur_y; + + curve_to(x1,y1,x2,y2,x,y); + } + + void curve_to(Real x1, Real y1, Real x2, Real y2, Real x, Real y) + { + //if we're not already a curve start one + if(prim != TYPE_CURVE) + { + CurveArray c; + + c.Start(Point(cur_x,cur_y)); + c.AddCubic(Point(x1,y1),Point(x2,y2),Point(x,y)); + + curves.push_back(c); + }else + { + curves.back().AddCubic(Point(x1,y1),Point(x2,y2),Point(x,y)); + } + + cur_x = x; + cur_y = y; + + //expand bounding box around ALL of it + aabb.expand(x1,y1); + aabb.expand(x2,y2); + aabb.expand(x,y); + + tangent[0] = 3*(x - x2); + tangent[1] = 3*(y - y2); + + flags |= NotClosed; + prim = TYPE_CURVE; + } + + void close() + { + if(flags & NotClosed) + { + if(cur_x != close_x || cur_y != close_y) + { + line_to(close_x,close_y); + } + + flags &= ~NotClosed; + } + } + + //assumes the line to count the intersections with is (-1,0) + int intersect (Real x, Real y) const + { + int inter = 0; + unsigned int i; + vector::const_iterator s = segs.begin(); + vector::const_iterator c = curves.begin(); + + Point memory[3*MAX_SUBDIVISION_SIZE + 1]; + + for(i = 0; i < segs.size(); i++,s++) + { + inter += s->intersect(x,y); + } + + for(i=0; i < curves.size(); i++,c++) + inter += c->intersect(x,y,memory); + + return inter; + } + + //intersect an arbitrary line + //int intersect (Real x, Real y, Real vx, Real vy) {return 0;} + + void clear() + { + segs.clear(); + curves.clear(); + + flags = 0; + cur_x = cur_y = close_x = close_y = 0; + prim = TYPE_NONE; + tangent[0] = tangent[1] = 0; + initaabb = true; + } +}; + +//*********** SCANLINE RENDERER SUPPORT STRUCTURES *************** +struct PenMark +{ + int y,x; + Real cover,area; + + PenMark(){} + PenMark(int xin, int yin, Real c, Real a) + :y(yin),x(xin),cover(c),area(a) {} + + void set(int xin, int yin, Real c, Real a) { y = yin; x = xin; cover = c; area = a; } + + void setcoord(int xin, int yin) { y = yin; x = xin; } + + void setcover(Real c, Real a) { cover = c; area = a; } + void addcover(Real c, Real a) { cover += c; area += a; } + + bool operator < (const PenMark &rhs) const + { + return y == rhs.y ? x < rhs.x : y < rhs.y; + } +}; + +typedef rect ContextRect; + +class Layer_Shape::PolySpan +{ +public: + typedef deque cover_array; + + Point arc[3*MAX_SUBDIVISION_SIZE + 1]; + + cover_array covers; + PenMark current; + + int open_index; + + //ending position of last primitive + Real cur_x; + Real cur_y; + + //starting position of current primitive list + Real close_x; + Real close_y; + + //flags for the current segment + int flags; + + //the window that will be drawn (used for clipping) + ContextRect window; + + //for assignment to flags value + enum PolySpanFlags + { + NotSorted = 0x8000, + NotClosed = 0x4000 + }; + + //default constructor - 0 everything + PolySpan() :current(0,0,0,0),flags(NotSorted) + { + cur_x = cur_y = close_x = close_y = 0; + open_index = 0; + } + + bool notclosed() const + { + return (flags & NotClosed) || (cur_x != close_x) || (cur_y != close_y); + } + + //0 out all the variables involved in processing + void clear() + { + covers.clear(); + cur_x = cur_y = close_x = close_y = 0; + open_index = 0; + current.set(0,0,0,0); + flags = NotSorted; + } + + //add the current cell, but only if there is information to add + void addcurrent() + { + if(current.cover || current.area) + { + covers.push_back(current); + } + } + + //move to the next cell (cover values 0 initially), keeping the current if necessary + void move_pen(int x, int y) + { + if(y != current.y || x != current.x) + { + addcurrent(); + current.set(x,y,0,0); + } + } + + //close the primitives with a line (or rendering will not work as expected) + void close() + { + if(flags & NotClosed) + { + if(cur_x != close_x || cur_y != close_y) + { + line_to(close_x,close_y); + addcurrent(); + current.setcover(0,0); + } + flags &= ~NotClosed; + } + } + + // Not recommended - destroys any separation of spans currently held + void merge_all() + { + sort(covers.begin(),covers.end()); + open_index = 0; + } + + //will sort the marks if they are not sorted + void sort_marks() + { + if(flags & NotSorted) + { + //only sort the open index + addcurrent(); + current.setcover(0,0); + + sort(covers.begin() + open_index,covers.end()); + flags &= ~NotSorted; + } + } + + //encapsulate the current sublist of marks (used for drawing) + void encapsulate_current() + { + //sort the current list then reposition the open list section + sort_marks(); + open_index = covers.size(); + } + + //move to start a new primitive list (enclose the last primitive if need be) + void move_to(Real x, Real y) + { + close(); + if(isnan(x))x=0; + if(isnan(y))y=0; + move_pen((int)floor(x),(int)floor(y)); + close_y = cur_y = y; + close_x = cur_x = x; + } + + //primitive_to functions + void line_to(Real x, Real y); + void conic_to(Real x1, Real y1, Real x, Real y); + void cubic_to(Real x1, Real y1, Real x2, Real y2, Real x, Real y); + + void draw_scanline(int y, Real x1, Real y1, Real x2, Real y2); + void draw_line(Real x1, Real y1, Real x2, Real y2); + + Real ExtractAlpha(Real area, WindingStyle winding_style) + { + if (area < 0) + area = -area; + + if (winding_style == WINDING_NON_ZERO) + { + // non-zero winding style + if (area > 1) + return 1; + } + else // if (winding_style == WINDING_EVEN_ODD) + { + // even-odd winding style + while (area > 1) + area -= 2; + + // want pyramid like thing + if (area < 0) + area = -area; + } + + return area; + } +}; + +/* === M E T H O D S ======================================================= */ + +Layer_Shape::Layer_Shape(const Real &a, const Color::BlendMethod m): + Layer_Composite (a,m), + edge_table (new Intersector), + color (Color::black()), + offset (0,0), + invert (false), + antialias (true), + blurtype (Blur::FASTGAUSSIAN), + feather (0), + winding_style (WINDING_NON_ZERO), + bytestream (0), + lastbyteop (Primitive::NONE), + lastoppos (-1) +{ +} + +Layer_Shape::~Layer_Shape() +{ + delete edge_table; +} + +void +Layer_Shape::clear() +{ + edge_table->clear(); + bytestream.clear(); +} + +bool +Layer_Shape::set_param(const String & param, const ValueBase &value) +{ + IMPORT(color); + IMPORT(offset); + IMPORT(invert); + IMPORT(antialias); + IMPORT(feather); + IMPORT(blurtype); + IMPORT(winding_style); + + return Layer_Composite::set_param(param,value); +} + +ValueBase +Layer_Shape::get_param(const String ¶m)const +{ + EXPORT(color); + EXPORT(offset); + EXPORT(invert); + EXPORT(antialias); + EXPORT(feather); + EXPORT(blurtype); + EXPORT(winding_style); + + EXPORT_NAME(); + EXPORT_VERSION(); + + return Layer_Composite::get_param(param); +} + +Layer::Vocab +Layer_Shape::get_param_vocab()const +{ + Layer::Vocab ret(Layer_Composite::get_param_vocab()); + + ret.push_back(ParamDesc("color") + .set_local_name(_("Color")) + .set_description(_("Layer_Shape Color")) + ); + ret.push_back(ParamDesc("offset") + .set_local_name(_("Position")) + ); + ret.push_back(ParamDesc("invert") + .set_local_name(_("Invert")) + ); + ret.push_back(ParamDesc("antialias") + .set_local_name(_("Antialiasing")) + ); + ret.push_back(ParamDesc("feather") + .set_local_name(_("Feather")) + .set_is_distance() + ); + ret.push_back(ParamDesc("blurtype") + .set_local_name(_("Type of Feather")) + .set_description(_("Type of feathering to use")) + .set_hint("enum") + .add_enum_value(Blur::BOX,"box",_("Box Blur")) + .add_enum_value(Blur::FASTGAUSSIAN,"fastgaussian",_("Fast Gaussian Blur")) + .add_enum_value(Blur::CROSS,"cross",_("Cross-Hatch Blur")) + .add_enum_value(Blur::GAUSSIAN,"gaussian",_("Gaussian Blur")) + .add_enum_value(Blur::DISC,"disc",_("Disc Blur")) + ); + ret.push_back(ParamDesc("winding_style") + .set_local_name(_("Winding Style")) + .set_description(_("Winding style to use")) + .set_hint("enum") + .add_enum_value(WINDING_NON_ZERO,"nonzero",_("Non Zero")) + .add_enum_value(WINDING_EVEN_ODD,"evenodd",_("Even/Odd")) + ); + + return ret; +} + +synfig::Layer::Handle +Layer_Shape::hit_check(synfig::Context context, const synfig::Point &p)const +{ + Point pos(p-offset); + + int intercepts = edge_table->intersect(pos[0],pos[1]); + + // If we have an odd number of intercepts, we are inside. + // If we have an even number of intercepts, we are outside. + bool intersect = ((!!intercepts) ^ invert); + + if(get_amount() == 0 || get_blend_method() == Color::BLEND_ALPHA_OVER) + { + intersect = false; + } + + if(intersect) + { + synfig::Layer::Handle tmp; + if(get_blend_method()==Color::BLEND_BEHIND && (tmp=context.hit_check(p))) + return tmp; + if(Color::is_onto(get_blend_method())) + { + //if there's something in the lower layer then we're set... + if(!context.hit_check(p).empty()) + return const_cast(this); + }else if(get_blend_method() == Color::BLEND_ALPHA_OVER) + { + synfig::info("layer_shape::hit_check - we've got alphaover"); + //if there's something in the lower layer then we're set... + if(color.get_a() < 0.1 && get_amount() > .9) + { + synfig::info("layer_shape::hit_check - can see through us... so nothing"); + return Handle(); + }else return context.hit_check(p); + }else + return const_cast(this); + } + + return context.hit_check(p); +} + +Color +Layer_Shape::get_color(Context context, const Point &p)const +{ + Point pp = p; + + if(feather) + pp = Blur(feather,feather,blurtype)(p); + + Point pos(pp-offset); + + int intercepts = edge_table->intersect(pos[0],pos[1]); + + // If we have an odd number of intercepts, we are inside. + // If we have an even number of intercepts, we are outside. + bool intersect = ((!!intercepts) ^ invert); + + if(!intersect) + return context.get_color(pp); + + //Ok, we're inside... bummmm ba bum buM... + if(get_blend_method() == Color::BLEND_STRAIGHT && get_amount() == 1) + return color; + else + return Color::blend(color,context.get_color(p),get_amount(),get_blend_method()); +} + +//************** SCANLINE RENDERING ********************* +void Layer_Shape::PolySpan::line_to(Real x, Real y) +{ + Real n[4]; + bool afterx = false; + + const Real xin(x), yin(y); + + Real dx = x - cur_x; + Real dy = y - cur_y; + + //CLIP IT!!!! + try { + //outside y - ignore entirely + if( (cur_y >= window.maxy && y >= window.maxy) + ||(cur_y < window.miny && y < window.miny) ) + { + cur_x = x; + cur_y = y; + } + else //not degenerate - more complicated + { + if(dy > 0) //be sure it's not tooooo small + { + // cur_y ... window.miny ... window.maxy ... y + + //initial degenerate - initial clip + if(cur_y < window.miny) + { + //new clipped start point (must also move pen) + n[2] = cur_x + (window.miny - cur_y) * dx / dy; + + cur_x = n[2]; + cur_y = window.miny; + move_pen((int)floor(cur_x),window.miny); + } + + //generate data for the ending clipped info + if(y > window.maxy) + { + //intial line to intersection (and degenerate) + n[2] = x + (window.maxy - y) * dx / dy; + + //intersect coords + x = n[2]; + y = window.maxy; + } + } + else + { + //initial degenerate - initial clip + if(cur_y > window.maxy) + { + //new clipped start point (must also move pen) + n[2] = cur_x + (window.maxy - cur_y) * dx / dy; + + cur_x = n[2]; + cur_y = window.maxy; + move_pen((int)floor(cur_x),window.maxy); + } + + //generate data for the ending clipped info + if(y < window.miny) + { + //intial line to intersection (and degenerate) + n[2] = x + (window.miny - y) * dx / dy; + + //intersect coords + x = n[2]; + y = window.miny; + } + } + + //all degenerate - but require bounded clipped values + if( (cur_x >= window.maxx && x >= window.maxx) + ||(cur_x < window.minx && x < window.minx) ) + { + //clip both vertices - but only needed in the x direction + cur_x = max(cur_x, (Real)window.minx); + cur_x = min(cur_x, (Real)window.maxx); + + //clip the dest values - y is already clipped + x = max(x,(Real)window.minx); + x = min(x,(Real)window.maxx); + + //must start at new point... + move_pen((int)floor(cur_x),(int)floor(cur_y)); + + draw_line(cur_x,cur_y,x,y); + + cur_x = xin; + cur_y = yin; + } + else + { + //clip x + if(dx > 0) + { + //initial degenerate - initial clip + if(cur_x < window.minx) + { + //need to draw an initial segment from clippedx,cur_y to clippedx,intersecty + n[2] = cur_y + (window.minx - cur_x) * dy / dx; + + move_pen(window.minx,(int)floor(cur_y)); + draw_line(window.minx,cur_y,window.minx,n[2]); + + cur_x = window.minx; + cur_y = n[2]; + } + + //generate data for the ending clipped info + if(x > window.maxx) + { + //intial line to intersection (and degenerate) + n[2] = y + (window.maxx - x) * dy / dx; + + n[0] = window.maxx; + n[1] = y; + + //intersect coords + x = window.maxx; + y = n[2]; + afterx = true; + } + }else + { + //initial degenerate - initial clip + if(cur_x > window.maxx) + { + //need to draw an initial segment from clippedx,cur_y to clippedx,intersecty + n[2] = cur_y + (window.maxx - cur_x) * dy / dx; + + move_pen(window.maxx,(int)floor(cur_y)); + draw_line(window.maxx,cur_y,window.maxx,n[2]); + + cur_x = window.maxx; + cur_y = n[2]; + } + + //generate data for the ending clipped info + if(x < window.minx) + { + //intial line to intersection (and degenerate) + n[2] = y + (window.minx - x) * dy / dx; + + n[0] = window.minx; + n[1] = y; + + //intersect coords + x = window.minx; + y = n[2]; + afterx = true; + } + } + + move_pen((int)floor(cur_x),(int)floor(cur_y)); + //draw the relevant line (clipped) + draw_line(cur_x,cur_y,x,y); + + if(afterx) + { + draw_line(x,y,n[0],n[1]); + } + + cur_x = xin; + cur_y = yin; + } + } + } catch(...) { synfig::error("line_to: cur_x=%f, cur_y=%f, x=%f, y=%f", cur_x, cur_y, x, y); throw; } + + flags |= NotClosed|NotSorted; +} + +static inline bool clip_conic(const Point *const p, const ContextRect &r) +{ + const Real minx = min(min(p[0][0],p[1][0]),p[2][0]); + const Real miny = min(min(p[0][1],p[1][1]),p[2][1]); + const Real maxx = max(max(p[0][0],p[1][0]),p[2][0]); + const Real maxy = max(max(p[0][1],p[1][1]),p[2][1]); + + return (minx > r.maxx) || + (maxx < r.minx) || + (miny > r.maxy) || + (maxy < r.miny); +} + +static inline bool clip_cubic(const Point *const p, const ContextRect &r) +{ + /*const Real minx = min(min(p[0][0],p[1][0]),min(p[2][0],p[3][0])); + const Real miny = min(min(p[0][1],p[1][1]),min(p[2][1],p[3][1])); + const Real maxx = max(max(p[0][0],p[1][0]),max(p[2][0],p[3][1])); + const Real maxy = max(max(p[0][1],p[1][1]),max(p[2][1],p[3][1])); + + return (minx > r.maxx) || + (maxx < r.minx) || + (miny > r.maxy) || + (maxy < r.miny);*/ + + return ((p[0][0] > r.maxx) && (p[1][0] > r.maxx) && (p[2][0] > r.maxx) && (p[3][0] > r.maxx)) || + ((p[0][0] < r.minx) && (p[1][0] < r.minx) && (p[2][0] < r.minx) && (p[3][0] < r.minx)) || + ((p[0][1] > r.maxy) && (p[1][1] > r.maxy) && (p[2][1] > r.maxy) && (p[3][1] > r.maxy)) || + ((p[0][1] < r.miny) && (p[1][1] < r.miny) && (p[2][1] < r.miny) && (p[3][1] < r.miny)); +} + +static inline Real max_edges_cubic(const Point *const p) +{ + const Real x1 = p[1][0] - p[0][0]; + const Real y1 = p[1][1] - p[0][1]; + + const Real x2 = p[2][0] - p[1][0]; + const Real y2 = p[2][1] - p[1][1]; + + const Real x3 = p[3][0] - p[2][0]; + const Real y3 = p[3][1] - p[2][1]; + + const Real d1 = x1*x1 + y1*y1; + const Real d2 = x2*x2 + y2*y2; + const Real d3 = x3*x3 + y3*y3; + + return max(max(d1,d2),d3); +} + +static inline Real max_edges_conic(const Point *const p) +{ + const Real x1 = p[1][0] - p[0][0]; + const Real y1 = p[1][1] - p[0][1]; + + const Real x2 = p[2][0] - p[1][0]; + const Real y2 = p[2][1] - p[1][1]; + + const Real d1 = x1*x1 + y1*y1; + const Real d2 = x2*x2 + y2*y2; + + return max(d1,d2); +} + +void Layer_Shape::PolySpan::conic_to(Real x1, Real y1, Real x, Real y) +{ + Point *current = arc; + int level = 0; + int num = 0; + bool onsecond = false; + + arc[0] = Point(x,y); + arc[1] = Point(x1,y1); + arc[2] = Point(cur_x,cur_y); + + //just draw the line if it's outside + if(clip_conic(arc,window)) + { + line_to(x,y); + return; + } + + //Ok so it's not super degenerate, subdivide and draw (run through minimum subdivision levels first) + while(current >= arc) + { + if(num >= MAX_SUBDIVISION_SIZE) + { + warning("Curve subdivision somehow ran out of space while tesselating!"); + + //do something... + assert(0); + return; + }else + //if the curve is clipping then draw degenerate + if(clip_conic(current,window)) + { + line_to(current[0][0],current[0][1]); //backwards so front is destination + current -= 2; + if(onsecond) level--; + onsecond = true; + num--; + continue; + }else + //if we are not at the level minimum + if(level < MIN_SUBDIVISION_DRAW_LEVELS) + { + Subd_Conic_Stack(current); + current += 2; //cursor on second curve + level ++; + num ++; + onsecond = false; + continue; + }else + //split it again, if it's too big + if(max_edges_conic(current) > 0.25) //distance of .5 (cover no more than half the pixel) + { + Subd_Conic_Stack(current); + current += 2; //cursor on second curve + level ++; + num ++; + onsecond = false; + } + else //NOT TOO BIG? RENDER!!! + { + //cur_x,cur_y = current[2], so we need to go 1,0 + line_to(current[1][0],current[1][1]); + line_to(current[0][0],current[0][1]); + + current -= 2; + if(onsecond) level--; + num--; + onsecond = true; + } + } +} + +void Layer_Shape::PolySpan::cubic_to(Real x1, Real y1, Real x2, Real y2, Real x, Real y) +{ + Point *current = arc; + int num = 0; + int level = 0; + bool onsecond = false; + + arc[0] = Point(x,y); + arc[1] = Point(x2,y2); + arc[2] = Point(x1,y1); + arc[3] = Point(cur_x,cur_y); + + //just draw the line if it's outside + if(clip_cubic(arc,window)) + { + line_to(x,y); + return; + } + + //Ok so it's not super degenerate, subdivide and draw (run through minimum subdivision levels first) + while(current >= arc) //once current goes below arc, there are no more curves left + { + if(num >= MAX_SUBDIVISION_SIZE) + { + warning("Curve subdivision somehow ran out of space while tesselating!"); + + //do something... + assert(0); + return; + }else + + //if we are not at the level minimum + if(level < MIN_SUBDIVISION_DRAW_LEVELS) + { + Subd_Cubic_Stack(current); + current += 3; //cursor on second curve + level ++; + num ++; + onsecond = false; + continue; + }else + //if the curve is clipping then draw degenerate + if(clip_cubic(current,window)) + { + line_to(current[0][0],current[0][1]); //backwards so front is destination + current -= 3; + if(onsecond) level--; + onsecond = true; + num --; + continue; + } + else + //split it again, if it's too big + if(max_edges_cubic(current) > 0.25) //could use max_edges<3> + { + Subd_Cubic_Stack(current); + current += 3; //cursor on second curve + level ++; + num ++; + onsecond = false; + } + else //NOT TOO BIG? RENDER!!! + { + //cur_x,cur_y = current[3], so we need to go 2,1,0 + line_to(current[2][0],current[2][1]); + line_to(current[1][0],current[1][1]); + line_to(current[0][0],current[0][1]); + + current -= 3; + if(onsecond) level--; + num --; + onsecond = true; + } + } +} + +//******************** LINE ALGORITHMS **************************** +// THESE CALCULATE THE AREA AND THE COVER FOR THE MARKS, TO THEN SCAN CONVERT +// - BROKEN UP INTO SCANLINES (draw_line - y intersections), +// THEN THE COVER AND AREA PER TOUCHED PIXEL IS CALCULATED (draw_scanline - x intersections) +void Layer_Shape::PolySpan::draw_scanline(int y, Real x1, Real fy1, Real x2, Real fy2) +{ + int ix1 = (int)floor(x1); + int ix2 = (int)floor(x2); + Real fx1 = x1 - ix1; + Real fx2 = x2 - ix2; + + Real dx,dy,dydx,mult; + + dx = x2 - x1; + dy = fy2 - fy1; + + //case horizontal line + if(fy1 == fy2) + { + move_pen(ix2,y); //pen needs to be at the last coord + return; + } + + //case all in same pixel + if(ix1 == ix2) //impossible for degenerate case (covered by the previous cases) + { + current.addcover(dy,(fx1 + fx2)*dy/2); //horizontal trapazoid area + return; + } + + if(dx > 0) + { + // ----> fx1...1 0...1 ... 0...1 0...fx2 + dydx = dy / dx; + + //set initial values + //Iterate through the covered pixels + mult = (1 - fx1)*dydx; //next y intersection diff value (at 1) + + //first pixel + current.addcover(mult,(1 + fx1)*mult/2); // fx1,fy1,1,fy@1 - starting trapazoidal area + + //move to the next pixel + fy1 += mult; + ix1++; + + move_pen(ix1,y); + + //set up for whole ones + while(ix1 != ix2) + { + //trapezoid(0,y1,1,y1+dydx); + current.addcover(dydx,dydx/2); //accumulated area 1/2 the cover + + //move to next pixel (+1) + ix1++; + fy1 += dydx; + move_pen(ix1,y); + } + + //last pixel + //final y-pos - last intersect pos + mult = fx2 * dydx; + current.addcover(mult,(0+fx2)*mult/2); + }else + { + // fx2...1 0...1 ... 0...1 0...fx1 <---- + //mult = (0 - fx1) * dy / dx; + //neg sign sucked into dydx + dydx = -dy / dx; + + //set initial values + //Iterate through the covered pixels + mult = fx1*dydx; //next y intersection diff value + + //first pixel + current.addcover(mult,fx1*mult/2); // fx1,fy1,0,fy@0 - starting trapazoidal area + + //move to next pixel + fy1 += mult; + ix1--; + + move_pen(ix1,y); + + //set up for whole ones + while(ix1 != ix2) + { + //trapezoid(0,y1,1,y1+dydx); + current.addcover(dydx,dydx/2); //accumulated area 1/2 the cover + + //move to next pixel (-1) + fy1 += dydx; + ix1--; + move_pen(ix1,y); + } + + //last pixel + mult = fy2 - fy1; //final y-pos - last intersect pos + + current.addcover(mult,(fx2+1)*mult/2); + } +} + +void Layer_Shape::PolySpan::draw_line(Real x1, Real y1, Real x2, Real y2) +{ + int iy1 = (int)floor(y1); + int iy2 = (int)floor(y2); + Real fy1 = y1 - iy1; + Real fy2 = y2 - iy2; + + assert(!isnan(fy1)); + assert(!isnan(fy2)); + + Real dx,dy,dxdy,mult,x_from,x_to; + + const Real SLOPE_EPSILON = 1e-10; + + //case all one scanline + if(iy1 == iy2) + { + draw_scanline(iy1,x1,y1,x2,y2); + return; + } + + //difference values + dy = y2 - y1; + dx = x2 - x1; + + //case vertical line + if(dx < SLOPE_EPSILON && dx > -SLOPE_EPSILON) + { + //calc area and cover on vertical line + if(dy > 0) + { + // ----> fx1...1 0...1 ... 0...1 0...fx2 + Real sub; + + int ix1 = (int)floor(x1); + Real fx1 = x1 - ix1; + + //current pixel + sub = 1 - fy1; + + current.addcover(sub,fx1*sub); + + //next pixel + iy1++; + + //move pen to next pixel + move_pen(ix1,iy1); + + while(iy1 != iy2) + { + //accumulate cover + current.addcover(1,fx1); + + //next pixel + iy1++; + move_pen(ix1,iy1); + } + + //last pixel + current.addcover(fy2,fy2*fx1); + }else + { + Real sub; + + int ix1 = (int)floor(x1); + Real fx1 = x1 - ix1; + + //current pixel + sub = 0 - fy1; + + current.addcover(sub,fx1*sub); + + //next pixel + iy1--; + + move_pen(ix1,iy1); + + while(iy1 != iy2) + { + //accumulate in current pixel + current.addcover(-1,-fx1); + + //move to next + iy1--; + move_pen(ix1,iy1); + } + + current.addcover(fy2-1,(fy2-1)*fx1); + } + return; + } + + //case normal line - guaranteed dx != 0 && dy != 0 + + //calculate the initial intersection with "next" scanline + if(dy > 0) + { + dxdy = dx / dy; + + mult = (1 - fy1) * dxdy; + + //x interset scanline + x_from = x1 + mult; + draw_scanline(iy1,x1,fy1,x_from,1); + + //move to next line + iy1++; + + move_pen((int)floor(x_from),iy1); + + while(iy1 != iy2) + { + //keep up on the x axis, and render the current scanline + x_to = x_from + dxdy; + draw_scanline(iy1,x_from,0,x_to,1); + x_from = x_to; + + //move to next pixel + iy1++; + move_pen((int)floor(x_from),iy1); + } + + //draw the last one, fractional + draw_scanline(iy2,x_from,0,x2,fy2); + + }else + { + dxdy = -dx / dy; + + mult = fy1 * dxdy; + + //x interset scanline + x_from = x1 + mult; + draw_scanline(iy1,x1,fy1,x_from,0); + + //each line after + iy1--; + + move_pen((int)floor(x_from),iy1); + + while(iy1 != iy2) + { + x_to = x_from + dxdy; + draw_scanline(iy1,x_from,1,x_to,0); + x_from = x_to; + + iy1--; + move_pen((int)floor(x_from),iy1); + } + //draw the last one, fractional + draw_scanline(iy2,x_from,1,x2,fy2); + } +} + +//****** LAYER PEN OPERATIONS (move_to, line_to, etc.) ****** +void Layer_Shape::move_to(Real x, Real y) +{ + //const int sizeblock = sizeof(Primitive)+sizeof(Point); + Primitive op; + Point p(x,y); + + op.operation = Primitive::MOVE_TO; + op.number = 1; //one point for now + + if(lastbyteop == Primitive::MOVE_TO) + { + char *ptr = &bytestream[lastoppos]; + memcpy(ptr,&op,sizeof(op)); + memcpy(ptr+sizeof(op),&p,sizeof(p)); + } + else //make a new op + { + lastbyteop = Primitive::MOVE_TO; + lastoppos = bytestream.size(); + + bytestream.insert(bytestream.end(),(char*)&op,(char*)(&op+1)); //insert the bytes for the header + bytestream.insert(bytestream.end(),(char*)&p,(char*)(&p+1)); //insert the bytes for data + } + + edge_table->move_to(x,y); +} + +void Layer_Shape::close() +{ + Primitive op; + + op.operation = Primitive::CLOSE; + op.number = 0; + + if(lastbyteop == Primitive::CLOSE) + { + }else + { + lastbyteop = Primitive::CLOSE; + lastoppos = bytestream.size(); + + bytestream.insert(bytestream.end(),(char*)&op,(char*)(&op+1)); //insert header + } + + edge_table->close(); + //should not affect the bounding box since it would just be returning to old point... +} + +void Layer_Shape::endpath() +{ + Primitive op; + + op.operation = Primitive::END; + op.number = 0; + + if(lastbyteop == Primitive::END || lastbyteop == Primitive::NONE) + { + }else + { + bytestream.insert(bytestream.end(),(char*)&op,(char*)(&op+1)); + } + //should not affect the bounding box since it would just be returning to old point... if at all +} + +void Layer_Shape::line_to(Real x, Real y) +{ + assert(!isnan(x)); + assert(!isnan(y)); + + //const int sizeblock = sizeof(Primitive)+sizeof(Point); + Primitive op; + Point p(x,y); + + op.operation = Primitive::LINE_TO; + op.number = 1; //one point for now + + if(lastbyteop == Primitive::MOVE_TO || lastbyteop == Primitive::LINE_TO) + { + //only need to insert the point + bytestream.insert(bytestream.end(),(char*)&p,(char*)(&p+1)); + + Primitive * prim = (Primitive *)&bytestream[lastoppos]; + prim->number++; //increment number of points in the list + }else + { + lastbyteop = Primitive::LINE_TO; + lastoppos = bytestream.size(); + + bytestream.insert(bytestream.end(),(char*)&op,(char*)(&op+1)); //insert the bytes for the header + bytestream.insert(bytestream.end(),(char*)&p,(char*)(&p+1)); //insert the bytes for data + } + + edge_table->line_to(x,y); +} + +void Layer_Shape::conic_to(Real x1, Real y1, Real x, Real y) +{ + //const int sizeblock = sizeof(Primitive)+sizeof(Point)*2; + Primitive op; + Point p(x,y); + Point p1(x1,y1); + + op.operation = Primitive::CONIC_TO; + op.number = 2; //2 points for now + + if(lastbyteop == Primitive::CONIC_TO) + { + //only need to insert the new points + bytestream.insert(bytestream.end(),(char*)&p1,(char*)(&p1+1)); + bytestream.insert(bytestream.end(),(char*)&p,(char*)(&p+1)); + + Primitive * prim = (Primitive *)&bytestream[lastoppos]; + prim->number += 2; //increment number of points in the list + }else + { + lastbyteop = Primitive::CONIC_TO; + lastoppos = bytestream.size(); + + bytestream.insert(bytestream.end(),(char*)&op,(char*)(&op+1)); //insert the bytes for the header + bytestream.insert(bytestream.end(),(char*)&p1,(char*)(&p1+1)); //insert the bytes for data + bytestream.insert(bytestream.end(),(char*)&p,(char*)(&p+1)); //insert the bytes for data + } + + edge_table->conic_to(x1,y1,x,y); +} + +void Layer_Shape::conic_to_smooth(Real x, Real y) //x1,y1 derived from current tangent +{ + //const int sizeblock = sizeof(Primitive)+sizeof(Point); + Primitive op; + Point p(x,y); + + op.operation = Primitive::CONIC_TO_SMOOTH; + op.number = 1; //2 points for now + + if(lastbyteop == Primitive::CONIC_TO_SMOOTH) + { + //only need to insert the new point + bytestream.insert(bytestream.end(),(char*)&p,(char*)(&p+1)); + + Primitive * prim = (Primitive *)&bytestream[lastoppos]; + prim->number += 1; //increment number of points in the list + }else + { + lastbyteop = Primitive::CONIC_TO_SMOOTH; + lastoppos = bytestream.size(); + + bytestream.insert(bytestream.end(),(char*)&op,(char*)(&op+1)); //insert the bytes for the header + bytestream.insert(bytestream.end(),(char*)&p,(char*)(&p+1)); //insert the bytes for data + } + + edge_table->conic_to_smooth(x,y); +} + +void Layer_Shape::curve_to(Real x1, Real y1, Real x2, Real y2, Real x, Real y) +{ + //const int sizeblock = sizeof(Primitive)+sizeof(Point)*3; + Primitive op; + Point p(x,y); + Point p1(x1,y1); + Point p2(x2,y2); + + op.operation = Primitive::CUBIC_TO; + op.number = 3; //3 points for now + + if(lastbyteop == Primitive::CUBIC_TO) + { + //only need to insert the new points + bytestream.insert(bytestream.end(),(char*)&p1,(char*)(&p1+1)); + bytestream.insert(bytestream.end(),(char*)&p2,(char*)(&p2+1)); + bytestream.insert(bytestream.end(),(char*)&p,(char*)(&p+1)); + + Primitive * prim = (Primitive *)&bytestream[lastoppos]; + prim->number += 3; //increment number of points in the list + }else + { + lastbyteop = Primitive::CUBIC_TO; + lastoppos = bytestream.size(); + + bytestream.insert(bytestream.end(),(char*)&op,(char*)(&op+1)); //insert the bytes for the header + bytestream.insert(bytestream.end(),(char*)&p1,(char*)(&p1+1)); //insert the bytes for data + bytestream.insert(bytestream.end(),(char*)&p2,(char*)(&p2+1)); //insert the bytes for data + bytestream.insert(bytestream.end(),(char*)&p,(char*)(&p+1)); //insert the bytes for data + } + + edge_table->curve_to(x1,y1,x2,y2,x,y); +} + +void Layer_Shape::curve_to_smooth(Real x2, Real y2, Real x, Real y) //x1,y1 derived from current tangent +{ + //const int sizeblock = sizeof(Primitive)+sizeof(Point)*3; + Primitive op; + Point p(x,y); + Point p2(x2,y2); + + op.operation = Primitive::CUBIC_TO_SMOOTH; + op.number = 2; //3 points for now + + if(lastbyteop == Primitive::CUBIC_TO_SMOOTH) + { + //only need to insert the new points + bytestream.insert(bytestream.end(),(char*)&p2,(char*)(&p2+1)); + bytestream.insert(bytestream.end(),(char*)&p,(char*)(&p+1)); + + Primitive * prim = (Primitive *)&bytestream[lastoppos]; + prim->number += 2; //increment number of points in the list + }else + { + lastbyteop = Primitive::CUBIC_TO_SMOOTH; + lastoppos = bytestream.size(); + + bytestream.insert(bytestream.end(),(char*)&op,(char*)(&op+1)); //insert the bytes for the header + bytestream.insert(bytestream.end(),(char*)&p2,(char*)(&p2+1)); //insert the bytes for data + bytestream.insert(bytestream.end(),(char*)&p,(char*)(&p+1)); //insert the bytes for data + } +} + +// ACCELERATED RENDER FUNCTION - TRANSLATE BYTE CODE INTO FUNCTION CALLS + +bool Layer_Shape::render_polyspan(Surface *surface, PolySpan &polyspan, + Color::BlendMethod got_blend_method, Color::value_type got_amount) const +{ + Surface::alpha_pen p(surface->begin(),got_amount,_BlendFunc(got_blend_method)); + PolySpan::cover_array::iterator cur_mark = polyspan.covers.begin(); + PolySpan::cover_array::iterator end_mark = polyspan.covers.end(); + + Real cover,area,alpha; + + int y,x; + + p.set_value(color); + cover = 0; + + if(cur_mark == end_mark) + { + //no marks at all + if(invert) + { + p.move_to(polyspan.window.minx,polyspan.window.miny); + p.put_block(polyspan.window.maxy - polyspan.window.miny,polyspan.window.maxx - polyspan.window.minx); + } + return true; + } + + //fill initial rect / line + if(invert) + { + //fill all the area above the first vertex + p.move_to(polyspan.window.minx,polyspan.window.miny); + y = polyspan.window.miny; + int l = polyspan.window.maxx - polyspan.window.minx; + + p.put_block(cur_mark->y - polyspan.window.miny,l); + + //fill the area to the left of the first vertex on that line + l = cur_mark->x - polyspan.window.minx; + p.move_to(polyspan.window.minx,cur_mark->y); + if(l) p.put_hline(l); + } + + for(;;) + { + y = cur_mark->y; + x = cur_mark->x; + + p.move_to(x,y); + + area = cur_mark->area; + cover += cur_mark->cover; + + //accumulate for the current pixel + while(++cur_mark != polyspan.covers.end()) + { + if(y != cur_mark->y || x != cur_mark->x) + break; + + area += cur_mark->area; + cover += cur_mark->cover; + } + + //draw pixel - based on covered area + if(area) //if we're ok, draw the current pixel + { + alpha = polyspan.ExtractAlpha(cover - area, winding_style); + if(invert) alpha = 1 - alpha; + + if(!antialias) + { + if(alpha >= .5) p.put_value(); + } + else if(alpha) p.put_value_alpha(alpha); + + p.inc_x(); + x++; + } + + //if we're done, don't use iterator and exit + if(cur_mark == end_mark) break; + + //if there is no more live pixels on this line, goto next + if(y != cur_mark->y) + { + if(invert) + { + //fill the area at the end of the line + p.put_hline(polyspan.window.maxx - x); + + //fill area at the beginning of the next line + p.move_to(polyspan.window.minx,cur_mark->y); + p.put_hline(cur_mark->x - polyspan.window.minx); + } + + cover = 0; + + continue; + } + + //draw span to next pixel - based on total amount of pixel cover + if(x < cur_mark->x) + { + alpha = polyspan.ExtractAlpha(cover, winding_style); + if(invert) alpha = 1 - alpha; + + if(!antialias) + { + if(alpha >= .5) p.put_hline(cur_mark->x - x); + } + else if(alpha) p.put_hline(cur_mark->x - x,alpha); + } + } + + //fill the after stuff + if(invert) + { + //fill the area at the end of the line + p.put_hline(polyspan.window.maxx - x); + + //fill area at the beginning of the next line + p.move_to(polyspan.window.minx,y+1); + p.put_block(polyspan.window.maxy - y - 1,polyspan.window.maxx - polyspan.window.minx); + } + + return true; +} + +bool Layer_Shape::render_polyspan(etl::surface *surface, PolySpan &polyspan) const +{ + etl::surface::pen p(surface->begin()); + PolySpan::cover_array::iterator cur_mark = polyspan.covers.begin(); + PolySpan::cover_array::iterator end_mark = polyspan.covers.end(); + + Real cover,area,alpha; + + int y,x; + + cover = 0; + + //the pen always writes 1 (unless told to do otherwise) + p.set_value(1); + + if(cur_mark == end_mark) + { + //no marks at all + if(invert) + { + p.move_to(polyspan.window.minx,polyspan.window.miny); + p.put_block(polyspan.window.maxy - polyspan.window.miny,polyspan.window.maxx - polyspan.window.minx); + } + return true; + } + + //fill initial rect / line + if(invert) + { + //fill all the area above the first vertex + p.move_to(polyspan.window.minx,polyspan.window.miny); + y = polyspan.window.miny; + int l = polyspan.window.maxx - polyspan.window.minx; + + p.put_block(cur_mark->y - polyspan.window.miny,l); + + //fill the area to the left of the first vertex on that line + l = cur_mark->x - polyspan.window.minx; + p.move_to(polyspan.window.minx,cur_mark->y); + if(l) p.put_hline(l); + + for(;;) + { + y = cur_mark->y; + x = cur_mark->x; + + p.move_to(x,y); + + area = cur_mark->area; + cover += cur_mark->cover; + + //accumulate for the current pixel + while(++cur_mark != polyspan.covers.end()) + { + if(y != cur_mark->y || x != cur_mark->x) + break; + + area += cur_mark->area; + cover += cur_mark->cover; + } + + //draw pixel - based on covered area + if(area) //if we're ok, draw the current pixel + { + alpha = 1 - polyspan.ExtractAlpha(cover - area, winding_style); + if(!antialias) + { + if(alpha >= .5) p.put_value(); + } + else if(alpha) p.put_value(alpha); + + p.inc_x(); + x++; + } + + //if we're done, don't use iterator and exit + if(cur_mark == end_mark) break; + + //if there is no more live pixels on this line, goto next + if(y != cur_mark->y) + { + //fill the area at the end of the line + p.put_hline(polyspan.window.maxx - x); + + //fill area at the beginning of the next line + p.move_to(polyspan.window.minx,cur_mark->y); + p.put_hline(cur_mark->x - polyspan.window.minx); + + cover = 0; + + continue; + } + + //draw span to next pixel - based on total amount of pixel cover + if(x < cur_mark->x) + { + alpha = 1 - polyspan.ExtractAlpha(cover, winding_style); + if(!antialias) + { + if(alpha >= .5) p.put_hline(cur_mark->x - x); + } + else if(alpha) p.put_hline(cur_mark->x - x,alpha); + } + } + + //fill the area at the end of the line + p.put_hline(polyspan.window.maxx - x); + + //fill area at the beginning of the next line + p.move_to(polyspan.window.minx,y+1); + p.put_block(polyspan.window.maxy - y - 1,polyspan.window.maxx - polyspan.window.minx); + }else + { + for(;;) + { + y = cur_mark->y; + x = cur_mark->x; + + p.move_to(x,y); + + area = cur_mark->area; + cover += cur_mark->cover; + + //accumulate for the current pixel + while(++cur_mark != polyspan.covers.end()) + { + if(y != cur_mark->y || x != cur_mark->x) + break; + + area += cur_mark->area; + cover += cur_mark->cover; + } + + //draw pixel - based on covered area + if(area) //if we're ok, draw the current pixel + { + alpha = polyspan.ExtractAlpha(cover - area, winding_style); + if(!antialias) + { + if(alpha >= .5) p.put_value(); + } + else if(alpha) p.put_value(alpha); + + p.inc_x(); + x++; + } + + //if we're done, don't use iterator and exit + if(cur_mark == end_mark) break; + + //if there is no more live pixels on this line, goto next + if(y != cur_mark->y) + { + cover = 0; + + continue; + } + + //draw span to next pixel - based on total amount of pixel cover + if(x < cur_mark->x) + { + alpha = polyspan.ExtractAlpha(cover, winding_style); + if(!antialias) + { + if(alpha >= .5) p.put_hline(cur_mark->x - x); + } + else if(alpha) p.put_hline(cur_mark->x - x,alpha); + } + } + } + + return true; +} + +bool +Layer_Shape::accelerated_render(Context context,Surface *surface,int quality, const RendDesc &renddesc, ProgressCallback *cb)const +{ + const unsigned int w = renddesc.get_w(); + const unsigned int h = renddesc.get_h(); + + const Real pw = abs(renddesc.get_pw()); + const Real ph = abs(renddesc.get_ph()); + + //const Real OFFSET_EPSILON = 1e-8; + SuperCallback stageone(cb,1,10000,15001+renddesc.get_h()); + SuperCallback stagetwo(cb,10000,10001+renddesc.get_h(),15001+renddesc.get_h()); + SuperCallback stagethree(cb,10001+renddesc.get_h(),15001+renddesc.get_h(),15001+renddesc.get_h()); + + // Render what is behind us + + //clip if it satisfies the invert solid thing + if(is_solid_color() && invert) + { + Rect aabb = edge_table->aabb; + Point tl = renddesc.get_tl() - offset; + + Real pw = renddesc.get_pw(), + ph = renddesc.get_ph(); + + Rect nrect; + + Real pixelfeatherx = abs(feather/pw), + pixelfeathery = abs(feather/ph); + + nrect.set_point((aabb.minx - tl[0])/pw,(aabb.miny - tl[1])/ph); + nrect.expand((aabb.maxx - tl[0])/pw,(aabb.maxy - tl[1])/ph); + + RendDesc optdesc(renddesc); + + //make sure to expand so we gain subpixels rather than lose them + nrect.minx = floor(nrect.minx-pixelfeatherx); nrect.miny = floor(nrect.miny-pixelfeathery); + nrect.maxx = ceil(nrect.maxx+pixelfeatherx); nrect.maxy = ceil(nrect.maxy+pixelfeathery); + + //make sure the subwindow is clipped with our tile window (minimize useless drawing) + set_intersect(nrect,nrect,Rect(0,0,renddesc.get_w(),renddesc.get_h())); + + //must resize the surface first + surface->set_wh(renddesc.get_w(),renddesc.get_h()); + surface->clear(); + + //only render anything if it's visible from our current tile + if(nrect.valid()) + { + //set the subwindow to the viewable pixels and render it to the subsurface + optdesc.set_subwindow((int)nrect.minx, (int)nrect.miny, + (int)(nrect.maxx - nrect.minx), (int)(nrect.maxy - nrect.miny)); + + Surface optimizedbacksurf; + if(!context.accelerated_render(&optimizedbacksurf,quality,optdesc,&stageone)) + return false; + + //blit that onto the original surface so we can pretend that nothing ever happened + Surface::pen p = surface->get_pen((int)nrect.minx,(int)nrect.miny); + optimizedbacksurf.blit_to(p); + } + }else + { + if(!context.accelerated_render(surface,quality,renddesc,&stageone)) + return false; + } + + if(cb && !cb->amount_complete(10000,10001+renddesc.get_h())) return false; + + if(feather) + { + //we have to blur rather than be crappy + + //so make a separate surface + RendDesc workdesc(renddesc); + + etl::surface shapesurface; + + //the expanded size = 1/2 the size in each direction rounded up + int halfsizex = (int) (abs(feather*.5/pw) + 3), + halfsizey = (int) (abs(feather*.5/ph) + 3); + + //expand by 1/2 size in each direction on either side + switch(blurtype) + { + case Blur::DISC: + case Blur::BOX: + case Blur::CROSS: + { + workdesc.set_subwindow(-max(1,halfsizex),-max(1,halfsizey),w+2*max(1,halfsizex),h+2*max(1,halfsizey)); + break; + } + case Blur::FASTGAUSSIAN: + { + if(quality < 4) + { + halfsizex*=2; + halfsizey*=2; + } + workdesc.set_subwindow(-max(1,halfsizex),-max(1,halfsizey),w+2*max(1,halfsizex),h+2*max(1,halfsizey)); + break; + } + case Blur::GAUSSIAN: + { + #define GAUSSIAN_ADJUSTMENT (0.05) + Real pw = (Real)workdesc.get_w()/(workdesc.get_br()[0]-workdesc.get_tl()[0]); + Real ph = (Real)workdesc.get_h()/(workdesc.get_br()[1]-workdesc.get_tl()[1]); + + pw=pw*pw; + ph=ph*ph; + + halfsizex = (int)(abs(pw)*feather*GAUSSIAN_ADJUSTMENT+0.5); + halfsizey = (int)(abs(ph)*feather*GAUSSIAN_ADJUSTMENT+0.5); + + halfsizex = (halfsizex + 1)/2; + halfsizey = (halfsizey + 1)/2; + workdesc.set_subwindow( -halfsizex, -halfsizey, w+2*halfsizex, h+2*halfsizey ); + + break; + } + } + + shapesurface.set_wh(workdesc.get_w(),workdesc.get_h()); + shapesurface.clear(); + + //render the shape + if(!render_shape(&shapesurface,quality,workdesc,&stagetwo))return false; + + //blur the image + Blur(feather,feather,blurtype,&stagethree)(shapesurface,workdesc.get_br()-workdesc.get_tl(),shapesurface); + + //blend with stuff below it... + unsigned int u = halfsizex, v = halfsizey, x = 0, y = 0; + for(y = 0; y < h; y++,v++) + { + u = halfsizex; + for(x = 0; x < w; x++,u++) + { + float a = shapesurface[v][u]; + if(a) + { + //a = floor(a*255+0.5f)/255; + (*surface)[y][x]=Color::blend(color,(*surface)[y][x],a*get_amount(),get_blend_method()); + } + //else (*surface)[y][x] = worksurface[v][u]; + } + } + + //we are done + if(cb && !cb->amount_complete(100,100)) + { + synfig::warning("Layer_Shape: could not set amount complete"); + return false; + } + + return true; + }else + { + //might take out to reduce code size + return render_shape(surface,true,quality,renddesc,&stagetwo); + } + +} + +bool +Layer_Shape::render_shape(Surface *surface,bool useblend,int quality, + const RendDesc &renddesc, ProgressCallback *cb)const +{ + int tmp(0); + + SuperCallback progress(cb,0,renddesc.get_h(),renddesc.get_h()); + + // If our amount is set to zero, no need to render anything + if(!get_amount()) + return true; + + //test new polygon renderer + // Build edge table + // Width and Height of a pixel + const int w = renddesc.get_w(); + const int h = renddesc.get_h(); + const Real pw = renddesc.get_w()/(renddesc.get_br()[0]-renddesc.get_tl()[0]); + const Real ph = renddesc.get_h()/(renddesc.get_br()[1]-renddesc.get_tl()[1]); + + const Point tl = renddesc.get_tl(); + + Vector tangent (0,0); + + PolySpan span; + + //optimization for tesselating only inside tiles + span.window.minx = 0; + span.window.miny = 0; + span.window.maxx = w; + span.window.maxy = h; + + //pointers for processing the bytestream + const char *current = &bytestream[0]; + const char *end = &bytestream[bytestream.size()]; + + int operation = Primitive::NONE; + int number = 0; + int curnum; + + Primitive *curprim; + Point *data; + + Real x,y,x1,y1,x2,y2; + + + while(current < end) + { + tmp++; + + try { + + //get the op code safely + curprim = (Primitive *)current; + + //advance past indices + current += sizeof(Primitive); + if(current > end) + { + warning("Layer_Shape::accelerated_render - Error in the byte stream, not enough space for next declaration"); + return false; + } + + //get the relevant data + operation = curprim->operation; + number = curprim->number; + + if(operation == Primitive::END) + break; + + if(operation == Primitive::CLOSE) + { + if(span.notclosed()) + { + tangent[0] = span.close_x - span.cur_x; + tangent[1] = span.close_y - span.cur_y; + span.close(); + } + continue; + } + + data = (Point*)current; + current += sizeof(Point)*number; + + //check data positioning + if(current > end) + { + warning("Layer_Shape::accelerated_render - Error in the byte stream, in sufficient data space for declared number of points"); + return false; + } + + } catch(...) { synfig::error("Layer_Shape::render_shape()1: Caught an exception after %d loops, rethrowing...", tmp); throw; } + + //transfer all the data - RLE optimized + for(curnum=0; curnum < number;) + { + switch(operation) + { + case Primitive::MOVE_TO: + { + x = data[curnum][0]; + x = (x - tl[0] + offset[0])*pw; + y = data[curnum][1]; + y = (y - tl[1] + offset[1])*ph; + + if(curnum == 0) + { + span.move_to(x,y); + + tangent[0] = 0; + tangent[1] = 0; + } + else + { + tangent[0] = x - span.cur_x; + tangent[1] = y - span.cur_y; + + span.line_to(x,y); + } + + curnum++; //only advance one point + + break; + } + + case Primitive::LINE_TO: + { + x = data[curnum][0]; + x = (x - tl[0] + offset[0])*pw; + y = data[curnum][1]; + y = (y - tl[1] + offset[1])*ph; + + tangent[0] = x - span.cur_x; + tangent[1] = y - span.cur_y; + + span.line_to(x,y); + curnum++; + break; + } + + case Primitive::CONIC_TO: + { + x = data[curnum+1][0]; + x = (x - tl[0] + offset[0])*pw; + y = data[curnum+1][1]; + y = (y - tl[1] + offset[1])*ph; + + x1 = data[curnum][0]; + x1 = (x1 - tl[0] + offset[0])*pw; + y1 = data[curnum][1]; + y1 = (y1 - tl[1] + offset[1])*ph; + + tangent[0] = 2*(x - x1); + tangent[1] = 2*(y - y1); + + span.conic_to(x1,y1,x,y); + curnum += 2; + break; + } + + case Primitive::CONIC_TO_SMOOTH: + { + x = data[curnum][0]; + x = (x - tl[0] + offset[0])*pw; + y = data[curnum][1]; + y = (y - tl[1] + offset[1])*ph; + + x1 = span.cur_x + tangent[0]/2; + y1 = span.cur_y + tangent[1]/2; + + tangent[0] = 2*(x - x1); + tangent[1] = 2*(y - y1); + + span.conic_to(x1,y1,x,y); + curnum ++; + + break; + } + + case Primitive::CUBIC_TO: + { + x = data[curnum+2][0]; + x = (x - tl[0] + offset[0])*pw; + y = data[curnum+2][1]; + y = (y - tl[1] + offset[1])*ph; + + x2 = data[curnum+1][0]; + x2 = (x2 - tl[0] + offset[0])*pw; + y2 = data[curnum+1][1]; + y2 = (y2 - tl[1] + offset[1])*ph; + + x1 = data[curnum][0]; + x1 = (x1 - tl[0] + offset[0])*pw; + y1 = data[curnum][1]; + y1 = (y1 - tl[1] + offset[1])*ph; + + tangent[0] = 2*(x - x2); + tangent[1] = 2*(y - y2); + + span.cubic_to(x1,y1,x2,y2,x,y); + curnum += 3; + + break; + } + + case Primitive::CUBIC_TO_SMOOTH: + { + x = data[curnum+1][0]; + x = (x - tl[0] + offset[0])*pw; + y = data[curnum+1][1]; + y = (y - tl[1] + offset[1])*ph; + + x2 = data[curnum][0]; + x2 = (x2 - tl[0] + offset[0])*pw; + y2 = data[curnum][1]; + y2 = (y2 - tl[1] + offset[1])*ph; + + x1 = span.cur_x + tangent[0]/3.0; + y1 = span.cur_y + tangent[1]/3.0; + + tangent[0] = 2*(x - x2); + tangent[1] = 2*(y - y2); + + span.cubic_to(x1,y1,x2,y2,x,y); + curnum += 2; + + break; + } + } + } + } + + //sort the bastards so we can render everything + span.sort_marks(); + + return render_polyspan(surface, span, + useblend?get_blend_method():Color::BLEND_STRAIGHT, + useblend?get_amount():1.0); +} + +bool +Layer_Shape::render_shape(surface *surface,int quality, + const RendDesc &renddesc, ProgressCallback *cb)const +{ + // If our amount is set to zero, no need to render anything + if(!get_amount()) + return true; + + //test new polygon renderer + // Build edge table + // Width and Height of a pixel + const int w = renddesc.get_w(); + const int h = renddesc.get_h(); + const Real pw = renddesc.get_w()/(renddesc.get_br()[0]-renddesc.get_tl()[0]); + const Real ph = renddesc.get_h()/(renddesc.get_br()[1]-renddesc.get_tl()[1]); + + const Point tl = renddesc.get_tl(); + + Vector tangent (0,0); + + PolySpan span; + + //optimization for tesselating only inside tiles + span.window.minx = 0; + span.window.miny = 0; + span.window.maxx = w; + span.window.maxy = h; + + //pointers for processing the bytestream + const char *current = &bytestream[0]; + const char *end = &bytestream[bytestream.size()]; + + int operation = Primitive::NONE; + int number = 0; + int curnum; + + Primitive *curprim; + Point *data; + + Real x,y,x1,y1,x2,y2; + + while(current < end) + { + //get the op code safely + curprim = (Primitive *)current; + + //advance past indices + current += sizeof(Primitive); + if(current > end) + { + warning("Layer_Shape::accelerated_render - Error in the byte stream, not enough space for next declaration"); + return false; + } + + //get the relevant data + operation = curprim->operation; + number = curprim->number; + + if(operation == Primitive::END) + break; + + if(operation == Primitive::CLOSE) + { + if(span.notclosed()) + { + tangent[0] = span.close_x - span.cur_x; + tangent[1] = span.close_y - span.cur_y; + span.close(); + } + continue; + } + + data = (Point*)current; + current += sizeof(Point)*number; + + //check data positioning + if(current > end) + { + warning("Layer_Shape::accelerated_render - Error in the byte stream, in sufficient data space for declared number of points"); + return false; + } + + //transfer all the data + for(curnum=0; curnum < number;) + { + switch(operation) + { + case Primitive::MOVE_TO: + { + x = data[curnum][0]; + x = (x - tl[0] + offset[0])*pw; + y = data[curnum][1]; + y = (y - tl[1] + offset[1])*ph; + + if(curnum == 0) + { + span.move_to(x,y); + + tangent[0] = 0; + tangent[1] = 0; + } + else + { + tangent[0] = x - span.cur_x; + tangent[1] = y - span.cur_y; + + span.line_to(x,y); + } + + curnum++; //only advance one point + + break; + } + + case Primitive::LINE_TO: + { + x = data[curnum][0]; + x = (x - tl[0] + offset[0])*pw; + y = data[curnum][1]; + y = (y - tl[1] + offset[1])*ph; + + tangent[0] = x - span.cur_x; + tangent[1] = y - span.cur_y; + + span.line_to(x,y); + curnum++; + break; + } + + case Primitive::CONIC_TO: + { + x = data[curnum+1][0]; + x = (x - tl[0] + offset[0])*pw; + y = data[curnum+1][1]; + y = (y - tl[1] + offset[1])*ph; + + x1 = data[curnum][0]; + x1 = (x1 - tl[0] + offset[0])*pw; + y1 = data[curnum][1]; + y1 = (y1 - tl[1] + offset[1])*ph; + + tangent[0] = 2*(x - x1); + tangent[1] = 2*(y - y1); + + span.conic_to(x1,y1,x,y); + curnum += 2; + break; + } + + case Primitive::CONIC_TO_SMOOTH: + { + x = data[curnum][0]; + x = (x - tl[0] + offset[0])*pw; + y = data[curnum][1]; + y = (y - tl[1] + offset[1])*ph; + + x1 = span.cur_x + tangent[0]/2; + y1 = span.cur_y + tangent[1]/2; + + tangent[0] = 2*(x - x1); + tangent[1] = 2*(y - y1); + + span.conic_to(x1,y1,x,y); + curnum ++; + + break; + } + + case Primitive::CUBIC_TO: + { + x = data[curnum+2][0]; + x = (x - tl[0] + offset[0])*pw; + y = data[curnum+2][1]; + y = (y - tl[1] + offset[1])*ph; + + x2 = data[curnum+1][0]; + x2 = (x2 - tl[0] + offset[0])*pw; + y2 = data[curnum+1][1]; + y2 = (y2 - tl[1] + offset[1])*ph; + + x1 = data[curnum][0]; + x1 = (x1 - tl[0] + offset[0])*pw; + y1 = data[curnum][1]; + y1 = (y1 - tl[1] + offset[1])*ph; + + tangent[0] = 2*(x - x2); + tangent[1] = 2*(y - y2); + + span.cubic_to(x1,y1,x2,y2,x,y); + curnum += 3; + + break; + } + + case Primitive::CUBIC_TO_SMOOTH: + { + x = data[curnum+1][0]; + x = (x - tl[0] + offset[0])*pw; + y = data[curnum+1][1]; + y = (y - tl[1] + offset[1])*ph; + + x2 = data[curnum][0]; + x2 = (x2 - tl[0] + offset[0])*pw; + y2 = data[curnum][1]; + y2 = (y2 - tl[1] + offset[1])*ph; + + x1 = span.cur_x + tangent[0]/3.0; + y1 = span.cur_y + tangent[1]/3.0; + + tangent[0] = 2*(x - x2); + tangent[1] = 2*(y - y2); + + span.cubic_to(x1,y1,x2,y2,x,y); + curnum += 2; + + break; + } + } + } + } + + //sort the bastards so we can render everything + span.sort_marks(); + + return render_polyspan(surface, span); +} + +Rect +Layer_Shape::get_bounding_rect()const +{ + if(invert) + return Rect::full_plane(); + + if (edge_table->initaabb) + return Rect::zero(); + + Rect bounds(edge_table->aabb+offset); + bounds.expand(max((bounds.get_min() - bounds.get_max()).mag()*0.01, + feather)); + + return bounds; +} diff --git a/synfig-core/tags/stable/src/synfig/layer_shape.h b/synfig-core/tags/stable/src/synfig/layer_shape.h new file mode 100644 index 0000000..d083cee --- /dev/null +++ b/synfig-core/tags/stable/src/synfig/layer_shape.h @@ -0,0 +1,127 @@ +/* === S Y N F I G ========================================================= */ +/*! \file layer_shape.h +** \brief Template Header +** +** $Id$ +** +** \legal +** Copyright (c) 2002-2005 Robert B. Quattlebaum Jr., Adrian Bentley +** +** This package is free software; you can redistribute it and/or +** modify it under the terms of the GNU General Public License as +** published by the Free Software Foundation; either version 2 of +** the License, or (at your option) any later version. +** +** This package is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +** General Public License for more details. +** \endlegal +*/ +/* ========================================================================= */ + +/* === S T A R T =========================================================== */ + +#ifndef __SYNFIG_LAYER_SHAPE_H +#define __SYNFIG_LAYER_SHAPE_H + +/* === H E A D E R S ======================================================= */ + +#include "layer_composite.h" +#include "color.h" +#include "vector.h" +#include "blur.h" + +#include + +/* === M A C R O S ========================================================= */ + +/* === T Y P E D E F S ===================================================== */ + +/* === C L A S S E S & S T R U C T S ======================================= */ + +namespace synfig { + +/*! \class Layer_Shape +** \brief writeme */ +class Layer_Shape : public Layer_Composite, public Layer_NoDeform +{ + SYNFIG_LAYER_MODULE_EXT + + enum WindingStyle + { + WINDING_NON_ZERO=0, //!< less than -1 --> 1; -1 --> 1; 0 --> 0; 1 --> 1; greater than 1 --> 1 + WINDING_EVEN_ODD=1, //!< add or subtract multiples of 2 to get into range -1:1, then as above + + WINDING_END=2 //!< \internal + }; + +private: + + //internal cacheing + struct Intersector; + Intersector *edge_table; + + //exported data + Color color; + + Point offset; + bool invert; + bool antialias; + + int blurtype; + Real feather; + WindingStyle winding_style; + + std::vector< char > bytestream; + + //for use in creating the bytestream + int lastbyteop; + int lastoppos; + +protected: + + Layer_Shape(const Real &a = 1.0, const Color::BlendMethod m = Color::BLEND_COMPOSITE); + +public: + + ~Layer_Shape(); + + //! Clears out any data + /*! Also clears out the Intersector + */ + void clear(); + //void sync(); + + void move_to(Real x, Real y); + void line_to(Real x, Real y); + void conic_to(Real x1, Real y1, Real x, Real y); + void conic_to_smooth(Real x, Real y); //x1,y1 derived from current tangent + void curve_to(Real x1, Real y1, Real x2, Real y2, Real x, Real y); + void curve_to_smooth(Real x2, Real y2, Real x, Real y); //x1,y1 derived from current tangent + void close(); + void endpath(); + + virtual bool set_param(const String & param, const synfig::ValueBase &value); + virtual ValueBase get_param(const String & param)const; + + virtual Vocab get_param_vocab()const; + + virtual Color get_color(Context context, const Point &pos)const; + virtual bool accelerated_render(Context context,Surface *surface,int quality, const RendDesc &renddesc, ProgressCallback *cb)const; + virtual synfig::Layer::Handle hit_check(synfig::Context context, const synfig::Point &point)const; + virtual Rect get_bounding_rect()const; + +private: + class PolySpan; + bool render_polyspan(Surface *surface,PolySpan &polyspan, + Color::BlendMethod method,Color::value_type amount)const; + bool render_polyspan(etl::surface *surface,PolySpan &polyspan)const; + virtual bool render_shape(Surface *surface,bool useblend,int quality,const RendDesc &renddesc, ProgressCallback *cb)const; + virtual bool render_shape(etl::surface *surface,int quality,const RendDesc &renddesc, ProgressCallback *cb)const; +}; // END of Layer_Shape + +}; // END of namespace synfig +/* === E N D =============================================================== */ + +#endif diff --git a/synfig-core/tags/stable/src/synfig/layer_solidcolor.cpp b/synfig-core/tags/stable/src/synfig/layer_solidcolor.cpp new file mode 100644 index 0000000..81243c9 --- /dev/null +++ b/synfig-core/tags/stable/src/synfig/layer_solidcolor.cpp @@ -0,0 +1,166 @@ +/* === S Y N F I G ========================================================= */ +/*! \file layer_solidcolor.cpp +** \brief Template Header +** +** $Id$ +** +** \legal +** Copyright (c) 2002-2005 Robert B. Quattlebaum Jr., Adrian Bentley +** +** This package is free software; you can redistribute it and/or +** modify it under the terms of the GNU General Public License as +** published by the Free Software Foundation; either version 2 of +** the License, or (at your option) any later version. +** +** This package is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +** General Public License for more details. +** \endlegal +*/ +/* ========================================================================= */ + +/* === H E A D E R S ======================================================= */ + +#ifdef USING_PCH +# include "pch.h" +#else +#ifdef HAVE_CONFIG_H +# include +#endif + +#include "layer_solidcolor.h" +#include "string.h" +#include "time.h" +#include "context.h" +#include "paramdesc.h" +#include "renddesc.h" +#include "surface.h" +#include "value.h" +#include "valuenode.h" + +#endif + +/* === U S I N G =========================================================== */ + +using namespace etl; +using namespace std; +using namespace synfig; + +/* === G L O B A L S ======================================================= */ + +SYNFIG_LAYER_INIT(Layer_SolidColor); +SYNFIG_LAYER_SET_NAME(Layer_SolidColor,"SolidColor"); +SYNFIG_LAYER_SET_LOCAL_NAME(Layer_SolidColor,_("Solid Color")); +SYNFIG_LAYER_SET_CATEGORY(Layer_SolidColor,_("Geometry")); +SYNFIG_LAYER_SET_VERSION(Layer_SolidColor,"0.1"); +SYNFIG_LAYER_SET_CVS_ID(Layer_SolidColor,"$Id$"); + +/* === P R O C E D U R E S ================================================= */ + +/* === M E T H O D S ======================================================= */ + +/* === E N T R Y P O I N T ================================================= */ + +Layer_SolidColor::Layer_SolidColor(): + Layer_Composite(1.0,Color::BLEND_STRAIGHT), + color(Color::black()) +{ +} + +bool +Layer_SolidColor::set_param(const String & param, const ValueBase &value) +{ + IMPORT(color); + + return Layer_Composite::set_param(param,value); +} + +ValueBase +Layer_SolidColor::get_param(const String ¶m)const +{ + EXPORT(color); + + EXPORT_NAME(); + EXPORT_VERSION(); + + return Layer_Composite::get_param(param); +} + +Layer::Vocab +Layer_SolidColor::get_param_vocab()const +{ + Layer::Vocab ret(Layer_Composite::get_param_vocab()); + + ret.push_back(ParamDesc("color") + .set_local_name(_("Color")) + ); + + return ret; +} + +synfig::Layer::Handle +Layer_SolidColor::hit_check(synfig::Context context, const synfig::Point &point)const +{ + if(get_blend_method()==Color::BLEND_STRAIGHT && get_amount()>=0.5) + return const_cast(this); + else + if(get_blend_method()==Color::BLEND_COMPOSITE && get_amount()*color.get_a()>=0.5) + return const_cast(this); + + Layer::Handle layer(context.hit_check(point)); + + return layer?layer:const_cast(this); +} + +Color +Layer_SolidColor::get_color(Context context, const Point &pos)const +{ + if(get_amount()==1.0 && get_blend_method()==Color::BLEND_STRAIGHT) + return color; + else + return Color::blend(color,context.get_color(pos),get_amount(),get_blend_method()); +} + +bool +Layer_SolidColor::accelerated_render(Context context,Surface *surface,int quality, const RendDesc &renddesc, ProgressCallback *cb)const +{ + if(get_amount()==1.0 && get_blend_method()==Color::BLEND_STRAIGHT) + { + // Mark our progress as starting + if(cb && !cb->amount_complete(0,1000)) + return false; + + surface->set_wh(renddesc.get_w(),renddesc.get_h()); + surface->fill(color); + + // Mark our progress as finished + if(cb && !cb->amount_complete(1000,1000)) + return false; + + return true; + } + + SuperCallback supercb(cb,0,9500,10000); + + if(!context.accelerated_render(surface,quality,renddesc,&supercb)) + return false; + + int x,y; + + Surface::alpha_pen apen(surface->begin()); + + apen.set_value(color); + apen.set_alpha(get_amount()); + apen.set_blend_method(get_blend_method()); + + for(y=0;yamount_complete(10000,10000)) + return false; + + return true; +} diff --git a/synfig-core/tags/stable/src/synfig/layer_solidcolor.h b/synfig-core/tags/stable/src/synfig/layer_solidcolor.h new file mode 100644 index 0000000..290075b --- /dev/null +++ b/synfig-core/tags/stable/src/synfig/layer_solidcolor.h @@ -0,0 +1,71 @@ +/* === S Y N F I G ========================================================= */ +/*! \file layer_solidcolor.h +** \brief Template Header +** +** $Id$ +** +** \legal +** Copyright (c) 2002-2005 Robert B. Quattlebaum Jr., Adrian Bentley +** +** This package is free software; you can redistribute it and/or +** modify it under the terms of the GNU General Public License as +** published by the Free Software Foundation; either version 2 of +** the License, or (at your option) any later version. +** +** This package is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +** General Public License for more details. +** \endlegal +*/ +/* ========================================================================= */ + +/* === S T A R T =========================================================== */ + +#ifndef __SYNFIG_LAYER_SOLIDCOLOR_H +#define __SYNFIG_LAYER_SOLIDCOLOR_H + +/* === H E A D E R S ======================================================= */ + +#include "layer_composite.h" +#include "color.h" + +/* === M A C R O S ========================================================= */ + +/* === T Y P E D E F S ===================================================== */ + +/* === C L A S S E S & S T R U C T S ======================================= */ + +namespace synfig { + +class Layer_SolidColor : public Layer_Composite, public Layer_NoDeform +{ + SYNFIG_LAYER_MODULE_EXT + +private: + + Color color; + +public: + + Layer_SolidColor(); + + virtual bool set_param(const String & param, const synfig::ValueBase &value); + + virtual ValueBase get_param(const String & param)const; + + virtual Color get_color(Context context, const Point &pos)const; + + virtual bool accelerated_render(Context context,Surface *surface,int quality, const RendDesc &renddesc, ProgressCallback *cb)const; + + virtual Vocab get_param_vocab()const; + + virtual synfig::Layer::Handle hit_check(synfig::Context context, const synfig::Point &point)const; + +}; // END of class Layer_SolidColor + +}; // END of namespace synfig + +/* === E N D =============================================================== */ + +#endif diff --git a/synfig-core/tags/stable/src/synfig/listimporter.cpp b/synfig-core/tags/stable/src/synfig/listimporter.cpp new file mode 100644 index 0000000..7dcd277 --- /dev/null +++ b/synfig-core/tags/stable/src/synfig/listimporter.cpp @@ -0,0 +1,168 @@ +/* === S Y N F I G ========================================================= */ +/*! \file listimporter.cpp +** \brief Template File +** +** $Id$ +** +** \legal +** Copyright (c) 2002-2005 Robert B. Quattlebaum Jr., Adrian Bentley +** +** This package is free software; you can redistribute it and/or +** modify it under the terms of the GNU General Public License as +** published by the Free Software Foundation; either version 2 of +** the License, or (at your option) any later version. +** +** This package is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +** General Public License for more details. +** \endlegal +*/ +/* ========================================================================= */ + +/* === H E A D E R S ======================================================= */ + +#ifdef USING_PCH +# include "pch.h" +#else +#ifdef HAVE_CONFIG_H +# include +#endif + +#include "listimporter.h" +#include "general.h" +#include + +#endif + +/* === U S I N G =========================================================== */ + +using namespace std; +using namespace etl; +using namespace synfig; + +/* === M A C R O S ========================================================= */ + +#define LIST_IMPORTER_CACHE_SIZE 20 + +/* === G L O B A L S ======================================================= */ + +/* === P R O C E D U R E S ================================================= */ + +/* === M E T H O D S ======================================================= */ + +ListImporter::ListImporter(const String &filename) +{ + fps=15; + + ifstream stream(filename.c_str()); + + if(!stream) + { + synfig::error("Unable to open "+filename); + return; + } + String line; + String prefix=etl::dirname(filename)+ETL_DIRECTORY_SEPERATOR; + while(!stream.eof()) + { + getline(stream,line); + if(line.empty()) + continue; + // If we have a framerate, then use it + if(line.find(String("FPS "))==0) + { + fps=atof(String(line.begin()+4,line.end()).c_str()); + //synfig::warning("FPS=%f",fps); + if(!fps) + fps=15; + continue; + } + filename_list.push_back(prefix+line); + } +} + +Importer* +ListImporter::create(const char *filename) +{ + return new ListImporter(filename); +} + +ListImporter::~ListImporter() +{ +} + +bool +ListImporter::get_frame(Surface &surface,Time time, ProgressCallback *cb) +{ +// DEBUGPOINT(); + int frame=static_cast(time*fps); +// DEBUGPOINT(); + + if(!filename_list.size()) + { + if(cb)cb->error(_("No images in list")); + else synfig::error(_("No images in list")); + return false; + } + +// DEBUGPOINT(); + if(frame<0)frame=0; + if(frame>=(signed)filename_list.size())frame=filename_list.size()-1; + +// DEBUGPOINT(); + // See if that frame is cached + std::list >::iterator iter; + for(iter=frame_cache.begin();iter!=frame_cache.end();++iter) + { + if(iter->first==frame) + { +// DEBUGPOINT(); + surface.mirror(iter->second); + return static_cast(surface); + } + } + + Importer::Handle importer(Importer::open(filename_list[frame])); + +// DEBUGPOINT(); + + if(!importer) + { + if(cb)cb->error(_("Unable to open ")+filename_list[frame]); + else synfig::error(_("Unable to open ")+filename_list[frame]); + return false; + } + +// DEBUGPOINT(); + + if(!importer->get_frame(surface,0,cb)) + { + if(cb)cb->error(_("Unable to get frame from ")+filename_list[frame]); + else synfig::error(_("Unable to get frame from ")+filename_list[frame]); + return false; + } + +// DEBUGPOINT(); + + if(frame_cache.size()>=LIST_IMPORTER_CACHE_SIZE) + frame_cache.pop_front(); + +// DEBUGPOINT(); + + frame_cache.push_back(std::pair(frame,surface)); + +// DEBUGPOINT(); + + surface.mirror(frame_cache.back().second); + +// DEBUGPOINT(); + + return static_cast(surface); +} + +bool +ListImporter::is_animated() +{ + return true; +} diff --git a/synfig-core/tags/stable/src/synfig/listimporter.h b/synfig-core/tags/stable/src/synfig/listimporter.h new file mode 100644 index 0000000..5cd1b2b --- /dev/null +++ b/synfig-core/tags/stable/src/synfig/listimporter.h @@ -0,0 +1,72 @@ +/* === S Y N F I G ========================================================= */ +/*! \file listimporter.h +** \brief Template Header +** +** $Id$ +** +** \legal +** Copyright (c) 2002-2005 Robert B. Quattlebaum Jr., Adrian Bentley +** +** This package is free software; you can redistribute it and/or +** modify it under the terms of the GNU General Public License as +** published by the Free Software Foundation; either version 2 of +** the License, or (at your option) any later version. +** +** This package is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +** General Public License for more details. +** \endlegal +*/ +/* ========================================================================= */ + +/* === S T A R T =========================================================== */ + +#ifndef __SYNFIG_LISTIMPORTER_H +#define __SYNFIG_LISTIMPORTER_H + +/* === H E A D E R S ======================================================= */ + +#include "importer.h" +#include "surface.h" +#include +#include +//#include +#include +#include + +/* === M A C R O S ========================================================= */ + +/* === T Y P E D E F S ===================================================== */ + +/* === C L A S S E S & S T R U C T S ======================================= */ + +namespace synfig { + +/*! \class ListImporter +** \todo Write more detailed description +*/ +class ListImporter : public Importer +{ + float fps; + std::vector filename_list; + std::list > frame_cache; +protected: + ListImporter(const String &filename); + +public: + + virtual ~ListImporter(); + + virtual bool get_frame(Surface &surface,Time time, ProgressCallback *callback=NULL); + + virtual bool is_animated(); + + static Importer* create(const char *filename); +}; + +}; // END of namespace synfig + +/* === E N D =============================================================== */ + +#endif diff --git a/synfig-core/tags/stable/src/synfig/loadcanvas.cpp b/synfig-core/tags/stable/src/synfig/loadcanvas.cpp new file mode 100644 index 0000000..6bbefc0 --- /dev/null +++ b/synfig-core/tags/stable/src/synfig/loadcanvas.cpp @@ -0,0 +1,2366 @@ +/* === S Y N F I G ========================================================= */ +/*! \file loadcanvas.cpp +** \brief writeme +** +** $Id$ +** +** \legal +** Copyright (c) 2002-2005 Robert B. Quattlebaum Jr., Adrian Bentley +** +** This package is free software; you can redistribute it and/or +** modify it under the terms of the GNU General Public License as +** published by the Free Software Foundation; either version 2 of +** the License, or (at your option) any later version. +** +** This package is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +** General Public License for more details. +** \endlegal +*/ +/* ========================================================================= */ + +/* === H E A D E R S ======================================================= */ + +#ifdef USING_PCH +# include "pch.h" +#else +#ifdef HAVE_CONFIG_H +# include +#endif + +#include +#include +#include +#include +#include +#include +#include +#include + +#include "loadcanvas.h" +#include "valuenode.h" +#include "valuenode_subtract.h" +#include "valuenode_animated.h" +#include "valuenode_composite.h" +#include "valuenode_const.h" +#include "valuenode_linear.h" +#include "valuenode_dynamiclist.h" +#include "valuenode_reference.h" +#include "valuenode_scale.h" +#include "valuenode_timedswap.h" +#include "valuenode_twotone.h" +#include "valuenode_stripes.h" +#include "valuenode_segcalctangent.h" +#include "valuenode_segcalcvertex.h" +#include "valuenode_bline.h" + +#include "layer.h" +#include "string.h" + +#include "exception.h" + +#include "gradient.h" + +#include +#include + +#endif + +/* === U S I N G =========================================================== */ + +using namespace std; +using namespace synfig; +using namespace etl; + +/* +class test_class { +static int bleh; +public: + test_class() { assert(!bleh); bleh++; synfig::info("test_class: initi: %d",bleh); } + ~test_class() { assert(bleh); synfig::info("test_class: uninit: %d",bleh); bleh--; } +}; +int test_class::bleh(0); + +test_class test_class_instance; +*/ + +/* === M A C R O S ========================================================= */ + +inline bool is_whitespace(char x) { return ((x)=='\n' || (x)=='\t' || (x)==' '); } + +/* === P R O C E D U R E S ================================================= */ + +static std::map* open_canvas_map_(0); + +std::map >& synfig::get_open_canvas_map() +{ + if(!open_canvas_map_) + open_canvas_map_=new std::map; + return *open_canvas_map_; +} + +static void _remove_from_open_canvas_map(Canvas *x) { get_open_canvas_map().erase(etl::absolute_path(x->get_file_name())); } + +static void _canvas_file_name_changed(Canvas *x) +{ + std::map >::iterator iter; + + for(iter=get_open_canvas_map().begin();iter!=get_open_canvas_map().end();++iter) + if(iter->second==x) + break; + assert(iter!=get_open_canvas_map().end()); + if(iter==get_open_canvas_map().end()) + return; + get_open_canvas_map().erase(iter->first); + get_open_canvas_map()[etl::absolute_path(x->get_file_name())]=x; + +} + +Canvas::Handle +synfig::open_canvas(const String &filename) +{ + CanvasParser parser; + + parser.set_allow_errors(true); + + Canvas::Handle canvas=parser.parse_from_file(filename); + + if(parser.error_count()) + return Canvas::Handle(); + + return canvas; +} + +Canvas::Handle +synfig::open_canvas_as(const String &filename,const String &as) +{ + CanvasParser parser; + + parser.set_allow_errors(true); + + Canvas::Handle canvas=parser.parse_from_file_as(filename,as); + + if(parser.error_count()) + return Canvas::Handle(); + + return canvas; +} + +Canvas::Handle +synfig::string_to_canvas(const String &data) +{ + CanvasParser parser; + + parser.set_allow_errors(true); + + Canvas::Handle canvas=parser.parse_from_string(data); + + if(parser.error_count()) + return Canvas::Handle(); + + return canvas; +} + +/* === M E T H O D S ======================================================= */ + +void +CanvasParser::error_unexpected_element(xmlpp::Node *element,const String &got, const String &expected) +{ + error(element,strprintf(_("Unexpected element <%s>, Expected <%s>"),got.c_str(),expected.c_str())); +} + +void +CanvasParser::error_unexpected_element(xmlpp::Node *element,const String &got) +{ + error(element,strprintf(_("Unexpected element <%s>"),got.c_str())); +} + +void +CanvasParser::warning(xmlpp::Node *element, const String &text) +{ + string str=strprintf("%s:<%s>:%d: warning: ",filename.c_str(),element->get_name().c_str(),element->get_line())+text; + //synfig::warning(str); + cerr<=max_warnings_) + fatal_error(element, _("Too many warnings")); +} + +void +CanvasParser::error(xmlpp::Node *element, const String &text) +{ + string str=strprintf("%s:<%s>:%d: error: ",filename.c_str(),element->get_name().c_str(),element->get_line())+text; + total_errors_++; + if(!allow_errors_) + throw runtime_error(str); + cerr<:%d:",filename.c_str(),element->get_name().c_str(),element->get_line())+text; + throw runtime_error(str); +} + + + +Keyframe +CanvasParser::parse_keyframe(xmlpp::Element *element,Canvas::Handle canvas) +{ + assert(element->get_name()=="keyframe"); + + if(!element->get_attribute("time")) + { + error(element,strprintf(_("<%s> is missing \"%s\" attribute"),"real","time")); + return Keyframe(); + } + + Keyframe ret(Time(element->get_attribute("time")->get_value(),canvas->rend_desc().get_frame_rate())); + + + if(element->get_children().empty()) + return ret; + + if(element->get_child_text()->get_content().empty()) + return ret; + + ret.set_description(element->get_child_text()->get_content()); + + return ret; +} + + +Real +CanvasParser::parse_real(xmlpp::Element *element,Canvas::Handle canvas) +{ + assert(element->get_name()=="real"); + + if(!element->get_children().empty()) + warning(element, strprintf(_("<%s> should not contain anything"),"real")); + + if(!element->get_attribute("value")) + { + error(element,strprintf(_("<%s> is missing \"value\" attribute"),"real")); + return false; + } + + string val=element->get_attribute("value")->get_value(); + + return atof(val.c_str()); +} + +Time +CanvasParser::parse_time(xmlpp::Element *element,Canvas::Handle canvas) +{ + assert(element->get_name()=="time"); + + if(!element->get_children().empty()) + warning(element, strprintf(_("<%s> should not contain anything"),"time")); + + if(!element->get_attribute("value")) + { + error(element,strprintf(_("<%s> is missing \"value\" attribute"),"time")); + return false; + } + + string val=element->get_attribute("value")->get_value(); + + return Time(val,canvas->rend_desc().get_frame_rate()); +} + +int +CanvasParser::parse_integer(xmlpp::Element *element,Canvas::Handle canvas) +{ + assert(element->get_name()=="integer"); + + if(!element->get_children().empty()) + warning(element, strprintf(_("<%s> should not contain anything"),"integer")); + + if(!element->get_attribute("value")) + { + error(element,strprintf(_("<%s> is missing \"value\" attribute"),"integer")); + return false; + } + + string val=element->get_attribute("value")->get_value(); + + return atoi(val.c_str()); +} + +Vector +CanvasParser::parse_vector(xmlpp::Element *element,Canvas::Handle canvas) +{ + assert(element->get_name()=="vector"); + + if(element->get_children().empty()) + { + error(element, "Undefined value in "); + return Vector(); + } + + Vector vect; + + xmlpp::Element::NodeList list = element->get_children(); + for(xmlpp::Element::NodeList::iterator iter = list.begin(); iter != list.end(); ++iter) + { + xmlpp::Element *child=dynamic_cast((xmlpp::Node*)*iter); + if(!child) + continue; + else + if(child->get_name()=="x") + { + if(child->get_children().empty()) + { + error(element, "Undefined value in "); + return Vector(); + } + vect[0]=atof(child->get_child_text()->get_content().c_str()); + } + else + if(child->get_name()=="y") + { + if(child->get_children().empty()) + { + error(element, "Undefined value in "); + return Vector(); + } + vect[1]=atof(child->get_child_text()->get_content().c_str()); + } + else + error_unexpected_element(child,child->get_name()); + } + return vect; +} + +Color +CanvasParser::parse_color(xmlpp::Element *element,Canvas::Handle canvas) +{ + assert(element->get_name()=="color"); + + if(element->get_children().empty()) + { + error(element, "Undefined value in "); + return Color(); + } + + Color color; + + xmlpp::Element::NodeList list = element->get_children(); + for(xmlpp::Element::NodeList::iterator iter = list.begin(); iter != list.end(); ++iter) + { + xmlpp::Element *child(dynamic_cast(*iter)); + if(!child) + continue; + else + if(child->get_name()=="r") + { + if(child->get_children().empty()) + { + error(element, "Undefined value in "); + return Color(); + } + color.set_r(atof(child->get_child_text()->get_content().c_str())); + } + else + if(child->get_name()=="g") + { + if(child->get_children().empty()) + { + error(element, "Undefined value in "); + return Color(); + } + color.set_g(atof(child->get_child_text()->get_content().c_str())); + } + else + if(child->get_name()=="b") + { + if(child->get_children().empty()) + { + error(element, "Undefined value in "); + return Color(); + } + color.set_b(atof(child->get_child_text()->get_content().c_str())); + } + else + if(child->get_name()=="a") + { + if(child->get_children().empty()) + { + error(element, "Undefined value in "); + return Color(); + } + color.set_a(atof(child->get_child_text()->get_content().c_str())); + } + else + error_unexpected_element(child,child->get_name()); + } + + return color; +} + +synfig::String +CanvasParser::parse_string(xmlpp::Element *element,Canvas::Handle canvas) +{ + assert(element->get_name()=="string"); + + if(element->get_children().empty()) + { + warning(element, "Undefined value in "); + return synfig::String(); + } + + if(element->get_child_text()->get_content().empty()) + { + warning(element, "Content element of appears to be empty"); + return synfig::String(); + } + + return element->get_child_text()->get_content(); +} + +bool +CanvasParser::parse_bool(xmlpp::Element *element,Canvas::Handle canvas) +{ + assert(element->get_name()=="bool"); + + if(!element->get_children().empty()) + warning(element, strprintf(_("<%s> should not contain anything"),"bool")); + + if(!element->get_attribute("value")) + { + error(element,strprintf(_("<%s> is missing \"value\" attribute"),"bool")); + return false; + } + + string val=element->get_attribute("value")->get_value(); + + if(val=="true" || val=="1") + return true; + if(val=="false" || val=="0") + return false; + + error(element,strprintf(_("Bad value \"%s\" in <%s>"),val.c_str(),"bool")); + + return false; +} + +Gradient +CanvasParser::parse_gradient(xmlpp::Element *node,Canvas::Handle canvas) +{ + assert(node->get_name()=="gradient"); + Gradient ret; + + xmlpp::Element::NodeList list = node->get_children(); + for(xmlpp::Element::NodeList::iterator iter = list.begin(); iter != list.end(); ++iter) + { + xmlpp::Element *child(dynamic_cast(*iter)); + if(!child) + continue; + else + { + Gradient::CPoint cpoint; + cpoint.color=parse_color(child,canvas); + + if(!child->get_attribute("pos")) + { + error(child,strprintf(_("<%s> is missing \"pos\" attribute"),"gradient")); + return Gradient(); + } + + cpoint.pos=atof(child->get_attribute("pos")->get_value().c_str()); + + ret.push_back(cpoint); + } + } + ret.sort(); + return ret; +} + +ValueBase +CanvasParser::parse_list(xmlpp::Element *element,Canvas::Handle canvas) +{ + vector value_list; + + xmlpp::Element::NodeList list = element->get_children(); + for(xmlpp::Element::NodeList::iterator iter = list.begin(); iter != list.end(); ++iter) + { + xmlpp::Element *child(dynamic_cast(*iter)); + if(!child) + continue; + else + { + value_list.push_back(parse_value(child,canvas)); + if(!value_list.back().is_valid()) + { + value_list.pop_back(); + error(child,"Bad ValueBase"); + continue; + } + } + } + return value_list; +} + +Segment +CanvasParser::parse_segment(xmlpp::Element *element,Canvas::Handle canvas) +{ + assert(element->get_name()=="segment"); + + if(element->get_children().empty()) + { + error(element, "Undefined value in "); + return Segment(); + } + + Segment seg; + + xmlpp::Element::NodeList list = element->get_children(); + for(xmlpp::Element::NodeList::iterator iter = list.begin(); iter != list.end(); ++iter) + { + xmlpp::Element *child(dynamic_cast(*iter)); + if(!child) + continue; + else + if(child->get_name()=="p1") + { + xmlpp::Element::NodeList list = child->get_children(); + xmlpp::Element::NodeList::iterator iter; + + // Search for the first non-text XML element + for(iter = list.begin(); iter != list.end(); ++iter) + if(dynamic_cast(*iter)) break; + + if(iter==list.end()) + { + error(element, "Undefined value in "); + continue; + } + + if((*iter)->get_name()!="vector") + { + error_unexpected_element((*iter),(*iter)->get_name(),"vector"); + continue; + } + + seg.p1=parse_vector(dynamic_cast(*iter),canvas); + } + else + if(child->get_name()=="t1") + { + xmlpp::Element::NodeList list = child->get_children(); + xmlpp::Element::NodeList::iterator iter; + + // Search for the first non-text XML element + for(iter = list.begin(); iter != list.end(); ++iter) + if(dynamic_cast(*iter)) break; + + if(iter==list.end()) + { + error(element, "Undefined value in "); + continue; + } + + if((*iter)->get_name()!="vector") + { + error_unexpected_element((*iter),(*iter)->get_name(),"vector"); + continue; + } + + seg.t1=parse_vector(dynamic_cast(*iter),canvas); + } + else + if(child->get_name()=="p2") + { + xmlpp::Element::NodeList list = child->get_children(); + xmlpp::Element::NodeList::iterator iter; + + // Search for the first non-text XML element + for(iter = list.begin(); iter != list.end(); ++iter) + if(dynamic_cast(*iter)) break; + + if(iter==list.end()) + { + error(element, "Undefined value in "); + continue; + } + + if((*iter)->get_name()!="vector") + { + error_unexpected_element((*iter),(*iter)->get_name(),"vector"); + continue; + } + + seg.p2=parse_vector(dynamic_cast(*iter),canvas); + } + else + if(child->get_name()=="t2") + { + xmlpp::Element::NodeList list = child->get_children(); + xmlpp::Element::NodeList::iterator iter; + + // Search for the first non-text XML element + for(iter = list.begin(); iter != list.end(); ++iter) + if(dynamic_cast(*iter)) break; + + if(iter==list.end()) + { + error(element, "Undefined value in "); + continue; + } + + if((*iter)->get_name()!="vector") + { + error_unexpected_element((*iter),(*iter)->get_name(),"vector"); + continue; + } + + seg.t2=parse_vector(dynamic_cast(*iter),canvas); + } + else + error_unexpected_element(child,child->get_name()); + } + return seg; +} + +BLinePoint +CanvasParser::parse_bline_point(xmlpp::Element *element,Canvas::Handle canvas) +{ + assert(element->get_name()=="bline_point"); + if(element->get_children().empty()) + { + error(element, "Undefined value in "); + return BLinePoint(); + } + + BLinePoint ret; + ret.set_split_tangent_flag(false); + + xmlpp::Element::NodeList list = element->get_children(); + for(xmlpp::Element::NodeList::iterator iter = list.begin(); iter != list.end(); ++iter) + { + xmlpp::Element *child(dynamic_cast(*iter)); + if(!child) + continue; + else + // Vertex + if(child->get_name()[0]=='v' || child->get_name()=="p1") + { + xmlpp::Element::NodeList list = child->get_children(); + xmlpp::Element::NodeList::iterator iter; + + // Search for the first non-text XML element + for(iter = list.begin(); iter != list.end(); ++iter) + if(dynamic_cast(*iter)) break; + + if(iter==list.end()) + { + error(element, "Undefined value in "); + continue; + } + + if((*iter)->get_name()!="vector") + { + error_unexpected_element((*iter),(*iter)->get_name(),"vector"); + continue; + } + + ret.set_vertex(parse_vector(dynamic_cast(*iter),canvas)); + } + else + // Tangent 1 + if(child->get_name()=="t1" || child->get_name()=="tangent") + { + xmlpp::Element::NodeList list = child->get_children(); + xmlpp::Element::NodeList::iterator iter; + + // Search for the first non-text XML element + for(iter = list.begin(); iter != list.end(); ++iter) + if(dynamic_cast(*iter)) break; + + if(iter==list.end()) + { + error(element, "Undefined value in "); + continue; + } + + if((*iter)->get_name()!="vector") + { + error_unexpected_element((*iter),(*iter)->get_name(),"vector"); + continue; + } + + ret.set_tangent1(parse_vector(dynamic_cast(*iter),canvas)); + } + else + // Tangent 2 + if(child->get_name()=="t2") + { + xmlpp::Element::NodeList list = child->get_children(); + xmlpp::Element::NodeList::iterator iter; + + // Search for the first non-text XML element + for(iter = list.begin(); iter != list.end(); ++iter) + if(dynamic_cast(*iter)) break; + + if(iter==list.end()) + { + error(element, "Undefined value in "); + continue; + } + + if((*iter)->get_name()!="vector") + { + error_unexpected_element((*iter),(*iter)->get_name(),"vector"); + continue; + } + + ret.set_tangent2(parse_vector(dynamic_cast(*iter),canvas)); + ret.set_split_tangent_flag(true); + } + else + // width + if(child->get_name()=="width") + { + xmlpp::Element::NodeList list = child->get_children(); + xmlpp::Element::NodeList::iterator iter; + + // Search for the first non-text XML element + for(iter = list.begin(); iter != list.end(); ++iter) + if(dynamic_cast(*iter)) break; + + if(iter==list.end()) + { + error(element, "Undefined value in "); + continue; + } + + if((*iter)->get_name()!="real") + { + error_unexpected_element((*iter),(*iter)->get_name(),"real"); + continue; + } + + ret.set_width(parse_real(dynamic_cast(*iter),canvas)); + } + else + // origin + if(child->get_name()=="origin") + { + xmlpp::Element::NodeList list = child->get_children(); + xmlpp::Element::NodeList::iterator iter; + + // Search for the first non-text XML element + for(iter = list.begin(); iter != list.end(); ++iter) + if(dynamic_cast(*iter)) break; + + if(iter==list.end()) + { + error(element, "Undefined value in "); + continue; + } + + if((*iter)->get_name()!="real") + { + error_unexpected_element((*iter),(*iter)->get_name(),"real"); + continue; + } + + ret.set_origin(parse_real(dynamic_cast(*iter),canvas)); + } + else + error_unexpected_element(child,child->get_name()); + } + return ret; +} + +Angle +CanvasParser::parse_angle(xmlpp::Element *element,Canvas::Handle canvas) +{ + assert(element->get_name()=="angle"); + + if(!element->get_children().empty()) + warning(element, strprintf(_("<%s> should not contain anything"),"angle")); + + if(!element->get_attribute("value")) + { + error(element,strprintf(_("<%s> is missing \"value\" attribute"),"angle")); + return Angle(); + } + + string val=element->get_attribute("value")->get_value(); + + return Angle::deg(atof(val.c_str())); +} + +ValueBase +CanvasParser::parse_value(xmlpp::Element *element,Canvas::Handle canvas) +{ + if(element->get_name()=="real") + return parse_real(element,canvas); + else + if(element->get_name()=="time") + return parse_time(element,canvas); + else + if(element->get_name()=="integer") + return parse_integer(element,canvas); + else + if(element->get_name()=="string") + return parse_string(element,canvas); + else + if(element->get_name()=="vector") + { + return parse_vector(element,canvas); + } + else + if(element->get_name()=="color") + return parse_color(element,canvas); + else + if(element->get_name()=="segment") + return parse_segment(element,canvas); + else + if(element->get_name()=="list") + return parse_list(element,canvas); + else + if(element->get_name()=="gradient") + return parse_gradient(element,canvas); + else + if(element->get_name()=="bool") + return parse_bool(element,canvas); + else + //if(element->get_name()=="canvas") + // return parse_canvas(element,canvas,true); // inline canvas + //else + if(element->get_name()=="angle" || element->get_name()=="degrees" || element->get_name()=="radians" || element->get_name()=="rotations") + return parse_angle(element,canvas); + else + if(element->get_name()=="bline_point") + return parse_bline_point(element,canvas); + else + if(element->get_name()=="canvas") + return ValueBase(parse_canvas(element,canvas,true)); + else + { + DEBUGPOINT(); + error_unexpected_element(element,element->get_name()); + } + + return ValueBase(); +} + + + + +ValueNode_Animated::Handle +CanvasParser::parse_animated(xmlpp::Element *element,Canvas::Handle canvas) +{ + assert(element->get_name()=="hermite" || element->get_name()=="animated"); + + if(!element->get_attribute("type")) + { + error(element,"Missing attribute \"type\" in "); + return ValueNode_Animated::Handle(); + } + + ValueBase::Type type=ValueBase::ident_type(element->get_attribute("type")->get_value()); + + if(!type) + { + error(element,"Bad type in "); + return ValueNode_Animated::Handle(); + } + + ValueNode_Animated::Handle value_node=ValueNode_Animated::create(type); + + if(!value_node) + { + error(element,strprintf(_("Unable to create with type \"%s\""),ValueBase::type_name(type).c_str())); + return ValueNode_Animated::Handle(); + } + + value_node->set_root_canvas(canvas->get_root()); + + xmlpp::Element::NodeList list = element->get_children(); + for(xmlpp::Element::NodeList::iterator iter = list.begin(); iter != list.end(); ++iter) + { + xmlpp::Element *child(dynamic_cast(*iter)); + if(!child) + continue; + else + if(child->get_name()=="waypoint") + { + if(!child->get_attribute("time")) + { + error(child,_(" is missing attribute \"time\"")); + continue; + } + + Time time(child->get_attribute("time")->get_value(),canvas->rend_desc().get_frame_rate()); + + + ValueNode::Handle waypoint_value_node; + + if(child->get_attribute("use")) + { + waypoint_value_node=canvas->surefind_value_node(child->get_attribute("use")->get_value()); + } + else + { + if(child->get_children().empty()) + { + error(child, strprintf(_("<%s> is missing its data"),"waypoint")); + continue; + } + + xmlpp::Element::NodeList list = child->get_children(); + xmlpp::Element::NodeList::iterator iter; + + // Search for the first non-text XML element + for(iter = list.begin(); iter != list.end(); ++iter) + if(dynamic_cast(*iter)) break; + + if(iter==list.end()) + { + error(child, strprintf(_("<%s> is missing its data"),"waypoint")); + continue; + } + + waypoint_value_node=parse_value_node(dynamic_cast(*iter),canvas); + + /* + ValueBase data=parse_value(dynamic_cast(*iter),canvas); + + if(!data.is_valid()) + { + error(child,_("Bad data for ")); + continue; + } + */ + if(!waypoint_value_node) + { + error(child,_("Bad data for ")); + continue; + } + + /*! HACK -- This is a temporary fix to help repair some + ** weirdness that is currently going on (10-21-2004). + ** This short circuits the linking of waypoints, + ** a feature which is so obscure that we can get + ** away with something like this pretty easily. + */ + waypoint_value_node=waypoint_value_node->clone(); + + // Warn if there is trash after the param value + for(iter++; iter != list.end(); ++iter) + if(dynamic_cast(*iter)) + warning((*iter),strprintf(_("Unexpected element <%s> after data, ignoring..."),(*iter)->get_name().c_str())); + } + + + try { + ValueNode_Animated::WaypointList::iterator waypoint=value_node->new_waypoint(time,waypoint_value_node); + + if(child->get_attribute("tension")) + { + synfig::String str(child->get_attribute("tension")->get_value()); + waypoint->set_tension(atof(str.c_str())); + } + if(child->get_attribute("temporal-tension")) + { + synfig::String str(child->get_attribute("temporal-tension")->get_value()); + waypoint->set_time_tension(atof(str.c_str())); + } + if(child->get_attribute("continuity")) + { + synfig::String str(child->get_attribute("continuity")->get_value()); + waypoint->set_continuity(atof(str.c_str())); + } + if(child->get_attribute("bias")) + { + synfig::String str(child->get_attribute("bias")->get_value()); + waypoint->set_bias(atof(str.c_str())); + } + + if(child->get_attribute("before")) + { + string val=child->get_attribute("before")->get_value(); + if(val=="halt") + waypoint->set_before(INTERPOLATION_HALT); + else if(val=="constant") + waypoint->set_before(INTERPOLATION_CONSTANT); + else if(val=="linear") + waypoint->set_before(INTERPOLATION_LINEAR); + else if(val=="manual") + waypoint->set_before(INTERPOLATION_MANUAL); + else if(val=="auto") + waypoint->set_before(INTERPOLATION_TCB); + else + error(child,strprintf(_("\"%s\" not a valid value for attribute \"%s\" in <%s>"),val.c_str(),"before","waypoint")); + } + + if(child->get_attribute("after")) + { + string val=child->get_attribute("after")->get_value(); + if(val=="halt") + waypoint->set_after(INTERPOLATION_HALT); + else if(val=="constant") + waypoint->set_after(INTERPOLATION_CONSTANT); + else if(val=="linear") + waypoint->set_after(INTERPOLATION_LINEAR); + else if(val=="manual") + waypoint->set_after(INTERPOLATION_MANUAL); + else if(val=="auto") + waypoint->set_after(INTERPOLATION_TCB); + else + error(child,strprintf(_("\"%s\" not a valid value for attribute \"%s\" in <%s>"),val.c_str(),"before","waypoint")); + } + } + catch(Exception::BadTime x) + { + warning(child,x.what()); + } + continue; + + } + else + error_unexpected_element(child,child->get_name()); + } + value_node->changed(); + return value_node; +} + +// This function is a phase-out hack for the timed swap value node +etl::handle +CanvasParser::parse_timedswap(xmlpp::Element *node,Canvas::Handle canvas) +{ + ValueNode_TimedSwap::Handle timed_swap(parse_linkable_value_node(node,canvas)); + + assert(timed_swap); + + ValueNode_Animated::Handle animated(ValueNode_Animated::create(timed_swap->get_type())); + + animated->set_root_canvas(canvas->get_root()); + + assert(animated); + + Time swap_time, swap_length; + (*timed_swap->get_swap_time())(0).put(&swap_time); + (*timed_swap->get_swap_length())(0).put(&swap_length); + + animated->new_waypoint(swap_time-swap_length,timed_swap->get_before()); + animated->new_waypoint(swap_time,timed_swap->get_after()); + + return animated; +} + + +handle +CanvasParser::parse_subtract(xmlpp::Element *element,Canvas::Handle canvas) +{ + assert(element->get_name()=="subtract"); + + handle value_node; + handle lhs,rhs,scalar; + + if(element->get_attribute("type")) + { + ValueBase::Type type=ValueBase::ident_type(element->get_attribute("type")->get_value()); + + if(!type) + { + error(element,"Bad type in "); + return ValueNode_Subtract::Handle(); + } + value_node=ValueNode_Subtract::create(type); + } + else + value_node=ValueNode_Subtract::create(); + + if(!value_node) + { + error(element,strprintf(_("Unable to create "))); + return handle(); + } + + //if(element->get_attribute("scalar")) + //{ + // value_node->set_scalar(atof(element->get_attribute("scalar")->get_value().c_str())); + //} + + try + { + if(element->get_attribute("scalar")) + { + // This is for compatibility with older versions of the file format + String value(element->get_attribute("scalar")->get_value()); + if((value[0]<='9' && value[0]>='0') || value[0]=='-') + { + warning(element, _("Use of a real value where the ID should be is deprecated")); + value_node->set_scalar(atof(value.c_str())); + } + else + value_node->set_scalar(canvas->surefind_value_node(value)); + scalar=value_node->get_scalar(); + } + + if(element->get_attribute("lhs")) + { + lhs=canvas->surefind_value_node(element->get_attribute("lhs")->get_value()); + value_node->set_lhs(lhs); + } + + if(element->get_attribute("rhs")) + { + rhs=canvas->surefind_value_node(element->get_attribute("rhs")->get_value()); + value_node->set_rhs(rhs); + } + } + catch (Exception::IDNotFound) + { + error(element,"attribute in references unknown ID"); + } + catch (Exception::FileNotFound) + { + error(element,"Unable to open external file referenced in ID"); + } + + xmlpp::Element::NodeList list = element->get_children(); + for(xmlpp::Element::NodeList::iterator iter = list.begin(); iter != list.end(); ++iter) + { + xmlpp::Element *child(dynamic_cast(*iter)); + if(!child) + continue; + else + if(child->get_name()=="lhs") + { + if(lhs) + { + error(child,"LHS component of already defined!"); + continue; + } + + xmlpp::Element::NodeList list = child->get_children(); + xmlpp::Element::NodeList::iterator iter; + + // Search for the first non-text XML element + for(iter = list.begin(); iter != list.end(); ++iter) + if(dynamic_cast(*iter)) break; + + if(iter==list.end()) + { + error(child,_(" is missing its contents")); + continue; + } + + lhs=parse_value_node(dynamic_cast(*iter),canvas); + + if(lhs) + value_node->set_lhs(lhs); + else + { + error((*iter),"Parse of LHS ValueNode failed"); + } + + // \todo do a search for more elements and warn if they are found + } + else + if(child->get_name()=="rhs") + { + if(rhs) + { + error(child,"RHS component of already defined!"); + continue; + } + + xmlpp::Element::NodeList list = child->get_children(); + xmlpp::Element::NodeList::iterator iter; + + // Search for the first non-text XML element + for(iter = list.begin(); iter != list.end(); ++iter) + if(dynamic_cast(*iter)) break; + + if(iter==list.end()) + { + error(child,_(" is missing its contents")); + continue; + } + + rhs=parse_value_node(dynamic_cast(*iter),canvas); + + if(rhs) + value_node->set_rhs(rhs); + else + { + error((*iter),"Parse of RHS ValueNode failed"); + } + + // \todo do a search for more elements and warn if they are found + } + else + if(child->get_name()=="scalar") + { + if(scalar) + { + error(child,"scalar component of already defined!"); + continue; + } + + xmlpp::Element::NodeList list = child->get_children(); + xmlpp::Element::NodeList::iterator iter; + + // Search for the first non-text XML element + for(iter = list.begin(); iter != list.end(); ++iter) + if(dynamic_cast(*iter)) break; + + if(iter==list.end()) + { + error(child,_(" is missing its contents")); + continue; + } + + scalar=parse_value_node(dynamic_cast(*iter),canvas); + + if(scalar) + value_node->set_scalar(scalar); + else + { + error((*iter),"Parse of scalar ValueNode failed"); + } + + // \todo do a search for more elements and warn if they are found + } + else + error_unexpected_element(child,child->get_name()); + } + + if(!value_node->get_rhs() || !value_node->get_lhs() || !value_node->get_scalar()) + error(element," is missing LHS, RHS, or SCALAR"); + + if(value_node->get_rhs() == value_node->get_lhs()) + warning(element,"LHS is equal to RHS in , so this value_node will always be zero!"); + + return value_node; +} + +etl::handle +CanvasParser::parse_linkable_value_node(xmlpp::Element *element,Canvas::Handle canvas) +{ + handle value_node; + ValueBase::Type type; + + // Determine the type + if(element->get_attribute("type")) + { + type=ValueBase::ident_type(element->get_attribute("type")->get_value()); + + if(!type) + { + error(element,"Bad type in ValueNode"); + return 0; + } + } + else + { + error(element,"Missing type in ValueNode"); + return 0; + } + + value_node=LinkableValueNode::create(element->get_name(),type); + + if(!value_node) + { + error(element,"Unknown ValueNode type "+element->get_name()); + return 0; + } + + if(value_node->get_type()!=type) + { + error(element,"ValueNode did not accept type"); + return 0; + } + + value_node->set_root_canvas(canvas->get_root()); + + int i; + for(i=0;ilink_count();i++) + { + if(element->get_attribute(value_node->link_name(i))) + try { + String id(element->get_attribute(value_node->link_name(i))->get_value()); + + if(!value_node->set_link(i, + canvas->surefind_value_node( + id + ) + ) + ) error(element,strprintf(_("Unable to set link \"%s\" to ValueNode \"%s\" (link #%d in \"%s\")"),value_node->link_name(i).c_str(),id.c_str(),i,value_node->get_name().c_str())); + } + catch(Exception::IDNotFound) + { + error(element,"Unable to resolve "+element->get_attribute(value_node->link_name(i))->get_value()); + } + catch(Exception::FileNotFound) + { + error(element,"Unable to open file referenced in "+element->get_attribute(value_node->link_name(i))->get_value()); + } + catch(...) + { + error(element,strprintf(_("Unknown Exception thrown when referencing ValueNode \"%s\""), + element->get_attribute(value_node->link_name(i))->get_value().c_str())); + throw; + } + } + + + + xmlpp::Element::NodeList list = element->get_children(); + for(xmlpp::Element::NodeList::iterator iter = list.begin(); iter != list.end(); ++iter) + { + xmlpp::Element *child(dynamic_cast(*iter)); + try + { + if(!child) + continue; + int index=value_node->get_link_index_from_name(child->get_name()); + + xmlpp::Element::NodeList list = child->get_children(); + xmlpp::Element::NodeList::iterator iter; + + // Search for the first non-text XML element + for(iter = list.begin(); iter != list.end(); ++iter) + if(dynamic_cast(*iter)) break; + + if(iter==list.end()) + { + error(child,_("element is missing its contents")); + continue; + } + + ValueNode::Handle link=parse_value_node(dynamic_cast(*iter),canvas); + + if(!link) + { + error((*iter),"Parse of ValueNode failed"); + } + else + if(!value_node->set_link(index,link)) + { + //error(dynamic_cast(*iter),strprintf("Unable to connect value node ('%s' of type '%s') to link %d",link->get_name().c_str(),ValueBase::type_name(link->get_type()).c_str(),index)); + error(element,strprintf("Unable to connect value node ('%s' of type '%s') to link %d",link->get_name().c_str(),ValueBase::type_name(link->get_type()).c_str(),index)); + } + + // \todo do a search for more elements and warn if they are found + + } + catch(Exception::BadLinkName) + { + error_unexpected_element(child,child->get_name()); + } + catch(...) + { + error(child,strprintf(_("Unknown Exception thrown when working on element \"%s\""),child->get_name().c_str())); + throw; + } + } + + return value_node; +} + +handle +CanvasParser::parse_composite(xmlpp::Element *element,Canvas::Handle canvas) +{ + assert(element->get_name()=="composite"); + + if(!element->get_attribute("type")) + { + error(element,"Missing attribute \"type\" in "); + return handle(); + } + + ValueBase::Type type=ValueBase::ident_type(element->get_attribute("type")->get_value()); + + if(!type) + { + error(element,"Bad type in "); + return handle(); + } + + handle value_node=ValueNode_Composite::create(type); + handle c[6]; + + if(!value_node) + { + error(element,strprintf(_("Unable to create "))); + return handle(); + } + + int i; + + for(i=0;ilink_count();i++) + { + string name=strprintf("c%d",i+1); + if(c[i]) + { + error(element,name+" was already defined in "); + continue; + } + if(element->get_attribute(name)) + { + c[i]=canvas->surefind_value_node(element->get_attribute(name)->get_value()); + if(c[i]) + { + if(!value_node->set_link(i,c[i])) + { + error(element,'"'+name+"\" attribute in has bad type"); + } + } + else + error(element,'"'+name+"\" attribute in references unknown ID"); + } + } + + xmlpp::Element::NodeList list = element->get_children(); + for(xmlpp::Element::NodeList::iterator iter = list.begin(); iter != list.end(); ++iter) + { + xmlpp::Element *child(dynamic_cast(*iter)); + if(!child) + continue; + else + for(i=0;ilink_count();i++) + { + string name=strprintf("c%d",i+1); + if(child->get_name()==name) + { + if(c[i]) + { + error(child,name+" was already defined in "); + break; + } + + xmlpp::Element::NodeList list = child->get_children(); + xmlpp::Element::NodeList::iterator iter; + + // Search for the first non-text XML element + for(iter = list.begin(); iter != list.end(); ++iter) + if(dynamic_cast(*iter)) break; + + if(iter==list.end()) + { + error(child,strprintf(_("<%s> is missing its contents"),name.c_str())); + break; + } + + c[i]=parse_value_node(dynamic_cast(*iter),canvas); + + if(!c[i]) + { + error((*iter),"Parse of "+name+" ValueNode failed"); + break; + } + + if(!value_node->set_link(i,c[i])) + { + error(child,strprintf(_("<%s> has a bad value"),name.c_str())); + break; + } + + // \todo do a search for more elements and warn if they are found + break; + } + } + // somewhat of a hack, but it works + if(i==value_node->link_count()) error_unexpected_element(child,child->get_name()); + } + + switch(value_node->link_count()) + { + case 1: + if(!value_node->get_link(0)) + { + error(element," is missing parameters"); + return handle(); + } + break; + case 2: + if(!value_node->get_link(0) ||!value_node->get_link(1)) + { + error(element," is missing parameters"); + return handle(); + } + break; + case 3: + if(!value_node->get_link(0) ||!value_node->get_link(1) ||!value_node->get_link(2)) + { + error(element," is missing parameters"); + return handle(); + } + break; + case 4: + if(!value_node->get_link(0) ||!value_node->get_link(1) ||!value_node->get_link(2) ||!value_node->get_link(3)) + { + error(element," is missing parameters"); + return handle(); + } + break; + } + return value_node; +} + +// This will also parse a bline +handle +CanvasParser::parse_dynamic_list(xmlpp::Element *element,Canvas::Handle canvas) +{ + assert(element->get_name()=="dynamic_list" || element->get_name()=="bline"); + + const float fps(canvas?canvas->rend_desc().get_frame_rate():0); + + if(!element->get_attribute("type")) + { + error(element,"Missing attribute \"type\" in "); + return handle(); + } + + ValueBase::Type type=ValueBase::ident_type(element->get_attribute("type")->get_value()); + + if(!type) + { + error(element,"Bad type in "); + return handle(); + } + + handle value_node; + handle bline_value_node; + + if(element->get_name()=="bline") + { + value_node=bline_value_node=ValueNode_BLine::create(); + if(element->get_attribute("loop")) + { + String loop=element->get_attribute("loop")->get_value(); + if(loop=="true" || loop=="1" || loop=="TRUE" || loop=="True") + bline_value_node->set_loop(true); + else + bline_value_node->set_loop(false); + } + + } + else + value_node=ValueNode_DynamicList::create(type); + + if(!value_node) + { + error(element,strprintf(_("Unable to create "))); + return handle(); + } + + value_node->set_root_canvas(canvas->get_root()); + + xmlpp::Element::NodeList list = element->get_children(); + for(xmlpp::Element::NodeList::iterator iter = list.begin(); iter != list.end(); ++iter) + { + xmlpp::Element *child(dynamic_cast(*iter)); + if(!child) + continue; + else + if(child->get_name()=="entry") + { + ValueNode_DynamicList::ListEntry list_entry; + + // Parse begin/end waypoints + { + typedef synfig::ValueNode_DynamicList::ListEntry::Activepoint Activepoint; + typedef synfig::ValueNode_DynamicList::ListEntry::ActivepointList ActivepointList; + + String begin_sequence; + String end_sequence; + + ActivepointList &timing_info(list_entry.timing_info); + + if(child->get_attribute("begin")) + begin_sequence=child->get_attribute("begin")->get_value(); + + if(child->get_attribute("on")) + begin_sequence=child->get_attribute("on")->get_value(); + + if(child->get_attribute("end")) + end_sequence=child->get_attribute("end")->get_value(); + + if(child->get_attribute("off")) + end_sequence=child->get_attribute("off")->get_value(); + + // clear out any auto-start + if(!begin_sequence.empty()) + timing_info.clear(); + + //! \optimize + while(!begin_sequence.empty()) + { + String::iterator iter(find(begin_sequence.begin(),begin_sequence.end(),',')); + String timecode(begin_sequence.begin(), iter); + int priority=0; + + // skip whitespace before checking for a priority + while (isspace(timecode[0])) + timecode=timecode.substr(1); + + // If there is a priority, then grab it and remove + // it from the timecode + if(timecode[0]=='p') + { + //priority=timecode[1]-'0'; + //timecode=String(timecode.begin()+3,timecode.end()); + int space=timecode.find_first_of(' '); + priority=atoi(String(timecode,1,space-1).c_str()); + timecode=String(timecode.begin()+space+1,timecode.end()); + //synfig::info("priority: %d timecode: %s",priority,timecode.c_str()); + } + + timing_info.push_back( + Activepoint( + Time( + timecode, + fps + ), + true, // Mark as a "on" activepoint + priority + ) + ); + + if(iter==begin_sequence.end()) + begin_sequence.clear(); + else + begin_sequence=String(iter+1,begin_sequence.end()); + } + + //! \optimize + while(!end_sequence.empty()) + { + String::iterator iter(find(end_sequence.begin(),end_sequence.end(),',')); + String timecode(end_sequence.begin(), iter); + int priority=0; + + // skip whitespace before checking for a priority + while (isspace(timecode[0])) + timecode=timecode.substr(1); + + // If there is a priority, then grab it and remove + // it from the timecode + if(timecode[0]=='p') + { + //priority=timecode[1]-'0'; + //timecode=String(timecode.begin()+3,timecode.end()); + int space=timecode.find_first_of(' '); + priority=atoi(String(timecode,1,space-1).c_str()); + timecode=String(timecode.begin()+space+1,timecode.end()); + //synfig::info("priority: %d timecode: %s",priority,timecode.c_str()); + } + + timing_info.push_back( + Activepoint( + Time( + timecode, + fps + ), + false, // Mark as a "off" activepoint + priority + ) + ); + if(iter==end_sequence.end()) + end_sequence.clear(); + else + end_sequence=String(iter+1,end_sequence.end()); + } + + timing_info.sort(); + } + + if(child->get_attribute("use")) + { + string id=child->get_attribute("use")->get_value(); + try + { + list_entry.value_node=canvas->surefind_value_node(id); + } + catch(Exception::IDNotFound) + { + error(child,"\"use\" attribute in references unknown ID -- "+id); + continue; + } + } + else + { + xmlpp::Element::NodeList list = child->get_children(); + xmlpp::Element::NodeList::iterator iter; + + // Search for the first non-text XML element + for(iter = list.begin(); iter != list.end(); ++iter) + if(dynamic_cast(*iter)) break; + + if(iter==list.end()) + { + error(child,strprintf(_(" is missing its contents or missing \"use\" element"))); + continue; + } + + list_entry.value_node=parse_value_node(dynamic_cast(*iter),canvas); + + if(!list_entry.value_node) + error((*iter),"Parse of ValueNode failed"); + + // \todo do a search for more elements and warn if they are found + + } + + value_node->add(list_entry); + value_node->set_link(value_node->link_count()-1,list_entry.value_node); + } + else + error_unexpected_element(child,child->get_name()); + } + return value_node; +} + +handle +CanvasParser::parse_value_node(xmlpp::Element *element,Canvas::Handle canvas) +{ + handle value_node; + assert(element); + + GUID guid; + + if(element->get_attribute("guid")) + { + guid=GUID(element->get_attribute("guid")->get_value())^canvas->get_root()->get_guid(); + value_node=guid_cast(guid); + if(value_node) + return value_node; + } + + // If ValueBase::ident_type() recognises the name, then we know it's a ValueBase + if(element->get_name()!="canvas" && ValueBase::ident_type(element->get_name())) + { + ValueBase data=parse_value(element,canvas); + + if(!data.is_valid()) + { + error(element,strprintf(_("Bad data in <%s>"),element->get_name().c_str())); + return value_node; + } + + // We want to convert this ValueBase into a + // ValueNode_Const. That way, we can treat the + // ID like any other Datanode. Think of this + // as a shorthand for creating constant ValueNodes. + + value_node=ValueNode_Const::create(data); + } + else + if(element->get_name()=="hermite" || element->get_name()=="animated") + value_node=parse_animated(element,canvas); + else + if(element->get_name()=="subtract") + value_node=parse_subtract(element,canvas); + else + if(element->get_name()=="composite") + value_node=parse_composite(element,canvas); + else + if(element->get_name()=="dynamic_list") + value_node=parse_dynamic_list(element,canvas); + else + if(element->get_name()=="bline") // This is not a typo. The dynamic list parser will parse a bline. + value_node=parse_dynamic_list(element,canvas); + else + if(element->get_name()=="timed_swap") + value_node=parse_timedswap(element,canvas); + else + if(LinkableValueNode::book().count(element->get_name())) + value_node=parse_linkable_value_node(element,canvas); + else + if(element->get_name()=="canvas") + value_node=ValueNode_Const::create(parse_canvas(element,canvas,true)); + else + { + error_unexpected_element(element,element->get_name()); + error(element, "Expected a ValueNode"); + } + + + value_node->set_root_canvas(canvas->get_root()); + + + // If we were successful, and our element has + // an ID attribute, go ahead and add it to the + // value_node list + if(value_node && element->get_attribute("id")) + { + string id=element->get_attribute("id")->get_value(); + + //value_node->set_id(id); + + // If there is already a value_node in the list + // with the same ID, then that is an error + try { canvas->add_value_node(value_node,id); } + catch(Exception::BadLinkName) + { + warning(element,strprintf(_("Bad ID \"%s\""),id.c_str())); + return value_node; + } + catch(Exception::IDAlreadyExists) + { + error(element,strprintf(_("Duplicate ID \"%s\""),id.c_str())); + return value_node; + } + catch(...) + { + error(element,strprintf(_("Unknown Exception thrown when adding ValueNode \"%s\""),id.c_str())); + throw; + } + } + value_node->set_guid(guid); + return value_node; +} + +void +CanvasParser::parse_canvas_defs(xmlpp::Element *element,Canvas::Handle canvas) +{ + assert(element->get_name()=="defs"); + xmlpp::Element::NodeList list = element->get_children(); + for(xmlpp::Element::NodeList::iterator iter = list.begin(); iter != list.end(); ++iter) + { + xmlpp::Element *child(dynamic_cast(*iter)); + if(!child) + continue; + else + if(child->get_name()=="canvas") + parse_canvas(child, canvas); + else + parse_value_node(child,canvas); + } +} + +Layer::Handle +CanvasParser::parse_layer(xmlpp::Element *element,Canvas::Handle canvas) +{ + + assert(element->get_name()=="layer"); + Layer::Handle layer; + + if(!element->get_attribute("type")) + { + error(element,_("Missing \"type\" attribute to \"layer\" element")); + return Layer::Handle(); + } + + layer=Layer::create(element->get_attribute("type")->get_value()); + layer->set_canvas(canvas); + + if(element->get_attribute("group")) + { + layer->add_to_group( + element->get_attribute("group")->get_value() + ); + } + + // Handle the version attribute + if(element->get_attribute("version")) + { + String version(element->get_attribute("version")->get_value()); + if(version>layer->get_version()) + warning(element,_("Installed layer version is larger than layer version in file")); + if(version!=layer->get_version()) + layer->set_version(version); + } + + // Handle the description + if(element->get_attribute("desc")) + layer->set_description(element->get_attribute("desc")->get_value()); + + if(element->get_attribute("active")) + layer->set_active(element->get_attribute("active")->get_value()=="false"?false:true); + + xmlpp::Element::NodeList list = element->get_children(); + for(xmlpp::Element::NodeList::iterator iter = list.begin(); iter != list.end(); ++iter) + { + xmlpp::Element *child(dynamic_cast(*iter)); + if(!child) + continue; + else + if(child->get_name()=="name") + warning(child,_(" entry for is not yet supported. Ignoring...")); + else + if(child->get_name()=="desc") + warning(child,_(" entry for is not yet supported. Ignoring...")); + else + if(child->get_name()=="param") + { + xmlpp::Element::NodeList list = child->get_children(); + + if(!child->get_attribute("name")) + { + error(child,_("Missing \"name\" attribute for .")); + continue; + } + + String param_name=child->get_attribute("name")->get_value(); + + if(child->get_attribute("use")) + { + // If the "use" attribute is used, then the + // element should be empty. Warn the user if + // we find otherwise. + if(!list.empty()) + warning(child,_("Found \"use\" attribute for , but it wasn't empty. Ignoring contents...")); + + String str= child->get_attribute("use")->get_value(); + + if(layer->get_param(param_name).get_type()==ValueBase::TYPE_CANVAS) + { + if(!layer->set_param(param_name,canvas->surefind_canvas(str))) + error((*iter),_("Layer rejected canvas link")); + } + else + try + { + handle value_node=canvas->surefind_value_node(str); + + // Assign the value_node to the dynamic parameter list + layer->connect_dynamic_param(param_name,value_node); + } + catch(Exception::IDNotFound) + { + error(child,strprintf(_("Unknown ID (%s) referenced in "),str.c_str())); + } + + continue; + } + + xmlpp::Element::NodeList::iterator iter; + + // Search for the first non-text XML element + for(iter = list.begin(); iter != list.end(); ++iter) + if(dynamic_cast(*iter)) + break; + //if(!(!dynamic_cast(*iter) && (*iter)->get_name()=="text"||(*iter)->get_name()=="comment" )) break; + + if(iter==list.end()) + { + error(child,_(" is either missing its contents, or missing a \"use\" attribute.")); + continue; + } + + // If we recognise the element name as a + // ValueBase, then treat is at one + if(/*(*iter)->get_name()!="canvas" && */ValueBase::ident_type((*iter)->get_name()) && !dynamic_cast(*iter)->get_attribute("guid")) + { + ValueBase data=parse_value(dynamic_cast(*iter),canvas); + + if(!data.is_valid()) + { + error((*iter),_("Bad data for ")); + continue; + } + + // Set the layer's parameter, and make sure that + // the layer liked it + if(!layer->set_param(param_name,data)) + { + warning((*iter),_("Layer rejected value for ")); + continue; + } + } + else // ... otherwise, we assume that it is a ValueNode + { + handle value_node=parse_value_node(dynamic_cast(*iter),canvas); + + if(!value_node) + { + error((*iter),_("Bad data for ")); + continue; + } + + // Assign the value_node to the dynamic parameter list + layer->connect_dynamic_param(param_name,value_node); + } + + // Warn if there is trash after the param value + for(iter++; iter != list.end(); ++iter) + if(dynamic_cast(*iter)) + warning((*iter),strprintf(_("Unexpected element <%s> after data, ignoring..."),(*iter)->get_name().c_str())); + continue; + } + else + error_unexpected_element(child,child->get_name()); + } + + layer->reset_version(); + return layer; +} + +Canvas::Handle +CanvasParser::parse_canvas(xmlpp::Element *element,Canvas::Handle parent,bool inline_, String filename) +{ + + if(element->get_name()!="canvas") + { + error_unexpected_element(element,element->get_name(),"canvas"); + return Canvas::Handle(); + } + Canvas::Handle canvas; + + + + if(parent && (element->get_attribute("id") || inline_)) + { + if(inline_) + { + canvas=Canvas::create_inline(parent); + } + else + { + try + { + canvas=parent->find_canvas(element->get_attribute("id")->get_value()); + } + catch(...) + { + canvas=parent->new_child_canvas(element->get_attribute("id")->get_value()); + } + } + canvas->rend_desc().clear_flags(); + } + else + { + canvas=Canvas::create(); + if(filename=="/dev/stdin") + canvas->set_file_name("./stdin.sif"); + else + canvas->set_file_name(filename); + canvas->rend_desc().clear_flags(); + } + + if(element->get_attribute("guid")) + { + GUID guid(element->get_attribute("guid")->get_value()); + if(guid_cast(guid)) + return guid_cast(guid); + else + canvas->set_guid(guid); + } + + if(element->get_attribute("width")) + canvas->rend_desc().set_w(atoi(element->get_attribute("width")->get_value().c_str())); + + if(element->get_attribute("height")) + canvas->rend_desc().set_h(atoi(element->get_attribute("height")->get_value().c_str())); + + if(element->get_attribute("xres")) + canvas->rend_desc().set_x_res(atof(element->get_attribute("xres")->get_value().c_str())); + + if(element->get_attribute("yres")) + canvas->rend_desc().set_y_res(atof(element->get_attribute("yres")->get_value().c_str())); + + + if(element->get_attribute("fps")) + canvas->rend_desc().set_frame_rate(atof(element->get_attribute("fps")->get_value().c_str())); + + if(element->get_attribute("start-time")) + canvas->rend_desc().set_time_start(Time(element->get_attribute("start-time")->get_value(),canvas->rend_desc().get_frame_rate())); + + if(element->get_attribute("begin-time")) + canvas->rend_desc().set_time_start(Time(element->get_attribute("begin-time")->get_value(),canvas->rend_desc().get_frame_rate())); + + if(element->get_attribute("end-time")) + canvas->rend_desc().set_time_end(Time(element->get_attribute("end-time")->get_value(),canvas->rend_desc().get_frame_rate())); + + if(element->get_attribute("antialias")) + canvas->rend_desc().set_antialias(atoi(element->get_attribute("antialias")->get_value().c_str())); + + if(element->get_attribute("view-box")) + { + string values=element->get_attribute("view-box")->get_value(); + Vector + tl, + br; + tl[0]=atof(string(values.data(),values.find(' ')).c_str()); + values=string(values.begin()+values.find(' ')+1,values.end()); + tl[1]=atof(string(values.data(),values.find(' ')).c_str()); + values=string(values.begin()+values.find(' ')+1,values.end()); + br[0]=atof(string(values.data(),values.find(' ')).c_str()); + values=string(values.begin()+values.find(' ')+1,values.end()); + br[1]=atof(values.c_str()); + + canvas->rend_desc().set_tl(tl); + canvas->rend_desc().set_br(br); + } + + if(element->get_attribute("bgcolor")) + { + string values=element->get_attribute("bgcolor")->get_value(); + Color bg; + + bg.set_r(atof(string(values.data(),values.find(' ')).c_str())); + values=string(values.begin()+values.find(' ')+1,values.end()); + + bg.set_g(atof(string(values.data(),values.find(' ')).c_str())); + values=string(values.begin()+values.find(' ')+1,values.end()); + + bg.set_b(atof(string(values.data(),values.find(' ')).c_str())); + values=string(values.begin()+values.find(' ')+1,values.end()); + + bg.set_a(atof(values.c_str())); + + canvas->rend_desc().set_bg_color(bg); + } + + if(element->get_attribute("focus")) + { + string values=element->get_attribute("focus")->get_value(); + Vector focus; + + focus[0]=atof(string(values.data(),values.find(' ')).c_str()); + values=string(values.begin()+values.find(' ')+1,values.end()); + focus[1]=atof(values.c_str()); + + canvas->rend_desc().set_focus(focus); + } + + canvas->rend_desc().set_flags(RendDesc::PX_ASPECT|RendDesc::IM_SPAN); + + xmlpp::Element::NodeList list = element->get_children(); + for(xmlpp::Element::NodeList::iterator iter = list.begin(); iter != list.end(); ++iter) + { + xmlpp::Element *child(dynamic_cast(*iter)); + if(child) + { + if(child->get_name()=="defs") + { + if(canvas->is_inline()) + error(child,_("Inline canvas cannot have a section")); + parse_canvas_defs(child, canvas); + } + else + if(child->get_name()=="keyframe") + { + if(canvas->is_inline()) + { + warning(child,_("Inline canvas cannot have keyframes")); + continue; + } + + canvas->keyframe_list().add(parse_keyframe(child,canvas)); + canvas->keyframe_list().sync(); + } + else + if(child->get_name()=="meta") + { + if(canvas->is_inline()) + { + warning(child,_("Inline canvases cannot have metadata")); + continue; + } + + String name,content; + + if(!child->get_attribute("name")) + { + warning(child,_(" must have a name")); + continue; + } + + if(!child->get_attribute("content")) + { + warning(child,_(" must have content")); + continue; + } + + canvas->set_meta_data(child->get_attribute("name")->get_value(),child->get_attribute("content")->get_value()); + } + else if(child->get_name()=="name") + { + xmlpp::Element::NodeList list = child->get_children(); + + // If we don't have any name, warn + if(list.empty()) + warning(child,_("blank \"name\" entitity")); + + string tmp; + for(xmlpp::Element::NodeList::iterator iter = list.begin(); iter != list.end(); ++iter) + if(dynamic_cast(*iter))tmp+=dynamic_cast(*iter)->get_content(); + canvas->set_name(tmp); + } + else + if(child->get_name()=="desc") + { + + xmlpp::Element::NodeList list = child->get_children(); + + // If we don't have any description, warn + if(list.empty()) + warning(child,_("blank \"desc\" entitity")); + + string tmp; + for(xmlpp::Element::NodeList::iterator iter = list.begin(); iter != list.end(); ++iter) + if(dynamic_cast(*iter))tmp+=dynamic_cast(*iter)->get_content(); + canvas->set_description(tmp); + } + else + if(child->get_name()=="author") + { + + xmlpp::Element::NodeList list = child->get_children(); + + // If we don't have any description, warn + if(list.empty()) + warning(child,_("blank \"author\" entitity")); + + string tmp; + for(xmlpp::Element::NodeList::iterator iter = list.begin(); iter != list.end(); ++iter) + if(dynamic_cast(*iter))tmp+=dynamic_cast(*iter)->get_content(); + canvas->set_author(tmp); + } + else + if(child->get_name()=="layer") + { + //if(canvas->is_inline()) + // canvas->push_front(parse_layer(child,canvas->parent())); + //else + canvas->push_front(parse_layer(child,canvas)); + } + else + error_unexpected_element(child,child->get_name()); + } +// else +// if((child->get_name()=="text"||child->get_name()=="comment") && child->has_child_text()) +// continue; + } + + if(canvas->value_node_list().placeholder_count()) + { + error(element,strprintf(_("Canvas %s has undefined ValueNodes"),canvas->get_id().c_str())); + } + + return canvas; +} + +Canvas::Handle +CanvasParser::parse_from_file(const String &file) +{ + return parse_from_file_as(file,file); +} + +Canvas::Handle +CanvasParser::parse_from_file_as(const String &file_,const String &as_) +{ + CHECK_EXPIRE_TIME(); + try + { + ChangeLocale change_locale(LC_NUMERIC, "C"); + String file(unix_to_local_path(file_)); + String as(unix_to_local_path(as_)); + + if(get_open_canvas_map().count(etl::absolute_path(as))) + return get_open_canvas_map()[etl::absolute_path(as)]; + + filename=as; + total_warnings_=0; + xmlpp::DomParser parser(file); + if(parser) + { + Canvas::Handle canvas(parse_canvas(parser.get_document()->get_root_node(),0,false,as)); + get_open_canvas_map()[etl::absolute_path(as)]=canvas; + canvas->signal_deleted().connect(sigc::bind(sigc::ptr_fun(_remove_from_open_canvas_map),canvas.get())); + canvas->signal_file_name_changed().connect(sigc::bind(sigc::ptr_fun(_canvas_file_name_changed),canvas.get())); + + + + const ValueNodeList& value_node_list(canvas->value_node_list()); + + again: + ValueNodeList::const_iterator iter; + for(iter=value_node_list.begin();iter!=value_node_list.end();++iter) + { + ValueNode::Handle value_node(*iter); + if(value_node->is_exported() && value_node->get_id().find("Unnamed")==0) + { + canvas->remove_value_node(value_node); + goto again; + } + } + + return canvas; + } + } + catch(Exception::BadLinkName) { synfig::error("BadLinkName Thrown"); } + catch(Exception::BadType) { synfig::error("BadType Thrown"); } + catch(Exception::FileNotFound) { synfig::error("FileNotFound Thrown"); } + catch(Exception::IDNotFound) { synfig::error("IDNotFound Thrown"); } + catch(Exception::IDAlreadyExists) { synfig::error("IDAlreadyExists Thrown"); } + catch(const std::exception& ex) + { + synfig::error("Standard Exception: "+String(ex.what())); + return Canvas::Handle(); + } + catch(const String& str) + { + cerr<"); + total_warnings_=0; + xmlpp::DomParser parser; + parser.parse_memory(data); + xmlpp::Element *root=parser.get_document()->get_root_node(); + if(parser) + { + Canvas::Handle canvas(parse_canvas(root)); + canvas->signal_deleted().connect(sigc::bind(sigc::ptr_fun(_remove_from_open_canvas_map),canvas.get())); + canvas->signal_file_name_changed().connect(sigc::bind(sigc::ptr_fun(_canvas_file_name_changed),canvas.get())); + + const ValueNodeList& value_node_list(canvas->value_node_list()); + again: + ValueNodeList::const_iterator iter; + for(iter=value_node_list.begin();iter!=value_node_list.end();++iter) + { + ValueNode::Handle value_node(*iter); + if(value_node->is_exported() && value_node->get_id().find("Unnamed")==0) + { + canvas->remove_value_node(value_node); + goto again; + } + } + + return canvas; + } + } + catch(Exception::BadLinkName) { synfig::error("BadLinkName Thrown"); } + catch(Exception::BadType) { synfig::error("BadType Thrown"); } + catch(Exception::FileNotFound) { synfig::error("FileNotFound Thrown"); } + catch(Exception::IDNotFound) { synfig::error("IDNotFound Thrown"); } + catch(Exception::IDAlreadyExists) { synfig::error("IDAlreadyExists Thrown"); } + catch(const std::exception& ex) + { + synfig::error("Standard Exception: "+String(ex.what())); + return Canvas::Handle(); + } + catch(const String& str) + { + cerr< parse_layer(xmlpp::Element *node,Canvas::Handle canvas); + ValueBase parse_value(xmlpp::Element *node,Canvas::Handle canvas); + etl::handle parse_value_node(xmlpp::Element *node,Canvas::Handle canvas); + + // ValueBase Parsing Functions + + Real parse_real(xmlpp::Element *node,Canvas::Handle canvas); + Time parse_time(xmlpp::Element *node,Canvas::Handle canvas); + int parse_integer(xmlpp::Element *node,Canvas::Handle canvas); + Vector parse_vector(xmlpp::Element *node,Canvas::Handle canvas); + Color parse_color(xmlpp::Element *node,Canvas::Handle canvas); + Angle parse_angle(xmlpp::Element *node,Canvas::Handle canvas); + String parse_string(xmlpp::Element *node,Canvas::Handle canvas); + bool parse_bool(xmlpp::Element *node,Canvas::Handle canvas); + Segment parse_segment(xmlpp::Element *node,Canvas::Handle canvas); + ValueBase parse_list(xmlpp::Element *node,Canvas::Handle canvas); + Gradient parse_gradient(xmlpp::Element *node,Canvas::Handle canvas); + BLinePoint parse_bline_point(xmlpp::Element *node,Canvas::Handle canvas); + + Keyframe parse_keyframe(xmlpp::Element *node,Canvas::Handle canvas); + + // ValueNode Parsing Functions + + etl::handle parse_animated(xmlpp::Element *node,Canvas::Handle canvas); + etl::handle parse_subtract(xmlpp::Element *node,Canvas::Handle canvas); + etl::handle parse_timedswap(xmlpp::Element *node,Canvas::Handle canvas); + etl::handle parse_linkable_value_node(xmlpp::Element *node,Canvas::Handle canvas); + etl::handle parse_composite(xmlpp::Element *node,Canvas::Handle canvas); + etl::handle parse_dynamic_list(xmlpp::Element *node,Canvas::Handle canvas); + +}; // END of CanvasParser + +/* === E X T E R N S ======================================================= */ + +//! Loads a canvas from \a filename +/*! \return The Canvas's handle on success, an empty handle on failure */ +extern Canvas::Handle open_canvas(const String &filename); +extern Canvas::Handle open_canvas_as(const String &filename,const String &as); + +//! Retrieves a Canvas from a string in XML format +extern Canvas::Handle string_to_canvas(const String &data); + +std::map >& get_open_canvas_map(); + +}; // END of namespace synfig + +/* === E N D =============================================================== */ + +#endif diff --git a/synfig-core/tags/stable/src/synfig/main.cpp b/synfig-core/tags/stable/src/synfig/main.cpp new file mode 100644 index 0000000..6a532ea --- /dev/null +++ b/synfig-core/tags/stable/src/synfig/main.cpp @@ -0,0 +1,438 @@ +/* === S Y N F I G ========================================================= */ +/*! \file synfig/main.cpp +** \brief \writeme +** +** $Id$ +** +** \legal +** Copyright (c) 2002-2005 Robert B. Quattlebaum Jr., Adrian Bentley +** +** This package is free software; you can redistribute it and/or +** modify it under the terms of the GNU General Public License as +** published by the Free Software Foundation; either version 2 of +** the License, or (at your option) any later version. +** +** This package is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +** General Public License for more details. +** \endlegal +*/ +/* ========================================================================= */ + +/* === H E A D E R S ======================================================= */ + +//#define SYNFIG_NO_ANGLE + +#ifdef USING_PCH +# include "pch.h" +#else +#ifdef HAVE_CONFIG_H +# include +#endif + +#include +#include "version.h" +#include "general.h" +#include "module.h" +#include +#include +#include +#include "target.h" +#include +#include "listimporter.h" +#include "color.h" +#include "vector.h" +#include +#include "layer.h" +#include "valuenode.h" + +#include "main.h" +#include "loadcanvas.h" + +#include "guid.h" + +#include "mutex.h" + +#ifdef DEATH_TIME +#include +#endif + +#ifdef HAVE_SIGNAL_H +#include +#endif + +#endif + +using namespace std; +using namespace etl; +using namespace synfig; + +/* === M A C R O S ========================================================= */ + +#define MODULE_LIST_FILENAME "synfig_modules.cfg" + +/* === S T A T I C S ======================================================= */ + +static etl::reference_counter synfig_ref_count_(0); + +/* === P R O C E D U R E S ================================================= */ + +/* === M E T H O D S ======================================================= */ + + + + + + + + +const char * +synfig::get_version() +{ +#ifdef VERSION + return VERSION; +#else + return "Unknown"; +#endif +} + +const char * +synfig::get_build_date() +{ + return __DATE__; +} + +const char * +synfig::get_build_time() +{ + return __TIME__; +} + +extern const char *get_build_time(); + +bool +synfig::check_version_(int version,int vec_size, int color_size,int canvas_size,int layer_size) +{ + bool ret=true; + + CHECK_EXPIRE_TIME(); + + if(version!=SYNFIG_LIBRARY_VERSION) + { + synfig::error(_("API Version mismatch (LIB:%d, PROG:%d)"),SYNFIG_LIBRARY_VERSION,version); + ret=false; + } + if(vec_size!=sizeof(Vector)) + { + synfig::error(_("Size of Vector mismatch (app:%d, lib:%d)"),vec_size,sizeof(Vector)); + ret=false; + } + if(color_size!=sizeof(Color)) + { + synfig::error(_("Size of Color mismatch (app:%d, lib:%d)"),color_size,sizeof(Color)); + ret=false; + } + if(canvas_size!=sizeof(Canvas)) + { + synfig::error(_("Size of Canvas mismatch (app:%d, lib:%d)"),canvas_size,sizeof(Canvas)); + ret=false; + } + if(layer_size!=sizeof(Layer)) + { + synfig::error(_("Size of Layer mismatch (app:%d, lib:%d)"),layer_size,sizeof(Layer)); + ret=false; + } + + return ret; +} + +static void broken_pipe_signal (int sig) { + synfig::warning("Broken Pipe..."); +} + +bool retrieve_modules_to_load(String filename,std::list &modules_to_load) +{ + if(filename=="standard") + { + return false; +/* + if(find(modules_to_load.begin(),modules_to_load.end(),"trgt_bmp")==modules_to_load.end()) + modules_to_load.push_back("trgt_bmp"); + if(find(modules_to_load.begin(),modules_to_load.end(),"trgt_gif")==modules_to_load.end()) + modules_to_load.push_back("trgt_gif"); + if(find(modules_to_load.begin(),modules_to_load.end(),"trgt_dv")==modules_to_load.end()) + modules_to_load.push_back("trgt_dv"); + if(find(modules_to_load.begin(),modules_to_load.end(),"mod_ffmpeg")==modules_to_load.end()) + modules_to_load.push_back("mod_ffmpeg"); + if(find(modules_to_load.begin(),modules_to_load.end(),"mod_imagemagick")==modules_to_load.end()) + modules_to_load.push_back("mod_imagemagick"); + if(find(modules_to_load.begin(),modules_to_load.end(),"lyr_std")==modules_to_load.end()) + modules_to_load.push_back("lyr_std"); + if(find(modules_to_load.begin(),modules_to_load.end(),"lyr_freetype")==modules_to_load.end()) + modules_to_load.push_back("lyr_freetype"); +#ifdef HAVE_LIBPNG + if(find(modules_to_load.begin(),modules_to_load.end(),"trgt_png")==modules_to_load.end()) + modules_to_load.push_back("trgt_png"); +#endif +#ifdef HAVE_OPENEXR + if(find(modules_to_load.begin(),modules_to_load.end(),"mod_openexr")==modules_to_load.end()) + modules_to_load.push_back("mod_openexr"); +#endif +*/ + } + else + { + std::ifstream file(filename.c_str()); + if(!file) + { + // warning("Cannot open "+filename); + return false; + } + while(file) + { + String modulename; + getline(file,modulename); + if(!modulename.empty() && find(modules_to_load.begin(),modules_to_load.end(),modulename)==modules_to_load.end()) + modules_to_load.push_back(modulename); + } + } + + + + return true; +} + + + + + +synfig::Main::Main(const synfig::String& basepath,ProgressCallback *cb): + ref_count_(synfig_ref_count_) +{ + if(ref_count_.count()) + return; + + synfig_ref_count_.reset(); + ref_count_=synfig_ref_count_; + + // Add initialization after this point + + + CHECK_EXPIRE_TIME(); + + String prefix=basepath+"/.."; + unsigned int i; +#ifdef _DEBUG + std::set_terminate(__gnu_cxx::__verbose_terminate_handler); +#endif + +#if defined(HAVE_SIGNAL_H) && defined(SIGPIPE) + signal(SIGPIPE, broken_pipe_signal); +#endif + + //_config_search_path=new vector"string.h"(); + + // Init the subsystems + if(cb)cb->amount_complete(0, 100); + if(cb)cb->task(_("Starting Subsystem \"Modules\"")); + if(!Module::subsys_init(prefix)) + throw std::runtime_error(_("Unable to initialize subsystem \"Module\"")); + + if(cb)cb->task(_("Starting Subsystem \"Layers\"")); + if(!Layer::subsys_init()) + { + Module::subsys_stop(); + throw std::runtime_error(_("Unable to initialize subsystem \"Layers\"")); + } + + if(cb)cb->task(_("Starting Subsystem \"Targets\"")); + if(!Target::subsys_init()) + { + Layer::subsys_stop(); + Module::subsys_stop(); + throw std::runtime_error(_("Unable to initialize subsystem \"Targets\"")); + } + + if(cb)cb->task(_("Starting Subsystem \"Importers\"")); + if(!Importer::subsys_init()) + { + Target::subsys_stop(); + Layer::subsys_stop(); + Module::subsys_stop(); + throw std::runtime_error(_("Unable to initialize subsystem \"Importers\"")); + } + + if(cb)cb->task(_("Starting Subsystem \"ValueNodes\"")); + if(!ValueNode::subsys_init()) + { + Importer::subsys_stop(); + Target::subsys_stop(); + Layer::subsys_stop(); + Module::subsys_stop(); + throw std::runtime_error(_("Unable to initialize subsystem \"ValueNodes\"")); + } + + // Load up the list importer + Importer::book()[String("lst")]=ListImporter::create; + + + + // Load up the modules + std::list modules_to_load; + std::vector locations; + + if(!getenv("SYNFIG_MODULE_LIST")) + { + locations.push_back("standard"); + locations.push_back("./"MODULE_LIST_FILENAME); //1 + locations.push_back("../etc/"MODULE_LIST_FILENAME); //1 + locations.push_back("~/.synfig/"MODULE_LIST_FILENAME); //2 + locations.push_back(prefix+"/etc/"+MODULE_LIST_FILENAME); //3 + locations.push_back("/usr/local/etc/"MODULE_LIST_FILENAME); + #ifdef SYSCONFDIR + locations.push_back(SYSCONFDIR"/"MODULE_LIST_FILENAME); + #endif + #ifdef __APPLE__ + locations.push_back("/Library/Frameworks/synfig.framework/Resources/"MODULE_LIST_FILENAME); + locations.push_back("/Library/Synfig/"MODULE_LIST_FILENAME); + locations.push_back("~/Library/Synfig/"MODULE_LIST_FILENAME); + #endif + #ifdef WIN32 + locations.push_back("C:\\Program Files\\Synfig\\etc\\"MODULE_LIST_FILENAME); + #endif + } + else + { + locations.push_back(getenv("SYNFIG_MODULE_LIST")); + } +/* + const char *locations[]= + { + "standard", //0 + "./"MODULE_LIST_FILENAME, //1 + "../etc/"MODULE_LIST_FILENAME, //1 + "~/.synfig/"MODULE_LIST_FILENAME, //2 + "/usr/local/lib/synfig/modules/"MODULE_LIST_FILENAME, //3 + "/usr/local/etc/"MODULE_LIST_FILENAME, +#ifdef SYSCONFDIR + SYSCONFDIR"/"MODULE_LIST_FILENAME, +#endif +#ifdef __APPLE__ + "/Library/Frameworks/synfig.framework/Resources/"MODULE_LIST_FILENAME, + "/Library/SYNFIG/"MODULE_LIST_FILENAME, + "~/Library/SYNFIG/"MODULE_LIST_FILENAME, +#endif +#ifdef WIN32 + "C:\\Program Files\\SYNFIG\\etc\\"MODULE_LIST_FILENAME, +#endif + }; +*/ + + for(i=0;itask(strprintf(_("Loading modules from %s"),locations[i].c_str())); + + std::list::iterator iter; + + for(i=0,iter=modules_to_load.begin();iter!=modules_to_load.end();++iter,i++) + { + Module::Register(*iter,cb); + if(cb)cb->amount_complete((i+1)*100,modules_to_load.size()*100); + } + +// load_modules(cb); + + CHECK_EXPIRE_TIME(); + + + if(cb)cb->amount_complete(100, 100); + if(cb)cb->task(_("DONE")); +} + +synfig::Main::~Main() +{ + ref_count_.detach(); + if(!synfig_ref_count_.unique()) + return; + synfig_ref_count_.detach(); + + // Add deinitialization after this point + + if(get_open_canvas_map().size()) + { + synfig::warning("Canvases still open!"); + std::map >::iterator iter; + for(iter=get_open_canvas_map().begin();iter!=get_open_canvas_map().end();++iter) + { + synfig::warning("%s: count()=%d",iter->first.c_str(), iter->second.count()); + } + } + + ValueNode::subsys_stop(); + Importer::subsys_stop(); + Target::subsys_stop(); + Layer::subsys_stop(); + + /*! \fixme For some reason, uncommenting the next + ** line will cause things to crash. This needs to be + ** looked into at some point. */ + //Module::subsys_stop(); + +#if defined(HAVE_SIGNAL_H) && defined(SIGPIPE) + signal(SIGPIPE, SIG_DFL); +#endif +} + + + + + + + + + +void +synfig::error(const char *format,...) +{ + va_list args; + va_start(args,format); + error(vstrprintf(format,args)); +} + +void +synfig::error(const String &str) +{ + static Mutex mutex; Mutex::Lock lock(mutex); + cerr<<"synfig("< +#include "general.h" + +/* === M A C R O S ========================================================= */ + +/* === T Y P E D E F S ===================================================== */ + +/* === C L A S S E S & S T R U C T S ======================================= */ + +namespace synfig { + +/*! \class synfig::Main +** \brief \writeme +** +** \writeme +*/ +class Main +{ + etl::reference_counter ref_count_; +public: + Main(const synfig::String& basepath,ProgressCallback *cb=0); + ~Main(); + + static void load_modules(ProgressCallback *cb=0); + + const etl::reference_counter& ref_count()const { return ref_count_; } +}; // END of class Main + +}; // END if namespace synfig + +/* === E N D =============================================================== */ + +#endif diff --git a/synfig-core/tags/stable/src/synfig/module.cpp b/synfig-core/tags/stable/src/synfig/module.cpp new file mode 100644 index 0000000..3e026a4 --- /dev/null +++ b/synfig-core/tags/stable/src/synfig/module.cpp @@ -0,0 +1,188 @@ +/* === S Y N F I G ========================================================= */ +/*! \file synfig/module.cpp +** \brief writeme +** +** $Id$ +** +** \legal +** Copyright (c) 2002-2005 Robert B. Quattlebaum Jr., Adrian Bentley +** +** This package is free software; you can redistribute it and/or +** modify it under the terms of the GNU General Public License as +** published by the Free Software Foundation; either version 2 of +** the License, or (at your option) any later version. +** +** This package is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +** General Public License for more details. +** \endlegal +*/ +/* ========================================================================= */ + +/* === H E A D E R S ======================================================= */ + +#define SYNFIG_NO_ANGLE + +#ifdef USING_PCH +# include "pch.h" +#else +#ifdef HAVE_CONFIG_H +# include +#endif + +#include "module.h" +#include "general.h" +#include + +#ifndef USE_CF_BUNDLES +#include +#endif + +#endif + +/* === M A C R O S ========================================================= */ + +/* === G L O B A L S ======================================================= */ + +using namespace std; +using namespace etl; +using namespace synfig; + +Module::Book *synfig::Module::book_; + +/* === P R O C E D U R E S ================================================= */ + +bool +Module::subsys_init(const String &prefix) +{ +#ifndef USE_CF_BUNDLES + #ifndef SYNFIG_LTDL_NO_STATIC + //LTDL_SET_PRELOADED_SYMBOLS(); + #endif + + if(lt_dlinit()) + { + error(_("Errors on lt_dlinit()")); + error(lt_dlerror()); + return false; + } + + lt_dladdsearchdir("."); + lt_dladdsearchdir("~/.synfig/modules"); + lt_dladdsearchdir((prefix+"/lib/synfig/modules").c_str()); +#ifdef LIBDIR + lt_dladdsearchdir(LIBDIR"/synfig/modules"); +#endif +#ifdef __APPLE__ + lt_dladdsearchdir("/Library/Frameworks/synfig.framework/Resources/modules"); +#endif + lt_dladdsearchdir("/usr/local/lib/synfig/modules"); + lt_dladdsearchdir("."); +#endif + book_=new Book; + return true; +} + +bool +Module::subsys_stop() +{ + delete book_; + +#ifndef USE_CF_BUNDLES + lt_dlexit(); +#endif + return true; +} + +bool +register_default_modules() +{ + return true; +} + +Module::Book& +Module::book() +{ + return *book_; +} + +void +synfig::Module::Register(Module::Handle mod) +{ + book()[mod->Name()]=mod; +} + +bool +synfig::Module::Register(const String &module_name, ProgressCallback *callback) +{ +#ifndef USE_CF_BUNDLES + lt_dlhandle module; + + if(callback)callback->task(strprintf(_("Attempting to register \"%s\""),module_name.c_str())); + + module=lt_dlopenext((string("lib")+module_name).c_str()); + if(!module)module=lt_dlopenext(module_name.c_str()); + + if(!module) + { + if(callback)callback->warning(strprintf(_("Unable to find module \"%s\" (%s)"),module_name.c_str(),lt_dlerror())); + return false; + } + + if(callback)callback->task(strprintf(_("Found module \"%s\""),module_name.c_str())); + + Module::constructor_type constructor=NULL; + Handle mod; + + if(!constructor) + { +// if(callback)callback->task(string("looking for -> ")+module_name+"_LTX_new_instance()"); + constructor=(Module::constructor_type )lt_dlsym(module,(module_name+"_LTX_new_instance").c_str()); + } + + if(!constructor) + { +// if(callback)callback->task(string("looking for -> lib")+module_name+"_LTX_new_instance()"); + constructor=(Module::constructor_type )lt_dlsym(module,(string("lib")+module_name+"_LTX_new_instance").c_str()); + } + if(!constructor) + { +// if(callback)callback->task(string("looking for -> lib")+module_name+"_LTX_new_instance()"); + constructor=(Module::constructor_type )lt_dlsym(module,(string("_lib")+module_name+"_LTX_new_instance").c_str()); + } + if(!constructor) + { +// if(callback)callback->task(string("looking for -> lib")+module_name+"_LTX_new_instance()"); + constructor=(Module::constructor_type )lt_dlsym(module,(string("_")+module_name+"_LTX_new_instance").c_str()); + } + + if(constructor) + { +// if(callback)callback->task(strprintf("Executing callback for \"%s\"",module_name.c_str())); + mod=handle((*constructor)(callback)); + } + else + { + if(callback)callback->error(strprintf(_("Unable to find entrypoint in module \"%s\" (%s)"),module_name.c_str(),lt_dlerror())); + return false; + } + +// if(callback)callback->task(strprintf("Done executing callback for \"%s\"",module_name.c_str())); + + if(mod) + { +// if(callback)callback->task(strprintf("Registering \"%s\"",module_name.c_str())); + Register(mod); + } + else + { + if(callback)callback->error(_("Entrypoint did not return a module.")); + return false; + } + + if(callback)callback->task(strprintf(_("Success for \"%s\""),module_name.c_str())); + +#endif + return false; +} diff --git a/synfig-core/tags/stable/src/synfig/module.h b/synfig-core/tags/stable/src/synfig/module.h new file mode 100644 index 0000000..90fe77c --- /dev/null +++ b/synfig-core/tags/stable/src/synfig/module.h @@ -0,0 +1,172 @@ +/* === S Y N F I G ========================================================= */ +/*! \file synfig/module.h +** \brief writeme +** +** $Id$ +** +** \legal +** Copyright (c) 2002-2005 Robert B. Quattlebaum Jr., Adrian Bentley +** +** This package is free software; you can redistribute it and/or +** modify it under the terms of the GNU General Public License as +** published by the Free Software Foundation; either version 2 of +** the License, or (at your option) any later version. +** +** This package is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +** General Public License for more details. +** \endlegal +*/ +/* ========================================================================= */ + +/* === S T A R T =========================================================== */ + +#ifndef __SYNFIG_MODULE_H +#define __SYNFIG_MODULE_H + +/* === H E A D E R S ======================================================= */ + +#include "general.h" +#include +#include +#include "string.h" +#include +#include "vector.h" +#include "color.h" +#include "layer.h" +#include "canvas.h" + +//#include "value.h" + +/* === M A C R O S ========================================================= */ + +//! Marks the start of a module description +#define MODULE_DESC_BEGIN(x) struct x##_modclass : public synfig::Module { x##_modclass(synfig::ProgressCallback *callback=NULL); + +//! Sets the localized name of the module +#define MODULE_NAME(x) virtual const char * Name() { return x; } + +//! Sets a localized description of the module +#define MODULE_DESCRIPTION(x) virtual const char * Desc() { return x; } + +//! Sets the name of the module's author +#define MODULE_AUTHOR(x) virtual const char * Author() { return x; } + +//! Sets the version string for the module +#define MODULE_VERSION(x) virtual const char * Version() { return x; } + +//! Sets the copyright string for the module +#define MODULE_COPYRIGHT(x) virtual const char * Copyright() { return x; } + +//! Describes the module's construction function +#define MODULE_CONSTRUCTOR(x) bool constructor_(synfig::ProgressCallback *cb) { return x(cb); } + +//! Describes the module's destruction function +#define MODULE_DESTRUCTOR(x) virtual void destructor_() { return x(); } + +//! Marks the end of a module description +#define MODULE_DESC_END }; + +//#if 0 +#ifdef __APPLE__ +//! Marks the start of a module's inventory +#define MODULE_INVENTORY_BEGIN(x) extern "C" { \ + synfig::Module* _##x##_LTX_new_instance(synfig::ProgressCallback *cb) \ + { if(SYNFIG_CHECK_VERSION()){x##_modclass *mod=new x##_modclass(cb); mod->constructor_(cb); return mod; }\ + if(cb)cb->error(#x": Unable to load module due to version mismatch."); return NULL; } \ + }; x##_modclass::x##_modclass(synfig::ProgressCallback *cb) { +#else +//! Marks the start of a module's inventory +#define MODULE_INVENTORY_BEGIN(x) extern "C" { \ + synfig::Module* x##_LTX_new_instance(synfig::ProgressCallback *cb) \ + { if(SYNFIG_CHECK_VERSION()){x##_modclass *mod=new x##_modclass(cb); mod->constructor_(cb); return mod; }\ + if(cb)cb->error(#x": Unable to load module due to version mismatch."); return NULL; } \ + }; x##_modclass::x##_modclass(synfig::ProgressCallback *cb) { +#endif + +//! Marks the start of the layers in the module's inventory +#define BEGIN_LAYERS { + +//! DEPRECATED - use @INCLUDE_LAYER() +//#define LAYER(x) synfig::Layer::book()[synfig::String(x::name__)]=x::create; +#define LAYER(class) synfig::Layer::register_in_book(synfig::Layer::BookEntry(class::create,class::name__,class::local_name__,class::category__,class::cvs_id__,class::version__)); +#define LAYER_ALIAS(class,alias) synfig::Layer::register_in_book(synfig::Layer::BookEntry(class::create,alias,alias,_("Do Not Use"),class::cvs_id__,class::version__)); + +//! Marks the end of the layers in the module's inventory +#define END_LAYERS } + +//! Marks the start of the targets in the module's inventory +#define BEGIN_TARGETS { + +#define TARGET(x) synfig::Target::book()[synfig::String(x::name__)]=std::pair(x::create,synfig::String(x::ext__));synfig::Target::ext_book()[synfig::String(x::ext__)]=x::name__; + +#define TARGET_EXT(x,y) synfig::Target::ext_book()[synfig::String(y)]=x::name__; + +//! Marks the end of the targets in the module's inventory +#define END_TARGETS } + +//! Marks the start of the importers in the module's inventory +#define BEGIN_IMPORTERS { + +#define IMPORTER(x) synfig::Importer::book()[synfig::String(x::ext__)]=x::create; + +#define IMPORTER_EXT(x,y) synfig::Importer::book()[synfig::String(y)]=x::create; + +//! Marks the end of the importers in the module's inventory +#define END_IMPORTERS } + +//! Marks the end of a module's inventory +#define MODULE_INVENTORY_END } + +/* === T Y P E D E F S ===================================================== */ + +/* === C L A S S E S & S T R U C T S ======================================= */ + +namespace synfig { + +class ProgressCallback; + +/*! \class Module +** \todo writeme +*/ +class Module : public etl::shared_object +{ +public: + bool constructor_(synfig::ProgressCallback *cb) { return true; } + virtual void destructor_() { } + + typedef etl::handle Handle; + typedef etl::loose_handle LooseHandle; + typedef etl::handle ConstHandle; + +public: + typedef Module*(*constructor_type)(ProgressCallback *); + typedef std::map Book; +private: + static Book* book_; +public: + static Book& book(); + + static bool subsys_init(const String &prefix); + static bool subsys_stop(); + static bool register_default_modules(); + + static void Register(Handle mod); + static bool Register(const String &module_name, ProgressCallback *cb=NULL); + static inline void Register(Module *mod) { Register(Handle(mod)); } + + virtual const char * Name() { return " "; } + virtual const char * Desc() { return " "; } + virtual const char * Author() { return " "; } + virtual const char * Version() { return " "; } + virtual const char * Copyright() { return SYNFIG_COPYRIGHT; } + + virtual ~Module() { destructor_(); } +}; + +}; // END of namespace synfig + +/* === E N D =============================================================== */ + +#endif diff --git a/synfig-core/tags/stable/src/synfig/mutex.cpp b/synfig-core/tags/stable/src/synfig/mutex.cpp new file mode 100644 index 0000000..eca63b6 --- /dev/null +++ b/synfig-core/tags/stable/src/synfig/mutex.cpp @@ -0,0 +1,304 @@ +/* === S Y N F I G ========================================================= */ +/*! \file mutex.cpp +** \brief Template File +** +** $Id$ +** +** \legal +** Copyright (c) 2002-2005 Robert B. Quattlebaum Jr., Adrian Bentley +** +** This package is free software; you can redistribute it and/or +** modify it under the terms of the GNU General Public License as +** published by the Free Software Foundation; either version 2 of +** the License, or (at your option) any later version. +** +** This package is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +** General Public License for more details. +** \endlegal +*/ +/* ========================================================================= */ + +/* === H E A D E R S ======================================================= */ + +#ifdef USING_PCH +# include "pch.h" +#else +#ifdef HAVE_CONFIG_H +# include +#endif + +#include "mutex.h" + +#ifdef HAVE_LIBPTHREAD +#define USING_PTHREADS 1 +#else +#ifdef _WIN32 +#define USING_WIN32_THREADS 1 +#endif +#endif + +#ifdef USING_WIN32_THREADS +#include +#endif + +#ifdef USING_PTHREADS +#include +#endif + +#endif + +/* === U S I N G =========================================================== */ + +//using namespace std; +//using namespace etl; +using namespace synfig; + +/* === M A C R O S ========================================================= */ + +/* === G L O B A L S ======================================================= */ + +/* === P R O C E D U R E S ================================================= */ + +/* === M E T H O D S ======================================================= */ + + + + + + +bool +Mutex::is_locked() +{ + if(try_lock()) + { + unlock(); + return false; + } + return true; +} + +void +RecMutex::unlock_all() +{ + while(is_locked()) unlock(); +} + +#ifdef USING_PTHREADS +Mutex::Mutex() +{ + pthread_mutex_t*const mtx_ptr(new pthread_mutex_t); + + pthread_mutexattr_t attr; + pthread_mutexattr_init(&attr); + + //#ifdef PTHREAD_PRIO_INHERIT + //pthread_mutexattr_setprioceiling(&attr,PTHREAD_PRIO_INHERIT); + //#endif + + //#ifdef PTHREAD_MUTEX_RECURSIVE + //pthread_mutexattr_settype(&attr,PTHREAD_MUTEX_RECURSIVE); + //#endif + + pthread_mutex_init(mtx_ptr,&attr); + pthread_mutexattr_destroy(&attr); + + blackbox=mtx_ptr; +} + +Mutex::~Mutex() +{ + pthread_mutex_t*const mtx_ptr(static_cast(blackbox)); + pthread_mutex_destroy(mtx_ptr); + delete mtx_ptr; +} + +void +Mutex::lock() +{ + pthread_mutex_t*const mtx_ptr(static_cast(blackbox)); + pthread_mutex_lock(mtx_ptr); +} + +void +Mutex::unlock() +{ + pthread_mutex_t*const mtx_ptr(static_cast(blackbox)); + pthread_mutex_unlock(mtx_ptr); +} + +bool +Mutex::try_lock() +{ + pthread_mutex_t*const mtx_ptr(static_cast(blackbox)); + return !(bool) pthread_mutex_trylock(mtx_ptr); +} + + +RecMutex::RecMutex() +{ + pthread_mutex_t*const mtx_ptr(static_cast(blackbox)); + pthread_mutexattr_t attr; + + // Backtrack and get rid of the non-recursive mutex + pthread_mutex_destroy(mtx_ptr); + + pthread_mutexattr_init(&attr); + + pthread_mutexattr_settype(&attr,PTHREAD_MUTEX_RECURSIVE); + + pthread_mutex_init(mtx_ptr,&attr); + pthread_mutexattr_destroy(&attr); +} + + + +RWLock::RWLock() +{ + pthread_rwlock_t*const rwlock_ptr(new pthread_rwlock_t); + + pthread_rwlock_init(rwlock_ptr, NULL); + + blackbox=rwlock_ptr; +} + +RWLock::~RWLock() +{ + pthread_rwlock_t*const rwlock_ptr(static_cast(blackbox)); + + pthread_rwlock_destroy(rwlock_ptr); + + delete rwlock_ptr; +} + +void +RWLock::reader_lock() +{ + pthread_rwlock_t*const rwlock_ptr(static_cast(blackbox)); + + pthread_rwlock_rdlock(rwlock_ptr); +} + +void +RWLock::reader_unlock() +{ + pthread_rwlock_t*const rwlock_ptr(static_cast(blackbox)); + + pthread_rwlock_unlock(rwlock_ptr); +} + +bool +RWLock::reader_trylock() +{ + pthread_rwlock_t*const rwlock_ptr(static_cast(blackbox)); + + return !pthread_rwlock_tryrdlock(rwlock_ptr); +} + +void +RWLock::writer_lock() +{ + pthread_rwlock_t*const rwlock_ptr(static_cast(blackbox)); + + pthread_rwlock_wrlock(rwlock_ptr); +} + +void +RWLock::writer_unlock() +{ + pthread_rwlock_t*const rwlock_ptr(static_cast(blackbox)); + + pthread_rwlock_unlock(rwlock_ptr); +} + +bool +RWLock::writer_trylock() +{ + pthread_rwlock_t*const rwlock_ptr(static_cast(blackbox)); + + return !pthread_rwlock_trywrlock(rwlock_ptr); +} + +#endif + +#ifdef USING_WIN32_THREADS +Mutex::Mutex() +{ + HANDLE& mtx(*reinterpret_cast(&blackbox)); + mtx=CreateMutex(NULL, FALSE, NULL); +} + +Mutex::~Mutex() +{ + HANDLE mtx(reinterpret_cast(blackbox)); + CloseHandle(mtx); +} + +void +Mutex::lock() +{ + HANDLE mtx(reinterpret_cast(blackbox)); + WaitForSingleObject(mtx, INFINITE); +} + +void +Mutex::unlock() +{ + HANDLE mtx(reinterpret_cast(blackbox)); + ReleaseMutex(mtx); +} + +bool +Mutex::try_lock() +{ + HANDLE mtx(reinterpret_cast(blackbox)); + return WaitForSingleObject(mtx, 0)==WAIT_FAILED; +} + + +RecMutex::RecMutex() +{ + // Win32 mutexes are recursive by default. +} + + +RWLock::RWLock() +{ +} + +RWLock::~RWLock() +{ +} + +void +RWLock::reader_lock() +{ +} + +void +RWLock::reader_unlock() +{ +} + +bool +RWLock::reader_trylock() +{ +} + +void +RWLock::writer_lock() +{ +} + +void +RWLock::writer_unlock() +{ +} + +bool +RWLock::writer_trylock() +{ +} + +#endif diff --git a/synfig-core/tags/stable/src/synfig/mutex.h b/synfig-core/tags/stable/src/synfig/mutex.h new file mode 100644 index 0000000..3497635 --- /dev/null +++ b/synfig-core/tags/stable/src/synfig/mutex.h @@ -0,0 +1,118 @@ +/* === S Y N F I G ========================================================= */ +/*! \file mutex.h +** \brief Template Header +** +** $Id$ +** +** \legal +** Copyright (c) 2002-2005 Robert B. Quattlebaum Jr., Adrian Bentley +** +** This package is free software; you can redistribute it and/or +** modify it under the terms of the GNU General Public License as +** published by the Free Software Foundation; either version 2 of +** the License, or (at your option) any later version. +** +** This package is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +** General Public License for more details. +** \endlegal +*/ +/* ========================================================================= */ + +/* === S T A R T =========================================================== */ + +#ifndef __SYNFIG_MUTEX_H +#define __SYNFIG_MUTEX_H + +/* === H E A D E R S ======================================================= */ + +/* === M A C R O S ========================================================= */ + +/* === T Y P E D E F S ===================================================== */ + +/* === C L A S S E S & S T R U C T S ======================================= */ + +namespace synfig { + +class RecMutex; + +class Mutex +{ + friend class RecMutex; + +protected: + void* blackbox; + +public: + + class Lock + { + Mutex& mutex; + public: + Lock(Mutex& x):mutex(x) { mutex.lock(); } + ~Lock() { mutex.unlock(); } + }; + + Mutex(); + ~Mutex(); + + void lock(); + void unlock(); + bool try_lock(); + bool is_locked(); + +private: + //! Non-copyable + Mutex(const Mutex&); + + //! Non-assignable + void operator=(const Mutex&); +}; + +class RecMutex : public Mutex +{ +public: + RecMutex(); + + void unlock_all(); +}; + +class RWLock +{ + void* blackbox; + +public: + + class ReaderLock + { + RWLock& rw_lock; + public: + ReaderLock(RWLock& x):rw_lock(x) { rw_lock.reader_lock(); } + ~ReaderLock() { rw_lock.reader_unlock(); } + }; + class WriterLock + { + RWLock& rw_lock; + public: + WriterLock(RWLock& x):rw_lock(x) { rw_lock.writer_lock(); } + ~WriterLock() { rw_lock.writer_unlock(); } + }; + + RWLock(); + ~RWLock(); + + void reader_lock(); + void reader_unlock(); + bool reader_trylock(); + + void writer_lock(); + void writer_unlock(); + bool writer_trylock(); +}; + +}; // END of namespace synfig + +/* === E N D =============================================================== */ + +#endif diff --git a/synfig-core/tags/stable/src/synfig/node.cpp b/synfig-core/tags/stable/src/synfig/node.cpp new file mode 100644 index 0000000..eaab964 --- /dev/null +++ b/synfig-core/tags/stable/src/synfig/node.cpp @@ -0,0 +1,303 @@ +/* === S Y N F I G ========================================================= */ +/*! \file node.cpp +** \brief Template File +** +** $Id$ +** +** \legal +** Copyright (c) 2002-2005 Robert B. Quattlebaum Jr., Adrian Bentley +** +** This package is free software; you can redistribute it and/or +** modify it under the terms of the GNU General Public License as +** published by the Free Software Foundation; either version 2 of +** the License, or (at your option) any later version. +** +** This package is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +** General Public License for more details. +** \endlegal +*/ +/* ========================================================================= */ + +/* === H E A D E R S ======================================================= */ + +#define HASH_MAP_H + +#ifdef USING_PCH +# include "pch.h" +#else +#ifdef HAVE_CONFIG_H +# include +#endif + +#include "node.h" +#include "proto/nodebase.h" + +#ifdef HASH_MAP_H +#include HASH_MAP_H +using namespace __gnu_cxx; +#else +#include +#endif + +#endif + +/* === U S I N G =========================================================== */ + +using namespace std; +using namespace etl; +using namespace synfig; + +/* === M A C R O S ========================================================= */ + +// About BE_FRUGAL_WITH_GUIDS +// If this macro is set, then a GUID will NOT +// be calculated until the first call to get_guid() +// This also means that the node doesn't get +// added to the database until get_guid() is called +// for the first time, or set_guid() is called. +// If it is expensive to calculate GUIDs, then +// this can improve performance a tad in +// some cases. Otherwise, it doesn't change +// much of anything. +#define BE_FRUGAL_WITH_GUIDS 1 + +#ifndef __sys_clock +#ifndef _WIN32 +# include +# define __sys_clock ::clock +#else +# ifdef __GNUG__ +# include +# define __sys_clock ::clock +# else +typedef int clock_t; +extern clock_t _clock(); +# define CLOCKS_PER_SEC 1000 +# define __sys_clock _clock +# endif +#endif +#endif + +/* === G L O B A L S ======================================================= */ + +#ifdef HASH_MAP_H +typedef hash_map GlobalNodeMap; +#else +typedef map GlobalNodeMap; +#endif + +static GlobalNodeMap* global_node_map_; + +static GlobalNodeMap& global_node_map() +{ + if(!global_node_map_) + global_node_map_=new GlobalNodeMap; + return *global_node_map_; +} + +/* === P R O C E D U R E S ================================================= */ + +synfig::Node* +synfig::find_node(const GUID& guid) +{ + if(global_node_map().count(guid)==0) + return 0; + return global_node_map()[guid]; +} + +static void +refresh_node(synfig::Node* node, GUID old_guid) +{ + assert(global_node_map().count(old_guid)); + global_node_map().erase(old_guid); + assert(!global_node_map().count(old_guid)); + global_node_map()[node->get_guid()]=node; +} + +/* === M E T H O D S ======================================================= */ + +void +TimePoint::absorb(const TimePoint& x) +{ + if(get_guid()==x.get_guid()) + return; + set_guid(get_guid()^x.get_guid()); + + if(get_after()==INTERPOLATION_NIL) + set_after(x.get_after()); + if(get_before()==INTERPOLATION_NIL) + set_before(x.get_before()); + + if(get_after()!=x.get_after() && x.get_after()!=INTERPOLATION_NIL) + set_after(INTERPOLATION_UNDEFINED); + if(get_before()!=x.get_before() && x.get_before()!=INTERPOLATION_NIL) + set_before(INTERPOLATION_UNDEFINED); +} + +TimePointSet::iterator +TimePointSet::insert(const TimePoint& x) +{ + iterator iter(find(x)); + if(iter!=end()) + { + const_cast(*iter).absorb(x); + return iter; + } + return std::set::insert(x).first; +} + + + + + + + + + + + + + + + +Node::Node(): + guid_(0), + bchanged(true), + deleting_(false) +{ +#ifndef BE_FRUGAL_WITH_GUIDS + guid_.make_unique(); + assert(guid_); + assert(!global_node_map().count(guid_)); + global_node_map()[guid_]=this; +#endif +} + +Node::~Node() +{ + begin_delete(); + + if(guid_) + { + assert(global_node_map().count(guid_)); + global_node_map().erase(guid_); + assert(!global_node_map().count(guid_)); + } +} + +void +Node::changed() +{ + time_last_changed_=__sys_clock(); + on_changed(); +} + + +//! Gets the GUID for this value node +const GUID& +Node::get_guid()const +{ +#ifdef BE_FRUGAL_WITH_GUIDS + if(!guid_) + { + const_cast(guid_).make_unique(); + assert(guid_); + assert(!global_node_map().count(guid_)); + global_node_map()[guid_]=const_cast(this); + } +#endif + + return guid_; +} + +//! Sets the GUID for this value node +void +Node::set_guid(const GUID& x) +{ + assert(x); + +#ifdef BE_FRUGAL_WITH_GUIDS + if(!guid_) + { + guid_=x; + assert(!global_node_map().count(guid_)); + global_node_map()[guid_]=this; + } + else +#endif + if(guid_!=x) + { + GUID oldguid(guid_); + guid_=x; + refresh_node(this, oldguid); + on_guid_changed(oldguid); + } +} + +int +Node::get_time_last_changed()const +{ + return time_last_changed_; +} + +void +Node::add_child(Node*x) +{ + x->parent_set.insert(this); +} + +void +Node::remove_child(Node*x) +{ + if(x->parent_set.count(this)) x->parent_set.erase(this); +} + +int +Node::parent_count()const +{ + return parent_set.size(); +} + +const Node::time_set & +Node::get_times() const +{ + if(bchanged) + { + times.clear(); + get_times_vfunc(times); + bchanged = false; + } + + //set the output set... + return times; +} + +void +Node::begin_delete() +{ + if(!deleting_) + { + deleting_=true; signal_deleted()(); + } +} + +void +Node::on_changed() +{ + bchanged = true; + signal_changed()(); + + std::set::iterator iter; + for(iter=parent_set.begin();iter!=parent_set.end();++iter) + { + (*iter)->changed(); + } +} + +void +Node::on_guid_changed(GUID guid) +{ + signal_guid_changed()(guid); +} diff --git a/synfig-core/tags/stable/src/synfig/node.h b/synfig-core/tags/stable/src/synfig/node.h new file mode 100644 index 0000000..ffb8f41 --- /dev/null +++ b/synfig-core/tags/stable/src/synfig/node.h @@ -0,0 +1,244 @@ +/* === S Y N F I G ========================================================= */ +/*! \file node.h +** \brief Template Header +** +** $Id$ +** +** \legal +** Copyright (c) 2002-2005 Robert B. Quattlebaum Jr., Adrian Bentley +** +** This package is free software; you can redistribute it and/or +** modify it under the terms of the GNU General Public License as +** published by the Free Software Foundation; either version 2 of +** the License, or (at your option) any later version. +** +** This package is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +** General Public License for more details. +** \endlegal +*/ +/* ========================================================================= */ + +/* === S T A R T =========================================================== */ + +#ifndef __SYNFIG_PARENTNODE_H +#define __SYNFIG_PARENTNODE_H + +/* === H E A D E R S ======================================================= */ + +#include +#include +#include "time.h" +#include "guid.h" +#include +#include "interpolation.h" +#include "mutex.h" + +/* === M A C R O S ========================================================= */ + +/* === T Y P E D E F S ===================================================== */ + +/* === C L A S S E S & S T R U C T S ======================================= */ + +namespace synfig { + +class TimePoint +{ + GUID guid; + Time time; + Interpolation before,after; +public: + + TimePoint(const Time& x=Time::begin()): + guid(0), + time(x), + before(INTERPOLATION_NIL), + after(INTERPOLATION_NIL) + { + } + + const GUID& get_guid()const { return guid; } + const Time& get_time()const { return time; } + Interpolation get_before()const { return before; } + Interpolation get_after()const { return after; } + + void set_guid(const GUID& x) { guid=x; } + void set_time(const Time& x) { time=x; } + void set_before(Interpolation x) { before=x; } + void set_after(Interpolation x) { after=x; } + + void absorb(const TimePoint& x); +}; // END of class TimePoint + +inline TimePoint operator+(TimePoint lhs,const Time& rhs) + { lhs.set_time(lhs.get_time()+rhs); return lhs; } + +inline bool operator<(const TimePoint& lhs,const TimePoint& rhs) + { return lhs.get_time() +{ +public: + iterator insert(const TimePoint& x); + + template void insert(ITER begin, ITER end) + { for(;begin!=end;++begin) insert(*begin); } + +}; // END of class TimePointSet + +class Node : public etl::rshared_object +{ + /* + -- ** -- T Y P E S ----------------------------------------------------------- + */ + +public: + + //! \writeme + typedef TimePointSet time_set; + + /* + -- ** -- D A T A ------------------------------------------------------------- + */ + +private: + + //! \writeme + GUID guid_; + + //! cached time values for all the childrens + mutable time_set times; + + //! \writeme + mutable bool bchanged; + + //! \writeme + mutable int time_last_changed_; + + //! \writeme + mutable RWLock rw_lock_; + + //! \writeme + bool deleting_; + +public: + + //! \todo This should really be private + std::set parent_set; + + /* + -- ** -- S I G N A L S ------------------------------------------------------- + */ + +private: + + sigc::signal signal_changed_; + + //! GUID Changed + /*! \note The second parameter is the *OLD* guid! */ + sigc::signal signal_guid_changed_; + + //! Deleted + sigc::signal signal_deleted_; + + /* + -- ** -- S I G N A L I N T E R F A C E ------------------------------------- + */ + +public: + + sigc::signal& signal_deleted() { return signal_deleted_; } + + sigc::signal& signal_changed() { return signal_changed_; } + + //! GUID Changed + /*! \note The second parameter is the *OLD* guid! */ + sigc::signal& signal_guid_changed() { return signal_guid_changed_; } + + /* + -- ** -- C O N S T R U C T O R S --------------------------------------------- + */ + +protected: + + Node(); + + // This class cannot be copied -- use clone() if necessary +private: + Node(const Node &x); + +public: + virtual ~Node(); + + /* + -- ** -- M E M B E R F U N C T I O N S ------------------------------------- + */ + +public: + + void changed(); + + //! Gets the GUID for this value node + const GUID& get_guid()const; + + //! Sets the GUID for this value node + void set_guid(const GUID& x); + + int get_time_last_changed()const; + + void add_child(Node*x); + + void remove_child(Node*x); + + int parent_count()const; + + const time_set &get_times() const; + + RWLock& get_rw_lock()const { return rw_lock_; } + +protected: + + void begin_delete(); + + /* + -- ** -- V I R T U A L F U N C T I O N S ----------------------------------- + */ + +protected: + virtual void on_changed(); + + virtual void on_guid_changed(GUID guid); + + /*! Function to be overloaded that fills + */ + virtual void get_times_vfunc(time_set &set) const = 0; +}; + +synfig::Node* find_node(const synfig::GUID& guid); + +template etl::handle +guid_cast(const synfig::GUID& guid) +{ + return etl::handle::cast_dynamic(synfig::find_node(guid)); +} + +typedef etl::handle NodeHandle; + +}; // END of namespace synfig + +/* === E N D =============================================================== */ + +#endif diff --git a/synfig-core/tags/stable/src/synfig/palette.cpp b/synfig-core/tags/stable/src/synfig/palette.cpp new file mode 100644 index 0000000..16742a4 --- /dev/null +++ b/synfig-core/tags/stable/src/synfig/palette.cpp @@ -0,0 +1,359 @@ +/* === S Y N F I G ========================================================= */ +/*! \file palette.cpp +** \brief Template File +** +** $Id$ +** +** \legal +** Copyright (c) 2002-2005 Robert B. Quattlebaum Jr., Adrian Bentley +** +** This package is free software; you can redistribute it and/or +** modify it under the terms of the GNU General Public License as +** published by the Free Software Foundation; either version 2 of +** the License, or (at your option) any later version. +** +** This package is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +** General Public License for more details. +** \endlegal +*/ +/* ========================================================================= */ + +/* === H E A D E R S ======================================================= */ + +#ifdef USING_PCH +# include "pch.h" +#else +#ifdef HAVE_CONFIG_H +# include +#endif + +#include "palette.h" +#include "surface.h" +#include "general.h" +#include +#include + +#endif + +/* === U S I N G =========================================================== */ + +using namespace std; +using namespace etl; +using namespace synfig; + +/* === M A C R O S ========================================================= */ + +#define PALETTE_FILE_COOKIE "SYNFIGPAL1.0" + +/* === G L O B A L S ======================================================= */ + +bool weight_less_than(const PaletteItem& lhs,const PaletteItem& rhs) +{ + return lhs.weightadd(color); + continue; + } + + /*if(size()>=max_colors) + { + iterator iterlight(find_light()); + PaletteItem light(*iterlight); + erase(iterlight); + find_closest(light.color)->add(light.color,light.weight); + } + */ + + push_back(color); + continue; + } + +/* + + max_colors-=2; + for(int y=0;yadd(color); + continue; + } + + + push_back(color); + continue; + } + sort(rbegin(),rend()); + + iterator iter; + + iterator best_match(begin()); + while((signed)size()>max_colors) + { + PaletteItem item(back()); + pop_back(); + find_closest(item.color)->add(item.color,item.weight); + } +*/ + push_back(Color::black()); + push_back(Color::white()); + +// sort(begin(),end(),&luma_less_than); +} + +Palette::const_iterator +Palette::find_closest(const Color& color, float* dist)const +{ + // For the sake of avoiding cut-and-paste + // bugs, we'll just use the non-const + // find_closest()... It doesn't change anything + // anyway. + return const_cast(this)->find_closest(color,dist); +} + +Palette::iterator +Palette::find_closest(const Color& color, float* dist) +{ + iterator iter; + + iterator best_match(begin()); + float best_dist(1000000); + + const float prep_y(powf(color.get_y(),2.2f)*color.get_a()); + const float prep_u(color.get_u()); + const float prep_v(color.get_v()); + + for(iter=begin();iter!=end();++iter) + { + const float diff_y(prep_y-powf(iter->color.get_y(),2.2f)*iter->color.get_a()); + const float diff_u(prep_u-iter->color.get_u()); + const float diff_v(prep_v-iter->color.get_v()); + const float diff_a(color.get_a()-iter->color.get_a()); + + + const float dist( + diff_y*diff_y*1.5f+ + diff_a*diff_a+ + + diff_u*diff_u+ + diff_v*diff_v + + // cross product + /*abs( + prep_u*iter->color.get_u()- + prep_v*iter->color.get_v() + )*/ + ); + if(distweight>best_match->weight) + best_match=iter; + } + + return best_match; +} + +Palette::iterator +Palette::find_light() +{ + iterator iter; + + iterator best_match(begin()); + + for(iter=begin();iter!=end();++iter) + { + if(iter->weightweight) + best_match=iter; + } + + return best_match; +} + +Palette +Palette::grayscale(int steps) +{ + Palette ret; + for(int i=0;iname<color.get_r()<color.get_g()<color.get_b()<color.get_a()< + +/* === M A C R O S ========================================================= */ + +/* === T Y P E D E F S ===================================================== */ + +/* === C L A S S E S & S T R U C T S ======================================= */ + +namespace synfig { + +class Surface; + +struct PaletteItem +{ + Color color; + String name; + int weight; + + PaletteItem():weight(1) { } + + PaletteItem(const Color& color, const String& name, int weight=1): + color(color),name(name),weight(weight) { } + + PaletteItem(const Color& color, int weight=1): + color(color),weight(weight) { } + + void add(const Color& x, int weight=1); + + bool operator<(const PaletteItem& rhs)const { return weight +{ + String name_; + +public: + Palette(); + Palette(const String& name_); + + /*! Generates a palette for the given + ** surface + */ + Palette(const Surface& surface, int size=256); + + iterator find_closest(const Color& color, float* dist=0); + const_iterator find_closest(const Color& color, float* dist=0)const; + + iterator find_heavy(); + + iterator find_light(); + + static Palette grayscale(int steps=16); + + void save_to_file(const synfig::String& filename)const; + + static Palette load_from_file(const synfig::String& filename); +}; // END of class Palette + +}; // END of namespace synfig + +/* === E N D =============================================================== */ + +#endif diff --git a/synfig-core/tags/stable/src/synfig/paramdesc.cpp b/synfig-core/tags/stable/src/synfig/paramdesc.cpp new file mode 100644 index 0000000..67e1622 --- /dev/null +++ b/synfig-core/tags/stable/src/synfig/paramdesc.cpp @@ -0,0 +1,99 @@ +/* === S Y N F I G ========================================================= */ +/*! \file paramdesc.cpp +** \brief Template File +** +** $Id$ +** +** \legal +** Copyright (c) 2002-2005 Robert B. Quattlebaum Jr., Adrian Bentley +** +** This package is free software; you can redistribute it and/or +** modify it under the terms of the GNU General Public License as +** published by the Free Software Foundation; either version 2 of +** the License, or (at your option) any later version. +** +** This package is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +** General Public License for more details. +** \endlegal +*/ +/* ========================================================================= */ + +/* === H E A D E R S ======================================================= */ + +#ifdef USING_PCH +# include "pch.h" +#else +#ifdef HAVE_CONFIG_H +# include +#endif + +#include "paramdesc.h" +#include "value.h" + +#endif + +/* === U S I N G =========================================================== */ + +using namespace std; +using namespace etl; +using namespace synfig; + +/* === M A C R O S ========================================================= */ + +/* === G L O B A L S ======================================================= */ + +/* === P R O C E D U R E S ================================================= */ + +/* === M E T H O D S ======================================================= */ + +ParamDesc::ParamDesc(synfig::Color::BlendMethod, const String &a): + name_ (a), + local_name_ (a), + scalar_ (1.0), + critical_ (true), + hidden_ (false), + invisible_duck_ (false), + is_distance_ (false), + animation_only_ (false) +{ + set_local_name(_("Blend Method")) + .set_hint("enum") + .add_enum_value(Color::BLEND_COMPOSITE,"composite",_("Composite")) + .add_enum_value(Color::BLEND_STRAIGHT,"straight",_("Straight")) + .add_enum_value(Color::BLEND_ONTO,"onto",_("Onto")) + .add_enum_value(Color::BLEND_STRAIGHT_ONTO,"straightonto",_("StraightOnto")) + .add_enum_value(Color::BLEND_BEHIND,"behind",_("Behind")) + .add_enum_value(Color::BLEND_SCREEN,"screen",_("Screen")) + .add_enum_value(Color::BLEND_OVERLAY,"overlay",_("Overlay")) + .add_enum_value(Color::BLEND_HARD_LIGHT,"hard_light",_("Hard Light")) + .add_enum_value(Color::BLEND_MULTIPLY,"multiply",_("Multiply")) + .add_enum_value(Color::BLEND_DIVIDE,"divide",_("Divide")) + .add_enum_value(Color::BLEND_ADD,"add",_("Add")) + .add_enum_value(Color::BLEND_SUBTRACT,"subtract",_("Subtract")) + .add_enum_value(Color::BLEND_DIFFERENCE,"difference",_("Difference")) + .add_enum_value(Color::BLEND_BRIGHTEN,"brighten",_("Brighten")) + .add_enum_value(Color::BLEND_DARKEN,"darken",_("Darken")) + .add_enum_value(Color::BLEND_COLOR,"color",_("Color")) + .add_enum_value(Color::BLEND_HUE,"hue",_("Hue")) + .add_enum_value(Color::BLEND_SATURATION,"saturation",_("Saturation")) + .add_enum_value(Color::BLEND_LUMINANCE,"luminance",_("Luminance")) +// These are deprecated + .add_enum_value(Color::BLEND_ALPHA_OVER,"alphaover",_("Alpha Over")) +// .add_enum_value(Color::BLEND_ALPHA_BRIGHTEN,"alphabrighten",_("Alpha Brighten")) +// .add_enum_value(Color::BLEND_ALPHA_DARKEN,"alphadarken",_("Alpha Darken")) + ; // end of enums +} + +ParamDesc::ParamDesc(const ValueBase&, const String &a): + name_ (a), + local_name_ (a), + scalar_ (1.0), + critical_ (true), + hidden_ (false), + invisible_duck_ (false), + is_distance_ (false), + animation_only_ (false) +{ +} diff --git a/synfig-core/tags/stable/src/synfig/paramdesc.h b/synfig-core/tags/stable/src/synfig/paramdesc.h new file mode 100644 index 0000000..85cd737 --- /dev/null +++ b/synfig-core/tags/stable/src/synfig/paramdesc.h @@ -0,0 +1,227 @@ +/* === S Y N F I G ========================================================= */ +/*! \file paramdesc.h +** \brief ParamDesc Class Implementation +** +** $Id$ +** +** \legal +** Copyright (c) 2002-2005 Robert B. Quattlebaum Jr., Adrian Bentley +** +** This package is free software; you can redistribute it and/or +** modify it under the terms of the GNU General Public License as +** published by the Free Software Foundation; either version 2 of +** the License, or (at your option) any later version. +** +** This package is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +** General Public License for more details. +** \endlegal +*/ +/* ========================================================================= */ + +/* === S T A R T =========================================================== */ + +#ifndef __SYNFIG_PARAMDESC_H +#define __SYNFIG_PARAMDESC_H + +/* === H E A D E R S ======================================================= */ + +#include "string.h" +#include "real.h" +#include "color.h" +#include + +/* === M A C R O S ========================================================= */ + +/* === T Y P E D E F S ===================================================== */ + +/* === C L A S S E S & S T R U C T S ======================================= */ + +namespace synfig { + +class ValueBase; + +/*! \class ParamDesc +** \brief Parameter Description Class +** \todo writeme +*/ +class ParamDesc +{ +public: + + //! \writeme + struct EnumData + { + int value; + String name; + String local_name; + EnumData(int value, const String &name, const String &local_name): + value(value), + name(name), + local_name(local_name) + { + } + }; + + /* + -- ** -- D A T A ------------------------------------------------------------- + */ + +private: + String name_; //! The actual parameter name + String local_name_; //! Localized name + String desc_; //! Short description of parameter (Think tooltops) + String group_; //! Which group this parameter is a member of (optional) + String hint_; //! Parameter hint + String origin_; //! Parameter origin + String connect_; + String box_; + Real scalar_; //! Scalar value for visual editing + bool critical_; + bool hidden_; + bool invisible_duck_; + bool is_distance_; + bool animation_only_; + + std::list enum_list_; + + /* + -- ** -- C O N S T R U C T O R S --------------------------------------------- + */ + +public: + + ParamDesc(const String &a="IM_A_BUG_SO_REPORT_ME"): + name_ (a), + local_name_ (a), + scalar_ (1.0), + critical_ (true), + hidden_ (false), + invisible_duck_ (false), + is_distance_ (false), + animation_only_ (false) + { } + + ParamDesc(const ValueBase&, const String &a); + + ParamDesc(synfig::Color::BlendMethod, const String &a); + + + /* + -- ** -- M E M B E R F U N C T I O N S ------------------------------------- + */ + +public: + + //! \writeme + const std::list &get_enum_list()const { return enum_list_; } + + //! Sets the localized name of the parameter. + ParamDesc &set_local_name(const String &n) { local_name_=n; return *this; } + + //! Sets the localized description of the parameter. + ParamDesc &set_description(const String &d) { desc_=d; return *this; } + + //! Sets the group that this parameter is a member of + ParamDesc &set_group(const String &n) { group_=n; return *this; } + + //! Sets a "hint" for the parameter. + ParamDesc &set_hint(const String &h) { hint_=h; return *this; } + + //! \writeme + ParamDesc &set_connect(const String &h) { connect_=h; return *this; } + + //! \writeme + ParamDesc &set_box(const String &h) { box_=h; return *this; } + + //! Sets a flag regarding the duck visibility + ParamDesc &set_invisible_duck(bool x=true) { invisible_duck_=x; return *this; } + + //! Returns the flag regarding duck visibility + bool get_invisible_duck() { return invisible_duck_; } + + + //! \writeme + ParamDesc &set_animation_only(bool x=true) { animation_only_=x; return *this; } + + //! \writeme + bool get_animation_only() { return animation_only_; } + + + //! Sets which parameter is to be used as the origin when the user edits visually. + ParamDesc &set_origin(const String &h) { origin_=h; return *this; } + + //! Sets the scalar value for the parameter + /*! This value determines how the value is to be presented + ** to the user when editing visually. */ + ParamDesc &set_scalar(const Real &n) { scalar_=n; return *this; } + ParamDesc &set_scalar(const String &h) { hint_=h; return *this; } + + //! Marks the parameter as not necessary for saving or copying + ParamDesc ¬_critical() { critical_=false; return *this; } + + //! \writeme + ParamDesc &hidden() { hidden_=true; return *this; } + + //! Marks the parameter as only readable. Implies not_critical() + /*! \todo This function needs to be written, as it is only a stub */ + ParamDesc &read_only() { return *this; } + + //! Marks the parameter as only writable. Implies not_critical() + /*! \todo This function needs to be written, as it is only a stub */ + ParamDesc &write_only() { return *this; } + + //! Adds a description of a possible enumeration value + /*! Only relevant if the parameter is of an integer type and hint set to \c "enum" . */ + ParamDesc &add_enum_value(int val, const String &enum_name,const String &enum_local_name) + { enum_list_.push_back(EnumData(val,enum_name,enum_local_name)); return *this; } + + //! Returns the localized name of the parameter + const String &get_local_name()const { return local_name_; } + + //! Returns the name of the parameter + const String &get_name()const { return name_; } + + //! Returns the localized description of the parameter + const String &get_description()const { return desc_; } + + //! Returns the paramater's group + const String &get_group()const { return group_; } + + //! Returns a "hint" about the parameter, regarding how it is to be displayed to the user + const String &get_hint()const { return hint_; } + + //! Returns the name of the parameter that is defined as the "origin". Used for visual editing. + const String &get_origin()const { return origin_; } + + //! \writeme + const String &get_connect()const { return connect_; } + + //! \writeme + const String &get_box()const { return box_; } + + //! Returns the scalar value for the parameter. Used for visual editing. + const Real &get_scalar()const { return scalar_; } + + //! Returns \c true if the layer is critical, \c false otherwise. + bool get_critical()const { return critical_; } + + //! Returns \c true if the layer is hidden, \c false otherwise. + bool get_hidden()const { return hidden_; } + + + + ParamDesc& set_is_distance(bool x=true) { is_distance_=x; return *this;} + bool get_is_distance()const { return is_distance_; } +}; // END of class ParamDesc + +class ParamVocab : public std::list< ParamDesc > +{ +}; + +}; // END of namespace synfig + +/* === E N D =============================================================== */ + +#endif diff --git a/synfig-core/tags/stable/src/synfig/pch.h b/synfig-core/tags/stable/src/synfig/pch.h new file mode 100644 index 0000000..dc3c329 --- /dev/null +++ b/synfig-core/tags/stable/src/synfig/pch.h @@ -0,0 +1,37 @@ +/* === S Y N F I G ========================================================= */ +/*! \file pch.h +** \brief Pre-Compiled Header +** +** $Id$ +** +** \legal +** Copyright (c) 2002-2005 Robert B. Quattlebaum Jr., Adrian Bentley +** +** This package is free software; you can redistribute it and/or +** modify it under the terms of the GNU General Public License as +** published by the Free Software Foundation; either version 2 of +** the License, or (at your option) any later version. +** +** This package is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +** General Public License for more details. +** \endlegal +** +** === N O T E S =========================================================== +** +** ========================================================================= */ + +/* === S T A R T =========================================================== */ + +#ifndef __SYNFIG_PCH_H +#define __SYNFIG_PCH_H + +/* === H E A D E R S ======================================================= */ + +#include +#include "synfig.h" + +/* === E N D =============================================================== */ + +#endif diff --git a/synfig-core/tags/stable/src/synfig/polynomial_root.cpp b/synfig-core/tags/stable/src/synfig/polynomial_root.cpp new file mode 100644 index 0000000..ab792f8 --- /dev/null +++ b/synfig-core/tags/stable/src/synfig/polynomial_root.cpp @@ -0,0 +1,267 @@ +/* === S Y N F I G ========================================================= */ +/*! \file polynomial_root.cpp +** \brief Template File +** +** $Id$ +** +** \legal +** Copyright (c) 2002-2005 Robert B. Quattlebaum Jr., Adrian Bentley +** +** This package is free software; you can redistribute it and/or +** modify it under the terms of the GNU General Public License as +** published by the Free Software Foundation; either version 2 of +** the License, or (at your option) any later version. +** +** This package is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +** General Public License for more details. +** \endlegal +*/ +/* ========================================================================= */ + +/* === H E A D E R S ======================================================= */ + +#ifdef USING_PCH +# include "pch.h" +#else +#ifdef HAVE_CONFIG_H +# include +#endif + +#include "polynomial_root.h" +#include + +#endif + +/* === U S I N G =========================================================== */ + +using namespace std; +//using namespace etl; +//using namespace synfig; + +/* === M A C R O S ========================================================= */ + +/* === G L O B A L S ======================================================= */ +typedef complex Complex; + +/* === P R O C E D U R E S ================================================= */ + +/* === M E T H O D S ======================================================= */ + +#define EPSS 1.0e-7 +#define MR 8 +#define MT 10 +#define MAXIT (MT*MR) + +/*EPSS is the estimated fractional roundoff error. We try to break (rare) limit +cycles with MR different fractional values, once every MT steps, for MAXIT total allowed iterations. +*/ + +/* Explanation: + + A polynomial can be represented like so: + Pn(x) = (x - x1)(x - x2)...(x - xn) where xi = complex roots + + We can get the following: + ln|Pn(x)| = ln|x - x1| + ln|x - x2| + ... + ln|x - xn| + + G := d ln|Pn(x)| / dx = + +1/(x-x1) + 1/(x-x2) + ... + 1/(x-xn) + + and + + H := - d2 ln|Pn(x)| / d2x = + +1/(x-x1)^2 + 1/(x-x2)^2 + ... + 1/(x-xn)^2 + + which gives + H = [Pn'/Pn]^2 - Pn''/Pn + + Laguerre's formula guesses that the root we are seeking x1 is located + some distance a from our current guess x, and all the other roots are + located at distance b. + + Using this: + + 1/a + (n-1)/b = G + + and + + 1/a^2 + (n-1)/b^2 = H + + which yields this solution for a: + + a = n / G +- sqrt( (n-1)(nH - G^2) ) + + where +- is determined by which ever yields the largest magnitude for the denominator. + a can easily be complex since the factor inside the square-root can be negative. + + This method iterates (x=x-a) until a is sufficiently small. +*/ + +/* Given the degree m and the m+1 complex coefficients a[0..m] of the polynomial sum(i=0,m){a[i]x^i}, +and given a complex value x, this routine improves x by laguerre's method until it converges, +within the achievable roundoff limit, to a root of the given polynomial. The number of iterations taken +is returned as `its'. +*/ +void laguer(Complex a[], int m, Complex *x, int *its) +{ + int iter,j; + float abx, abp, abm, err; + Complex dx,x1,b,d,f,g,h,sq,gp,gm,g2; + + //Fractions used to break a limit cycle + static float frac[MR+1] = {0.0,0.5,0.25,0.75,0.13,0.38,0.62,0.88,1.0}; + + for(iter = 1; iter <= MAXIT; ++iter) + { + *its = iter; //number of iterations so far + + b = a[m]; //the highest coefficient + err = abs(b); //its magnitude + + d = f = Complex(0,0); //clear variables for use + abx = abs(*x); //the magnitude of the current root + + //Efficent computation of the polynomial and its first 2 derivatives + for(j = m-1; j >= 0; --j) + { + f = (*x)*f + d; + d = (*x)*d + b; + b = (*x)*b + a[j]; + + err = abs(b) + abx*err; + } + + //Estimate the roundoff error in evaluation polynomial + err *= EPSS; + + //Are we on the root? + if(abs(b) < err) + { + return; + } + + //General case: use Laguerre's formula + //a = n / G +- sqrt( (n-1)(nH - G^2) ) + //x = x - a + + g = d / b; //get G + g2 = g * g; //for the sqrt calc + + h = g2 - 2.0f * (f / b); //get H + + sq = pow( (float)(m-1) * ((float)m*h - g2), 0.5f ); //get the sqrt + + //get the denominator + gp = g + sq; + gm = g - sq; + + abp = abs(gp); + abm = abs(gm); + + //get the denominator with the highest magnitude + if(abp < abm) + { + abp = abm; + gp = gm; + } + + //if the denominator is positive do one thing, otherwise do the other + dx = (abp > 0.0) ? (float)m / gp : polar((1+abx),(float)iter); + x1 = *x - dx; + + //Have we converged? + if( *x == x1 ) + { + return; + } + + //Every so often take a fractional step, to break any limit cycle (itself a rare occurrence). + if( iter % MT ) + { + *x = x1; + }else + { + *x = *x - (frac[iter/MT]*dx); + } + } + + //very unusual - can occur only for complex roots. Try a different starting guess for the root. + //nrerror("too many iterations in laguer"); + return; +} + +#define EPS 2.0e-6 +#define MAXM 100 //a small number, and maximum anticipated value of m.. + +/* Given the degree m and the m+1 complex coefficients a[0..m] of the polynomial a0 + a1*x +...+ an*x^n + the routine successively calls laguer and finds all m complex roots in roots[1..m]. + The boolean variable polish should be input as true (1) if polishing (also by Laguerre's Method) + is desired, false (0) if the roots will be subsequently polished by other means. +*/ +void RootFinder::find_all_roots(bool polish) +{ + int i,its,j,jj; + Complex x,b,c; + int m = coefs.size()-1; + + //make sure roots is big enough + roots.resize(m); + + if(workcoefs.size() < MAXM) workcoefs.resize(MAXM); + + //Copy the coefficients for successive deflation + for(j = 0; j <= m; ++j) + { + workcoefs[j] = coefs[j]; + } + + //Loop over each root to be found + for(j = m-1; j >= 0; --j) + { + //Start at 0 to favor convergence to smallest remaining root, and find the root + x = Complex(0,0); + laguer(&workcoefs[0],j+1,&x,&its); //must add 1 to get the degree + + //if it is close enough to a real root, then make it so + if(abs(x.imag()) <= 2.0*EPS*abs(x.real())) + { + x = Complex(x.real()); + } + + roots[j] = x; + + //forward deflation + + //the degree is j+1 since j(0,m-1) + b = workcoefs[j+1]; + for(jj = j; jj >= 0; --jj) + { + c = workcoefs[jj]; + workcoefs[jj] = b; + b = x*b + c; + } + } + + //Polish the roots using the undeflated coefficients + if(polish) + { + for(j = 0; j < m; ++j) + { + laguer(&coefs[0],m,&roots[j],&its); + } + } + + //Sort roots by their real parts by straight insertion + for(j = 1; j < m; ++j) + { + x = roots[j]; + for( i = j-1; i >= 1; --i) + { + if(roots[i].real() <= x.real()) break; + roots[i+1] = roots[i]; + } + roots[i+1] = x; + } +} diff --git a/synfig-core/tags/stable/src/synfig/polynomial_root.h b/synfig-core/tags/stable/src/synfig/polynomial_root.h new file mode 100644 index 0000000..7fda758 --- /dev/null +++ b/synfig-core/tags/stable/src/synfig/polynomial_root.h @@ -0,0 +1,120 @@ +/* === S Y N F I G ========================================================= */ +/*! \file polynomial_root.h +** \brief Polynomial Root Finder Header +** +** $Id$ +** +** \legal +** Copyright (c) 2002-2005 Robert B. Quattlebaum Jr., Adrian Bentley +** +** This package is free software; you can redistribute it and/or +** modify it under the terms of the GNU General Public License as +** published by the Free Software Foundation; either version 2 of +** the License, or (at your option) any later version. +** +** This package is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +** General Public License for more details. +** \endlegal +*/ +/* ========================================================================= */ + +/* === S T A R T =========================================================== */ + +#ifndef __SYNFIG_POLYNOMIAL_ROOT_H +#define __SYNFIG_POLYNOMIAL_ROOT_H + +/* === H E A D E R S ======================================================= */ + +#include +#include + +/* === M A C R O S ========================================================= */ + +/* === T Y P E D E F S ===================================================== */ + +/* === C L A S S E S & S T R U C T S ======================================= */ +template < typename T = float, typename F = float > +class Polynomial : public std::vector //a0 + a1x + a2x^2 + ... + anx^n +{ +public: + + //Will maintain all lower constants + void degree(unsigned int d, const T & def = (T)0) { resize(d+1,def); } + unsigned int degree()const { return size() - 1; } + + const Polynomial & operator+=(const Polynomial &p) + { + if(p.size() > size()) + resize(p.size(), (T)0); + + for(int i = 0; i < p.size(); ++i) + { + (*this)[i] += p[i]; + } + return *this; + } + + const Polynomial & operator-=(const Polynomial &p) + { + if(p.size() > size()) + resize(p.size(), (T)0); + + for(int i = 0; i < p.size(); ++i) + { + (*this)[i] -= p[i]; + } + return *this; + } + + const Polynomial & operator*=(const Polynomial &p) + { + if(p.size() < 1) + { + resize(0); + return *this; + } + + unsigned int i,j; + std::vector nc(*this); + + //in place for constant stuff + for(i = 0; i < nc.size(); ++i) + { + (*this)[i] *= p[0]; + } + + if(p.size() < 2) return *this; + + resize(size() + p.degree()); + for(int i = 0; i < nc.size(); ++i) + { + for(int j = 1; j < p.size(); ++j) + { + nc[i+j] += nc[i]*p[j]; + } + } + + return *this; + } +}; + +class RootFinder +{ + std::vector< std::complex > workcoefs; + int its; + +public: + std::vector< std::complex > coefs; //the number of coefficients determines the degree of polynomial + + std::vector< std::complex > roots; + + void find_all_roots(bool polish); +}; + + + +/* === E N D =============================================================== */ + +#endif diff --git a/synfig-core/tags/stable/src/synfig/proto/Makefile b/synfig-core/tags/stable/src/synfig/proto/Makefile new file mode 100644 index 0000000..68ce978 --- /dev/null +++ b/synfig-core/tags/stable/src/synfig/proto/Makefile @@ -0,0 +1,18 @@ + +M4=m4 + +PROTO_PP=$(M4) proto.m4 + +FILES=nodebase.h + +all: $(FILES) + +clean: + $(RM) $(FILES) + +SUFFIXES=.px .h + +.SUFFIXES: $(SUFFIXES) + +.px.h: proto.m4 + $(PROTO_PP) $< > $@ diff --git a/synfig-core/tags/stable/src/synfig/proto/nodebase.px b/synfig-core/tags/stable/src/synfig/proto/nodebase.px new file mode 100644 index 0000000..445febf --- /dev/null +++ b/synfig-core/tags/stable/src/synfig/proto/nodebase.px @@ -0,0 +1,74 @@ +/* === S Y N F I G ========================================================= */ +/*! \file nodebase.h +** \brief Template Header +** +** $Id$ +** +** \legal +** Copyright (c) 2002-2005 Robert B. Quattlebaum Jr., Adrian Bentley +** +** This package is free software; you can redistribute it and/or +** modify it under the terms of the GNU General Public License as +** published by the Free Software Foundation; either version 2 of +** the License, or (at your option) any later version. +** +** This package is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +** General Public License for more details. +** \endlegal +*/ +/* ========================================================================= */ + +/* === S T A R T =========================================================== */ + +#ifndef __SYNFIG_NODEBASE_H +#define __SYNFIG_NODEBASE_H + +/* === H E A D E R S ======================================================= */ + +#include "../protocol.h" +#include "../string.h" +#include "../guid.h" +#include + +/* === M A C R O S ========================================================= */ + +/* === T Y P E D E F S ===================================================== */ + +/* === C L A S S E S & S T R U C T S ======================================= */ + +namespace synfig { +namespace Proto { + +typedef int Query; +typedef int NodeList; + +class NodeBase : public Protocol +{ +public: + + PX_DEFINE_DATA(guid, GUID) + + PX_DEFINE_FUNC(func_test, float, int, int) + + PX_DEFINE_DATA(id, String) + + PX_DEFINE_DATA(root, NodeHandle) + + PX_DEFINE_FUNC(signal_changed, sigc::signal) + PX_DEFINE_FUNC(signal_deleted, sigc::signal) + + PX_DEFINE_FUNC_CONST(get_parents, const NodeList) + PX_DEFINE_FUNC_CONST(get_children, const NodeList) + + PX_DEFINE_FUNC(query_children, NodeList, Query) + +}; // END of class Proto::NodeBase + +}; // END of namespace Proto +}; // END of namespace synfig + +/* === E N D =============================================================== */ + +#endif diff --git a/synfig-core/tags/stable/src/synfig/proto/proto.m4 b/synfig-core/tags/stable/src/synfig/proto/proto.m4 new file mode 100644 index 0000000..91800eb --- /dev/null +++ b/synfig-core/tags/stable/src/synfig/proto/proto.m4 @@ -0,0 +1,37 @@ +dnl + + define(`forloop', + `pushdef(`$1', `$2')_forloop(`$1', `$2', `$3', `$4')popdef(`$1')') + define(`_forloop', + `$4`'ifelse($1, `$3', , + `define(`$1', incr($1))_forloop(`$1', `$2', `$3', `$4')')') + +define(`_PRINT_ARGS',`dnl +ifelse($#,1,,`$2 v$1`'ifelse($#,2,,`, _PRINT_ARGS(incr($1), shift(shift($@)))')')dnl +')dnl + +define(`_PRINT_ARGS2',`dnl +ifelse($#,1,,`v$1`'ifelse($#,2,,`, _PRINT_ARGS2(incr($1), shift(shift($@)))')')dnl +')dnl + +dnl PX_DEFINE_FUNC(func_name, ret_type, args...) +define(`PX_DEFINE_FUNC',` + sigc::slot< $2`'ifelse($#,2,,`, shift(shift($@))') > _slot_$1; + $2 $1(ifelse($#,2,,`_PRINT_ARGS(1,shift(shift($@)))')) { + return _slot_$1(ifelse($#,2,,`_PRINT_ARGS2(1,shift(shift($@)))')); + } +')dnl + +dnl PX_DEFINE_FUNC_CONST(func_name, ret_type, args...) +define(`PX_DEFINE_FUNC_CONST',` + sigc::slot< $2`'ifelse($#,2,,`, shift(shift($@))') > _slot_$1_const; + $2 $1(ifelse($#,2,,`_PRINT_ARGS(1,shift(shift($@)))'))const { + return _slot_$1_const(ifelse($#,2,,`_PRINT_ARGS2(1,shift(shift($@)))')); + } +')dnl + +define(`PX_DEFINE_DATA', `dnl +PX_DEFINE_FUNC_CONST(get_$1, $2) +PX_DEFINE_FUNC(set_$1, void, $2) +')dnl + diff --git a/synfig-core/tags/stable/src/synfig/protocol.h b/synfig-core/tags/stable/src/synfig/protocol.h new file mode 100644 index 0000000..6853066 --- /dev/null +++ b/synfig-core/tags/stable/src/synfig/protocol.h @@ -0,0 +1,68 @@ +/* === S Y N F I G ========================================================= */ +/*! \file protocol.h +** \brief Template Header +** +** $Id$ +** +** \legal +** Copyright (c) 2002-2005 Robert B. Quattlebaum Jr., Adrian Bentley +** +** This package is free software; you can redistribute it and/or +** modify it under the terms of the GNU General Public License as +** published by the Free Software Foundation; either version 2 of +** the License, or (at your option) any later version. +** +** This package is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +** General Public License for more details. +** \endlegal +*/ +/* ========================================================================= */ + +/* === S T A R T =========================================================== */ + +#ifndef __SYNFIG_PROTOCOL_H +#define __SYNFIG_PROTOCOL_H + +/* === H E A D E R S ======================================================= */ + +#include + +/* === M A C R O S ========================================================= */ + +/* === T Y P E D E F S ===================================================== */ + +/* === C L A S S E S & S T R U C T S ======================================= */ + +namespace synfig { + +/* + * class Object +{ +public: + + sigc::signal_ + bool find_protocol(Protocol& proto) + { + + } +}; +*/ + +class Protocol +{ +public: + class Type; + +}; // END of class Protocol + +class Protocol::Type +{ +}; // END of class Protocol::Type + +}; // END of namespace synfig + +/* === E N D =============================================================== */ + +#endif diff --git a/synfig-core/tags/stable/src/synfig/quick_rng.h b/synfig-core/tags/stable/src/synfig/quick_rng.h new file mode 100644 index 0000000..9f63556 --- /dev/null +++ b/synfig-core/tags/stable/src/synfig/quick_rng.h @@ -0,0 +1,85 @@ +/* === S Y N F I G ========================================================= */ +/*! \file quick_rng.h +** \brief Template Header +** +** $Id: guid.h 335 2007-03-16 00:39:09Z dooglus $ +** +** \legal +** Copyright (c) 2002-2005 Robert B. Quattlebaum Jr., Adrian Bentley +** Copyright (c) 2007 Chris Moore +** +** This package is free software; you can redistribute it and/or +** modify it under the terms of the GNU General Public License as +** published by the Free Software Foundation; either version 2 of +** the License, or (at your option) any later version. +** +** This package is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +** General Public License for more details. +** \endlegal +*/ +/* ========================================================================= */ + +/* === S T A R T =========================================================== */ + +#ifndef __SYNFIG_QUICK_RNG_H +#define __SYNFIG_QUICK_RNG_H + +/* === H E A D E R S ======================================================= */ + +#include + +/* === M A C R O S ========================================================= */ + +/* === T Y P E D E F S ===================================================== */ + +/* === C L A S S E S & S T R U C T S ======================================= */ + +// A fast 32-bit linear congruential random number generator +class quick_rng +{ + uint32_t next; +public: + quick_rng(uint32_t seed=0):next(seed) { } + + void set_seed(uint32_t x) + { + next=x; + } + + uint32_t i32() + { + static const uint32_t a(1664525); + static const uint32_t c(1013904223); + + return next=next*a+c; + } + + uint32_t i16() + { + return i32()>>16; + } + + float f() + { + static const float m(int(65535)); + + return float(i16())/m; + } + + uint32_t operator()(const uint32_t& m) + { + if(m==65536) + return i16(); + else + if(m<=65536) + return i16()%m; + else + return i32()%m; + } +}; + +/* === E N D =============================================================== */ + +#endif diff --git a/synfig-core/tags/stable/src/synfig/real.h b/synfig-core/tags/stable/src/synfig/real.h new file mode 100644 index 0000000..abc50c7 --- /dev/null +++ b/synfig-core/tags/stable/src/synfig/real.h @@ -0,0 +1,41 @@ +/* === S Y N F I G ========================================================= */ +/*! \file real.h +** \brief Provides the synfig::Real typedef +** +** $Id$ +** +** \legal +** Copyright (c) 2002-2005 Robert B. Quattlebaum Jr., Adrian Bentley +** +** This package is free software; you can redistribute it and/or +** modify it under the terms of the GNU General Public License as +** published by the Free Software Foundation; either version 2 of +** the License, or (at your option) any later version. +** +** This package is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +** General Public License for more details. +** \endlegal +*/ +/* ========================================================================= */ + +/* === S T A R T =========================================================== */ + +#ifndef __SYNFIG_REAL_H +#define __SYNFIG_REAL_H + +/* === T Y P E D E F S ===================================================== */ + +namespace synfig { + +/*! \typedef Real +** \todo writeme +*/ +typedef double Real; + +}; // END of namespace synfig + +/* === E N D =============================================================== */ + +#endif diff --git a/synfig-core/tags/stable/src/synfig/rect.cpp b/synfig-core/tags/stable/src/synfig/rect.cpp new file mode 100644 index 0000000..ff52e07 --- /dev/null +++ b/synfig-core/tags/stable/src/synfig/rect.cpp @@ -0,0 +1,60 @@ +/* === S Y N F I G ========================================================= */ +/*! \file rect.cpp +** \brief Template File +** +** $Id$ +** +** \legal +** Copyright (c) 2002-2005 Robert B. Quattlebaum Jr., Adrian Bentley +** +** This package is free software; you can redistribute it and/or +** modify it under the terms of the GNU General Public License as +** published by the Free Software Foundation; either version 2 of +** the License, or (at your option) any later version. +** +** This package is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +** General Public License for more details. +** \endlegal +*/ +/* ========================================================================= */ + +/* === H E A D E R S ======================================================= */ + +#ifdef USING_PCH +# include "pch.h" +#else +#ifdef HAVE_CONFIG_H +# include +#endif + +#include "rect.h" + +#endif + +/* === U S I N G =========================================================== */ + +using namespace std; +using namespace etl; +using namespace synfig; + +/* === M A C R O S ========================================================= */ + +/* === G L O B A L S ======================================================= */ + +/* === P R O C E D U R E S ================================================= */ + +/* === M E T H O D S ======================================================= */ + +Rect +Rect::full_plane() +{ + const double infinity(HUGE_VAL); + return Rect( + -infinity, + -infinity, + infinity, + infinity + ); +} diff --git a/synfig-core/tags/stable/src/synfig/rect.h b/synfig-core/tags/stable/src/synfig/rect.h new file mode 100644 index 0000000..140c5a1 --- /dev/null +++ b/synfig-core/tags/stable/src/synfig/rect.h @@ -0,0 +1,174 @@ +/* === S Y N F I G ========================================================= */ +/*! \file rect.h +** \brief Rectangle Class +** +** $Id$ +** +** \legal +** Copyright (c) 2002-2005 Robert B. Quattlebaum Jr., Adrian Bentley +** +** This package is free software; you can redistribute it and/or +** modify it under the terms of the GNU General Public License as +** published by the Free Software Foundation; either version 2 of +** the License, or (at your option) any later version. +** +** This package is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +** General Public License for more details. +** \endlegal +*/ +/* ========================================================================= */ + +/* === S T A R T =========================================================== */ + +#ifndef __SYNFIG_RECT_H +#define __SYNFIG_RECT_H + +/* === H E A D E R S ======================================================= */ + +#include +#include "real.h" +#include "vector.h" +#include +#include + +/* === M A C R O S ========================================================= */ + +/* === T Y P E D E F S ===================================================== */ + +/* === C L A S S E S & S T R U C T S ======================================= */ + +namespace synfig { + +class Rect : public etl::rect +{ +public: + + using etl::rect::set_point; + using etl::rect::expand; + using etl::rect::set; + + static Rect full_plane(); + + static Rect zero() + { + return Rect( + 0, + 0, + 0, + 0 + ); + } + + Rect() { } + + Rect(const Point& x) { set_point(x); } + + Rect(const Point& min, const Point& max) { set_point(min); expand(max); } + + Rect(const value_type &x1,const value_type &y1) { set_point(x1,y1); } + + Rect(const value_type &x1,const value_type &y1, + const value_type &x2,const value_type &y2) + { + set_point(x1,y1); + expand(x2,y2); + } + + void set_point(const Point& max) { set_point(max[0],max[1]); } + + Rect& expand(const Point& max) { expand(max[0],max[1]); return *this; } + + Rect& expand(const Real& r) { minx-=r; miny-=r; maxx+=r; maxy+=r; return *this; } + + Rect& expand_x(const Real& r) { minx-=r; maxx+=r; return *this; } + + Rect& expand_y(const Real& r) { miny-=r; maxy+=r; return *this; } + + Rect& set(const Point& min,const Point& max) { set(min[0],min[1],max[0],max[1]); return *this; } + + Point get_min()const { return Point(minx,miny); } + Point get_max()const { return Point(maxx,maxy); } + + bool is_inside(const Point& x) { return x[0]>minx && x[0]miny && x[1]0.00000001 && area()>0.00000001) + etl::set_intersect(*this,*this,rhs); + else + *this=zero(); + return *this; + } + + Rect& operator|=(const Rect& rhs) + { + if(rhs.area()>0.00000001 && area()>0.00000001) + etl::set_union(*this,*this,rhs); + else + { + if(area() +#endif + +#include "renddesc.h" +#include + +#endif + +/* === U S I N G =========================================================== */ + +using namespace std; +using namespace etl; +using namespace synfig; + +/* === M A C R O S ========================================================= */ + +/* === G L O B A L S ======================================================= */ + +/* === M E T H O D S ======================================================= */ + +RendDesc & +RendDesc::apply(const RendDesc &x) +{ + operator=(x); + return *this; +} + +const Color & +RendDesc::get_bg_color()const +{ + return background; +} + +RendDesc & +RendDesc::set_bg_color(const Color &bg) +{ + background=bg; return *this; +} + +Real +RendDesc::get_physical_w()const +{ + return (Real)get_w()/get_x_res(); +} + +Real +RendDesc::get_physical_h()const +{ + return (Real)get_h()/get_y_res(); +} + +RendDesc& +RendDesc::set_physical_w(Real w) +{ + set_w(round_to_int(w*get_x_res())); + return *this; +} + +RendDesc& +RendDesc::set_physical_h(Real h) +{ + set_h(round_to_int(h*get_y_res())); + return *this; +} + +int +RendDesc::get_w()const +{ + return w_; +} + +RendDesc & +RendDesc::set_w(int x) +{ + if(FLAGS(flags,LINK_PX_ASPECT)) + { + h_=h_*x/w_; + w_=x; + } + else if(FLAGS(flags,LINK_PX_AREA)) + { + //! \writeme + w_=x; + } + else if(FLAGS(flags,PX_ASPECT)) + { + Vector d=br_-tl_; + float old_span=get_span(); + + // If we should preserve image width + if( FLAGS(flags,IM_W) + || (FLAGS(flags,IM_ZOOMIN) && d[1]>d[1]/x*w_) + || (FLAGS(flags,IM_ZOOMOUT) && d[1]d[0]/y*h_) + || (FLAGS(flags,IM_ZOOMOUT) && d[0]time_end) + time_begin=time_end=x; + else + time_begin=x; + return *this; +} + + +const Time +RendDesc::get_time_end()const +{ + return time_end; +} + +RendDesc & +RendDesc::set_time_end(Time x) +{ + if(x +#include "rect.h" + +/* === M A C R O S ========================================================= */ + +#ifndef DPM2DPI +#define DPM2DPI(x) (float(x)/39.3700787402f) +#define DPI2DPM(x) (float(x)*39.3700787402f) +#endif + +/* === T Y P E D E F S ===================================================== */ + +/* === C L A S S E S & S T R U C T S ======================================= */ + +namespace synfig { + +/*! \class RendDesc +** \todo writeme +*/ +class RendDesc +{ +public: + enum Lock + { + PX_ASPECT=(1<<0), + PX_AREA=(1<<1), + PX_W=(1<<2), + PX_H=(1<<3), + + IM_ASPECT=(1<<4), + IM_SPAN=(1<<5), + IM_W=(1<<6), + IM_H=(1<<7), + IM_ZOOMIN=(1<<8), + IM_ZOOMOUT=(1<<9), + + LINK_PX_ASPECT=(1<<10), + LINK_PX_AREA=(1<<11), + LINK_IM_ASPECT=(1<<12), + LINK_IM_SPAN=(1<<13), + LINK_IM_CENTER=(1<<14) + }; + +private: + int w_,h_; + Real x_res; + Real y_res; + Point tl_, br_; + Point focus; + int a; + //Gamma gamma; + Color background; + int flags; + bool interlaced; + bool clamp; + + float frame_rate; + Time time_begin, time_end; + +public: + + enum + { + ANTIALIAS_UNIFORM, + ANTIALIAS_MONTE_CARLO, + ANTIALIAS_JITTERED, + ANTIALIAS_ADAPTIVE, + ANTIALIAS_QUINTCUNX + } AntialiasFilter; + + //! Default Constructor + RendDesc(): + w_ (480), + h_ (270), + x_res (DPI2DPM(72.0f)), + y_res (DPI2DPM(72.0f)), + tl_ (-4,2.25), + br_ (4,-2.25), + focus (0,0), + a (2), + background (Color::gray()), + flags (0), + interlaced (false), + clamp (false), + frame_rate (24), + time_begin (0), + time_end (0) + { } + + //! \writeme + RendDesc &apply(const RendDesc &x); + + //! \writeme + const Color &get_bg_color()const; + + //! \writeme + RendDesc &set_bg_color(const Color &bg); + + //! Return the width of the composition in pixels + int get_w()const; + + //! Set the width of the composition in pixels. + /*! The other parameters are adjusted according to the + ** constraints placed on the flags. + */ + RendDesc &set_w(int x); + + //! Return the height of the composition in pixels + int get_h()const; + + //! Set the height of the composition in pixels. + /*! The other parameters are adjusted according to the + ** constraints placed on the flags. + */ + RendDesc &set_h(int y); + + //! Sets the width and height of the composition in pixels + RendDesc &set_wh(int x, int y); + + //! Returns the horizontal resolution (in dots per meter) + Real get_x_res()const; + + //! Sets the horizontal resolution (in dots per meter) + RendDesc &set_x_res(Real x); + + //! Returns the vertical resolution (in dots per meter) + Real get_y_res()const; + + //! Sets the vertical resolution (in dots per meter) + RendDesc &set_y_res(Real y); + + + //! Return the physical width of the composition in meters + Real get_physical_w()const; + + //! Return the physical height of the composition in meters + Real get_physical_h()const; + + //! Set the physical width of the composition in meters + RendDesc &set_physical_w(Real w); + + //! Set the physical height of the composition in meters + RendDesc &set_physical_h(Real h); + + + //! Return the index of the first frame + int get_frame_start()const; + + //! Set the index of the first frame + RendDesc &set_frame_start(int x); + + //! Return the index of the last frame + int get_frame_end()const; + + //! Set the index of the last frame + RendDesc &set_frame_end(int x); + + //! Return the starting time of the animation + const Time get_time_start()const; + + //! Set the time that the animation will start + RendDesc &set_time_start(Time x); + + //! Return the end time of the animation + const Time get_time_end()const; + + //! Set the time that the animation will end + RendDesc &set_time_end(Time x); + + //! Setup for one frame at the given time + RendDesc &set_time(Time x); + + //! Setup for one frame + RendDesc &set_frame(int x); + + //! Return the frame rate (frames-per-second) + const float &get_frame_rate()const; + + //! Set the frame rate (frames-per-second) + RendDesc &set_frame_rate(float x); + + //! Return the status of the interlaced flag + const bool &get_interlaced()const; + + //! Set the interlace flag + RendDesc &set_interlaced(bool x); + + //! Return the status of the clamp flag + const bool &get_clamp()const; + + //! Set the clamp flag + RendDesc &set_clamp(bool x); + + //! Set constraint flags + RendDesc &set_flags(const int &x); + + //! Clear constraint flags + RendDesc &clear_flags(); + + //! Get constraint flags + int get_flags()const; + + //! Return the aspect ratio of a single pixel + Point::value_type get_pixel_aspect()const; + + //! Return the aspect ratio of the entire image + Point::value_type get_image_aspect()const; + + //! Return the antialias amount + const int &get_antialias()const; + + //! Set the antilaias amount + RendDesc &set_antialias(const int &x); + + //! Return the distance from the bottom-right to the top-left + Real get_span()const; + + //! Set the span distance + RendDesc& set_span(const Real &x); + + //const Gamma &get_gamma()const; + + //RendDesc &set_gamma(const Gamma &x); + + const Point &get_focus()const; + + RendDesc &set_focus(const Point &x); + + const Point &get_tl()const; + + RendDesc &set_tl(const Point &x); + + const Point &get_br()const; + + RendDesc &set_br(const Point &x); + + Rect get_rect()const { return Rect(get_tl(),get_br()); } + + RendDesc &set_viewport(const Point &__tl, const Point &__br); + + RendDesc &set_viewport(Vector::value_type a,Vector::value_type b,Vector::value_type c,Vector::value_type d); + + //! Returns the width of one pixel + Real get_pw()const; + + //! Returns the height of one pixel + Real get_ph()const; + + //! Sets viewport to represent the screen at the give pixel coordinates + RendDesc &set_subwindow(int x, int y, int w, int h); +}; // END of class RendDesc + +//! This operator allows the combining of RendDesc::Lock flags using the '|' operator +/*! \see RendDesc::Lock, RendDesc */ +inline RendDesc::Lock operator|(RendDesc::Lock lhs, RendDesc::Lock rhs) +{ + return static_cast((int)lhs|(int)rhs); +} + +//! This operator allows the masking of RendDesc::Lock flags using the '&' operator +/*! \see RendDesc::Lock, RendDesc */ +inline RendDesc::Lock operator&(RendDesc::Lock lhs, RendDesc::Lock rhs) +{ + return static_cast((int)lhs&(int)rhs); +} + +//! This operator allows the inverting of RendDesc::Lock flags using the '~' operator +/*! \see RendDesc::Lock, RendDesc */ +inline RendDesc::Lock operator~(RendDesc::Lock rhs) +{ + return static_cast(~(int)rhs); +} + +//! This operator is for checking RendDesc::Lock flags. +/*! Don't think of it as "less then or equal to", but think of it +** like an arrow. Is \a rhs inside of \a lhs ? +** \see RendDesc::Lock, RendDesc */ +inline bool operator<=(RendDesc::Lock lhs, RendDesc::Lock rhs) +{ + return static_cast(lhs) & static_cast(rhs)==static_cast(rhs); +} + + +}; /* end namespace synfig */ + +/* === E N D =============================================================== */ + +#endif diff --git a/synfig-core/tags/stable/src/synfig/render.cpp b/synfig-core/tags/stable/src/synfig/render.cpp new file mode 100644 index 0000000..4789f52 --- /dev/null +++ b/synfig-core/tags/stable/src/synfig/render.cpp @@ -0,0 +1,526 @@ +/* === S Y N F I G ========================================================= */ +/*! \file synfig/render.cpp +** \brief Renderer +** +** $Id$ +** +** \legal +** Copyright (c) 2002-2005 Robert B. Quattlebaum Jr., Adrian Bentley +** +** This package is free software; you can redistribute it and/or +** modify it under the terms of the GNU General Public License as +** published by the Free Software Foundation; either version 2 of +** the License, or (at your option) any later version. +** +** This package is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +** General Public License for more details. +** \endlegal +*/ +/* ========================================================================= */ + +/* === H E A D E R S ======================================================= */ + +#define SYNFIG_NO_ANGLE + +#ifdef USING_PCH +# include "pch.h" +#else +#ifdef HAVE_CONFIG_H +# include +#endif + +#ifndef WIN32 +#include +#include +#include +#endif + +#include "render.h" +#include "target.h" +#include "canvas.h" +#include +#include +#include "context.h" +#include "surface.h" + +#endif + +using namespace std; +using namespace synfig; +using namespace etl; + +/* === M A C R O S ========================================================= */ + +/* === P R O C E D U R E S ================================================= */ + +bool +synfig::parametric_render( + Context context, + Surface &surface, + const RendDesc &desc, + ProgressCallback *callback +) +{ + Point::value_type + u,v, // Current location in image + su,sv, // Starting locations + du, dv, // Distance between pixels + dsu,dsv; // Distance between subpixels + + bool + no_clamp=!desc.get_clamp(); + + int + w(desc.get_w()), + h(desc.get_h()), + a(desc.get_antialias()); + + Point + tl(desc.get_tl()), + br(desc.get_br()); + + //Gamma + // gamma(desc.get_gamma()); + + int + x,y, // Current location on output bitmap + x2,y2; // Subpixel counters + + Color::value_type + pool; // Alpha pool (for correct alpha antialiasing) + + // Calculate the number of channels + //chan=channels(desc.get_pixel_format()); + + // Calculate the distance between pixels + du=(br[0]-tl[0])/(Point::value_type)w; + dv=(br[1]-tl[1])/(Point::value_type)h; + + // Calculate the distance between sub pixels + dsu=du/(Point::value_type)a; + dsv=dv/(Point::value_type)a; + + // Calculate the starting points + //su=tl[0]+(du-dsu)/(Point::value_type)2.0; + //sv=tl[1]-(dv-dsv)/(Point::value_type)2.0; + su=tl[0]; + sv=tl[1]; + + surface.set_wh(desc.get_w(),desc.get_h()); + + assert(surface); + + // Loop through all horizontal lines + for(y=0,v=sv;yamount_complete(y,h) == false ) + { + // If the callback returns false, + // then the render has been aborted. + + return false; + } + + // Loop through every pixel in row + for(x=0,u=su;xamount_complete(h,h); + + // Report our success + return(true); +} + +bool +synfig::render( + Context context, + Target_Scanline::Handle target, + const RendDesc &desc, + ProgressCallback *callback) +{ + Point::value_type + u,v, // Current location in image + su,sv, // Starting locations + du, dv, // Distance between pixels + dsu,dsv; // Distance between subpixels + + bool + no_clamp=!desc.get_clamp(); + + int + w(desc.get_w()), + h(desc.get_h()), + a(desc.get_antialias()); + + Point + tl(desc.get_tl()), + br(desc.get_br()); + + //Gamma + // gamma(desc.get_gamma()); + + int + x,y, // Current location on output bitmap + x2,y2; // Subpixel counters + + Color::value_type + pool; // Alpha pool (for correct alpha antialiasing) + + assert(target); + + // If we do not have a a target then bail + if(!target) + return false; + + // Calculate the number of channels + //chan=channels(desc.get_pixel_format()); + + // Calculate the distance between pixels + du=(br[0]-tl[0])/(Point::value_type)w; + dv=(br[1]-tl[1])/(Point::value_type)h; + + // Calculate the distance between sub pixels + dsu=du/(Point::value_type)a; + dsv=dv/(Point::value_type)a; + + // Calculate the starting points + su=tl[0]+(du-dsu)/(Point::value_type)2.0; + sv=tl[1]-(dv-dsv)/(Point::value_type)2.0; + + // Mark the start of a new frame. + if(!target->start_frame(callback)) + return false; + + // Loop through all horizontal lines + for(y=0,v=sv;ystart_scanline(y); + + if(!colordata) + { + if(callback)callback->error(_("Target panic")); + else throw(string(_("Target panic"))); + return false; + } + + // If we have a callback that we need + // to report to, do so now. + if(callback) + if( callback->amount_complete(y,h) == false ) + { + // If the callback returns false, + // then the render has been aborted. + // Exit gracefuly. + + target->end_scanline(); + target->end_frame(); + return false; + } + + // Loop through every pixel in row + for(x=0,u=su;xend_scanline()) + { + if(callback)callback->error(_("Target panic")); + else throw(string(_("Target panic"))); + return false; + } + } + + // Finish up the target's frame + target->end_frame(); + + // Give the callback one more last call, + // this time with the full height as the + // current line + if(callback) + callback->amount_complete(h,h); + + // Report our success + return(true); +} + +bool +synfig::render_threaded( + Context context, + Target_Scanline::Handle target, + const RendDesc &desc, + ProgressCallback *callback, + int threads) +{ +#ifndef WIN32 + struct _render_thread + { + int + pipe_read, + pipe_write, + pid; + _render_thread() + { + pipe(&pipe_read); + pid=0; + } + ~_render_thread() + { + close(pipe_read); + close(pipe_write); + if(pid) + { + kill(pid,9); + } + } + } *render_thread; + + int i, mythread=-1; + + Point::value_type + u,v, // Current location in image + su,sv, // Starting locations + du, dv, // Distance between pixels + dsu,dsv; // Distance between subpixels + + bool + no_clamp=!desc.get_clamp(); + + int + w(desc.get_w()), + h(desc.get_h()), + a(desc.get_antialias()); + + Point + tl(desc.get_tl()), + br(desc.get_br()); + + int + x,y, // Current location on output bitmap + x2,y2; // Subpixel counters + + Color::value_type + pool; // Alpha pool (for correct alpha antialiasing) + + assert(target); + + // If we do not have a a target then bail + if(!target) + return false; + + // Calculate the distance between pixels + du=(br[0]-tl[0])/(Point::value_type)w; + dv=(br[1]-tl[1])/(Point::value_type)h; + + // Calculate the distance between sub pixels + dsu=du/(Point::value_type)a; + dsv=dv/(Point::value_type)a; + + // Calculate the starting points + su=tl[0]+(du-dsu)/(Point::value_type)2.0; + sv=tl[1]-(dv-dsv)/(Point::value_type)2.0; + + render_thread=new _render_thread[threads]; + + // Start the forks + for(i=0;istart_frame(callback)) + return false; + + for(y=0;ystart_scanline(y)); + + if(!colordata) + { + if(callback)callback->error(_("Target panic")); + else throw(string(_("Target panic"))); + return false; + } + + // If we have a callback that we need + // to report to, do so now. + if(callback) + if( callback->amount_complete(y,h) == false ) + { + // If the callback returns false, + // then the render has been aborted. + // Exit gracefuly. + + target->end_scanline(); + target->end_frame(); + delete [] render_thread; + return false; + } + + read(render_thread[y%threads].pipe_read,colordata,w*sizeof(Color)); + + // Send the buffer to the render target. + // If anything goes wrong, cleanup and bail. + if(!target->end_scanline()) + { + delete [] render_thread; + if(callback)callback->error(_("Target panic")); + else throw(string(_("Target panic"))); + return false; + } + } + + // Finish up the target's frame + target->end_frame(); + + // Give the callback one more last call, + // this time with the full height as the + // current line + if(callback) + callback->amount_complete(h,h); + + delete [] render_thread; + return true; + +renderthread: + + // Change the random seed, so that each thread has a different one + srand(mythread*20+threads+time(0)); + + Color *buffer(new Color[w]); + + // Loop through all horizontal lines + for(y=mythread,v=sv+dv*(Real)mythread;y + +/* === M A C R O S ========================================================= */ + +/* === T Y P E D E F S ===================================================== */ + +/* === C L A S S E S & S T R U C T S ======================================= */ + +namespace synfig { + +//! Renders starting at \a context to \a target +/*! \warning \a Target::set_rend_desc() must have +** already been called on \a target before +** you call this function! +*/ +extern bool render(Context context, Target_Scanline::Handle target, const RendDesc &desc,ProgressCallback *); + +extern bool parametric_render(Context context, Surface &surface, const RendDesc &desc,ProgressCallback *); + +extern bool render_threaded( Context context, + Target_Scanline::Handle target, + const RendDesc &desc, + ProgressCallback *callback, + int threads); + +}; /* end namespace synfig */ + +/* -- E N D ----------------------------------------------------------------- */ + +#endif diff --git a/synfig-core/tags/stable/src/synfig/savecanvas.cpp b/synfig-core/tags/stable/src/synfig/savecanvas.cpp new file mode 100644 index 0000000..91f5dfa --- /dev/null +++ b/synfig-core/tags/stable/src/synfig/savecanvas.cpp @@ -0,0 +1,769 @@ +/* === S Y N F I G ========================================================= */ +/*! \file savecanvas.cpp +** \brief Writeme +** +** $Id$ +** +** \legal +** Copyright (c) 2002-2005 Robert B. Quattlebaum Jr., Adrian Bentley +** +** This package is free software; you can redistribute it and/or +** modify it under the terms of the GNU General Public License as +** published by the Free Software Foundation; either version 2 of +** the License, or (at your option) any later version. +** +** This package is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +** General Public License for more details. +** \endlegal +*/ +/* ========================================================================= */ + +/* === H E A D E R S ======================================================= */ + +#ifdef USING_PCH +# include "pch.h" +#else +#ifdef HAVE_CONFIG_H +# include +#endif + +#ifdef HAVE_SYS_ERRNO_H +# include +#endif + +#include "savecanvas.h" +#include "general.h" +#include "valuenode.h" +#include "valuenode_subtract.h" +#include "valuenode_animated.h" +#include "valuenode_composite.h" +#include "valuenode_const.h" +#include "valuenode_linear.h" +#include "valuenode_dynamiclist.h" +#include "valuenode_reference.h" +#include "valuenode_segcalctangent.h" +#include "valuenode_segcalcvertex.h" +#include "valuenode_bline.h" +#include "time.h" +#include "keyframe.h" +#include "layer.h" +#include "string.h" +#include "paramdesc.h" + +#include +#include +#include "gradient.h" +#include + +#endif + +/* === U S I N G =========================================================== */ + +using namespace std; +using namespace etl; +using namespace synfig; + +/* === M A C R O S ========================================================= */ + +#define COLOR_VALUE_TYPE_FORMAT "%f" +#define VECTOR_VALUE_TYPE_FORMAT "%0.10f" +#define TIME_TYPE_FORMAT "%0.3f" +#define VIEW_BOX_FORMAT "%f %f %f %f" + +/* === G L O B A L S ======================================================= */ + +/* === P R O C E D U R E S ================================================= */ + +xmlpp::Element* encode_canvas(xmlpp::Element* root,Canvas::ConstHandle canvas); +xmlpp::Element* encode_value_node(xmlpp::Element* root,ValueNode::ConstHandle value_node,Canvas::ConstHandle canvas); + +xmlpp::Element* encode_keyframe(xmlpp::Element* root,const Keyframe &kf, float fps) +{ + root->set_name("keyframe"); + root->set_attribute("time",kf.get_time().get_string(fps)); + if(!kf.get_description().empty()) + root->set_child_text(kf.get_description()); + return root; +} + + +xmlpp::Element* encode_real(xmlpp::Element* root,Real v) +{ + root->set_name("real"); + root->set_attribute("value",strprintf(VECTOR_VALUE_TYPE_FORMAT,v)); + return root; +} + +xmlpp::Element* encode_time(xmlpp::Element* root,Time t, float fps=0) +{ + root->set_name("time"); + //root->set_attribute("value",t.get_string(fps)); + root->set_attribute("value",t.get_string()); + return root; +} + +xmlpp::Element* encode_integer(xmlpp::Element* root,int i) +{ + root->set_name("integer"); + root->set_attribute("value",strprintf("%i",i)); + return root; +} + +xmlpp::Element* encode_bool(xmlpp::Element* root,bool b) +{ + root->set_name("bool"); + root->set_attribute("value",b?"true":"false"); + return root; +} + +xmlpp::Element* encode_string(xmlpp::Element* root,const String &str) +{ + root->set_name("string"); + root->set_child_text(str); + return root; +} + +xmlpp::Element* encode_vector(xmlpp::Element* root,Vector vect) +{ + root->set_name("vector"); + root->add_child("x")->set_child_text(strprintf(VECTOR_VALUE_TYPE_FORMAT,(float)vect[0])); + root->add_child("y")->set_child_text(strprintf(VECTOR_VALUE_TYPE_FORMAT,(float)vect[1])); + return root; +} + +xmlpp::Element* encode_color(xmlpp::Element* root,Color color) +{ + root->set_name("color"); + root->add_child("r")->set_child_text(strprintf(COLOR_VALUE_TYPE_FORMAT,(float)color.get_r())); + root->add_child("g")->set_child_text(strprintf(COLOR_VALUE_TYPE_FORMAT,(float)color.get_g())); + root->add_child("b")->set_child_text(strprintf(COLOR_VALUE_TYPE_FORMAT,(float)color.get_b())); + root->add_child("a")->set_child_text(strprintf(COLOR_VALUE_TYPE_FORMAT,(float)color.get_a())); + return root; +} + +xmlpp::Element* encode_angle(xmlpp::Element* root,Angle theta) +{ + root->set_name("angle"); + root->set_attribute("value",strprintf("%f",(float)Angle::deg(theta).get())); + return root; +} + +xmlpp::Element* encode_segment(xmlpp::Element* root,Segment seg) +{ + root->set_name("segment"); + encode_vector(root->add_child("p1")->add_child("vector"),seg.p1); + encode_vector(root->add_child("t1")->add_child("vector"),seg.t1); + encode_vector(root->add_child("p2")->add_child("vector"),seg.p2); + encode_vector(root->add_child("t2")->add_child("vector"),seg.t2); + return root; +} + +xmlpp::Element* encode_bline_point(xmlpp::Element* root,BLinePoint bline_point) +{ + root->set_name(ValueBase::type_name(ValueBase::TYPE_BLINEPOINT)); + + encode_vector(root->add_child("vertex")->add_child("vector"),bline_point.get_vertex()); + encode_vector(root->add_child("t1")->add_child("vector"),bline_point.get_tangent1()); + + if(bline_point.get_split_tangent_flag()) + encode_vector(root->add_child("t2")->add_child("vector"),bline_point.get_tangent2()); + + encode_real(root->add_child("width")->add_child("real"),bline_point.get_width()); + encode_real(root->add_child("origin")->add_child("real"),bline_point.get_origin()); + return root; +} + +xmlpp::Element* encode_gradient(xmlpp::Element* root,Gradient x) +{ + root->set_name("gradient"); + + Gradient::const_iterator iter; + x.sort(); + for(iter=x.begin();iter!=x.end();iter++) + { + xmlpp::Element *cpoint(encode_color(root->add_child("color"),iter->color)); + cpoint->set_attribute("pos",strprintf("%f",iter->pos)); + } + return root; +} + + +xmlpp::Element* encode_value(xmlpp::Element* root,const ValueBase &data,Canvas::ConstHandle canvas=0); + +xmlpp::Element* encode_list(xmlpp::Element* root,std::list list, Canvas::ConstHandle canvas=0) +{ + root->set_name("list"); + + while(!list.empty()) + { + encode_value(root->add_child("value"),list.front(),canvas); + list.pop_front(); + } + + return root; +} + +xmlpp::Element* encode_value(xmlpp::Element* root,const ValueBase &data,Canvas::ConstHandle canvas) +{ + switch(data.get_type()) + { + case ValueBase::TYPE_REAL: + return encode_real(root,data.get(Real())); + case ValueBase::TYPE_TIME: + if(canvas) + return encode_time(root,data.get(Time()),canvas->rend_desc().get_frame_rate()); + else + return encode_time(root,data.get(Time())); + case ValueBase::TYPE_INTEGER: + return encode_integer(root,data.get(int())); + case ValueBase::TYPE_COLOR: + return encode_color(root,data.get(Color())); + case ValueBase::TYPE_VECTOR: + return encode_vector(root,data.get(Vector())); + case ValueBase::TYPE_ANGLE: + return encode_angle(root,data.get(Angle())); + case ValueBase::TYPE_BOOL: + return encode_bool(root,data.get(bool())); + case ValueBase::TYPE_STRING: + return encode_string(root,data.get(String())); + case ValueBase::TYPE_SEGMENT: + return encode_segment(root,data.get(Segment())); + case ValueBase::TYPE_BLINEPOINT: + return encode_bline_point(root,data.get(BLinePoint())); + case ValueBase::TYPE_GRADIENT: + return encode_gradient(root,data.get(Gradient())); + case ValueBase::TYPE_LIST: + return encode_list(root,data,canvas); + case ValueBase::TYPE_CANVAS: + return encode_canvas(root,data.get(Canvas::Handle()).get()); + case ValueBase::TYPE_NIL: + synfig::error("Encountered NIL ValueBase"); + root->set_name("nil"); + return root; + default: + synfig::error(strprintf("Unknown value(%s), cannot create XML representation!",ValueBase::type_name(data.get_type()).c_str())); + root->set_name("nil"); + return root; + } +} + +xmlpp::Element* encode_animated(xmlpp::Element* root,ValueNode_Animated::ConstHandle value_node,Canvas::ConstHandle canvas=0) +{ + assert(value_node); + root->set_name("animated"); + + root->set_attribute("type",ValueBase::type_name(value_node->get_type())); + + const ValueNode_Animated::WaypointList &waypoint_list=value_node->waypoint_list(); + ValueNode_Animated::WaypointList::const_iterator iter; + + for(iter=waypoint_list.begin();iter!=waypoint_list.end();++iter) + { + xmlpp::Element *waypoint_node=root->add_child("waypoint"); + //waypoint_node->set_attribute("time",iter->get_time().get_string(canvas->rend_desc().get_frame_rate())); + waypoint_node->set_attribute("time",iter->get_time().get_string()); + + //waypoint_node->add_child(encode_value(iter->get_value(),canvas)); + if(iter->get_value_node()->is_exported()) + waypoint_node->set_attribute("use",iter->get_value_node()->get_relative_id(canvas)); + else + encode_value_node(waypoint_node->add_child("value_node"),iter->get_value_node(),canvas); + + switch(iter->get_before()) + { + case INTERPOLATION_HALT: + waypoint_node->set_attribute("before","halt"); + break; + case INTERPOLATION_LINEAR: + waypoint_node->set_attribute("before","linear"); + break; + case INTERPOLATION_MANUAL: + waypoint_node->set_attribute("before","manual"); + break; + case INTERPOLATION_CONSTANT: + waypoint_node->set_attribute("before","constant"); + break; + case INTERPOLATION_TCB: + // This is the default value, so don't add a new attribute + break; + default: + error("Unknown waypoint type for \"before\" attribute"); + } + + switch(iter->get_after()) + { + case INTERPOLATION_HALT: + waypoint_node->set_attribute("after","halt"); + break; + case INTERPOLATION_LINEAR: + waypoint_node->set_attribute("after","linear"); + break; + case INTERPOLATION_MANUAL: + waypoint_node->set_attribute("after","manual"); + break; + case INTERPOLATION_CONSTANT: + waypoint_node->set_attribute("after","constant"); + break; + case INTERPOLATION_TCB: + // This is the default value, so don't add a new attribute + break; + default: + error("Unknown waypoint type for \"before\" attribute"); + } + + if(iter->get_tension()!=0.0) + waypoint_node->set_attribute("tension",strprintf("%f",iter->get_tension())); + if(iter->get_time_tension()!=0.0) + waypoint_node->set_attribute("temporal-tension",strprintf("%f",iter->get_time_tension())); + if(iter->get_continuity()!=0.0) + waypoint_node->set_attribute("continuity",strprintf("%f",iter->get_continuity())); + if(iter->get_bias()!=0.0) + waypoint_node->set_attribute("bias",strprintf("%f",iter->get_bias())); + + } + + return root; +} + +xmlpp::Element* encode_composite(xmlpp::Element* root,ValueNode_Composite::ConstHandle value_node,Canvas::ConstHandle canvas=0) +{ + assert(value_node); + root->set_name("composite"); + + root->set_attribute("type",ValueBase::type_name(value_node->get_type())); + + int i; + for(i=0;ilink_count();i++) + { + string name(strprintf("c%d",i+1)); + assert(value_node->get_link(i)); + if(value_node->get_link(i)->is_exported()) + root->set_attribute(name,value_node->get_link(i)->get_relative_id(canvas)); + else + encode_value_node(root->add_child(name)->add_child("value_node"),value_node->get_link(i).constant(),canvas); + } + + return root; +} + +xmlpp::Element* encode_subtract(xmlpp::Element* root,ValueNode_Subtract::ConstHandle value_node,Canvas::ConstHandle canvas=0) +{ + assert(value_node); + root->set_name("subtract"); + + ValueNode::ConstHandle lhs=value_node->get_lhs(); + ValueNode::ConstHandle rhs=value_node->get_rhs(); + ValueNode::ConstHandle scalar=value_node->get_scalar(); + + assert(lhs); + assert(rhs); + + root->set_attribute("type",ValueBase::type_name(value_node->get_type())); + + if(lhs==rhs) + warning("LHS is equal to RHS, this will always be zero!"); + + //if(value_node->get_scalar()!=1) + // root->set_attribute("scalar",strprintf(VECTOR_VALUE_TYPE_FORMAT,value_node->get_scalar())); + + if(!scalar->get_id().empty()) + root->set_attribute("scalar",scalar->get_relative_id(canvas)); + else + encode_value_node(root->add_child("scalar")->add_child("value_node"),scalar,canvas); + + if(!lhs->get_id().empty()) + root->set_attribute("lhs",lhs->get_relative_id(canvas)); + else + encode_value_node(root->add_child("lhs")->add_child("value_node"),lhs,canvas); + + if(!rhs->get_id().empty()) + root->set_attribute("rhs",rhs->get_relative_id(canvas)); + else + encode_value_node(root->add_child("rhs")->add_child("value_node"),rhs,canvas); + + return root; +} + +xmlpp::Element* encode_dynamic_list(xmlpp::Element* root,ValueNode_DynamicList::ConstHandle value_node,Canvas::ConstHandle canvas=0) +{ + assert(value_node); + const float fps(canvas?canvas->rend_desc().get_frame_rate():0); + + root->set_name(value_node->get_name()); + + root->set_attribute("type",ValueBase::type_name(value_node->get_contained_type())); + + vector::const_iterator iter; + + ValueNode_BLine::ConstHandle bline_value_node(ValueNode_BLine::ConstHandle::cast_dynamic(value_node)); + + if(bline_value_node) + { + if(bline_value_node->get_loop()) + root->set_attribute("loop","true"); + else + root->set_attribute("loop","false"); + } + + for(iter=value_node->list.begin();iter!=value_node->list.end();++iter) + { + xmlpp::Element *entry_node=root->add_child("entry"); + assert(iter->value_node); + if(!iter->value_node->get_id().empty()) + entry_node->set_attribute("use",iter->value_node->get_relative_id(canvas)); + else + encode_value_node(entry_node->add_child("value_node"),iter->value_node,canvas); + + // process waypoints + { + typedef synfig::ValueNode_DynamicList::ListEntry::Activepoint Activepoint; + typedef synfig::ValueNode_DynamicList::ListEntry::ActivepointList ActivepointList; + String begin_sequence; + String end_sequence; + + const ActivepointList& timing_info(iter->timing_info); + ActivepointList::const_iterator entry_iter; + + for(entry_iter=timing_info.begin();entry_iter!=timing_info.end();++entry_iter) + if(entry_iter->state==true) + { + if(entry_iter->priority) + { + printf("begin priority is %d\n", entry_iter->priority); + begin_sequence+=strprintf("p%d ",entry_iter->priority); + } + begin_sequence+=entry_iter->time.get_string(fps)+", "; + } + else + { + if(entry_iter->priority) + { + printf("end priority is %d\n", entry_iter->priority); + end_sequence+=strprintf("p%d ",entry_iter->priority); + } + end_sequence+=entry_iter->time.get_string(fps)+", "; + } + + // If this is just a plane-jane vanilla entry, + // then don't bother with begins and ends + if(end_sequence.empty() && begin_sequence=="SOT, ") + begin_sequence.clear(); + + if(!begin_sequence.empty()) + { + // Remove the last ", " stuff + begin_sequence=String(begin_sequence.begin(),begin_sequence.end()-2); + // Add the attribute + entry_node->set_attribute("on",begin_sequence); + } + + if(!end_sequence.empty()) + { + // Remove the last ", " stuff + end_sequence=String(end_sequence.begin(),end_sequence.end()-2); + // Add the attribute + entry_node->set_attribute("off",end_sequence); + } + } + } + + return root; +} + +// Generic linkable data node entry +xmlpp::Element* encode_linkable_value_node(xmlpp::Element* root,LinkableValueNode::ConstHandle value_node,Canvas::ConstHandle canvas=0) +{ + assert(value_node); + root->set_name(value_node->get_name()); + + root->set_attribute("type",ValueBase::type_name(value_node->get_type())); + + int i; + for(i=0;ilink_count();i++) + { + ValueNode::ConstHandle link=value_node->get_link(i).constant(); + if(!link) + throw runtime_error("Bad link"); + if(link->is_exported()) + root->set_attribute(value_node->link_name(i),link->get_relative_id(canvas)); + else + encode_value_node(root->add_child(value_node->link_name(i))->add_child("value_node"),link,canvas); + } + + return root; +} + +xmlpp::Element* encode_value_node(xmlpp::Element* root,ValueNode::ConstHandle value_node,Canvas::ConstHandle canvas) +{ + assert(value_node); + + if(ValueNode_Animated::ConstHandle::cast_dynamic(value_node)) + encode_animated(root,ValueNode_Animated::ConstHandle::cast_dynamic(value_node),canvas); + else + if(ValueNode_Composite::ConstHandle::cast_dynamic(value_node)) + encode_composite(root,ValueNode_Composite::ConstHandle::cast_dynamic(value_node),canvas); + else + if(ValueNode_Subtract::ConstHandle::cast_dynamic(value_node)) + encode_subtract(root,ValueNode_Subtract::ConstHandle::cast_dynamic(value_node),canvas); + else + if(ValueNode_DynamicList::ConstHandle::cast_dynamic(value_node)) + encode_dynamic_list(root,ValueNode_DynamicList::ConstHandle::cast_dynamic(value_node),canvas); + else if(ValueNode_Const::ConstHandle::cast_dynamic(value_node)) + { + encode_value(root,ValueNode_Const::ConstHandle::cast_dynamic(value_node)->get_value(),canvas); + } + else + if(LinkableValueNode::ConstHandle::cast_dynamic(value_node)) + encode_linkable_value_node(root,LinkableValueNode::ConstHandle::cast_dynamic(value_node),canvas); + else + { + error(_("Unknown ValueNode Type (%s), cannot create an XML representation"),value_node->get_local_name().c_str()); + root->set_name("nil"); + } + + assert(root); + + if(!value_node->get_id().empty()) + root->set_attribute("id",value_node->get_id()); + + if(value_node->rcount()>1) + root->set_attribute("guid",(value_node->get_guid()^canvas->get_root()->get_guid()).get_string()); + + return root; +} + +xmlpp::Element* encode_layer(xmlpp::Element* root,Layer::ConstHandle layer) +{ + root->set_name("layer"); + + root->set_attribute("type",layer->get_name()); + root->set_attribute("active",layer->active()?"true":"false"); + + if(!layer->get_version().empty()) + root->set_attribute("version",layer->get_version()); + if(!layer->get_description().empty()) + root->set_attribute("desc",layer->get_description()); + if(!layer->get_group().empty()) + root->set_attribute("group",layer->get_group()); + + Layer::Vocab vocab(layer->get_param_vocab()); + Layer::Vocab::const_iterator iter; + + const Layer::DynamicParamList &dynamic_param_list=layer->dynamic_param_list(); + + for(iter=vocab.begin();iter!=vocab.end();++iter) + { + // Handle dynamic parameters + if(dynamic_param_list.count(iter->get_name())) + { + xmlpp::Element *node=root->add_child("param"); + node->set_attribute("name",iter->get_name()); + + handle value_node=dynamic_param_list.find(iter->get_name())->second; + + // If the valuenode.has no ID, then it must be defined in-place + if(value_node->get_id().empty()) + { + encode_value_node(node->add_child("value_node"),value_node,layer->get_canvas().constant()); + } + else + { + node->set_attribute("use",value_node->get_relative_id(layer->get_canvas())); + } + } + else // Handle normal parameters + if(iter->get_critical()) + { + ValueBase value=layer->get_param(iter->get_name()); + if(!value.is_valid()) + { + error("Layer doesn't know its own vocabulary -- "+iter->get_name()); + continue; + } + + if(value.get_type()==ValueBase::TYPE_CANVAS && !value.get(Canvas::LooseHandle())->is_inline()) + { + Canvas::Handle child(value.get(Canvas::LooseHandle())); + + if(!value.get(Canvas::Handle())) + continue; + xmlpp::Element *node=root->add_child("param"); + node->set_attribute("name",iter->get_name()); + node->set_attribute("use",child->get_relative_id(layer->get_canvas())); + continue; + } + xmlpp::Element *node=root->add_child("param"); + node->set_attribute("name",iter->get_name()); + + encode_value(node->add_child("value"),value,layer->get_canvas().constant()); + } + } + + + return root; +} + +xmlpp::Element* encode_canvas(xmlpp::Element* root,Canvas::ConstHandle canvas) +{ + assert(canvas); + const RendDesc &rend_desc=canvas->rend_desc(); + root->set_name("canvas"); + + if(canvas->is_root()) + root->set_attribute("version","0.1"); + + if(!canvas->get_id().empty() && !canvas->is_root() && !canvas->is_inline()) + root->set_attribute("id",canvas->get_id()); + + if(!canvas->parent() || canvas->parent()->rend_desc().get_w()!=canvas->rend_desc().get_w()) + root->set_attribute("width",strprintf("%d",rend_desc.get_w())); + + if(!canvas->parent() || canvas->parent()->rend_desc().get_h()!=canvas->rend_desc().get_h()) + root->set_attribute("height",strprintf("%d",rend_desc.get_h())); + + if(!canvas->parent() || canvas->parent()->rend_desc().get_x_res()!=canvas->rend_desc().get_x_res()) + root->set_attribute("xres",strprintf("%f",rend_desc.get_x_res())); + + if(!canvas->parent() || canvas->parent()->rend_desc().get_y_res()!=canvas->rend_desc().get_y_res()) + root->set_attribute("yres",strprintf("%f",rend_desc.get_y_res())); + + + if(!canvas->parent() || + canvas->parent()->rend_desc().get_tl()!=canvas->rend_desc().get_tl() || + canvas->parent()->rend_desc().get_br()!=canvas->rend_desc().get_br()) + root->set_attribute("view-box",strprintf(VIEW_BOX_FORMAT, + rend_desc.get_tl()[0], + rend_desc.get_tl()[1], + rend_desc.get_br()[0], + rend_desc.get_br()[1]) + ); + + if(!canvas->parent() || canvas->parent()->rend_desc().get_antialias()!=canvas->rend_desc().get_antialias()) + root->set_attribute("antialias",strprintf("%d",rend_desc.get_antialias())); + + if(!canvas->parent()) + root->set_attribute("fps",strprintf(TIME_TYPE_FORMAT,rend_desc.get_frame_rate())); + + if(!canvas->parent() || canvas->parent()->rend_desc().get_time_start()!=canvas->rend_desc().get_time_start()) + root->set_attribute("begin-time",rend_desc.get_time_start().get_string(rend_desc.get_frame_rate())); + + if(!canvas->parent() || canvas->parent()->rend_desc().get_time_end()!=canvas->rend_desc().get_time_end()) + root->set_attribute("end-time",rend_desc.get_time_end().get_string(rend_desc.get_frame_rate())); + + if(!canvas->is_inline()) + { + root->set_attribute("bgcolor",strprintf(VIEW_BOX_FORMAT, + rend_desc.get_bg_color().get_r(), + rend_desc.get_bg_color().get_g(), + rend_desc.get_bg_color().get_b(), + rend_desc.get_bg_color().get_a()) + ); + + if(!canvas->get_name().empty()) + root->add_child("name")->set_child_text(canvas->get_name()); + if(!canvas->get_description().empty()) + root->add_child("desc")->set_child_text(canvas->get_description()); + if(!canvas->get_author().empty()) + root->add_child("author")->set_child_text(canvas->get_description()); + + std::list meta_keys(canvas->get_meta_data_keys()); + while(!meta_keys.empty()) + { + xmlpp::Element* meta_element(root->add_child("meta")); + meta_element->set_attribute("name",meta_keys.front()); + meta_element->set_attribute("content",canvas->get_meta_data(meta_keys.front())); + meta_keys.pop_front(); + } + for(KeyframeList::const_iterator iter=canvas->keyframe_list().begin();iter!=canvas->keyframe_list().end();++iter) + encode_keyframe(root->add_child("keyframe"),*iter,canvas->rend_desc().get_frame_rate()); + } + + // Output the section + if(!canvas->is_inline() && !canvas->value_node_list().empty() || !canvas->children().empty()) + { + xmlpp::Element *node=root->add_child("defs"); + const ValueNodeList &value_node_list(canvas->value_node_list()); + + for(ValueNodeList::const_iterator iter=value_node_list.begin();iter!=value_node_list.end();++iter) + { + // If the value_node is a constant, then use the shorthand + if(handle::cast_dynamic(*iter)) + { + ValueNode_Const::Handle value_node(ValueNode_Const::Handle::cast_dynamic(*iter)); + reinterpret_cast(encode_value(node->add_child("value"),value_node->get_value()))->set_attribute("id",value_node->get_id()); + continue; + } + encode_value_node(node->add_child("value_node"),*iter,canvas); + // writeme + } + + for(Canvas::Children::const_iterator iter=canvas->children().begin();iter!=canvas->children().end();++iter) + { + encode_canvas(node->add_child("canvas"),*iter); + } + } + + Canvas::const_reverse_iterator iter; + + for(iter=canvas->rbegin();iter!=canvas->rend();++iter) + encode_layer(root->add_child("layer"),*iter); + + return root; +} + +bool +synfig::save_canvas(const String &filename, Canvas::ConstHandle canvas) +{ + ChangeLocale change_locale(LC_NUMERIC, "C"); + + synfig::String tmp_filename(filename+".TMP"); + + try + { + assert(canvas); + xmlpp::Document document; + + encode_canvas(document.create_root_node("canvas"),canvas); + + document.write_to_file_formatted(tmp_filename); + } + catch(...) { synfig::error("synfig::save_canvas(): Caught unknown exception"); return false; } + + +#ifdef _WIN32 + // On Win32 platforms, rename() has bad behavior. work around it. + char old_file[80]="sif.XXXXXXXX"; + mktemp(old_file); + rename(filename.c_str(),old_file); + if(rename(tmp_filename.c_str(),filename.c_str())!=0) + { + rename(old_file,tmp_filename.c_str()); + synfig::error("synfig::save_canvas(): Unable to rename file to correct filename, errno=%d",errno); + return false; + } + remove(old_file); +#else + if(rename(tmp_filename.c_str(),filename.c_str())!=0) + { + synfig::error("synfig::save_canvas(): Unable to rename file to correct filename, errno=%d",errno); + return false; + } +#endif + + return true; +} + +String +synfig::canvas_to_string(Canvas::ConstHandle canvas) +{ + ChangeLocale change_locale(LC_NUMERIC, "C"); + assert(canvas); + + xmlpp::Document document; + + encode_canvas(document.create_root_node("canvas"),canvas); + + return document.write_to_string_formatted(); +} diff --git a/synfig-core/tags/stable/src/synfig/savecanvas.h b/synfig-core/tags/stable/src/synfig/savecanvas.h new file mode 100644 index 0000000..aa35480 --- /dev/null +++ b/synfig-core/tags/stable/src/synfig/savecanvas.h @@ -0,0 +1,54 @@ +/* === S Y N F I G ========================================================= */ +/*! \file savecanvas.h +** \brief writeme +** +** $Id$ +** +** \legal +** Copyright (c) 2002-2005 Robert B. Quattlebaum Jr., Adrian Bentley +** +** This package is free software; you can redistribute it and/or +** modify it under the terms of the GNU General Public License as +** published by the Free Software Foundation; either version 2 of +** the License, or (at your option) any later version. +** +** This package is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +** General Public License for more details. +** \endlegal +*/ +/* ========================================================================= */ + +/* === S T A R T =========================================================== */ + +#ifndef __SYNFIG_SAVECANVAS_H +#define __SYNFIG_SAVECANVAS_H + +/* === H E A D E R S ======================================================= */ + +#include "string.h" +#include "canvas.h" + +/* === M A C R O S ========================================================= */ + +/* === T Y P E D E F S ===================================================== */ + +/* === C L A S S E S & S T R U C T S ======================================= */ + +namespace synfig { + +/* === E X T E R N S ======================================================= */ + +//! Saves a canvas to \a filename +/*! \return \c true on success, \c false on error. */ +bool save_canvas(const String &filename, Canvas::ConstHandle canvas); + +//! Stores a Canvas in a string in XML format +String canvas_to_string(Canvas::ConstHandle canvas); + +}; // END of namespace synfig + +/* === E N D =============================================================== */ + +#endif diff --git a/synfig-core/tags/stable/src/synfig/segment.h b/synfig-core/tags/stable/src/synfig/segment.h new file mode 100644 index 0000000..30239f6 --- /dev/null +++ b/synfig-core/tags/stable/src/synfig/segment.h @@ -0,0 +1,67 @@ +/* === S Y N F I G ========================================================= */ +/*! \file segment.h +** \brief Template Header +** +** $Id$ +** +** \legal +** Copyright (c) 2002-2005 Robert B. Quattlebaum Jr., Adrian Bentley +** +** This package is free software; you can redistribute it and/or +** modify it under the terms of the GNU General Public License as +** published by the Free Software Foundation; either version 2 of +** the License, or (at your option) any later version. +** +** This package is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +** General Public License for more details. +** \endlegal +*/ +/* ========================================================================= */ + +/* === S T A R T =========================================================== */ + +#ifndef __SYNFIG_SEGMENT_H +#define __SYNFIG_SEGMENT_H + +/* === H E A D E R S ======================================================= */ + +#include "vector.h" + +/* === M A C R O S ========================================================= */ + +/* === T Y P E D E F S ===================================================== */ + +/* === C L A S S E S & S T R U C T S ======================================= */ + +namespace synfig { + +/*! \struct Segment +** \todo writeme +*/ +struct Segment +{ + Point p1,p2; + Vector t1,t2; + + Segment() { } + Segment(Point p1,Vector t1,Point p2, Vector t2): + p1(p1), + p2(p2), + t1(t1), + t2(t2) + { } + Segment(Point p1,Point p2): + p1(p1), + p2(p2), + t1(p2-p1), + t2(p2-p1) + { } +}; // END of struct Segment + +}; // END of namespace synfig + +/* === E N D =============================================================== */ + +#endif diff --git a/synfig-core/tags/stable/src/synfig/smartfile.h b/synfig-core/tags/stable/src/synfig/smartfile.h new file mode 100644 index 0000000..2e21ffc --- /dev/null +++ b/synfig-core/tags/stable/src/synfig/smartfile.h @@ -0,0 +1,52 @@ +/* === S Y N F I G ========================================================= */ +/*! \file smartfile.h +** \brief Template Header +** +** $Id$ +** +** \legal +** Copyright (c) 2002-2005 Robert B. Quattlebaum Jr., Adrian Bentley +** +** This package is free software; you can redistribute it and/or +** modify it under the terms of the GNU General Public License as +** published by the Free Software Foundation; either version 2 of +** the License, or (at your option) any later version. +** +** This package is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +** General Public License for more details. +** \endlegal +*/ +/* ========================================================================= */ + +/* === S T A R T =========================================================== */ + +#ifndef __SYNFIG_SMARTFILE_H +#define __SYNFIG_SMARTFILE_H + +/* === H E A D E R S ======================================================= */ + +#include +#include + +/* === M A C R O S ========================================================= */ + +/* === T Y P E D E F S ===================================================== */ + +/* === C L A S S E S & S T R U C T S ======================================= */ + +namespace synfig { + +struct _FILE_deleter +{ + void operator()(FILE* x)const { if(x!=stdout && x!=stdin) fclose(x); } +}; + +typedef etl::smart_ptr SmartFILE; + +}; // END of namespace synfig + +/* === E N D =============================================================== */ + +#endif diff --git a/synfig-core/tags/stable/src/synfig/string.h b/synfig-core/tags/stable/src/synfig/string.h new file mode 100644 index 0000000..8296bbb --- /dev/null +++ b/synfig-core/tags/stable/src/synfig/string.h @@ -0,0 +1,62 @@ +/* === S Y N F I G ========================================================= */ +/*! \file string.h +** \brief Template Header +** +** $Id$ +** +** \legal +** Copyright (c) 2002-2005 Robert B. Quattlebaum Jr., Adrian Bentley +** +** This package is free software; you can redistribute it and/or +** modify it under the terms of the GNU General Public License as +** published by the Free Software Foundation; either version 2 of +** the License, or (at your option) any later version. +** +** This package is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +** General Public License for more details. +** \endlegal +*/ +/* ========================================================================= */ + +/* === S T A R T =========================================================== */ + +#ifndef __SYNFIG_STRING_H +#define __SYNFIG_STRING_H + +/* === H E A D E R S ======================================================= */ + +#include + +/* === M A C R O S ========================================================= */ + +/* === T Y P E D E F S ===================================================== */ + +/* === C L A S S E S & S T R U C T S ======================================= */ + +/* +namespace std +{ +template struct char_traits; +template<> struct char_traits; +template class allocator; +templateclass basic_string; +typedef basic_string,allocator > string; + +}; // END of namespace std +*/ + +namespace synfig +{ + +/*! \typedef String +** \todo writeme +*/ +typedef std::string String; + +}; // END of namespace synfig + +/* === E N D =============================================================== */ + +#endif diff --git a/synfig-core/tags/stable/src/synfig/string_decl.h b/synfig-core/tags/stable/src/synfig/string_decl.h new file mode 100644 index 0000000..9dba339 --- /dev/null +++ b/synfig-core/tags/stable/src/synfig/string_decl.h @@ -0,0 +1,58 @@ +/* === S Y N F I G ========================================================= */ +/*! \file string_decl.h +** \brief Template Header +** +** $Id$ +** +** \legal +** Copyright (c) 2002-2005 Robert B. Quattlebaum Jr., Adrian Bentley +** +** This package is free software; you can redistribute it and/or +** modify it under the terms of the GNU General Public License as +** published by the Free Software Foundation; either version 2 of +** the License, or (at your option) any later version. +** +** This package is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +** General Public License for more details. +** \endlegal +*/ +/* ========================================================================= */ + +/* === S T A R T =========================================================== */ + +#ifndef __SYNFIG_STRING_DECL_H +#define __SYNFIG_STRING_DECL_H + +/* === H E A D E R S ======================================================= */ + +/* === M A C R O S ========================================================= */ + +/* === T Y P E D E F S ===================================================== */ + +/* === C L A S S E S & S T R U C T S ======================================= */ + +namespace std +{ +template struct char_traits; +template<> struct char_traits; +template class allocator; +templateclass basic_string; +typedef basic_string,allocator > string; + +}; // END of namespace std + +namespace synfig +{ + +/*! \typedef String +** \todo writeme +*/ +typedef std::string String; + +}; // END of namespace synfig + +/* === E N D =============================================================== */ + +#endif diff --git a/synfig-core/tags/stable/src/synfig/surface.cpp b/synfig-core/tags/stable/src/synfig/surface.cpp new file mode 100644 index 0000000..6eef588 --- /dev/null +++ b/synfig-core/tags/stable/src/synfig/surface.cpp @@ -0,0 +1,242 @@ +/* === S Y N F I G ========================================================= */ +/*! \file surface.cpp +** \brief Template File +** +** $Id$ +** +** \legal +** Copyright (c) 2002-2005 Robert B. Quattlebaum Jr., Adrian Bentley +** +** This package is free software; you can redistribute it and/or +** modify it under the terms of the GNU General Public License as +** published by the Free Software Foundation; either version 2 of +** the License, or (at your option) any later version. +** +** This package is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +** General Public License for more details. +** \endlegal +** +** === N O T E S =========================================================== +** +** ========================================================================= */ + +/* === H E A D E R S ======================================================= */ + +#define SYNFIG_NO_ANGLE + +#ifdef USING_PCH +# include "pch.h" +#else +#ifdef HAVE_CONFIG_H +# include +#endif + +#include "canvas.h" +#include "surface.h" +#include "target_scanline.h" +#include "general.h" + +#ifdef HAS_VIMAGE +#include +#endif + +#endif + +using namespace synfig; +using namespace std; +using namespace etl; + +/* === M A C R O S ========================================================= */ + +/* === G L O B A L S ======================================================= */ + +class target2surface : public synfig::Target_Scanline +{ +public: + Surface *surface; + bool sized; +public: + target2surface(Surface *surface); + virtual ~target2surface(); + + virtual bool set_rend_desc(synfig::RendDesc *newdesc); + + virtual bool start_frame(synfig::ProgressCallback *cb); + + virtual void end_frame(); + + virtual Color * start_scanline(int scanline); + + virtual bool end_scanline(); +}; + +target2surface::target2surface(Surface *surface):surface(surface) +{ +} + +target2surface::~target2surface() +{ +} + +bool +target2surface::set_rend_desc(synfig::RendDesc *newdesc) +{ + assert(newdesc); + assert(surface); + desc=*newdesc; + return synfig::Target_Scanline::set_rend_desc(newdesc); +} + +bool +target2surface::start_frame(synfig::ProgressCallback *cb) +{ + if(surface->get_w() != desc.get_w() || surface->get_h() != desc.get_h()) + { + surface->set_wh(desc.get_w(),desc.get_h()); + } + return true; +} + +void +target2surface::end_frame() +{ + return; +} + +Color * +target2surface::start_scanline(int scanline) +{ + return (*surface)[scanline]; +} + +bool +target2surface::end_scanline() +{ + return true; +} + +/* === P R O C E D U R E S ================================================= */ + +/* === M E T H O D S ======================================================= */ + +Target_Scanline::Handle +synfig::surface_target(Surface *surface) +{ + return Target_Scanline::Handle(new target2surface(surface)); +} + +void +synfig::Surface::clear() +{ +#ifdef HAS_VIMAGE + fill(Color(0.5,0.5,0.5,0.0000001)); +#else + etl::surface::clear(); +#endif +} + +void +synfig::Surface::blit_to(alpha_pen& pen, int x, int y, int w, int h) +{ + static const float epsilon(0.00001); + const float alpha(pen.get_alpha()); + if( pen.get_blend_method()==Color::BLEND_STRAIGHT && fabs(alpha-1.0f)=get_w() || y>=get_w()) + return; + + //clip source origin + if(x<0) + { + w+=x; //decrease + x=0; + } + + if(y<0) + { + h+=y; //decrease + y=0; + } + + //clip width against dest width + w = min((long)w,(long)(pen.end_x()-pen.x())); + h = min((long)h,(long)(pen.end_y()-pen.y())); + + //clip width against src width + w = min(w,get_w()-x); + h = min(h,get_h()-y); + + if(w<=0 || h<=0) + return; + + for(int i=0;i(static_cast(operator[](y)+x))+i*get_w()*sizeof(Color)); + char* dest(static_cast(static_cast(pen.x()))+i*pen.get_width()*sizeof(Color)); + memcpy(dest,src,w*sizeof(Color)); + } + return; + } + +#ifdef HAS_VIMAGE + if( pen.get_blend_method()==Color::BLEND_COMPOSITE && fabs(alpha-1.0f)=get_w() || y>=get_w()) + return; + + //clip source origin + if(x<0) + { + //u-=x; //increase + w+=x; //decrease + x=0; + } + + if(y<0) + { + //v-=y; //increase + h+=y; //decrease + y=0; + } + + //clip width against dest width + w = min(w,pen.end_x()-pen.x()); + h = min(h,pen.end_y()-pen.y()); + + //clip width against src width + w = min(w,get_w()-x); + h = min(h,get_h()-y); + + if(w<=0 || h<=0) + return; + + + + vImage_Buffer top,bottom; + vImage_Buffer& dest(bottom); + + top.data=static_cast(operator[](y)+x); + top.height=h; + top.width=w; + //top.rowBytes=get_w()*sizeof(Color); //! \fixme this should get the pitch!! + top.rowBytes=get_pitch(); + + bottom.data=static_cast(pen.x()); + bottom.height=h; + bottom.width=w; + //bottom.rowBytes=pen.get_width()*sizeof(Color); //! \fixme this should get the pitch!! + bottom.rowBytes=pen.get_pitch(); //! \fixme this should get the pitch!! + + vImage_Error ret; + ret=vImageAlphaBlend_ARGBFFFF(&top,&bottom,&dest,kvImageNoFlags); + + assert(ret!=kvImageNoError); + + return; + } +#endif + etl::surface::blit_to(pen,x,y,w,h); +} + diff --git a/synfig-core/tags/stable/src/synfig/surface.h b/synfig-core/tags/stable/src/synfig/surface.h new file mode 100644 index 0000000..265d8d7 --- /dev/null +++ b/synfig-core/tags/stable/src/synfig/surface.h @@ -0,0 +1,159 @@ +/* === S Y N F I G ========================================================= */ +/*! \file surface.h +** \brief Surface and Pen Definitions +** +** $Id$ +** +** \legal +** Copyright (c) 2002-2005 Robert B. Quattlebaum Jr., Adrian Bentley +** +** This package is free software; you can redistribute it and/or +** modify it under the terms of the GNU General Public License as +** published by the Free Software Foundation; either version 2 of +** the License, or (at your option) any later version. +** +** This package is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +** General Public License for more details. +** \endlegal +*/ +/* ========================================================================= */ + +/* === S T A R T =========================================================== */ + +#ifndef __SYNFIG_SURFACE_H +#define __SYNFIG_SURFACE_H + +/* === H E A D E R S ======================================================= */ + +#include "color.h" +#include "renddesc.h" +#include +#include +#include + +/* === M A C R O S ========================================================= */ + +/* === T Y P E D E F S ===================================================== */ + +/* === C L A S S E S & S T R U C T S ======================================= */ + +namespace synfig { + +class Target; +class Target_Scanline; + +class ColorPrep +{ +public: + ColorAccumulator cook(Color x)const + { + x.set_r(x.get_r()*x.get_a()); + x.set_g(x.get_g()*x.get_a()); + x.set_b(x.get_b()*x.get_a()); + return x; + } + Color uncook(ColorAccumulator x)const + { + if(!x.get_a()) + return Color::alpha(); + + const float a(1.0f/x.get_a()); + + x.set_r(x.get_r()*a); + x.set_g(x.get_g()*a); + x.set_b(x.get_b()*a); + return x; + } +}; + +/*! \class Surface +** \brief Bitmap Surface +** \todo writeme +*/ +class Surface : public etl::surface +{ +public: + typedef Color value_type; + class alpha_pen; + + Surface() { } + + Surface(const size_type::value_type &w, const size_type::value_type &h): + etl::surface(w,h) { } + + Surface(const size_type &s): + etl::surface(s) { } + + template + Surface(const _pen &_begin, const _pen &_end): + etl::surface(_begin,_end) { } + + template void blit_to(_pen &pen) + { return blit_to(pen,0,0, get_w(),get_h()); } + + template void + blit_to(_pen& DEST_PEN, int x, int y, int w, int h) + { + etl::surface::blit_to(DEST_PEN,x,y,w,h); + } + + void clear(); + + void blit_to(alpha_pen& DEST_PEN, int x, int y, int w, int h); +}; // END of class Surface + +#ifndef DOXYGEN_SKIP + +/*! \internal Used by Pen_Alpha */ +struct _BlendFunc +{ + Color::BlendMethod blend_method; + + _BlendFunc(Color::BlendMethod b= Color::BLEND_COMPOSITE):blend_method(b) { } + + Color operator()(const Color &a,const Color &b,const Color::value_type &t)const + { + return Color::blend(b,a,t,blend_method); + } +}; // END of class _BlendFunc + +#endif + +/*! \class Surface::alpha_pen +** \brief Alpha-Blending Pen +** +** This pen works like a normal alpha pen, except that it supports +** a variety of blending methods. Use set_blend_method() to select +** which blending method you want to use. +** The default blending method is Color::BLEND_COMPOSITE. +** \see Color::BlendMethod +*/ +class Surface::alpha_pen : public etl::alpha_pen< etl::generic_pen, Color::value_type, _BlendFunc > +{ +public: + alpha_pen() { } + alpha_pen(const etl::alpha_pen< etl::generic_pen, Color::value_type, _BlendFunc > &x): + etl::alpha_pen< etl::generic_pen, Color::value_type, _BlendFunc >(x) + { } + + alpha_pen(const etl::generic_pen& pen, const Color::value_type &a = 1, const _BlendFunc &func = _BlendFunc()): + etl::alpha_pen< etl::generic_pen, Color::value_type, _BlendFunc >(pen,a,func) + { } + + //! Sets the blend method to that described by \a method + void set_blend_method(Color::BlendMethod method) { affine_func_.blend_method=method; } + + //! Returns the blend method being used for this pen + Color::BlendMethod get_blend_method()const { return affine_func_.blend_method; } +}; // END of class Surface::alpha_pen + +//! Creates a target that will render to \a surface +etl::handle surface_target(Surface *surface); + +}; // END of namespace synfig + +/* === E N D =============================================================== */ + +#endif diff --git a/synfig-core/tags/stable/src/synfig/surfacenew.cpp b/synfig-core/tags/stable/src/synfig/surfacenew.cpp new file mode 100644 index 0000000..92a268a --- /dev/null +++ b/synfig-core/tags/stable/src/synfig/surfacenew.cpp @@ -0,0 +1,706 @@ +/* === S Y N F I G ========================================================= */ +/*! \file surfacenew.cpp +** \brief Template File +** +** $Id$ +** +** \legal +** Copyright (c) 2002-2005 Robert B. Quattlebaum Jr., Adrian Bentley +** +** This package is free software; you can redistribute it and/or +** modify it under the terms of the GNU General Public License as +** published by the Free Software Foundation; either version 2 of +** the License, or (at your option) any later version. +** +** This package is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +** General Public License for more details. +** \endlegal +*/ +/* ========================================================================= */ + +/* === H E A D E R S ======================================================= */ + +#ifdef USING_PCH +# include "pch.h" +#else +#ifdef HAVE_CONFIG_H +# include +#endif + +#include "surfacenew.h" +#include +#include "mutex.h" + +#endif + +/* === U S I N G =========================================================== */ + +using namespace std; +using namespace etl; +using namespace synfig; + +/* === M A C R O S ========================================================= */ + +/* === G L O B A L S ======================================================= */ + +/* === P R O C E D U R E S ================================================= */ + +/* === C L A S S E S & S T R U C T S ======================================= */ + +class SurfaceNew::ChannelData +{ +private: + etl::reference_counter ref_count_; + + float* data_; + float* origin_; + + int w_,h_,stride_; + +public: + + RWLock rw_lock; + + ChannelData(): + is_defined_(false), + data_(0), + origin_(0), + w_(0), + h_(0) + { + } + + ~ChannelData() + { + if(ref_count_.unique()) + delete [] data_; + } + + void set_wh(int w, int h) + { + w_=w; + h_=h; + stride_=w; + + if(data_&&ref_count_.is_unique()) + delete [] data_; + + ref_count.make_unique(); + data_=new float [w_*h_]; + origin_=data_; + clear(); + } + + void crop(int x, int y, int w, int h) + { + origin_=origin+y*stride_+x; + w_=w; + h_=h; + } + + int get_stride()const + { + return stride_; + } + + void clear() + { + for(int i=0;i::iterator iter; + for(iter=ret.channel_map_.begin();iter!=ret.channel_map_.end();++iter) + iter->crop(x,y,w,h); + + return ret; +} + +int +SurfaceNew::get_w()const +{ + return w_; +} + +int +SurfaceNew::get_h()const +{ + return h_; +} + +void +SurfaceNew::set_wh(int w, int h) +{ + if(w!=w_ || h!=h_) + { + w_=w; + h_=h; + channel_map_.clear(); + } +} + +SurfaceNew::ColorSystem +SurfaceNew::get_color_system()const +{ + return color_system_; +} + +void +SurfaceNew::set_color_system(SurfaceNew::ColorSystem x) +{ + color_system_=x; +} + +Color +SurfaceNew::get_color(int x, int y)const +{ + // This operation is rather expensive, as it should be. + // I want to discurage people from using it all over the place. + + Color ret( + lock_channel_const(CHAN_R).get_value(x,y), + lock_channel_const(CHAN_G).get_value(x,y), + lock_channel_const(CHAN_B).get_value(x,y), + lock_channel_const(CHAN_A).get_value(x,y) + ); + + if(get_premult()) + { + ret=ret.demult_alpha(); + } + + return ret; +} + +void +SurfaceNew::lock() +{ + mutex_.lock(); +} + +void +SurfaceNew::unlock() +{ + mutex_.unlock(); +} + +bool +SurfaceNew::trylock() +{ + return mutex_.trylock(); +} + +SurfaceNew::ChannelLock +SurfaceNew::lock_channel(SurfaceNew::Channel chan) +{ + if(!is_channel_defined(chan) + channel_map_[chan].set_wh(get_w(),get_h()); + else + channel_map_[chan].make_unique(); + + ChannelLockConst channel_lock; + + channel_lock.surface_=this; + channel_lock.channel_=chan; + + channel_map_[chan].rw_lock.writer_lock(); + + return channel_lock; +} + +SurfaceNew::ChannelLockConst +SurfaceNew::lock_channel_const(SurfaceNew::Channel chan)const +{ + if(!is_channel_defined(chan) + channel_map_[chan].set_wh(get_w(),get_h()); + + ChannelLockConst channel_lock; + + channel_lock.surface_=this; + channel_lock.channel_=chan; + + channel_map_[chan].rw_lock.reader_lock(); + + return channel_lock; +} + +SurfaceNew::ChannelLock +SurfaceNew::lock_channel_alpha(SurfaceNew::Channel chan) +{ + // Change this when per-channel alpha + // is implemented + return lock_channel(CHAN_A); +} + +SurfaceNew::ChannelLockConst +SurfaceNew::lock_channel_alpha_const(SurfaceNew::Channel chan)const +{ + // Change this when per-channel alpha + // is implemented + return lock_channel_const(CHAN_A); +} + +bool +SurfaceNew::is_channel_defined(Channel chan)const +{ + return channel_map_.count(chan); +} + +bool +SurfaceNew::get_premult()const +{ + return premult_flag_; +} + +void +SurfaceNew::set_premult(bool x) +{ + if(x==premult_flag_) + return; + + premult_flag_=x; + + for(int i=0;i<3;i++) + { + Channel chan; + if(get_color_system()==COLORSYS_RGB)switch(i) + { + case 0: chan=CHAN_R; + case 1: chan=CHAN_G; + case 2: chan=CHAN_B; + } + else + if(get_color_system()==COLORSYS_YUV)switch(i) + { + case 0: chan=CHAN_Y; + case 1: chan=CHAN_U; + case 2: chan=CHAN_V; + } + + // If this channel isn't defined, then + // skip it and move on to the next one + if(!is_channel_defined(chan)) + continue; + + ChannelLock color_channel(lock_channel(chan)); + ChannelLockConst alpha_channel(lock_channel_alpha_const(chan)); + const int w(get_w()); + const int h(get_h()); + + float* color_ptr(color_channel.get_data_ptr()); + const float* alpha_ptr(alpha_channel.get_data_ptr()); + + const int color_pitch(color_channel.get_data_ptr_stride()-w); + const int alpha_pitch(alpha_channel.get_data_ptr_stride()-w); + + if(premult_flag_) + { + for(int y=0;yget_w()), h(src->get_h); + + // Clip + { + int x(0), y(0); + + if(x_dest+w>dest.get_w()) + w=dest.get_w()-x_dest; + if(y_dest+h>dest.get_h()) + h=dest.get_h()-y_dest; + if(x_dest<0) + { + x-=x_dest; + w+=x_dest; + } + if(y_dest<0) + { + y-=y_dest; + h+=y_dest; + } + src=crop(src,x,y,w,h); + } + + dest=crop(dest,x_dest,y_dest,w,h); + + if(bm==Color::BLEND_STRAIGHT) + { + chan_mlt(dest,amount/(1.0-amount)); + chan_add(dest,src); + chan_mlt(dest,(1.0-amount)/amount); + } + + if(bm==Color::BLEND_COMPOSITE) + { + + } +} + + + +// ----------------------------------------------------------------------------------- + +SurfaceChannelLockConst::SurfaceChannelLockConst(): + data_ptr_checked_out_(false) +{ +} + +SurfaceChannelLockConst::~SurfaceChannelLockConst() +{ + if(data_ptr_checked_out_) + release_data_ptr(); + + if(surface_ && ref_count_.is_unique()) + return surface->channel_map_[channel_].rw_lock.reader_unlock(); + surface=0; +} + +SurfaceChannel +SurfaceChannelLockConst::get_channel()const +{ + return channel_; +} + +int +SurfaceChannelLockConst::get_w()const +{ + return surface_->get_w(); +} + +int +SurfaceChannelLockConst::get_h()const +{ + return surface_->get_h(); +} + +float +SurfaceChannelLockConst::get_value(int x, int y) +{ + // WOW! CRAZY SLOW! + const ChannelData& channel_data(surface_->channel_map_[channel_]); + return *(channel_data.get_data()+y*channel_data.get_stride()+x); +} + +const float* +SurfaceChannelLockConst::get_data_ptr()const +{ + data_ptr_checked_out_=true; + + // WOW! CRAZY SLOW! + return surface_->channel_map_[channel_].get_data(); +} + +int +SurfaceChannelLockConst::get_data_ptr_stride()const +{ + return surface_->channel_map_[channel_].get_stride(); +} + +void +SurfaceChannelLockConst::release_data_ptr()const +{ + data_ptr_checked_out_=false; +} + +SurfaceChannelLockConst::operator bool()const +{ + return static_cast(surface_); +} + +// ----------------------------------------------------------------------------------- + +SurfaceChannelLock::SurfaceChannelLock() +{ +} + +SurfaceChannelLock::~SurfaceChannelLock() +{ + if(data_ptr_checked_out_) + release_data_ptr(); + + if(surface_ && ref_count_.is_unique()) + return surface_->channel_map_[channel_].rw_lock.writer_unlock(); + surface=0; +} + +void +SurfaceChannelLock::clear() +{ + return surface_->channel_map_[channel_].clear(); +} + +void +SurfaceChannelLock::fill(float v) +{ + return surface_->channel_map_[channel_].fill(v); +} + +void +SurfaceChannelLock::set_value(int x, int y, float v) +{ + // WOW! CRAZY SLOW! + const ChannelData& channel_data(surface_->channel_map_[channel_]); + *(channel_data.get_data()+y*channel_data.get_stride()+x)=v; +} + +float* +SurfaceChannelLock::get_data_ptr() +{ + data_ptr_checked_out_=true; + + // WOW! CRAZY SLOW! + return surface_->channel_map_[channel_].get_data(); +} + + + +// ----------------------------------------------------------------------------------- + + + +void +SurfaceNew::chan_mlt(ChannelLock& dest, float x) +{ + float* ptr(dest.get_data_ptr()); + const int w(dest.get_w()); + const int h(dest.get_h()); + const int pitch(dest.get_data_pitch()-w); + + int(y=0;y +#include +#include "color.h" +#include "mutex.h" +#include + +/* === M A C R O S ========================================================= */ + +/* === T Y P E D E F S ===================================================== */ + +/* === C L A S S E S & S T R U C T S ======================================= */ + +namespace synfig { + +class Surface; +class SurfaceChannelLock; +class SurfaceChannelLockConst; + +//! \writeme +enum SurfaceColorSystem +{ + COLORSYS_RGB, + COLORSYS_YUV, + + COLORSYS_END +}; // END of enum SurfaceColorSystem + +//! \writeme +enum SurfaceChannel +{ + CHAN_A, + CHAN_R, + CHAN_G, + CHAN_B, + + CHAN_Y, + CHAN_U, + CHAN_V, + + CHAN_END +}; // END of enum SurfaceChannel + +class SurfaceNew : etl::shared_object +{ + friend class SurfaceChannelLock; + + /* + -- ** -- T Y P E S ----------------------------------------------------------- + */ + +public: + + //! \writeme + typedef etl::handle Handle; + + //! \writeme + typedef etl::handle HandleConst; + + //! \writeme + typedef etl::loose_handle LooseHandle; + + //! \writeme + typedef SurfaceChannel; + + //! \writeme + typedef SurfaceChannelLock ChannelLock; + + //! \writeme + typedef SurfaceChannelLockConst ChannelLockConst; + + //! \writeme + typedef SurfaceColorSystem; + + //! \writeme + class Lock + { + Handle x; + public: + Lock(const Handle& x):x(x) { x->lock(); } + void unlock() { if(x){ x->unlock(); x=0; } } + ~Lock() { unlock(); } + }; // END of class Lock + friend class Lock; + +private: + + //! \writeme + class ChannelData; + + /* + -- ** -- D A T A ------------------------------------------------------------- + */ + +private: + + //! \writeme + RecMutex mutex_; + + //! \writeme + int w_,h_; + + //! \writeme + ColorSystem color_system_; + + //! \writeme + bool premult_flag_; + + //! \writeme + std::map channel_map_; + + /* + -- ** -- S I G N A L S ------------------------------------------------------- + */ + +private: + + /* + -- ** -- S I G N A L I N T E R F A C E ------------------------------------- + */ + +public: + + /* + -- ** -- C O N S T R U C T O R S --------------------------------------------- + */ + +protected: + + //! \writeme + SurfaceNew(); + +public: + + //! \writeme + virtual ~SurfaceNew(); + + /* + -- ** -- M E M B E R F U N C T I O N S ------------------------------------- + */ + +public: + + //! \writeme + int get_w()const; + + //! \writeme + int get_h()const; + + //! \writeme + void set_wh(int w, int h); + + //! \writeme + ColorSystem get_color_system()const; + + //! \writeme + void set_color_system(ColorSystem x); + + //! Should only be used in certain circumstances + Color get_color(int x, int y)const; + + //! \writeme + void lock(); + + //! \writeme + void unlock(); + + //! \writeme + bool trylock(); + + //! \writeme + ChannelLock lock_channel(Channel chan); + + //! \writeme + ChannelLockConst lock_channel_const(Channel chan)const; + + //! \writeme + ChannelLock lock_channel_alpha(Channel chan); + + //! \writeme + ChannelLockConst lock_channel_alpha_const(Channel chan)const; + + //! \writeme + bool is_channel_defined(Channel chan)const; + + //! \writeme + bool get_premult()const; + + //! \writeme + void set_premult(); + + /* + -- ** -- S T A T I C F U N C T I O N S ------------------------------------- + */ + +public: + + //! Normal SurfaceNew Constructor + static Handle create(int w=0, int h=0, ColorSystem sys=COLORSYS_RGB); + + //! Converts an old Surface to a SurfaceNew + static Handle create(const Surface&); + + //! Dupilcates a surface + static Handle create(HandleConst); + + //! Creates a cropped copy of a surface + static Handle crop(HandleConst, int x, int y, int w, int h); + + static void blit( + Handle dest, + int x_dest, + int y_dest, + HandleConst src, + float amount=1.0, + Color::BlendMethod bm=Color::BLEND_COMPOSITE + ); + + static void blit( + Handle dest, + int x_dest, + int y_dest, + Handle src, + int x_src, + int y_src, + int w_src, + int h_src, + float amount=1.0, + Color::BlendMethod bm=Color::BLEND_COMPOSITE + ); + + + static void chan_mlt(ChannelLock& dest, float x); + static void chan_mlt(ChannelLock& dest, const ChannelLockConst& x); + + static void chan_div(ChannelLock& dest, float x); + static void chan_div(ChannelLock& dest, const ChannelLockConst& x); + + static void chan_add(ChannelLock& dest, float x); + static void chan_add(ChannelLock& dest, const ChannelLockConst& x); + + static void chan_sub(ChannelLock& dest, float x); + static void chan_sub(ChannelLock& dest, const ChannelLockConst& x); +}; // END of class SurfaceNew + +//! \writeme +class SurfaceChannelLockConst +{ + friend class SurfaceNew; + + /* + -- ** -- T Y P E S ----------------------------------------------------------- + */ + +public: + + /* + -- ** -- D A T A ------------------------------------------------------------- + */ + +protected: + + //! \writeme + SurfaceNew::Handle surface_; + + //! \writeme + etl::reference_counter ref_count_; + + //! \writeme + SurfaceChannel channel_; + + //! \writeme + bool data_ptr_checked_out_; + + /* + -- ** -- C O N S T R U C T O R S --------------------------------------------- + */ + +public: + + SurfaceChannelLockConst(); + + //! \writeme + ~SurfaceChannelLockConst(); + + /* + -- ** -- M E M B E R F U N C T I O N S ------------------------------------- + */ + +public: + + //! \writeme + SurfaceChannel get_channel()const; + + //! \writeme + int get_w()const; + + //! \writeme + int get_h()const; + + //! \writeme + float get_value(int x, int y); + + //! \writeme + const float* get_data_ptr()const; + + //! \writeme + int get_data_ptr_stride()const; + + //! Releases the pointer obtained with get_data_ptr() + void release_data_ptr()const; + + //! \writeme + operator bool()const; +}; // END of class SurfaceChannelLockConst + + +//! \writeme +class SurfaceChannelLock : public SurfaceChannelLockConst +{ + friend class SurfaceNew; + + using SurfaceChannelLock::get_data_ptr; + + /* + -- ** -- T Y P E S ----------------------------------------------------------- + */ + +public: + + /* + -- ** -- D A T A ------------------------------------------------------------- + */ + +private: + + /* + -- ** -- C O N S T R U C T O R S --------------------------------------------- + */ + +public: + + //! \writeme + SurfaceChannelLock(); + + //! \writeme + ~SurfaceChannelLock(); + + /* + -- ** -- M E M B E R F U N C T I O N S ------------------------------------- + */ + +public: + + //! \writeme + void clear(); + + //! \writeme + void fill(float value); + + //! \writeme + void set_value(int x, int y, float v); + + float* get_data_ptr(); +}; // END of class ChannelLock + + +}; // END of namespace synfig + +/* === E N D =============================================================== */ + +#endif diff --git a/synfig-core/tags/stable/src/synfig/synfig.h b/synfig-core/tags/stable/src/synfig/synfig.h new file mode 100644 index 0000000..9059792 --- /dev/null +++ b/synfig-core/tags/stable/src/synfig/synfig.h @@ -0,0 +1,138 @@ +/* === S Y N F I G ========================================================= */ +/*! \file synfig.h +** \brief Primary Header for Synfig +** +** $Id$ +** +** \legal +** Copyright (c) 2002-2005 Robert B. Quattlebaum Jr., Adrian Bentley +** +** This package is free software; you can redistribute it and/or +** modify it under the terms of the GNU General Public License as +** published by the Free Software Foundation; either version 2 of +** the License, or (at your option) any later version. +** +** This package is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +** General Public License for more details. +** \endlegal +*/ +/* ========================================================================= */ + +/* === S T A R T =========================================================== */ + +#ifndef __SYNFIG__ +#define __SYNFIG__ + +#ifndef __cplusplus +#error Sorry, Synfig only supports C++ at this time. See README for details. +#endif + +#warning The use of this header is deprecated. Please use the individual header files. + +/* === M A C R O S ========================================================= */ + +/*! \def SYNFIG_LEAN +** \brief Define this to remove unused features, speeding up compile time. +** +** Define SYNFIG_LEAN if your plug-in +** or program doesn't use the synfig::Angle class +** or the rendering subsystem. This can speed up +** compiles. You may also wish to individualy +** use the macros SYNFIG_NO_ANGLE and +** SYNFIG_NO_RENDER. +** \see SYNFIG_NO_ANGLE, SYNFIG_NO_RENDER +*/ +#ifdef SYNFIG_LEAN +# ifndef SYNFIG_NO_ANGLE +# define SYNFIG_NO_ANGLE +# endif +# ifndef SYNFIG_NO_RENDER +# define SYNFIG_NO_RENDER +# endif +#endif + +/*! \def SYNFIG_LAYER +** The SYNFIG_LAYER macro is useful for when you +** are compiling layers, and can help to improve +** build time. +*/ +#ifdef SYNFIG_LAYER +# ifndef SYNFIG_NO_RENDER +# define SYNFIG_NO_RENDER +# endif +# define SYNFIG_NO_LOADSAVE +#endif + +/*! \def SYNFIG_TARGET +** The SYNFIG_TARGET macro is useful for when you +** are compiling render targets, and can help to +** improve build time. +*/ +#ifdef SYNFIG_TARGET +# ifdef SYNFIG_NO_RENDER +# error You defined SYNFIG_TARGET, but also SYNFIG_NO_RENDER. This doesnt make sense. +# endif +# ifndef SYNFIG_NO_ANGLE +# define SYNFIG_NO_ANGLE +# endif +# define SYNFIG_NO_LOADSAVE +#endif + +/*! \def SYNFIG_MODULE +** \todo Writeme +*/ +#ifdef SYNFIG_MODULE +# define SYNFIG_NO_LOADSAVE +#endif + +/*! \namespace synfig +** \brief Where every function and class of the synfig library can be found +** \todo Writeme +*/ + +/* === H E A D E R S ======================================================= */ + +#include "version.h" +#include "general.h" +#include "module.h" +#include "color.h" +#include "canvas.h" +#include "layer.h" +#include "vector.h" +#include "types.h" +#include "segment.h" + +#ifndef SYNFIG_NO_RENDER +# include "render.h" +#endif + +#ifndef SYNFIG_LAYER +#include "target.h" +#endif + +#include "valuenode.h" +#include "valuenode_subtract.h" +//#include "valuenode_animated.h" +#include "valuenode_composite.h" +#include "valuenode_const.h" +#include "valuenode_linear.h" +#include "valuenode_dynamiclist.h" +#include "valuenode_reference.h" + +#ifndef SYNFIG_NO_LOADSAVE +# include "savecanvas.h" +# include "loadcanvas.h" +#endif + +#include "importer.h" +#include "surface.h" + +#include "string.h" + +/* === C L A S S E S & S T R U C T S ======================================= */ + +/* === E N D =============================================================== */ + +#endif diff --git a/synfig-core/tags/stable/src/synfig/synfig.nsh b/synfig-core/tags/stable/src/synfig/synfig.nsh new file mode 100644 index 0000000..2fc4c53 --- /dev/null +++ b/synfig-core/tags/stable/src/synfig/synfig.nsh @@ -0,0 +1,20 @@ +; The stuff to install +Section "Synfig Core" + + SectionIn RO + + ; Set output path to the installation directory. + SetOutPath "$INSTDIR\bin" + + ; Put file there + File "src\synfig\.libs\libsynfig-0.dll" + +SectionEnd + +Section "un.Synfig Core" + Delete "$INSTDIR\bin\libsynfig-0.dll" + RMDir "$INSTDIR\bin" + RMDir "$INSTDIR" +SectionEnd + + diff --git a/synfig-core/tags/stable/src/synfig/target.cpp b/synfig-core/tags/stable/src/synfig/target.cpp new file mode 100644 index 0000000..a6c75a9 --- /dev/null +++ b/synfig-core/tags/stable/src/synfig/target.cpp @@ -0,0 +1,113 @@ +/* === S Y N F I G ========================================================= */ +/*! \file target.cpp +** \brief Target Class Implementation +** +** $Id$ +** +** \legal +** Copyright (c) 2002-2005 Robert B. Quattlebaum Jr., Adrian Bentley +** +** This package is free software; you can redistribute it and/or +** modify it under the terms of the GNU General Public License as +** published by the Free Software Foundation; either version 2 of +** the License, or (at your option) any later version. +** +** This package is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +** General Public License for more details. +** \endlegal +*/ +/* ========================================================================= */ + +/* === H E A D E R S ======================================================= */ + +#define SYNFIG_NO_ANGLE + +#ifdef HAVE_CONFIG_H +# include +#endif + +#include "target.h" +#include "string.h" +#include "canvas.h" +#include "target_null.h" +#include "target_null_tile.h" + +using namespace synfig; +using namespace etl; +using namespace std; + +synfig::Target::Book* synfig::Target::book_; +synfig::Target::ExtBook* synfig::Target::ext_book_; + +static synfig::Gamma* default_gamma_; + +/* === P R O C E D U R E S ================================================= */ + +bool +Target::subsys_init() +{ + book_=new synfig::Target::Book(); + ext_book_=new synfig::Target::ExtBook(); + + default_gamma_=new synfig::Gamma(1.0/2.2); + //default_gamma_->set_black_level(0.05); // Default to 5% black level. + + book()["null"]=std::pair(Target_Null::create,"null"); + ext_book()["null"]="null"; + book()["null-tile"]=std::pair(Target_Null_Tile::create,"null-tile"); + ext_book()["null-tile"]="null-tile"; + + return true; +} + +bool +Target::subsys_stop() +{ + delete book_; + delete ext_book_; + delete default_gamma_; + return true; +} + +Target::Book& +Target::book() +{ + return *book_; +} + +Target::ExtBook& +Target::ext_book() +{ + return *ext_book_; +} + + +/* === M E T H O D S ======================================================= */ + +Target::Target(): + quality_(4), + gamma_(*default_gamma_), + remove_alpha(false), + avoid_time_sync_(false) +{ +} + +void +synfig::Target::set_canvas(Canvas::Handle c) +{ + canvas=c; + RendDesc desc=canvas->rend_desc(); + set_rend_desc(&desc); +} + + +Target::Handle +Target::create(const String &name, const String &filename) +{ + if(!book().count(name)) + return handle(); + + return Target::Handle(book()[name].first(filename.c_str())); +} diff --git a/synfig-core/tags/stable/src/synfig/target.h b/synfig-core/tags/stable/src/synfig/target.h new file mode 100644 index 0000000..8d58cf6 --- /dev/null +++ b/synfig-core/tags/stable/src/synfig/target.h @@ -0,0 +1,164 @@ +/* === S Y N F I G ========================================================= */ +/*! \file target.h +** \brief Target Class Implementation +** +** $Id$ +** +** \legal +** Copyright (c) 2002-2005 Robert B. Quattlebaum Jr., Adrian Bentley +** +** This package is free software; you can redistribute it and/or +** modify it under the terms of the GNU General Public License as +** published by the Free Software Foundation; either version 2 of +** the License, or (at your option) any later version. +** +** This package is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +** General Public License for more details. +** \endlegal +*/ +/* ========================================================================= */ + +/* === S T A R T =========================================================== */ + +#ifndef __SYNFIG_TARGET_H +#define __SYNFIG_TARGET_H + +/* === H E A D E R S ======================================================= */ + +#include "string_decl.h" +#include +//#include +#include +#include +#include "renddesc.h" +//#include "general.h" +#include "color.h" +#include "canvas.h" + +/* === M A C R O S ========================================================= */ + +//! \writeme +#define SYNFIG_TARGET_MODULE_EXT public: static const char name__[], version__[], ext__[],cvs_id__[]; static Target *create(const char *filename); + +//! Sets the name of the target +#define SYNFIG_TARGET_SET_NAME(class,x) const char class::name__[]=x + +//! \writeme +#define SYNFIG_TARGET_SET_EXT(class,x) const char class::ext__[]=x + +//! Sets the version of the target +#define SYNFIG_TARGET_SET_VERSION(class,x) const char class::version__[]=x + +//! Sets the CVS ID of the target +#define SYNFIG_TARGET_SET_CVS_ID(class,x) const char class::cvs_id__[]=x + +//! \writeme +#define SYNFIG_TARGET_INIT(class) synfig::Target* class::create(const char *filename) { return new class(filename); } + +/* === T Y P E D E F S ===================================================== */ + +/* === C L A S S E S & S T R U C T S ======================================= */ + +namespace synfig { + +class Surface; +class RendDesc; +class Canvas; +class ProgressCallback; + +/*! \class Target +** \brief Render-target +** \todo writeme +*/ +class Target : public etl::shared_object +{ +public: + typedef etl::handle Handle; + typedef etl::loose_handle LooseHandle; + typedef etl::handle ConstHandle; + + typedef Target* (*Factory)(const char *filename); + + //! A type for a map of targets, indexed by the name of the Target + typedef std::map > Book; + + typedef std::map ExtBook; + + //! Target Book, indexed by the target's name + static Book* book_; + + //! Map of target names indexed by associated file extension + static ExtBook* ext_book_; + + static Book& book(); + static ExtBook& ext_book(); + + static bool subsys_init(); + static bool subsys_stop(); + + //! Adjusted Render description set by set_rend_desc() + RendDesc desc; + + etl::handle canvas; + + int quality_; + Gamma gamma_; + + bool remove_alpha; + + bool avoid_time_sync_; + +protected: + + Target(); + +public: + virtual ~Target() { } + + int get_quality()const { return quality_; } + + void set_quality(int q) { quality_=q; } + + void set_avoid_time_sync(bool x=true) { avoid_time_sync_=x; } + + bool get_avoid_time_sync()const { return avoid_time_sync_; } + + bool get_remove_alpha()const { return remove_alpha; } + + void set_remove_alpha(bool x=true) { remove_alpha=x; } + + Gamma &gamma() { return gamma_; } + + const Gamma &gamma()const { return gamma_; } + + virtual void set_canvas(etl::handle c); + + const etl::handle &get_canvas()const { return canvas; } + + RendDesc &rend_desc() { return desc; } + const RendDesc &rend_desc()const { return desc; } + + //! Renders the canvas to the target + virtual bool render(ProgressCallback *cb=NULL)=0; + + //! Sets the RendDesc for the Target to \a desc. + /*! If there are any parts of \a desc that the render target + ** is not capable of doing, the render target will adjust + ** \a desc to fit its needs. + */ + virtual bool set_rend_desc(RendDesc *d) { desc=*d; return true; } + + virtual bool init() { return true; } + + //! Creates a new Target described by \a type, outputing to a file described by \a filename. + static Handle create(const String &type, const String &filename); +}; // END of class Target + +}; // END of namespace synfig + +/* === E N D =============================================================== */ + +#include "canvas.h" +#endif diff --git a/synfig-core/tags/stable/src/synfig/target_multi.cpp b/synfig-core/tags/stable/src/synfig/target_multi.cpp new file mode 100644 index 0000000..825b322 --- /dev/null +++ b/synfig-core/tags/stable/src/synfig/target_multi.cpp @@ -0,0 +1,119 @@ +/* === S Y N F I G ========================================================= */ +/*! \file target_multi.cpp +** \brief Template File +** +** $Id$ +** +** \legal +** Copyright (c) 2002-2005 Robert B. Quattlebaum Jr., Adrian Bentley +** +** This package is free software; you can redistribute it and/or +** modify it under the terms of the GNU General Public License as +** published by the Free Software Foundation; either version 2 of +** the License, or (at your option) any later version. +** +** This package is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +** General Public License for more details. +** \endlegal +*/ +/* ========================================================================= */ + +/* === H E A D E R S ======================================================= */ + +#ifdef USING_PCH +# include "pch.h" +#else +#ifdef HAVE_CONFIG_H +# include +#endif + +#include "target_multi.h" +#include "string.h" +#include "surface.h" +#include "canvas.h" +#include "context.h" + +#endif + +/* === U S I N G =========================================================== */ + +using namespace std; +using namespace etl; +using namespace synfig; + +/* === M A C R O S ========================================================= */ + +/* === G L O B A L S ======================================================= */ + +/* === P R O C E D U R E S ================================================= */ + +/* === M E T H O D S ======================================================= */ + +Target_Multi::Target_Multi(Target_Scanline::Handle a,Target_Scanline::Handle b): + a(a), + b(b) +{ +} + +Target_Multi::~Target_Multi() +{ +} + +void +Target_Multi::set_canvas(etl::handle c) +{ + canvas=c; + RendDesc desc=canvas->rend_desc(); + a->set_canvas(c); + b->set_canvas(c); + set_rend_desc(&desc); +} + +bool +Target_Multi::set_rend_desc(RendDesc *d) +{ + desc=*d; + return a->set_rend_desc(d) && b->set_rend_desc(d); +} + +bool +Target_Multi::init() +{ + return a->init() && b->init(); +} + +bool +Target_Multi::add_frame(const synfig::Surface *surface) +{ + return a->add_frame(surface) && b->add_frame(surface); +} + +bool +Target_Multi::start_frame(ProgressCallback *cb) +{ + return a->start_frame(cb) && b->start_frame(cb); +} + +void +Target_Multi::end_frame() +{ + a->end_frame(); + b->end_frame(); +} + +Color * +Target_Multi::start_scanline(int scanline) +{ + buffer_a=a->start_scanline(scanline); + buffer_b=b->start_scanline(scanline); + return buffer_a; +} + +bool +Target_Multi::end_scanline() +{ + memcpy(buffer_b,buffer_a,sizeof(Color)*desc.get_w()); + return a->end_scanline() && b->end_scanline(); +} diff --git a/synfig-core/tags/stable/src/synfig/target_multi.h b/synfig-core/tags/stable/src/synfig/target_multi.h new file mode 100644 index 0000000..f42b81a --- /dev/null +++ b/synfig-core/tags/stable/src/synfig/target_multi.h @@ -0,0 +1,68 @@ +/* === S Y N F I G ========================================================= */ +/*! \file target_multi.h +** \brief Template Header +** +** $Id$ +** +** \legal +** Copyright (c) 2002-2005 Robert B. Quattlebaum Jr., Adrian Bentley +** +** This package is free software; you can redistribute it and/or +** modify it under the terms of the GNU General Public License as +** published by the Free Software Foundation; either version 2 of +** the License, or (at your option) any later version. +** +** This package is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +** General Public License for more details. +** \endlegal +*/ +/* ========================================================================= */ + +/* === S T A R T =========================================================== */ + +#ifndef __SYNFIG_TARGET_MULTI_H +#define __SYNFIG_TARGET_MULTI_H + +/* === H E A D E R S ======================================================= */ + +#include "target_scanline.h" + +/* === M A C R O S ========================================================= */ + +/* === T Y P E D E F S ===================================================== */ + +/* === C L A S S E S & S T R U C T S ======================================= */ + +namespace synfig { + +/*! \class Target_Multi +** \brief Render-target +** \todo writeme +*/ +class Target_Multi : public Target_Scanline +{ + Target_Scanline::Handle a,b; + Color *buffer_a; + Color *buffer_b; +public: + + Target_Multi(Target_Scanline::Handle a,Target_Scanline::Handle b); + virtual ~Target_Multi(); + virtual bool add_frame(const synfig::Surface *surface); + virtual bool start_frame(ProgressCallback *cb=NULL); + virtual void end_frame(); + virtual Color * start_scanline(int scanline); + virtual bool end_scanline(); + + virtual void set_canvas(etl::handle c); + virtual bool set_rend_desc(RendDesc *d); + virtual bool init(); +}; // END of class Target_Multi + +}; // END of namespace synfig + +/* === E N D =============================================================== */ + +#endif diff --git a/synfig-core/tags/stable/src/synfig/target_null.cpp b/synfig-core/tags/stable/src/synfig/target_null.cpp new file mode 100644 index 0000000..16fb552 --- /dev/null +++ b/synfig-core/tags/stable/src/synfig/target_null.cpp @@ -0,0 +1,50 @@ +/* === S Y N F I G ========================================================= */ +/*! \file target_null.cpp +** \brief Template File +** +** $Id$ +** +** \legal +** Copyright (c) 2002-2005 Robert B. Quattlebaum Jr., Adrian Bentley +** +** This package is free software; you can redistribute it and/or +** modify it under the terms of the GNU General Public License as +** published by the Free Software Foundation; either version 2 of +** the License, or (at your option) any later version. +** +** This package is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +** General Public License for more details. +** \endlegal +*/ +/* ========================================================================= */ + +/* === H E A D E R S ======================================================= */ + +#ifdef USING_PCH +# include "pch.h" +#else +#ifdef HAVE_CONFIG_H +# include +#endif + +//#include "target_null.h" + +#endif + +/* === U S I N G =========================================================== */ + +//using namespace std; +//using namespace etl; +//using namespace synfig; + +/* === M A C R O S ========================================================= */ + +/* === G L O B A L S ======================================================= */ + +/* === P R O C E D U R E S ================================================= */ + +/* === M E T H O D S ======================================================= */ + +/* === E N T R Y P O I N T ================================================= */ diff --git a/synfig-core/tags/stable/src/synfig/target_null.h b/synfig-core/tags/stable/src/synfig/target_null.h new file mode 100644 index 0000000..2ffb19e --- /dev/null +++ b/synfig-core/tags/stable/src/synfig/target_null.h @@ -0,0 +1,71 @@ +/* === S Y N F I G ========================================================= */ +/*! \file target_null.h +** \brief Template Header +** +** $Id$ +** +** \legal +** Copyright (c) 2002-2005 Robert B. Quattlebaum Jr., Adrian Bentley +** +** This package is free software; you can redistribute it and/or +** modify it under the terms of the GNU General Public License as +** published by the Free Software Foundation; either version 2 of +** the License, or (at your option) any later version. +** +** This package is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +** General Public License for more details. +** \endlegal +*/ +/* ========================================================================= */ + +/* === S T A R T =========================================================== */ + +#ifndef __SYNFIG_TARGET_NULL_H +#define __SYNFIG_TARGET_NULL_H + +/* === H E A D E R S ======================================================= */ + +#include "target_scanline.h" +#include "general.h" + +/* === M A C R O S ========================================================= */ + +/* === T Y P E D E F S ===================================================== */ + +/* === C L A S S E S & S T R U C T S ======================================= */ + +namespace synfig { + +/*! \class Target_Null +** \brief A target which renders to nothing. Useful for benchmarks and other tests. +** \todo writeme +*/ +class Target_Null : public Target_Scanline +{ + Color *buffer; + + Target_Null():buffer(0) { } + +public: + + ~Target_Null() { delete buffer; } + + virtual bool start_frame(ProgressCallback *cb=NULL) + { delete buffer; buffer=new Color[desc.get_w()*sizeof(Color)]; return true; } + + virtual void end_frame() { delete buffer; buffer=0; return; } + + virtual Color * start_scanline(int scanline) { return buffer; } + + virtual bool end_scanline() { return true; } + + static Target* create(const char *filename=0) { return new Target_Null(); } +}; // END of class Target_Null + +}; // END of namespace synfig + +/* === E N D =============================================================== */ + +#endif diff --git a/synfig-core/tags/stable/src/synfig/target_null_tile.cpp b/synfig-core/tags/stable/src/synfig/target_null_tile.cpp new file mode 100644 index 0000000..091ee28 --- /dev/null +++ b/synfig-core/tags/stable/src/synfig/target_null_tile.cpp @@ -0,0 +1,50 @@ +/* === S Y N F I G ========================================================= */ +/*! \file target_null_tile.cpp +** \brief Template File +** +** $Id$ +** +** \legal +** Copyright (c) 2002-2005 Robert B. Quattlebaum Jr., Adrian Bentley +** +** This package is free software; you can redistribute it and/or +** modify it under the terms of the GNU General Public License as +** published by the Free Software Foundation; either version 2 of +** the License, or (at your option) any later version. +** +** This package is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +** General Public License for more details. +** \endlegal +*/ +/* ========================================================================= */ + +/* === H E A D E R S ======================================================= */ + +#ifdef USING_PCH +# include "pch.h" +#else +#ifdef HAVE_CONFIG_H +# include +#endif + +//#include "target_null.h" + +#endif + +/* === U S I N G =========================================================== */ + +//using namespace std; +//using namespace etl; +//using namespace synfig; + +/* === M A C R O S ========================================================= */ + +/* === G L O B A L S ======================================================= */ + +/* === P R O C E D U R E S ================================================= */ + +/* === M E T H O D S ======================================================= */ + +/* === E N T R Y P O I N T ================================================= */ diff --git a/synfig-core/tags/stable/src/synfig/target_null_tile.h b/synfig-core/tags/stable/src/synfig/target_null_tile.h new file mode 100644 index 0000000..2ad283f --- /dev/null +++ b/synfig-core/tags/stable/src/synfig/target_null_tile.h @@ -0,0 +1,66 @@ +/* === S Y N F I G ========================================================= */ +/*! \file target_null_tile.h +** \brief Template Header +** +** $Id$ +** +** \legal +** Copyright (c) 2002-2005 Robert B. Quattlebaum Jr., Adrian Bentley +** +** This package is free software; you can redistribute it and/or +** modify it under the terms of the GNU General Public License as +** published by the Free Software Foundation; either version 2 of +** the License, or (at your option) any later version. +** +** This package is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +** General Public License for more details. +** \endlegal +*/ +/* ========================================================================= */ + +/* === S T A R T =========================================================== */ + +#ifndef __SYNFIG_TARGET_NULL_TILE_H +#define __SYNFIG_TARGET_NULL_TILE_H + +/* === H E A D E R S ======================================================= */ + +#include "target_tile.h" +#include "general.h" + +/* === M A C R O S ========================================================= */ + +/* === T Y P E D E F S ===================================================== */ + +/* === C L A S S E S & S T R U C T S ======================================= */ + +namespace synfig { + +/*! \class Target_Null_Tile +** \brief A target which renders to nothing using tiles. Useful for benchmarks and other tests. +** \todo writeme +*/ +class Target_Null_Tile : public Target_Tile +{ + Target_Null_Tile() { } + +public: + + ~Target_Null_Tile() { } + virtual bool add_tile(const synfig::Surface &surface, int x, int y) { return true; } + + virtual bool start_frame(ProgressCallback *cb=NULL) + { return true; } + + virtual void end_frame() { return; } + + static Target* create(const char *filename=0) { return new Target_Null_Tile(); } +}; // END of class Target_Null_Tile + +}; // END of namespace synfig + +/* === E N D =============================================================== */ + +#endif diff --git a/synfig-core/tags/stable/src/synfig/target_scanline.cpp b/synfig-core/tags/stable/src/synfig/target_scanline.cpp new file mode 100644 index 0000000..19f38f2 --- /dev/null +++ b/synfig-core/tags/stable/src/synfig/target_scanline.cpp @@ -0,0 +1,505 @@ +/* === S Y N F I G ========================================================= */ +/*! \file target_scanline.cpp +** \brief Template File +** +** $Id$ +** +** \legal +** Copyright (c) 2002-2005 Robert B. Quattlebaum Jr., Adrian Bentley +** +** This package is free software; you can redistribute it and/or +** modify it under the terms of the GNU General Public License as +** published by the Free Software Foundation; either version 2 of +** the License, or (at your option) any later version. +** +** This package is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +** General Public License for more details. +** \endlegal +*/ +/* ========================================================================= */ + +/* === H E A D E R S ======================================================= */ + +#ifdef USING_PCH +# include "pch.h" +#else +#ifdef HAVE_CONFIG_H +# include +#endif + +#include "target_scanline.h" +#include "string.h" +#include "surface.h" +#include "render.h" +#include "canvas.h" +#include "context.h" + +#endif + +/* === U S I N G =========================================================== */ + +using namespace std; +using namespace etl; +using namespace synfig; + +/* === M A C R O S ========================================================= */ + +#define SYNFIG_OPTIMIZE_LAYER_TREE 1 + +#define PIXEL_RENDERING_LIMIT 1500000 + +#define USE_PIXELRENDERING_LIMIT 1 + +/* === G L O B A L S ======================================================= */ + +/* === P R O C E D U R E S ================================================= */ + +/* === M E T H O D S ======================================================= */ + +Target_Scanline::Target_Scanline(): + threads_(2) +{ + curr_frame_=0; +} + +int +Target_Scanline::next_frame(Time& time) +{ + int + total_frames(1), + frame_start(0), + frame_end(0); + Time + time_start(0), + time_end(0); + + // If the description's end frame is equal to + // the start frame, then it is assumed that we + // are rendering only one frame. Correct it. + if(desc.get_frame_end()==desc.get_frame_start()) + desc.set_frame_end(desc.get_frame_start()+1); + + frame_start=desc.get_frame_start(); + frame_end=desc.get_frame_end(); + time_start=desc.get_time_start(); + time_end=desc.get_time_end(); + + // Calculate the number of frames + total_frames=frame_end-frame_start; + if(total_frames<=0)total_frames=1; + + //RendDesc rend_desc=desc; + //rend_desc.set_gamma(1); + +// int total_tiles(total_tiles()); + time=(time_end-time_start)*curr_frame_/total_frames+time_start; + curr_frame_++; + +/* synfig::info("curr_frame_: %d",curr_frame_); + synfig::info("total_frames: %d",total_frames); + synfig::info("time_end: %s",time_end.get_string().c_str()); + synfig::info("time_start: %s",time_start.get_string().c_str()); +*/ +// synfig::info("time: %s",time.get_string().c_str()); + + return total_frames- curr_frame_+1; +} +bool +synfig::Target_Scanline::render(ProgressCallback *cb) +{ + SuperCallback super_cb; + int +// i=0, + total_frames, + quality=get_quality(), + frame_start, + frame_end; + Time + t=0, + time_start, + time_end; + + assert(canvas); + curr_frame_=0; + + if( !init() ){ + if(cb) cb->error(_("Target initialisation failure")); + return false; + } + + // If the description's end frame is equal to + // the start frame, then it is assumed that we + // are rendering only one frame. Correct it. + if(desc.get_frame_end()==desc.get_frame_start()) + desc.set_frame_end(desc.get_frame_start()+1); + + frame_start=desc.get_frame_start(); + frame_end=desc.get_frame_end(); + time_start=desc.get_time_start(); + time_end=desc.get_time_end(); + + // Calculate the number of frames + total_frames=frame_end-frame_start; + + + //RendDesc rend_desc=desc; + + try { + // Grab the time + int i=next_frame(t); + + //synfig::info("1time_set_to %s",t.get_string().c_str()); + + if(i>1) + do{ + + //if(total_frames>1) + //for(i=0,t=time_start;iamount_complete(total_frames-(i-1),total_frames)) + return false; + + // Set the time that we wish to render + if(!get_avoid_time_sync() || canvas->get_time()!=t) + canvas->set_time(t); + + Context context; + + #ifdef SYNFIG_OPTIMIZE_LAYER_TREE + Canvas::Handle op_canvas(Canvas::create()); + optimize_layers(canvas->get_context(), op_canvas); + context=op_canvas->get_context(); + #else + context=canvas->get_context(); + #endif + + // If the quality is set to zero, then we + // use the parametric scanline-renderer. + if(quality==0) + { + if(threads_<=0) + { + if(!synfig::render(context,this,desc,0)) + return false; + } + else + { + if(!synfig::render_threaded(context,this,desc,0,threads_)) + return false; + } + } + else // If quality is set otherwise, then we use the accelerated renderer + { + #if USE_PIXELRENDERING_LIMIT + if(desc.get_w()*desc.get_h() > PIXEL_RENDERING_LIMIT) + { + synfig::info("Render BROKEN UP! (%d pixels)", desc.get_w()*desc.get_h()); + + Surface surface; + int rowheight = PIXEL_RENDERING_LIMIT/desc.get_w(); + if (!rowheight) rowheight = 1; // TODO: render partial lines to stay within the limit? + int rows = desc.get_h()/rowheight; + int lastrowheight = desc.get_h() - rows*rowheight; + + rows++; + + synfig::info("\t blockh=%d,remh=%d,totrows=%d", rowheight,lastrowheight,rows); + + // loop through all the full rows + if(!start_frame()) + { + throw(string("add_frame(): target panic on start_frame()")); + return false; + } + + for(int i=0; i < rows; ++i) + { + RendDesc blockrd = desc; + + //render the strip at the normal size unless it's the last one... + if(i == rows-1) + { + if(!lastrowheight) break; + blockrd.set_subwindow(0,i*rowheight,desc.get_w(),lastrowheight); + } + else + { + blockrd.set_subwindow(0,i*rowheight,desc.get_w(),rowheight); + } + + if(!context.accelerated_render(&surface,quality,blockrd,0)) + { + if(cb)cb->error(_("Accelerated Renderer Failure")); + return false; + }else + { + int y; + int rowspan=sizeof(Color)*surface.get_w(); + Surface::pen pen = surface.begin(); + + int yoff = i*rowheight; + + for(y = 0; y < blockrd.get_h(); y++, pen.inc_y()) + { + Color *colordata= start_scanline(y + yoff); + if(!colordata) + { + throw(string("add_frame(): call to start_scanline(y) returned NULL")); + return false; + } + + if(get_remove_alpha()) + { + for(int i = 0; i < surface.get_w(); i++) + colordata[i] = Color::blend(surface[y][i],desc.get_bg_color(),1.0f); + } + else + memcpy(colordata,surface[y],rowspan); + + if(!end_scanline()) + { + throw(string("add_frame(): target panic on end_scanline()")); + return false; + } + } + } + } + + end_frame(); + + }else //use normal rendering... + { + #endif + Surface surface; + + if(!context.accelerated_render(&surface,quality,desc,0)) + { + // For some reason, the accelerated renderer failed. + if(cb)cb->error(_("Accelerated Renderer Failure")); + return false; + } + else + { + // Put the surface we renderer + // onto the target. + if(!add_frame(&surface)) + { + if(cb)cb->error(_("Unable to put surface on target")); + return false; + } + } + #if USE_PIXELRENDERING_LIMIT + } + #endif + } + }while((i=next_frame(t))); + else + { + // Set the time that we wish to render + if(!get_avoid_time_sync() || canvas->get_time()!=t) + canvas->set_time(t); + Context context; + + #ifdef SYNFIG_OPTIMIZE_LAYER_TREE + Canvas::Handle op_canvas(Canvas::create()); + optimize_layers(canvas->get_context(), op_canvas); + context=op_canvas->get_context(); + #else + context=canvas->get_context(); + #endif + + // If the quality is set to zero, then we + // use the parametric scanline-renderer. + if(quality==0) + { + if(threads_<=0) + { + if(!synfig::render(context,this,desc,cb)) + return false; + } + else + { + if(!synfig::render_threaded(context,this,desc,cb,threads_)) + return false; + } + } + else // If quality is set otherwise, then we use the accelerated renderer + { + #if USE_PIXELRENDERING_LIMIT + if(desc.get_w()*desc.get_h() > PIXEL_RENDERING_LIMIT) + { + synfig::info("Render BROKEN UP! (%d pixels)", desc.get_w()*desc.get_h()); + + Surface surface; + int totalheight = desc.get_h(); + int rowheight = PIXEL_RENDERING_LIMIT/desc.get_w(); + if (!rowheight) rowheight = 1; // TODO: render partial lines to stay within the limit? + int rows = desc.get_h()/rowheight; + int lastrowheight = desc.get_h() - rows*rowheight; + + rows++; + + synfig::info("\t blockh=%d,remh=%d,totrows=%d", rowheight,lastrowheight,rows); + + // loop through all the full rows + if(!start_frame()) + { + throw(string("add_frame(): target panic on start_frame()")); + return false; + } + + for(int i=0; i < rows; ++i) + { + RendDesc blockrd = desc; + + //render the strip at the normal size unless it's the last one... + if(i == rows-1) + { + if(!lastrowheight) break; + blockrd.set_subwindow(0,i*rowheight,desc.get_w(),lastrowheight); + } + else + { + blockrd.set_subwindow(0,i*rowheight,desc.get_w(),rowheight); + } + + SuperCallback sc(cb, i*rowheight, (i+1)*rowheight, totalheight); + + if(!context.accelerated_render(&surface,quality,blockrd,&sc)) + { + if(cb)cb->error(_("Accelerated Renderer Failure")); + return false; + }else + { + int y; + int rowspan=sizeof(Color)*surface.get_w(); + Surface::pen pen = surface.begin(); + + int yoff = i*rowheight; + + for(y = 0; y < blockrd.get_h(); y++, pen.inc_y()) + { + Color *colordata= start_scanline(y + yoff); + if(!colordata) + { + throw(string("add_frame(): call to start_scanline(y) returned NULL")); + return false; + } + + if(get_remove_alpha()) + { + for(int i = 0; i < surface.get_w(); i++) + colordata[i] = Color::blend(surface[y][i],desc.get_bg_color(),1.0f); + } + else + memcpy(colordata,surface[y],rowspan); + + if(!end_scanline()) + { + throw(string("add_frame(): target panic on end_scanline()")); + return false; + } + } + } + + //I'm done with this part + sc.amount_complete(100,100); + } + + end_frame(); + + }else + { + #endif + Surface surface; + + if(!context.accelerated_render(&surface,quality,desc,cb)) + { + if(cb)cb->error(_("Accelerated Renderer Failure")); + return false; + } + else + { + // Put the surface we renderer + // onto the target. + if(!add_frame(&surface)) + { + if(cb)cb->error(_("Unable to put surface on target")); + return false; + } + } + #if USE_PIXELRENDERING_LIMIT + } + #endif + } + } + + } + catch(String str) + { + if(cb)cb->error(_("Caught string :")+str); + return false; + } + catch(std::bad_alloc) + { + if(cb)cb->error(_("Ran out of memory (Probably a bug)")); + return false; + } + catch(...) + { + if(cb)cb->error(_("Caught unknown error, rethrowing...")); + throw; + } + return true; +} + +bool +Target_Scanline::add_frame(const Surface *surface) +{ + assert(surface); + + + int y; + int rowspan=sizeof(Color)*surface->get_w(); + Surface::const_pen pen=surface->begin(); + + if(!start_frame()) + { + throw(string("add_frame(): target panic on start_frame()")); + return false; + } + + for(y=0;yget_h();y++,pen.inc_y()) + { + Color *colordata= start_scanline(y); + if(!colordata) + { + throw(string("add_frame(): call to start_scanline(y) returned NULL")); + return false; + } + + if(get_remove_alpha()) + { + for(int i=0;iget_w();i++) + colordata[i]=Color::blend((*surface)[y][i],desc.get_bg_color(),1.0f); + } + else + memcpy(colordata,(*surface)[y],rowspan); + + if(!end_scanline()) + { + throw(string("add_frame(): target panic on end_scanline()")); + return false; + } + } + + end_frame(); + + return true; +} diff --git a/synfig-core/tags/stable/src/synfig/target_scanline.h b/synfig-core/tags/stable/src/synfig/target_scanline.h new file mode 100644 index 0000000..eda699b --- /dev/null +++ b/synfig-core/tags/stable/src/synfig/target_scanline.h @@ -0,0 +1,100 @@ +/* === S Y N F I G ========================================================= */ +/*! \file target_scanline.h +** \brief Template Header +** +** $Id$ +** +** \legal +** Copyright (c) 2002-2005 Robert B. Quattlebaum Jr., Adrian Bentley +** +** This package is free software; you can redistribute it and/or +** modify it under the terms of the GNU General Public License as +** published by the Free Software Foundation; either version 2 of +** the License, or (at your option) any later version. +** +** This package is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +** General Public License for more details. +** \endlegal +*/ +/* ========================================================================= */ + +/* === S T A R T =========================================================== */ + +#ifndef __SYNFIG_TARGET_SCANLINE_H +#define __SYNFIG_TARGET_SCANLINE_H + +/* === H E A D E R S ======================================================= */ + +#include "target.h" + +/* === M A C R O S ========================================================= */ + +/* === T Y P E D E F S ===================================================== */ + +/* === C L A S S E S & S T R U C T S ======================================= */ + +namespace synfig { + +/*! \class Target_Scanline +** \brief Render-target +** \todo writeme +*/ +class Target_Scanline : public Target +{ + int threads_; + int curr_frame_; + +public: + typedef etl::handle Handle; + typedef etl::loose_handle LooseHandle; + typedef etl::handle ConstHandle; + + Target_Scanline(); + + //! Renders the canvas to the target + virtual bool render(ProgressCallback *cb=NULL); + + //! Marks the start of a frame + /*! \return \c true on success, \c false upon an error. + ** \see end_frame(), start_scanline() + */ + virtual bool start_frame(ProgressCallback *cb=NULL)=0; + + virtual int next_frame(Time& time); + + //! Marks the end of a frame + /*! \see start_frame() */ + virtual void end_frame()=0; + + //! Marks the start of a scanline + /*! \param scanline Which scanline is going to be rendered. + ** \return The address where the target wants the scanline + ** to be written. + ** \warning Must be called after start_frame() + ** \see end_scanline(), start_frame() + */ + virtual Color * start_scanline(int scanline)=0; + + //! Marks the end of a scanline + /*! Takes the data that was put at the address returned to by start_scanline() + ** and does whatever it is supose to do with it. + ** \return \c true on success, \c false on failure. + ** \see start_scanline() + */ + virtual bool end_scanline()=0; + + void set_threads(int x) { threads_=x; } + + int get_threads()const { return threads_; } + + bool add_frame(const synfig::Surface *surface); +private: +}; // END of class Target_Scanline + +}; // END of namespace synfig + +/* === E N D =============================================================== */ + +#endif diff --git a/synfig-core/tags/stable/src/synfig/target_tile.cpp b/synfig-core/tags/stable/src/synfig/target_tile.cpp new file mode 100644 index 0000000..803dbd2 --- /dev/null +++ b/synfig-core/tags/stable/src/synfig/target_tile.cpp @@ -0,0 +1,432 @@ +/* === S Y N F I G ========================================================= */ +/*! \file target_tile.cpp +** \brief Template File +** +** $Id$ +** +** \legal +** Copyright (c) 2002-2005 Robert B. Quattlebaum Jr., Adrian Bentley +** +** This package is free software; you can redistribute it and/or +** modify it under the terms of the GNU General Public License as +** published by the Free Software Foundation; either version 2 of +** the License, or (at your option) any later version. +** +** This package is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +** General Public License for more details. +** \endlegal +*/ +/* ========================================================================= */ + +/* === H E A D E R S ======================================================= */ + +#ifdef USING_PCH +# include "pch.h" +#else +#ifdef HAVE_CONFIG_H +# include +#endif + +#include "target_tile.h" +#include "string.h" +#include "surface.h" +#include "render.h" +#include "canvas.h" +#include "context.h" +#include "general.h" +#include + +#endif + +/* === U S I N G =========================================================== */ + +using namespace std; +using namespace etl; +using namespace synfig; + +/* === M A C R O S ========================================================= */ +const unsigned int DEF_TILE_WIDTH = 64; +const unsigned int DEF_TILE_HEIGHT= 64; + +#define SYNFIG_OPTIMIZE_LAYER_TREE 1 +#ifdef _DEBUG +#define SYNFIG_DISPLAY_EFFICIENCY 1 +#endif + +/* === G L O B A L S ======================================================= */ + +/* === P R O C E D U R E S ================================================= */ + +/* === M E T H O D S ======================================================= */ + +Target_Tile::Target_Tile(): + threads_(2), + tile_w_(DEF_TILE_WIDTH), + tile_h_(DEF_TILE_HEIGHT), + curr_tile_(0), + clipping_(true) +{ + curr_frame_=0; +} + +int +Target_Tile::next_frame(Time& time) +{ + int + total_frames(1), + frame_start(0), + frame_end(0); + Time + time_start(0), + time_end(0); + + // If the description's end frame is equal to + // the start frame, then it is assumed that we + // are rendering only one frame. Correct it. + if(desc.get_frame_end()==desc.get_frame_start()) + desc.set_frame_end(desc.get_frame_start()+1); + + frame_start=desc.get_frame_start(); + frame_end=desc.get_frame_end(); + time_start=desc.get_time_start(); + time_end=desc.get_time_end(); + + // Calculate the number of frames + total_frames=frame_end-frame_start; + if(total_frames<=0)total_frames=1; + + //RendDesc rend_desc=desc; + //rend_desc.set_gamma(1); + +// int total_tiles(total_tiles()); + time=(time_end-time_start)*curr_frame_/total_frames+time_start; + curr_frame_++; + +/* synfig::info("curr_frame_: %d",curr_frame_); + synfig::info("total_frames: %d",total_frames); + synfig::info("time_end: %s",time_end.get_string().c_str()); + synfig::info("time_start: %s",time_start.get_string().c_str()); +*/ +// synfig::info("time: %s",time.get_string().c_str()); + + return total_frames- curr_frame_+1; +} + +int +Target_Tile::next_tile(int& x, int& y) +{ + // Width of the image(in tiles) + int tw(rend_desc().get_w()/tile_w_); + int th(rend_desc().get_h()/tile_h_); + + // Add the last tiles (which will be clipped) + if(rend_desc().get_w()%tile_w_!=0)tw++; + if(rend_desc().get_h()%tile_h_!=0)th++; + + x=(curr_tile_%tw)*tile_h_; + y=(curr_tile_/tw)*tile_w_; + + curr_tile_++; + return (tw*th)-curr_tile_+1; +} + +bool +synfig::Target_Tile::render_frame_(Context context,ProgressCallback *cb) +{ + if(tile_w_<=0||tile_h_<=0) + { + if(cb)cb->error(_("Bad Tile Size")); + return false; + } + const RendDesc &rend_desc(desc); +#define total_tiles total_tiles() + + etl::clock total_time; + etl::clock::value_type work_time(0); + etl::clock::value_type find_tile_time(0); + etl::clock::value_type add_tile_time(0); + total_time.reset(); + + // If the quality is set to zero, then we + // use the parametric scanline-renderer. + if(get_quality()==0) + { + Surface surface; + + RendDesc tile_desc; + int x,y,w,h; + int i; + etl::clock tile_timer; + tile_timer.reset(); + while((i=next_tile(x,y))) + { + find_tile_time+=tile_timer(); + SuperCallback super(cb,(total_tiles-i+1)*1000,(total_tiles-i+2)*1000,total_tiles*1000); + if(!super.amount_complete(0,1000)) + return false; + //if(cb && !cb->amount_complete(total_tiles-i,total_tiles)) + // return false; + + // Perform clipping on the tile + if(clipping_) + { + w=x+tile_w_error(_("Parametric Renderer Failure")); + return false; + } + else + { + if(!surface) + { + if(cb)cb->error(_("Bad surface")); + return false; + } + if(get_remove_alpha()) + for(int i=0;ierror(_("add_tile():Unable to put surface on target")); + return false; + } + } + tile_timer.reset(); + } + } + else // If quality is set otherwise, then we use the accelerated renderer + { + Surface surface; + + RendDesc tile_desc; + int x,y,w,h; + int i; + etl::clock tile_timer; + tile_timer.reset(); + while((i=next_tile(x,y))) + { + find_tile_time+=tile_timer(); + SuperCallback super(cb,(total_tiles-i)*1000,(total_tiles-i+1)*1000,total_tiles*1000); + if(!super.amount_complete(0,1000)) + return false; +// if(cb && !cb->amount_complete(total_tiles-i,total_tiles)) +// return false; + // Perform clipping on the tile + if(clipping_) + { + w=x+tile_w_error(_("Accelerated Renderer Failure")); + return false; + } + else + { + work_time+=timer2(); + if(!surface) + { + if(cb)cb->error(_("Bad surface")); + return false; + } + if(get_remove_alpha()) + for(int i=0;ierror(_("add_tile():Unable to put surface on target")); + return false; + } + add_tile_time+=timer(); + } + tile_timer.reset(); + } + } + if(cb && !cb->amount_complete(total_tiles,total_tiles)) + return false; + +#if SYNFIG_DISPLAY_EFFICIENCY==1 + synfig::info(">>>>>> Render Time: %fsec, Find Tile Time: %fsec, Add Tile Time: %fsec, Total Time: %fsec",work_time,find_tile_time,add_tile_time,total_time()); + synfig::info(">>>>>> FRAME EFFICIENCY: %f%%",(100.0f*work_time/total_time())); +#endif +#undef total_tiles + return true; +} + +bool +synfig::Target_Tile::render(ProgressCallback *cb) +{ + SuperCallback super_cb; + int + i=0, + total_frames, + frame_start, + frame_end; + Time + t=0, + time_start, + time_end; + + assert(canvas); + curr_frame_=0; + init(); + if( !init() ){ + if(cb) cb->error(_("Target initialisation failure")); + return false; + } + + + // If the description's end frame is equal to + // the start frame, then it is assumed that we + // are rendering only one frame. Correct it. + if(desc.get_frame_end()==desc.get_frame_start()) + desc.set_frame_end(desc.get_frame_start()+1); + + frame_start=desc.get_frame_start(); + frame_end=desc.get_frame_end(); + time_start=desc.get_time_start(); + time_end=desc.get_time_end(); + + // Calculate the number of frames + total_frames=frame_end-frame_start; + + + + try { + // Grab the time + i=next_frame(t); + + //synfig::info("1time_set_to %s",t.get_string().c_str()); + + if(i>=1) + { + do + { + curr_tile_=0; + + // If we have a callback, and it returns + // false, go ahead and bail. (maybe a use cancel) + if(cb && !cb->amount_complete(total_frames-(i-1),total_frames)) + return false; + + if(!start_frame(cb)) + return false; + + // Set the time that we wish to render + //if(!get_avoid_time_sync() || canvas->get_time()!=t) + canvas->set_time(t); + + Context context; + + #ifdef SYNFIG_OPTIMIZE_LAYER_TREE + Canvas::Handle op_canvas(Canvas::create()); + optimize_layers(canvas->get_context(), op_canvas); + context=op_canvas->get_context(); + #else + context=canvas->get_context(); + #endif + +/* + #ifdef SYNFIG_OPTIMIZE_LAYER_TREE + Context context; + Canvas::Handle op_canvas(Canvas::create()); + // Set the time that we wish to render + canvas->set_time(t); + optimize_layers(canvas->get_context(), op_canvas); + context=op_canvas->get_context(); + #else + Context context; + // Set the time that we wish to render + canvas->set_time(t); + context=canvas->get_context(); + #endif +*/ + + if(!render_frame_(context,0)) + return false; + end_frame(); + }while((i=next_frame(t))); + //synfig::info("tilerenderer: i=%d, t=%s",i,t.get_string().c_str()); + } + else + { + curr_tile_=0; + + if(!start_frame(cb)) + return false; + + // Set the time that we wish to render +// if(!get_avoid_time_sync() || canvas->get_time()!=t) + canvas->set_time(t); + + //synfig::info("2time_set_to %s",t.get_string().c_str()); + + Context context; + + #ifdef SYNFIG_OPTIMIZE_LAYER_TREE + Canvas::Handle op_canvas(Canvas::create()); + optimize_layers(canvas->get_context(), op_canvas); + context=op_canvas->get_context(); + #else + context=canvas->get_context(); + #endif + + if(!render_frame_(context, cb)) + return false; + end_frame(); + } + + } + catch(String str) + { + if(cb)cb->error(_("Caught string :")+str); + return false; + } + catch(std::bad_alloc) + { + if(cb)cb->error(_("Ran out of memory (Probably a bug)")); + return false; + } + catch(...) + { + if(cb)cb->error(_("Caught unknown error, rethrowing...")); + throw; + } + return true; +} diff --git a/synfig-core/tags/stable/src/synfig/target_tile.h b/synfig-core/tags/stable/src/synfig/target_tile.h new file mode 100644 index 0000000..da59bbc --- /dev/null +++ b/synfig-core/tags/stable/src/synfig/target_tile.h @@ -0,0 +1,121 @@ +/* === S Y N F I G ========================================================= */ +/*! \file target_tile.h +** \brief Template Header +** +** $Id$ +** +** \legal +** Copyright (c) 2002-2005 Robert B. Quattlebaum Jr., Adrian Bentley +** +** This package is free software; you can redistribute it and/or +** modify it under the terms of the GNU General Public License as +** published by the Free Software Foundation; either version 2 of +** the License, or (at your option) any later version. +** +** This package is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +** General Public License for more details. +** \endlegal +*/ +/* ========================================================================= */ + +/* === S T A R T =========================================================== */ + +#ifndef __SYNFIG_TARGET_TILE_H +#define __SYNFIG_TARGET_TILE_H + +/* === H E A D E R S ======================================================= */ + +#include "target.h" + +/* === M A C R O S ========================================================= */ + +/* === T Y P E D E F S ===================================================== */ + +/* === C L A S S E S & S T R U C T S ======================================= */ + +namespace synfig { + +/*! \class Target_Tile +** \brief Render-target +** \todo writeme +*/ +class Target_Tile : public Target +{ + int threads_; + int tile_w_; + int tile_h_; + int curr_tile_; + int curr_frame_; + bool clipping_; +public: + typedef etl::handle Handle; + typedef etl::loose_handle LooseHandle; + typedef etl::handle ConstHandle; + + Target_Tile(); + + //! Renders the canvas to the target + virtual bool render(ProgressCallback *cb=NULL); + + //! Determines which tile needs to be rendered next. + /*! Most cases will not have to redefine this function. + ** The default should be adequate in nearly all situations. + ** \returns The number of tiles left to go plus one. + ** This means that whenever this function returns zero, + ** there are no more tiles to render and that any value + ** in \a x or \a y should be disregarded. */ + virtual int next_tile(int& x, int& y); + + virtual int next_frame(Time& time); + + //! Adds the tile at \a x , \a y contained in \a surface + virtual bool add_tile(const synfig::Surface &surface, int x, int y)=0; + + virtual int total_tiles()const + { + // Width of the image(in tiles) + const int tw(rend_desc().get_w()/tile_w_+(rend_desc().get_w()%tile_w_?1:0)); + const int th(rend_desc().get_h()/tile_h_+(rend_desc().get_h()%tile_h_?1:0)); + + return tw*th; + } + + //! Marks the start of a frame + /*! \return \c true on success, \c false upon an error. + ** \see end_frame(), start_scanline() + */ + virtual bool start_frame(ProgressCallback *cb=NULL)=0; + + //! Marks the end of a frame + /*! \see start_frame() */ + virtual void end_frame()=0; + + void set_threads(int x) { threads_=x; } + + int get_threads()const { return threads_; } + + void set_tile_w(int w) { tile_w_=w; } + + int get_tile_w()const { return tile_w_; } + + void set_tile_h(int h) { tile_h_=h; } + + int get_tile_h()const { return tile_h_; } + + bool get_clipping()const { return clipping_; } + + void set_clipping(bool x) { clipping_=x; } + +private: + + bool render_frame_(Context context,ProgressCallback *cb=0); + +}; // END of class Target_Tile + +}; // END of namespace synfig + +/* === E N D =============================================================== */ + +#endif diff --git a/synfig-core/tags/stable/src/synfig/time.cpp b/synfig-core/tags/stable/src/synfig/time.cpp new file mode 100644 index 0000000..eb2eef7 --- /dev/null +++ b/synfig-core/tags/stable/src/synfig/time.cpp @@ -0,0 +1,277 @@ +/* === S Y N F I G ========================================================= */ +/*! \file time.cpp +** \brief Template File +** +** $Id$ +** +** \legal +** Copyright (c) 2002-2005 Robert B. Quattlebaum Jr., Adrian Bentley +** +** This package is free software; you can redistribute it and/or +** modify it under the terms of the GNU General Public License as +** published by the Free Software Foundation; either version 2 of +** the License, or (at your option) any later version. +** +** This package is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +** General Public License for more details. +** \endlegal +*/ +/* ========================================================================= */ + +/* === H E A D E R S ======================================================= */ + +#ifdef USING_PCH +# include "pch.h" +#else +#ifdef HAVE_CONFIG_H +# include +#endif + +#include "time.h" +#include +#include +#include "general.h" +#include +#include +#include +#include +#include + + +#ifdef WIN32 +#include +#ifndef isnan +extern "C" { int _isnan(double x); } +#define isnan _isnan +#endif +#endif + +// For some reason isnan() isn't working on macosx any more. +// This is a quick fix. +#if defined(__APPLE__) && !defined(SYNFIG_ISNAN_FIX) +#ifdef isnan +#undef isnan +#endif +inline bool isnan(double x) { return x != x; } +inline bool isnan(float x) { return x != x; } +#define SYNFIG_ISNAN_FIX 1 +#endif + + +#endif + +/* === U S I N G =========================================================== */ + +using namespace std; +using namespace etl; +using namespace synfig; + +#define tolower ::tolower + +/* === M A C R O S ========================================================= */ + +/* === G L O B A L S ======================================================= */ + +/* === M E T H O D S ======================================================= */ + +Time::Time(const String &str_, float fps): + value_(0) +{ + String str(str_); + std::transform(str.begin(),str.end(),str.begin(),&tolower); + + // Start/Begin Of Time + if(str=="sot" || str=="bot") + { + operator=(begin()); + return; + } + // End Of Time + if(str=="eot") + { + operator=(end()); + return; + } + + + unsigned int pos=0; + int read; + float amount; + + // Now try to read it in the letter-abreviated format + while(pos=str.size() || read==0) + { + // Throw up a warning if there are no units + // and the amount isn't zero. There is no need + // to warn about units if the value is zero + // it is the only case where units are irrelevant. + if(amount!=0) + synfig::warning("Time(): No unit provided in time code, assuming SECONDS (\"%s\")",str.c_str()); + value_+=amount; + return; + } + switch(str[pos]) + { + case 'h': + case 'H': + value_+=amount*3600; + break; + case 'm': + case 'M': + value_+=amount*60; + break; + case 's': + case 'S': + value_+=amount; + break; + case 'f': + case 'F': + if(fps) + value_+=amount/fps; + else + synfig::warning("Time(): Individual frames referenced, but frame rate is unknown"); + break; + case ':': + // try to read it in as a traditional time format + { + int hour,minute,second; + float frame; + if(fps && sscanf(str.c_str(),"%d:%d:%d.%f",&hour,&minute,&second,&frame)==4) + { + value_=frame/fps+(hour*3600+minute*60+second); + return; + } + + if(sscanf(str.c_str(),"%d:%d:%d",&hour,&minute,&second)==3) + { + value_=hour*3600+minute*60+second; + return; + } + } + synfig::warning("Time(): Bad time format"); + break; + + default: + value_+=amount; + synfig::warning("Time(): Unexpected character '%c' when parsing time string \"%s\"",str[pos],str.c_str()); + break; + } + pos++; + amount=0; + } +} + +String +Time::get_string(float fps, Time::Format format)const +{ + Time time(*this); + + if(time<=begin()) + return "SOT"; // Start Of Time + if(time>=end()) + return "EOT"; // End Of Time + + if(fps<0)fps=0; + + if(ceil(time.value_)-time.value_=epsilon_())) + ret+=strprintf("%0.3ff",frame); + else + ret+=strprintf("%0.0ff",frame); + } + } + else + { + float second; + second=time; + if(format<=FORMAT_FULL || second || !started) + { + if(abs(second-floor(second))>=epsilon_()) + ret+=strprintf("%0.8fs",second); + else + ret+=strprintf("%0.0fs",second); + } + } + + return ret; +} + +Time +Time::round(float fps)const +{ + assert(fps>0); + + value_type time(*this); + + time*=fps; + + if(abs(time-floor(time))<0.5) + return floor(time)/fps; + else + return ceil(time)/fps; +} + +//! \writeme +bool +Time::is_valid()const +{ + return !isnan(value_); +} diff --git a/synfig-core/tags/stable/src/synfig/time.h b/synfig-core/tags/stable/src/synfig/time.h new file mode 100644 index 0000000..5ea2a89 --- /dev/null +++ b/synfig-core/tags/stable/src/synfig/time.h @@ -0,0 +1,165 @@ +/* === S Y N F I G ========================================================= */ +/*! \file time.h +** \brief Template Header +** +** $Id$ +** +** \legal +** Copyright (c) 2002-2005 Robert B. Quattlebaum Jr., Adrian Bentley +** +** This package is free software; you can redistribute it and/or +** modify it under the terms of the GNU General Public License as +** published by the Free Software Foundation; either version 2 of +** the License, or (at your option) any later version. +** +** This package is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +** General Public License for more details. +** \endlegal +*/ +/* ========================================================================= */ + +/* === S T A R T =========================================================== */ + +#ifndef __SYNFIG_TIME_H +#define __SYNFIG_TIME_H + +/* === H E A D E R S ======================================================= */ + +#include "string_decl.h" + +/* === M A C R O S ========================================================= */ + +/* === T Y P E D E F S ===================================================== */ + +/* === C L A S S E S & S T R U C T S ======================================= */ + +namespace synfig { + +/*! \class Time +** \todo writeme +** \see TimeFormat, time_to_string(), string_to_time() +*/ +class Time +{ +public: + typedef double value_type; + + /*! \enum Format + ** \todo writeme + ** \see Time, get_string() */ + enum Format + { + FORMAT_NORMAL=0, //!< Represents the default method of printing the time + FORMAT_NOSPACES=(1<<0), //!< Remove any whitespace + FORMAT_FULL=(1<<1), //!< Do not remove units that have "zero" value + FORMAT_VIDEO=(1<<2), //!< Use the HH:MM:SS.ff format + + FORMAT_END=(1<<4) //!< \internal Not used + }; // END of enum Format + +private: + value_type value_; + + static const value_type epsilon_() { return static_cast(0.0005); } + +public: + Time() { } + + Time(const value_type &x):value_(x) { } + + Time(int x):value_(x) { } + + Time(int hour, int minute, float second):value_(static_cast(second+hour*3600+minute*60)) { } + + //! Constructs Time from the given string. + /*! \note If the string references frames, then the + ** frame rate (\a fps) should be provided from the + ** correct source. (Which is most likely the RendDesc + ** of the current Canvas) + ** The frame count will be ignored if the + ** FPS is not given. */ + Time(const String &string, float fps=0); + + //! Marks the exclusive negative boundary of time + static const Time begin() { return static_cast(-32767.0f*512.0f); } + + //! Marks the exclusive positive boundary of time + static const Time end() { return static_cast(32767.0f*512.0f); } + + //! Marks zero time + static const Time zero() { return static_cast(0); } + + //! The amount of allowable error in calculations + static const Time epsilon() { return static_cast(epsilon_()); } + + //! Returns a string describing the current time value + /*! \see Format */ + String get_string(float fps=0, Time::Format format=FORMAT_NORMAL)const; + + //! \writeme + bool is_valid()const; + + //! Rounds time to the nearest frame for the given frame rate, \a fps + Time round(float fps)const; + + bool is_equal(const Time& rhs)const { return (value_>rhs.value_)?value_-rhs.value_<=epsilon_():rhs.value_-value_<=epsilon_(); } + bool is_less_than(const Time& rhs)const { return rhs.value_-value_ > epsilon_(); } + bool is_more_than(const Time& rhs)const { return value_-rhs.value_ > epsilon_(); } + + operator double()const { return value_; } + + template bool operator<(const U& rhs)const { return value_ bool operator>(const U& rhs)const { return value_>rhs; } + template bool operator<=(const U& rhs)const { return value_<=rhs; } + template bool operator>=(const U& rhs)const { return value_>=rhs; } + template bool operator==(const U& rhs)const { return value_==rhs; } + template bool operator!=(const U& rhs)const { return value_!=rhs; } + +#if 0 + bool operator<(const Time& rhs)const { return value_(const Time& rhs)const { return value_>rhs.value_; } + bool operator<=(const Time& rhs)const { return value_<=rhs.value_; } + bool operator>=(const Time& rhs)const { return value_>=rhs.value_; } + bool operator==(const Time& rhs)const { return value_==rhs.value_; } + bool operator!=(const Time& rhs)const { return value_!=rhs.value_; } +#else + bool operator<(const Time& rhs)const { return is_less_than(rhs); } + bool operator>(const Time& rhs)const { return is_more_than(rhs); } + bool operator<=(const Time& rhs)const { return is_less_than(rhs)||is_equal(rhs); } + bool operator>=(const Time& rhs)const { return is_more_than(rhs)||is_equal(rhs); } + bool operator==(const Time& rhs)const { return is_equal(rhs); } + bool operator!=(const Time& rhs)const { return !is_equal(rhs); } +#endif + + template const Time& operator+=(const U &rhs) { value_+=static_cast(rhs); return *this; } + template const Time& operator-=(const U &rhs) { value_-=static_cast(rhs); return *this; } + template const Time& operator*=(const U &rhs) { value_*=static_cast(rhs); return *this; } + template const Time& operator/=(const U &rhs) { value_/=static_cast(rhs); return *this; } + + template Time operator+(const U &rhs)const { return value_+static_cast(rhs); } + template Time operator-(const U &rhs)const { return value_-static_cast(rhs); } + template Time operator*(const U &rhs)const { return value_*static_cast(rhs); } + template Time operator/(const U &rhs)const { return value_/static_cast(rhs); } + + Time operator-()const { return -value_; } +}; // END of class Time + +//! This operator allows the combining of Time::Format flags using the '|' operator +/*! \see Time::Format, Time::get_string() */ +inline Time::Format operator|(Time::Format lhs, Time::Format rhs) +{ return static_cast((int)lhs|(int)rhs); } + +//! This operator is for checking Time::Format flags. +/*! Don't think of it as "less then or equal to", but think of it +** like an arrow. Is \a rhs inside of \a lhs ? +** \see Time::Format, Time::get_string() */ +inline bool operator<=(Time::Format lhs, Time::Format rhs) +{ return (static_cast(lhs) & static_cast(rhs))==static_cast(rhs); } + +}; // END of namespace synfig + +/* === E N D =============================================================== */ + +#endif diff --git a/synfig-core/tags/stable/src/synfig/timepointcollect.cpp b/synfig-core/tags/stable/src/synfig/timepointcollect.cpp new file mode 100644 index 0000000..3a6a74a --- /dev/null +++ b/synfig-core/tags/stable/src/synfig/timepointcollect.cpp @@ -0,0 +1,146 @@ +/* === S Y N F I G ========================================================= */ +/*! \file timepointcollect.cpp +** \brief Template File +** +** $Id$ +** +** \legal +** Copyright (c) 2002-2005 Robert B. Quattlebaum Jr., Adrian Bentley +** +** This package is free software; you can redistribute it and/or +** modify it under the terms of the GNU General Public License as +** published by the Free Software Foundation; either version 2 of +** the License, or (at your option) any later version. +** +** This package is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +** General Public License for more details. +** \endlegal +*/ +/* ========================================================================= */ + +/* === H E A D E R S ======================================================= */ + +#ifdef USING_PCH +# include "pch.h" +#else +#ifdef HAVE_CONFIG_H +# include +#endif + +#include "timepointcollect.h" +#include "valuenode_animated.h" +#include "layer.h" +#include "canvas.h" +#include "value.h" + +#endif + +/* === U S I N G =========================================================== */ + +using namespace std; +using namespace etl; +using namespace synfig; + +/* === M A C R O S ========================================================= */ + +/* === G L O B A L S ======================================================= */ + +/* === P R O C E D U R E S ================================================= */ + +/* === M E T H O D S ======================================================= */ + +//! \writeme +int +synfig::waypoint_collect(set >& waypoint_set,const Time& time, const etl::handle& node) +{ + const TimePointSet& timepoint_set(node->get_times()); + + // Check to see if there is anything in here at the given time + if(timepoint_set.find(time)==timepoint_set.end()) + return 0; + + // Check if we are a linkable value node + LinkableValueNode::Handle linkable_value_node; + linkable_value_node=linkable_value_node.cast_dynamic(node); + if(linkable_value_node) + { + const int link_count(linkable_value_node->link_count()); + int i,ret(0); + for(i=0;iget_link(i).get()); + } + return ret; + } + + // Check if we are a layer + Layer::Handle layer; + layer=layer.cast_dynamic(node); + if(layer) + { + const Layer::DynamicParamList& dyn_param_list(layer->dynamic_param_list()); + Layer::DynamicParamList::const_iterator iter; + int ret(0); + for(iter=dyn_param_list.begin();iter!=dyn_param_list.end();++iter) + { + ret+=waypoint_collect(waypoint_set,time,iter->second); + } + ValueBase canvas_value(layer->get_param("canvas")); + if(canvas_value.get_type()==ValueBase::TYPE_CANVAS) + { + ret+=waypoint_collect(waypoint_set,time,Canvas::Handle(canvas_value.get(Canvas::Handle()))); + } + return ret; + } + + // Check if we are a canvas + Canvas::Handle canvas; + canvas=canvas.cast_dynamic(node); + if(canvas) + { + Canvas::const_iterator iter; + int ret(0); + for(iter=canvas->begin();iter!=canvas->end();++iter) + ret+=waypoint_collect(waypoint_set,time,*iter); + return ret; + } + + // Check if we are an animated value node + ValueNode_Animated::Handle value_node_animated; + value_node_animated=value_node_animated.cast_dynamic(node); + if(value_node_animated) + { + try{ + Waypoint waypoint=*value_node_animated->find(time); + + // If it is already in the waypoint set, then + // don't bother adding it again + if(waypoint_set.find(waypoint)!=waypoint_set.end()) + { + return 0; + } + waypoint_set.insert(waypoint); + return 1; + }catch(...) + { + return 0; + } + } + + return 0; +} + +//! \writeme +int +synfig::activepoint_collect(set >& activepoint_set,const Time& time, const etl::handle& node) +{ + const TimePointSet& timepoint_set(node->get_times()); + + // Check to see if there is anything in here at the given time + if(timepoint_set.find(time)==timepoint_set.end()); + return 0; + + return 0; +} diff --git a/synfig-core/tags/stable/src/synfig/timepointcollect.h b/synfig-core/tags/stable/src/synfig/timepointcollect.h new file mode 100644 index 0000000..7f6827c --- /dev/null +++ b/synfig-core/tags/stable/src/synfig/timepointcollect.h @@ -0,0 +1,54 @@ +/* === S Y N F I G ========================================================= */ +/*! \file timepointcollect.h +** \brief Template Header +** +** $Id$ +** +** \legal +** Copyright (c) 2002-2005 Robert B. Quattlebaum Jr., Adrian Bentley +** +** This package is free software; you can redistribute it and/or +** modify it under the terms of the GNU General Public License as +** published by the Free Software Foundation; either version 2 of +** the License, or (at your option) any later version. +** +** This package is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +** General Public License for more details. +** \endlegal +*/ +/* ========================================================================= */ + +/* === S T A R T =========================================================== */ + +#ifndef __SYNFIG_TIMEPOINTCOLLECT_H +#define __SYNFIG_TIMEPOINTCOLLECT_H + +/* === H E A D E R S ======================================================= */ + +#include +#include "activepoint.h" +#include "waypoint.h" +#include "node.h" +#include "time.h" + +/* === M A C R O S ========================================================= */ + +/* === T Y P E D E F S ===================================================== */ + +/* === C L A S S E S & S T R U C T S ======================================= */ + +namespace synfig { + +//! \writeme +int waypoint_collect(std::set >& waypoint_set,const Time& time, const etl::handle& node); + +//! \writeme +int activepoint_collect(std::set >& activepoint_set,const Time& time, const etl::handle& node); + +}; // END of namespace synfig + +/* === E N D =============================================================== */ + +#endif diff --git a/synfig-core/tags/stable/src/synfig/transform.cpp b/synfig-core/tags/stable/src/synfig/transform.cpp new file mode 100644 index 0000000..2e9de68 --- /dev/null +++ b/synfig-core/tags/stable/src/synfig/transform.cpp @@ -0,0 +1,149 @@ +/* === S Y N F I G ========================================================= */ +/*! \file transform.cpp +** \brief Template File +** +** $Id$ +** +** \legal +** Copyright (c) 2002-2005 Robert B. Quattlebaum Jr., Adrian Bentley +** +** This package is free software; you can redistribute it and/or +** modify it under the terms of the GNU General Public License as +** published by the Free Software Foundation; either version 2 of +** the License, or (at your option) any later version. +** +** This package is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +** General Public License for more details. +** \endlegal +*/ +/* ========================================================================= */ + +/* === H E A D E R S ======================================================= */ + +#ifdef USING_PCH +# include "pch.h" +#else +#ifdef HAVE_CONFIG_H +# include +#endif + +#include "transform.h" +#include + +#endif + +/* === U S I N G =========================================================== */ + +using namespace std; +using namespace etl; +using namespace synfig; + +/* === M A C R O S ========================================================= */ + +/* === G L O B A L S ======================================================= */ + +/* === P R O C E D U R E S ================================================= */ + +/* === M E T H O D S ======================================================= */ + +synfig::GUID +TransformStack::get_guid()const +{ + GUID ret(0); + + for(const_iterator iter(begin());iter!=end();++iter) + ret%=(*iter)->get_guid(); + return ret; +} + +synfig::Vector +TransformStack::perform(const synfig::Vector& x)const +{ + synfig::Vector ret(x); + + for(const_reverse_iterator iter(rbegin());iter!=rend();++iter) + ret=(*iter)->perform(ret); + + return ret; +} + +synfig::Vector +TransformStack::unperform(const synfig::Vector& x)const +{ + synfig::Vector ret(x); + + for(const_iterator iter(begin());iter!=end();++iter) + ret=(*iter)->unperform(ret); + + return ret; +} + +synfig::Rect +TransformStack::perform(const synfig::Rect& x)const +{ + Point min(x.get_min()); + Point max(x.get_max()); + Rect ret(perform(min),perform(max)); + + std::swap(min[1],max[1]); + ret + .expand(perform(min)) + .expand(perform(max)) + ; + return ret; +} + +synfig::Rect +TransformStack::unperform(const synfig::Rect& x)const +{ + Point min(x.get_min()); + Point max(x.get_max()); + Rect ret(unperform(min),unperform(max)); + + std::swap(min[1],max[1]); + ret + .expand(unperform(min)) + .expand(unperform(max)) + ; + return ret; +} + +synfig::Rect +Transform::perform(const synfig::Rect& x)const +{ + if(x.area()>1000000000000.0) + return Rect::full_plane(); + + Point min(x.get_min()); + Point max(x.get_max()); + + Rect ret(perform(min),perform(max)); + + std::swap(min[1],max[1]); + ret + .expand(perform(min)) + .expand(perform(max)) + ; + return ret; +} + +synfig::Rect +Transform::unperform(const synfig::Rect& x)const +{ + if(x.area()>1000000000000.0) + return Rect::full_plane(); + + Point min(x.get_min()); + Point max(x.get_max()); + + Rect ret(unperform(min),unperform(max)); + + std::swap(min[1],max[1]); + ret + .expand(unperform(min)) + .expand(unperform(max)) + ; + return ret; +} diff --git a/synfig-core/tags/stable/src/synfig/transform.h b/synfig-core/tags/stable/src/synfig/transform.h new file mode 100644 index 0000000..fb8c5a1 --- /dev/null +++ b/synfig-core/tags/stable/src/synfig/transform.h @@ -0,0 +1,86 @@ +/* === S Y N F I G ========================================================= */ +/*! \file transform.h +** \brief Template Header +** +** $Id$ +** +** \legal +** Copyright (c) 2002-2005 Robert B. Quattlebaum Jr., Adrian Bentley +** +** This package is free software; you can redistribute it and/or +** modify it under the terms of the GNU General Public License as +** published by the Free Software Foundation; either version 2 of +** the License, or (at your option) any later version. +** +** This package is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +** General Public License for more details. +** \endlegal +*/ +/* ========================================================================= */ + +/* === S T A R T =========================================================== */ + +#ifndef __SYNFIG_TRANSFORM_H +#define __SYNFIG_TRANSFORM_H + +/* === H E A D E R S ======================================================= */ + +#include +#include "vector.h" +#include +#include "rect.h" +#include "guid.h" + +/* === M A C R O S ========================================================= */ + +/* === T Y P E D E F S ===================================================== */ + +/* === C L A S S E S & S T R U C T S ======================================= */ + +namespace synfig { + +class Transform : public etl::shared_object +{ + GUID guid_; + +public: + typedef etl::handle Handle; + +protected: + Transform(const GUID& guid=GUID(0)):guid_(guid) { } + +public: + + const GUID& get_guid()const { return guid_; } + + virtual ~Transform() { } + virtual synfig::Vector perform(const synfig::Vector& x)const=0; + virtual synfig::Vector unperform(const synfig::Vector& x)const=0; + + virtual synfig::Rect perform(const synfig::Rect& x)const; + virtual synfig::Rect unperform(const synfig::Rect& x)const; + +}; // END of class Transform + +class TransformStack : public std::list +{ +public: + GUID get_guid()const; + + synfig::Vector perform(const synfig::Vector& x)const; + synfig::Vector unperform(const synfig::Vector& x)const; + + synfig::Rect perform(const synfig::Rect& x)const; + synfig::Rect unperform(const synfig::Rect& x)const; + + void push(const Transform::Handle& x) { if(x)push_back(x); } + void pop() { pop_back(); } +}; // END of class TransformStack + +}; // END of namespace synfig + +/* === E N D =============================================================== */ + +#endif diff --git a/synfig-core/tags/stable/src/synfig/types.h b/synfig-core/tags/stable/src/synfig/types.h new file mode 100644 index 0000000..6c3b7ea --- /dev/null +++ b/synfig-core/tags/stable/src/synfig/types.h @@ -0,0 +1,47 @@ +/* === S Y N F I G ========================================================= */ +/*! \file types.h +** \brief Template Header +** +** $Id$ +** +** \legal +** Copyright (c) 2002-2005 Robert B. Quattlebaum Jr., Adrian Bentley +** +** This package is free software; you can redistribute it and/or +** modify it under the terms of the GNU General Public License as +** published by the Free Software Foundation; either version 2 of +** the License, or (at your option) any later version. +** +** This package is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +** General Public License for more details. +** \endlegal +*/ +/* ========================================================================= */ + +/* === S T A R T =========================================================== */ + +#ifndef __SYNFIG_TYPES_H +#define __SYNFIG_TYPES_H + +/* === H E A D E R S ======================================================= */ + +#include + +#ifndef SYNFIG_NO_ANGLE +#include "angle.h" +#endif + +#include "time.h" +#include "vector.h" + +/* === M A C R O S ========================================================= */ + +/* === T Y P E D E F S ===================================================== */ + +/* === C L A S S E S & S T R U C T S ======================================= */ + +/* === E N D =============================================================== */ + +#endif diff --git a/synfig-core/tags/stable/src/synfig/uniqueid.cpp b/synfig-core/tags/stable/src/synfig/uniqueid.cpp new file mode 100644 index 0000000..d89141b --- /dev/null +++ b/synfig-core/tags/stable/src/synfig/uniqueid.cpp @@ -0,0 +1,51 @@ +/* === S Y N F I G ========================================================= */ +/*! \file uniqueid.cpp +** \brief Template File +** +** $Id$ +** +** \legal +** Copyright (c) 2002-2005 Robert B. Quattlebaum Jr., Adrian Bentley +** +** This package is free software; you can redistribute it and/or +** modify it under the terms of the GNU General Public License as +** published by the Free Software Foundation; either version 2 of +** the License, or (at your option) any later version. +** +** This package is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +** General Public License for more details. +** \endlegal +*/ +/* ========================================================================= */ + +/* === H E A D E R S ======================================================= */ + +#ifdef USING_PCH +# include "pch.h" +#else +#ifdef HAVE_CONFIG_H +# include +#endif + +#include "uniqueid.h" + +#endif + +/* === U S I N G =========================================================== */ + +using namespace std; +using namespace synfig; + +/* === G L O B A L S ======================================================= */ + +static int uniqueid_pool_(0); + +/* === M E T H O D S ======================================================= */ + +int +synfig::UniqueID::next_id() +{ + return ++uniqueid_pool_; +} diff --git a/synfig-core/tags/stable/src/synfig/uniqueid.h b/synfig-core/tags/stable/src/synfig/uniqueid.h new file mode 100644 index 0000000..cab6593 --- /dev/null +++ b/synfig-core/tags/stable/src/synfig/uniqueid.h @@ -0,0 +1,91 @@ +/* === S Y N F I G ========================================================= */ +/*! \file uniqueid.h +** \brief Template Header +** +** $Id$ +** +** \legal +** Copyright (c) 2002-2005 Robert B. Quattlebaum Jr., Adrian Bentley +** +** This package is free software; you can redistribute it and/or +** modify it under the terms of the GNU General Public License as +** published by the Free Software Foundation; either version 2 of +** the License, or (at your option) any later version. +** +** This package is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +** General Public License for more details. +** \endlegal +*/ +/* ========================================================================= */ + +/* === S T A R T =========================================================== */ + +#ifndef __SYNFIG_UNIQUEID_H +#define __SYNFIG_UNIQUEID_H + +/* === H E A D E R S ======================================================= */ + +/* === M A C R O S ========================================================= */ + +/* === T Y P E D E F S ===================================================== */ + +/* === C L A S S E S & S T R U C T S ======================================= */ + +namespace synfig { + +class UniqueIDLessThan; + +/*! \class UniqueID +** \brief \todo +*/ +class UniqueID +{ + friend class UniqueIDLessThan; + + int id_; + + explicit UniqueID(int id_):id_(id_) { } + + static int next_id(); + +public: + + //! Returns the internal unique identifier for this object. + /*! The return value from this isn't really useful for + ** much other than debug output. Nonetheless, that is + ** one step above useless, so here it is. */ + const int &get_uid()const { return id_; } + + UniqueID():id_(next_id()) { } + + void make_unique() { id_=next_id(); } + + static const UniqueID nil() { return UniqueID(0); } + + operator bool()const { return static_cast(id_); } + + void mimic(const UniqueID& x) { id_=x.id_; } + + bool operator==(const UniqueID &rhs)const { return id_==rhs.id_; } + bool operator!=(const UniqueID &rhs)const { return id_!=rhs.id_; } + bool operator<(const UniqueID &rhs)const { return id_ +#endif + +#include "value.h" +#include "general.h" +#include +#include "canvas.h" +#include "gradient.h" + + + +#include "vector.h" +#include "time.h" +#include "segment.h" +#include "color.h" + +#endif + +using namespace synfig; +using namespace std; +using namespace etl; + +/* === M A C R O S ========================================================= */ + +/* === G L O B A L S ======================================================= */ + +/* === P R O C E D U R E S ================================================= */ + +/* === M E T H O D S ======================================================= */ + +ValueBase::ValueBase():type(TYPE_NIL),data(0),ref_count(0),loop_(0) +{ +} + +ValueBase::ValueBase(Type x): + type(x), + data(0), + loop_(0) +{ + + switch(type) + { + case TYPE_BOOL: + data=static_cast(new bool()); + break; + case TYPE_INTEGER: + data=static_cast(new int()); + break; + case TYPE_ANGLE: + data=static_cast(new Angle()); + break; + case TYPE_VECTOR: + data=static_cast(new Vector()); + break; + case TYPE_TIME: + data=static_cast(new Time()); + break; + case TYPE_REAL: + data=static_cast(new Real()); + break; + case TYPE_COLOR: + data=static_cast(new Color()); + break; + case TYPE_SEGMENT: + data=static_cast(new Segment()); + break; + case TYPE_BLINEPOINT: + data=static_cast(new BLinePoint()); + break; + case TYPE_LIST: + data=static_cast(new list_type()); + break; + case TYPE_STRING: + data=static_cast(new String()); + break; + case TYPE_GRADIENT: + data=static_cast(new Gradient()); + break; + case TYPE_CANVAS: + data=static_cast(new etl::handle()); + break; + default: + break; + } +} + +ValueBase::~ValueBase() +{ + clear(); +} + +const char* +ValueBase::get(const char*)const +{ + return get(String()).c_str(); +} + + + + +void +ValueBase::set(Canvas* x) +{ + clear(); + if(x && x->is_inline()) + { + _set(etl::handle(x)); + } + else + { + _set(etl::loose_handle(x)); + } + assert(get(x)==x); +} + +void +ValueBase::set(etl::loose_handle x) +{ + clear(); + if(x && x->is_inline()) + { + _set(etl::handle(x)); + } + else + { + _set(etl::loose_handle(x)); + } + assert(get(x)==x); +} + +void +ValueBase::set(etl::handle x) +{ + clear(); + if(x && x->is_inline()) + { + _set(etl::handle(x)); + } + else + { + _set(etl::loose_handle(x)); + } + assert(get(x)==x); +} + +void +ValueBase::set(const list_type &x) +{ + _set(x); +} + +void +ValueBase::set(const char* x) +{ + _set(String(x)); +} + +bool +ValueBase::is_valid()const +{ + return type>TYPE_NIL && type(data); + break; + case TYPE_INTEGER: + delete static_cast(data); + break; + case TYPE_ANGLE: + delete static_cast(data); + break; + case TYPE_VECTOR: + delete static_cast(data); + break; + case TYPE_TIME: + delete static_cast(data); + break; + case TYPE_REAL: + delete static_cast(data); + break; + case TYPE_COLOR: + delete static_cast(data); + break; + case TYPE_SEGMENT: + delete static_cast(data); + break; + case TYPE_BLINEPOINT: + delete static_cast(data); + break; + case TYPE_LIST: + delete static_cast(data); + break; + case TYPE_STRING: + delete static_cast(data); + break; + case TYPE_GRADIENT: + delete static_cast(data); + break; + + + case TYPE_CANVAS: + { + etl::handle canvas(get(etl::loose_handle())); + if(canvas && canvas->is_inline()) + { + delete static_cast*>(data); + } + else + { + delete static_cast*>(data); + } + break; + } + default: + break; + } + } + + ref_count.detach(); + data=0; + type=TYPE_NIL; +} + + +String +ValueBase::type_name(Type id) +{ + switch(id) + { + case TYPE_REAL: + return "real"; + case TYPE_TIME: + return "time"; + case TYPE_INTEGER: + return "integer"; + case TYPE_BOOL: + return "bool"; + case TYPE_ANGLE: + return "angle"; + case TYPE_VECTOR: + return "vector"; + case TYPE_COLOR: + return "color"; + case TYPE_STRING: + return "string"; + case TYPE_CANVAS: + return "canvas"; + case TYPE_LIST: + return "list"; + case TYPE_SEGMENT: + return "segment"; + case TYPE_GRADIENT: + return "gradient"; + case TYPE_BLINEPOINT: + return "bline_point"; + case TYPE_NIL: + return "nil"; + default: + break; + } + synfig::warning("Encountered unknown ValueBase with an Type of %d",id); +// assert(0); + return "UNKNOWN"; +} + +ValueBase::Type +ValueBase::ident_type(const String &str) +{ + if(str=="nil" || str=="null") + return TYPE_NIL; + else if(str=="time" || str==_("time")) + return TYPE_TIME; + else if(str=="real" || str=="float" || str==_("real")) + return TYPE_REAL; + else if(str=="integer" || str=="int" || str==_("integer")) + return TYPE_INTEGER; + else if(str=="bool" || str==_("bool")) + return TYPE_BOOL; + else if(str=="angle" || str=="degrees" || str=="radians" || str=="rotations") + return TYPE_ANGLE; + else if(str=="vector" || str=="point") + return TYPE_VECTOR; + else if(str=="color") + return TYPE_COLOR; + else if(str=="string") + return TYPE_STRING; + else if(str=="canvas") + return TYPE_CANVAS; + else if(str=="list") + return TYPE_LIST; + else if(str=="segment") + return TYPE_SEGMENT; + else if(str=="gradient") + return TYPE_GRADIENT; + else if(str=="bline_point" || str=="blinepoint") + return TYPE_BLINEPOINT; + + return TYPE_NIL; +} + +bool +ValueBase::operator==(const ValueBase& rhs)const +{ + if(get_type()!=rhs.get_type()) + return false; + if(data==rhs.data) + return true; + + switch(get_type()) + { + case TYPE_TIME: + return get(Time()).is_equal(rhs.get(Time())); + case TYPE_REAL: + return abs(get(Real())-rhs.get(Real()))<=0.00000000000001; + case TYPE_INTEGER: + return get(int())==rhs.get(int()); + case TYPE_BOOL: + return get(bool())==rhs.get(bool()); + case TYPE_ANGLE: + return get(Angle())==rhs.get(Angle()); + case TYPE_VECTOR: + return get(Vector()).is_equal_to(rhs.get(Vector())); + case TYPE_COLOR: + return get(Color())==rhs.get(Color()); + case TYPE_STRING: + return get(String())==rhs.get(String()); + case TYPE_CANVAS: + return get(Canvas::LooseHandle())==rhs.get(Canvas::LooseHandle()); + case TYPE_LIST: + return get_list()==rhs.get_list(); + case TYPE_SEGMENT: +// return get(Segment())==rhs.get(Segment()); + case TYPE_GRADIENT: +// return get(Gradient())==rhs.get(Gradient()); + case TYPE_BLINEPOINT: +// return get(BLinePoint())==rhs.get(BLinePoint()); + case TYPE_NIL: + default: + return false; + break; + } + return false; +} diff --git a/synfig-core/tags/stable/src/synfig/value.h b/synfig-core/tags/stable/src/synfig/value.h new file mode 100644 index 0000000..228eab1 --- /dev/null +++ b/synfig-core/tags/stable/src/synfig/value.h @@ -0,0 +1,461 @@ +/* === S Y N F I G ========================================================= */ +/*! \file value.h +** \brief Template Header +** +** $Id$ +** +** \legal +** Copyright (c) 2002-2005 Robert B. Quattlebaum Jr., Adrian Bentley +** +** This package is free software; you can redistribute it and/or +** modify it under the terms of the GNU General Public License as +** published by the Free Software Foundation; either version 2 of +** the License, or (at your option) any later version. +** +** This package is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +** General Public License for more details. +** \endlegal +*/ +/* ========================================================================= */ + +/* === S T A R T =========================================================== */ + +#ifndef __SYNFIG_VALUE_H +#define __SYNFIG_VALUE_H + +/* === H E A D E R S ======================================================= */ + +//#include "vector.h" +//#include "time.h" +#include "segment.h" +//#include "color.h" +#include "string.h" +#include +#include +#include +#include +#include "general.h" +//#include "gradient.h" +#include "blinepoint.h" +#include "exception.h" + +#ifdef USE_HALF_TYPE +#include +#endif + +#ifndef SYNFIG_NO_ANGLE +#include "angle.h" +#endif + +#include + +/* === M A C R O S ========================================================= */ + +/* === T Y P E D E F S ===================================================== */ + +/* === C L A S S E S & S T R U C T S ======================================= */ + +namespace synfig { + +class Canvas; +class Vector; +class Time; +class Segment; +class Gradient; +class BLinePoint; +class Color; + +/*! \class ValueBase +** \todo writeme +*/ +class ValueBase +{ + /* + -- ** -- T Y P E S ----------------------------------------------------------- + */ + +public: + + //! \writeme + enum Type + { + TYPE_NIL=0, //!< Represents an empty value + + TYPE_BOOL, + TYPE_INTEGER, + TYPE_ANGLE, //!< Angle + + // All types after this point are larger than 32 bits + + TYPE_TIME, //!< Time + TYPE_REAL, //!< Real + + // All types after this point are larger than 64 bits + + TYPE_VECTOR, //!< Vector + TYPE_COLOR, //!< Color + TYPE_SEGMENT, //!< Segment + TYPE_BLINEPOINT, //!< BLinePoint + + // All types after this point require construction/destruction + + TYPE_LIST, //!< List + TYPE_CANVAS, //!< Canvas + TYPE_STRING, //!< String + TYPE_GRADIENT, //!< Color Gradient + + TYPE_END //!< Not a valid type, used for sanity checks + }; + +private: + + typedef std::vector list_type; + + /* + -- ** -- D A T A ------------------------------------------------------------- + */ + +protected: + + Type type; + void *data; + etl::reference_counter ref_count; + bool loop_; + + /* + -- ** -- C O N S T R U C T O R S ----------------------------------- + */ + +public: + + //! \writeme + ValueBase(); + + //! \writeme + template + ValueBase(const T &x, bool loop_=false): + type(TYPE_NIL),data(0),ref_count(0),loop_(loop_) + { set(x); } + + //! \writeme + ValueBase(Type x); + + //! \writeme + ~ValueBase(); + + /* + -- ** -- O P E R A T O R S --------------------------------------------------- + */ + +public: + + //! \writeme + template ValueBase& operator=(const T& x) + { set(x); return *this; } + + //! \writeme + ValueBase& operator=(const ValueBase& x); + + //! \writeme + bool operator==(const ValueBase& rhs)const; + + //! \writeme + bool operator!=(const ValueBase& rhs)const { return !operator==(rhs); } + + //! Constant index operator for when value is of type TYPE_LIST + const ValueBase &operator[](int index)const + { assert(type==TYPE_LIST); assert(index>0); return get_list()[index]; } + + /* + -- ** -- M E M B E R F U N C T I O N S ------------------------------------- + */ + +public: + + //! \writeme + void clear(); + + //! \writeme + bool get_loop()const { return loop_; } + + //! \writeme + void set_loop(bool x) { loop_=x; } + + //! \writeme + bool empty()const; + + //! \writeme + Type get_contained_type()const; + + //! Returns true if the contained value is defined and valid. + bool is_valid()const; + + //! Returns a string containing the name of the type + String type_name()const { return type_name(type); } + + //! Returns the type of the contained value + const Type & get_type()const { return type; } + + //! Checks the type of the parameter against itself. Returns true if they are of the same type. + template bool + same_as(const T &x)const + { + const Type testtype(get_type(x)); + + if(testtype==type)return true; + if( (type==TYPE_REAL || type==TYPE_TIME) && + (testtype==TYPE_REAL || testtype==TYPE_TIME) ) + return true; + return false; + } + + + // === GET MEMBERS ======================================================== + template + const T &get(const T& x)const + { + assert(is_valid() && same_as(x)); + return *static_cast(data); + } + float get(const float &)const { return get(Real()); } + etl::loose_handle get(const etl::handle&)const + { return get(etl::loose_handle()); } + etl::loose_handle get(Canvas*)const + { return get(etl::loose_handle()); } + const char* get(const char*)const; + const list_type& get_list()const { return get(list_type()); } + // ======================================================================== + + + + // === PUT MEMBERS ======================================================== + template + void put(T* x)const + { + assert(same_as(*x)); + *x=*static_cast(data); + } + void put(float* x)const { *x=get(Real()); } + void put(char** x)const; + // ======================================================================== + + + + // === SET MEMBERS ======================================================== + template void set(const T& x) { _set(x); } + void set(const float &x) { _set(Real(x)); } + void set(const list_type &x); + void set(const char* x); + void set(Canvas*x); + void set(etl::loose_handle x); + void set(etl::handle x); + template void set(const std::vector &x) + { _set(list_type(x.begin(),x.end())); } + template void set(const std::list &x) + { _set(list_type(x.begin(),x.end())); } + // ======================================================================== + + + /* + -- ** -- S T A T I C F U N C T I O N S ------------------------------------- + */ + +public: + + //! Returns a string containing the name of the given Type + static String type_name(Type id); + + //! Returns a the corresponding Type of the described type + static Type ident_type(const String &str); + + + // === GET TYPE MEMBERS =================================================== + static const Type get_type(bool) { return TYPE_BOOL; } + static const Type get_type(int) { return TYPE_INTEGER; } + static const Type get_type(const Time&) { return TYPE_TIME; } + static const Type get_type(const Real&) { return TYPE_REAL; } + static const Type get_type(const float&) { return TYPE_REAL; } + static const Type get_type(const Vector&) { return TYPE_VECTOR; } + static const Type get_type(const Color&) { return TYPE_COLOR; } + static const Type get_type(const Segment&) { return TYPE_SEGMENT; } + static const Type get_type(const BLinePoint&) { return TYPE_BLINEPOINT; } + static const Type get_type(const String&) { return TYPE_STRING; } + static const Type get_type(const Gradient&) { return TYPE_GRADIENT; } + static const Type get_type(Canvas*) { return TYPE_CANVAS; } + static const Type get_type(const etl::handle&) + { return TYPE_CANVAS; } + static const Type get_type(const etl::loose_handle&) + { return TYPE_CANVAS; } + static const Type get_type(const list_type&) { return TYPE_LIST; } + template static const Type get_type(const std::vector &x) + { return TYPE_LIST; } + template static const Type get_type(const std::list &x) + { return TYPE_LIST; } + // ======================================================================== + + + /* + -- ** -- C A S T O P E R A T O R S ----------------------------------------- + */ + +public: + + operator const list_type&()const { return get_list(); } + //operator const Color&()const { return get(Color()); } + //operator const Real&()const { return get(Real()); } + //operator const Time&()const { return get(Time()); } + + operator const Vector&()const { return get(Vector()); } + operator const BLinePoint&()const { return get(BLinePoint()); } + //operator const int&()const { return get(int()); } + //operator const String&()const { return get(String()); } + //operator const char *()const { return get(String()).c_str(); } + operator const Segment&()const { return get(Segment()); } + + + /* + -- ** -- O T H E R ----------------------------------------------------------- + */ + +public: + +#ifdef USE_HALF_TYPE + half get(const half &)const { return get(Real()); } + void put(half*x)const { *x=get(Real()); } + void set(const half &x) { _set(Real(x)); } + static const Type get_type(const half&) { return TYPE_REAL; } + operator half()const { return get(Real()); } +#endif + +#ifndef SYNFIG_NO_ANGLE + operator const Angle&()const { return get(Angle()); } + static const Type get_type(const Angle&) { return TYPE_ANGLE; } +#endif + + template + operator std::list()const + { + assert(type==TYPE_LIST); + std::list ret(get_list().begin(),get_list().end()); + return ret; + } + template + operator std::vector()const + { + assert(type==TYPE_LIST); + std::vector ret(get_list().begin(),get_list().end()); + return ret; + } + + +private: + + template void + _set(const T& x) + { + const Type newtype(get_type(x)); + + assert(newtype!=TYPE_NIL); + + if(newtype==type) + { + if(ref_count.unique()) + { + *reinterpret_cast(data)=x; + return; + } + } + + clear(); + + type=newtype; + ref_count.reset(); + data=new T(x); + } +}; // END of class ValueBase + + +/*! \class Value +** \todo writeme +*/ +template +class Value : public ValueBase +{ +public: + Value(const T &x):ValueBase(x) + { + } + + Value(const ValueBase &x):ValueBase(x) + { + if(!x.same_as(T())) + throw Exception::BadType("Value(ValueBase): Type Mismatch"); + } + + Value() + { + } + + T get()const { return ValueBase::get(T()); } + + void put(T* x)const { ValueBase::put(x); } + + void set(const T& x) { ValueBase::operator=(x); } + + Value& operator=(const T& x) { set(x); return *this; } + + Value& operator=(const Value& x) { return ValueBase::operator=(x); } + + Value& operator=(const ValueBase& x) + { + if(!x.same_as(T())) + throw Exception::BadType("Value(ValueBase): Type Mismatch"); + return ValueBase::operator=(x); + } + +}; // END of class Value + +/* +template <> +class Value< std::list > : public ValueBase +{ +public: + Value(const T &x):ValueBase(x) + { + } + Value(const ValueBase &x):ValueBase(x) + { + if(!x.same_as(T())) + throw Exception::BadType("Value(ValueBase): Type Mismatch"); + } + Value() + { + } + + T get()const { return ValueBase::get(T()); } + + void put(T* x)const { ValueBase::put(x); } + + void set(const T& x) { ValueBase::operator=(x); } + + Value& operator=(const T& x) { set(x); return *this; } + + Value& operator=(const Value& x) { return ValueBase::operator=(x); } + + Value& operator=(const ValueBase& x) + { + if(!x.same_as(T())) + throw Exception::BadType("Value(ValueBase): Type Mismatch"); + return ValueBase::operator=(x); + } + +}; // END of class Value +*/ + +}; // END of namespace synfig + +/* === E N D =============================================================== */ + +#endif diff --git a/synfig-core/tags/stable/src/synfig/valuenode.cpp b/synfig-core/tags/stable/src/synfig/valuenode.cpp new file mode 100644 index 0000000..34843d0 --- /dev/null +++ b/synfig-core/tags/stable/src/synfig/valuenode.cpp @@ -0,0 +1,502 @@ +/* === S Y N F I G ========================================================= */ +/*! \file valuenode.cpp +** \brief Template File +** +** $Id$ +** +** \legal +** Copyright (c) 2002-2005 Robert B. Quattlebaum Jr., Adrian Bentley +** +** This package is free software; you can redistribute it and/or +** modify it under the terms of the GNU General Public License as +** published by the Free Software Foundation; either version 2 of +** the License, or (at your option) any later version. +** +** This package is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +** General Public License for more details. +** \endlegal +*/ +/* ========================================================================= */ + +/* === H E A D E R S ======================================================= */ + +#define SYNFIG_NO_ANGLE + +//#define HAS_HASH_MAP 1 + +#ifdef USING_PCH +# include "pch.h" +#else +#ifdef HAVE_CONFIG_H +# include +#endif + +#include "valuenode.h" +#include "general.h" +#include "canvas.h" + +#include "valuenode_const.h" +#include "valuenode_linear.h" +#include "valuenode_composite.h" +#include "valuenode_reference.h" +#include "valuenode_scale.h" +#include "valuenode_segcalctangent.h" +#include "valuenode_segcalcvertex.h" +#include "valuenode_stripes.h" +#include "valuenode_subtract.h" +#include "valuenode_timedswap.h" +#include "valuenode_twotone.h" +#include "valuenode_bline.h" +#include "valuenode_dynamiclist.h" +#include "valuenode_radialcomposite.h" +#include "valuenode_gradientrotate.h" +#include "valuenode_sine.h" + +#include "layer.h" + +#endif + +/* === U S I N G =========================================================== */ + +using namespace std; +using namespace etl; +using namespace synfig; + +/* === M A C R O S ========================================================= */ + +/* === G L O B A L S ======================================================= */ + +static int value_node_count(0); + +static LinkableValueNode::Book *book_; + + +ValueNode::LooseHandle +synfig::find_value_node(const GUID& guid) +{ + return guid_cast(guid); +} + +/* === P R O C E D U R E S ================================================= */ + +/* === M E T H O D S ======================================================= */ + +bool +ValueNode::subsys_init() +{ + book_=new LinkableValueNode::Book(); + +#define ADD_VALUENODE(c,n) (*book_)[n].factory=reinterpret_cast(&c::create); (*book_)[n].check_type=&c::check_type;(*book_)[n].local_name=n +#define ADD_VALUENODE2(c,n) (*book_)[n].factory=reinterpret_cast(&c::create_from); (*book_)[n].check_type=&c::check_type;(*book_)[n].local_name=n + + ADD_VALUENODE(ValueNode_Linear,"linear"); + ADD_VALUENODE(ValueNode_Composite,"composite"); + ADD_VALUENODE(ValueNode_RadialComposite,"radial_composite"); + ADD_VALUENODE(ValueNode_Reference,"reference"); + ADD_VALUENODE(ValueNode_Scale,"scale"); + ADD_VALUENODE(ValueNode_SegCalcTangent,"segcalctangent"); + ADD_VALUENODE(ValueNode_SegCalcVertex,"segcalcvertex"); + ADD_VALUENODE(ValueNode_Stripes,"stripes"); + ADD_VALUENODE(ValueNode_Subtract,"subtract"); + //ADD_VALUENODE(ValueNode_TimedSwap,"timed_swap"); + ADD_VALUENODE(ValueNode_TwoTone,"twotone"); + ADD_VALUENODE(ValueNode_BLine,"bline"); + ADD_VALUENODE2(ValueNode_DynamicList,"dynamic_list"); + ADD_VALUENODE(ValueNode_GradientRotate,"gradient_rotate"); + ADD_VALUENODE(ValueNode_Sine,"sine"); + +#undef ADD_VALUENODE + return true; +} + +bool +ValueNode::subsys_stop() +{ + delete book_; +/* if(global_value_node_map.size() || value_node_count) + { + if(value_node_count) + synfig::error("%d ValueNodes haven't been destroyed yet!",value_node_count); + + if(global_value_node_map.size()!=value_node_count) + synfig::error("value node count mismatch! map.size()!=value_node_count (%d!=%d)",global_value_node_map.size(),value_node_count); + + GlobalValueNodeMap::iterator iter; + for(iter=global_value_node_map.begin();iter!=global_value_node_map.end();++iter) + { + if(!iter->second->is_exported()) + synfig::info("%s: count:%d name:%s type:%s", + iter->first.get_string().c_str(), + iter->second->count(), + iter->second->get_name().c_str(), + ValueBase::type_name(iter->second->get_type()).c_str() + ); + else + synfig::info("%s: id:%s count:%d name:%s type:%s", + iter->first.get_string().c_str(), + iter->second->get_id().c_str(), + iter->second->count(), + iter->second->get_name().c_str(), + ValueBase::type_name(iter->second->get_type()).c_str() + ); + } + } +*/ + return true; +} + +ValueNode::ValueNode(ValueBase::Type type):type(type) +{ + value_node_count++; +} + +LinkableValueNode::Book& +LinkableValueNode::book() +{ + return *book_; +} + +LinkableValueNode::Handle +LinkableValueNode::create(const String &name, const ValueBase& x) +{ + if(!book().count(name)) + return 0; + return book()[name].factory(x); +} + +bool +LinkableValueNode::check_type(const String &name, ValueBase::Type x) +{ + if(!book().count(name) || !book()[name].check_type) + return false; + return book()[name].check_type(x); +} + +bool +LinkableValueNode::set_link(int i,ValueNode::Handle x) +{ + ValueNode::Handle previous(get_link(i)); + + if(set_link_vfunc(i,x)) + { + if(previous) + remove_child(previous.get()); + add_child(x.get()); + + if(!x->is_exported() && get_parent_canvas()) + { + x->set_parent_canvas(get_parent_canvas()); + } + changed(); + return true; + } + return false; +} + +ValueNode::LooseHandle +LinkableValueNode::get_link(int i)const +{ + return get_link_vfunc(i); +} + +void +LinkableValueNode::unlink_all() +{ + for(int i=0;iparent_set.erase(this); + } +} + +ValueNode::~ValueNode() +{ + value_node_count--; + + begin_delete(); + + //DEBUGPOINT(); +} + +void +ValueNode::on_changed() +{ + if(get_parent_canvas()) + get_parent_canvas()->signal_value_node_changed()(this); + else if(get_root_canvas() && get_parent_canvas()) + get_root_canvas()->signal_value_node_changed()(this); + + Node::on_changed(); +} + +int +ValueNode::replace(etl::handle x) +{ + if(x.get()==this) + return 0; + + while(parent_set.size()) + { + (*parent_set.begin())->add_child(x.get()); + (*parent_set.begin())->remove_child(this); + //x->parent_set.insert(*parent_set.begin()); + //parent_set.erase(parent_set.begin()); + } + int r(RHandle(this).replace(x)); + x->changed(); + return r; +} + +void +ValueNode::set_id(const String &x) +{ + if(name!=x) + { + name=x; + signal_id_changed_(); + } +} + +ValueNodeList::ValueNodeList(): + placeholder_count_(0) +{ +} + +bool +ValueNodeList::count(const String &id)const +{ + const_iterator iter; + + if(id.empty()) + return false; + + for(iter=begin();iter!=end() && id!=(*iter)->get_id();++iter); + + if(iter==end()) + return false; + + return true; +} + +ValueNode::Handle +ValueNodeList::find(const String &id) +{ + iterator iter; + + if(id.empty()) + throw Exception::IDNotFound("Empty ID"); + + for(iter=begin();iter!=end() && id!=(*iter)->get_id();++iter); + + if(iter==end()) + throw Exception::IDNotFound("ValueNode in ValueNodeList: "+id); + + return *iter; +} + +ValueNode::ConstHandle +ValueNodeList::find(const String &id)const +{ + const_iterator iter; + + if(id.empty()) + throw Exception::IDNotFound("Empty ID"); + + for(iter=begin();iter!=end() && id!=(*iter)->get_id();++iter); + + if(iter==end()) + throw Exception::IDNotFound("ValueNode in ValueNodeList: "+id); + + return *iter; +} + +ValueNode::Handle +ValueNodeList::surefind(const String &id) +{ + if(id.empty()) + throw Exception::IDNotFound("Empty ID"); + + ValueNode::Handle value_node; + + try + { + value_node=find(id); + } + catch(Exception::IDNotFound) + { + value_node=PlaceholderValueNode::create(); + value_node->set_id(id); + push_back(value_node); + placeholder_count_++; + } + + return value_node; +} + +bool +ValueNodeList::erase(ValueNode::Handle value_node) +{ + assert(value_node); + + iterator iter; + + for(iter=begin();iter!=end();++iter) + if(value_node.get()==iter->get()) + { + std::list::erase(iter); + if(PlaceholderValueNode::Handle::cast_dynamic(value_node)) + placeholder_count_--; + return true; + } + return false; +} + +bool +ValueNodeList::add(ValueNode::Handle value_node) +{ + if(!value_node) + return false; + if(value_node->get_id().empty()) + return false; + + try + { + ValueNode::RHandle other_value_node=find(value_node->get_id()); + if(PlaceholderValueNode::Handle::cast_dynamic(other_value_node)) + { + other_value_node->replace(value_node); + placeholder_count_--; + return true; + } + + return false; + } + catch(Exception::IDNotFound) + { + push_back(value_node); + return true; + } + + return false; +} + +void +ValueNodeList::audit() +{ + iterator iter,next; + + for(next=begin(),iter=next++;iter!=end();iter=next++) + if(iter->count()==1) + std::list::erase(iter); +} + + +String +PlaceholderValueNode::get_name()const +{ + return "placeholder"; +} + +String +PlaceholderValueNode::get_local_name()const +{ + return _("Placeholder"); +} + +ValueNode* +PlaceholderValueNode::clone(const GUID& deriv_guid)const +{ + ValueNode* ret(new PlaceholderValueNode()); + ret->set_guid(get_guid()^deriv_guid); + return ret; +} + +PlaceholderValueNode::Handle +PlaceholderValueNode::create(ValueBase::Type type) +{ + return new PlaceholderValueNode(type); +} + +ValueBase +PlaceholderValueNode::operator()(Time t)const +{ + assert(0); + return ValueBase(); +} + +PlaceholderValueNode::PlaceholderValueNode(ValueBase::Type type): + ValueNode(type) +{ +} + +ValueNode* +LinkableValueNode::clone(const GUID& deriv_guid)const +{ + { ValueNode* x(find_value_node(get_guid()^deriv_guid).get()); if(x)return x; } + + int i; + LinkableValueNode *ret=create_new(); + ret->set_guid(get_guid()^deriv_guid); + + for(i=0;iis_exported()) + { + ValueNode::LooseHandle value_node(find_value_node(link->get_guid()^deriv_guid)); + if(!value_node) + value_node=link->clone(deriv_guid); + ret->set_link(i,value_node); + } + else + ret->set_link(i,link); + } + + return ret; +} + +String +ValueNode::get_relative_id(etl::loose_handle x)const +{ + assert(is_exported()); + assert(canvas_); + + if(x.get()==canvas_.get()) + return get_id(); + + return canvas_->_get_relative_id(x)+':'+get_id(); +} + +void +ValueNode::set_parent_canvas(etl::loose_handle x) +{ + canvas_=x; if(x) root_canvas_=x->get_root(); +} + +void +ValueNode::set_root_canvas(etl::loose_handle x) +{ + root_canvas_=x->get_root(); +} + +void LinkableValueNode::get_times_vfunc(Node::time_set &set) const +{ + ValueNode::LooseHandle h; + + int size = link_count(); + + //just add it to the set... + for(int i=0; i < size; ++i) + { + h = get_link(i); + + if(h) + { + const Node::time_set &tset = h->get_times(); + set.insert(tset.begin(),tset.end()); + } + } +} diff --git a/synfig-core/tags/stable/src/synfig/valuenode.h b/synfig-core/tags/stable/src/synfig/valuenode.h new file mode 100644 index 0000000..145a3dd --- /dev/null +++ b/synfig-core/tags/stable/src/synfig/valuenode.h @@ -0,0 +1,387 @@ +/* === S Y N F I G ========================================================= */ +/*! \file valuenode.h +** \brief Template Header +** +** $Id$ +** +** \legal +** Copyright (c) 2002-2005 Robert B. Quattlebaum Jr., Adrian Bentley +** +** This package is free software; you can redistribute it and/or +** modify it under the terms of the GNU General Public License as +** published by the Free Software Foundation; either version 2 of +** the License, or (at your option) any later version. +** +** This package is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +** General Public License for more details. +** \endlegal +*/ +/* ========================================================================= */ + +/* === S T A R T =========================================================== */ + +#ifndef __SYNFIG_VALUENODE_H +#define __SYNFIG_VALUENODE_H + +/* === H E A D E R S ======================================================= */ + +#include "vector.h" +#include "value.h" +#include "string.h" +#include +#include +#include "exception.h" +#include +#include +#include "guid.h" + +#ifndef SYNFIG_NO_ANGLE +#include +#endif + +#include "node.h" + +#include + +/* === M A C R O S ========================================================= */ + +// This is a hack for GCC 3.0.4... which has a broken dynamic_cast<> +// It is deprecated, and will be removed soon. +#if ( __GNUC__ == 3 ) && ( __GNUC__MINOR__ == 0 ) +# define DCAST_HACK_BASECLASS() int cast__ +# define DCAST_HACK_ID(x) static const int my_cast__(void) { return x; } +# define DCAST_HACK_ENABLE() cast__=my_cast__() +#else +# define DCAST_HACK_BASECLASS() +# define DCAST_HACK_ID(x) +# define DCAST_HACK_ENABLE() +#endif + +/* === T Y P E D E F S ===================================================== */ + +/* === C L A S S E S & S T R U C T S ======================================= */ + +namespace synfig { + +class Canvas; +class LinkableValueNode; +class Layer; + +/*! \class ValueNode +** \todo writeme +*/ +class ValueNode : public synfig::Node +{ + friend class Layer; + friend class LinkableValueNode; + + /* + -- ** -- T Y P E S ----------------------------------------------------------- + */ + +public: + + typedef etl::handle Handle; + + typedef etl::loose_handle LooseHandle; + + typedef etl::handle ConstHandle; + + typedef etl::rhandle RHandle; + + + static bool subsys_init(); + + static bool subsys_stop(); + + /* + -- ** -- D A T A ------------------------------------------------------------- + */ + +private: + ValueBase::Type type; + String name; + etl::loose_handle canvas_; + etl::loose_handle root_canvas_; + + /* + -- ** -- S I G N A L S ------------------------------------------------------- + */ + +private: + + //! ValueBase Changed + sigc::signal signal_value_changed_; + + //! Children Reordered + sigc::signal signal_children_reordered_; + + //! Child Changed + sigc::signal signal_child_changed_; + + //! Child Removed + sigc::signal signal_child_removed_; + + //! Child Inserted + sigc::signal signal_child_inserted_; + + //! ID Changed + sigc::signal signal_id_changed_; + + /* + -- ** -- S I G N A L I N T E R F A C E ------------------------------------- + */ + +public: + + //! ValueBase Changed + sigc::signal& signal_value_changed() { return signal_value_changed_; } + + //! Children Reordered + sigc::signal& signal_children_reordered() { return signal_children_reordered_; } + + //! Child Changed + sigc::signal& signal_child_changed() { return signal_child_changed_; } + + //! Child Removed + sigc::signal& signal_child_removed() { return signal_child_removed_; } + + //! Child Inserted + sigc::signal& signal_child_inserted() { return signal_child_inserted_; } + + //! ID Changed + sigc::signal& signal_id_changed() { return signal_id_changed_; } + + /* + -- ** -- C O N S T R U C T O R S --------------------------------------------- + */ + +protected: + + ValueNode(ValueBase::Type type=ValueBase::TYPE_NIL); + +public: + + virtual ~ValueNode(); + + /* + -- ** -- M E M B E R F U N C T I O N S ------------------------------------- + */ + +public: + + //! Returns the value of the ValueNode at time \a t + virtual ValueBase operator()(Time t)const + { return ValueBase(); } + + //! \internal Sets the id of the ValueNode + void set_id(const String &x); + + //! Returns the id of the ValueNode + /*! The ID is used for keeping track of a + ** specific instance of a ValueNode. */ + const String &get_id()const { return name; } + + //! Returns the name of the ValueNode type + virtual String get_name()const=0; + + //! Returns the localized name of the ValueNode type + virtual String get_local_name()const=0; + + + //! \writeme + virtual ValueNode* clone(const GUID& deriv_guid=GUID())const=0; + + //! \writeme + bool is_exported()const { return !get_id().empty(); } + + //! Returns the type of the ValueNode + ValueBase::Type get_type()const { return type; } + + //! Returns a handle to the parent canvas, if it has one. + etl::loose_handle get_parent_canvas()const { return canvas_; } + + //! Returns a handle to the parent canvas, if it has one. + etl::loose_handle get_root_canvas()const { return root_canvas_; } + + //! \writeme + void set_parent_canvas(etl::loose_handle x); + + //! \writeme + void set_root_canvas(etl::loose_handle x); + + //! \writeme + String get_relative_id(etl::loose_handle x)const; + + int replace(etl::handle x); + +protected: + //! Sets the type of the ValueNode + void set_type(ValueBase::Type t) { type=t; } + + virtual void on_changed(); + +public: + DCAST_HACK_BASECLASS(); + DCAST_HACK_ID(0); +}; // END of class ValueNode + +/*! \class PlaceholderValueNode +** \todo writeme +*/ +class PlaceholderValueNode : public ValueNode +{ +public: + typedef etl::handle Handle; + typedef etl::loose_handle LooseHandle; + typedef etl::handle ConstHandle; + typedef etl::rhandle RHandle; + +private: + + PlaceholderValueNode(ValueBase::Type type=ValueBase::TYPE_NIL); + +public: + + virtual ValueBase operator()(Time t)const; + + virtual String get_name()const; + + virtual String get_local_name()const; + + virtual ValueNode* clone(const GUID& deriv_guid=GUID())const; + + static Handle create(ValueBase::Type type=ValueBase::TYPE_NIL); + +protected: + virtual void get_times_vfunc(Node::time_set &set) const {} +}; // END of class PlaceholderValueNode + + +/*! \class LinkableValueNode +** \todo writeme +*/ +class LinkableValueNode : public ValueNode +{ + friend class ValueNode; +public: + + typedef etl::handle Handle; + + typedef etl::loose_handle LooseHandle; + + typedef etl::handle ConstHandle; + + typedef etl::rhandle RHandle; + + + //! Type that represents a pointer to a ValueNode's constructor + typedef LinkableValueNode* (*Factory)(const ValueBase&); + + typedef bool (*CheckType)(ValueBase::Type); + + struct BookEntry + { + String local_name; + Factory factory; + CheckType check_type; + }; + + typedef std::map Book; + + static Book& book(); + + static Handle create(const String &name, const ValueBase& x); + + static bool check_type(const String &name, ValueBase::Type x); + +public: + LinkableValueNode(ValueBase::Type type=ValueBase::TYPE_NIL): + ValueNode(type) { } + +protected: + virtual bool set_link_vfunc(int i,ValueNode::Handle x)=0; + + void unlink_all(); + +public: + + virtual int link_count()const=0; + + virtual String link_local_name(int i)const=0; + + virtual String link_name(int i)const=0; + + virtual int get_link_index_from_name(const String &name)const=0; + + virtual ValueNode* clone(const GUID& deriv_guid=GUID())const; + + bool set_link(int i,ValueNode::Handle x); + bool set_link(const String &name,ValueNode::Handle x) { return set_link(get_link_index_from_name(name),x); } + + ValueNode::LooseHandle get_link(int i)const; + ValueNode::LooseHandle get_link(const String &name)const { return get_link(get_link_index_from_name(name)); } + +protected: + //! Sets the type of the ValueNode + void set_type(ValueBase::Type t) { ValueNode::set_type(t); } + + virtual ValueNode::LooseHandle get_link_vfunc(int i)const=0; + + // Wrapper for new operator, used by clone() + virtual LinkableValueNode* create_new()const=0; + + virtual void get_times_vfunc(Node::time_set &set) const; +}; // END of class LinkableValueNode + +/*! \class ValueNodeList +** \brief A searchable value_node list container +** \warning Do not confuse with ValueNode_DynamicList! +** \todo writeme +*/ +class ValueNodeList : public std::list +{ + int placeholder_count_; +public: + ValueNodeList(); + + //! Finds the ValueNode in the list with the given \a name + /*! \return If found, returns a handle to the ValueNode. + ** Otherwise, returns an empty handle. + */ + ValueNode::Handle find(const String &name); + + //! Finds the ValueNode in the list with the given \a name + /*! \return If found, returns a handle to the ValueNode. + ** Otherwise, returns an empty handle. + */ + ValueNode::ConstHandle find(const String &name)const; + + //! Removes the \a value_node from the list + bool erase(ValueNode::Handle value_node); + + //! \writeme + bool add(ValueNode::Handle value_node); + + //! \writeme + bool count(const String &id)const; + + //! Similar to find, but will create a placeholder value_node if it cannot be found. + ValueNode::Handle surefind(const String &name); + + //! Removes any value_nodes with reference counts of 1. + void audit(); + + //! Placeholder Count + int placeholder_count()const { return placeholder_count_; } +}; + +ValueNode::LooseHandle find_value_node(const GUID& guid); + +}; // END of namespace synfig + +/* === E N D =============================================================== */ + +#endif diff --git a/synfig-core/tags/stable/src/synfig/valuenode_animated.cpp b/synfig-core/tags/stable/src/synfig/valuenode_animated.cpp new file mode 100644 index 0000000..aabf805 --- /dev/null +++ b/synfig-core/tags/stable/src/synfig/valuenode_animated.cpp @@ -0,0 +1,1175 @@ +/* === S Y N F I G ========================================================= */ +/*! \file valuenode_animated.cpp +** \brief Template File +** +** $Id$ +** +** \legal +** Copyright (c) 2002-2005 Robert B. Quattlebaum Jr., Adrian Bentley +** +** This package is free software; you can redistribute it and/or +** modify it under the terms of the GNU General Public License as +** published by the Free Software Foundation; either version 2 of +** the License, or (at your option) any later version. +** +** This package is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +** General Public License for more details. +** \endlegal +*/ +/* ========================================================================= */ + +/* === H E A D E R S ======================================================= */ + +#ifdef USING_PCH +# include "pch.h" +#else +#ifdef HAVE_CONFIG_H +# include +#endif + +#include +#include +#include + +#include + +#include +#include +#include +#include +#include + +#include +#include + +#include "canvas.h" +#include "general.h" +#include "valuenode_animated.h" +#include "valuenode_const.h" +#include "exception.h" +#include "gradient.h" + +#endif + +/* === U S I N G =========================================================== */ + +using namespace std; +using namespace etl; +using namespace synfig; + +/* === M A C R O S ========================================================= */ + +// Fast binary search implementation +/* +template inline I +binary_find(I begin, I end, const T& value) +{ + I iter(begin+(end-begin)/2); + + while(end-begin>1 && !(*iter==value)) + { + ((*iter String tangent_info(T a, T b, T v) +{ + return "..."; +} + +String tangent_info(Vector a, Vector b, Vector v) +{ + if(a==b) + return strprintf("(should be zero) T=[%f,%f], Pp=[%f,%f], Pn=[%f,%f]",v[0],v[1],a[0],a[1],b[0],b[1]); + else + return strprintf("(should NOT be zero) T=[%f,%f], Pp=[%f,%f], Pn=[%f,%f]",v[0],v[1],a[0],a[1],b[0],b[1]); +} +*/ + +template +struct subtractor : public std::binary_function +{ + T operator()(const T &a,const T &b)const + { + return a-b; + } +}; + +template <> +struct subtractor : public std::binary_function +{ + Angle operator()(const Angle &a,const Angle &b)const + { + return a.dist(b); + } +}; + +template +struct magnitude : public std::unary_function +{ + float operator()(const T &a)const + { + return abs(a); + } +}; + +template <> +struct magnitude : public std::unary_function +{ + float operator()(const Angle &a)const + { + return abs(Angle::rad(a).get()); + } +}; + +template <> +struct magnitude : public std::unary_function +{ + float operator()(const Vector &a)const + { + return a.mag(); + } +}; + +template <> +struct magnitude : public std::unary_function +{ + float operator()(const Color &a)const + { + return abs(a.get_y()); + } +}; + + + + + +template +struct is_angle_type +{ + bool operator()()const + { + return false; + } +}; + +template <> +struct is_angle_type +{ + bool operator()()const + { + return true; + } +}; + +/* === G L O B A L S ======================================================= */ + +/* === C L A S S E S ======================================================= */ + +template +class _Hermite : public synfig::ValueNode_Animated +{ +public: + typedef T value_type; + affine_combo affine_combo_func; + subtractor subtract_func; + magnitude magnitude_func; + is_angle_type is_angle; +private: + struct PathSegment + { + is_angle_type is_angle; + subtractor subtract_func; + + mutable hermite first; + mutable hermite second; + WaypointList::iterator start; + WaypointList::iterator end; + + value_type resolve(const Time &t)const + { + bool start_static(start->is_static()); + bool end_static(end->is_static()); + + if(!start_static || !end_static) + { + //if(!start_static) + second.p1()=start->get_value(t).get(value_type()); + if(start->get_after()==INTERPOLATION_CONSTANT || end->get_before()==INTERPOLATION_CONSTANT) + return second.p1(); + //if(!end_static) + second.p2()=end->get_value(t).get(value_type()); + + // At the moment, the only type of non-constant interpolation + // that we support is linear. + second.t1()= + second.t2()=subtract_func(second.p2(),second.p1()); + + second.sync(); + } + + return second(first(t)); + } + }; + typedef vector < + PathSegment + /* + pair < + hermite, + hermite + > + */ + > curve_list_type; + + curve_list_type curve_list; + + // Bounds of this curve + Time r,s; + +public: + ValueNode* clone(const GUID& deriv_guid)const + { + { ValueNode* x(find_value_node(get_guid()^deriv_guid).get()); if(x)return x; } + _Hermite* ret(new _Hermite()); + ret->set_guid(get_guid()^deriv_guid); + for(WaypointList::const_iterator iter=waypoint_list().begin();iter!=waypoint_list().end();++iter) + ret->add(iter->clone(deriv_guid)); + return ret; + } + + _Hermite() + { + set_type(ValueBase(value_type()).get_type()); + } + + virtual WaypointList::iterator new_waypoint(Time t, ValueBase value) + { + // Make sure we are getting data of the correct type + //if(data.type!=type) + // return waypoint_list_type::iterator(); + + try { find(t); throw Exception::BadTime(_("A waypoint already exists at this point in time")); } catch(Exception::NotFound) { }; + Waypoint waypoint(value,t); + waypoint.set_parent_value_node(this); + + waypoint_list_.push_back(waypoint); + WaypointList::iterator ret=waypoint_list_.end(); + --ret; + + if(is_angle()) + { + ret->set_before(INTERPOLATION_LINEAR); + ret->set_after(INTERPOLATION_LINEAR); + } + + changed(); + + return ret; + } + + virtual WaypointList::iterator new_waypoint(Time t, ValueNode::Handle value_node) + { + // Make sure we are getting data of the correct type + //if(data.type!=type) + // return waypoint_list_type::iterator(); + try { find(t); throw Exception::BadTime(_("A waypoint already exists at this point in time")); } catch(Exception::NotFound) { }; + + Waypoint waypoint(value_node,t); + waypoint.set_parent_value_node(this); + + waypoint_list_.push_back(waypoint); + WaypointList::iterator ret=waypoint_list_.end(); + --ret; + + if(is_angle()) + { + ret->set_before(INTERPOLATION_LINEAR); + ret->set_after(INTERPOLATION_LINEAR); + } + + changed(); + + return ret; + } + + virtual void on_changed() + { + ValueNode_Animated::on_changed(); + + if(waypoint_list_.size()<=1) + return; + std::sort(waypoint_list_.begin(),waypoint_list_.end()); + //waypoint_list_.sort(); + + r=waypoint_list_.front().get_time(); + s=waypoint_list_.back().get_time(); + + curve_list.clear(); + + WaypointList::iterator prev,iter,next=waypoint_list_.begin(); + int i=0; + + for(iter=next++;iter!=waypoint_list_.end() && next!=waypoint_list_.end();prev=iter,iter=next++,i++) + { + typename curve_list_type::value_type curve; + WaypointList::iterator after_next(next); + ++after_next; + + curve.start=iter; + curve.end=next; + + // Set up the positions + curve.first.set_rs(iter->get_time(), next->get_time()); + curve.second.set_rs(iter->get_time(), next->get_time()); + + Waypoint::Interpolation iter_get_after(iter->get_after()); + Waypoint::Interpolation next_get_after(next->get_after()); + Waypoint::Interpolation iter_get_before(iter->get_before()); + Waypoint::Interpolation next_get_before(next->get_before()); + + if(is_angle()) + { + if(iter_get_after==INTERPOLATION_TCB) + iter_get_after=INTERPOLATION_LINEAR; + if(next_get_after==INTERPOLATION_TCB) + next_get_after=INTERPOLATION_LINEAR; + if(iter_get_before==INTERPOLATION_TCB) + iter_get_before=INTERPOLATION_LINEAR; + if(next_get_before==INTERPOLATION_TCB) + next_get_before=INTERPOLATION_LINEAR; + } + + if(iter->is_static() && next->is_static()) + { + curve.second.p1()=iter->get_value().get(T()); + curve.second.p2()=next->get_value().get(T()); + if(iter_get_after==INTERPOLATION_CONSTANT || next_get_before==INTERPOLATION_CONSTANT) + { + // Sections must be constant on both sides. + // NOTE: this is commented out because of some + // user interface issues. Namely, if a section is + // constant and the user turns off the constant on + // one waypoint, this will end up turning it back on. + // Confusing. + //iter->get_after()=next->get_before()=INTERPOLATION_CONSTANT; + curve.second.p1()= + curve.second.p2()=iter->get_value().get(T()); + curve.second.t1()= + curve.second.t2()=subtract_func(curve.second.p1(),curve.second.p2()); + } + else + { + if(iter_get_after==INTERPOLATION_TCB && iter!=waypoint_list_.begin() && !is_angle()) + { + if(iter->get_before()!=INTERPOLATION_TCB && !curve_list.empty()) + { + curve.second.t1()=curve_list.back().second.t2(); + } + else + { + + const Real& t(iter->get_tension()); // Tension + const Real& c(iter->get_continuity()); // Continuity + const Real& b(iter->get_bias()); // Bias + + // The folloing line works where the previous line fails. + value_type Pp; Pp=curve_list.back().second.p1(); // P_{i-1} + + const value_type& Pc(curve.second.p1()); // P_i + const value_type& Pn(curve.second.p2()); // P_{i+1} + + // TCB + value_type vect(static_cast(subtract_func(Pc,Pp)*(((1.0-t)*(1.0+c)*(1.0+b))/2.0)+(Pn-Pc)*(((1.0-t)*(1.0-c)*(1.0-b))/2.0))); + + // Tension Only + //value_type vect=(value_type)((Pn-Pp)*(1.0-t)); + + // Linear + //value_type vect=(value_type)(Pn-Pc); + + // Debugging stuff + //synfig::info("%d:t1: %s",i,tangent_info(Pp,Pn,vect).c_str()); + + // Adjust for time + //vect=value_type(vect*(curve.second.get_dt()*2.0)/(curve.second.get_dt()+curve_list.back().second.get_dt())); + //vect=value_type(vect*(curve.second.get_dt())/(curve_list.back().second.get_dt())); + + curve.second.t1()=vect; + } + } + else if( + iter_get_after==INTERPOLATION_LINEAR || iter_get_after==INTERPOLATION_HALT || + (iter_get_after==INTERPOLATION_TCB && iter==waypoint_list_.begin())) + { + curve.second.t1()=subtract_func(curve.second.p2(),curve.second.p1()); + } + + if(iter_get_before==INTERPOLATION_TCB && iter->get_after()!=INTERPOLATION_TCB && !curve_list.empty()) + { + curve_list.back().second.t2()=curve.second.t1(); + curve_list.back().second.sync(); + } + + + if(next_get_before==INTERPOLATION_TCB && after_next!=waypoint_list_.end() && !is_angle()) + { + const Real &t(next->get_tension()); // Tension + const Real &c(next->get_continuity()); // Continuity + const Real &b(next->get_bias()); // Bias + const value_type &Pp(curve.second.p1()); // P_{i-1} + const value_type &Pc(curve.second.p2()); // P_i + value_type Pn; Pn=after_next->get_value().get(T()); // P_{i+1} + + // TCB + value_type vect(static_cast(subtract_func(Pc,Pp)*(((1.0-t)*(1.0-c)*(1.0+b))/2.0)+(Pn-Pc)*(((1.0-t)*(1.0+c)*(1.0-b))/2.0))); + + // Tension Only + //value_type vect((value_type)((Pn-Pp)*(1.0-t))); + + // Linear + //value_type vect=(value_type)(Pc-Pp); + + // Debugging stuff + //synfig::info("%d:t2: %s",i,tangent_info(Pp,Pn,vect).c_str()); + + // Adjust for time + //vect=value_type(vect*(curve.second.get_dt()*2.0)/(curve.second.get_dt()+(after_next->get_time()-next->get_time()))); + //vect=value_type(vect*(curve.second.get_dt()/((after_next->get_time()-next->get_time())))); + + curve.second.t2()=vect; + } + else if( + next_get_before==INTERPOLATION_LINEAR || next_get_before==INTERPOLATION_HALT || + (next_get_before==INTERPOLATION_TCB && after_next==waypoint_list_.end())) + { + curve.second.t2()=subtract_func(curve.second.p2(),curve.second.p1()); + } + + // Adjust for time + const float timeadjust(0.5); + + if(!curve_list.empty()) + curve.second.t1()*=(curve.second.get_dt()*(timeadjust+1))/(curve.second.get_dt()*timeadjust+curve_list.back().second.get_dt()); + if(after_next!=waypoint_list_.end()) + curve.second.t2()*=(curve.second.get_dt()*(timeadjust+1))/(curve.second.get_dt()*timeadjust+(after_next->get_time()-next->get_time())); + + if(iter_get_after==INTERPOLATION_HALT) + curve.second.t1()*=0; + + if(next_get_before==INTERPOLATION_HALT) + curve.second.t2()*=0; + } + } + + // Set up the time to the default stuff + curve.first.set_rs(iter->get_time(), next->get_time()); + curve.first.p1()=iter->get_time(); + curve.first.p2()=next->get_time(); + curve.first.t1()=(curve.first.p2()-curve.first.p1())*(1.0f-iter->get_time_tension()); + curve.first.t2()=(curve.first.p2()-curve.first.p1())*(1.0f-next->get_time_tension()); + + + curve.first.sync(); + curve.second.sync(); + + curve_list.push_back(curve); + } + } + + virtual ValueBase operator()(Time t)const + { + if(waypoint_list_.empty()) + return value_type(); //! \todo Perhaps we should throw something here? + if(waypoint_list_.size()==1) + return waypoint_list_.front().get_value(t); + if(t<=r) + return waypoint_list_.front().get_value(t); + if(t>=s) + return waypoint_list_.back().get_value(t); + + typename curve_list_type::const_iterator iter; + + // This next line will set iter to the + // correct iterator for the given time. + for(iter=curve_list.begin();iter=iter->first.get_s();++iter) + continue; + if(iter==curve_list.end()) + return waypoint_list_.back().get_value(t); + return iter->resolve(t); + } +}; + + +template +class _Constant : public synfig::ValueNode_Animated +{ +public: + typedef T value_type; + +private: + + // Bounds of this curve + Time r,s; + +public: + ValueNode* clone(const GUID& deriv_guid)const + { + { ValueNode* x(find_value_node(get_guid()^deriv_guid).get()); if(x)return x; } + _Constant* ret(new _Constant()); + ret->set_guid(get_guid()^deriv_guid); + for(WaypointList::const_iterator iter=waypoint_list().begin();iter!=waypoint_list().end();++iter) + ret->add(iter->clone(deriv_guid)); + return ret; + } + + _Constant() + { + set_type(ValueBase(value_type()).get_type()); + } + + virtual WaypointList::iterator new_waypoint(Time t, ValueBase value) + { + // Make sure we are getting data of the correct type + //if(data.type!=type) + // return waypoint_list_type::iterator(); + try { find(t); throw Exception::BadTime(_("A waypoint already exists at this point in time")); } catch(Exception::NotFound) { }; + + Waypoint waypoint(value,t); + waypoint.set_parent_value_node(this); + + waypoint_list_.push_back(waypoint); + WaypointList::iterator ret=waypoint_list_.end(); + --ret; + changed(); + + return ret; + } + + virtual WaypointList::iterator new_waypoint(Time t, ValueNode::Handle value_node) + { + // Make sure we are getting data of the correct type + //if(data.type!=type) + // return waypoint_list_type::iterator(); + try { find(t); throw Exception::BadTime(_("A waypoint already exists at this point in time")); } catch(Exception::NotFound) { }; + + Waypoint waypoint(value_node,t); + waypoint.set_parent_value_node(this); + + waypoint_list_.push_back(waypoint); + WaypointList::iterator ret=waypoint_list_.end(); + --ret; + changed(); + + return ret; + } + + virtual void on_changed() + { + ValueNode_Animated::on_changed(); + + if(waypoint_list_.size()<=1) + return; + std::sort(waypoint_list_.begin(),waypoint_list_.end()); + //waypoint_list_.sort(); + r=waypoint_list_.front().get_time(); + s=waypoint_list_.back().get_time(); + + } + + virtual ValueBase operator()(Time t)const + { + if(waypoint_list_.size()==1) + return waypoint_list_.front().get_value(t); + if(waypoint_list_.empty()) + return value_type(); + if(t<=r) + return waypoint_list_.front().get_value(t); + if(t>=s) + return waypoint_list_.back().get_value(t); + + typename WaypointList::const_iterator iter; + typename WaypointList::const_iterator next; + + // This next line will set iter to the + // correct iterator for the given time. + for(next=waypoint_list_.begin(),iter=next++;next!=waypoint_list_.end() && t>=next->get_time();iter=next++) + continue; + + return iter->get_value(t); + } +}; + +class _AnimBool : public synfig::ValueNode_Animated +{ +public: + typedef bool value_type; + +private: + + // Bounds of this curve + Time r,s; + +public: + ValueNode* clone(const GUID& deriv_guid)const + { + { ValueNode* x(find_value_node(get_guid()^deriv_guid).get()); if(x)return x; } + _AnimBool* ret(new _AnimBool()); + ret->set_guid(get_guid()^deriv_guid); + for(WaypointList::const_iterator iter=waypoint_list().begin();iter!=waypoint_list().end();++iter) + ret->add(iter->clone(deriv_guid)); + return ret; + } + + _AnimBool() + { + set_type(ValueBase(value_type()).get_type()); + } + + virtual WaypointList::iterator new_waypoint(Time t, ValueBase value) + { + // Make sure we are getting data of the correct type + //if(data.type!=type) + // return waypoint_list_type::iterator(); + try { find(t); throw Exception::BadTime(_("A waypoint already exists at this point in time")); } catch(Exception::NotFound) { }; + + + Waypoint waypoint(value,t); + waypoint.set_parent_value_node(this); + + waypoint_list_.push_back(waypoint); + WaypointList::iterator ret=waypoint_list_.end(); + --ret; + changed(); + + return ret; + } + + virtual WaypointList::iterator new_waypoint(Time t, ValueNode::Handle value_node) + { + // Make sure we are getting data of the correct type + //if(data.type!=type) + // return waypoint_list_type::iterator(); + try { find(t); throw Exception::BadTime(_("A waypoint already exists at this point in time")); } catch(Exception::NotFound) { }; + + Waypoint waypoint(value_node,t); + waypoint.set_parent_value_node(this); + + waypoint_list_.push_back(waypoint); + WaypointList::iterator ret=waypoint_list_.end(); + --ret; + changed(); + + return ret; + } + + virtual void on_changed() + { + ValueNode_Animated::on_changed(); + + if(waypoint_list_.size()<=1) + return; + std::sort(waypoint_list_.begin(),waypoint_list_.end()); + //waypoint_list_.sort(); + r=waypoint_list_.front().get_time(); + s=waypoint_list_.back().get_time(); + + } + + virtual ValueBase operator()(Time t)const + { + if(waypoint_list_.size()==1) + return waypoint_list_.front().get_value(t); + if(waypoint_list_.empty()) + return false; + if(ts) + return waypoint_list_.back().get_value(t); + + WaypointList::const_iterator iter; + WaypointList::const_iterator next; + + // This next line will set iter to the + // correct iterator for the given time. + for(next=waypoint_list_.begin(),iter=next++;next!=waypoint_list_.end() && t>=next->get_time();iter=next++) + if(iter->get_time()==t) + return iter->get_value(t); + + if(iter->get_time()==t) + return iter->get_value(t); + + if(next!=waypoint_list_.end()) + return iter->get_value(t).get(bool()) || next->get_value(t).get(bool()); + return iter->get_value(t); + } +}; + +/* === M E T H O D S ======================================================= */ + +ValueNode_Animated::ValueNode_Animated() +{ + DCAST_HACK_ENABLE(); +} + +int +ValueNode_Animated::find(const Time& begin,const Time& end,std::vector& selected) +{ + Time curr_time(begin); + int ret(0); + + // try to grab first waypoint + try + { + WaypointList::iterator iter; + iter=find(curr_time); + selected.push_back(&*iter); + ret++; + } + catch(...) { } + + try + { + WaypointList::iterator iter; + while(true) + { + iter=find_next(curr_time); + curr_time=iter->get_time(); + if(curr_time>=end) + break; + selected.push_back(&*iter); + ret++; + } + } + catch(...) { } + + return ret; +} + +/* +void +ValueNode_Animated::manipulate_time(const Time& old_begin,const Time& old_end,const Time& new_begin,const Time& new_end) +{ +#define old_2_new(x) (((x)-old_begin)/(old_end-old_begin)*(new_end-new_begin)+new_begin) + std::vector selected; + std::vector::iterator iter; + + if(find(old_begin,old_end,selected)) + { + // check to make sure this operation is OK + for(iter=selected.begin();iter!=selected.end();++iter) + { + try + { + Time new_time(old_2_new((*iter)->get_time())); + if(new_time>=old_begin && new_timeset_time(old_2_new(selected.back()->get_time())); + selected.pop_back(); + } + + + while(!selected.empty()) + { + selected.back()->set_time(old_2_new(selected.back()->get_time())); + selected.pop_back(); + } + + changed(); + } +#undef old_2_new +} +*/ + +Waypoint +ValueNode_Animated::new_waypoint_at_time(const Time& time)const +{ + Waypoint waypoint; + try + { + // Trivial case, we are sitting on a waypoint + waypoint=*find(time); + waypoint.make_unique(); + } + catch(...) + { + if(waypoint_list().empty()) + { + waypoint.set_value((*this)(time)); + } + else + { + WaypointList::const_iterator prev; + WaypointList::const_iterator next; + + bool has_prev(false), has_next(false); + + try { prev=find_prev(time); has_prev=true; } catch(...) { } + try { next=find_next(time); has_next=true; } catch(...) { } + + /* + WaypointList::const_iterator closest; + + if(has_prev&&!has_next) + closest=prev; + else if(has_next&&!has_prev) + closest=next; + else if(time-prev->get_time()get_time()-time) + closest=prev; + else + closest=next; + + for(iter=waypoint_list().begin();iter!=waypoint_list().end();++iter) + { + const Real dist(abs(iter->get_time()-time)); + if(distget_time()-time)) + closest=iter; + } + */ + + if(has_prev && !prev->is_static()) + waypoint.set_value_node(prev->get_value_node()); + if(has_next && !next->is_static()) + waypoint.set_value_node(next->get_value_node()); + else + waypoint.set_value((*this)(time)); + + /*if(has_prev) + waypoint.set_after(prev->get_before()); + if(has_next) + waypoint.set_before(next->get_after()); + */ + } + } + waypoint.set_time(time); + waypoint.set_parent_value_node(const_cast(this)); +// synfig::info("waypoint.get_after()=set to %d",waypoint.get_after()); +// synfig::info("waypoint.get_before()=set to %d",waypoint.get_before()); + + return waypoint; +} + +ValueNode_Animated::WaypointList::iterator +ValueNode_Animated::find(const UniqueID &x) +{ + ValueNode_Animated::WaypointList::iterator iter; + iter=std::find(waypoint_list().begin(),waypoint_list().end(),x); + if(iter==waypoint_list().end() || iter->get_uid()!=x.get_uid()) + throw Exception::NotFound(strprintf("ValueNode_Animated::find(): Can't find UniqueID %d",x.get_uid())); + return iter; +} + +ValueNode_Animated::WaypointList::const_iterator +ValueNode_Animated::find(const UniqueID &x)const +{ + return const_cast(this)->find(x); + /* + ValueNode_Animated::WaypointList::const_iterator iter; + iter=std::find(waypoint_list().begin(),waypoint_list().end(),x); + if(iter!=waypoint_list().end() && iter->get_uid()!=x.get_uid()) + throw Exception::NotFound(strprintf("ValueNode_Animated::find()const: Can't find UniqueID %d",x.get_uid())); + return iter; + */ +} + +ValueNode_Animated::WaypointList::iterator +ValueNode_Animated::find(const Time &x) +{ + WaypointList::iterator iter(binary_find(waypoint_list().begin(),waypoint_list().end(),x)); + + if(iter!=waypoint_list().end() && x.is_equal(iter->get_time())) + return iter; + + throw Exception::NotFound(strprintf("ValueNode_Animated::find(): Can't find Waypoint at %s",x.get_string().c_str())); +} + +ValueNode_Animated::WaypointList::const_iterator +ValueNode_Animated::find(const Time &x)const +{ + return const_cast(this)->find(x); + /* + WaypointList::const_iterator iter(binary_find(waypoint_list().begin(),waypoint_list().end(),x)); + + if(iter!=waypoint_list().end() && x.is_equal(iter->get_time())) + return iter; + + throw Exception::NotFound(strprintf("ValueNode_Animated::find(): Can't find Waypoint at %s",x.get_string().c_str())); + */ +} + +ValueNode_Animated::WaypointList::iterator +ValueNode_Animated::find_next(const Time &x) +{ + WaypointList::iterator iter(binary_find(waypoint_list().begin(),waypoint_list().end(),x)); + + if(iter!=waypoint_list().end()) + { + if(iter->get_time().is_more_than(x)) + return iter; + ++iter; + if(iter!=waypoint_list().end() && iter->get_time().is_more_than(x)) + return iter; + } + + throw Exception::NotFound(strprintf("ValueNode_Animated::find_next(): Can't find Waypoint after %s",x.get_string().c_str())); +} + +ValueNode_Animated::WaypointList::const_iterator +ValueNode_Animated::find_next(const Time &x)const +{ + return const_cast(this)->find_next(x); + /* + WaypointList::const_iterator iter(binary_find(waypoint_list().begin(),waypoint_list().end(),x)); + + if(iter!=waypoint_list().end()) + { + if(iter->get_time()-Time::epsilon()>x) + return iter; + ++iter; + if(iter!=waypoint_list().end() && iter->get_time()-Time::epsilon()>x) + return iter; + } + + throw Exception::NotFound(strprintf("ValueNode_Animated::find_next(): Can't find Waypoint after %s",x.get_string().c_str())); +*/ +} + +ValueNode_Animated::WaypointList::iterator +ValueNode_Animated::find_prev(const Time &x) +{ + WaypointList::iterator iter(binary_find(waypoint_list().begin(),waypoint_list().end(),x)); + + if(iter!=waypoint_list().end()) + { + if(iter->get_time().is_less_than(x)) + return iter; + if(iter!=waypoint_list().begin() && (--iter)->get_time().is_less_than(x)) + return iter; + } + + throw Exception::NotFound(strprintf("ValueNode_Animated::find_prev(): Can't find Waypoint after %s",x.get_string().c_str())); +} + +ValueNode_Animated::WaypointList::const_iterator +ValueNode_Animated::find_prev(const Time &x)const +{ + return const_cast(this)->find_prev(x); + /* + WaypointList::const_iterator iter(binary_find(waypoint_list().begin(),waypoint_list().end(),x)); + + if(iter!=waypoint_list().end()) + { + if(iter->get_time()+Time::epsilon()get_time()+Time::epsilon()); + case ValueBase::TYPE_REAL: + return ValueNode_Animated::Handle(new _Hermite); + case ValueBase::TYPE_INTEGER: + return ValueNode_Animated::Handle(new _Hermite); + case ValueBase::TYPE_ANGLE: + return ValueNode_Animated::Handle(new _Hermite); + case ValueBase::TYPE_VECTOR: + return ValueNode_Animated::Handle(new _Hermite); + case ValueBase::TYPE_COLOR: + return ValueNode_Animated::Handle(new _Hermite); + + case ValueBase::TYPE_STRING: + return ValueNode_Animated::Handle(new _Constant); + case ValueBase::TYPE_GRADIENT: + return ValueNode_Animated::Handle(new _Constant); + case ValueBase::TYPE_BOOL: + return ValueNode_Animated::Handle(new _AnimBool); + case ValueBase::TYPE_CANVAS: + return ValueNode_Animated::Handle(new _Constant); + default: + throw + Exception::BadType(strprintf(_("%s: You cannot use a %s in an animated ValueNode"),"synfig::ValueNode_Animated::create()", + ValueBase::type_name(type).c_str()) + ); + break; + } + return ValueNode_Animated::Handle(); +} + +ValueNode_Animated::Handle +ValueNode_Animated::create(const ValueBase& value, const Time& time) +{ + return create(ValueNode::Handle(ValueNode_Const::create(value)),time); +} + +ValueNode_Animated::Handle +ValueNode_Animated::create(ValueNode::Handle value_node, const Time& time) +{ + ValueNode_Animated::Handle ret(create(value_node->get_type())); + ret->new_waypoint(time,value_node); + return ret; +} + +ValueNode_Animated::~ValueNode_Animated() +{ +} + +String +ValueNode_Animated::get_name()const +{ + return "animated"; +} + +String +ValueNode_Animated::get_local_name()const +{ + return _("Animated"); +} + +void ValueNode_Animated::get_times_vfunc(Node::time_set &set) const +{ + //add all the way point times to the value node... + + WaypointList::const_iterator i = waypoint_list().begin(), + end = waypoint_list().end(); + + for(; i != end; ++i) + { + TimePoint t; + t.set_time(i->get_time()); + t.set_before(i->get_before()); + t.set_after(i->get_after()); + t.set_guid(i->get_guid()); + set.insert(t); + } +} +struct timecmp + { + Time t; + + timecmp(const Time &c) :t(c) {} + + bool operator()(const Waypoint &rhs) const + { + return t.is_equal(rhs.get_time()); + } + }; + + ValueNode_Animated::findresult + ValueNode_Animated::find_uid(const UniqueID &x) + { + findresult f; + f.second = false; + + //search for it... and set the bool part of the return value to true if we found it! + f.first = std::find(waypoint_list_.begin(), waypoint_list_.end(), x); + if(f.first != waypoint_list_.end()) + f.second = true; + + return f; + } + + ValueNode_Animated::const_findresult + ValueNode_Animated::find_uid(const UniqueID &x)const + { + const_findresult f; + f.second = false; + + //search for it... and set the bool part of the return value to true if we found it! + f.first = std::find(waypoint_list_.begin(), waypoint_list_.end(), x); + if(f.first != waypoint_list_.end()) + f.second = true; + + return f; + } + + ValueNode_Animated::findresult + ValueNode_Animated::find_time(const Time &x) + { + findresult f; + f.second = false; + + //search for it... and set the bool part of the return value to true if we found it! + f.first = std::find_if(waypoint_list_.begin(), waypoint_list_.end(), timecmp(x)); + if(f.first != waypoint_list_.end()) + f.second = true; + + return f; + } + +ValueNode_Animated::const_findresult +ValueNode_Animated::find_time(const Time &x)const +{ + const_findresult f; + f.second = false; + + //search for it... and set the bool part of the return value to true if we found it! + f.first = std::find_if(waypoint_list_.begin(), waypoint_list_.end(), timecmp(x)); + if(f.first != waypoint_list_.end()) + f.second = true; + + return f; +} + +void +ValueNode_Animated::insert_time(const Time& location, const Time& delta) +{ + if(!delta) + return; + try + { + WaypointList::iterator iter(find_next(location)); + for(;iter!=waypoint_list().end();++iter) + { + iter->set_time(iter->get_time()+delta); + } + changed(); + } + catch(Exception::NotFound) { } +} diff --git a/synfig-core/tags/stable/src/synfig/valuenode_animated.h b/synfig-core/tags/stable/src/synfig/valuenode_animated.h new file mode 100644 index 0000000..1410a9b --- /dev/null +++ b/synfig-core/tags/stable/src/synfig/valuenode_animated.h @@ -0,0 +1,117 @@ +/* === S Y N F I G ========================================================= */ +/*! \file valuenode_animated.h +** \brief Template Header +** +** $Id$ +** +** \legal +** Copyright (c) 2002-2005 Robert B. Quattlebaum Jr., Adrian Bentley +** +** This package is free software; you can redistribute it and/or +** modify it under the terms of the GNU General Public License as +** published by the Free Software Foundation; either version 2 of +** the License, or (at your option) any later version. +** +** This package is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +** General Public License for more details. +** \endlegal +*/ +/* ========================================================================= */ + +/* === S T A R T =========================================================== */ + +#ifndef __SYNFIG_VALUENODE_ANIMATED_H +#define __SYNFIG_VALUENODE_ANIMATED_H + +/* === H E A D E R S ======================================================= */ + +#include + +#include "valuenode.h" +#include "uniqueid.h" +#include "waypoint.h" + +/* === M A C R O S ========================================================= */ + +/* === C L A S S E S & S T R U C T S ======================================= */ + +namespace synfig { + +struct ValueNode_Animated : public ValueNode +{ +public: + typedef etl::handle Handle; + typedef etl::handle ConstHandle; + + typedef synfig::Waypoint Waypoint; + typedef synfig::WaypointList WaypointList; + + typedef std::pair findresult; + typedef std::pair const_findresult; + +protected: + WaypointList waypoint_list_; + +public: + WaypointList &waypoint_list() { return waypoint_list_; } + + const WaypointList &waypoint_list()const { return waypoint_list_; } + + virtual WaypointList::iterator new_waypoint(Time t, ValueBase value)=0; + + virtual WaypointList::iterator new_waypoint(Time t, ValueNode::Handle value_node)=0; + + /*! \note this does not add any waypoint to the ValueNode! */ + Waypoint new_waypoint_at_time(const Time& t)const; + + WaypointList::iterator add(const Waypoint &x); + + void erase(const UniqueID &x); + + //either use find result (return bool and iterator) or + findresult find_uid(const UniqueID &x); + const_findresult find_uid(const UniqueID &x)const; + findresult find_time(const Time &x); + const_findresult find_time(const Time &x)const; + + WaypointList::iterator find(const UniqueID &x); + WaypointList::const_iterator find(const UniqueID &x)const; + WaypointList::iterator find(const Time &x); + WaypointList::const_iterator find(const Time &x)const; + + WaypointList::iterator find_next(const Time &x); + WaypointList::const_iterator find_next(const Time &x)const; + WaypointList::iterator find_prev(const Time &x); + WaypointList::const_iterator find_prev(const Time &x)const; + + virtual ~ValueNode_Animated(); + + virtual String get_name()const; + virtual String get_local_name()const; + + static Handle create(ValueBase::Type type); + + static Handle create(const ValueBase& value, const Time& time); + + static Handle create(ValueNode::Handle value_node, const Time& time); + + int find(const Time& begin,const Time& end,std::vector& list); + + void insert_time(const Time& location, const Time& delta); + +protected: + ValueNode_Animated(); + + void set_type(ValueBase::Type t); + virtual void get_times_vfunc(Node::time_set &set) const; +public: + DCAST_HACK_ID(4); +}; + +}; // END of namespace synfig + +/* === E N D =============================================================== */ + +#endif diff --git a/synfig-core/tags/stable/src/synfig/valuenode_bline.cpp b/synfig-core/tags/stable/src/synfig/valuenode_bline.cpp new file mode 100644 index 0000000..ee0d831 --- /dev/null +++ b/synfig-core/tags/stable/src/synfig/valuenode_bline.cpp @@ -0,0 +1,758 @@ +/* === S Y N F I G ========================================================= */ +/*! \file valuenode_bline.cpp +** \brief Template File +** +** $Id$ +** +** \legal +** Copyright (c) 2002-2005 Robert B. Quattlebaum Jr., Adrian Bentley +** +** This package is free software; you can redistribute it and/or +** modify it under the terms of the GNU General Public License as +** published by the Free Software Foundation; either version 2 of +** the License, or (at your option) any later version. +** +** This package is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +** General Public License for more details. +** \endlegal +*/ +/* ========================================================================= */ + +/* === H E A D E R S ======================================================= */ + +#ifdef USING_PCH +# include "pch.h" +#else +#ifdef HAVE_CONFIG_H +# include +#endif + +#include "valuenode_bline.h" +#include "valuenode_const.h" +#include "valuenode_composite.h" +#include "general.h" +#include "exception.h" +#include "blinepoint.h" +#include +#include +#include +#include +#include +#include "segment.h" + +#endif + +/* === U S I N G =========================================================== */ + +using namespace std; +using namespace etl; +using namespace synfig; + +/* === M A C R O S ========================================================= */ + +/* === G L O B A L S ======================================================= */ + +/* === P R O C E D U R E S ================================================= */ + +inline float +linear_interpolation(const float& a, const float& b, float c) +{ return (b-a)*c+a; } + +inline Vector +linear_interpolation(const Vector& a, const Vector& b, float c) +{ return (b-a)*c+a; } + +inline Vector +radial_interpolation(const Vector& a, const Vector& b, float c) +{ + // if either extreme is zero then use linear interpolation instead + if (a.is_equal_to(Vector::zero()) || b.is_equal_to(Vector::zero())) + return linear_interpolation(a, b, c); + + affine_combo mag_combo; + affine_combo ang_combo; + + Real mag(mag_combo(a.mag(),b.mag(),c)); + Angle ang(ang_combo(Angle::tan(a[1],a[0]),Angle::tan(b[1],b[0]),c)); + + return Point( mag*Angle::cos(ang).get(),mag*Angle::sin(ang).get() ); +} + +inline void +transform_coords(Vector in, Vector& out, const Point& coord_origin, const Point *coord_sys) +{ + in -= coord_origin; + out[0] = in * coord_sys[0]; + out[1] = in * coord_sys[1]; +} + +inline void +untransform_coords(const Vector& in, Vector& out, const Point& coord_origin, const Point *coord_sys) +{ + out[0] = in * coord_sys[0]; + out[1] = in * coord_sys[1]; + out += coord_origin; +} + +ValueBase +synfig::convert_bline_to_segment_list(const ValueBase& bline) +{ + std::vector ret; + +// std::vector list(bline.operator std::vector()); + //std::vector list(bline); + std::vector list(bline.get_list().begin(),bline.get_list().end()); + std::vector::const_iterator iter; + + BLinePoint prev,first; + + //start with prev = first and iter on the second... + + if(list.empty()) return ValueBase(ret,bline.get_loop()); + first = prev = list.front(); + + for(iter=++list.begin();iter!=list.end();++iter) + { + ret.push_back( + Segment( + prev.get_vertex(), + prev.get_tangent2(), + iter->get_vertex(), + iter->get_tangent1() + ) + ); + prev=*iter; + } + if(bline.get_loop()) + { + ret.push_back( + Segment( + prev.get_vertex(), + prev.get_tangent2(), + first.get_vertex(), + first.get_tangent1() + ) + ); + } + return ValueBase(ret,bline.get_loop()); +} + +ValueBase +synfig::convert_bline_to_width_list(const ValueBase& bline) +{ + std::vector ret; +// std::vector list(bline.operator std::vector()); + //std::vector list(bline); + std::vector list(bline.get_list().begin(),bline.get_list().end()); + std::vector::const_iterator iter; + + if(bline.empty()) + return ValueBase(ValueBase::TYPE_LIST); + + for(iter=list.begin();iter!=list.end();++iter) + ret.push_back(iter->get_width()); + + if(bline.get_loop()) + ret.push_back(list.front().get_width()); + + return ValueBase(ret,bline.get_loop()); +} + + +/* === M E T H O D S ======================================================= */ + + +ValueNode_BLine::ValueNode_BLine(): + ValueNode_DynamicList(ValueBase::TYPE_BLINEPOINT) +{ +} + +ValueNode_BLine::~ValueNode_BLine() +{ +} + +ValueNode_BLine* +ValueNode_BLine::create(const ValueBase &value) +{ + if(value.get_type()!=ValueBase::TYPE_LIST) + return 0; + + ValueNode_BLine* value_node(new ValueNode_BLine()); + + if(!value.empty()) + { + switch(value.get_contained_type()) + { + case ValueBase::TYPE_BLINEPOINT: + { +// std::vector bline_points(value.operator std::vector()); + //std::vector bline_points(value); + std::vector bline_points(value.get_list().begin(),value.get_list().end()); + std::vector::const_iterator iter; + + for(iter=bline_points.begin();iter!=bline_points.end();iter++) + { + value_node->add(ValueNode::Handle(ValueNode_Composite::create(*iter))); + } + value_node->set_loop(value.get_loop()); + } + break; + case ValueBase::TYPE_SEGMENT: + { + // Here, we want to convert a list of segments + // into a list of BLinePoints. We make an assumption + // that the segment list is continuous(sp), but not necessarily + // smooth. + + value_node->set_loop(false); +// std::vector segments(value.operator std::vector()); +// std::vector segments(value); + std::vector segments(value.get_list().begin(),value.get_list().end()); + std::vector::const_iterator iter,last(segments.end()); + --last; + ValueNode_Const::Handle prev,first; + + for(iter=segments.begin();iter!=segments.end();iter++) + { +#define PREV_POINT prev->get_value().get(BLinePoint()) +#define FIRST_POINT first->get_value().get(BLinePoint()) +#define CURR_POINT curr->get_value().get(BLinePoint()) + if(iter==segments.begin()) + { + prev=ValueNode_Const::create(ValueBase::TYPE_BLINEPOINT); + { + BLinePoint prev_point(PREV_POINT); + prev_point.set_vertex(iter->p1); + prev_point.set_tangent1(iter->t1); + prev_point.set_width(0.01); + prev_point.set_origin(0.5); + prev_point.set_split_tangent_flag(false); + prev->set_value(prev_point); + } + first=prev; + value_node->add(ValueNode::Handle(prev)); + + } + if(iter==last && iter->p2.is_equal_to(FIRST_POINT.get_vertex())) + { + value_node->set_loop(true); + if(!iter->t2.is_equal_to(FIRST_POINT.get_tangent1())) + { + BLinePoint first_point(FIRST_POINT); + first_point.set_tangent1(iter->t2); + first->set_value(first_point); + } + continue; + } + + ValueNode_Const::Handle curr; + curr=ValueNode_Const::create(ValueBase::TYPE_BLINEPOINT); + { + BLinePoint curr_point(CURR_POINT); + curr_point.set_vertex(iter->p2); + curr_point.set_tangent1(iter->t2); + curr_point.set_width(0.01); + curr_point.set_origin(0.5); + curr_point.set_split_tangent_flag(false); + curr->set_value(curr_point); + } + if(!PREV_POINT.get_tangent1().is_equal_to(iter->t1)) + { + BLinePoint prev_point(PREV_POINT); + prev_point.set_split_tangent_flag(true); + prev_point.set_tangent2(iter->t1); + prev->set_value(prev_point); + } + value_node->add(ValueNode::Handle(curr)); + prev=curr; + } + + } + break; + default: + // We got a list of who-knows-what. We don't have any idea + // what to do with it. + return 0; + break; + } + } + + + return value_node; +} + +ValueNode_BLine::ListEntry +ValueNode_BLine::create_list_entry(int index, Time time, Real origin) +{ + ValueNode_BLine::ListEntry ret; + + + synfig::BLinePoint prev,next; + + int prev_i,next_i; + + index=index%link_count(); + + assert(index>=0); + ret.index=index; + ret.set_parent_value_node(this); + + if(!list[index].status_at_time(time)) + next_i=find_next_valid_entry(index,time); + else + next_i=index; + prev_i=find_prev_valid_entry(index,time); + + synfig::info("index=%d, next_i=%d, prev_i=%d",index,next_i,prev_i); + + next=(*list[next_i].value_node)(time); + prev=(*list[prev_i].value_node)(time); + + etl::hermite curve(prev.get_vertex(),next.get_vertex(),prev.get_tangent2(),next.get_tangent1()); + etl::derivative< etl::hermite > deriv(curve); + + synfig::BLinePoint bline_point; + bline_point.set_vertex(curve(origin)); + bline_point.set_width((next.get_width()-prev.get_width())*origin+prev.get_width()); + bline_point.set_tangent1(deriv(origin)*min(1.0-origin,origin)); + bline_point.set_tangent2(bline_point.get_tangent1()); + bline_point.set_split_tangent_flag(false); + bline_point.set_origin(origin); + + ret.value_node=ValueNode_Composite::create(bline_point); + + return ret; +} + +ValueBase +ValueNode_BLine::operator()(Time t)const +{ + std::vector ret_list; + + std::vector::const_iterator iter,first_iter; + bool first_flag(true); + bool rising; + int index(0); + float next_scale(1.0f); + + BLinePoint prev,first; + first.set_origin(100.0f); + + for(iter=list.begin();iter!=list.end();++iter,index++) + { + float amount(iter->amount_at_time(t,&rising)); + + assert(amount>=0.0f); + assert(amount<=1.0f); + + if(amount==1.0f) + { + if(first_flag) + { + first_iter=iter; + first=prev=(*iter->value_node)(t).get(prev); + first_flag=false; + ret_list.push_back(first); + continue; + } + + BLinePoint curr; + curr=(*iter->value_node)(t).get(prev); + + if(next_scale!=1.0f) + { + ret_list.back().set_split_tangent_flag(true); + ret_list.back().set_tangent2(prev.get_tangent2()*next_scale); + + ret_list.push_back(curr); + + ret_list.back().set_split_tangent_flag(true); + ret_list.back().set_tangent2(curr.get_tangent2()); + ret_list.back().set_tangent1(curr.get_tangent1()*next_scale); + + next_scale=1.0f; + } + else + { + ret_list.push_back(curr); + } + + prev=curr; + } + else + if(amount>0.0f) + { + std::vector::const_iterator begin_iter,end_iter; + + // This is where the interesting stuff happens + // We need to seek forward in the list to see what the next + // active point is + + BLinePoint blp_here_on; // the current vertex, when fully on + BLinePoint blp_here_off; // the current vertex, when fully off + BLinePoint blp_here_now; // the current vertex, right now (between on and off) + BLinePoint blp_prev_off; // the beginning of dynamic group when fully off + BLinePoint blp_next_off; // the end of the dynamic group when fully off + + int dist_from_begin(0), dist_from_end(0); + Time off_time, on_time; + + if(!rising) // if not rising, then we were fully on in the past, and will be fully off in the future + { + try{ on_time=iter->find_prev(t)->get_time(); } + catch(...) { on_time=Time::begin(); } + try{ off_time=iter->find_next(t)->get_time(); } + catch(...) { off_time=Time::end(); } + } + else // otherwise we were fully off in the past, and will be fully on in the future + { + try{ off_time=iter->find_prev(t)->get_time(); } + catch(...) { off_time=Time::begin(); } + try{ on_time=iter->find_next(t)->get_time(); } + catch(...) { on_time=Time::end(); } + } + + blp_here_on=(*iter->value_node)(on_time).get(blp_here_on); +// blp_here_on=(*iter->value_node)(t).get(blp_here_on); + + // Find "end" of dynamic group + end_iter=iter; +// for(++end_iter;begin_iter!=list.end();++end_iter) + for(++end_iter;end_iter!=list.end();++end_iter) + if(end_iter->amount_at_time(t)>amount) + { + blp_next_off=(*end_iter->value_node)(off_time).get(prev); + break; + } + + // If we did not find an end of the dynamic group... + if(end_iter==list.end()) + { + if(get_loop()) + { + end_iter=first_iter; + blp_next_off=(*end_iter->value_node)(off_time).get(prev); +// end=first; + } + else + { + // Writeme! + end_iter=first_iter; + blp_next_off=(*end_iter->value_node)(off_time).get(prev); +// end=first; + } + } + + // Find "begin" of dynamic group + begin_iter=iter; + blp_prev_off.set_origin(100.0f); // set the origin to 100 (which is crazy) so that we can check to see if it was found + do + { + if(begin_iter==list.begin()) + { + if(get_loop()) + begin_iter=list.end(); + else + break; + } + + --begin_iter; + dist_from_begin++; + + if(begin_iter==iter) + break; + + if(begin_iter->amount_at_time(t)>amount) + { + blp_prev_off=(*begin_iter->value_node)(off_time).get(prev); + break; + } + }while(begin_iter!=iter); + + // If we did not find a begin + if(blp_prev_off.get_origin()==100.0f) + { + if(get_loop()) + { + begin_iter=first_iter; + blp_prev_off=(*begin_iter->value_node)(off_time).get(prev); +// blp_prev_off=first; + } + else + { + // Writeme! + begin_iter=first_iter; + blp_prev_off=(*begin_iter->value_node)(off_time).get(prev); +// blp_prev_off=first; + } + } + + // this is how the curve looks when we have completely vanished + etl::hermite curve(blp_prev_off.get_vertex(), blp_next_off.get_vertex(), + blp_prev_off.get_tangent2(), blp_next_off.get_tangent1()); + etl::derivative< etl::hermite > deriv(curve); + + // where would we be on this curve, how wide will we be, and + // where will our tangents point (all assuming that we hadn't vanished) + blp_here_off.set_vertex(curve(blp_here_on.get_origin())); + blp_here_off.set_width((blp_next_off.get_width()-blp_prev_off.get_width())*blp_here_on.get_origin()+blp_prev_off.get_width()); + blp_here_off.set_tangent1(deriv(blp_here_on.get_origin())); + blp_here_off.set_tangent2(deriv(blp_here_on.get_origin())); + + float prev_tangent_scalar(1.0f); + float next_tangent_scalar(1.0f); + + //synfig::info("index_%d:dist_from_begin=%d",index,dist_from_begin); + //synfig::info("index_%d:dist_from_end=%d",index,dist_from_end); + + // If we are the next to the begin + if(begin_iter==--std::vector::const_iterator(iter) || dist_from_begin==1) + prev_tangent_scalar=linear_interpolation(blp_here_on.get_origin(), 1.0f, amount); + else + prev_tangent_scalar=linear_interpolation(blp_here_on.get_origin()-prev.get_origin(), 1.0f, amount); + + // If we are the next to the end + if(end_iter==++std::vector::const_iterator(iter) || dist_from_end==1) + next_tangent_scalar=linear_interpolation(1.0-blp_here_on.get_origin(), 1.0f, amount); + else if(list.end()!=++std::vector::const_iterator(iter)) + { + BLinePoint next; + next=((*(++std::vector::const_iterator(iter))->value_node)(t).get(prev)); + next_tangent_scalar=linear_interpolation(next.get_origin()-blp_here_on.get_origin(), 1.0f, amount); + } + else + //! \todo this isn't quite right; we should handle looped blines identically no matter where the loop happens + //! and we currently don't. this at least makes it a lot better than it was before + next_tangent_scalar=linear_interpolation(blp_next_off.get_origin()-blp_here_on.get_origin(), 1.0f, amount); + next_scale=next_tangent_scalar; + + //blp_here_now.set_vertex(linear_interpolation(blp_here_off.get_vertex(), blp_here_on.get_vertex(), amount)); + // if(false) + // { + // // My first try + // Point ref_point_begin(((*begin_iter->value_node)(off_time).get(prev).get_vertex() + + // (*end_iter->value_node)(off_time).get(prev).get_vertex()) * 0.5); + // Point ref_point_end(((*begin_iter->value_node)(on_time).get(prev).get_vertex() + + // (*end_iter->value_node)(on_time).get(prev).get_vertex()) * 0.5); + // Point ref_point_now(((*begin_iter->value_node)(t).get(prev).get_vertex() + + // (*end_iter->value_node)(t).get(prev).get_vertex()) * 0.5); + // Point ref_point_linear(linear_interpolation(ref_point_begin, ref_point_end, amount)); + // + // blp_here_now.set_vertex(linear_interpolation(blp_here_off.get_vertex(), blp_here_on.get_vertex(), amount) + + // (ref_point_now-ref_point_linear)); + // blp_here_now.set_tangent1(linear_interpolation(blp_here_off.get_tangent1(), blp_here_on.get_tangent1(), amount)); + // blp_here_now.set_split_tangent_flag(blp_here_on.get_split_tangent_flag()); + // if(blp_here_now.get_split_tangent_flag()) + // blp_here_now.set_tangent2(linear_interpolation(blp_here_off.get_tangent2(), blp_here_on.get_tangent2(), amount)); + // } + // else + { + // My second try + + // define 3 coordinate systems: + Point off_coord_sys[2], off_coord_origin; // when the current vertex is completely off + Point on_coord_sys[2] , on_coord_origin; // when the current vertex is completely on + Point curr_coord_sys[2], curr_coord_origin; // the current state - somewhere in between + + // for each of the 3 systems, the origin is half way between the previous and next active point + // and the axes are based on a vector from the next active point to the previous + { + const Point end_pos_at_off_time(( *end_iter->value_node)(off_time).get(prev).get_vertex()); + const Point begin_pos_at_off_time((*begin_iter->value_node)(off_time).get(prev).get_vertex()); + off_coord_origin=(begin_pos_at_off_time + end_pos_at_off_time)/2; + off_coord_sys[0]=(begin_pos_at_off_time - end_pos_at_off_time).norm(); + off_coord_sys[1]=off_coord_sys[0].perp(); + + const Point end_pos_at_on_time(( *end_iter->value_node)(on_time).get(prev).get_vertex()); + const Point begin_pos_at_on_time((*begin_iter->value_node)(on_time).get(prev).get_vertex()); + on_coord_origin=(begin_pos_at_on_time + end_pos_at_on_time)/2; + on_coord_sys[0]=(begin_pos_at_on_time - end_pos_at_on_time).norm(); + on_coord_sys[1]=on_coord_sys[0].perp(); + + const Point end_pos_at_current_time(( *end_iter->value_node)(t).get(prev).get_vertex()); + const Point begin_pos_at_current_time((*begin_iter->value_node)(t).get(prev).get_vertex()); + curr_coord_origin=(begin_pos_at_current_time + end_pos_at_current_time)/2; + curr_coord_sys[0]=(begin_pos_at_current_time - end_pos_at_current_time).norm(); + curr_coord_sys[1]=curr_coord_sys[0].perp(); + + // Invert (transpose) the last of these matricies, since we use it for transform back + swap(curr_coord_sys[0][1],curr_coord_sys[1][0]); + } + + /* The code that was here before used just end_iter as the origin, rather than the mid-point */ + + // We know our location and tangent(s) when fully on and fully off + // Transform each of these into their corresponding coordinate system + Point trans_on_point, trans_off_point; + Vector trans_on_t1, trans_on_t2, trans_off_t1, trans_off_t2; + + transform_coords(blp_here_on.get_vertex(), trans_on_point, on_coord_origin, on_coord_sys); + transform_coords(blp_here_off.get_vertex(), trans_off_point, off_coord_origin, off_coord_sys); + +#define COORD_SYS_RADIAL_TAN_INTERP 1 + +#ifdef COORD_SYS_RADIAL_TAN_INTERP + transform_coords(blp_here_on.get_tangent1(), trans_on_t1, Point::zero(), on_coord_sys); + transform_coords(blp_here_off.get_tangent1(), trans_off_t1, Point::zero(), off_coord_sys); + + if(blp_here_on.get_split_tangent_flag()) + { + transform_coords(blp_here_on.get_tangent2(), trans_on_t2, Point::zero(), on_coord_sys); + transform_coords(blp_here_off.get_tangent2(), trans_off_t2, Point::zero(), off_coord_sys); + } +#endif + + { + // Interpolate between the 'on' point and the 'off' point and untransform to get our point's location + Point tmp; + untransform_coords(linear_interpolation(trans_off_point, trans_on_point, amount), + tmp, curr_coord_origin, curr_coord_sys); + blp_here_now.set_vertex(tmp); + } + +#define INTERP_FUNCTION radial_interpolation +//#define INTERP_FUNCTION linear_interpolation + +#ifdef COORD_SYS_RADIAL_TAN_INTERP + { + Vector tmp; + untransform_coords(INTERP_FUNCTION(trans_off_t1,trans_on_t1,amount), tmp, Point::zero(), curr_coord_sys); + blp_here_now.set_tangent1(tmp); + } +#else + blp_here_now.set_tangent1(radial_interpolation(blp_here_off.get_tangent1(),blp_here_on.get_tangent1(),amount)); +#endif + + if (blp_here_on.get_split_tangent_flag()) + { + blp_here_now.set_split_tangent_flag(true); +#ifdef COORD_SYS_RADIAL_TAN_INTERP + { + Vector tmp; + untransform_coords(INTERP_FUNCTION(trans_off_t2,trans_on_t2,amount), tmp, Point::zero(), curr_coord_sys); + blp_here_now.set_tangent2(tmp); + } +#else + blp_here_now.set_tangent2(radial_interpolation(blp_here_off.get_tangent2(),blp_here_on.get_tangent2(),amount)); +#endif + } + else + blp_here_now.set_split_tangent_flag(false); + } + + blp_here_now.set_origin(blp_here_on.get_origin()); + blp_here_now.set_width(linear_interpolation(blp_here_off.get_width(), blp_here_on.get_width(), amount)); + + // Handle the case where we are the first vertex + if(first_flag) + { + blp_here_now.set_tangent1(blp_here_now.get_tangent1()*prev_tangent_scalar); + first_iter=iter; + first=prev=blp_here_now; + first_flag=false; + ret_list.push_back(blp_here_now); + continue; + } + + ret_list.back().set_split_tangent_flag(true); + ret_list.back().set_tangent2(prev.get_tangent2()*prev_tangent_scalar); + ret_list.push_back(blp_here_now); + ret_list.back().set_split_tangent_flag(true); + //ret_list.back().set_tangent2(blp_here_now.get_tangent1()); + ret_list.back().set_tangent1(blp_here_now.get_tangent1()*prev_tangent_scalar); + + prev=blp_here_now; + } + } + + if(next_scale!=1.0f) + { + ret_list.back().set_split_tangent_flag(true); + ret_list.back().set_tangent2(prev.get_tangent2()*next_scale); + } + +/* + if(get_loop() && !first_flag) + { + ret_list.push_back( + Segment( + prev.get_vertex(), + prev.get_tangent2(), + first.get_vertex(), + first.get_tangent1() + ) + ); + } +*/ + + if(list.empty()) + synfig::warning(string("ValueNode_BLine::operator()():")+_("No entries in list")); + else + if(ret_list.empty()) + synfig::warning(string("ValueNode_BLine::operator()():")+_("No entries in ret_list")); + + return ValueBase(ret_list,get_loop()); +} + +String +ValueNode_BLine::link_local_name(int i)const +{ + assert(i>=0 && (unsigned)iset_guid(get_guid()^deriv_guid); + + std::vector::const_iterator iter; + + for(iter=list.begin();iter!=list.end();++iter) + { + if(iter->value_node->is_exported()) + ret->add(*iter); + else + { + ListEntry list_entry(*iter); + //list_entry.value_node=find_value_node(iter->value_node->get_guid()^deriv_guid).get(); + //if(!list_entry.value_node) + list_entry.value_node=iter->value_node->clone(deriv_guid); + ret->add(list_entry); + //ret->list.back().value_node=iter->value_node.clone(); + } + } + ret->set_loop(get_loop()); + + return ret; +} + +String +ValueNode_BLine::get_name()const +{ + return "bline"; +} + +String +ValueNode_BLine::get_local_name()const +{ + return _("BLine"); +} + +LinkableValueNode* +ValueNode_BLine::create_new()const +{ + assert(0); + return 0; +} + +bool +ValueNode_BLine::check_type(ValueBase::Type type) +{ + return type==ValueBase::TYPE_LIST; +} diff --git a/synfig-core/tags/stable/src/synfig/valuenode_bline.h b/synfig-core/tags/stable/src/synfig/valuenode_bline.h new file mode 100644 index 0000000..221dc32 --- /dev/null +++ b/synfig-core/tags/stable/src/synfig/valuenode_bline.h @@ -0,0 +1,98 @@ +/* === S Y N F I G ========================================================= */ +/*! \file valuenode_bline.h +** \brief Template Header +** +** $Id$ +** +** \legal +** Copyright (c) 2002-2005 Robert B. Quattlebaum Jr., Adrian Bentley +** +** This package is free software; you can redistribute it and/or +** modify it under the terms of the GNU General Public License as +** published by the Free Software Foundation; either version 2 of +** the License, or (at your option) any later version. +** +** This package is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +** General Public License for more details. +** \endlegal +*/ +/* ========================================================================= */ + +/* === S T A R T =========================================================== */ + +#ifndef __SYNFIG_VALUENODE_BLINE_H +#define __SYNFIG_VALUENODE_BLINE_H + +/* === H E A D E R S ======================================================= */ + +#include +#include + +#include "valuenode.h" +#include "time.h" +#include "uniqueid.h" +#include "blinepoint.h" +#include "valuenode_dynamiclist.h" + +/* === M A C R O S ========================================================= */ + +/* === C L A S S E S & S T R U C T S ======================================= */ + +namespace synfig { + + +//! Converts a list of bline points into a list of segments +ValueBase convert_bline_to_segment_list(const ValueBase &bline); + +//! Converts a list of bline points into a list of widths +ValueBase convert_bline_to_width_list(const ValueBase &bline); + +/*! \class ValueNode_BLine +** \brief \writeme +*/ +class ValueNode_BLine : public ValueNode_DynamicList +{ +public: + + typedef etl::handle Handle; + typedef etl::handle ConstHandle; + + + ValueNode_BLine(); + +public: + + + + virtual ValueBase operator()(Time t)const; + + virtual ~ValueNode_BLine(); + + virtual String link_local_name(int i)const; + + virtual String get_name()const; + virtual String get_local_name()const; + + virtual ValueNode* clone(const GUID& deriv_guid=GUID())const; + + virtual ListEntry create_list_entry(int index, Time time=0, Real origin=0.5); + +protected: + + LinkableValueNode* create_new()const; + +public: + //using synfig::LinkableValueNode::set_link_vfunc; + static bool check_type(ValueBase::Type type); + static ValueNode_BLine* create(const ValueBase &x=ValueBase::TYPE_LIST); +}; // END of class ValueNode_BLine + +typedef ValueNode_BLine::ListEntry::ActivepointList ActivepointList; + +}; // END of namespace synfig + +/* === E N D =============================================================== */ + +#endif diff --git a/synfig-core/tags/stable/src/synfig/valuenode_composite.cpp b/synfig-core/tags/stable/src/synfig/valuenode_composite.cpp new file mode 100644 index 0000000..84203c0 --- /dev/null +++ b/synfig-core/tags/stable/src/synfig/valuenode_composite.cpp @@ -0,0 +1,390 @@ +/* === S Y N F I G ========================================================= */ +/*! \file valuenode_composite.cpp +** \brief Template File +** +** $Id$ +** +** \legal +** Copyright (c) 2002-2005 Robert B. Quattlebaum Jr., Adrian Bentley +** +** This package is free software; you can redistribute it and/or +** modify it under the terms of the GNU General Public License as +** published by the Free Software Foundation; either version 2 of +** the License, or (at your option) any later version. +** +** This package is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +** General Public License for more details. +** \endlegal +*/ +/* ========================================================================= */ + +/* === H E A D E R S ======================================================= */ + +#ifdef USING_PCH +# include "pch.h" +#else +#ifdef HAVE_CONFIG_H +# include +#endif + +#include "valuenode_composite.h" +#include "valuenode_const.h" +#include +#include "general.h" +#include "valuenode_radialcomposite.h" +#include "vector.h" +#include "color.h" +#include "segment.h" + +#endif + +/* === U S I N G =========================================================== */ + +using namespace std; +using namespace etl; +using namespace synfig; + +/* === M A C R O S ========================================================= */ + +/* === G L O B A L S ======================================================= */ + +/* === P R O C E D U R E S ================================================= */ + +/* === M E T H O D S ======================================================= */ + +synfig::ValueNode_Composite::ValueNode_Composite(const ValueBase &value): + LinkableValueNode(value.get_type()) +{ + switch(get_type()) + { + case ValueBase::TYPE_VECTOR: + set_link("x",ValueNode_Const::create(value.get(Vector())[0])); + set_link("y",ValueNode_Const::create(value.get(Vector())[1])); + break; + case ValueBase::TYPE_COLOR: + set_link("r",ValueNode_Const::create(value.get(Color()).get_r())); + set_link("g",ValueNode_Const::create(value.get(Color()).get_g())); + set_link("b",ValueNode_Const::create(value.get(Color()).get_b())); + set_link("a",ValueNode_Const::create(value.get(Color()).get_a())); + break; + case ValueBase::TYPE_SEGMENT: + set_link("p1",ValueNode_Const::create(value.get(Segment()).p1)); + set_link("t1",ValueNode_Const::create(value.get(Segment()).t1)); + set_link("p2",ValueNode_Const::create(value.get(Segment()).p2)); + set_link("t2",ValueNode_Const::create(value.get(Segment()).t2)); + break; + case ValueBase::TYPE_BLINEPOINT: + { + BLinePoint bline_point(value); + set_link(0,ValueNode_Const::create(bline_point.get_vertex())); + set_link(1,ValueNode_Const::create(bline_point.get_width())); + set_link(2,ValueNode_Const::create(bline_point.get_origin())); + set_link(3,ValueNode_Const::create(bline_point.get_split_tangent_flag())); + set_link(4,ValueNode_RadialComposite::create(bline_point.get_tangent1())); + set_link(5,ValueNode_RadialComposite::create(bline_point.get_tangent2())); + break; + } + default: + assert(0); + throw Exception::BadType(ValueBase::type_name(get_type())); + } +} + +ValueNode_Composite::~ValueNode_Composite() +{ + unlink_all(); +} + +ValueNode_Composite* +ValueNode_Composite::create(const ValueBase &value) +{ + return new ValueNode_Composite(value); +} + +LinkableValueNode* +ValueNode_Composite::create_new()const +{ + return new ValueNode_Composite(ValueBase(get_type())); +} + +ValueBase +synfig::ValueNode_Composite::operator()(Time t)const +{ + switch(get_type()) + { + case ValueBase::TYPE_VECTOR: + { + Vector vect; + assert(components[0] && components[1]); + vect[0]=(*components[0])(t).get(Vector::value_type()); + vect[1]=(*components[1])(t).get(Vector::value_type()); + return vect; + } + case ValueBase::TYPE_COLOR: + { + Color color; + assert(components[0] && components[1] && components[2] && components[3]); + color.set_r((*components[0])(t).get(Vector::value_type())); + color.set_g((*components[1])(t).get(Vector::value_type())); + color.set_b((*components[2])(t).get(Vector::value_type())); + color.set_a((*components[3])(t).get(Vector::value_type())); + return color; + } + case ValueBase::TYPE_SEGMENT: + { + Segment seg; + assert(components[0] && components[1] && components[2] && components[3]); + seg.p1=(*components[0])(t).get(Point()); + seg.t1=(*components[1])(t).get(Vector()); + seg.p2=(*components[2])(t).get(Point()); + seg.t2=(*components[3])(t).get(Vector()); + return seg; + } + case ValueBase::TYPE_BLINEPOINT: + { + BLinePoint ret; + assert(components[0] && components[1] && components[2] && components[3] && components[4] && components[5]); + ret.set_vertex((*components[0])(t).get(Point())); + ret.set_width((*components[1])(t).get(Real())); + ret.set_origin((*components[2])(t).get(Real())); + ret.set_split_tangent_flag((*components[3])(t).get(bool())); + ret.set_tangent1((*components[4])(t).get(Vector())); + if(ret.get_split_tangent_flag()) + ret.set_tangent2((*components[5])(t).get(Vector())); + return ret; + } + default: + synfig::error(string("ValueNode_Composite::operator():")+_("Bad type for composite")); + assert(components[0]); + return (*components[0])(t); + } +} + +int +ValueNode_Composite::link_count()const +{ + switch(get_type()) + { + case ValueBase::TYPE_VECTOR: + return 2; + case ValueBase::TYPE_COLOR: + return 4; + case ValueBase::TYPE_SEGMENT: + return 4; + case ValueBase::TYPE_BLINEPOINT: + return 6; + default: + synfig::warning(string("ValueNode_Composite::component_count():")+_("Bad type for composite")); + return 1; + } +} + +bool +ValueNode_Composite::set_link_vfunc(int i,ValueNode::Handle x) +{ + assert(i>=0); + assert(i<6); + + if(PlaceholderValueNode::Handle::cast_dynamic(x)) + { + components[i]=x; + return true; + } + + switch(get_type()) + { + case ValueBase::TYPE_VECTOR: + assert(i<2); + if(x->get_type()==ValueBase(Real()).get_type() || PlaceholderValueNode::Handle::cast_dynamic(x)) + { + components[i]=x; + return true; + } + break; + + case ValueBase::TYPE_COLOR: + assert(i<4); + if(x->get_type()==ValueBase(Real()).get_type() || PlaceholderValueNode::Handle::cast_dynamic(x)) + { + components[i]=x; + return true; + } + break; + + case ValueBase::TYPE_SEGMENT: + assert(i<4); + if(x->get_type()==ValueBase(Point()).get_type() || PlaceholderValueNode::Handle::cast_dynamic(x)) + { + components[i]=x; + return true; + } + break; + + case ValueBase::TYPE_BLINEPOINT: + assert(i<6); + if((i==0 || i==4 || i==5) && x->get_type()==ValueBase(Point()).get_type()) + { + components[i]=x; + return true; + } + if((i==1 || i==2) && x->get_type()==ValueBase(Real()).get_type()) + { + components[i]=x; + return true; + } + if(i==3 && x->get_type()==ValueBase(bool()).get_type()) + { + components[i]=x; + return true; + } + break; + + default: + break; + } + return false; +} + +ValueNode::LooseHandle +ValueNode_Composite::get_link_vfunc(int i)const +{ + assert(i>=0 && i<6); + return components[i]; +} + +String +ValueNode_Composite::link_local_name(int i)const +{ + assert(i>=0 && i<6); + switch(get_type()) + { + case ValueBase::TYPE_VECTOR: + return strprintf("%c-Axis",'X'+i); + + case ValueBase::TYPE_COLOR: + if(i==0) + return _("Red"); + else if(i==1) + return _("Green"); + else if(i==2) + return _("Blue"); + else if(i==3) + return _("Alpha"); + + case ValueBase::TYPE_SEGMENT: + if(i==0) + return _("Vertex 1"); + else if(i==1) + return _("Tangent 1"); + else if(i==2) + return _("Vertex 2"); + else if(i==3) + return _("Tangent 2"); + + case ValueBase::TYPE_BLINEPOINT: + if(i==0) + return _("Vertex"); + else if(i==1) + return _("Width"); + else if(i==2) + return _("Origin"); + else if(i==3) + return _("Split Tangents"); + else if(i==4) + return _("Tangent 1"); + else if(i==5) + return _("Tangent 2"); + + default: + break; + } + return etl::strprintf(_("C%d"),i+1); +} + + +String +ValueNode_Composite::link_name(int i)const +{ + assert(i>=0 && i<5); + return strprintf("c%d",i); +} + +int +ValueNode_Composite::get_link_index_from_name(const String &name)const +{ + if(name.empty()) + throw Exception::BadLinkName(name); + + if(name[0]=='c') + return name[1]-'0'; + + switch(get_type()) + { + case ValueBase::TYPE_COLOR: + if(name[0]=='r') + return 0; + if(name[0]=='g') + return 1; + if(name[0]=='b') + return 2; + if(name[0]=='a') + return 3; + case ValueBase::TYPE_SEGMENT: + if(name=="p1") + return 0; + if(name=="t1") + return 1; + if(name=="p2") + return 2; + if(name=="t2") + return 3; + case ValueBase::TYPE_VECTOR: + if(name[0]=='x') + return 0; + if(name[0]=='y') + return 1; + if(name[0]=='z') + return 2; + case ValueBase::TYPE_BLINEPOINT: + if(name[0]=='p' || name=="v1" || name=="p1") + return 0; + if(name=="w" || name=="width") + return 1; + if(name=="o" || name=="origin") + return 2; + if(name=="split") + return 3; + if(name=="t1") + return 4; + if(name=="t2") + return 5; + default: + break; + } + + throw Exception::BadLinkName(name); +} + +String +ValueNode_Composite::get_name()const +{ + return "composite"; +} + +String +ValueNode_Composite::get_local_name()const +{ + return _("Composite"); +} + +bool +ValueNode_Composite::check_type(ValueBase::Type type) +{ + return + type==ValueBase::TYPE_SEGMENT || + type==ValueBase::TYPE_VECTOR || + type==ValueBase::TYPE_COLOR || + type==ValueBase::TYPE_BLINEPOINT; +} diff --git a/synfig-core/tags/stable/src/synfig/valuenode_composite.h b/synfig-core/tags/stable/src/synfig/valuenode_composite.h new file mode 100644 index 0000000..de8d25b --- /dev/null +++ b/synfig-core/tags/stable/src/synfig/valuenode_composite.h @@ -0,0 +1,77 @@ +/* === S Y N F I G ========================================================= */ +/*! \file valuenode_composite.h +** \brief Template Header +** +** $Id$ +** +** \legal +** Copyright (c) 2002-2005 Robert B. Quattlebaum Jr., Adrian Bentley +** +** This package is free software; you can redistribute it and/or +** modify it under the terms of the GNU General Public License as +** published by the Free Software Foundation; either version 2 of +** the License, or (at your option) any later version. +** +** This package is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +** General Public License for more details. +** \endlegal +*/ +/* ========================================================================= */ + +/* === S T A R T =========================================================== */ + +#ifndef __SYNFIG_VALUENODE_COMPOSITE_H +#define __SYNFIG_VALUENODE_COMPOSITE_H + +/* === H E A D E R S ======================================================= */ + +#include "valuenode.h" + +/* === M A C R O S ========================================================= */ + +/* === C L A S S E S & S T R U C T S ======================================= */ + +namespace synfig { + +class ValueNode_Composite : public LinkableValueNode +{ + ValueNode::RHandle components[6]; + ValueNode_Composite(const ValueBase &value); + +public: + typedef etl::handle Handle; + typedef etl::handle ConstHandle; + + + ~ValueNode_Composite(); + + virtual ValueNode::LooseHandle get_link_vfunc(int i)const; + virtual int link_count()const; + virtual String link_name(int i)const; + virtual String link_local_name(int i)const; + virtual ValueBase operator()(Time t)const; + + + virtual String get_name()const; + virtual String get_local_name()const; + virtual int get_link_index_from_name(const String &name)const; + +protected: + virtual bool set_link_vfunc(int i,ValueNode::Handle x); + + LinkableValueNode* create_new()const; + +public: + using synfig::LinkableValueNode::set_link_vfunc; + using synfig::LinkableValueNode::get_link_vfunc; + static bool check_type(ValueBase::Type type); + static ValueNode_Composite* create(const ValueBase &x); +}; // END of class ValueNode_Composite + +}; // END of namespace synfig + +/* === E N D =============================================================== */ + +#endif diff --git a/synfig-core/tags/stable/src/synfig/valuenode_const.cpp b/synfig-core/tags/stable/src/synfig/valuenode_const.cpp new file mode 100644 index 0000000..a9958d8 --- /dev/null +++ b/synfig-core/tags/stable/src/synfig/valuenode_const.cpp @@ -0,0 +1,131 @@ +/* === S Y N F I G ========================================================= */ +/*! \file valuenode_const.cpp +** \brief Template File +** +** $Id$ +** +** \legal +** Copyright (c) 2002-2005 Robert B. Quattlebaum Jr., Adrian Bentley +** +** This package is free software; you can redistribute it and/or +** modify it under the terms of the GNU General Public License as +** published by the Free Software Foundation; either version 2 of +** the License, or (at your option) any later version. +** +** This package is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +** General Public License for more details. +** \endlegal +*/ +/* ========================================================================= */ + +/* === H E A D E R S ======================================================= */ + +#ifdef USING_PCH +# include "pch.h" +#else +#ifdef HAVE_CONFIG_H +# include +#endif + +#include "valuenode_const.h" +#include "general.h" + +#endif + +/* === U S I N G =========================================================== */ + +using namespace std; +using namespace etl; +using namespace synfig; + +/* === M A C R O S ========================================================= */ + +/* === G L O B A L S ======================================================= */ + +/* === P R O C E D U R E S ================================================= */ + +/* === M E T H O D S ======================================================= */ + +ValueNode_Const::ValueNode_Const() +{ + DCAST_HACK_ENABLE(); +} + + +ValueNode_Const::ValueNode_Const(const ValueBase &x): + ValueNode (x.get_type()), + value (x) +{ + DCAST_HACK_ENABLE(); +} + + +ValueNode_Const* +ValueNode_Const::create(const ValueBase &x) +{ + return new ValueNode_Const(x); +} + + +ValueNode* +ValueNode_Const::clone(const GUID& deriv_guid)const +{ + { ValueNode* x(find_value_node(get_guid()^deriv_guid).get()); if(x)return x; } + ValueNode* ret(new ValueNode_Const(value)); + ret->set_guid(get_guid()^deriv_guid); + return ret; +} + + +ValueNode_Const::~ValueNode_Const() +{ +} + + +ValueBase +ValueNode_Const::operator()(Time t)const +{ + return value; +} + + +const ValueBase & +ValueNode_Const::get_value()const +{ + return value; +} + +ValueBase & +ValueNode_Const::get_value() +{ + return value; +} + +void +ValueNode_Const::set_value(const ValueBase &data) +{ + if(data!=value) + { + value=data; + changed(); + } +} + + +String +ValueNode_Const::get_name()const +{ + return "constant"; +} + +String +ValueNode_Const::get_local_name()const +{ + return _("Constant"); +} + +void ValueNode_Const::get_times_vfunc(Node::time_set &set) const +{ +} diff --git a/synfig-core/tags/stable/src/synfig/valuenode_const.h b/synfig-core/tags/stable/src/synfig/valuenode_const.h new file mode 100644 index 0000000..d153ee1 --- /dev/null +++ b/synfig-core/tags/stable/src/synfig/valuenode_const.h @@ -0,0 +1,76 @@ +/* === S Y N F I G ========================================================= */ +/*! \file valuenode_const.h +** \brief Template Header +** +** $Id$ +** +** \legal +** Copyright (c) 2002-2005 Robert B. Quattlebaum Jr., Adrian Bentley +** +** This package is free software; you can redistribute it and/or +** modify it under the terms of the GNU General Public License as +** published by the Free Software Foundation; either version 2 of +** the License, or (at your option) any later version. +** +** This package is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +** General Public License for more details. +** \endlegal +*/ +/* ========================================================================= */ + +/* === S T A R T =========================================================== */ + +#ifndef __SYNFIG_VALUENODE_CONST_H +#define __SYNFIG_VALUENODE_CONST_H + +/* === H E A D E R S ======================================================= */ + +#include "valuenode.h" + +/* === M A C R O S ========================================================= */ + +/* === C L A S S E S & S T R U C T S ======================================= */ + +namespace synfig { + +class ValueNode_Const : public ValueNode +{ +public: + typedef etl::handle Handle; + typedef etl::handle ConstHandle; + +private: + ValueBase value; + + ValueNode_Const(); + ValueNode_Const(const ValueBase &x); + +public: + + virtual ValueBase operator()(Time t)const; + virtual ~ValueNode_Const(); + + const ValueBase &get_value()const; + ValueBase &get_value(); + void set_value(const ValueBase &data); + + + virtual String get_name()const; + virtual String get_local_name()const; + + virtual ValueNode* clone(const GUID& deriv_guid=GUID())const; + +public: + static ValueNode_Const* create(const ValueBase &x=ValueBase()); + +protected: + virtual void get_times_vfunc(Node::time_set &set) const; +}; + +}; // END of namespace synfig + +/* === E N D =============================================================== */ + +#endif diff --git a/synfig-core/tags/stable/src/synfig/valuenode_dynamiclist.cpp b/synfig-core/tags/stable/src/synfig/valuenode_dynamiclist.cpp new file mode 100644 index 0000000..de56b76 --- /dev/null +++ b/synfig-core/tags/stable/src/synfig/valuenode_dynamiclist.cpp @@ -0,0 +1,890 @@ +/* === S Y N F I G ========================================================= */ +/*! \file valuenode_dynamiclist.cpp +** \brief Template File +** +** $Id$ +** +** \legal +** Copyright (c) 2002-2005 Robert B. Quattlebaum Jr., Adrian Bentley +** +** This package is free software; you can redistribute it and/or +** modify it under the terms of the GNU General Public License as +** published by the Free Software Foundation; either version 2 of +** the License, or (at your option) any later version. +** +** This package is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +** General Public License for more details. +** \endlegal +*/ +/* ========================================================================= */ + +/* === H E A D E R S ======================================================= */ + +#ifdef USING_PCH +# include "pch.h" +#else +#ifdef HAVE_CONFIG_H +# include +#endif + +#include "valuenode_dynamiclist.h" +#include "valuenode_const.h" +#include "valuenode_composite.h" +#include "general.h" +#include "exception.h" +#include +#include +#include +#include "canvas.h" + +#endif + +/* === U S I N G =========================================================== */ + +using namespace std; +using namespace etl; +using namespace synfig; + +/* === M A C R O S ========================================================= */ + +/* === G L O B A L S ======================================================= */ + +/* === P R O C E D U R E S ================================================= */ + +/* === M E T H O D S ======================================================= */ + +ValueNode_DynamicList::ListEntry::ListEntry(): + index(0) +{ +} + +ValueNode_DynamicList::ListEntry::ListEntry(const ValueNode::Handle &value_node): + value_node(value_node), + index(0) +{ +} + +ValueNode_DynamicList::ListEntry::ListEntry(const ValueNode::Handle &value_node,Time begin, Time end): + value_node(value_node) +{ + add(begin,false); + add(end,false); + add((begin+end)*0.5,true); +} + +ValueNode_DynamicList::ListEntry::ActivepointList::iterator +ValueNode_DynamicList::ListEntry::add(Time time, bool status, int priority) +{ + typedef synfig::ValueNode_DynamicList::ListEntry::ActivepointList::iterator iterator; + + //! \optimize + Activepoint ap(time,status,priority); + ap.set_parent_index(get_index()); + ap.set_parent_value_node(get_parent_value_node()); + timing_info.push_back(ap); + iterator iter(--iterator(timing_info.end())); + timing_info.sort(); + + return iter; +} + +ValueNode_DynamicList::ListEntry::ActivepointList::iterator +ValueNode_DynamicList::ListEntry::add(const Activepoint &x) +{ + typedef synfig::ValueNode_DynamicList::ListEntry::ActivepointList::iterator iterator; + + //! \optimize + Activepoint ap(x); + ap.set_parent_index(get_index()); + ap.set_parent_value_node(get_parent_value_node()); + timing_info.push_back(ap); + iterator iter(--iterator(timing_info.end())); + timing_info.sort(); + + return iter; +} + +void +ValueNode_DynamicList::reindex() +{ + int i(0); + + std::vector::iterator iter; + + for(iter=list.begin();iter!=list.end();++iter) + { + assert(iter->value_node); + if(iter->index!=i || iter->get_parent_value_node().get()!=this) + { + ActivepointList::iterator iter2; + + if(iter->timing_info.size()) // is this line really necessary? + for(iter2=iter->timing_info.begin();iter2!=iter->timing_info.end();++iter2) + { + iter2->set_parent_index(i); + iter2->set_parent_value_node(this); + } + iter->index=i; + iter->set_parent_value_node(this); + } + } +} + +ValueNode_DynamicList::ListEntry +ValueNode_DynamicList::create_list_entry(int index, Time time, Real origin) +{ + ValueNode_DynamicList::ListEntry ret; + + + synfig::ValueBase prev,next; + + index=index%link_count(); + + assert(index>=0); + + ret.index=index; + ret.set_parent_value_node(this); + + next=(*list[index].value_node)(time); + + if(index!=0) + prev=(*list[index-1].value_node)(time); + else + { + if(get_loop()) + prev=(*list[link_count()-1].value_node)(time); + else + { + prev=next; + } + } + + + switch(get_contained_type()) + { + case ValueBase::TYPE_VECTOR: + { + Vector a(prev.get(Vector())), b(next.get(Vector())); + ret.value_node=ValueNode_Const::create((b-a)*origin+a); + break; + } + case ValueBase::TYPE_REAL: + { + Real a(prev.get(Real())), b(next.get(Real())); + ret.value_node=ValueNode_Const::create((b-a)*origin+a); + break; + } + case ValueBase::TYPE_COLOR: + { + Color a(prev.get(Color())), b(next.get(Color())); + ret.value_node=ValueNode_Composite::create((b-a)*origin+a); + break; + } + case ValueBase::TYPE_ANGLE: + { + Angle a(prev.get(Angle())), b(next.get(Angle())); + ret.value_node=ValueNode_Const::create((b-a)*origin+a); + break; + } + case ValueBase::TYPE_TIME: + { + Time a(prev.get(Time())), b(next.get(Time())); + ret.value_node=ValueNode_Const::create((b-a)*origin+a); + break; + } + default: + ret.value_node=ValueNode_Const::create(get_contained_type()); + break; + } + + + return ret; +} + +ValueNode_DynamicList::ListEntry::ActivepointList::iterator +ValueNode_DynamicList::ListEntry::find(const UniqueID& x) +{ + return std::find(timing_info.begin(),timing_info.end(),x); +} + +ValueNode_DynamicList::ListEntry::ActivepointList::const_iterator +ValueNode_DynamicList::ListEntry::find(const UniqueID& x)const +{ + return std::find(timing_info.begin(),timing_info.end(),x); +} + +void +ValueNode_DynamicList::ListEntry::erase(const UniqueID& x) +{ + timing_info.erase(find(x)); +} + +ValueNode_DynamicList::ListEntry::ActivepointList::iterator +ValueNode_DynamicList::ListEntry::find(const Time& x) +{ + typedef synfig::ValueNode_DynamicList::ListEntry::ActivepointList ActivepointList; + + ActivepointList::iterator iter; + + for(iter=timing_info.begin();iter!=timing_info.end();++iter) + if(iter->time==x) + return iter; + + throw Exception::NotFound("ValueNode_DynamicList::ListEntry::find():"+x.get_string()); +} + +ValueNode_DynamicList::ListEntry::ActivepointList::const_iterator +ValueNode_DynamicList::ListEntry::find(const Time& x)const +{ + typedef synfig::ValueNode_DynamicList::ListEntry::ActivepointList ActivepointList; + + ActivepointList::const_iterator iter; + + for(iter=timing_info.begin();iter!=timing_info.end();++iter) + if(iter->time==x) + return iter; + + throw Exception::NotFound("ValueNode_DynamicList::ListEntry::find()const:"+x.get_string()); +} + +ValueNode_DynamicList::ListEntry::ActivepointList::iterator +ValueNode_DynamicList::ListEntry::find_next(const Time& x) +{ + typedef synfig::ValueNode_DynamicList::ListEntry::ActivepointList ActivepointList; + + ActivepointList::iterator iter; + + for(iter=timing_info.begin();iter!=timing_info.end();++iter) + if(iter->time>x) + return iter; + + throw Exception::NotFound("ValueNode_DynamicList::ListEntry::find_next():"+x.get_string()); +} + +ValueNode_DynamicList::ListEntry::ActivepointList::const_iterator +ValueNode_DynamicList::ListEntry::find_next(const Time& x)const +{ + typedef synfig::ValueNode_DynamicList::ListEntry::ActivepointList ActivepointList; + + ActivepointList::const_iterator iter; + + for(iter=timing_info.begin();iter!=timing_info.end();++iter) + if(iter->time>x) + return iter; + + throw Exception::NotFound("ValueNode_DynamicList::ListEntry::find_next()const:"+x.get_string()); +} + +ValueNode_DynamicList::ListEntry::ActivepointList::iterator +ValueNode_DynamicList::ListEntry::find_prev(const Time& x) +{ + typedef synfig::ValueNode_DynamicList::ListEntry::ActivepointList ActivepointList; + + ActivepointList::iterator iter; + iter=timing_info.end(); + do + { + --iter; + if(iter->timetime& selected) +{ + Time curr_time(begin); + int ret(0); + + // try to grab first waypoint + try + { + ActivepointList::iterator iter; + iter=find(curr_time); + selected.push_back(&*iter); + ret++; + } + catch(...) { } + + try + { + ActivepointList::iterator iter; + while(true) + { + iter=find_next(curr_time); + curr_time=iter->get_time(); + if(curr_time>=end) + break; + selected.push_back(&*iter); + ret++; + } + } + catch(...) { } + + return ret; +} + +float +ValueNode_DynamicList::ListEntry::amount_at_time(const Time &t,bool *rising)const +{ + typedef synfig::ValueNode_DynamicList::ListEntry::Activepoint Activepoint; + typedef synfig::ValueNode_DynamicList::ListEntry::ActivepointList ActivepointList; + + if(timing_info.empty()) + return 1.0f; + + try + { + ActivepointList::const_iterator iter; + iter=find(t); + return iter->state?1.0f:0.0f; + } + catch(...) { } + + ActivepointList::const_iterator prev_iter; + ActivepointList::const_iterator next_iter; + + try { prev_iter=find_prev(t); } + catch(...) { return find_next(t)->state?1.0f:0.0f; } + + try { next_iter=find_next(t); } + catch(...) { return prev_iter->state?1.0f:0.0f; } + + if(next_iter->state==prev_iter->state) + return next_iter->state?1.0f:0.0f; + + if(rising)*rising=next_iter->state; + + if(next_iter->state==true) + return float((t-prev_iter->time)/(next_iter->time-prev_iter->time)); + + return float((next_iter->time-t)/(next_iter->time-prev_iter->time)); +} + +Activepoint +ValueNode_DynamicList::ListEntry::new_activepoint_at_time(const Time& time)const +{ + Activepoint activepoint; + + activepoint.set_state(status_at_time(time)); + activepoint.set_priority(0); + + return activepoint; +} + +bool +ValueNode_DynamicList::ListEntry::status_at_time(const Time &t)const +{ + typedef synfig::ValueNode_DynamicList::ListEntry::Activepoint Activepoint; + typedef synfig::ValueNode_DynamicList::ListEntry::ActivepointList ActivepointList; + + ActivepointList::const_iterator entry_iter; + ActivepointList::const_iterator prev_iter; + bool state(true); + + // New "symmetric" state mechanism + if(!timing_info.empty()) + { + if(timing_info.size()==1) + state=timing_info.front().state; + else + { + //! \optimize Perhaps we should use a binary search...? + // This will give us the first activepoint that is after t. + for(entry_iter=timing_info.begin();entry_iter!=timing_info.end();++entry_iter) + { + if(entry_iter->time==t) + { + // If we hit the entry right on the nose, then we don't + // have to do anything more + return entry_iter->state; + } + if(entry_iter->time>t) + break; + + } + prev_iter=entry_iter; + prev_iter--; + + // ie: + // + // |-------|---t---|-------| + // prev_iter^ ^entry_iter + + if(entry_iter==timing_info.end()) + { + state=prev_iter->state; + } + else + if(entry_iter==timing_info.begin()) + { + state=entry_iter->state; + } + else + if(entry_iter->priority==prev_iter->priority) + { + state=entry_iter->state || prev_iter->state; + } + else + if(entry_iter->priority>prev_iter->priority) + { + state=entry_iter->state; + } + else + { + state=prev_iter->state; + } + } + } + return state; +} + + + + +void +ValueNode_DynamicList::add(const ValueNode::Handle &value_node, int index) +{ + ListEntry list_entry(value_node); + list_entry.timing_info.size(); + + if(index<0 || index>=(int)list.size()) + { + list.push_back(list_entry); + } + else + { + list.insert(list.begin()+index,list_entry); + } + + add_child(value_node.get()); + reindex(); + //changed(); + + if(get_parent_canvas()) + get_parent_canvas()->signal_value_node_child_added()(this,value_node); + else if(get_root_canvas() && get_parent_canvas()) + get_root_canvas()->signal_value_node_child_added()(this,value_node); +} + +void +ValueNode_DynamicList::add(const ListEntry &list_entry, int index) +{ + if(index<0 || index>=(int)list.size()) + list.push_back(list_entry); + else + list.insert(list.begin()+index,list_entry); + add_child(list_entry.value_node.get()); + + reindex(); + //changed(); + + if(get_parent_canvas()) + get_parent_canvas()->signal_value_node_child_added()(this,list_entry.value_node); + else if(get_root_canvas() && get_parent_canvas()) + get_root_canvas()->signal_value_node_child_added()(this,list_entry.value_node); +} + +void +ValueNode_DynamicList::erase(const ValueNode::Handle &value_node_) +{ + ValueNode::Handle value_node(value_node_); + + assert(value_node); + if(!value_node) + throw String("ValueNode_DynamicList::erase(): Passed bad value node"); + + std::vector::iterator iter; + for(iter=list.begin();iter!=list.end();++iter) + if(iter->value_node==value_node) + { + list.erase(iter); + if(value_node) + { + remove_child(value_node.get()); + // changed to fix bug 1420091 - it seems that when a .sif file containing a bline layer encapsulated inside + // another layer, get_parent_canvas() is false and get_root_canvas() is true, but when we come to erase a + // vertex, both are true. So the signal is sent to the parent, but the signal wasn't sent to the parent + // when it was added. This probably isn't the right fix, but it seems to work for now. Note that the same + // strange "if (X) else if (Y && X)" code is also present in the two previous functions, above. + + // if(get_parent_canvas()) + // get_parent_canvas()->signal_value_node_child_removed()(this,value_node); + // else if(get_root_canvas() && get_parent_canvas()) + // get_root_canvas()->signal_value_node_child_removed()(this,value_node); + if(get_root_canvas()) + get_root_canvas()->signal_value_node_child_removed()(this,value_node); + } + break; + } + reindex(); +} + + +ValueNode_DynamicList::ValueNode_DynamicList(ValueBase::Type container_type): + LinkableValueNode(ValueBase::TYPE_LIST), + container_type (container_type), + loop_(false) +{ + DCAST_HACK_ENABLE(); +} + +ValueNode_DynamicList::Handle +ValueNode_DynamicList::create(ValueBase::Type id) +{ + return new ValueNode_DynamicList(id); +} + +ValueNode_DynamicList::~ValueNode_DynamicList() +{ + unlink_all(); +} + +ValueNode_DynamicList* +ValueNode_DynamicList::create_from(const ValueBase &value) +{ + //vector value_list(value.operator vector()); + vector value_list(value.get_list()); + + vector::iterator iter; + + if(value_list.empty()) + return 0; + + ValueNode_DynamicList* value_node(new ValueNode_DynamicList(value_list.front().get_type())); + + for(iter=value_list.begin();iter!=value_list.end();++iter) + { + ValueNode::Handle item(ValueNode_Const::create(*iter)); + value_node->add(ListEntry(item)); + assert(value_node->list.back().value_node); + } + return value_node; +} + +ValueBase +ValueNode_DynamicList::operator()(Time t)const +{ + std::vector ret_list; + std::vector::const_iterator iter; + + assert(container_type); + + for(iter=list.begin();iter!=list.end();++iter) + { + bool state(iter->status_at_time(t)); + + if(state) + { + if(iter->value_node->get_type()==container_type) + ret_list.push_back((*iter->value_node)(t)); + else + { + synfig::warning(string("ValueNode_DynamicList::operator()():")+_("List type/item type mismatch, throwing away mismatch")); + } + } + } + + if(list.empty()) + synfig::warning(string("ValueNode_DynamicList::operator()():")+_("No entries in list")); + else + if(ret_list.empty()) + synfig::warning(string("ValueNode_DynamicList::operator()():")+_("No entries in ret_list")); + + return ret_list; +} + +bool +ValueNode_DynamicList::set_link_vfunc(int i,ValueNode::Handle x) +{ + assert(i>=0); + if((unsigned)i>=list.size()) + return false; + if(x->get_type()!=container_type) + return false; + list[i].value_node=x; + return true; +} + +ValueNode::LooseHandle +ValueNode_DynamicList::get_link_vfunc(int i)const +{ + assert(i>=0); + if((unsigned)i>=list.size()) + return 0; + return list[i].value_node; +} + +int +ValueNode_DynamicList::link_count()const +{ + return list.size(); +} + +String +ValueNode_DynamicList::link_local_name(int i)const +{ + assert(i>=0 && (unsigned)iset_guid(get_guid()^deriv_guid); + + std::vector::const_iterator iter; + + for(iter=list.begin();iter!=list.end();++iter) + { + if(iter->value_node->is_exported()) + ret->add(*iter); + else + { + ListEntry list_entry(*iter); + //list_entry.value_node=find_value_node(iter->value_node->get_guid()^deriv_guid).get(); + //if(!list_entry.value_node) + list_entry.value_node=iter->value_node->clone(deriv_guid); + ret->add(list_entry); + //ret->list.back().value_node=iter->value_node.clone(); + } + } + ret->set_loop(get_loop()); + return ret; +} + +String +ValueNode_DynamicList::link_name(int i)const +{ + return strprintf("item%04d",i); +} + +int +ValueNode_DynamicList::get_link_index_from_name(const String &name)const +{ + throw Exception::BadLinkName(name); +} + +String +ValueNode_DynamicList::get_name()const +{ + return "dynamic_list"; +} + +String +ValueNode_DynamicList::get_local_name()const +{ + return _("Dynamic List"); +} + +bool +ValueNode_DynamicList::check_type(ValueBase::Type type) +{ + return type==ValueBase::TYPE_LIST; +} + +ValueBase::Type +ValueNode_DynamicList::get_contained_type()const +{ + return container_type; +} + +LinkableValueNode* +ValueNode_DynamicList::create_new()const +{ + assert(0); + return 0; +} + +int +ValueNode_DynamicList::find_next_valid_entry(int orig_item, Time t)const +{ + int curr_item; + + for(curr_item=orig_item+1;curr_item!=orig_item;curr_item++) + { + if(curr_item==(int)list.size()) + { + curr_item=0; + continue; + } + if(list[curr_item].status_at_time(t)) + return curr_item; + } + return curr_item; +} + +int +ValueNode_DynamicList::find_prev_valid_entry(int orig_item, Time t)const +{ + int curr_item; + + for(curr_item=orig_item-1;curr_item!=orig_item;curr_item--) + { + if(curr_item==-1) + { + curr_item=list.size(); + continue; + } + if(list[curr_item].status_at_time(t)) + return curr_item; + } + return curr_item; +} + +const synfig::Node::time_set & ValueNode_DynamicList::ListEntry::get_times() const +{ + synfig::ActivepointList::const_iterator j = timing_info.begin(), + end = timing_info.end(); + + //must remerge with all the other values because we don't know if we've changed... + times = value_node->get_times(); + + for(; j != end; ++j) + { + TimePoint t; + t.set_time(j->get_time()); + t.set_guid(j->get_guid()); + + times.insert(t); + } + + return times; +} + +void ValueNode_DynamicList::get_times_vfunc(Node::time_set &set) const +{ + //add in the active points + int size = list.size(); + + //rebuild all the info... + for(int i = 0; i < size; ++i) + { + const Node::time_set & tset= list[i].get_times(); + set.insert(tset.begin(),tset.end()); + } +} + + +//new find functions that don't throw +struct timecmp +{ + Time t; + + timecmp(const Time &c) :t(c) {} + + bool operator()(const Activepoint &rhs) const + { + return t.is_equal(rhs.get_time()); + } +}; + +ValueNode_DynamicList::ListEntry::findresult ValueNode_DynamicList::ListEntry::find_uid(const UniqueID& x) +{ + findresult f; + f.second = false; + + f.first = std::find(timing_info.begin(),timing_info.end(),x); + + if(f.first != timing_info.end()) + { + f.second = true; + } + + return f; +} + +ValueNode_DynamicList::ListEntry::const_findresult ValueNode_DynamicList::ListEntry::find_uid(const UniqueID& x) const +{ + const_findresult f; + f.second = false; + + f.first = std::find(timing_info.begin(),timing_info.end(),x); + + if(f.first != timing_info.end()) + { + f.second = true; + } + + return f; +} + +ValueNode_DynamicList::ListEntry::findresult ValueNode_DynamicList::ListEntry::find_time(const Time& x) +{ + findresult f; + f.second = false; + + f.first = std::find_if(timing_info.begin(),timing_info.end(),timecmp(x)); + + if(f.first != timing_info.end()) + { + f.second = true; + } + + return f; +} + +ValueNode_DynamicList::ListEntry::const_findresult ValueNode_DynamicList::ListEntry::find_time(const Time& x)const +{ + const_findresult f; + f.second = false; + + f.first = std::find_if(timing_info.begin(),timing_info.end(),timecmp(x)); + + if(f.first != timing_info.end()) + { + f.second = true; + } + + return f; +} + +void +ValueNode_DynamicList::insert_time(const Time& location, const Time& delta) +{ + if(!delta) + return; + + std::vector::iterator iter(list.begin()); + for(;iter!=list.end();++iter) + { + try + { + ListEntry& item(*iter); + + ActivepointList::iterator iter(item.find_next(location)); + for(;iter!=item.timing_info.end();++iter) + { + iter->set_time(iter->get_time()+delta); + } + } + catch(Exception::NotFound) { } + } + changed(); +} diff --git a/synfig-core/tags/stable/src/synfig/valuenode_dynamiclist.h b/synfig-core/tags/stable/src/synfig/valuenode_dynamiclist.h new file mode 100644 index 0000000..1053cc7 --- /dev/null +++ b/synfig-core/tags/stable/src/synfig/valuenode_dynamiclist.h @@ -0,0 +1,245 @@ +/* === S Y N F I G ========================================================= */ +/*! \file valuenode_dynamiclist.h +** \brief Template Header +** +** $Id$ +** +** \legal +** Copyright (c) 2002-2005 Robert B. Quattlebaum Jr., Adrian Bentley +** +** This package is free software; you can redistribute it and/or +** modify it under the terms of the GNU General Public License as +** published by the Free Software Foundation; either version 2 of +** the License, or (at your option) any later version. +** +** This package is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +** General Public License for more details. +** \endlegal +*/ +/* ========================================================================= */ + +/* === S T A R T =========================================================== */ + +#ifndef __SYNFIG_VALUENODE_DYNAMICLIST_H +#define __SYNFIG_VALUENODE_DYNAMICLIST_H + +/* === H E A D E R S ======================================================= */ + +#include +#include + +#include "valuenode.h" +#include "time.h" +#include "uniqueid.h" +#include "activepoint.h" + +/* === M A C R O S ========================================================= */ + +/* === C L A S S E S & S T R U C T S ======================================= */ + +namespace synfig { +class ValueNode_BLine; + +/*! \class ValueNode_DynamicList +** \brief Animated List ValueNode +** +** This ValueNode was originally set up to have a list +** of ValueNodes and their associated "on" and "off" points. +** ie: Any time that was directly after an "on" point, +** the item would be "on", and any time that was directly +** after an "off" point would be "off". This is pretty intuitive. +** However, it does have its problems. +** +** The problems arise when we introduce the concept of a +** Keyframe. Keyframes can be manipulated via the Synfig +** Application Library. They allow the user to quickly +** and "automagickly" rearange an animation by moving +** the associated keyframes. With the old way that the +** "on" and "off" points were handled, this task became +** overly complicated. +** +** What is required is a "symmetric" system of describing +** "on" and "off" points. Instead of the point representing +** the state of the item after that point in time, we have +** the point represent only that frame. The state +** of the item is calculated by looking at the points +** around it: If either (or both) points are "on", then the +** current state is "on". Otherwise, the point is "off" +** +** This may be a bit confusing at first, but it is required +** if we want the keyframe mechanism to "just work". +*/ +class ValueNode_DynamicList : public LinkableValueNode +{ +public: + + /*! \class ListEntry + ** \brief Contains a potential list item, and associated timing information + ** + ** This structure contains a RHandle to a ValueNode, + ** as well as the associated on/off timing information + ** which determines when this item is included in the list. + ** + ** The timing information is stored in the member timing_info. + */ + struct ListEntry : public UniqueID + { + friend class ValueNode_DynamicList; + friend class ValueNode_BLine; + public: + typedef synfig::Activepoint Activepoint; + + typedef std::list ActivepointList; + + typedef std::pair findresult; + typedef std::pair const_findresult; + + + private: + mutable Node::time_set times; + public: + ValueNode::RHandle value_node; + + ActivepointList timing_info; + + private: + int index; + etl::loose_handle parent_; + void set_parent_value_node(const etl::loose_handle &x) { parent_=x; } + + public: + + int get_index()const { return index; } + + + bool status_at_time(const Time &x)const; + + float amount_at_time(const Time &x, bool *rising=0)const; + + ActivepointList::iterator add(Time time, bool status, int priority=0); + ActivepointList::iterator add(const Activepoint &x); + + findresult find_uid(const UniqueID& x); + const_findresult find_uid(const UniqueID& x)const; + + findresult find_time(const Time& x); + const_findresult find_time(const Time& x)const; + + ActivepointList::iterator find(const UniqueID& x); + ActivepointList::const_iterator find(const UniqueID& x)const; + ActivepointList::iterator find(const Time& x); + ActivepointList::const_iterator find(const Time& x)const; + ActivepointList::iterator find_prev(const Time& x); + ActivepointList::const_iterator find_prev(const Time& x)const; + ActivepointList::iterator find_next(const Time& x); + ActivepointList::const_iterator find_next(const Time& x)const; + + Activepoint new_activepoint_at_time(const Time& x)const; + + ActivepointList::iterator add(Time time) + { return add(time, status_at_time(time)); } + + void erase(const UniqueID& x); + + int find(const Time& begin,const Time& end,std::vector& list); + + const synfig::Node::time_set &get_times() const; + + const etl::loose_handle &get_parent_value_node()const { return parent_; } + + ListEntry(); + ListEntry(const ValueNode::Handle &value_node); + ListEntry(const ValueNode::Handle &value_node,Time begin, Time end); + }; // END of struct ValueNode_DynamicList::ListEntry + + typedef etl::handle Handle; + typedef etl::handle ConstHandle; + +protected: + ValueNode_DynamicList(ValueBase::Type container_type=ValueBase::TYPE_NIL); + + ValueBase::Type container_type; + + bool loop_; + + +public: + std::vector list; + +public: + + void add(const ValueNode::Handle &value_node, int index=-1); + void add(const ListEntry &value_node, int index=-1); + void erase(const ValueNode::Handle &value_node); + void reindex(); + + int find_next_valid_entry(int x, Time t)const; + int find_prev_valid_entry(int x, Time t)const; + + virtual ValueNode::LooseHandle get_link_vfunc(int i)const; + + virtual int link_count()const; + + virtual String link_name(int i)const; + + virtual ValueBase operator()(Time t)const; + + virtual ~ValueNode_DynamicList(); + + virtual String link_local_name(int i)const; + virtual int get_link_index_from_name(const String &name)const; + + virtual String get_name()const; + virtual String get_local_name()const; + + bool get_loop()const { return loop_; } + void set_loop(bool x) { loop_=x; } + + ValueBase::Type get_contained_type()const; + + + template static Handle + create(iterator begin, iterator end) + { + Handle ret=create((*begin)->get_type()); + for(;begin!=end;++begin) + ret->add(ListEntry(*begin)); + return ret; + } + + void insert_time(const Time& location, const Time& delta); + //void manipulate_time(const Time& old_begin,const Time& old_end,const Time& new_begin,const Time& new_end); + + virtual ValueNode* clone(const GUID& deriv_guid=GUID())const; + + virtual ListEntry create_list_entry(int index, Time time=0, Real origin=0.5); + +protected: + + virtual bool set_link_vfunc(int i,ValueNode::Handle x); + LinkableValueNode* create_new()const; + + virtual void get_times_vfunc(Node::time_set &set) const; + +public: + /*! \note The construction parameter (\a id) is the type that the list + ** contains, rather than the type that it will yield + ** (which is ValueBase::TYPE_LIST) + */ + static Handle create(ValueBase::Type id=ValueBase::TYPE_NIL); + using synfig::LinkableValueNode::get_link_vfunc; + using synfig::LinkableValueNode::set_link_vfunc; + static bool check_type(ValueBase::Type type); + static ValueNode_DynamicList* create_from(const ValueBase &x=ValueBase::TYPE_GRADIENT); +}; // END of class ValueNode_DynamicList + +typedef ValueNode_DynamicList::ListEntry::Activepoint Activepoint; +typedef ValueNode_DynamicList::ListEntry::ActivepointList ActivepointList; + +}; // END of namespace synfig + +/* === E N D =============================================================== */ + +#endif diff --git a/synfig-core/tags/stable/src/synfig/valuenode_gradientrotate.cpp b/synfig-core/tags/stable/src/synfig/valuenode_gradientrotate.cpp new file mode 100644 index 0000000..74d1fdf --- /dev/null +++ b/synfig-core/tags/stable/src/synfig/valuenode_gradientrotate.cpp @@ -0,0 +1,215 @@ +/* === S Y N F I G ========================================================= */ +/*! \file valuenode_gradientrotate.cpp +** \brief Template File +** +** $Id$ +** +** \legal +** Copyright (c) 2002-2005 Robert B. Quattlebaum Jr., Adrian Bentley +** +** This package is free software; you can redistribute it and/or +** modify it under the terms of the GNU General Public License as +** published by the Free Software Foundation; either version 2 of +** the License, or (at your option) any later version. +** +** This package is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +** General Public License for more details. +** \endlegal +*/ +/* ========================================================================= */ + +/* === H E A D E R S ======================================================= */ + +#ifdef USING_PCH +# include "pch.h" +#else +#ifdef HAVE_CONFIG_H +# include +#endif + +#include "general.h" +#include "valuenode_gradientrotate.h" +#include "valuenode_const.h" +#include +#include "gradient.h" + +#endif + +/* === U S I N G =========================================================== */ + +using namespace std; +using namespace etl; +using namespace synfig; + +/* === M A C R O S ========================================================= */ + +/* === G L O B A L S ======================================================= */ + +/* === P R O C E D U R E S ================================================= */ + +/* === M E T H O D S ======================================================= */ + +synfig::ValueNode_GradientRotate::ValueNode_GradientRotate(): + LinkableValueNode(synfig::ValueBase::TYPE_GRADIENT) +{ + set_link("gradient",ValueNode_Const::create(Gradient())); + set_link("offset",ValueNode_Const::create(Real(0))); + DCAST_HACK_ENABLE(); +} + +LinkableValueNode* +ValueNode_GradientRotate::create_new()const +{ + return new ValueNode_GradientRotate(); +} + +ValueNode_GradientRotate* +ValueNode_GradientRotate::create(const ValueBase& x) +{ + ValueBase::Type id(x.get_type()); + if(id!=ValueBase::TYPE_GRADIENT) + { + assert(0); + throw runtime_error("synfig::ValueNode_GradientRotate:Bad type "+ValueBase::type_name(id)); + } + + ValueNode_GradientRotate* value_node=new ValueNode_GradientRotate(); + value_node->set_gradient(ValueNode_Const::create(x.get(Gradient()))); + + assert(value_node->get_type()==id); + + return value_node; +} + +synfig::ValueNode_GradientRotate::~ValueNode_GradientRotate() +{ + unlink_all(); +} + +bool +synfig::ValueNode_GradientRotate::set_gradient(ValueNode::Handle a) +{ + if(a->get_type()!=ValueBase::TYPE_GRADIENT&& !PlaceholderValueNode::Handle::cast_dynamic(a)) + return false; + + ref_gradient=a; + + return true; +} + +bool +synfig::ValueNode_GradientRotate::set_offset(ValueNode::Handle b) +{ + if(b->get_type()!=ValueBase::TYPE_REAL&& !PlaceholderValueNode::Handle::cast_dynamic(b)) + return false; + ref_offset=b; + return true; +} + +synfig::ValueBase +synfig::ValueNode_GradientRotate::operator()(Time t)const +{ + Gradient gradient; + gradient=(*ref_gradient)(t).get(gradient); + Real offset((*ref_offset)(t).get(Real())); + Gradient::iterator iter; + for(iter=gradient.begin();iter!=gradient.end();++iter) + iter->pos+=offset; + + return gradient; +} + +bool +ValueNode_GradientRotate::set_link_vfunc(int i,ValueNode::Handle x) +{ + assert(i>=0 && i<3); + switch(i) + { + case 0: + if(set_gradient(x)) { signal_child_changed()(i);signal_value_changed()(); return true; } + else { return false; } + case 1: + if(set_offset(x)) { signal_child_changed()(i);signal_value_changed()(); return true; } + else { return false; } + } + + return false; +} + +ValueNode::LooseHandle +ValueNode_GradientRotate::get_link_vfunc(int i)const +{ + assert(i>=0 && i<3); + switch(i) + { + case 0: + return ref_gradient; + case 1: + return ref_offset; + } + return 0; +} + +int +ValueNode_GradientRotate::link_count()const +{ + return 2; +} + +String +ValueNode_GradientRotate::link_local_name(int i)const +{ + assert(i>=0 && i<2); + switch(i) + { + case 0: + return _("Gradient"); + case 1: + return _("Offset"); + } + return String(); +} + +String +ValueNode_GradientRotate::link_name(int i)const +{ + assert(i>=0 && i<2); + switch(i) + { + case 0: + return "gradient"; + case 1: + return "offset"; + } + return String(); +} + +int +ValueNode_GradientRotate::get_link_index_from_name(const String &name)const +{ + if(name=="gradient") + return 0; + if(name=="offset") + return 1; + throw Exception::BadLinkName(name); +} + +String +ValueNode_GradientRotate::get_name()const +{ + return "gradient_rotate"; +} + +String +ValueNode_GradientRotate::get_local_name()const +{ + return _("Gradient Rotate"); +} + +bool +ValueNode_GradientRotate::check_type(ValueBase::Type type) +{ + return type==ValueBase::TYPE_GRADIENT; +} diff --git a/synfig-core/tags/stable/src/synfig/valuenode_gradientrotate.h b/synfig-core/tags/stable/src/synfig/valuenode_gradientrotate.h new file mode 100644 index 0000000..ad76c2a --- /dev/null +++ b/synfig-core/tags/stable/src/synfig/valuenode_gradientrotate.h @@ -0,0 +1,103 @@ +/* === S Y N F I G ========================================================= */ +/*! \file valuenode_gradientrotate.h +** \brief Template Header +** +** $Id$ +** +** \legal +** Copyright (c) 2002-2005 Robert B. Quattlebaum Jr., Adrian Bentley +** +** This package is free software; you can redistribute it and/or +** modify it under the terms of the GNU General Public License as +** published by the Free Software Foundation; either version 2 of +** the License, or (at your option) any later version. +** +** This package is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +** General Public License for more details. +** \endlegal +*/ +/* ========================================================================= */ + +/* === S T A R T =========================================================== */ + +#ifndef __SYNFIG_VALUENODE_GRADIENTROTATE_H +#define __SYNFIG_VALUENODE_GRADIENTROTATE_H + +/* === H E A D E R S ======================================================= */ + +#include "valuenode.h" + +/* === M A C R O S ========================================================= */ + +/* === C L A S S E S & S T R U C T S ======================================= */ + +namespace synfig { + +struct ValueNode_GradientRotate : public LinkableValueNode +{ + typedef etl::handle Handle; + typedef etl::handle ConstHandle; + +protected: + + ValueNode_GradientRotate(); + +private: + + ValueNode::RHandle ref_gradient; + ValueNode::RHandle ref_offset; + +public: + + virtual ~ValueNode_GradientRotate(); + +// static Handle create(ValueBase::Type id=ValueBase::TYPE_GRADIENT); + + //! Sets the left-hand-side value_node + bool set_gradient(ValueNode::Handle a); + + //! Gets the left-hand-side value_node + ValueNode::Handle get_gradient()const { return ref_gradient; } + + //! Sets the right-hand-side value_node + bool set_offset(ValueNode::Handle b); + + //! Gets the right-hand-side value_node + ValueNode::Handle get_offset()const { return ref_gradient; } + + + + virtual ValueNode::LooseHandle get_link_vfunc(int i)const; + + virtual int link_count()const; + + virtual String link_local_name(int i)const; + virtual String link_name(int i)const; + virtual int get_link_index_from_name(const String &name)const; + + virtual ValueBase operator()(Time t)const; + + virtual String get_name()const; + virtual String get_local_name()const; + +// static bool check_type(const ValueBase::Type &type); +protected: + virtual bool set_link_vfunc(int i,ValueNode::Handle x); + + LinkableValueNode* create_new()const; + +public: + using synfig::LinkableValueNode::get_link_vfunc; + + using synfig::LinkableValueNode::set_link_vfunc; + static bool check_type(ValueBase::Type type); + static ValueNode_GradientRotate* create(const ValueBase &x=ValueBase::TYPE_GRADIENT); +}; // END of class ValueNode_GradientRotate + +}; // END of namespace synfig + +/* === E N D =============================================================== */ + +#endif diff --git a/synfig-core/tags/stable/src/synfig/valuenode_linear.cpp b/synfig-core/tags/stable/src/synfig/valuenode_linear.cpp new file mode 100644 index 0000000..b8ca108 --- /dev/null +++ b/synfig-core/tags/stable/src/synfig/valuenode_linear.cpp @@ -0,0 +1,215 @@ +/* === S Y N F I G ========================================================= */ +/*! \file valuenode_linear.cpp +** \brief Template File +** +** $Id$ +** +** \legal +** Copyright (c) 2002-2005 Robert B. Quattlebaum Jr., Adrian Bentley +** +** This package is free software; you can redistribute it and/or +** modify it under the terms of the GNU General Public License as +** published by the Free Software Foundation; either version 2 of +** the License, or (at your option) any later version. +** +** This package is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +** General Public License for more details. +** \endlegal +*/ +/* ========================================================================= */ + +/* === H E A D E R S ======================================================= */ + +#ifdef USING_PCH +# include "pch.h" +#else +#ifdef HAVE_CONFIG_H +# include +#endif + +#include "valuenode_linear.h" +#include "valuenode_const.h" +#include "general.h" + +#endif + +/* === U S I N G =========================================================== */ + +using namespace std; +using namespace etl; +using namespace synfig; + +/* === M A C R O S ========================================================= */ + +/* === G L O B A L S ======================================================= */ + +/* === P R O C E D U R E S ================================================= */ + +/* === M E T H O D S ======================================================= */ + +ValueNode_Linear::ValueNode_Linear(const ValueBase::Type &x): + LinkableValueNode(x) +{ + switch(x) + { + case ValueBase::TYPE_REAL: + set_link("slope",ValueNode_Const::create(Real(1))); + set_link("offset",ValueNode_Const::create(Real(0))); + break; + case ValueBase::TYPE_TIME: + set_link("slope",ValueNode_Const::create(Time(1))); + set_link("offset",ValueNode_Const::create(Time(0))); + break; + case ValueBase::TYPE_VECTOR: + set_link("slope",ValueNode_Const::create(Vector(1.0,1.0))); + set_link("offset",ValueNode_Const::create(Vector(0.0,0.0))); + break; + case ValueBase::TYPE_ANGLE: + set_link("slope",ValueNode_Const::create(Angle::deg(90))); + set_link("offset",ValueNode_Const::create(Angle::deg(0))); + break; + default: + throw Exception::BadType(ValueBase::type_name(x)); + } + + DCAST_HACK_ENABLE(); +} + +ValueNode_Linear* +ValueNode_Linear::create(const ValueBase &x) +{ + return new ValueNode_Linear(x.get_type()); +} + +ValueNode_Linear::~ValueNode_Linear() +{ + unlink_all(); +} + +ValueBase +ValueNode_Linear::operator()(Time t)const +{ + switch(get_type()) + { + case ValueBase::TYPE_TIME: + return (*m_)(t).get(Time())*t+(*b_)(t).get(Time()); + case ValueBase::TYPE_REAL: + return (*m_)(t).get(Real())*t+(*b_)(t).get(Real()); + case ValueBase::TYPE_VECTOR: + return (*m_)(t).get(Vector())*t+(*b_)(t).get(Vector()); + case ValueBase::TYPE_ANGLE: + return (*m_)(t).get(Angle())*t+(*b_)(t).get(Angle()); + default: + assert(0); + break; + } + return ValueBase(); +} + + +String +ValueNode_Linear::get_name()const +{ + return "linear"; +} + +String +ValueNode_Linear::get_local_name()const +{ + return _("Linear"); +} + +bool +ValueNode_Linear::check_type(ValueBase::Type type) +{ + return type==ValueBase::TYPE_REAL + || type==ValueBase::TYPE_VECTOR + || type==ValueBase::TYPE_TIME + || type==ValueBase::TYPE_ANGLE; +} + +bool +ValueNode_Linear::set_link_vfunc(int i,ValueNode::Handle x) +{ + assert(i==0 || i==1); + if(i==0) + { + m_=x; + signal_child_changed()(i);signal_value_changed()(); + return true; + } + if(i==1) + { + b_=x; + signal_child_changed()(i);signal_value_changed()(); + return true; + } + return false; +} + +ValueNode::LooseHandle +ValueNode_Linear::get_link_vfunc(int i)const +{ + assert(i==0 || i==1); + if(i==0) + return m_; + if(i==1) + return b_; + + return 0; +} + +int +ValueNode_Linear::link_count()const +{ + return 2; +} + +String +ValueNode_Linear::link_name(int i)const +{ + assert(i==0 || i==1); + if(i==0) + return "slope"; + if(i==1) + return "offset"; + return String(); +} + +String +ValueNode_Linear::link_local_name(int i)const +{ + assert(i==0 || i==1); + if(i==0) + switch(get_type()) + { + case ValueBase::TYPE_REAL: + case ValueBase::TYPE_TIME: + case ValueBase::TYPE_ANGLE: + return _("Rate"); + default: + return _("Slope"); + } + if(i==1) + return _("Offset"); + return String(); +} + +int +ValueNode_Linear::get_link_index_from_name(const String &name)const +{ + if(name=="slope") + return 0; + if(name=="offset") + return 1; + + throw Exception::BadLinkName(name); +} + +LinkableValueNode* +ValueNode_Linear::create_new()const +{ + return new ValueNode_Linear(get_type()); +} diff --git a/synfig-core/tags/stable/src/synfig/valuenode_linear.h b/synfig-core/tags/stable/src/synfig/valuenode_linear.h new file mode 100644 index 0000000..b3d217c --- /dev/null +++ b/synfig-core/tags/stable/src/synfig/valuenode_linear.h @@ -0,0 +1,82 @@ +/* === S Y N F I G ========================================================= */ +/*! \file valuenode_linear.h +** \brief Template Header +** +** $Id$ +** +** \legal +** Copyright (c) 2002-2005 Robert B. Quattlebaum Jr., Adrian Bentley +** +** This package is free software; you can redistribute it and/or +** modify it under the terms of the GNU General Public License as +** published by the Free Software Foundation; either version 2 of +** the License, or (at your option) any later version. +** +** This package is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +** General Public License for more details. +** \endlegal +*/ +/* ========================================================================= */ + +/* === S T A R T =========================================================== */ + +#ifndef __SYNFIG_VALUENODE_INTERPOLATION_LINEAR_H +#define __SYNFIG_VALUENODE_INTERPOLATION_LINEAR_H + +/* === H E A D E R S ======================================================= */ + +#include "valuenode.h" + +/* === M A C R O S ========================================================= */ + +/* === C L A S S E S & S T R U C T S ======================================= */ + +namespace synfig { + +class ValueNode_Linear : public LinkableValueNode +{ + ValueNode::RHandle m_; + ValueNode::RHandle b_; + + ValueNode_Linear(const ValueBase::Type &x); + +public: + + typedef etl::handle Handle; + typedef etl::handle ConstHandle; + + + virtual ValueBase operator()(Time t)const; + + virtual ~ValueNode_Linear(); + + virtual String get_name()const; + virtual String get_local_name()const; + + + virtual ValueNode::LooseHandle get_link_vfunc(int i)const; + virtual int link_count()const; + virtual String link_name(int i)const; + + virtual String link_local_name(int i)const; + virtual int get_link_index_from_name(const String &name)const; + +protected: + LinkableValueNode* create_new()const; + virtual bool set_link_vfunc(int i,ValueNode::Handle x); + +public: + using synfig::LinkableValueNode::get_link_vfunc; + + using synfig::LinkableValueNode::set_link_vfunc; + static bool check_type(ValueBase::Type type); + static ValueNode_Linear* create(const ValueBase &x); +}; // END of class ValueNode_Linear + +}; // END of namespace synfig + +/* === E N D =============================================================== */ + +#endif diff --git a/synfig-core/tags/stable/src/synfig/valuenode_radialcomposite.cpp b/synfig-core/tags/stable/src/synfig/valuenode_radialcomposite.cpp new file mode 100644 index 0000000..f190a25 --- /dev/null +++ b/synfig-core/tags/stable/src/synfig/valuenode_radialcomposite.cpp @@ -0,0 +1,276 @@ +/* === S Y N F I G ========================================================= */ +/*! \file valuenode_radialcomposite.cpp +** \brief Template File +** +** $Id$ +** +** \legal +** Copyright (c) 2002-2005 Robert B. Quattlebaum Jr., Adrian Bentley +** +** This package is free software; you can redistribute it and/or +** modify it under the terms of the GNU General Public License as +** published by the Free Software Foundation; either version 2 of +** the License, or (at your option) any later version. +** +** This package is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +** General Public License for more details. +** \endlegal +*/ +/* ========================================================================= */ + +/* === H E A D E R S ======================================================= */ + +#ifdef USING_PCH +# include "pch.h" +#else +#ifdef HAVE_CONFIG_H +# include +#endif + +#include "valuenode_radialcomposite.h" +#include "valuenode_const.h" +#include +#include "general.h" +#include "color.h" +#endif + +/* === U S I N G =========================================================== */ + +using namespace std; +using namespace etl; +using namespace synfig; + +/* === M A C R O S ========================================================= */ + +/* === G L O B A L S ======================================================= */ + +/* === P R O C E D U R E S ================================================= */ + +/* === M E T H O D S ======================================================= */ + +synfig::ValueNode_RadialComposite::ValueNode_RadialComposite(const ValueBase &value): + LinkableValueNode(value.get_type()) +{ + switch(get_type()) + { + case ValueBase::TYPE_VECTOR: + { + Vector vect(value.get(Vector())); + set_link("r",ValueNode_Const::create(vect.mag())); + set_link("t",ValueNode_Const::create(Angle(Angle::tan(vect[1],vect[0])))); + } + break; + case ValueBase::TYPE_COLOR: + set_link("y",ValueNode_Const::create(value.get(Color()).get_y())); + set_link("s",ValueNode_Const::create(value.get(Color()).get_s())); + set_link("h",ValueNode_Const::create(value.get(Color()).get_hue())); + set_link("a",ValueNode_Const::create(value.get(Color()).get_a())); + break; + default: + assert(0); + throw Exception::BadType(ValueBase::type_name(get_type())); + } +} + +ValueNode_RadialComposite::~ValueNode_RadialComposite() +{ + unlink_all(); +} + +ValueNode_RadialComposite* +ValueNode_RadialComposite::create(const ValueBase &value) +{ + return new ValueNode_RadialComposite(value); +} + +LinkableValueNode* +ValueNode_RadialComposite::create_new()const +{ + return new ValueNode_RadialComposite(ValueBase(get_type())); +} + +ValueBase +synfig::ValueNode_RadialComposite::operator()(Time t)const +{ + switch(get_type()) + { + case ValueBase::TYPE_VECTOR: + { + Real mag; + Angle angle; + assert(components[0] && components[1]); + mag=(*components[0])(t).get(mag); + angle=(*components[1])(t).get(angle); + return Vector(Angle::cos(angle).get()*mag,Angle::sin(angle).get()*mag); + } + case ValueBase::TYPE_COLOR: + { + assert(components[0] && components[1] && components[2] && components[3]); + return Color::YUV( + (*components[0])(t).get(Real()), + (*components[1])(t).get(Real()), + (*components[2])(t).get(Angle()), + (*components[3])(t).get(Real()) + ); + } + default: + synfig::error(string("ValueNode_RadialComposite::operator():")+_("Bad type for radialcomposite")); + assert(components[0]); + return (*components[0])(t); + } +} + +int +ValueNode_RadialComposite::link_count()const +{ + switch(get_type()) + { + case ValueBase::TYPE_VECTOR: + return 2; + case ValueBase::TYPE_COLOR: + return 4; + default: + synfig::warning(string("ValueNode_RadialComposite::component_count():")+_("Bad type for radialcomposite")); + return 1; + } +} + +bool +ValueNode_RadialComposite::set_link_vfunc(int i,ValueNode::Handle x) +{ + assert(i>=0); + assert(i<6); + + if(PlaceholderValueNode::Handle::cast_dynamic(x)) + { + components[i]=x; + return true; + } + + switch(get_type()) + { + case ValueBase::TYPE_VECTOR: + assert(i<2); + if(i==0 && x->get_type()!=ValueBase::TYPE_REAL) + return false; + if(i==1 && x->get_type()!=ValueBase::TYPE_ANGLE) + return false; + components[i]=x; + return true; + break; + + case ValueBase::TYPE_COLOR: + assert(i<4); + if((i==0 || i==1 || i==3) && x->get_type()!=ValueBase::TYPE_REAL) + return false; + if((i==2) && x->get_type()!=ValueBase::TYPE_ANGLE) + return false; + components[i]=x; + return true; + break; + + + default: + break; + } + return false; +} + +ValueNode::LooseHandle +ValueNode_RadialComposite::get_link_vfunc(int i)const +{ + assert(i>=0 && i<6); + return components[i]; +} + +String +ValueNode_RadialComposite::link_local_name(int i)const +{ + assert(i>=0 && i<6); + switch(get_type()) + { + case ValueBase::TYPE_VECTOR: + if(i==0) + return _("Radius"); + else if(i==1) + return _("Theta"); + break; + + case ValueBase::TYPE_COLOR: + if(i==0) + return _("Luma"); + else if(i==1) + return _("Saturation"); + else if(i==2) + return _("Hue"); + else if(i==3) + return _("Alpha"); + break; + + default: + break; + } + return etl::strprintf(_("C%d"),i+1); +} + + +String +ValueNode_RadialComposite::link_name(int i)const +{ + assert(i>=0 && i<5); + return strprintf("c%d",i); +} + +int +ValueNode_RadialComposite::get_link_index_from_name(const String &name)const +{ + if(name.empty()) + throw Exception::BadLinkName(name); + + if(name[0]=='c') + return name[1]-'0'; + + switch(get_type()) + { + case ValueBase::TYPE_COLOR: + if(name[0]=='y') + return 0; + if(name[0]=='s') + return 1; + if(name[0]=='h') + return 2; + if(name[0]=='a') + return 3; + case ValueBase::TYPE_VECTOR: + if(name[0]=='r') + return 0; + if(name[0]=='t') + return 1; + default: + break; + } + + throw Exception::BadLinkName(name); +} + +String +ValueNode_RadialComposite::get_name()const +{ + return "radial_composite"; +} + +String +ValueNode_RadialComposite::get_local_name()const +{ + return _("RadialComposite"); +} + +bool +ValueNode_RadialComposite::check_type(ValueBase::Type type) +{ + return + type==ValueBase::TYPE_VECTOR || + type==ValueBase::TYPE_COLOR; +} diff --git a/synfig-core/tags/stable/src/synfig/valuenode_radialcomposite.h b/synfig-core/tags/stable/src/synfig/valuenode_radialcomposite.h new file mode 100644 index 0000000..46b576d --- /dev/null +++ b/synfig-core/tags/stable/src/synfig/valuenode_radialcomposite.h @@ -0,0 +1,77 @@ +/* === S Y N F I G ========================================================= */ +/*! \file valuenode_radialcomposite.h +** \brief Template Header +** +** $Id$ +** +** \legal +** Copyright (c) 2002-2005 Robert B. Quattlebaum Jr., Adrian Bentley +** +** This package is free software; you can redistribute it and/or +** modify it under the terms of the GNU General Public License as +** published by the Free Software Foundation; either version 2 of +** the License, or (at your option) any later version. +** +** This package is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +** General Public License for more details. +** \endlegal +*/ +/* ========================================================================= */ + +/* === S T A R T =========================================================== */ + +#ifndef __SYNFIG_VALUENODE_RADIALCOMPOSITE_H +#define __SYNFIG_VALUENODE_RADIALCOMPOSITE_H + +/* === H E A D E R S ======================================================= */ + +#include "valuenode.h" + +/* === M A C R O S ========================================================= */ + +/* === C L A S S E S & S T R U C T S ======================================= */ + +namespace synfig { + +class ValueNode_RadialComposite : public LinkableValueNode +{ + ValueNode::RHandle components[6]; + ValueNode_RadialComposite(const ValueBase &value); + +public: + typedef etl::handle Handle; + typedef etl::handle ConstHandle; + + + virtual ~ValueNode_RadialComposite(); + + virtual ValueNode::LooseHandle get_link_vfunc(int i)const; + virtual int link_count()const; + virtual String link_name(int i)const; + virtual String link_local_name(int i)const; + virtual ValueBase operator()(Time t)const; + + + virtual String get_name()const; + virtual String get_local_name()const; + virtual int get_link_index_from_name(const String &name)const; + +protected: + virtual bool set_link_vfunc(int i,ValueNode::Handle x); + + LinkableValueNode* create_new()const; + +public: + using synfig::LinkableValueNode::set_link_vfunc; + using synfig::LinkableValueNode::get_link_vfunc; + static bool check_type(ValueBase::Type type); + static ValueNode_RadialComposite* create(const ValueBase &x); +}; // END of class ValueNode_RadialComposite + +}; // END of namespace synfig + +/* === E N D =============================================================== */ + +#endif diff --git a/synfig-core/tags/stable/src/synfig/valuenode_reference.cpp b/synfig-core/tags/stable/src/synfig/valuenode_reference.cpp new file mode 100644 index 0000000..f2d0ace --- /dev/null +++ b/synfig-core/tags/stable/src/synfig/valuenode_reference.cpp @@ -0,0 +1,151 @@ +/* === S Y N F I G ========================================================= */ +/*! \file valuenode_reference.cpp +** \brief Template File +** +** $Id$ +** +** \legal +** Copyright (c) 2002-2005 Robert B. Quattlebaum Jr., Adrian Bentley +** +** This package is free software; you can redistribute it and/or +** modify it under the terms of the GNU General Public License as +** published by the Free Software Foundation; either version 2 of +** the License, or (at your option) any later version. +** +** This package is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +** General Public License for more details. +** \endlegal +*/ +/* ========================================================================= */ + +/* === H E A D E R S ======================================================= */ + +#ifdef USING_PCH +# include "pch.h" +#else +#ifdef HAVE_CONFIG_H +# include +#endif + +#include "valuenode_reference.h" +#include "valuenode_const.h" +#include "general.h" + +#endif + +/* === U S I N G =========================================================== */ + +using namespace std; +using namespace etl; +using namespace synfig; + +/* === M A C R O S ========================================================= */ + +/* === G L O B A L S ======================================================= */ + +/* === P R O C E D U R E S ================================================= */ + +/* === M E T H O D S ======================================================= */ + +ValueNode_Reference::ValueNode_Reference(const ValueBase::Type &x): + LinkableValueNode(x) +{ +} + +ValueNode_Reference::ValueNode_Reference(const ValueNode::Handle &x): + LinkableValueNode(x->get_type()) +{ + set_link("link",x); +} + +ValueNode_Reference* +ValueNode_Reference::create(const ValueBase &x) +{ + return new ValueNode_Reference(ValueNode_Const::create(x)); +} + +LinkableValueNode* +ValueNode_Reference::create_new()const +{ + return new ValueNode_Reference(get_type()); +} + +ValueNode_Reference::~ValueNode_Reference() +{ + unlink_all(); +} + +bool +ValueNode_Reference::set_link_vfunc(int i,ValueNode::Handle x) +{ + assert(i==0); + if(x->get_type()!=get_type() && !PlaceholderValueNode::Handle::cast_dynamic(x)) + return false; + link_=x; + signal_child_changed()(i);signal_value_changed()(); + return true; +} + +ValueNode::LooseHandle +ValueNode_Reference::get_link_vfunc(int i)const +{ + assert(i==0); + return link_; +} + +int +ValueNode_Reference::link_count()const +{ + return 1; +} + +String +ValueNode_Reference::link_local_name(int i)const +{ + assert(i==0); + return _("Link"); +} + +String +ValueNode_Reference::link_name(int i)const +{ + return "link"; +} + +int +ValueNode_Reference::get_link_index_from_name(const String &name)const +{ + if(name=="link") + return 0; + + throw Exception::BadLinkName(name); +} + +ValueBase +ValueNode_Reference::operator()(Time t)const +{ + return (*link_)(t); +} + + +String +ValueNode_Reference::get_name()const +{ + return "reference"; +} + +String +ValueNode_Reference::get_local_name()const +{ + return _("Reference"); +} + +bool +ValueNode_Reference::check_type(ValueBase::Type type) +{ + if(type) + return true; + return false; +} diff --git a/synfig-core/tags/stable/src/synfig/valuenode_reference.h b/synfig-core/tags/stable/src/synfig/valuenode_reference.h new file mode 100644 index 0000000..6e97a2d --- /dev/null +++ b/synfig-core/tags/stable/src/synfig/valuenode_reference.h @@ -0,0 +1,85 @@ +/* === S Y N F I G ========================================================= */ +/*! \file valuenode_reference.h +** \brief Template Header +** +** $Id$ +** +** \legal +** Copyright (c) 2002-2005 Robert B. Quattlebaum Jr., Adrian Bentley +** +** This package is free software; you can redistribute it and/or +** modify it under the terms of the GNU General Public License as +** published by the Free Software Foundation; either version 2 of +** the License, or (at your option) any later version. +** +** This package is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +** General Public License for more details. +** \endlegal +*/ +/* ========================================================================= */ + +/* === S T A R T =========================================================== */ + +#ifndef __SYNFIG_VALUENODE_REFERENCE_H +#define __SYNFIG_VALUENODE_REFERENCE_H + +/* === H E A D E R S ======================================================= */ + +#include "valuenode.h" + +/* === M A C R O S ========================================================= */ + +/* === C L A S S E S & S T R U C T S ======================================= */ + +namespace synfig { + +class ValueNode_Reference : public LinkableValueNode +{ + ValueNode::RHandle link_; +public: + typedef etl::handle Handle; + typedef etl::handle ConstHandle; + + ValueNode_Reference(const ValueBase::Type &x); + + ValueNode_Reference(const ValueNode::Handle &x); + +// static Handle create(const ValueBase::Type &x); +// static Handle create(const ValueNode::Handle &x); + + + virtual ValueNode::LooseHandle get_link_vfunc(int i)const; + + virtual int link_count()const; + + virtual String link_name(int i)const; + + virtual String link_local_name(int i)const; + virtual int get_link_index_from_name(const String &name)const; + + virtual ValueBase operator()(Time t)const; + + virtual ~ValueNode_Reference(); + + virtual String get_name()const; + + virtual String get_local_name()const; + +protected: + virtual bool set_link_vfunc(int i,ValueNode::Handle x); + + LinkableValueNode* create_new()const; + +public: + using synfig::LinkableValueNode::set_link_vfunc; + static bool check_type(ValueBase::Type type); + static ValueNode_Reference* create(const ValueBase &x); +}; // END of class ValueNode_Reference + +}; // END of namespace synfig + +/* === E N D =============================================================== */ + +#endif diff --git a/synfig-core/tags/stable/src/synfig/valuenode_scale.cpp b/synfig-core/tags/stable/src/synfig/valuenode_scale.cpp new file mode 100644 index 0000000..ef0ac19 --- /dev/null +++ b/synfig-core/tags/stable/src/synfig/valuenode_scale.cpp @@ -0,0 +1,278 @@ +/* === S Y N F I G ========================================================= */ +/*! \file valuenode_scale.cpp +** \brief Template File +** +** $Id$ +** +** \legal +** Copyright (c) 2002-2005 Robert B. Quattlebaum Jr., Adrian Bentley +** +** This package is free software; you can redistribute it and/or +** modify it under the terms of the GNU General Public License as +** published by the Free Software Foundation; either version 2 of +** the License, or (at your option) any later version. +** +** This package is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +** General Public License for more details. +** \endlegal +*/ +/* ========================================================================= */ + +/* === H E A D E R S ======================================================= */ + +#ifdef USING_PCH +# include "pch.h" +#else +#ifdef HAVE_CONFIG_H +# include +#endif + +#include "general.h" +#include "valuenode_scale.h" +#include "valuenode_const.h" +#include +#include +#include "color.h" +#include "vector.h" +#include "time.h" +#include "angle.h" + +#endif + +/* === U S I N G =========================================================== */ + +using namespace std; +using namespace etl; +using namespace synfig; + +/* === M A C R O S ========================================================= */ + +/* === G L O B A L S ======================================================= */ + +/* === P R O C E D U R E S ================================================= */ + +/* === M E T H O D S ======================================================= */ + +ValueNode_Scale::ValueNode_Scale():LinkableValueNode(synfig::ValueBase::TYPE_NIL) +{ + set_scalar(1.0); +} + +ValueNode_Scale* +ValueNode_Scale::create(const ValueBase& x) +{ + ValueNode_Scale* value_node; + switch(x.get_type()) + { + case ValueBase::TYPE_VECTOR: + case ValueBase::TYPE_REAL: + case ValueBase::TYPE_TIME: + case ValueBase::TYPE_INTEGER: + case ValueBase::TYPE_ANGLE: + case ValueBase::TYPE_COLOR: + value_node=new ValueNode_Scale(); + if(!value_node->set_value_node(ValueNode_Const::create(x))) + return 0; + assert(value_node->get_value_node()->get_type()==x.get_type()); + break; + default: + assert(0); + throw runtime_error("synfig::ValueNode_Scale:Bad type "+ValueBase::type_name(x.get_type())); + } + assert(value_node); + assert(value_node->get_type()==x.get_type()); + + return value_node; +} + +LinkableValueNode* +ValueNode_Scale::create_new()const +{ + return new ValueNode_Scale(); +} + +synfig::ValueNode_Scale::~ValueNode_Scale() +{ + unlink_all(); +} + +void +ValueNode_Scale::set_scalar(Real x) +{ + set_link("scalar",ValueNode::Handle(ValueNode_Const::create(x))); +} + +bool +ValueNode_Scale::set_scalar(const ValueNode::Handle &x) +{ + if(!x + || x->get_type()!=ValueBase::TYPE_REAL + && !PlaceholderValueNode::Handle::cast_dynamic(x) + ) + return false; + scalar=x; + return true; +} + +ValueNode::Handle +ValueNode_Scale::get_scalar()const +{ + return scalar; +} + +bool +ValueNode_Scale::set_value_node(const ValueNode::Handle &x) +{ + if(!x + || ( get_type()==ValueBase::TYPE_NIL + && !check_type(x->get_type()) ) + || ( get_type()!=ValueBase::TYPE_NIL + && x->get_type()!=get_type() ) && + !PlaceholderValueNode::Handle::cast_dynamic(x) + ) + return false; + + assert(!(PlaceholderValueNode::Handle::cast_dynamic(x) && !get_type())); + + value_node=x; + + if(!get_type()) + set_type(x->get_type()); + + return true; +} + +ValueNode::Handle +ValueNode_Scale::get_value_node()const +{ + return value_node; +} + + +synfig::ValueBase +synfig::ValueNode_Scale::operator()(Time t)const +{ + if(!value_node || !scalar) + throw runtime_error(strprintf("ValueNode_Scale: %s",_("One or both of my parameters aren't set!"))); + else + if(get_type()==ValueBase::TYPE_VECTOR) + return (*value_node)(t).get(Vector())*(*scalar)(t).get(Real()); + else + if(get_type()==ValueBase::TYPE_REAL) + return (*value_node)(t).get(Real())*(*scalar)(t).get(Real()); + else + if(get_type()==ValueBase::TYPE_TIME) + return (*value_node)(t).get(Time())*(*scalar)(t).get(Time()); + else + if(get_type()==ValueBase::TYPE_INTEGER) + return (*value_node)(t).get(int())*(*scalar)(t).get(Real()); + else + if(get_type()==ValueBase::TYPE_ANGLE) + return (*value_node)(t).get(Angle())*(*scalar)(t).get(Real()); + else + if(get_type()==ValueBase::TYPE_COLOR) + { + Color ret((*value_node)(t).get(Color())); + Real s((*scalar)(t).get(Real())); + ret.set_r(ret.get_r()*s); + ret.set_g(ret.get_r()*s); + ret.set_b(ret.get_r()*s); + return ret; + } + + assert(0); + return ValueBase(); +} + + +bool +ValueNode_Scale::set_link_vfunc(int i,ValueNode::Handle x) +{ + if(!(i==0 || i==1)) + return false; + + if(i==0 && !set_value_node(x)) + return false; + else + if(i==1 && !set_scalar(x)) + return false; + + signal_child_changed()(i);signal_value_changed()(); + + return true; +} + +ValueNode::LooseHandle +ValueNode_Scale::get_link_vfunc(int i)const +{ + assert(i==0 || i==1); + if(i==0) + return value_node; + else if(i==1) + return scalar; + return 0; +} + +int +ValueNode_Scale::link_count()const +{ + return 2; +} + +String +ValueNode_Scale::link_local_name(int i)const +{ + assert(i==0 || i==1); + if(i==0) + return _("Link"); + else if(i==1) + return _("Scalar"); + return String(); +} + +String +ValueNode_Scale::link_name(int i)const +{ + assert(i==0 || i==1); + if(i==0) + return "link"; + else if(i==1) + return "scalar"; + return String(); +} + +int +ValueNode_Scale::get_link_index_from_name(const String &name)const +{ + if(name=="link") + return 0; + if(name=="scalar") + return 1; + + throw Exception::BadLinkName(name); +} + +String +ValueNode_Scale::get_name()const +{ + return "scale"; +} + +String +ValueNode_Scale::get_local_name()const +{ + return _("Scale"); +} + +bool +ValueNode_Scale::check_type(ValueBase::Type type) +{ + return + type==ValueBase::TYPE_VECTOR || + type==ValueBase::TYPE_REAL || + type==ValueBase::TYPE_INTEGER || + type==ValueBase::TYPE_COLOR || + type==ValueBase::TYPE_ANGLE; +} diff --git a/synfig-core/tags/stable/src/synfig/valuenode_scale.h b/synfig-core/tags/stable/src/synfig/valuenode_scale.h new file mode 100644 index 0000000..7788c3d --- /dev/null +++ b/synfig-core/tags/stable/src/synfig/valuenode_scale.h @@ -0,0 +1,103 @@ +/* === S Y N F I G ========================================================= */ +/*! \file valuenode_scale.h +** \brief Template Header +** +** $Id$ +** +** \legal +** Copyright (c) 2002-2005 Robert B. Quattlebaum Jr., Adrian Bentley +** +** This package is free software; you can redistribute it and/or +** modify it under the terms of the GNU General Public License as +** published by the Free Software Foundation; either version 2 of +** the License, or (at your option) any later version. +** +** This package is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +** General Public License for more details. +** \endlegal +*/ +/* ========================================================================= */ + +/* === S T A R T =========================================================== */ + +#ifndef __SYNFIG_VALUENODE_SCALE_H +#define __SYNFIG_VALUENODE_SCALE_H + +/* === H E A D E R S ======================================================= */ + +#include "valuenode.h" + +/* === M A C R O S ========================================================= */ + +/* === C L A S S E S & S T R U C T S ======================================= */ + +namespace synfig { + +struct ValueNode_Scale : public LinkableValueNode +{ + typedef etl::handle Handle; + typedef etl::handle ConstHandle; + +private: + ValueNode::RHandle value_node; + ValueNode::RHandle scalar; + + ValueNode_Scale(); + +public: + + //static Handle create(ValueBase::Type id=ValueBase::TYPE_NIL); + + //static Handle create(ValueNode::Handle value_node, Real scalar); + + virtual ~ValueNode_Scale(); + + //! \writeme + bool set_value_node(const ValueNode::Handle &a); + + //! \writeme + ValueNode::Handle get_value_node()const; + + void set_scalar(Real x); + + bool set_scalar(const ValueNode::Handle &x); + + ValueNode::Handle get_scalar()const; + + + + + virtual ValueNode::LooseHandle get_link_vfunc(int i)const; + + virtual int link_count()const; + + virtual String link_name(int i)const; + virtual int get_link_index_from_name(const String &name)const; + + virtual ValueBase operator()(Time t)const; + + virtual String get_name()const; + + virtual String get_local_name()const; + + virtual String link_local_name(int i)const; + +protected: + virtual bool set_link_vfunc(int i,ValueNode::Handle x); + + virtual LinkableValueNode* create_new()const; + +public: + using synfig::LinkableValueNode::get_link_vfunc; + using synfig::LinkableValueNode::set_link_vfunc; + static bool check_type(ValueBase::Type type); + static ValueNode_Scale* create(const ValueBase &x); +}; // END of class ValueNode_Scale + +}; // END of namespace synfig + +/* === E N D =============================================================== */ + +#endif diff --git a/synfig-core/tags/stable/src/synfig/valuenode_segcalctangent.cpp b/synfig-core/tags/stable/src/synfig/valuenode_segcalctangent.cpp new file mode 100644 index 0000000..659f8e5 --- /dev/null +++ b/synfig-core/tags/stable/src/synfig/valuenode_segcalctangent.cpp @@ -0,0 +1,187 @@ +/* === S Y N F I G ========================================================= */ +/*! \file valuenode_segcalctangent.cpp +** \brief Template File +** +** $Id$ +** +** \legal +** Copyright (c) 2002-2005 Robert B. Quattlebaum Jr., Adrian Bentley +** +** This package is free software; you can redistribute it and/or +** modify it under the terms of the GNU General Public License as +** published by the Free Software Foundation; either version 2 of +** the License, or (at your option) any later version. +** +** This package is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +** General Public License for more details. +** \endlegal +*/ +/* ========================================================================= */ + +/* === H E A D E R S ======================================================= */ + +#ifdef USING_PCH +# include "pch.h" +#else +#ifdef HAVE_CONFIG_H +# include +#endif + +#include "valuenode_segcalctangent.h" +#include "valuenode_const.h" +#include "valuenode_composite.h" +#include "general.h" +#include "exception.h" +#include +#include +#include "segment.h" + +#endif + +/* === U S I N G =========================================================== */ + +using namespace std; +using namespace etl; +using namespace synfig; + +/* === M A C R O S ========================================================= */ + +/* === G L O B A L S ======================================================= */ + +/* === P R O C E D U R E S ================================================= */ + +/* === M E T H O D S ======================================================= */ + +ValueNode_SegCalcTangent::ValueNode_SegCalcTangent(const ValueBase::Type &x): + LinkableValueNode(x) +{ + if(x!=ValueBase::TYPE_VECTOR) + throw Exception::BadType(ValueBase::type_name(x)); + + segment_=ValueNode_Composite::create(ValueBase::TYPE_SEGMENT); + amount_=ValueNode_Const::create(Real(0.5)); +} + +ValueNode_SegCalcTangent* +ValueNode_SegCalcTangent::create(const ValueBase &x) +{ + return new ValueNode_SegCalcTangent(x.get_type()); +} + +ValueNode_SegCalcTangent::~ValueNode_SegCalcTangent() +{ + unlink_all(); +} + +ValueBase +ValueNode_SegCalcTangent::operator()(Time t)const +{ + Segment segment((*segment_)(t).get(Segment())); + + etl::hermite curve(segment.p1,segment.p2,segment.t1,segment.t2); + etl::derivative< etl::hermite > deriv(curve); + +#ifdef ETL_FIXED_DERIVATIVE + return deriv((*amount_)(t).get(Real()))*(0.5); +#else + return deriv((*amount_)(t).get(Real()))*(-0.5); +#endif + +} + + +String +ValueNode_SegCalcTangent::get_name()const +{ + return "segcalctangent"; +} + +String +ValueNode_SegCalcTangent::get_local_name()const +{ + return _("SegCalcTangent"); +} + +bool +ValueNode_SegCalcTangent::check_type(ValueBase::Type type) +{ + return type==ValueBase::TYPE_VECTOR; +} + +bool +ValueNode_SegCalcTangent::set_link_vfunc(int i,ValueNode::Handle x) +{ + assert(i==0 || i==1); + if(i==0) + { + segment_=x; + signal_child_changed()(i);signal_value_changed()(); + return true; + } + if(i==1) + { + amount_=x; + signal_child_changed()(i);signal_value_changed()(); + return true; + } + return false; +} + +ValueNode::LooseHandle +ValueNode_SegCalcTangent::get_link_vfunc(int i)const +{ + assert(i==0 || i==1); + if(i==0) + return segment_; + if(i==1) + return amount_; + + return 0; +} + +int +ValueNode_SegCalcTangent::link_count()const +{ + return 2; +} + +String +ValueNode_SegCalcTangent::link_name(int i)const +{ + assert(i==0 || i==1); + if(i==0) + return "segment"; + if(i==1) + return "amount"; + return String(); +} + +String +ValueNode_SegCalcTangent::link_local_name(int i)const +{ + assert(i==0 || i==1); + if(i==0) + return _("Segment"); + if(i==1) + return _("Amount"); + return String(); +} + +int +ValueNode_SegCalcTangent::get_link_index_from_name(const String &name)const +{ + if(name=="segment") + return 0; + if(name=="amount") + return 1; + + throw Exception::BadLinkName(name); +} + +LinkableValueNode* +ValueNode_SegCalcTangent::create_new()const +{ + return new ValueNode_SegCalcTangent(ValueBase::TYPE_VECTOR); +} diff --git a/synfig-core/tags/stable/src/synfig/valuenode_segcalctangent.h b/synfig-core/tags/stable/src/synfig/valuenode_segcalctangent.h new file mode 100644 index 0000000..19b15a4 --- /dev/null +++ b/synfig-core/tags/stable/src/synfig/valuenode_segcalctangent.h @@ -0,0 +1,83 @@ +/* === S Y N F I G ========================================================= */ +/*! \file valuenode_segcalctangent.h +** \brief Template Header +** +** $Id$ +** +** \legal +** Copyright (c) 2002-2005 Robert B. Quattlebaum Jr., Adrian Bentley +** +** This package is free software; you can redistribute it and/or +** modify it under the terms of the GNU General Public License as +** published by the Free Software Foundation; either version 2 of +** the License, or (at your option) any later version. +** +** This package is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +** General Public License for more details. +** \endlegal +*/ +/* ========================================================================= */ + +/* === S T A R T =========================================================== */ + +#ifndef __SYNFIG_VALUENODE_SEGCALCTANGENT_H +#define __SYNFIG_VALUENODE_SEGCALCTANGENT_H + +/* === H E A D E R S ======================================================= */ + +#include "valuenode.h" + +/* === M A C R O S ========================================================= */ + +/* === C L A S S E S & S T R U C T S ======================================= */ + +namespace synfig { + +class ValueNode_SegCalcTangent : public LinkableValueNode +{ + ValueNode::RHandle segment_; + ValueNode::RHandle amount_; + + ValueNode_SegCalcTangent(const ValueBase::Type &x=ValueBase::TYPE_VECTOR); + +public: + + typedef etl::handle Handle; + typedef etl::handle ConstHandle; + + //static Handle create(const ValueBase::Type &x=ValueBase::TYPE_VECTOR); + + + virtual ValueBase operator()(Time t)const; + + virtual ~ValueNode_SegCalcTangent(); + + virtual String get_name()const; + virtual String get_local_name()const; + + + virtual ValueNode::LooseHandle get_link_vfunc(int i)const; + virtual int link_count()const; + virtual String link_name(int i)const; + + virtual String link_local_name(int i)const; + virtual int get_link_index_from_name(const String &name)const; + +protected: + virtual bool set_link_vfunc(int i,ValueNode::Handle x); + LinkableValueNode* create_new()const; + +public: + using synfig::LinkableValueNode::get_link_vfunc; + using synfig::LinkableValueNode::set_link_vfunc; + static bool check_type(ValueBase::Type type); + static ValueNode_SegCalcTangent* create(const ValueBase &x=ValueBase::TYPE_VECTOR); +}; // END of class ValueNode_SegCalcTangent + +}; // END of namespace synfig + +/* === E N D =============================================================== */ + +#endif diff --git a/synfig-core/tags/stable/src/synfig/valuenode_segcalcvertex.cpp b/synfig-core/tags/stable/src/synfig/valuenode_segcalcvertex.cpp new file mode 100644 index 0000000..0e8e6b0 --- /dev/null +++ b/synfig-core/tags/stable/src/synfig/valuenode_segcalcvertex.cpp @@ -0,0 +1,181 @@ +/* === S Y N F I G ========================================================= */ +/*! \file valuenode_segcalcvertex.cpp +** \brief Template File +** +** $Id$ +** +** \legal +** Copyright (c) 2002-2005 Robert B. Quattlebaum Jr., Adrian Bentley +** +** This package is free software; you can redistribute it and/or +** modify it under the terms of the GNU General Public License as +** published by the Free Software Foundation; either version 2 of +** the License, or (at your option) any later version. +** +** This package is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +** General Public License for more details. +** \endlegal +*/ +/* ========================================================================= */ + +/* === H E A D E R S ======================================================= */ + +#ifdef USING_PCH +# include "pch.h" +#else +#ifdef HAVE_CONFIG_H +# include +#endif + +#include "valuenode_segcalcvertex.h" +#include "valuenode_const.h" +#include "valuenode_composite.h" +#include "general.h" +#include "exception.h" +#include +#include "segment.h" + +#endif + +/* === U S I N G =========================================================== */ + +using namespace std; +using namespace etl; +using namespace synfig; + +/* === M A C R O S ========================================================= */ + +/* === G L O B A L S ======================================================= */ + +/* === P R O C E D U R E S ================================================= */ + +/* === M E T H O D S ======================================================= */ + +ValueNode_SegCalcVertex::ValueNode_SegCalcVertex(const ValueBase::Type &x): + LinkableValueNode(x) +{ + if(x!=ValueBase::TYPE_VECTOR) + throw Exception::BadType(ValueBase::type_name(x)); + + segment_=ValueNode_Composite::create(ValueBase::TYPE_SEGMENT); + amount_=ValueNode_Const::create(Real(0.5)); + +} + +ValueNode_SegCalcVertex* +ValueNode_SegCalcVertex::create(const ValueBase &x) +{ + return new ValueNode_SegCalcVertex(x.get_type()); +} + +ValueNode_SegCalcVertex::~ValueNode_SegCalcVertex() +{ + unlink_all(); +} + +ValueBase +ValueNode_SegCalcVertex::operator()(Time t)const +{ + Segment segment((*segment_)(t).get(Segment())); + + etl::hermite curve(segment.p1,segment.p2,segment.t1,segment.t2); + + return curve((*amount_)(t).get(Real())); +} + + +String +ValueNode_SegCalcVertex::get_name()const +{ + return "segcalcvertex"; +} + +String +ValueNode_SegCalcVertex::get_local_name()const +{ + return _("SegCalcVertex"); +} + +bool +ValueNode_SegCalcVertex::check_type(ValueBase::Type type) +{ + return type==ValueBase::TYPE_VECTOR; +} + +bool +ValueNode_SegCalcVertex::set_link_vfunc(int i,ValueNode::Handle x) +{ + assert(i==0 || i==1); + if(i==0) + { + segment_=x; + signal_child_changed()(i);signal_value_changed()(); + return true; + } + if(i==1) + { + amount_=x; + signal_child_changed()(i);signal_value_changed()(); + return true; + } + return false; +} + +ValueNode::LooseHandle +ValueNode_SegCalcVertex::get_link_vfunc(int i)const +{ + assert(i==0 || i==1); + if(i==0) + return segment_; + if(i==1) + return amount_; + + return 0; +} + +int +ValueNode_SegCalcVertex::link_count()const +{ + return 2; +} + +String +ValueNode_SegCalcVertex::link_name(int i)const +{ + assert(i==0 || i==1); + if(i==0) + return "segment"; + if(i==1) + return "amount"; + return String(); +} + +String +ValueNode_SegCalcVertex::link_local_name(int i)const +{ + assert(i==0 || i==1); + if(i==0) + return _("Segment"); + if(i==1) + return _("Amount"); + return String(); +} + +int +ValueNode_SegCalcVertex::get_link_index_from_name(const String &name)const +{ + if(name=="segment") + return 0; + if(name=="amount") + return 1; + + throw Exception::BadLinkName(name); +} + +LinkableValueNode* +ValueNode_SegCalcVertex::create_new()const +{ + return new ValueNode_SegCalcVertex(ValueBase::TYPE_VECTOR); +} diff --git a/synfig-core/tags/stable/src/synfig/valuenode_segcalcvertex.h b/synfig-core/tags/stable/src/synfig/valuenode_segcalcvertex.h new file mode 100644 index 0000000..12eef6d --- /dev/null +++ b/synfig-core/tags/stable/src/synfig/valuenode_segcalcvertex.h @@ -0,0 +1,84 @@ +/* === S Y N F I G ========================================================= */ +/*! \file valuenode_segcalcvertex.h +** \brief Template Header +** +** $Id$ +** +** \legal +** Copyright (c) 2002-2005 Robert B. Quattlebaum Jr., Adrian Bentley +** +** This package is free software; you can redistribute it and/or +** modify it under the terms of the GNU General Public License as +** published by the Free Software Foundation; either version 2 of +** the License, or (at your option) any later version. +** +** This package is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +** General Public License for more details. +** \endlegal +*/ +/* ========================================================================= */ + +/* === S T A R T =========================================================== */ + +#ifndef __SYNFIG_VALUENODE_SEGCALCVERTEX_H +#define __SYNFIG_VALUENODE_SEGCALCVERTEX_H + +/* === H E A D E R S ======================================================= */ + +#include "valuenode.h" + +/* === M A C R O S ========================================================= */ + +/* === C L A S S E S & S T R U C T S ======================================= */ + +namespace synfig { + +class ValueNode_SegCalcVertex : public LinkableValueNode +{ + ValueNode::RHandle segment_; + ValueNode::RHandle amount_; + + ValueNode_SegCalcVertex(const ValueBase::Type &x=ValueBase::TYPE_VECTOR); + +public: + + typedef etl::handle Handle; + typedef etl::handle ConstHandle; + +// static Handle create(const ValueBase::Type &x=ValueBase::TYPE_VECTOR); + + + virtual ValueBase operator()(Time t)const; + + virtual ~ValueNode_SegCalcVertex(); + + virtual String get_name()const; + virtual String get_local_name()const; +// static bool check_type(const ValueBase::Type &type); + + + virtual ValueNode::LooseHandle get_link_vfunc(int i)const; + virtual int link_count()const; + virtual String link_name(int i)const; + + virtual String link_local_name(int i)const; + virtual int get_link_index_from_name(const String &name)const; + +protected: + LinkableValueNode* create_new()const; + virtual bool set_link_vfunc(int i,ValueNode::Handle x); + +public: + using synfig::LinkableValueNode::get_link_vfunc; + using synfig::LinkableValueNode::set_link_vfunc; + static bool check_type(ValueBase::Type type); + static ValueNode_SegCalcVertex* create(const ValueBase &x=ValueBase::TYPE_VECTOR); +}; // END of class ValueNode_SegCalcVertex + +}; // END of namespace synfig + +/* === E N D =============================================================== */ + +#endif diff --git a/synfig-core/tags/stable/src/synfig/valuenode_sine.cpp b/synfig-core/tags/stable/src/synfig/valuenode_sine.cpp new file mode 100644 index 0000000..d3dec4e --- /dev/null +++ b/synfig-core/tags/stable/src/synfig/valuenode_sine.cpp @@ -0,0 +1,182 @@ +/* === S Y N F I G ========================================================= */ +/*! \file valuenode_sine.cpp +** \brief Template File +** +** $Id$ +** +** \legal +** Copyright (c) 2002-2005 Robert B. Quattlebaum Jr., Adrian Bentley +** +** This package is free software; you can redistribute it and/or +** modify it under the terms of the GNU General Public License as +** published by the Free Software Foundation; either version 2 of +** the License, or (at your option) any later version. +** +** This package is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +** General Public License for more details. +** \endlegal +*/ +/* ========================================================================= */ + +/* === H E A D E R S ======================================================= */ + +#ifdef USING_PCH +# include "pch.h" +#else +#ifdef HAVE_CONFIG_H +# include +#endif + +#include "valuenode_sine.h" +#include "valuenode_const.h" +#include "general.h" + +#endif + +/* === U S I N G =========================================================== */ + +using namespace std; +using namespace etl; +using namespace synfig; + +/* === M A C R O S ========================================================= */ + +/* === G L O B A L S ======================================================= */ + +/* === P R O C E D U R E S ================================================= */ + +/* === M E T H O D S ======================================================= */ + +ValueNode_Sine::ValueNode_Sine(const ValueBase::Type &x): + LinkableValueNode(x) +{ + switch(x) + { + case ValueBase::TYPE_REAL: + set_link("angle",ValueNode_Const::create(Angle::zero())); + set_link("amp",ValueNode_Const::create(Real(1))); + break; + default: + throw Exception::BadType(ValueBase::type_name(x)); + } + + DCAST_HACK_ENABLE(); +} + +ValueNode_Sine* +ValueNode_Sine::create(const ValueBase &x) +{ + return new ValueNode_Sine(x.get_type()); +} + +ValueNode_Sine::~ValueNode_Sine() +{ + unlink_all(); +} + +ValueBase +ValueNode_Sine::operator()(Time t)const +{ + return + Angle::sin( + (*angle_)(t).get(Angle()) + ).get() * (*amp_)(t).get(Real()) + ; +} + + +String +ValueNode_Sine::get_name()const +{ + return "sine"; +} + +String +ValueNode_Sine::get_local_name()const +{ + return _("Sine"); +} + +bool +ValueNode_Sine::check_type(ValueBase::Type type) +{ + return type==ValueBase::TYPE_REAL; +} + +bool +ValueNode_Sine::set_link_vfunc(int i,ValueNode::Handle x) +{ + assert(i==0 || i==1); + if(i==0) + { + angle_=x; + signal_child_changed()(i);signal_value_changed()(); + return true; + } + if(i==1) + { + amp_=x; + signal_child_changed()(i);signal_value_changed()(); + return true; + } + return false; +} + +ValueNode::LooseHandle +ValueNode_Sine::get_link_vfunc(int i)const +{ + assert(i==0 || i==1); + if(i==0) + return angle_; + if(i==1) + return amp_; + + return 0; +} + +int +ValueNode_Sine::link_count()const +{ + return 2; +} + +String +ValueNode_Sine::link_name(int i)const +{ + assert(i==0 || i==1); + if(i==0) + return "angle"; + if(i==1) + return "amp"; + return String(); +} + +String +ValueNode_Sine::link_local_name(int i)const +{ + assert(i==0 || i==1); + if(i==0) + return _("Angle"); + if(i==1) + return _("Amplitude"); + return String(); +} + +int +ValueNode_Sine::get_link_index_from_name(const String &name)const +{ + if(name=="angle") + return 0; + if(name=="amp") + return 1; + + throw Exception::BadLinkName(name); +} + +LinkableValueNode* +ValueNode_Sine::create_new()const +{ + return new ValueNode_Sine(get_type()); +} diff --git a/synfig-core/tags/stable/src/synfig/valuenode_sine.h b/synfig-core/tags/stable/src/synfig/valuenode_sine.h new file mode 100644 index 0000000..d4704de --- /dev/null +++ b/synfig-core/tags/stable/src/synfig/valuenode_sine.h @@ -0,0 +1,82 @@ +/* === S Y N F I G ========================================================= */ +/*! \file valuenode_sine.h +** \brief Template Header +** +** $Id$ +** +** \legal +** Copyright (c) 2002-2005 Robert B. Quattlebaum Jr., Adrian Bentley +** +** This package is free software; you can redistribute it and/or +** modify it under the terms of the GNU General Public License as +** published by the Free Software Foundation; either version 2 of +** the License, or (at your option) any later version. +** +** This package is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +** General Public License for more details. +** \endlegal +*/ +/* ========================================================================= */ + +/* === S T A R T =========================================================== */ + +#ifndef __SYNFIG_VALUENODE_SINE_H +#define __SYNFIG_VALUENODE_SINE_H + +/* === H E A D E R S ======================================================= */ + +#include "valuenode.h" + +/* === M A C R O S ========================================================= */ + +/* === C L A S S E S & S T R U C T S ======================================= */ + +namespace synfig { + +class ValueNode_Sine : public LinkableValueNode +{ + ValueNode::RHandle angle_; + ValueNode::RHandle amp_; + + ValueNode_Sine(const ValueBase::Type &x); + +public: + + typedef etl::handle Handle; + typedef etl::handle ConstHandle; + + + virtual ValueBase operator()(Time t)const; + + virtual ~ValueNode_Sine(); + + virtual String get_name()const; + virtual String get_local_name()const; + + + virtual ValueNode::LooseHandle get_link_vfunc(int i)const; + virtual int link_count()const; + virtual String link_name(int i)const; + + virtual String link_local_name(int i)const; + virtual int get_link_index_from_name(const String &name)const; + +protected: + LinkableValueNode* create_new()const; + virtual bool set_link_vfunc(int i,ValueNode::Handle x); + +public: + using synfig::LinkableValueNode::get_link_vfunc; + + using synfig::LinkableValueNode::set_link_vfunc; + static bool check_type(ValueBase::Type type); + static ValueNode_Sine* create(const ValueBase &x); +}; // END of class ValueNode_Sine + +}; // END of namespace synfig + +/* === E N D =============================================================== */ + +#endif diff --git a/synfig-core/tags/stable/src/synfig/valuenode_stripes.cpp b/synfig-core/tags/stable/src/synfig/valuenode_stripes.cpp new file mode 100644 index 0000000..c881015 --- /dev/null +++ b/synfig-core/tags/stable/src/synfig/valuenode_stripes.cpp @@ -0,0 +1,276 @@ +/* === S Y N F I G ========================================================= */ +/*! \file valuenode_stripes.cpp +** \brief Template File +** +** $Id$ +** +** \legal +** Copyright (c) 2002-2005 Robert B. Quattlebaum Jr., Adrian Bentley +** +** This package is free software; you can redistribute it and/or +** modify it under the terms of the GNU General Public License as +** published by the Free Software Foundation; either version 2 of +** the License, or (at your option) any later version. +** +** This package is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +** General Public License for more details. +** \endlegal +*/ +/* ========================================================================= */ + +/* === H E A D E R S ======================================================= */ + +#ifdef USING_PCH +# include "pch.h" +#else +#ifdef HAVE_CONFIG_H +# include +#endif + +#include "general.h" +#include "valuenode_stripes.h" +#include "valuenode_const.h" +#include +#include "color.h" +#include "gradient.h" + +#endif + +/* === U S I N G =========================================================== */ + +using namespace std; +using namespace etl; +using namespace synfig; + +/* === M A C R O S ========================================================= */ + +/* === G L O B A L S ======================================================= */ + +/* === P R O C E D U R E S ================================================= */ + +/* === M E T H O D S ======================================================= */ + +synfig::ValueNode_Stripes::ValueNode_Stripes():LinkableValueNode(synfig::ValueBase::TYPE_GRADIENT) +{ + set_link("color1",ValueNode_Const::create(Color::alpha())); + set_link("color2",ValueNode_Const::create(Color::black())); + set_link("stripes",stripes_=ValueNode_Const::create(int(5))); + set_link("width",ValueNode_Const::create(0.5)); +} + +LinkableValueNode* +ValueNode_Stripes::create_new()const +{ + return new ValueNode_Stripes(); +} + +ValueNode_Stripes* +ValueNode_Stripes::create(const ValueBase& x) +{ + ValueBase::Type id(x.get_type()); + + if(id!=ValueBase::TYPE_GRADIENT) + { + assert(0); + throw runtime_error("synfig::ValueNode_Stripes:Bad type "+ValueBase::type_name(id)); + } + + ValueNode_Stripes* value_node=new ValueNode_Stripes(); + + assert(value_node->get_type()==id); + + return value_node; +} + +synfig::ValueNode_Stripes::~ValueNode_Stripes() +{ + unlink_all(); +} + +bool +synfig::ValueNode_Stripes::set_color1(ValueNode::Handle a) +{ + if(a->get_type()!=ValueBase::TYPE_COLOR) + return false; + + color1_=a; + + return true; +} + +bool +synfig::ValueNode_Stripes::set_color2(ValueNode::Handle a) +{ + if(a->get_type()!=ValueBase::TYPE_COLOR) + return false; + + color2_=a; + + return true; +} + +bool +synfig::ValueNode_Stripes::set_width(ValueNode::Handle x) +{ + if(x->get_type()!=ValueBase::TYPE_REAL) + return false; + + width_=x; + + return true; +} + +bool +synfig::ValueNode_Stripes::set_stripes(ValueNode::Handle b) +{ + if(b->get_type()!=ValueBase::TYPE_INTEGER) + return false; + stripes_=b; + return true; +} + +synfig::ValueBase +synfig::ValueNode_Stripes::operator()(Time t)const +{ + const int total((*stripes_)(t).get(int())); + int i; + Gradient ret; + + if(total<=0) + return ret; + + const Color color1((*color1_)(t).get(Color())); + const Color color2((*color2_)(t).get(Color())); + const float width(max(0.0,min(1.0,(*width_)(t).get(Real())))); + + const float stripe_width_a(width/total); + const float stripe_width_b((1.0-width)/total); + + for(i=0;i=0 && i=0 && i=0 && i=0 && i Handle; + typedef etl::handle ConstHandle; + +protected: + + ValueNode_Stripes(); + +private: + + ValueNode::RHandle color1_; + ValueNode::RHandle color2_; + ValueNode::RHandle stripes_; + ValueNode::RHandle width_; + +public: + + virtual ~ValueNode_Stripes(); + +// static Handle create(ValueBase::Type id=ValueBase::TYPE_GRADIENT); + + bool set_color1(ValueNode::Handle a); + ValueNode::Handle get_color1()const { return color1_; } + + bool set_color2(ValueNode::Handle a); + ValueNode::Handle get_color2()const { return color2_; } + + bool set_stripes(ValueNode::Handle b); + ValueNode::Handle get_stripes()const { return stripes_; } + + bool set_width(ValueNode::Handle x); + + + virtual bool set_link_vfunc(int i,ValueNode::Handle x); + + virtual ValueNode::LooseHandle get_link_vfunc(int i)const; + + virtual int link_count()const; + + virtual String link_local_name(int i)const; + virtual String link_name(int i)const; + virtual int get_link_index_from_name(const String &name)const; + + virtual ValueBase operator()(Time t)const; + + virtual String get_name()const; + virtual String get_local_name()const; + +// static bool check_type(const ValueBase::Type &type); + + LinkableValueNode* create_new()const; + +public: + using synfig::LinkableValueNode::get_link_vfunc; + using synfig::LinkableValueNode::set_link_vfunc; + static bool check_type(ValueBase::Type type); + static ValueNode_Stripes* create(const ValueBase &x=ValueBase::TYPE_GRADIENT); +}; // END of class ValueNode_Stripes + +}; // END of namespace synfig + +/* === E N D =============================================================== */ + +#endif diff --git a/synfig-core/tags/stable/src/synfig/valuenode_subtract.cpp b/synfig-core/tags/stable/src/synfig/valuenode_subtract.cpp new file mode 100644 index 0000000..ea97493 --- /dev/null +++ b/synfig-core/tags/stable/src/synfig/valuenode_subtract.cpp @@ -0,0 +1,316 @@ +/* === S Y N F I G ========================================================= */ +/*! \file valuenode_subtract.cpp +** \brief Template File +** +** $Id$ +** +** \legal +** Copyright (c) 2002-2005 Robert B. Quattlebaum Jr., Adrian Bentley +** +** This package is free software; you can redistribute it and/or +** modify it under the terms of the GNU General Public License as +** published by the Free Software Foundation; either version 2 of +** the License, or (at your option) any later version. +** +** This package is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +** General Public License for more details. +** \endlegal +*/ +/* ========================================================================= */ + +/* === H E A D E R S ======================================================= */ + +#ifdef USING_PCH +# include "pch.h" +#else +#ifdef HAVE_CONFIG_H +# include +#endif + +#include "general.h" +#include "valuenode_subtract.h" +#include "valuenode_const.h" +#include +#include "color.h" +#include "vector.h" +#include "angle.h" +#include "real.h" + +#endif + +/* === U S I N G =========================================================== */ + +using namespace std; +using namespace etl; +using namespace synfig; + +/* === M A C R O S ========================================================= */ + +/* === G L O B A L S ======================================================= */ + +/* === P R O C E D U R E S ================================================= */ + +/* === M E T H O D S ======================================================= */ + +synfig::ValueNode_Subtract::ValueNode_Subtract():LinkableValueNode(synfig::ValueBase::TYPE_NIL) +{ + set_scalar(1.0); +} + +LinkableValueNode* +ValueNode_Subtract::create_new()const +{ + return new ValueNode_Subtract(); +} + +ValueNode_Subtract* +ValueNode_Subtract::create(const ValueBase& x) +{ + ValueBase::Type id(x.get_type()); + + ValueNode_Subtract* value_node=new ValueNode_Subtract(); + switch(id) + { + case ValueBase::TYPE_NIL: + return value_node; + case ValueBase::TYPE_VECTOR: + case ValueBase::TYPE_REAL: + case ValueBase::TYPE_INTEGER: + case ValueBase::TYPE_ANGLE: + value_node->set_link("rhs",ValueNode_Const::create(ValueBase(id))); + value_node->set_link("lhs",ValueNode_Const::create(ValueBase(id))); + assert(value_node->get_rhs()->get_type()==id); + assert(value_node->get_lhs()->get_type()==id); + break; + default: + assert(0); + throw runtime_error("synfig::ValueNode_Subtract:Bad type "+ValueBase::type_name(id)); + } + assert(value_node->get_type()==id); + + return value_node; +} + +synfig::ValueNode_Subtract::~ValueNode_Subtract() +{ + unlink_all(); +} + +void +ValueNode_Subtract::set_scalar(Real x) +{ + set_link("scalar",ValueNode_Const::create(x)); +} + +bool +synfig::ValueNode_Subtract::set_scalar(ValueNode::Handle x) +{ + if(x->get_type()!=ValueBase::TYPE_REAL&& !PlaceholderValueNode::Handle::cast_dynamic(x)) + return false; + scalar=x; + return true; +} + +bool +synfig::ValueNode_Subtract::set_lhs(ValueNode::Handle a) +{ + ref_a=a; + + if(PlaceholderValueNode::Handle::cast_dynamic(a)) + return true; + + if(!ref_a || !ref_b) + set_type(ValueBase::TYPE_NIL); + else + if(ref_a->get_type()==ValueBase::TYPE_VECTOR && ref_a->get_type()==ValueBase::TYPE_VECTOR) + set_type(ValueBase::TYPE_VECTOR); + else + if(ref_a->get_type()==ValueBase::TYPE_REAL && ref_a->get_type()==ValueBase::TYPE_REAL) + set_type(ValueBase::TYPE_REAL); + else + if(ref_a->get_type()==ValueBase::TYPE_INTEGER && ref_a->get_type()==ValueBase::TYPE_INTEGER) + set_type(ValueBase::TYPE_INTEGER); + else + if(ref_a->get_type()==ValueBase::TYPE_ANGLE && ref_a->get_type()==ValueBase::TYPE_ANGLE) + set_type(ValueBase::TYPE_ANGLE); + else + if(ref_a->get_type()==ValueBase::TYPE_COLOR && ref_a->get_type()==ValueBase::TYPE_COLOR) + set_type(ValueBase::TYPE_COLOR); + else + { + synfig::warning(get_id()+":(set_a):"+strprintf(_("Types seem to be off for ValueNodes %s and %s"),ref_a->get_id().c_str(),ref_b->get_id().c_str())); + set_type(ValueBase::TYPE_NIL); + } + + return true; +} + +bool +synfig::ValueNode_Subtract::set_rhs(ValueNode::Handle b) +{ + ref_b=b; + + if(PlaceholderValueNode::Handle::cast_dynamic(b)) + return true; + + if(!ref_a || !ref_b) + set_type(ValueBase::TYPE_NIL); + else + if(ref_a->get_type()==ValueBase::TYPE_VECTOR && ref_a->get_type()==ValueBase::TYPE_VECTOR) + set_type(ValueBase::TYPE_VECTOR); + else + if(ref_a->get_type()==ValueBase::TYPE_REAL && ref_a->get_type()==ValueBase::TYPE_REAL) + set_type(ValueBase::TYPE_REAL); + else + if(ref_a->get_type()==ValueBase::TYPE_INTEGER && ref_a->get_type()==ValueBase::TYPE_INTEGER) + set_type(ValueBase::TYPE_INTEGER); + else + if(ref_a->get_type()==ValueBase::TYPE_ANGLE && ref_a->get_type()==ValueBase::TYPE_ANGLE) + set_type(ValueBase::TYPE_ANGLE); + else + if(ref_a->get_type()==ValueBase::TYPE_COLOR && ref_a->get_type()==ValueBase::TYPE_COLOR) + set_type(ValueBase::TYPE_COLOR); + else + { + synfig::warning(get_id()+":(set_b):"+strprintf(_("Types seem to be off for ValueNodes %s and %s"),ref_a->get_id().c_str(),ref_b->get_id().c_str())); + set_type(ValueBase::TYPE_NIL); + } + + return true; +} + +synfig::ValueBase +synfig::ValueNode_Subtract::operator()(Time t)const +{ + if(!ref_a || !ref_b) + throw runtime_error(strprintf("ValueNode_Subtract: %s",_("One or both of my parameters aren't set!"))); + else + if(get_type()==ValueBase::TYPE_VECTOR) + return ((*ref_a)(t).get(Vector())-(*ref_b)(t).get(Vector()))*(*scalar)(t).get(Real()); + else + if(get_type()==ValueBase::TYPE_REAL) + return ((*ref_a)(t).get(Vector::value_type())-(*ref_b)(t).get(Vector::value_type()))*(*scalar)(t).get(Real()); + else + if(get_type()==ValueBase::TYPE_INTEGER) + return ((*ref_a)(t).get(int())-(*ref_b)(t).get(int()))*(*scalar)(t).get(Real()); + else + if(get_type()==ValueBase::TYPE_ANGLE) + return ((*ref_a)(t).get(Angle())-(*ref_b)(t).get(Angle()))*(*scalar)(t).get(Real()); + else + if(get_type()==ValueBase::TYPE_COLOR) + return ((*ref_a)(t).get(Color())-(*ref_b)(t).get(Color()))*(*scalar)(t).get(Real()); + + synfig::error(get_id()+':'+strprintf(_("Cannot subtract types of %s and %s"),ValueBase::type_name(ref_a->get_type()).c_str(),ValueBase::type_name(ref_b->get_type()).c_str())); + return ValueBase(); +} + +bool +ValueNode_Subtract::set_link_vfunc(int i,ValueNode::Handle x) +{ + assert(i>=0 && i<3); + switch(i) + { + case 0: + if(set_lhs(x)) { signal_child_changed()(i);signal_value_changed()(); return true; } + else { return false; } + case 1: + if(set_rhs(x)) { signal_child_changed()(i);signal_value_changed()(); return true; } + else { return false; } + case 2: + scalar=x; + signal_child_changed()(i);signal_value_changed()(); + return true; + } + + return false; +} + +ValueNode::LooseHandle +ValueNode_Subtract::get_link_vfunc(int i)const +{ + assert(i>=0 && i<3); + switch(i) + { + case 0: + return ref_a; + case 1: + return ref_b; + case 2: + return scalar; + } + return 0; +} + +int +ValueNode_Subtract::link_count()const +{ + return 3; +} + +String +ValueNode_Subtract::link_local_name(int i)const +{ + assert(i>=0 && i<3); + switch(i) + { + case 0: + return _("LHS"); + case 1: + return _("RHS"); + case 2: + return _("Scalar"); + } + return String(); +} + +String +ValueNode_Subtract::link_name(int i)const +{ + assert(i>=0 && i<3); + switch(i) + { + case 0: + return "lhs"; + case 1: + return "rhs"; + case 2: + return "scalar"; + } + return String(); +} + +int +ValueNode_Subtract::get_link_index_from_name(const String &name)const +{ + if(name=="lhs") + return 0; + if(name=="rhs") + return 1; + if(name=="scalar") + return 2; + throw Exception::BadLinkName(name); +} + +String +ValueNode_Subtract::get_name()const +{ + return "subtract"; +} + +String +ValueNode_Subtract::get_local_name()const +{ + return _("Subtract"); +} + +bool +ValueNode_Subtract::check_type(ValueBase::Type type) +{ + return type==ValueBase::TYPE_VECTOR + || type==ValueBase::TYPE_REAL + || type==ValueBase::TYPE_INTEGER + || type==ValueBase::TYPE_COLOR + || type==ValueBase::TYPE_ANGLE; +} diff --git a/synfig-core/tags/stable/src/synfig/valuenode_subtract.h b/synfig-core/tags/stable/src/synfig/valuenode_subtract.h new file mode 100644 index 0000000..aa66473 --- /dev/null +++ b/synfig-core/tags/stable/src/synfig/valuenode_subtract.h @@ -0,0 +1,109 @@ +/* === S Y N F I G ========================================================= */ +/*! \file valuenode_subtract.h +** \brief Template Header +** +** $Id$ +** +** \legal +** Copyright (c) 2002-2005 Robert B. Quattlebaum Jr., Adrian Bentley +** +** This package is free software; you can redistribute it and/or +** modify it under the terms of the GNU General Public License as +** published by the Free Software Foundation; either version 2 of +** the License, or (at your option) any later version. +** +** This package is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +** General Public License for more details. +** \endlegal +*/ +/* ========================================================================= */ + +/* === S T A R T =========================================================== */ + +#ifndef __SYNFIG_VALUENODE_SUBTRACT_H +#define __SYNFIG_VALUENODE_SUBTRACT_H + +/* === H E A D E R S ======================================================= */ + +#include "valuenode.h" + +/* === M A C R O S ========================================================= */ + +/* === C L A S S E S & S T R U C T S ======================================= */ + +namespace synfig { + +struct ValueNode_Subtract : public LinkableValueNode +{ + typedef etl::handle Handle; + typedef etl::handle ConstHandle; + +protected: + + ValueNode_Subtract(); + +private: + + ValueNode::RHandle ref_a; + ValueNode::RHandle ref_b; + ValueNode::RHandle scalar; + +public: + + virtual ~ValueNode_Subtract(); + +// static Handle create(ValueBase::Type id=ValueBase::TYPE_NIL); + + //! Sets the left-hand-side value_node + bool set_lhs(ValueNode::Handle a); + + //! Gets the left-hand-side value_node + ValueNode::Handle get_lhs()const { return ref_a; } + + //! Sets the right-hand-side value_node + bool set_rhs(ValueNode::Handle b); + + //! Gets the right-hand-side value_node + ValueNode::Handle get_rhs()const { return ref_b; } + + //! Sets the scalar value_node + bool set_scalar(ValueNode::Handle x); + + //! Gets the scalar value_node + ValueNode::Handle get_scalar()const { return scalar; } + + void set_scalar(Real x); + + virtual bool set_link_vfunc(int i,ValueNode::Handle x); + + virtual ValueNode::LooseHandle get_link_vfunc(int i)const; + + virtual int link_count()const; + + virtual String link_local_name(int i)const; + virtual String link_name(int i)const; + virtual int get_link_index_from_name(const String &name)const; + + virtual ValueBase operator()(Time t)const; + + virtual String get_name()const; + virtual String get_local_name()const; + +// static bool check_type(const ValueBase::Type &type); + + LinkableValueNode* create_new()const; + +public: + using synfig::LinkableValueNode::get_link_vfunc; + using synfig::LinkableValueNode::set_link_vfunc; + static bool check_type(ValueBase::Type type); + static ValueNode_Subtract* create(const ValueBase &x=ValueBase()); +}; // END of class ValueNode_Subtract + +}; // END of namespace synfig + +/* === E N D =============================================================== */ + +#endif diff --git a/synfig-core/tags/stable/src/synfig/valuenode_timedswap.cpp b/synfig-core/tags/stable/src/synfig/valuenode_timedswap.cpp new file mode 100644 index 0000000..986ed7e --- /dev/null +++ b/synfig-core/tags/stable/src/synfig/valuenode_timedswap.cpp @@ -0,0 +1,348 @@ +/* === S Y N F I G ========================================================= */ +/*! \file valuenode_timedswap.cpp +** \brief Template File +** +** $Id$ +** +** \legal +** Copyright (c) 2002-2005 Robert B. Quattlebaum Jr., Adrian Bentley +** +** This package is free software; you can redistribute it and/or +** modify it under the terms of the GNU General Public License as +** published by the Free Software Foundation; either version 2 of +** the License, or (at your option) any later version. +** +** This package is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +** General Public License for more details. +** \endlegal +*/ +/* ========================================================================= */ + +/* === H E A D E R S ======================================================= */ + +#ifdef USING_PCH +# include "pch.h" +#else +#ifdef HAVE_CONFIG_H +# include +#endif + +#include "general.h" +#include "valuenode_timedswap.h" +#include "valuenode_const.h" +#include +#include "color.h" + +#endif + +/* === U S I N G =========================================================== */ + +using namespace std; +using namespace etl; +using namespace synfig; + +/* === M A C R O S ========================================================= */ + +/* === G L O B A L S ======================================================= */ + +/* === P R O C E D U R E S ================================================= */ + +/* === M E T H O D S ======================================================= */ + +ValueNode_TimedSwap::ValueNode_TimedSwap(ValueBase::Type type): + LinkableValueNode(type) +{ + set_before(ValueNode_Const::create(type)); + set_after(ValueNode_Const::create(type)); + set_swap_time_real(1.0); + set_swap_length_real(1.0); + + DCAST_HACK_ENABLE(); +} + +ValueNode_TimedSwap* +ValueNode_TimedSwap::create(const ValueBase& x) +{ + return new ValueNode_TimedSwap(x.get_type()); +} + + +LinkableValueNode* +ValueNode_TimedSwap::create_new()const +{ + return new ValueNode_TimedSwap(get_type()); +} + + +synfig::ValueNode_TimedSwap::~ValueNode_TimedSwap() +{ + unlink_all(); +} + + + +bool +ValueNode_TimedSwap::set_before(const ValueNode::Handle &x) +{ + if(!x || x->get_type()!=get_type() + && !PlaceholderValueNode::Handle::cast_dynamic(x)) + return false; + + before=x; + + return true; +} + +ValueNode::Handle +ValueNode_TimedSwap::get_before()const +{ + return before; +} + + +bool +ValueNode_TimedSwap::set_after(const ValueNode::Handle &x) +{ + if(!x || x->get_type()!=get_type() + && !PlaceholderValueNode::Handle::cast_dynamic(x)) + return false; + + after=x; + + return true; +} + +ValueNode::Handle +ValueNode_TimedSwap::get_after()const +{ + return after; +} + + +void +ValueNode_TimedSwap::set_swap_time_real(Time x) +{ + set_swap_time(ValueNode_Const::create(x)); +} + +bool +ValueNode_TimedSwap::set_swap_time(const ValueNode::Handle &x) +{ + if(!x + || !ValueBase(ValueBase::TYPE_TIME).same_as(x->get_type()) + && !PlaceholderValueNode::Handle::cast_dynamic(x) + ) + return false; + swap_time=x; + return true; +} + +ValueNode::Handle +ValueNode_TimedSwap::get_swap_time()const +{ + return swap_time; +} + +void +ValueNode_TimedSwap::set_swap_length_real(Time x) +{ + set_swap_length(ValueNode_Const::create(x)); +} + +bool +ValueNode_TimedSwap::set_swap_length(const ValueNode::Handle &x) +{ + if(!x || ( + !ValueBase(ValueBase::TYPE_TIME).same_as(x->get_type()) + && !PlaceholderValueNode::Handle::cast_dynamic(x) + ) + ) + return false; + swap_length=x; + return true; +} + +ValueNode::Handle +ValueNode_TimedSwap::get_swap_length()const +{ + return swap_length; +} + + + +synfig::ValueBase +synfig::ValueNode_TimedSwap::operator()(Time t)const +{ + Time swptime=(*swap_time)(t).get(Time()); + Time swplength=(*swap_length)(t).get(Time()); + + if(t>swptime) + return (*after)(t); + + if(t<=swptime && t>swptime-swplength) + { + Real amount=(swptime-t)/swplength; + // if amount==0.0, then we are after + // if amount==1.0, then we are before + + switch(get_type()) + { + case ValueBase::TYPE_REAL: + { + Real a=(*after)(t).get(Real()); + Real b=(*before)(t).get(Real()); + return (b-a)*amount+a; + } + case ValueBase::TYPE_VECTOR: + { + Vector a=(*after)(t).get(Vector()); + Vector b=(*before)(t).get(Vector()); + return (b-a)*amount+a; + } + case ValueBase::TYPE_ANGLE: + { + Angle a=(*after)(t).get(Angle()); + Angle b=(*before)(t).get(Angle()); + return (b-a)*amount+a; + } + case ValueBase::TYPE_COLOR: + { + Color a=(*after)(t).get(Color()); + Color b=(*before)(t).get(Color()); + // note: Shouldn't this use a straight blend? + return (b-a)*amount+a; + } + case ValueBase::TYPE_INTEGER: + { + float a=(float)(*after)(t).get(int()); + float b=(float)(*before)(t).get(int()); + return static_cast((b-a)*amount+a+0.5f); + } + default: + break; + } + } + + + /*! \todo this should interpolate from + ** before to after over the period defined + ** by swap_length */ + + return (*before)(t); +} + + +bool +ValueNode_TimedSwap::set_link_vfunc(int i,ValueNode::Handle x) +{ + assert(i>=0 && i<4); + switch(i) + { + case 0: + return set_before(x); + case 1: + return set_after(x); + case 2: + return set_swap_time(x); + case 3: + return set_swap_length(x); + } + return 0; +} + +ValueNode::LooseHandle +ValueNode_TimedSwap::get_link_vfunc(int i)const +{ + assert(i>=0 && i<4); + switch(i) + { + case 0: + return get_before(); + case 1: + return get_after(); + case 2: + return get_swap_time(); + case 3: + return get_swap_length(); + } + return 0; +} + +int +ValueNode_TimedSwap::link_count()const +{ + return 4; +} + +String +ValueNode_TimedSwap::link_local_name(int i)const +{ + assert(i>=0 && i<4); + switch(i) + { + case 0: + return _("Before"); + case 1: + return _("After"); + case 2: + return _("Swap Time"); + case 3: + return _("Swap Duration"); + } + return 0; +} + +String +ValueNode_TimedSwap::link_name(int i)const +{ + assert(i>=0 && i<4); + switch(i) + { + case 0: + return "before"; + case 1: + return "after"; + case 2: + return "time"; + case 3: + return "length"; + } + return 0; +} + +int +ValueNode_TimedSwap::get_link_index_from_name(const String &name)const +{ + if(name=="before") + return 0; + if(name=="after") + return 1; + if(name=="time") + return 2; + if(name=="length") + return 3; + + throw Exception::BadLinkName(name); +} + +String +ValueNode_TimedSwap::get_name()const +{ + return "timed_swap"; +} + +String +ValueNode_TimedSwap::get_local_name()const +{ + return _("Timed Swap"); +} + +bool +ValueNode_TimedSwap::check_type(ValueBase::Type type) +{ + if(!type) + return false; + return true; +} diff --git a/synfig-core/tags/stable/src/synfig/valuenode_timedswap.h b/synfig-core/tags/stable/src/synfig/valuenode_timedswap.h new file mode 100644 index 0000000..6081c50 --- /dev/null +++ b/synfig-core/tags/stable/src/synfig/valuenode_timedswap.h @@ -0,0 +1,100 @@ +/* === S Y N F I G ========================================================= */ +/*! \file valuenode_timedswap.h +** \brief Template Header +** +** $Id$ +** +** \legal +** Copyright (c) 2002-2005 Robert B. Quattlebaum Jr., Adrian Bentley +** +** This package is free software; you can redistribute it and/or +** modify it under the terms of the GNU General Public License as +** published by the Free Software Foundation; either version 2 of +** the License, or (at your option) any later version. +** +** This package is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +** General Public License for more details. +** \endlegal +*/ +/* ========================================================================= */ + +/* === S T A R T =========================================================== */ + +#ifndef __SYNFIG_VALUENODE_TIMEDSWAP_H +#define __SYNFIG_VALUENODE_TIMEDSWAP_H + +/* === H E A D E R S ======================================================= */ + +#include "valuenode.h" + +/* === M A C R O S ========================================================= */ + +/* === C L A S S E S & S T R U C T S ======================================= */ + +namespace synfig { + +struct ValueNode_TimedSwap : public LinkableValueNode +{ + typedef etl::handle Handle; + typedef etl::handle ConstHandle; + +private: + + ValueNode::RHandle before; + ValueNode::RHandle after; + ValueNode::RHandle swap_time; + ValueNode::RHandle swap_length; + + ValueNode_TimedSwap(ValueBase::Type id); + +public: + +// static Handle create(ValueBase::Type id); + + virtual ~ValueNode_TimedSwap(); + + bool set_before(const ValueNode::Handle &a); + ValueNode::Handle get_before()const; + bool set_after(const ValueNode::Handle &a); + ValueNode::Handle get_after()const; + + void set_swap_time_real(Time x); + bool set_swap_time(const ValueNode::Handle &x); + ValueNode::Handle get_swap_time()const; + + void set_swap_length_real(Time x); + bool set_swap_length(const ValueNode::Handle &x); + ValueNode::Handle get_swap_length()const; + + + virtual bool set_link_vfunc(int i,ValueNode::Handle x); + virtual ValueNode::LooseHandle get_link_vfunc(int i)const; + virtual int link_count()const; + virtual String link_local_name(int i)const; + virtual String link_name(int i)const; + virtual int get_link_index_from_name(const String &name)const; + + virtual ValueBase operator()(Time t)const; + + virtual String get_name()const; + virtual String get_local_name()const; +// static bool check_type(const ValueBase::Type &type); + +protected: + + virtual LinkableValueNode* create_new()const; + +public: + using synfig::LinkableValueNode::get_link_vfunc; + using synfig::LinkableValueNode::set_link_vfunc; + static bool check_type(ValueBase::Type type); + static ValueNode_TimedSwap* create(const ValueBase &x); +}; // END of class ValueNode_TimedSwap + +}; // END of namespace synfig + +/* === E N D =============================================================== */ + +#endif diff --git a/synfig-core/tags/stable/src/synfig/valuenode_twotone.cpp b/synfig-core/tags/stable/src/synfig/valuenode_twotone.cpp new file mode 100644 index 0000000..b07e382 --- /dev/null +++ b/synfig-core/tags/stable/src/synfig/valuenode_twotone.cpp @@ -0,0 +1,207 @@ +/* === S Y N F I G ========================================================= */ +/*! \file valuenode_twotone.cpp +** \brief Template File +** +** $Id$ +** +** \legal +** Copyright (c) 2002-2005 Robert B. Quattlebaum Jr., Adrian Bentley +** +** This package is free software; you can redistribute it and/or +** modify it under the terms of the GNU General Public License as +** published by the Free Software Foundation; either version 2 of +** the License, or (at your option) any later version. +** +** This package is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +** General Public License for more details. +** \endlegal +*/ +/* ========================================================================= */ + +/* === H E A D E R S ======================================================= */ + +#ifdef USING_PCH +# include "pch.h" +#else +#ifdef HAVE_CONFIG_H +# include +#endif + +#include "general.h" +#include "valuenode_twotone.h" +#include "valuenode_const.h" +#include +#include "color.h" +#include "gradient.h" + +#endif + +/* === U S I N G =========================================================== */ + +using namespace std; +using namespace etl; +using namespace synfig; + +/* === M A C R O S ========================================================= */ + +/* === G L O B A L S ======================================================= */ + +/* === P R O C E D U R E S ================================================= */ + +/* === M E T H O D S ======================================================= */ + +synfig::ValueNode_TwoTone::ValueNode_TwoTone():LinkableValueNode(synfig::ValueBase::TYPE_GRADIENT) +{ + set_link("color1",ValueNode_Const::create(Color::black())); + set_link("color2",ValueNode_Const::create(Color::white())); + DCAST_HACK_ENABLE(); +} + +LinkableValueNode* +ValueNode_TwoTone::create_new()const +{ + return new ValueNode_TwoTone(); +} + +ValueNode_TwoTone* +ValueNode_TwoTone::create(const ValueBase& x) +{ + ValueBase::Type id(x.get_type()); + if(id!=ValueBase::TYPE_GRADIENT) + { + assert(0); + throw runtime_error("synfig::ValueNode_TwoTone:Bad type "+ValueBase::type_name(id)); + } + + ValueNode_TwoTone* value_node=new ValueNode_TwoTone(); + + assert(value_node->get_type()==id); + + return value_node; +} + +synfig::ValueNode_TwoTone::~ValueNode_TwoTone() +{ + unlink_all(); +} + +bool +synfig::ValueNode_TwoTone::set_lhs(ValueNode::Handle a) +{ + if(a->get_type()!=ValueBase::TYPE_COLOR) + return false; + + ref_a=a; + + return true; +} + +bool +synfig::ValueNode_TwoTone::set_rhs(ValueNode::Handle b) +{ + if(b->get_type()!=ValueBase::TYPE_COLOR) + return false; + ref_b=b; + return true; +} + +synfig::ValueBase +synfig::ValueNode_TwoTone::operator()(Time t)const +{ + return Gradient((*ref_a)(t).get(Color()),(*ref_b)(t).get(Color())); +} + +bool +ValueNode_TwoTone::set_link_vfunc(int i,ValueNode::Handle x) +{ + assert(i>=0 && i<3); + switch(i) + { + case 0: + if(set_lhs(x)) { signal_child_changed()(i);signal_value_changed()(); return true; } + else { return false; } + case 1: + if(set_rhs(x)) { signal_child_changed()(i);signal_value_changed()(); return true; } + else { return false; } + } + + return false; +} + +ValueNode::LooseHandle +ValueNode_TwoTone::get_link_vfunc(int i)const +{ + assert(i>=0 && i<3); + switch(i) + { + case 0: + return ref_a; + case 1: + return ref_b; + } + return 0; +} + +int +ValueNode_TwoTone::link_count()const +{ + return 2; +} + +String +ValueNode_TwoTone::link_local_name(int i)const +{ + assert(i>=0 && i<2); + switch(i) + { + case 0: + return _("Color1"); + case 1: + return _("Color2"); + } + return String(); +} + +String +ValueNode_TwoTone::link_name(int i)const +{ + assert(i>=0 && i<2); + switch(i) + { + case 0: + return "color1"; + case 1: + return "color2"; + } + return String(); +} + +int +ValueNode_TwoTone::get_link_index_from_name(const String &name)const +{ + if(name=="color1") + return 0; + if(name=="color2") + return 1; + throw Exception::BadLinkName(name); +} + +String +ValueNode_TwoTone::get_name()const +{ + return "twotone"; +} + +String +ValueNode_TwoTone::get_local_name()const +{ + return _("Two-Tone"); +} + +bool +ValueNode_TwoTone::check_type(ValueBase::Type type) +{ + return type==ValueBase::TYPE_GRADIENT; +} diff --git a/synfig-core/tags/stable/src/synfig/valuenode_twotone.h b/synfig-core/tags/stable/src/synfig/valuenode_twotone.h new file mode 100644 index 0000000..a9df02e --- /dev/null +++ b/synfig-core/tags/stable/src/synfig/valuenode_twotone.h @@ -0,0 +1,102 @@ +/* === S Y N F I G ========================================================= */ +/*! \file valuenode_twotone.h +** \brief Template Header +** +** $Id$ +** +** \legal +** Copyright (c) 2002-2005 Robert B. Quattlebaum Jr., Adrian Bentley +** +** This package is free software; you can redistribute it and/or +** modify it under the terms of the GNU General Public License as +** published by the Free Software Foundation; either version 2 of +** the License, or (at your option) any later version. +** +** This package is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +** General Public License for more details. +** \endlegal +*/ +/* ========================================================================= */ + +/* === S T A R T =========================================================== */ + +#ifndef __SYNFIG_VALUENODE_TWOTONE_H +#define __SYNFIG_VALUENODE_TWOTONE_H + +/* === H E A D E R S ======================================================= */ + +#include "valuenode.h" + +/* === M A C R O S ========================================================= */ + +/* === C L A S S E S & S T R U C T S ======================================= */ + +namespace synfig { + +struct ValueNode_TwoTone : public LinkableValueNode +{ + typedef etl::handle Handle; + typedef etl::handle ConstHandle; + +protected: + + ValueNode_TwoTone(); + +private: + + ValueNode::RHandle ref_a; + ValueNode::RHandle ref_b; + +public: + + virtual ~ValueNode_TwoTone(); + +// static Handle create(ValueBase::Type id=ValueBase::TYPE_GRADIENT); + + //! Sets the left-hand-side value_node + bool set_lhs(ValueNode::Handle a); + + //! Gets the left-hand-side value_node + ValueNode::Handle get_lhs()const { return ref_a; } + + //! Sets the right-hand-side value_node + bool set_rhs(ValueNode::Handle b); + + //! Gets the right-hand-side value_node + ValueNode::Handle get_rhs()const { return ref_b; } + + + virtual bool set_link_vfunc(int i,ValueNode::Handle x); + + virtual ValueNode::LooseHandle get_link_vfunc(int i)const; + + virtual int link_count()const; + + virtual String link_local_name(int i)const; + virtual String link_name(int i)const; + virtual int get_link_index_from_name(const String &name)const; + + virtual ValueBase operator()(Time t)const; + + virtual String get_name()const; + virtual String get_local_name()const; + +// static bool check_type(const ValueBase::Type &type); + + LinkableValueNode* create_new()const; + +public: + using synfig::LinkableValueNode::get_link_vfunc; + + using synfig::LinkableValueNode::set_link_vfunc; + static bool check_type(ValueBase::Type type); + static ValueNode_TwoTone* create(const ValueBase &x=ValueBase::TYPE_GRADIENT); +}; // END of class ValueNode_TwoTone + +}; // END of namespace synfig + +/* === E N D =============================================================== */ + +#endif diff --git a/synfig-core/tags/stable/src/synfig/vector.h b/synfig-core/tags/stable/src/synfig/vector.h new file mode 100644 index 0000000..e44137a --- /dev/null +++ b/synfig-core/tags/stable/src/synfig/vector.h @@ -0,0 +1,285 @@ +/* === S Y N F I G ========================================================= */ +/*! \file vector.h +** \brief Various discreet type definitions +** +** $Id$ +** +** \legal +** Copyright (c) 2002-2005 Robert B. Quattlebaum Jr., Adrian Bentley +** +** This package is free software; you can redistribute it and/or +** modify it under the terms of the GNU General Public License as +** published by the Free Software Foundation; either version 2 of +** the License, or (at your option) any later version. +** +** This package is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +** General Public License for more details. +** \endlegal +*/ +/* ========================================================================= */ + +/* === S T A R T =========================================================== */ + +#ifndef __SYNFIG_VECTOR_H +#define __SYNFIG_VECTOR_H + +/* === H E A D E R S ======================================================= */ + +#include "real.h" +#include + +/* === M A C R O S ========================================================= */ + + +#ifdef WIN32 +#include +#ifndef isnan +extern "C" { int _isnan(double x); } +#define isnan _isnan +#endif +#endif + +// For some reason isnan() isn't working on macosx any more. +// This is a quick fix. +#if defined(__APPLE__) && !defined(SYNFIG_ISNAN_FIX) +#ifdef isnan +#undef isnan +#endif +inline bool isnan(double x) { return x != x; } +inline bool isnan(float x) { return x != x; } +#define SYNFIG_ISNAN_FIX 1 +#endif + + +/* === T Y P E D E F S ===================================================== */ + +/* === C L A S S E S & S T R U C T S ======================================= */ + +namespace synfig { + +/*! \class Vector +** \todo writeme +*/ +class Vector +{ +public: + typedef Real value_type; + +private: + value_type _x, _y; + +public: + Vector(): _x(0.0), _y(0.0) { }; + Vector(const value_type &x, const value_type &y):_x(x),_y(y) { }; + + bool is_valid()const { return !(isnan(_x) || isnan(_y)); } + + value_type & + operator[](const int& i) + { return (&_x)[i] ; } + + const value_type & + operator[](const int& i) const + { return (&_x)[i] ; } + + const Vector & + operator+=(const Vector &rhs) + { + _x+=rhs._x; + _y+=rhs._y; + return *this; + } + + const Vector & + operator-=(const Vector &rhs) + { + _x-=rhs._x; + _y-=rhs._y; + return *this; + } + + const Vector & + operator*=(const value_type &rhs) + { + _x*=rhs; + _y*=rhs; + return *this; + } + + const Vector & + operator/=(const value_type &rhs) + { + value_type tmp=1.0/rhs; + _x*=tmp; + _y*=tmp; + return *this; + } + + Vector + operator+(const Vector &rhs)const + { return Vector(*this)+=rhs; } + + Vector + operator-(const Vector &rhs)const + { return Vector(*this)-=rhs; } + + Vector + operator*(const value_type &rhs)const + { return Vector(*this)*=rhs; } + + Vector + operator/(const value_type &rhs)const + { return Vector(*this)/=rhs; } + + Vector + operator-()const + { return Vector(-_x,-_y); } + + value_type + operator*(const Vector &rhs)const + { return _x*rhs._x+_y*rhs._y; } + + bool + operator==(const Vector &rhs)const + { return _x==rhs._x && _y==rhs._y; } + + bool + operator!=(const Vector &rhs)const + { return _y!=rhs._y || _x!=rhs._x; } + + //! Returns the squared magnitude of the vector + value_type mag_squared()const + { return _x*_x+_y*_y; } + + //! Returns the magnitude of the vector + value_type mag()const + { return sqrt(mag_squared()); } + + //! Returns the reciprocal of the magnitude of the vector + value_type inv_mag()const + { return 1.0/sqrt(mag_squared()); } + + //! Returns a normalized version of the vector + Vector norm()const + { return (*this)*inv_mag(); } + + //! Returns a perpendicular version of the vector + Vector perp()const + { return Vector(_y,-_x); } + + bool is_equal_to(const Vector& rhs)const + { + static const value_type epsilon(0.0000000000001); +// return (_x>rhs._x)?_x-rhs._x<=epsilon:rhs._x-_x<=epsilon && (_y>rhs._y)?_y-rhs._y<=epsilon:rhs._y-_y<=epsilon; + return (*this-rhs).mag_squared()<=epsilon; + } + + static const Vector zero() { return Vector(0,0); } +}; + +/*! \typedef Point +** \todo writeme +*/ +typedef Vector Point; + + + +}; // END of namespace synfig + +namespace std { + +inline synfig::Vector::value_type +abs(const synfig::Vector &rhs) + { return rhs.mag(); } + +}; // END of namespace std + +#include + +_ETL_BEGIN_NAMESPACE + +template <> +class bezier_base : public std::unary_function +{ +public: + typedef synfig::Vector value_type; + typedef float time_type; +private: + + bezier_base bezier_x,bezier_y; + + value_type a,b,c,d; + +protected: + affine_combo affine_func; + +public: + bezier_base() { } + bezier_base( + const value_type &a, const value_type &b, const value_type &c, const value_type &d, + const time_type &r=0.0, const time_type &s=1.0): + a(a),b(b),c(c),d(d) { set_rs(r,s); sync(); } + + void sync() + { + bezier_x[0]=a[0],bezier_y[0]=a[1]; + bezier_x[1]=b[0],bezier_y[1]=b[1]; + bezier_x[2]=c[0],bezier_y[2]=c[1]; + bezier_x[3]=d[0],bezier_y[3]=d[1]; + bezier_x.sync(); + bezier_y.sync(); + } + + value_type + operator()(time_type t)const + { + return synfig::Vector(bezier_x(t),bezier_y(t)); + } + + void evaluate(time_type t, value_type &f, value_type &df) const + { + t=(t-get_r())/get_dt(); + + const value_type p1 = affine_func( + affine_func(a,b,t), + affine_func(b,c,t) + ,t); + const value_type p2 = affine_func( + affine_func(b,c,t), + affine_func(c,d,t) + ,t); + + f = affine_func(p1,p2,t); + df = (p2-p1)*3; + } + + void set_rs(time_type new_r, time_type new_s) { bezier_x.set_rs(new_r,new_s); bezier_y.set_rs(new_r,new_s); } + void set_r(time_type new_r) { bezier_x.set_r(new_r); bezier_y.set_r(new_r); } + void set_s(time_type new_s) { bezier_x.set_s(new_s); bezier_y.set_s(new_s); } + const time_type &get_r()const { return bezier_x.get_r(); } + const time_type &get_s()const { return bezier_x.get_s(); } + time_type get_dt()const { return bezier_x.get_dt(); } + + value_type & + operator[](int i) + { return (&a)[i]; } + + const value_type & + operator[](int i) const + { return (&a)[i]; } + + //! Bezier curve intersection function + time_type intersect(const bezier_base &x, time_type near=0.0)const + { + return 0; + } +}; + +_ETL_END_NAMESPACE + + +/* === E N D =============================================================== */ + +#endif diff --git a/synfig-core/tags/stable/src/synfig/version.h b/synfig-core/tags/stable/src/synfig/version.h new file mode 100644 index 0000000..11a3165 --- /dev/null +++ b/synfig-core/tags/stable/src/synfig/version.h @@ -0,0 +1,77 @@ +/* === S Y N F I G ========================================================= */ +/*! \file version.h +** \brief Template Header +** +** $Id$ +** +** \legal +** Copyright (c) 2002-2005 Robert B. Quattlebaum Jr., Adrian Bentley +** +** This package is free software; you can redistribute it and/or +** modify it under the terms of the GNU General Public License as +** published by the Free Software Foundation; either version 2 of +** the License, or (at your option) any later version. +** +** This package is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +** General Public License for more details. +** \endlegal +*/ +/* ========================================================================= */ + +/* === S T A R T =========================================================== */ + +#ifndef __SYNFIG_VERSION_H +#define __SYNFIG_VERSION_H + +/* === H E A D E R S ======================================================= */ + +/* === M A C R O S ========================================================= */ + +/*! \def SYNFIG_VERSION +** \brief Synfig API Version +** +** The macro SYNFIG_VERSION can be set to ensure +** compile-time compatibility with future versions +** of Synfig. The first two digits are the major +** version, the second two digits are the minor +** version, and the last two digits are the +** revision release. +*/ +#ifndef SYNFIG_VERSION +#define SYNFIG_VERSION (006000) +#endif + +/*! Increment this value whenever +** the library changes in a way +** that breaks library compatibility +*/ +#define SYNFIG_LIBRARY_VERSION 47 + +/*! \writeme */ +#define SYNFIG_CHECK_VERSION() synfig::check_version_(SYNFIG_LIBRARY_VERSION,sizeof(synfig::Vector),sizeof(synfig::Color),sizeof(synfig::Canvas),sizeof(synfig::Layer)) + +/* === C L A S S E S & S T R U C T S ======================================= */ + +namespace synfig { + +//! Version checker \internal +/*! Checks to make sure that the library +** version matches with what the program +** was compiled against. +** \see SYNFIG_CHECK_VERSION() +*/ +extern bool check_version_(int v,int vec_size, int color_size,int canvas_size,int layer_size); + +extern const char *get_version(); + +extern const char *get_build_date(); + +extern const char *get_build_time(); + +}; // END of namespace synfig + +/* === E N D =============================================================== */ + +#endif diff --git a/synfig-core/tags/stable/src/synfig/waypoint.cpp b/synfig-core/tags/stable/src/synfig/waypoint.cpp new file mode 100644 index 0000000..6d5653c --- /dev/null +++ b/synfig-core/tags/stable/src/synfig/waypoint.cpp @@ -0,0 +1,155 @@ +/* === S Y N F I G ========================================================= */ +/*! \file waypoint.cpp +** \brief Template File +** +** $Id$ +** +** \legal +** Copyright (c) 2002-2005 Robert B. Quattlebaum Jr., Adrian Bentley +** +** This package is free software; you can redistribute it and/or +** modify it under the terms of the GNU General Public License as +** published by the Free Software Foundation; either version 2 of +** the License, or (at your option) any later version. +** +** This package is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +** General Public License for more details. +** \endlegal +*/ +/* ========================================================================= */ + +/* === H E A D E R S ======================================================= */ + +#ifdef USING_PCH +# include "pch.h" +#else +#ifdef HAVE_CONFIG_H +# include +#endif + +#include "waypoint.h" +#include "valuenode_const.h" + +#endif + +/* === U S I N G =========================================================== */ + +using namespace std; +using namespace etl; +using namespace synfig; + +/* === M A C R O S ========================================================= */ + +/* === G L O B A L S ======================================================= */ + +/* === P R O C E D U R E S ================================================= */ + +/* === M E T H O D S ======================================================= */ + +Waypoint::Waypoint(ValueBase value, Time time): + priority_(0), + before(INTERPOLATION_TCB), + after(INTERPOLATION_TCB), + value_node(ValueNode_Const::create(value)), + time(time), + tension(0.0), + continuity(0.0), + bias(0), + time_tension(0.0f) +{ + if(value.get_type()==ValueBase::TYPE_ANGLE) + after=before=INTERPOLATION_LINEAR; +} + +Waypoint::Waypoint(ValueNode::Handle value_node, Time time): + priority_(0), + before(INTERPOLATION_TCB), + after(INTERPOLATION_TCB), + value_node(value_node), + time(time), + tension(0.0), + continuity(0), + bias(0), + time_tension(0.0f) +{ + if(value_node->get_type()==ValueBase::TYPE_ANGLE) + after=before=INTERPOLATION_LINEAR; +} + +Waypoint::Waypoint(): + priority_(0), + before(INTERPOLATION_TCB), + after(INTERPOLATION_TCB), + tension(0), + continuity(0), + bias(0), + time_tension(0.0f) +{ +} + +void +Waypoint::set_value(const ValueBase &x) +{ + if(!value_node && x.get_type()==ValueBase::TYPE_ANGLE) + after=before=INTERPOLATION_LINEAR; + + value_node=ValueNode_Const::create(x); +} + +void +Waypoint::set_value_node(const ValueNode::Handle &x) +{ + if(!value_node && x->get_type()==ValueBase::TYPE_ANGLE) + after=before=INTERPOLATION_LINEAR; + + value_node=x; +} + +bool +Waypoint::is_static()const +{ + return static_cast(ValueNode_Const::Handle::cast_dynamic(value_node)) && value_node && !value_node->is_exported(); +} + +void +Waypoint::set_time(const Time &x) +{ + time=x; +} + +void +Waypoint::apply_model(const Model &x) +{ + if(x.priority_flag) set_priority(x.get_priority()); + if(x.before_flag) set_before(x.get_before()); + if(x.after_flag) set_after(x.get_after()); + if(x.tension_flag) set_tension(x.get_tension()); + if(x.continuity_flag) set_continuity(x.get_continuity()); + if(x.bias_flag) set_bias(x.get_bias()); + if(x.temporal_tension_flag) set_temporal_tension(x.get_temporal_tension()); +} + +Waypoint +Waypoint::clone(const GUID& deriv_guid)const +{ + Waypoint ret(*this); + ret.make_unique(); + if(!ret.value_node->is_exported()) + ret.value_node=value_node->clone(deriv_guid); + ret.parent_=0; + return ret; +} + +ValueBase +Waypoint::get_value()const { return (*value_node)(0); } + +ValueBase +Waypoint::get_value(const Time &t)const { return (*value_node)(t); } + +synfig::GUID +Waypoint::get_guid()const +{ + return GUID::hasher(get_uid()); +} diff --git a/synfig-core/tags/stable/src/synfig/waypoint.h b/synfig-core/tags/stable/src/synfig/waypoint.h new file mode 100644 index 0000000..8d156a8 --- /dev/null +++ b/synfig-core/tags/stable/src/synfig/waypoint.h @@ -0,0 +1,256 @@ +/* === S Y N F I G ========================================================= */ +/*! \file waypoint.h +** \brief Template Header +** +** $Id$ +** +** \legal +** Copyright (c) 2002-2005 Robert B. Quattlebaum Jr., Adrian Bentley +** +** This package is free software; you can redistribute it and/or +** modify it under the terms of the GNU General Public License as +** published by the Free Software Foundation; either version 2 of +** the License, or (at your option) any later version. +** +** This package is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +** General Public License for more details. +** \endlegal +*/ +/* ========================================================================= */ + +/* === S T A R T =========================================================== */ + +#ifndef __SYNFIG_WAYPOINT_H +#define __SYNFIG_WAYPOINT_H + +/* === H E A D E R S ======================================================= */ + +#include "time.h" +#include "real.h" +#include "value.h" +//#include "valuenode.h" +#include "uniqueid.h" +#include +#include "guid.h" +#include "interpolation.h" + +/* === M A C R O S ========================================================= */ + +/* === T Y P E D E F S ===================================================== */ + +/* === C L A S S E S & S T R U C T S ======================================= */ + +namespace synfig { + +class ValueNode; +class GUID; + + +/*! \class Waypoint +** \brief \writeme +*/ +class Waypoint : public UniqueID +{ + /* + -- ** -- T Y P E S ----------------------------------------------------------- + */ + +public: + + typedef synfig::Interpolation Interpolation; + + class Model + { + friend class Waypoint; + + int priority; + Interpolation before; + Interpolation after; + Real tension; + Real continuity; + Real bias; + Real temporal_tension; + + bool priority_flag,before_flag,after_flag,tension_flag,continuity_flag,bias_flag,temporal_tension_flag; + + public: + Model(): + priority_flag(false), + before_flag(false), + after_flag(false), + tension_flag(false), + continuity_flag(false), + bias_flag(false), + temporal_tension_flag(false) { } + + Interpolation get_before()const { return before; } + void set_before(Interpolation x) { before=x; before_flag=true;} + + Interpolation get_after()const { return after; } + void set_after(Interpolation x) { after=x; after_flag=true;} + + const Real &get_tension()const { return tension; } + void set_tension(const Real &x) { tension=x; tension_flag=true;} + + const Real &get_continuity()const { return continuity; } + void set_continuity(const Real &x) { continuity=x; continuity_flag=true;} + + const Real &get_bias()const { return bias; } + void set_bias(const Real &x) { bias=x; bias_flag=true;} + + const Real &get_temporal_tension()const { return temporal_tension; } + void set_temporal_tension(const Real &x) { temporal_tension=x; temporal_tension_flag=true;} + + int get_priority()const { return priority; } + void set_priority(int x) { priority=x; priority_flag=true;} + + #define FLAG_MACRO(x) bool get_##x##_flag()const { return x##_flag; } void set_##x##_flag(bool y) { x##_flag=y; } + FLAG_MACRO(priority) + FLAG_MACRO(before) + FLAG_MACRO(after) + FLAG_MACRO(tension) + FLAG_MACRO(continuity) + FLAG_MACRO(bias) + FLAG_MACRO(temporal_tension) + #undef FLAG_MACRO + + void reset() + { + priority_flag=false; + before_flag=false; + after_flag=false; + tension_flag=false; + continuity_flag=false; + bias_flag=false; + temporal_tension_flag=false; + } + + bool is_trivial()const + { + return !( + priority_flag|| + before_flag|| + after_flag|| + tension_flag|| + continuity_flag|| + bias_flag|| + temporal_tension_flag + ); + } + }; + + /* + -- ** -- D A T A ------------------------------------------------------------- + */ + +private: + + int priority_; + etl::loose_handle parent_; + + Interpolation before, after; + + etl::rhandle value_node; + + Time time; + + // The following are for the INTERPOLATION_TCB type + Real tension; + Real continuity; + Real bias; + + // The following are for the INTERPOLATION_MANUAL type + ValueBase cpoint_before,cpoint_after; + + + float time_tension; + + /* + -- ** -- C O N S T R U C T O R S --------------------------------------------- + */ + +public: + + Waypoint(ValueBase value, Time time); + Waypoint(etl::handle value_node, Time time); + + Waypoint(); + + /* + -- ** -- M E M B E R F U N C T I O N S ------------------------------------- + */ + +public: + + void apply_model(const Model &x); + + Interpolation get_before()const { return before; } + void set_before(Interpolation x) { before=x; } + + Interpolation get_after()const { return after; } + void set_after(Interpolation x) { after=x; } + + ValueBase get_value()const; + ValueBase get_value(const Time &t)const; + void set_value(const ValueBase &x); + + const etl::rhandle &get_value_node()const { return value_node; } + void set_value_node(const etl::handle &x); + + const Real &get_tension()const { return tension; } + void set_tension(const Real &x) { tension=x; } + + const Real &get_continuity()const { return continuity; } + void set_continuity(const Real &x) { continuity=x; } + + const Real &get_bias()const { return bias; } + void set_bias(const Real &x) { bias=x; } + + const Time &get_time()const { return time; } + void set_time(const Time &x); + + int get_priority()const { return priority_; } + void set_priority(int x) { priority_=x; } + + const etl::loose_handle &get_parent_value_node()const { return parent_; } + void set_parent_value_node(const etl::loose_handle &x) { parent_=x; } + + bool is_static()const; + + float get_time_tension()const { return time_tension; } + void set_time_tension(const float& x) { time_tension=x; } + float get_temporal_tension()const { return time_tension; } + void set_temporal_tension(const float& x) { time_tension=x; } + + bool operator<(const Waypoint &rhs)const + { return time(const Time &rhs)const + { return time.is_more_than(rhs); } + + bool operator==(const Time &rhs)const + { return time.is_equal(rhs); } + bool operator!=(const Time &rhs)const + { return !time.is_equal(rhs); } + + bool operator==(const UniqueID &rhs)const + { return get_uid()==rhs.get_uid(); } + bool operator!=(const UniqueID &rhs)const + { return get_uid()!=rhs.get_uid(); } + + Waypoint clone(const GUID& deriv_guid=GUID())const; + + GUID get_guid()const; +}; // END of class Waypoint + +typedef std::vector< Waypoint > WaypointList; + +}; // END of namespace synfig + +/* === E N D =============================================================== */ + +#endif diff --git a/synfig-core/tags/stable/src/template.cpp b/synfig-core/tags/stable/src/template.cpp new file mode 100644 index 0000000..cef9f56 --- /dev/null +++ b/synfig-core/tags/stable/src/template.cpp @@ -0,0 +1,54 @@ +/* === S Y N F I G ========================================================= */ +/*! \file synfig/src/template.cpp +** \brief Template File +** +** $Id$ +** +** \legal +** Copyright (c) 2002-2005 Robert B. Quattlebaum Jr., Adrian Bentley +** +** This package is free software; you can redistribute it and/or +** modify it under the terms of the GNU General Public License as +** published by the Free Software Foundation; either version 2 of +** the License, or (at your option) any later version. +** +** This package is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +** General Public License for more details. +** \endlegal +*/ +/* ========================================================================= */ + +/* === H E A D E R S ======================================================= */ + +#ifdef USING_PCH +# include "pch.h" +#else +#ifdef HAVE_CONFIG_H +# include +#endif + +/* +** Insert headers here +*/ + +#endif + +/* === U S I N G =========================================================== */ + +using namespace std; +using namespace etl; +using namespace synfig; + +/* === M A C R O S ========================================================= */ + +/* === G L O B A L S ======================================================= */ + +/* === P R O C E D U R E S ================================================= */ + +/* === M E T H O D S ======================================================= */ + +/* === E N T R Y P O I N T ================================================= */ + + diff --git a/synfig-core/tags/stable/src/template.h b/synfig-core/tags/stable/src/template.h new file mode 100644 index 0000000..47f08a6 --- /dev/null +++ b/synfig-core/tags/stable/src/template.h @@ -0,0 +1,38 @@ +/* === S Y N F I G ========================================================= */ +/*! \file synfig/src/template.h +** \brief Template Header +** +** $Id$ +** +** \legal +** Copyright (c) 2002-2005 Robert B. Quattlebaum Jr., Adrian Bentley +** +** This package is free software; you can redistribute it and/or +** modify it under the terms of the GNU General Public License as +** published by the Free Software Foundation; either version 2 of +** the License, or (at your option) any later version. +** +** This package is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +** General Public License for more details. +** \endlegal +*/ +/* ========================================================================= */ + +/* === S T A R T =========================================================== */ + +#ifndef __SYNFIG_TEMPLATE_H +#define __SYNFIG_TEMPLATE_H + +/* === H E A D E R S ======================================================= */ + +/* === M A C R O S ========================================================= */ + +/* === T Y P E D E F S ===================================================== */ + +/* === C L A S S E S & S T R U C T S ======================================= */ + +/* === E N D =============================================================== */ + +#endif diff --git a/synfig-core/tags/stable/src/tool/Makefile.am b/synfig-core/tags/stable/src/tool/Makefile.am new file mode 100644 index 0000000..d4c3f6c --- /dev/null +++ b/synfig-core/tags/stable/src/tool/Makefile.am @@ -0,0 +1,15 @@ +# $Id$ + +MAINTAINERCLEANFILES=Makefile.in +EXTRA_DIST=tool.nsh + +INCLUDES=-I$(top_srcdir)/src + +bin_PROGRAMS = synfig + +synfig_SOURCES = main.cpp +synfig_LDADD = -L../synfig -lsynfig @SYNFIG_LIBS@ @OPENEXR_HALF_LIBS@ +synfig_CXXFLAGS = -lsynfig @SYNFIG_CFLAGS@ +#synfig_LDFLAGS=-export-dynamic -dlopen self +#-dlopen ../modules/example/libexample.la + diff --git a/synfig-core/tags/stable/src/tool/main.cpp b/synfig-core/tags/stable/src/tool/main.cpp new file mode 100644 index 0000000..424d2ea --- /dev/null +++ b/synfig-core/tags/stable/src/tool/main.cpp @@ -0,0 +1,1106 @@ +/* === S Y N F I G ========================================================= */ +/*! \file tool/main.cpp +** \brief SYNFIG Tool +** +** $Id$ +** +** \legal +** Copyright (c) 2002-2005 Robert B. Quattlebaum Jr., Adrian Bentley +** +** This package is free software; you can redistribute it and/or +** modify it under the terms of the GNU General Public License as +** published by the Free Software Foundation; either version 2 of +** the License, or (at your option) any later version. +** +** This package is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +** General Public License for more details. +** \endlegal +*/ +/* ========================================================================= */ + +/* === H E A D E R S ======================================================= */ + +#ifdef USING_PCH +# include "pch.h" +#else +#ifdef HAVE_CONFIG_H +# include +#endif + +#include +#include +#include +#include +#include + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#endif + +using namespace std; +using namespace etl; +using namespace synfig; + +/* === M A C R O S ========================================================= */ + +enum exit_code +{ + SYNFIGTOOL_OK =0, + SYNFIGTOOL_FILENOTFOUND =1, + SYNFIGTOOL_BORRED =2, + SYNFIGTOOL_HELP =3, + SYNFIGTOOL_UNKNOWNARGUMENT =4, + SYNFIGTOOL_UNKNOWNERROR =5, + SYNFIGTOOL_INVALIDTARGET =6, + SYNFIGTOOL_RENDERFAILURE =7, + SYNFIGTOOL_BLANK =8, + SYNFIGTOOL_BADVERSION =9, + SYNFIGTOOL_MISSINGARGUMENT =10 +}; + +#ifndef VERSION +#define VERSION "unknown" +#define PACKAGE "synfig-tool" +#endif + +#ifdef DEFAULT_QUALITY +#undef DEFAULT_QUALITY +#endif + +#define DEFAULT_QUALITY 2 +#define VERBOSE_OUT(x) if(verbosity>=(x))std::cerr + +/* === G L O B A L S ======================================================= */ + +const char *progname; +int verbosity=0; +bool be_quiet=false; +bool print_benchmarks=false; + +/* === M E T H O D S ======================================================= */ + +class Progress : public synfig::ProgressCallback +{ + const char *program; + +public: + + Progress(const char *name):program(name) { } + + virtual bool + task(const String &task) + { + VERBOSE_OUT(1)<=60) + minutes++,seconds-=60; + while(minutes>=60) + hours++,minutes-=60; + while(hours>=24) + days++,hours-=24; + while(days>=7) + weeks++,days-=7; + + cerr<=-time/(h-clk_scanline) ) + cerr<<">"; + */ + if(delta>=0 && clk()>4.0 && scanline>clk_scanline+200) + { + //cerr<<"reset"< arg_list_t; +typedef list job_list_t; + +void guid_test() +{ + cout<<"GUID Test"< sig; + sigc::connection conn; + cout<<"Signal Test"<=1) + { + Argument("-t","",_("Specify output target (Default:unknown)")); + Argument("-w","",_("Set the image width (Use zero for file default)")); + Argument("-h","",_("Set the image height (Use zero for file default)")); + Argument("-s","",_("Set the diagonal size of image window (Span)")); + Argument("-a","<1...30>",_("Set antialias amount for parametric renderer.")); + Argument("-Q","<0...10>",strprintf(_("Specify image quality for accelerated renderer (default=%d)"),DEFAULT_QUALITY).c_str()); + Argument("-g","",_("Gamma (default=2.2)")); + Argument("-v",NULL,_("Verbose Output (add more for more verbosity)")); + Argument("-q",NULL,_("Quiet mode (No progress/time-remaining display)")); + Argument("-c","",_("Render the canvas with the given id instead of the root.")); + Argument("-o","",_("Specify output filename")); + Argument("-T","<# of threads>",_("Enable multithreaded renderer using specified # of threads")); + + Argument("-b",NULL,_("Print Benchmarks")); + + Argument("--fps","",_("Set the frame rate")); + Argument("--time","