texlive[57876] Master: asymptote 2.69 support files
commits+karl at tug.org
commits+karl at tug.org
Wed Feb 24 19:33:44 CET 2021
Revision: 57876
http://tug.org/svn/texlive?view=revision&revision=57876
Author: karl
Date: 2021-02-24 19:33:44 +0100 (Wed, 24 Feb 2021)
Log Message:
-----------
asymptote 2.69 support files
Modified Paths:
--------------
trunk/Master/texmf-dist/asymptote/GUI/Window1.py
trunk/Master/texmf-dist/asymptote/GUI/configs/xasyconfig.cson
trunk/Master/texmf-dist/asymptote/GUI/icons_rc.py
trunk/Master/texmf-dist/asymptote/GUI/setup.py
trunk/Master/texmf-dist/asymptote/GUI/xasy2asy.py
trunk/Master/texmf-dist/asymptote/GUI/xasyVersion.py
trunk/Master/texmf-dist/asymptote/animation.asy
trunk/Master/texmf-dist/asymptote/asy-keywords.el
trunk/Master/texmf-dist/asymptote/asy-mode.el
trunk/Master/texmf-dist/asymptote/babel.asy
trunk/Master/texmf-dist/asymptote/bezulate.asy
trunk/Master/texmf-dist/asymptote/binarytree.asy
trunk/Master/texmf-dist/asymptote/bsp.asy
trunk/Master/texmf-dist/asymptote/colormap.asy
trunk/Master/texmf-dist/asymptote/contour.asy
trunk/Master/texmf-dist/asymptote/contour3.asy
trunk/Master/texmf-dist/asymptote/embed.asy
trunk/Master/texmf-dist/asymptote/external.asy
trunk/Master/texmf-dist/asymptote/feynman.asy
trunk/Master/texmf-dist/asymptote/flowchart.asy
trunk/Master/texmf-dist/asymptote/geometry.asy
trunk/Master/texmf-dist/asymptote/graph.asy
trunk/Master/texmf-dist/asymptote/graph3.asy
trunk/Master/texmf-dist/asymptote/graph_splinetype.asy
trunk/Master/texmf-dist/asymptote/grid3.asy
trunk/Master/texmf-dist/asymptote/interpolate.asy
trunk/Master/texmf-dist/asymptote/labelpath3.asy
trunk/Master/texmf-dist/asymptote/lmfit.asy
trunk/Master/texmf-dist/asymptote/math.asy
trunk/Master/texmf-dist/asymptote/metapost.asy
trunk/Master/texmf-dist/asymptote/obj.asy
trunk/Master/texmf-dist/asymptote/ode.asy
trunk/Master/texmf-dist/asymptote/palette.asy
trunk/Master/texmf-dist/asymptote/patterns.asy
trunk/Master/texmf-dist/asymptote/plain.asy
trunk/Master/texmf-dist/asymptote/plain_Label.asy
trunk/Master/texmf-dist/asymptote/plain_arcs.asy
trunk/Master/texmf-dist/asymptote/plain_arrows.asy
trunk/Master/texmf-dist/asymptote/plain_bounds.asy
trunk/Master/texmf-dist/asymptote/plain_boxes.asy
trunk/Master/texmf-dist/asymptote/plain_margins.asy
trunk/Master/texmf-dist/asymptote/plain_picture.asy
trunk/Master/texmf-dist/asymptote/plain_shipout.asy
trunk/Master/texmf-dist/asymptote/rationalSimplex.asy
trunk/Master/texmf-dist/asymptote/simplex.asy
trunk/Master/texmf-dist/asymptote/slide.asy
trunk/Master/texmf-dist/asymptote/slopefield.asy
trunk/Master/texmf-dist/asymptote/three.asy
trunk/Master/texmf-dist/asymptote/three_light.asy
trunk/Master/texmf-dist/asymptote/three_surface.asy
trunk/Master/texmf-dist/asymptote/three_tube.asy
trunk/Master/texmf-dist/asymptote/tube.asy
trunk/Master/texmf-dist/asymptote/version.asy
trunk/Master/texmf-dist/asymptote/webgl/asygl.js
trunk/Master/texmf-dist/doc/asymptote/CAD.pdf
trunk/Master/texmf-dist/doc/asymptote/TeXShopAndAsymptote.pdf
trunk/Master/texmf-dist/doc/asymptote/asy-latex.pdf
trunk/Master/texmf-dist/doc/asymptote/asyRefCard.pdf
trunk/Master/texmf-dist/doc/asymptote/asymptote.pdf
trunk/Master/texmf-dist/doc/asymptote/examples/1overx.asy
trunk/Master/texmf-dist/doc/asymptote/examples/BezierPatch.asy
trunk/Master/texmf-dist/doc/asymptote/examples/BezierSurface.asy
trunk/Master/texmf-dist/doc/asymptote/examples/CDlabel.asy
trunk/Master/texmf-dist/doc/asymptote/examples/Gouraud.asy
trunk/Master/texmf-dist/doc/asymptote/examples/HermiteSpline.asy
trunk/Master/texmf-dist/doc/asymptote/examples/Klein.asy
trunk/Master/texmf-dist/doc/asymptote/examples/NURBScurve.asy
trunk/Master/texmf-dist/doc/asymptote/examples/NURBSsphere.asy
trunk/Master/texmf-dist/doc/asymptote/examples/NURBSsurface.asy
trunk/Master/texmf-dist/doc/asymptote/examples/RiemannSphere.asy
trunk/Master/texmf-dist/doc/asymptote/examples/RiemannSurface.asy
trunk/Master/texmf-dist/doc/asymptote/examples/RiemannSurfaceRoot.asy
trunk/Master/texmf-dist/doc/asymptote/examples/SierpinskiGasket.asy
trunk/Master/texmf-dist/doc/asymptote/examples/SierpinskiSponge.asy
trunk/Master/texmf-dist/doc/asymptote/examples/animations/slidemovies.asy
trunk/Master/texmf-dist/doc/asymptote/examples/bars3.asy
trunk/Master/texmf-dist/doc/asymptote/examples/centroidfg.asy
trunk/Master/texmf-dist/doc/asymptote/examples/colorpatch.asy
trunk/Master/texmf-dist/doc/asymptote/examples/colorplanes.asy
trunk/Master/texmf-dist/doc/asymptote/examples/conicurv.asy
trunk/Master/texmf-dist/doc/asymptote/examples/contextfonts.asy
trunk/Master/texmf-dist/doc/asymptote/examples/controlsystem.asy
trunk/Master/texmf-dist/doc/asymptote/examples/cosaddition.asy
trunk/Master/texmf-dist/doc/asymptote/examples/cpkcolors.asy
trunk/Master/texmf-dist/doc/asymptote/examples/curvedlabel3.asy
trunk/Master/texmf-dist/doc/asymptote/examples/diatom.asy
trunk/Master/texmf-dist/doc/asymptote/examples/dimension.asy
trunk/Master/texmf-dist/doc/asymptote/examples/electromagnetic.asy
trunk/Master/texmf-dist/doc/asymptote/examples/elliptic.asy
trunk/Master/texmf-dist/doc/asymptote/examples/equilchord.asy
trunk/Master/texmf-dist/doc/asymptote/examples/exp.asy
trunk/Master/texmf-dist/doc/asymptote/examples/fequlogo.asy
trunk/Master/texmf-dist/doc/asymptote/examples/filesurface.asy
trunk/Master/texmf-dist/doc/asymptote/examples/fillcontour.asy
trunk/Master/texmf-dist/doc/asymptote/examples/fin.asy
trunk/Master/texmf-dist/doc/asymptote/examples/floatingdisk.asy
trunk/Master/texmf-dist/doc/asymptote/examples/floor.asy
trunk/Master/texmf-dist/doc/asymptote/examples/flowchartdemo.asy
trunk/Master/texmf-dist/doc/asymptote/examples/gamma.asy
trunk/Master/texmf-dist/doc/asymptote/examples/gamma3.asy
trunk/Master/texmf-dist/doc/asymptote/examples/genustwo.asy
trunk/Master/texmf-dist/doc/asymptote/examples/icon.asy
trunk/Master/texmf-dist/doc/asymptote/examples/imagecontour.asy
trunk/Master/texmf-dist/doc/asymptote/examples/imagehistogram.asy
trunk/Master/texmf-dist/doc/asymptote/examples/integraltest.asy
trunk/Master/texmf-dist/doc/asymptote/examples/interpolate1.asy
trunk/Master/texmf-dist/doc/asymptote/examples/intro.asy
trunk/Master/texmf-dist/doc/asymptote/examples/jump.asy
trunk/Master/texmf-dist/doc/asymptote/examples/label3zoom.asy
trunk/Master/texmf-dist/doc/asymptote/examples/leastsquares.asy
trunk/Master/texmf-dist/doc/asymptote/examples/legend.asy
trunk/Master/texmf-dist/doc/asymptote/examples/linearregression.asy
trunk/Master/texmf-dist/doc/asymptote/examples/linetype.asy
trunk/Master/texmf-dist/doc/asymptote/examples/lmfit1.asy
trunk/Master/texmf-dist/doc/asymptote/examples/logo.asy
trunk/Master/texmf-dist/doc/asymptote/examples/logo3.asy
trunk/Master/texmf-dist/doc/asymptote/examples/lowupint.asy
trunk/Master/texmf-dist/doc/asymptote/examples/markers1.asy
trunk/Master/texmf-dist/doc/asymptote/examples/markregular.asy
trunk/Master/texmf-dist/doc/asymptote/examples/mergeExample.asy
trunk/Master/texmf-dist/doc/asymptote/examples/mosaic.asy
trunk/Master/texmf-dist/doc/asymptote/examples/mosquito.asy
trunk/Master/texmf-dist/doc/asymptote/examples/near_earth.asy
trunk/Master/texmf-dist/doc/asymptote/examples/oneoverx.asy
trunk/Master/texmf-dist/doc/asymptote/examples/pathintersectsurface.asy
trunk/Master/texmf-dist/doc/asymptote/examples/pdb.asy
trunk/Master/texmf-dist/doc/asymptote/examples/pipes.asy
trunk/Master/texmf-dist/doc/asymptote/examples/poster.asy
trunk/Master/texmf-dist/doc/asymptote/examples/projectrevolution.asy
trunk/Master/texmf-dist/doc/asymptote/examples/rainbow.asy
trunk/Master/texmf-dist/doc/asymptote/examples/roll.asy
trunk/Master/texmf-dist/doc/asymptote/examples/roundpath.asy
trunk/Master/texmf-dist/doc/asymptote/examples/secondaryaxis.asy
trunk/Master/texmf-dist/doc/asymptote/examples/shadestroke.asy
trunk/Master/texmf-dist/doc/asymptote/examples/sinxlex.asy
trunk/Master/texmf-dist/doc/asymptote/examples/slidedemo.asy
trunk/Master/texmf-dist/doc/asymptote/examples/slope.asy
trunk/Master/texmf-dist/doc/asymptote/examples/soccerball.asy
trunk/Master/texmf-dist/doc/asymptote/examples/spectrum.asy
trunk/Master/texmf-dist/doc/asymptote/examples/sphereskeleton.asy
trunk/Master/texmf-dist/doc/asymptote/examples/spiral3.asy
trunk/Master/texmf-dist/doc/asymptote/examples/spline.asy
trunk/Master/texmf-dist/doc/asymptote/examples/splitpatch.asy
trunk/Master/texmf-dist/doc/asymptote/examples/spring.asy
trunk/Master/texmf-dist/doc/asymptote/examples/stereoscopic.asy
trunk/Master/texmf-dist/doc/asymptote/examples/strokeshade.asy
trunk/Master/texmf-dist/doc/asymptote/examples/teapot.asy
trunk/Master/texmf-dist/doc/asymptote/examples/thermodynamics.asy
trunk/Master/texmf-dist/doc/asymptote/examples/torus.asy
trunk/Master/texmf-dist/doc/asymptote/examples/triads.asy
trunk/Master/texmf-dist/doc/asymptote/examples/triangle.asy
trunk/Master/texmf-dist/doc/asymptote/examples/truncatedIcosahedron.asy
trunk/Master/texmf-dist/doc/asymptote/examples/tvgen.asy
trunk/Master/texmf-dist/doc/asymptote/examples/twistedtubes.asy
trunk/Master/texmf-dist/doc/asymptote/examples/unitoctant.asy
trunk/Master/texmf-dist/doc/asymptote/examples/vertexshading.asy
trunk/Master/texmf-dist/doc/asymptote/examples/worldmap.asy
trunk/Master/texmf-dist/doc/asymptote/examples/xstitch.asy
trunk/Master/texmf-dist/doc/asymptote/examples/xxsq01x-1.asy
trunk/Master/texmf-dist/doc/asymptote/examples/xxsq01y.asy
trunk/Master/texmf-dist/doc/asymptote/examples/yingyang.asy
trunk/Master/texmf-dist/doc/info/asy-faq.info
trunk/Master/texmf-dist/doc/info/asymptote.info
trunk/Master/texmf-dist/doc/man/man1/asy.1
trunk/Master/texmf-dist/doc/man/man1/asy.man1.pdf
trunk/Master/texmf-dist/doc/man/man1/xasy.man1.pdf
trunk/Master/texmf-dist/tex/latex/asymptote/asymptote.sty
trunk/Master/tlpkg/asymptote/asy.exe
trunk/Master/tlpkg/asymptote64/asy.exe
Added Paths:
-----------
trunk/Master/texmf-dist/asymptote/map.asy
trunk/Master/texmf-dist/doc/asymptote/examples/100d.pdb1
trunk/Master/texmf-dist/doc/asymptote/examples/axialshade.asy
trunk/Master/texmf-dist/doc/asymptote/examples/pOrbital.asy
trunk/Master/texmf-dist/doc/asymptote/examples/unitoctantx.asy
Removed Paths:
-------------
trunk/Master/texmf-dist/asymptote/latin1.asy
trunk/Master/texmf-dist/asymptote/unicode.asy
trunk/Master/texmf-dist/doc/asymptote/examples/p-orbital.asy
Modified: trunk/Master/texmf-dist/asymptote/GUI/Window1.py
===================================================================
--- trunk/Master/texmf-dist/asymptote/GUI/Window1.py 2021-02-24 18:27:49 UTC (rev 57875)
+++ trunk/Master/texmf-dist/asymptote/GUI/Window1.py 2021-02-24 18:33:44 UTC (rev 57876)
@@ -772,11 +772,11 @@
self.asyfyCanvas()
def actionManual(self):
- asyManualURL = 'http://asymptote.sourceforge.net/asymptote.pdf'
+ asyManualURL = 'https://asymptote.sourceforge.io/asymptote.pdf'
webbrowser.open_new(asyManualURL)
def actionAbout(self):
- Qw.QMessageBox.about(self,"xasy","This is xasy "+xasyVersion.xasyVersion+"; a graphical front end to the Asymptote vector graphics language: http://asymptote.sourceforge.net/")
+ Qw.QMessageBox.about(self,"xasy","This is xasy "+xasyVersion.xasyVersion+"; a graphical front end to the Asymptote vector graphics language: https://asymptote.sourceforge.io/")
def btnExportAsyOnClick(self):
diag = Qw.QFileDialog(self)
Modified: trunk/Master/texmf-dist/asymptote/GUI/configs/xasyconfig.cson
===================================================================
--- trunk/Master/texmf-dist/asymptote/GUI/configs/xasyconfig.cson 2021-02-24 18:27:49 UTC (rev 57875)
+++ trunk/Master/texmf-dist/asymptote/GUI/configs/xasyconfig.cson 2021-02-24 18:33:44 UTC (rev 57876)
@@ -54,7 +54,7 @@
# Overrides
-windows:
+Windows:
externalEditor: "notepad.exe"
Darwin:
Modified: trunk/Master/texmf-dist/asymptote/GUI/icons_rc.py
===================================================================
--- trunk/Master/texmf-dist/asymptote/GUI/icons_rc.py 2021-02-24 18:27:49 UTC (rev 57875)
+++ trunk/Master/texmf-dist/asymptote/GUI/icons_rc.py 2021-02-24 18:33:44 UTC (rev 57876)
@@ -9,13 +9,13 @@
from PyQt5 import QtCore
qt_resource_data = b"\
-\x00\x00\x03\xe6\
+\x00\x00\x03\x4c\
\x3c\
\x3f\x78\x6d\x6c\x20\x76\x65\x72\x73\x69\x6f\x6e\x3d\x22\x31\x2e\
\x30\x22\x20\x65\x6e\x63\x6f\x64\x69\x6e\x67\x3d\x22\x75\x74\x66\
\x2d\x38\x22\x3f\x3e\x0d\x0a\x3c\x21\x2d\x2d\x20\x47\x65\x6e\x65\
\x72\x61\x74\x6f\x72\x3a\x20\x41\x64\x6f\x62\x65\x20\x49\x6c\x6c\
-\x75\x73\x74\x72\x61\x74\x6f\x72\x20\x31\x38\x2e\x31\x2e\x31\x2c\
+\x75\x73\x74\x72\x61\x74\x6f\x72\x20\x31\x36\x2e\x32\x2e\x31\x2c\
\x20\x53\x56\x47\x20\x45\x78\x70\x6f\x72\x74\x20\x50\x6c\x75\x67\
\x2d\x49\x6e\x20\x2e\x20\x53\x56\x47\x20\x56\x65\x72\x73\x69\x6f\
\x6e\x3a\x20\x36\x2e\x30\x30\x20\x42\x75\x69\x6c\x64\x20\x30\x29\
@@ -27,53 +27,362 @@
\x73\x2f\x53\x56\x47\x2f\x31\x2e\x31\x2f\x44\x54\x44\x2f\x73\x76\
\x67\x31\x31\x2e\x64\x74\x64\x22\x3e\x0d\x0a\x3c\x73\x76\x67\x20\
\x76\x65\x72\x73\x69\x6f\x6e\x3d\x22\x31\x2e\x31\x22\x20\x69\x64\
-\x3d\x22\x43\x68\x65\x76\x72\x6f\x6e\x5f\x63\x69\x72\x63\x6c\x65\
-\x64\x5f\x72\x69\x67\x68\x74\x22\x20\x78\x6d\x6c\x6e\x73\x3d\x22\
+\x3d\x22\x4c\x61\x79\x65\x72\x5f\x31\x22\x20\x78\x6d\x6c\x6e\x73\
+\x3d\x22\x68\x74\x74\x70\x3a\x2f\x2f\x77\x77\x77\x2e\x77\x33\x2e\
+\x6f\x72\x67\x2f\x32\x30\x30\x30\x2f\x73\x76\x67\x22\x20\x78\x6d\
+\x6c\x6e\x73\x3a\x78\x6c\x69\x6e\x6b\x3d\x22\x68\x74\x74\x70\x3a\
+\x2f\x2f\x77\x77\x77\x2e\x77\x33\x2e\x6f\x72\x67\x2f\x31\x39\x39\
+\x39\x2f\x78\x6c\x69\x6e\x6b\x22\x20\x78\x3d\x22\x30\x70\x78\x22\
+\x20\x79\x3d\x22\x30\x70\x78\x22\x0d\x0a\x09\x20\x77\x69\x64\x74\
+\x68\x3d\x22\x35\x31\x32\x70\x78\x22\x20\x68\x65\x69\x67\x68\x74\
+\x3d\x22\x35\x31\x32\x70\x78\x22\x20\x76\x69\x65\x77\x42\x6f\x78\
+\x3d\x22\x30\x20\x30\x20\x35\x31\x32\x20\x35\x31\x32\x22\x20\x65\
+\x6e\x61\x62\x6c\x65\x2d\x62\x61\x63\x6b\x67\x72\x6f\x75\x6e\x64\
+\x3d\x22\x6e\x65\x77\x20\x30\x20\x30\x20\x35\x31\x32\x20\x35\x31\
+\x32\x22\x20\x78\x6d\x6c\x3a\x73\x70\x61\x63\x65\x3d\x22\x70\x72\
+\x65\x73\x65\x72\x76\x65\x22\x3e\x0d\x0a\x3c\x67\x20\x69\x64\x3d\
+\x22\x49\x63\x6f\x6e\x5f\x32\x31\x5f\x22\x3e\x0d\x0a\x09\x3c\x67\
+\x3e\x0d\x0a\x09\x09\x3c\x70\x61\x74\x68\x20\x64\x3d\x22\x4d\x32\
+\x35\x36\x2c\x31\x35\x32\x63\x2d\x35\x37\x2e\x32\x2c\x30\x2d\x31\
+\x30\x34\x2c\x34\x36\x2e\x38\x2d\x31\x30\x34\x2c\x31\x30\x34\x73\
+\x34\x36\x2e\x38\x2c\x31\x30\x34\x2c\x31\x30\x34\x2c\x31\x30\x34\
+\x73\x31\x30\x34\x2d\x34\x36\x2e\x38\x2c\x31\x30\x34\x2d\x31\x30\
+\x34\x53\x33\x31\x33\x2e\x32\x2c\x31\x35\x32\x2c\x32\x35\x36\x2c\
+\x31\x35\x32\x7a\x20\x4d\x32\x35\x36\x2c\x34\x38\x0d\x0a\x09\x09\
+\x09\x43\x31\x34\x31\x2e\x36\x30\x31\x2c\x34\x38\x2c\x34\x38\x2c\
+\x31\x34\x31\x2e\x36\x30\x31\x2c\x34\x38\x2c\x32\x35\x36\x73\x39\
+\x33\x2e\x36\x30\x31\x2c\x32\x30\x38\x2c\x32\x30\x38\x2c\x32\x30\
+\x38\x73\x32\x30\x38\x2d\x39\x33\x2e\x36\x30\x31\x2c\x32\x30\x38\
+\x2d\x32\x30\x38\x53\x33\x37\x30\x2e\x33\x39\x39\x2c\x34\x38\x2c\
+\x32\x35\x36\x2c\x34\x38\x7a\x20\x4d\x32\x35\x36\x2c\x34\x32\x32\
+\x2e\x34\x0d\x0a\x09\x09\x09\x63\x2d\x39\x31\x2e\x35\x31\x38\x2c\
+\x30\x2d\x31\x36\x36\x2e\x34\x2d\x37\x34\x2e\x38\x38\x33\x2d\x31\
+\x36\x36\x2e\x34\x2d\x31\x36\x36\x2e\x34\x53\x31\x36\x34\x2e\x34\
+\x38\x32\x2c\x38\x39\x2e\x36\x2c\x32\x35\x36\x2c\x38\x39\x2e\x36\
+\x53\x34\x32\x32\x2e\x34\x2c\x31\x36\x34\x2e\x34\x38\x32\x2c\x34\
+\x32\x32\x2e\x34\x2c\x32\x35\x36\x53\x33\x34\x37\x2e\x35\x31\x38\
+\x2c\x34\x32\x32\x2e\x34\x2c\x32\x35\x36\x2c\x34\x32\x32\x2e\x34\
+\x7a\x22\x2f\x3e\x0d\x0a\x09\x3c\x2f\x67\x3e\x0d\x0a\x3c\x2f\x67\
+\x3e\x0d\x0a\x3c\x2f\x73\x76\x67\x3e\x0d\x0a\
+\x00\x00\x04\x1c\
+\x3c\
+\x3f\x78\x6d\x6c\x20\x76\x65\x72\x73\x69\x6f\x6e\x3d\x27\x31\x2e\
+\x30\x27\x20\x65\x6e\x63\x6f\x64\x69\x6e\x67\x3d\x27\x55\x54\x46\
+\x2d\x38\x27\x3f\x3e\x0a\x3c\x21\x2d\x2d\x20\x54\x68\x69\x73\x20\
+\x66\x69\x6c\x65\x20\x77\x61\x73\x20\x67\x65\x6e\x65\x72\x61\x74\
+\x65\x64\x20\x62\x79\x20\x64\x76\x69\x73\x76\x67\x6d\x20\x32\x2e\
+\x38\x20\x2d\x2d\x3e\x0a\x3c\x73\x76\x67\x20\x76\x65\x72\x73\x69\
+\x6f\x6e\x3d\x27\x31\x2e\x31\x27\x20\x78\x6d\x6c\x6e\x73\x3d\x27\
\x68\x74\x74\x70\x3a\x2f\x2f\x77\x77\x77\x2e\x77\x33\x2e\x6f\x72\
+\x67\x2f\x32\x30\x30\x30\x2f\x73\x76\x67\x27\x20\x78\x6d\x6c\x6e\
+\x73\x3a\x78\x6c\x69\x6e\x6b\x3d\x27\x68\x74\x74\x70\x3a\x2f\x2f\
+\x77\x77\x77\x2e\x77\x33\x2e\x6f\x72\x67\x2f\x31\x39\x39\x39\x2f\
+\x78\x6c\x69\x6e\x6b\x27\x20\x77\x69\x64\x74\x68\x3d\x27\x36\x33\
+\x2e\x39\x39\x39\x36\x70\x74\x27\x20\x68\x65\x69\x67\x68\x74\x3d\
+\x27\x36\x33\x2e\x39\x39\x39\x37\x70\x74\x27\x20\x76\x69\x65\x77\
+\x42\x6f\x78\x3d\x27\x35\x36\x2e\x34\x30\x39\x34\x20\x35\x33\x2e\
+\x38\x35\x38\x33\x20\x36\x33\x2e\x39\x39\x39\x36\x20\x36\x33\x2e\
+\x39\x39\x39\x37\x27\x3e\x0a\x3c\x67\x20\x69\x64\x3d\x27\x70\x61\
+\x67\x65\x31\x27\x3e\x0a\x3c\x67\x20\x74\x72\x61\x6e\x73\x66\x6f\
+\x72\x6d\x3d\x27\x6d\x61\x74\x72\x69\x78\x28\x30\x2e\x39\x39\x36\
+\x32\x36\x34\x20\x30\x20\x30\x20\x30\x2e\x39\x39\x36\x32\x36\x34\
+\x20\x35\x36\x2e\x34\x30\x39\x34\x20\x31\x31\x37\x2e\x38\x35\x38\
+\x29\x27\x3e\x0a\x3c\x70\x61\x74\x68\x20\x64\x3d\x27\x4d\x20\x32\
+\x2e\x30\x30\x37\x35\x20\x2d\x32\x2e\x30\x30\x37\x35\x4c\x20\x36\
+\x32\x2e\x32\x33\x32\x35\x20\x2d\x32\x2e\x30\x30\x37\x35\x4c\x20\
+\x36\x32\x2e\x32\x33\x32\x35\x20\x2d\x36\x32\x2e\x32\x33\x32\x35\
+\x4c\x20\x32\x2e\x30\x30\x37\x35\x20\x2d\x36\x32\x2e\x32\x33\x32\
+\x35\x4c\x20\x32\x2e\x30\x30\x37\x35\x20\x2d\x32\x2e\x30\x30\x37\
+\x35\x5a\x27\x20\x66\x69\x6c\x6c\x3d\x27\x6e\x6f\x6e\x65\x27\x20\
+\x73\x74\x72\x6f\x6b\x65\x3d\x27\x23\x30\x30\x30\x30\x30\x30\x27\
+\x20\x73\x74\x72\x6f\x6b\x65\x2d\x6c\x69\x6e\x65\x63\x61\x70\x3d\
+\x27\x72\x6f\x75\x6e\x64\x27\x20\x73\x74\x72\x6f\x6b\x65\x2d\x6c\
+\x69\x6e\x65\x6a\x6f\x69\x6e\x3d\x27\x72\x6f\x75\x6e\x64\x27\x20\
+\x73\x74\x72\x6f\x6b\x65\x2d\x6d\x69\x74\x65\x72\x6c\x69\x6d\x69\
+\x74\x3d\x27\x31\x30\x2e\x30\x33\x37\x35\x27\x20\x73\x74\x72\x6f\
+\x6b\x65\x2d\x77\x69\x64\x74\x68\x3d\x27\x34\x2e\x30\x31\x35\x27\
+\x2f\x3e\x0a\x3c\x2f\x67\x3e\x0a\x3c\x67\x20\x74\x72\x61\x6e\x73\
+\x66\x6f\x72\x6d\x3d\x27\x6d\x61\x74\x72\x69\x78\x28\x30\x2e\x39\
+\x39\x36\x32\x36\x34\x20\x30\x20\x30\x20\x30\x2e\x39\x39\x36\x32\
+\x36\x34\x20\x35\x36\x2e\x34\x30\x39\x34\x20\x31\x31\x37\x2e\x38\
+\x35\x38\x29\x27\x3e\x0a\x3c\x70\x61\x74\x68\x20\x64\x3d\x27\x4d\
+\x20\x32\x2e\x30\x30\x37\x35\x20\x2d\x33\x32\x2e\x31\x32\x4c\x20\
+\x36\x32\x2e\x32\x33\x32\x35\x20\x2d\x33\x32\x2e\x31\x32\x27\x20\
+\x66\x69\x6c\x6c\x3d\x27\x6e\x6f\x6e\x65\x27\x20\x73\x74\x72\x6f\
+\x6b\x65\x3d\x27\x23\x30\x30\x30\x30\x30\x30\x27\x20\x73\x74\x72\
+\x6f\x6b\x65\x2d\x6c\x69\x6e\x65\x63\x61\x70\x3d\x27\x72\x6f\x75\
+\x6e\x64\x27\x20\x73\x74\x72\x6f\x6b\x65\x2d\x6c\x69\x6e\x65\x6a\
+\x6f\x69\x6e\x3d\x27\x72\x6f\x75\x6e\x64\x27\x20\x73\x74\x72\x6f\
+\x6b\x65\x2d\x6d\x69\x74\x65\x72\x6c\x69\x6d\x69\x74\x3d\x27\x31\
+\x30\x2e\x30\x33\x37\x35\x27\x20\x73\x74\x72\x6f\x6b\x65\x2d\x77\
+\x69\x64\x74\x68\x3d\x27\x34\x2e\x30\x31\x35\x27\x2f\x3e\x0a\x3c\
+\x2f\x67\x3e\x0a\x3c\x67\x20\x74\x72\x61\x6e\x73\x66\x6f\x72\x6d\
+\x3d\x27\x6d\x61\x74\x72\x69\x78\x28\x30\x2e\x39\x39\x36\x32\x36\
+\x34\x20\x30\x20\x30\x20\x30\x2e\x39\x39\x36\x32\x36\x34\x20\x35\
+\x36\x2e\x34\x30\x39\x34\x20\x31\x31\x37\x2e\x38\x35\x38\x29\x27\
+\x3e\x0a\x3c\x70\x61\x74\x68\x20\x64\x3d\x27\x4d\x20\x33\x32\x2e\
+\x31\x32\x20\x2d\x32\x2e\x30\x30\x37\x35\x4c\x20\x33\x32\x2e\x31\
+\x32\x20\x2d\x36\x32\x2e\x32\x33\x32\x35\x27\x20\x66\x69\x6c\x6c\
+\x3d\x27\x6e\x6f\x6e\x65\x27\x20\x73\x74\x72\x6f\x6b\x65\x3d\x27\
+\x23\x30\x30\x30\x30\x30\x30\x27\x20\x73\x74\x72\x6f\x6b\x65\x2d\
+\x6c\x69\x6e\x65\x63\x61\x70\x3d\x27\x72\x6f\x75\x6e\x64\x27\x20\
+\x73\x74\x72\x6f\x6b\x65\x2d\x6c\x69\x6e\x65\x6a\x6f\x69\x6e\x3d\
+\x27\x72\x6f\x75\x6e\x64\x27\x20\x73\x74\x72\x6f\x6b\x65\x2d\x6d\
+\x69\x74\x65\x72\x6c\x69\x6d\x69\x74\x3d\x27\x31\x30\x2e\x30\x33\
+\x37\x35\x27\x20\x73\x74\x72\x6f\x6b\x65\x2d\x77\x69\x64\x74\x68\
+\x3d\x27\x34\x2e\x30\x31\x35\x27\x2f\x3e\x0a\x3c\x2f\x67\x3e\x0a\
+\x3c\x2f\x67\x3e\x0a\x3c\x2f\x73\x76\x67\x3e\
+\x00\x00\x03\x0c\
+\x3c\
+\x3f\x78\x6d\x6c\x20\x76\x65\x72\x73\x69\x6f\x6e\x3d\x22\x31\x2e\
+\x30\x22\x20\x65\x6e\x63\x6f\x64\x69\x6e\x67\x3d\x22\x75\x74\x66\
+\x2d\x38\x22\x3f\x3e\x0d\x0a\x3c\x21\x2d\x2d\x20\x47\x65\x6e\x65\
+\x72\x61\x74\x6f\x72\x3a\x20\x41\x64\x6f\x62\x65\x20\x49\x6c\x6c\
+\x75\x73\x74\x72\x61\x74\x6f\x72\x20\x31\x38\x2e\x31\x2e\x30\x2c\
+\x20\x53\x56\x47\x20\x45\x78\x70\x6f\x72\x74\x20\x50\x6c\x75\x67\
+\x2d\x49\x6e\x20\x2e\x20\x53\x56\x47\x20\x56\x65\x72\x73\x69\x6f\
+\x6e\x3a\x20\x36\x2e\x30\x30\x20\x42\x75\x69\x6c\x64\x20\x30\x29\
+\x20\x20\x2d\x2d\x3e\x0d\x0a\x3c\x21\x44\x4f\x43\x54\x59\x50\x45\
+\x20\x73\x76\x67\x20\x50\x55\x42\x4c\x49\x43\x20\x22\x2d\x2f\x2f\
+\x57\x33\x43\x2f\x2f\x44\x54\x44\x20\x53\x56\x47\x20\x31\x2e\x31\
+\x2f\x2f\x45\x4e\x22\x20\x22\x68\x74\x74\x70\x3a\x2f\x2f\x77\x77\
+\x77\x2e\x77\x33\x2e\x6f\x72\x67\x2f\x47\x72\x61\x70\x68\x69\x63\
+\x73\x2f\x53\x56\x47\x2f\x31\x2e\x31\x2f\x44\x54\x44\x2f\x73\x76\
+\x67\x31\x31\x2e\x64\x74\x64\x22\x3e\x0d\x0a\x3c\x73\x76\x67\x20\
+\x76\x65\x72\x73\x69\x6f\x6e\x3d\x22\x31\x2e\x31\x22\x20\x69\x64\
+\x3d\x22\x43\x68\x65\x63\x6b\x22\x20\x78\x6d\x6c\x6e\x73\x3d\x22\
+\x68\x74\x74\x70\x3a\x2f\x2f\x77\x77\x77\x2e\x77\x33\x2e\x6f\x72\
\x67\x2f\x32\x30\x30\x30\x2f\x73\x76\x67\x22\x20\x78\x6d\x6c\x6e\
\x73\x3a\x78\x6c\x69\x6e\x6b\x3d\x22\x68\x74\x74\x70\x3a\x2f\x2f\
\x77\x77\x77\x2e\x77\x33\x2e\x6f\x72\x67\x2f\x31\x39\x39\x39\x2f\
-\x78\x6c\x69\x6e\x6b\x22\x0d\x0a\x09\x20\x78\x3d\x22\x30\x70\x78\
-\x22\x20\x79\x3d\x22\x30\x70\x78\x22\x20\x76\x69\x65\x77\x42\x6f\
-\x78\x3d\x22\x30\x20\x30\x20\x35\x31\x32\x20\x35\x31\x32\x22\x20\
-\x65\x6e\x61\x62\x6c\x65\x2d\x62\x61\x63\x6b\x67\x72\x6f\x75\x6e\
-\x64\x3d\x22\x6e\x65\x77\x20\x30\x20\x30\x20\x35\x31\x32\x20\x35\
-\x31\x32\x22\x20\x78\x6d\x6c\x3a\x73\x70\x61\x63\x65\x3d\x22\x70\
-\x72\x65\x73\x65\x72\x76\x65\x22\x3e\x0d\x0a\x3c\x67\x20\x74\x72\
+\x78\x6c\x69\x6e\x6b\x22\x20\x78\x3d\x22\x30\x70\x78\x22\x20\x79\
+\x3d\x22\x30\x70\x78\x22\x0d\x0a\x09\x20\x76\x69\x65\x77\x42\x6f\
+\x78\x3d\x22\x30\x20\x30\x20\x32\x30\x20\x32\x30\x22\x20\x65\x6e\
+\x61\x62\x6c\x65\x2d\x62\x61\x63\x6b\x67\x72\x6f\x75\x6e\x64\x3d\
+\x22\x6e\x65\x77\x20\x30\x20\x30\x20\x32\x30\x20\x32\x30\x22\x20\
+\x78\x6d\x6c\x3a\x73\x70\x61\x63\x65\x3d\x22\x70\x72\x65\x73\x65\
+\x72\x76\x65\x22\x3e\x0d\x0a\x3c\x70\x61\x74\x68\x20\x64\x3d\x22\
+\x4d\x38\x2e\x32\x39\x34\x2c\x31\x36\x2e\x39\x39\x38\x63\x2d\x30\
+\x2e\x34\x33\x35\x2c\x30\x2d\x30\x2e\x38\x34\x37\x2d\x30\x2e\x32\
+\x30\x33\x2d\x31\x2e\x31\x31\x31\x2d\x30\x2e\x35\x35\x33\x4c\x33\
+\x2e\x36\x31\x2c\x31\x31\x2e\x37\x32\x34\x63\x2d\x30\x2e\x34\x36\
+\x35\x2d\x30\x2e\x36\x31\x33\x2d\x30\x2e\x33\x34\x34\x2d\x31\x2e\
+\x34\x38\x36\x2c\x30\x2e\x32\x37\x2d\x31\x2e\x39\x35\x31\x0d\x0a\
+\x09\x63\x30\x2e\x36\x31\x35\x2d\x30\x2e\x34\x36\x37\x2c\x31\x2e\
+\x34\x38\x38\x2d\x30\x2e\x33\x34\x34\x2c\x31\x2e\x39\x35\x33\x2c\
+\x30\x2e\x32\x37\x6c\x32\x2e\x33\x35\x31\x2c\x33\x2e\x31\x30\x34\
+\x6c\x35\x2e\x39\x31\x31\x2d\x39\x2e\x34\x39\x32\x63\x30\x2e\x34\
+\x30\x37\x2d\x30\x2e\x36\x35\x32\x2c\x31\x2e\x32\x36\x37\x2d\x30\
+\x2e\x38\x35\x32\x2c\x31\x2e\x39\x32\x31\x2d\x30\x2e\x34\x34\x35\
+\x0d\x0a\x09\x63\x30\x2e\x36\x35\x33\x2c\x30\x2e\x34\x30\x36\x2c\
+\x30\x2e\x38\x35\x34\x2c\x31\x2e\x32\x36\x36\x2c\x30\x2e\x34\x34\
+\x36\x2c\x31\x2e\x39\x32\x4c\x39\x2e\x34\x37\x38\x2c\x31\x36\x2e\
+\x33\x34\x63\x2d\x30\x2e\x32\x34\x32\x2c\x30\x2e\x33\x39\x31\x2d\
+\x30\x2e\x36\x36\x31\x2c\x30\x2e\x36\x33\x35\x2d\x31\x2e\x31\x32\
+\x2c\x30\x2e\x36\x35\x36\x43\x38\x2e\x33\x33\x36\x2c\x31\x36\x2e\
+\x39\x39\x38\x2c\x38\x2e\x33\x31\x36\x2c\x31\x36\x2e\x39\x39\x38\
+\x2c\x38\x2e\x32\x39\x34\x2c\x31\x36\x2e\x39\x39\x38\x7a\x22\x2f\
+\x3e\x0d\x0a\x3c\x2f\x73\x76\x67\x3e\x0d\x0a\
+\x00\x00\x03\x22\
+\x3c\
+\x3f\x78\x6d\x6c\x20\x76\x65\x72\x73\x69\x6f\x6e\x3d\x22\x31\x2e\
+\x30\x22\x20\x65\x6e\x63\x6f\x64\x69\x6e\x67\x3d\x22\x75\x74\x66\
+\x2d\x38\x22\x3f\x3e\x0d\x0a\x3c\x21\x2d\x2d\x20\x47\x65\x6e\x65\
+\x72\x61\x74\x6f\x72\x3a\x20\x41\x64\x6f\x62\x65\x20\x49\x6c\x6c\
+\x75\x73\x74\x72\x61\x74\x6f\x72\x20\x31\x36\x2e\x32\x2e\x31\x2c\
+\x20\x53\x56\x47\x20\x45\x78\x70\x6f\x72\x74\x20\x50\x6c\x75\x67\
+\x2d\x49\x6e\x20\x2e\x20\x53\x56\x47\x20\x56\x65\x72\x73\x69\x6f\
+\x6e\x3a\x20\x36\x2e\x30\x30\x20\x42\x75\x69\x6c\x64\x20\x30\x29\
+\x20\x20\x2d\x2d\x3e\x0d\x0a\x3c\x21\x44\x4f\x43\x54\x59\x50\x45\
+\x20\x73\x76\x67\x20\x50\x55\x42\x4c\x49\x43\x20\x22\x2d\x2f\x2f\
+\x57\x33\x43\x2f\x2f\x44\x54\x44\x20\x53\x56\x47\x20\x31\x2e\x31\
+\x2f\x2f\x45\x4e\x22\x20\x22\x68\x74\x74\x70\x3a\x2f\x2f\x77\x77\
+\x77\x2e\x77\x33\x2e\x6f\x72\x67\x2f\x47\x72\x61\x70\x68\x69\x63\
+\x73\x2f\x53\x56\x47\x2f\x31\x2e\x31\x2f\x44\x54\x44\x2f\x73\x76\
+\x67\x31\x31\x2e\x64\x74\x64\x22\x3e\x0d\x0a\x3c\x73\x76\x67\x20\
+\x76\x65\x72\x73\x69\x6f\x6e\x3d\x22\x31\x2e\x31\x22\x20\x69\x64\
+\x3d\x22\x4c\x61\x79\x65\x72\x5f\x31\x22\x20\x78\x6d\x6c\x6e\x73\
+\x3d\x22\x68\x74\x74\x70\x3a\x2f\x2f\x77\x77\x77\x2e\x77\x33\x2e\
+\x6f\x72\x67\x2f\x32\x30\x30\x30\x2f\x73\x76\x67\x22\x20\x78\x6d\
+\x6c\x6e\x73\x3a\x78\x6c\x69\x6e\x6b\x3d\x22\x68\x74\x74\x70\x3a\
+\x2f\x2f\x77\x77\x77\x2e\x77\x33\x2e\x6f\x72\x67\x2f\x31\x39\x39\
+\x39\x2f\x78\x6c\x69\x6e\x6b\x22\x20\x78\x3d\x22\x30\x70\x78\x22\
+\x20\x79\x3d\x22\x30\x70\x78\x22\x0d\x0a\x09\x20\x77\x69\x64\x74\
+\x68\x3d\x22\x35\x31\x32\x70\x78\x22\x20\x68\x65\x69\x67\x68\x74\
+\x3d\x22\x35\x31\x32\x70\x78\x22\x20\x76\x69\x65\x77\x42\x6f\x78\
+\x3d\x22\x30\x20\x30\x20\x35\x31\x32\x20\x35\x31\x32\x22\x20\x65\
+\x6e\x61\x62\x6c\x65\x2d\x62\x61\x63\x6b\x67\x72\x6f\x75\x6e\x64\
+\x3d\x22\x6e\x65\x77\x20\x30\x20\x30\x20\x35\x31\x32\x20\x35\x31\
+\x32\x22\x20\x78\x6d\x6c\x3a\x73\x70\x61\x63\x65\x3d\x22\x70\x72\
+\x65\x73\x65\x72\x76\x65\x22\x3e\x0d\x0a\x3c\x67\x3e\x0d\x0a\x09\
+\x3c\x63\x69\x72\x63\x6c\x65\x20\x63\x78\x3d\x22\x32\x35\x36\x22\
+\x20\x63\x79\x3d\x22\x32\x38\x30\x22\x20\x72\x3d\x22\x36\x33\x22\
+\x2f\x3e\x0d\x0a\x09\x3c\x70\x61\x74\x68\x20\x64\x3d\x22\x4d\x34\
+\x34\x30\x2c\x39\x36\x68\x2d\x38\x38\x6c\x2d\x33\x32\x2d\x33\x32\
+\x48\x31\x39\x32\x6c\x2d\x33\x32\x2c\x33\x32\x48\x37\x32\x63\x2d\
+\x32\x32\x2e\x30\x39\x32\x2c\x30\x2d\x34\x30\x2c\x31\x37\x2e\x39\
+\x30\x38\x2d\x34\x30\x2c\x34\x30\x76\x32\x37\x32\x63\x30\x2c\x32\
+\x32\x2e\x30\x39\x32\x2c\x31\x37\x2e\x39\x30\x38\x2c\x34\x30\x2c\
+\x34\x30\x2c\x34\x30\x68\x33\x36\x38\x63\x32\x32\x2e\x30\x39\x32\
+\x2c\x30\x2c\x34\x30\x2d\x31\x37\x2e\x39\x30\x38\x2c\x34\x30\x2d\
+\x34\x30\x0d\x0a\x09\x09\x56\x31\x33\x36\x43\x34\x38\x30\x2c\x31\
+\x31\x33\x2e\x39\x30\x38\x2c\x34\x36\x32\x2e\x30\x39\x32\x2c\x39\
+\x36\x2c\x34\x34\x30\x2c\x39\x36\x7a\x20\x4d\x32\x35\x36\x2c\x33\
+\x39\x32\x63\x2d\x36\x31\x2e\x38\x35\x35\x2c\x30\x2d\x31\x31\x32\
+\x2d\x35\x30\x2e\x31\x34\x35\x2d\x31\x31\x32\x2d\x31\x31\x32\x73\
+\x35\x30\x2e\x31\x34\x35\x2d\x31\x31\x32\x2c\x31\x31\x32\x2d\x31\
+\x31\x32\x73\x31\x31\x32\x2c\x35\x30\x2e\x31\x34\x35\x2c\x31\x31\
+\x32\x2c\x31\x31\x32\x0d\x0a\x09\x09\x53\x33\x31\x37\x2e\x38\x35\
+\x35\x2c\x33\x39\x32\x2c\x32\x35\x36\x2c\x33\x39\x32\x7a\x22\x2f\
+\x3e\x0d\x0a\x3c\x2f\x67\x3e\x0d\x0a\x3c\x2f\x73\x76\x67\x3e\x0d\
+\x0a\
+\x00\x00\x04\xa2\
+\x3c\
+\x3f\x78\x6d\x6c\x20\x76\x65\x72\x73\x69\x6f\x6e\x3d\x27\x31\x2e\
+\x30\x27\x20\x65\x6e\x63\x6f\x64\x69\x6e\x67\x3d\x27\x55\x54\x46\
+\x2d\x38\x27\x3f\x3e\x0a\x3c\x21\x2d\x2d\x20\x54\x68\x69\x73\x20\
+\x66\x69\x6c\x65\x20\x77\x61\x73\x20\x67\x65\x6e\x65\x72\x61\x74\
+\x65\x64\x20\x62\x79\x20\x64\x76\x69\x73\x76\x67\x6d\x20\x32\x2e\
+\x38\x20\x2d\x2d\x3e\x0a\x3c\x73\x76\x67\x20\x76\x65\x72\x73\x69\
+\x6f\x6e\x3d\x27\x31\x2e\x31\x27\x20\x78\x6d\x6c\x6e\x73\x3d\x27\
+\x68\x74\x74\x70\x3a\x2f\x2f\x77\x77\x77\x2e\x77\x33\x2e\x6f\x72\
+\x67\x2f\x32\x30\x30\x30\x2f\x73\x76\x67\x27\x20\x78\x6d\x6c\x6e\
+\x73\x3a\x78\x6c\x69\x6e\x6b\x3d\x27\x68\x74\x74\x70\x3a\x2f\x2f\
+\x77\x77\x77\x2e\x77\x33\x2e\x6f\x72\x67\x2f\x31\x39\x39\x39\x2f\
+\x78\x6c\x69\x6e\x6b\x27\x20\x77\x69\x64\x74\x68\x3d\x27\x36\x33\
+\x2e\x39\x39\x39\x36\x70\x74\x27\x20\x68\x65\x69\x67\x68\x74\x3d\
+\x27\x36\x33\x2e\x39\x39\x39\x37\x70\x74\x27\x20\x76\x69\x65\x77\
+\x42\x6f\x78\x3d\x27\x35\x36\x2e\x34\x30\x39\x34\x20\x35\x33\x2e\
+\x38\x35\x38\x33\x20\x36\x33\x2e\x39\x39\x39\x36\x20\x36\x33\x2e\
+\x39\x39\x39\x37\x27\x3e\x0a\x3c\x67\x20\x69\x64\x3d\x27\x70\x61\
+\x67\x65\x31\x27\x3e\x0a\x3c\x67\x20\x74\x72\x61\x6e\x73\x66\x6f\
+\x72\x6d\x3d\x27\x6d\x61\x74\x72\x69\x78\x28\x30\x2e\x39\x39\x36\
+\x32\x36\x34\x20\x30\x20\x30\x20\x30\x2e\x39\x39\x36\x32\x36\x34\
+\x20\x35\x38\x2e\x34\x36\x36\x39\x20\x31\x31\x37\x2e\x38\x35\x38\
+\x29\x27\x3e\x0a\x3c\x70\x61\x74\x68\x20\x64\x3d\x27\x4d\x20\x33\
+\x2e\x39\x35\x37\x33\x35\x20\x2d\x33\x32\x2e\x31\x32\x43\x20\x34\
+\x2e\x31\x35\x35\x35\x36\x20\x2d\x33\x39\x2e\x32\x37\x34\x35\x20\
+\x36\x2e\x39\x38\x34\x37\x33\x20\x2d\x34\x36\x2e\x31\x30\x34\x37\
+\x20\x31\x31\x2e\x39\x30\x33\x36\x20\x2d\x35\x31\x2e\x33\x30\x33\
+\x39\x43\x20\x32\x37\x2e\x34\x34\x31\x31\x20\x2d\x36\x37\x2e\x37\
+\x32\x36\x39\x20\x35\x33\x2e\x33\x30\x32\x31\x20\x2d\x36\x31\x2e\
+\x35\x34\x30\x35\x20\x35\x36\x2e\x31\x35\x32\x33\x20\x2d\x34\x32\
+\x2e\x35\x30\x32\x32\x43\x20\x35\x37\x2e\x36\x32\x37\x20\x2d\x33\
+\x32\x2e\x36\x35\x31\x39\x20\x35\x30\x2e\x35\x38\x35\x36\x20\x2d\
+\x32\x33\x2e\x35\x36\x32\x31\x20\x34\x30\x2e\x36\x37\x39\x34\x20\
+\x2d\x32\x32\x2e\x35\x32\x38\x31\x27\x20\x66\x69\x6c\x6c\x3d\x27\
+\x6e\x6f\x6e\x65\x27\x20\x73\x74\x72\x6f\x6b\x65\x3d\x27\x23\x30\
+\x30\x30\x30\x30\x30\x27\x20\x73\x74\x72\x6f\x6b\x65\x2d\x6c\x69\
+\x6e\x65\x63\x61\x70\x3d\x27\x72\x6f\x75\x6e\x64\x27\x20\x73\x74\
+\x72\x6f\x6b\x65\x2d\x6c\x69\x6e\x65\x6a\x6f\x69\x6e\x3d\x27\x72\
+\x6f\x75\x6e\x64\x27\x20\x73\x74\x72\x6f\x6b\x65\x2d\x6d\x69\x74\
+\x65\x72\x6c\x69\x6d\x69\x74\x3d\x27\x31\x30\x2e\x30\x33\x37\x35\
+\x27\x20\x73\x74\x72\x6f\x6b\x65\x2d\x77\x69\x64\x74\x68\x3d\x27\
+\x32\x2e\x35\x30\x39\x33\x37\x27\x2f\x3e\x0a\x3c\x2f\x67\x3e\x0a\
+\x3c\x67\x20\x74\x72\x61\x6e\x73\x66\x6f\x72\x6d\x3d\x27\x6d\x61\
+\x74\x72\x69\x78\x28\x30\x2e\x39\x39\x36\x32\x36\x34\x20\x30\x20\
+\x30\x20\x30\x2e\x39\x39\x36\x32\x36\x34\x20\x35\x38\x2e\x34\x36\
+\x36\x39\x20\x31\x31\x37\x2e\x38\x35\x38\x29\x27\x3e\x0a\x3c\x63\
+\x69\x72\x63\x6c\x65\x20\x63\x78\x3d\x27\x33\x2e\x39\x35\x37\x33\
+\x35\x27\x20\x63\x79\x3d\x27\x2d\x33\x32\x2e\x31\x32\x27\x20\x66\
+\x69\x6c\x6c\x3d\x27\x23\x30\x30\x30\x30\x30\x30\x27\x20\x72\x3d\
+\x27\x36\x2e\x30\x32\x32\x35\x27\x2f\x3e\x0a\x3c\x2f\x67\x3e\x0a\
+\x3c\x67\x20\x74\x72\x61\x6e\x73\x66\x6f\x72\x6d\x3d\x27\x6d\x61\
+\x74\x72\x69\x78\x28\x30\x2e\x39\x39\x36\x32\x36\x34\x20\x30\x20\
+\x30\x20\x30\x2e\x39\x39\x36\x32\x36\x34\x20\x35\x38\x2e\x34\x36\
+\x36\x39\x20\x31\x31\x37\x2e\x38\x35\x38\x29\x27\x3e\x0a\x3c\x63\
+\x69\x72\x63\x6c\x65\x20\x63\x78\x3d\x27\x31\x31\x2e\x39\x30\x33\
+\x36\x27\x20\x63\x79\x3d\x27\x2d\x35\x31\x2e\x33\x30\x33\x39\x27\
+\x20\x66\x69\x6c\x6c\x3d\x27\x23\x30\x30\x30\x30\x30\x30\x27\x20\
+\x72\x3d\x27\x36\x2e\x30\x32\x32\x35\x27\x2f\x3e\x0a\x3c\x2f\x67\
+\x3e\x0a\x3c\x67\x20\x74\x72\x61\x6e\x73\x66\x6f\x72\x6d\x3d\x27\
+\x6d\x61\x74\x72\x69\x78\x28\x30\x2e\x39\x39\x36\x32\x36\x34\x20\
+\x30\x20\x30\x20\x30\x2e\x39\x39\x36\x32\x36\x34\x20\x35\x38\x2e\
+\x34\x36\x36\x39\x20\x31\x31\x37\x2e\x38\x35\x38\x29\x27\x3e\x0a\
+\x3c\x63\x69\x72\x63\x6c\x65\x20\x63\x78\x3d\x27\x35\x36\x2e\x31\
+\x35\x32\x33\x27\x20\x63\x79\x3d\x27\x2d\x34\x32\x2e\x35\x30\x32\
+\x32\x27\x20\x66\x69\x6c\x6c\x3d\x27\x23\x30\x30\x30\x30\x30\x30\
+\x27\x20\x72\x3d\x27\x36\x2e\x30\x32\x32\x35\x27\x2f\x3e\x0a\x3c\
+\x2f\x67\x3e\x0a\x3c\x67\x20\x74\x72\x61\x6e\x73\x66\x6f\x72\x6d\
+\x3d\x27\x6d\x61\x74\x72\x69\x78\x28\x30\x2e\x39\x39\x36\x32\x36\
+\x34\x20\x30\x20\x30\x20\x30\x2e\x39\x39\x36\x32\x36\x34\x20\x35\
+\x38\x2e\x34\x36\x36\x39\x20\x31\x31\x37\x2e\x38\x35\x38\x29\x27\
+\x3e\x0a\x3c\x63\x69\x72\x63\x6c\x65\x20\x63\x78\x3d\x27\x34\x30\
+\x2e\x36\x37\x39\x34\x27\x20\x63\x79\x3d\x27\x2d\x32\x32\x2e\x35\
+\x32\x38\x31\x27\x20\x66\x69\x6c\x6c\x3d\x27\x23\x30\x30\x30\x30\
+\x30\x30\x27\x20\x72\x3d\x27\x36\x2e\x30\x32\x32\x35\x27\x2f\x3e\
+\x0a\x3c\x2f\x67\x3e\x0a\x3c\x2f\x67\x3e\x0a\x3c\x2f\x73\x76\x67\
+\x3e\
+\x00\x00\x04\x3d\
+\x3c\
+\x3f\x78\x6d\x6c\x20\x76\x65\x72\x73\x69\x6f\x6e\x3d\x27\x31\x2e\
+\x30\x27\x20\x65\x6e\x63\x6f\x64\x69\x6e\x67\x3d\x27\x55\x54\x46\
+\x2d\x38\x27\x3f\x3e\x0a\x3c\x21\x2d\x2d\x20\x54\x68\x69\x73\x20\
+\x66\x69\x6c\x65\x20\x77\x61\x73\x20\x67\x65\x6e\x65\x72\x61\x74\
+\x65\x64\x20\x62\x79\x20\x64\x76\x69\x73\x76\x67\x6d\x20\x32\x2e\
+\x38\x20\x2d\x2d\x3e\x0a\x3c\x73\x76\x67\x20\x76\x65\x72\x73\x69\
+\x6f\x6e\x3d\x27\x31\x2e\x31\x27\x20\x78\x6d\x6c\x6e\x73\x3d\x27\
+\x68\x74\x74\x70\x3a\x2f\x2f\x77\x77\x77\x2e\x77\x33\x2e\x6f\x72\
+\x67\x2f\x32\x30\x30\x30\x2f\x73\x76\x67\x27\x20\x78\x6d\x6c\x6e\
+\x73\x3a\x78\x6c\x69\x6e\x6b\x3d\x27\x68\x74\x74\x70\x3a\x2f\x2f\
+\x77\x77\x77\x2e\x77\x33\x2e\x6f\x72\x67\x2f\x31\x39\x39\x39\x2f\
+\x78\x6c\x69\x6e\x6b\x27\x20\x77\x69\x64\x74\x68\x3d\x27\x36\x33\
+\x2e\x39\x39\x39\x36\x70\x74\x27\x20\x68\x65\x69\x67\x68\x74\x3d\
+\x27\x36\x33\x2e\x39\x39\x39\x37\x70\x74\x27\x20\x76\x69\x65\x77\
+\x42\x6f\x78\x3d\x27\x35\x36\x2e\x34\x30\x39\x34\x20\x35\x33\x2e\
+\x38\x35\x38\x33\x20\x36\x33\x2e\x39\x39\x39\x36\x20\x36\x33\x2e\
+\x39\x39\x39\x37\x27\x3e\x0a\x3c\x67\x20\x69\x64\x3d\x27\x70\x61\
+\x67\x65\x31\x27\x3e\x0a\x3c\x67\x20\x74\x72\x61\x6e\x73\x66\x6f\
+\x72\x6d\x3d\x27\x6d\x61\x74\x72\x69\x78\x28\x30\x2e\x39\x39\x36\
+\x32\x36\x34\x20\x30\x20\x30\x20\x30\x2e\x39\x39\x36\x32\x36\x34\
+\x20\x35\x38\x2e\x34\x36\x36\x39\x20\x31\x31\x37\x2e\x38\x35\x38\
+\x29\x27\x3e\x0a\x3c\x70\x61\x74\x68\x20\x64\x3d\x27\x4d\x20\x33\
+\x2e\x39\x35\x37\x33\x35\x20\x2d\x33\x32\x2e\x31\x32\x4c\x20\x31\
+\x31\x2e\x39\x30\x33\x36\x20\x2d\x35\x31\x2e\x33\x30\x33\x39\x4c\
+\x20\x35\x36\x2e\x31\x35\x32\x33\x20\x2d\x34\x32\x2e\x35\x30\x32\
+\x32\x4c\x20\x34\x30\x2e\x36\x37\x39\x34\x20\x2d\x32\x32\x2e\x35\
+\x32\x38\x31\x27\x20\x66\x69\x6c\x6c\x3d\x27\x6e\x6f\x6e\x65\x27\
+\x20\x73\x74\x72\x6f\x6b\x65\x3d\x27\x23\x30\x30\x30\x30\x30\x30\
+\x27\x20\x73\x74\x72\x6f\x6b\x65\x2d\x6c\x69\x6e\x65\x63\x61\x70\
+\x3d\x27\x72\x6f\x75\x6e\x64\x27\x20\x73\x74\x72\x6f\x6b\x65\x2d\
+\x6c\x69\x6e\x65\x6a\x6f\x69\x6e\x3d\x27\x72\x6f\x75\x6e\x64\x27\
+\x20\x73\x74\x72\x6f\x6b\x65\x2d\x6d\x69\x74\x65\x72\x6c\x69\x6d\
+\x69\x74\x3d\x27\x31\x30\x2e\x30\x33\x37\x35\x27\x20\x73\x74\x72\
+\x6f\x6b\x65\x2d\x77\x69\x64\x74\x68\x3d\x27\x32\x2e\x35\x30\x39\
+\x33\x37\x27\x2f\x3e\x0a\x3c\x2f\x67\x3e\x0a\x3c\x67\x20\x74\x72\
\x61\x6e\x73\x66\x6f\x72\x6d\x3d\x27\x6d\x61\x74\x72\x69\x78\x28\
-\x32\x34\x20\x30\x20\x30\x20\x32\x34\x20\x30\x20\x30\x29\x27\x3e\
-\x0d\x0a\x3c\x70\x61\x74\x68\x20\x64\x3d\x22\x4d\x31\x31\x2c\x31\
-\x30\x4c\x38\x2e\x36\x39\x38\x2c\x37\x2e\x34\x39\x34\x63\x2d\x30\
-\x2e\x31\x39\x36\x2d\x30\x2e\x31\x39\x38\x2d\x30\x2e\x31\x39\x36\
-\x2d\x30\x2e\x35\x31\x39\x2c\x30\x2d\x30\x2e\x37\x31\x38\x63\x30\
-\x2e\x31\x39\x36\x2d\x30\x2e\x31\x39\x37\x2c\x30\x2e\x35\x31\x35\
-\x2d\x30\x2e\x31\x39\x37\x2c\x30\x2e\x37\x31\x2c\x30\x6c\x32\x2e\
-\x38\x30\x37\x2c\x32\x2e\x38\x36\x34\x0d\x0a\x09\x63\x30\x2e\x31\
-\x39\x36\x2c\x30\x2e\x31\x39\x39\x2c\x30\x2e\x31\x39\x36\x2c\x30\
-\x2e\x35\x32\x2c\x30\x2c\x30\x2e\x37\x31\x37\x6c\x2d\x32\x2e\x38\
-\x30\x37\x2c\x32\x2e\x38\x36\x34\x63\x2d\x30\x2e\x31\x39\x35\x2c\
-\x30\x2e\x31\x39\x39\x2d\x30\x2e\x35\x31\x34\x2c\x30\x2e\x31\x39\
-\x38\x2d\x30\x2e\x37\x31\x2c\x30\x63\x2d\x30\x2e\x31\x39\x36\x2d\
-\x30\x2e\x31\x39\x37\x2d\x30\x2e\x31\x39\x36\x2d\x30\x2e\x35\x31\
-\x38\x2c\x30\x2d\x30\x2e\x37\x31\x37\x4c\x31\x31\x2c\x31\x30\x7a\
-\x20\x4d\x31\x30\x2c\x30\x2e\x34\x0d\x0a\x09\x63\x35\x2e\x33\x30\
-\x32\x2c\x30\x2c\x39\x2e\x36\x2c\x34\x2e\x32\x39\x38\x2c\x39\x2e\
-\x36\x2c\x39\x2e\x36\x63\x30\x2c\x35\x2e\x33\x30\x33\x2d\x34\x2e\
-\x32\x39\x38\x2c\x39\x2e\x36\x2d\x39\x2e\x36\x2c\x39\x2e\x36\x53\
-\x30\x2e\x34\x2c\x31\x35\x2e\x33\x30\x33\x2c\x30\x2e\x34\x2c\x31\
-\x30\x43\x30\x2e\x34\x2c\x34\x2e\x36\x39\x38\x2c\x34\x2e\x36\x39\
-\x38\x2c\x30\x2e\x34\x2c\x31\x30\x2c\x30\x2e\x34\x7a\x20\x4d\x31\
-\x30\x2c\x31\x38\x2e\x33\x35\x34\x0d\x0a\x09\x63\x34\x2e\x36\x31\
-\x33\x2c\x30\x2c\x38\x2e\x33\x35\x34\x2d\x33\x2e\x37\x34\x2c\x38\
-\x2e\x33\x35\x34\x2d\x38\x2e\x33\x35\x34\x63\x30\x2d\x34\x2e\x36\
-\x31\x34\x2d\x33\x2e\x37\x34\x31\x2d\x38\x2e\x33\x35\x34\x2d\x38\
-\x2e\x33\x35\x34\x2d\x38\x2e\x33\x35\x34\x63\x2d\x34\x2e\x36\x31\
-\x35\x2c\x30\x2d\x38\x2e\x33\x35\x34\x2c\x33\x2e\x37\x34\x2d\x38\
-\x2e\x33\x35\x34\x2c\x38\x2e\x33\x35\x34\x0d\x0a\x09\x43\x31\x2e\
-\x36\x34\x35\x2c\x31\x34\x2e\x36\x31\x34\x2c\x35\x2e\x33\x38\x35\
-\x2c\x31\x38\x2e\x33\x35\x34\x2c\x31\x30\x2c\x31\x38\x2e\x33\x35\
-\x34\x7a\x22\x2f\x3e\x0d\x0a\x3c\x2f\x67\x3e\x0d\x0a\x3c\x2f\x73\
-\x76\x67\x3e\x0d\x0a\
+\x30\x2e\x39\x39\x36\x32\x36\x34\x20\x30\x20\x30\x20\x30\x2e\x39\
+\x39\x36\x32\x36\x34\x20\x35\x38\x2e\x34\x36\x36\x39\x20\x31\x31\
+\x37\x2e\x38\x35\x38\x29\x27\x3e\x0a\x3c\x63\x69\x72\x63\x6c\x65\
+\x20\x63\x78\x3d\x27\x33\x2e\x39\x35\x37\x33\x35\x27\x20\x63\x79\
+\x3d\x27\x2d\x33\x32\x2e\x31\x32\x27\x20\x66\x69\x6c\x6c\x3d\x27\
+\x23\x30\x30\x30\x30\x30\x30\x27\x20\x72\x3d\x27\x36\x2e\x30\x32\
+\x32\x35\x27\x2f\x3e\x0a\x3c\x2f\x67\x3e\x0a\x3c\x67\x20\x74\x72\
+\x61\x6e\x73\x66\x6f\x72\x6d\x3d\x27\x6d\x61\x74\x72\x69\x78\x28\
+\x30\x2e\x39\x39\x36\x32\x36\x34\x20\x30\x20\x30\x20\x30\x2e\x39\
+\x39\x36\x32\x36\x34\x20\x35\x38\x2e\x34\x36\x36\x39\x20\x31\x31\
+\x37\x2e\x38\x35\x38\x29\x27\x3e\x0a\x3c\x63\x69\x72\x63\x6c\x65\
+\x20\x63\x78\x3d\x27\x31\x31\x2e\x39\x30\x33\x36\x27\x20\x63\x79\
+\x3d\x27\x2d\x35\x31\x2e\x33\x30\x33\x39\x27\x20\x66\x69\x6c\x6c\
+\x3d\x27\x23\x30\x30\x30\x30\x30\x30\x27\x20\x72\x3d\x27\x36\x2e\
+\x30\x32\x32\x35\x27\x2f\x3e\x0a\x3c\x2f\x67\x3e\x0a\x3c\x67\x20\
+\x74\x72\x61\x6e\x73\x66\x6f\x72\x6d\x3d\x27\x6d\x61\x74\x72\x69\
+\x78\x28\x30\x2e\x39\x39\x36\x32\x36\x34\x20\x30\x20\x30\x20\x30\
+\x2e\x39\x39\x36\x32\x36\x34\x20\x35\x38\x2e\x34\x36\x36\x39\x20\
+\x31\x31\x37\x2e\x38\x35\x38\x29\x27\x3e\x0a\x3c\x63\x69\x72\x63\
+\x6c\x65\x20\x63\x78\x3d\x27\x35\x36\x2e\x31\x35\x32\x33\x27\x20\
+\x63\x79\x3d\x27\x2d\x34\x32\x2e\x35\x30\x32\x32\x27\x20\x66\x69\
+\x6c\x6c\x3d\x27\x23\x30\x30\x30\x30\x30\x30\x27\x20\x72\x3d\x27\
+\x36\x2e\x30\x32\x32\x35\x27\x2f\x3e\x0a\x3c\x2f\x67\x3e\x0a\x3c\
+\x67\x20\x74\x72\x61\x6e\x73\x66\x6f\x72\x6d\x3d\x27\x6d\x61\x74\
+\x72\x69\x78\x28\x30\x2e\x39\x39\x36\x32\x36\x34\x20\x30\x20\x30\
+\x20\x30\x2e\x39\x39\x36\x32\x36\x34\x20\x35\x38\x2e\x34\x36\x36\
+\x39\x20\x31\x31\x37\x2e\x38\x35\x38\x29\x27\x3e\x0a\x3c\x63\x69\
+\x72\x63\x6c\x65\x20\x63\x78\x3d\x27\x34\x30\x2e\x36\x37\x39\x34\
+\x27\x20\x63\x79\x3d\x27\x2d\x32\x32\x2e\x35\x32\x38\x31\x27\x20\
+\x66\x69\x6c\x6c\x3d\x27\x23\x30\x30\x30\x30\x30\x30\x27\x20\x72\
+\x3d\x27\x36\x2e\x30\x32\x32\x35\x27\x2f\x3e\x0a\x3c\x2f\x67\x3e\
+\x0a\x3c\x2f\x67\x3e\x0a\x3c\x2f\x73\x76\x67\x3e\
\x00\x00\x02\xf2\
\x3c\
\x3f\x78\x6d\x6c\x20\x76\x65\x72\x73\x69\x6f\x6e\x3d\x22\x31\x2e\
@@ -124,6 +433,166 @@
\x35\x39\x39\x2c\x31\x30\x2c\x31\x37\x2e\x35\x39\x39\x7a\x22\x2f\
\x3e\x0d\x0a\x3c\x2f\x67\x3e\x0d\x0a\x3c\x2f\x73\x76\x67\x3e\x0d\
\x0a\
+\x00\x00\x02\x7d\
+\x3c\
+\x3f\x78\x6d\x6c\x20\x76\x65\x72\x73\x69\x6f\x6e\x3d\x22\x31\x2e\
+\x30\x22\x20\x65\x6e\x63\x6f\x64\x69\x6e\x67\x3d\x22\x75\x74\x66\
+\x2d\x38\x22\x3f\x3e\x0d\x0a\x3c\x21\x2d\x2d\x20\x47\x65\x6e\x65\
+\x72\x61\x74\x6f\x72\x3a\x20\x41\x64\x6f\x62\x65\x20\x49\x6c\x6c\
+\x75\x73\x74\x72\x61\x74\x6f\x72\x20\x31\x36\x2e\x32\x2e\x31\x2c\
+\x20\x53\x56\x47\x20\x45\x78\x70\x6f\x72\x74\x20\x50\x6c\x75\x67\
+\x2d\x49\x6e\x20\x2e\x20\x53\x56\x47\x20\x56\x65\x72\x73\x69\x6f\
+\x6e\x3a\x20\x36\x2e\x30\x30\x20\x42\x75\x69\x6c\x64\x20\x30\x29\
+\x20\x20\x2d\x2d\x3e\x0d\x0a\x3c\x21\x44\x4f\x43\x54\x59\x50\x45\
+\x20\x73\x76\x67\x20\x50\x55\x42\x4c\x49\x43\x20\x22\x2d\x2f\x2f\
+\x57\x33\x43\x2f\x2f\x44\x54\x44\x20\x53\x56\x47\x20\x31\x2e\x31\
+\x2f\x2f\x45\x4e\x22\x20\x22\x68\x74\x74\x70\x3a\x2f\x2f\x77\x77\
+\x77\x2e\x77\x33\x2e\x6f\x72\x67\x2f\x47\x72\x61\x70\x68\x69\x63\
+\x73\x2f\x53\x56\x47\x2f\x31\x2e\x31\x2f\x44\x54\x44\x2f\x73\x76\
+\x67\x31\x31\x2e\x64\x74\x64\x22\x3e\x0d\x0a\x3c\x73\x76\x67\x20\
+\x76\x65\x72\x73\x69\x6f\x6e\x3d\x22\x31\x2e\x31\x22\x20\x69\x64\
+\x3d\x22\x4c\x61\x79\x65\x72\x5f\x31\x22\x20\x78\x6d\x6c\x6e\x73\
+\x3d\x22\x68\x74\x74\x70\x3a\x2f\x2f\x77\x77\x77\x2e\x77\x33\x2e\
+\x6f\x72\x67\x2f\x32\x30\x30\x30\x2f\x73\x76\x67\x22\x20\x78\x6d\
+\x6c\x6e\x73\x3a\x78\x6c\x69\x6e\x6b\x3d\x22\x68\x74\x74\x70\x3a\
+\x2f\x2f\x77\x77\x77\x2e\x77\x33\x2e\x6f\x72\x67\x2f\x31\x39\x39\
+\x39\x2f\x78\x6c\x69\x6e\x6b\x22\x20\x78\x3d\x22\x30\x70\x78\x22\
+\x20\x79\x3d\x22\x30\x70\x78\x22\x0d\x0a\x09\x20\x77\x69\x64\x74\
+\x68\x3d\x22\x35\x31\x32\x70\x78\x22\x20\x68\x65\x69\x67\x68\x74\
+\x3d\x22\x35\x31\x32\x70\x78\x22\x20\x76\x69\x65\x77\x42\x6f\x78\
+\x3d\x22\x30\x20\x30\x20\x35\x31\x32\x20\x35\x31\x32\x22\x20\x65\
+\x6e\x61\x62\x6c\x65\x2d\x62\x61\x63\x6b\x67\x72\x6f\x75\x6e\x64\
+\x3d\x22\x6e\x65\x77\x20\x30\x20\x30\x20\x35\x31\x32\x20\x35\x31\
+\x32\x22\x20\x78\x6d\x6c\x3a\x73\x70\x61\x63\x65\x3d\x22\x70\x72\
+\x65\x73\x65\x72\x76\x65\x22\x3e\x0d\x0a\x3c\x67\x20\x69\x64\x3d\
+\x22\x49\x63\x6f\x6e\x5f\x38\x5f\x22\x3e\x0d\x0a\x09\x3c\x67\x3e\
+\x0d\x0a\x09\x09\x3c\x70\x61\x74\x68\x20\x64\x3d\x22\x4d\x34\x32\
+\x37\x2c\x32\x33\x34\x2e\x36\x32\x35\x48\x31\x36\x37\x2e\x32\x39\
+\x36\x6c\x31\x31\x39\x2e\x37\x30\x32\x2d\x31\x31\x39\x2e\x37\x30\
+\x32\x4c\x32\x35\x36\x2c\x38\x35\x4c\x38\x35\x2c\x32\x35\x36\x6c\
+\x31\x37\x31\x2c\x31\x37\x31\x6c\x32\x39\x2e\x39\x32\x32\x2d\x32\
+\x39\x2e\x39\x32\x34\x4c\x31\x36\x37\x2e\x32\x39\x36\x2c\x32\x37\
+\x37\x2e\x33\x37\x35\x48\x34\x32\x37\x56\x32\x33\x34\x2e\x36\x32\
+\x35\x7a\x22\x2f\x3e\x0d\x0a\x09\x3c\x2f\x67\x3e\x0d\x0a\x3c\x2f\
+\x67\x3e\x0d\x0a\x3c\x2f\x73\x76\x67\x3e\x0d\x0a\
+\x00\x00\x02\xc9\
+\x3c\
+\x3f\x78\x6d\x6c\x20\x76\x65\x72\x73\x69\x6f\x6e\x3d\x22\x31\x2e\
+\x30\x22\x20\x65\x6e\x63\x6f\x64\x69\x6e\x67\x3d\x22\x75\x74\x66\
+\x2d\x38\x22\x3f\x3e\x0d\x0a\x3c\x21\x2d\x2d\x20\x47\x65\x6e\x65\
+\x72\x61\x74\x6f\x72\x3a\x20\x41\x64\x6f\x62\x65\x20\x49\x6c\x6c\
+\x75\x73\x74\x72\x61\x74\x6f\x72\x20\x31\x36\x2e\x32\x2e\x31\x2c\
+\x20\x53\x56\x47\x20\x45\x78\x70\x6f\x72\x74\x20\x50\x6c\x75\x67\
+\x2d\x49\x6e\x20\x2e\x20\x53\x56\x47\x20\x56\x65\x72\x73\x69\x6f\
+\x6e\x3a\x20\x36\x2e\x30\x30\x20\x42\x75\x69\x6c\x64\x20\x30\x29\
+\x20\x20\x2d\x2d\x3e\x0d\x0a\x3c\x21\x44\x4f\x43\x54\x59\x50\x45\
+\x20\x73\x76\x67\x20\x50\x55\x42\x4c\x49\x43\x20\x22\x2d\x2f\x2f\
+\x57\x33\x43\x2f\x2f\x44\x54\x44\x20\x53\x56\x47\x20\x31\x2e\x31\
+\x2f\x2f\x45\x4e\x22\x20\x22\x68\x74\x74\x70\x3a\x2f\x2f\x77\x77\
+\x77\x2e\x77\x33\x2e\x6f\x72\x67\x2f\x47\x72\x61\x70\x68\x69\x63\
+\x73\x2f\x53\x56\x47\x2f\x31\x2e\x31\x2f\x44\x54\x44\x2f\x73\x76\
+\x67\x31\x31\x2e\x64\x74\x64\x22\x3e\x0d\x0a\x3c\x73\x76\x67\x20\
+\x76\x65\x72\x73\x69\x6f\x6e\x3d\x22\x31\x2e\x31\x22\x20\x69\x64\
+\x3d\x22\x4c\x61\x79\x65\x72\x5f\x31\x22\x20\x78\x6d\x6c\x6e\x73\
+\x3d\x22\x68\x74\x74\x70\x3a\x2f\x2f\x77\x77\x77\x2e\x77\x33\x2e\
+\x6f\x72\x67\x2f\x32\x30\x30\x30\x2f\x73\x76\x67\x22\x20\x78\x6d\
+\x6c\x6e\x73\x3a\x78\x6c\x69\x6e\x6b\x3d\x22\x68\x74\x74\x70\x3a\
+\x2f\x2f\x77\x77\x77\x2e\x77\x33\x2e\x6f\x72\x67\x2f\x31\x39\x39\
+\x39\x2f\x78\x6c\x69\x6e\x6b\x22\x20\x78\x3d\x22\x30\x70\x78\x22\
+\x20\x79\x3d\x22\x30\x70\x78\x22\x0d\x0a\x09\x20\x77\x69\x64\x74\
+\x68\x3d\x22\x35\x31\x32\x70\x78\x22\x20\x68\x65\x69\x67\x68\x74\
+\x3d\x22\x35\x31\x32\x70\x78\x22\x20\x76\x69\x65\x77\x42\x6f\x78\
+\x3d\x22\x30\x20\x30\x20\x35\x31\x32\x20\x35\x31\x32\x22\x20\x73\
+\x74\x79\x6c\x65\x3d\x22\x65\x6e\x61\x62\x6c\x65\x2d\x62\x61\x63\
+\x6b\x67\x72\x6f\x75\x6e\x64\x3a\x6e\x65\x77\x20\x30\x20\x30\x20\
+\x35\x31\x32\x20\x35\x31\x32\x3b\x22\x20\x78\x6d\x6c\x3a\x73\x70\
+\x61\x63\x65\x3d\x22\x70\x72\x65\x73\x65\x72\x76\x65\x22\x3e\x0d\
+\x0a\x3c\x70\x6f\x6c\x79\x67\x6f\x6e\x20\x70\x6f\x69\x6e\x74\x73\
+\x3d\x22\x34\x38\x30\x2c\x32\x35\x36\x20\x33\x38\x34\x2c\x31\x36\
+\x30\x20\x33\x38\x34\x2c\x32\x33\x36\x20\x32\x37\x36\x2c\x32\x33\
+\x36\x20\x32\x37\x36\x2c\x31\x32\x38\x20\x33\x35\x32\x2c\x31\x32\
+\x38\x20\x32\x35\x36\x2c\x33\x32\x20\x31\x36\x30\x2c\x31\x32\x38\
+\x20\x32\x33\x36\x2c\x31\x32\x38\x20\x32\x33\x36\x2c\x32\x33\x36\
+\x20\x31\x32\x38\x2c\x32\x33\x36\x20\x31\x32\x38\x2c\x31\x36\x30\
+\x20\x33\x32\x2c\x32\x35\x36\x20\x31\x32\x38\x2c\x33\x35\x32\x20\
+\x0d\x0a\x09\x31\x32\x38\x2c\x32\x37\x36\x20\x32\x33\x36\x2c\x32\
+\x37\x36\x20\x32\x33\x36\x2c\x33\x38\x34\x20\x31\x36\x30\x2c\x33\
+\x38\x34\x20\x32\x35\x36\x2c\x34\x38\x30\x20\x33\x35\x32\x2c\x33\
+\x38\x34\x20\x32\x37\x35\x2e\x38\x2c\x33\x38\x34\x20\x32\x37\x35\
+\x2e\x34\x2c\x32\x37\x35\x2e\x35\x20\x33\x38\x34\x2c\x32\x37\x35\
+\x2e\x38\x20\x33\x38\x34\x2c\x33\x35\x32\x20\x22\x2f\x3e\x0d\x0a\
+\x3c\x2f\x73\x76\x67\x3e\x0d\x0a\
+\x00\x00\x04\x4e\
+\x3c\
+\x3f\x78\x6d\x6c\x20\x76\x65\x72\x73\x69\x6f\x6e\x3d\x27\x31\x2e\
+\x30\x27\x20\x65\x6e\x63\x6f\x64\x69\x6e\x67\x3d\x27\x55\x54\x46\
+\x2d\x38\x27\x3f\x3e\x0a\x3c\x21\x2d\x2d\x20\x54\x68\x69\x73\x20\
+\x66\x69\x6c\x65\x20\x77\x61\x73\x20\x67\x65\x6e\x65\x72\x61\x74\
+\x65\x64\x20\x62\x79\x20\x64\x76\x69\x73\x76\x67\x6d\x20\x32\x2e\
+\x38\x20\x2d\x2d\x3e\x0a\x3c\x73\x76\x67\x20\x76\x65\x72\x73\x69\
+\x6f\x6e\x3d\x27\x31\x2e\x31\x27\x20\x78\x6d\x6c\x6e\x73\x3d\x27\
+\x68\x74\x74\x70\x3a\x2f\x2f\x77\x77\x77\x2e\x77\x33\x2e\x6f\x72\
+\x67\x2f\x32\x30\x30\x30\x2f\x73\x76\x67\x27\x20\x78\x6d\x6c\x6e\
+\x73\x3a\x78\x6c\x69\x6e\x6b\x3d\x27\x68\x74\x74\x70\x3a\x2f\x2f\
+\x77\x77\x77\x2e\x77\x33\x2e\x6f\x72\x67\x2f\x31\x39\x39\x39\x2f\
+\x78\x6c\x69\x6e\x6b\x27\x20\x77\x69\x64\x74\x68\x3d\x27\x36\x33\
+\x2e\x39\x39\x39\x36\x70\x74\x27\x20\x68\x65\x69\x67\x68\x74\x3d\
+\x27\x36\x33\x2e\x39\x39\x39\x37\x70\x74\x27\x20\x76\x69\x65\x77\
+\x42\x6f\x78\x3d\x27\x35\x36\x2e\x34\x30\x39\x34\x20\x35\x33\x2e\
+\x38\x35\x38\x33\x20\x36\x33\x2e\x39\x39\x39\x36\x20\x36\x33\x2e\
+\x39\x39\x39\x37\x27\x3e\x0a\x3c\x67\x20\x69\x64\x3d\x27\x70\x61\
+\x67\x65\x31\x27\x3e\x0a\x3c\x67\x20\x74\x72\x61\x6e\x73\x66\x6f\
+\x72\x6d\x3d\x27\x6d\x61\x74\x72\x69\x78\x28\x30\x2e\x39\x39\x36\
+\x32\x36\x34\x20\x30\x20\x30\x20\x30\x2e\x39\x39\x36\x32\x36\x34\
+\x20\x35\x38\x2e\x34\x36\x36\x39\x20\x31\x31\x37\x2e\x38\x35\x38\
+\x29\x27\x3e\x0a\x3c\x70\x61\x74\x68\x20\x64\x3d\x27\x4d\x20\x33\
+\x2e\x39\x35\x37\x33\x35\x20\x2d\x33\x32\x2e\x31\x32\x4c\x20\x31\
+\x31\x2e\x39\x30\x33\x36\x20\x2d\x35\x31\x2e\x33\x30\x33\x39\x4c\
+\x20\x35\x36\x2e\x31\x35\x32\x33\x20\x2d\x34\x32\x2e\x35\x30\x32\
+\x32\x4c\x20\x34\x30\x2e\x36\x37\x39\x34\x20\x2d\x32\x32\x2e\x35\
+\x32\x38\x31\x4c\x20\x33\x2e\x39\x35\x37\x33\x35\x20\x2d\x33\x32\
+\x2e\x31\x32\x5a\x27\x20\x66\x69\x6c\x6c\x3d\x27\x6e\x6f\x6e\x65\
+\x27\x20\x73\x74\x72\x6f\x6b\x65\x3d\x27\x23\x30\x30\x30\x30\x30\
+\x30\x27\x20\x73\x74\x72\x6f\x6b\x65\x2d\x6c\x69\x6e\x65\x63\x61\
+\x70\x3d\x27\x72\x6f\x75\x6e\x64\x27\x20\x73\x74\x72\x6f\x6b\x65\
+\x2d\x6c\x69\x6e\x65\x6a\x6f\x69\x6e\x3d\x27\x72\x6f\x75\x6e\x64\
+\x27\x20\x73\x74\x72\x6f\x6b\x65\x2d\x6d\x69\x74\x65\x72\x6c\x69\
+\x6d\x69\x74\x3d\x27\x31\x30\x2e\x30\x33\x37\x35\x27\x20\x73\x74\
+\x72\x6f\x6b\x65\x2d\x77\x69\x64\x74\x68\x3d\x27\x32\x2e\x35\x30\
+\x39\x33\x37\x27\x2f\x3e\x0a\x3c\x2f\x67\x3e\x0a\x3c\x67\x20\x74\
+\x72\x61\x6e\x73\x66\x6f\x72\x6d\x3d\x27\x6d\x61\x74\x72\x69\x78\
+\x28\x30\x2e\x39\x39\x36\x32\x36\x34\x20\x30\x20\x30\x20\x30\x2e\
+\x39\x39\x36\x32\x36\x34\x20\x35\x38\x2e\x34\x36\x36\x39\x20\x31\
+\x31\x37\x2e\x38\x35\x38\x29\x27\x3e\x0a\x3c\x63\x69\x72\x63\x6c\
+\x65\x20\x63\x78\x3d\x27\x33\x2e\x39\x35\x37\x33\x35\x27\x20\x63\
+\x79\x3d\x27\x2d\x33\x32\x2e\x31\x32\x27\x20\x66\x69\x6c\x6c\x3d\
+\x27\x23\x30\x30\x30\x30\x30\x30\x27\x20\x72\x3d\x27\x36\x2e\x30\
+\x32\x32\x35\x27\x2f\x3e\x0a\x3c\x2f\x67\x3e\x0a\x3c\x67\x20\x74\
+\x72\x61\x6e\x73\x66\x6f\x72\x6d\x3d\x27\x6d\x61\x74\x72\x69\x78\
+\x28\x30\x2e\x39\x39\x36\x32\x36\x34\x20\x30\x20\x30\x20\x30\x2e\
+\x39\x39\x36\x32\x36\x34\x20\x35\x38\x2e\x34\x36\x36\x39\x20\x31\
+\x31\x37\x2e\x38\x35\x38\x29\x27\x3e\x0a\x3c\x63\x69\x72\x63\x6c\
+\x65\x20\x63\x78\x3d\x27\x31\x31\x2e\x39\x30\x33\x36\x27\x20\x63\
+\x79\x3d\x27\x2d\x35\x31\x2e\x33\x30\x33\x39\x27\x20\x66\x69\x6c\
+\x6c\x3d\x27\x23\x30\x30\x30\x30\x30\x30\x27\x20\x72\x3d\x27\x36\
+\x2e\x30\x32\x32\x35\x27\x2f\x3e\x0a\x3c\x2f\x67\x3e\x0a\x3c\x67\
+\x20\x74\x72\x61\x6e\x73\x66\x6f\x72\x6d\x3d\x27\x6d\x61\x74\x72\
+\x69\x78\x28\x30\x2e\x39\x39\x36\x32\x36\x34\x20\x30\x20\x30\x20\
+\x30\x2e\x39\x39\x36\x32\x36\x34\x20\x35\x38\x2e\x34\x36\x36\x39\
+\x20\x31\x31\x37\x2e\x38\x35\x38\x29\x27\x3e\x0a\x3c\x63\x69\x72\
+\x63\x6c\x65\x20\x63\x78\x3d\x27\x35\x36\x2e\x31\x35\x32\x33\x27\
+\x20\x63\x79\x3d\x27\x2d\x34\x32\x2e\x35\x30\x32\x32\x27\x20\x66\
+\x69\x6c\x6c\x3d\x27\x23\x30\x30\x30\x30\x30\x30\x27\x20\x72\x3d\
+\x27\x36\x2e\x30\x32\x32\x35\x27\x2f\x3e\x0a\x3c\x2f\x67\x3e\x0a\
+\x3c\x67\x20\x74\x72\x61\x6e\x73\x66\x6f\x72\x6d\x3d\x27\x6d\x61\
+\x74\x72\x69\x78\x28\x30\x2e\x39\x39\x36\x32\x36\x34\x20\x30\x20\
+\x30\x20\x30\x2e\x39\x39\x36\x32\x36\x34\x20\x35\x38\x2e\x34\x36\
+\x36\x39\x20\x31\x31\x37\x2e\x38\x35\x38\x29\x27\x3e\x0a\x3c\x63\
+\x69\x72\x63\x6c\x65\x20\x63\x78\x3d\x27\x34\x30\x2e\x36\x37\x39\
+\x34\x27\x20\x63\x79\x3d\x27\x2d\x32\x32\x2e\x35\x32\x38\x31\x27\
+\x20\x66\x69\x6c\x6c\x3d\x27\x23\x30\x30\x30\x30\x30\x30\x27\x20\
+\x72\x3d\x27\x36\x2e\x30\x32\x32\x35\x27\x2f\x3e\x0a\x3c\x2f\x67\
+\x3e\x0a\x3c\x2f\x67\x3e\x0a\x3c\x2f\x73\x76\x67\x3e\
\x00\x00\x01\x69\
\x3c\
\x73\x76\x67\x20\x78\x6d\x6c\x6e\x73\x3d\x22\x68\x74\x74\x70\x3a\
@@ -149,7 +618,7 @@
\x31\x20\x30\x20\x31\x20\x30\x20\x30\x2d\x32\x20\x31\x20\x31\x20\
\x30\x20\x30\x20\x30\x20\x30\x20\x32\x7a\x22\x2f\x3e\x3c\x2f\x67\
\x3e\x3c\x2f\x73\x76\x67\x3e\x0a\
-\x00\x00\x03\x46\
+\x00\x00\x05\xca\
\x3c\
\x3f\x78\x6d\x6c\x20\x76\x65\x72\x73\x69\x6f\x6e\x3d\x22\x31\x2e\
\x30\x22\x20\x65\x6e\x63\x6f\x64\x69\x6e\x67\x3d\x22\x75\x74\x66\
@@ -176,34 +645,211 @@
\x20\x79\x3d\x22\x30\x70\x78\x22\x0d\x0a\x09\x20\x77\x69\x64\x74\
\x68\x3d\x22\x35\x31\x32\x70\x78\x22\x20\x68\x65\x69\x67\x68\x74\
\x3d\x22\x35\x31\x32\x70\x78\x22\x20\x76\x69\x65\x77\x42\x6f\x78\
+\x3d\x22\x30\x20\x30\x20\x35\x31\x32\x20\x35\x31\x32\x22\x20\x65\
+\x6e\x61\x62\x6c\x65\x2d\x62\x61\x63\x6b\x67\x72\x6f\x75\x6e\x64\
+\x3d\x22\x6e\x65\x77\x20\x30\x20\x30\x20\x35\x31\x32\x20\x35\x31\
+\x32\x22\x20\x78\x6d\x6c\x3a\x73\x70\x61\x63\x65\x3d\x22\x70\x72\
+\x65\x73\x65\x72\x76\x65\x22\x3e\x0d\x0a\x3c\x70\x61\x74\x68\x20\
+\x64\x3d\x22\x4d\x34\x35\x30\x2e\x36\x37\x39\x2c\x32\x37\x33\x2e\
+\x35\x63\x2d\x31\x34\x2e\x35\x38\x35\x2d\x31\x34\x2e\x35\x37\x37\
+\x2d\x33\x36\x2e\x30\x35\x34\x2d\x31\x35\x2e\x38\x39\x2d\x35\x30\
+\x2e\x36\x33\x39\x2d\x31\x2e\x33\x31\x32\x6c\x2d\x34\x31\x2e\x36\
+\x38\x37\x2c\x34\x31\x2e\x36\x36\x34\x63\x2d\x31\x30\x2e\x38\x35\
+\x32\x2c\x31\x30\x2e\x38\x33\x36\x2d\x32\x33\x2e\x39\x33\x2c\x31\
+\x30\x2e\x38\x35\x39\x2d\x33\x31\x2e\x35\x36\x34\x2c\x31\x2e\x38\
+\x35\x32\x0d\x0a\x09\x63\x2d\x35\x2e\x30\x35\x37\x2d\x35\x2e\x39\
+\x36\x38\x2d\x33\x2e\x30\x36\x31\x2d\x32\x34\x2e\x33\x37\x34\x2d\
+\x31\x2e\x36\x34\x34\x2d\x33\x36\x2e\x30\x34\x39\x6c\x32\x30\x2e\
+\x39\x30\x37\x2d\x31\x37\x31\x2e\x38\x34\x39\x63\x31\x2e\x38\x36\
+\x37\x2d\x31\x35\x2e\x33\x35\x33\x2d\x39\x2e\x30\x37\x2d\x33\x30\
+\x2e\x31\x38\x35\x2d\x32\x34\x2e\x34\x33\x2d\x33\x32\x2e\x30\x35\
+\x31\x0d\x0a\x09\x63\x2d\x31\x35\x2e\x33\x35\x38\x2d\x31\x2e\x38\
+\x36\x37\x2d\x32\x39\x2e\x33\x32\x32\x2c\x39\x2e\x39\x33\x39\x2d\
+\x33\x31\x2e\x31\x39\x31\x2c\x32\x35\x2e\x32\x38\x39\x4c\x32\x36\
+\x37\x2e\x33\x37\x2c\x32\x33\x36\x2e\x30\x32\x31\x63\x2d\x31\x2e\
+\x32\x30\x35\x2c\x33\x2e\x33\x35\x38\x2d\x33\x2e\x37\x39\x2c\x33\
+\x2e\x39\x33\x38\x2d\x34\x2e\x30\x38\x31\x2d\x30\x2e\x35\x38\x32\
+\x4c\x32\x35\x35\x2e\x34\x34\x2c\x36\x30\x0d\x0a\x09\x63\x30\x2d\
+\x31\x35\x2e\x34\x36\x35\x2d\x31\x32\x2e\x35\x34\x32\x2d\x32\x38\
+\x2d\x32\x38\x2e\x30\x31\x34\x2d\x32\x38\x63\x2d\x31\x35\x2e\x34\
+\x37\x33\x2c\x30\x2d\x32\x38\x2e\x30\x31\x35\x2c\x31\x32\x2e\x35\
+\x33\x35\x2d\x32\x38\x2e\x30\x31\x35\x2c\x32\x38\x6c\x2d\x30\x2e\
+\x35\x35\x32\x2c\x31\x37\x36\x2e\x37\x35\x32\x63\x30\x2e\x31\x34\
+\x36\x2c\x32\x2e\x30\x34\x2d\x31\x2e\x36\x30\x34\x2c\x32\x2e\x36\
+\x32\x34\x2d\x31\x2e\x39\x32\x2c\x30\x2e\x32\x39\x34\x4c\x31\x37\
+\x32\x2e\x30\x31\x36\x2c\x39\x39\x2e\x30\x37\x37\x0d\x0a\x09\x63\
+\x2d\x32\x2e\x37\x35\x2d\x31\x35\x2e\x32\x31\x39\x2d\x31\x37\x2e\
+\x33\x32\x33\x2d\x32\x36\x2e\x32\x30\x33\x2d\x33\x32\x2e\x35\x34\
+\x38\x2d\x32\x33\x2e\x34\x35\x33\x63\x2d\x31\x35\x2e\x32\x32\x37\
+\x2c\x32\x2e\x37\x34\x38\x2d\x32\x35\x2e\x33\x33\x39\x2c\x31\x38\
+\x2e\x31\x38\x37\x2d\x32\x32\x2e\x35\x39\x31\x2c\x33\x33\x2e\x34\
+\x30\x33\x6c\x32\x32\x2e\x31\x39\x33\x2c\x31\x36\x31\x2e\x34\x35\
+\x35\x0d\x0a\x09\x63\x30\x2e\x30\x32\x33\x2c\x32\x2e\x38\x37\x32\
+\x2d\x30\x2e\x39\x34\x31\x2c\x34\x2e\x35\x31\x33\x2d\x32\x2e\x33\
+\x30\x38\x2c\x30\x2e\x38\x33\x31\x6c\x2d\x33\x33\x2e\x31\x30\x39\
+\x2d\x38\x38\x2e\x35\x31\x37\x63\x2d\x35\x2e\x31\x38\x2d\x31\x34\
+\x2e\x35\x37\x32\x2d\x32\x31\x2e\x31\x39\x36\x2d\x32\x33\x2e\x30\
+\x36\x35\x2d\x33\x35\x2e\x37\x37\x36\x2d\x31\x37\x2e\x38\x38\x39\
+\x0d\x0a\x09\x63\x2d\x31\x34\x2e\x35\x37\x39\x2c\x35\x2e\x31\x37\
+\x37\x2d\x32\x32\x2e\x32\x30\x31\x2c\x32\x32\x2e\x30\x36\x31\x2d\
+\x31\x37\x2e\x30\x32\x33\x2c\x33\x36\x2e\x36\x33\x31\x6c\x35\x38\
+\x2e\x30\x34\x32\x2c\x31\x38\x39\x2e\x36\x32\x35\x63\x30\x2e\x33\
+\x30\x33\x2c\x31\x2e\x30\x34\x36\x2c\x30\x2e\x36\x32\x34\x2c\x32\
+\x2e\x30\x38\x35\x2c\x30\x2e\x39\x35\x33\x2c\x33\x2e\x31\x31\x38\
+\x6c\x30\x2e\x31\x32\x31\x2c\x30\x2e\x33\x39\x0d\x0a\x09\x63\x30\
+\x2e\x30\x31\x31\x2c\x30\x2e\x30\x33\x31\x2c\x30\x2e\x30\x32\x35\
+\x2c\x30\x2e\x30\x35\x38\x2c\x30\x2e\x30\x33\x35\x2c\x30\x2e\x30\
+\x38\x38\x43\x31\x32\x36\x2e\x30\x37\x39\x2c\x34\x34\x34\x2e\x32\
+\x33\x33\x2c\x31\x37\x32\x2e\x35\x37\x2c\x34\x38\x30\x2c\x32\x32\
+\x37\x2e\x34\x32\x37\x2c\x34\x38\x30\x63\x33\x35\x2e\x31\x31\x36\
+\x2c\x30\x2c\x37\x31\x2e\x35\x39\x31\x2d\x31\x32\x2e\x33\x37\x38\
+\x2c\x39\x39\x2e\x33\x35\x37\x2d\x33\x33\x2e\x36\x37\x32\x0d\x0a\
+\x09\x63\x30\x2e\x30\x30\x31\x2c\x30\x2c\x30\x2e\x30\x30\x33\x2d\
+\x30\x2e\x30\x30\x32\x2c\x30\x2e\x30\x30\x33\x2d\x30\x2e\x30\x30\
+\x32\x63\x32\x39\x2e\x39\x39\x2d\x31\x38\x2e\x30\x35\x31\x2c\x31\
+\x32\x36\x2e\x30\x37\x31\x2d\x31\x32\x31\x2e\x33\x34\x37\x2c\x31\
+\x32\x36\x2e\x30\x37\x31\x2d\x31\x32\x31\x2e\x33\x34\x37\x43\x34\
+\x36\x37\x2e\x34\x34\x35\x2c\x33\x31\x30\x2e\x34\x30\x32\x2c\x34\
+\x36\x35\x2e\x32\x36\x36\x2c\x32\x38\x38\x2e\x30\x38\x2c\x34\x35\
+\x30\x2e\x36\x37\x39\x2c\x32\x37\x33\x2e\x35\x7a\x22\x2f\x3e\x0d\
+\x0a\x3c\x2f\x73\x76\x67\x3e\x0d\x0a\
+\x00\x00\x03\x26\
+\x3c\
+\x3f\x78\x6d\x6c\x20\x76\x65\x72\x73\x69\x6f\x6e\x3d\x22\x31\x2e\
+\x30\x22\x20\x65\x6e\x63\x6f\x64\x69\x6e\x67\x3d\x22\x75\x74\x66\
+\x2d\x38\x22\x3f\x3e\x0d\x0a\x3c\x21\x2d\x2d\x20\x47\x65\x6e\x65\
+\x72\x61\x74\x6f\x72\x3a\x20\x41\x64\x6f\x62\x65\x20\x49\x6c\x6c\
+\x75\x73\x74\x72\x61\x74\x6f\x72\x20\x31\x36\x2e\x32\x2e\x31\x2c\
+\x20\x53\x56\x47\x20\x45\x78\x70\x6f\x72\x74\x20\x50\x6c\x75\x67\
+\x2d\x49\x6e\x20\x2e\x20\x53\x56\x47\x20\x56\x65\x72\x73\x69\x6f\
+\x6e\x3a\x20\x36\x2e\x30\x30\x20\x42\x75\x69\x6c\x64\x20\x30\x29\
+\x20\x20\x2d\x2d\x3e\x0d\x0a\x3c\x21\x44\x4f\x43\x54\x59\x50\x45\
+\x20\x73\x76\x67\x20\x50\x55\x42\x4c\x49\x43\x20\x22\x2d\x2f\x2f\
+\x57\x33\x43\x2f\x2f\x44\x54\x44\x20\x53\x56\x47\x20\x31\x2e\x31\
+\x2f\x2f\x45\x4e\x22\x20\x22\x68\x74\x74\x70\x3a\x2f\x2f\x77\x77\
+\x77\x2e\x77\x33\x2e\x6f\x72\x67\x2f\x47\x72\x61\x70\x68\x69\x63\
+\x73\x2f\x53\x56\x47\x2f\x31\x2e\x31\x2f\x44\x54\x44\x2f\x73\x76\
+\x67\x31\x31\x2e\x64\x74\x64\x22\x3e\x0d\x0a\x3c\x73\x76\x67\x20\
+\x76\x65\x72\x73\x69\x6f\x6e\x3d\x22\x31\x2e\x31\x22\x20\x69\x64\
+\x3d\x22\x4c\x61\x79\x65\x72\x5f\x31\x22\x20\x78\x6d\x6c\x6e\x73\
+\x3d\x22\x68\x74\x74\x70\x3a\x2f\x2f\x77\x77\x77\x2e\x77\x33\x2e\
+\x6f\x72\x67\x2f\x32\x30\x30\x30\x2f\x73\x76\x67\x22\x20\x78\x6d\
+\x6c\x6e\x73\x3a\x78\x6c\x69\x6e\x6b\x3d\x22\x68\x74\x74\x70\x3a\
+\x2f\x2f\x77\x77\x77\x2e\x77\x33\x2e\x6f\x72\x67\x2f\x31\x39\x39\
+\x39\x2f\x78\x6c\x69\x6e\x6b\x22\x20\x78\x3d\x22\x30\x70\x78\x22\
+\x20\x79\x3d\x22\x30\x70\x78\x22\x0d\x0a\x09\x20\x77\x69\x64\x74\
+\x68\x3d\x22\x35\x31\x32\x70\x78\x22\x20\x68\x65\x69\x67\x68\x74\
+\x3d\x22\x35\x31\x32\x70\x78\x22\x20\x76\x69\x65\x77\x42\x6f\x78\
+\x3d\x22\x30\x20\x30\x20\x35\x31\x32\x20\x35\x31\x32\x22\x20\x65\
+\x6e\x61\x62\x6c\x65\x2d\x62\x61\x63\x6b\x67\x72\x6f\x75\x6e\x64\
+\x3d\x22\x6e\x65\x77\x20\x30\x20\x30\x20\x35\x31\x32\x20\x35\x31\
+\x32\x22\x20\x78\x6d\x6c\x3a\x73\x70\x61\x63\x65\x3d\x22\x70\x72\
+\x65\x73\x65\x72\x76\x65\x22\x3e\x0d\x0a\x3c\x67\x3e\x0d\x0a\x09\
+\x3c\x70\x61\x74\x68\x20\x64\x3d\x22\x4d\x32\x35\x36\x2c\x33\x38\
+\x38\x63\x2d\x37\x32\x2e\x35\x39\x37\x2c\x30\x2d\x31\x33\x32\x2d\
+\x35\x39\x2e\x34\x30\x35\x2d\x31\x33\x32\x2d\x31\x33\x32\x63\x30\
+\x2d\x37\x32\x2e\x36\x30\x31\x2c\x35\x39\x2e\x34\x30\x33\x2d\x31\
+\x33\x32\x2c\x31\x33\x32\x2d\x31\x33\x32\x63\x33\x36\x2e\x33\x2c\
+\x30\x2c\x36\x39\x2e\x32\x39\x39\x2c\x31\x35\x2e\x34\x2c\x39\x32\
+\x2e\x34\x30\x36\x2c\x33\x39\x2e\x36\x30\x31\x4c\x32\x37\x38\x2c\
+\x32\x33\x34\x68\x31\x35\x34\x56\x38\x30\x0d\x0a\x09\x09\x6c\x2d\
+\x35\x31\x2e\x36\x39\x38\x2c\x35\x31\x2e\x37\x30\x32\x43\x33\x34\
+\x38\x2e\x34\x30\x36\x2c\x39\x39\x2e\x37\x39\x38\x2c\x33\x30\x34\
+\x2e\x34\x30\x36\x2c\x38\x30\x2c\x32\x35\x36\x2c\x38\x30\x63\x2d\
+\x39\x36\x2e\x37\x39\x37\x2c\x30\x2d\x31\x37\x36\x2c\x37\x39\x2e\
+\x32\x30\x33\x2d\x31\x37\x36\x2c\x31\x37\x36\x73\x37\x38\x2e\x30\
+\x39\x34\x2c\x31\x37\x36\x2c\x31\x37\x36\x2c\x31\x37\x36\x0d\x0a\
+\x09\x09\x63\x38\x31\x2e\x30\x34\x35\x2c\x30\x2c\x31\x34\x38\x2e\
+\x32\x38\x37\x2d\x35\x34\x2e\x31\x33\x34\x2c\x31\x36\x39\x2e\x34\
+\x30\x31\x2d\x31\x32\x38\x48\x33\x37\x38\x2e\x38\x35\x43\x33\x36\
+\x30\x2e\x31\x30\x35\x2c\x33\x35\x33\x2e\x35\x36\x31\x2c\x33\x31\
+\x31\x2e\x37\x31\x32\x2c\x33\x38\x38\x2c\x32\x35\x36\x2c\x33\x38\
+\x38\x7a\x22\x2f\x3e\x0d\x0a\x3c\x2f\x67\x3e\x0d\x0a\x3c\x2f\x73\
+\x76\x67\x3e\x0d\x0a\
+\x00\x00\x02\x79\
+\x3c\
+\x3f\x78\x6d\x6c\x20\x76\x65\x72\x73\x69\x6f\x6e\x3d\x22\x31\x2e\
+\x30\x22\x20\x65\x6e\x63\x6f\x64\x69\x6e\x67\x3d\x22\x75\x74\x66\
+\x2d\x38\x22\x3f\x3e\x0d\x0a\x3c\x21\x2d\x2d\x20\x47\x65\x6e\x65\
+\x72\x61\x74\x6f\x72\x3a\x20\x41\x64\x6f\x62\x65\x20\x49\x6c\x6c\
+\x75\x73\x74\x72\x61\x74\x6f\x72\x20\x31\x36\x2e\x32\x2e\x31\x2c\
+\x20\x53\x56\x47\x20\x45\x78\x70\x6f\x72\x74\x20\x50\x6c\x75\x67\
+\x2d\x49\x6e\x20\x2e\x20\x53\x56\x47\x20\x56\x65\x72\x73\x69\x6f\
+\x6e\x3a\x20\x36\x2e\x30\x30\x20\x42\x75\x69\x6c\x64\x20\x30\x29\
+\x20\x20\x2d\x2d\x3e\x0d\x0a\x3c\x21\x44\x4f\x43\x54\x59\x50\x45\
+\x20\x73\x76\x67\x20\x50\x55\x42\x4c\x49\x43\x20\x22\x2d\x2f\x2f\
+\x57\x33\x43\x2f\x2f\x44\x54\x44\x20\x53\x56\x47\x20\x31\x2e\x31\
+\x2f\x2f\x45\x4e\x22\x20\x22\x68\x74\x74\x70\x3a\x2f\x2f\x77\x77\
+\x77\x2e\x77\x33\x2e\x6f\x72\x67\x2f\x47\x72\x61\x70\x68\x69\x63\
+\x73\x2f\x53\x56\x47\x2f\x31\x2e\x31\x2f\x44\x54\x44\x2f\x73\x76\
+\x67\x31\x31\x2e\x64\x74\x64\x22\x3e\x0d\x0a\x3c\x73\x76\x67\x20\
+\x76\x65\x72\x73\x69\x6f\x6e\x3d\x22\x31\x2e\x31\x22\x20\x69\x64\
+\x3d\x22\x4c\x61\x79\x65\x72\x5f\x31\x22\x20\x78\x6d\x6c\x6e\x73\
+\x3d\x22\x68\x74\x74\x70\x3a\x2f\x2f\x77\x77\x77\x2e\x77\x33\x2e\
+\x6f\x72\x67\x2f\x32\x30\x30\x30\x2f\x73\x76\x67\x22\x20\x78\x6d\
+\x6c\x6e\x73\x3a\x78\x6c\x69\x6e\x6b\x3d\x22\x68\x74\x74\x70\x3a\
+\x2f\x2f\x77\x77\x77\x2e\x77\x33\x2e\x6f\x72\x67\x2f\x31\x39\x39\
+\x39\x2f\x78\x6c\x69\x6e\x6b\x22\x20\x78\x3d\x22\x30\x70\x78\x22\
+\x20\x79\x3d\x22\x30\x70\x78\x22\x0d\x0a\x09\x20\x77\x69\x64\x74\
+\x68\x3d\x22\x35\x31\x32\x70\x78\x22\x20\x68\x65\x69\x67\x68\x74\
+\x3d\x22\x35\x31\x32\x70\x78\x22\x20\x76\x69\x65\x77\x42\x6f\x78\
+\x3d\x22\x30\x20\x30\x20\x35\x31\x32\x20\x35\x31\x32\x22\x20\x65\
+\x6e\x61\x62\x6c\x65\x2d\x62\x61\x63\x6b\x67\x72\x6f\x75\x6e\x64\
+\x3d\x22\x6e\x65\x77\x20\x30\x20\x30\x20\x35\x31\x32\x20\x35\x31\
+\x32\x22\x20\x78\x6d\x6c\x3a\x73\x70\x61\x63\x65\x3d\x22\x70\x72\
+\x65\x73\x65\x72\x76\x65\x22\x3e\x0d\x0a\x3c\x67\x20\x69\x64\x3d\
+\x22\x49\x63\x6f\x6e\x5f\x31\x5f\x22\x3e\x0d\x0a\x09\x3c\x67\x3e\
+\x0d\x0a\x09\x09\x3c\x67\x3e\x0d\x0a\x09\x09\x09\x3c\x70\x6f\x6c\
+\x79\x67\x6f\x6e\x20\x70\x6f\x69\x6e\x74\x73\x3d\x22\x31\x38\x36\
+\x2e\x33\x30\x31\x2c\x33\x33\x39\x2e\x38\x39\x33\x20\x39\x36\x2c\
+\x32\x34\x39\x2e\x34\x36\x31\x20\x36\x34\x2c\x32\x37\x39\x2e\x39\
+\x36\x38\x20\x31\x38\x36\x2e\x33\x30\x31\x2c\x34\x30\x32\x20\x34\
+\x34\x38\x2c\x31\x34\x30\x2e\x35\x30\x36\x20\x34\x31\x36\x2c\x31\
+\x31\x30\x20\x09\x09\x09\x22\x2f\x3e\x0d\x0a\x09\x09\x3c\x2f\x67\
+\x3e\x0d\x0a\x09\x3c\x2f\x67\x3e\x0d\x0a\x3c\x2f\x67\x3e\x0d\x0a\
+\x3c\x2f\x73\x76\x67\x3e\x0d\x0a\
+\x00\x00\x02\x7f\
+\x3c\
+\x3f\x78\x6d\x6c\x20\x76\x65\x72\x73\x69\x6f\x6e\x3d\x22\x31\x2e\
+\x30\x22\x20\x65\x6e\x63\x6f\x64\x69\x6e\x67\x3d\x22\x75\x74\x66\
+\x2d\x38\x22\x3f\x3e\x0d\x0a\x3c\x21\x2d\x2d\x20\x47\x65\x6e\x65\
+\x72\x61\x74\x6f\x72\x3a\x20\x41\x64\x6f\x62\x65\x20\x49\x6c\x6c\
+\x75\x73\x74\x72\x61\x74\x6f\x72\x20\x31\x36\x2e\x32\x2e\x31\x2c\
+\x20\x53\x56\x47\x20\x45\x78\x70\x6f\x72\x74\x20\x50\x6c\x75\x67\
+\x2d\x49\x6e\x20\x2e\x20\x53\x56\x47\x20\x56\x65\x72\x73\x69\x6f\
+\x6e\x3a\x20\x36\x2e\x30\x30\x20\x42\x75\x69\x6c\x64\x20\x30\x29\
+\x20\x20\x2d\x2d\x3e\x0d\x0a\x3c\x21\x44\x4f\x43\x54\x59\x50\x45\
+\x20\x73\x76\x67\x20\x50\x55\x42\x4c\x49\x43\x20\x22\x2d\x2f\x2f\
+\x57\x33\x43\x2f\x2f\x44\x54\x44\x20\x53\x56\x47\x20\x31\x2e\x31\
+\x2f\x2f\x45\x4e\x22\x20\x22\x68\x74\x74\x70\x3a\x2f\x2f\x77\x77\
+\x77\x2e\x77\x33\x2e\x6f\x72\x67\x2f\x47\x72\x61\x70\x68\x69\x63\
+\x73\x2f\x53\x56\x47\x2f\x31\x2e\x31\x2f\x44\x54\x44\x2f\x73\x76\
+\x67\x31\x31\x2e\x64\x74\x64\x22\x3e\x0d\x0a\x3c\x73\x76\x67\x20\
+\x76\x65\x72\x73\x69\x6f\x6e\x3d\x22\x31\x2e\x31\x22\x20\x69\x64\
+\x3d\x22\x4c\x61\x79\x65\x72\x5f\x31\x22\x20\x78\x6d\x6c\x6e\x73\
+\x3d\x22\x68\x74\x74\x70\x3a\x2f\x2f\x77\x77\x77\x2e\x77\x33\x2e\
+\x6f\x72\x67\x2f\x32\x30\x30\x30\x2f\x73\x76\x67\x22\x20\x78\x6d\
+\x6c\x6e\x73\x3a\x78\x6c\x69\x6e\x6b\x3d\x22\x68\x74\x74\x70\x3a\
+\x2f\x2f\x77\x77\x77\x2e\x77\x33\x2e\x6f\x72\x67\x2f\x31\x39\x39\
+\x39\x2f\x78\x6c\x69\x6e\x6b\x22\x20\x78\x3d\x22\x30\x70\x78\x22\
+\x20\x79\x3d\x22\x30\x70\x78\x22\x0d\x0a\x09\x20\x77\x69\x64\x74\
+\x68\x3d\x22\x35\x31\x32\x70\x78\x22\x20\x68\x65\x69\x67\x68\x74\
+\x3d\x22\x35\x31\x32\x70\x78\x22\x20\x76\x69\x65\x77\x42\x6f\x78\
\x3d\x22\x30\x20\x30\x20\x35\x31\x32\x20\x35\x31\x32\x22\x20\x73\
\x74\x79\x6c\x65\x3d\x22\x65\x6e\x61\x62\x6c\x65\x2d\x62\x61\x63\
\x6b\x67\x72\x6f\x75\x6e\x64\x3a\x6e\x65\x77\x20\x30\x20\x30\x20\
\x35\x31\x32\x20\x35\x31\x32\x3b\x22\x20\x78\x6d\x6c\x3a\x73\x70\
\x61\x63\x65\x3d\x22\x70\x72\x65\x73\x65\x72\x76\x65\x22\x3e\x0d\
-\x0a\x3c\x70\x61\x74\x68\x20\x64\x3d\x22\x4d\x34\x33\x37\x2e\x35\
-\x2c\x33\x38\x36\x2e\x36\x4c\x33\x30\x36\x2e\x39\x2c\x32\x35\x36\
-\x6c\x31\x33\x30\x2e\x36\x2d\x31\x33\x30\x2e\x36\x63\x31\x34\x2e\
-\x31\x2d\x31\x34\x2e\x31\x2c\x31\x34\x2e\x31\x2d\x33\x36\x2e\x38\
-\x2c\x30\x2d\x35\x30\x2e\x39\x63\x2d\x31\x34\x2e\x31\x2d\x31\x34\
-\x2e\x31\x2d\x33\x36\x2e\x38\x2d\x31\x34\x2e\x31\x2d\x35\x30\x2e\
-\x39\x2c\x30\x4c\x32\x35\x36\x2c\x32\x30\x35\x2e\x31\x4c\x31\x32\
-\x35\x2e\x34\x2c\x37\x34\x2e\x35\x0d\x0a\x09\x63\x2d\x31\x34\x2e\
-\x31\x2d\x31\x34\x2e\x31\x2d\x33\x36\x2e\x38\x2d\x31\x34\x2e\x31\
-\x2d\x35\x30\x2e\x39\x2c\x30\x63\x2d\x31\x34\x2e\x31\x2c\x31\x34\
-\x2e\x31\x2d\x31\x34\x2e\x31\x2c\x33\x36\x2e\x38\x2c\x30\x2c\x35\
-\x30\x2e\x39\x4c\x32\x30\x35\x2e\x31\x2c\x32\x35\x36\x4c\x37\x34\
-\x2e\x35\x2c\x33\x38\x36\x2e\x36\x63\x2d\x31\x34\x2e\x31\x2c\x31\
-\x34\x2e\x31\x2d\x31\x34\x2e\x31\x2c\x33\x36\x2e\x38\x2c\x30\x2c\
-\x35\x30\x2e\x39\x0d\x0a\x09\x63\x31\x34\x2e\x31\x2c\x31\x34\x2e\
-\x31\x2c\x33\x36\x2e\x38\x2c\x31\x34\x2e\x31\x2c\x35\x30\x2e\x39\
-\x2c\x30\x4c\x32\x35\x36\x2c\x33\x30\x36\x2e\x39\x6c\x31\x33\x30\
-\x2e\x36\x2c\x31\x33\x30\x2e\x36\x63\x31\x34\x2e\x31\x2c\x31\x34\
-\x2e\x31\x2c\x33\x36\x2e\x38\x2c\x31\x34\x2e\x31\x2c\x35\x30\x2e\
-\x39\x2c\x30\x43\x34\x35\x31\x2e\x35\x2c\x34\x32\x33\x2e\x34\x2c\
-\x34\x35\x31\x2e\x35\x2c\x34\x30\x30\x2e\x36\x2c\x34\x33\x37\x2e\
-\x35\x2c\x33\x38\x36\x2e\x36\x7a\x22\x2f\x3e\x0d\x0a\x3c\x2f\x73\
-\x76\x67\x3e\x0d\x0a\
+\x0a\x3c\x70\x6f\x6c\x79\x67\x6f\x6e\x20\x70\x6f\x69\x6e\x74\x73\
+\x3d\x22\x32\x38\x38\x2c\x39\x36\x20\x33\x33\x37\x2e\x39\x2c\x31\
+\x34\x35\x2e\x39\x20\x32\x37\x34\x2c\x32\x30\x39\x2e\x37\x20\x32\
+\x37\x34\x2c\x32\x30\x39\x2e\x37\x20\x31\x34\x35\x2e\x39\x2c\x33\
+\x33\x37\x2e\x39\x20\x39\x36\x2c\x32\x38\x38\x20\x39\x36\x2c\x34\
+\x31\x36\x20\x32\x32\x34\x2c\x34\x31\x36\x20\x31\x37\x34\x2e\x31\
+\x2c\x33\x36\x36\x2e\x31\x20\x33\x35\x37\x2e\x34\x2c\x31\x38\x32\
+\x2e\x39\x20\x33\x36\x36\x2e\x31\x2c\x31\x37\x34\x2e\x31\x20\x0d\
+\x0a\x09\x34\x31\x36\x2c\x32\x32\x34\x20\x34\x31\x36\x2c\x39\x36\
+\x20\x22\x2f\x3e\x0d\x0a\x3c\x2f\x73\x76\x67\x3e\x0d\x0a\
\x00\x00\x04\xca\
\x3c\
\x3f\x78\x6d\x6c\x20\x76\x65\x72\x73\x69\x6f\x6e\x3d\x22\x31\x2e\
@@ -283,104 +929,8 @@
\x36\x37\x2c\x37\x2e\x34\x37\x30\x34\x0a\x09\x48\x33\x2e\x33\x37\
\x33\x33\x4c\x37\x2e\x35\x2c\x33\x2e\x38\x39\x39\x33\x7a\x22\x2f\
\x3e\x0a\x3c\x2f\x73\x76\x67\x3e\x0a\
-\x00\x00\x05\xd4\
+\x00\x00\x02\xfc\
\x3c\
-\x3f\x78\x6d\x6c\x20\x76\x65\x72\x73\x69\x6f\x6e\x3d\x27\x31\x2e\
-\x30\x27\x20\x65\x6e\x63\x6f\x64\x69\x6e\x67\x3d\x27\x55\x54\x46\
-\x2d\x38\x27\x3f\x3e\x0a\x3c\x21\x2d\x2d\x20\x54\x68\x69\x73\x20\
-\x66\x69\x6c\x65\x20\x77\x61\x73\x20\x67\x65\x6e\x65\x72\x61\x74\
-\x65\x64\x20\x62\x79\x20\x64\x76\x69\x73\x76\x67\x6d\x20\x32\x2e\
-\x38\x20\x2d\x2d\x3e\x0a\x3c\x73\x76\x67\x20\x76\x65\x72\x73\x69\
-\x6f\x6e\x3d\x27\x31\x2e\x31\x27\x20\x78\x6d\x6c\x6e\x73\x3d\x27\
-\x68\x74\x74\x70\x3a\x2f\x2f\x77\x77\x77\x2e\x77\x33\x2e\x6f\x72\
-\x67\x2f\x32\x30\x30\x30\x2f\x73\x76\x67\x27\x20\x78\x6d\x6c\x6e\
-\x73\x3a\x78\x6c\x69\x6e\x6b\x3d\x27\x68\x74\x74\x70\x3a\x2f\x2f\
-\x77\x77\x77\x2e\x77\x33\x2e\x6f\x72\x67\x2f\x31\x39\x39\x39\x2f\
-\x78\x6c\x69\x6e\x6b\x27\x20\x77\x69\x64\x74\x68\x3d\x27\x36\x33\
-\x2e\x39\x39\x39\x36\x70\x74\x27\x20\x68\x65\x69\x67\x68\x74\x3d\
-\x27\x36\x33\x2e\x39\x39\x39\x37\x70\x74\x27\x20\x76\x69\x65\x77\
-\x42\x6f\x78\x3d\x27\x35\x36\x2e\x34\x30\x39\x34\x20\x35\x33\x2e\
-\x38\x35\x38\x33\x20\x36\x33\x2e\x39\x39\x39\x36\x20\x36\x33\x2e\
-\x39\x39\x39\x37\x27\x3e\x0a\x3c\x67\x20\x69\x64\x3d\x27\x70\x61\
-\x67\x65\x31\x27\x3e\x0a\x3c\x67\x20\x74\x72\x61\x6e\x73\x66\x6f\
-\x72\x6d\x3d\x27\x6d\x61\x74\x72\x69\x78\x28\x30\x2e\x39\x39\x36\
-\x32\x36\x34\x20\x30\x20\x30\x20\x30\x2e\x39\x39\x36\x32\x36\x34\
-\x20\x35\x36\x2e\x34\x30\x39\x34\x20\x31\x31\x37\x2e\x38\x35\x38\
-\x29\x27\x3e\x0a\x3c\x70\x61\x74\x68\x20\x64\x3d\x27\x4d\x20\x35\
-\x34\x2e\x38\x39\x32\x36\x20\x2d\x33\x39\x2e\x37\x31\x30\x39\x43\
-\x20\x35\x34\x2e\x38\x39\x32\x36\x20\x2d\x34\x33\x2e\x39\x30\x33\
-\x32\x20\x34\x34\x2e\x36\x39\x36\x39\x20\x2d\x34\x37\x2e\x33\x30\
-\x31\x37\x20\x33\x32\x2e\x31\x32\x20\x2d\x34\x37\x2e\x33\x30\x31\
-\x37\x43\x20\x31\x39\x2e\x35\x34\x33\x31\x20\x2d\x34\x37\x2e\x33\
-\x30\x31\x37\x20\x39\x2e\x33\x34\x37\x34\x32\x20\x2d\x34\x33\x2e\
-\x39\x30\x33\x32\x20\x39\x2e\x33\x34\x37\x34\x32\x20\x2d\x33\x39\
-\x2e\x37\x31\x30\x39\x43\x20\x39\x2e\x33\x34\x37\x34\x32\x20\x2d\
-\x33\x35\x2e\x35\x31\x38\x35\x20\x31\x39\x2e\x35\x34\x33\x31\x20\
-\x2d\x33\x32\x2e\x31\x32\x20\x33\x32\x2e\x31\x32\x20\x2d\x33\x32\
-\x2e\x31\x32\x43\x20\x34\x34\x2e\x36\x39\x36\x39\x20\x2d\x33\x32\
-\x2e\x31\x32\x20\x35\x34\x2e\x38\x39\x32\x36\x20\x2d\x33\x35\x2e\
-\x35\x31\x38\x35\x20\x35\x34\x2e\x38\x39\x32\x36\x20\x2d\x33\x39\
-\x2e\x37\x31\x30\x39\x5a\x27\x20\x66\x69\x6c\x6c\x3d\x27\x6e\x6f\
-\x6e\x65\x27\x20\x73\x74\x72\x6f\x6b\x65\x3d\x27\x23\x30\x30\x30\
-\x30\x30\x30\x27\x20\x73\x74\x72\x6f\x6b\x65\x2d\x6c\x69\x6e\x65\
-\x63\x61\x70\x3d\x27\x72\x6f\x75\x6e\x64\x27\x20\x73\x74\x72\x6f\
-\x6b\x65\x2d\x6c\x69\x6e\x65\x6a\x6f\x69\x6e\x3d\x27\x72\x6f\x75\
-\x6e\x64\x27\x20\x73\x74\x72\x6f\x6b\x65\x2d\x6d\x69\x74\x65\x72\
-\x6c\x69\x6d\x69\x74\x3d\x27\x31\x30\x2e\x30\x33\x37\x35\x27\x20\
-\x73\x74\x72\x6f\x6b\x65\x2d\x77\x69\x64\x74\x68\x3d\x27\x33\x2e\
-\x35\x31\x33\x31\x32\x27\x2f\x3e\x0a\x3c\x2f\x67\x3e\x0a\x3c\x67\
-\x20\x74\x72\x61\x6e\x73\x66\x6f\x72\x6d\x3d\x27\x6d\x61\x74\x72\
-\x69\x78\x28\x30\x2e\x39\x39\x36\x32\x36\x34\x20\x30\x20\x30\x20\
-\x30\x2e\x39\x39\x36\x32\x36\x34\x20\x35\x36\x2e\x34\x30\x39\x34\
-\x20\x31\x31\x37\x2e\x38\x35\x38\x29\x27\x3e\x0a\x3c\x70\x61\x74\
-\x68\x20\x64\x3d\x27\x4d\x20\x39\x2e\x33\x34\x37\x34\x32\x20\x2d\
-\x33\x39\x2e\x37\x31\x30\x39\x4c\x20\x39\x2e\x33\x34\x37\x34\x32\
-\x20\x2d\x39\x2e\x33\x34\x37\x34\x32\x4c\x20\x39\x2e\x33\x34\x37\
-\x34\x32\x20\x2d\x39\x2e\x33\x34\x37\x34\x32\x43\x20\x39\x2e\x33\
-\x34\x37\x34\x32\x20\x2d\x39\x2e\x33\x34\x37\x34\x32\x20\x39\x2e\
-\x33\x34\x37\x34\x32\x20\x2d\x39\x2e\x33\x34\x37\x34\x32\x20\x39\
-\x2e\x33\x34\x37\x34\x32\x20\x2d\x39\x2e\x33\x34\x37\x34\x32\x43\
-\x20\x39\x2e\x33\x34\x37\x34\x32\x20\x2d\x35\x2e\x31\x35\x35\x31\
-\x31\x20\x31\x39\x2e\x35\x34\x33\x31\x20\x2d\x31\x2e\x37\x35\x36\
-\x35\x36\x20\x33\x32\x2e\x31\x32\x20\x2d\x31\x2e\x37\x35\x36\x35\
-\x36\x43\x20\x34\x34\x2e\x36\x39\x36\x39\x20\x2d\x31\x2e\x37\x35\
-\x36\x35\x36\x20\x35\x34\x2e\x38\x39\x32\x36\x20\x2d\x35\x2e\x31\
-\x35\x35\x31\x31\x20\x35\x34\x2e\x38\x39\x32\x36\x20\x2d\x39\x2e\
-\x33\x34\x37\x34\x32\x4c\x20\x35\x34\x2e\x38\x39\x32\x36\x20\x2d\
-\x39\x2e\x33\x34\x37\x34\x32\x4c\x20\x35\x34\x2e\x38\x39\x32\x36\
-\x20\x2d\x33\x39\x2e\x37\x31\x30\x39\x27\x20\x66\x69\x6c\x6c\x3d\
-\x27\x6e\x6f\x6e\x65\x27\x20\x73\x74\x72\x6f\x6b\x65\x3d\x27\x23\
-\x30\x30\x30\x30\x30\x30\x27\x20\x73\x74\x72\x6f\x6b\x65\x2d\x6c\
-\x69\x6e\x65\x63\x61\x70\x3d\x27\x72\x6f\x75\x6e\x64\x27\x20\x73\
-\x74\x72\x6f\x6b\x65\x2d\x6c\x69\x6e\x65\x6a\x6f\x69\x6e\x3d\x27\
-\x72\x6f\x75\x6e\x64\x27\x20\x73\x74\x72\x6f\x6b\x65\x2d\x6d\x69\
-\x74\x65\x72\x6c\x69\x6d\x69\x74\x3d\x27\x31\x30\x2e\x30\x33\x37\
-\x35\x27\x20\x73\x74\x72\x6f\x6b\x65\x2d\x77\x69\x64\x74\x68\x3d\
-\x27\x33\x2e\x35\x31\x33\x31\x32\x27\x2f\x3e\x0a\x3c\x2f\x67\x3e\
-\x0a\x3c\x67\x20\x74\x72\x61\x6e\x73\x66\x6f\x72\x6d\x3d\x27\x6d\
-\x61\x74\x72\x69\x78\x28\x30\x2e\x39\x39\x36\x32\x36\x34\x20\x30\
-\x20\x30\x20\x30\x2e\x39\x39\x36\x32\x36\x34\x20\x35\x36\x2e\x34\
-\x30\x39\x34\x20\x31\x31\x37\x2e\x38\x35\x38\x29\x27\x3e\x0a\x3c\
-\x70\x61\x74\x68\x20\x64\x3d\x27\x4d\x20\x35\x34\x2e\x38\x39\x32\
-\x36\x20\x2d\x33\x39\x2e\x37\x31\x30\x39\x43\x20\x35\x34\x2e\x38\
-\x39\x32\x36\x20\x2d\x35\x32\x2e\x32\x38\x37\x38\x20\x34\x34\x2e\
-\x36\x39\x36\x39\x20\x2d\x36\x32\x2e\x34\x38\x33\x34\x20\x33\x32\
-\x2e\x31\x32\x20\x2d\x36\x32\x2e\x34\x38\x33\x34\x43\x20\x31\x39\
-\x2e\x35\x34\x33\x31\x20\x2d\x36\x32\x2e\x34\x38\x33\x34\x20\x39\
-\x2e\x33\x34\x37\x34\x32\x20\x2d\x35\x32\x2e\x32\x38\x37\x38\x20\
-\x39\x2e\x33\x34\x37\x34\x32\x20\x2d\x33\x39\x2e\x37\x31\x30\x39\
-\x27\x20\x66\x69\x6c\x6c\x3d\x27\x6e\x6f\x6e\x65\x27\x20\x73\x74\
-\x72\x6f\x6b\x65\x3d\x27\x23\x30\x30\x30\x30\x30\x30\x27\x20\x73\
-\x74\x72\x6f\x6b\x65\x2d\x6c\x69\x6e\x65\x63\x61\x70\x3d\x27\x72\
-\x6f\x75\x6e\x64\x27\x20\x73\x74\x72\x6f\x6b\x65\x2d\x6c\x69\x6e\
-\x65\x6a\x6f\x69\x6e\x3d\x27\x72\x6f\x75\x6e\x64\x27\x20\x73\x74\
-\x72\x6f\x6b\x65\x2d\x6d\x69\x74\x65\x72\x6c\x69\x6d\x69\x74\x3d\
-\x27\x31\x30\x2e\x30\x33\x37\x35\x27\x20\x73\x74\x72\x6f\x6b\x65\
-\x2d\x77\x69\x64\x74\x68\x3d\x27\x33\x2e\x35\x31\x33\x31\x32\x27\
-\x2f\x3e\x0a\x3c\x2f\x67\x3e\x0a\x3c\x2f\x67\x3e\x0a\x3c\x2f\x73\
-\x76\x67\x3e\
-\x00\x00\x03\x4c\
-\x3c\
\x3f\x78\x6d\x6c\x20\x76\x65\x72\x73\x69\x6f\x6e\x3d\x22\x31\x2e\
\x30\x22\x20\x65\x6e\x63\x6f\x64\x69\x6e\x67\x3d\x22\x75\x74\x66\
\x2d\x38\x22\x3f\x3e\x0d\x0a\x3c\x21\x2d\x2d\x20\x47\x65\x6e\x65\
@@ -411,29 +961,362 @@
\x3d\x22\x6e\x65\x77\x20\x30\x20\x30\x20\x35\x31\x32\x20\x35\x31\
\x32\x22\x20\x78\x6d\x6c\x3a\x73\x70\x61\x63\x65\x3d\x22\x70\x72\
\x65\x73\x65\x72\x76\x65\x22\x3e\x0d\x0a\x3c\x67\x20\x69\x64\x3d\
-\x22\x49\x63\x6f\x6e\x5f\x32\x31\x5f\x22\x3e\x0d\x0a\x09\x3c\x67\
+\x22\x49\x63\x6f\x6e\x5f\x32\x30\x5f\x22\x3e\x0d\x0a\x09\x3c\x67\
\x3e\x0d\x0a\x09\x09\x3c\x70\x61\x74\x68\x20\x64\x3d\x22\x4d\x32\
-\x35\x36\x2c\x31\x35\x32\x63\x2d\x35\x37\x2e\x32\x2c\x30\x2d\x31\
-\x30\x34\x2c\x34\x36\x2e\x38\x2d\x31\x30\x34\x2c\x31\x30\x34\x73\
-\x34\x36\x2e\x38\x2c\x31\x30\x34\x2c\x31\x30\x34\x2c\x31\x30\x34\
-\x73\x31\x30\x34\x2d\x34\x36\x2e\x38\x2c\x31\x30\x34\x2d\x31\x30\
-\x34\x53\x33\x31\x33\x2e\x32\x2c\x31\x35\x32\x2c\x32\x35\x36\x2c\
-\x31\x35\x32\x7a\x20\x4d\x32\x35\x36\x2c\x34\x38\x0d\x0a\x09\x09\
-\x09\x43\x31\x34\x31\x2e\x36\x30\x31\x2c\x34\x38\x2c\x34\x38\x2c\
-\x31\x34\x31\x2e\x36\x30\x31\x2c\x34\x38\x2c\x32\x35\x36\x73\x39\
-\x33\x2e\x36\x30\x31\x2c\x32\x30\x38\x2c\x32\x30\x38\x2c\x32\x30\
-\x38\x73\x32\x30\x38\x2d\x39\x33\x2e\x36\x30\x31\x2c\x32\x30\x38\
-\x2d\x32\x30\x38\x53\x33\x37\x30\x2e\x33\x39\x39\x2c\x34\x38\x2c\
-\x32\x35\x36\x2c\x34\x38\x7a\x20\x4d\x32\x35\x36\x2c\x34\x32\x32\
-\x2e\x34\x0d\x0a\x09\x09\x09\x63\x2d\x39\x31\x2e\x35\x31\x38\x2c\
-\x30\x2d\x31\x36\x36\x2e\x34\x2d\x37\x34\x2e\x38\x38\x33\x2d\x31\
-\x36\x36\x2e\x34\x2d\x31\x36\x36\x2e\x34\x53\x31\x36\x34\x2e\x34\
-\x38\x32\x2c\x38\x39\x2e\x36\x2c\x32\x35\x36\x2c\x38\x39\x2e\x36\
-\x53\x34\x32\x32\x2e\x34\x2c\x31\x36\x34\x2e\x34\x38\x32\x2c\x34\
-\x32\x32\x2e\x34\x2c\x32\x35\x36\x53\x33\x34\x37\x2e\x35\x31\x38\
-\x2c\x34\x32\x32\x2e\x34\x2c\x32\x35\x36\x2c\x34\x32\x32\x2e\x34\
+\x35\x36\x2c\x34\x38\x43\x31\x34\x31\x2e\x36\x30\x31\x2c\x34\x38\
+\x2c\x34\x38\x2c\x31\x34\x31\x2e\x36\x30\x31\x2c\x34\x38\x2c\x32\
+\x35\x36\x73\x39\x33\x2e\x36\x30\x31\x2c\x32\x30\x38\x2c\x32\x30\
+\x38\x2c\x32\x30\x38\x73\x32\x30\x38\x2d\x39\x33\x2e\x36\x30\x31\
+\x2c\x32\x30\x38\x2d\x32\x30\x38\x53\x33\x37\x30\x2e\x33\x39\x39\
+\x2c\x34\x38\x2c\x32\x35\x36\x2c\x34\x38\x7a\x20\x4d\x32\x35\x36\
+\x2c\x34\x32\x32\x2e\x33\x39\x39\x0d\x0a\x09\x09\x09\x63\x2d\x39\
+\x31\x2e\x35\x31\x38\x2c\x30\x2d\x31\x36\x36\x2e\x33\x39\x39\x2d\
+\x37\x34\x2e\x38\x38\x32\x2d\x31\x36\x36\x2e\x33\x39\x39\x2d\x31\
+\x36\x36\x2e\x33\x39\x39\x53\x31\x36\x34\x2e\x34\x38\x32\x2c\x38\
+\x39\x2e\x36\x2c\x32\x35\x36\x2c\x38\x39\x2e\x36\x53\x34\x32\x32\
+\x2e\x34\x2c\x31\x36\x34\x2e\x34\x38\x32\x2c\x34\x32\x32\x2e\x34\
+\x2c\x32\x35\x36\x53\x33\x34\x37\x2e\x35\x31\x38\x2c\x34\x32\x32\
+\x2e\x33\x39\x39\x2c\x32\x35\x36\x2c\x34\x32\x32\x2e\x33\x39\x39\
\x7a\x22\x2f\x3e\x0d\x0a\x09\x3c\x2f\x67\x3e\x0d\x0a\x3c\x2f\x67\
\x3e\x0d\x0a\x3c\x2f\x73\x76\x67\x3e\x0d\x0a\
+\x00\x00\x02\xa1\
+\x3c\
+\x3f\x78\x6d\x6c\x20\x76\x65\x72\x73\x69\x6f\x6e\x3d\x22\x31\x2e\
+\x30\x22\x20\x65\x6e\x63\x6f\x64\x69\x6e\x67\x3d\x22\x75\x74\x66\
+\x2d\x38\x22\x3f\x3e\x0d\x0a\x3c\x21\x2d\x2d\x20\x47\x65\x6e\x65\
+\x72\x61\x74\x6f\x72\x3a\x20\x41\x64\x6f\x62\x65\x20\x49\x6c\x6c\
+\x75\x73\x74\x72\x61\x74\x6f\x72\x20\x31\x38\x2e\x31\x2e\x31\x2c\
+\x20\x53\x56\x47\x20\x45\x78\x70\x6f\x72\x74\x20\x50\x6c\x75\x67\
+\x2d\x49\x6e\x20\x2e\x20\x53\x56\x47\x20\x56\x65\x72\x73\x69\x6f\
+\x6e\x3a\x20\x36\x2e\x30\x30\x20\x42\x75\x69\x6c\x64\x20\x30\x29\
+\x20\x20\x2d\x2d\x3e\x0d\x0a\x3c\x21\x44\x4f\x43\x54\x59\x50\x45\
+\x20\x73\x76\x67\x20\x50\x55\x42\x4c\x49\x43\x20\x22\x2d\x2f\x2f\
+\x57\x33\x43\x2f\x2f\x44\x54\x44\x20\x53\x56\x47\x20\x31\x2e\x31\
+\x2f\x2f\x45\x4e\x22\x20\x22\x68\x74\x74\x70\x3a\x2f\x2f\x77\x77\
+\x77\x2e\x77\x33\x2e\x6f\x72\x67\x2f\x47\x72\x61\x70\x68\x69\x63\
+\x73\x2f\x53\x56\x47\x2f\x31\x2e\x31\x2f\x44\x54\x44\x2f\x73\x76\
+\x67\x31\x31\x2e\x64\x74\x64\x22\x3e\x0d\x0a\x3c\x73\x76\x67\x20\
+\x76\x65\x72\x73\x69\x6f\x6e\x3d\x22\x31\x2e\x31\x22\x20\x69\x64\
+\x3d\x22\x53\x61\x76\x65\x22\x20\x78\x6d\x6c\x6e\x73\x3d\x22\x68\
+\x74\x74\x70\x3a\x2f\x2f\x77\x77\x77\x2e\x77\x33\x2e\x6f\x72\x67\
+\x2f\x32\x30\x30\x30\x2f\x73\x76\x67\x22\x20\x78\x6d\x6c\x6e\x73\
+\x3a\x78\x6c\x69\x6e\x6b\x3d\x22\x68\x74\x74\x70\x3a\x2f\x2f\x77\
+\x77\x77\x2e\x77\x33\x2e\x6f\x72\x67\x2f\x31\x39\x39\x39\x2f\x78\
+\x6c\x69\x6e\x6b\x22\x20\x78\x3d\x22\x35\x31\x32\x70\x78\x22\x20\
+\x79\x3d\x22\x35\x31\x32\x70\x78\x22\x0d\x0a\x09\x20\x76\x69\x65\
+\x77\x42\x6f\x78\x3d\x22\x30\x20\x30\x20\x35\x31\x32\x20\x35\x31\
+\x32\x22\x20\x65\x6e\x61\x62\x6c\x65\x2d\x62\x61\x63\x6b\x67\x72\
+\x6f\x75\x6e\x64\x3d\x22\x6e\x65\x77\x20\x30\x20\x30\x20\x35\x31\
+\x32\x20\x35\x31\x32\x22\x20\x78\x6d\x6c\x3a\x73\x70\x61\x63\x65\
+\x3d\x22\x70\x72\x65\x73\x65\x72\x76\x65\x22\x3e\x0d\x0a\x3c\x67\
+\x20\x74\x72\x61\x6e\x73\x66\x6f\x72\x6d\x3d\x27\x6d\x61\x74\x72\
+\x69\x78\x28\x32\x34\x20\x30\x20\x30\x20\x32\x34\x20\x30\x20\x30\
+\x29\x27\x3e\x0d\x0a\x3c\x70\x61\x74\x68\x20\x64\x3d\x22\x4d\x31\
+\x35\x2e\x31\x37\x33\x2c\x32\x48\x34\x43\x32\x2e\x38\x39\x39\x2c\
+\x32\x2c\x32\x2c\x32\x2e\x39\x2c\x32\x2c\x34\x76\x31\x32\x63\x30\
+\x2c\x31\x2e\x31\x2c\x30\x2e\x38\x39\x39\x2c\x32\x2c\x32\x2c\x32\
+\x68\x31\x32\x63\x31\x2e\x31\x30\x31\x2c\x30\x2c\x32\x2d\x30\x2e\
+\x39\x2c\x32\x2d\x32\x56\x35\x2e\x31\x32\x37\x4c\x31\x35\x2e\x31\
+\x37\x33\x2c\x32\x7a\x20\x4d\x31\x34\x2c\x38\x63\x30\x2c\x30\x2e\
+\x35\x34\x39\x2d\x30\x2e\x34\x35\x2c\x31\x2d\x31\x2c\x31\x48\x37\
+\x0d\x0a\x09\x43\x36\x2e\x34\x35\x2c\x39\x2c\x36\x2c\x38\x2e\x35\
+\x34\x39\x2c\x36\x2c\x38\x56\x33\x68\x38\x56\x38\x7a\x20\x4d\x31\
+\x33\x2c\x34\x68\x2d\x32\x76\x34\x68\x32\x56\x34\x7a\x22\x2f\x3e\
+\x0d\x0a\x3c\x2f\x67\x3e\x0d\x0a\x3c\x2f\x73\x76\x67\x3e\x0d\x0a\
+\
+\x00\x00\x03\x6c\
+\x3c\
+\x3f\x78\x6d\x6c\x20\x76\x65\x72\x73\x69\x6f\x6e\x3d\x22\x31\x2e\
+\x30\x22\x20\x65\x6e\x63\x6f\x64\x69\x6e\x67\x3d\x22\x75\x74\x66\
+\x2d\x38\x22\x3f\x3e\x0d\x0a\x3c\x21\x2d\x2d\x20\x47\x65\x6e\x65\
+\x72\x61\x74\x6f\x72\x3a\x20\x41\x64\x6f\x62\x65\x20\x49\x6c\x6c\
+\x75\x73\x74\x72\x61\x74\x6f\x72\x20\x31\x36\x2e\x32\x2e\x31\x2c\
+\x20\x53\x56\x47\x20\x45\x78\x70\x6f\x72\x74\x20\x50\x6c\x75\x67\
+\x2d\x49\x6e\x20\x2e\x20\x53\x56\x47\x20\x56\x65\x72\x73\x69\x6f\
+\x6e\x3a\x20\x36\x2e\x30\x30\x20\x42\x75\x69\x6c\x64\x20\x30\x29\
+\x20\x20\x2d\x2d\x3e\x0d\x0a\x3c\x21\x44\x4f\x43\x54\x59\x50\x45\
+\x20\x73\x76\x67\x20\x50\x55\x42\x4c\x49\x43\x20\x22\x2d\x2f\x2f\
+\x57\x33\x43\x2f\x2f\x44\x54\x44\x20\x53\x56\x47\x20\x31\x2e\x31\
+\x2f\x2f\x45\x4e\x22\x20\x22\x68\x74\x74\x70\x3a\x2f\x2f\x77\x77\
+\x77\x2e\x77\x33\x2e\x6f\x72\x67\x2f\x47\x72\x61\x70\x68\x69\x63\
+\x73\x2f\x53\x56\x47\x2f\x31\x2e\x31\x2f\x44\x54\x44\x2f\x73\x76\
+\x67\x31\x31\x2e\x64\x74\x64\x22\x3e\x0d\x0a\x3c\x73\x76\x67\x20\
+\x76\x65\x72\x73\x69\x6f\x6e\x3d\x22\x31\x2e\x31\x22\x20\x69\x64\
+\x3d\x22\x4c\x61\x79\x65\x72\x5f\x31\x22\x20\x78\x6d\x6c\x6e\x73\
+\x3d\x22\x68\x74\x74\x70\x3a\x2f\x2f\x77\x77\x77\x2e\x77\x33\x2e\
+\x6f\x72\x67\x2f\x32\x30\x30\x30\x2f\x73\x76\x67\x22\x20\x78\x6d\
+\x6c\x6e\x73\x3a\x78\x6c\x69\x6e\x6b\x3d\x22\x68\x74\x74\x70\x3a\
+\x2f\x2f\x77\x77\x77\x2e\x77\x33\x2e\x6f\x72\x67\x2f\x31\x39\x39\
+\x39\x2f\x78\x6c\x69\x6e\x6b\x22\x20\x78\x3d\x22\x30\x70\x78\x22\
+\x20\x79\x3d\x22\x30\x70\x78\x22\x0d\x0a\x09\x20\x77\x69\x64\x74\
+\x68\x3d\x22\x35\x31\x32\x70\x78\x22\x20\x68\x65\x69\x67\x68\x74\
+\x3d\x22\x35\x31\x32\x70\x78\x22\x20\x76\x69\x65\x77\x42\x6f\x78\
+\x3d\x22\x30\x20\x30\x20\x35\x31\x32\x20\x35\x31\x32\x22\x20\x65\
+\x6e\x61\x62\x6c\x65\x2d\x62\x61\x63\x6b\x67\x72\x6f\x75\x6e\x64\
+\x3d\x22\x6e\x65\x77\x20\x30\x20\x30\x20\x35\x31\x32\x20\x35\x31\
+\x32\x22\x20\x78\x6d\x6c\x3a\x73\x70\x61\x63\x65\x3d\x22\x70\x72\
+\x65\x73\x65\x72\x76\x65\x22\x3e\x0d\x0a\x3c\x67\x3e\x0d\x0a\x09\
+\x0d\x0a\x09\x09\x3c\x72\x65\x63\x74\x20\x78\x3d\x22\x31\x37\x38\
+\x2e\x38\x34\x36\x22\x20\x79\x3d\x22\x39\x32\x2e\x30\x38\x37\x22\
+\x20\x74\x72\x61\x6e\x73\x66\x6f\x72\x6d\x3d\x22\x6d\x61\x74\x72\
+\x69\x78\x28\x2d\x30\x2e\x37\x30\x37\x31\x20\x2d\x30\x2e\x37\x30\
+\x37\x31\x20\x30\x2e\x37\x30\x37\x31\x20\x2d\x30\x2e\x37\x30\x37\
+\x31\x20\x32\x32\x34\x2e\x33\x34\x37\x36\x20\x36\x33\x31\x2e\x31\
+\x34\x39\x38\x29\x22\x20\x77\x69\x64\x74\x68\x3d\x22\x31\x32\x38\
+\x2e\x30\x38\x35\x22\x20\x68\x65\x69\x67\x68\x74\x3d\x22\x33\x35\
+\x34\x2e\x30\x34\x39\x22\x2f\x3e\x0d\x0a\x09\x3c\x70\x61\x74\x68\
+\x20\x64\x3d\x22\x4d\x34\x37\x31\x2e\x37\x32\x33\x2c\x38\x38\x2e\
+\x33\x39\x33\x6c\x2d\x34\x38\x2e\x31\x31\x35\x2d\x34\x38\x2e\x31\
+\x31\x34\x63\x2d\x31\x31\x2e\x37\x32\x33\x2d\x31\x31\x2e\x37\x32\
+\x34\x2d\x33\x31\x2e\x35\x35\x38\x2d\x31\x30\x2e\x38\x39\x36\x2d\
+\x34\x34\x2e\x33\x30\x34\x2c\x31\x2e\x38\x35\x6c\x2d\x34\x35\x2e\
+\x32\x30\x32\x2c\x34\x35\x2e\x32\x30\x33\x6c\x39\x30\x2e\x35\x36\
+\x39\x2c\x39\x30\x2e\x35\x36\x38\x6c\x34\x35\x2e\x32\x30\x32\x2d\
+\x34\x35\x2e\x32\x30\x32\x0d\x0a\x09\x09\x43\x34\x38\x32\x2e\x36\
+\x31\x36\x2c\x31\x31\x39\x2e\x39\x35\x32\x2c\x34\x38\x33\x2e\x34\
+\x34\x35\x2c\x31\x30\x30\x2e\x31\x31\x36\x2c\x34\x37\x31\x2e\x37\
+\x32\x33\x2c\x38\x38\x2e\x33\x39\x33\x7a\x22\x2f\x3e\x0d\x0a\x09\
+\x3c\x70\x6f\x6c\x79\x67\x6f\x6e\x20\x70\x6f\x69\x6e\x74\x73\x3d\
+\x22\x36\x34\x2e\x30\x32\x31\x2c\x33\x36\x33\x2e\x32\x35\x32\x20\
+\x33\x32\x2c\x34\x38\x30\x20\x31\x34\x38\x2e\x37\x33\x37\x2c\x34\
+\x34\x37\x2e\x39\x37\x39\x20\x09\x22\x2f\x3e\x0d\x0a\x3c\x2f\x67\
+\x3e\x0d\x0a\x3c\x2f\x73\x76\x67\x3e\x0d\x0a\
+\x00\x00\x02\x7d\
+\x3c\
+\x3f\x78\x6d\x6c\x20\x76\x65\x72\x73\x69\x6f\x6e\x3d\x22\x31\x2e\
+\x30\x22\x20\x65\x6e\x63\x6f\x64\x69\x6e\x67\x3d\x22\x75\x74\x66\
+\x2d\x38\x22\x3f\x3e\x0d\x0a\x3c\x21\x2d\x2d\x20\x47\x65\x6e\x65\
+\x72\x61\x74\x6f\x72\x3a\x20\x41\x64\x6f\x62\x65\x20\x49\x6c\x6c\
+\x75\x73\x74\x72\x61\x74\x6f\x72\x20\x31\x36\x2e\x32\x2e\x31\x2c\
+\x20\x53\x56\x47\x20\x45\x78\x70\x6f\x72\x74\x20\x50\x6c\x75\x67\
+\x2d\x49\x6e\x20\x2e\x20\x53\x56\x47\x20\x56\x65\x72\x73\x69\x6f\
+\x6e\x3a\x20\x36\x2e\x30\x30\x20\x42\x75\x69\x6c\x64\x20\x30\x29\
+\x20\x20\x2d\x2d\x3e\x0d\x0a\x3c\x21\x44\x4f\x43\x54\x59\x50\x45\
+\x20\x73\x76\x67\x20\x50\x55\x42\x4c\x49\x43\x20\x22\x2d\x2f\x2f\
+\x57\x33\x43\x2f\x2f\x44\x54\x44\x20\x53\x56\x47\x20\x31\x2e\x31\
+\x2f\x2f\x45\x4e\x22\x20\x22\x68\x74\x74\x70\x3a\x2f\x2f\x77\x77\
+\x77\x2e\x77\x33\x2e\x6f\x72\x67\x2f\x47\x72\x61\x70\x68\x69\x63\
+\x73\x2f\x53\x56\x47\x2f\x31\x2e\x31\x2f\x44\x54\x44\x2f\x73\x76\
+\x67\x31\x31\x2e\x64\x74\x64\x22\x3e\x0d\x0a\x3c\x73\x76\x67\x20\
+\x76\x65\x72\x73\x69\x6f\x6e\x3d\x22\x31\x2e\x31\x22\x20\x69\x64\
+\x3d\x22\x4c\x61\x79\x65\x72\x5f\x31\x22\x20\x78\x6d\x6c\x6e\x73\
+\x3d\x22\x68\x74\x74\x70\x3a\x2f\x2f\x77\x77\x77\x2e\x77\x33\x2e\
+\x6f\x72\x67\x2f\x32\x30\x30\x30\x2f\x73\x76\x67\x22\x20\x78\x6d\
+\x6c\x6e\x73\x3a\x78\x6c\x69\x6e\x6b\x3d\x22\x68\x74\x74\x70\x3a\
+\x2f\x2f\x77\x77\x77\x2e\x77\x33\x2e\x6f\x72\x67\x2f\x31\x39\x39\
+\x39\x2f\x78\x6c\x69\x6e\x6b\x22\x20\x78\x3d\x22\x30\x70\x78\x22\
+\x20\x79\x3d\x22\x30\x70\x78\x22\x0d\x0a\x09\x20\x77\x69\x64\x74\
+\x68\x3d\x22\x35\x31\x32\x70\x78\x22\x20\x68\x65\x69\x67\x68\x74\
+\x3d\x22\x35\x31\x32\x70\x78\x22\x20\x76\x69\x65\x77\x42\x6f\x78\
+\x3d\x22\x30\x20\x30\x20\x35\x31\x32\x20\x35\x31\x32\x22\x20\x65\
+\x6e\x61\x62\x6c\x65\x2d\x62\x61\x63\x6b\x67\x72\x6f\x75\x6e\x64\
+\x3d\x22\x6e\x65\x77\x20\x30\x20\x30\x20\x35\x31\x32\x20\x35\x31\
+\x32\x22\x20\x78\x6d\x6c\x3a\x73\x70\x61\x63\x65\x3d\x22\x70\x72\
+\x65\x73\x65\x72\x76\x65\x22\x3e\x0d\x0a\x3c\x67\x20\x69\x64\x3d\
+\x22\x49\x63\x6f\x6e\x5f\x38\x5f\x22\x3e\x0d\x0a\x09\x3c\x67\x3e\
+\x0d\x0a\x09\x09\x3c\x70\x61\x74\x68\x20\x64\x3d\x22\x4d\x38\x35\
+\x2c\x32\x37\x37\x2e\x33\x37\x35\x68\x32\x35\x39\x2e\x37\x30\x34\
+\x4c\x32\x32\x35\x2e\x30\x30\x32\x2c\x33\x39\x37\x2e\x30\x37\x37\
+\x4c\x32\x35\x36\x2c\x34\x32\x37\x6c\x31\x37\x31\x2d\x31\x37\x31\
+\x4c\x32\x35\x36\x2c\x38\x35\x6c\x2d\x32\x39\x2e\x39\x32\x32\x2c\
+\x32\x39\x2e\x39\x32\x34\x6c\x31\x31\x38\x2e\x36\x32\x36\x2c\x31\
+\x31\x39\x2e\x37\x30\x31\x48\x38\x35\x56\x32\x37\x37\x2e\x33\x37\
+\x35\x7a\x22\x2f\x3e\x0d\x0a\x09\x3c\x2f\x67\x3e\x0d\x0a\x3c\x2f\
+\x67\x3e\x0d\x0a\x3c\x2f\x73\x76\x67\x3e\x0d\x0a\
+\x00\x00\x04\x64\
+\x3c\
+\x3f\x78\x6d\x6c\x20\x76\x65\x72\x73\x69\x6f\x6e\x3d\x22\x31\x2e\
+\x30\x22\x20\x65\x6e\x63\x6f\x64\x69\x6e\x67\x3d\x22\x75\x74\x66\
+\x2d\x38\x22\x3f\x3e\x0d\x0a\x3c\x21\x2d\x2d\x20\x47\x65\x6e\x65\
+\x72\x61\x74\x6f\x72\x3a\x20\x41\x64\x6f\x62\x65\x20\x49\x6c\x6c\
+\x75\x73\x74\x72\x61\x74\x6f\x72\x20\x31\x36\x2e\x32\x2e\x31\x2c\
+\x20\x53\x56\x47\x20\x45\x78\x70\x6f\x72\x74\x20\x50\x6c\x75\x67\
+\x2d\x49\x6e\x20\x2e\x20\x53\x56\x47\x20\x56\x65\x72\x73\x69\x6f\
+\x6e\x3a\x20\x36\x2e\x30\x30\x20\x42\x75\x69\x6c\x64\x20\x30\x29\
+\x20\x20\x2d\x2d\x3e\x0d\x0a\x3c\x21\x44\x4f\x43\x54\x59\x50\x45\
+\x20\x73\x76\x67\x20\x50\x55\x42\x4c\x49\x43\x20\x22\x2d\x2f\x2f\
+\x57\x33\x43\x2f\x2f\x44\x54\x44\x20\x53\x56\x47\x20\x31\x2e\x31\
+\x2f\x2f\x45\x4e\x22\x20\x22\x68\x74\x74\x70\x3a\x2f\x2f\x77\x77\
+\x77\x2e\x77\x33\x2e\x6f\x72\x67\x2f\x47\x72\x61\x70\x68\x69\x63\
+\x73\x2f\x53\x56\x47\x2f\x31\x2e\x31\x2f\x44\x54\x44\x2f\x73\x76\
+\x67\x31\x31\x2e\x64\x74\x64\x22\x3e\x0d\x0a\x3c\x73\x76\x67\x20\
+\x76\x65\x72\x73\x69\x6f\x6e\x3d\x22\x31\x2e\x31\x22\x20\x69\x64\
+\x3d\x22\x4c\x61\x79\x65\x72\x5f\x31\x22\x20\x78\x6d\x6c\x6e\x73\
+\x3d\x22\x68\x74\x74\x70\x3a\x2f\x2f\x77\x77\x77\x2e\x77\x33\x2e\
+\x6f\x72\x67\x2f\x32\x30\x30\x30\x2f\x73\x76\x67\x22\x20\x78\x6d\
+\x6c\x6e\x73\x3a\x78\x6c\x69\x6e\x6b\x3d\x22\x68\x74\x74\x70\x3a\
+\x2f\x2f\x77\x77\x77\x2e\x77\x33\x2e\x6f\x72\x67\x2f\x31\x39\x39\
+\x39\x2f\x78\x6c\x69\x6e\x6b\x22\x20\x78\x3d\x22\x30\x70\x78\x22\
+\x20\x79\x3d\x22\x30\x70\x78\x22\x0d\x0a\x09\x20\x77\x69\x64\x74\
+\x68\x3d\x22\x35\x31\x32\x70\x78\x22\x20\x68\x65\x69\x67\x68\x74\
+\x3d\x22\x35\x31\x32\x70\x78\x22\x20\x76\x69\x65\x77\x42\x6f\x78\
+\x3d\x22\x30\x20\x30\x20\x35\x31\x32\x20\x35\x31\x32\x22\x20\x65\
+\x6e\x61\x62\x6c\x65\x2d\x62\x61\x63\x6b\x67\x72\x6f\x75\x6e\x64\
+\x3d\x22\x6e\x65\x77\x20\x30\x20\x30\x20\x35\x31\x32\x20\x35\x31\
+\x32\x22\x20\x78\x6d\x6c\x3a\x73\x70\x61\x63\x65\x3d\x22\x70\x72\
+\x65\x73\x65\x72\x76\x65\x22\x3e\x0d\x0a\x3c\x67\x20\x69\x64\x3d\
+\x22\x49\x63\x6f\x6e\x22\x3e\x0d\x0a\x09\x3c\x67\x3e\x0d\x0a\x09\
+\x09\x3c\x70\x61\x74\x68\x20\x64\x3d\x22\x4d\x32\x35\x36\x2c\x31\
+\x37\x36\x63\x2d\x34\x34\x2e\x30\x30\x34\x2c\x30\x2d\x38\x30\x2e\
+\x30\x30\x31\x2c\x33\x36\x2d\x38\x30\x2e\x30\x30\x31\x2c\x38\x30\
+\x63\x30\x2c\x34\x34\x2e\x30\x30\x34\x2c\x33\x35\x2e\x39\x39\x37\
+\x2c\x38\x30\x2c\x38\x30\x2e\x30\x30\x31\x2c\x38\x30\x63\x34\x34\
+\x2e\x30\x30\x35\x2c\x30\x2c\x37\x39\x2e\x39\x39\x39\x2d\x33\x35\
+\x2e\x39\x39\x36\x2c\x37\x39\x2e\x39\x39\x39\x2d\x38\x30\x0d\x0a\
+\x09\x09\x09\x43\x33\x33\x35\x2e\x39\x39\x39\x2c\x32\x31\x32\x2c\
+\x33\x30\x30\x2e\x30\x30\x35\x2c\x31\x37\x36\x2c\x32\x35\x36\x2c\
+\x31\x37\x36\x7a\x20\x4d\x34\x34\x36\x2e\x39\x33\x38\x2c\x32\x33\
+\x34\x2e\x36\x36\x37\x63\x2d\x39\x2e\x36\x30\x35\x2d\x38\x38\x2e\
+\x35\x33\x31\x2d\x38\x31\x2e\x30\x37\x34\x2d\x31\x36\x30\x2d\x31\
+\x36\x39\x2e\x36\x30\x35\x2d\x31\x36\x39\x2e\x35\x39\x39\x56\x33\
+\x32\x68\x2d\x34\x32\x2e\x36\x36\x36\x76\x33\x33\x2e\x30\x36\x37\
+\x0d\x0a\x09\x09\x09\x63\x2d\x38\x38\x2e\x35\x33\x31\x2c\x39\x2e\
+\x35\x39\x39\x2d\x31\x36\x30\x2c\x38\x31\x2e\x30\x36\x38\x2d\x31\
+\x36\x39\x2e\x36\x30\x34\x2c\x31\x36\x39\x2e\x35\x39\x39\x48\x33\
+\x32\x76\x34\x32\x2e\x36\x36\x37\x68\x33\x33\x2e\x30\x36\x32\x63\
+\x39\x2e\x36\x30\x34\x2c\x38\x38\x2e\x35\x33\x31\x2c\x38\x31\x2e\
+\x30\x37\x32\x2c\x31\x36\x30\x2c\x31\x36\x39\x2e\x36\x30\x34\x2c\
+\x31\x36\x39\x2e\x36\x30\x34\x56\x34\x38\x30\x68\x34\x32\x2e\x36\
+\x36\x36\x76\x2d\x33\x33\x2e\x30\x36\x32\x0d\x0a\x09\x09\x09\x63\
+\x38\x38\x2e\x35\x33\x31\x2d\x39\x2e\x36\x30\x34\x2c\x31\x36\x30\
+\x2d\x38\x31\x2e\x30\x37\x33\x2c\x31\x36\x39\x2e\x36\x30\x35\x2d\
+\x31\x36\x39\x2e\x36\x30\x34\x48\x34\x38\x30\x76\x2d\x34\x32\x2e\
+\x36\x36\x37\x48\x34\x34\x36\x2e\x39\x33\x38\x7a\x20\x4d\x32\x35\
+\x36\x2c\x34\x30\x35\x2e\x33\x33\x33\x63\x2d\x38\x32\x2e\x31\x33\
+\x37\x2c\x30\x2d\x31\x34\x39\x2e\x33\x33\x34\x2d\x36\x37\x2e\x31\
+\x39\x38\x2d\x31\x34\x39\x2e\x33\x33\x34\x2d\x31\x34\x39\x2e\x33\
+\x33\x33\x0d\x0a\x09\x09\x09\x63\x30\x2d\x38\x32\x2e\x31\x33\x36\
+\x2c\x36\x37\x2e\x31\x39\x37\x2d\x31\x34\x39\x2e\x33\x33\x33\x2c\
+\x31\x34\x39\x2e\x33\x33\x34\x2d\x31\x34\x39\x2e\x33\x33\x33\x63\
+\x38\x32\x2e\x31\x33\x35\x2c\x30\x2c\x31\x34\x39\x2e\x33\x33\x32\
+\x2c\x36\x37\x2e\x31\x39\x38\x2c\x31\x34\x39\x2e\x33\x33\x32\x2c\
+\x31\x34\x39\x2e\x33\x33\x33\x43\x34\x30\x35\x2e\x33\x33\x32\x2c\
+\x33\x33\x38\x2e\x31\x33\x35\x2c\x33\x33\x38\x2e\x31\x33\x35\x2c\
+\x34\x30\x35\x2e\x33\x33\x33\x2c\x32\x35\x36\x2c\x34\x30\x35\x2e\
+\x33\x33\x33\x7a\x0d\x0a\x09\x09\x09\x22\x2f\x3e\x0d\x0a\x09\x3c\
+\x2f\x67\x3e\x0d\x0a\x3c\x2f\x67\x3e\x0d\x0a\x3c\x2f\x73\x76\x67\
+\x3e\x0d\x0a\
+\x00\x00\x03\x52\
+\x3c\
+\x3f\x78\x6d\x6c\x20\x76\x65\x72\x73\x69\x6f\x6e\x3d\x22\x31\x2e\
+\x30\x22\x20\x65\x6e\x63\x6f\x64\x69\x6e\x67\x3d\x22\x75\x74\x66\
+\x2d\x38\x22\x3f\x3e\x0d\x0a\x3c\x21\x2d\x2d\x20\x47\x65\x6e\x65\
+\x72\x61\x74\x6f\x72\x3a\x20\x41\x64\x6f\x62\x65\x20\x49\x6c\x6c\
+\x75\x73\x74\x72\x61\x74\x6f\x72\x20\x31\x36\x2e\x32\x2e\x31\x2c\
+\x20\x53\x56\x47\x20\x45\x78\x70\x6f\x72\x74\x20\x50\x6c\x75\x67\
+\x2d\x49\x6e\x20\x2e\x20\x53\x56\x47\x20\x56\x65\x72\x73\x69\x6f\
+\x6e\x3a\x20\x36\x2e\x30\x30\x20\x42\x75\x69\x6c\x64\x20\x30\x29\
+\x20\x20\x2d\x2d\x3e\x0d\x0a\x3c\x21\x44\x4f\x43\x54\x59\x50\x45\
+\x20\x73\x76\x67\x20\x50\x55\x42\x4c\x49\x43\x20\x22\x2d\x2f\x2f\
+\x57\x33\x43\x2f\x2f\x44\x54\x44\x20\x53\x56\x47\x20\x31\x2e\x31\
+\x2f\x2f\x45\x4e\x22\x20\x22\x68\x74\x74\x70\x3a\x2f\x2f\x77\x77\
+\x77\x2e\x77\x33\x2e\x6f\x72\x67\x2f\x47\x72\x61\x70\x68\x69\x63\
+\x73\x2f\x53\x56\x47\x2f\x31\x2e\x31\x2f\x44\x54\x44\x2f\x73\x76\
+\x67\x31\x31\x2e\x64\x74\x64\x22\x3e\x0d\x0a\x3c\x73\x76\x67\x20\
+\x76\x65\x72\x73\x69\x6f\x6e\x3d\x22\x31\x2e\x31\x22\x20\x69\x64\
+\x3d\x22\x4c\x61\x79\x65\x72\x5f\x31\x22\x20\x78\x6d\x6c\x6e\x73\
+\x3d\x22\x68\x74\x74\x70\x3a\x2f\x2f\x77\x77\x77\x2e\x77\x33\x2e\
+\x6f\x72\x67\x2f\x32\x30\x30\x30\x2f\x73\x76\x67\x22\x20\x78\x6d\
+\x6c\x6e\x73\x3a\x78\x6c\x69\x6e\x6b\x3d\x22\x68\x74\x74\x70\x3a\
+\x2f\x2f\x77\x77\x77\x2e\x77\x33\x2e\x6f\x72\x67\x2f\x31\x39\x39\
+\x39\x2f\x78\x6c\x69\x6e\x6b\x22\x20\x78\x3d\x22\x30\x70\x78\x22\
+\x20\x79\x3d\x22\x30\x70\x78\x22\x0d\x0a\x09\x20\x77\x69\x64\x74\
+\x68\x3d\x22\x35\x31\x32\x70\x78\x22\x20\x68\x65\x69\x67\x68\x74\
+\x3d\x22\x35\x31\x32\x70\x78\x22\x20\x76\x69\x65\x77\x42\x6f\x78\
+\x3d\x22\x30\x20\x30\x20\x35\x31\x32\x20\x35\x31\x32\x22\x20\x65\
+\x6e\x61\x62\x6c\x65\x2d\x62\x61\x63\x6b\x67\x72\x6f\x75\x6e\x64\
+\x3d\x22\x6e\x65\x77\x20\x30\x20\x30\x20\x35\x31\x32\x20\x35\x31\
+\x32\x22\x20\x78\x6d\x6c\x3a\x73\x70\x61\x63\x65\x3d\x22\x70\x72\
+\x65\x73\x65\x72\x76\x65\x22\x3e\x0d\x0a\x3c\x70\x61\x74\x68\x20\
+\x64\x3d\x22\x4d\x34\x33\x37\x2e\x33\x33\x34\x2c\x31\x34\x34\x48\
+\x32\x35\x36\x2e\x30\x30\x36\x6c\x2d\x34\x32\x2e\x36\x36\x38\x2d\
+\x34\x38\x48\x37\x34\x2e\x36\x36\x36\x43\x35\x31\x2e\x31\x39\x37\
+\x2c\x39\x36\x2c\x33\x32\x2c\x31\x31\x35\x2e\x31\x39\x38\x2c\x33\
+\x32\x2c\x31\x33\x38\x2e\x36\x36\x37\x76\x32\x33\x34\x2e\x36\x36\
+\x36\x43\x33\x32\x2c\x33\x39\x36\x2e\x38\x30\x32\x2c\x35\x31\x2e\
+\x31\x39\x37\x2c\x34\x31\x36\x2c\x37\x34\x2e\x36\x36\x36\x2c\x34\
+\x31\x36\x68\x33\x36\x32\x2e\x36\x36\x38\x0d\x0a\x09\x43\x34\x36\
+\x30\x2e\x38\x30\x33\x2c\x34\x31\x36\x2c\x34\x38\x30\x2c\x33\x39\
+\x36\x2e\x38\x30\x32\x2c\x34\x38\x30\x2c\x33\x37\x33\x2e\x33\x33\
+\x33\x56\x31\x38\x36\x2e\x36\x36\x37\x43\x34\x38\x30\x2c\x31\x36\
+\x33\x2e\x31\x39\x38\x2c\x34\x36\x30\x2e\x38\x30\x33\x2c\x31\x34\
+\x34\x2c\x34\x33\x37\x2e\x33\x33\x34\x2c\x31\x34\x34\x7a\x20\x4d\
+\x34\x34\x38\x2c\x33\x37\x33\x2e\x33\x33\x33\x0d\x0a\x09\x63\x30\
+\x2c\x35\x2e\x37\x38\x32\x2d\x34\x2e\x38\x38\x35\x2c\x31\x30\x2e\
+\x36\x36\x37\x2d\x31\x30\x2e\x36\x36\x36\x2c\x31\x30\x2e\x36\x36\
+\x37\x48\x37\x34\x2e\x36\x36\x36\x43\x36\x38\x2e\x38\x38\x34\x2c\
+\x33\x38\x34\x2c\x36\x34\x2c\x33\x37\x39\x2e\x31\x31\x35\x2c\x36\
+\x34\x2c\x33\x37\x33\x2e\x33\x33\x33\x56\x31\x37\x36\x68\x33\x37\
+\x33\x2e\x33\x33\x34\x63\x35\x2e\x37\x38\x31\x2c\x30\x2c\x31\x30\
+\x2e\x36\x36\x36\x2c\x34\x2e\x38\x38\x35\x2c\x31\x30\x2e\x36\x36\
+\x36\x2c\x31\x30\x2e\x36\x36\x37\x0d\x0a\x09\x56\x33\x37\x33\x2e\
+\x33\x33\x33\x7a\x22\x2f\x3e\x0d\x0a\x3c\x2f\x73\x76\x67\x3e\x0d\
+\x0a\
+\x00\x00\x03\xe6\
+\x3c\
+\x3f\x78\x6d\x6c\x20\x76\x65\x72\x73\x69\x6f\x6e\x3d\x22\x31\x2e\
+\x30\x22\x20\x65\x6e\x63\x6f\x64\x69\x6e\x67\x3d\x22\x75\x74\x66\
+\x2d\x38\x22\x3f\x3e\x0d\x0a\x3c\x21\x2d\x2d\x20\x47\x65\x6e\x65\
+\x72\x61\x74\x6f\x72\x3a\x20\x41\x64\x6f\x62\x65\x20\x49\x6c\x6c\
+\x75\x73\x74\x72\x61\x74\x6f\x72\x20\x31\x38\x2e\x31\x2e\x31\x2c\
+\x20\x53\x56\x47\x20\x45\x78\x70\x6f\x72\x74\x20\x50\x6c\x75\x67\
+\x2d\x49\x6e\x20\x2e\x20\x53\x56\x47\x20\x56\x65\x72\x73\x69\x6f\
+\x6e\x3a\x20\x36\x2e\x30\x30\x20\x42\x75\x69\x6c\x64\x20\x30\x29\
+\x20\x20\x2d\x2d\x3e\x0d\x0a\x3c\x21\x44\x4f\x43\x54\x59\x50\x45\
+\x20\x73\x76\x67\x20\x50\x55\x42\x4c\x49\x43\x20\x22\x2d\x2f\x2f\
+\x57\x33\x43\x2f\x2f\x44\x54\x44\x20\x53\x56\x47\x20\x31\x2e\x31\
+\x2f\x2f\x45\x4e\x22\x20\x22\x68\x74\x74\x70\x3a\x2f\x2f\x77\x77\
+\x77\x2e\x77\x33\x2e\x6f\x72\x67\x2f\x47\x72\x61\x70\x68\x69\x63\
+\x73\x2f\x53\x56\x47\x2f\x31\x2e\x31\x2f\x44\x54\x44\x2f\x73\x76\
+\x67\x31\x31\x2e\x64\x74\x64\x22\x3e\x0d\x0a\x3c\x73\x76\x67\x20\
+\x76\x65\x72\x73\x69\x6f\x6e\x3d\x22\x31\x2e\x31\x22\x20\x69\x64\
+\x3d\x22\x43\x68\x65\x76\x72\x6f\x6e\x5f\x63\x69\x72\x63\x6c\x65\
+\x64\x5f\x72\x69\x67\x68\x74\x22\x20\x78\x6d\x6c\x6e\x73\x3d\x22\
+\x68\x74\x74\x70\x3a\x2f\x2f\x77\x77\x77\x2e\x77\x33\x2e\x6f\x72\
+\x67\x2f\x32\x30\x30\x30\x2f\x73\x76\x67\x22\x20\x78\x6d\x6c\x6e\
+\x73\x3a\x78\x6c\x69\x6e\x6b\x3d\x22\x68\x74\x74\x70\x3a\x2f\x2f\
+\x77\x77\x77\x2e\x77\x33\x2e\x6f\x72\x67\x2f\x31\x39\x39\x39\x2f\
+\x78\x6c\x69\x6e\x6b\x22\x0d\x0a\x09\x20\x78\x3d\x22\x30\x70\x78\
+\x22\x20\x79\x3d\x22\x30\x70\x78\x22\x20\x76\x69\x65\x77\x42\x6f\
+\x78\x3d\x22\x30\x20\x30\x20\x35\x31\x32\x20\x35\x31\x32\x22\x20\
+\x65\x6e\x61\x62\x6c\x65\x2d\x62\x61\x63\x6b\x67\x72\x6f\x75\x6e\
+\x64\x3d\x22\x6e\x65\x77\x20\x30\x20\x30\x20\x35\x31\x32\x20\x35\
+\x31\x32\x22\x20\x78\x6d\x6c\x3a\x73\x70\x61\x63\x65\x3d\x22\x70\
+\x72\x65\x73\x65\x72\x76\x65\x22\x3e\x0d\x0a\x3c\x67\x20\x74\x72\
+\x61\x6e\x73\x66\x6f\x72\x6d\x3d\x27\x6d\x61\x74\x72\x69\x78\x28\
+\x32\x34\x20\x30\x20\x30\x20\x32\x34\x20\x30\x20\x30\x29\x27\x3e\
+\x0d\x0a\x3c\x70\x61\x74\x68\x20\x64\x3d\x22\x4d\x31\x31\x2c\x31\
+\x30\x4c\x38\x2e\x36\x39\x38\x2c\x37\x2e\x34\x39\x34\x63\x2d\x30\
+\x2e\x31\x39\x36\x2d\x30\x2e\x31\x39\x38\x2d\x30\x2e\x31\x39\x36\
+\x2d\x30\x2e\x35\x31\x39\x2c\x30\x2d\x30\x2e\x37\x31\x38\x63\x30\
+\x2e\x31\x39\x36\x2d\x30\x2e\x31\x39\x37\x2c\x30\x2e\x35\x31\x35\
+\x2d\x30\x2e\x31\x39\x37\x2c\x30\x2e\x37\x31\x2c\x30\x6c\x32\x2e\
+\x38\x30\x37\x2c\x32\x2e\x38\x36\x34\x0d\x0a\x09\x63\x30\x2e\x31\
+\x39\x36\x2c\x30\x2e\x31\x39\x39\x2c\x30\x2e\x31\x39\x36\x2c\x30\
+\x2e\x35\x32\x2c\x30\x2c\x30\x2e\x37\x31\x37\x6c\x2d\x32\x2e\x38\
+\x30\x37\x2c\x32\x2e\x38\x36\x34\x63\x2d\x30\x2e\x31\x39\x35\x2c\
+\x30\x2e\x31\x39\x39\x2d\x30\x2e\x35\x31\x34\x2c\x30\x2e\x31\x39\
+\x38\x2d\x30\x2e\x37\x31\x2c\x30\x63\x2d\x30\x2e\x31\x39\x36\x2d\
+\x30\x2e\x31\x39\x37\x2d\x30\x2e\x31\x39\x36\x2d\x30\x2e\x35\x31\
+\x38\x2c\x30\x2d\x30\x2e\x37\x31\x37\x4c\x31\x31\x2c\x31\x30\x7a\
+\x20\x4d\x31\x30\x2c\x30\x2e\x34\x0d\x0a\x09\x63\x35\x2e\x33\x30\
+\x32\x2c\x30\x2c\x39\x2e\x36\x2c\x34\x2e\x32\x39\x38\x2c\x39\x2e\
+\x36\x2c\x39\x2e\x36\x63\x30\x2c\x35\x2e\x33\x30\x33\x2d\x34\x2e\
+\x32\x39\x38\x2c\x39\x2e\x36\x2d\x39\x2e\x36\x2c\x39\x2e\x36\x53\
+\x30\x2e\x34\x2c\x31\x35\x2e\x33\x30\x33\x2c\x30\x2e\x34\x2c\x31\
+\x30\x43\x30\x2e\x34\x2c\x34\x2e\x36\x39\x38\x2c\x34\x2e\x36\x39\
+\x38\x2c\x30\x2e\x34\x2c\x31\x30\x2c\x30\x2e\x34\x7a\x20\x4d\x31\
+\x30\x2c\x31\x38\x2e\x33\x35\x34\x0d\x0a\x09\x63\x34\x2e\x36\x31\
+\x33\x2c\x30\x2c\x38\x2e\x33\x35\x34\x2d\x33\x2e\x37\x34\x2c\x38\
+\x2e\x33\x35\x34\x2d\x38\x2e\x33\x35\x34\x63\x30\x2d\x34\x2e\x36\
+\x31\x34\x2d\x33\x2e\x37\x34\x31\x2d\x38\x2e\x33\x35\x34\x2d\x38\
+\x2e\x33\x35\x34\x2d\x38\x2e\x33\x35\x34\x63\x2d\x34\x2e\x36\x31\
+\x35\x2c\x30\x2d\x38\x2e\x33\x35\x34\x2c\x33\x2e\x37\x34\x2d\x38\
+\x2e\x33\x35\x34\x2c\x38\x2e\x33\x35\x34\x0d\x0a\x09\x43\x31\x2e\
+\x36\x34\x35\x2c\x31\x34\x2e\x36\x31\x34\x2c\x35\x2e\x33\x38\x35\
+\x2c\x31\x38\x2e\x33\x35\x34\x2c\x31\x30\x2c\x31\x38\x2e\x33\x35\
+\x34\x7a\x22\x2f\x3e\x0d\x0a\x3c\x2f\x67\x3e\x0d\x0a\x3c\x2f\x73\
+\x76\x67\x3e\x0d\x0a\
\x00\x00\x07\x80\
\x3c\
\x3f\x78\x6d\x6c\x20\x76\x65\x72\x73\x69\x6f\x6e\x3d\x22\x31\x2e\
@@ -556,152 +1439,12 @@
\x38\x2e\x32\x37\x34\x2c\x33\x38\x32\x2e\x38\x32\x2c\x33\x30\x37\
\x2e\x38\x36\x37\x2c\x33\x38\x32\x2e\x38\x32\x7a\x22\x2f\x3e\x0d\
\x0a\x3c\x2f\x67\x3e\x0d\x0a\x3c\x2f\x73\x76\x67\x3e\x0d\x0a\
-\x00\x00\x03\xc4\
+\x00\x00\x03\xeb\
\x3c\
\x3f\x78\x6d\x6c\x20\x76\x65\x72\x73\x69\x6f\x6e\x3d\x22\x31\x2e\
\x30\x22\x20\x65\x6e\x63\x6f\x64\x69\x6e\x67\x3d\x22\x75\x74\x66\
\x2d\x38\x22\x3f\x3e\x0d\x0a\x3c\x21\x2d\x2d\x20\x47\x65\x6e\x65\
\x72\x61\x74\x6f\x72\x3a\x20\x41\x64\x6f\x62\x65\x20\x49\x6c\x6c\
-\x75\x73\x74\x72\x61\x74\x6f\x72\x20\x31\x38\x2e\x31\x2e\x30\x2c\
-\x20\x53\x56\x47\x20\x45\x78\x70\x6f\x72\x74\x20\x50\x6c\x75\x67\
-\x2d\x49\x6e\x20\x2e\x20\x53\x56\x47\x20\x56\x65\x72\x73\x69\x6f\
-\x6e\x3a\x20\x36\x2e\x30\x30\x20\x42\x75\x69\x6c\x64\x20\x30\x29\
-\x20\x20\x2d\x2d\x3e\x0d\x0a\x3c\x21\x44\x4f\x43\x54\x59\x50\x45\
-\x20\x73\x76\x67\x20\x50\x55\x42\x4c\x49\x43\x20\x22\x2d\x2f\x2f\
-\x57\x33\x43\x2f\x2f\x44\x54\x44\x20\x53\x56\x47\x20\x31\x2e\x31\
-\x2f\x2f\x45\x4e\x22\x20\x22\x68\x74\x74\x70\x3a\x2f\x2f\x77\x77\
-\x77\x2e\x77\x33\x2e\x6f\x72\x67\x2f\x47\x72\x61\x70\x68\x69\x63\
-\x73\x2f\x53\x56\x47\x2f\x31\x2e\x31\x2f\x44\x54\x44\x2f\x73\x76\
-\x67\x31\x31\x2e\x64\x74\x64\x22\x3e\x0d\x0a\x3c\x73\x76\x67\x20\
-\x76\x65\x72\x73\x69\x6f\x6e\x3d\x22\x31\x2e\x31\x22\x20\x69\x64\
-\x3d\x22\x4d\x61\x67\x6e\x69\x66\x79\x69\x6e\x67\x5f\x67\x6c\x61\
-\x73\x73\x22\x20\x78\x6d\x6c\x6e\x73\x3d\x22\x68\x74\x74\x70\x3a\
-\x2f\x2f\x77\x77\x77\x2e\x77\x33\x2e\x6f\x72\x67\x2f\x32\x30\x30\
-\x30\x2f\x73\x76\x67\x22\x20\x78\x6d\x6c\x6e\x73\x3a\x78\x6c\x69\
-\x6e\x6b\x3d\x22\x68\x74\x74\x70\x3a\x2f\x2f\x77\x77\x77\x2e\x77\
-\x33\x2e\x6f\x72\x67\x2f\x31\x39\x39\x39\x2f\x78\x6c\x69\x6e\x6b\
-\x22\x20\x78\x3d\x22\x30\x70\x78\x22\x0d\x0a\x09\x20\x79\x3d\x22\
-\x30\x70\x78\x22\x20\x76\x69\x65\x77\x42\x6f\x78\x3d\x22\x30\x20\
-\x30\x20\x35\x31\x32\x20\x35\x31\x32\x22\x20\x65\x6e\x61\x62\x6c\
-\x65\x2d\x62\x61\x63\x6b\x67\x72\x6f\x75\x6e\x64\x3d\x22\x6e\x65\
-\x77\x20\x30\x20\x30\x20\x35\x31\x32\x20\x35\x31\x32\x22\x20\x78\
-\x6d\x6c\x3a\x73\x70\x61\x63\x65\x3d\x22\x70\x72\x65\x73\x65\x72\
-\x76\x65\x22\x3e\x0d\x0a\x3c\x67\x20\x74\x72\x61\x6e\x73\x66\x6f\
-\x72\x6d\x3d\x27\x6d\x61\x74\x72\x69\x78\x28\x32\x34\x20\x30\x20\
-\x30\x20\x32\x34\x20\x30\x20\x30\x29\x27\x3e\x0d\x0a\x3c\x70\x61\
-\x74\x68\x20\x64\x3d\x22\x4d\x31\x37\x2e\x35\x34\x35\x2c\x31\x35\
-\x2e\x34\x36\x37\x6c\x2d\x33\x2e\x37\x37\x39\x2d\x33\x2e\x37\x37\
-\x39\x63\x30\x2e\x35\x37\x2d\x30\x2e\x39\x33\x35\x2c\x30\x2e\x38\
-\x39\x38\x2d\x32\x2e\x30\x33\x35\x2c\x30\x2e\x38\x39\x38\x2d\x33\
-\x2e\x32\x31\x63\x30\x2d\x33\x2e\x34\x31\x37\x2d\x32\x2e\x39\x36\
-\x31\x2d\x36\x2e\x33\x37\x37\x2d\x36\x2e\x33\x37\x38\x2d\x36\x2e\
-\x33\x37\x37\x0d\x0a\x09\x43\x34\x2e\x38\x36\x39\x2c\x32\x2e\x31\
-\x2c\x32\x2e\x31\x2c\x34\x2e\x38\x37\x2c\x32\x2e\x31\x2c\x38\x2e\
-\x32\x38\x37\x63\x30\x2c\x33\x2e\x34\x31\x36\x2c\x32\x2e\x39\x36\
-\x31\x2c\x36\x2e\x33\x37\x37\x2c\x36\x2e\x33\x37\x37\x2c\x36\x2e\
-\x33\x37\x37\x63\x31\x2e\x31\x33\x37\x2c\x30\x2c\x32\x2e\x32\x2d\
-\x30\x2e\x33\x30\x39\x2c\x33\x2e\x31\x31\x35\x2d\x30\x2e\x38\x34\
-\x34\x6c\x33\x2e\x37\x39\x39\x2c\x33\x2e\x38\x30\x31\x0d\x0a\x09\
-\x63\x30\x2e\x33\x37\x32\x2c\x30\x2e\x33\x37\x31\x2c\x30\x2e\x39\
-\x37\x35\x2c\x30\x2e\x33\x37\x31\x2c\x31\x2e\x33\x34\x36\x2c\x30\
-\x6c\x30\x2e\x39\x34\x33\x2d\x30\x2e\x39\x34\x33\x43\x31\x38\x2e\
-\x30\x35\x31\x2c\x31\x36\x2e\x33\x30\x37\x2c\x31\x37\x2e\x39\x31\
-\x36\x2c\x31\x35\x2e\x38\x33\x38\x2c\x31\x37\x2e\x35\x34\x35\x2c\
-\x31\x35\x2e\x34\x36\x37\x7a\x20\x4d\x34\x2e\x30\x30\x34\x2c\x38\
-\x2e\x32\x38\x37\x0d\x0a\x09\x63\x30\x2d\x32\x2e\x33\x36\x36\x2c\
-\x31\x2e\x39\x31\x37\x2d\x34\x2e\x32\x38\x33\x2c\x34\x2e\x32\x38\
-\x32\x2d\x34\x2e\x32\x38\x33\x63\x32\x2e\x33\x36\x36\x2c\x30\x2c\
-\x34\x2e\x34\x37\x34\x2c\x32\x2e\x31\x30\x37\x2c\x34\x2e\x34\x37\
-\x34\x2c\x34\x2e\x34\x37\x34\x63\x30\x2c\x32\x2e\x33\x36\x35\x2d\
-\x31\x2e\x39\x31\x38\x2c\x34\x2e\x32\x38\x33\x2d\x34\x2e\x32\x38\
-\x33\x2c\x34\x2e\x32\x38\x33\x0d\x0a\x09\x43\x36\x2e\x31\x31\x31\
-\x2c\x31\x32\x2e\x37\x36\x2c\x34\x2e\x30\x30\x34\x2c\x31\x30\x2e\
-\x36\x35\x32\x2c\x34\x2e\x30\x30\x34\x2c\x38\x2e\x32\x38\x37\x7a\
-\x22\x2f\x3e\x0d\x0a\x3c\x2f\x67\x3e\x0d\x0a\x3c\x2f\x73\x76\x67\
-\x3e\x0d\x0a\
-\x00\x00\x04\xaa\
-\x3c\
-\x3f\x78\x6d\x6c\x20\x76\x65\x72\x73\x69\x6f\x6e\x3d\x22\x31\x2e\
-\x30\x22\x20\x65\x6e\x63\x6f\x64\x69\x6e\x67\x3d\x22\x75\x74\x66\
-\x2d\x38\x22\x3f\x3e\x0d\x0a\x3c\x21\x2d\x2d\x20\x47\x65\x6e\x65\
-\x72\x61\x74\x6f\x72\x3a\x20\x41\x64\x6f\x62\x65\x20\x49\x6c\x6c\
-\x75\x73\x74\x72\x61\x74\x6f\x72\x20\x31\x38\x2e\x31\x2e\x30\x2c\
-\x20\x53\x56\x47\x20\x45\x78\x70\x6f\x72\x74\x20\x50\x6c\x75\x67\
-\x2d\x49\x6e\x20\x2e\x20\x53\x56\x47\x20\x56\x65\x72\x73\x69\x6f\
-\x6e\x3a\x20\x36\x2e\x30\x30\x20\x42\x75\x69\x6c\x64\x20\x30\x29\
-\x20\x20\x2d\x2d\x3e\x0d\x0a\x3c\x21\x44\x4f\x43\x54\x59\x50\x45\
-\x20\x73\x76\x67\x20\x50\x55\x42\x4c\x49\x43\x20\x22\x2d\x2f\x2f\
-\x57\x33\x43\x2f\x2f\x44\x54\x44\x20\x53\x56\x47\x20\x31\x2e\x31\
-\x2f\x2f\x45\x4e\x22\x20\x22\x68\x74\x74\x70\x3a\x2f\x2f\x77\x77\
-\x77\x2e\x77\x33\x2e\x6f\x72\x67\x2f\x47\x72\x61\x70\x68\x69\x63\
-\x73\x2f\x53\x56\x47\x2f\x31\x2e\x31\x2f\x44\x54\x44\x2f\x73\x76\
-\x67\x31\x31\x2e\x64\x74\x64\x22\x3e\x0d\x0a\x3c\x73\x76\x67\x20\
-\x76\x65\x72\x73\x69\x6f\x6e\x3d\x22\x31\x2e\x31\x22\x20\x69\x64\
-\x3d\x22\x43\x6f\x64\x65\x22\x20\x78\x6d\x6c\x6e\x73\x3d\x22\x68\
-\x74\x74\x70\x3a\x2f\x2f\x77\x77\x77\x2e\x77\x33\x2e\x6f\x72\x67\
-\x2f\x32\x30\x30\x30\x2f\x73\x76\x67\x22\x20\x78\x6d\x6c\x6e\x73\
-\x3a\x78\x6c\x69\x6e\x6b\x3d\x22\x68\x74\x74\x70\x3a\x2f\x2f\x77\
-\x77\x77\x2e\x77\x33\x2e\x6f\x72\x67\x2f\x31\x39\x39\x39\x2f\x78\
-\x6c\x69\x6e\x6b\x22\x20\x78\x3d\x22\x32\x34\x70\x78\x22\x20\x79\
-\x3d\x22\x32\x34\x70\x78\x22\x0d\x0a\x09\x20\x76\x69\x65\x77\x42\
-\x6f\x78\x3d\x22\x30\x20\x30\x20\x35\x31\x32\x20\x35\x31\x32\x22\
-\x20\x65\x6e\x61\x62\x6c\x65\x2d\x62\x61\x63\x6b\x67\x72\x6f\x75\
-\x6e\x64\x3d\x22\x6e\x65\x77\x20\x30\x20\x30\x20\x35\x31\x32\x20\
-\x35\x31\x32\x22\x20\x78\x6d\x6c\x3a\x73\x70\x61\x63\x65\x3d\x22\
-\x70\x72\x65\x73\x65\x72\x76\x65\x22\x3e\x0d\x0a\x3c\x67\x20\x74\
-\x72\x61\x6e\x73\x66\x6f\x72\x6d\x3d\x27\x6d\x61\x74\x72\x69\x78\
-\x28\x32\x34\x20\x30\x20\x30\x20\x32\x34\x20\x30\x20\x30\x29\x27\
-\x3e\x3c\x70\x61\x74\x68\x20\x64\x3d\x22\x4d\x35\x2e\x37\x31\x39\
-\x2c\x31\x34\x2e\x37\x35\x63\x2d\x30\x2e\x32\x33\x36\x2c\x30\x2d\
-\x30\x2e\x34\x37\x34\x2d\x30\x2e\x30\x38\x33\x2d\x30\x2e\x36\x36\
-\x34\x2d\x30\x2e\x32\x35\x32\x4c\x2d\x30\x2e\x30\x30\x35\x2c\x31\
-\x30\x6c\x35\x2e\x33\x34\x31\x2d\x34\x2e\x37\x34\x38\x43\x35\x2e\
-\x37\x34\x38\x2c\x34\x2e\x38\x38\x37\x2c\x36\x2e\x33\x38\x2c\x34\
-\x2e\x39\x32\x32\x2c\x36\x2e\x37\x34\x37\x2c\x35\x2e\x33\x33\x35\
-\x0d\x0a\x09\x63\x30\x2e\x33\x36\x37\x2c\x30\x2e\x34\x31\x33\x2c\
-\x30\x2e\x33\x33\x2c\x31\x2e\x30\x34\x35\x2d\x30\x2e\x30\x38\x33\
-\x2c\x31\x2e\x34\x31\x32\x4c\x33\x2e\x30\x30\x35\x2c\x31\x30\x6c\
-\x33\x2e\x33\x37\x38\x2c\x33\x2e\x30\x30\x32\x63\x30\x2e\x34\x31\
-\x33\x2c\x30\x2e\x33\x36\x37\x2c\x30\x2e\x34\x35\x2c\x30\x2e\x39\
-\x39\x39\x2c\x30\x2e\x30\x38\x33\x2c\x31\x2e\x34\x31\x32\x0d\x0a\
-\x09\x43\x36\x2e\x32\x36\x39\x2c\x31\x34\x2e\x36\x33\x37\x2c\x35\
-\x2e\x39\x39\x34\x2c\x31\x34\x2e\x37\x35\x2c\x35\x2e\x37\x31\x39\
-\x2c\x31\x34\x2e\x37\x35\x7a\x20\x4d\x31\x34\x2e\x36\x36\x34\x2c\
-\x31\x34\x2e\x37\x34\x38\x4c\x32\x30\x2e\x30\x30\x35\x2c\x31\x30\
-\x6c\x2d\x35\x2e\x30\x36\x2d\x34\x2e\x34\x39\x38\x63\x2d\x30\x2e\
-\x34\x31\x33\x2d\x30\x2e\x33\x36\x37\x2d\x31\x2e\x30\x34\x35\x2d\
-\x30\x2e\x33\x33\x2d\x31\x2e\x34\x31\x31\x2c\x30\x2e\x30\x38\x33\
-\x0d\x0a\x09\x63\x2d\x30\x2e\x33\x36\x37\x2c\x30\x2e\x34\x31\x33\
-\x2d\x30\x2e\x33\x33\x2c\x31\x2e\x30\x34\x35\x2c\x30\x2e\x30\x38\
-\x33\x2c\x31\x2e\x34\x31\x32\x4c\x31\x36\x2e\x39\x39\x35\x2c\x31\
-\x30\x6c\x2d\x33\x2e\x36\x35\x39\x2c\x33\x2e\x32\x35\x32\x63\x2d\
-\x30\x2e\x34\x31\x33\x2c\x30\x2e\x33\x36\x37\x2d\x30\x2e\x34\x35\
-\x2c\x30\x2e\x39\x39\x39\x2d\x30\x2e\x30\x38\x33\x2c\x31\x2e\x34\
-\x31\x32\x43\x31\x33\x2e\x34\x35\x2c\x31\x34\x2e\x38\x38\x37\x2c\
-\x31\x33\x2e\x37\x32\x35\x2c\x31\x35\x2c\x31\x34\x2c\x31\x35\x0d\
-\x0a\x09\x43\x31\x34\x2e\x32\x33\x36\x2c\x31\x35\x2c\x31\x34\x2e\
-\x34\x37\x34\x2c\x31\x34\x2e\x39\x31\x37\x2c\x31\x34\x2e\x36\x36\
-\x34\x2c\x31\x34\x2e\x37\x34\x38\x7a\x20\x4d\x39\x2e\x39\x38\x36\
-\x2c\x31\x36\x2e\x31\x36\x35\x6c\x32\x2d\x31\x32\x63\x30\x2e\x30\
-\x39\x31\x2d\x30\x2e\x35\x34\x35\x2d\x30\x2e\x32\x37\x37\x2d\x31\
-\x2e\x30\x36\x2d\x30\x2e\x38\x32\x32\x2d\x31\x2e\x31\x35\x31\x0d\
-\x0a\x09\x63\x2d\x30\x2e\x35\x34\x37\x2d\x30\x2e\x30\x39\x32\x2d\
-\x31\x2e\x30\x36\x31\x2c\x30\x2e\x32\x37\x37\x2d\x31\x2e\x31\x35\
-\x2c\x30\x2e\x38\x32\x32\x6c\x2d\x32\x2c\x31\x32\x63\x2d\x30\x2e\
-\x30\x39\x31\x2c\x30\x2e\x35\x34\x35\x2c\x30\x2e\x32\x37\x37\x2c\
-\x31\x2e\x30\x36\x2c\x30\x2e\x38\x32\x32\x2c\x31\x2e\x31\x35\x31\
-\x43\x38\x2e\x38\x39\x32\x2c\x31\x36\x2e\x39\x39\x36\x2c\x38\x2e\
-\x39\x34\x36\x2c\x31\x37\x2c\x39\x2e\x30\x30\x31\x2c\x31\x37\x0d\
-\x0a\x09\x43\x39\x2e\x34\x38\x31\x2c\x31\x37\x2c\x39\x2e\x39\x30\
-\x35\x2c\x31\x36\x2e\x36\x35\x33\x2c\x39\x2e\x39\x38\x36\x2c\x31\
-\x36\x2e\x31\x36\x35\x7a\x22\x2f\x3e\x0d\x0a\x3c\x2f\x67\x3e\x0d\
-\x0a\x3c\x2f\x73\x76\x67\x3e\x0d\x0a\
-\x00\x00\x03\x26\
-\x3c\
-\x3f\x78\x6d\x6c\x20\x76\x65\x72\x73\x69\x6f\x6e\x3d\x22\x31\x2e\
-\x30\x22\x20\x65\x6e\x63\x6f\x64\x69\x6e\x67\x3d\x22\x75\x74\x66\
-\x2d\x38\x22\x3f\x3e\x0d\x0a\x3c\x21\x2d\x2d\x20\x47\x65\x6e\x65\
-\x72\x61\x74\x6f\x72\x3a\x20\x41\x64\x6f\x62\x65\x20\x49\x6c\x6c\
\x75\x73\x74\x72\x61\x74\x6f\x72\x20\x31\x36\x2e\x32\x2e\x31\x2c\
\x20\x53\x56\x47\x20\x45\x78\x70\x6f\x72\x74\x20\x50\x6c\x75\x67\
\x2d\x49\x6e\x20\x2e\x20\x53\x56\x47\x20\x56\x65\x72\x73\x69\x6f\
@@ -723,32 +1466,44 @@
\x20\x79\x3d\x22\x30\x70\x78\x22\x0d\x0a\x09\x20\x77\x69\x64\x74\
\x68\x3d\x22\x35\x31\x32\x70\x78\x22\x20\x68\x65\x69\x67\x68\x74\
\x3d\x22\x35\x31\x32\x70\x78\x22\x20\x76\x69\x65\x77\x42\x6f\x78\
-\x3d\x22\x30\x20\x30\x20\x35\x31\x32\x20\x35\x31\x32\x22\x20\x65\
-\x6e\x61\x62\x6c\x65\x2d\x62\x61\x63\x6b\x67\x72\x6f\x75\x6e\x64\
-\x3d\x22\x6e\x65\x77\x20\x30\x20\x30\x20\x35\x31\x32\x20\x35\x31\
-\x32\x22\x20\x78\x6d\x6c\x3a\x73\x70\x61\x63\x65\x3d\x22\x70\x72\
-\x65\x73\x65\x72\x76\x65\x22\x3e\x0d\x0a\x3c\x67\x3e\x0d\x0a\x09\
-\x3c\x70\x61\x74\x68\x20\x64\x3d\x22\x4d\x32\x35\x36\x2c\x33\x38\
-\x38\x63\x2d\x37\x32\x2e\x35\x39\x37\x2c\x30\x2d\x31\x33\x32\x2d\
-\x35\x39\x2e\x34\x30\x35\x2d\x31\x33\x32\x2d\x31\x33\x32\x63\x30\
-\x2d\x37\x32\x2e\x36\x30\x31\x2c\x35\x39\x2e\x34\x30\x33\x2d\x31\
-\x33\x32\x2c\x31\x33\x32\x2d\x31\x33\x32\x63\x33\x36\x2e\x33\x2c\
-\x30\x2c\x36\x39\x2e\x32\x39\x39\x2c\x31\x35\x2e\x34\x2c\x39\x32\
-\x2e\x34\x30\x36\x2c\x33\x39\x2e\x36\x30\x31\x4c\x32\x37\x38\x2c\
-\x32\x33\x34\x68\x31\x35\x34\x56\x38\x30\x0d\x0a\x09\x09\x6c\x2d\
-\x35\x31\x2e\x36\x39\x38\x2c\x35\x31\x2e\x37\x30\x32\x43\x33\x34\
-\x38\x2e\x34\x30\x36\x2c\x39\x39\x2e\x37\x39\x38\x2c\x33\x30\x34\
-\x2e\x34\x30\x36\x2c\x38\x30\x2c\x32\x35\x36\x2c\x38\x30\x63\x2d\
-\x39\x36\x2e\x37\x39\x37\x2c\x30\x2d\x31\x37\x36\x2c\x37\x39\x2e\
-\x32\x30\x33\x2d\x31\x37\x36\x2c\x31\x37\x36\x73\x37\x38\x2e\x30\
-\x39\x34\x2c\x31\x37\x36\x2c\x31\x37\x36\x2c\x31\x37\x36\x0d\x0a\
-\x09\x09\x63\x38\x31\x2e\x30\x34\x35\x2c\x30\x2c\x31\x34\x38\x2e\
-\x32\x38\x37\x2d\x35\x34\x2e\x31\x33\x34\x2c\x31\x36\x39\x2e\x34\
-\x30\x31\x2d\x31\x32\x38\x48\x33\x37\x38\x2e\x38\x35\x43\x33\x36\
-\x30\x2e\x31\x30\x35\x2c\x33\x35\x33\x2e\x35\x36\x31\x2c\x33\x31\
-\x31\x2e\x37\x31\x32\x2c\x33\x38\x38\x2c\x32\x35\x36\x2c\x33\x38\
-\x38\x7a\x22\x2f\x3e\x0d\x0a\x3c\x2f\x67\x3e\x0d\x0a\x3c\x2f\x73\
-\x76\x67\x3e\x0d\x0a\
+\x3d\x22\x30\x20\x30\x20\x35\x31\x32\x20\x35\x31\x32\x22\x20\x73\
+\x74\x79\x6c\x65\x3d\x22\x65\x6e\x61\x62\x6c\x65\x2d\x62\x61\x63\
+\x6b\x67\x72\x6f\x75\x6e\x64\x3a\x6e\x65\x77\x20\x30\x20\x30\x20\
+\x35\x31\x32\x20\x35\x31\x32\x3b\x22\x20\x78\x6d\x6c\x3a\x73\x70\
+\x61\x63\x65\x3d\x22\x70\x72\x65\x73\x65\x72\x76\x65\x22\x3e\x0d\
+\x0a\x3c\x67\x3e\x0d\x0a\x09\x3c\x70\x61\x74\x68\x20\x64\x3d\x22\
+\x4d\x32\x35\x36\x2c\x31\x32\x38\x63\x2d\x38\x31\x2e\x39\x2c\x30\
+\x2d\x31\x34\x35\x2e\x37\x2c\x34\x38\x2e\x38\x2d\x32\x32\x34\x2c\
+\x31\x32\x38\x63\x36\x37\x2e\x34\x2c\x36\x37\x2e\x37\x2c\x31\x32\
+\x34\x2c\x31\x32\x38\x2c\x32\x32\x34\x2c\x31\x32\x38\x63\x39\x39\
+\x2e\x39\x2c\x30\x2c\x31\x37\x33\x2e\x34\x2d\x37\x36\x2e\x34\x2c\
+\x32\x32\x34\x2d\x31\x32\x36\x2e\x36\x0d\x0a\x09\x09\x43\x34\x32\
+\x38\x2e\x32\x2c\x31\x39\x38\x2e\x36\x2c\x33\x35\x34\x2e\x38\x2c\
+\x31\x32\x38\x2c\x32\x35\x36\x2c\x31\x32\x38\x7a\x20\x4d\x32\x35\
+\x36\x2c\x33\x34\x37\x2e\x33\x63\x2d\x34\x39\x2e\x34\x2c\x30\x2d\
+\x38\x39\x2e\x36\x2d\x34\x31\x2d\x38\x39\x2e\x36\x2d\x39\x31\x2e\
+\x33\x63\x30\x2d\x35\x30\x2e\x34\x2c\x34\x30\x2e\x32\x2d\x39\x31\
+\x2e\x33\x2c\x38\x39\x2e\x36\x2d\x39\x31\x2e\x33\x73\x38\x39\x2e\
+\x36\x2c\x34\x31\x2c\x38\x39\x2e\x36\x2c\x39\x31\x2e\x33\x0d\x0a\
+\x09\x09\x43\x33\x34\x35\x2e\x36\x2c\x33\x30\x36\x2e\x34\x2c\x33\
+\x30\x35\x2e\x34\x2c\x33\x34\x37\x2e\x33\x2c\x32\x35\x36\x2c\x33\
+\x34\x37\x2e\x33\x7a\x22\x2f\x3e\x0d\x0a\x09\x3c\x67\x3e\x0d\x0a\
+\x09\x09\x3c\x70\x61\x74\x68\x20\x64\x3d\x22\x4d\x32\x35\x36\x2c\
+\x32\x32\x34\x63\x30\x2d\x37\x2e\x39\x2c\x32\x2e\x39\x2d\x31\x35\
+\x2e\x31\x2c\x37\x2e\x36\x2d\x32\x30\x2e\x37\x63\x2d\x32\x2e\x35\
+\x2d\x30\x2e\x34\x2d\x35\x2d\x30\x2e\x36\x2d\x37\x2e\x36\x2d\x30\
+\x2e\x36\x63\x2d\x32\x38\x2e\x38\x2c\x30\x2d\x35\x32\x2e\x33\x2c\
+\x32\x33\x2e\x39\x2d\x35\x32\x2e\x33\x2c\x35\x33\x2e\x33\x63\x30\
+\x2c\x32\x39\x2e\x34\x2c\x32\x33\x2e\x35\x2c\x35\x33\x2e\x33\x2c\
+\x35\x32\x2e\x33\x2c\x35\x33\x2e\x33\x0d\x0a\x09\x09\x09\x73\x35\
+\x32\x2e\x33\x2d\x32\x33\x2e\x39\x2c\x35\x32\x2e\x33\x2d\x35\x33\
+\x2e\x33\x63\x30\x2d\x32\x2e\x33\x2d\x30\x2e\x32\x2d\x34\x2e\x36\
+\x2d\x30\x2e\x34\x2d\x36\x2e\x39\x63\x2d\x35\x2e\x35\x2c\x34\x2e\
+\x33\x2d\x31\x32\x2e\x33\x2c\x36\x2e\x39\x2d\x31\x39\x2e\x38\x2c\
+\x36\x2e\x39\x43\x32\x37\x30\x2e\x33\x2c\x32\x35\x36\x2c\x32\x35\
+\x36\x2c\x32\x34\x31\x2e\x37\x2c\x32\x35\x36\x2c\x32\x32\x34\x7a\
+\x22\x2f\x3e\x0d\x0a\x09\x3c\x2f\x67\x3e\x0d\x0a\x3c\x2f\x67\x3e\
+\x0d\x0a\x3c\x2f\x73\x76\x67\x3e\x0d\x0a\
\x00\x00\x02\xa2\
\x3c\
\x3f\x78\x6d\x6c\x20\x76\x65\x72\x73\x69\x6f\x6e\x3d\x22\x31\x2e\
@@ -794,182 +1549,26 @@
\x48\x39\x36\x76\x33\x32\x68\x33\x32\x30\x56\x39\x36\x7a\x22\x2f\
\x3e\x0d\x0a\x3c\x2f\x67\x3e\x0d\x0a\x3c\x2f\x73\x76\x67\x3e\x0d\
\x0a\
-\x00\x00\x04\xd5\
+\x00\x00\x01\x1c\
\x3c\
-\x3f\x78\x6d\x6c\x20\x76\x65\x72\x73\x69\x6f\x6e\x3d\x27\x31\x2e\
-\x30\x27\x20\x65\x6e\x63\x6f\x64\x69\x6e\x67\x3d\x27\x55\x54\x46\
-\x2d\x38\x27\x3f\x3e\x0a\x3c\x21\x2d\x2d\x20\x54\x68\x69\x73\x20\
-\x66\x69\x6c\x65\x20\x77\x61\x73\x20\x67\x65\x6e\x65\x72\x61\x74\
-\x65\x64\x20\x62\x79\x20\x64\x76\x69\x73\x76\x67\x6d\x20\x32\x2e\
-\x38\x20\x2d\x2d\x3e\x0a\x3c\x73\x76\x67\x20\x76\x65\x72\x73\x69\
-\x6f\x6e\x3d\x27\x31\x2e\x31\x27\x20\x78\x6d\x6c\x6e\x73\x3d\x27\
-\x68\x74\x74\x70\x3a\x2f\x2f\x77\x77\x77\x2e\x77\x33\x2e\x6f\x72\
-\x67\x2f\x32\x30\x30\x30\x2f\x73\x76\x67\x27\x20\x78\x6d\x6c\x6e\
-\x73\x3a\x78\x6c\x69\x6e\x6b\x3d\x27\x68\x74\x74\x70\x3a\x2f\x2f\
-\x77\x77\x77\x2e\x77\x33\x2e\x6f\x72\x67\x2f\x31\x39\x39\x39\x2f\
-\x78\x6c\x69\x6e\x6b\x27\x20\x77\x69\x64\x74\x68\x3d\x27\x36\x33\
-\x2e\x39\x39\x39\x36\x70\x74\x27\x20\x68\x65\x69\x67\x68\x74\x3d\
-\x27\x36\x33\x2e\x39\x39\x39\x37\x70\x74\x27\x20\x76\x69\x65\x77\
-\x42\x6f\x78\x3d\x27\x35\x36\x2e\x34\x30\x39\x34\x20\x35\x33\x2e\
-\x38\x35\x38\x33\x20\x36\x33\x2e\x39\x39\x39\x36\x20\x36\x33\x2e\
-\x39\x39\x39\x37\x27\x3e\x0a\x3c\x67\x20\x69\x64\x3d\x27\x70\x61\
-\x67\x65\x31\x27\x3e\x0a\x3c\x67\x20\x74\x72\x61\x6e\x73\x66\x6f\
-\x72\x6d\x3d\x27\x6d\x61\x74\x72\x69\x78\x28\x30\x2e\x39\x39\x36\
-\x32\x36\x34\x20\x30\x20\x30\x20\x30\x2e\x39\x39\x36\x32\x36\x34\
-\x20\x35\x38\x2e\x34\x36\x36\x39\x20\x31\x31\x37\x2e\x38\x35\x38\
-\x29\x27\x3e\x0a\x3c\x70\x61\x74\x68\x20\x64\x3d\x27\x4d\x20\x33\
-\x2e\x39\x35\x37\x33\x35\x20\x2d\x33\x32\x2e\x31\x32\x43\x20\x32\
-\x2e\x32\x38\x39\x32\x32\x20\x2d\x33\x39\x2e\x33\x31\x31\x33\x20\
-\x36\x2e\x33\x36\x37\x30\x32\x20\x2d\x34\x36\x2e\x32\x33\x38\x36\
-\x20\x31\x31\x2e\x39\x30\x33\x36\x20\x2d\x35\x31\x2e\x33\x30\x33\
-\x39\x43\x20\x32\x39\x2e\x36\x36\x38\x37\x20\x2d\x36\x37\x2e\x35\
-\x35\x36\x38\x20\x35\x35\x2e\x32\x32\x39\x32\x20\x2d\x36\x30\x2e\
-\x36\x34\x32\x20\x35\x36\x2e\x31\x35\x32\x33\x20\x2d\x34\x32\x2e\
-\x35\x30\x32\x32\x43\x20\x35\x36\x2e\x36\x31\x33\x36\x20\x2d\x33\
-\x33\x2e\x34\x33\x38\x31\x20\x34\x39\x2e\x31\x31\x33\x32\x20\x2d\
-\x32\x36\x2e\x35\x39\x35\x39\x20\x34\x30\x2e\x36\x37\x39\x34\x20\
-\x2d\x32\x32\x2e\x35\x32\x38\x31\x43\x20\x32\x35\x2e\x33\x39\x39\
-\x35\x20\x2d\x31\x35\x2e\x31\x35\x38\x32\x20\x37\x2e\x31\x39\x39\
-\x33\x35\x20\x2d\x31\x38\x2e\x31\x34\x33\x36\x20\x33\x2e\x39\x35\
-\x37\x33\x35\x20\x2d\x33\x32\x2e\x31\x32\x5a\x27\x20\x66\x69\x6c\
-\x6c\x3d\x27\x6e\x6f\x6e\x65\x27\x20\x73\x74\x72\x6f\x6b\x65\x3d\
-\x27\x23\x30\x30\x30\x30\x30\x30\x27\x20\x73\x74\x72\x6f\x6b\x65\
-\x2d\x6c\x69\x6e\x65\x63\x61\x70\x3d\x27\x72\x6f\x75\x6e\x64\x27\
-\x20\x73\x74\x72\x6f\x6b\x65\x2d\x6c\x69\x6e\x65\x6a\x6f\x69\x6e\
-\x3d\x27\x72\x6f\x75\x6e\x64\x27\x20\x73\x74\x72\x6f\x6b\x65\x2d\
-\x6d\x69\x74\x65\x72\x6c\x69\x6d\x69\x74\x3d\x27\x31\x30\x2e\x30\
-\x33\x37\x35\x27\x20\x73\x74\x72\x6f\x6b\x65\x2d\x77\x69\x64\x74\
-\x68\x3d\x27\x32\x2e\x35\x30\x39\x33\x37\x27\x2f\x3e\x0a\x3c\x2f\
-\x67\x3e\x0a\x3c\x67\x20\x74\x72\x61\x6e\x73\x66\x6f\x72\x6d\x3d\
-\x27\x6d\x61\x74\x72\x69\x78\x28\x30\x2e\x39\x39\x36\x32\x36\x34\
-\x20\x30\x20\x30\x20\x30\x2e\x39\x39\x36\x32\x36\x34\x20\x35\x38\
-\x2e\x34\x36\x36\x39\x20\x31\x31\x37\x2e\x38\x35\x38\x29\x27\x3e\
-\x0a\x3c\x63\x69\x72\x63\x6c\x65\x20\x63\x78\x3d\x27\x33\x2e\x39\
-\x35\x37\x33\x35\x27\x20\x63\x79\x3d\x27\x2d\x33\x32\x2e\x31\x32\
-\x27\x20\x66\x69\x6c\x6c\x3d\x27\x23\x30\x30\x30\x30\x30\x30\x27\
-\x20\x72\x3d\x27\x36\x2e\x30\x32\x32\x35\x27\x2f\x3e\x0a\x3c\x2f\
-\x67\x3e\x0a\x3c\x67\x20\x74\x72\x61\x6e\x73\x66\x6f\x72\x6d\x3d\
-\x27\x6d\x61\x74\x72\x69\x78\x28\x30\x2e\x39\x39\x36\x32\x36\x34\
-\x20\x30\x20\x30\x20\x30\x2e\x39\x39\x36\x32\x36\x34\x20\x35\x38\
-\x2e\x34\x36\x36\x39\x20\x31\x31\x37\x2e\x38\x35\x38\x29\x27\x3e\
-\x0a\x3c\x63\x69\x72\x63\x6c\x65\x20\x63\x78\x3d\x27\x31\x31\x2e\
-\x39\x30\x33\x36\x27\x20\x63\x79\x3d\x27\x2d\x35\x31\x2e\x33\x30\
-\x33\x39\x27\x20\x66\x69\x6c\x6c\x3d\x27\x23\x30\x30\x30\x30\x30\
-\x30\x27\x20\x72\x3d\x27\x36\x2e\x30\x32\x32\x35\x27\x2f\x3e\x0a\
-\x3c\x2f\x67\x3e\x0a\x3c\x67\x20\x74\x72\x61\x6e\x73\x66\x6f\x72\
-\x6d\x3d\x27\x6d\x61\x74\x72\x69\x78\x28\x30\x2e\x39\x39\x36\x32\
-\x36\x34\x20\x30\x20\x30\x20\x30\x2e\x39\x39\x36\x32\x36\x34\x20\
-\x35\x38\x2e\x34\x36\x36\x39\x20\x31\x31\x37\x2e\x38\x35\x38\x29\
-\x27\x3e\x0a\x3c\x63\x69\x72\x63\x6c\x65\x20\x63\x78\x3d\x27\x35\
-\x36\x2e\x31\x35\x32\x33\x27\x20\x63\x79\x3d\x27\x2d\x34\x32\x2e\
-\x35\x30\x32\x32\x27\x20\x66\x69\x6c\x6c\x3d\x27\x23\x30\x30\x30\
-\x30\x30\x30\x27\x20\x72\x3d\x27\x36\x2e\x30\x32\x32\x35\x27\x2f\
-\x3e\x0a\x3c\x2f\x67\x3e\x0a\x3c\x67\x20\x74\x72\x61\x6e\x73\x66\
-\x6f\x72\x6d\x3d\x27\x6d\x61\x74\x72\x69\x78\x28\x30\x2e\x39\x39\
-\x36\x32\x36\x34\x20\x30\x20\x30\x20\x30\x2e\x39\x39\x36\x32\x36\
-\x34\x20\x35\x38\x2e\x34\x36\x36\x39\x20\x31\x31\x37\x2e\x38\x35\
-\x38\x29\x27\x3e\x0a\x3c\x63\x69\x72\x63\x6c\x65\x20\x63\x78\x3d\
-\x27\x34\x30\x2e\x36\x37\x39\x34\x27\x20\x63\x79\x3d\x27\x2d\x32\
-\x32\x2e\x35\x32\x38\x31\x27\x20\x66\x69\x6c\x6c\x3d\x27\x23\x30\
-\x30\x30\x30\x30\x30\x27\x20\x72\x3d\x27\x36\x2e\x30\x32\x32\x35\
-\x27\x2f\x3e\x0a\x3c\x2f\x67\x3e\x0a\x3c\x2f\x67\x3e\x0a\x3c\x2f\
-\x73\x76\x67\x3e\
-\x00\x00\x03\x36\
-\x3c\
-\x3f\x78\x6d\x6c\x20\x76\x65\x72\x73\x69\x6f\x6e\x3d\x22\x31\x2e\
-\x30\x22\x20\x65\x6e\x63\x6f\x64\x69\x6e\x67\x3d\x22\x75\x74\x66\
-\x2d\x38\x22\x3f\x3e\x0d\x0a\x3c\x21\x2d\x2d\x20\x47\x65\x6e\x65\
-\x72\x61\x74\x6f\x72\x3a\x20\x41\x64\x6f\x62\x65\x20\x49\x6c\x6c\
-\x75\x73\x74\x72\x61\x74\x6f\x72\x20\x31\x36\x2e\x32\x2e\x31\x2c\
-\x20\x53\x56\x47\x20\x45\x78\x70\x6f\x72\x74\x20\x50\x6c\x75\x67\
-\x2d\x49\x6e\x20\x2e\x20\x53\x56\x47\x20\x56\x65\x72\x73\x69\x6f\
-\x6e\x3a\x20\x36\x2e\x30\x30\x20\x42\x75\x69\x6c\x64\x20\x30\x29\
-\x20\x20\x2d\x2d\x3e\x0d\x0a\x3c\x21\x44\x4f\x43\x54\x59\x50\x45\
-\x20\x73\x76\x67\x20\x50\x55\x42\x4c\x49\x43\x20\x22\x2d\x2f\x2f\
-\x57\x33\x43\x2f\x2f\x44\x54\x44\x20\x53\x56\x47\x20\x31\x2e\x31\
-\x2f\x2f\x45\x4e\x22\x20\x22\x68\x74\x74\x70\x3a\x2f\x2f\x77\x77\
-\x77\x2e\x77\x33\x2e\x6f\x72\x67\x2f\x47\x72\x61\x70\x68\x69\x63\
-\x73\x2f\x53\x56\x47\x2f\x31\x2e\x31\x2f\x44\x54\x44\x2f\x73\x76\
-\x67\x31\x31\x2e\x64\x74\x64\x22\x3e\x0d\x0a\x3c\x73\x76\x67\x20\
-\x76\x65\x72\x73\x69\x6f\x6e\x3d\x22\x31\x2e\x31\x22\x20\x69\x64\
-\x3d\x22\x4c\x61\x79\x65\x72\x5f\x31\x22\x20\x78\x6d\x6c\x6e\x73\
-\x3d\x22\x68\x74\x74\x70\x3a\x2f\x2f\x77\x77\x77\x2e\x77\x33\x2e\
-\x6f\x72\x67\x2f\x32\x30\x30\x30\x2f\x73\x76\x67\x22\x20\x78\x6d\
-\x6c\x6e\x73\x3a\x78\x6c\x69\x6e\x6b\x3d\x22\x68\x74\x74\x70\x3a\
-\x2f\x2f\x77\x77\x77\x2e\x77\x33\x2e\x6f\x72\x67\x2f\x31\x39\x39\
-\x39\x2f\x78\x6c\x69\x6e\x6b\x22\x20\x78\x3d\x22\x30\x70\x78\x22\
-\x20\x79\x3d\x22\x30\x70\x78\x22\x0d\x0a\x09\x20\x77\x69\x64\x74\
-\x68\x3d\x22\x35\x31\x32\x70\x78\x22\x20\x68\x65\x69\x67\x68\x74\
-\x3d\x22\x35\x31\x32\x70\x78\x22\x20\x76\x69\x65\x77\x42\x6f\x78\
-\x3d\x22\x30\x20\x30\x20\x35\x31\x32\x20\x35\x31\x32\x22\x20\x65\
-\x6e\x61\x62\x6c\x65\x2d\x62\x61\x63\x6b\x67\x72\x6f\x75\x6e\x64\
-\x3d\x22\x6e\x65\x77\x20\x30\x20\x30\x20\x35\x31\x32\x20\x35\x31\
-\x32\x22\x20\x78\x6d\x6c\x3a\x73\x70\x61\x63\x65\x3d\x22\x70\x72\
-\x65\x73\x65\x72\x76\x65\x22\x3e\x0d\x0a\x3c\x67\x3e\x0d\x0a\x09\
-\x3c\x70\x6f\x6c\x79\x67\x6f\x6e\x20\x70\x6f\x69\x6e\x74\x73\x3d\
-\x22\x33\x39\x36\x2e\x37\x39\x35\x2c\x33\x39\x36\x2e\x38\x20\x33\
-\x32\x30\x2c\x33\x39\x36\x2e\x38\x20\x33\x32\x30\x2c\x34\x34\x38\
-\x20\x34\x34\x38\x2c\x34\x34\x38\x20\x34\x34\x38\x2c\x33\x32\x30\
-\x20\x33\x39\x36\x2e\x37\x39\x35\x2c\x33\x32\x30\x20\x09\x22\x2f\
-\x3e\x0d\x0a\x09\x3c\x70\x6f\x6c\x79\x67\x6f\x6e\x20\x70\x6f\x69\
-\x6e\x74\x73\x3d\x22\x33\x39\x36\x2e\x38\x2c\x31\x31\x35\x2e\x32\
-\x30\x35\x20\x33\x39\x36\x2e\x38\x2c\x31\x39\x32\x20\x34\x34\x38\
-\x2c\x31\x39\x32\x20\x34\x34\x38\x2c\x36\x34\x20\x33\x32\x30\x2c\
-\x36\x34\x20\x33\x32\x30\x2c\x31\x31\x35\x2e\x32\x30\x35\x20\x09\
-\x22\x2f\x3e\x0d\x0a\x09\x3c\x70\x6f\x6c\x79\x67\x6f\x6e\x20\x70\
-\x6f\x69\x6e\x74\x73\x3d\x22\x31\x31\x35\x2e\x32\x30\x35\x2c\x31\
-\x31\x35\x2e\x32\x20\x31\x39\x32\x2c\x31\x31\x35\x2e\x32\x20\x31\
-\x39\x32\x2c\x36\x34\x20\x36\x34\x2c\x36\x34\x20\x36\x34\x2c\x31\
-\x39\x32\x20\x31\x31\x35\x2e\x32\x30\x35\x2c\x31\x39\x32\x20\x09\
-\x22\x2f\x3e\x0d\x0a\x09\x3c\x70\x6f\x6c\x79\x67\x6f\x6e\x20\x70\
-\x6f\x69\x6e\x74\x73\x3d\x22\x31\x31\x35\x2e\x32\x2c\x33\x39\x36\
-\x2e\x37\x39\x35\x20\x31\x31\x35\x2e\x32\x2c\x33\x32\x30\x20\x36\
-\x34\x2c\x33\x32\x30\x20\x36\x34\x2c\x34\x34\x38\x20\x31\x39\x32\
-\x2c\x34\x34\x38\x20\x31\x39\x32\x2c\x33\x39\x36\x2e\x37\x39\x35\
-\x20\x09\x22\x2f\x3e\x0d\x0a\x3c\x2f\x67\x3e\x0d\x0a\x3c\x2f\x73\
-\x76\x67\x3e\x0d\x0a\
-\x00\x00\x02\x7d\
-\x3c\
-\x3f\x78\x6d\x6c\x20\x76\x65\x72\x73\x69\x6f\x6e\x3d\x22\x31\x2e\
-\x30\x22\x20\x65\x6e\x63\x6f\x64\x69\x6e\x67\x3d\x22\x75\x74\x66\
-\x2d\x38\x22\x3f\x3e\x0d\x0a\x3c\x21\x2d\x2d\x20\x47\x65\x6e\x65\
-\x72\x61\x74\x6f\x72\x3a\x20\x41\x64\x6f\x62\x65\x20\x49\x6c\x6c\
-\x75\x73\x74\x72\x61\x74\x6f\x72\x20\x31\x36\x2e\x32\x2e\x31\x2c\
-\x20\x53\x56\x47\x20\x45\x78\x70\x6f\x72\x74\x20\x50\x6c\x75\x67\
-\x2d\x49\x6e\x20\x2e\x20\x53\x56\x47\x20\x56\x65\x72\x73\x69\x6f\
-\x6e\x3a\x20\x36\x2e\x30\x30\x20\x42\x75\x69\x6c\x64\x20\x30\x29\
-\x20\x20\x2d\x2d\x3e\x0d\x0a\x3c\x21\x44\x4f\x43\x54\x59\x50\x45\
-\x20\x73\x76\x67\x20\x50\x55\x42\x4c\x49\x43\x20\x22\x2d\x2f\x2f\
-\x57\x33\x43\x2f\x2f\x44\x54\x44\x20\x53\x56\x47\x20\x31\x2e\x31\
-\x2f\x2f\x45\x4e\x22\x20\x22\x68\x74\x74\x70\x3a\x2f\x2f\x77\x77\
-\x77\x2e\x77\x33\x2e\x6f\x72\x67\x2f\x47\x72\x61\x70\x68\x69\x63\
-\x73\x2f\x53\x56\x47\x2f\x31\x2e\x31\x2f\x44\x54\x44\x2f\x73\x76\
-\x67\x31\x31\x2e\x64\x74\x64\x22\x3e\x0d\x0a\x3c\x73\x76\x67\x20\
-\x76\x65\x72\x73\x69\x6f\x6e\x3d\x22\x31\x2e\x31\x22\x20\x69\x64\
-\x3d\x22\x4c\x61\x79\x65\x72\x5f\x31\x22\x20\x78\x6d\x6c\x6e\x73\
-\x3d\x22\x68\x74\x74\x70\x3a\x2f\x2f\x77\x77\x77\x2e\x77\x33\x2e\
-\x6f\x72\x67\x2f\x32\x30\x30\x30\x2f\x73\x76\x67\x22\x20\x78\x6d\
-\x6c\x6e\x73\x3a\x78\x6c\x69\x6e\x6b\x3d\x22\x68\x74\x74\x70\x3a\
-\x2f\x2f\x77\x77\x77\x2e\x77\x33\x2e\x6f\x72\x67\x2f\x31\x39\x39\
-\x39\x2f\x78\x6c\x69\x6e\x6b\x22\x20\x78\x3d\x22\x30\x70\x78\x22\
-\x20\x79\x3d\x22\x30\x70\x78\x22\x0d\x0a\x09\x20\x77\x69\x64\x74\
-\x68\x3d\x22\x35\x31\x32\x70\x78\x22\x20\x68\x65\x69\x67\x68\x74\
-\x3d\x22\x35\x31\x32\x70\x78\x22\x20\x76\x69\x65\x77\x42\x6f\x78\
-\x3d\x22\x30\x20\x30\x20\x35\x31\x32\x20\x35\x31\x32\x22\x20\x65\
-\x6e\x61\x62\x6c\x65\x2d\x62\x61\x63\x6b\x67\x72\x6f\x75\x6e\x64\
-\x3d\x22\x6e\x65\x77\x20\x30\x20\x30\x20\x35\x31\x32\x20\x35\x31\
-\x32\x22\x20\x78\x6d\x6c\x3a\x73\x70\x61\x63\x65\x3d\x22\x70\x72\
-\x65\x73\x65\x72\x76\x65\x22\x3e\x0d\x0a\x3c\x67\x20\x69\x64\x3d\
-\x22\x49\x63\x6f\x6e\x5f\x38\x5f\x22\x3e\x0d\x0a\x09\x3c\x67\x3e\
-\x0d\x0a\x09\x09\x3c\x70\x61\x74\x68\x20\x64\x3d\x22\x4d\x34\x32\
-\x37\x2c\x32\x33\x34\x2e\x36\x32\x35\x48\x31\x36\x37\x2e\x32\x39\
-\x36\x6c\x31\x31\x39\x2e\x37\x30\x32\x2d\x31\x31\x39\x2e\x37\x30\
-\x32\x4c\x32\x35\x36\x2c\x38\x35\x4c\x38\x35\x2c\x32\x35\x36\x6c\
-\x31\x37\x31\x2c\x31\x37\x31\x6c\x32\x39\x2e\x39\x32\x32\x2d\x32\
-\x39\x2e\x39\x32\x34\x4c\x31\x36\x37\x2e\x32\x39\x36\x2c\x32\x37\
-\x37\x2e\x33\x37\x35\x48\x34\x32\x37\x56\x32\x33\x34\x2e\x36\x32\
-\x35\x7a\x22\x2f\x3e\x0d\x0a\x09\x3c\x2f\x67\x3e\x0d\x0a\x3c\x2f\
-\x67\x3e\x0d\x0a\x3c\x2f\x73\x76\x67\x3e\x0d\x0a\
+\x73\x76\x67\x20\x78\x6d\x6c\x6e\x73\x3d\x22\x68\x74\x74\x70\x3a\
+\x2f\x2f\x77\x77\x77\x2e\x77\x33\x2e\x6f\x72\x67\x2f\x32\x30\x30\
+\x30\x2f\x73\x76\x67\x22\x20\x77\x69\x64\x74\x68\x3d\x22\x35\x31\
+\x32\x70\x78\x22\x20\x68\x65\x69\x67\x68\x74\x3d\x22\x35\x31\x32\
+\x70\x78\x22\x0a\x20\x20\x20\x20\x20\x76\x69\x65\x77\x42\x6f\x78\
+\x3d\x22\x30\x20\x30\x20\x35\x31\x32\x20\x35\x31\x32\x22\x3e\x0a\
+\x3c\x67\x20\x74\x72\x61\x6e\x73\x66\x6f\x72\x6d\x3d\x27\x6d\x61\
+\x74\x72\x69\x78\x28\x34\x38\x20\x30\x20\x30\x20\x34\x38\x20\x34\
+\x38\x20\x34\x38\x29\x27\x3e\x0a\x20\x20\x3c\x70\x61\x74\x68\x20\
+\x64\x3d\x22\x4d\x30\x20\x30\x76\x32\x68\x2e\x35\x63\x30\x2d\x2e\
+\x35\x35\x2e\x34\x35\x2d\x31\x20\x31\x2d\x31\x68\x31\x2e\x35\x76\
+\x35\x2e\x35\x63\x30\x20\x2e\x32\x38\x2d\x2e\x32\x32\x2e\x35\x2d\
+\x2e\x35\x2e\x35\x68\x2d\x2e\x35\x76\x31\x68\x34\x76\x2d\x31\x68\
+\x2d\x2e\x35\x63\x2d\x2e\x32\x38\x20\x30\x2d\x2e\x35\x2d\x2e\x32\
+\x32\x2d\x2e\x35\x2d\x2e\x35\x76\x2d\x35\x2e\x35\x68\x31\x2e\x35\
+\x63\x2e\x35\x35\x20\x30\x20\x31\x20\x2e\x34\x35\x20\x31\x20\x31\
+\x68\x2e\x35\x76\x2d\x32\x68\x2d\x38\x7a\x22\x20\x2f\x3e\x0a\x3c\
+\x2f\x67\x3e\x0a\x3c\x2f\x73\x76\x67\x3e\x0a\
\x00\x00\x05\x27\
\x3c\
\x3f\x78\x6d\x6c\x20\x76\x65\x72\x73\x69\x6f\x6e\x3d\x22\x31\x2e\
@@ -1055,7 +1654,44 @@
\x33\x37\x33\x2e\x33\x33\x33\x2c\x32\x35\x36\x7a\x22\x2f\x3e\x0d\
\x0a\x09\x3c\x2f\x67\x3e\x0d\x0a\x3c\x2f\x67\x3e\x0d\x0a\x3c\x2f\
\x73\x76\x67\x3e\x0d\x0a\
-\x00\x00\x02\x7d\
+\x00\x00\x02\x21\
+\x00\
+\x00\x07\xaf\x78\x9c\xdd\x55\x4d\x6f\x9c\x30\x10\xbd\xf7\x57\x4c\
+\xd5\x83\xdb\x03\xc6\xdf\x86\x28\x24\x52\x57\xea\x29\xbd\x25\x97\
+\xde\x68\xf0\x82\x9b\x5d\x58\x01\x5d\xb6\xff\xbe\x66\xd7\x60\x4a\
+\xaa\xf4\x92\x43\x15\x90\x30\xf3\x18\xbf\x99\xe7\xf1\x98\xeb\xdb\
+\xd3\x7e\x07\x47\xd3\x76\xb6\xa9\x33\x44\x31\x41\x60\xea\xc7\xa6\
+\xb0\x75\x99\xa1\x87\xfb\x2f\x51\x82\x6e\x6f\xde\x5d\xbf\x8f\x22\
+\xb8\xaf\x6c\x07\x5b\xbb\x33\x30\xe4\x1d\x94\xa6\x36\x6d\xde\x9b\
+\x02\xbe\xff\x82\xe2\x68\xbb\x63\xb9\x07\x86\x13\x88\x22\xe7\xef\
+\xac\x25\x2b\x45\xe0\xe2\xd4\x5d\x86\xaa\xbe\x3f\x5c\xc5\xf1\x30\
+\x0c\x78\xe0\xb8\x69\xcb\x98\x11\x42\x62\xe7\xef\x5d\xae\x4e\x3b\
+\x5b\x3f\xfd\xcd\x91\xa6\x69\x1a\x9f\xbf\x22\x18\x6c\xd1\x57\x19\
+\x52\x1c\x3b\x50\x1d\x7a\x04\x95\xb1\x65\xd5\x4f\x90\x1e\xa1\xa3\
+\x35\xc3\xe7\xe6\x94\x21\xa9\xb0\x20\xa9\x00\xc9\x71\x22\x13\x0e\
+\x7e\x9a\x1f\x35\x72\x09\x97\x60\x8b\x0c\x1d\xf2\xd2\xd0\x8b\xd9\
+\xb7\x79\xdd\x6d\x9b\x76\x9f\xa1\x7d\xde\xb7\xf6\xf4\x91\x38\x67\
+\xc5\x94\x00\x32\xde\x93\x31\x71\x53\xaa\x47\xf2\x4f\xe3\xec\x43\
+\xde\x57\xe0\xe8\xbe\x42\x8a\xb9\xd0\x82\x41\xc4\x38\x26\x94\xde\
+\x05\xc0\xbf\x3c\x47\x36\xcf\x90\x7f\x03\x8b\x39\x12\x53\x29\x29\
+\x05\x9a\x62\x29\x38\x85\x88\x62\x2d\x95\x54\xc0\x19\xa6\x6c\x36\
+\x37\x20\x04\x56\xa9\x4a\x83\x83\x14\x38\x49\x99\x0a\x14\x33\x30\
+\xe7\xfa\x02\x32\x09\x9c\x01\xae\xb0\xd2\x42\x6e\x02\x22\x08\x4e\
+\x94\x4a\x42\x64\xf7\xc2\x94\x14\x53\x6a\xde\xdc\x84\xdc\x27\x87\
+\x59\xdd\x44\x31\x03\x3e\xca\xdd\x7a\xa5\xbf\xa1\x71\xab\xee\x32\
+\xf4\x41\x6f\xc7\x1b\xc5\xae\x2e\x71\xf9\x8a\xa5\x0d\x42\x53\xac\
+\x29\x49\x97\x42\xdd\xbe\x22\x9c\x2d\x84\x6a\xcc\x09\xd5\xb3\xd0\
+\x8b\xb9\x14\xea\x1d\x82\x50\x4f\x11\x84\x4e\x51\x02\x22\xb1\xa4\
+\x89\x0c\x24\x17\x76\x1f\xe3\x3c\x2c\xaa\x7c\x81\x43\xd2\x7e\xf2\
+\x5a\xc5\xbc\x6e\x75\x53\x1b\x04\x5d\xdf\x36\x4f\xc6\xad\x22\x39\
+\x5f\x13\x10\xb9\x2e\x34\x8f\xf9\x21\x43\x6d\xf3\xb3\x2e\xfe\x80\
+\x7f\x34\xb6\x5e\xe3\x7b\xdb\x9b\x76\x67\xdd\xe0\x4e\x03\x82\x09\
+\xd7\x72\xfe\xe6\x5b\x99\xbb\x7c\x38\x65\xaf\x5f\xa7\xf5\x0a\xbe\
+\xe1\x1e\xf4\x0a\xdf\x5c\x09\x5f\x68\x35\xc9\x30\x4b\xf4\xe2\x4c\
+\x51\x0c\x8b\x84\xcf\x67\x8a\x37\x17\xad\x36\x39\x84\x6a\x79\x8a\
+\xf5\x46\xf9\x6f\x96\xf1\xf2\x70\xbf\xc8\x9b\xdf\xf9\x80\xe2\xe1\
+\
+\x00\x00\x03\x36\
\x3c\
\x3f\x78\x6d\x6c\x20\x76\x65\x72\x73\x69\x6f\x6e\x3d\x22\x31\x2e\
\x30\x22\x20\x65\x6e\x63\x6f\x64\x69\x6e\x67\x3d\x22\x75\x74\x66\
@@ -1086,18 +1722,62 @@
\x6e\x61\x62\x6c\x65\x2d\x62\x61\x63\x6b\x67\x72\x6f\x75\x6e\x64\
\x3d\x22\x6e\x65\x77\x20\x30\x20\x30\x20\x35\x31\x32\x20\x35\x31\
\x32\x22\x20\x78\x6d\x6c\x3a\x73\x70\x61\x63\x65\x3d\x22\x70\x72\
-\x65\x73\x65\x72\x76\x65\x22\x3e\x0d\x0a\x3c\x67\x20\x69\x64\x3d\
-\x22\x49\x63\x6f\x6e\x5f\x38\x5f\x22\x3e\x0d\x0a\x09\x3c\x67\x3e\
-\x0d\x0a\x09\x09\x3c\x70\x61\x74\x68\x20\x64\x3d\x22\x4d\x38\x35\
-\x2c\x32\x37\x37\x2e\x33\x37\x35\x68\x32\x35\x39\x2e\x37\x30\x34\
-\x4c\x32\x32\x35\x2e\x30\x30\x32\x2c\x33\x39\x37\x2e\x30\x37\x37\
-\x4c\x32\x35\x36\x2c\x34\x32\x37\x6c\x31\x37\x31\x2d\x31\x37\x31\
-\x4c\x32\x35\x36\x2c\x38\x35\x6c\x2d\x32\x39\x2e\x39\x32\x32\x2c\
-\x32\x39\x2e\x39\x32\x34\x6c\x31\x31\x38\x2e\x36\x32\x36\x2c\x31\
-\x31\x39\x2e\x37\x30\x31\x48\x38\x35\x56\x32\x37\x37\x2e\x33\x37\
-\x35\x7a\x22\x2f\x3e\x0d\x0a\x09\x3c\x2f\x67\x3e\x0d\x0a\x3c\x2f\
-\x67\x3e\x0d\x0a\x3c\x2f\x73\x76\x67\x3e\x0d\x0a\
-\x00\x00\x03\x52\
+\x65\x73\x65\x72\x76\x65\x22\x3e\x0d\x0a\x3c\x67\x3e\x0d\x0a\x09\
+\x3c\x70\x6f\x6c\x79\x67\x6f\x6e\x20\x70\x6f\x69\x6e\x74\x73\x3d\
+\x22\x33\x39\x36\x2e\x37\x39\x35\x2c\x33\x39\x36\x2e\x38\x20\x33\
+\x32\x30\x2c\x33\x39\x36\x2e\x38\x20\x33\x32\x30\x2c\x34\x34\x38\
+\x20\x34\x34\x38\x2c\x34\x34\x38\x20\x34\x34\x38\x2c\x33\x32\x30\
+\x20\x33\x39\x36\x2e\x37\x39\x35\x2c\x33\x32\x30\x20\x09\x22\x2f\
+\x3e\x0d\x0a\x09\x3c\x70\x6f\x6c\x79\x67\x6f\x6e\x20\x70\x6f\x69\
+\x6e\x74\x73\x3d\x22\x33\x39\x36\x2e\x38\x2c\x31\x31\x35\x2e\x32\
+\x30\x35\x20\x33\x39\x36\x2e\x38\x2c\x31\x39\x32\x20\x34\x34\x38\
+\x2c\x31\x39\x32\x20\x34\x34\x38\x2c\x36\x34\x20\x33\x32\x30\x2c\
+\x36\x34\x20\x33\x32\x30\x2c\x31\x31\x35\x2e\x32\x30\x35\x20\x09\
+\x22\x2f\x3e\x0d\x0a\x09\x3c\x70\x6f\x6c\x79\x67\x6f\x6e\x20\x70\
+\x6f\x69\x6e\x74\x73\x3d\x22\x31\x31\x35\x2e\x32\x30\x35\x2c\x31\
+\x31\x35\x2e\x32\x20\x31\x39\x32\x2c\x31\x31\x35\x2e\x32\x20\x31\
+\x39\x32\x2c\x36\x34\x20\x36\x34\x2c\x36\x34\x20\x36\x34\x2c\x31\
+\x39\x32\x20\x31\x31\x35\x2e\x32\x30\x35\x2c\x31\x39\x32\x20\x09\
+\x22\x2f\x3e\x0d\x0a\x09\x3c\x70\x6f\x6c\x79\x67\x6f\x6e\x20\x70\
+\x6f\x69\x6e\x74\x73\x3d\x22\x31\x31\x35\x2e\x32\x2c\x33\x39\x36\
+\x2e\x37\x39\x35\x20\x31\x31\x35\x2e\x32\x2c\x33\x32\x30\x20\x36\
+\x34\x2c\x33\x32\x30\x20\x36\x34\x2c\x34\x34\x38\x20\x31\x39\x32\
+\x2c\x34\x34\x38\x20\x31\x39\x32\x2c\x33\x39\x36\x2e\x37\x39\x35\
+\x20\x09\x22\x2f\x3e\x0d\x0a\x3c\x2f\x67\x3e\x0d\x0a\x3c\x2f\x73\
+\x76\x67\x3e\x0d\x0a\
+\x00\x00\x01\xdd\
+\x00\
+\x00\x06\xe4\x78\x9c\xcd\x54\x4d\x6f\x9b\x40\x10\x3d\x13\x29\xff\
+\x61\xba\xb7\x4a\xec\x17\xc4\xd4\xa6\xa6\x51\xfd\x21\xcb\x52\x9a\
+\x58\x6a\xea\xaa\xa7\x0a\xc3\x16\x50\x28\x20\x58\xc0\xce\xaf\xef\
+\xee\x92\x54\x51\x95\xfa\x18\xfb\xb0\x33\xda\x79\x6f\xde\xbc\x65\
+\x24\xa6\xd7\xfb\xdf\x39\x74\xa2\x6e\xb2\xb2\x08\x10\x27\x0c\x81\
+\x28\xa2\x32\xce\x8a\x24\x40\xad\xfc\x85\xc7\xe8\xfa\xd3\xe5\xc5\
+\xf4\x1d\xc6\xb0\x12\x85\xa8\x43\x59\xd6\x3e\x7c\x8e\xcb\x9d\x80\
+\x75\x9e\xb7\x8d\x34\x25\xe0\x1e\x71\x08\xb7\xe1\xeb\x76\x05\xcb\
+\x7d\x55\xd6\x12\x36\x79\x9b\xe0\x75\x01\xc4\x14\xb7\xc3\x10\x1f\
+\x3c\xc2\x18\xcc\xda\x2c\x8f\x81\xbd\x07\xc0\xd8\xe8\x2f\xee\xe6\
+\xf7\x3f\x36\x4b\x68\xba\x04\x36\xdf\x66\x37\xeb\x39\x20\x4c\xe9\
+\x77\x77\x4e\xe9\xe2\x7e\x61\x24\x38\xe1\x94\x2e\x6f\x11\xa0\x54\
+\xca\xca\xa7\xb4\xef\x7b\xd2\xbb\xa4\xac\x13\xba\xaa\xc3\x2a\xcd\
+\xa2\x86\x2a\x22\xd5\x44\xd5\x44\x95\x18\xe7\x24\x96\x31\xd2\x33\
+\xb4\xf4\x8b\xa7\x72\x04\x59\x1c\xa0\x9b\xf0\x20\xea\x9f\xea\xa2\
+\xbe\x44\xd1\x04\xaf\x48\x3b\x8c\x31\x2d\xf5\x44\xf1\xf7\x79\x56\
+\x3c\xbc\x46\xe4\x93\xc9\x84\x1a\x54\x51\x03\xc4\xaa\x3d\x82\xc3\
+\x90\x2f\x2f\x2c\xe8\xb3\x58\xa6\x01\x1a\x71\x47\x03\xa9\xc8\x92\
+\x54\xfe\xbd\x76\x99\xe8\x67\xa5\xee\x02\x06\xaa\xa6\x0f\x82\x46\
+\x1e\x72\x11\x20\x51\x84\xbb\x5c\xe0\x5d\x18\x3d\x24\x75\xd9\x16\
+\xb1\x5f\x88\x1e\x5e\x30\x3f\x1a\x6f\x7e\x53\x85\x91\xa2\x57\xb5\
+\x68\x44\xdd\x09\xf3\xea\x44\x05\x6b\x88\xd6\xb4\x0a\x65\x0a\xea\
+\xd1\x5f\xb8\xc7\x6c\x3e\x72\x89\x1b\x31\xdb\x25\x1f\xb0\x6b\x7b\
+\x2a\xaa\xa3\x73\x8a\x47\x8c\x8c\x22\xac\x00\x9b\xe9\x22\x76\xf1\
+\x13\xdc\x0d\x10\x33\x98\xfb\xdc\xa0\x73\x6a\x00\xd3\xa2\x4b\xb6\
+\x51\xd4\x67\x6b\xe6\x3c\xea\x4f\x60\x59\xf4\x1f\x1f\xce\x78\x7c\
+\x16\x3e\xae\xb8\x77\x3a\x1f\x53\xfa\xff\x25\x39\x63\xfe\x26\xa6\
+\xcc\x9c\x23\x4b\x3a\x07\x1f\x7a\x49\x27\xf3\x71\x6c\x49\x57\x6c\
+\xf2\x26\xa6\xcc\x9c\x23\x4b\x3a\x07\x1f\x7a\x49\x27\xf3\x31\x2c\
+\xe9\x39\xaa\x7f\xb6\xca\x7f\x00\x99\x18\x96\x19\
+\x00\x00\x02\xb7\
\x3c\
\x3f\x78\x6d\x6c\x20\x76\x65\x72\x73\x69\x6f\x6e\x3d\x22\x31\x2e\
\x30\x22\x20\x65\x6e\x63\x6f\x64\x69\x6e\x67\x3d\x22\x75\x74\x66\
@@ -1128,69 +1808,22 @@
\x6e\x61\x62\x6c\x65\x2d\x62\x61\x63\x6b\x67\x72\x6f\x75\x6e\x64\
\x3d\x22\x6e\x65\x77\x20\x30\x20\x30\x20\x35\x31\x32\x20\x35\x31\
\x32\x22\x20\x78\x6d\x6c\x3a\x73\x70\x61\x63\x65\x3d\x22\x70\x72\
-\x65\x73\x65\x72\x76\x65\x22\x3e\x0d\x0a\x3c\x70\x61\x74\x68\x20\
-\x64\x3d\x22\x4d\x34\x33\x37\x2e\x33\x33\x34\x2c\x31\x34\x34\x48\
-\x32\x35\x36\x2e\x30\x30\x36\x6c\x2d\x34\x32\x2e\x36\x36\x38\x2d\
-\x34\x38\x48\x37\x34\x2e\x36\x36\x36\x43\x35\x31\x2e\x31\x39\x37\
-\x2c\x39\x36\x2c\x33\x32\x2c\x31\x31\x35\x2e\x31\x39\x38\x2c\x33\
-\x32\x2c\x31\x33\x38\x2e\x36\x36\x37\x76\x32\x33\x34\x2e\x36\x36\
-\x36\x43\x33\x32\x2c\x33\x39\x36\x2e\x38\x30\x32\x2c\x35\x31\x2e\
-\x31\x39\x37\x2c\x34\x31\x36\x2c\x37\x34\x2e\x36\x36\x36\x2c\x34\
-\x31\x36\x68\x33\x36\x32\x2e\x36\x36\x38\x0d\x0a\x09\x43\x34\x36\
-\x30\x2e\x38\x30\x33\x2c\x34\x31\x36\x2c\x34\x38\x30\x2c\x33\x39\
-\x36\x2e\x38\x30\x32\x2c\x34\x38\x30\x2c\x33\x37\x33\x2e\x33\x33\
-\x33\x56\x31\x38\x36\x2e\x36\x36\x37\x43\x34\x38\x30\x2c\x31\x36\
-\x33\x2e\x31\x39\x38\x2c\x34\x36\x30\x2e\x38\x30\x33\x2c\x31\x34\
-\x34\x2c\x34\x33\x37\x2e\x33\x33\x34\x2c\x31\x34\x34\x7a\x20\x4d\
-\x34\x34\x38\x2c\x33\x37\x33\x2e\x33\x33\x33\x0d\x0a\x09\x63\x30\
-\x2c\x35\x2e\x37\x38\x32\x2d\x34\x2e\x38\x38\x35\x2c\x31\x30\x2e\
-\x36\x36\x37\x2d\x31\x30\x2e\x36\x36\x36\x2c\x31\x30\x2e\x36\x36\
-\x37\x48\x37\x34\x2e\x36\x36\x36\x43\x36\x38\x2e\x38\x38\x34\x2c\
-\x33\x38\x34\x2c\x36\x34\x2c\x33\x37\x39\x2e\x31\x31\x35\x2c\x36\
-\x34\x2c\x33\x37\x33\x2e\x33\x33\x33\x56\x31\x37\x36\x68\x33\x37\
-\x33\x2e\x33\x33\x34\x63\x35\x2e\x37\x38\x31\x2c\x30\x2c\x31\x30\
-\x2e\x36\x36\x36\x2c\x34\x2e\x38\x38\x35\x2c\x31\x30\x2e\x36\x36\
-\x36\x2c\x31\x30\x2e\x36\x36\x37\x0d\x0a\x09\x56\x33\x37\x33\x2e\
-\x33\x33\x33\x7a\x22\x2f\x3e\x0d\x0a\x3c\x2f\x73\x76\x67\x3e\x0d\
-\x0a\
-\x00\x00\x02\x21\
-\x00\
-\x00\x07\xaf\x78\x9c\xdd\x55\x4d\x6f\x9c\x30\x10\xbd\xf7\x57\x4c\
-\xd5\x83\xdb\x03\xc6\xdf\x86\x28\x24\x52\x57\xea\x29\xbd\x25\x97\
-\xde\x68\xf0\x82\x9b\x5d\x58\x01\x5d\xb6\xff\xbe\x66\xd7\x60\x4a\
-\xaa\xf4\x92\x43\x15\x90\x30\xf3\x18\xbf\x99\xe7\xf1\x98\xeb\xdb\
-\xd3\x7e\x07\x47\xd3\x76\xb6\xa9\x33\x44\x31\x41\x60\xea\xc7\xa6\
-\xb0\x75\x99\xa1\x87\xfb\x2f\x51\x82\x6e\x6f\xde\x5d\xbf\x8f\x22\
-\xb8\xaf\x6c\x07\x5b\xbb\x33\x30\xe4\x1d\x94\xa6\x36\x6d\xde\x9b\
-\x02\xbe\xff\x82\xe2\x68\xbb\x63\xb9\x07\x86\x13\x88\x22\xe7\xef\
-\xac\x25\x2b\x45\xe0\xe2\xd4\x5d\x86\xaa\xbe\x3f\x5c\xc5\xf1\x30\
-\x0c\x78\xe0\xb8\x69\xcb\x98\x11\x42\x62\xe7\xef\x5d\xae\x4e\x3b\
-\x5b\x3f\xfd\xcd\x91\xa6\x69\x1a\x9f\xbf\x22\x18\x6c\xd1\x57\x19\
-\x52\x1c\x3b\x50\x1d\x7a\x04\x95\xb1\x65\xd5\x4f\x90\x1e\xa1\xa3\
-\x35\xc3\xe7\xe6\x94\x21\xa9\xb0\x20\xa9\x00\xc9\x71\x22\x13\x0e\
-\x7e\x9a\x1f\x35\x72\x09\x97\x60\x8b\x0c\x1d\xf2\xd2\xd0\x8b\xd9\
-\xb7\x79\xdd\x6d\x9b\x76\x9f\xa1\x7d\xde\xb7\xf6\xf4\x91\x38\x67\
-\xc5\x94\x00\x32\xde\x93\x31\x71\x53\xaa\x47\xf2\x4f\xe3\xec\x43\
-\xde\x57\xe0\xe8\xbe\x42\x8a\xb9\xd0\x82\x41\xc4\x38\x26\x94\xde\
-\x05\xc0\xbf\x3c\x47\x36\xcf\x90\x7f\x03\x8b\x39\x12\x53\x29\x29\
-\x05\x9a\x62\x29\x38\x85\x88\x62\x2d\x95\x54\xc0\x19\xa6\x6c\x36\
-\x37\x20\x04\x56\xa9\x4a\x83\x83\x14\x38\x49\x99\x0a\x14\x33\x30\
-\xe7\xfa\x02\x32\x09\x9c\x01\xae\xb0\xd2\x42\x6e\x02\x22\x08\x4e\
-\x94\x4a\x42\x64\xf7\xc2\x94\x14\x53\x6a\xde\xdc\x84\xdc\x27\x87\
-\x59\xdd\x44\x31\x03\x3e\xca\xdd\x7a\xa5\xbf\xa1\x71\xab\xee\x32\
-\xf4\x41\x6f\xc7\x1b\xc5\xae\x2e\x71\xf9\x8a\xa5\x0d\x42\x53\xac\
-\x29\x49\x97\x42\xdd\xbe\x22\x9c\x2d\x84\x6a\xcc\x09\xd5\xb3\xd0\
-\x8b\xb9\x14\xea\x1d\x82\x50\x4f\x11\x84\x4e\x51\x02\x22\xb1\xa4\
-\x89\x0c\x24\x17\x76\x1f\xe3\x3c\x2c\xaa\x7c\x81\x43\xd2\x7e\xf2\
-\x5a\xc5\xbc\x6e\x75\x53\x1b\x04\x5d\xdf\x36\x4f\xc6\xad\x22\x39\
-\x5f\x13\x10\xb9\x2e\x34\x8f\xf9\x21\x43\x6d\xf3\xb3\x2e\xfe\x80\
-\x7f\x34\xb6\x5e\xe3\x7b\xdb\x9b\x76\x67\xdd\xe0\x4e\x03\x82\x09\
-\xd7\x72\xfe\xe6\x5b\x99\xbb\x7c\x38\x65\xaf\x5f\xa7\xf5\x0a\xbe\
-\xe1\x1e\xf4\x0a\xdf\x5c\x09\x5f\x68\x35\xc9\x30\x4b\xf4\xe2\x4c\
-\x51\x0c\x8b\x84\xcf\x67\x8a\x37\x17\xad\x36\x39\x84\x6a\x79\x8a\
-\xf5\x46\xf9\x6f\x96\xf1\xf2\x70\xbf\xc8\x9b\xdf\xf9\x80\xe2\xe1\
-\
-\x00\x00\x04\x3d\
+\x65\x73\x65\x72\x76\x65\x22\x3e\x0d\x0a\x3c\x67\x20\x69\x64\x3d\
+\x22\x49\x63\x6f\x6e\x5f\x35\x5f\x22\x3e\x0d\x0a\x09\x3c\x67\x3e\
+\x0d\x0a\x09\x09\x3c\x70\x6f\x6c\x79\x67\x6f\x6e\x20\x70\x6f\x69\
+\x6e\x74\x73\x3d\x22\x34\x30\x35\x2c\x31\x33\x36\x2e\x37\x39\x38\
+\x20\x33\x37\x35\x2e\x32\x30\x32\x2c\x31\x30\x37\x20\x32\x35\x36\
+\x2c\x32\x32\x36\x2e\x32\x30\x32\x20\x31\x33\x36\x2e\x37\x39\x38\
+\x2c\x31\x30\x37\x20\x31\x30\x37\x2c\x31\x33\x36\x2e\x37\x39\x38\
+\x20\x32\x32\x36\x2e\x32\x30\x32\x2c\x32\x35\x36\x20\x31\x30\x37\
+\x2c\x33\x37\x35\x2e\x32\x30\x32\x20\x31\x33\x36\x2e\x37\x39\x38\
+\x2c\x34\x30\x35\x20\x32\x35\x36\x2c\x32\x38\x35\x2e\x37\x39\x38\
+\x20\x0d\x0a\x09\x09\x09\x33\x37\x35\x2e\x32\x30\x32\x2c\x34\x30\
+\x35\x20\x34\x30\x35\x2c\x33\x37\x35\x2e\x32\x30\x32\x20\x32\x38\
+\x35\x2e\x37\x39\x38\x2c\x32\x35\x36\x20\x09\x09\x22\x2f\x3e\x0d\
+\x0a\x09\x3c\x2f\x67\x3e\x0d\x0a\x3c\x2f\x67\x3e\x0d\x0a\x3c\x2f\
+\x73\x76\x67\x3e\x0d\x0a\
+\x00\x00\x04\xd5\
\x3c\
\x3f\x78\x6d\x6c\x20\x76\x65\x72\x73\x69\x6f\x6e\x3d\x27\x31\x2e\
\x30\x27\x20\x65\x6e\x63\x6f\x64\x69\x6e\x67\x3d\x27\x55\x54\x46\
@@ -1214,59 +1847,69 @@
\x32\x36\x34\x20\x30\x20\x30\x20\x30\x2e\x39\x39\x36\x32\x36\x34\
\x20\x35\x38\x2e\x34\x36\x36\x39\x20\x31\x31\x37\x2e\x38\x35\x38\
\x29\x27\x3e\x0a\x3c\x70\x61\x74\x68\x20\x64\x3d\x27\x4d\x20\x33\
-\x2e\x39\x35\x37\x33\x35\x20\x2d\x33\x32\x2e\x31\x32\x4c\x20\x31\
-\x31\x2e\x39\x30\x33\x36\x20\x2d\x35\x31\x2e\x33\x30\x33\x39\x4c\
-\x20\x35\x36\x2e\x31\x35\x32\x33\x20\x2d\x34\x32\x2e\x35\x30\x32\
-\x32\x4c\x20\x34\x30\x2e\x36\x37\x39\x34\x20\x2d\x32\x32\x2e\x35\
-\x32\x38\x31\x27\x20\x66\x69\x6c\x6c\x3d\x27\x6e\x6f\x6e\x65\x27\
-\x20\x73\x74\x72\x6f\x6b\x65\x3d\x27\x23\x30\x30\x30\x30\x30\x30\
-\x27\x20\x73\x74\x72\x6f\x6b\x65\x2d\x6c\x69\x6e\x65\x63\x61\x70\
+\x2e\x39\x35\x37\x33\x35\x20\x2d\x33\x32\x2e\x31\x32\x43\x20\x32\
+\x2e\x32\x38\x39\x32\x32\x20\x2d\x33\x39\x2e\x33\x31\x31\x33\x20\
+\x36\x2e\x33\x36\x37\x30\x32\x20\x2d\x34\x36\x2e\x32\x33\x38\x36\
+\x20\x31\x31\x2e\x39\x30\x33\x36\x20\x2d\x35\x31\x2e\x33\x30\x33\
+\x39\x43\x20\x32\x39\x2e\x36\x36\x38\x37\x20\x2d\x36\x37\x2e\x35\
+\x35\x36\x38\x20\x35\x35\x2e\x32\x32\x39\x32\x20\x2d\x36\x30\x2e\
+\x36\x34\x32\x20\x35\x36\x2e\x31\x35\x32\x33\x20\x2d\x34\x32\x2e\
+\x35\x30\x32\x32\x43\x20\x35\x36\x2e\x36\x31\x33\x36\x20\x2d\x33\
+\x33\x2e\x34\x33\x38\x31\x20\x34\x39\x2e\x31\x31\x33\x32\x20\x2d\
+\x32\x36\x2e\x35\x39\x35\x39\x20\x34\x30\x2e\x36\x37\x39\x34\x20\
+\x2d\x32\x32\x2e\x35\x32\x38\x31\x43\x20\x32\x35\x2e\x33\x39\x39\
+\x35\x20\x2d\x31\x35\x2e\x31\x35\x38\x32\x20\x37\x2e\x31\x39\x39\
+\x33\x35\x20\x2d\x31\x38\x2e\x31\x34\x33\x36\x20\x33\x2e\x39\x35\
+\x37\x33\x35\x20\x2d\x33\x32\x2e\x31\x32\x5a\x27\x20\x66\x69\x6c\
+\x6c\x3d\x27\x6e\x6f\x6e\x65\x27\x20\x73\x74\x72\x6f\x6b\x65\x3d\
+\x27\x23\x30\x30\x30\x30\x30\x30\x27\x20\x73\x74\x72\x6f\x6b\x65\
+\x2d\x6c\x69\x6e\x65\x63\x61\x70\x3d\x27\x72\x6f\x75\x6e\x64\x27\
+\x20\x73\x74\x72\x6f\x6b\x65\x2d\x6c\x69\x6e\x65\x6a\x6f\x69\x6e\
\x3d\x27\x72\x6f\x75\x6e\x64\x27\x20\x73\x74\x72\x6f\x6b\x65\x2d\
-\x6c\x69\x6e\x65\x6a\x6f\x69\x6e\x3d\x27\x72\x6f\x75\x6e\x64\x27\
-\x20\x73\x74\x72\x6f\x6b\x65\x2d\x6d\x69\x74\x65\x72\x6c\x69\x6d\
-\x69\x74\x3d\x27\x31\x30\x2e\x30\x33\x37\x35\x27\x20\x73\x74\x72\
-\x6f\x6b\x65\x2d\x77\x69\x64\x74\x68\x3d\x27\x32\x2e\x35\x30\x39\
-\x33\x37\x27\x2f\x3e\x0a\x3c\x2f\x67\x3e\x0a\x3c\x67\x20\x74\x72\
-\x61\x6e\x73\x66\x6f\x72\x6d\x3d\x27\x6d\x61\x74\x72\x69\x78\x28\
-\x30\x2e\x39\x39\x36\x32\x36\x34\x20\x30\x20\x30\x20\x30\x2e\x39\
-\x39\x36\x32\x36\x34\x20\x35\x38\x2e\x34\x36\x36\x39\x20\x31\x31\
-\x37\x2e\x38\x35\x38\x29\x27\x3e\x0a\x3c\x63\x69\x72\x63\x6c\x65\
-\x20\x63\x78\x3d\x27\x33\x2e\x39\x35\x37\x33\x35\x27\x20\x63\x79\
-\x3d\x27\x2d\x33\x32\x2e\x31\x32\x27\x20\x66\x69\x6c\x6c\x3d\x27\
-\x23\x30\x30\x30\x30\x30\x30\x27\x20\x72\x3d\x27\x36\x2e\x30\x32\
-\x32\x35\x27\x2f\x3e\x0a\x3c\x2f\x67\x3e\x0a\x3c\x67\x20\x74\x72\
-\x61\x6e\x73\x66\x6f\x72\x6d\x3d\x27\x6d\x61\x74\x72\x69\x78\x28\
-\x30\x2e\x39\x39\x36\x32\x36\x34\x20\x30\x20\x30\x20\x30\x2e\x39\
-\x39\x36\x32\x36\x34\x20\x35\x38\x2e\x34\x36\x36\x39\x20\x31\x31\
-\x37\x2e\x38\x35\x38\x29\x27\x3e\x0a\x3c\x63\x69\x72\x63\x6c\x65\
-\x20\x63\x78\x3d\x27\x31\x31\x2e\x39\x30\x33\x36\x27\x20\x63\x79\
-\x3d\x27\x2d\x35\x31\x2e\x33\x30\x33\x39\x27\x20\x66\x69\x6c\x6c\
-\x3d\x27\x23\x30\x30\x30\x30\x30\x30\x27\x20\x72\x3d\x27\x36\x2e\
-\x30\x32\x32\x35\x27\x2f\x3e\x0a\x3c\x2f\x67\x3e\x0a\x3c\x67\x20\
-\x74\x72\x61\x6e\x73\x66\x6f\x72\x6d\x3d\x27\x6d\x61\x74\x72\x69\
-\x78\x28\x30\x2e\x39\x39\x36\x32\x36\x34\x20\x30\x20\x30\x20\x30\
-\x2e\x39\x39\x36\x32\x36\x34\x20\x35\x38\x2e\x34\x36\x36\x39\x20\
-\x31\x31\x37\x2e\x38\x35\x38\x29\x27\x3e\x0a\x3c\x63\x69\x72\x63\
-\x6c\x65\x20\x63\x78\x3d\x27\x35\x36\x2e\x31\x35\x32\x33\x27\x20\
-\x63\x79\x3d\x27\x2d\x34\x32\x2e\x35\x30\x32\x32\x27\x20\x66\x69\
-\x6c\x6c\x3d\x27\x23\x30\x30\x30\x30\x30\x30\x27\x20\x72\x3d\x27\
-\x36\x2e\x30\x32\x32\x35\x27\x2f\x3e\x0a\x3c\x2f\x67\x3e\x0a\x3c\
-\x67\x20\x74\x72\x61\x6e\x73\x66\x6f\x72\x6d\x3d\x27\x6d\x61\x74\
-\x72\x69\x78\x28\x30\x2e\x39\x39\x36\x32\x36\x34\x20\x30\x20\x30\
-\x20\x30\x2e\x39\x39\x36\x32\x36\x34\x20\x35\x38\x2e\x34\x36\x36\
-\x39\x20\x31\x31\x37\x2e\x38\x35\x38\x29\x27\x3e\x0a\x3c\x63\x69\
-\x72\x63\x6c\x65\x20\x63\x78\x3d\x27\x34\x30\x2e\x36\x37\x39\x34\
-\x27\x20\x63\x79\x3d\x27\x2d\x32\x32\x2e\x35\x32\x38\x31\x27\x20\
-\x66\x69\x6c\x6c\x3d\x27\x23\x30\x30\x30\x30\x30\x30\x27\x20\x72\
-\x3d\x27\x36\x2e\x30\x32\x32\x35\x27\x2f\x3e\x0a\x3c\x2f\x67\x3e\
-\x0a\x3c\x2f\x67\x3e\x0a\x3c\x2f\x73\x76\x67\x3e\
-\x00\x00\x02\xc9\
+\x6d\x69\x74\x65\x72\x6c\x69\x6d\x69\x74\x3d\x27\x31\x30\x2e\x30\
+\x33\x37\x35\x27\x20\x73\x74\x72\x6f\x6b\x65\x2d\x77\x69\x64\x74\
+\x68\x3d\x27\x32\x2e\x35\x30\x39\x33\x37\x27\x2f\x3e\x0a\x3c\x2f\
+\x67\x3e\x0a\x3c\x67\x20\x74\x72\x61\x6e\x73\x66\x6f\x72\x6d\x3d\
+\x27\x6d\x61\x74\x72\x69\x78\x28\x30\x2e\x39\x39\x36\x32\x36\x34\
+\x20\x30\x20\x30\x20\x30\x2e\x39\x39\x36\x32\x36\x34\x20\x35\x38\
+\x2e\x34\x36\x36\x39\x20\x31\x31\x37\x2e\x38\x35\x38\x29\x27\x3e\
+\x0a\x3c\x63\x69\x72\x63\x6c\x65\x20\x63\x78\x3d\x27\x33\x2e\x39\
+\x35\x37\x33\x35\x27\x20\x63\x79\x3d\x27\x2d\x33\x32\x2e\x31\x32\
+\x27\x20\x66\x69\x6c\x6c\x3d\x27\x23\x30\x30\x30\x30\x30\x30\x27\
+\x20\x72\x3d\x27\x36\x2e\x30\x32\x32\x35\x27\x2f\x3e\x0a\x3c\x2f\
+\x67\x3e\x0a\x3c\x67\x20\x74\x72\x61\x6e\x73\x66\x6f\x72\x6d\x3d\
+\x27\x6d\x61\x74\x72\x69\x78\x28\x30\x2e\x39\x39\x36\x32\x36\x34\
+\x20\x30\x20\x30\x20\x30\x2e\x39\x39\x36\x32\x36\x34\x20\x35\x38\
+\x2e\x34\x36\x36\x39\x20\x31\x31\x37\x2e\x38\x35\x38\x29\x27\x3e\
+\x0a\x3c\x63\x69\x72\x63\x6c\x65\x20\x63\x78\x3d\x27\x31\x31\x2e\
+\x39\x30\x33\x36\x27\x20\x63\x79\x3d\x27\x2d\x35\x31\x2e\x33\x30\
+\x33\x39\x27\x20\x66\x69\x6c\x6c\x3d\x27\x23\x30\x30\x30\x30\x30\
+\x30\x27\x20\x72\x3d\x27\x36\x2e\x30\x32\x32\x35\x27\x2f\x3e\x0a\
+\x3c\x2f\x67\x3e\x0a\x3c\x67\x20\x74\x72\x61\x6e\x73\x66\x6f\x72\
+\x6d\x3d\x27\x6d\x61\x74\x72\x69\x78\x28\x30\x2e\x39\x39\x36\x32\
+\x36\x34\x20\x30\x20\x30\x20\x30\x2e\x39\x39\x36\x32\x36\x34\x20\
+\x35\x38\x2e\x34\x36\x36\x39\x20\x31\x31\x37\x2e\x38\x35\x38\x29\
+\x27\x3e\x0a\x3c\x63\x69\x72\x63\x6c\x65\x20\x63\x78\x3d\x27\x35\
+\x36\x2e\x31\x35\x32\x33\x27\x20\x63\x79\x3d\x27\x2d\x34\x32\x2e\
+\x35\x30\x32\x32\x27\x20\x66\x69\x6c\x6c\x3d\x27\x23\x30\x30\x30\
+\x30\x30\x30\x27\x20\x72\x3d\x27\x36\x2e\x30\x32\x32\x35\x27\x2f\
+\x3e\x0a\x3c\x2f\x67\x3e\x0a\x3c\x67\x20\x74\x72\x61\x6e\x73\x66\
+\x6f\x72\x6d\x3d\x27\x6d\x61\x74\x72\x69\x78\x28\x30\x2e\x39\x39\
+\x36\x32\x36\x34\x20\x30\x20\x30\x20\x30\x2e\x39\x39\x36\x32\x36\
+\x34\x20\x35\x38\x2e\x34\x36\x36\x39\x20\x31\x31\x37\x2e\x38\x35\
+\x38\x29\x27\x3e\x0a\x3c\x63\x69\x72\x63\x6c\x65\x20\x63\x78\x3d\
+\x27\x34\x30\x2e\x36\x37\x39\x34\x27\x20\x63\x79\x3d\x27\x2d\x32\
+\x32\x2e\x35\x32\x38\x31\x27\x20\x66\x69\x6c\x6c\x3d\x27\x23\x30\
+\x30\x30\x30\x30\x30\x27\x20\x72\x3d\x27\x36\x2e\x30\x32\x32\x35\
+\x27\x2f\x3e\x0a\x3c\x2f\x67\x3e\x0a\x3c\x2f\x67\x3e\x0a\x3c\x2f\
+\x73\x76\x67\x3e\
+\x00\x00\x03\xc4\
\x3c\
\x3f\x78\x6d\x6c\x20\x76\x65\x72\x73\x69\x6f\x6e\x3d\x22\x31\x2e\
\x30\x22\x20\x65\x6e\x63\x6f\x64\x69\x6e\x67\x3d\x22\x75\x74\x66\
\x2d\x38\x22\x3f\x3e\x0d\x0a\x3c\x21\x2d\x2d\x20\x47\x65\x6e\x65\
\x72\x61\x74\x6f\x72\x3a\x20\x41\x64\x6f\x62\x65\x20\x49\x6c\x6c\
-\x75\x73\x74\x72\x61\x74\x6f\x72\x20\x31\x36\x2e\x32\x2e\x31\x2c\
+\x75\x73\x74\x72\x61\x74\x6f\x72\x20\x31\x38\x2e\x31\x2e\x30\x2c\
\x20\x53\x56\x47\x20\x45\x78\x70\x6f\x72\x74\x20\x50\x6c\x75\x67\
\x2d\x49\x6e\x20\x2e\x20\x53\x56\x47\x20\x56\x65\x72\x73\x69\x6f\
\x6e\x3a\x20\x36\x2e\x30\x30\x20\x42\x75\x69\x6c\x64\x20\x30\x29\
@@ -1278,42 +1921,58 @@
\x73\x2f\x53\x56\x47\x2f\x31\x2e\x31\x2f\x44\x54\x44\x2f\x73\x76\
\x67\x31\x31\x2e\x64\x74\x64\x22\x3e\x0d\x0a\x3c\x73\x76\x67\x20\
\x76\x65\x72\x73\x69\x6f\x6e\x3d\x22\x31\x2e\x31\x22\x20\x69\x64\
-\x3d\x22\x4c\x61\x79\x65\x72\x5f\x31\x22\x20\x78\x6d\x6c\x6e\x73\
-\x3d\x22\x68\x74\x74\x70\x3a\x2f\x2f\x77\x77\x77\x2e\x77\x33\x2e\
-\x6f\x72\x67\x2f\x32\x30\x30\x30\x2f\x73\x76\x67\x22\x20\x78\x6d\
-\x6c\x6e\x73\x3a\x78\x6c\x69\x6e\x6b\x3d\x22\x68\x74\x74\x70\x3a\
-\x2f\x2f\x77\x77\x77\x2e\x77\x33\x2e\x6f\x72\x67\x2f\x31\x39\x39\
-\x39\x2f\x78\x6c\x69\x6e\x6b\x22\x20\x78\x3d\x22\x30\x70\x78\x22\
-\x20\x79\x3d\x22\x30\x70\x78\x22\x0d\x0a\x09\x20\x77\x69\x64\x74\
-\x68\x3d\x22\x35\x31\x32\x70\x78\x22\x20\x68\x65\x69\x67\x68\x74\
-\x3d\x22\x35\x31\x32\x70\x78\x22\x20\x76\x69\x65\x77\x42\x6f\x78\
-\x3d\x22\x30\x20\x30\x20\x35\x31\x32\x20\x35\x31\x32\x22\x20\x73\
-\x74\x79\x6c\x65\x3d\x22\x65\x6e\x61\x62\x6c\x65\x2d\x62\x61\x63\
-\x6b\x67\x72\x6f\x75\x6e\x64\x3a\x6e\x65\x77\x20\x30\x20\x30\x20\
-\x35\x31\x32\x20\x35\x31\x32\x3b\x22\x20\x78\x6d\x6c\x3a\x73\x70\
-\x61\x63\x65\x3d\x22\x70\x72\x65\x73\x65\x72\x76\x65\x22\x3e\x0d\
-\x0a\x3c\x70\x6f\x6c\x79\x67\x6f\x6e\x20\x70\x6f\x69\x6e\x74\x73\
-\x3d\x22\x34\x38\x30\x2c\x32\x35\x36\x20\x33\x38\x34\x2c\x31\x36\
-\x30\x20\x33\x38\x34\x2c\x32\x33\x36\x20\x32\x37\x36\x2c\x32\x33\
-\x36\x20\x32\x37\x36\x2c\x31\x32\x38\x20\x33\x35\x32\x2c\x31\x32\
-\x38\x20\x32\x35\x36\x2c\x33\x32\x20\x31\x36\x30\x2c\x31\x32\x38\
-\x20\x32\x33\x36\x2c\x31\x32\x38\x20\x32\x33\x36\x2c\x32\x33\x36\
-\x20\x31\x32\x38\x2c\x32\x33\x36\x20\x31\x32\x38\x2c\x31\x36\x30\
-\x20\x33\x32\x2c\x32\x35\x36\x20\x31\x32\x38\x2c\x33\x35\x32\x20\
-\x0d\x0a\x09\x31\x32\x38\x2c\x32\x37\x36\x20\x32\x33\x36\x2c\x32\
-\x37\x36\x20\x32\x33\x36\x2c\x33\x38\x34\x20\x31\x36\x30\x2c\x33\
-\x38\x34\x20\x32\x35\x36\x2c\x34\x38\x30\x20\x33\x35\x32\x2c\x33\
-\x38\x34\x20\x32\x37\x35\x2e\x38\x2c\x33\x38\x34\x20\x32\x37\x35\
-\x2e\x34\x2c\x32\x37\x35\x2e\x35\x20\x33\x38\x34\x2c\x32\x37\x35\
-\x2e\x38\x20\x33\x38\x34\x2c\x33\x35\x32\x20\x22\x2f\x3e\x0d\x0a\
-\x3c\x2f\x73\x76\x67\x3e\x0d\x0a\
-\x00\x00\x02\xfc\
+\x3d\x22\x4d\x61\x67\x6e\x69\x66\x79\x69\x6e\x67\x5f\x67\x6c\x61\
+\x73\x73\x22\x20\x78\x6d\x6c\x6e\x73\x3d\x22\x68\x74\x74\x70\x3a\
+\x2f\x2f\x77\x77\x77\x2e\x77\x33\x2e\x6f\x72\x67\x2f\x32\x30\x30\
+\x30\x2f\x73\x76\x67\x22\x20\x78\x6d\x6c\x6e\x73\x3a\x78\x6c\x69\
+\x6e\x6b\x3d\x22\x68\x74\x74\x70\x3a\x2f\x2f\x77\x77\x77\x2e\x77\
+\x33\x2e\x6f\x72\x67\x2f\x31\x39\x39\x39\x2f\x78\x6c\x69\x6e\x6b\
+\x22\x20\x78\x3d\x22\x30\x70\x78\x22\x0d\x0a\x09\x20\x79\x3d\x22\
+\x30\x70\x78\x22\x20\x76\x69\x65\x77\x42\x6f\x78\x3d\x22\x30\x20\
+\x30\x20\x35\x31\x32\x20\x35\x31\x32\x22\x20\x65\x6e\x61\x62\x6c\
+\x65\x2d\x62\x61\x63\x6b\x67\x72\x6f\x75\x6e\x64\x3d\x22\x6e\x65\
+\x77\x20\x30\x20\x30\x20\x35\x31\x32\x20\x35\x31\x32\x22\x20\x78\
+\x6d\x6c\x3a\x73\x70\x61\x63\x65\x3d\x22\x70\x72\x65\x73\x65\x72\
+\x76\x65\x22\x3e\x0d\x0a\x3c\x67\x20\x74\x72\x61\x6e\x73\x66\x6f\
+\x72\x6d\x3d\x27\x6d\x61\x74\x72\x69\x78\x28\x32\x34\x20\x30\x20\
+\x30\x20\x32\x34\x20\x30\x20\x30\x29\x27\x3e\x0d\x0a\x3c\x70\x61\
+\x74\x68\x20\x64\x3d\x22\x4d\x31\x37\x2e\x35\x34\x35\x2c\x31\x35\
+\x2e\x34\x36\x37\x6c\x2d\x33\x2e\x37\x37\x39\x2d\x33\x2e\x37\x37\
+\x39\x63\x30\x2e\x35\x37\x2d\x30\x2e\x39\x33\x35\x2c\x30\x2e\x38\
+\x39\x38\x2d\x32\x2e\x30\x33\x35\x2c\x30\x2e\x38\x39\x38\x2d\x33\
+\x2e\x32\x31\x63\x30\x2d\x33\x2e\x34\x31\x37\x2d\x32\x2e\x39\x36\
+\x31\x2d\x36\x2e\x33\x37\x37\x2d\x36\x2e\x33\x37\x38\x2d\x36\x2e\
+\x33\x37\x37\x0d\x0a\x09\x43\x34\x2e\x38\x36\x39\x2c\x32\x2e\x31\
+\x2c\x32\x2e\x31\x2c\x34\x2e\x38\x37\x2c\x32\x2e\x31\x2c\x38\x2e\
+\x32\x38\x37\x63\x30\x2c\x33\x2e\x34\x31\x36\x2c\x32\x2e\x39\x36\
+\x31\x2c\x36\x2e\x33\x37\x37\x2c\x36\x2e\x33\x37\x37\x2c\x36\x2e\
+\x33\x37\x37\x63\x31\x2e\x31\x33\x37\x2c\x30\x2c\x32\x2e\x32\x2d\
+\x30\x2e\x33\x30\x39\x2c\x33\x2e\x31\x31\x35\x2d\x30\x2e\x38\x34\
+\x34\x6c\x33\x2e\x37\x39\x39\x2c\x33\x2e\x38\x30\x31\x0d\x0a\x09\
+\x63\x30\x2e\x33\x37\x32\x2c\x30\x2e\x33\x37\x31\x2c\x30\x2e\x39\
+\x37\x35\x2c\x30\x2e\x33\x37\x31\x2c\x31\x2e\x33\x34\x36\x2c\x30\
+\x6c\x30\x2e\x39\x34\x33\x2d\x30\x2e\x39\x34\x33\x43\x31\x38\x2e\
+\x30\x35\x31\x2c\x31\x36\x2e\x33\x30\x37\x2c\x31\x37\x2e\x39\x31\
+\x36\x2c\x31\x35\x2e\x38\x33\x38\x2c\x31\x37\x2e\x35\x34\x35\x2c\
+\x31\x35\x2e\x34\x36\x37\x7a\x20\x4d\x34\x2e\x30\x30\x34\x2c\x38\
+\x2e\x32\x38\x37\x0d\x0a\x09\x63\x30\x2d\x32\x2e\x33\x36\x36\x2c\
+\x31\x2e\x39\x31\x37\x2d\x34\x2e\x32\x38\x33\x2c\x34\x2e\x32\x38\
+\x32\x2d\x34\x2e\x32\x38\x33\x63\x32\x2e\x33\x36\x36\x2c\x30\x2c\
+\x34\x2e\x34\x37\x34\x2c\x32\x2e\x31\x30\x37\x2c\x34\x2e\x34\x37\
+\x34\x2c\x34\x2e\x34\x37\x34\x63\x30\x2c\x32\x2e\x33\x36\x35\x2d\
+\x31\x2e\x39\x31\x38\x2c\x34\x2e\x32\x38\x33\x2d\x34\x2e\x32\x38\
+\x33\x2c\x34\x2e\x32\x38\x33\x0d\x0a\x09\x43\x36\x2e\x31\x31\x31\
+\x2c\x31\x32\x2e\x37\x36\x2c\x34\x2e\x30\x30\x34\x2c\x31\x30\x2e\
+\x36\x35\x32\x2c\x34\x2e\x30\x30\x34\x2c\x38\x2e\x32\x38\x37\x7a\
+\x22\x2f\x3e\x0d\x0a\x3c\x2f\x67\x3e\x0d\x0a\x3c\x2f\x73\x76\x67\
+\x3e\x0d\x0a\
+\x00\x00\x04\xaa\
\x3c\
\x3f\x78\x6d\x6c\x20\x76\x65\x72\x73\x69\x6f\x6e\x3d\x22\x31\x2e\
\x30\x22\x20\x65\x6e\x63\x6f\x64\x69\x6e\x67\x3d\x22\x75\x74\x66\
\x2d\x38\x22\x3f\x3e\x0d\x0a\x3c\x21\x2d\x2d\x20\x47\x65\x6e\x65\
\x72\x61\x74\x6f\x72\x3a\x20\x41\x64\x6f\x62\x65\x20\x49\x6c\x6c\
-\x75\x73\x74\x72\x61\x74\x6f\x72\x20\x31\x36\x2e\x32\x2e\x31\x2c\
+\x75\x73\x74\x72\x61\x74\x6f\x72\x20\x31\x38\x2e\x31\x2e\x30\x2c\
\x20\x53\x56\x47\x20\x45\x78\x70\x6f\x72\x74\x20\x50\x6c\x75\x67\
\x2d\x49\x6e\x20\x2e\x20\x53\x56\x47\x20\x56\x65\x72\x73\x69\x6f\
\x6e\x3a\x20\x36\x2e\x30\x30\x20\x42\x75\x69\x6c\x64\x20\x30\x29\
@@ -1325,40 +1984,163 @@
\x73\x2f\x53\x56\x47\x2f\x31\x2e\x31\x2f\x44\x54\x44\x2f\x73\x76\
\x67\x31\x31\x2e\x64\x74\x64\x22\x3e\x0d\x0a\x3c\x73\x76\x67\x20\
\x76\x65\x72\x73\x69\x6f\x6e\x3d\x22\x31\x2e\x31\x22\x20\x69\x64\
-\x3d\x22\x4c\x61\x79\x65\x72\x5f\x31\x22\x20\x78\x6d\x6c\x6e\x73\
-\x3d\x22\x68\x74\x74\x70\x3a\x2f\x2f\x77\x77\x77\x2e\x77\x33\x2e\
-\x6f\x72\x67\x2f\x32\x30\x30\x30\x2f\x73\x76\x67\x22\x20\x78\x6d\
-\x6c\x6e\x73\x3a\x78\x6c\x69\x6e\x6b\x3d\x22\x68\x74\x74\x70\x3a\
-\x2f\x2f\x77\x77\x77\x2e\x77\x33\x2e\x6f\x72\x67\x2f\x31\x39\x39\
-\x39\x2f\x78\x6c\x69\x6e\x6b\x22\x20\x78\x3d\x22\x30\x70\x78\x22\
-\x20\x79\x3d\x22\x30\x70\x78\x22\x0d\x0a\x09\x20\x77\x69\x64\x74\
-\x68\x3d\x22\x35\x31\x32\x70\x78\x22\x20\x68\x65\x69\x67\x68\x74\
-\x3d\x22\x35\x31\x32\x70\x78\x22\x20\x76\x69\x65\x77\x42\x6f\x78\
-\x3d\x22\x30\x20\x30\x20\x35\x31\x32\x20\x35\x31\x32\x22\x20\x65\
-\x6e\x61\x62\x6c\x65\x2d\x62\x61\x63\x6b\x67\x72\x6f\x75\x6e\x64\
-\x3d\x22\x6e\x65\x77\x20\x30\x20\x30\x20\x35\x31\x32\x20\x35\x31\
-\x32\x22\x20\x78\x6d\x6c\x3a\x73\x70\x61\x63\x65\x3d\x22\x70\x72\
-\x65\x73\x65\x72\x76\x65\x22\x3e\x0d\x0a\x3c\x67\x20\x69\x64\x3d\
-\x22\x49\x63\x6f\x6e\x5f\x32\x30\x5f\x22\x3e\x0d\x0a\x09\x3c\x67\
-\x3e\x0d\x0a\x09\x09\x3c\x70\x61\x74\x68\x20\x64\x3d\x22\x4d\x32\
-\x35\x36\x2c\x34\x38\x43\x31\x34\x31\x2e\x36\x30\x31\x2c\x34\x38\
-\x2c\x34\x38\x2c\x31\x34\x31\x2e\x36\x30\x31\x2c\x34\x38\x2c\x32\
-\x35\x36\x73\x39\x33\x2e\x36\x30\x31\x2c\x32\x30\x38\x2c\x32\x30\
-\x38\x2c\x32\x30\x38\x73\x32\x30\x38\x2d\x39\x33\x2e\x36\x30\x31\
-\x2c\x32\x30\x38\x2d\x32\x30\x38\x53\x33\x37\x30\x2e\x33\x39\x39\
-\x2c\x34\x38\x2c\x32\x35\x36\x2c\x34\x38\x7a\x20\x4d\x32\x35\x36\
-\x2c\x34\x32\x32\x2e\x33\x39\x39\x0d\x0a\x09\x09\x09\x63\x2d\x39\
-\x31\x2e\x35\x31\x38\x2c\x30\x2d\x31\x36\x36\x2e\x33\x39\x39\x2d\
-\x37\x34\x2e\x38\x38\x32\x2d\x31\x36\x36\x2e\x33\x39\x39\x2d\x31\
-\x36\x36\x2e\x33\x39\x39\x53\x31\x36\x34\x2e\x34\x38\x32\x2c\x38\
-\x39\x2e\x36\x2c\x32\x35\x36\x2c\x38\x39\x2e\x36\x53\x34\x32\x32\
-\x2e\x34\x2c\x31\x36\x34\x2e\x34\x38\x32\x2c\x34\x32\x32\x2e\x34\
-\x2c\x32\x35\x36\x53\x33\x34\x37\x2e\x35\x31\x38\x2c\x34\x32\x32\
-\x2e\x33\x39\x39\x2c\x32\x35\x36\x2c\x34\x32\x32\x2e\x33\x39\x39\
-\x7a\x22\x2f\x3e\x0d\x0a\x09\x3c\x2f\x67\x3e\x0d\x0a\x3c\x2f\x67\
-\x3e\x0d\x0a\x3c\x2f\x73\x76\x67\x3e\x0d\x0a\
-\x00\x00\x03\x6c\
+\x3d\x22\x43\x6f\x64\x65\x22\x20\x78\x6d\x6c\x6e\x73\x3d\x22\x68\
+\x74\x74\x70\x3a\x2f\x2f\x77\x77\x77\x2e\x77\x33\x2e\x6f\x72\x67\
+\x2f\x32\x30\x30\x30\x2f\x73\x76\x67\x22\x20\x78\x6d\x6c\x6e\x73\
+\x3a\x78\x6c\x69\x6e\x6b\x3d\x22\x68\x74\x74\x70\x3a\x2f\x2f\x77\
+\x77\x77\x2e\x77\x33\x2e\x6f\x72\x67\x2f\x31\x39\x39\x39\x2f\x78\
+\x6c\x69\x6e\x6b\x22\x20\x78\x3d\x22\x32\x34\x70\x78\x22\x20\x79\
+\x3d\x22\x32\x34\x70\x78\x22\x0d\x0a\x09\x20\x76\x69\x65\x77\x42\
+\x6f\x78\x3d\x22\x30\x20\x30\x20\x35\x31\x32\x20\x35\x31\x32\x22\
+\x20\x65\x6e\x61\x62\x6c\x65\x2d\x62\x61\x63\x6b\x67\x72\x6f\x75\
+\x6e\x64\x3d\x22\x6e\x65\x77\x20\x30\x20\x30\x20\x35\x31\x32\x20\
+\x35\x31\x32\x22\x20\x78\x6d\x6c\x3a\x73\x70\x61\x63\x65\x3d\x22\
+\x70\x72\x65\x73\x65\x72\x76\x65\x22\x3e\x0d\x0a\x3c\x67\x20\x74\
+\x72\x61\x6e\x73\x66\x6f\x72\x6d\x3d\x27\x6d\x61\x74\x72\x69\x78\
+\x28\x32\x34\x20\x30\x20\x30\x20\x32\x34\x20\x30\x20\x30\x29\x27\
+\x3e\x3c\x70\x61\x74\x68\x20\x64\x3d\x22\x4d\x35\x2e\x37\x31\x39\
+\x2c\x31\x34\x2e\x37\x35\x63\x2d\x30\x2e\x32\x33\x36\x2c\x30\x2d\
+\x30\x2e\x34\x37\x34\x2d\x30\x2e\x30\x38\x33\x2d\x30\x2e\x36\x36\
+\x34\x2d\x30\x2e\x32\x35\x32\x4c\x2d\x30\x2e\x30\x30\x35\x2c\x31\
+\x30\x6c\x35\x2e\x33\x34\x31\x2d\x34\x2e\x37\x34\x38\x43\x35\x2e\
+\x37\x34\x38\x2c\x34\x2e\x38\x38\x37\x2c\x36\x2e\x33\x38\x2c\x34\
+\x2e\x39\x32\x32\x2c\x36\x2e\x37\x34\x37\x2c\x35\x2e\x33\x33\x35\
+\x0d\x0a\x09\x63\x30\x2e\x33\x36\x37\x2c\x30\x2e\x34\x31\x33\x2c\
+\x30\x2e\x33\x33\x2c\x31\x2e\x30\x34\x35\x2d\x30\x2e\x30\x38\x33\
+\x2c\x31\x2e\x34\x31\x32\x4c\x33\x2e\x30\x30\x35\x2c\x31\x30\x6c\
+\x33\x2e\x33\x37\x38\x2c\x33\x2e\x30\x30\x32\x63\x30\x2e\x34\x31\
+\x33\x2c\x30\x2e\x33\x36\x37\x2c\x30\x2e\x34\x35\x2c\x30\x2e\x39\
+\x39\x39\x2c\x30\x2e\x30\x38\x33\x2c\x31\x2e\x34\x31\x32\x0d\x0a\
+\x09\x43\x36\x2e\x32\x36\x39\x2c\x31\x34\x2e\x36\x33\x37\x2c\x35\
+\x2e\x39\x39\x34\x2c\x31\x34\x2e\x37\x35\x2c\x35\x2e\x37\x31\x39\
+\x2c\x31\x34\x2e\x37\x35\x7a\x20\x4d\x31\x34\x2e\x36\x36\x34\x2c\
+\x31\x34\x2e\x37\x34\x38\x4c\x32\x30\x2e\x30\x30\x35\x2c\x31\x30\
+\x6c\x2d\x35\x2e\x30\x36\x2d\x34\x2e\x34\x39\x38\x63\x2d\x30\x2e\
+\x34\x31\x33\x2d\x30\x2e\x33\x36\x37\x2d\x31\x2e\x30\x34\x35\x2d\
+\x30\x2e\x33\x33\x2d\x31\x2e\x34\x31\x31\x2c\x30\x2e\x30\x38\x33\
+\x0d\x0a\x09\x63\x2d\x30\x2e\x33\x36\x37\x2c\x30\x2e\x34\x31\x33\
+\x2d\x30\x2e\x33\x33\x2c\x31\x2e\x30\x34\x35\x2c\x30\x2e\x30\x38\
+\x33\x2c\x31\x2e\x34\x31\x32\x4c\x31\x36\x2e\x39\x39\x35\x2c\x31\
+\x30\x6c\x2d\x33\x2e\x36\x35\x39\x2c\x33\x2e\x32\x35\x32\x63\x2d\
+\x30\x2e\x34\x31\x33\x2c\x30\x2e\x33\x36\x37\x2d\x30\x2e\x34\x35\
+\x2c\x30\x2e\x39\x39\x39\x2d\x30\x2e\x30\x38\x33\x2c\x31\x2e\x34\
+\x31\x32\x43\x31\x33\x2e\x34\x35\x2c\x31\x34\x2e\x38\x38\x37\x2c\
+\x31\x33\x2e\x37\x32\x35\x2c\x31\x35\x2c\x31\x34\x2c\x31\x35\x0d\
+\x0a\x09\x43\x31\x34\x2e\x32\x33\x36\x2c\x31\x35\x2c\x31\x34\x2e\
+\x34\x37\x34\x2c\x31\x34\x2e\x39\x31\x37\x2c\x31\x34\x2e\x36\x36\
+\x34\x2c\x31\x34\x2e\x37\x34\x38\x7a\x20\x4d\x39\x2e\x39\x38\x36\
+\x2c\x31\x36\x2e\x31\x36\x35\x6c\x32\x2d\x31\x32\x63\x30\x2e\x30\
+\x39\x31\x2d\x30\x2e\x35\x34\x35\x2d\x30\x2e\x32\x37\x37\x2d\x31\
+\x2e\x30\x36\x2d\x30\x2e\x38\x32\x32\x2d\x31\x2e\x31\x35\x31\x0d\
+\x0a\x09\x63\x2d\x30\x2e\x35\x34\x37\x2d\x30\x2e\x30\x39\x32\x2d\
+\x31\x2e\x30\x36\x31\x2c\x30\x2e\x32\x37\x37\x2d\x31\x2e\x31\x35\
+\x2c\x30\x2e\x38\x32\x32\x6c\x2d\x32\x2c\x31\x32\x63\x2d\x30\x2e\
+\x30\x39\x31\x2c\x30\x2e\x35\x34\x35\x2c\x30\x2e\x32\x37\x37\x2c\
+\x31\x2e\x30\x36\x2c\x30\x2e\x38\x32\x32\x2c\x31\x2e\x31\x35\x31\
+\x43\x38\x2e\x38\x39\x32\x2c\x31\x36\x2e\x39\x39\x36\x2c\x38\x2e\
+\x39\x34\x36\x2c\x31\x37\x2c\x39\x2e\x30\x30\x31\x2c\x31\x37\x0d\
+\x0a\x09\x43\x39\x2e\x34\x38\x31\x2c\x31\x37\x2c\x39\x2e\x39\x30\
+\x35\x2c\x31\x36\x2e\x36\x35\x33\x2c\x39\x2e\x39\x38\x36\x2c\x31\
+\x36\x2e\x31\x36\x35\x7a\x22\x2f\x3e\x0d\x0a\x3c\x2f\x67\x3e\x0d\
+\x0a\x3c\x2f\x73\x76\x67\x3e\x0d\x0a\
+\x00\x00\x05\xd4\
\x3c\
+\x3f\x78\x6d\x6c\x20\x76\x65\x72\x73\x69\x6f\x6e\x3d\x27\x31\x2e\
+\x30\x27\x20\x65\x6e\x63\x6f\x64\x69\x6e\x67\x3d\x27\x55\x54\x46\
+\x2d\x38\x27\x3f\x3e\x0a\x3c\x21\x2d\x2d\x20\x54\x68\x69\x73\x20\
+\x66\x69\x6c\x65\x20\x77\x61\x73\x20\x67\x65\x6e\x65\x72\x61\x74\
+\x65\x64\x20\x62\x79\x20\x64\x76\x69\x73\x76\x67\x6d\x20\x32\x2e\
+\x38\x20\x2d\x2d\x3e\x0a\x3c\x73\x76\x67\x20\x76\x65\x72\x73\x69\
+\x6f\x6e\x3d\x27\x31\x2e\x31\x27\x20\x78\x6d\x6c\x6e\x73\x3d\x27\
+\x68\x74\x74\x70\x3a\x2f\x2f\x77\x77\x77\x2e\x77\x33\x2e\x6f\x72\
+\x67\x2f\x32\x30\x30\x30\x2f\x73\x76\x67\x27\x20\x78\x6d\x6c\x6e\
+\x73\x3a\x78\x6c\x69\x6e\x6b\x3d\x27\x68\x74\x74\x70\x3a\x2f\x2f\
+\x77\x77\x77\x2e\x77\x33\x2e\x6f\x72\x67\x2f\x31\x39\x39\x39\x2f\
+\x78\x6c\x69\x6e\x6b\x27\x20\x77\x69\x64\x74\x68\x3d\x27\x36\x33\
+\x2e\x39\x39\x39\x36\x70\x74\x27\x20\x68\x65\x69\x67\x68\x74\x3d\
+\x27\x36\x33\x2e\x39\x39\x39\x37\x70\x74\x27\x20\x76\x69\x65\x77\
+\x42\x6f\x78\x3d\x27\x35\x36\x2e\x34\x30\x39\x34\x20\x35\x33\x2e\
+\x38\x35\x38\x33\x20\x36\x33\x2e\x39\x39\x39\x36\x20\x36\x33\x2e\
+\x39\x39\x39\x37\x27\x3e\x0a\x3c\x67\x20\x69\x64\x3d\x27\x70\x61\
+\x67\x65\x31\x27\x3e\x0a\x3c\x67\x20\x74\x72\x61\x6e\x73\x66\x6f\
+\x72\x6d\x3d\x27\x6d\x61\x74\x72\x69\x78\x28\x30\x2e\x39\x39\x36\
+\x32\x36\x34\x20\x30\x20\x30\x20\x30\x2e\x39\x39\x36\x32\x36\x34\
+\x20\x35\x36\x2e\x34\x30\x39\x34\x20\x31\x31\x37\x2e\x38\x35\x38\
+\x29\x27\x3e\x0a\x3c\x70\x61\x74\x68\x20\x64\x3d\x27\x4d\x20\x35\
+\x34\x2e\x38\x39\x32\x36\x20\x2d\x33\x39\x2e\x37\x31\x30\x39\x43\
+\x20\x35\x34\x2e\x38\x39\x32\x36\x20\x2d\x34\x33\x2e\x39\x30\x33\
+\x32\x20\x34\x34\x2e\x36\x39\x36\x39\x20\x2d\x34\x37\x2e\x33\x30\
+\x31\x37\x20\x33\x32\x2e\x31\x32\x20\x2d\x34\x37\x2e\x33\x30\x31\
+\x37\x43\x20\x31\x39\x2e\x35\x34\x33\x31\x20\x2d\x34\x37\x2e\x33\
+\x30\x31\x37\x20\x39\x2e\x33\x34\x37\x34\x32\x20\x2d\x34\x33\x2e\
+\x39\x30\x33\x32\x20\x39\x2e\x33\x34\x37\x34\x32\x20\x2d\x33\x39\
+\x2e\x37\x31\x30\x39\x43\x20\x39\x2e\x33\x34\x37\x34\x32\x20\x2d\
+\x33\x35\x2e\x35\x31\x38\x35\x20\x31\x39\x2e\x35\x34\x33\x31\x20\
+\x2d\x33\x32\x2e\x31\x32\x20\x33\x32\x2e\x31\x32\x20\x2d\x33\x32\
+\x2e\x31\x32\x43\x20\x34\x34\x2e\x36\x39\x36\x39\x20\x2d\x33\x32\
+\x2e\x31\x32\x20\x35\x34\x2e\x38\x39\x32\x36\x20\x2d\x33\x35\x2e\
+\x35\x31\x38\x35\x20\x35\x34\x2e\x38\x39\x32\x36\x20\x2d\x33\x39\
+\x2e\x37\x31\x30\x39\x5a\x27\x20\x66\x69\x6c\x6c\x3d\x27\x6e\x6f\
+\x6e\x65\x27\x20\x73\x74\x72\x6f\x6b\x65\x3d\x27\x23\x30\x30\x30\
+\x30\x30\x30\x27\x20\x73\x74\x72\x6f\x6b\x65\x2d\x6c\x69\x6e\x65\
+\x63\x61\x70\x3d\x27\x72\x6f\x75\x6e\x64\x27\x20\x73\x74\x72\x6f\
+\x6b\x65\x2d\x6c\x69\x6e\x65\x6a\x6f\x69\x6e\x3d\x27\x72\x6f\x75\
+\x6e\x64\x27\x20\x73\x74\x72\x6f\x6b\x65\x2d\x6d\x69\x74\x65\x72\
+\x6c\x69\x6d\x69\x74\x3d\x27\x31\x30\x2e\x30\x33\x37\x35\x27\x20\
+\x73\x74\x72\x6f\x6b\x65\x2d\x77\x69\x64\x74\x68\x3d\x27\x33\x2e\
+\x35\x31\x33\x31\x32\x27\x2f\x3e\x0a\x3c\x2f\x67\x3e\x0a\x3c\x67\
+\x20\x74\x72\x61\x6e\x73\x66\x6f\x72\x6d\x3d\x27\x6d\x61\x74\x72\
+\x69\x78\x28\x30\x2e\x39\x39\x36\x32\x36\x34\x20\x30\x20\x30\x20\
+\x30\x2e\x39\x39\x36\x32\x36\x34\x20\x35\x36\x2e\x34\x30\x39\x34\
+\x20\x31\x31\x37\x2e\x38\x35\x38\x29\x27\x3e\x0a\x3c\x70\x61\x74\
+\x68\x20\x64\x3d\x27\x4d\x20\x39\x2e\x33\x34\x37\x34\x32\x20\x2d\
+\x33\x39\x2e\x37\x31\x30\x39\x4c\x20\x39\x2e\x33\x34\x37\x34\x32\
+\x20\x2d\x39\x2e\x33\x34\x37\x34\x32\x4c\x20\x39\x2e\x33\x34\x37\
+\x34\x32\x20\x2d\x39\x2e\x33\x34\x37\x34\x32\x43\x20\x39\x2e\x33\
+\x34\x37\x34\x32\x20\x2d\x39\x2e\x33\x34\x37\x34\x32\x20\x39\x2e\
+\x33\x34\x37\x34\x32\x20\x2d\x39\x2e\x33\x34\x37\x34\x32\x20\x39\
+\x2e\x33\x34\x37\x34\x32\x20\x2d\x39\x2e\x33\x34\x37\x34\x32\x43\
+\x20\x39\x2e\x33\x34\x37\x34\x32\x20\x2d\x35\x2e\x31\x35\x35\x31\
+\x31\x20\x31\x39\x2e\x35\x34\x33\x31\x20\x2d\x31\x2e\x37\x35\x36\
+\x35\x36\x20\x33\x32\x2e\x31\x32\x20\x2d\x31\x2e\x37\x35\x36\x35\
+\x36\x43\x20\x34\x34\x2e\x36\x39\x36\x39\x20\x2d\x31\x2e\x37\x35\
+\x36\x35\x36\x20\x35\x34\x2e\x38\x39\x32\x36\x20\x2d\x35\x2e\x31\
+\x35\x35\x31\x31\x20\x35\x34\x2e\x38\x39\x32\x36\x20\x2d\x39\x2e\
+\x33\x34\x37\x34\x32\x4c\x20\x35\x34\x2e\x38\x39\x32\x36\x20\x2d\
+\x39\x2e\x33\x34\x37\x34\x32\x4c\x20\x35\x34\x2e\x38\x39\x32\x36\
+\x20\x2d\x33\x39\x2e\x37\x31\x30\x39\x27\x20\x66\x69\x6c\x6c\x3d\
+\x27\x6e\x6f\x6e\x65\x27\x20\x73\x74\x72\x6f\x6b\x65\x3d\x27\x23\
+\x30\x30\x30\x30\x30\x30\x27\x20\x73\x74\x72\x6f\x6b\x65\x2d\x6c\
+\x69\x6e\x65\x63\x61\x70\x3d\x27\x72\x6f\x75\x6e\x64\x27\x20\x73\
+\x74\x72\x6f\x6b\x65\x2d\x6c\x69\x6e\x65\x6a\x6f\x69\x6e\x3d\x27\
+\x72\x6f\x75\x6e\x64\x27\x20\x73\x74\x72\x6f\x6b\x65\x2d\x6d\x69\
+\x74\x65\x72\x6c\x69\x6d\x69\x74\x3d\x27\x31\x30\x2e\x30\x33\x37\
+\x35\x27\x20\x73\x74\x72\x6f\x6b\x65\x2d\x77\x69\x64\x74\x68\x3d\
+\x27\x33\x2e\x35\x31\x33\x31\x32\x27\x2f\x3e\x0a\x3c\x2f\x67\x3e\
+\x0a\x3c\x67\x20\x74\x72\x61\x6e\x73\x66\x6f\x72\x6d\x3d\x27\x6d\
+\x61\x74\x72\x69\x78\x28\x30\x2e\x39\x39\x36\x32\x36\x34\x20\x30\
+\x20\x30\x20\x30\x2e\x39\x39\x36\x32\x36\x34\x20\x35\x36\x2e\x34\
+\x30\x39\x34\x20\x31\x31\x37\x2e\x38\x35\x38\x29\x27\x3e\x0a\x3c\
+\x70\x61\x74\x68\x20\x64\x3d\x27\x4d\x20\x35\x34\x2e\x38\x39\x32\
+\x36\x20\x2d\x33\x39\x2e\x37\x31\x30\x39\x43\x20\x35\x34\x2e\x38\
+\x39\x32\x36\x20\x2d\x35\x32\x2e\x32\x38\x37\x38\x20\x34\x34\x2e\
+\x36\x39\x36\x39\x20\x2d\x36\x32\x2e\x34\x38\x33\x34\x20\x33\x32\
+\x2e\x31\x32\x20\x2d\x36\x32\x2e\x34\x38\x33\x34\x43\x20\x31\x39\
+\x2e\x35\x34\x33\x31\x20\x2d\x36\x32\x2e\x34\x38\x33\x34\x20\x39\
+\x2e\x33\x34\x37\x34\x32\x20\x2d\x35\x32\x2e\x32\x38\x37\x38\x20\
+\x39\x2e\x33\x34\x37\x34\x32\x20\x2d\x33\x39\x2e\x37\x31\x30\x39\
+\x27\x20\x66\x69\x6c\x6c\x3d\x27\x6e\x6f\x6e\x65\x27\x20\x73\x74\
+\x72\x6f\x6b\x65\x3d\x27\x23\x30\x30\x30\x30\x30\x30\x27\x20\x73\
+\x74\x72\x6f\x6b\x65\x2d\x6c\x69\x6e\x65\x63\x61\x70\x3d\x27\x72\
+\x6f\x75\x6e\x64\x27\x20\x73\x74\x72\x6f\x6b\x65\x2d\x6c\x69\x6e\
+\x65\x6a\x6f\x69\x6e\x3d\x27\x72\x6f\x75\x6e\x64\x27\x20\x73\x74\
+\x72\x6f\x6b\x65\x2d\x6d\x69\x74\x65\x72\x6c\x69\x6d\x69\x74\x3d\
+\x27\x31\x30\x2e\x30\x33\x37\x35\x27\x20\x73\x74\x72\x6f\x6b\x65\
+\x2d\x77\x69\x64\x74\x68\x3d\x27\x33\x2e\x35\x31\x33\x31\x32\x27\
+\x2f\x3e\x0a\x3c\x2f\x67\x3e\x0a\x3c\x2f\x67\x3e\x0a\x3c\x2f\x73\
+\x76\x67\x3e\
+\x00\x00\x03\x46\
+\x3c\
\x3f\x78\x6d\x6c\x20\x76\x65\x72\x73\x69\x6f\x6e\x3d\x22\x31\x2e\
\x30\x22\x20\x65\x6e\x63\x6f\x64\x69\x6e\x67\x3d\x22\x75\x74\x66\
\x2d\x38\x22\x3f\x3e\x0d\x0a\x3c\x21\x2d\x2d\x20\x47\x65\x6e\x65\
@@ -1384,107 +2166,43 @@
\x20\x79\x3d\x22\x30\x70\x78\x22\x0d\x0a\x09\x20\x77\x69\x64\x74\
\x68\x3d\x22\x35\x31\x32\x70\x78\x22\x20\x68\x65\x69\x67\x68\x74\
\x3d\x22\x35\x31\x32\x70\x78\x22\x20\x76\x69\x65\x77\x42\x6f\x78\
-\x3d\x22\x30\x20\x30\x20\x35\x31\x32\x20\x35\x31\x32\x22\x20\x65\
-\x6e\x61\x62\x6c\x65\x2d\x62\x61\x63\x6b\x67\x72\x6f\x75\x6e\x64\
-\x3d\x22\x6e\x65\x77\x20\x30\x20\x30\x20\x35\x31\x32\x20\x35\x31\
-\x32\x22\x20\x78\x6d\x6c\x3a\x73\x70\x61\x63\x65\x3d\x22\x70\x72\
-\x65\x73\x65\x72\x76\x65\x22\x3e\x0d\x0a\x3c\x67\x3e\x0d\x0a\x09\
-\x0d\x0a\x09\x09\x3c\x72\x65\x63\x74\x20\x78\x3d\x22\x31\x37\x38\
-\x2e\x38\x34\x36\x22\x20\x79\x3d\x22\x39\x32\x2e\x30\x38\x37\x22\
-\x20\x74\x72\x61\x6e\x73\x66\x6f\x72\x6d\x3d\x22\x6d\x61\x74\x72\
-\x69\x78\x28\x2d\x30\x2e\x37\x30\x37\x31\x20\x2d\x30\x2e\x37\x30\
-\x37\x31\x20\x30\x2e\x37\x30\x37\x31\x20\x2d\x30\x2e\x37\x30\x37\
-\x31\x20\x32\x32\x34\x2e\x33\x34\x37\x36\x20\x36\x33\x31\x2e\x31\
-\x34\x39\x38\x29\x22\x20\x77\x69\x64\x74\x68\x3d\x22\x31\x32\x38\
-\x2e\x30\x38\x35\x22\x20\x68\x65\x69\x67\x68\x74\x3d\x22\x33\x35\
-\x34\x2e\x30\x34\x39\x22\x2f\x3e\x0d\x0a\x09\x3c\x70\x61\x74\x68\
-\x20\x64\x3d\x22\x4d\x34\x37\x31\x2e\x37\x32\x33\x2c\x38\x38\x2e\
-\x33\x39\x33\x6c\x2d\x34\x38\x2e\x31\x31\x35\x2d\x34\x38\x2e\x31\
-\x31\x34\x63\x2d\x31\x31\x2e\x37\x32\x33\x2d\x31\x31\x2e\x37\x32\
-\x34\x2d\x33\x31\x2e\x35\x35\x38\x2d\x31\x30\x2e\x38\x39\x36\x2d\
-\x34\x34\x2e\x33\x30\x34\x2c\x31\x2e\x38\x35\x6c\x2d\x34\x35\x2e\
-\x32\x30\x32\x2c\x34\x35\x2e\x32\x30\x33\x6c\x39\x30\x2e\x35\x36\
-\x39\x2c\x39\x30\x2e\x35\x36\x38\x6c\x34\x35\x2e\x32\x30\x32\x2d\
-\x34\x35\x2e\x32\x30\x32\x0d\x0a\x09\x09\x43\x34\x38\x32\x2e\x36\
-\x31\x36\x2c\x31\x31\x39\x2e\x39\x35\x32\x2c\x34\x38\x33\x2e\x34\
-\x34\x35\x2c\x31\x30\x30\x2e\x31\x31\x36\x2c\x34\x37\x31\x2e\x37\
-\x32\x33\x2c\x38\x38\x2e\x33\x39\x33\x7a\x22\x2f\x3e\x0d\x0a\x09\
-\x3c\x70\x6f\x6c\x79\x67\x6f\x6e\x20\x70\x6f\x69\x6e\x74\x73\x3d\
-\x22\x36\x34\x2e\x30\x32\x31\x2c\x33\x36\x33\x2e\x32\x35\x32\x20\
-\x33\x32\x2c\x34\x38\x30\x20\x31\x34\x38\x2e\x37\x33\x37\x2c\x34\
-\x34\x37\x2e\x39\x37\x39\x20\x09\x22\x2f\x3e\x0d\x0a\x3c\x2f\x67\
-\x3e\x0d\x0a\x3c\x2f\x73\x76\x67\x3e\x0d\x0a\
-\x00\x00\x04\x4e\
+\x3d\x22\x30\x20\x30\x20\x35\x31\x32\x20\x35\x31\x32\x22\x20\x73\
+\x74\x79\x6c\x65\x3d\x22\x65\x6e\x61\x62\x6c\x65\x2d\x62\x61\x63\
+\x6b\x67\x72\x6f\x75\x6e\x64\x3a\x6e\x65\x77\x20\x30\x20\x30\x20\
+\x35\x31\x32\x20\x35\x31\x32\x3b\x22\x20\x78\x6d\x6c\x3a\x73\x70\
+\x61\x63\x65\x3d\x22\x70\x72\x65\x73\x65\x72\x76\x65\x22\x3e\x0d\
+\x0a\x3c\x70\x61\x74\x68\x20\x64\x3d\x22\x4d\x34\x33\x37\x2e\x35\
+\x2c\x33\x38\x36\x2e\x36\x4c\x33\x30\x36\x2e\x39\x2c\x32\x35\x36\
+\x6c\x31\x33\x30\x2e\x36\x2d\x31\x33\x30\x2e\x36\x63\x31\x34\x2e\
+\x31\x2d\x31\x34\x2e\x31\x2c\x31\x34\x2e\x31\x2d\x33\x36\x2e\x38\
+\x2c\x30\x2d\x35\x30\x2e\x39\x63\x2d\x31\x34\x2e\x31\x2d\x31\x34\
+\x2e\x31\x2d\x33\x36\x2e\x38\x2d\x31\x34\x2e\x31\x2d\x35\x30\x2e\
+\x39\x2c\x30\x4c\x32\x35\x36\x2c\x32\x30\x35\x2e\x31\x4c\x31\x32\
+\x35\x2e\x34\x2c\x37\x34\x2e\x35\x0d\x0a\x09\x63\x2d\x31\x34\x2e\
+\x31\x2d\x31\x34\x2e\x31\x2d\x33\x36\x2e\x38\x2d\x31\x34\x2e\x31\
+\x2d\x35\x30\x2e\x39\x2c\x30\x63\x2d\x31\x34\x2e\x31\x2c\x31\x34\
+\x2e\x31\x2d\x31\x34\x2e\x31\x2c\x33\x36\x2e\x38\x2c\x30\x2c\x35\
+\x30\x2e\x39\x4c\x32\x30\x35\x2e\x31\x2c\x32\x35\x36\x4c\x37\x34\
+\x2e\x35\x2c\x33\x38\x36\x2e\x36\x63\x2d\x31\x34\x2e\x31\x2c\x31\
+\x34\x2e\x31\x2d\x31\x34\x2e\x31\x2c\x33\x36\x2e\x38\x2c\x30\x2c\
+\x35\x30\x2e\x39\x0d\x0a\x09\x63\x31\x34\x2e\x31\x2c\x31\x34\x2e\
+\x31\x2c\x33\x36\x2e\x38\x2c\x31\x34\x2e\x31\x2c\x35\x30\x2e\x39\
+\x2c\x30\x4c\x32\x35\x36\x2c\x33\x30\x36\x2e\x39\x6c\x31\x33\x30\
+\x2e\x36\x2c\x31\x33\x30\x2e\x36\x63\x31\x34\x2e\x31\x2c\x31\x34\
+\x2e\x31\x2c\x33\x36\x2e\x38\x2c\x31\x34\x2e\x31\x2c\x35\x30\x2e\
+\x39\x2c\x30\x43\x34\x35\x31\x2e\x35\x2c\x34\x32\x33\x2e\x34\x2c\
+\x34\x35\x31\x2e\x35\x2c\x34\x30\x30\x2e\x36\x2c\x34\x33\x37\x2e\
+\x35\x2c\x33\x38\x36\x2e\x36\x7a\x22\x2f\x3e\x0d\x0a\x3c\x2f\x73\
+\x76\x67\x3e\x0d\x0a\
+\x00\x00\x00\x6c\
\x3c\
-\x3f\x78\x6d\x6c\x20\x76\x65\x72\x73\x69\x6f\x6e\x3d\x27\x31\x2e\
-\x30\x27\x20\x65\x6e\x63\x6f\x64\x69\x6e\x67\x3d\x27\x55\x54\x46\
-\x2d\x38\x27\x3f\x3e\x0a\x3c\x21\x2d\x2d\x20\x54\x68\x69\x73\x20\
-\x66\x69\x6c\x65\x20\x77\x61\x73\x20\x67\x65\x6e\x65\x72\x61\x74\
-\x65\x64\x20\x62\x79\x20\x64\x76\x69\x73\x76\x67\x6d\x20\x32\x2e\
-\x38\x20\x2d\x2d\x3e\x0a\x3c\x73\x76\x67\x20\x76\x65\x72\x73\x69\
-\x6f\x6e\x3d\x27\x31\x2e\x31\x27\x20\x78\x6d\x6c\x6e\x73\x3d\x27\
-\x68\x74\x74\x70\x3a\x2f\x2f\x77\x77\x77\x2e\x77\x33\x2e\x6f\x72\
-\x67\x2f\x32\x30\x30\x30\x2f\x73\x76\x67\x27\x20\x78\x6d\x6c\x6e\
-\x73\x3a\x78\x6c\x69\x6e\x6b\x3d\x27\x68\x74\x74\x70\x3a\x2f\x2f\
-\x77\x77\x77\x2e\x77\x33\x2e\x6f\x72\x67\x2f\x31\x39\x39\x39\x2f\
-\x78\x6c\x69\x6e\x6b\x27\x20\x77\x69\x64\x74\x68\x3d\x27\x36\x33\
-\x2e\x39\x39\x39\x36\x70\x74\x27\x20\x68\x65\x69\x67\x68\x74\x3d\
-\x27\x36\x33\x2e\x39\x39\x39\x37\x70\x74\x27\x20\x76\x69\x65\x77\
-\x42\x6f\x78\x3d\x27\x35\x36\x2e\x34\x30\x39\x34\x20\x35\x33\x2e\
-\x38\x35\x38\x33\x20\x36\x33\x2e\x39\x39\x39\x36\x20\x36\x33\x2e\
-\x39\x39\x39\x37\x27\x3e\x0a\x3c\x67\x20\x69\x64\x3d\x27\x70\x61\
-\x67\x65\x31\x27\x3e\x0a\x3c\x67\x20\x74\x72\x61\x6e\x73\x66\x6f\
-\x72\x6d\x3d\x27\x6d\x61\x74\x72\x69\x78\x28\x30\x2e\x39\x39\x36\
-\x32\x36\x34\x20\x30\x20\x30\x20\x30\x2e\x39\x39\x36\x32\x36\x34\
-\x20\x35\x38\x2e\x34\x36\x36\x39\x20\x31\x31\x37\x2e\x38\x35\x38\
-\x29\x27\x3e\x0a\x3c\x70\x61\x74\x68\x20\x64\x3d\x27\x4d\x20\x33\
-\x2e\x39\x35\x37\x33\x35\x20\x2d\x33\x32\x2e\x31\x32\x4c\x20\x31\
-\x31\x2e\x39\x30\x33\x36\x20\x2d\x35\x31\x2e\x33\x30\x33\x39\x4c\
-\x20\x35\x36\x2e\x31\x35\x32\x33\x20\x2d\x34\x32\x2e\x35\x30\x32\
-\x32\x4c\x20\x34\x30\x2e\x36\x37\x39\x34\x20\x2d\x32\x32\x2e\x35\
-\x32\x38\x31\x4c\x20\x33\x2e\x39\x35\x37\x33\x35\x20\x2d\x33\x32\
-\x2e\x31\x32\x5a\x27\x20\x66\x69\x6c\x6c\x3d\x27\x6e\x6f\x6e\x65\
-\x27\x20\x73\x74\x72\x6f\x6b\x65\x3d\x27\x23\x30\x30\x30\x30\x30\
-\x30\x27\x20\x73\x74\x72\x6f\x6b\x65\x2d\x6c\x69\x6e\x65\x63\x61\
-\x70\x3d\x27\x72\x6f\x75\x6e\x64\x27\x20\x73\x74\x72\x6f\x6b\x65\
-\x2d\x6c\x69\x6e\x65\x6a\x6f\x69\x6e\x3d\x27\x72\x6f\x75\x6e\x64\
-\x27\x20\x73\x74\x72\x6f\x6b\x65\x2d\x6d\x69\x74\x65\x72\x6c\x69\
-\x6d\x69\x74\x3d\x27\x31\x30\x2e\x30\x33\x37\x35\x27\x20\x73\x74\
-\x72\x6f\x6b\x65\x2d\x77\x69\x64\x74\x68\x3d\x27\x32\x2e\x35\x30\
-\x39\x33\x37\x27\x2f\x3e\x0a\x3c\x2f\x67\x3e\x0a\x3c\x67\x20\x74\
-\x72\x61\x6e\x73\x66\x6f\x72\x6d\x3d\x27\x6d\x61\x74\x72\x69\x78\
-\x28\x30\x2e\x39\x39\x36\x32\x36\x34\x20\x30\x20\x30\x20\x30\x2e\
-\x39\x39\x36\x32\x36\x34\x20\x35\x38\x2e\x34\x36\x36\x39\x20\x31\
-\x31\x37\x2e\x38\x35\x38\x29\x27\x3e\x0a\x3c\x63\x69\x72\x63\x6c\
-\x65\x20\x63\x78\x3d\x27\x33\x2e\x39\x35\x37\x33\x35\x27\x20\x63\
-\x79\x3d\x27\x2d\x33\x32\x2e\x31\x32\x27\x20\x66\x69\x6c\x6c\x3d\
-\x27\x23\x30\x30\x30\x30\x30\x30\x27\x20\x72\x3d\x27\x36\x2e\x30\
-\x32\x32\x35\x27\x2f\x3e\x0a\x3c\x2f\x67\x3e\x0a\x3c\x67\x20\x74\
-\x72\x61\x6e\x73\x66\x6f\x72\x6d\x3d\x27\x6d\x61\x74\x72\x69\x78\
-\x28\x30\x2e\x39\x39\x36\x32\x36\x34\x20\x30\x20\x30\x20\x30\x2e\
-\x39\x39\x36\x32\x36\x34\x20\x35\x38\x2e\x34\x36\x36\x39\x20\x31\
-\x31\x37\x2e\x38\x35\x38\x29\x27\x3e\x0a\x3c\x63\x69\x72\x63\x6c\
-\x65\x20\x63\x78\x3d\x27\x31\x31\x2e\x39\x30\x33\x36\x27\x20\x63\
-\x79\x3d\x27\x2d\x35\x31\x2e\x33\x30\x33\x39\x27\x20\x66\x69\x6c\
-\x6c\x3d\x27\x23\x30\x30\x30\x30\x30\x30\x27\x20\x72\x3d\x27\x36\
-\x2e\x30\x32\x32\x35\x27\x2f\x3e\x0a\x3c\x2f\x67\x3e\x0a\x3c\x67\
-\x20\x74\x72\x61\x6e\x73\x66\x6f\x72\x6d\x3d\x27\x6d\x61\x74\x72\
-\x69\x78\x28\x30\x2e\x39\x39\x36\x32\x36\x34\x20\x30\x20\x30\x20\
-\x30\x2e\x39\x39\x36\x32\x36\x34\x20\x35\x38\x2e\x34\x36\x36\x39\
-\x20\x31\x31\x37\x2e\x38\x35\x38\x29\x27\x3e\x0a\x3c\x63\x69\x72\
-\x63\x6c\x65\x20\x63\x78\x3d\x27\x35\x36\x2e\x31\x35\x32\x33\x27\
-\x20\x63\x79\x3d\x27\x2d\x34\x32\x2e\x35\x30\x32\x32\x27\x20\x66\
-\x69\x6c\x6c\x3d\x27\x23\x30\x30\x30\x30\x30\x30\x27\x20\x72\x3d\
-\x27\x36\x2e\x30\x32\x32\x35\x27\x2f\x3e\x0a\x3c\x2f\x67\x3e\x0a\
-\x3c\x67\x20\x74\x72\x61\x6e\x73\x66\x6f\x72\x6d\x3d\x27\x6d\x61\
-\x74\x72\x69\x78\x28\x30\x2e\x39\x39\x36\x32\x36\x34\x20\x30\x20\
-\x30\x20\x30\x2e\x39\x39\x36\x32\x36\x34\x20\x35\x38\x2e\x34\x36\
-\x36\x39\x20\x31\x31\x37\x2e\x38\x35\x38\x29\x27\x3e\x0a\x3c\x63\
-\x69\x72\x63\x6c\x65\x20\x63\x78\x3d\x27\x34\x30\x2e\x36\x37\x39\
-\x34\x27\x20\x63\x79\x3d\x27\x2d\x32\x32\x2e\x35\x32\x38\x31\x27\
-\x20\x66\x69\x6c\x6c\x3d\x27\x23\x30\x30\x30\x30\x30\x30\x27\x20\
-\x72\x3d\x27\x36\x2e\x30\x32\x32\x35\x27\x2f\x3e\x0a\x3c\x2f\x67\
-\x3e\x0a\x3c\x2f\x67\x3e\x0a\x3c\x2f\x73\x76\x67\x3e\
+\x73\x76\x67\x20\x78\x6d\x6c\x6e\x73\x3d\x22\x68\x74\x74\x70\x3a\
+\x2f\x2f\x77\x77\x77\x2e\x77\x33\x2e\x6f\x72\x67\x2f\x32\x30\x30\
+\x30\x2f\x73\x76\x67\x22\x20\x76\x69\x65\x77\x42\x6f\x78\x3d\x22\
+\x30\x20\x30\x20\x32\x30\x20\x32\x30\x22\x3e\x3c\x70\x61\x74\x68\
+\x20\x64\x3d\x22\x4d\x31\x38\x20\x31\x32\x76\x31\x48\x38\x76\x35\
+\x6c\x2d\x36\x2d\x36\x20\x36\x2d\x36\x76\x35\x68\x38\x56\x32\x68\
+\x32\x7a\x22\x2f\x3e\x3c\x2f\x73\x76\x67\x3e\
\x00\x00\x02\xf7\
\x3c\
\x3f\x78\x6d\x6c\x20\x76\x65\x72\x73\x69\x6f\x6e\x3d\x22\x31\x2e\
@@ -1535,57 +2253,6 @@
\x33\x38\x2e\x33\x2c\x34\x33\x34\x2e\x33\x2c\x32\x32\x34\x2c\x34\
\x31\x37\x2e\x34\x2c\x32\x32\x34\x7a\x22\x2f\x3e\x0d\x0a\x3c\x2f\
\x73\x76\x67\x3e\x0d\x0a\
-\x00\x00\x03\x0c\
-\x3c\
-\x3f\x78\x6d\x6c\x20\x76\x65\x72\x73\x69\x6f\x6e\x3d\x22\x31\x2e\
-\x30\x22\x20\x65\x6e\x63\x6f\x64\x69\x6e\x67\x3d\x22\x75\x74\x66\
-\x2d\x38\x22\x3f\x3e\x0d\x0a\x3c\x21\x2d\x2d\x20\x47\x65\x6e\x65\
-\x72\x61\x74\x6f\x72\x3a\x20\x41\x64\x6f\x62\x65\x20\x49\x6c\x6c\
-\x75\x73\x74\x72\x61\x74\x6f\x72\x20\x31\x38\x2e\x31\x2e\x30\x2c\
-\x20\x53\x56\x47\x20\x45\x78\x70\x6f\x72\x74\x20\x50\x6c\x75\x67\
-\x2d\x49\x6e\x20\x2e\x20\x53\x56\x47\x20\x56\x65\x72\x73\x69\x6f\
-\x6e\x3a\x20\x36\x2e\x30\x30\x20\x42\x75\x69\x6c\x64\x20\x30\x29\
-\x20\x20\x2d\x2d\x3e\x0d\x0a\x3c\x21\x44\x4f\x43\x54\x59\x50\x45\
-\x20\x73\x76\x67\x20\x50\x55\x42\x4c\x49\x43\x20\x22\x2d\x2f\x2f\
-\x57\x33\x43\x2f\x2f\x44\x54\x44\x20\x53\x56\x47\x20\x31\x2e\x31\
-\x2f\x2f\x45\x4e\x22\x20\x22\x68\x74\x74\x70\x3a\x2f\x2f\x77\x77\
-\x77\x2e\x77\x33\x2e\x6f\x72\x67\x2f\x47\x72\x61\x70\x68\x69\x63\
-\x73\x2f\x53\x56\x47\x2f\x31\x2e\x31\x2f\x44\x54\x44\x2f\x73\x76\
-\x67\x31\x31\x2e\x64\x74\x64\x22\x3e\x0d\x0a\x3c\x73\x76\x67\x20\
-\x76\x65\x72\x73\x69\x6f\x6e\x3d\x22\x31\x2e\x31\x22\x20\x69\x64\
-\x3d\x22\x43\x68\x65\x63\x6b\x22\x20\x78\x6d\x6c\x6e\x73\x3d\x22\
-\x68\x74\x74\x70\x3a\x2f\x2f\x77\x77\x77\x2e\x77\x33\x2e\x6f\x72\
-\x67\x2f\x32\x30\x30\x30\x2f\x73\x76\x67\x22\x20\x78\x6d\x6c\x6e\
-\x73\x3a\x78\x6c\x69\x6e\x6b\x3d\x22\x68\x74\x74\x70\x3a\x2f\x2f\
-\x77\x77\x77\x2e\x77\x33\x2e\x6f\x72\x67\x2f\x31\x39\x39\x39\x2f\
-\x78\x6c\x69\x6e\x6b\x22\x20\x78\x3d\x22\x30\x70\x78\x22\x20\x79\
-\x3d\x22\x30\x70\x78\x22\x0d\x0a\x09\x20\x76\x69\x65\x77\x42\x6f\
-\x78\x3d\x22\x30\x20\x30\x20\x32\x30\x20\x32\x30\x22\x20\x65\x6e\
-\x61\x62\x6c\x65\x2d\x62\x61\x63\x6b\x67\x72\x6f\x75\x6e\x64\x3d\
-\x22\x6e\x65\x77\x20\x30\x20\x30\x20\x32\x30\x20\x32\x30\x22\x20\
-\x78\x6d\x6c\x3a\x73\x70\x61\x63\x65\x3d\x22\x70\x72\x65\x73\x65\
-\x72\x76\x65\x22\x3e\x0d\x0a\x3c\x70\x61\x74\x68\x20\x64\x3d\x22\
-\x4d\x38\x2e\x32\x39\x34\x2c\x31\x36\x2e\x39\x39\x38\x63\x2d\x30\
-\x2e\x34\x33\x35\x2c\x30\x2d\x30\x2e\x38\x34\x37\x2d\x30\x2e\x32\
-\x30\x33\x2d\x31\x2e\x31\x31\x31\x2d\x30\x2e\x35\x35\x33\x4c\x33\
-\x2e\x36\x31\x2c\x31\x31\x2e\x37\x32\x34\x63\x2d\x30\x2e\x34\x36\
-\x35\x2d\x30\x2e\x36\x31\x33\x2d\x30\x2e\x33\x34\x34\x2d\x31\x2e\
-\x34\x38\x36\x2c\x30\x2e\x32\x37\x2d\x31\x2e\x39\x35\x31\x0d\x0a\
-\x09\x63\x30\x2e\x36\x31\x35\x2d\x30\x2e\x34\x36\x37\x2c\x31\x2e\
-\x34\x38\x38\x2d\x30\x2e\x33\x34\x34\x2c\x31\x2e\x39\x35\x33\x2c\
-\x30\x2e\x32\x37\x6c\x32\x2e\x33\x35\x31\x2c\x33\x2e\x31\x30\x34\
-\x6c\x35\x2e\x39\x31\x31\x2d\x39\x2e\x34\x39\x32\x63\x30\x2e\x34\
-\x30\x37\x2d\x30\x2e\x36\x35\x32\x2c\x31\x2e\x32\x36\x37\x2d\x30\
-\x2e\x38\x35\x32\x2c\x31\x2e\x39\x32\x31\x2d\x30\x2e\x34\x34\x35\
-\x0d\x0a\x09\x63\x30\x2e\x36\x35\x33\x2c\x30\x2e\x34\x30\x36\x2c\
-\x30\x2e\x38\x35\x34\x2c\x31\x2e\x32\x36\x36\x2c\x30\x2e\x34\x34\
-\x36\x2c\x31\x2e\x39\x32\x4c\x39\x2e\x34\x37\x38\x2c\x31\x36\x2e\
-\x33\x34\x63\x2d\x30\x2e\x32\x34\x32\x2c\x30\x2e\x33\x39\x31\x2d\
-\x30\x2e\x36\x36\x31\x2c\x30\x2e\x36\x33\x35\x2d\x31\x2e\x31\x32\
-\x2c\x30\x2e\x36\x35\x36\x43\x38\x2e\x33\x33\x36\x2c\x31\x36\x2e\
-\x39\x39\x38\x2c\x38\x2e\x33\x31\x36\x2c\x31\x36\x2e\x39\x39\x38\
-\x2c\x38\x2e\x32\x39\x34\x2c\x31\x36\x2e\x39\x39\x38\x7a\x22\x2f\
-\x3e\x0d\x0a\x3c\x2f\x73\x76\x67\x3e\x0d\x0a\
\x00\x00\x03\xf5\
\x3c\
\x3f\x78\x6d\x6c\x20\x76\x65\x72\x73\x69\x6f\x6e\x3d\x22\x31\x2e\
@@ -1652,576 +2319,6 @@
\x31\x38\x2e\x33\x35\x34\x2c\x31\x30\x2c\x31\x38\x2e\x33\x35\x34\
\x7a\x22\x2f\x3e\x0d\x0a\x3c\x2f\x67\x3e\x0d\x0a\x3c\x2f\x73\x76\
\x67\x3e\x0d\x0a\
-\x00\x00\x03\x22\
-\x3c\
-\x3f\x78\x6d\x6c\x20\x76\x65\x72\x73\x69\x6f\x6e\x3d\x22\x31\x2e\
-\x30\x22\x20\x65\x6e\x63\x6f\x64\x69\x6e\x67\x3d\x22\x75\x74\x66\
-\x2d\x38\x22\x3f\x3e\x0d\x0a\x3c\x21\x2d\x2d\x20\x47\x65\x6e\x65\
-\x72\x61\x74\x6f\x72\x3a\x20\x41\x64\x6f\x62\x65\x20\x49\x6c\x6c\
-\x75\x73\x74\x72\x61\x74\x6f\x72\x20\x31\x36\x2e\x32\x2e\x31\x2c\
-\x20\x53\x56\x47\x20\x45\x78\x70\x6f\x72\x74\x20\x50\x6c\x75\x67\
-\x2d\x49\x6e\x20\x2e\x20\x53\x56\x47\x20\x56\x65\x72\x73\x69\x6f\
-\x6e\x3a\x20\x36\x2e\x30\x30\x20\x42\x75\x69\x6c\x64\x20\x30\x29\
-\x20\x20\x2d\x2d\x3e\x0d\x0a\x3c\x21\x44\x4f\x43\x54\x59\x50\x45\
-\x20\x73\x76\x67\x20\x50\x55\x42\x4c\x49\x43\x20\x22\x2d\x2f\x2f\
-\x57\x33\x43\x2f\x2f\x44\x54\x44\x20\x53\x56\x47\x20\x31\x2e\x31\
-\x2f\x2f\x45\x4e\x22\x20\x22\x68\x74\x74\x70\x3a\x2f\x2f\x77\x77\
-\x77\x2e\x77\x33\x2e\x6f\x72\x67\x2f\x47\x72\x61\x70\x68\x69\x63\
-\x73\x2f\x53\x56\x47\x2f\x31\x2e\x31\x2f\x44\x54\x44\x2f\x73\x76\
-\x67\x31\x31\x2e\x64\x74\x64\x22\x3e\x0d\x0a\x3c\x73\x76\x67\x20\
-\x76\x65\x72\x73\x69\x6f\x6e\x3d\x22\x31\x2e\x31\x22\x20\x69\x64\
-\x3d\x22\x4c\x61\x79\x65\x72\x5f\x31\x22\x20\x78\x6d\x6c\x6e\x73\
-\x3d\x22\x68\x74\x74\x70\x3a\x2f\x2f\x77\x77\x77\x2e\x77\x33\x2e\
-\x6f\x72\x67\x2f\x32\x30\x30\x30\x2f\x73\x76\x67\x22\x20\x78\x6d\
-\x6c\x6e\x73\x3a\x78\x6c\x69\x6e\x6b\x3d\x22\x68\x74\x74\x70\x3a\
-\x2f\x2f\x77\x77\x77\x2e\x77\x33\x2e\x6f\x72\x67\x2f\x31\x39\x39\
-\x39\x2f\x78\x6c\x69\x6e\x6b\x22\x20\x78\x3d\x22\x30\x70\x78\x22\
-\x20\x79\x3d\x22\x30\x70\x78\x22\x0d\x0a\x09\x20\x77\x69\x64\x74\
-\x68\x3d\x22\x35\x31\x32\x70\x78\x22\x20\x68\x65\x69\x67\x68\x74\
-\x3d\x22\x35\x31\x32\x70\x78\x22\x20\x76\x69\x65\x77\x42\x6f\x78\
-\x3d\x22\x30\x20\x30\x20\x35\x31\x32\x20\x35\x31\x32\x22\x20\x65\
-\x6e\x61\x62\x6c\x65\x2d\x62\x61\x63\x6b\x67\x72\x6f\x75\x6e\x64\
-\x3d\x22\x6e\x65\x77\x20\x30\x20\x30\x20\x35\x31\x32\x20\x35\x31\
-\x32\x22\x20\x78\x6d\x6c\x3a\x73\x70\x61\x63\x65\x3d\x22\x70\x72\
-\x65\x73\x65\x72\x76\x65\x22\x3e\x0d\x0a\x3c\x67\x3e\x0d\x0a\x09\
-\x3c\x63\x69\x72\x63\x6c\x65\x20\x63\x78\x3d\x22\x32\x35\x36\x22\
-\x20\x63\x79\x3d\x22\x32\x38\x30\x22\x20\x72\x3d\x22\x36\x33\x22\
-\x2f\x3e\x0d\x0a\x09\x3c\x70\x61\x74\x68\x20\x64\x3d\x22\x4d\x34\
-\x34\x30\x2c\x39\x36\x68\x2d\x38\x38\x6c\x2d\x33\x32\x2d\x33\x32\
-\x48\x31\x39\x32\x6c\x2d\x33\x32\x2c\x33\x32\x48\x37\x32\x63\x2d\
-\x32\x32\x2e\x30\x39\x32\x2c\x30\x2d\x34\x30\x2c\x31\x37\x2e\x39\
-\x30\x38\x2d\x34\x30\x2c\x34\x30\x76\x32\x37\x32\x63\x30\x2c\x32\
-\x32\x2e\x30\x39\x32\x2c\x31\x37\x2e\x39\x30\x38\x2c\x34\x30\x2c\
-\x34\x30\x2c\x34\x30\x68\x33\x36\x38\x63\x32\x32\x2e\x30\x39\x32\
-\x2c\x30\x2c\x34\x30\x2d\x31\x37\x2e\x39\x30\x38\x2c\x34\x30\x2d\
-\x34\x30\x0d\x0a\x09\x09\x56\x31\x33\x36\x43\x34\x38\x30\x2c\x31\
-\x31\x33\x2e\x39\x30\x38\x2c\x34\x36\x32\x2e\x30\x39\x32\x2c\x39\
-\x36\x2c\x34\x34\x30\x2c\x39\x36\x7a\x20\x4d\x32\x35\x36\x2c\x33\
-\x39\x32\x63\x2d\x36\x31\x2e\x38\x35\x35\x2c\x30\x2d\x31\x31\x32\
-\x2d\x35\x30\x2e\x31\x34\x35\x2d\x31\x31\x32\x2d\x31\x31\x32\x73\
-\x35\x30\x2e\x31\x34\x35\x2d\x31\x31\x32\x2c\x31\x31\x32\x2d\x31\
-\x31\x32\x73\x31\x31\x32\x2c\x35\x30\x2e\x31\x34\x35\x2c\x31\x31\
-\x32\x2c\x31\x31\x32\x0d\x0a\x09\x09\x53\x33\x31\x37\x2e\x38\x35\
-\x35\x2c\x33\x39\x32\x2c\x32\x35\x36\x2c\x33\x39\x32\x7a\x22\x2f\
-\x3e\x0d\x0a\x3c\x2f\x67\x3e\x0d\x0a\x3c\x2f\x73\x76\x67\x3e\x0d\
-\x0a\
-\x00\x00\x02\xb7\
-\x3c\
-\x3f\x78\x6d\x6c\x20\x76\x65\x72\x73\x69\x6f\x6e\x3d\x22\x31\x2e\
-\x30\x22\x20\x65\x6e\x63\x6f\x64\x69\x6e\x67\x3d\x22\x75\x74\x66\
-\x2d\x38\x22\x3f\x3e\x0d\x0a\x3c\x21\x2d\x2d\x20\x47\x65\x6e\x65\
-\x72\x61\x74\x6f\x72\x3a\x20\x41\x64\x6f\x62\x65\x20\x49\x6c\x6c\
-\x75\x73\x74\x72\x61\x74\x6f\x72\x20\x31\x36\x2e\x32\x2e\x31\x2c\
-\x20\x53\x56\x47\x20\x45\x78\x70\x6f\x72\x74\x20\x50\x6c\x75\x67\
-\x2d\x49\x6e\x20\x2e\x20\x53\x56\x47\x20\x56\x65\x72\x73\x69\x6f\
-\x6e\x3a\x20\x36\x2e\x30\x30\x20\x42\x75\x69\x6c\x64\x20\x30\x29\
-\x20\x20\x2d\x2d\x3e\x0d\x0a\x3c\x21\x44\x4f\x43\x54\x59\x50\x45\
-\x20\x73\x76\x67\x20\x50\x55\x42\x4c\x49\x43\x20\x22\x2d\x2f\x2f\
-\x57\x33\x43\x2f\x2f\x44\x54\x44\x20\x53\x56\x47\x20\x31\x2e\x31\
-\x2f\x2f\x45\x4e\x22\x20\x22\x68\x74\x74\x70\x3a\x2f\x2f\x77\x77\
-\x77\x2e\x77\x33\x2e\x6f\x72\x67\x2f\x47\x72\x61\x70\x68\x69\x63\
-\x73\x2f\x53\x56\x47\x2f\x31\x2e\x31\x2f\x44\x54\x44\x2f\x73\x76\
-\x67\x31\x31\x2e\x64\x74\x64\x22\x3e\x0d\x0a\x3c\x73\x76\x67\x20\
-\x76\x65\x72\x73\x69\x6f\x6e\x3d\x22\x31\x2e\x31\x22\x20\x69\x64\
-\x3d\x22\x4c\x61\x79\x65\x72\x5f\x31\x22\x20\x78\x6d\x6c\x6e\x73\
-\x3d\x22\x68\x74\x74\x70\x3a\x2f\x2f\x77\x77\x77\x2e\x77\x33\x2e\
-\x6f\x72\x67\x2f\x32\x30\x30\x30\x2f\x73\x76\x67\x22\x20\x78\x6d\
-\x6c\x6e\x73\x3a\x78\x6c\x69\x6e\x6b\x3d\x22\x68\x74\x74\x70\x3a\
-\x2f\x2f\x77\x77\x77\x2e\x77\x33\x2e\x6f\x72\x67\x2f\x31\x39\x39\
-\x39\x2f\x78\x6c\x69\x6e\x6b\x22\x20\x78\x3d\x22\x30\x70\x78\x22\
-\x20\x79\x3d\x22\x30\x70\x78\x22\x0d\x0a\x09\x20\x77\x69\x64\x74\
-\x68\x3d\x22\x35\x31\x32\x70\x78\x22\x20\x68\x65\x69\x67\x68\x74\
-\x3d\x22\x35\x31\x32\x70\x78\x22\x20\x76\x69\x65\x77\x42\x6f\x78\
-\x3d\x22\x30\x20\x30\x20\x35\x31\x32\x20\x35\x31\x32\x22\x20\x65\
-\x6e\x61\x62\x6c\x65\x2d\x62\x61\x63\x6b\x67\x72\x6f\x75\x6e\x64\
-\x3d\x22\x6e\x65\x77\x20\x30\x20\x30\x20\x35\x31\x32\x20\x35\x31\
-\x32\x22\x20\x78\x6d\x6c\x3a\x73\x70\x61\x63\x65\x3d\x22\x70\x72\
-\x65\x73\x65\x72\x76\x65\x22\x3e\x0d\x0a\x3c\x67\x20\x69\x64\x3d\
-\x22\x49\x63\x6f\x6e\x5f\x35\x5f\x22\x3e\x0d\x0a\x09\x3c\x67\x3e\
-\x0d\x0a\x09\x09\x3c\x70\x6f\x6c\x79\x67\x6f\x6e\x20\x70\x6f\x69\
-\x6e\x74\x73\x3d\x22\x34\x30\x35\x2c\x31\x33\x36\x2e\x37\x39\x38\
-\x20\x33\x37\x35\x2e\x32\x30\x32\x2c\x31\x30\x37\x20\x32\x35\x36\
-\x2c\x32\x32\x36\x2e\x32\x30\x32\x20\x31\x33\x36\x2e\x37\x39\x38\
-\x2c\x31\x30\x37\x20\x31\x30\x37\x2c\x31\x33\x36\x2e\x37\x39\x38\
-\x20\x32\x32\x36\x2e\x32\x30\x32\x2c\x32\x35\x36\x20\x31\x30\x37\
-\x2c\x33\x37\x35\x2e\x32\x30\x32\x20\x31\x33\x36\x2e\x37\x39\x38\
-\x2c\x34\x30\x35\x20\x32\x35\x36\x2c\x32\x38\x35\x2e\x37\x39\x38\
-\x20\x0d\x0a\x09\x09\x09\x33\x37\x35\x2e\x32\x30\x32\x2c\x34\x30\
-\x35\x20\x34\x30\x35\x2c\x33\x37\x35\x2e\x32\x30\x32\x20\x32\x38\
-\x35\x2e\x37\x39\x38\x2c\x32\x35\x36\x20\x09\x09\x22\x2f\x3e\x0d\
-\x0a\x09\x3c\x2f\x67\x3e\x0d\x0a\x3c\x2f\x67\x3e\x0d\x0a\x3c\x2f\
-\x73\x76\x67\x3e\x0d\x0a\
-\x00\x00\x02\x79\
-\x3c\
-\x3f\x78\x6d\x6c\x20\x76\x65\x72\x73\x69\x6f\x6e\x3d\x22\x31\x2e\
-\x30\x22\x20\x65\x6e\x63\x6f\x64\x69\x6e\x67\x3d\x22\x75\x74\x66\
-\x2d\x38\x22\x3f\x3e\x0d\x0a\x3c\x21\x2d\x2d\x20\x47\x65\x6e\x65\
-\x72\x61\x74\x6f\x72\x3a\x20\x41\x64\x6f\x62\x65\x20\x49\x6c\x6c\
-\x75\x73\x74\x72\x61\x74\x6f\x72\x20\x31\x36\x2e\x32\x2e\x31\x2c\
-\x20\x53\x56\x47\x20\x45\x78\x70\x6f\x72\x74\x20\x50\x6c\x75\x67\
-\x2d\x49\x6e\x20\x2e\x20\x53\x56\x47\x20\x56\x65\x72\x73\x69\x6f\
-\x6e\x3a\x20\x36\x2e\x30\x30\x20\x42\x75\x69\x6c\x64\x20\x30\x29\
-\x20\x20\x2d\x2d\x3e\x0d\x0a\x3c\x21\x44\x4f\x43\x54\x59\x50\x45\
-\x20\x73\x76\x67\x20\x50\x55\x42\x4c\x49\x43\x20\x22\x2d\x2f\x2f\
-\x57\x33\x43\x2f\x2f\x44\x54\x44\x20\x53\x56\x47\x20\x31\x2e\x31\
-\x2f\x2f\x45\x4e\x22\x20\x22\x68\x74\x74\x70\x3a\x2f\x2f\x77\x77\
-\x77\x2e\x77\x33\x2e\x6f\x72\x67\x2f\x47\x72\x61\x70\x68\x69\x63\
-\x73\x2f\x53\x56\x47\x2f\x31\x2e\x31\x2f\x44\x54\x44\x2f\x73\x76\
-\x67\x31\x31\x2e\x64\x74\x64\x22\x3e\x0d\x0a\x3c\x73\x76\x67\x20\
-\x76\x65\x72\x73\x69\x6f\x6e\x3d\x22\x31\x2e\x31\x22\x20\x69\x64\
-\x3d\x22\x4c\x61\x79\x65\x72\x5f\x31\x22\x20\x78\x6d\x6c\x6e\x73\
-\x3d\x22\x68\x74\x74\x70\x3a\x2f\x2f\x77\x77\x77\x2e\x77\x33\x2e\
-\x6f\x72\x67\x2f\x32\x30\x30\x30\x2f\x73\x76\x67\x22\x20\x78\x6d\
-\x6c\x6e\x73\x3a\x78\x6c\x69\x6e\x6b\x3d\x22\x68\x74\x74\x70\x3a\
-\x2f\x2f\x77\x77\x77\x2e\x77\x33\x2e\x6f\x72\x67\x2f\x31\x39\x39\
-\x39\x2f\x78\x6c\x69\x6e\x6b\x22\x20\x78\x3d\x22\x30\x70\x78\x22\
-\x20\x79\x3d\x22\x30\x70\x78\x22\x0d\x0a\x09\x20\x77\x69\x64\x74\
-\x68\x3d\x22\x35\x31\x32\x70\x78\x22\x20\x68\x65\x69\x67\x68\x74\
-\x3d\x22\x35\x31\x32\x70\x78\x22\x20\x76\x69\x65\x77\x42\x6f\x78\
-\x3d\x22\x30\x20\x30\x20\x35\x31\x32\x20\x35\x31\x32\x22\x20\x65\
-\x6e\x61\x62\x6c\x65\x2d\x62\x61\x63\x6b\x67\x72\x6f\x75\x6e\x64\
-\x3d\x22\x6e\x65\x77\x20\x30\x20\x30\x20\x35\x31\x32\x20\x35\x31\
-\x32\x22\x20\x78\x6d\x6c\x3a\x73\x70\x61\x63\x65\x3d\x22\x70\x72\
-\x65\x73\x65\x72\x76\x65\x22\x3e\x0d\x0a\x3c\x67\x20\x69\x64\x3d\
-\x22\x49\x63\x6f\x6e\x5f\x31\x5f\x22\x3e\x0d\x0a\x09\x3c\x67\x3e\
-\x0d\x0a\x09\x09\x3c\x67\x3e\x0d\x0a\x09\x09\x09\x3c\x70\x6f\x6c\
-\x79\x67\x6f\x6e\x20\x70\x6f\x69\x6e\x74\x73\x3d\x22\x31\x38\x36\
-\x2e\x33\x30\x31\x2c\x33\x33\x39\x2e\x38\x39\x33\x20\x39\x36\x2c\
-\x32\x34\x39\x2e\x34\x36\x31\x20\x36\x34\x2c\x32\x37\x39\x2e\x39\
-\x36\x38\x20\x31\x38\x36\x2e\x33\x30\x31\x2c\x34\x30\x32\x20\x34\
-\x34\x38\x2c\x31\x34\x30\x2e\x35\x30\x36\x20\x34\x31\x36\x2c\x31\
-\x31\x30\x20\x09\x09\x09\x22\x2f\x3e\x0d\x0a\x09\x09\x3c\x2f\x67\
-\x3e\x0d\x0a\x09\x3c\x2f\x67\x3e\x0d\x0a\x3c\x2f\x67\x3e\x0d\x0a\
-\x3c\x2f\x73\x76\x67\x3e\x0d\x0a\
-\x00\x00\x03\xeb\
-\x3c\
-\x3f\x78\x6d\x6c\x20\x76\x65\x72\x73\x69\x6f\x6e\x3d\x22\x31\x2e\
-\x30\x22\x20\x65\x6e\x63\x6f\x64\x69\x6e\x67\x3d\x22\x75\x74\x66\
-\x2d\x38\x22\x3f\x3e\x0d\x0a\x3c\x21\x2d\x2d\x20\x47\x65\x6e\x65\
-\x72\x61\x74\x6f\x72\x3a\x20\x41\x64\x6f\x62\x65\x20\x49\x6c\x6c\
-\x75\x73\x74\x72\x61\x74\x6f\x72\x20\x31\x36\x2e\x32\x2e\x31\x2c\
-\x20\x53\x56\x47\x20\x45\x78\x70\x6f\x72\x74\x20\x50\x6c\x75\x67\
-\x2d\x49\x6e\x20\x2e\x20\x53\x56\x47\x20\x56\x65\x72\x73\x69\x6f\
-\x6e\x3a\x20\x36\x2e\x30\x30\x20\x42\x75\x69\x6c\x64\x20\x30\x29\
-\x20\x20\x2d\x2d\x3e\x0d\x0a\x3c\x21\x44\x4f\x43\x54\x59\x50\x45\
-\x20\x73\x76\x67\x20\x50\x55\x42\x4c\x49\x43\x20\x22\x2d\x2f\x2f\
-\x57\x33\x43\x2f\x2f\x44\x54\x44\x20\x53\x56\x47\x20\x31\x2e\x31\
-\x2f\x2f\x45\x4e\x22\x20\x22\x68\x74\x74\x70\x3a\x2f\x2f\x77\x77\
-\x77\x2e\x77\x33\x2e\x6f\x72\x67\x2f\x47\x72\x61\x70\x68\x69\x63\
-\x73\x2f\x53\x56\x47\x2f\x31\x2e\x31\x2f\x44\x54\x44\x2f\x73\x76\
-\x67\x31\x31\x2e\x64\x74\x64\x22\x3e\x0d\x0a\x3c\x73\x76\x67\x20\
-\x76\x65\x72\x73\x69\x6f\x6e\x3d\x22\x31\x2e\x31\x22\x20\x69\x64\
-\x3d\x22\x4c\x61\x79\x65\x72\x5f\x31\x22\x20\x78\x6d\x6c\x6e\x73\
-\x3d\x22\x68\x74\x74\x70\x3a\x2f\x2f\x77\x77\x77\x2e\x77\x33\x2e\
-\x6f\x72\x67\x2f\x32\x30\x30\x30\x2f\x73\x76\x67\x22\x20\x78\x6d\
-\x6c\x6e\x73\x3a\x78\x6c\x69\x6e\x6b\x3d\x22\x68\x74\x74\x70\x3a\
-\x2f\x2f\x77\x77\x77\x2e\x77\x33\x2e\x6f\x72\x67\x2f\x31\x39\x39\
-\x39\x2f\x78\x6c\x69\x6e\x6b\x22\x20\x78\x3d\x22\x30\x70\x78\x22\
-\x20\x79\x3d\x22\x30\x70\x78\x22\x0d\x0a\x09\x20\x77\x69\x64\x74\
-\x68\x3d\x22\x35\x31\x32\x70\x78\x22\x20\x68\x65\x69\x67\x68\x74\
-\x3d\x22\x35\x31\x32\x70\x78\x22\x20\x76\x69\x65\x77\x42\x6f\x78\
-\x3d\x22\x30\x20\x30\x20\x35\x31\x32\x20\x35\x31\x32\x22\x20\x73\
-\x74\x79\x6c\x65\x3d\x22\x65\x6e\x61\x62\x6c\x65\x2d\x62\x61\x63\
-\x6b\x67\x72\x6f\x75\x6e\x64\x3a\x6e\x65\x77\x20\x30\x20\x30\x20\
-\x35\x31\x32\x20\x35\x31\x32\x3b\x22\x20\x78\x6d\x6c\x3a\x73\x70\
-\x61\x63\x65\x3d\x22\x70\x72\x65\x73\x65\x72\x76\x65\x22\x3e\x0d\
-\x0a\x3c\x67\x3e\x0d\x0a\x09\x3c\x70\x61\x74\x68\x20\x64\x3d\x22\
-\x4d\x32\x35\x36\x2c\x31\x32\x38\x63\x2d\x38\x31\x2e\x39\x2c\x30\
-\x2d\x31\x34\x35\x2e\x37\x2c\x34\x38\x2e\x38\x2d\x32\x32\x34\x2c\
-\x31\x32\x38\x63\x36\x37\x2e\x34\x2c\x36\x37\x2e\x37\x2c\x31\x32\
-\x34\x2c\x31\x32\x38\x2c\x32\x32\x34\x2c\x31\x32\x38\x63\x39\x39\
-\x2e\x39\x2c\x30\x2c\x31\x37\x33\x2e\x34\x2d\x37\x36\x2e\x34\x2c\
-\x32\x32\x34\x2d\x31\x32\x36\x2e\x36\x0d\x0a\x09\x09\x43\x34\x32\
-\x38\x2e\x32\x2c\x31\x39\x38\x2e\x36\x2c\x33\x35\x34\x2e\x38\x2c\
-\x31\x32\x38\x2c\x32\x35\x36\x2c\x31\x32\x38\x7a\x20\x4d\x32\x35\
-\x36\x2c\x33\x34\x37\x2e\x33\x63\x2d\x34\x39\x2e\x34\x2c\x30\x2d\
-\x38\x39\x2e\x36\x2d\x34\x31\x2d\x38\x39\x2e\x36\x2d\x39\x31\x2e\
-\x33\x63\x30\x2d\x35\x30\x2e\x34\x2c\x34\x30\x2e\x32\x2d\x39\x31\
-\x2e\x33\x2c\x38\x39\x2e\x36\x2d\x39\x31\x2e\x33\x73\x38\x39\x2e\
-\x36\x2c\x34\x31\x2c\x38\x39\x2e\x36\x2c\x39\x31\x2e\x33\x0d\x0a\
-\x09\x09\x43\x33\x34\x35\x2e\x36\x2c\x33\x30\x36\x2e\x34\x2c\x33\
-\x30\x35\x2e\x34\x2c\x33\x34\x37\x2e\x33\x2c\x32\x35\x36\x2c\x33\
-\x34\x37\x2e\x33\x7a\x22\x2f\x3e\x0d\x0a\x09\x3c\x67\x3e\x0d\x0a\
-\x09\x09\x3c\x70\x61\x74\x68\x20\x64\x3d\x22\x4d\x32\x35\x36\x2c\
-\x32\x32\x34\x63\x30\x2d\x37\x2e\x39\x2c\x32\x2e\x39\x2d\x31\x35\
-\x2e\x31\x2c\x37\x2e\x36\x2d\x32\x30\x2e\x37\x63\x2d\x32\x2e\x35\
-\x2d\x30\x2e\x34\x2d\x35\x2d\x30\x2e\x36\x2d\x37\x2e\x36\x2d\x30\
-\x2e\x36\x63\x2d\x32\x38\x2e\x38\x2c\x30\x2d\x35\x32\x2e\x33\x2c\
-\x32\x33\x2e\x39\x2d\x35\x32\x2e\x33\x2c\x35\x33\x2e\x33\x63\x30\
-\x2c\x32\x39\x2e\x34\x2c\x32\x33\x2e\x35\x2c\x35\x33\x2e\x33\x2c\
-\x35\x32\x2e\x33\x2c\x35\x33\x2e\x33\x0d\x0a\x09\x09\x09\x73\x35\
-\x32\x2e\x33\x2d\x32\x33\x2e\x39\x2c\x35\x32\x2e\x33\x2d\x35\x33\
-\x2e\x33\x63\x30\x2d\x32\x2e\x33\x2d\x30\x2e\x32\x2d\x34\x2e\x36\
-\x2d\x30\x2e\x34\x2d\x36\x2e\x39\x63\x2d\x35\x2e\x35\x2c\x34\x2e\
-\x33\x2d\x31\x32\x2e\x33\x2c\x36\x2e\x39\x2d\x31\x39\x2e\x38\x2c\
-\x36\x2e\x39\x43\x32\x37\x30\x2e\x33\x2c\x32\x35\x36\x2c\x32\x35\
-\x36\x2c\x32\x34\x31\x2e\x37\x2c\x32\x35\x36\x2c\x32\x32\x34\x7a\
-\x22\x2f\x3e\x0d\x0a\x09\x3c\x2f\x67\x3e\x0d\x0a\x3c\x2f\x67\x3e\
-\x0d\x0a\x3c\x2f\x73\x76\x67\x3e\x0d\x0a\
-\x00\x00\x01\xdd\
-\x00\
-\x00\x06\xe4\x78\x9c\xcd\x54\x4d\x6f\x9b\x40\x10\x3d\x13\x29\xff\
-\x61\xba\xb7\x4a\xec\x17\xc4\xd4\xa6\xa6\x51\xfd\x21\xcb\x52\x9a\
-\x58\x6a\xea\xaa\xa7\x0a\xc3\x16\x50\x28\x20\x58\xc0\xce\xaf\xef\
-\xee\x92\x54\x51\x95\xfa\x18\xfb\xb0\x33\xda\x79\x6f\xde\xbc\x65\
-\x24\xa6\xd7\xfb\xdf\x39\x74\xa2\x6e\xb2\xb2\x08\x10\x27\x0c\x81\
-\x28\xa2\x32\xce\x8a\x24\x40\xad\xfc\x85\xc7\xe8\xfa\xd3\xe5\xc5\
-\xf4\x1d\xc6\xb0\x12\x85\xa8\x43\x59\xd6\x3e\x7c\x8e\xcb\x9d\x80\
-\x75\x9e\xb7\x8d\x34\x25\xe0\x1e\x71\x08\xb7\xe1\xeb\x76\x05\xcb\
-\x7d\x55\xd6\x12\x36\x79\x9b\xe0\x75\x01\xc4\x14\xb7\xc3\x10\x1f\
-\x3c\xc2\x18\xcc\xda\x2c\x8f\x81\xbd\x07\xc0\xd8\xe8\x2f\xee\xe6\
-\xf7\x3f\x36\x4b\x68\xba\x04\x36\xdf\x66\x37\xeb\x39\x20\x4c\xe9\
-\x77\x77\x4e\xe9\xe2\x7e\x61\x24\x38\xe1\x94\x2e\x6f\x11\xa0\x54\
-\xca\xca\xa7\xb4\xef\x7b\xd2\xbb\xa4\xac\x13\xba\xaa\xc3\x2a\xcd\
-\xa2\x86\x2a\x22\xd5\x44\xd5\x44\x95\x18\xe7\x24\x96\x31\xd2\x33\
-\xb4\xf4\x8b\xa7\x72\x04\x59\x1c\xa0\x9b\xf0\x20\xea\x9f\xea\xa2\
-\xbe\x44\xd1\x04\xaf\x48\x3b\x8c\x31\x2d\xf5\x44\xf1\xf7\x79\x56\
-\x3c\xbc\x46\xe4\x93\xc9\x84\x1a\x54\x51\x03\xc4\xaa\x3d\x82\xc3\
-\x90\x2f\x2f\x2c\xe8\xb3\x58\xa6\x01\x1a\x71\x47\x03\xa9\xc8\x92\
-\x54\xfe\xbd\x76\x99\xe8\x67\xa5\xee\x02\x06\xaa\xa6\x0f\x82\x46\
-\x1e\x72\x11\x20\x51\x84\xbb\x5c\xe0\x5d\x18\x3d\x24\x75\xd9\x16\
-\xb1\x5f\x88\x1e\x5e\x30\x3f\x1a\x6f\x7e\x53\x85\x91\xa2\x57\xb5\
-\x68\x44\xdd\x09\xf3\xea\x44\x05\x6b\x88\xd6\xb4\x0a\x65\x0a\xea\
-\xd1\x5f\xb8\xc7\x6c\x3e\x72\x89\x1b\x31\xdb\x25\x1f\xb0\x6b\x7b\
-\x2a\xaa\xa3\x73\x8a\x47\x8c\x8c\x22\xac\x00\x9b\xe9\x22\x76\xf1\
-\x13\xdc\x0d\x10\x33\x98\xfb\xdc\xa0\x73\x6a\x00\xd3\xa2\x4b\xb6\
-\x51\xd4\x67\x6b\xe6\x3c\xea\x4f\x60\x59\xf4\x1f\x1f\xce\x78\x7c\
-\x16\x3e\xae\xb8\x77\x3a\x1f\x53\xfa\xff\x25\x39\x63\xfe\x26\xa6\
-\xcc\x9c\x23\x4b\x3a\x07\x1f\x7a\x49\x27\xf3\x71\x6c\x49\x57\x6c\
-\xf2\x26\xa6\xcc\x9c\x23\x4b\x3a\x07\x1f\x7a\x49\x27\xf3\x31\x2c\
-\xe9\x39\xaa\x7f\xb6\xca\x7f\x00\x99\x18\x96\x19\
-\x00\x00\x02\x7f\
-\x3c\
-\x3f\x78\x6d\x6c\x20\x76\x65\x72\x73\x69\x6f\x6e\x3d\x22\x31\x2e\
-\x30\x22\x20\x65\x6e\x63\x6f\x64\x69\x6e\x67\x3d\x22\x75\x74\x66\
-\x2d\x38\x22\x3f\x3e\x0d\x0a\x3c\x21\x2d\x2d\x20\x47\x65\x6e\x65\
-\x72\x61\x74\x6f\x72\x3a\x20\x41\x64\x6f\x62\x65\x20\x49\x6c\x6c\
-\x75\x73\x74\x72\x61\x74\x6f\x72\x20\x31\x36\x2e\x32\x2e\x31\x2c\
-\x20\x53\x56\x47\x20\x45\x78\x70\x6f\x72\x74\x20\x50\x6c\x75\x67\
-\x2d\x49\x6e\x20\x2e\x20\x53\x56\x47\x20\x56\x65\x72\x73\x69\x6f\
-\x6e\x3a\x20\x36\x2e\x30\x30\x20\x42\x75\x69\x6c\x64\x20\x30\x29\
-\x20\x20\x2d\x2d\x3e\x0d\x0a\x3c\x21\x44\x4f\x43\x54\x59\x50\x45\
-\x20\x73\x76\x67\x20\x50\x55\x42\x4c\x49\x43\x20\x22\x2d\x2f\x2f\
-\x57\x33\x43\x2f\x2f\x44\x54\x44\x20\x53\x56\x47\x20\x31\x2e\x31\
-\x2f\x2f\x45\x4e\x22\x20\x22\x68\x74\x74\x70\x3a\x2f\x2f\x77\x77\
-\x77\x2e\x77\x33\x2e\x6f\x72\x67\x2f\x47\x72\x61\x70\x68\x69\x63\
-\x73\x2f\x53\x56\x47\x2f\x31\x2e\x31\x2f\x44\x54\x44\x2f\x73\x76\
-\x67\x31\x31\x2e\x64\x74\x64\x22\x3e\x0d\x0a\x3c\x73\x76\x67\x20\
-\x76\x65\x72\x73\x69\x6f\x6e\x3d\x22\x31\x2e\x31\x22\x20\x69\x64\
-\x3d\x22\x4c\x61\x79\x65\x72\x5f\x31\x22\x20\x78\x6d\x6c\x6e\x73\
-\x3d\x22\x68\x74\x74\x70\x3a\x2f\x2f\x77\x77\x77\x2e\x77\x33\x2e\
-\x6f\x72\x67\x2f\x32\x30\x30\x30\x2f\x73\x76\x67\x22\x20\x78\x6d\
-\x6c\x6e\x73\x3a\x78\x6c\x69\x6e\x6b\x3d\x22\x68\x74\x74\x70\x3a\
-\x2f\x2f\x77\x77\x77\x2e\x77\x33\x2e\x6f\x72\x67\x2f\x31\x39\x39\
-\x39\x2f\x78\x6c\x69\x6e\x6b\x22\x20\x78\x3d\x22\x30\x70\x78\x22\
-\x20\x79\x3d\x22\x30\x70\x78\x22\x0d\x0a\x09\x20\x77\x69\x64\x74\
-\x68\x3d\x22\x35\x31\x32\x70\x78\x22\x20\x68\x65\x69\x67\x68\x74\
-\x3d\x22\x35\x31\x32\x70\x78\x22\x20\x76\x69\x65\x77\x42\x6f\x78\
-\x3d\x22\x30\x20\x30\x20\x35\x31\x32\x20\x35\x31\x32\x22\x20\x73\
-\x74\x79\x6c\x65\x3d\x22\x65\x6e\x61\x62\x6c\x65\x2d\x62\x61\x63\
-\x6b\x67\x72\x6f\x75\x6e\x64\x3a\x6e\x65\x77\x20\x30\x20\x30\x20\
-\x35\x31\x32\x20\x35\x31\x32\x3b\x22\x20\x78\x6d\x6c\x3a\x73\x70\
-\x61\x63\x65\x3d\x22\x70\x72\x65\x73\x65\x72\x76\x65\x22\x3e\x0d\
-\x0a\x3c\x70\x6f\x6c\x79\x67\x6f\x6e\x20\x70\x6f\x69\x6e\x74\x73\
-\x3d\x22\x32\x38\x38\x2c\x39\x36\x20\x33\x33\x37\x2e\x39\x2c\x31\
-\x34\x35\x2e\x39\x20\x32\x37\x34\x2c\x32\x30\x39\x2e\x37\x20\x32\
-\x37\x34\x2c\x32\x30\x39\x2e\x37\x20\x31\x34\x35\x2e\x39\x2c\x33\
-\x33\x37\x2e\x39\x20\x39\x36\x2c\x32\x38\x38\x20\x39\x36\x2c\x34\
-\x31\x36\x20\x32\x32\x34\x2c\x34\x31\x36\x20\x31\x37\x34\x2e\x31\
-\x2c\x33\x36\x36\x2e\x31\x20\x33\x35\x37\x2e\x34\x2c\x31\x38\x32\
-\x2e\x39\x20\x33\x36\x36\x2e\x31\x2c\x31\x37\x34\x2e\x31\x20\x0d\
-\x0a\x09\x34\x31\x36\x2c\x32\x32\x34\x20\x34\x31\x36\x2c\x39\x36\
-\x20\x22\x2f\x3e\x0d\x0a\x3c\x2f\x73\x76\x67\x3e\x0d\x0a\
-\x00\x00\x00\x6c\
-\x3c\
-\x73\x76\x67\x20\x78\x6d\x6c\x6e\x73\x3d\x22\x68\x74\x74\x70\x3a\
-\x2f\x2f\x77\x77\x77\x2e\x77\x33\x2e\x6f\x72\x67\x2f\x32\x30\x30\
-\x30\x2f\x73\x76\x67\x22\x20\x76\x69\x65\x77\x42\x6f\x78\x3d\x22\
-\x30\x20\x30\x20\x32\x30\x20\x32\x30\x22\x3e\x3c\x70\x61\x74\x68\
-\x20\x64\x3d\x22\x4d\x31\x38\x20\x31\x32\x76\x31\x48\x38\x76\x35\
-\x6c\x2d\x36\x2d\x36\x20\x36\x2d\x36\x76\x35\x68\x38\x56\x32\x68\
-\x32\x7a\x22\x2f\x3e\x3c\x2f\x73\x76\x67\x3e\
-\x00\x00\x04\x64\
-\x3c\
-\x3f\x78\x6d\x6c\x20\x76\x65\x72\x73\x69\x6f\x6e\x3d\x22\x31\x2e\
-\x30\x22\x20\x65\x6e\x63\x6f\x64\x69\x6e\x67\x3d\x22\x75\x74\x66\
-\x2d\x38\x22\x3f\x3e\x0d\x0a\x3c\x21\x2d\x2d\x20\x47\x65\x6e\x65\
-\x72\x61\x74\x6f\x72\x3a\x20\x41\x64\x6f\x62\x65\x20\x49\x6c\x6c\
-\x75\x73\x74\x72\x61\x74\x6f\x72\x20\x31\x36\x2e\x32\x2e\x31\x2c\
-\x20\x53\x56\x47\x20\x45\x78\x70\x6f\x72\x74\x20\x50\x6c\x75\x67\
-\x2d\x49\x6e\x20\x2e\x20\x53\x56\x47\x20\x56\x65\x72\x73\x69\x6f\
-\x6e\x3a\x20\x36\x2e\x30\x30\x20\x42\x75\x69\x6c\x64\x20\x30\x29\
-\x20\x20\x2d\x2d\x3e\x0d\x0a\x3c\x21\x44\x4f\x43\x54\x59\x50\x45\
-\x20\x73\x76\x67\x20\x50\x55\x42\x4c\x49\x43\x20\x22\x2d\x2f\x2f\
-\x57\x33\x43\x2f\x2f\x44\x54\x44\x20\x53\x56\x47\x20\x31\x2e\x31\
-\x2f\x2f\x45\x4e\x22\x20\x22\x68\x74\x74\x70\x3a\x2f\x2f\x77\x77\
-\x77\x2e\x77\x33\x2e\x6f\x72\x67\x2f\x47\x72\x61\x70\x68\x69\x63\
-\x73\x2f\x53\x56\x47\x2f\x31\x2e\x31\x2f\x44\x54\x44\x2f\x73\x76\
-\x67\x31\x31\x2e\x64\x74\x64\x22\x3e\x0d\x0a\x3c\x73\x76\x67\x20\
-\x76\x65\x72\x73\x69\x6f\x6e\x3d\x22\x31\x2e\x31\x22\x20\x69\x64\
-\x3d\x22\x4c\x61\x79\x65\x72\x5f\x31\x22\x20\x78\x6d\x6c\x6e\x73\
-\x3d\x22\x68\x74\x74\x70\x3a\x2f\x2f\x77\x77\x77\x2e\x77\x33\x2e\
-\x6f\x72\x67\x2f\x32\x30\x30\x30\x2f\x73\x76\x67\x22\x20\x78\x6d\
-\x6c\x6e\x73\x3a\x78\x6c\x69\x6e\x6b\x3d\x22\x68\x74\x74\x70\x3a\
-\x2f\x2f\x77\x77\x77\x2e\x77\x33\x2e\x6f\x72\x67\x2f\x31\x39\x39\
-\x39\x2f\x78\x6c\x69\x6e\x6b\x22\x20\x78\x3d\x22\x30\x70\x78\x22\
-\x20\x79\x3d\x22\x30\x70\x78\x22\x0d\x0a\x09\x20\x77\x69\x64\x74\
-\x68\x3d\x22\x35\x31\x32\x70\x78\x22\x20\x68\x65\x69\x67\x68\x74\
-\x3d\x22\x35\x31\x32\x70\x78\x22\x20\x76\x69\x65\x77\x42\x6f\x78\
-\x3d\x22\x30\x20\x30\x20\x35\x31\x32\x20\x35\x31\x32\x22\x20\x65\
-\x6e\x61\x62\x6c\x65\x2d\x62\x61\x63\x6b\x67\x72\x6f\x75\x6e\x64\
-\x3d\x22\x6e\x65\x77\x20\x30\x20\x30\x20\x35\x31\x32\x20\x35\x31\
-\x32\x22\x20\x78\x6d\x6c\x3a\x73\x70\x61\x63\x65\x3d\x22\x70\x72\
-\x65\x73\x65\x72\x76\x65\x22\x3e\x0d\x0a\x3c\x67\x20\x69\x64\x3d\
-\x22\x49\x63\x6f\x6e\x22\x3e\x0d\x0a\x09\x3c\x67\x3e\x0d\x0a\x09\
-\x09\x3c\x70\x61\x74\x68\x20\x64\x3d\x22\x4d\x32\x35\x36\x2c\x31\
-\x37\x36\x63\x2d\x34\x34\x2e\x30\x30\x34\x2c\x30\x2d\x38\x30\x2e\
-\x30\x30\x31\x2c\x33\x36\x2d\x38\x30\x2e\x30\x30\x31\x2c\x38\x30\
-\x63\x30\x2c\x34\x34\x2e\x30\x30\x34\x2c\x33\x35\x2e\x39\x39\x37\
-\x2c\x38\x30\x2c\x38\x30\x2e\x30\x30\x31\x2c\x38\x30\x63\x34\x34\
-\x2e\x30\x30\x35\x2c\x30\x2c\x37\x39\x2e\x39\x39\x39\x2d\x33\x35\
-\x2e\x39\x39\x36\x2c\x37\x39\x2e\x39\x39\x39\x2d\x38\x30\x0d\x0a\
-\x09\x09\x09\x43\x33\x33\x35\x2e\x39\x39\x39\x2c\x32\x31\x32\x2c\
-\x33\x30\x30\x2e\x30\x30\x35\x2c\x31\x37\x36\x2c\x32\x35\x36\x2c\
-\x31\x37\x36\x7a\x20\x4d\x34\x34\x36\x2e\x39\x33\x38\x2c\x32\x33\
-\x34\x2e\x36\x36\x37\x63\x2d\x39\x2e\x36\x30\x35\x2d\x38\x38\x2e\
-\x35\x33\x31\x2d\x38\x31\x2e\x30\x37\x34\x2d\x31\x36\x30\x2d\x31\
-\x36\x39\x2e\x36\x30\x35\x2d\x31\x36\x39\x2e\x35\x39\x39\x56\x33\
-\x32\x68\x2d\x34\x32\x2e\x36\x36\x36\x76\x33\x33\x2e\x30\x36\x37\
-\x0d\x0a\x09\x09\x09\x63\x2d\x38\x38\x2e\x35\x33\x31\x2c\x39\x2e\
-\x35\x39\x39\x2d\x31\x36\x30\x2c\x38\x31\x2e\x30\x36\x38\x2d\x31\
-\x36\x39\x2e\x36\x30\x34\x2c\x31\x36\x39\x2e\x35\x39\x39\x48\x33\
-\x32\x76\x34\x32\x2e\x36\x36\x37\x68\x33\x33\x2e\x30\x36\x32\x63\
-\x39\x2e\x36\x30\x34\x2c\x38\x38\x2e\x35\x33\x31\x2c\x38\x31\x2e\
-\x30\x37\x32\x2c\x31\x36\x30\x2c\x31\x36\x39\x2e\x36\x30\x34\x2c\
-\x31\x36\x39\x2e\x36\x30\x34\x56\x34\x38\x30\x68\x34\x32\x2e\x36\
-\x36\x36\x76\x2d\x33\x33\x2e\x30\x36\x32\x0d\x0a\x09\x09\x09\x63\
-\x38\x38\x2e\x35\x33\x31\x2d\x39\x2e\x36\x30\x34\x2c\x31\x36\x30\
-\x2d\x38\x31\x2e\x30\x37\x33\x2c\x31\x36\x39\x2e\x36\x30\x35\x2d\
-\x31\x36\x39\x2e\x36\x30\x34\x48\x34\x38\x30\x76\x2d\x34\x32\x2e\
-\x36\x36\x37\x48\x34\x34\x36\x2e\x39\x33\x38\x7a\x20\x4d\x32\x35\
-\x36\x2c\x34\x30\x35\x2e\x33\x33\x33\x63\x2d\x38\x32\x2e\x31\x33\
-\x37\x2c\x30\x2d\x31\x34\x39\x2e\x33\x33\x34\x2d\x36\x37\x2e\x31\
-\x39\x38\x2d\x31\x34\x39\x2e\x33\x33\x34\x2d\x31\x34\x39\x2e\x33\
-\x33\x33\x0d\x0a\x09\x09\x09\x63\x30\x2d\x38\x32\x2e\x31\x33\x36\
-\x2c\x36\x37\x2e\x31\x39\x37\x2d\x31\x34\x39\x2e\x33\x33\x33\x2c\
-\x31\x34\x39\x2e\x33\x33\x34\x2d\x31\x34\x39\x2e\x33\x33\x33\x63\
-\x38\x32\x2e\x31\x33\x35\x2c\x30\x2c\x31\x34\x39\x2e\x33\x33\x32\
-\x2c\x36\x37\x2e\x31\x39\x38\x2c\x31\x34\x39\x2e\x33\x33\x32\x2c\
-\x31\x34\x39\x2e\x33\x33\x33\x43\x34\x30\x35\x2e\x33\x33\x32\x2c\
-\x33\x33\x38\x2e\x31\x33\x35\x2c\x33\x33\x38\x2e\x31\x33\x35\x2c\
-\x34\x30\x35\x2e\x33\x33\x33\x2c\x32\x35\x36\x2c\x34\x30\x35\x2e\
-\x33\x33\x33\x7a\x0d\x0a\x09\x09\x09\x22\x2f\x3e\x0d\x0a\x09\x3c\
-\x2f\x67\x3e\x0d\x0a\x3c\x2f\x67\x3e\x0d\x0a\x3c\x2f\x73\x76\x67\
-\x3e\x0d\x0a\
-\x00\x00\x02\xa1\
-\x3c\
-\x3f\x78\x6d\x6c\x20\x76\x65\x72\x73\x69\x6f\x6e\x3d\x22\x31\x2e\
-\x30\x22\x20\x65\x6e\x63\x6f\x64\x69\x6e\x67\x3d\x22\x75\x74\x66\
-\x2d\x38\x22\x3f\x3e\x0d\x0a\x3c\x21\x2d\x2d\x20\x47\x65\x6e\x65\
-\x72\x61\x74\x6f\x72\x3a\x20\x41\x64\x6f\x62\x65\x20\x49\x6c\x6c\
-\x75\x73\x74\x72\x61\x74\x6f\x72\x20\x31\x38\x2e\x31\x2e\x31\x2c\
-\x20\x53\x56\x47\x20\x45\x78\x70\x6f\x72\x74\x20\x50\x6c\x75\x67\
-\x2d\x49\x6e\x20\x2e\x20\x53\x56\x47\x20\x56\x65\x72\x73\x69\x6f\
-\x6e\x3a\x20\x36\x2e\x30\x30\x20\x42\x75\x69\x6c\x64\x20\x30\x29\
-\x20\x20\x2d\x2d\x3e\x0d\x0a\x3c\x21\x44\x4f\x43\x54\x59\x50\x45\
-\x20\x73\x76\x67\x20\x50\x55\x42\x4c\x49\x43\x20\x22\x2d\x2f\x2f\
-\x57\x33\x43\x2f\x2f\x44\x54\x44\x20\x53\x56\x47\x20\x31\x2e\x31\
-\x2f\x2f\x45\x4e\x22\x20\x22\x68\x74\x74\x70\x3a\x2f\x2f\x77\x77\
-\x77\x2e\x77\x33\x2e\x6f\x72\x67\x2f\x47\x72\x61\x70\x68\x69\x63\
-\x73\x2f\x53\x56\x47\x2f\x31\x2e\x31\x2f\x44\x54\x44\x2f\x73\x76\
-\x67\x31\x31\x2e\x64\x74\x64\x22\x3e\x0d\x0a\x3c\x73\x76\x67\x20\
-\x76\x65\x72\x73\x69\x6f\x6e\x3d\x22\x31\x2e\x31\x22\x20\x69\x64\
-\x3d\x22\x53\x61\x76\x65\x22\x20\x78\x6d\x6c\x6e\x73\x3d\x22\x68\
-\x74\x74\x70\x3a\x2f\x2f\x77\x77\x77\x2e\x77\x33\x2e\x6f\x72\x67\
-\x2f\x32\x30\x30\x30\x2f\x73\x76\x67\x22\x20\x78\x6d\x6c\x6e\x73\
-\x3a\x78\x6c\x69\x6e\x6b\x3d\x22\x68\x74\x74\x70\x3a\x2f\x2f\x77\
-\x77\x77\x2e\x77\x33\x2e\x6f\x72\x67\x2f\x31\x39\x39\x39\x2f\x78\
-\x6c\x69\x6e\x6b\x22\x20\x78\x3d\x22\x35\x31\x32\x70\x78\x22\x20\
-\x79\x3d\x22\x35\x31\x32\x70\x78\x22\x0d\x0a\x09\x20\x76\x69\x65\
-\x77\x42\x6f\x78\x3d\x22\x30\x20\x30\x20\x35\x31\x32\x20\x35\x31\
-\x32\x22\x20\x65\x6e\x61\x62\x6c\x65\x2d\x62\x61\x63\x6b\x67\x72\
-\x6f\x75\x6e\x64\x3d\x22\x6e\x65\x77\x20\x30\x20\x30\x20\x35\x31\
-\x32\x20\x35\x31\x32\x22\x20\x78\x6d\x6c\x3a\x73\x70\x61\x63\x65\
-\x3d\x22\x70\x72\x65\x73\x65\x72\x76\x65\x22\x3e\x0d\x0a\x3c\x67\
-\x20\x74\x72\x61\x6e\x73\x66\x6f\x72\x6d\x3d\x27\x6d\x61\x74\x72\
-\x69\x78\x28\x32\x34\x20\x30\x20\x30\x20\x32\x34\x20\x30\x20\x30\
-\x29\x27\x3e\x0d\x0a\x3c\x70\x61\x74\x68\x20\x64\x3d\x22\x4d\x31\
-\x35\x2e\x31\x37\x33\x2c\x32\x48\x34\x43\x32\x2e\x38\x39\x39\x2c\
-\x32\x2c\x32\x2c\x32\x2e\x39\x2c\x32\x2c\x34\x76\x31\x32\x63\x30\
-\x2c\x31\x2e\x31\x2c\x30\x2e\x38\x39\x39\x2c\x32\x2c\x32\x2c\x32\
-\x68\x31\x32\x63\x31\x2e\x31\x30\x31\x2c\x30\x2c\x32\x2d\x30\x2e\
-\x39\x2c\x32\x2d\x32\x56\x35\x2e\x31\x32\x37\x4c\x31\x35\x2e\x31\
-\x37\x33\x2c\x32\x7a\x20\x4d\x31\x34\x2c\x38\x63\x30\x2c\x30\x2e\
-\x35\x34\x39\x2d\x30\x2e\x34\x35\x2c\x31\x2d\x31\x2c\x31\x48\x37\
-\x0d\x0a\x09\x43\x36\x2e\x34\x35\x2c\x39\x2c\x36\x2c\x38\x2e\x35\
-\x34\x39\x2c\x36\x2c\x38\x56\x33\x68\x38\x56\x38\x7a\x20\x4d\x31\
-\x33\x2c\x34\x68\x2d\x32\x76\x34\x68\x32\x56\x34\x7a\x22\x2f\x3e\
-\x0d\x0a\x3c\x2f\x67\x3e\x0d\x0a\x3c\x2f\x73\x76\x67\x3e\x0d\x0a\
-\
-\x00\x00\x04\x1c\
-\x3c\
-\x3f\x78\x6d\x6c\x20\x76\x65\x72\x73\x69\x6f\x6e\x3d\x27\x31\x2e\
-\x30\x27\x20\x65\x6e\x63\x6f\x64\x69\x6e\x67\x3d\x27\x55\x54\x46\
-\x2d\x38\x27\x3f\x3e\x0a\x3c\x21\x2d\x2d\x20\x54\x68\x69\x73\x20\
-\x66\x69\x6c\x65\x20\x77\x61\x73\x20\x67\x65\x6e\x65\x72\x61\x74\
-\x65\x64\x20\x62\x79\x20\x64\x76\x69\x73\x76\x67\x6d\x20\x32\x2e\
-\x38\x20\x2d\x2d\x3e\x0a\x3c\x73\x76\x67\x20\x76\x65\x72\x73\x69\
-\x6f\x6e\x3d\x27\x31\x2e\x31\x27\x20\x78\x6d\x6c\x6e\x73\x3d\x27\
-\x68\x74\x74\x70\x3a\x2f\x2f\x77\x77\x77\x2e\x77\x33\x2e\x6f\x72\
-\x67\x2f\x32\x30\x30\x30\x2f\x73\x76\x67\x27\x20\x78\x6d\x6c\x6e\
-\x73\x3a\x78\x6c\x69\x6e\x6b\x3d\x27\x68\x74\x74\x70\x3a\x2f\x2f\
-\x77\x77\x77\x2e\x77\x33\x2e\x6f\x72\x67\x2f\x31\x39\x39\x39\x2f\
-\x78\x6c\x69\x6e\x6b\x27\x20\x77\x69\x64\x74\x68\x3d\x27\x36\x33\
-\x2e\x39\x39\x39\x36\x70\x74\x27\x20\x68\x65\x69\x67\x68\x74\x3d\
-\x27\x36\x33\x2e\x39\x39\x39\x37\x70\x74\x27\x20\x76\x69\x65\x77\
-\x42\x6f\x78\x3d\x27\x35\x36\x2e\x34\x30\x39\x34\x20\x35\x33\x2e\
-\x38\x35\x38\x33\x20\x36\x33\x2e\x39\x39\x39\x36\x20\x36\x33\x2e\
-\x39\x39\x39\x37\x27\x3e\x0a\x3c\x67\x20\x69\x64\x3d\x27\x70\x61\
-\x67\x65\x31\x27\x3e\x0a\x3c\x67\x20\x74\x72\x61\x6e\x73\x66\x6f\
-\x72\x6d\x3d\x27\x6d\x61\x74\x72\x69\x78\x28\x30\x2e\x39\x39\x36\
-\x32\x36\x34\x20\x30\x20\x30\x20\x30\x2e\x39\x39\x36\x32\x36\x34\
-\x20\x35\x36\x2e\x34\x30\x39\x34\x20\x31\x31\x37\x2e\x38\x35\x38\
-\x29\x27\x3e\x0a\x3c\x70\x61\x74\x68\x20\x64\x3d\x27\x4d\x20\x32\
-\x2e\x30\x30\x37\x35\x20\x2d\x32\x2e\x30\x30\x37\x35\x4c\x20\x36\
-\x32\x2e\x32\x33\x32\x35\x20\x2d\x32\x2e\x30\x30\x37\x35\x4c\x20\
-\x36\x32\x2e\x32\x33\x32\x35\x20\x2d\x36\x32\x2e\x32\x33\x32\x35\
-\x4c\x20\x32\x2e\x30\x30\x37\x35\x20\x2d\x36\x32\x2e\x32\x33\x32\
-\x35\x4c\x20\x32\x2e\x30\x30\x37\x35\x20\x2d\x32\x2e\x30\x30\x37\
-\x35\x5a\x27\x20\x66\x69\x6c\x6c\x3d\x27\x6e\x6f\x6e\x65\x27\x20\
-\x73\x74\x72\x6f\x6b\x65\x3d\x27\x23\x30\x30\x30\x30\x30\x30\x27\
-\x20\x73\x74\x72\x6f\x6b\x65\x2d\x6c\x69\x6e\x65\x63\x61\x70\x3d\
-\x27\x72\x6f\x75\x6e\x64\x27\x20\x73\x74\x72\x6f\x6b\x65\x2d\x6c\
-\x69\x6e\x65\x6a\x6f\x69\x6e\x3d\x27\x72\x6f\x75\x6e\x64\x27\x20\
-\x73\x74\x72\x6f\x6b\x65\x2d\x6d\x69\x74\x65\x72\x6c\x69\x6d\x69\
-\x74\x3d\x27\x31\x30\x2e\x30\x33\x37\x35\x27\x20\x73\x74\x72\x6f\
-\x6b\x65\x2d\x77\x69\x64\x74\x68\x3d\x27\x34\x2e\x30\x31\x35\x27\
-\x2f\x3e\x0a\x3c\x2f\x67\x3e\x0a\x3c\x67\x20\x74\x72\x61\x6e\x73\
-\x66\x6f\x72\x6d\x3d\x27\x6d\x61\x74\x72\x69\x78\x28\x30\x2e\x39\
-\x39\x36\x32\x36\x34\x20\x30\x20\x30\x20\x30\x2e\x39\x39\x36\x32\
-\x36\x34\x20\x35\x36\x2e\x34\x30\x39\x34\x20\x31\x31\x37\x2e\x38\
-\x35\x38\x29\x27\x3e\x0a\x3c\x70\x61\x74\x68\x20\x64\x3d\x27\x4d\
-\x20\x32\x2e\x30\x30\x37\x35\x20\x2d\x33\x32\x2e\x31\x32\x4c\x20\
-\x36\x32\x2e\x32\x33\x32\x35\x20\x2d\x33\x32\x2e\x31\x32\x27\x20\
-\x66\x69\x6c\x6c\x3d\x27\x6e\x6f\x6e\x65\x27\x20\x73\x74\x72\x6f\
-\x6b\x65\x3d\x27\x23\x30\x30\x30\x30\x30\x30\x27\x20\x73\x74\x72\
-\x6f\x6b\x65\x2d\x6c\x69\x6e\x65\x63\x61\x70\x3d\x27\x72\x6f\x75\
-\x6e\x64\x27\x20\x73\x74\x72\x6f\x6b\x65\x2d\x6c\x69\x6e\x65\x6a\
-\x6f\x69\x6e\x3d\x27\x72\x6f\x75\x6e\x64\x27\x20\x73\x74\x72\x6f\
-\x6b\x65\x2d\x6d\x69\x74\x65\x72\x6c\x69\x6d\x69\x74\x3d\x27\x31\
-\x30\x2e\x30\x33\x37\x35\x27\x20\x73\x74\x72\x6f\x6b\x65\x2d\x77\
-\x69\x64\x74\x68\x3d\x27\x34\x2e\x30\x31\x35\x27\x2f\x3e\x0a\x3c\
-\x2f\x67\x3e\x0a\x3c\x67\x20\x74\x72\x61\x6e\x73\x66\x6f\x72\x6d\
-\x3d\x27\x6d\x61\x74\x72\x69\x78\x28\x30\x2e\x39\x39\x36\x32\x36\
-\x34\x20\x30\x20\x30\x20\x30\x2e\x39\x39\x36\x32\x36\x34\x20\x35\
-\x36\x2e\x34\x30\x39\x34\x20\x31\x31\x37\x2e\x38\x35\x38\x29\x27\
-\x3e\x0a\x3c\x70\x61\x74\x68\x20\x64\x3d\x27\x4d\x20\x33\x32\x2e\
-\x31\x32\x20\x2d\x32\x2e\x30\x30\x37\x35\x4c\x20\x33\x32\x2e\x31\
-\x32\x20\x2d\x36\x32\x2e\x32\x33\x32\x35\x27\x20\x66\x69\x6c\x6c\
-\x3d\x27\x6e\x6f\x6e\x65\x27\x20\x73\x74\x72\x6f\x6b\x65\x3d\x27\
-\x23\x30\x30\x30\x30\x30\x30\x27\x20\x73\x74\x72\x6f\x6b\x65\x2d\
-\x6c\x69\x6e\x65\x63\x61\x70\x3d\x27\x72\x6f\x75\x6e\x64\x27\x20\
-\x73\x74\x72\x6f\x6b\x65\x2d\x6c\x69\x6e\x65\x6a\x6f\x69\x6e\x3d\
-\x27\x72\x6f\x75\x6e\x64\x27\x20\x73\x74\x72\x6f\x6b\x65\x2d\x6d\
-\x69\x74\x65\x72\x6c\x69\x6d\x69\x74\x3d\x27\x31\x30\x2e\x30\x33\
-\x37\x35\x27\x20\x73\x74\x72\x6f\x6b\x65\x2d\x77\x69\x64\x74\x68\
-\x3d\x27\x34\x2e\x30\x31\x35\x27\x2f\x3e\x0a\x3c\x2f\x67\x3e\x0a\
-\x3c\x2f\x67\x3e\x0a\x3c\x2f\x73\x76\x67\x3e\
-\x00\x00\x05\xca\
-\x3c\
-\x3f\x78\x6d\x6c\x20\x76\x65\x72\x73\x69\x6f\x6e\x3d\x22\x31\x2e\
-\x30\x22\x20\x65\x6e\x63\x6f\x64\x69\x6e\x67\x3d\x22\x75\x74\x66\
-\x2d\x38\x22\x3f\x3e\x0d\x0a\x3c\x21\x2d\x2d\x20\x47\x65\x6e\x65\
-\x72\x61\x74\x6f\x72\x3a\x20\x41\x64\x6f\x62\x65\x20\x49\x6c\x6c\
-\x75\x73\x74\x72\x61\x74\x6f\x72\x20\x31\x36\x2e\x32\x2e\x31\x2c\
-\x20\x53\x56\x47\x20\x45\x78\x70\x6f\x72\x74\x20\x50\x6c\x75\x67\
-\x2d\x49\x6e\x20\x2e\x20\x53\x56\x47\x20\x56\x65\x72\x73\x69\x6f\
-\x6e\x3a\x20\x36\x2e\x30\x30\x20\x42\x75\x69\x6c\x64\x20\x30\x29\
-\x20\x20\x2d\x2d\x3e\x0d\x0a\x3c\x21\x44\x4f\x43\x54\x59\x50\x45\
-\x20\x73\x76\x67\x20\x50\x55\x42\x4c\x49\x43\x20\x22\x2d\x2f\x2f\
-\x57\x33\x43\x2f\x2f\x44\x54\x44\x20\x53\x56\x47\x20\x31\x2e\x31\
-\x2f\x2f\x45\x4e\x22\x20\x22\x68\x74\x74\x70\x3a\x2f\x2f\x77\x77\
-\x77\x2e\x77\x33\x2e\x6f\x72\x67\x2f\x47\x72\x61\x70\x68\x69\x63\
-\x73\x2f\x53\x56\x47\x2f\x31\x2e\x31\x2f\x44\x54\x44\x2f\x73\x76\
-\x67\x31\x31\x2e\x64\x74\x64\x22\x3e\x0d\x0a\x3c\x73\x76\x67\x20\
-\x76\x65\x72\x73\x69\x6f\x6e\x3d\x22\x31\x2e\x31\x22\x20\x69\x64\
-\x3d\x22\x4c\x61\x79\x65\x72\x5f\x31\x22\x20\x78\x6d\x6c\x6e\x73\
-\x3d\x22\x68\x74\x74\x70\x3a\x2f\x2f\x77\x77\x77\x2e\x77\x33\x2e\
-\x6f\x72\x67\x2f\x32\x30\x30\x30\x2f\x73\x76\x67\x22\x20\x78\x6d\
-\x6c\x6e\x73\x3a\x78\x6c\x69\x6e\x6b\x3d\x22\x68\x74\x74\x70\x3a\
-\x2f\x2f\x77\x77\x77\x2e\x77\x33\x2e\x6f\x72\x67\x2f\x31\x39\x39\
-\x39\x2f\x78\x6c\x69\x6e\x6b\x22\x20\x78\x3d\x22\x30\x70\x78\x22\
-\x20\x79\x3d\x22\x30\x70\x78\x22\x0d\x0a\x09\x20\x77\x69\x64\x74\
-\x68\x3d\x22\x35\x31\x32\x70\x78\x22\x20\x68\x65\x69\x67\x68\x74\
-\x3d\x22\x35\x31\x32\x70\x78\x22\x20\x76\x69\x65\x77\x42\x6f\x78\
-\x3d\x22\x30\x20\x30\x20\x35\x31\x32\x20\x35\x31\x32\x22\x20\x65\
-\x6e\x61\x62\x6c\x65\x2d\x62\x61\x63\x6b\x67\x72\x6f\x75\x6e\x64\
-\x3d\x22\x6e\x65\x77\x20\x30\x20\x30\x20\x35\x31\x32\x20\x35\x31\
-\x32\x22\x20\x78\x6d\x6c\x3a\x73\x70\x61\x63\x65\x3d\x22\x70\x72\
-\x65\x73\x65\x72\x76\x65\x22\x3e\x0d\x0a\x3c\x70\x61\x74\x68\x20\
-\x64\x3d\x22\x4d\x34\x35\x30\x2e\x36\x37\x39\x2c\x32\x37\x33\x2e\
-\x35\x63\x2d\x31\x34\x2e\x35\x38\x35\x2d\x31\x34\x2e\x35\x37\x37\
-\x2d\x33\x36\x2e\x30\x35\x34\x2d\x31\x35\x2e\x38\x39\x2d\x35\x30\
-\x2e\x36\x33\x39\x2d\x31\x2e\x33\x31\x32\x6c\x2d\x34\x31\x2e\x36\
-\x38\x37\x2c\x34\x31\x2e\x36\x36\x34\x63\x2d\x31\x30\x2e\x38\x35\
-\x32\x2c\x31\x30\x2e\x38\x33\x36\x2d\x32\x33\x2e\x39\x33\x2c\x31\
-\x30\x2e\x38\x35\x39\x2d\x33\x31\x2e\x35\x36\x34\x2c\x31\x2e\x38\
-\x35\x32\x0d\x0a\x09\x63\x2d\x35\x2e\x30\x35\x37\x2d\x35\x2e\x39\
-\x36\x38\x2d\x33\x2e\x30\x36\x31\x2d\x32\x34\x2e\x33\x37\x34\x2d\
-\x31\x2e\x36\x34\x34\x2d\x33\x36\x2e\x30\x34\x39\x6c\x32\x30\x2e\
-\x39\x30\x37\x2d\x31\x37\x31\x2e\x38\x34\x39\x63\x31\x2e\x38\x36\
-\x37\x2d\x31\x35\x2e\x33\x35\x33\x2d\x39\x2e\x30\x37\x2d\x33\x30\
-\x2e\x31\x38\x35\x2d\x32\x34\x2e\x34\x33\x2d\x33\x32\x2e\x30\x35\
-\x31\x0d\x0a\x09\x63\x2d\x31\x35\x2e\x33\x35\x38\x2d\x31\x2e\x38\
-\x36\x37\x2d\x32\x39\x2e\x33\x32\x32\x2c\x39\x2e\x39\x33\x39\x2d\
-\x33\x31\x2e\x31\x39\x31\x2c\x32\x35\x2e\x32\x38\x39\x4c\x32\x36\
-\x37\x2e\x33\x37\x2c\x32\x33\x36\x2e\x30\x32\x31\x63\x2d\x31\x2e\
-\x32\x30\x35\x2c\x33\x2e\x33\x35\x38\x2d\x33\x2e\x37\x39\x2c\x33\
-\x2e\x39\x33\x38\x2d\x34\x2e\x30\x38\x31\x2d\x30\x2e\x35\x38\x32\
-\x4c\x32\x35\x35\x2e\x34\x34\x2c\x36\x30\x0d\x0a\x09\x63\x30\x2d\
-\x31\x35\x2e\x34\x36\x35\x2d\x31\x32\x2e\x35\x34\x32\x2d\x32\x38\
-\x2d\x32\x38\x2e\x30\x31\x34\x2d\x32\x38\x63\x2d\x31\x35\x2e\x34\
-\x37\x33\x2c\x30\x2d\x32\x38\x2e\x30\x31\x35\x2c\x31\x32\x2e\x35\
-\x33\x35\x2d\x32\x38\x2e\x30\x31\x35\x2c\x32\x38\x6c\x2d\x30\x2e\
-\x35\x35\x32\x2c\x31\x37\x36\x2e\x37\x35\x32\x63\x30\x2e\x31\x34\
-\x36\x2c\x32\x2e\x30\x34\x2d\x31\x2e\x36\x30\x34\x2c\x32\x2e\x36\
-\x32\x34\x2d\x31\x2e\x39\x32\x2c\x30\x2e\x32\x39\x34\x4c\x31\x37\
-\x32\x2e\x30\x31\x36\x2c\x39\x39\x2e\x30\x37\x37\x0d\x0a\x09\x63\
-\x2d\x32\x2e\x37\x35\x2d\x31\x35\x2e\x32\x31\x39\x2d\x31\x37\x2e\
-\x33\x32\x33\x2d\x32\x36\x2e\x32\x30\x33\x2d\x33\x32\x2e\x35\x34\
-\x38\x2d\x32\x33\x2e\x34\x35\x33\x63\x2d\x31\x35\x2e\x32\x32\x37\
-\x2c\x32\x2e\x37\x34\x38\x2d\x32\x35\x2e\x33\x33\x39\x2c\x31\x38\
-\x2e\x31\x38\x37\x2d\x32\x32\x2e\x35\x39\x31\x2c\x33\x33\x2e\x34\
-\x30\x33\x6c\x32\x32\x2e\x31\x39\x33\x2c\x31\x36\x31\x2e\x34\x35\
-\x35\x0d\x0a\x09\x63\x30\x2e\x30\x32\x33\x2c\x32\x2e\x38\x37\x32\
-\x2d\x30\x2e\x39\x34\x31\x2c\x34\x2e\x35\x31\x33\x2d\x32\x2e\x33\
-\x30\x38\x2c\x30\x2e\x38\x33\x31\x6c\x2d\x33\x33\x2e\x31\x30\x39\
-\x2d\x38\x38\x2e\x35\x31\x37\x63\x2d\x35\x2e\x31\x38\x2d\x31\x34\
-\x2e\x35\x37\x32\x2d\x32\x31\x2e\x31\x39\x36\x2d\x32\x33\x2e\x30\
-\x36\x35\x2d\x33\x35\x2e\x37\x37\x36\x2d\x31\x37\x2e\x38\x38\x39\
-\x0d\x0a\x09\x63\x2d\x31\x34\x2e\x35\x37\x39\x2c\x35\x2e\x31\x37\
-\x37\x2d\x32\x32\x2e\x32\x30\x31\x2c\x32\x32\x2e\x30\x36\x31\x2d\
-\x31\x37\x2e\x30\x32\x33\x2c\x33\x36\x2e\x36\x33\x31\x6c\x35\x38\
-\x2e\x30\x34\x32\x2c\x31\x38\x39\x2e\x36\x32\x35\x63\x30\x2e\x33\
-\x30\x33\x2c\x31\x2e\x30\x34\x36\x2c\x30\x2e\x36\x32\x34\x2c\x32\
-\x2e\x30\x38\x35\x2c\x30\x2e\x39\x35\x33\x2c\x33\x2e\x31\x31\x38\
-\x6c\x30\x2e\x31\x32\x31\x2c\x30\x2e\x33\x39\x0d\x0a\x09\x63\x30\
-\x2e\x30\x31\x31\x2c\x30\x2e\x30\x33\x31\x2c\x30\x2e\x30\x32\x35\
-\x2c\x30\x2e\x30\x35\x38\x2c\x30\x2e\x30\x33\x35\x2c\x30\x2e\x30\
-\x38\x38\x43\x31\x32\x36\x2e\x30\x37\x39\x2c\x34\x34\x34\x2e\x32\
-\x33\x33\x2c\x31\x37\x32\x2e\x35\x37\x2c\x34\x38\x30\x2c\x32\x32\
-\x37\x2e\x34\x32\x37\x2c\x34\x38\x30\x63\x33\x35\x2e\x31\x31\x36\
-\x2c\x30\x2c\x37\x31\x2e\x35\x39\x31\x2d\x31\x32\x2e\x33\x37\x38\
-\x2c\x39\x39\x2e\x33\x35\x37\x2d\x33\x33\x2e\x36\x37\x32\x0d\x0a\
-\x09\x63\x30\x2e\x30\x30\x31\x2c\x30\x2c\x30\x2e\x30\x30\x33\x2d\
-\x30\x2e\x30\x30\x32\x2c\x30\x2e\x30\x30\x33\x2d\x30\x2e\x30\x30\
-\x32\x63\x32\x39\x2e\x39\x39\x2d\x31\x38\x2e\x30\x35\x31\x2c\x31\
-\x32\x36\x2e\x30\x37\x31\x2d\x31\x32\x31\x2e\x33\x34\x37\x2c\x31\
-\x32\x36\x2e\x30\x37\x31\x2d\x31\x32\x31\x2e\x33\x34\x37\x43\x34\
-\x36\x37\x2e\x34\x34\x35\x2c\x33\x31\x30\x2e\x34\x30\x32\x2c\x34\
-\x36\x35\x2e\x32\x36\x36\x2c\x32\x38\x38\x2e\x30\x38\x2c\x34\x35\
-\x30\x2e\x36\x37\x39\x2c\x32\x37\x33\x2e\x35\x7a\x22\x2f\x3e\x0d\
-\x0a\x3c\x2f\x73\x76\x67\x3e\x0d\x0a\
\x00\x00\x03\x7c\
\x3c\
\x3f\x78\x6d\x6c\x20\x76\x65\x72\x73\x69\x6f\x6e\x3d\x27\x31\x2e\
@@ -2280,103 +2377,6 @@
\x20\x2d\x33\x32\x2e\x31\x32\x5a\x27\x20\x66\x69\x6c\x6c\x3d\x27\
\x23\x30\x30\x30\x30\x30\x30\x27\x2f\x3e\x0a\x3c\x2f\x67\x3e\x0a\
\x3c\x2f\x67\x3e\x0a\x3c\x2f\x73\x76\x67\x3e\
-\x00\x00\x01\x1c\
-\x3c\
-\x73\x76\x67\x20\x78\x6d\x6c\x6e\x73\x3d\x22\x68\x74\x74\x70\x3a\
-\x2f\x2f\x77\x77\x77\x2e\x77\x33\x2e\x6f\x72\x67\x2f\x32\x30\x30\
-\x30\x2f\x73\x76\x67\x22\x20\x77\x69\x64\x74\x68\x3d\x22\x35\x31\
-\x32\x70\x78\x22\x20\x68\x65\x69\x67\x68\x74\x3d\x22\x35\x31\x32\
-\x70\x78\x22\x0a\x20\x20\x20\x20\x20\x76\x69\x65\x77\x42\x6f\x78\
-\x3d\x22\x30\x20\x30\x20\x35\x31\x32\x20\x35\x31\x32\x22\x3e\x0a\
-\x3c\x67\x20\x74\x72\x61\x6e\x73\x66\x6f\x72\x6d\x3d\x27\x6d\x61\
-\x74\x72\x69\x78\x28\x34\x38\x20\x30\x20\x30\x20\x34\x38\x20\x34\
-\x38\x20\x34\x38\x29\x27\x3e\x0a\x20\x20\x3c\x70\x61\x74\x68\x20\
-\x64\x3d\x22\x4d\x30\x20\x30\x76\x32\x68\x2e\x35\x63\x30\x2d\x2e\
-\x35\x35\x2e\x34\x35\x2d\x31\x20\x31\x2d\x31\x68\x31\x2e\x35\x76\
-\x35\x2e\x35\x63\x30\x20\x2e\x32\x38\x2d\x2e\x32\x32\x2e\x35\x2d\
-\x2e\x35\x2e\x35\x68\x2d\x2e\x35\x76\x31\x68\x34\x76\x2d\x31\x68\
-\x2d\x2e\x35\x63\x2d\x2e\x32\x38\x20\x30\x2d\x2e\x35\x2d\x2e\x32\
-\x32\x2d\x2e\x35\x2d\x2e\x35\x76\x2d\x35\x2e\x35\x68\x31\x2e\x35\
-\x63\x2e\x35\x35\x20\x30\x20\x31\x20\x2e\x34\x35\x20\x31\x20\x31\
-\x68\x2e\x35\x76\x2d\x32\x68\x2d\x38\x7a\x22\x20\x2f\x3e\x0a\x3c\
-\x2f\x67\x3e\x0a\x3c\x2f\x73\x76\x67\x3e\x0a\
-\x00\x00\x04\xa2\
-\x3c\
-\x3f\x78\x6d\x6c\x20\x76\x65\x72\x73\x69\x6f\x6e\x3d\x27\x31\x2e\
-\x30\x27\x20\x65\x6e\x63\x6f\x64\x69\x6e\x67\x3d\x27\x55\x54\x46\
-\x2d\x38\x27\x3f\x3e\x0a\x3c\x21\x2d\x2d\x20\x54\x68\x69\x73\x20\
-\x66\x69\x6c\x65\x20\x77\x61\x73\x20\x67\x65\x6e\x65\x72\x61\x74\
-\x65\x64\x20\x62\x79\x20\x64\x76\x69\x73\x76\x67\x6d\x20\x32\x2e\
-\x38\x20\x2d\x2d\x3e\x0a\x3c\x73\x76\x67\x20\x76\x65\x72\x73\x69\
-\x6f\x6e\x3d\x27\x31\x2e\x31\x27\x20\x78\x6d\x6c\x6e\x73\x3d\x27\
-\x68\x74\x74\x70\x3a\x2f\x2f\x77\x77\x77\x2e\x77\x33\x2e\x6f\x72\
-\x67\x2f\x32\x30\x30\x30\x2f\x73\x76\x67\x27\x20\x78\x6d\x6c\x6e\
-\x73\x3a\x78\x6c\x69\x6e\x6b\x3d\x27\x68\x74\x74\x70\x3a\x2f\x2f\
-\x77\x77\x77\x2e\x77\x33\x2e\x6f\x72\x67\x2f\x31\x39\x39\x39\x2f\
-\x78\x6c\x69\x6e\x6b\x27\x20\x77\x69\x64\x74\x68\x3d\x27\x36\x33\
-\x2e\x39\x39\x39\x36\x70\x74\x27\x20\x68\x65\x69\x67\x68\x74\x3d\
-\x27\x36\x33\x2e\x39\x39\x39\x37\x70\x74\x27\x20\x76\x69\x65\x77\
-\x42\x6f\x78\x3d\x27\x35\x36\x2e\x34\x30\x39\x34\x20\x35\x33\x2e\
-\x38\x35\x38\x33\x20\x36\x33\x2e\x39\x39\x39\x36\x20\x36\x33\x2e\
-\x39\x39\x39\x37\x27\x3e\x0a\x3c\x67\x20\x69\x64\x3d\x27\x70\x61\
-\x67\x65\x31\x27\x3e\x0a\x3c\x67\x20\x74\x72\x61\x6e\x73\x66\x6f\
-\x72\x6d\x3d\x27\x6d\x61\x74\x72\x69\x78\x28\x30\x2e\x39\x39\x36\
-\x32\x36\x34\x20\x30\x20\x30\x20\x30\x2e\x39\x39\x36\x32\x36\x34\
-\x20\x35\x38\x2e\x34\x36\x36\x39\x20\x31\x31\x37\x2e\x38\x35\x38\
-\x29\x27\x3e\x0a\x3c\x70\x61\x74\x68\x20\x64\x3d\x27\x4d\x20\x33\
-\x2e\x39\x35\x37\x33\x35\x20\x2d\x33\x32\x2e\x31\x32\x43\x20\x34\
-\x2e\x31\x35\x35\x35\x36\x20\x2d\x33\x39\x2e\x32\x37\x34\x35\x20\
-\x36\x2e\x39\x38\x34\x37\x33\x20\x2d\x34\x36\x2e\x31\x30\x34\x37\
-\x20\x31\x31\x2e\x39\x30\x33\x36\x20\x2d\x35\x31\x2e\x33\x30\x33\
-\x39\x43\x20\x32\x37\x2e\x34\x34\x31\x31\x20\x2d\x36\x37\x2e\x37\
-\x32\x36\x39\x20\x35\x33\x2e\x33\x30\x32\x31\x20\x2d\x36\x31\x2e\
-\x35\x34\x30\x35\x20\x35\x36\x2e\x31\x35\x32\x33\x20\x2d\x34\x32\
-\x2e\x35\x30\x32\x32\x43\x20\x35\x37\x2e\x36\x32\x37\x20\x2d\x33\
-\x32\x2e\x36\x35\x31\x39\x20\x35\x30\x2e\x35\x38\x35\x36\x20\x2d\
-\x32\x33\x2e\x35\x36\x32\x31\x20\x34\x30\x2e\x36\x37\x39\x34\x20\
-\x2d\x32\x32\x2e\x35\x32\x38\x31\x27\x20\x66\x69\x6c\x6c\x3d\x27\
-\x6e\x6f\x6e\x65\x27\x20\x73\x74\x72\x6f\x6b\x65\x3d\x27\x23\x30\
-\x30\x30\x30\x30\x30\x27\x20\x73\x74\x72\x6f\x6b\x65\x2d\x6c\x69\
-\x6e\x65\x63\x61\x70\x3d\x27\x72\x6f\x75\x6e\x64\x27\x20\x73\x74\
-\x72\x6f\x6b\x65\x2d\x6c\x69\x6e\x65\x6a\x6f\x69\x6e\x3d\x27\x72\
-\x6f\x75\x6e\x64\x27\x20\x73\x74\x72\x6f\x6b\x65\x2d\x6d\x69\x74\
-\x65\x72\x6c\x69\x6d\x69\x74\x3d\x27\x31\x30\x2e\x30\x33\x37\x35\
-\x27\x20\x73\x74\x72\x6f\x6b\x65\x2d\x77\x69\x64\x74\x68\x3d\x27\
-\x32\x2e\x35\x30\x39\x33\x37\x27\x2f\x3e\x0a\x3c\x2f\x67\x3e\x0a\
-\x3c\x67\x20\x74\x72\x61\x6e\x73\x66\x6f\x72\x6d\x3d\x27\x6d\x61\
-\x74\x72\x69\x78\x28\x30\x2e\x39\x39\x36\x32\x36\x34\x20\x30\x20\
-\x30\x20\x30\x2e\x39\x39\x36\x32\x36\x34\x20\x35\x38\x2e\x34\x36\
-\x36\x39\x20\x31\x31\x37\x2e\x38\x35\x38\x29\x27\x3e\x0a\x3c\x63\
-\x69\x72\x63\x6c\x65\x20\x63\x78\x3d\x27\x33\x2e\x39\x35\x37\x33\
-\x35\x27\x20\x63\x79\x3d\x27\x2d\x33\x32\x2e\x31\x32\x27\x20\x66\
-\x69\x6c\x6c\x3d\x27\x23\x30\x30\x30\x30\x30\x30\x27\x20\x72\x3d\
-\x27\x36\x2e\x30\x32\x32\x35\x27\x2f\x3e\x0a\x3c\x2f\x67\x3e\x0a\
-\x3c\x67\x20\x74\x72\x61\x6e\x73\x66\x6f\x72\x6d\x3d\x27\x6d\x61\
-\x74\x72\x69\x78\x28\x30\x2e\x39\x39\x36\x32\x36\x34\x20\x30\x20\
-\x30\x20\x30\x2e\x39\x39\x36\x32\x36\x34\x20\x35\x38\x2e\x34\x36\
-\x36\x39\x20\x31\x31\x37\x2e\x38\x35\x38\x29\x27\x3e\x0a\x3c\x63\
-\x69\x72\x63\x6c\x65\x20\x63\x78\x3d\x27\x31\x31\x2e\x39\x30\x33\
-\x36\x27\x20\x63\x79\x3d\x27\x2d\x35\x31\x2e\x33\x30\x33\x39\x27\
-\x20\x66\x69\x6c\x6c\x3d\x27\x23\x30\x30\x30\x30\x30\x30\x27\x20\
-\x72\x3d\x27\x36\x2e\x30\x32\x32\x35\x27\x2f\x3e\x0a\x3c\x2f\x67\
-\x3e\x0a\x3c\x67\x20\x74\x72\x61\x6e\x73\x66\x6f\x72\x6d\x3d\x27\
-\x6d\x61\x74\x72\x69\x78\x28\x30\x2e\x39\x39\x36\x32\x36\x34\x20\
-\x30\x20\x30\x20\x30\x2e\x39\x39\x36\x32\x36\x34\x20\x35\x38\x2e\
-\x34\x36\x36\x39\x20\x31\x31\x37\x2e\x38\x35\x38\x29\x27\x3e\x0a\
-\x3c\x63\x69\x72\x63\x6c\x65\x20\x63\x78\x3d\x27\x35\x36\x2e\x31\
-\x35\x32\x33\x27\x20\x63\x79\x3d\x27\x2d\x34\x32\x2e\x35\x30\x32\
-\x32\x27\x20\x66\x69\x6c\x6c\x3d\x27\x23\x30\x30\x30\x30\x30\x30\
-\x27\x20\x72\x3d\x27\x36\x2e\x30\x32\x32\x35\x27\x2f\x3e\x0a\x3c\
-\x2f\x67\x3e\x0a\x3c\x67\x20\x74\x72\x61\x6e\x73\x66\x6f\x72\x6d\
-\x3d\x27\x6d\x61\x74\x72\x69\x78\x28\x30\x2e\x39\x39\x36\x32\x36\
-\x34\x20\x30\x20\x30\x20\x30\x2e\x39\x39\x36\x32\x36\x34\x20\x35\
-\x38\x2e\x34\x36\x36\x39\x20\x31\x31\x37\x2e\x38\x35\x38\x29\x27\
-\x3e\x0a\x3c\x63\x69\x72\x63\x6c\x65\x20\x63\x78\x3d\x27\x34\x30\
-\x2e\x36\x37\x39\x34\x27\x20\x63\x79\x3d\x27\x2d\x32\x32\x2e\x35\
-\x32\x38\x31\x27\x20\x66\x69\x6c\x6c\x3d\x27\x23\x30\x30\x30\x30\
-\x30\x30\x27\x20\x72\x3d\x27\x36\x2e\x30\x32\x32\x35\x27\x2f\x3e\
-\x0a\x3c\x2f\x67\x3e\x0a\x3c\x2f\x67\x3e\x0a\x3c\x2f\x73\x76\x67\
-\x3e\
"
qt_resource_name = b"\
@@ -2384,235 +2384,235 @@
\x00\x6f\xa6\x53\
\x00\x69\
\x00\x63\x00\x6f\x00\x6e\x00\x73\
-\x00\x1d\
-\x06\xec\xf4\xc7\
+\x00\x1b\
+\x0e\xb5\x68\xe7\
+\x00\x61\
+\x00\x6e\x00\x64\x00\x72\x00\x6f\x00\x69\x00\x64\x00\x2d\x00\x72\x00\x61\x00\x64\x00\x69\x00\x6f\x00\x2d\x00\x62\x00\x75\x00\x74\
+\x00\x74\x00\x6f\x00\x6e\x00\x2d\x00\x6f\x00\x6e\x00\x2e\x00\x73\x00\x76\x00\x67\
+\x00\x10\
+\x08\x89\xfa\x47\
\x00\x63\
-\x00\x68\x00\x65\x00\x76\x00\x72\x00\x6f\x00\x6e\x00\x2d\x00\x77\x00\x69\x00\x74\x00\x68\x00\x2d\x00\x63\x00\x69\x00\x72\x00\x63\
-\x00\x6c\x00\x65\x00\x2d\x00\x72\x00\x69\x00\x67\x00\x68\x00\x74\x00\x2e\x00\x73\x00\x76\x00\x67\
+\x00\x65\x00\x6e\x00\x74\x00\x65\x00\x72\x00\x6f\x00\x72\x00\x69\x00\x67\x00\x69\x00\x6e\x00\x2e\x00\x73\x00\x76\x00\x67\
+\x00\x09\
+\x0b\x9e\x89\x07\
+\x00\x63\
+\x00\x68\x00\x65\x00\x63\x00\x6b\x00\x2e\x00\x73\x00\x76\x00\x67\
+\x00\x12\
+\x08\x79\x97\xe7\
+\x00\x61\
+\x00\x6e\x00\x64\x00\x72\x00\x6f\x00\x69\x00\x64\x00\x2d\x00\x63\x00\x61\x00\x6d\x00\x65\x00\x72\x00\x61\x00\x2e\x00\x73\x00\x76\
+\x00\x67\
+\x00\x0d\
+\x05\x20\xce\x87\
+\x00\x6f\
+\x00\x70\x00\x65\x00\x6e\x00\x63\x00\x75\x00\x72\x00\x76\x00\x65\x00\x2e\x00\x73\x00\x76\x00\x67\
+\x00\x0f\
+\x07\x0e\xc4\x87\
+\x00\x6f\
+\x00\x70\x00\x65\x00\x6e\x00\x70\x00\x6f\x00\x6c\x00\x79\x00\x67\x00\x6f\x00\x6e\x00\x2e\x00\x73\x00\x76\x00\x67\
\x00\x0a\
\x0a\x2d\x1b\xc7\
\x00\x63\
\x00\x69\x00\x72\x00\x63\x00\x6c\x00\x65\x00\x2e\x00\x73\x00\x76\x00\x67\
+\x00\x16\
+\x01\xfb\x76\x27\
+\x00\x61\
+\x00\x6e\x00\x64\x00\x72\x00\x6f\x00\x69\x00\x64\x00\x2d\x00\x61\x00\x72\x00\x72\x00\x6f\x00\x77\x00\x2d\x00\x62\x00\x61\x00\x63\
+\x00\x6b\x00\x2e\x00\x73\x00\x76\x00\x67\
+\x00\x0e\
+\x05\xed\x38\x67\
+\x00\x61\
+\x00\x72\x00\x72\x00\x6f\x00\x77\x00\x2d\x00\x6d\x00\x6f\x00\x76\x00\x65\x00\x2e\x00\x73\x00\x76\x00\x67\
+\x00\x11\
+\x0c\xa7\xc7\x47\
+\x00\x63\
+\x00\x6c\x00\x6f\x00\x73\x00\x65\x00\x64\x00\x70\x00\x6f\x00\x6c\x00\x79\x00\x67\x00\x6f\x00\x6e\x00\x2e\x00\x73\x00\x76\x00\x67\
+\
\x00\x0a\
\x0f\x68\x53\xe7\
\x00\x61\
\x00\x6e\x00\x63\x00\x68\x00\x6f\x00\x72\x00\x2e\x00\x73\x00\x76\x00\x67\
-\x00\x0f\
-\x09\x76\x60\xc7\
-\x00\x63\
-\x00\x6c\x00\x6f\x00\x73\x00\x65\x00\x2d\x00\x72\x00\x6f\x00\x75\x00\x6e\x00\x64\x00\x2e\x00\x73\x00\x76\x00\x67\
+\x00\x10\
+\x06\xe3\xaf\xe7\
+\x00\x61\
+\x00\x6e\x00\x64\x00\x72\x00\x6f\x00\x69\x00\x64\x00\x2d\x00\x68\x00\x61\x00\x6e\x00\x64\x00\x2e\x00\x73\x00\x76\x00\x67\
+\x00\x13\
+\x03\x24\x75\x47\
+\x00\x61\
+\x00\x6e\x00\x64\x00\x72\x00\x6f\x00\x69\x00\x64\x00\x2d\x00\x72\x00\x65\x00\x66\x00\x72\x00\x65\x00\x73\x00\x68\x00\x2e\x00\x73\
+\x00\x76\x00\x67\
+\x00\x10\
+\x08\xe4\xaf\x47\
+\x00\x61\
+\x00\x6e\x00\x64\x00\x72\x00\x6f\x00\x69\x00\x64\x00\x2d\x00\x64\x00\x6f\x00\x6e\x00\x65\x00\x2e\x00\x73\x00\x76\x00\x67\
+\x00\x10\
+\x0c\x57\x65\x47\
+\x00\x61\
+\x00\x72\x00\x72\x00\x6f\x00\x77\x00\x2d\x00\x72\x00\x65\x00\x73\x00\x69\x00\x7a\x00\x65\x00\x2e\x00\x73\x00\x76\x00\x67\
\x00\x17\
\x06\xc6\x02\xa7\
\x00\x74\
\x00\x72\x00\x69\x00\x61\x00\x6e\x00\x67\x00\x6c\x00\x65\x00\x2d\x00\x73\x00\x74\x00\x72\x00\x6f\x00\x6b\x00\x65\x00\x64\x00\x2d\
\x00\x31\x00\x35\x00\x2e\x00\x73\x00\x76\x00\x67\
-\x00\x0a\
-\x01\xca\x6d\x87\
-\x00\x62\
-\x00\x75\x00\x63\x00\x6b\x00\x65\x00\x74\x00\x2e\x00\x73\x00\x76\x00\x67\
-\x00\x1b\
-\x0e\xb5\x68\xe7\
+\x00\x1c\
+\x08\x8a\x79\x07\
\x00\x61\
\x00\x6e\x00\x64\x00\x72\x00\x6f\x00\x69\x00\x64\x00\x2d\x00\x72\x00\x61\x00\x64\x00\x69\x00\x6f\x00\x2d\x00\x62\x00\x75\x00\x74\
-\x00\x74\x00\x6f\x00\x6e\x00\x2d\x00\x6f\x00\x6e\x00\x2e\x00\x73\x00\x76\x00\x67\
+\x00\x74\x00\x6f\x00\x6e\x00\x2d\x00\x6f\x00\x66\x00\x66\x00\x2e\x00\x73\x00\x76\x00\x67\
+\x00\x08\
+\x08\xc8\x55\xe7\
+\x00\x73\
+\x00\x61\x00\x76\x00\x65\x00\x2e\x00\x73\x00\x76\x00\x67\
+\x00\x08\
+\x0b\x07\x57\xa7\
+\x00\x65\
+\x00\x64\x00\x69\x00\x74\x00\x2e\x00\x73\x00\x76\x00\x67\
+\x00\x19\
+\x0a\x43\x45\xc7\
+\x00\x61\
+\x00\x6e\x00\x64\x00\x72\x00\x6f\x00\x69\x00\x64\x00\x2d\x00\x61\x00\x72\x00\x72\x00\x6f\x00\x77\x00\x2d\x00\x66\x00\x6f\x00\x72\
+\x00\x77\x00\x61\x00\x72\x00\x64\x00\x2e\x00\x73\x00\x76\x00\x67\
+\x00\x12\
+\x0c\x5e\xd4\xa7\
+\x00\x61\
+\x00\x6e\x00\x64\x00\x72\x00\x6f\x00\x69\x00\x64\x00\x2d\x00\x6c\x00\x6f\x00\x63\x00\x61\x00\x74\x00\x65\x00\x2e\x00\x73\x00\x76\
+\x00\x67\
+\x00\x17\
+\x07\x87\x48\x27\
+\x00\x61\
+\x00\x6e\x00\x64\x00\x72\x00\x6f\x00\x69\x00\x64\x00\x2d\x00\x66\x00\x6f\x00\x6c\x00\x64\x00\x65\x00\x72\x00\x2d\x00\x6f\x00\x70\
+\x00\x65\x00\x6e\x00\x2e\x00\x73\x00\x76\x00\x67\
+\x00\x1d\
+\x06\xec\xf4\xc7\
+\x00\x63\
+\x00\x68\x00\x65\x00\x76\x00\x72\x00\x6f\x00\x6e\x00\x2d\x00\x77\x00\x69\x00\x74\x00\x68\x00\x2d\x00\x63\x00\x69\x00\x72\x00\x63\
+\x00\x6c\x00\x65\x00\x2d\x00\x72\x00\x69\x00\x67\x00\x68\x00\x74\x00\x2e\x00\x73\x00\x76\x00\x67\
\x00\x11\
\x01\x60\xbc\x47\
\x00\x73\
\x00\x6f\x00\x63\x00\x69\x00\x61\x00\x6c\x00\x2d\x00\x70\x00\x79\x00\x74\x00\x68\x00\x6f\x00\x6e\x00\x2e\x00\x73\x00\x76\x00\x67\
\
-\x00\x14\
-\x0f\xa5\xe0\xc7\
-\x00\x6d\
-\x00\x61\x00\x67\x00\x6e\x00\x69\x00\x66\x00\x79\x00\x69\x00\x6e\x00\x67\x00\x2d\x00\x67\x00\x6c\x00\x61\x00\x73\x00\x73\x00\x2e\
-\x00\x73\x00\x76\x00\x67\
-\x00\x08\
-\x05\xa8\x57\x87\
-\x00\x63\
-\x00\x6f\x00\x64\x00\x65\x00\x2e\x00\x73\x00\x76\x00\x67\
-\x00\x13\
-\x03\x24\x75\x47\
-\x00\x61\
-\x00\x6e\x00\x64\x00\x72\x00\x6f\x00\x69\x00\x64\x00\x2d\x00\x72\x00\x65\x00\x66\x00\x72\x00\x65\x00\x73\x00\x68\x00\x2e\x00\x73\
-\x00\x76\x00\x67\
+\x00\x07\
+\x0c\xf8\x5a\x07\
+\x00\x65\
+\x00\x79\x00\x65\x00\x2e\x00\x73\x00\x76\x00\x67\
\x00\x12\
\x08\x55\xef\xc7\
\x00\x61\
\x00\x6e\x00\x64\x00\x72\x00\x6f\x00\x69\x00\x64\x00\x2d\x00\x64\x00\x65\x00\x6c\x00\x65\x00\x74\x00\x65\x00\x2e\x00\x73\x00\x76\
\x00\x67\
-\x00\x0f\
-\x04\xf2\xa7\x87\
-\x00\x63\
-\x00\x6c\x00\x6f\x00\x73\x00\x65\x00\x64\x00\x63\x00\x75\x00\x72\x00\x76\x00\x65\x00\x2e\x00\x73\x00\x76\x00\x67\
-\x00\x12\
-\x04\xb2\x21\x47\
-\x00\x61\
-\x00\x6e\x00\x64\x00\x72\x00\x6f\x00\x69\x00\x64\x00\x2d\x00\x65\x00\x78\x00\x70\x00\x61\x00\x6e\x00\x64\x00\x2e\x00\x73\x00\x76\
-\x00\x67\
-\x00\x16\
-\x01\xfb\x76\x27\
-\x00\x61\
-\x00\x6e\x00\x64\x00\x72\x00\x6f\x00\x69\x00\x64\x00\x2d\x00\x61\x00\x72\x00\x72\x00\x6f\x00\x77\x00\x2d\x00\x62\x00\x61\x00\x63\
-\x00\x6b\x00\x2e\x00\x73\x00\x76\x00\x67\
+\x00\x08\
+\x0c\xf7\x55\x87\
+\x00\x74\
+\x00\x65\x00\x78\x00\x74\x00\x2e\x00\x73\x00\x76\x00\x67\
\x00\x19\
\x0f\xef\x7b\xe7\
\x00\x61\
\x00\x6e\x00\x64\x00\x72\x00\x6f\x00\x69\x00\x64\x00\x2d\x00\x63\x00\x6f\x00\x6c\x00\x6f\x00\x72\x00\x2d\x00\x70\x00\x61\x00\x6c\
\x00\x65\x00\x74\x00\x74\x00\x65\x00\x2e\x00\x73\x00\x76\x00\x67\
-\x00\x19\
-\x0a\x43\x45\xc7\
-\x00\x61\
-\x00\x6e\x00\x64\x00\x72\x00\x6f\x00\x69\x00\x64\x00\x2d\x00\x61\x00\x72\x00\x72\x00\x6f\x00\x77\x00\x2d\x00\x66\x00\x6f\x00\x72\
-\x00\x77\x00\x61\x00\x72\x00\x64\x00\x2e\x00\x73\x00\x76\x00\x67\
-\x00\x17\
-\x07\x87\x48\x27\
-\x00\x61\
-\x00\x6e\x00\x64\x00\x72\x00\x6f\x00\x69\x00\x64\x00\x2d\x00\x66\x00\x6f\x00\x6c\x00\x64\x00\x65\x00\x72\x00\x2d\x00\x6f\x00\x70\
-\x00\x65\x00\x6e\x00\x2e\x00\x73\x00\x76\x00\x67\
\x00\x10\
\x04\xa9\x22\xc7\
\x00\x66\
\x00\x69\x00\x6c\x00\x6c\x00\x65\x00\x64\x00\x62\x00\x75\x00\x63\x00\x6b\x00\x65\x00\x74\x00\x2e\x00\x73\x00\x76\x00\x67\
-\x00\x0f\
-\x07\x0e\xc4\x87\
-\x00\x6f\
-\x00\x70\x00\x65\x00\x6e\x00\x70\x00\x6f\x00\x6c\x00\x79\x00\x67\x00\x6f\x00\x6e\x00\x2e\x00\x73\x00\x76\x00\x67\
-\x00\x0e\
-\x05\xed\x38\x67\
-\x00\x61\
-\x00\x72\x00\x72\x00\x6f\x00\x77\x00\x2d\x00\x6d\x00\x6f\x00\x76\x00\x65\x00\x2e\x00\x73\x00\x76\x00\x67\
-\x00\x1c\
-\x08\x8a\x79\x07\
-\x00\x61\
-\x00\x6e\x00\x64\x00\x72\x00\x6f\x00\x69\x00\x64\x00\x2d\x00\x72\x00\x61\x00\x64\x00\x69\x00\x6f\x00\x2d\x00\x62\x00\x75\x00\x74\
-\x00\x74\x00\x6f\x00\x6e\x00\x2d\x00\x6f\x00\x66\x00\x66\x00\x2e\x00\x73\x00\x76\x00\x67\
-\x00\x08\
-\x0b\x07\x57\xa7\
-\x00\x65\
-\x00\x64\x00\x69\x00\x74\x00\x2e\x00\x73\x00\x76\x00\x67\
-\x00\x11\
-\x0c\xa7\xc7\x47\
-\x00\x63\
-\x00\x6c\x00\x6f\x00\x73\x00\x65\x00\x64\x00\x70\x00\x6f\x00\x6c\x00\x79\x00\x67\x00\x6f\x00\x6e\x00\x2e\x00\x73\x00\x76\x00\x67\
-\
-\x00\x0e\
-\x0f\xcb\xd5\xc7\
-\x00\x70\
-\x00\x6c\x00\x75\x00\x73\x00\x2d\x00\x72\x00\x6f\x00\x75\x00\x6e\x00\x64\x00\x2e\x00\x73\x00\x76\x00\x67\
-\x00\x09\
-\x0b\x9e\x89\x07\
-\x00\x63\
-\x00\x68\x00\x65\x00\x63\x00\x6b\x00\x2e\x00\x73\x00\x76\x00\x67\
-\x00\x1c\
-\x04\x66\xe1\x67\
-\x00\x63\
-\x00\x68\x00\x65\x00\x76\x00\x72\x00\x6f\x00\x6e\x00\x2d\x00\x77\x00\x69\x00\x74\x00\x68\x00\x2d\x00\x63\x00\x69\x00\x72\x00\x63\
-\x00\x6c\x00\x65\x00\x2d\x00\x6c\x00\x65\x00\x66\x00\x74\x00\x2e\x00\x73\x00\x76\x00\x67\
\x00\x12\
-\x08\x79\x97\xe7\
+\x04\xb2\x21\x47\
\x00\x61\
-\x00\x6e\x00\x64\x00\x72\x00\x6f\x00\x69\x00\x64\x00\x2d\x00\x63\x00\x61\x00\x6d\x00\x65\x00\x72\x00\x61\x00\x2e\x00\x73\x00\x76\
+\x00\x6e\x00\x64\x00\x72\x00\x6f\x00\x69\x00\x64\x00\x2d\x00\x65\x00\x78\x00\x70\x00\x61\x00\x6e\x00\x64\x00\x2e\x00\x73\x00\x76\
\x00\x67\
+\x00\x08\
+\x08\xf7\x57\x07\
+\x00\x67\
+\x00\x72\x00\x69\x00\x64\x00\x2e\x00\x73\x00\x76\x00\x67\
\x00\x11\
\x0c\xdb\x38\xe7\
\x00\x61\
\x00\x6e\x00\x64\x00\x72\x00\x6f\x00\x69\x00\x64\x00\x2d\x00\x63\x00\x6c\x00\x6f\x00\x73\x00\x65\x00\x2e\x00\x73\x00\x76\x00\x67\
\
-\x00\x10\
-\x08\xe4\xaf\x47\
-\x00\x61\
-\x00\x6e\x00\x64\x00\x72\x00\x6f\x00\x69\x00\x64\x00\x2d\x00\x64\x00\x6f\x00\x6e\x00\x65\x00\x2e\x00\x73\x00\x76\x00\x67\
-\x00\x07\
-\x0c\xf8\x5a\x07\
-\x00\x65\
-\x00\x79\x00\x65\x00\x2e\x00\x73\x00\x76\x00\x67\
+\x00\x0f\
+\x04\xf2\xa7\x87\
+\x00\x63\
+\x00\x6c\x00\x6f\x00\x73\x00\x65\x00\x64\x00\x63\x00\x75\x00\x72\x00\x76\x00\x65\x00\x2e\x00\x73\x00\x76\x00\x67\
+\x00\x14\
+\x0f\xa5\xe0\xc7\
+\x00\x6d\
+\x00\x61\x00\x67\x00\x6e\x00\x69\x00\x66\x00\x79\x00\x69\x00\x6e\x00\x67\x00\x2d\x00\x67\x00\x6c\x00\x61\x00\x73\x00\x73\x00\x2e\
+\x00\x73\x00\x76\x00\x67\
\x00\x08\
-\x08\xf7\x57\x07\
-\x00\x67\
-\x00\x72\x00\x69\x00\x64\x00\x2e\x00\x73\x00\x76\x00\x67\
-\x00\x10\
-\x0c\x57\x65\x47\
-\x00\x61\
-\x00\x72\x00\x72\x00\x6f\x00\x77\x00\x2d\x00\x72\x00\x65\x00\x73\x00\x69\x00\x7a\x00\x65\x00\x2e\x00\x73\x00\x76\x00\x67\
+\x05\xa8\x57\x87\
+\x00\x63\
+\x00\x6f\x00\x64\x00\x65\x00\x2e\x00\x73\x00\x76\x00\x67\
+\x00\x0a\
+\x01\xca\x6d\x87\
+\x00\x62\
+\x00\x75\x00\x63\x00\x6b\x00\x65\x00\x74\x00\x2e\x00\x73\x00\x76\x00\x67\
+\x00\x0f\
+\x09\x76\x60\xc7\
+\x00\x63\
+\x00\x6c\x00\x6f\x00\x73\x00\x65\x00\x2d\x00\x72\x00\x6f\x00\x75\x00\x6e\x00\x64\x00\x2e\x00\x73\x00\x76\x00\x67\
\x00\x15\
\x0f\xc4\x59\xe7\
\x00\x73\
\x00\x75\x00\x62\x00\x64\x00\x69\x00\x72\x00\x65\x00\x63\x00\x74\x00\x6f\x00\x72\x00\x79\x00\x2d\x00\x6c\x00\x65\x00\x66\x00\x74\
\x00\x2e\x00\x73\x00\x76\x00\x67\
-\x00\x12\
-\x0c\x5e\xd4\xa7\
-\x00\x61\
-\x00\x6e\x00\x64\x00\x72\x00\x6f\x00\x69\x00\x64\x00\x2d\x00\x6c\x00\x6f\x00\x63\x00\x61\x00\x74\x00\x65\x00\x2e\x00\x73\x00\x76\
-\x00\x67\
-\x00\x08\
-\x08\xc8\x55\xe7\
-\x00\x73\
-\x00\x61\x00\x76\x00\x65\x00\x2e\x00\x73\x00\x76\x00\x67\
-\x00\x10\
-\x08\x89\xfa\x47\
+\x00\x0e\
+\x0f\xcb\xd5\xc7\
+\x00\x70\
+\x00\x6c\x00\x75\x00\x73\x00\x2d\x00\x72\x00\x6f\x00\x75\x00\x6e\x00\x64\x00\x2e\x00\x73\x00\x76\x00\x67\
+\x00\x1c\
+\x04\x66\xe1\x67\
\x00\x63\
-\x00\x65\x00\x6e\x00\x74\x00\x65\x00\x72\x00\x6f\x00\x72\x00\x69\x00\x67\x00\x69\x00\x6e\x00\x2e\x00\x73\x00\x76\x00\x67\
-\x00\x10\
-\x06\xe3\xaf\xe7\
-\x00\x61\
-\x00\x6e\x00\x64\x00\x72\x00\x6f\x00\x69\x00\x64\x00\x2d\x00\x68\x00\x61\x00\x6e\x00\x64\x00\x2e\x00\x73\x00\x76\x00\x67\
+\x00\x68\x00\x65\x00\x76\x00\x72\x00\x6f\x00\x6e\x00\x2d\x00\x77\x00\x69\x00\x74\x00\x68\x00\x2d\x00\x63\x00\x69\x00\x72\x00\x63\
+\x00\x6c\x00\x65\x00\x2d\x00\x6c\x00\x65\x00\x66\x00\x74\x00\x2e\x00\x73\x00\x76\x00\x67\
\x00\x0a\
\x0a\xc8\x62\x67\
\x00\x63\
\x00\x65\x00\x6e\x00\x74\x00\x65\x00\x72\x00\x2e\x00\x73\x00\x76\x00\x67\
-\x00\x08\
-\x0c\xf7\x55\x87\
-\x00\x74\
-\x00\x65\x00\x78\x00\x74\x00\x2e\x00\x73\x00\x76\x00\x67\
-\x00\x0d\
-\x05\x20\xce\x87\
-\x00\x6f\
-\x00\x70\x00\x65\x00\x6e\x00\x63\x00\x75\x00\x72\x00\x76\x00\x65\x00\x2e\x00\x73\x00\x76\x00\x67\
"
qt_resource_struct_v1 = b"\
\x00\x00\x00\x00\x00\x02\x00\x00\x00\x01\x00\x00\x00\x01\
\x00\x00\x00\x00\x00\x02\x00\x00\x00\x29\x00\x00\x00\x02\
-\x00\x00\x01\x32\x00\x00\x00\x00\x00\x01\x00\x00\x19\x8d\
-\x00\x00\x00\xdc\x00\x00\x00\x00\x00\x01\x00\x00\x10\x65\
-\x00\x00\x02\x42\x00\x00\x00\x00\x00\x01\x00\x00\x37\x6a\
-\x00\x00\x01\x9e\x00\x00\x00\x00\x00\x01\x00\x00\x29\x87\
-\x00\x00\x04\x3a\x00\x00\x00\x00\x00\x01\x00\x00\x5e\xed\
-\x00\x00\x03\x18\x00\x01\x00\x00\x00\x01\x00\x00\x44\xed\
-\x00\x00\x02\x18\x00\x00\x00\x00\x00\x01\x00\x00\x34\x30\
-\x00\x00\x01\xf4\x00\x00\x00\x00\x00\x01\x00\x00\x2f\x57\
-\x00\x00\x06\x2c\x00\x00\x00\x00\x00\x01\x00\x00\x89\xa2\
-\x00\x00\x01\x88\x00\x00\x00\x00\x00\x01\x00\x00\x24\xd9\
-\x00\x00\x03\x62\x00\x00\x00\x00\x00\x01\x00\x00\x4b\x53\
-\x00\x00\x00\xa8\x00\x00\x00\x00\x00\x01\x00\x00\x0b\x97\
-\x00\x00\x05\xd6\x00\x00\x00\x00\x00\x01\x00\x00\x7f\x34\
+\x00\x00\x03\xba\x00\x00\x00\x00\x00\x01\x00\x00\x4e\x94\
+\x00\x00\x05\x64\x00\x00\x00\x00\x00\x01\x00\x00\x7a\x42\
+\x00\x00\x01\x12\x00\x00\x00\x00\x00\x01\x00\x00\x19\x83\
+\x00\x00\x01\xce\x00\x00\x00\x00\x00\x01\x00\x00\x2a\x5e\
+\x00\x00\x05\xf4\x00\x00\x00\x00\x00\x01\x00\x00\x86\xcf\
+\x00\x00\x04\x6e\x00\x01\x00\x00\x00\x01\x00\x00\x62\xf8\
+\x00\x00\x04\x94\x00\x00\x00\x00\x00\x01\x00\x00\x65\x1d\
+\x00\x00\x04\xfc\x00\x00\x00\x00\x00\x01\x00\x00\x6c\xf3\
+\x00\x00\x00\xb4\x00\x00\x00\x00\x00\x01\x00\x00\x0d\xa6\
+\x00\x00\x05\x4e\x00\x00\x00\x00\x00\x01\x00\x00\x75\x94\
+\x00\x00\x01\x44\x00\x00\x00\x00\x00\x01\x00\x00\x1c\x04\
+\x00\x00\x02\x46\x00\x00\x00\x00\x00\x01\x00\x00\x32\x88\
+\x00\x00\x01\xa8\x00\x00\x00\x00\x00\x01\x00\x00\x24\x90\
+\x00\x00\x03\x7a\x00\x00\x00\x00\x00\x01\x00\x00\x4a\xaa\
+\x00\x00\x00\xd4\x00\x00\x00\x00\x00\x01\x00\x00\x12\x4c\
+\x00\x00\x03\x46\x00\x00\x00\x00\x00\x01\x00\x00\x47\x54\
+\x00\x00\x03\xf6\x00\x00\x00\x00\x00\x01\x00\x00\x5a\x07\
+\x00\x00\x00\x8a\x00\x00\x00\x00\x00\x01\x00\x00\x0a\x80\
+\x00\x00\x00\x4c\x00\x00\x00\x00\x00\x01\x00\x00\x03\x50\
+\x00\x00\x02\x7a\x00\x00\x00\x00\x00\x01\x00\x00\x37\x56\
+\x00\x00\x02\xb8\x00\x00\x00\x00\x00\x01\x00\x00\x3a\x56\
+\x00\x00\x01\xfa\x00\x00\x00\x00\x00\x01\x00\x00\x2d\x88\
+\x00\x00\x04\xbe\x00\x01\x00\x00\x00\x01\x00\x00\x68\x57\
+\x00\x00\x05\x7e\x00\x00\x00\x00\x00\x01\x00\x00\x80\x1a\
+\x00\x00\x00\xf8\x00\x00\x00\x00\x00\x01\x00\x00\x16\x8d\
+\x00\x00\x02\xe4\x00\x00\x00\x00\x00\x01\x00\x00\x40\x6b\
+\x00\x00\x06\x32\x00\x00\x00\x00\x00\x01\x00\x00\x8a\xc8\
+\x00\x00\x02\xce\x00\x00\x00\x00\x00\x01\x00\x00\x3c\xfb\
+\x00\x00\x00\x72\x00\x00\x00\x00\x00\x01\x00\x00\x07\x70\
+\x00\x00\x02\x20\x00\x00\x00\x00\x00\x01\x00\x00\x30\x05\
+\x00\x00\x03\x1c\x00\x00\x00\x00\x00\x01\x00\x00\x42\xec\
+\x00\x00\x01\x66\x00\x00\x00\x00\x00\x01\x00\x00\x1e\xd1\
+\x00\x00\x04\xd4\x00\x00\x00\x00\x00\x01\x00\x00\x6a\x38\
+\x00\x00\x04\x20\x00\x00\x00\x00\x00\x01\x00\x00\x5c\xad\
+\x00\x00\x03\xe2\x00\x00\x00\x00\x00\x01\x00\x00\x56\x18\
\x00\x00\x00\x10\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\
-\x00\x00\x03\x3e\x00\x00\x00\x00\x00\x01\x00\x00\x47\x12\
-\x00\x00\x02\xe4\x00\x00\x00\x00\x00\x01\x00\x00\x41\x97\
-\x00\x00\x01\xca\x00\x00\x00\x00\x00\x01\x00\x00\x2c\xb1\
-\x00\x00\x04\x78\x00\x00\x00\x00\x00\x01\x00\x00\x62\xe6\
-\x00\x00\x05\xb0\x00\x00\x00\x00\x00\x01\x00\x00\x7b\x14\
-\x00\x00\x03\x84\x00\x00\x00\x00\x00\x01\x00\x00\x4e\x20\
-\x00\x00\x05\x9a\x00\x00\x00\x00\x00\x01\x00\x00\x78\x6f\
-\x00\x00\x04\xca\x00\x00\x00\x00\x00\x01\x00\x00\x68\xc7\
-\x00\x00\x05\x04\x00\x01\x00\x00\x00\x01\x00\x00\x6f\x33\
-\x00\x00\x00\x84\x00\x00\x00\x00\x00\x01\x00\x00\x08\x4d\
-\x00\x00\x00\x50\x00\x00\x00\x00\x00\x01\x00\x00\x03\xea\
-\x00\x00\x02\xac\x00\x00\x00\x00\x00\x01\x00\x00\x3f\x16\
-\x00\x00\x05\xfc\x00\x00\x00\x00\x00\x01\x00\x00\x85\x02\
-\x00\x00\x03\xc2\x00\x00\x00\x00\x00\x01\x00\x00\x51\x20\
-\x00\x00\x04\x22\x00\x00\x00\x00\x00\x01\x00\x00\x5b\xdd\
-\x00\x00\x05\x1a\x00\x00\x00\x00\x00\x01\x00\x00\x71\x14\
-\x00\x00\x05\x70\x00\x00\x00\x00\x00\x01\x00\x00\x74\x07\
-\x00\x00\x03\xd8\x00\x00\x00\x00\x00\x01\x00\x00\x54\x90\
-\x00\x00\x04\xa2\x00\x00\x00\x00\x00\x01\x00\x00\x66\x0c\
-\x00\x00\x06\x16\x00\x00\x00\x00\x00\x01\x00\x00\x88\x82\
-\x00\x00\x04\xf0\x00\x00\x00\x00\x00\x01\x00\x00\x6b\x44\
-\x00\x00\x00\xf6\x00\x00\x00\x00\x00\x01\x00\x00\x16\x3d\
-\x00\x00\x00\x6a\x00\x00\x00\x00\x00\x01\x00\x00\x06\xe0\
-\x00\x00\x01\x5a\x00\x00\x00\x00\x00\x01\x00\x00\x21\x11\
-\x00\x00\x05\x40\x00\x00\x00\x00\x00\x01\x00\x00\x73\x97\
-\x00\x00\x04\x00\x00\x00\x00\x00\x00\x01\x00\x00\x58\xe2\
-\x00\x00\x02\x74\x00\x00\x00\x00\x00\x01\x00\x00\x39\xeb\
+\x00\x00\x01\x8e\x00\x00\x00\x00\x00\x01\x00\x00\x23\x23\
+\x00\x00\x05\x20\x00\x00\x00\x00\x00\x01\x00\x00\x71\xcc\
+\x00\x00\x05\xa2\x00\x00\x00\x00\x00\x01\x00\x00\x83\x64\
+\x00\x00\x05\xd2\x00\x00\x00\x00\x00\x01\x00\x00\x83\xd4\
+\x00\x00\x04\x36\x00\x00\x00\x00\x00\x01\x00\x00\x5d\xcd\
"
qt_resource_struct_v2 = b"\
@@ -2620,88 +2620,88 @@
\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x02\x00\x00\x00\x29\x00\x00\x00\x02\
\x00\x00\x00\x00\x00\x00\x00\x00\
-\x00\x00\x01\x32\x00\x00\x00\x00\x00\x01\x00\x00\x19\x8d\
-\x00\x00\x01\x71\x14\x51\x77\x39\
-\x00\x00\x00\xdc\x00\x00\x00\x00\x00\x01\x00\x00\x10\x65\
-\x00\x00\x01\x71\x14\x51\x77\x38\
-\x00\x00\x02\x42\x00\x00\x00\x00\x00\x01\x00\x00\x37\x6a\
-\x00\x00\x01\x71\x14\x51\x77\x38\
-\x00\x00\x01\x9e\x00\x00\x00\x00\x00\x01\x00\x00\x29\x87\
-\x00\x00\x01\x71\x14\x51\x77\x38\
-\x00\x00\x04\x3a\x00\x00\x00\x00\x00\x01\x00\x00\x5e\xed\
-\x00\x00\x01\x71\x14\x51\x77\x38\
-\x00\x00\x03\x18\x00\x01\x00\x00\x00\x01\x00\x00\x44\xed\
-\x00\x00\x01\x71\x14\x51\x77\x38\
-\x00\x00\x02\x18\x00\x00\x00\x00\x00\x01\x00\x00\x34\x30\
-\x00\x00\x01\x71\x14\x51\x77\x38\
-\x00\x00\x01\xf4\x00\x00\x00\x00\x00\x01\x00\x00\x2f\x57\
-\x00\x00\x01\x71\x14\x51\x77\x38\
-\x00\x00\x06\x2c\x00\x00\x00\x00\x00\x01\x00\x00\x89\xa2\
-\x00\x00\x01\x71\x14\x51\x77\x39\
-\x00\x00\x01\x88\x00\x00\x00\x00\x00\x01\x00\x00\x24\xd9\
-\x00\x00\x01\x71\x14\x51\x77\x38\
-\x00\x00\x03\x62\x00\x00\x00\x00\x00\x01\x00\x00\x4b\x53\
-\x00\x00\x01\x71\x14\x51\x77\x38\
-\x00\x00\x00\xa8\x00\x00\x00\x00\x00\x01\x00\x00\x0b\x97\
-\x00\x00\x01\x71\x14\x51\x77\x39\
-\x00\x00\x05\xd6\x00\x00\x00\x00\x00\x01\x00\x00\x7f\x34\
-\x00\x00\x01\x71\x14\x51\x77\x38\
+\x00\x00\x03\xba\x00\x00\x00\x00\x00\x01\x00\x00\x4e\x94\
+\x00\x00\x01\x77\xb9\x14\x85\x4b\
+\x00\x00\x05\x64\x00\x00\x00\x00\x00\x01\x00\x00\x7a\x42\
+\x00\x00\x01\x77\xb9\x14\x85\x4a\
+\x00\x00\x01\x12\x00\x00\x00\x00\x00\x01\x00\x00\x19\x83\
+\x00\x00\x01\x77\xb9\x14\x85\x49\
+\x00\x00\x01\xce\x00\x00\x00\x00\x00\x01\x00\x00\x2a\x5e\
+\x00\x00\x01\x77\xb9\x14\x85\x4a\
+\x00\x00\x05\xf4\x00\x00\x00\x00\x00\x01\x00\x00\x86\xcf\
+\x00\x00\x01\x77\xb9\x14\x85\x4a\
+\x00\x00\x04\x6e\x00\x01\x00\x00\x00\x01\x00\x00\x62\xf8\
+\x00\x00\x01\x77\xb9\x14\x85\x4b\
+\x00\x00\x04\x94\x00\x00\x00\x00\x00\x01\x00\x00\x65\x1d\
+\x00\x00\x01\x77\xb9\x14\x85\x4a\
+\x00\x00\x04\xfc\x00\x00\x00\x00\x00\x01\x00\x00\x6c\xf3\
+\x00\x00\x01\x77\xb9\x14\x85\x4a\
+\x00\x00\x00\xb4\x00\x00\x00\x00\x00\x01\x00\x00\x0d\xa6\
+\x00\x00\x01\x77\xb9\x14\x85\x4b\
+\x00\x00\x05\x4e\x00\x00\x00\x00\x00\x01\x00\x00\x75\x94\
+\x00\x00\x01\x77\xb9\x14\x85\x4a\
+\x00\x00\x01\x44\x00\x00\x00\x00\x00\x01\x00\x00\x1c\x04\
+\x00\x00\x01\x77\xb9\x14\x85\x4a\
+\x00\x00\x02\x46\x00\x00\x00\x00\x00\x01\x00\x00\x32\x88\
+\x00\x00\x01\x77\xb9\x14\x85\x4b\
+\x00\x00\x01\xa8\x00\x00\x00\x00\x00\x01\x00\x00\x24\x90\
+\x00\x00\x01\x77\xb9\x14\x85\x4a\
+\x00\x00\x03\x7a\x00\x00\x00\x00\x00\x01\x00\x00\x4a\xaa\
+\x00\x00\x01\x77\xb9\x14\x85\x4a\
+\x00\x00\x00\xd4\x00\x00\x00\x00\x00\x01\x00\x00\x12\x4c\
+\x00\x00\x01\x77\xb9\x14\x85\x4b\
+\x00\x00\x03\x46\x00\x00\x00\x00\x00\x01\x00\x00\x47\x54\
+\x00\x00\x01\x77\xb9\x14\x85\x4a\
+\x00\x00\x03\xf6\x00\x00\x00\x00\x00\x01\x00\x00\x5a\x07\
+\x00\x00\x01\x77\xb9\x14\x85\x49\
+\x00\x00\x00\x8a\x00\x00\x00\x00\x00\x01\x00\x00\x0a\x80\
+\x00\x00\x01\x77\xb9\x14\x85\x49\
+\x00\x00\x00\x4c\x00\x00\x00\x00\x00\x01\x00\x00\x03\x50\
+\x00\x00\x01\x77\xb9\x14\x85\x4a\
+\x00\x00\x02\x7a\x00\x00\x00\x00\x00\x01\x00\x00\x37\x56\
+\x00\x00\x01\x77\xb9\x14\x85\x4a\
+\x00\x00\x02\xb8\x00\x00\x00\x00\x00\x01\x00\x00\x3a\x56\
+\x00\x00\x01\x77\xb9\x14\x85\x4b\
+\x00\x00\x01\xfa\x00\x00\x00\x00\x00\x01\x00\x00\x2d\x88\
+\x00\x00\x01\x77\xb9\x14\x85\x4a\
+\x00\x00\x04\xbe\x00\x01\x00\x00\x00\x01\x00\x00\x68\x57\
+\x00\x00\x01\x77\xb9\x14\x85\x4b\
+\x00\x00\x05\x7e\x00\x00\x00\x00\x00\x01\x00\x00\x80\x1a\
+\x00\x00\x01\x77\xb9\x14\x85\x4a\
+\x00\x00\x00\xf8\x00\x00\x00\x00\x00\x01\x00\x00\x16\x8d\
+\x00\x00\x01\x77\xb9\x14\x85\x4a\
+\x00\x00\x02\xe4\x00\x00\x00\x00\x00\x01\x00\x00\x40\x6b\
+\x00\x00\x01\x77\xb9\x14\x85\x49\
+\x00\x00\x06\x32\x00\x00\x00\x00\x00\x01\x00\x00\x8a\xc8\
+\x00\x00\x01\x77\xb9\x14\x85\x4a\
+\x00\x00\x02\xce\x00\x00\x00\x00\x00\x01\x00\x00\x3c\xfb\
+\x00\x00\x01\x77\xb9\x14\x85\x4b\
+\x00\x00\x00\x72\x00\x00\x00\x00\x00\x01\x00\x00\x07\x70\
+\x00\x00\x01\x77\xb9\x14\x85\x4a\
+\x00\x00\x02\x20\x00\x00\x00\x00\x00\x01\x00\x00\x30\x05\
+\x00\x00\x01\x77\xb9\x14\x85\x4a\
+\x00\x00\x03\x1c\x00\x00\x00\x00\x00\x01\x00\x00\x42\xec\
+\x00\x00\x01\x77\xb9\x14\x85\x4a\
+\x00\x00\x01\x66\x00\x00\x00\x00\x00\x01\x00\x00\x1e\xd1\
+\x00\x00\x01\x77\xb9\x14\x85\x4a\
+\x00\x00\x04\xd4\x00\x00\x00\x00\x00\x01\x00\x00\x6a\x38\
+\x00\x00\x01\x77\xb9\x14\x85\x49\
+\x00\x00\x04\x20\x00\x00\x00\x00\x00\x01\x00\x00\x5c\xad\
+\x00\x00\x01\x77\xb9\x14\x85\x4b\
+\x00\x00\x03\xe2\x00\x00\x00\x00\x00\x01\x00\x00\x56\x18\
+\x00\x00\x01\x77\xb9\x14\x85\x4b\
\x00\x00\x00\x10\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\
-\x00\x00\x01\x71\x14\x51\x77\x38\
-\x00\x00\x03\x3e\x00\x00\x00\x00\x00\x01\x00\x00\x47\x12\
-\x00\x00\x01\x71\x14\x51\x77\x39\
-\x00\x00\x02\xe4\x00\x00\x00\x00\x00\x01\x00\x00\x41\x97\
-\x00\x00\x01\x71\x14\x51\x77\x38\
-\x00\x00\x01\xca\x00\x00\x00\x00\x00\x01\x00\x00\x2c\xb1\
-\x00\x00\x01\x71\x14\x51\x77\x38\
-\x00\x00\x04\x78\x00\x00\x00\x00\x00\x01\x00\x00\x62\xe6\
-\x00\x00\x01\x71\x14\x51\x77\x38\
-\x00\x00\x05\xb0\x00\x00\x00\x00\x00\x01\x00\x00\x7b\x14\
-\x00\x00\x01\x71\x14\x51\x77\x38\
-\x00\x00\x03\x84\x00\x00\x00\x00\x00\x01\x00\x00\x4e\x20\
-\x00\x00\x01\x71\x14\x51\x77\x38\
-\x00\x00\x05\x9a\x00\x00\x00\x00\x00\x01\x00\x00\x78\x6f\
-\x00\x00\x01\x71\x14\x51\x77\x39\
-\x00\x00\x04\xca\x00\x00\x00\x00\x00\x01\x00\x00\x68\xc7\
-\x00\x00\x01\x71\x14\x51\x77\x38\
-\x00\x00\x05\x04\x00\x01\x00\x00\x00\x01\x00\x00\x6f\x33\
-\x00\x00\x01\x71\x14\x51\x77\x39\
-\x00\x00\x00\x84\x00\x00\x00\x00\x00\x01\x00\x00\x08\x4d\
-\x00\x00\x01\x71\x14\x51\x77\x38\
-\x00\x00\x00\x50\x00\x00\x00\x00\x00\x01\x00\x00\x03\xea\
-\x00\x00\x01\x71\x14\x51\x77\x38\
-\x00\x00\x02\xac\x00\x00\x00\x00\x00\x01\x00\x00\x3f\x16\
-\x00\x00\x01\x71\x14\x51\x77\x38\
-\x00\x00\x05\xfc\x00\x00\x00\x00\x00\x01\x00\x00\x85\x02\
-\x00\x00\x01\x71\x14\x51\x77\x38\
-\x00\x00\x03\xc2\x00\x00\x00\x00\x00\x01\x00\x00\x51\x20\
-\x00\x00\x01\x71\x14\x51\x77\x38\
-\x00\x00\x04\x22\x00\x00\x00\x00\x00\x01\x00\x00\x5b\xdd\
-\x00\x00\x01\x71\x14\x51\x77\x38\
-\x00\x00\x05\x1a\x00\x00\x00\x00\x00\x01\x00\x00\x71\x14\
-\x00\x00\x01\x71\x14\x51\x77\x38\
-\x00\x00\x05\x70\x00\x00\x00\x00\x00\x01\x00\x00\x74\x07\
-\x00\x00\x01\x71\x14\x51\x77\x38\
-\x00\x00\x03\xd8\x00\x00\x00\x00\x00\x01\x00\x00\x54\x90\
-\x00\x00\x01\x71\x14\x51\x77\x38\
-\x00\x00\x04\xa2\x00\x00\x00\x00\x00\x01\x00\x00\x66\x0c\
-\x00\x00\x01\x71\x14\x51\x77\x38\
-\x00\x00\x06\x16\x00\x00\x00\x00\x00\x01\x00\x00\x88\x82\
-\x00\x00\x01\x71\x14\x51\x77\x39\
-\x00\x00\x04\xf0\x00\x00\x00\x00\x00\x01\x00\x00\x6b\x44\
-\x00\x00\x01\x71\x14\x51\x77\x38\
-\x00\x00\x00\xf6\x00\x00\x00\x00\x00\x01\x00\x00\x16\x3d\
-\x00\x00\x01\x71\x14\x51\x77\x38\
-\x00\x00\x00\x6a\x00\x00\x00\x00\x00\x01\x00\x00\x06\xe0\
-\x00\x00\x01\x71\x14\x51\x77\x37\
-\x00\x00\x01\x5a\x00\x00\x00\x00\x00\x01\x00\x00\x21\x11\
-\x00\x00\x01\x71\x14\x51\x77\x39\
-\x00\x00\x05\x40\x00\x00\x00\x00\x00\x01\x00\x00\x73\x97\
-\x00\x00\x01\x71\x14\x51\x77\x39\
-\x00\x00\x04\x00\x00\x00\x00\x00\x00\x01\x00\x00\x58\xe2\
-\x00\x00\x01\x71\x14\x51\x77\x39\
-\x00\x00\x02\x74\x00\x00\x00\x00\x00\x01\x00\x00\x39\xeb\
-\x00\x00\x01\x71\x14\x51\x77\x38\
+\x00\x00\x01\x77\xb9\x14\x85\x4a\
+\x00\x00\x01\x8e\x00\x00\x00\x00\x00\x01\x00\x00\x23\x23\
+\x00\x00\x01\x77\xb9\x14\x85\x49\
+\x00\x00\x05\x20\x00\x00\x00\x00\x00\x01\x00\x00\x71\xcc\
+\x00\x00\x01\x77\xb9\x14\x85\x4b\
+\x00\x00\x05\xa2\x00\x00\x00\x00\x00\x01\x00\x00\x83\x64\
+\x00\x00\x01\x77\xb9\x14\x85\x4b\
+\x00\x00\x05\xd2\x00\x00\x00\x00\x00\x01\x00\x00\x83\xd4\
+\x00\x00\x01\x77\xb9\x14\x85\x4b\
+\x00\x00\x04\x36\x00\x00\x00\x00\x00\x01\x00\x00\x5d\xcd\
+\x00\x00\x01\x77\xb9\x14\x85\x49\
"
qt_version = [int(v) for v in QtCore.qVersion().split('.')]
Modified: trunk/Master/texmf-dist/asymptote/GUI/setup.py
===================================================================
--- trunk/Master/texmf-dist/asymptote/GUI/setup.py 2021-02-24 18:27:49 UTC (rev 57875)
+++ trunk/Master/texmf-dist/asymptote/GUI/setup.py 2021-02-24 18:33:44 UTC (rev 57876)
@@ -8,6 +8,6 @@
version=xasyVersion.xasyVersion,
author="Supakorn Rassameemasmuang, Orest Shardt, and John C. Bowman",
description="User interface for Asymptote, a vector graphics language",
- url="http://asymptote.sourceforge.net",
+ url="https://asymptote.sourceforge.io",
download_url="https://sourceforge.net/projects/asymptote/"
)
Modified: trunk/Master/texmf-dist/asymptote/GUI/xasy2asy.py
===================================================================
--- trunk/Master/texmf-dist/asymptote/GUI/xasy2asy.py 2021-02-24 18:27:49 UTC (rev 57875)
+++ trunk/Master/texmf-dist/asymptote/GUI/xasy2asy.py 2021-02-24 18:33:44 UTC (rev 57876)
@@ -716,7 +716,7 @@
image = Qg.QImage(file)
elif fileformat == 'svg':
if containsClip:
- image = xs.SvgObject(file)
+ image = xs.SvgObject(self.asyengine.tempDirName+file)
else:
image = Qs.QSvgRenderer(file)
assert image.isValid()
@@ -826,7 +826,7 @@
for i in range(len(imageInfos)):
box, key, localCount, useClip = imageInfos[i]
l, b, r, t = [float(a) for a in box.split()]
- name = "{:s}_{:d}.{:s}".format(self.asyengine.tempDirName, i, fileformat)
+ name = "_{:d}.{:s}".format(i, fileformat)
self.imageHandleQueue.put((name, fileformat, (l, -t, r, -b), i, key, localCount, useClip))
@@ -873,12 +873,15 @@
n += 1
- if text == "Error\n":
- self.imageHandleQueue.put(("ERROR", fin.readline()))
+ if raw_text != "Error\n":
+ if text == "Error\n":
+ self.imageHandleQueue.put(("ERROR", fin.readline()))
+ else:
+ render()
+
+ self.asy2psmap = asyTransform(xu.listize(fin.readline().rstrip(),float))
else:
- render()
-
- self.asy2psmap = asyTransform(xu.listize(fin.readline().rstrip(),float))
+ self.asy2psmap = identity()
self.imageHandleQueue.put((None,))
self.asyfied = True
Modified: trunk/Master/texmf-dist/asymptote/GUI/xasyVersion.py
===================================================================
--- trunk/Master/texmf-dist/asymptote/GUI/xasyVersion.py 2021-02-24 18:27:49 UTC (rev 57875)
+++ trunk/Master/texmf-dist/asymptote/GUI/xasyVersion.py 2021-02-24 18:33:44 UTC (rev 57876)
@@ -1,2 +1,2 @@
#!/usr/bin/env python3
-xasyVersion = "2.65"
+xasyVersion = "2.69"
Modified: trunk/Master/texmf-dist/asymptote/animation.asy
===================================================================
--- trunk/Master/texmf-dist/asymptote/animation.asy 2021-02-24 18:27:49 UTC (rev 57875)
+++ trunk/Master/texmf-dist/asymptote/animation.asy 2021-02-24 18:33:44 UTC (rev 57876)
@@ -30,7 +30,7 @@
string prefix;
bool global; // If true, use a global scaling for all frames; this requires
// extra memory since the actual shipout is deferred until all frames have
- // been generated.
+ // been generated.
void operator init(string prefix="", bool global=true) {
prefix=replace(stripdirectory(outprefix(prefix))," ","_");
@@ -37,7 +37,7 @@
this.prefix=prefix;
this.global=global;
}
-
+
string basename(string prefix=stripextension(prefix)) {
return "_"+prefix;
}
@@ -57,7 +57,7 @@
plain.shipout(name,f,format=format,view=false);
files.push(name+"."+format);
}
-
+
void add(picture pic=currentpicture, enclosure enclosure=NoBox) {
if(global) {
++index;
@@ -64,7 +64,7 @@
pictures.push(pic.copy());
} else this.shipout(enclosure(pic.fit()));
}
-
+
void purge(bool keep=settings.keep) {
if(!keep) {
for(int i=0; i < files.length; ++i)
@@ -130,7 +130,7 @@
return s;
}
- bool pdflatex()
+ bool pdflatex()
{
return latex() && pdf();
}
@@ -143,13 +143,13 @@
if(!pdflatex())
abort("inline pdf animations require -tex pdflatex or -tex xelatex");
if(settings.outformat != "") settings.outformat="pdf";
-
+
string filename=basename();
string pdfname=filename+".pdf";
if(global)
export(filename,enclosure,multipage=multipage);
-
+
if(!keep) {
exitfcn currentexitfunction=atexit();
void exitfunction() {
Modified: trunk/Master/texmf-dist/asymptote/asy-keywords.el
===================================================================
--- trunk/Master/texmf-dist/asymptote/asy-keywords.el 2021-02-24 18:27:49 UTC (rev 57875)
+++ trunk/Master/texmf-dist/asymptote/asy-keywords.el 2021-02-24 18:33:44 UTC (rev 57876)
@@ -2,7 +2,7 @@
;; This file is automatically generated by asy-list.pl.
;; Changes will be overwritten.
;;
-(defvar asy-keywords-version "2.65")
+(defvar asy-keywords-version "2.69")
(defvar asy-keyword-name '(
and controls tension atleast curl if else while for do return break continue struct typedef new access import unravel from include quote static public private restricted this explicit true false null cycle newframe operator ))
@@ -11,7 +11,7 @@
Braid FitResult Label Legend Solution TreeNode abscissa arc arrowhead binarytree binarytreeNode block bool bool3 bounds bqe circle conic coord coordsys cputime ellipse evaluatedpoint file filltype frame grid3 guide horner hsv hyperbola int inversion key light line linefit marginT marker mass node object pair parabola patch path path3 pen picture point position positionedvector projection rational real revolution scaleT scientific segment side simplex slice solution splitface string surface tensionSpecifier ticklocate ticksgridT tickvalues transform transformation tree triangle trilinear triple vector vertex void ))
(defvar asy-function-name '(
-AND Arc ArcArrow ArcArrows Arrow Arrows AtA Automatic AvantGarde B03 B13 B23 B33 BBox BWRainbow BWRainbow2 Bar Bars BeginArcArrow BeginArrow BeginBar BeginDotMargin BeginMargin BeginPenMargin Blank Bookman Bottom BottomTop Bounds Break Broken BrokenLog CLZ CTZ Ceil Circle CircleBarIntervalMarker Cos Courier CrossIntervalMarker DOSendl DOSnewl DefaultFormat DefaultLogFormat Degrees Dir DotMargin DotMargins Dotted Draw Drawline Embed EndArcArrow EndArrow EndBar EndDotMargin EndMargin EndPenMargin Fill FillDraw Finite Floor Format Full Gaussian Gaussrand Gaussrandpair Gradient Grayscale Helvetica Hermite HookHead InOutTicks InTicks Jn Label Landscape Left LeftRight LeftTicks Legend Linear Log LogFormat Margin Margins Mark MidArcArrow MidArrow NOT NewCenturySchoolBook NoBox NoMargin NoModifier NoTicks NoTicks3 NoZero NoZeroFormat None OR OmitFormat OmitTick OmitTickInterval OmitTickIntervals OutTicks Ox Oy Palatino PaletteTicks Pen PenMargin PenMargins Pentype Portrait RGB RadialShade RadialShadeDraw Rainbow Range Relative Right RightTicks Rotate Round SQR Scale ScaleX ScaleY ScaleZ Seascape Shift Sin Slant Spline StickIntervalMarker Straight Symbol Tan TeXify Ticks Ticks3 TildeIntervalMarker TimesRoman Top TrueMargin UnFill UpsideDown Wheel X XEquals XOR XY XYEquals XYZero XYgrid XZEquals XZZero XZero XZgrid Y YEquals YXgrid YZ YZEquals YZZero YZero YZgrid Yn Z ZX ZXgrid ZYgrid ZapfChancery ZapfDingbats _begingroup3 _cputime _draw _eval _findroot _image _labelpath _projection _shipout _strokepath _texpath aCos aSin aTan abort abs accel acos acosh acot acsc activatequote add addArrow addMargins addSaveFunction addpenarc addpenline addseg adjust alias align all altitude angabscissa angle angledegrees angpoint animate annotate anticomplementary antipedal apply approximate arc arcarrowsize arccircle arcdir arcfromcenter arcfromfocus arclength arcnodesnumber arcpoint arcsubtended arcsubtendedcenter arctime arctopath array arrow arrow2 arrowbase arrowbasepoints arrowsize ascii asec asin asinh ask assert asy asyc!
ode asydir asyfigure asyfilecode asyinclude asywrite atan atan2 atanh atbreakpoint atexit attach attract atupdate autoformat autoscale autoscale3 axes axes3 axialshade axis axiscoverage azimuth babel background bangles bar barmarksize barsize basealign baseline bbox beep begin beginclip begingroup beginpoint between bevel bezier bezierP bezierPP bezierPPP bezulate bibliography bibliographystyle binarytree binarytreeNode binomial bins bisector bisectorpoint bispline bispline0 bitreverse blend blockconnector box bqe brace breakpoint breakpoints brick buildRestoreDefaults buildRestoreThunk buildcycle bulletcolor byte calculateScaling canonical canonicalcartesiansystem cartesiansystem case1 case2 case3 cbrt cd ceil center centerToFocus centroid cevian change2 changecoordsys checkSegment check_fpt_zero checkconditionlength checker checkincreasing checklengths checkposition checkpt checkptincube checktriangle choose circle circlebarframe circlemarkradius circlenodesnumber circumcenter circumcircle clamped clear clip clipdraw close cmyk code colatitude collect collinear color colorless colors colorspace comma compassmark complement complementary concat concurrent cone conic conicnodesnumber conictype conj connect containmentTree contains contour contour3 controlSpecifier convert coordinates coordsys copy copyPairOrTriple cos cosh cot countIntersections cputime crop cropcode cross crossframe crosshatch crossmarksize csc cubicroots curabscissa curlSpecifier curpoint currentarrow currentexitfunction currentmomarrow currentpolarconicroutine curve cut cutafter cutbefore cyclic cylinder deactivatequote debugger deconstruct defaultdir defaultformat defaultpen defined degenerate degrees delete deletepreamble determinant diagonal diamond diffdiv dir dirSpecifier dirtime display distance divisors do_overpaint dot dotframe dotsize downcase draw drawAll drawCylinder drawDisk drawDoubleLine drawFermion drawGhost drawGluon drawMomArrow drawPhoton drawScalar drawSphere drawTube drawVertex drawVertexBox drawVertexBoxO drawVertexBoxX d!
rawVertexO drawVertexOX drawVertexTriangle drawVertexTriangleO drawVertexX drawarrow drawarrow2 drawbeziertriangle drawline drawpixel drawstrokepath drawtick duplicate elle ellipse ellipsenodesnumber embed embed3 embedplayer empty enclose end endclip endgroup endgroup3 endl endpoint endpoints eof eol equation equations erase erasestep erf erfc error errorbar errorbars eval excenter excircle exit exitfunction exp expfactors expi expm1 exradius extend extension extouch fabs factorial fermat fft fhorner figure file filecode fill filldraw filloutside fillrule filltype find findall findroot finite finiteDifferenceJacobian firstcut firstframe fit fit2 fixedscaling floor flush fmdefaults fmod focusToCenter font fontcommand fontsize foot format frac frequency fromCenter fromFocus fspline functionshade gamma gcd generate_random_backtrace generateticks gergonne getc getint getpair getreal getstring gettriple gluon gouraudshade graph graphic graphicscale gray grestore grid grid3 gsave halfbox hatch hdiffdiv hermite hex histogram history hline hprojection hsv hyperbola hyperbolanodesnumber hyperlink hypot identity image implicitsurface incenter incentral incircle increasing incrementposition indexedfigure initdefaults initialized input inradius insert inside insphere integrate interactive interior interp interpolate intersect intersection intersectionpoint intersectionpoints intersections intouch inverse inversion invisible is3D isDuplicate isnan isogonal isogonalconjugate isotomic isotomicconjugate isparabola italic item jobname key kurtosis kurtosisexcess label labelaxis labelmargin labelpath labels labeltick labelx labelx3 labely labely3 labelz labelz3 lastcut latex latitude latticeshade layer layout lcm ldexp leastsquares legend legenditem length lexorder lift light limits line linear linecap lineinversion linejoin linemargin lineskip linetype linewidth link list lm_enorm lm_evaluate_default lm_lmdif lm_lmpar lm_minimize lm_print_default lm_print_quiet lm_qrfac lm_qrsolv locale locate locatefile location log log10 log1p!
logaxiscoverage longitude lookup make3dgrid makeMappingArray makeNode makecircle makedraw makepen maketriangle map margin markangle markangleradius markanglespace markarc marker markinterval marknodes markrightangle markthin markuniform mass masscenter massformat math max max3 maxAfterTransform maxbezier maxbound maxcoords maxlength maxratio maxtimes mean medial median midpoint min min3 minAfterTransform minbezier minbound minipage minratio mintimes miterlimit mktemp momArrowPath momarrowsize monotonic multifigure nGrad nativeformat natural newl newpage newslide newton newtree nextframe nextnormal nextpage nib nodabscissa node none norm normalout normalvideo nosetpagesize notaknot nowarn numberpage nurb object offset onpath opacity opposite orient orientation origin orthic orthocentercenter outdirectory outformat outline outname outprefix output overloadedMessage overwrite pack pad pairs palette parabola parabolanodesnumber parallel parallelogram partialsum patchwithnormals path path3 pathbetween pathinface pattern pause pdf pedal periodic perp perpendicular perpendicularmark phantom phi1 phi2 phi3 photon piecewisestraight point polar polarconicroutine polargraph polygon popcount postcontrol postscript pow10 ppoint prc prc0 prconly precision precontrol prepend printBytecode print_random_addresses progress project projection projecttospan projecttospan_findcoeffs purge pwhermite quadpatches quadrant quadraticroots quantize quarticroots quotient radialshade radians radicalcenter radicalline radius rand randompath rationalidentity rd readline realmult realquarticroots rectangle rectangular rectify reflect relabscissa relative relativedistance reldir relpoint reltime remainder remark removeDuplicates rename render replace report resetdefaultpen restore restoredefaults reverse reversevideo rf rfind rgb rgba rgbint rms rotate rotateO rotation round roundbox roundedpath roundrectangle samecoordsys sameside sample save savedefaults saveline scale scale3 scaleO scaleT scaleless scientific search searchtree sec secondary!
X secondaryY seconds section sector seek seekeof segment segmentlimits sequence setpens sgn sgnd sharpangle sharpdegrees shift shiftless shipout shipout3 show simeq simplex simplexPhase1 simplexPhase2 simplexStandard simplexTableau simplexWrite simpson sin sinh size size3 skewness skip slant sleep slice slope slopefield solve solveBVP sort sourceline sphere split sqrt square srand standardizecoordsys stdev step stickframe stickmarksize stickmarkspace stop straight straightness string stripdirectory stripextension stripfile stripsuffix strokepath subdivide subitem subpath substr sum surface symmedial symmedian system tab tableau tan tangent tangential tangents tanh tell tensionSpecifier tensorshade tex texcolor texify texpath texpreamble texreset texshipout texsize texstring textpath thick thin tick tickMax tickMax3 tickMin tickMin3 ticklabelshift ticklocate tildeframe tildemarksize tile tiling time times title titlepage topbox toplocation transform transformation transpose trembleFuzz triangle triangleAbc triangleabc triangletoquads trianglewithnormals triangulate tricoef tridiagonal trilinear trim truepoint tube uncycle unfill uniform unique unit unitrand unitsize unityroot unstraighten upcase updatefunction uperiodic upscale uptodate usepackage usersetting usetypescript usleep value variance variancebiased vbox vector vectorfield verbatim view vline vperiodic vprojection warn warning windingnumber write xasyKEY xaxis xaxis3 xaxis3At xaxisAt xequals xlimits xmap xpart xscale xscaleO xtick xtick3 xtrans yaxis yaxis3 yaxis3At yaxisAt yequals ylimits ypart yscale yscaleO ytick ytick3 ytrans zaxis3 zaxis3At zero zlimits zpart ztick ztick3 ztrans ))
+AND Arc ArcArrow ArcArrows Arrow Arrows AtA Automatic AvantGarde B03 B13 B23 B33 BBox BWRainbow BWRainbow2 Bar Bars BeginArcArrow BeginArrow BeginBar BeginDotMargin BeginMargin BeginPenMargin Blank Bookman Bottom BottomTop Bounds Break Broken BrokenLog CLZ CTZ Ceil Circle CircleBarIntervalMarker Cos Courier CrossIntervalMarker DOSendl DOSnewl DefaultFormat DefaultLogFormat Degrees Dir DotMargin DotMargins Dotted Draw Drawline Embed EndArcArrow EndArrow EndBar EndDotMargin EndMargin EndPenMargin Fill FillDraw Finite Floor Format Full Gaussian Gaussrand Gaussrandpair Gradient Grayscale Helvetica Hermite HookHead InOutTicks InTicks Jn Label Landscape Left LeftRight LeftTicks Legend Linear Log LogFormat Margin Margins Mark MidArcArrow MidArrow NOT NewCenturySchoolBook NoBox NoMargin NoModifier NoTicks NoTicks3 NoZero NoZeroFormat None OR OmitFormat OmitTick OmitTickInterval OmitTickIntervals OutTicks Ox Oy Palatino PaletteTicks Pen PenMargin PenMargins Pentype Portrait RGB RadialShade RadialShadeDraw Rainbow Range Relative Right RightTicks Rotate Round SQR Scale ScaleX ScaleY ScaleZ Seascape Shift Sin Slant Spline StickIntervalMarker Straight Symbol Tan TeXify Ticks Ticks3 TildeIntervalMarker TimesRoman Top TrueMargin UnFill UpsideDown Wheel X XEquals XOR XY XYEquals XYZero XYgrid XZEquals XZZero XZero XZgrid Y YEquals YXgrid YZ YZEquals YZZero YZero YZgrid Yn Z ZX ZXgrid ZYgrid ZapfChancery ZapfDingbats _begingroup3 _cputime _draw _eval _findroot _image _labelpath _projection _shipout _strokepath _texpath aCos aSin aTan abort abs abs2 accel acos acosh acot acsc activatequote add addArrow addMargins addSaveFunction addpenarc addpenline addseg adjust alias align all altitude angabscissa angle angledegrees angpoint animate annotate anticomplementary antipedal apply approximate arc arcarrowsize arccircle arcdir arcfromcenter arcfromfocus arclength arcnodesnumber arcpoint arcsubtended arcsubtendedcenter arctime arctopath array arrow arrow2 arrowbase arrowbasepoints arrowsize ascii asec asin asinh ask assert asy!
asycode asydir asyfigure asyfilecode asyinclude asywrite atan atan2 atanh atbreakpoint atexit attach attract atupdate autoformat autoscale autoscale3 axes axes3 axialshade axis axiscoverage azimuth babel background bangles bar barmarksize barsize basealign baseline bbox beep begin beginclip begingroup beginpoint between bevel bezier bezierP bezierPP bezierPPP bezulate bibliography bibliographystyle binarytree binarytreeNode binomial bins bisector bisectorpoint bispline bispline0 bitreverse blend blockconnector box bqe brace breakpoint breakpoints brick buildRestoreDefaults buildRestoreThunk buildcycle bulletcolor byte calculateScaling canonical canonicalcartesiansystem cartesiansystem case1 case2 case3 cbrt cd ceil center centerToFocus centroid cevian change2 changecoordsys checkSegment check_fpt_zero checkconditionlength checker checkincreasing checklengths checkposition checkpt checkptincube checktriangle choose circle circlebarframe circlemarkradius circlenodesnumber circumcenter circumcircle clamped clear clip clipdraw close cmyk code colatitude collect collinear color colorless colors colorspace comma compassmark complement complementary concat concurrent cone conic conicnodesnumber conictype conj connect containmentTree contains contour contour3 controlSpecifier convert coordinates coordsys copy copyPairOrTriple cos cosh cot countIntersections cputime crop cropcode cross crossframe crosshatch crossmarksize csc cubicroots curabscissa curlSpecifier curpoint currentarrow currentexitfunction currentmomarrow currentpolarconicroutine curve cut cutafter cutbefore cyclic cylinder deactivatequote debugger deconstruct defaultdir defaultformat defaultpen defined degenerate degrees delete deletepreamble determinant diagonal diamond diffdiv dir dirSpecifier dirtime display distance divisors do_overpaint dot dotframe dotsize downcase draw drawAll drawCylinder drawDisk drawDoubleLine drawFermion drawGhost drawGluon drawMomArrow drawPhoton drawScalar drawSphere drawTube drawVertex drawVertexBox drawVertexBoxO drawVertexB!
oxX drawVertexO drawVertexOX drawVertexTriangle drawVertexTriangleO drawVertexX drawarrow drawarrow2 drawbeziertriangle drawline drawpixel drawstrokepath drawtick duplicate elle ellipse ellipsenodesnumber embed embed3 embedplayer empty enclose end endclip endgroup endgroup3 endl endpoint endpoints eof eol equation equations erase erasestep erf erfc error errorbar errorbars eval excenter excircle exit exitfunction exp expfactors expi expm1 exradius extend extension extouch fabs factorial fermat fft fhorner figure file filecode fill filldraw filloutside fillrule filltype find findall findroot finite finiteDifferenceJacobian firstcut firstframe fit fit2 fixedscaling floor flush fmdefaults fmod focusToCenter font fontcommand fontsize foot format frac frequency fromCenter fromFocus fspline functionshade gamma gcd generate_random_backtrace generateticks gergonne getc getint getpair getreal getstring gettriple gluon gouraudshade graph graphic graphicscale gray grestore grid grid3 gsave halfbox hatch hdiffdiv hermite hex histogram history hline hprojection hsv hyperbola hyperbolanodesnumber hyperlink hypot identity image implicitsurface incenter incentral incircle increasing incrementposition indexedfigure initdefaults initialized input inradius insert inside insphere integrate interactive interior interp interpolate intersect intersection intersectionpoint intersectionpoints intersections intouch inverse inversion invisible is3D isDuplicate isnan isogonal isogonalconjugate isometry isotomic isotomicconjugate isparabola italic item jobname key kurtosis kurtosisexcess label labelaxis labelmargin labelpath labels labeltick labelx labelx3 labely labely3 labelz labelz3 lastcut latex latitude latticeshade layer layout lcm ldexp leastsquares legend legenditem length lexorder lift light limits line linear linecap lineinversion linejoin linemargin lineskip linetype linewidth link list lm_enorm lm_evaluate_default lm_lmdif lm_lmpar lm_minimize lm_print_default lm_print_quiet lm_qrfac lm_qrsolv locale locate locatefile location l!
og log10 log1p logaxiscoverage longitude lookup make3dgrid makeMappingArray makeNode makecircle makedraw makepen maketriangle map mapArray mapTemplate margin markangle markangleradius markanglespace markarc marker markinterval marknodes markrightangle markthin markuniform mass masscenter massformat math max max3 maxAfterTransform maxbezier maxbound maxcoords maxlength maxratio maxtimes mean medial median midpoint min min3 minAfterTransform minbezier minbound minipage minratio mintimes miterlimit mktemp momArrowPath momarrowsize monotonic multifigure nGrad nativeformat natural newl newpage newslide newton newtree nextframe nextnormal nextpage nib nodabscissa node none norm normalout normalvideo notaknot nowarn numberpage nurb object offset onpath opacity opposite orient orientation origin orthic orthocentercenter outdirectory outformat outline outname outprefix output overloadedMessage overwrite pack pad pairs palette parabola parabolanodesnumber parallel parallelogram partialsum patchwithnormals path path3 pathbetween pathinface pattern pause pdf pedal periodic perp perpendicular perpendicularmark phantom phi1 phi2 phi3 photon piecewisestraight point polar polarconicroutine polargraph polygon popcount postcontrol postscript pow10 ppoint prc prc0 prconly precision precontrol prepend printBytecode print_random_addresses progress project projection projecttospan projecttospan_findcoeffs purge pwhermite quadpatches quadrant quadraticroots quantize quarticroots quotient radialshade radians radicalcenter radicalline radius rand randompath rationalidentity rd readline realmult realquarticroots rectangle rectangular rectify reflect relabscissa relative relativedistance reldir relpoint reltime remainder remark removeDuplicates rename render replace report resetdefaultpen restore restoredefaults reverse reversevideo rf rfind rgb rgba rgbint rms rotate rotateO rotation round roundbox roundedpath roundrectangle samecoordsys sameside sample save savedefaults saveline scale scale3 scaleO scaleT scaleless scientific search sea!
rchtree sec secondaryX secondaryY seconds section sector seek seekeof segment segmentlimits sequence setpens sgn sgnd sharpangle sharpdegrees shift shiftless shipout shipout3 show simeq simplex simplexInit simplexPhase1 simplexPhase2 simplexTableau simplexWrite simpson sin sinh size size3 skewness skip slant sleep slice slope slopefield solve solveBVP sort sourceline sphere split sqrt square srand standardizecoordsys stdev step stickframe stickmarksize stickmarkspace stop straight straightness string stripdirectory stripextension stripfile stripsuffix strokepath subdivide subitem subpath substr sum surface symmedial symmedian system tab tableau tan tangent tangential tangents tanh tell tensionSpecifier tensorshade tex texcolor texify texpath texpreamble texreset texshipout texsize texstring textpath thick thin tick tickMax tickMax3 tickMin tickMin3 ticklabelshift ticklocate tildeframe tildemarksize tile tiling time times title titlepage topbox toplocation transform transformation transpose trembleFuzz triangle triangleAbc triangleabc triangletoquads trianglewithnormals triangulate tricoef tridiagonal trilinear trim truepoint tube type uncycle unfill uniform unique unit unitrand unitsize unityroot unstraighten upcase updatefunction uperiodic upscale uptodate usepackage usersetting usetypescript usleep value variance variancebiased vbox vector vectorfield verbatim view vline vperiodic vprojection warn warning windingnumber write xasyKEY xaxis xaxis3 xaxis3At xaxisAt xequals xlimits xmap xpart xscale xscaleO xtick xtick3 xtrans yaxis yaxis3 yaxis3At yaxisAt yequals ylimits ypart yscale yscaleO ytick ytick3 ytrans zaxis3 zaxis3At zero zlimits zpart ztick ztick3 ztrans ))
(defvar asy-variable-name '(
-Accent AliceBlue Align Allow AntiqueWhite Apricot Aqua Aquamarine Aspect Azure BeginPoint Beige Bisque Bittersweet Black BlanchedAlmond Blue BlueGreen BlueViolet Blues Both BrBG Break BrickRed Brown BuGn BuPu BurlyWood BurntOrange CCW CMRmap CW CadetBlue CarnationPink Center Centered Cerulean Chartreuse Chocolate Coeff Coral CornflowerBlue Cornsilk Crimson Crop Cyan Dandelion Dark2 DarkBlue DarkCyan DarkGoldenrod DarkGray DarkGreen DarkKhaki DarkMagenta DarkOliveGreen DarkOrange DarkOrchid DarkRed DarkSalmon DarkSeaGreen DarkSlateBlue DarkSlateGray DarkTurquoise DarkViolet DeepPink DeepSkyBlue DefaultHead DimGray DodgerBlue Dotted Down Draw E ENE EPS ESE E_Euler E_PC E_RK2 E_RK3BS Emerald EndPoint Euler Fill FillDraw FireBrick FloralWhite ForestGreen Fuchsia Gainsboro GhostWhite GnBu Gold Goldenrod Gray Green GreenYellow Greens Greys Honeydew HookHead Horizontal HotPink I IgnoreAspect IndianRed Indigo Infinity Ivory JOIN_IN JOIN_OUT JungleGreen Khaki LM_DWARF LM_MACHEP LM_SQRT_DWARF LM_SQRT_GIANT LM_USERTOL Label Lavender LavenderBlush LawnGreen Left LeftJustified LeftSide LemonChiffon LightBlue LightCoral LightCyan LightGoldenrodYellow LightGreen LightGrey LightPink LightSalmon LightSeaGreen LightSkyBlue LightSlateGray LightSteelBlue LightYellow Lime LimeGreen Linear Linen Log Logarithmic Magenta Mahogany Mark MarkFill MarkPath Maroon Max MediumAquamarine MediumBlue MediumOrchid MediumPurple MediumSeaGreen MediumSlateBlue MediumSpringGreen MediumTurquoise MediumVioletRed Melon MidPoint MidnightBlue Min MintCream MistyRose Moccasin Move MoveQuiet Mulberry N NE NNE NNW NULL_VERTEX NW NavajoWhite Navy NavyBlue NoAlign NoCrop NoFill NoSide OldLace Olive OliveDrab OliveGreen OrRd Orange OrangeRed Oranges Orchid Ox Oy PC PRGn Paired PaleGoldenrod PaleGreen PaleTurquoise PaleVioletRed PapayaWhip Pastel1 Pastel2 Peach PeachPuff Periwinkle Peru PiYG PineGreen Pink Plum PowderBlue ProcessBlue PuBu PuBuGn PuOr PuRd Purple Purples RK2 RK3 RK3BS RK4 RK5 RK5DP RK5F RawSienna RdBu RdGy RdPu RdYlBu RdYlGn Red RedOrang!
e RedViolet Reds Rhodamine Right RightJustified RightSide RosyBrown RoyalBlue RoyalPurple RubineRed S SE SSE SSW SW SaddleBrown Salmon SandyBrown SeaGreen Seashell Sepia Set1 Set2 Set3 Sienna Silver SimpleHead SkyBlue SlateBlue SlateGray Snow Spectral SpringGreen SteelBlue Suppress SuppressQuiet Tan TeXHead Teal TealBlue Thistle Ticksize Tomato Turquoise UnFill Up VERSION Value Vertical Violet VioletRed W WNW WSW Wheat White WhiteSmoke WildStrawberry XHIGH XLOW XYAlign YAlign YHIGH YLOW Yellow YellowGreen YellowOrange YlGn YlGnBu YlOrBr YlOrRd ZHIGH ZLOW _outpipe aboveequationskip addpenarc addpenline align allowstepping angularsystem animationdelay appendsuffix arcarrowangle arcarrowfactor arrow2sizelimit arrowangle arrowbarb arrowdir arrowfactor arrowhookfactor arrowlength arrowsizelimit arrowtexfactor authorpen autumn axis axiscoverage axislabelfactor background backgroundcolor backgroundpen barfactor barmarksizefactor basealign baselinetemplate bernstein beveljoin bigvertexpen bigvertexsize binary black blue bm bone bottom bp bracedefaultratio braceinnerangle bracemidangle braceouterangle brg brown bullet bwr byfoci byvertices camerafactor chartreuse circlemarkradiusfactor circlenodesnumberfactor circleprecision circlescale cividis cm codefile codepen codeskip colorPen coloredNodes coloredSegments conditionlength conicnodesfactor cool coolwarm copper count cputimeformat crossmarksizefactor currentcoordsys currentlight currentpatterns currentpen currentpicture currentposition currentprojection curvilinearsystem cuttings cyan darkblue darkbrown darkcyan darkgray darkgreen darkgrey darkmagenta darkolive darkred dashdotted dashed datepen dateskip debuggerlines debugging deepblue deepcyan deepgray deepgreen deepgrey deepmagenta deepred deepyellow default defaultControl defaultS defaultbackpen defaultcoordsys defaultexcursion defaultfilename defaultformat defaultmassformat defaultpen defaultseparator differentlengths dot dotfactor dotfilltype dotframe dotted doublelinepen doublelinespacing down duplicateFuzz ellip!
senodesnumberfactor eps epsgeo epsilon evenodd expansionfactor extendcap fermionpen figureborder figuremattpen file3 firstnode firststep foregroundcolor fuchsia fuzz gapfactor ghostpen gist_earth gist_ncar gist_stern gluonamplitude gluonpen gluonratio gray green grey hatchepsilon havepagenumber heavyblue heavycyan heavygray heavygreen heavygrey heavymagenta heavyred hline hot hsv hwratio hyperbolanodesnumberfactor identity identity4 ignore implicitshipout inch inches includegraphicscommand inf inferno infinity institutionpen intMax intMin invert invisible itempen itemskip itemstep jet labelmargin landscape lastnode left legendhskip legendlinelength legendmargin legendmarkersize legendmaxrelativewidth legendvskip lightblue lightcyan lightgray lightgreen lightgrey lightmagenta lightolive lightred lightyellow linemargin lm_infmsg lm_shortmsg longdashdotted longdashed magenta magma magneticRadius mantissaBits markangleradius markangleradiusfactor markanglespace markanglespacefactor maxrefinements mediumblue mediumcyan mediumgray mediumgreen mediumgrey mediummagenta mediumred mediumyellow middle minDistDefault minblockheight minblockwidth mincirclediameter minipagemargin minipagewidth minvertexangle miterjoin mm momarrowfactor momarrowlength momarrowmargin momarrowoffset momarrowpen monoPen morepoints nCircle nan newbulletcolor ngraph nil nipy_spectral nmesh nobasealign nodeMarginDefault nodesystem nomarker nopoint noprimary nullpath nullpen numarray ocgindex oldbulletcolor olive orange origin overpaint page pageheight pagemargin pagenumberalign pagenumberpen pagenumberposition pagewidth paleblue palecyan palegray palegreen palegrey palemagenta palered paleyellow parabolanodesnumberfactor perpfactor phi photonamplitude photonpen photonratio pi pink plain plain_bounds plain_scaling plasma plus preamblenodes pt purple r3 r4a r4b randMax realDigits realEpsilon realMax realMin red relativesystem reverse right roundcap roundjoin royalblue salmon saveFunctions scalarpen seismic sequencereal settings signedtrailingzero simp!
lex solid spinner spring springgreen sqrtEpsilon squarecap squarepen startposition stdin stdout stepfactor stepfraction steppagenumberpen stepping stickframe stickmarksizefactor stickmarkspacefactor summer swap tab10 tab20 tab20b tab20c textpen ticksize tildeframe tildemarksizefactor tinv titlealign titlepagepen titlepageposition titlepen titleskip top trailingzero treeLevelStep treeMinNodeWidth treeNodeStep trembleAngle trembleFrequency trembleRandom tubegranularity twilight twilight_shifted undefined unitcircle unitsquare up urlpen urlskip version vertexpen vertexsize viewportmargin viewportsize viridis vline white winter wistia wye yellow ylabelwidth zeroTransform zerotickfuzz zerowinding ))
+Accent AliceBlue Align Allow AntiqueWhite Apricot Aqua Aquamarine Aspect Azure BeginPoint Beige Bisque Bittersweet Black BlanchedAlmond Blue BlueGreen BlueViolet Blues Both BrBG Break BrickRed Brown BuGn BuPu BurlyWood BurntOrange CCW CMRmap CW CadetBlue CarnationPink Center Centered Cerulean Chartreuse Chocolate Coeff Coral CornflowerBlue Cornsilk Crimson Crop Cyan Dandelion Dark2 DarkBlue DarkCyan DarkGoldenrod DarkGray DarkGreen DarkKhaki DarkMagenta DarkOliveGreen DarkOrange DarkOrchid DarkRed DarkSalmon DarkSeaGreen DarkSlateBlue DarkSlateGray DarkTurquoise DarkViolet DeepPink DeepSkyBlue DefaultHead DimGray DodgerBlue Dotted Down Draw E ENE EPS ESE E_Euler E_PC E_RK2 E_RK3BS Emerald EndPoint Euler Fill FillDraw FireBrick FloralWhite ForestGreen Fuchsia Gainsboro GhostWhite GnBu Gold Goldenrod Gray Green GreenYellow Greens Greys Honeydew HookHead Horizontal HotPink I IgnoreAspect IndianRed Indigo Infinity Ivory JOIN_IN JOIN_OUT JungleGreen Khaki LM_DWARF LM_MACHEP LM_SQRT_DWARF LM_SQRT_GIANT LM_USERTOL Label Lavender LavenderBlush LawnGreen Left LeftJustified LeftSide LemonChiffon LightBlue LightCoral LightCyan LightGoldenrodYellow LightGreen LightGrey LightPink LightSalmon LightSeaGreen LightSkyBlue LightSlateGray LightSteelBlue LightYellow Lime LimeGreen Linear Linen Log Logarithmic Magenta Mahogany Mark MarkFill MarkPath Maroon Max MediumAquamarine MediumBlue MediumOrchid MediumPurple MediumSeaGreen MediumSlateBlue MediumSpringGreen MediumTurquoise MediumVioletRed Melon MidPoint MidnightBlue Min MintCream MistyRose Moccasin Move MoveQuiet Mulberry N NE NNE NNW NULL_VERTEX NW NavajoWhite Navy NavyBlue NoAlign NoCrop NoFill NoSide OldLace Olive OliveDrab OliveGreen OrRd Orange OrangeRed Oranges Orchid Ox Oy PC PRGn Paired PaleGoldenrod PaleGreen PaleTurquoise PaleVioletRed PapayaWhip Pastel1 Pastel2 Peach PeachPuff Periwinkle Peru PiYG PineGreen Pink Plum PowderBlue ProcessBlue PuBu PuBuGn PuOr PuRd Purple Purples RELEASE RK2 RK3 RK3BS RK4 RK5 RK5DP RK5F RawSienna RdBu RdGy RdPu RdYlBu RdYlGn Red !
RedOrange RedViolet Reds Rhodamine Right RightJustified RightSide RosyBrown RoyalBlue RoyalPurple RubineRed S SE SSE SSW SW SaddleBrown Salmon SandyBrown SeaGreen Seashell Sepia Set1 Set2 Set3 Sienna Silver SimpleHead SkyBlue SlateBlue SlateGray Snow Spectral SpringGreen SteelBlue Suppress SuppressQuiet Tan TeXHead Teal TealBlue Thistle Ticksize Tomato Turquoise UnFill Up VERSION Value Vertical Violet VioletRed W WNW WSW Wheat White WhiteSmoke WildStrawberry XHIGH XLOW XYAlign YAlign YHIGH YLOW Yellow YellowGreen YellowOrange YlGn YlGnBu YlOrBr YlOrRd ZHIGH ZLOW _outpipe aboveequationskip addpenarc addpenline align allowstepping angularsystem animationdelay appendsuffix arcarrowangle arcarrowfactor arrow2sizelimit arrowangle arrowbarb arrowdir arrowfactor arrowhookfactor arrowlength arrowsizelimit arrowtexfactor authorpen autumn axis axiscoverage axislabelfactor background backgroundcolor backgroundpen barfactor barmarksizefactor basealign baselinetemplate bernstein beveljoin bigvertexpen bigvertexsize binary black blue bm bone bottom bp bracedefaultratio braceinnerangle bracemidangle braceouterangle brg brown bullet bwr byfoci byvertices camerafactor chartreuse circlemarkradiusfactor circlenodesnumberfactor circleprecision circlescale cividis cm codefile codepen codeskip colorPen coloredNodes coloredSegments conditionlength conicnodesfactor cool coolwarm copper count cputimeformat crossmarksizefactor currentcoordsys currentlight currentpatterns currentpen currentpicture currentposition currentprojection curvilinearsystem cuttings cyan darkblue darkbrown darkcyan darkgray darkgreen darkgrey darkmagenta darkolive darkred dashdotted dashed datepen dateskip debuggerlines debugging deepblue deepcyan deepgray deepgreen deepgrey deepmagenta deepred deepyellow default defaultControl defaultS defaultbackpen defaultcoordsys defaultexcursion defaultfilename defaultformat defaultmassformat defaultpen defaultseparator differentlengths dot dotfactor dotfilltype dotframe dotted doublelinepen doublelinespacing down duplicateFu!
zz ellipsenodesnumberfactor eps epsgeo epsilon evenodd expansionfactor extendcap fermionpen figureborder figuremattpen file3 firstnode firststep foregroundcolor fuchsia fuzz gapfactor ghostpen gist_earth gist_ncar gist_stern gluonamplitude gluonpen gluonratio gray green grey hatchepsilon havepagenumber heavyblue heavycyan heavygray heavygreen heavygrey heavymagenta heavyred hline hot hsv hwratio hyperbolanodesnumberfactor identity identity4 ignore implicitshipout inch inches includegraphicscommand inf inferno infinity institutionpen intMax intMin invert invisible itempen itemskip itemstep jet labelmargin landscape lastnode left legendhskip legendlinelength legendmargin legendmarkersize legendmaxrelativewidth legendvskip lightblue lightcyan lightgray lightgreen lightgrey lightmagenta lightolive lightred lightyellow linemargin lm_infmsg lm_shortmsg longdashdotted longdashed magenta magma magneticRadius mantissaBits markangleradius markangleradiusfactor markanglespace markanglespacefactor maxrefinements mediumblue mediumcyan mediumgray mediumgreen mediumgrey mediummagenta mediumred mediumyellow middle minDistDefault minblockheight minblockwidth mincirclediameter minipagemargin minipagewidth minvertexangle miterjoin mm momarrowfactor momarrowlength momarrowmargin momarrowoffset momarrowpen monoPen morepoints nCircle nan newbulletcolor ngraph nil nipy_spectral nmesh nobasealign nodeMarginDefault nodesystem nomarker nopoint noprimary nullpath nullpen numarray ocgindex oldbulletcolor olive orange origin overpaint page pageheight pagemargin pagenumberalign pagenumberpen pagenumberposition pagewidth paleblue palecyan palegray palegreen palegrey palemagenta palered paleyellow parabolanodesnumberfactor perpfactor phi photonamplitude photonpen photonratio pi pink plain plain_bounds plain_scaling plasma plus preamblenodes pt purple r3 r4a r4b randMax realDigits realEpsilon realMax realMin red relativesystem reverse right roundcap roundjoin royalblue salmon saveFunctions scalarpen seismic sequencereal settings signedtrailingz!
ero simplex solid spinner spring springgreen sqrtEpsilon squarecap squarepen startposition stdin stdout stepfactor stepfraction steppagenumberpen stepping stickframe stickmarksizefactor stickmarkspacefactor summer swap tab10 tab20 tab20b tab20c textpen ticksize tildeframe tildemarksizefactor tinv titlealign titlepagepen titlepageposition titlepen titleskip top trailingzero treeLevelStep treeMinNodeWidth treeNodeStep trembleAngle trembleFrequency trembleRandom tubegranularity twilight twilight_shifted undefined unitcircle unitsquare up urlpen urlskip version vertexpen vertexsize viewportmargin viewportsize viridis vline white winter wistia wye yellow ylabelwidth zeroTransform zerotickfuzz zerowinding ))
Modified: trunk/Master/texmf-dist/asymptote/asy-mode.el
===================================================================
--- trunk/Master/texmf-dist/asymptote/asy-mode.el 2021-02-24 18:27:49 UTC (rev 57875)
+++ trunk/Master/texmf-dist/asymptote/asy-mode.el 2021-02-24 18:33:44 UTC (rev 57876)
@@ -102,7 +102,7 @@
This package seems to work with XEmacs 21.4 but not all the features are available (in particular syntax highlighting).
-Report bugs to http://asymptote.sourceforge.net
+Report bugs to https://github.com/vectorgraphics/asymptote/issues
Some variables can be customized: M-x customize-group <RET> asymptote <RET>."
Modified: trunk/Master/texmf-dist/asymptote/babel.asy
===================================================================
--- trunk/Master/texmf-dist/asymptote/babel.asy 2021-02-24 18:27:49 UTC (rev 57875)
+++ trunk/Master/texmf-dist/asymptote/babel.asy 2021-02-24 18:33:44 UTC (rev 57876)
@@ -1,4 +1,4 @@
-void babel(string s)
+void babel(string s)
{
usepackage("babel",s);
}
Modified: trunk/Master/texmf-dist/asymptote/bezulate.asy
===================================================================
--- trunk/Master/texmf-dist/asymptote/bezulate.asy 2021-02-24 18:27:49 UTC (rev 57875)
+++ trunk/Master/texmf-dist/asymptote/bezulate.asy 2021-02-24 18:33:44 UTC (rev 57876)
@@ -1,6 +1,6 @@
// Bezier triangulation routines written by Orest Shardt, 2008.
-private real fuzz=sqrtEpsilon;
+private real fuzz=1e-6;
real duplicateFuzz=1e-3; // Work around font errors.
real maxrefinements=10;
@@ -106,29 +106,29 @@
//if(direction == 0) // Try a random direction
// direction=expi(2pi*unitrand());
//pair start=point(inners[curveIndex],0);
-
+
// find shortest distance between a node on the inner curve and a node
// on the outer curve
-
+
real mindist = d;
int inner_i = 0;
int outer_i = 0;
for(int ni = 0; ni < length(inners[curveIndex]); ++ni)
- {
+ {
for(int no = 0; no < length(outer); ++no)
- {
+ {
real dist = abs(point(inners[curveIndex],ni)-point(outer,no));
if(dist < mindist)
- {
+ {
inner_i = ni;
outer_i = no;
mindist = dist;
- }
- }
- }
+ }
+ }
+ }
pair start=point(inners[curveIndex],inner_i);
- pair end = point(outer,outer_i);
-
+ pair end = point(outer,outer_i);
+
// find first intersection of line segment with outer curve
//real[][] ints=intersections(start,start+d*direction,outer);
real[][] ints=intersections(start,end,outer);
@@ -140,7 +140,7 @@
real earliestTime=1;
for(int j=0; j < inners.length; ++j) {
real[][] ints=intersections(end,start,inners[j]);
-
+
if(ints.length > 0 && ints[0][0] < earliestTime) {
earliestTime=ints[0][0]; // time on end--start
starttime=ints[0][1]; // time on inner curve
@@ -148,8 +148,8 @@
}
}
start=point(inners[curveIndex],starttime);
-
-
+
+
bool found_forward = false;
real timeoffset_forward = 2;
path portion_forward;
@@ -162,7 +162,7 @@
point(outer,endtime+timeoffset_forward)) == 2)
{
portion_forward = subpath(outer,endtime,endtime+timeoffset_forward)--start--cycle;
-
+
found_forward=true;
// check if an inner curve is inside the portion
for(int k = 0; found_forward && k < inners.length; ++k)
@@ -173,7 +173,7 @@
}
}
}
-
+
bool found_backward = false;
real timeoffset_backward = -2;
path portion_backward;
@@ -197,29 +197,29 @@
real timeoffset;
path portion;
if(found_forward && !found_backward)
- {
- timeoffset = timeoffset_forward;
- portion = portion_forward;
- }
- else if(found_backward && !found_forward)
- {
- timeoffset = timeoffset_backward;
- portion = portion_backward;
- }
- else // assert handles case of neither found
- {
- if(timeoffset_forward > -timeoffset_backward)
{
timeoffset = timeoffset_forward;
portion = portion_forward;
}
- else
+ else if(found_backward && !found_forward)
{
timeoffset = timeoffset_backward;
portion = portion_backward;
- }
- }
-
+ }
+ else // assert handles case of neither found
+ {
+ if(timeoffset_forward > -timeoffset_backward)
+ {
+ timeoffset = timeoffset_forward;
+ portion = portion_forward;
+ }
+ else
+ {
+ timeoffset = timeoffset_backward;
+ portion = portion_backward;
+ }
+ }
+
endtime=min(endtime,endtime+timeoffset);
// or go from timeoffset+timeoffset_backward to timeoffset+timeoffset_forward?
timeoffset=abs(timeoffset);
Modified: trunk/Master/texmf-dist/asymptote/binarytree.asy
===================================================================
--- trunk/Master/texmf-dist/asymptote/binarytree.asy 2021-02-24 18:27:49 UTC (rev 57875)
+++ trunk/Master/texmf-dist/asymptote/binarytree.asy 2021-02-24 18:33:44 UTC (rev 57876)
@@ -48,8 +48,8 @@
int right_span,total_right_span;
void update_spans();
- // Get the horizontal span of the tree consisting of the current
- // node plus the whole subtree that is rooted at the right child
+ // Get the horizontal span of the tree consisting of the current
+ // node plus the whole subtree that is rooted at the right child
// (condensed mode)
int getTotalRightSpan() {
if(spans_calculated == false) {
@@ -59,8 +59,8 @@
return total_right_span;
}
- // Get the horizontal span of the tree consisting of the current
- // node plus the whole subtree that is rooted at the left child
+ // Get the horizontal span of the tree consisting of the current
+ // node plus the whole subtree that is rooted at the left child
// (condensed mode)
int getTotalLeftSpan() {
if(spans_calculated == false) {
@@ -87,27 +87,27 @@
return left_span;
}
- // Update all span figures for this node.
+ // Update all span figures for this node.
// condensed mode)
update_spans=new void() {
- if(spans_calculated == true)
- return;
+ if(spans_calculated == true)
+ return;
- left_span=0;
- total_left_span=0;
- right_span=0;
- total_right_span=0;
+ left_span=0;
+ total_left_span=0;
+ right_span=0;
+ total_right_span=0;
- if(left != null) {
- left_span=left.getTotalRightSpan()+1;
- total_left_span=left_span+left.getTotalLeftSpan();
- }
+ if(left != null) {
+ left_span=left.getTotalRightSpan()+1;
+ total_left_span=left_span+left.getTotalLeftSpan();
+ }
- if(right != null) {
- right_span=right.getTotalLeftSpan()+1;
- total_right_span=right_span+right.getTotalRightSpan();
- }
- spans_calculated=true;
+ if(right != null) {
+ right_span=right.getTotalLeftSpan()+1;
+ total_right_span=right_span+right.getTotalRightSpan();
+ }
+ spans_calculated=true;
};
// set the left child of this node
@@ -134,20 +134,20 @@
else
return parent.getLevel()+1;
}
-
+
// set the children of this binarytreeNode
void setChildren(binarytreeNode left, binarytreeNode right) {
setLeft(left);
setRight(right);
}
-
- // create a new binarytreeNode with key <key>
+
+ // create a new binarytreeNode with key <key>
static binarytreeNode binarytreeNode(int key) {
binarytreeNode toReturn=new binarytreeNode;
toReturn.key=key;
return toReturn;
}
-
+
// returns the height of the subtree rooted at this node.
int getHeight() {
if(left == null && right == null)
@@ -156,7 +156,7 @@
return right.getHeight()+1;
if(right == null)
return left.getHeight()+1;
-
+
return max(left.getHeight(),right.getHeight())+1;
}
}
@@ -175,12 +175,12 @@
int height, real minDist, real levelDist, real nodeDiameter,
pen p=currentpen, bool condensed=false) {
Label label=Label(math((string) node.key),pos);
-
- binarytreeNode left=node.left;
+
+ binarytreeNode left=node.left;
binarytreeNode right=node.right;
// return the distance for two nodes at the given <level> when the
- // containing tree has height <height>
+ // containing tree has height <height>
// and the minimal distance between two nodes is <minDist> .
real getDistance(int level, int height, real minDist) {
return(nodeDiameter+minDist)*2^(height-level);
@@ -205,15 +205,15 @@
// arrow.
void deferredDrawNodeConnection(pair parentPos, pair childPos) {
pic.add(new void(frame f, transform t) {
- pair start,end;
- // calculate connection path
- transform T=shift(nodeDiameter/2*unit(t*childPos-t*parentPos));
- path arr=(T*t*parentPos)--(inverse(T)*t*childPos);
- draw(f,PenMargin(arr,p).g,p,Arrow(5));
- });
+ pair start,end;
+ // calculate connection path
+ transform T=shift(nodeDiameter/2*unit(t*childPos-t*parentPos));
+ path arr=(T*t*parentPos)--(inverse(T)*t*childPos);
+ draw(f,PenMargin(arr,p).g,p,Arrow(5));
+ });
pic.addPoint(parentPos);
pic.addPoint(childPos);
- }
+ }
if(left != null) {
pair childPos;
@@ -238,13 +238,13 @@
draw(pic,right,childPos,height,minDist,levelDist,nodeDiameter,p,condensed);
deferredDrawNodeConnection(pos,childPos);
}
-
+
picture obj;
draw(obj,circle((0,0),nodeDiameter/2),p);
label(obj,label,(0,0),p);
-
+
add(pic,obj,pos);
-
+
return label;
}
@@ -270,18 +270,18 @@
struct binarytree {
binarytreeNode root;
int[] keys;
-
+
// add the given <key> to the tree by searching for its place and
// inserting it there.
void addKey(int key) {
binarytreeNode newNode=binarytreeNode(key);
-
+
if(root == null) {
root=newNode;
keys.push(key);
- return;
+ return;
}
-
+
binarytreeNode n=root;
while(n != null) {
if(key < n.key) {
@@ -303,7 +303,7 @@
}
}
}
-
+
// return the height of the tree
int getHeight() {
if(root == null)
@@ -311,7 +311,7 @@
else
return root.getHeight();
}
-
+
// add all given keys to the tree sequentially
void addSearchKeys(int[] keys) {
for(int i=0; i < keys.length; ++i) {
@@ -321,7 +321,7 @@
addKey(key);
}
}
-
+
binarytreeNode build(key[] keys, int[] ind) {
if(ind[0] >= keys.length) return null;
key k=keys[ind[0]];
@@ -369,9 +369,9 @@
pen p=currentpen, bool condensed=false)
{
int[] keys=tree.getKeys();
-
+
// calculate the node diameter so that all keys fit into it
- frame f;
+ frame f;
for(int i=0; i < keys.length; ++i)
label(f,math(string(keys[i])),p);
Modified: trunk/Master/texmf-dist/asymptote/bsp.asy
===================================================================
--- trunk/Master/texmf-dist/asymptote/bsp.asy 2021-02-24 18:27:49 UTC (rev 57875)
+++ trunk/Master/texmf-dist/asymptote/bsp.asy 2021-02-24 18:33:44 UTC (rev 57876)
@@ -33,13 +33,13 @@
picture operator cast(face f) {return f.pic;}
face operator cast(path3 p) {return face(p);}
-
+
struct line {
triple point;
triple dir;
}
-private line intersection(face a, face b)
+private line intersection(face a, face b)
{
line L;
L.point=intersectionpoint(a.normal,a.point,b.normal,b.point);
@@ -49,12 +49,12 @@
struct half {
pair[] left,right;
-
+
// Sort the points in the pair array z according to whether they lie on the
// left or right side of the line L in the direction dir passing through P.
// Points exactly on L are considered to be on the right side.
// Also push any points of intersection of L with the path operator --(... z)
- // onto each of the arrays left and right.
+ // onto each of the arrays left and right.
void operator init(pair dir, pair P ... pair[] z) {
pair lastz;
pair invdir=dir != 0 ? 1/dir : 0;
@@ -73,7 +73,7 @@
}
}
}
-
+
struct splitface {
face back,front;
}
@@ -84,7 +84,7 @@
splitface S;
void nointersection() {
- if(abs(dot(a.point-P.camera,a.normal)) >=
+ if(abs(dot(a.point-P.camera,a.normal)) >=
abs(dot(cut.point-P.camera,cut.normal))) {
S.back=a;
S.front=null;
@@ -113,7 +113,7 @@
nointersection();
return S;
}
-
+
pair point=a.t*project(L.point,P);
pair dir=a.t*project(L.point+L.dir,P)-point;
pair invdir=dir != 0 ? 1/dir : 0;
@@ -122,7 +122,7 @@
real t=intersect(apoint,P.camera,cut.normal,cut.point);
bool rightfront=left ^ (t <= 0 || t >= 1);
-
+
face back=a, front=a.copy();
pair max=max(a.fit);
pair min=min(a.fit);
@@ -151,7 +151,7 @@
bsp back;
bsp front;
face node;
-
+
// Construct the bsp.
void operator init(face[] faces, projection P) {
if(faces.length != 0) {
@@ -166,7 +166,7 @@
this.back=bsp(back,P);
}
}
-
+
// Draw from back to front.
void add(frame f) {
if(back != null) back.add(f);
@@ -183,22 +183,22 @@
face[] Faces=new face[n];
for(int i=0; i < n; ++i)
Faces[i]=faces[i].copy();
-
+
pic.add(new void (frame f, transform t, transform T,
- pair m, pair M) {
- // Fit all of the pictures so we know their exact sizes.
- face[] faces=new face[n];
- for(int i=0; i < n; ++i) {
- faces[i]=Faces[i].copy();
- face F=faces[i];
- F.t=t*T*F.pic.T;
- F.fit=F.pic.fit(t,T*F.pic.T,m,M);
- }
-
- bsp bsp=bsp(faces,P);
- if(bsp != null) bsp.add(f);
+ pair m, pair M) {
+ // Fit all of the pictures so we know their exact sizes.
+ face[] faces=new face[n];
+ for(int i=0; i < n; ++i) {
+ faces[i]=Faces[i].copy();
+ face F=faces[i];
+ F.t=t*T*F.pic.T;
+ F.fit=F.pic.fit(t,T*F.pic.T,m,M);
+ }
+
+ bsp bsp=bsp(faces,P);
+ if(bsp != null) bsp.add(f);
});
-
+
for(int i=0; i < n; ++i) {
picture F=Faces[i].pic;
pic.userBox3(F.userMin3(), F.userMax3());
Modified: trunk/Master/texmf-dist/asymptote/colormap.asy
===================================================================
--- trunk/Master/texmf-dist/asymptote/colormap.asy 2021-02-24 18:27:49 UTC (rev 57875)
+++ trunk/Master/texmf-dist/asymptote/colormap.asy 2021-02-24 18:33:44 UTC (rev 57876)
@@ -10,7 +10,7 @@
// pen[] Palette = wistia.palette()
//
// There are two types of palettes. For a complete list see below:
-//
+//
// 1) The segmented palettes can be used as
// <name>.palette(int NColors=256, real gamma=1.)
// NColors are the number of colors in the palette
@@ -19,7 +19,7 @@
// 2) The listed palettes can only be used as
// <name>.palette()
//
-// Both functions return pen[] that can be used as a palette in the
+// Both functions return pen[] that can be used as a palette in the
// module palette.
// list of palettes
@@ -112,7 +112,7 @@
// SOURCE CODE
//
private real[] makeMappingArray(int N, triple[] data, real gamma=1.) {
- real[] x;
+ real[] x;
real[] y0;
real[] y1;
@@ -121,13 +121,13 @@
y0.push(data[i].y);
y1.push(data[i].z);
};
-
+
x = x*(N-1);
- real[] lut = new real[N];
+ real[] lut = new real[N];
real[] xind = (N - 1) * uniform(0, 1, N-1) ** gamma;
int[] ind = map(new int(real xi) {return search(x, xi);}, xind);
ind = ind[1:N-1]; // note that the index is shifted from python
-
+
real[] dist = (xind[1:N-1] - x[ind])/(x[ind+1] - x[ind]);
lut[1:N-1] = dist * (y0[ind+1] - y1[ind]) + y1[ind];
@@ -153,9 +153,9 @@
real[] green = makeMappingArray(NColors, this.g, gamma);
real[] blue = makeMappingArray(NColors, this.b, gamma);
- pen[] pal =
- sequence(new pen(int i) {return rgb(red[i], green[i], blue[i]);},
- NColors);
+ pen[] pal =
+ sequence(new pen(int i) {return rgb(red[i], green[i], blue[i]);},
+ NColors);
return pal;
}
@@ -174,3717 +174,3717 @@
// DATA
//
list_data Accent = list_data(new pen[] {
- rgb (0.4980392156862745, 0.788235294117647, 0.4980392156862745) ,
- rgb (0.7450980392156863, 0.6823529411764706, 0.8313725490196079) ,
- rgb (0.9921568627450981, 0.7529411764705882, 0.5254901960784314) ,
- rgb (1.0, 1.0, 0.6) ,
- rgb (0.2196078431372549, 0.4235294117647059, 0.6901960784313725) ,
- rgb (0.9411764705882353, 0.00784313725490196, 0.4980392156862745) ,
- rgb (0.7490196078431373, 0.3568627450980392, 0.09019607843137253) ,
- rgb (0.4, 0.4, 0.4)
-});
+ rgb (0.4980392156862745, 0.788235294117647, 0.4980392156862745) ,
+ rgb (0.7450980392156863, 0.6823529411764706, 0.8313725490196079) ,
+ rgb (0.9921568627450981, 0.7529411764705882, 0.5254901960784314) ,
+ rgb (1.0, 1.0, 0.6) ,
+ rgb (0.2196078431372549, 0.4235294117647059, 0.6901960784313725) ,
+ rgb (0.9411764705882353, 0.00784313725490196, 0.4980392156862745) ,
+ rgb (0.7490196078431373, 0.3568627450980392, 0.09019607843137253) ,
+ rgb (0.4, 0.4, 0.4)
+ });
list_data Blues = list_data(new pen[] {
- rgb (0.9686274509803922, 0.984313725490196, 1.0) ,
- rgb (0.8705882352941177, 0.9215686274509803, 0.9686274509803922) ,
- rgb (0.7764705882352941, 0.8588235294117647, 0.9372549019607843) ,
- rgb (0.6196078431372549, 0.792156862745098, 0.8823529411764706) ,
- rgb (0.4196078431372549, 0.6823529411764706, 0.8392156862745098) ,
- rgb (0.25882352941176473, 0.5725490196078431, 0.7764705882352941) ,
- rgb (0.12941176470588237, 0.44313725490196076, 0.7098039215686275) ,
- rgb (0.03137254901960784, 0.3176470588235294, 0.611764705882353) ,
- rgb (0.03137254901960784, 0.18823529411764706, 0.4196078431372549)
-});
+ rgb (0.9686274509803922, 0.984313725490196, 1.0) ,
+ rgb (0.8705882352941177, 0.9215686274509803, 0.9686274509803922) ,
+ rgb (0.7764705882352941, 0.8588235294117647, 0.9372549019607843) ,
+ rgb (0.6196078431372549, 0.792156862745098, 0.8823529411764706) ,
+ rgb (0.4196078431372549, 0.6823529411764706, 0.8392156862745098) ,
+ rgb (0.25882352941176473, 0.5725490196078431, 0.7764705882352941) ,
+ rgb (0.12941176470588237, 0.44313725490196076, 0.7098039215686275) ,
+ rgb (0.03137254901960784, 0.3176470588235294, 0.611764705882353) ,
+ rgb (0.03137254901960784, 0.18823529411764706, 0.4196078431372549)
+ });
list_data BrBG = list_data(new pen[] {
- rgb (0.32941176470588235, 0.18823529411764706, 0.0196078431372549) ,
- rgb (0.5490196078431373, 0.3176470588235294, 0.0392156862745098) ,
- rgb (0.7490196078431373, 0.5058823529411764, 0.17647058823529413) ,
- rgb (0.8745098039215686, 0.7607843137254902, 0.49019607843137253) ,
- rgb (0.9647058823529412, 0.9098039215686274, 0.7647058823529411) ,
- rgb (0.9607843137254902, 0.9607843137254902, 0.9607843137254902) ,
- rgb (0.7803921568627451, 0.9176470588235294, 0.8980392156862745) ,
- rgb (0.5019607843137255, 0.803921568627451, 0.7568627450980392) ,
- rgb (0.20784313725490197, 0.592156862745098, 0.5607843137254902) ,
- rgb (0.00392156862745098, 0.4, 0.3686274509803922) ,
- rgb (0.0, 0.23529411764705882, 0.18823529411764706)
-});
+ rgb (0.32941176470588235, 0.18823529411764706, 0.0196078431372549) ,
+ rgb (0.5490196078431373, 0.3176470588235294, 0.0392156862745098) ,
+ rgb (0.7490196078431373, 0.5058823529411764, 0.17647058823529413) ,
+ rgb (0.8745098039215686, 0.7607843137254902, 0.49019607843137253) ,
+ rgb (0.9647058823529412, 0.9098039215686274, 0.7647058823529411) ,
+ rgb (0.9607843137254902, 0.9607843137254902, 0.9607843137254902) ,
+ rgb (0.7803921568627451, 0.9176470588235294, 0.8980392156862745) ,
+ rgb (0.5019607843137255, 0.803921568627451, 0.7568627450980392) ,
+ rgb (0.20784313725490197, 0.592156862745098, 0.5607843137254902) ,
+ rgb (0.00392156862745098, 0.4, 0.3686274509803922) ,
+ rgb (0.0, 0.23529411764705882, 0.18823529411764706)
+ });
list_data BuGn = list_data(new pen[] {
- rgb (0.9686274509803922, 0.9882352941176471, 0.9921568627450981) ,
- rgb (0.8980392156862745, 0.9607843137254902, 0.9764705882352941) ,
- rgb (0.8, 0.9254901960784314, 0.9019607843137255) ,
- rgb (0.6, 0.8470588235294118, 0.788235294117647) ,
- rgb (0.4, 0.7607843137254902, 0.6431372549019608) ,
- rgb (0.2549019607843137, 0.6823529411764706, 0.4627450980392157) ,
- rgb (0.13725490196078433, 0.5450980392156862, 0.27058823529411763) ,
- rgb (0.0, 0.42745098039215684, 0.17254901960784313) ,
- rgb (0.0, 0.26666666666666666, 0.10588235294117647)
-});
+ rgb (0.9686274509803922, 0.9882352941176471, 0.9921568627450981) ,
+ rgb (0.8980392156862745, 0.9607843137254902, 0.9764705882352941) ,
+ rgb (0.8, 0.9254901960784314, 0.9019607843137255) ,
+ rgb (0.6, 0.8470588235294118, 0.788235294117647) ,
+ rgb (0.4, 0.7607843137254902, 0.6431372549019608) ,
+ rgb (0.2549019607843137, 0.6823529411764706, 0.4627450980392157) ,
+ rgb (0.13725490196078433, 0.5450980392156862, 0.27058823529411763) ,
+ rgb (0.0, 0.42745098039215684, 0.17254901960784313) ,
+ rgb (0.0, 0.26666666666666666, 0.10588235294117647)
+ });
list_data BuPu = list_data(new pen[] {
- rgb (0.9686274509803922, 0.9882352941176471, 0.9921568627450981) ,
- rgb (0.8784313725490196, 0.9254901960784314, 0.9568627450980393) ,
- rgb (0.7490196078431373, 0.8274509803921568, 0.9019607843137255) ,
- rgb (0.6196078431372549, 0.7372549019607844, 0.8549019607843137) ,
- rgb (0.5490196078431373, 0.5882352941176471, 0.7764705882352941) ,
- rgb (0.5490196078431373, 0.4196078431372549, 0.6941176470588235) ,
- rgb (0.5333333333333333, 0.2549019607843137, 0.615686274509804) ,
- rgb (0.5058823529411764, 0.05882352941176471, 0.48627450980392156) ,
- rgb (0.30196078431372547, 0.0, 0.29411764705882354)
-});
+ rgb (0.9686274509803922, 0.9882352941176471, 0.9921568627450981) ,
+ rgb (0.8784313725490196, 0.9254901960784314, 0.9568627450980393) ,
+ rgb (0.7490196078431373, 0.8274509803921568, 0.9019607843137255) ,
+ rgb (0.6196078431372549, 0.7372549019607844, 0.8549019607843137) ,
+ rgb (0.5490196078431373, 0.5882352941176471, 0.7764705882352941) ,
+ rgb (0.5490196078431373, 0.4196078431372549, 0.6941176470588235) ,
+ rgb (0.5333333333333333, 0.2549019607843137, 0.615686274509804) ,
+ rgb (0.5058823529411764, 0.05882352941176471, 0.48627450980392156) ,
+ rgb (0.30196078431372547, 0.0, 0.29411764705882354)
+ });
seg_data CMRmap = seg_data(
- new triple[] { // red
- (0.0, 0.0, 0.0) ,
- (0.125, 0.15, 0.15) ,
- (0.25, 0.3, 0.3) ,
- (0.375, 0.6, 0.6) ,
- (0.5, 1.0, 1.0) ,
- (0.625, 0.9, 0.9) ,
- (0.75, 0.9, 0.9) ,
- (0.875, 0.9, 0.9) ,
- (1.0, 1.0, 1.0)
- },
- new triple[] { // green
- (0.0, 0.0, 0.0) ,
- (0.125, 0.15, 0.15) ,
- (0.25, 0.15, 0.15) ,
- (0.375, 0.2, 0.2) ,
- (0.5, 0.25, 0.25) ,
- (0.625, 0.5, 0.5) ,
- (0.75, 0.75, 0.75) ,
- (0.875, 0.9, 0.9) ,
- (1.0, 1.0, 1.0)
- },
- new triple[] { // blue
- (0.0, 0.0, 0.0) ,
- (0.125, 0.5, 0.5) ,
- (0.25, 0.75, 0.75) ,
- (0.375, 0.5, 0.5) ,
- (0.5, 0.15, 0.15) ,
- (0.625, 0.0, 0.0) ,
- (0.75, 0.1, 0.1) ,
- (0.875, 0.5, 0.5) ,
- (1.0, 1.0, 1.0)
- }
-);
+ new triple[] { // red
+ (0.0, 0.0, 0.0) ,
+ (0.125, 0.15, 0.15) ,
+ (0.25, 0.3, 0.3) ,
+ (0.375, 0.6, 0.6) ,
+ (0.5, 1.0, 1.0) ,
+ (0.625, 0.9, 0.9) ,
+ (0.75, 0.9, 0.9) ,
+ (0.875, 0.9, 0.9) ,
+ (1.0, 1.0, 1.0)
+ },
+ new triple[] { // green
+ (0.0, 0.0, 0.0) ,
+ (0.125, 0.15, 0.15) ,
+ (0.25, 0.15, 0.15) ,
+ (0.375, 0.2, 0.2) ,
+ (0.5, 0.25, 0.25) ,
+ (0.625, 0.5, 0.5) ,
+ (0.75, 0.75, 0.75) ,
+ (0.875, 0.9, 0.9) ,
+ (1.0, 1.0, 1.0)
+ },
+ new triple[] { // blue
+ (0.0, 0.0, 0.0) ,
+ (0.125, 0.5, 0.5) ,
+ (0.25, 0.75, 0.75) ,
+ (0.375, 0.5, 0.5) ,
+ (0.5, 0.15, 0.15) ,
+ (0.625, 0.0, 0.0) ,
+ (0.75, 0.1, 0.1) ,
+ (0.875, 0.5, 0.5) ,
+ (1.0, 1.0, 1.0)
+ }
+ );
list_data Dark2 = list_data(new pen[] {
- rgb (0.10588235294117647, 0.6196078431372549, 0.4666666666666667) ,
- rgb (0.8509803921568627, 0.37254901960784315, 0.00784313725490196) ,
- rgb (0.4588235294117647, 0.4392156862745098, 0.7019607843137254) ,
- rgb (0.9058823529411765, 0.1607843137254902, 0.5411764705882353) ,
- rgb (0.4, 0.6509803921568628, 0.11764705882352941) ,
- rgb (0.9019607843137255, 0.6705882352941176, 0.00784313725490196) ,
- rgb (0.6509803921568628, 0.4627450980392157, 0.11372549019607843) ,
- rgb (0.4, 0.4, 0.4)
-});
+ rgb (0.10588235294117647, 0.6196078431372549, 0.4666666666666667) ,
+ rgb (0.8509803921568627, 0.37254901960784315, 0.00784313725490196) ,
+ rgb (0.4588235294117647, 0.4392156862745098, 0.7019607843137254) ,
+ rgb (0.9058823529411765, 0.1607843137254902, 0.5411764705882353) ,
+ rgb (0.4, 0.6509803921568628, 0.11764705882352941) ,
+ rgb (0.9019607843137255, 0.6705882352941176, 0.00784313725490196) ,
+ rgb (0.6509803921568628, 0.4627450980392157, 0.11372549019607843) ,
+ rgb (0.4, 0.4, 0.4)
+ });
list_data GnBu = list_data(new pen[] {
- rgb (0.9686274509803922, 0.9882352941176471, 0.9411764705882353) ,
- rgb (0.8784313725490196, 0.9529411764705882, 0.8588235294117647) ,
- rgb (0.8, 0.9215686274509803, 0.7725490196078432) ,
- rgb (0.6588235294117647, 0.8666666666666667, 0.7098039215686275) ,
- rgb (0.4823529411764706, 0.8, 0.7686274509803922) ,
- rgb (0.3058823529411765, 0.7019607843137254, 0.8274509803921568) ,
- rgb (0.16862745098039217, 0.5490196078431373, 0.7450980392156863) ,
- rgb (0.03137254901960784, 0.40784313725490196, 0.6745098039215687) ,
- rgb (0.03137254901960784, 0.25098039215686274, 0.5058823529411764)
-});
+ rgb (0.9686274509803922, 0.9882352941176471, 0.9411764705882353) ,
+ rgb (0.8784313725490196, 0.9529411764705882, 0.8588235294117647) ,
+ rgb (0.8, 0.9215686274509803, 0.7725490196078432) ,
+ rgb (0.6588235294117647, 0.8666666666666667, 0.7098039215686275) ,
+ rgb (0.4823529411764706, 0.8, 0.7686274509803922) ,
+ rgb (0.3058823529411765, 0.7019607843137254, 0.8274509803921568) ,
+ rgb (0.16862745098039217, 0.5490196078431373, 0.7450980392156863) ,
+ rgb (0.03137254901960784, 0.40784313725490196, 0.6745098039215687) ,
+ rgb (0.03137254901960784, 0.25098039215686274, 0.5058823529411764)
+ });
list_data Greens = list_data(new pen[] {
- rgb (0.9686274509803922, 0.9882352941176471, 0.9607843137254902) ,
- rgb (0.8980392156862745, 0.9607843137254902, 0.8784313725490196) ,
- rgb (0.7803921568627451, 0.9137254901960784, 0.7529411764705882) ,
- rgb (0.6313725490196078, 0.8509803921568627, 0.6078431372549019) ,
- rgb (0.4549019607843137, 0.7686274509803922, 0.4627450980392157) ,
- rgb (0.2549019607843137, 0.6705882352941176, 0.36470588235294116) ,
- rgb (0.13725490196078433, 0.5450980392156862, 0.27058823529411763) ,
- rgb (0.0, 0.42745098039215684, 0.17254901960784313) ,
- rgb (0.0, 0.26666666666666666, 0.10588235294117647)
-});
+ rgb (0.9686274509803922, 0.9882352941176471, 0.9607843137254902) ,
+ rgb (0.8980392156862745, 0.9607843137254902, 0.8784313725490196) ,
+ rgb (0.7803921568627451, 0.9137254901960784, 0.7529411764705882) ,
+ rgb (0.6313725490196078, 0.8509803921568627, 0.6078431372549019) ,
+ rgb (0.4549019607843137, 0.7686274509803922, 0.4627450980392157) ,
+ rgb (0.2549019607843137, 0.6705882352941176, 0.36470588235294116) ,
+ rgb (0.13725490196078433, 0.5450980392156862, 0.27058823529411763) ,
+ rgb (0.0, 0.42745098039215684, 0.17254901960784313) ,
+ rgb (0.0, 0.26666666666666666, 0.10588235294117647)
+ });
list_data Greys = list_data(new pen[] {
- rgb (1.0, 1.0, 1.0) ,
- rgb (0.9411764705882353, 0.9411764705882353, 0.9411764705882353) ,
- rgb (0.8509803921568627, 0.8509803921568627, 0.8509803921568627) ,
- rgb (0.7411764705882353, 0.7411764705882353, 0.7411764705882353) ,
- rgb (0.5882352941176471, 0.5882352941176471, 0.5882352941176471) ,
- rgb (0.45098039215686275, 0.45098039215686275, 0.45098039215686275) ,
- rgb (0.3215686274509804, 0.3215686274509804, 0.3215686274509804) ,
- rgb (0.1450980392156863, 0.1450980392156863, 0.1450980392156863) ,
- rgb (0.0, 0.0, 0.0)
-});
+ rgb (1.0, 1.0, 1.0) ,
+ rgb (0.9411764705882353, 0.9411764705882353, 0.9411764705882353) ,
+ rgb (0.8509803921568627, 0.8509803921568627, 0.8509803921568627) ,
+ rgb (0.7411764705882353, 0.7411764705882353, 0.7411764705882353) ,
+ rgb (0.5882352941176471, 0.5882352941176471, 0.5882352941176471) ,
+ rgb (0.45098039215686275, 0.45098039215686275, 0.45098039215686275) ,
+ rgb (0.3215686274509804, 0.3215686274509804, 0.3215686274509804) ,
+ rgb (0.1450980392156863, 0.1450980392156863, 0.1450980392156863) ,
+ rgb (0.0, 0.0, 0.0)
+ });
list_data OrRd = list_data(new pen[] {
- rgb (1.0, 0.9686274509803922, 0.9254901960784314) ,
- rgb (0.996078431372549, 0.9098039215686274, 0.7843137254901961) ,
- rgb (0.9921568627450981, 0.8313725490196079, 0.6196078431372549) ,
- rgb (0.9921568627450981, 0.7333333333333333, 0.5176470588235295) ,
- rgb (0.9882352941176471, 0.5529411764705883, 0.34901960784313724) ,
- rgb (0.9372549019607843, 0.396078431372549, 0.2823529411764706) ,
- rgb (0.8431372549019608, 0.18823529411764706, 0.12156862745098039) ,
- rgb (0.7019607843137254, 0.0, 0.0) ,
- rgb (0.4980392156862745, 0.0, 0.0)
-});
+ rgb (1.0, 0.9686274509803922, 0.9254901960784314) ,
+ rgb (0.996078431372549, 0.9098039215686274, 0.7843137254901961) ,
+ rgb (0.9921568627450981, 0.8313725490196079, 0.6196078431372549) ,
+ rgb (0.9921568627450981, 0.7333333333333333, 0.5176470588235295) ,
+ rgb (0.9882352941176471, 0.5529411764705883, 0.34901960784313724) ,
+ rgb (0.9372549019607843, 0.396078431372549, 0.2823529411764706) ,
+ rgb (0.8431372549019608, 0.18823529411764706, 0.12156862745098039) ,
+ rgb (0.7019607843137254, 0.0, 0.0) ,
+ rgb (0.4980392156862745, 0.0, 0.0)
+ });
list_data Oranges = list_data(new pen[] {
- rgb (1.0, 0.9607843137254902, 0.9215686274509803) ,
- rgb (0.996078431372549, 0.9019607843137255, 0.807843137254902) ,
- rgb (0.9921568627450981, 0.8156862745098039, 0.6352941176470588) ,
- rgb (0.9921568627450981, 0.6823529411764706, 0.4196078431372549) ,
- rgb (0.9921568627450981, 0.5529411764705883, 0.23529411764705882) ,
- rgb (0.9450980392156862, 0.4117647058823529, 0.07450980392156863) ,
- rgb (0.8509803921568627, 0.2823529411764706, 0.00392156862745098) ,
- rgb (0.6509803921568628, 0.21176470588235294, 0.01176470588235294) ,
- rgb (0.4980392156862745, 0.15294117647058825, 0.01568627450980392)
-});
+ rgb (1.0, 0.9607843137254902, 0.9215686274509803) ,
+ rgb (0.996078431372549, 0.9019607843137255, 0.807843137254902) ,
+ rgb (0.9921568627450981, 0.8156862745098039, 0.6352941176470588) ,
+ rgb (0.9921568627450981, 0.6823529411764706, 0.4196078431372549) ,
+ rgb (0.9921568627450981, 0.5529411764705883, 0.23529411764705882) ,
+ rgb (0.9450980392156862, 0.4117647058823529, 0.07450980392156863) ,
+ rgb (0.8509803921568627, 0.2823529411764706, 0.00392156862745098) ,
+ rgb (0.6509803921568628, 0.21176470588235294, 0.01176470588235294) ,
+ rgb (0.4980392156862745, 0.15294117647058825, 0.01568627450980392)
+ });
list_data PRGn = list_data(new pen[] {
- rgb (0.25098039215686274, 0.0, 0.29411764705882354) ,
- rgb (0.4627450980392157, 0.16470588235294117, 0.5137254901960784) ,
- rgb (0.6, 0.4392156862745098, 0.6705882352941176) ,
- rgb (0.7607843137254902, 0.6470588235294118, 0.8117647058823529) ,
- rgb (0.9058823529411765, 0.8313725490196079, 0.9098039215686274) ,
- rgb (0.9686274509803922, 0.9686274509803922, 0.9686274509803922) ,
- rgb (0.8509803921568627, 0.9411764705882353, 0.8274509803921568) ,
- rgb (0.6509803921568628, 0.8588235294117647, 0.6274509803921569) ,
- rgb (0.35294117647058826, 0.6823529411764706, 0.3803921568627451) ,
- rgb (0.10588235294117647, 0.47058823529411764, 0.21568627450980393) ,
- rgb (0.0, 0.26666666666666666, 0.10588235294117647)
-});
+ rgb (0.25098039215686274, 0.0, 0.29411764705882354) ,
+ rgb (0.4627450980392157, 0.16470588235294117, 0.5137254901960784) ,
+ rgb (0.6, 0.4392156862745098, 0.6705882352941176) ,
+ rgb (0.7607843137254902, 0.6470588235294118, 0.8117647058823529) ,
+ rgb (0.9058823529411765, 0.8313725490196079, 0.9098039215686274) ,
+ rgb (0.9686274509803922, 0.9686274509803922, 0.9686274509803922) ,
+ rgb (0.8509803921568627, 0.9411764705882353, 0.8274509803921568) ,
+ rgb (0.6509803921568628, 0.8588235294117647, 0.6274509803921569) ,
+ rgb (0.35294117647058826, 0.6823529411764706, 0.3803921568627451) ,
+ rgb (0.10588235294117647, 0.47058823529411764, 0.21568627450980393) ,
+ rgb (0.0, 0.26666666666666666, 0.10588235294117647)
+ });
list_data Paired = list_data(new pen[] {
- rgb (0.6509803921568628, 0.807843137254902, 0.8901960784313725) ,
- rgb (0.12156862745098039, 0.47058823529411764, 0.7058823529411765) ,
- rgb (0.6980392156862745, 0.8745098039215686, 0.5411764705882353) ,
- rgb (0.2, 0.6274509803921569, 0.17254901960784313) ,
- rgb (0.984313725490196, 0.6039215686274509, 0.6) ,
- rgb (0.8901960784313725, 0.10196078431372549, 0.10980392156862745) ,
- rgb (0.9921568627450981, 0.7490196078431373, 0.43529411764705883) ,
- rgb (1.0, 0.4980392156862745, 0.0) ,
- rgb (0.792156862745098, 0.6980392156862745, 0.8392156862745098) ,
- rgb (0.41568627450980394, 0.23921568627450981, 0.6039215686274509) ,
- rgb (1.0, 1.0, 0.6) ,
- rgb (0.6941176470588235, 0.34901960784313724, 0.1568627450980392)
-});
+ rgb (0.6509803921568628, 0.807843137254902, 0.8901960784313725) ,
+ rgb (0.12156862745098039, 0.47058823529411764, 0.7058823529411765) ,
+ rgb (0.6980392156862745, 0.8745098039215686, 0.5411764705882353) ,
+ rgb (0.2, 0.6274509803921569, 0.17254901960784313) ,
+ rgb (0.984313725490196, 0.6039215686274509, 0.6) ,
+ rgb (0.8901960784313725, 0.10196078431372549, 0.10980392156862745) ,
+ rgb (0.9921568627450981, 0.7490196078431373, 0.43529411764705883) ,
+ rgb (1.0, 0.4980392156862745, 0.0) ,
+ rgb (0.792156862745098, 0.6980392156862745, 0.8392156862745098) ,
+ rgb (0.41568627450980394, 0.23921568627450981, 0.6039215686274509) ,
+ rgb (1.0, 1.0, 0.6) ,
+ rgb (0.6941176470588235, 0.34901960784313724, 0.1568627450980392)
+ });
list_data Pastel1 = list_data(new pen[] {
- rgb (0.984313725490196, 0.7058823529411765, 0.6823529411764706) ,
- rgb (0.7019607843137254, 0.803921568627451, 0.8901960784313725) ,
- rgb (0.8, 0.9215686274509803, 0.7725490196078432) ,
- rgb (0.8705882352941177, 0.796078431372549, 0.8941176470588236) ,
- rgb (0.996078431372549, 0.8509803921568627, 0.6509803921568628) ,
- rgb (1.0, 1.0, 0.8) ,
- rgb (0.8980392156862745, 0.8470588235294118, 0.7411764705882353) ,
- rgb (0.9921568627450981, 0.8549019607843137, 0.9254901960784314) ,
- rgb (0.9490196078431372, 0.9490196078431372, 0.9490196078431372)
-});
+ rgb (0.984313725490196, 0.7058823529411765, 0.6823529411764706) ,
+ rgb (0.7019607843137254, 0.803921568627451, 0.8901960784313725) ,
+ rgb (0.8, 0.9215686274509803, 0.7725490196078432) ,
+ rgb (0.8705882352941177, 0.796078431372549, 0.8941176470588236) ,
+ rgb (0.996078431372549, 0.8509803921568627, 0.6509803921568628) ,
+ rgb (1.0, 1.0, 0.8) ,
+ rgb (0.8980392156862745, 0.8470588235294118, 0.7411764705882353) ,
+ rgb (0.9921568627450981, 0.8549019607843137, 0.9254901960784314) ,
+ rgb (0.9490196078431372, 0.9490196078431372, 0.9490196078431372)
+ });
list_data Pastel2 = list_data(new pen[] {
- rgb (0.7019607843137254, 0.8862745098039215, 0.803921568627451) ,
- rgb (0.9921568627450981, 0.803921568627451, 0.6745098039215687) ,
- rgb (0.796078431372549, 0.8352941176470589, 0.9098039215686274) ,
- rgb (0.9568627450980393, 0.792156862745098, 0.8941176470588236) ,
- rgb (0.9019607843137255, 0.9607843137254902, 0.788235294117647) ,
- rgb (1.0, 0.9490196078431372, 0.6823529411764706) ,
- rgb (0.9450980392156862, 0.8862745098039215, 0.8) ,
- rgb (0.8, 0.8, 0.8)
-});
+ rgb (0.7019607843137254, 0.8862745098039215, 0.803921568627451) ,
+ rgb (0.9921568627450981, 0.803921568627451, 0.6745098039215687) ,
+ rgb (0.796078431372549, 0.8352941176470589, 0.9098039215686274) ,
+ rgb (0.9568627450980393, 0.792156862745098, 0.8941176470588236) ,
+ rgb (0.9019607843137255, 0.9607843137254902, 0.788235294117647) ,
+ rgb (1.0, 0.9490196078431372, 0.6823529411764706) ,
+ rgb (0.9450980392156862, 0.8862745098039215, 0.8) ,
+ rgb (0.8, 0.8, 0.8)
+ });
list_data PiYG = list_data(new pen[] {
- rgb (0.5568627450980392, 0.00392156862745098, 0.3215686274509804) ,
- rgb (0.7725490196078432, 0.10588235294117647, 0.49019607843137253) ,
- rgb (0.8705882352941177, 0.4666666666666667, 0.6823529411764706) ,
- rgb (0.9450980392156862, 0.7137254901960784, 0.8549019607843137) ,
- rgb (0.9921568627450981, 0.8784313725490196, 0.9372549019607843) ,
- rgb (0.9686274509803922, 0.9686274509803922, 0.9686274509803922) ,
- rgb (0.9019607843137255, 0.9607843137254902, 0.8156862745098039) ,
- rgb (0.7215686274509804, 0.8823529411764706, 0.5254901960784314) ,
- rgb (0.4980392156862745, 0.7372549019607844, 0.2549019607843137) ,
- rgb (0.30196078431372547, 0.5725490196078431, 0.12941176470588237) ,
- rgb (0.15294117647058825, 0.39215686274509803, 0.09803921568627451)
-});
+ rgb (0.5568627450980392, 0.00392156862745098, 0.3215686274509804) ,
+ rgb (0.7725490196078432, 0.10588235294117647, 0.49019607843137253) ,
+ rgb (0.8705882352941177, 0.4666666666666667, 0.6823529411764706) ,
+ rgb (0.9450980392156862, 0.7137254901960784, 0.8549019607843137) ,
+ rgb (0.9921568627450981, 0.8784313725490196, 0.9372549019607843) ,
+ rgb (0.9686274509803922, 0.9686274509803922, 0.9686274509803922) ,
+ rgb (0.9019607843137255, 0.9607843137254902, 0.8156862745098039) ,
+ rgb (0.7215686274509804, 0.8823529411764706, 0.5254901960784314) ,
+ rgb (0.4980392156862745, 0.7372549019607844, 0.2549019607843137) ,
+ rgb (0.30196078431372547, 0.5725490196078431, 0.12941176470588237) ,
+ rgb (0.15294117647058825, 0.39215686274509803, 0.09803921568627451)
+ });
list_data PuBuGn = list_data(new pen[] {
- rgb (1.0, 0.9686274509803922, 0.984313725490196) ,
- rgb (0.9254901960784314, 0.8862745098039215, 0.9411764705882353) ,
- rgb (0.8156862745098039, 0.8196078431372549, 0.9019607843137255) ,
- rgb (0.6509803921568628, 0.7411764705882353, 0.8588235294117647) ,
- rgb (0.403921568627451, 0.6627450980392157, 0.8117647058823529) ,
- rgb (0.21176470588235294, 0.5647058823529412, 0.7529411764705882) ,
- rgb (0.00784313725490196, 0.5058823529411764, 0.5411764705882353) ,
- rgb (0.00392156862745098, 0.4235294117647059, 0.34901960784313724) ,
- rgb (0.00392156862745098, 0.27450980392156865, 0.21176470588235294)
-});
+ rgb (1.0, 0.9686274509803922, 0.984313725490196) ,
+ rgb (0.9254901960784314, 0.8862745098039215, 0.9411764705882353) ,
+ rgb (0.8156862745098039, 0.8196078431372549, 0.9019607843137255) ,
+ rgb (0.6509803921568628, 0.7411764705882353, 0.8588235294117647) ,
+ rgb (0.403921568627451, 0.6627450980392157, 0.8117647058823529) ,
+ rgb (0.21176470588235294, 0.5647058823529412, 0.7529411764705882) ,
+ rgb (0.00784313725490196, 0.5058823529411764, 0.5411764705882353) ,
+ rgb (0.00392156862745098, 0.4235294117647059, 0.34901960784313724) ,
+ rgb (0.00392156862745098, 0.27450980392156865, 0.21176470588235294)
+ });
list_data PuBu = list_data(new pen[] {
- rgb (1.0, 0.9686274509803922, 0.984313725490196) ,
- rgb (0.9254901960784314, 0.9058823529411765, 0.9490196078431372) ,
- rgb (0.8156862745098039, 0.8196078431372549, 0.9019607843137255) ,
- rgb (0.6509803921568628, 0.7411764705882353, 0.8588235294117647) ,
- rgb (0.4549019607843137, 0.6627450980392157, 0.8117647058823529) ,
- rgb (0.21176470588235294, 0.5647058823529412, 0.7529411764705882) ,
- rgb (0.0196078431372549, 0.4392156862745098, 0.6901960784313725) ,
- rgb (0.01568627450980392, 0.35294117647058826, 0.5529411764705883) ,
- rgb (0.00784313725490196, 0.2196078431372549, 0.34509803921568627)
-});
+ rgb (1.0, 0.9686274509803922, 0.984313725490196) ,
+ rgb (0.9254901960784314, 0.9058823529411765, 0.9490196078431372) ,
+ rgb (0.8156862745098039, 0.8196078431372549, 0.9019607843137255) ,
+ rgb (0.6509803921568628, 0.7411764705882353, 0.8588235294117647) ,
+ rgb (0.4549019607843137, 0.6627450980392157, 0.8117647058823529) ,
+ rgb (0.21176470588235294, 0.5647058823529412, 0.7529411764705882) ,
+ rgb (0.0196078431372549, 0.4392156862745098, 0.6901960784313725) ,
+ rgb (0.01568627450980392, 0.35294117647058826, 0.5529411764705883) ,
+ rgb (0.00784313725490196, 0.2196078431372549, 0.34509803921568627)
+ });
list_data PuOr = list_data(new pen[] {
- rgb (0.4980392156862745, 0.23137254901960785, 0.03137254901960784) ,
- rgb (0.7019607843137254, 0.34509803921568627, 0.02352941176470588) ,
- rgb (0.8784313725490196, 0.5098039215686274, 0.0784313725490196) ,
- rgb (0.9921568627450981, 0.7215686274509804, 0.38823529411764707) ,
- rgb (0.996078431372549, 0.8784313725490196, 0.7137254901960784) ,
- rgb (0.9686274509803922, 0.9686274509803922, 0.9686274509803922) ,
- rgb (0.8470588235294118, 0.8549019607843137, 0.9215686274509803) ,
- rgb (0.6980392156862745, 0.6705882352941176, 0.8235294117647058) ,
- rgb (0.5019607843137255, 0.45098039215686275, 0.6745098039215687) ,
- rgb (0.32941176470588235, 0.15294117647058825, 0.5333333333333333) ,
- rgb (0.17647058823529413, 0.0, 0.29411764705882354)
-});
+ rgb (0.4980392156862745, 0.23137254901960785, 0.03137254901960784) ,
+ rgb (0.7019607843137254, 0.34509803921568627, 0.02352941176470588) ,
+ rgb (0.8784313725490196, 0.5098039215686274, 0.0784313725490196) ,
+ rgb (0.9921568627450981, 0.7215686274509804, 0.38823529411764707) ,
+ rgb (0.996078431372549, 0.8784313725490196, 0.7137254901960784) ,
+ rgb (0.9686274509803922, 0.9686274509803922, 0.9686274509803922) ,
+ rgb (0.8470588235294118, 0.8549019607843137, 0.9215686274509803) ,
+ rgb (0.6980392156862745, 0.6705882352941176, 0.8235294117647058) ,
+ rgb (0.5019607843137255, 0.45098039215686275, 0.6745098039215687) ,
+ rgb (0.32941176470588235, 0.15294117647058825, 0.5333333333333333) ,
+ rgb (0.17647058823529413, 0.0, 0.29411764705882354)
+ });
list_data PuRd = list_data(new pen[] {
- rgb (0.9686274509803922, 0.9568627450980393, 0.9764705882352941) ,
- rgb (0.9058823529411765, 0.8823529411764706, 0.9372549019607843) ,
- rgb (0.8313725490196079, 0.7254901960784313, 0.8549019607843137) ,
- rgb (0.788235294117647, 0.5803921568627451, 0.7803921568627451) ,
- rgb (0.8745098039215686, 0.396078431372549, 0.6901960784313725) ,
- rgb (0.9058823529411765, 0.1607843137254902, 0.5411764705882353) ,
- rgb (0.807843137254902, 0.07058823529411765, 0.33725490196078434) ,
- rgb (0.596078431372549, 0.0, 0.2627450980392157) ,
- rgb (0.403921568627451, 0.0, 0.12156862745098039)
-});
+ rgb (0.9686274509803922, 0.9568627450980393, 0.9764705882352941) ,
+ rgb (0.9058823529411765, 0.8823529411764706, 0.9372549019607843) ,
+ rgb (0.8313725490196079, 0.7254901960784313, 0.8549019607843137) ,
+ rgb (0.788235294117647, 0.5803921568627451, 0.7803921568627451) ,
+ rgb (0.8745098039215686, 0.396078431372549, 0.6901960784313725) ,
+ rgb (0.9058823529411765, 0.1607843137254902, 0.5411764705882353) ,
+ rgb (0.807843137254902, 0.07058823529411765, 0.33725490196078434) ,
+ rgb (0.596078431372549, 0.0, 0.2627450980392157) ,
+ rgb (0.403921568627451, 0.0, 0.12156862745098039)
+ });
list_data Purples = list_data(new pen[] {
- rgb (0.9882352941176471, 0.984313725490196, 0.9921568627450981) ,
- rgb (0.9372549019607843, 0.9294117647058824, 0.9607843137254902) ,
- rgb (0.8549019607843137, 0.8549019607843137, 0.9215686274509803) ,
- rgb (0.7372549019607844, 0.7411764705882353, 0.8627450980392157) ,
- rgb (0.6196078431372549, 0.6039215686274509, 0.7843137254901961) ,
- rgb (0.5019607843137255, 0.49019607843137253, 0.7294117647058823) ,
- rgb (0.41568627450980394, 0.3176470588235294, 0.6392156862745098) ,
- rgb (0.32941176470588235, 0.15294117647058825, 0.5607843137254902) ,
- rgb (0.24705882352941178, 0.0, 0.49019607843137253)
-});
+ rgb (0.9882352941176471, 0.984313725490196, 0.9921568627450981) ,
+ rgb (0.9372549019607843, 0.9294117647058824, 0.9607843137254902) ,
+ rgb (0.8549019607843137, 0.8549019607843137, 0.9215686274509803) ,
+ rgb (0.7372549019607844, 0.7411764705882353, 0.8627450980392157) ,
+ rgb (0.6196078431372549, 0.6039215686274509, 0.7843137254901961) ,
+ rgb (0.5019607843137255, 0.49019607843137253, 0.7294117647058823) ,
+ rgb (0.41568627450980394, 0.3176470588235294, 0.6392156862745098) ,
+ rgb (0.32941176470588235, 0.15294117647058825, 0.5607843137254902) ,
+ rgb (0.24705882352941178, 0.0, 0.49019607843137253)
+ });
list_data RdBu = list_data(new pen[] {
- rgb (0.403921568627451, 0.0, 0.12156862745098039) ,
- rgb (0.6980392156862745, 0.09411764705882353, 0.16862745098039217) ,
- rgb (0.8392156862745098, 0.3764705882352941, 0.30196078431372547) ,
- rgb (0.9568627450980393, 0.6470588235294118, 0.5098039215686274) ,
- rgb (0.9921568627450981, 0.8588235294117647, 0.7803921568627451) ,
- rgb (0.9686274509803922, 0.9686274509803922, 0.9686274509803922) ,
- rgb (0.8196078431372549, 0.8980392156862745, 0.9411764705882353) ,
- rgb (0.5725490196078431, 0.7725490196078432, 0.8705882352941177) ,
- rgb (0.2627450980392157, 0.5764705882352941, 0.7647058823529411) ,
- rgb (0.12941176470588237, 0.4, 0.6745098039215687) ,
- rgb (0.0196078431372549, 0.18823529411764706, 0.3803921568627451)
-});
+ rgb (0.403921568627451, 0.0, 0.12156862745098039) ,
+ rgb (0.6980392156862745, 0.09411764705882353, 0.16862745098039217) ,
+ rgb (0.8392156862745098, 0.3764705882352941, 0.30196078431372547) ,
+ rgb (0.9568627450980393, 0.6470588235294118, 0.5098039215686274) ,
+ rgb (0.9921568627450981, 0.8588235294117647, 0.7803921568627451) ,
+ rgb (0.9686274509803922, 0.9686274509803922, 0.9686274509803922) ,
+ rgb (0.8196078431372549, 0.8980392156862745, 0.9411764705882353) ,
+ rgb (0.5725490196078431, 0.7725490196078432, 0.8705882352941177) ,
+ rgb (0.2627450980392157, 0.5764705882352941, 0.7647058823529411) ,
+ rgb (0.12941176470588237, 0.4, 0.6745098039215687) ,
+ rgb (0.0196078431372549, 0.18823529411764706, 0.3803921568627451)
+ });
list_data RdGy = list_data(new pen[] {
- rgb (0.403921568627451, 0.0, 0.12156862745098039) ,
- rgb (0.6980392156862745, 0.09411764705882353, 0.16862745098039217) ,
- rgb (0.8392156862745098, 0.3764705882352941, 0.30196078431372547) ,
- rgb (0.9568627450980393, 0.6470588235294118, 0.5098039215686274) ,
- rgb (0.9921568627450981, 0.8588235294117647, 0.7803921568627451) ,
- rgb (1.0, 1.0, 1.0) ,
- rgb (0.8784313725490196, 0.8784313725490196, 0.8784313725490196) ,
- rgb (0.7294117647058823, 0.7294117647058823, 0.7294117647058823) ,
- rgb (0.5294117647058824, 0.5294117647058824, 0.5294117647058824) ,
- rgb (0.30196078431372547, 0.30196078431372547, 0.30196078431372547) ,
- rgb (0.10196078431372549, 0.10196078431372549, 0.10196078431372549)
-});
+ rgb (0.403921568627451, 0.0, 0.12156862745098039) ,
+ rgb (0.6980392156862745, 0.09411764705882353, 0.16862745098039217) ,
+ rgb (0.8392156862745098, 0.3764705882352941, 0.30196078431372547) ,
+ rgb (0.9568627450980393, 0.6470588235294118, 0.5098039215686274) ,
+ rgb (0.9921568627450981, 0.8588235294117647, 0.7803921568627451) ,
+ rgb (1.0, 1.0, 1.0) ,
+ rgb (0.8784313725490196, 0.8784313725490196, 0.8784313725490196) ,
+ rgb (0.7294117647058823, 0.7294117647058823, 0.7294117647058823) ,
+ rgb (0.5294117647058824, 0.5294117647058824, 0.5294117647058824) ,
+ rgb (0.30196078431372547, 0.30196078431372547, 0.30196078431372547) ,
+ rgb (0.10196078431372549, 0.10196078431372549, 0.10196078431372549)
+ });
list_data RdPu = list_data(new pen[] {
- rgb (1.0, 0.9686274509803922, 0.9529411764705882) ,
- rgb (0.9921568627450981, 0.8784313725490196, 0.8666666666666667) ,
- rgb (0.9882352941176471, 0.7725490196078432, 0.7529411764705882) ,
- rgb (0.9803921568627451, 0.6235294117647059, 0.7098039215686275) ,
- rgb (0.9686274509803922, 0.40784313725490196, 0.6313725490196078) ,
- rgb (0.8666666666666667, 0.20392156862745098, 0.592156862745098) ,
- rgb (0.6823529411764706, 0.00392156862745098, 0.49411764705882355) ,
- rgb (0.47843137254901963, 0.00392156862745098, 0.4666666666666667) ,
- rgb (0.28627450980392155, 0.0, 0.41568627450980394)
-});
+ rgb (1.0, 0.9686274509803922, 0.9529411764705882) ,
+ rgb (0.9921568627450981, 0.8784313725490196, 0.8666666666666667) ,
+ rgb (0.9882352941176471, 0.7725490196078432, 0.7529411764705882) ,
+ rgb (0.9803921568627451, 0.6235294117647059, 0.7098039215686275) ,
+ rgb (0.9686274509803922, 0.40784313725490196, 0.6313725490196078) ,
+ rgb (0.8666666666666667, 0.20392156862745098, 0.592156862745098) ,
+ rgb (0.6823529411764706, 0.00392156862745098, 0.49411764705882355) ,
+ rgb (0.47843137254901963, 0.00392156862745098, 0.4666666666666667) ,
+ rgb (0.28627450980392155, 0.0, 0.41568627450980394)
+ });
list_data RdYlBu = list_data(new pen[] {
- rgb (0.6470588235294118, 0.0, 0.14901960784313725) ,
- rgb (0.8431372549019608, 0.18823529411764706, 0.15294117647058825) ,
- rgb (0.9568627450980393, 0.42745098039215684, 0.2627450980392157) ,
- rgb (0.9921568627450981, 0.6823529411764706, 0.3803921568627451) ,
- rgb (0.996078431372549, 0.8784313725490196, 0.5647058823529412) ,
- rgb (1.0, 1.0, 0.7490196078431373) ,
- rgb (0.8784313725490196, 0.9529411764705882, 0.9725490196078431) ,
- rgb (0.6705882352941176, 0.8509803921568627, 0.9137254901960784) ,
- rgb (0.4549019607843137, 0.6784313725490196, 0.8196078431372549) ,
- rgb (0.27058823529411763, 0.4588235294117647, 0.7058823529411765) ,
- rgb (0.19215686274509805, 0.21176470588235294, 0.5843137254901961)
-});
+ rgb (0.6470588235294118, 0.0, 0.14901960784313725) ,
+ rgb (0.8431372549019608, 0.18823529411764706, 0.15294117647058825) ,
+ rgb (0.9568627450980393, 0.42745098039215684, 0.2627450980392157) ,
+ rgb (0.9921568627450981, 0.6823529411764706, 0.3803921568627451) ,
+ rgb (0.996078431372549, 0.8784313725490196, 0.5647058823529412) ,
+ rgb (1.0, 1.0, 0.7490196078431373) ,
+ rgb (0.8784313725490196, 0.9529411764705882, 0.9725490196078431) ,
+ rgb (0.6705882352941176, 0.8509803921568627, 0.9137254901960784) ,
+ rgb (0.4549019607843137, 0.6784313725490196, 0.8196078431372549) ,
+ rgb (0.27058823529411763, 0.4588235294117647, 0.7058823529411765) ,
+ rgb (0.19215686274509805, 0.21176470588235294, 0.5843137254901961)
+ });
list_data RdYlGn = list_data(new pen[] {
- rgb (0.6470588235294118, 0.0, 0.14901960784313725) ,
- rgb (0.8431372549019608, 0.18823529411764706, 0.15294117647058825) ,
- rgb (0.9568627450980393, 0.42745098039215684, 0.2627450980392157) ,
- rgb (0.9921568627450981, 0.6823529411764706, 0.3803921568627451) ,
- rgb (0.996078431372549, 0.8784313725490196, 0.5450980392156862) ,
- rgb (1.0, 1.0, 0.7490196078431373) ,
- rgb (0.8509803921568627, 0.9372549019607843, 0.5450980392156862) ,
- rgb (0.6509803921568628, 0.8509803921568627, 0.41568627450980394) ,
- rgb (0.4, 0.7411764705882353, 0.38823529411764707) ,
- rgb (0.10196078431372549, 0.596078431372549, 0.3137254901960784) ,
- rgb (0.0, 0.40784313725490196, 0.21568627450980393)
-});
+ rgb (0.6470588235294118, 0.0, 0.14901960784313725) ,
+ rgb (0.8431372549019608, 0.18823529411764706, 0.15294117647058825) ,
+ rgb (0.9568627450980393, 0.42745098039215684, 0.2627450980392157) ,
+ rgb (0.9921568627450981, 0.6823529411764706, 0.3803921568627451) ,
+ rgb (0.996078431372549, 0.8784313725490196, 0.5450980392156862) ,
+ rgb (1.0, 1.0, 0.7490196078431373) ,
+ rgb (0.8509803921568627, 0.9372549019607843, 0.5450980392156862) ,
+ rgb (0.6509803921568628, 0.8509803921568627, 0.41568627450980394) ,
+ rgb (0.4, 0.7411764705882353, 0.38823529411764707) ,
+ rgb (0.10196078431372549, 0.596078431372549, 0.3137254901960784) ,
+ rgb (0.0, 0.40784313725490196, 0.21568627450980393)
+ });
list_data Reds = list_data(new pen[] {
- rgb (1.0, 0.9607843137254902, 0.9411764705882353) ,
- rgb (0.996078431372549, 0.8784313725490196, 0.8235294117647058) ,
- rgb (0.9882352941176471, 0.7333333333333333, 0.6313725490196078) ,
- rgb (0.9882352941176471, 0.5725490196078431, 0.4470588235294118) ,
- rgb (0.984313725490196, 0.41568627450980394, 0.2901960784313726) ,
- rgb (0.9372549019607843, 0.23137254901960785, 0.17254901960784313) ,
- rgb (0.796078431372549, 0.09411764705882353, 0.11372549019607843) ,
- rgb (0.6470588235294118, 0.058823529411764705, 0.08235294117647057) ,
- rgb (0.403921568627451, 0.0, 0.05098039215686274)
-});
+ rgb (1.0, 0.9607843137254902, 0.9411764705882353) ,
+ rgb (0.996078431372549, 0.8784313725490196, 0.8235294117647058) ,
+ rgb (0.9882352941176471, 0.7333333333333333, 0.6313725490196078) ,
+ rgb (0.9882352941176471, 0.5725490196078431, 0.4470588235294118) ,
+ rgb (0.984313725490196, 0.41568627450980394, 0.2901960784313726) ,
+ rgb (0.9372549019607843, 0.23137254901960785, 0.17254901960784313) ,
+ rgb (0.796078431372549, 0.09411764705882353, 0.11372549019607843) ,
+ rgb (0.6470588235294118, 0.058823529411764705, 0.08235294117647057) ,
+ rgb (0.403921568627451, 0.0, 0.05098039215686274)
+ });
list_data Set1 = list_data(new pen[] {
- rgb (0.8941176470588236, 0.10196078431372549, 0.10980392156862745) ,
- rgb (0.21568627450980393, 0.49411764705882355, 0.7215686274509804) ,
- rgb (0.30196078431372547, 0.6862745098039216, 0.2901960784313726) ,
- rgb (0.596078431372549, 0.3058823529411765, 0.6392156862745098) ,
- rgb (1.0, 0.4980392156862745, 0.0) ,
- rgb (1.0, 1.0, 0.2) ,
- rgb (0.6509803921568628, 0.33725490196078434, 0.1568627450980392) ,
- rgb (0.9686274509803922, 0.5058823529411764, 0.7490196078431373) ,
- rgb (0.6, 0.6, 0.6)
-});
+ rgb (0.8941176470588236, 0.10196078431372549, 0.10980392156862745) ,
+ rgb (0.21568627450980393, 0.49411764705882355, 0.7215686274509804) ,
+ rgb (0.30196078431372547, 0.6862745098039216, 0.2901960784313726) ,
+ rgb (0.596078431372549, 0.3058823529411765, 0.6392156862745098) ,
+ rgb (1.0, 0.4980392156862745, 0.0) ,
+ rgb (1.0, 1.0, 0.2) ,
+ rgb (0.6509803921568628, 0.33725490196078434, 0.1568627450980392) ,
+ rgb (0.9686274509803922, 0.5058823529411764, 0.7490196078431373) ,
+ rgb (0.6, 0.6, 0.6)
+ });
list_data Set2 = list_data(new pen[] {
- rgb (0.4, 0.7607843137254902, 0.6470588235294118) ,
- rgb (0.9882352941176471, 0.5529411764705883, 0.3843137254901961) ,
- rgb (0.5529411764705883, 0.6274509803921569, 0.796078431372549) ,
- rgb (0.9058823529411765, 0.5411764705882353, 0.7647058823529411) ,
- rgb (0.6509803921568628, 0.8470588235294118, 0.32941176470588235) ,
- rgb (1.0, 0.8509803921568627, 0.1843137254901961) ,
- rgb (0.8980392156862745, 0.7686274509803922, 0.5803921568627451) ,
- rgb (0.7019607843137254, 0.7019607843137254, 0.7019607843137254)
-});
+ rgb (0.4, 0.7607843137254902, 0.6470588235294118) ,
+ rgb (0.9882352941176471, 0.5529411764705883, 0.3843137254901961) ,
+ rgb (0.5529411764705883, 0.6274509803921569, 0.796078431372549) ,
+ rgb (0.9058823529411765, 0.5411764705882353, 0.7647058823529411) ,
+ rgb (0.6509803921568628, 0.8470588235294118, 0.32941176470588235) ,
+ rgb (1.0, 0.8509803921568627, 0.1843137254901961) ,
+ rgb (0.8980392156862745, 0.7686274509803922, 0.5803921568627451) ,
+ rgb (0.7019607843137254, 0.7019607843137254, 0.7019607843137254)
+ });
list_data Set3 = list_data(new pen[] {
- rgb (0.5529411764705883, 0.8274509803921568, 0.7803921568627451) ,
- rgb (1.0, 1.0, 0.7019607843137254) ,
- rgb (0.7450980392156863, 0.7294117647058823, 0.8549019607843137) ,
- rgb (0.984313725490196, 0.5019607843137255, 0.4470588235294118) ,
- rgb (0.5019607843137255, 0.6941176470588235, 0.8274509803921568) ,
- rgb (0.9921568627450981, 0.7058823529411765, 0.3843137254901961) ,
- rgb (0.7019607843137254, 0.8705882352941177, 0.4117647058823529) ,
- rgb (0.9882352941176471, 0.803921568627451, 0.8980392156862745) ,
- rgb (0.8509803921568627, 0.8509803921568627, 0.8509803921568627) ,
- rgb (0.7372549019607844, 0.5019607843137255, 0.7411764705882353) ,
- rgb (0.8, 0.9215686274509803, 0.7725490196078432) ,
- rgb (1.0, 0.9294117647058824, 0.43529411764705883)
-});
+ rgb (0.5529411764705883, 0.8274509803921568, 0.7803921568627451) ,
+ rgb (1.0, 1.0, 0.7019607843137254) ,
+ rgb (0.7450980392156863, 0.7294117647058823, 0.8549019607843137) ,
+ rgb (0.984313725490196, 0.5019607843137255, 0.4470588235294118) ,
+ rgb (0.5019607843137255, 0.6941176470588235, 0.8274509803921568) ,
+ rgb (0.9921568627450981, 0.7058823529411765, 0.3843137254901961) ,
+ rgb (0.7019607843137254, 0.8705882352941177, 0.4117647058823529) ,
+ rgb (0.9882352941176471, 0.803921568627451, 0.8980392156862745) ,
+ rgb (0.8509803921568627, 0.8509803921568627, 0.8509803921568627) ,
+ rgb (0.7372549019607844, 0.5019607843137255, 0.7411764705882353) ,
+ rgb (0.8, 0.9215686274509803, 0.7725490196078432) ,
+ rgb (1.0, 0.9294117647058824, 0.43529411764705883)
+ });
list_data Spectral = list_data(new pen[] {
- rgb (0.6196078431372549, 0.00392156862745098, 0.25882352941176473) ,
- rgb (0.8352941176470589, 0.24313725490196078, 0.30980392156862746) ,
- rgb (0.9568627450980393, 0.42745098039215684, 0.2627450980392157) ,
- rgb (0.9921568627450981, 0.6823529411764706, 0.3803921568627451) ,
- rgb (0.996078431372549, 0.8784313725490196, 0.5450980392156862) ,
- rgb (1.0, 1.0, 0.7490196078431373) ,
- rgb (0.9019607843137255, 0.9607843137254902, 0.596078431372549) ,
- rgb (0.6705882352941176, 0.8666666666666667, 0.6431372549019608) ,
- rgb (0.4, 0.7607843137254902, 0.6470588235294118) ,
- rgb (0.19607843137254902, 0.5333333333333333, 0.7411764705882353) ,
- rgb (0.3686274509803922, 0.30980392156862746, 0.6352941176470588)
-});
+ rgb (0.6196078431372549, 0.00392156862745098, 0.25882352941176473) ,
+ rgb (0.8352941176470589, 0.24313725490196078, 0.30980392156862746) ,
+ rgb (0.9568627450980393, 0.42745098039215684, 0.2627450980392157) ,
+ rgb (0.9921568627450981, 0.6823529411764706, 0.3803921568627451) ,
+ rgb (0.996078431372549, 0.8784313725490196, 0.5450980392156862) ,
+ rgb (1.0, 1.0, 0.7490196078431373) ,
+ rgb (0.9019607843137255, 0.9607843137254902, 0.596078431372549) ,
+ rgb (0.6705882352941176, 0.8666666666666667, 0.6431372549019608) ,
+ rgb (0.4, 0.7607843137254902, 0.6470588235294118) ,
+ rgb (0.19607843137254902, 0.5333333333333333, 0.7411764705882353) ,
+ rgb (0.3686274509803922, 0.30980392156862746, 0.6352941176470588)
+ });
list_data YlGnBu = list_data(new pen[] {
- rgb (1.0, 1.0, 0.8509803921568627) ,
- rgb (0.9294117647058824, 0.9725490196078431, 0.6941176470588235) ,
- rgb (0.7803921568627451, 0.9137254901960784, 0.7058823529411765) ,
- rgb (0.4980392156862745, 0.803921568627451, 0.7333333333333333) ,
- rgb (0.2549019607843137, 0.7137254901960784, 0.7686274509803922) ,
- rgb (0.11372549019607843, 0.5686274509803921, 0.7529411764705882) ,
- rgb (0.13333333333333333, 0.3686274509803922, 0.6588235294117647) ,
- rgb (0.1450980392156863, 0.20392156862745098, 0.5803921568627451) ,
- rgb (0.03137254901960784, 0.11372549019607843, 0.34509803921568627)
-});
+ rgb (1.0, 1.0, 0.8509803921568627) ,
+ rgb (0.9294117647058824, 0.9725490196078431, 0.6941176470588235) ,
+ rgb (0.7803921568627451, 0.9137254901960784, 0.7058823529411765) ,
+ rgb (0.4980392156862745, 0.803921568627451, 0.7333333333333333) ,
+ rgb (0.2549019607843137, 0.7137254901960784, 0.7686274509803922) ,
+ rgb (0.11372549019607843, 0.5686274509803921, 0.7529411764705882) ,
+ rgb (0.13333333333333333, 0.3686274509803922, 0.6588235294117647) ,
+ rgb (0.1450980392156863, 0.20392156862745098, 0.5803921568627451) ,
+ rgb (0.03137254901960784, 0.11372549019607843, 0.34509803921568627)
+ });
list_data YlGn = list_data(new pen[] {
- rgb (1.0, 1.0, 0.8980392156862745) ,
- rgb (0.9686274509803922, 0.9882352941176471, 0.7254901960784313) ,
- rgb (0.8509803921568627, 0.9411764705882353, 0.6392156862745098) ,
- rgb (0.6784313725490196, 0.8666666666666667, 0.5568627450980392) ,
- rgb (0.47058823529411764, 0.7764705882352941, 0.4745098039215686) ,
- rgb (0.2549019607843137, 0.6705882352941176, 0.36470588235294116) ,
- rgb (0.13725490196078433, 0.5176470588235295, 0.2627450980392157) ,
- rgb (0.0, 0.40784313725490196, 0.21568627450980393) ,
- rgb (0.0, 0.27058823529411763, 0.1607843137254902)
-});
+ rgb (1.0, 1.0, 0.8980392156862745) ,
+ rgb (0.9686274509803922, 0.9882352941176471, 0.7254901960784313) ,
+ rgb (0.8509803921568627, 0.9411764705882353, 0.6392156862745098) ,
+ rgb (0.6784313725490196, 0.8666666666666667, 0.5568627450980392) ,
+ rgb (0.47058823529411764, 0.7764705882352941, 0.4745098039215686) ,
+ rgb (0.2549019607843137, 0.6705882352941176, 0.36470588235294116) ,
+ rgb (0.13725490196078433, 0.5176470588235295, 0.2627450980392157) ,
+ rgb (0.0, 0.40784313725490196, 0.21568627450980393) ,
+ rgb (0.0, 0.27058823529411763, 0.1607843137254902)
+ });
list_data YlOrBr = list_data(new pen[] {
- rgb (1.0, 1.0, 0.8980392156862745) ,
- rgb (1.0, 0.9686274509803922, 0.7372549019607844) ,
- rgb (0.996078431372549, 0.8901960784313725, 0.5686274509803921) ,
- rgb (0.996078431372549, 0.7686274509803922, 0.30980392156862746) ,
- rgb (0.996078431372549, 0.6, 0.1607843137254902) ,
- rgb (0.9254901960784314, 0.4392156862745098, 0.0784313725490196) ,
- rgb (0.8, 0.2980392156862745, 0.00784313725490196) ,
- rgb (0.6, 0.20392156862745098, 0.01568627450980392) ,
- rgb (0.4, 0.1450980392156863, 0.02352941176470588)
-});
+ rgb (1.0, 1.0, 0.8980392156862745) ,
+ rgb (1.0, 0.9686274509803922, 0.7372549019607844) ,
+ rgb (0.996078431372549, 0.8901960784313725, 0.5686274509803921) ,
+ rgb (0.996078431372549, 0.7686274509803922, 0.30980392156862746) ,
+ rgb (0.996078431372549, 0.6, 0.1607843137254902) ,
+ rgb (0.9254901960784314, 0.4392156862745098, 0.0784313725490196) ,
+ rgb (0.8, 0.2980392156862745, 0.00784313725490196) ,
+ rgb (0.6, 0.20392156862745098, 0.01568627450980392) ,
+ rgb (0.4, 0.1450980392156863, 0.02352941176470588)
+ });
list_data YlOrRd = list_data(new pen[] {
- rgb (1.0, 1.0, 0.8) ,
- rgb (1.0, 0.9294117647058824, 0.6274509803921569) ,
- rgb (0.996078431372549, 0.8509803921568627, 0.4627450980392157) ,
- rgb (0.996078431372549, 0.6980392156862745, 0.2980392156862745) ,
- rgb (0.9921568627450981, 0.5529411764705883, 0.23529411764705882) ,
- rgb (0.9882352941176471, 0.3058823529411765, 0.16470588235294117) ,
- rgb (0.8901960784313725, 0.10196078431372549, 0.10980392156862745) ,
- rgb (0.7411764705882353, 0.0, 0.14901960784313725) ,
- rgb (0.5019607843137255, 0.0, 0.14901960784313725)
-});
+ rgb (1.0, 1.0, 0.8) ,
+ rgb (1.0, 0.9294117647058824, 0.6274509803921569) ,
+ rgb (0.996078431372549, 0.8509803921568627, 0.4627450980392157) ,
+ rgb (0.996078431372549, 0.6980392156862745, 0.2980392156862745) ,
+ rgb (0.9921568627450981, 0.5529411764705883, 0.23529411764705882) ,
+ rgb (0.9882352941176471, 0.3058823529411765, 0.16470588235294117) ,
+ rgb (0.8901960784313725, 0.10196078431372549, 0.10980392156862745) ,
+ rgb (0.7411764705882353, 0.0, 0.14901960784313725) ,
+ rgb (0.5019607843137255, 0.0, 0.14901960784313725)
+ });
seg_data autumn = seg_data(
- new triple[] { // red
- (0.0, 1.0, 1.0) ,
- (1.0, 1.0, 1.0)
- },
- new triple[] { // green
- (0.0, 0.0, 0.0) ,
- (1.0, 1.0, 1.0)
- },
- new triple[] { // blue
- (0.0, 0.0, 0.0) ,
- (1.0, 0.0, 0.0)
- }
-);
+ new triple[] { // red
+ (0.0, 1.0, 1.0) ,
+ (1.0, 1.0, 1.0)
+ },
+ new triple[] { // green
+ (0.0, 0.0, 0.0) ,
+ (1.0, 1.0, 1.0)
+ },
+ new triple[] { // blue
+ (0.0, 0.0, 0.0) ,
+ (1.0, 0.0, 0.0)
+ }
+ );
seg_data binary = seg_data(
- new triple[] { // red
- (0.0, 1.0, 1.0) ,
- (1.0, 0.0, 0.0)
- },
- new triple[] { // green
- (0.0, 1.0, 1.0) ,
- (1.0, 0.0, 0.0)
- },
- new triple[] { // blue
- (0.0, 1.0, 1.0) ,
- (1.0, 0.0, 0.0)
- }
-);
+ new triple[] { // red
+ (0.0, 1.0, 1.0) ,
+ (1.0, 0.0, 0.0)
+ },
+ new triple[] { // green
+ (0.0, 1.0, 1.0) ,
+ (1.0, 0.0, 0.0)
+ },
+ new triple[] { // blue
+ (0.0, 1.0, 1.0) ,
+ (1.0, 0.0, 0.0)
+ }
+ );
seg_data bone = seg_data(
- new triple[] { // red
- (0.0, 0.0, 0.0) ,
- (0.746032, 0.652778, 0.652778) ,
- (1.0, 1.0, 1.0)
- },
- new triple[] { // green
- (0.0, 0.0, 0.0) ,
- (0.365079, 0.319444, 0.319444) ,
- (0.746032, 0.777778, 0.777778) ,
- (1.0, 1.0, 1.0)
- },
- new triple[] { // blue
- (0.0, 0.0, 0.0) ,
- (0.365079, 0.444444, 0.444444) ,
- (1.0, 1.0, 1.0)
- }
-);
+ new triple[] { // red
+ (0.0, 0.0, 0.0) ,
+ (0.746032, 0.652778, 0.652778) ,
+ (1.0, 1.0, 1.0)
+ },
+ new triple[] { // green
+ (0.0, 0.0, 0.0) ,
+ (0.365079, 0.319444, 0.319444) ,
+ (0.746032, 0.777778, 0.777778) ,
+ (1.0, 1.0, 1.0)
+ },
+ new triple[] { // blue
+ (0.0, 0.0, 0.0) ,
+ (0.365079, 0.444444, 0.444444) ,
+ (1.0, 1.0, 1.0)
+ }
+ );
list_data brg = list_data(new pen[] {
- rgb (0.0, 0.0, 1.0) ,
- rgb (1.0, 0.0, 0.0) ,
- rgb (0.0, 1.0, 0.0)
-});
+ rgb (0.0, 0.0, 1.0) ,
+ rgb (1.0, 0.0, 0.0) ,
+ rgb (0.0, 1.0, 0.0)
+ });
list_data bwr = list_data(new pen[] {
- rgb (0.0, 0.0, 1.0) ,
- rgb (1.0, 1.0, 1.0) ,
- rgb (1.0, 0.0, 0.0)
-});
+ rgb (0.0, 0.0, 1.0) ,
+ rgb (1.0, 1.0, 1.0) ,
+ rgb (1.0, 0.0, 0.0)
+ });
seg_data cool = seg_data(
- new triple[] { // red
- (0.0, 0.0, 0.0) ,
- (1.0, 1.0, 1.0)
- },
- new triple[] { // green
- (0.0, 1.0, 1.0) ,
- (1.0, 0.0, 0.0)
- },
- new triple[] { // blue
- (0.0, 1.0, 1.0) ,
- (1.0, 1.0, 1.0)
- }
-);
+ new triple[] { // red
+ (0.0, 0.0, 0.0) ,
+ (1.0, 1.0, 1.0)
+ },
+ new triple[] { // green
+ (0.0, 1.0, 1.0) ,
+ (1.0, 0.0, 0.0)
+ },
+ new triple[] { // blue
+ (0.0, 1.0, 1.0) ,
+ (1.0, 1.0, 1.0)
+ }
+ );
seg_data coolwarm = seg_data(
- new triple[] { // red
- (0.0, 0.2298057, 0.2298057) ,
- (0.03125, 0.26623388, 0.26623388) ,
- (0.0625, 0.30386891, 0.30386891) ,
- (0.09375, 0.342804478, 0.342804478) ,
- (0.125, 0.38301334, 0.38301334) ,
- (0.15625, 0.424369608, 0.424369608) ,
- (0.1875, 0.46666708, 0.46666708) ,
- (0.21875, 0.509635204, 0.509635204) ,
- (0.25, 0.552953156, 0.552953156) ,
- (0.28125, 0.596262162, 0.596262162) ,
- (0.3125, 0.639176211, 0.639176211) ,
- (0.34375, 0.681291281, 0.681291281) ,
- (0.375, 0.722193294, 0.722193294) ,
- (0.40625, 0.761464949, 0.761464949) ,
- (0.4375, 0.798691636, 0.798691636) ,
- (0.46875, 0.833466556, 0.833466556) ,
- (0.5, 0.865395197, 0.865395197) ,
- (0.53125, 0.897787179, 0.897787179) ,
- (0.5625, 0.924127593, 0.924127593) ,
- (0.59375, 0.944468518, 0.944468518) ,
- (0.625, 0.958852946, 0.958852946) ,
- (0.65625, 0.96732803, 0.96732803) ,
- (0.6875, 0.969954137, 0.969954137) ,
- (0.71875, 0.966811177, 0.966811177) ,
- (0.75, 0.958003065, 0.958003065) ,
- (0.78125, 0.943660866, 0.943660866) ,
- (0.8125, 0.923944917, 0.923944917) ,
- (0.84375, 0.89904617, 0.89904617) ,
- (0.875, 0.869186849, 0.869186849) ,
- (0.90625, 0.834620542, 0.834620542) ,
- (0.9375, 0.795631745, 0.795631745) ,
- (0.96875, 0.752534934, 0.752534934) ,
- (1.0, 0.705673158, 0.705673158)
- },
- new triple[] { // green
- (0.0, 0.298717966, 0.298717966) ,
- (0.03125, 0.353094838, 0.353094838) ,
- (0.0625, 0.406535296, 0.406535296) ,
- (0.09375, 0.458757618, 0.458757618) ,
- (0.125, 0.50941904, 0.50941904) ,
- (0.15625, 0.558148092, 0.558148092) ,
- (0.1875, 0.604562568, 0.604562568) ,
- (0.21875, 0.648280772, 0.648280772) ,
- (0.25, 0.688929332, 0.688929332) ,
- (0.28125, 0.726149107, 0.726149107) ,
- (0.3125, 0.759599947, 0.759599947) ,
- (0.34375, 0.788964712, 0.788964712) ,
- (0.375, 0.813952739, 0.813952739) ,
- (0.40625, 0.834302879, 0.834302879) ,
- (0.4375, 0.849786142, 0.849786142) ,
- (0.46875, 0.860207984, 0.860207984) ,
- (0.5, 0.86541021, 0.86541021) ,
- (0.53125, 0.848937047, 0.848937047) ,
- (0.5625, 0.827384882, 0.827384882) ,
- (0.59375, 0.800927443, 0.800927443) ,
- (0.625, 0.769767752, 0.769767752) ,
- (0.65625, 0.734132809, 0.734132809) ,
- (0.6875, 0.694266682, 0.694266682) ,
- (0.71875, 0.650421156, 0.650421156) ,
- (0.75, 0.602842431, 0.602842431) ,
- (0.78125, 0.551750968, 0.551750968) ,
- (0.8125, 0.49730856, 0.49730856) ,
- (0.84375, 0.439559467, 0.439559467) ,
- (0.875, 0.378313092, 0.378313092) ,
- (0.90625, 0.312874446, 0.312874446) ,
- (0.9375, 0.24128379, 0.24128379) ,
- (0.96875, 0.157246067, 0.157246067) ,
- (1.0, 0.01555616, 0.01555616)
- },
- new triple[] { // blue
- (0.0, 0.753683153, 0.753683153) ,
- (0.03125, 0.801466763, 0.801466763) ,
- (0.0625, 0.84495867, 0.84495867) ,
- (0.09375, 0.883725899, 0.883725899) ,
- (0.125, 0.917387822, 0.917387822) ,
- (0.15625, 0.945619588, 0.945619588) ,
- (0.1875, 0.968154911, 0.968154911) ,
- (0.21875, 0.98478814, 0.98478814) ,
- (0.25, 0.995375608, 0.995375608) ,
- (0.28125, 0.999836203, 0.999836203) ,
- (0.3125, 0.998151185, 0.998151185) ,
- (0.34375, 0.990363227, 0.990363227) ,
- (0.375, 0.976574709, 0.976574709) ,
- (0.40625, 0.956945269, 0.956945269) ,
- (0.4375, 0.931688648, 0.931688648) ,
- (0.46875, 0.901068838, 0.901068838) ,
- (0.5, 0.865395561, 0.865395561) ,
- (0.53125, 0.820880546, 0.820880546) ,
- (0.5625, 0.774508472, 0.774508472) ,
- (0.59375, 0.726736146, 0.726736146) ,
- (0.625, 0.678007945, 0.678007945) ,
- (0.65625, 0.628751763, 0.628751763) ,
- (0.6875, 0.579375448, 0.579375448) ,
- (0.71875, 0.530263762, 0.530263762) ,
- (0.75, 0.481775914, 0.481775914) ,
- (0.78125, 0.434243684, 0.434243684) ,
- (0.8125, 0.387970225, 0.387970225) ,
- (0.84375, 0.343229596, 0.343229596) ,
- (0.875, 0.300267182, 0.300267182) ,
- (0.90625, 0.259301199, 0.259301199) ,
- (0.9375, 0.220525627, 0.220525627) ,
- (0.96875, 0.184115123, 0.184115123) ,
- (1.0, 0.150232812, 0.150232812)
- }
-);
+ new triple[] { // red
+ (0.0, 0.2298057, 0.2298057) ,
+ (0.03125, 0.26623388, 0.26623388) ,
+ (0.0625, 0.30386891, 0.30386891) ,
+ (0.09375, 0.342804478, 0.342804478) ,
+ (0.125, 0.38301334, 0.38301334) ,
+ (0.15625, 0.424369608, 0.424369608) ,
+ (0.1875, 0.46666708, 0.46666708) ,
+ (0.21875, 0.509635204, 0.509635204) ,
+ (0.25, 0.552953156, 0.552953156) ,
+ (0.28125, 0.596262162, 0.596262162) ,
+ (0.3125, 0.639176211, 0.639176211) ,
+ (0.34375, 0.681291281, 0.681291281) ,
+ (0.375, 0.722193294, 0.722193294) ,
+ (0.40625, 0.761464949, 0.761464949) ,
+ (0.4375, 0.798691636, 0.798691636) ,
+ (0.46875, 0.833466556, 0.833466556) ,
+ (0.5, 0.865395197, 0.865395197) ,
+ (0.53125, 0.897787179, 0.897787179) ,
+ (0.5625, 0.924127593, 0.924127593) ,
+ (0.59375, 0.944468518, 0.944468518) ,
+ (0.625, 0.958852946, 0.958852946) ,
+ (0.65625, 0.96732803, 0.96732803) ,
+ (0.6875, 0.969954137, 0.969954137) ,
+ (0.71875, 0.966811177, 0.966811177) ,
+ (0.75, 0.958003065, 0.958003065) ,
+ (0.78125, 0.943660866, 0.943660866) ,
+ (0.8125, 0.923944917, 0.923944917) ,
+ (0.84375, 0.89904617, 0.89904617) ,
+ (0.875, 0.869186849, 0.869186849) ,
+ (0.90625, 0.834620542, 0.834620542) ,
+ (0.9375, 0.795631745, 0.795631745) ,
+ (0.96875, 0.752534934, 0.752534934) ,
+ (1.0, 0.705673158, 0.705673158)
+ },
+ new triple[] { // green
+ (0.0, 0.298717966, 0.298717966) ,
+ (0.03125, 0.353094838, 0.353094838) ,
+ (0.0625, 0.406535296, 0.406535296) ,
+ (0.09375, 0.458757618, 0.458757618) ,
+ (0.125, 0.50941904, 0.50941904) ,
+ (0.15625, 0.558148092, 0.558148092) ,
+ (0.1875, 0.604562568, 0.604562568) ,
+ (0.21875, 0.648280772, 0.648280772) ,
+ (0.25, 0.688929332, 0.688929332) ,
+ (0.28125, 0.726149107, 0.726149107) ,
+ (0.3125, 0.759599947, 0.759599947) ,
+ (0.34375, 0.788964712, 0.788964712) ,
+ (0.375, 0.813952739, 0.813952739) ,
+ (0.40625, 0.834302879, 0.834302879) ,
+ (0.4375, 0.849786142, 0.849786142) ,
+ (0.46875, 0.860207984, 0.860207984) ,
+ (0.5, 0.86541021, 0.86541021) ,
+ (0.53125, 0.848937047, 0.848937047) ,
+ (0.5625, 0.827384882, 0.827384882) ,
+ (0.59375, 0.800927443, 0.800927443) ,
+ (0.625, 0.769767752, 0.769767752) ,
+ (0.65625, 0.734132809, 0.734132809) ,
+ (0.6875, 0.694266682, 0.694266682) ,
+ (0.71875, 0.650421156, 0.650421156) ,
+ (0.75, 0.602842431, 0.602842431) ,
+ (0.78125, 0.551750968, 0.551750968) ,
+ (0.8125, 0.49730856, 0.49730856) ,
+ (0.84375, 0.439559467, 0.439559467) ,
+ (0.875, 0.378313092, 0.378313092) ,
+ (0.90625, 0.312874446, 0.312874446) ,
+ (0.9375, 0.24128379, 0.24128379) ,
+ (0.96875, 0.157246067, 0.157246067) ,
+ (1.0, 0.01555616, 0.01555616)
+ },
+ new triple[] { // blue
+ (0.0, 0.753683153, 0.753683153) ,
+ (0.03125, 0.801466763, 0.801466763) ,
+ (0.0625, 0.84495867, 0.84495867) ,
+ (0.09375, 0.883725899, 0.883725899) ,
+ (0.125, 0.917387822, 0.917387822) ,
+ (0.15625, 0.945619588, 0.945619588) ,
+ (0.1875, 0.968154911, 0.968154911) ,
+ (0.21875, 0.98478814, 0.98478814) ,
+ (0.25, 0.995375608, 0.995375608) ,
+ (0.28125, 0.999836203, 0.999836203) ,
+ (0.3125, 0.998151185, 0.998151185) ,
+ (0.34375, 0.990363227, 0.990363227) ,
+ (0.375, 0.976574709, 0.976574709) ,
+ (0.40625, 0.956945269, 0.956945269) ,
+ (0.4375, 0.931688648, 0.931688648) ,
+ (0.46875, 0.901068838, 0.901068838) ,
+ (0.5, 0.865395561, 0.865395561) ,
+ (0.53125, 0.820880546, 0.820880546) ,
+ (0.5625, 0.774508472, 0.774508472) ,
+ (0.59375, 0.726736146, 0.726736146) ,
+ (0.625, 0.678007945, 0.678007945) ,
+ (0.65625, 0.628751763, 0.628751763) ,
+ (0.6875, 0.579375448, 0.579375448) ,
+ (0.71875, 0.530263762, 0.530263762) ,
+ (0.75, 0.481775914, 0.481775914) ,
+ (0.78125, 0.434243684, 0.434243684) ,
+ (0.8125, 0.387970225, 0.387970225) ,
+ (0.84375, 0.343229596, 0.343229596) ,
+ (0.875, 0.300267182, 0.300267182) ,
+ (0.90625, 0.259301199, 0.259301199) ,
+ (0.9375, 0.220525627, 0.220525627) ,
+ (0.96875, 0.184115123, 0.184115123) ,
+ (1.0, 0.150232812, 0.150232812)
+ }
+ );
seg_data copper = seg_data(
- new triple[] { // red
- (0.0, 0.0, 0.0) ,
- (0.809524, 1.0, 1.0) ,
- (1.0, 1.0, 1.0)
- },
- new triple[] { // green
- (0.0, 0.0, 0.0) ,
- (1.0, 0.7812, 0.7812)
- },
- new triple[] { // blue
- (0.0, 0.0, 0.0) ,
- (1.0, 0.4975, 0.4975)
- }
-);
+ new triple[] { // red
+ (0.0, 0.0, 0.0) ,
+ (0.809524, 1.0, 1.0) ,
+ (1.0, 1.0, 1.0)
+ },
+ new triple[] { // green
+ (0.0, 0.0, 0.0) ,
+ (1.0, 0.7812, 0.7812)
+ },
+ new triple[] { // blue
+ (0.0, 0.0, 0.0) ,
+ (1.0, 0.4975, 0.4975)
+ }
+ );
seg_data gist_earth = seg_data(
- new triple[] { // red
- (0.0, 0.0, 0.0) ,
- (0.2824, 0.1882, 0.1882) ,
- (0.4588, 0.2714, 0.2714) ,
- (0.549, 0.4719, 0.4719) ,
- (0.698, 0.7176, 0.7176) ,
- (0.7882, 0.7553, 0.7553) ,
- (1.0, 0.9922, 0.9922)
- },
- new triple[] { // green
- (0.0, 0.0, 0.0) ,
- (0.0275, 0.0, 0.0) ,
- (0.1098, 0.1893, 0.1893) ,
- (0.1647, 0.3035, 0.3035) ,
- (0.2078, 0.3841, 0.3841) ,
- (0.2824, 0.502, 0.502) ,
- (0.5216, 0.6397, 0.6397) ,
- (0.698, 0.7171, 0.7171) ,
- (0.7882, 0.6392, 0.6392) ,
- (0.7922, 0.6413, 0.6413) ,
- (0.8, 0.6447, 0.6447) ,
- (0.8078, 0.6481, 0.6481) ,
- (0.8157, 0.6549, 0.6549) ,
- (0.8667, 0.6991, 0.6991) ,
- (0.8745, 0.7103, 0.7103) ,
- (0.8824, 0.7216, 0.7216) ,
- (0.8902, 0.7323, 0.7323) ,
- (0.898, 0.743, 0.743) ,
- (0.9412, 0.8275, 0.8275) ,
- (0.9569, 0.8635, 0.8635) ,
- (0.9647, 0.8816, 0.8816) ,
- (0.9961, 0.9733, 0.9733) ,
- (1.0, 0.9843, 0.9843)
- },
- new triple[] { // blue
- (0.0, 0.0, 0.0) ,
- (0.0039, 0.1684, 0.1684) ,
- (0.0078, 0.2212, 0.2212) ,
- (0.0275, 0.4329, 0.4329) ,
- (0.0314, 0.4549, 0.4549) ,
- (0.2824, 0.5004, 0.5004) ,
- (0.4667, 0.2748, 0.2748) ,
- (0.5451, 0.3205, 0.3205) ,
- (0.7843, 0.3961, 0.3961) ,
- (0.8941, 0.6651, 0.6651) ,
- (1.0, 0.9843, 0.9843)
- }
-);
+ new triple[] { // red
+ (0.0, 0.0, 0.0) ,
+ (0.2824, 0.1882, 0.1882) ,
+ (0.4588, 0.2714, 0.2714) ,
+ (0.549, 0.4719, 0.4719) ,
+ (0.698, 0.7176, 0.7176) ,
+ (0.7882, 0.7553, 0.7553) ,
+ (1.0, 0.9922, 0.9922)
+ },
+ new triple[] { // green
+ (0.0, 0.0, 0.0) ,
+ (0.0275, 0.0, 0.0) ,
+ (0.1098, 0.1893, 0.1893) ,
+ (0.1647, 0.3035, 0.3035) ,
+ (0.2078, 0.3841, 0.3841) ,
+ (0.2824, 0.502, 0.502) ,
+ (0.5216, 0.6397, 0.6397) ,
+ (0.698, 0.7171, 0.7171) ,
+ (0.7882, 0.6392, 0.6392) ,
+ (0.7922, 0.6413, 0.6413) ,
+ (0.8, 0.6447, 0.6447) ,
+ (0.8078, 0.6481, 0.6481) ,
+ (0.8157, 0.6549, 0.6549) ,
+ (0.8667, 0.6991, 0.6991) ,
+ (0.8745, 0.7103, 0.7103) ,
+ (0.8824, 0.7216, 0.7216) ,
+ (0.8902, 0.7323, 0.7323) ,
+ (0.898, 0.743, 0.743) ,
+ (0.9412, 0.8275, 0.8275) ,
+ (0.9569, 0.8635, 0.8635) ,
+ (0.9647, 0.8816, 0.8816) ,
+ (0.9961, 0.9733, 0.9733) ,
+ (1.0, 0.9843, 0.9843)
+ },
+ new triple[] { // blue
+ (0.0, 0.0, 0.0) ,
+ (0.0039, 0.1684, 0.1684) ,
+ (0.0078, 0.2212, 0.2212) ,
+ (0.0275, 0.4329, 0.4329) ,
+ (0.0314, 0.4549, 0.4549) ,
+ (0.2824, 0.5004, 0.5004) ,
+ (0.4667, 0.2748, 0.2748) ,
+ (0.5451, 0.3205, 0.3205) ,
+ (0.7843, 0.3961, 0.3961) ,
+ (0.8941, 0.6651, 0.6651) ,
+ (1.0, 0.9843, 0.9843)
+ }
+ );
seg_data gist_ncar = seg_data(
- new triple[] { // red
- (0.0, 0.0, 0.0) ,
- (0.3098, 0.0, 0.0) ,
- (0.3725, 0.3993, 0.3993) ,
- (0.4235, 0.5003, 0.5003) ,
- (0.5333, 1.0, 1.0) ,
- (0.7922, 1.0, 1.0) ,
- (0.8471, 0.6218, 0.6218) ,
- (0.898, 0.9235, 0.9235) ,
- (1.0, 0.9961, 0.9961)
- },
- new triple[] { // green
- (0.0, 0.0, 0.0) ,
- (0.051, 0.3722, 0.3722) ,
- (0.1059, 0.0, 0.0) ,
- (0.1569, 0.7202, 0.7202) ,
- (0.1608, 0.7537, 0.7537) ,
- (0.1647, 0.7752, 0.7752) ,
- (0.2157, 1.0, 1.0) ,
- (0.2588, 0.9804, 0.9804) ,
- (0.2706, 0.9804, 0.9804) ,
- (0.3176, 1.0, 1.0) ,
- (0.3686, 0.8081, 0.8081) ,
- (0.4275, 1.0, 1.0) ,
- (0.5216, 1.0, 1.0) ,
- (0.6314, 0.7292, 0.7292) ,
- (0.6863, 0.2796, 0.2796) ,
- (0.7451, 0.0, 0.0) ,
- (0.7922, 0.0, 0.0) ,
- (0.8431, 0.1753, 0.1753) ,
- (0.898, 0.5, 0.5) ,
- (1.0, 0.9725, 0.9725)
- },
- new triple[] { // blue
- (0.0, 0.502, 0.502) ,
- (0.051, 0.0222, 0.0222) ,
- (0.1098, 1.0, 1.0) ,
- (0.2039, 1.0, 1.0) ,
- (0.2627, 0.6145, 0.6145) ,
- (0.3216, 0.0, 0.0) ,
- (0.4157, 0.0, 0.0) ,
- (0.4745, 0.2342, 0.2342) ,
- (0.5333, 0.0, 0.0) ,
- (0.5804, 0.0, 0.0) ,
- (0.6314, 0.0549, 0.0549) ,
- (0.6902, 0.0, 0.0) ,
- (0.7373, 0.0, 0.0) ,
- (0.7922, 0.9738, 0.9738) ,
- (0.8, 1.0, 1.0) ,
- (0.8431, 1.0, 1.0) ,
- (0.898, 0.9341, 0.9341) ,
- (1.0, 0.9961, 0.9961)
- }
-);
+ new triple[] { // red
+ (0.0, 0.0, 0.0) ,
+ (0.3098, 0.0, 0.0) ,
+ (0.3725, 0.3993, 0.3993) ,
+ (0.4235, 0.5003, 0.5003) ,
+ (0.5333, 1.0, 1.0) ,
+ (0.7922, 1.0, 1.0) ,
+ (0.8471, 0.6218, 0.6218) ,
+ (0.898, 0.9235, 0.9235) ,
+ (1.0, 0.9961, 0.9961)
+ },
+ new triple[] { // green
+ (0.0, 0.0, 0.0) ,
+ (0.051, 0.3722, 0.3722) ,
+ (0.1059, 0.0, 0.0) ,
+ (0.1569, 0.7202, 0.7202) ,
+ (0.1608, 0.7537, 0.7537) ,
+ (0.1647, 0.7752, 0.7752) ,
+ (0.2157, 1.0, 1.0) ,
+ (0.2588, 0.9804, 0.9804) ,
+ (0.2706, 0.9804, 0.9804) ,
+ (0.3176, 1.0, 1.0) ,
+ (0.3686, 0.8081, 0.8081) ,
+ (0.4275, 1.0, 1.0) ,
+ (0.5216, 1.0, 1.0) ,
+ (0.6314, 0.7292, 0.7292) ,
+ (0.6863, 0.2796, 0.2796) ,
+ (0.7451, 0.0, 0.0) ,
+ (0.7922, 0.0, 0.0) ,
+ (0.8431, 0.1753, 0.1753) ,
+ (0.898, 0.5, 0.5) ,
+ (1.0, 0.9725, 0.9725)
+ },
+ new triple[] { // blue
+ (0.0, 0.502, 0.502) ,
+ (0.051, 0.0222, 0.0222) ,
+ (0.1098, 1.0, 1.0) ,
+ (0.2039, 1.0, 1.0) ,
+ (0.2627, 0.6145, 0.6145) ,
+ (0.3216, 0.0, 0.0) ,
+ (0.4157, 0.0, 0.0) ,
+ (0.4745, 0.2342, 0.2342) ,
+ (0.5333, 0.0, 0.0) ,
+ (0.5804, 0.0, 0.0) ,
+ (0.6314, 0.0549, 0.0549) ,
+ (0.6902, 0.0, 0.0) ,
+ (0.7373, 0.0, 0.0) ,
+ (0.7922, 0.9738, 0.9738) ,
+ (0.8, 1.0, 1.0) ,
+ (0.8431, 1.0, 1.0) ,
+ (0.898, 0.9341, 0.9341) ,
+ (1.0, 0.9961, 0.9961)
+ }
+ );
seg_data gist_stern = seg_data(
- new triple[] { // red
- (0.0, 0.0, 0.0) ,
- (0.0547, 1.0, 1.0) ,
- (0.25, 0.027, 0.25) ,
- (1.0, 1.0, 1.0)
- },
- new triple[] { // green
- (0, 0, 0) ,
- (1, 1, 1)
- },
- new triple[] { // blue
- (0.0, 0.0, 0.0) ,
- (0.5, 1.0, 1.0) ,
- (0.735, 0.0, 0.0) ,
- (1.0, 1.0, 1.0)
- }
-);
+ new triple[] { // red
+ (0.0, 0.0, 0.0) ,
+ (0.0547, 1.0, 1.0) ,
+ (0.25, 0.027, 0.25) ,
+ (1.0, 1.0, 1.0)
+ },
+ new triple[] { // green
+ (0, 0, 0) ,
+ (1, 1, 1)
+ },
+ new triple[] { // blue
+ (0.0, 0.0, 0.0) ,
+ (0.5, 1.0, 1.0) ,
+ (0.735, 0.0, 0.0) ,
+ (1.0, 1.0, 1.0)
+ }
+ );
seg_data gray = seg_data(
- new triple[] { // red
- (0.0, 0, 0) ,
- (1.0, 1, 1)
- },
- new triple[] { // green
- (0.0, 0, 0) ,
- (1.0, 1, 1)
- },
- new triple[] { // blue
- (0.0, 0, 0) ,
- (1.0, 1, 1)
- }
-);
+ new triple[] { // red
+ (0.0, 0, 0) ,
+ (1.0, 1, 1)
+ },
+ new triple[] { // green
+ (0.0, 0, 0) ,
+ (1.0, 1, 1)
+ },
+ new triple[] { // blue
+ (0.0, 0, 0) ,
+ (1.0, 1, 1)
+ }
+ );
seg_data hot = seg_data(
- new triple[] { // red
- (0.0, 0.0416, 0.0416) ,
- (0.365079, 1.0, 1.0) ,
- (1.0, 1.0, 1.0)
- },
- new triple[] { // green
- (0.0, 0.0, 0.0) ,
- (0.365079, 0.0, 0.0) ,
- (0.746032, 1.0, 1.0) ,
- (1.0, 1.0, 1.0)
- },
- new triple[] { // blue
- (0.0, 0.0, 0.0) ,
- (0.746032, 0.0, 0.0) ,
- (1.0, 1.0, 1.0)
- }
-);
+ new triple[] { // red
+ (0.0, 0.0416, 0.0416) ,
+ (0.365079, 1.0, 1.0) ,
+ (1.0, 1.0, 1.0)
+ },
+ new triple[] { // green
+ (0.0, 0.0, 0.0) ,
+ (0.365079, 0.0, 0.0) ,
+ (0.746032, 1.0, 1.0) ,
+ (1.0, 1.0, 1.0)
+ },
+ new triple[] { // blue
+ (0.0, 0.0, 0.0) ,
+ (0.746032, 0.0, 0.0) ,
+ (1.0, 1.0, 1.0)
+ }
+ );
seg_data hsv = seg_data(
- new triple[] { // red
- (0.0, 1.0, 1.0) ,
- (0.15873, 1.0, 1.0) ,
- (0.174603, 0.96875, 0.96875) ,
- (0.333333, 0.03125, 0.03125) ,
- (0.349206, 0.0, 0.0) ,
- (0.666667, 0.0, 0.0) ,
- (0.68254, 0.03125, 0.03125) ,
- (0.84127, 0.96875, 0.96875) ,
- (0.857143, 1.0, 1.0) ,
- (1.0, 1.0, 1.0)
- },
- new triple[] { // green
- (0.0, 0.0, 0.0) ,
- (0.15873, 0.9375, 0.9375) ,
- (0.174603, 1.0, 1.0) ,
- (0.507937, 1.0, 1.0) ,
- (0.666667, 0.0625, 0.0625) ,
- (0.68254, 0.0, 0.0) ,
- (1.0, 0.0, 0.0)
- },
- new triple[] { // blue
- (0.0, 0.0, 0.0) ,
- (0.333333, 0.0, 0.0) ,
- (0.349206, 0.0625, 0.0625) ,
- (0.507937, 1.0, 1.0) ,
- (0.84127, 1.0, 1.0) ,
- (0.857143, 0.9375, 0.9375) ,
- (1.0, 0.09375, 0.09375)
- }
-);
+ new triple[] { // red
+ (0.0, 1.0, 1.0) ,
+ (0.15873, 1.0, 1.0) ,
+ (0.174603, 0.96875, 0.96875) ,
+ (0.333333, 0.03125, 0.03125) ,
+ (0.349206, 0.0, 0.0) ,
+ (0.666667, 0.0, 0.0) ,
+ (0.68254, 0.03125, 0.03125) ,
+ (0.84127, 0.96875, 0.96875) ,
+ (0.857143, 1.0, 1.0) ,
+ (1.0, 1.0, 1.0)
+ },
+ new triple[] { // green
+ (0.0, 0.0, 0.0) ,
+ (0.15873, 0.9375, 0.9375) ,
+ (0.174603, 1.0, 1.0) ,
+ (0.507937, 1.0, 1.0) ,
+ (0.666667, 0.0625, 0.0625) ,
+ (0.68254, 0.0, 0.0) ,
+ (1.0, 0.0, 0.0)
+ },
+ new triple[] { // blue
+ (0.0, 0.0, 0.0) ,
+ (0.333333, 0.0, 0.0) ,
+ (0.349206, 0.0625, 0.0625) ,
+ (0.507937, 1.0, 1.0) ,
+ (0.84127, 1.0, 1.0) ,
+ (0.857143, 0.9375, 0.9375) ,
+ (1.0, 0.09375, 0.09375)
+ }
+ );
seg_data jet = seg_data(
- new triple[] { // red
- (0.0, 0, 0) ,
- (0.35, 0, 0) ,
- (0.66, 1, 1) ,
- (0.89, 1, 1) ,
- (1, 0.5, 0.5)
- },
- new triple[] { // green
- (0.0, 0, 0) ,
- (0.125, 0, 0) ,
- (0.375, 1, 1) ,
- (0.64, 1, 1) ,
- (0.91, 0, 0) ,
- (1, 0, 0)
- },
- new triple[] { // blue
- (0.0, 0.5, 0.5) ,
- (0.11, 1, 1) ,
- (0.34, 1, 1) ,
- (0.65, 0, 0) ,
- (1, 0, 0)
- }
-);
+ new triple[] { // red
+ (0.0, 0, 0) ,
+ (0.35, 0, 0) ,
+ (0.66, 1, 1) ,
+ (0.89, 1, 1) ,
+ (1, 0.5, 0.5)
+ },
+ new triple[] { // green
+ (0.0, 0, 0) ,
+ (0.125, 0, 0) ,
+ (0.375, 1, 1) ,
+ (0.64, 1, 1) ,
+ (0.91, 0, 0) ,
+ (1, 0, 0)
+ },
+ new triple[] { // blue
+ (0.0, 0.5, 0.5) ,
+ (0.11, 1, 1) ,
+ (0.34, 1, 1) ,
+ (0.65, 0, 0) ,
+ (1, 0, 0)
+ }
+ );
seg_data nipy_spectral = seg_data(
- new triple[] { // red
- (0.0, 0.0, 0.0) ,
- (0.05, 0.4667, 0.4667) ,
- (0.1, 0.5333, 0.5333) ,
- (0.15, 0.0, 0.0) ,
- (0.2, 0.0, 0.0) ,
- (0.25, 0.0, 0.0) ,
- (0.3, 0.0, 0.0) ,
- (0.35, 0.0, 0.0) ,
- (0.4, 0.0, 0.0) ,
- (0.45, 0.0, 0.0) ,
- (0.5, 0.0, 0.0) ,
- (0.55, 0.0, 0.0) ,
- (0.6, 0.0, 0.0) ,
- (0.65, 0.7333, 0.7333) ,
- (0.7, 0.9333, 0.9333) ,
- (0.75, 1.0, 1.0) ,
- (0.8, 1.0, 1.0) ,
- (0.85, 1.0, 1.0) ,
- (0.9, 0.8667, 0.8667) ,
- (0.95, 0.8, 0.8) ,
- (1.0, 0.8, 0.8)
- },
- new triple[] { // green
- (0.0, 0.0, 0.0) ,
- (0.05, 0.0, 0.0) ,
- (0.1, 0.0, 0.0) ,
- (0.15, 0.0, 0.0) ,
- (0.2, 0.0, 0.0) ,
- (0.25, 0.4667, 0.4667) ,
- (0.3, 0.6, 0.6) ,
- (0.35, 0.6667, 0.6667) ,
- (0.4, 0.6667, 0.6667) ,
- (0.45, 0.6, 0.6) ,
- (0.5, 0.7333, 0.7333) ,
- (0.55, 0.8667, 0.8667) ,
- (0.6, 1.0, 1.0) ,
- (0.65, 1.0, 1.0) ,
- (0.7, 0.9333, 0.9333) ,
- (0.75, 0.8, 0.8) ,
- (0.8, 0.6, 0.6) ,
- (0.85, 0.0, 0.0) ,
- (0.9, 0.0, 0.0) ,
- (0.95, 0.0, 0.0) ,
- (1.0, 0.8, 0.8)
- },
- new triple[] { // blue
- (0.0, 0.0, 0.0) ,
- (0.05, 0.5333, 0.5333) ,
- (0.1, 0.6, 0.6) ,
- (0.15, 0.6667, 0.6667) ,
- (0.2, 0.8667, 0.8667) ,
- (0.25, 0.8667, 0.8667) ,
- (0.3, 0.8667, 0.8667) ,
- (0.35, 0.6667, 0.6667) ,
- (0.4, 0.5333, 0.5333) ,
- (0.45, 0.0, 0.0) ,
- (0.5, 0.0, 0.0) ,
- (0.55, 0.0, 0.0) ,
- (0.6, 0.0, 0.0) ,
- (0.65, 0.0, 0.0) ,
- (0.7, 0.0, 0.0) ,
- (0.75, 0.0, 0.0) ,
- (0.8, 0.0, 0.0) ,
- (0.85, 0.0, 0.0) ,
- (0.9, 0.0, 0.0) ,
- (0.95, 0.0, 0.0) ,
- (1.0, 0.8, 0.8)
- }
-);
+ new triple[] { // red
+ (0.0, 0.0, 0.0) ,
+ (0.05, 0.4667, 0.4667) ,
+ (0.1, 0.5333, 0.5333) ,
+ (0.15, 0.0, 0.0) ,
+ (0.2, 0.0, 0.0) ,
+ (0.25, 0.0, 0.0) ,
+ (0.3, 0.0, 0.0) ,
+ (0.35, 0.0, 0.0) ,
+ (0.4, 0.0, 0.0) ,
+ (0.45, 0.0, 0.0) ,
+ (0.5, 0.0, 0.0) ,
+ (0.55, 0.0, 0.0) ,
+ (0.6, 0.0, 0.0) ,
+ (0.65, 0.7333, 0.7333) ,
+ (0.7, 0.9333, 0.9333) ,
+ (0.75, 1.0, 1.0) ,
+ (0.8, 1.0, 1.0) ,
+ (0.85, 1.0, 1.0) ,
+ (0.9, 0.8667, 0.8667) ,
+ (0.95, 0.8, 0.8) ,
+ (1.0, 0.8, 0.8)
+ },
+ new triple[] { // green
+ (0.0, 0.0, 0.0) ,
+ (0.05, 0.0, 0.0) ,
+ (0.1, 0.0, 0.0) ,
+ (0.15, 0.0, 0.0) ,
+ (0.2, 0.0, 0.0) ,
+ (0.25, 0.4667, 0.4667) ,
+ (0.3, 0.6, 0.6) ,
+ (0.35, 0.6667, 0.6667) ,
+ (0.4, 0.6667, 0.6667) ,
+ (0.45, 0.6, 0.6) ,
+ (0.5, 0.7333, 0.7333) ,
+ (0.55, 0.8667, 0.8667) ,
+ (0.6, 1.0, 1.0) ,
+ (0.65, 1.0, 1.0) ,
+ (0.7, 0.9333, 0.9333) ,
+ (0.75, 0.8, 0.8) ,
+ (0.8, 0.6, 0.6) ,
+ (0.85, 0.0, 0.0) ,
+ (0.9, 0.0, 0.0) ,
+ (0.95, 0.0, 0.0) ,
+ (1.0, 0.8, 0.8)
+ },
+ new triple[] { // blue
+ (0.0, 0.0, 0.0) ,
+ (0.05, 0.5333, 0.5333) ,
+ (0.1, 0.6, 0.6) ,
+ (0.15, 0.6667, 0.6667) ,
+ (0.2, 0.8667, 0.8667) ,
+ (0.25, 0.8667, 0.8667) ,
+ (0.3, 0.8667, 0.8667) ,
+ (0.35, 0.6667, 0.6667) ,
+ (0.4, 0.5333, 0.5333) ,
+ (0.45, 0.0, 0.0) ,
+ (0.5, 0.0, 0.0) ,
+ (0.55, 0.0, 0.0) ,
+ (0.6, 0.0, 0.0) ,
+ (0.65, 0.0, 0.0) ,
+ (0.7, 0.0, 0.0) ,
+ (0.75, 0.0, 0.0) ,
+ (0.8, 0.0, 0.0) ,
+ (0.85, 0.0, 0.0) ,
+ (0.9, 0.0, 0.0) ,
+ (0.95, 0.0, 0.0) ,
+ (1.0, 0.8, 0.8)
+ }
+ );
seg_data pink = seg_data(
- new triple[] { // red
- (0.0, 0.1178, 0.1178) ,
- (0.015873, 0.195857, 0.195857) ,
- (0.031746, 0.250661, 0.250661) ,
- (0.047619, 0.295468, 0.295468) ,
- (0.063492, 0.334324, 0.334324) ,
- (0.079365, 0.369112, 0.369112) ,
- (0.095238, 0.400892, 0.400892) ,
- (0.111111, 0.430331, 0.430331) ,
- (0.126984, 0.457882, 0.457882) ,
- (0.142857, 0.483867, 0.483867) ,
- (0.15873, 0.508525, 0.508525) ,
- (0.174603, 0.532042, 0.532042) ,
- (0.190476, 0.554563, 0.554563) ,
- (0.206349, 0.576204, 0.576204) ,
- (0.222222, 0.597061, 0.597061) ,
- (0.238095, 0.617213, 0.617213) ,
- (0.253968, 0.636729, 0.636729) ,
- (0.269841, 0.655663, 0.655663) ,
- (0.285714, 0.674066, 0.674066) ,
- (0.301587, 0.69198, 0.69198) ,
- (0.31746, 0.709441, 0.709441) ,
- (0.333333, 0.726483, 0.726483) ,
- (0.349206, 0.743134, 0.743134) ,
- (0.365079, 0.759421, 0.759421) ,
- (0.380952, 0.766356, 0.766356) ,
- (0.396825, 0.773229, 0.773229) ,
- (0.412698, 0.780042, 0.780042) ,
- (0.428571, 0.786796, 0.786796) ,
- (0.444444, 0.793492, 0.793492) ,
- (0.460317, 0.800132, 0.800132) ,
- (0.47619, 0.806718, 0.806718) ,
- (0.492063, 0.81325, 0.81325) ,
- (0.507937, 0.81973, 0.81973) ,
- (0.52381, 0.82616, 0.82616) ,
- (0.539683, 0.832539, 0.832539) ,
- (0.555556, 0.83887, 0.83887) ,
- (0.571429, 0.845154, 0.845154) ,
- (0.587302, 0.851392, 0.851392) ,
- (0.603175, 0.857584, 0.857584) ,
- (0.619048, 0.863731, 0.863731) ,
- (0.634921, 0.869835, 0.869835) ,
- (0.650794, 0.875897, 0.875897) ,
- (0.666667, 0.881917, 0.881917) ,
- (0.68254, 0.887896, 0.887896) ,
- (0.698413, 0.893835, 0.893835) ,
- (0.714286, 0.899735, 0.899735) ,
- (0.730159, 0.905597, 0.905597) ,
- (0.746032, 0.911421, 0.911421) ,
- (0.761905, 0.917208, 0.917208) ,
- (0.777778, 0.922958, 0.922958) ,
- (0.793651, 0.928673, 0.928673) ,
- (0.809524, 0.934353, 0.934353) ,
- (0.825397, 0.939999, 0.939999) ,
- (0.84127, 0.945611, 0.945611) ,
- (0.857143, 0.95119, 0.95119) ,
- (0.873016, 0.956736, 0.956736) ,
- (0.888889, 0.96225, 0.96225) ,
- (0.904762, 0.967733, 0.967733) ,
- (0.920635, 0.973185, 0.973185) ,
- (0.936508, 0.978607, 0.978607) ,
- (0.952381, 0.983999, 0.983999) ,
- (0.968254, 0.989361, 0.989361) ,
- (0.984127, 0.994695, 0.994695) ,
- (1.0, 1.0, 1.0)
- },
- new triple[] { // green
- (0.0, 0.0, 0.0) ,
- (0.015873, 0.102869, 0.102869) ,
- (0.031746, 0.145479, 0.145479) ,
- (0.047619, 0.178174, 0.178174) ,
- (0.063492, 0.205738, 0.205738) ,
- (0.079365, 0.230022, 0.230022) ,
- (0.095238, 0.251976, 0.251976) ,
- (0.111111, 0.272166, 0.272166) ,
- (0.126984, 0.290957, 0.290957) ,
- (0.142857, 0.308607, 0.308607) ,
- (0.15873, 0.3253, 0.3253) ,
- (0.174603, 0.341178, 0.341178) ,
- (0.190476, 0.356348, 0.356348) ,
- (0.206349, 0.370899, 0.370899) ,
- (0.222222, 0.3849, 0.3849) ,
- (0.238095, 0.39841, 0.39841) ,
- (0.253968, 0.411476, 0.411476) ,
- (0.269841, 0.424139, 0.424139) ,
- (0.285714, 0.436436, 0.436436) ,
- (0.301587, 0.448395, 0.448395) ,
- (0.31746, 0.460044, 0.460044) ,
- (0.333333, 0.471405, 0.471405) ,
- (0.349206, 0.482498, 0.482498) ,
- (0.365079, 0.493342, 0.493342) ,
- (0.380952, 0.517549, 0.517549) ,
- (0.396825, 0.540674, 0.540674) ,
- (0.412698, 0.562849, 0.562849) ,
- (0.428571, 0.584183, 0.584183) ,
- (0.444444, 0.604765, 0.604765) ,
- (0.460317, 0.624669, 0.624669) ,
- (0.47619, 0.643958, 0.643958) ,
- (0.492063, 0.662687, 0.662687) ,
- (0.507937, 0.6809, 0.6809) ,
- (0.52381, 0.698638, 0.698638) ,
- (0.539683, 0.715937, 0.715937) ,
- (0.555556, 0.732828, 0.732828) ,
- (0.571429, 0.749338, 0.749338) ,
- (0.587302, 0.765493, 0.765493) ,
- (0.603175, 0.781313, 0.781313) ,
- (0.619048, 0.796819, 0.796819) ,
- (0.634921, 0.812029, 0.812029) ,
- (0.650794, 0.82696, 0.82696) ,
- (0.666667, 0.841625, 0.841625) ,
- (0.68254, 0.85604, 0.85604) ,
- (0.698413, 0.870216, 0.870216) ,
- (0.714286, 0.884164, 0.884164) ,
- (0.730159, 0.897896, 0.897896) ,
- (0.746032, 0.911421, 0.911421) ,
- (0.761905, 0.917208, 0.917208) ,
- (0.777778, 0.922958, 0.922958) ,
- (0.793651, 0.928673, 0.928673) ,
- (0.809524, 0.934353, 0.934353) ,
- (0.825397, 0.939999, 0.939999) ,
- (0.84127, 0.945611, 0.945611) ,
- (0.857143, 0.95119, 0.95119) ,
- (0.873016, 0.956736, 0.956736) ,
- (0.888889, 0.96225, 0.96225) ,
- (0.904762, 0.967733, 0.967733) ,
- (0.920635, 0.973185, 0.973185) ,
- (0.936508, 0.978607, 0.978607) ,
- (0.952381, 0.983999, 0.983999) ,
- (0.968254, 0.989361, 0.989361) ,
- (0.984127, 0.994695, 0.994695) ,
- (1.0, 1.0, 1.0)
- },
- new triple[] { // blue
- (0.0, 0.0, 0.0) ,
- (0.015873, 0.102869, 0.102869) ,
- (0.031746, 0.145479, 0.145479) ,
- (0.047619, 0.178174, 0.178174) ,
- (0.063492, 0.205738, 0.205738) ,
- (0.079365, 0.230022, 0.230022) ,
- (0.095238, 0.251976, 0.251976) ,
- (0.111111, 0.272166, 0.272166) ,
- (0.126984, 0.290957, 0.290957) ,
- (0.142857, 0.308607, 0.308607) ,
- (0.15873, 0.3253, 0.3253) ,
- (0.174603, 0.341178, 0.341178) ,
- (0.190476, 0.356348, 0.356348) ,
- (0.206349, 0.370899, 0.370899) ,
- (0.222222, 0.3849, 0.3849) ,
- (0.238095, 0.39841, 0.39841) ,
- (0.253968, 0.411476, 0.411476) ,
- (0.269841, 0.424139, 0.424139) ,
- (0.285714, 0.436436, 0.436436) ,
- (0.301587, 0.448395, 0.448395) ,
- (0.31746, 0.460044, 0.460044) ,
- (0.333333, 0.471405, 0.471405) ,
- (0.349206, 0.482498, 0.482498) ,
- (0.365079, 0.493342, 0.493342) ,
- (0.380952, 0.503953, 0.503953) ,
- (0.396825, 0.514344, 0.514344) ,
- (0.412698, 0.524531, 0.524531) ,
- (0.428571, 0.534522, 0.534522) ,
- (0.444444, 0.544331, 0.544331) ,
- (0.460317, 0.553966, 0.553966) ,
- (0.47619, 0.563436, 0.563436) ,
- (0.492063, 0.57275, 0.57275) ,
- (0.507937, 0.581914, 0.581914) ,
- (0.52381, 0.590937, 0.590937) ,
- (0.539683, 0.599824, 0.599824) ,
- (0.555556, 0.608581, 0.608581) ,
- (0.571429, 0.617213, 0.617213) ,
- (0.587302, 0.625727, 0.625727) ,
- (0.603175, 0.634126, 0.634126) ,
- (0.619048, 0.642416, 0.642416) ,
- (0.634921, 0.6506, 0.6506) ,
- (0.650794, 0.658682, 0.658682) ,
- (0.666667, 0.666667, 0.666667) ,
- (0.68254, 0.674556, 0.674556) ,
- (0.698413, 0.682355, 0.682355) ,
- (0.714286, 0.690066, 0.690066) ,
- (0.730159, 0.697691, 0.697691) ,
- (0.746032, 0.705234, 0.705234) ,
- (0.761905, 0.727166, 0.727166) ,
- (0.777778, 0.748455, 0.748455) ,
- (0.793651, 0.769156, 0.769156) ,
- (0.809524, 0.789314, 0.789314) ,
- (0.825397, 0.808969, 0.808969) ,
- (0.84127, 0.828159, 0.828159) ,
- (0.857143, 0.846913, 0.846913) ,
- (0.873016, 0.865261, 0.865261) ,
- (0.888889, 0.883229, 0.883229) ,
- (0.904762, 0.900837, 0.900837) ,
- (0.920635, 0.918109, 0.918109) ,
- (0.936508, 0.935061, 0.935061) ,
- (0.952381, 0.951711, 0.951711) ,
- (0.968254, 0.968075, 0.968075) ,
- (0.984127, 0.984167, 0.984167) ,
- (1.0, 1.0, 1.0)
- }
-);
+ new triple[] { // red
+ (0.0, 0.1178, 0.1178) ,
+ (0.015873, 0.195857, 0.195857) ,
+ (0.031746, 0.250661, 0.250661) ,
+ (0.047619, 0.295468, 0.295468) ,
+ (0.063492, 0.334324, 0.334324) ,
+ (0.079365, 0.369112, 0.369112) ,
+ (0.095238, 0.400892, 0.400892) ,
+ (0.111111, 0.430331, 0.430331) ,
+ (0.126984, 0.457882, 0.457882) ,
+ (0.142857, 0.483867, 0.483867) ,
+ (0.15873, 0.508525, 0.508525) ,
+ (0.174603, 0.532042, 0.532042) ,
+ (0.190476, 0.554563, 0.554563) ,
+ (0.206349, 0.576204, 0.576204) ,
+ (0.222222, 0.597061, 0.597061) ,
+ (0.238095, 0.617213, 0.617213) ,
+ (0.253968, 0.636729, 0.636729) ,
+ (0.269841, 0.655663, 0.655663) ,
+ (0.285714, 0.674066, 0.674066) ,
+ (0.301587, 0.69198, 0.69198) ,
+ (0.31746, 0.709441, 0.709441) ,
+ (0.333333, 0.726483, 0.726483) ,
+ (0.349206, 0.743134, 0.743134) ,
+ (0.365079, 0.759421, 0.759421) ,
+ (0.380952, 0.766356, 0.766356) ,
+ (0.396825, 0.773229, 0.773229) ,
+ (0.412698, 0.780042, 0.780042) ,
+ (0.428571, 0.786796, 0.786796) ,
+ (0.444444, 0.793492, 0.793492) ,
+ (0.460317, 0.800132, 0.800132) ,
+ (0.47619, 0.806718, 0.806718) ,
+ (0.492063, 0.81325, 0.81325) ,
+ (0.507937, 0.81973, 0.81973) ,
+ (0.52381, 0.82616, 0.82616) ,
+ (0.539683, 0.832539, 0.832539) ,
+ (0.555556, 0.83887, 0.83887) ,
+ (0.571429, 0.845154, 0.845154) ,
+ (0.587302, 0.851392, 0.851392) ,
+ (0.603175, 0.857584, 0.857584) ,
+ (0.619048, 0.863731, 0.863731) ,
+ (0.634921, 0.869835, 0.869835) ,
+ (0.650794, 0.875897, 0.875897) ,
+ (0.666667, 0.881917, 0.881917) ,
+ (0.68254, 0.887896, 0.887896) ,
+ (0.698413, 0.893835, 0.893835) ,
+ (0.714286, 0.899735, 0.899735) ,
+ (0.730159, 0.905597, 0.905597) ,
+ (0.746032, 0.911421, 0.911421) ,
+ (0.761905, 0.917208, 0.917208) ,
+ (0.777778, 0.922958, 0.922958) ,
+ (0.793651, 0.928673, 0.928673) ,
+ (0.809524, 0.934353, 0.934353) ,
+ (0.825397, 0.939999, 0.939999) ,
+ (0.84127, 0.945611, 0.945611) ,
+ (0.857143, 0.95119, 0.95119) ,
+ (0.873016, 0.956736, 0.956736) ,
+ (0.888889, 0.96225, 0.96225) ,
+ (0.904762, 0.967733, 0.967733) ,
+ (0.920635, 0.973185, 0.973185) ,
+ (0.936508, 0.978607, 0.978607) ,
+ (0.952381, 0.983999, 0.983999) ,
+ (0.968254, 0.989361, 0.989361) ,
+ (0.984127, 0.994695, 0.994695) ,
+ (1.0, 1.0, 1.0)
+ },
+ new triple[] { // green
+ (0.0, 0.0, 0.0) ,
+ (0.015873, 0.102869, 0.102869) ,
+ (0.031746, 0.145479, 0.145479) ,
+ (0.047619, 0.178174, 0.178174) ,
+ (0.063492, 0.205738, 0.205738) ,
+ (0.079365, 0.230022, 0.230022) ,
+ (0.095238, 0.251976, 0.251976) ,
+ (0.111111, 0.272166, 0.272166) ,
+ (0.126984, 0.290957, 0.290957) ,
+ (0.142857, 0.308607, 0.308607) ,
+ (0.15873, 0.3253, 0.3253) ,
+ (0.174603, 0.341178, 0.341178) ,
+ (0.190476, 0.356348, 0.356348) ,
+ (0.206349, 0.370899, 0.370899) ,
+ (0.222222, 0.3849, 0.3849) ,
+ (0.238095, 0.39841, 0.39841) ,
+ (0.253968, 0.411476, 0.411476) ,
+ (0.269841, 0.424139, 0.424139) ,
+ (0.285714, 0.436436, 0.436436) ,
+ (0.301587, 0.448395, 0.448395) ,
+ (0.31746, 0.460044, 0.460044) ,
+ (0.333333, 0.471405, 0.471405) ,
+ (0.349206, 0.482498, 0.482498) ,
+ (0.365079, 0.493342, 0.493342) ,
+ (0.380952, 0.517549, 0.517549) ,
+ (0.396825, 0.540674, 0.540674) ,
+ (0.412698, 0.562849, 0.562849) ,
+ (0.428571, 0.584183, 0.584183) ,
+ (0.444444, 0.604765, 0.604765) ,
+ (0.460317, 0.624669, 0.624669) ,
+ (0.47619, 0.643958, 0.643958) ,
+ (0.492063, 0.662687, 0.662687) ,
+ (0.507937, 0.6809, 0.6809) ,
+ (0.52381, 0.698638, 0.698638) ,
+ (0.539683, 0.715937, 0.715937) ,
+ (0.555556, 0.732828, 0.732828) ,
+ (0.571429, 0.749338, 0.749338) ,
+ (0.587302, 0.765493, 0.765493) ,
+ (0.603175, 0.781313, 0.781313) ,
+ (0.619048, 0.796819, 0.796819) ,
+ (0.634921, 0.812029, 0.812029) ,
+ (0.650794, 0.82696, 0.82696) ,
+ (0.666667, 0.841625, 0.841625) ,
+ (0.68254, 0.85604, 0.85604) ,
+ (0.698413, 0.870216, 0.870216) ,
+ (0.714286, 0.884164, 0.884164) ,
+ (0.730159, 0.897896, 0.897896) ,
+ (0.746032, 0.911421, 0.911421) ,
+ (0.761905, 0.917208, 0.917208) ,
+ (0.777778, 0.922958, 0.922958) ,
+ (0.793651, 0.928673, 0.928673) ,
+ (0.809524, 0.934353, 0.934353) ,
+ (0.825397, 0.939999, 0.939999) ,
+ (0.84127, 0.945611, 0.945611) ,
+ (0.857143, 0.95119, 0.95119) ,
+ (0.873016, 0.956736, 0.956736) ,
+ (0.888889, 0.96225, 0.96225) ,
+ (0.904762, 0.967733, 0.967733) ,
+ (0.920635, 0.973185, 0.973185) ,
+ (0.936508, 0.978607, 0.978607) ,
+ (0.952381, 0.983999, 0.983999) ,
+ (0.968254, 0.989361, 0.989361) ,
+ (0.984127, 0.994695, 0.994695) ,
+ (1.0, 1.0, 1.0)
+ },
+ new triple[] { // blue
+ (0.0, 0.0, 0.0) ,
+ (0.015873, 0.102869, 0.102869) ,
+ (0.031746, 0.145479, 0.145479) ,
+ (0.047619, 0.178174, 0.178174) ,
+ (0.063492, 0.205738, 0.205738) ,
+ (0.079365, 0.230022, 0.230022) ,
+ (0.095238, 0.251976, 0.251976) ,
+ (0.111111, 0.272166, 0.272166) ,
+ (0.126984, 0.290957, 0.290957) ,
+ (0.142857, 0.308607, 0.308607) ,
+ (0.15873, 0.3253, 0.3253) ,
+ (0.174603, 0.341178, 0.341178) ,
+ (0.190476, 0.356348, 0.356348) ,
+ (0.206349, 0.370899, 0.370899) ,
+ (0.222222, 0.3849, 0.3849) ,
+ (0.238095, 0.39841, 0.39841) ,
+ (0.253968, 0.411476, 0.411476) ,
+ (0.269841, 0.424139, 0.424139) ,
+ (0.285714, 0.436436, 0.436436) ,
+ (0.301587, 0.448395, 0.448395) ,
+ (0.31746, 0.460044, 0.460044) ,
+ (0.333333, 0.471405, 0.471405) ,
+ (0.349206, 0.482498, 0.482498) ,
+ (0.365079, 0.493342, 0.493342) ,
+ (0.380952, 0.503953, 0.503953) ,
+ (0.396825, 0.514344, 0.514344) ,
+ (0.412698, 0.524531, 0.524531) ,
+ (0.428571, 0.534522, 0.534522) ,
+ (0.444444, 0.544331, 0.544331) ,
+ (0.460317, 0.553966, 0.553966) ,
+ (0.47619, 0.563436, 0.563436) ,
+ (0.492063, 0.57275, 0.57275) ,
+ (0.507937, 0.581914, 0.581914) ,
+ (0.52381, 0.590937, 0.590937) ,
+ (0.539683, 0.599824, 0.599824) ,
+ (0.555556, 0.608581, 0.608581) ,
+ (0.571429, 0.617213, 0.617213) ,
+ (0.587302, 0.625727, 0.625727) ,
+ (0.603175, 0.634126, 0.634126) ,
+ (0.619048, 0.642416, 0.642416) ,
+ (0.634921, 0.6506, 0.6506) ,
+ (0.650794, 0.658682, 0.658682) ,
+ (0.666667, 0.666667, 0.666667) ,
+ (0.68254, 0.674556, 0.674556) ,
+ (0.698413, 0.682355, 0.682355) ,
+ (0.714286, 0.690066, 0.690066) ,
+ (0.730159, 0.697691, 0.697691) ,
+ (0.746032, 0.705234, 0.705234) ,
+ (0.761905, 0.727166, 0.727166) ,
+ (0.777778, 0.748455, 0.748455) ,
+ (0.793651, 0.769156, 0.769156) ,
+ (0.809524, 0.789314, 0.789314) ,
+ (0.825397, 0.808969, 0.808969) ,
+ (0.84127, 0.828159, 0.828159) ,
+ (0.857143, 0.846913, 0.846913) ,
+ (0.873016, 0.865261, 0.865261) ,
+ (0.888889, 0.883229, 0.883229) ,
+ (0.904762, 0.900837, 0.900837) ,
+ (0.920635, 0.918109, 0.918109) ,
+ (0.936508, 0.935061, 0.935061) ,
+ (0.952381, 0.951711, 0.951711) ,
+ (0.968254, 0.968075, 0.968075) ,
+ (0.984127, 0.984167, 0.984167) ,
+ (1.0, 1.0, 1.0)
+ }
+ );
list_data seismic = list_data(new pen[] {
- rgb (0.0, 0.0, 0.3) ,
- rgb (0.0, 0.0, 1.0) ,
- rgb (1.0, 1.0, 1.0) ,
- rgb (1.0, 0.0, 0.0) ,
- rgb (0.5, 0.0, 0.0)
-});
+ rgb (0.0, 0.0, 0.3) ,
+ rgb (0.0, 0.0, 1.0) ,
+ rgb (1.0, 1.0, 1.0) ,
+ rgb (1.0, 0.0, 0.0) ,
+ rgb (0.5, 0.0, 0.0)
+ });
seg_data spring = seg_data(
- new triple[] { // red
- (0.0, 1.0, 1.0) ,
- (1.0, 1.0, 1.0)
- },
- new triple[] { // green
- (0.0, 0.0, 0.0) ,
- (1.0, 1.0, 1.0)
- },
- new triple[] { // blue
- (0.0, 1.0, 1.0) ,
- (1.0, 0.0, 0.0)
- }
-);
+ new triple[] { // red
+ (0.0, 1.0, 1.0) ,
+ (1.0, 1.0, 1.0)
+ },
+ new triple[] { // green
+ (0.0, 0.0, 0.0) ,
+ (1.0, 1.0, 1.0)
+ },
+ new triple[] { // blue
+ (0.0, 1.0, 1.0) ,
+ (1.0, 0.0, 0.0)
+ }
+ );
seg_data summer = seg_data(
- new triple[] { // red
- (0.0, 0.0, 0.0) ,
- (1.0, 1.0, 1.0)
- },
- new triple[] { // green
- (0.0, 0.5, 0.5) ,
- (1.0, 1.0, 1.0)
- },
- new triple[] { // blue
- (0.0, 0.4, 0.4) ,
- (1.0, 0.4, 0.4)
- }
-);
+ new triple[] { // red
+ (0.0, 0.0, 0.0) ,
+ (1.0, 1.0, 1.0)
+ },
+ new triple[] { // green
+ (0.0, 0.5, 0.5) ,
+ (1.0, 1.0, 1.0)
+ },
+ new triple[] { // blue
+ (0.0, 0.4, 0.4) ,
+ (1.0, 0.4, 0.4)
+ }
+ );
list_data tab10 = list_data(new pen[] {
- rgb (0.12156862745098039, 0.4666666666666667, 0.7058823529411765) ,
- rgb (1.0, 0.4980392156862745, 0.054901960784313725) ,
- rgb (0.17254901960784313, 0.6274509803921569, 0.17254901960784313) ,
- rgb (0.8392156862745098, 0.15294117647058825, 0.1568627450980392) ,
- rgb (0.5803921568627451, 0.403921568627451, 0.7411764705882353) ,
- rgb (0.5490196078431373, 0.33725490196078434, 0.29411764705882354) ,
- rgb (0.8901960784313725, 0.4666666666666667, 0.7607843137254902) ,
- rgb (0.4980392156862745, 0.4980392156862745, 0.4980392156862745) ,
- rgb (0.7372549019607844, 0.7411764705882353, 0.13333333333333333) ,
- rgb (0.09019607843137255, 0.7450980392156863, 0.8117647058823529)
-});
+ rgb (0.12156862745098039, 0.4666666666666667, 0.7058823529411765) ,
+ rgb (1.0, 0.4980392156862745, 0.054901960784313725) ,
+ rgb (0.17254901960784313, 0.6274509803921569, 0.17254901960784313) ,
+ rgb (0.8392156862745098, 0.15294117647058825, 0.1568627450980392) ,
+ rgb (0.5803921568627451, 0.403921568627451, 0.7411764705882353) ,
+ rgb (0.5490196078431373, 0.33725490196078434, 0.29411764705882354) ,
+ rgb (0.8901960784313725, 0.4666666666666667, 0.7607843137254902) ,
+ rgb (0.4980392156862745, 0.4980392156862745, 0.4980392156862745) ,
+ rgb (0.7372549019607844, 0.7411764705882353, 0.13333333333333333) ,
+ rgb (0.09019607843137255, 0.7450980392156863, 0.8117647058823529)
+ });
list_data tab20 = list_data(new pen[] {
- rgb (0.12156862745098039, 0.4666666666666667, 0.7058823529411765) ,
- rgb (0.6823529411764706, 0.7803921568627451, 0.9098039215686274) ,
- rgb (1.0, 0.4980392156862745, 0.054901960784313725) ,
- rgb (1.0, 0.7333333333333333, 0.47058823529411764) ,
- rgb (0.17254901960784313, 0.6274509803921569, 0.17254901960784313) ,
- rgb (0.596078431372549, 0.8745098039215686, 0.5411764705882353) ,
- rgb (0.8392156862745098, 0.15294117647058825, 0.1568627450980392) ,
- rgb (1.0, 0.596078431372549, 0.5882352941176471) ,
- rgb (0.5803921568627451, 0.403921568627451, 0.7411764705882353) ,
- rgb (0.7725490196078432, 0.6901960784313725, 0.8352941176470589) ,
- rgb (0.5490196078431373, 0.33725490196078434, 0.29411764705882354) ,
- rgb (0.7686274509803922, 0.611764705882353, 0.5803921568627451) ,
- rgb (0.8901960784313725, 0.4666666666666667, 0.7607843137254902) ,
- rgb (0.9686274509803922, 0.7137254901960784, 0.8235294117647058) ,
- rgb (0.4980392156862745, 0.4980392156862745, 0.4980392156862745) ,
- rgb (0.7803921568627451, 0.7803921568627451, 0.7803921568627451) ,
- rgb (0.7372549019607844, 0.7411764705882353, 0.13333333333333333) ,
- rgb (0.8588235294117647, 0.8588235294117647, 0.5529411764705883) ,
- rgb (0.09019607843137255, 0.7450980392156863, 0.8117647058823529) ,
- rgb (0.6196078431372549, 0.8549019607843137, 0.8980392156862745)
-});
+ rgb (0.12156862745098039, 0.4666666666666667, 0.7058823529411765) ,
+ rgb (0.6823529411764706, 0.7803921568627451, 0.9098039215686274) ,
+ rgb (1.0, 0.4980392156862745, 0.054901960784313725) ,
+ rgb (1.0, 0.7333333333333333, 0.47058823529411764) ,
+ rgb (0.17254901960784313, 0.6274509803921569, 0.17254901960784313) ,
+ rgb (0.596078431372549, 0.8745098039215686, 0.5411764705882353) ,
+ rgb (0.8392156862745098, 0.15294117647058825, 0.1568627450980392) ,
+ rgb (1.0, 0.596078431372549, 0.5882352941176471) ,
+ rgb (0.5803921568627451, 0.403921568627451, 0.7411764705882353) ,
+ rgb (0.7725490196078432, 0.6901960784313725, 0.8352941176470589) ,
+ rgb (0.5490196078431373, 0.33725490196078434, 0.29411764705882354) ,
+ rgb (0.7686274509803922, 0.611764705882353, 0.5803921568627451) ,
+ rgb (0.8901960784313725, 0.4666666666666667, 0.7607843137254902) ,
+ rgb (0.9686274509803922, 0.7137254901960784, 0.8235294117647058) ,
+ rgb (0.4980392156862745, 0.4980392156862745, 0.4980392156862745) ,
+ rgb (0.7803921568627451, 0.7803921568627451, 0.7803921568627451) ,
+ rgb (0.7372549019607844, 0.7411764705882353, 0.13333333333333333) ,
+ rgb (0.8588235294117647, 0.8588235294117647, 0.5529411764705883) ,
+ rgb (0.09019607843137255, 0.7450980392156863, 0.8117647058823529) ,
+ rgb (0.6196078431372549, 0.8549019607843137, 0.8980392156862745)
+ });
list_data tab20b = list_data(new pen[] {
- rgb (0.2235294117647059, 0.23137254901960785, 0.4745098039215686) ,
- rgb (0.3215686274509804, 0.32941176470588235, 0.6392156862745098) ,
- rgb (0.4196078431372549, 0.43137254901960786, 0.8117647058823529) ,
- rgb (0.611764705882353, 0.6196078431372549, 0.8705882352941177) ,
- rgb (0.38823529411764707, 0.4745098039215686, 0.2235294117647059) ,
- rgb (0.5490196078431373, 0.6352941176470588, 0.3215686274509804) ,
- rgb (0.7098039215686275, 0.8117647058823529, 0.4196078431372549) ,
- rgb (0.807843137254902, 0.8588235294117647, 0.611764705882353) ,
- rgb (0.5490196078431373, 0.42745098039215684, 0.19215686274509805) ,
- rgb (0.7411764705882353, 0.6196078431372549, 0.2235294117647059) ,
- rgb (0.9058823529411765, 0.7294117647058823, 0.3215686274509804) ,
- rgb (0.9058823529411765, 0.796078431372549, 0.5803921568627451) ,
- rgb (0.5176470588235295, 0.23529411764705882, 0.2235294117647059) ,
- rgb (0.6784313725490196, 0.28627450980392155, 0.2901960784313726) ,
- rgb (0.8392156862745098, 0.3803921568627451, 0.4196078431372549) ,
- rgb (0.9058823529411765, 0.5882352941176471, 0.611764705882353) ,
- rgb (0.4823529411764706, 0.2549019607843137, 0.45098039215686275) ,
- rgb (0.6470588235294118, 0.3176470588235294, 0.5803921568627451) ,
- rgb (0.807843137254902, 0.42745098039215684, 0.7411764705882353) ,
- rgb (0.8705882352941177, 0.6196078431372549, 0.8392156862745098)
-});
+ rgb (0.2235294117647059, 0.23137254901960785, 0.4745098039215686) ,
+ rgb (0.3215686274509804, 0.32941176470588235, 0.6392156862745098) ,
+ rgb (0.4196078431372549, 0.43137254901960786, 0.8117647058823529) ,
+ rgb (0.611764705882353, 0.6196078431372549, 0.8705882352941177) ,
+ rgb (0.38823529411764707, 0.4745098039215686, 0.2235294117647059) ,
+ rgb (0.5490196078431373, 0.6352941176470588, 0.3215686274509804) ,
+ rgb (0.7098039215686275, 0.8117647058823529, 0.4196078431372549) ,
+ rgb (0.807843137254902, 0.8588235294117647, 0.611764705882353) ,
+ rgb (0.5490196078431373, 0.42745098039215684, 0.19215686274509805) ,
+ rgb (0.7411764705882353, 0.6196078431372549, 0.2235294117647059) ,
+ rgb (0.9058823529411765, 0.7294117647058823, 0.3215686274509804) ,
+ rgb (0.9058823529411765, 0.796078431372549, 0.5803921568627451) ,
+ rgb (0.5176470588235295, 0.23529411764705882, 0.2235294117647059) ,
+ rgb (0.6784313725490196, 0.28627450980392155, 0.2901960784313726) ,
+ rgb (0.8392156862745098, 0.3803921568627451, 0.4196078431372549) ,
+ rgb (0.9058823529411765, 0.5882352941176471, 0.611764705882353) ,
+ rgb (0.4823529411764706, 0.2549019607843137, 0.45098039215686275) ,
+ rgb (0.6470588235294118, 0.3176470588235294, 0.5803921568627451) ,
+ rgb (0.807843137254902, 0.42745098039215684, 0.7411764705882353) ,
+ rgb (0.8705882352941177, 0.6196078431372549, 0.8392156862745098)
+ });
list_data tab20c = list_data(new pen[] {
- rgb (0.19215686274509805, 0.5098039215686274, 0.7411764705882353) ,
- rgb (0.4196078431372549, 0.6823529411764706, 0.8392156862745098) ,
- rgb (0.6196078431372549, 0.792156862745098, 0.8823529411764706) ,
- rgb (0.7764705882352941, 0.8588235294117647, 0.9372549019607843) ,
- rgb (0.9019607843137255, 0.3333333333333333, 0.050980392156862744) ,
- rgb (0.9921568627450981, 0.5529411764705883, 0.23529411764705882) ,
- rgb (0.9921568627450981, 0.6823529411764706, 0.4196078431372549) ,
- rgb (0.9921568627450981, 0.8156862745098039, 0.6352941176470588) ,
- rgb (0.19215686274509805, 0.6392156862745098, 0.32941176470588235) ,
- rgb (0.4549019607843137, 0.7686274509803922, 0.4627450980392157) ,
- rgb (0.6313725490196078, 0.8509803921568627, 0.6078431372549019) ,
- rgb (0.7803921568627451, 0.9137254901960784, 0.7529411764705882) ,
- rgb (0.4588235294117647, 0.4196078431372549, 0.6941176470588235) ,
- rgb (0.6196078431372549, 0.6039215686274509, 0.7843137254901961) ,
- rgb (0.7372549019607844, 0.7411764705882353, 0.8627450980392157) ,
- rgb (0.8549019607843137, 0.8549019607843137, 0.9215686274509803) ,
- rgb (0.38823529411764707, 0.38823529411764707, 0.38823529411764707) ,
- rgb (0.5882352941176471, 0.5882352941176471, 0.5882352941176471) ,
- rgb (0.7411764705882353, 0.7411764705882353, 0.7411764705882353) ,
- rgb (0.8509803921568627, 0.8509803921568627, 0.8509803921568627)
-});
+ rgb (0.19215686274509805, 0.5098039215686274, 0.7411764705882353) ,
+ rgb (0.4196078431372549, 0.6823529411764706, 0.8392156862745098) ,
+ rgb (0.6196078431372549, 0.792156862745098, 0.8823529411764706) ,
+ rgb (0.7764705882352941, 0.8588235294117647, 0.9372549019607843) ,
+ rgb (0.9019607843137255, 0.3333333333333333, 0.050980392156862744) ,
+ rgb (0.9921568627450981, 0.5529411764705883, 0.23529411764705882) ,
+ rgb (0.9921568627450981, 0.6823529411764706, 0.4196078431372549) ,
+ rgb (0.9921568627450981, 0.8156862745098039, 0.6352941176470588) ,
+ rgb (0.19215686274509805, 0.6392156862745098, 0.32941176470588235) ,
+ rgb (0.4549019607843137, 0.7686274509803922, 0.4627450980392157) ,
+ rgb (0.6313725490196078, 0.8509803921568627, 0.6078431372549019) ,
+ rgb (0.7803921568627451, 0.9137254901960784, 0.7529411764705882) ,
+ rgb (0.4588235294117647, 0.4196078431372549, 0.6941176470588235) ,
+ rgb (0.6196078431372549, 0.6039215686274509, 0.7843137254901961) ,
+ rgb (0.7372549019607844, 0.7411764705882353, 0.8627450980392157) ,
+ rgb (0.8549019607843137, 0.8549019607843137, 0.9215686274509803) ,
+ rgb (0.38823529411764707, 0.38823529411764707, 0.38823529411764707) ,
+ rgb (0.5882352941176471, 0.5882352941176471, 0.5882352941176471) ,
+ rgb (0.7411764705882353, 0.7411764705882353, 0.7411764705882353) ,
+ rgb (0.8509803921568627, 0.8509803921568627, 0.8509803921568627)
+ });
seg_data winter = seg_data(
- new triple[] { // red
- (0.0, 0.0, 0.0) ,
- (1.0, 0.0, 0.0)
- },
- new triple[] { // green
- (0.0, 0.0, 0.0) ,
- (1.0, 1.0, 1.0)
- },
- new triple[] { // blue
- (0.0, 1.0, 1.0) ,
- (1.0, 0.5, 0.5)
- }
-);
+ new triple[] { // red
+ (0.0, 0.0, 0.0) ,
+ (1.0, 0.0, 0.0)
+ },
+ new triple[] { // green
+ (0.0, 0.0, 0.0) ,
+ (1.0, 1.0, 1.0)
+ },
+ new triple[] { // blue
+ (0.0, 1.0, 1.0) ,
+ (1.0, 0.5, 0.5)
+ }
+ );
seg_data wistia = seg_data(
- new triple[] { // red
- (0.0, 0.8941176470588236, 0.8941176470588236) ,
- (0.25, 1.0, 1.0) ,
- (0.5, 1.0, 1.0) ,
- (0.75, 1.0, 1.0) ,
- (1.0, 0.9882352941176471, 0.9882352941176471)
- },
- new triple[] { // green
- (0.0, 1.0, 1.0) ,
- (0.25, 0.9098039215686274, 0.9098039215686274) ,
- (0.5, 0.7411764705882353, 0.7411764705882353) ,
- (0.75, 0.6274509803921569, 0.6274509803921569) ,
- (1.0, 0.4980392156862745, 0.4980392156862745)
- },
- new triple[] { // blue
- (0.0, 0.47843137254901963, 0.47843137254901963) ,
- (0.25, 0.10196078431372549, 0.10196078431372549) ,
- (0.5, 0.0, 0.0) ,
- (0.75, 0.0, 0.0) ,
- (1.0, 0.0, 0.0)
- }
-);
+ new triple[] { // red
+ (0.0, 0.8941176470588236, 0.8941176470588236) ,
+ (0.25, 1.0, 1.0) ,
+ (0.5, 1.0, 1.0) ,
+ (0.75, 1.0, 1.0) ,
+ (1.0, 0.9882352941176471, 0.9882352941176471)
+ },
+ new triple[] { // green
+ (0.0, 1.0, 1.0) ,
+ (0.25, 0.9098039215686274, 0.9098039215686274) ,
+ (0.5, 0.7411764705882353, 0.7411764705882353) ,
+ (0.75, 0.6274509803921569, 0.6274509803921569) ,
+ (1.0, 0.4980392156862745, 0.4980392156862745)
+ },
+ new triple[] { // blue
+ (0.0, 0.47843137254901963, 0.47843137254901963) ,
+ (0.25, 0.10196078431372549, 0.10196078431372549) ,
+ (0.5, 0.0, 0.0) ,
+ (0.75, 0.0, 0.0) ,
+ (1.0, 0.0, 0.0)
+ }
+ );
list_data cividis = list_data(new pen[] {
- rgb (0.0, 0.135112, 0.304751) ,
- rgb (0.0, 0.138068, 0.311105) ,
- rgb (0.0, 0.141013, 0.317579) ,
- rgb (0.0, 0.143951, 0.323982) ,
- rgb (0.0, 0.146877, 0.330479) ,
- rgb (0.0, 0.149791, 0.337065) ,
- rgb (0.0, 0.152673, 0.343704) ,
- rgb (0.0, 0.155377, 0.3505) ,
- rgb (0.0, 0.157932, 0.357521) ,
- rgb (0.0, 0.160495, 0.364534) ,
- rgb (0.0, 0.163058, 0.371608) ,
- rgb (0.0, 0.165621, 0.378769) ,
- rgb (0.0, 0.168204, 0.385902) ,
- rgb (0.0, 0.1708, 0.3931) ,
- rgb (0.0, 0.17342, 0.400353) ,
- rgb (0.0, 0.176082, 0.407577) ,
- rgb (0.0, 0.178802, 0.414764) ,
- rgb (0.0, 0.18161, 0.421859) ,
- rgb (0.0, 0.18455, 0.428802) ,
- rgb (0.0, 0.186915, 0.435532) ,
- rgb (0.0, 0.188769, 0.439563) ,
- rgb (0.0, 0.19095, 0.441085) ,
- rgb (0.0, 0.193366, 0.441561) ,
- rgb (0.003602, 0.195911, 0.441564) ,
- rgb (0.017852, 0.198528, 0.441248) ,
- rgb (0.03211, 0.201199, 0.440785) ,
- rgb (0.046205, 0.203903, 0.440196) ,
- rgb (0.058378, 0.206629, 0.439531) ,
- rgb (0.068968, 0.209372, 0.438863) ,
- rgb (0.078624, 0.212122, 0.438105) ,
- rgb (0.087465, 0.214879, 0.437342) ,
- rgb (0.095645, 0.217643, 0.436593) ,
- rgb (0.103401, 0.220406, 0.43579) ,
- rgb (0.110658, 0.22317, 0.435067) ,
- rgb (0.117612, 0.225935, 0.434308) ,
- rgb (0.124291, 0.228697, 0.433547) ,
- rgb (0.130669, 0.231458, 0.43284) ,
- rgb (0.13683, 0.234216, 0.432148) ,
- rgb (0.142852, 0.236972, 0.431404) ,
- rgb (0.148638, 0.239724, 0.430752) ,
- rgb (0.154261, 0.242475, 0.43012) ,
- rgb (0.159733, 0.245221, 0.429528) ,
- rgb (0.165113, 0.247965, 0.428908) ,
- rgb (0.170362, 0.250707, 0.428325) ,
- rgb (0.17549, 0.253444, 0.42779) ,
- rgb (0.180503, 0.25618, 0.427299) ,
- rgb (0.185453, 0.258914, 0.426788) ,
- rgb (0.190303, 0.261644, 0.426329) ,
- rgb (0.195057, 0.264372, 0.425924) ,
- rgb (0.199764, 0.267099, 0.425497) ,
- rgb (0.204385, 0.269823, 0.425126) ,
- rgb (0.208926, 0.272546, 0.424809) ,
- rgb (0.213431, 0.275266, 0.42448) ,
- rgb (0.217863, 0.277985, 0.424206) ,
- rgb (0.222264, 0.280702, 0.423914) ,
- rgb (0.226598, 0.283419, 0.423678) ,
- rgb (0.230871, 0.286134, 0.423498) ,
- rgb (0.23512, 0.288848, 0.423304) ,
- rgb (0.239312, 0.291562, 0.423167) ,
- rgb (0.243485, 0.294274, 0.423014) ,
- rgb (0.247605, 0.296986, 0.422917) ,
- rgb (0.251675, 0.299698, 0.422873) ,
- rgb (0.255731, 0.302409, 0.422814) ,
- rgb (0.25974, 0.30512, 0.42281) ,
- rgb (0.263738, 0.307831, 0.422789) ,
- rgb (0.267693, 0.310542, 0.422821) ,
- rgb (0.271639, 0.313253, 0.422837) ,
- rgb (0.275513, 0.315965, 0.422979) ,
- rgb (0.279411, 0.318677, 0.423031) ,
- rgb (0.28324, 0.32139, 0.423211) ,
- rgb (0.287065, 0.324103, 0.423373) ,
- rgb (0.290884, 0.326816, 0.423517) ,
- rgb (0.294669, 0.329531, 0.423716) ,
- rgb (0.298421, 0.332247, 0.423973) ,
- rgb (0.302169, 0.334963, 0.424213) ,
- rgb (0.305886, 0.337681, 0.424512) ,
- rgb (0.309601, 0.340399, 0.42479) ,
- rgb (0.313287, 0.34312, 0.42512) ,
- rgb (0.316941, 0.345842, 0.425512) ,
- rgb (0.320595, 0.348565, 0.425889) ,
- rgb (0.32425, 0.351289, 0.42625) ,
- rgb (0.327875, 0.354016, 0.42667) ,
- rgb (0.331474, 0.356744, 0.427144) ,
- rgb (0.335073, 0.359474, 0.427605) ,
- rgb (0.338673, 0.362206, 0.428053) ,
- rgb (0.342246, 0.364939, 0.428559) ,
- rgb (0.345793, 0.367676, 0.429127) ,
- rgb (0.349341, 0.370414, 0.429685) ,
- rgb (0.352892, 0.373153, 0.430226) ,
- rgb (0.356418, 0.375896, 0.430823) ,
- rgb (0.359916, 0.378641, 0.431501) ,
- rgb (0.363446, 0.381388, 0.432075) ,
- rgb (0.366923, 0.384139, 0.432796) ,
- rgb (0.37043, 0.38689, 0.433428) ,
- rgb (0.373884, 0.389646, 0.434209) ,
- rgb (0.377371, 0.392404, 0.43489) ,
- rgb (0.38083, 0.395164, 0.435653) ,
- rgb (0.384268, 0.397928, 0.436475) ,
- rgb (0.387705, 0.400694, 0.437305) ,
- rgb (0.391151, 0.403464, 0.438096) ,
- rgb (0.394568, 0.406236, 0.438986) ,
- rgb (0.397991, 0.409011, 0.439848) ,
- rgb (0.401418, 0.41179, 0.440708) ,
- rgb (0.40482, 0.414572, 0.441642) ,
- rgb (0.408226, 0.417357, 0.44257) ,
- rgb (0.411607, 0.420145, 0.443577) ,
- rgb (0.414992, 0.422937, 0.444578) ,
- rgb (0.418383, 0.425733, 0.44556) ,
- rgb (0.421748, 0.428531, 0.44664) ,
- rgb (0.42512, 0.431334, 0.447692) ,
- rgb (0.428462, 0.43414, 0.448864) ,
- rgb (0.431817, 0.43695, 0.449982) ,
- rgb (0.435168, 0.439763, 0.451134) ,
- rgb (0.438504, 0.44258, 0.452341) ,
- rgb (0.44181, 0.445402, 0.453659) ,
- rgb (0.445148, 0.448226, 0.454885) ,
- rgb (0.448447, 0.451053, 0.456264) ,
- rgb (0.451759, 0.453887, 0.457582) ,
- rgb (0.455072, 0.456718, 0.458976) ,
- rgb (0.458366, 0.459552, 0.460457) ,
- rgb (0.461616, 0.462405, 0.461969) ,
- rgb (0.464947, 0.465241, 0.463395) ,
- rgb (0.468254, 0.468083, 0.464908) ,
- rgb (0.471501, 0.47096, 0.466357) ,
- rgb (0.474812, 0.473832, 0.467681) ,
- rgb (0.478186, 0.476699, 0.468845) ,
- rgb (0.481622, 0.479573, 0.469767) ,
- rgb (0.485141, 0.482451, 0.470384) ,
- rgb (0.488697, 0.485318, 0.471008) ,
- rgb (0.492278, 0.488198, 0.471453) ,
- rgb (0.495913, 0.491076, 0.471751) ,
- rgb (0.499552, 0.49396, 0.472032) ,
- rgb (0.503185, 0.496851, 0.472305) ,
- rgb (0.506866, 0.499743, 0.472432) ,
- rgb (0.51054, 0.502643, 0.47255) ,
- rgb (0.514226, 0.505546, 0.47264) ,
- rgb (0.51792, 0.508454, 0.472707) ,
- rgb (0.521643, 0.511367, 0.472639) ,
- rgb (0.525348, 0.514285, 0.47266) ,
- rgb (0.529086, 0.517207, 0.472543) ,
- rgb (0.532829, 0.520135, 0.472401) ,
- rgb (0.536553, 0.523067, 0.472352) ,
- rgb (0.540307, 0.526005, 0.472163) ,
- rgb (0.544069, 0.528948, 0.471947) ,
- rgb (0.54784, 0.531895, 0.471704) ,
- rgb (0.551612, 0.534849, 0.471439) ,
- rgb (0.555393, 0.537807, 0.471147) ,
- rgb (0.559181, 0.540771, 0.470829) ,
- rgb (0.562972, 0.543741, 0.470488) ,
- rgb (0.566802, 0.546715, 0.469988) ,
- rgb (0.570607, 0.549695, 0.469593) ,
- rgb (0.574417, 0.552682, 0.469172) ,
- rgb (0.578236, 0.555673, 0.468724) ,
- rgb (0.582087, 0.55867, 0.468118) ,
- rgb (0.585916, 0.561674, 0.467618) ,
- rgb (0.589753, 0.564682, 0.46709) ,
- rgb (0.593622, 0.567697, 0.466401) ,
- rgb (0.597469, 0.570718, 0.465821) ,
- rgb (0.601354, 0.573743, 0.465074) ,
- rgb (0.605211, 0.576777, 0.464441) ,
- rgb (0.609105, 0.579816, 0.463638) ,
- rgb (0.612977, 0.582861, 0.46295) ,
- rgb (0.616852, 0.585913, 0.462237) ,
- rgb (0.620765, 0.58897, 0.461351) ,
- rgb (0.624654, 0.592034, 0.460583) ,
- rgb (0.628576, 0.595104, 0.459641) ,
- rgb (0.632506, 0.59818, 0.458668) ,
- rgb (0.636412, 0.601264, 0.457818) ,
- rgb (0.640352, 0.604354, 0.456791) ,
- rgb (0.64427, 0.60745, 0.455886) ,
- rgb (0.648222, 0.610553, 0.454801) ,
- rgb (0.652178, 0.613664, 0.453689) ,
- rgb (0.656114, 0.61678, 0.452702) ,
- rgb (0.660082, 0.619904, 0.451534) ,
- rgb (0.664055, 0.623034, 0.450338) ,
- rgb (0.668008, 0.626171, 0.44927) ,
- rgb (0.671991, 0.629316, 0.448018) ,
- rgb (0.675981, 0.632468, 0.446736) ,
- rgb (0.679979, 0.635626, 0.445424) ,
- rgb (0.68395, 0.638793, 0.444251) ,
- rgb (0.687957, 0.641966, 0.442886) ,
- rgb (0.691971, 0.645145, 0.441491) ,
- rgb (0.695985, 0.648334, 0.440072) ,
- rgb (0.700008, 0.651529, 0.438624) ,
- rgb (0.704037, 0.654731, 0.437147) ,
- rgb (0.708067, 0.657942, 0.435647) ,
- rgb (0.712105, 0.66116, 0.434117) ,
- rgb (0.716177, 0.664384, 0.432386) ,
- rgb (0.720222, 0.667618, 0.430805) ,
- rgb (0.724274, 0.670859, 0.429194) ,
- rgb (0.728334, 0.674107, 0.427554) ,
- rgb (0.732422, 0.677364, 0.425717) ,
- rgb (0.736488, 0.680629, 0.424028) ,
- rgb (0.740589, 0.6839, 0.422131) ,
- rgb (0.744664, 0.687181, 0.420393) ,
- rgb (0.748772, 0.69047, 0.418448) ,
- rgb (0.752886, 0.693766, 0.416472) ,
- rgb (0.756975, 0.697071, 0.414659) ,
- rgb (0.761096, 0.700384, 0.412638) ,
- rgb (0.765223, 0.703705, 0.410587) ,
- rgb (0.769353, 0.707035, 0.408516) ,
- rgb (0.773486, 0.710373, 0.406422) ,
- rgb (0.777651, 0.713719, 0.404112) ,
- rgb (0.781795, 0.717074, 0.401966) ,
- rgb (0.785965, 0.720438, 0.399613) ,
- rgb (0.790116, 0.72381, 0.397423) ,
- rgb (0.794298, 0.72719, 0.395016) ,
- rgb (0.79848, 0.73058, 0.392597) ,
- rgb (0.802667, 0.733978, 0.390153) ,
- rgb (0.806859, 0.737385, 0.387684) ,
- rgb (0.811054, 0.740801, 0.385198) ,
- rgb (0.815274, 0.744226, 0.382504) ,
- rgb (0.819499, 0.747659, 0.379785) ,
- rgb (0.823729, 0.751101, 0.377043) ,
- rgb (0.827959, 0.754553, 0.374292) ,
- rgb (0.832192, 0.758014, 0.371529) ,
- rgb (0.836429, 0.761483, 0.368747) ,
- rgb (0.840693, 0.764962, 0.365746) ,
- rgb (0.844957, 0.76845, 0.362741) ,
- rgb (0.849223, 0.771947, 0.359729) ,
- rgb (0.853515, 0.775454, 0.3565) ,
- rgb (0.857809, 0.778969, 0.353259) ,
- rgb (0.862105, 0.782494, 0.350011) ,
- rgb (0.866421, 0.786028, 0.346571) ,
- rgb (0.870717, 0.789572, 0.343333) ,
- rgb (0.875057, 0.793125, 0.339685) ,
- rgb (0.879378, 0.796687, 0.336241) ,
- rgb (0.88372, 0.800258, 0.332599) ,
- rgb (0.888081, 0.803839, 0.32877) ,
- rgb (0.89244, 0.80743, 0.324968) ,
- rgb (0.896818, 0.81103, 0.320982) ,
- rgb (0.901195, 0.814639, 0.317021) ,
- rgb (0.905589, 0.818257, 0.312889) ,
- rgb (0.91, 0.821885, 0.308594) ,
- rgb (0.914407, 0.825522, 0.304348) ,
- rgb (0.918828, 0.829168, 0.29996) ,
- rgb (0.923279, 0.832822, 0.295244) ,
- rgb (0.927724, 0.836486, 0.290611) ,
- rgb (0.93218, 0.840159, 0.28588) ,
- rgb (0.93666, 0.843841, 0.280876) ,
- rgb (0.941147, 0.84753, 0.275815) ,
- rgb (0.945654, 0.851228, 0.270532) ,
- rgb (0.950178, 0.854933, 0.265085) ,
- rgb (0.954725, 0.858646, 0.259365) ,
- rgb (0.959284, 0.862365, 0.253563) ,
- rgb (0.963872, 0.866089, 0.247445) ,
- rgb (0.968469, 0.869819, 0.24131) ,
- rgb (0.973114, 0.87355, 0.234677) ,
- rgb (0.97778, 0.877281, 0.227954) ,
- rgb (0.982497, 0.881008, 0.220878) ,
- rgb (0.987293, 0.884718, 0.213336) ,
- rgb (0.992218, 0.888385, 0.205468) ,
- rgb (0.994847, 0.892954, 0.203445) ,
- rgb (0.995249, 0.898384, 0.207561) ,
- rgb (0.995503, 0.903866, 0.21237) ,
- rgb (0.995737, 0.909344, 0.217772)
-});
+ rgb (0.0, 0.135112, 0.304751) ,
+ rgb (0.0, 0.138068, 0.311105) ,
+ rgb (0.0, 0.141013, 0.317579) ,
+ rgb (0.0, 0.143951, 0.323982) ,
+ rgb (0.0, 0.146877, 0.330479) ,
+ rgb (0.0, 0.149791, 0.337065) ,
+ rgb (0.0, 0.152673, 0.343704) ,
+ rgb (0.0, 0.155377, 0.3505) ,
+ rgb (0.0, 0.157932, 0.357521) ,
+ rgb (0.0, 0.160495, 0.364534) ,
+ rgb (0.0, 0.163058, 0.371608) ,
+ rgb (0.0, 0.165621, 0.378769) ,
+ rgb (0.0, 0.168204, 0.385902) ,
+ rgb (0.0, 0.1708, 0.3931) ,
+ rgb (0.0, 0.17342, 0.400353) ,
+ rgb (0.0, 0.176082, 0.407577) ,
+ rgb (0.0, 0.178802, 0.414764) ,
+ rgb (0.0, 0.18161, 0.421859) ,
+ rgb (0.0, 0.18455, 0.428802) ,
+ rgb (0.0, 0.186915, 0.435532) ,
+ rgb (0.0, 0.188769, 0.439563) ,
+ rgb (0.0, 0.19095, 0.441085) ,
+ rgb (0.0, 0.193366, 0.441561) ,
+ rgb (0.003602, 0.195911, 0.441564) ,
+ rgb (0.017852, 0.198528, 0.441248) ,
+ rgb (0.03211, 0.201199, 0.440785) ,
+ rgb (0.046205, 0.203903, 0.440196) ,
+ rgb (0.058378, 0.206629, 0.439531) ,
+ rgb (0.068968, 0.209372, 0.438863) ,
+ rgb (0.078624, 0.212122, 0.438105) ,
+ rgb (0.087465, 0.214879, 0.437342) ,
+ rgb (0.095645, 0.217643, 0.436593) ,
+ rgb (0.103401, 0.220406, 0.43579) ,
+ rgb (0.110658, 0.22317, 0.435067) ,
+ rgb (0.117612, 0.225935, 0.434308) ,
+ rgb (0.124291, 0.228697, 0.433547) ,
+ rgb (0.130669, 0.231458, 0.43284) ,
+ rgb (0.13683, 0.234216, 0.432148) ,
+ rgb (0.142852, 0.236972, 0.431404) ,
+ rgb (0.148638, 0.239724, 0.430752) ,
+ rgb (0.154261, 0.242475, 0.43012) ,
+ rgb (0.159733, 0.245221, 0.429528) ,
+ rgb (0.165113, 0.247965, 0.428908) ,
+ rgb (0.170362, 0.250707, 0.428325) ,
+ rgb (0.17549, 0.253444, 0.42779) ,
+ rgb (0.180503, 0.25618, 0.427299) ,
+ rgb (0.185453, 0.258914, 0.426788) ,
+ rgb (0.190303, 0.261644, 0.426329) ,
+ rgb (0.195057, 0.264372, 0.425924) ,
+ rgb (0.199764, 0.267099, 0.425497) ,
+ rgb (0.204385, 0.269823, 0.425126) ,
+ rgb (0.208926, 0.272546, 0.424809) ,
+ rgb (0.213431, 0.275266, 0.42448) ,
+ rgb (0.217863, 0.277985, 0.424206) ,
+ rgb (0.222264, 0.280702, 0.423914) ,
+ rgb (0.226598, 0.283419, 0.423678) ,
+ rgb (0.230871, 0.286134, 0.423498) ,
+ rgb (0.23512, 0.288848, 0.423304) ,
+ rgb (0.239312, 0.291562, 0.423167) ,
+ rgb (0.243485, 0.294274, 0.423014) ,
+ rgb (0.247605, 0.296986, 0.422917) ,
+ rgb (0.251675, 0.299698, 0.422873) ,
+ rgb (0.255731, 0.302409, 0.422814) ,
+ rgb (0.25974, 0.30512, 0.42281) ,
+ rgb (0.263738, 0.307831, 0.422789) ,
+ rgb (0.267693, 0.310542, 0.422821) ,
+ rgb (0.271639, 0.313253, 0.422837) ,
+ rgb (0.275513, 0.315965, 0.422979) ,
+ rgb (0.279411, 0.318677, 0.423031) ,
+ rgb (0.28324, 0.32139, 0.423211) ,
+ rgb (0.287065, 0.324103, 0.423373) ,
+ rgb (0.290884, 0.326816, 0.423517) ,
+ rgb (0.294669, 0.329531, 0.423716) ,
+ rgb (0.298421, 0.332247, 0.423973) ,
+ rgb (0.302169, 0.334963, 0.424213) ,
+ rgb (0.305886, 0.337681, 0.424512) ,
+ rgb (0.309601, 0.340399, 0.42479) ,
+ rgb (0.313287, 0.34312, 0.42512) ,
+ rgb (0.316941, 0.345842, 0.425512) ,
+ rgb (0.320595, 0.348565, 0.425889) ,
+ rgb (0.32425, 0.351289, 0.42625) ,
+ rgb (0.327875, 0.354016, 0.42667) ,
+ rgb (0.331474, 0.356744, 0.427144) ,
+ rgb (0.335073, 0.359474, 0.427605) ,
+ rgb (0.338673, 0.362206, 0.428053) ,
+ rgb (0.342246, 0.364939, 0.428559) ,
+ rgb (0.345793, 0.367676, 0.429127) ,
+ rgb (0.349341, 0.370414, 0.429685) ,
+ rgb (0.352892, 0.373153, 0.430226) ,
+ rgb (0.356418, 0.375896, 0.430823) ,
+ rgb (0.359916, 0.378641, 0.431501) ,
+ rgb (0.363446, 0.381388, 0.432075) ,
+ rgb (0.366923, 0.384139, 0.432796) ,
+ rgb (0.37043, 0.38689, 0.433428) ,
+ rgb (0.373884, 0.389646, 0.434209) ,
+ rgb (0.377371, 0.392404, 0.43489) ,
+ rgb (0.38083, 0.395164, 0.435653) ,
+ rgb (0.384268, 0.397928, 0.436475) ,
+ rgb (0.387705, 0.400694, 0.437305) ,
+ rgb (0.391151, 0.403464, 0.438096) ,
+ rgb (0.394568, 0.406236, 0.438986) ,
+ rgb (0.397991, 0.409011, 0.439848) ,
+ rgb (0.401418, 0.41179, 0.440708) ,
+ rgb (0.40482, 0.414572, 0.441642) ,
+ rgb (0.408226, 0.417357, 0.44257) ,
+ rgb (0.411607, 0.420145, 0.443577) ,
+ rgb (0.414992, 0.422937, 0.444578) ,
+ rgb (0.418383, 0.425733, 0.44556) ,
+ rgb (0.421748, 0.428531, 0.44664) ,
+ rgb (0.42512, 0.431334, 0.447692) ,
+ rgb (0.428462, 0.43414, 0.448864) ,
+ rgb (0.431817, 0.43695, 0.449982) ,
+ rgb (0.435168, 0.439763, 0.451134) ,
+ rgb (0.438504, 0.44258, 0.452341) ,
+ rgb (0.44181, 0.445402, 0.453659) ,
+ rgb (0.445148, 0.448226, 0.454885) ,
+ rgb (0.448447, 0.451053, 0.456264) ,
+ rgb (0.451759, 0.453887, 0.457582) ,
+ rgb (0.455072, 0.456718, 0.458976) ,
+ rgb (0.458366, 0.459552, 0.460457) ,
+ rgb (0.461616, 0.462405, 0.461969) ,
+ rgb (0.464947, 0.465241, 0.463395) ,
+ rgb (0.468254, 0.468083, 0.464908) ,
+ rgb (0.471501, 0.47096, 0.466357) ,
+ rgb (0.474812, 0.473832, 0.467681) ,
+ rgb (0.478186, 0.476699, 0.468845) ,
+ rgb (0.481622, 0.479573, 0.469767) ,
+ rgb (0.485141, 0.482451, 0.470384) ,
+ rgb (0.488697, 0.485318, 0.471008) ,
+ rgb (0.492278, 0.488198, 0.471453) ,
+ rgb (0.495913, 0.491076, 0.471751) ,
+ rgb (0.499552, 0.49396, 0.472032) ,
+ rgb (0.503185, 0.496851, 0.472305) ,
+ rgb (0.506866, 0.499743, 0.472432) ,
+ rgb (0.51054, 0.502643, 0.47255) ,
+ rgb (0.514226, 0.505546, 0.47264) ,
+ rgb (0.51792, 0.508454, 0.472707) ,
+ rgb (0.521643, 0.511367, 0.472639) ,
+ rgb (0.525348, 0.514285, 0.47266) ,
+ rgb (0.529086, 0.517207, 0.472543) ,
+ rgb (0.532829, 0.520135, 0.472401) ,
+ rgb (0.536553, 0.523067, 0.472352) ,
+ rgb (0.540307, 0.526005, 0.472163) ,
+ rgb (0.544069, 0.528948, 0.471947) ,
+ rgb (0.54784, 0.531895, 0.471704) ,
+ rgb (0.551612, 0.534849, 0.471439) ,
+ rgb (0.555393, 0.537807, 0.471147) ,
+ rgb (0.559181, 0.540771, 0.470829) ,
+ rgb (0.562972, 0.543741, 0.470488) ,
+ rgb (0.566802, 0.546715, 0.469988) ,
+ rgb (0.570607, 0.549695, 0.469593) ,
+ rgb (0.574417, 0.552682, 0.469172) ,
+ rgb (0.578236, 0.555673, 0.468724) ,
+ rgb (0.582087, 0.55867, 0.468118) ,
+ rgb (0.585916, 0.561674, 0.467618) ,
+ rgb (0.589753, 0.564682, 0.46709) ,
+ rgb (0.593622, 0.567697, 0.466401) ,
+ rgb (0.597469, 0.570718, 0.465821) ,
+ rgb (0.601354, 0.573743, 0.465074) ,
+ rgb (0.605211, 0.576777, 0.464441) ,
+ rgb (0.609105, 0.579816, 0.463638) ,
+ rgb (0.612977, 0.582861, 0.46295) ,
+ rgb (0.616852, 0.585913, 0.462237) ,
+ rgb (0.620765, 0.58897, 0.461351) ,
+ rgb (0.624654, 0.592034, 0.460583) ,
+ rgb (0.628576, 0.595104, 0.459641) ,
+ rgb (0.632506, 0.59818, 0.458668) ,
+ rgb (0.636412, 0.601264, 0.457818) ,
+ rgb (0.640352, 0.604354, 0.456791) ,
+ rgb (0.64427, 0.60745, 0.455886) ,
+ rgb (0.648222, 0.610553, 0.454801) ,
+ rgb (0.652178, 0.613664, 0.453689) ,
+ rgb (0.656114, 0.61678, 0.452702) ,
+ rgb (0.660082, 0.619904, 0.451534) ,
+ rgb (0.664055, 0.623034, 0.450338) ,
+ rgb (0.668008, 0.626171, 0.44927) ,
+ rgb (0.671991, 0.629316, 0.448018) ,
+ rgb (0.675981, 0.632468, 0.446736) ,
+ rgb (0.679979, 0.635626, 0.445424) ,
+ rgb (0.68395, 0.638793, 0.444251) ,
+ rgb (0.687957, 0.641966, 0.442886) ,
+ rgb (0.691971, 0.645145, 0.441491) ,
+ rgb (0.695985, 0.648334, 0.440072) ,
+ rgb (0.700008, 0.651529, 0.438624) ,
+ rgb (0.704037, 0.654731, 0.437147) ,
+ rgb (0.708067, 0.657942, 0.435647) ,
+ rgb (0.712105, 0.66116, 0.434117) ,
+ rgb (0.716177, 0.664384, 0.432386) ,
+ rgb (0.720222, 0.667618, 0.430805) ,
+ rgb (0.724274, 0.670859, 0.429194) ,
+ rgb (0.728334, 0.674107, 0.427554) ,
+ rgb (0.732422, 0.677364, 0.425717) ,
+ rgb (0.736488, 0.680629, 0.424028) ,
+ rgb (0.740589, 0.6839, 0.422131) ,
+ rgb (0.744664, 0.687181, 0.420393) ,
+ rgb (0.748772, 0.69047, 0.418448) ,
+ rgb (0.752886, 0.693766, 0.416472) ,
+ rgb (0.756975, 0.697071, 0.414659) ,
+ rgb (0.761096, 0.700384, 0.412638) ,
+ rgb (0.765223, 0.703705, 0.410587) ,
+ rgb (0.769353, 0.707035, 0.408516) ,
+ rgb (0.773486, 0.710373, 0.406422) ,
+ rgb (0.777651, 0.713719, 0.404112) ,
+ rgb (0.781795, 0.717074, 0.401966) ,
+ rgb (0.785965, 0.720438, 0.399613) ,
+ rgb (0.790116, 0.72381, 0.397423) ,
+ rgb (0.794298, 0.72719, 0.395016) ,
+ rgb (0.79848, 0.73058, 0.392597) ,
+ rgb (0.802667, 0.733978, 0.390153) ,
+ rgb (0.806859, 0.737385, 0.387684) ,
+ rgb (0.811054, 0.740801, 0.385198) ,
+ rgb (0.815274, 0.744226, 0.382504) ,
+ rgb (0.819499, 0.747659, 0.379785) ,
+ rgb (0.823729, 0.751101, 0.377043) ,
+ rgb (0.827959, 0.754553, 0.374292) ,
+ rgb (0.832192, 0.758014, 0.371529) ,
+ rgb (0.836429, 0.761483, 0.368747) ,
+ rgb (0.840693, 0.764962, 0.365746) ,
+ rgb (0.844957, 0.76845, 0.362741) ,
+ rgb (0.849223, 0.771947, 0.359729) ,
+ rgb (0.853515, 0.775454, 0.3565) ,
+ rgb (0.857809, 0.778969, 0.353259) ,
+ rgb (0.862105, 0.782494, 0.350011) ,
+ rgb (0.866421, 0.786028, 0.346571) ,
+ rgb (0.870717, 0.789572, 0.343333) ,
+ rgb (0.875057, 0.793125, 0.339685) ,
+ rgb (0.879378, 0.796687, 0.336241) ,
+ rgb (0.88372, 0.800258, 0.332599) ,
+ rgb (0.888081, 0.803839, 0.32877) ,
+ rgb (0.89244, 0.80743, 0.324968) ,
+ rgb (0.896818, 0.81103, 0.320982) ,
+ rgb (0.901195, 0.814639, 0.317021) ,
+ rgb (0.905589, 0.818257, 0.312889) ,
+ rgb (0.91, 0.821885, 0.308594) ,
+ rgb (0.914407, 0.825522, 0.304348) ,
+ rgb (0.918828, 0.829168, 0.29996) ,
+ rgb (0.923279, 0.832822, 0.295244) ,
+ rgb (0.927724, 0.836486, 0.290611) ,
+ rgb (0.93218, 0.840159, 0.28588) ,
+ rgb (0.93666, 0.843841, 0.280876) ,
+ rgb (0.941147, 0.84753, 0.275815) ,
+ rgb (0.945654, 0.851228, 0.270532) ,
+ rgb (0.950178, 0.854933, 0.265085) ,
+ rgb (0.954725, 0.858646, 0.259365) ,
+ rgb (0.959284, 0.862365, 0.253563) ,
+ rgb (0.963872, 0.866089, 0.247445) ,
+ rgb (0.968469, 0.869819, 0.24131) ,
+ rgb (0.973114, 0.87355, 0.234677) ,
+ rgb (0.97778, 0.877281, 0.227954) ,
+ rgb (0.982497, 0.881008, 0.220878) ,
+ rgb (0.987293, 0.884718, 0.213336) ,
+ rgb (0.992218, 0.888385, 0.205468) ,
+ rgb (0.994847, 0.892954, 0.203445) ,
+ rgb (0.995249, 0.898384, 0.207561) ,
+ rgb (0.995503, 0.903866, 0.21237) ,
+ rgb (0.995737, 0.909344, 0.217772)
+ });
list_data inferno = list_data(new pen[] {
- rgb (0.001462, 0.000466, 0.013866) ,
- rgb (0.002267, 0.00127, 0.01857) ,
- rgb (0.003299, 0.002249, 0.024239) ,
- rgb (0.004547, 0.003392, 0.030909) ,
- rgb (0.006006, 0.004692, 0.038558) ,
- rgb (0.007676, 0.006136, 0.046836) ,
- rgb (0.009561, 0.007713, 0.055143) ,
- rgb (0.011663, 0.009417, 0.06346) ,
- rgb (0.013995, 0.011225, 0.071862) ,
- rgb (0.016561, 0.013136, 0.080282) ,
- rgb (0.019373, 0.015133, 0.088767) ,
- rgb (0.022447, 0.017199, 0.097327) ,
- rgb (0.025793, 0.019331, 0.10593) ,
- rgb (0.029432, 0.021503, 0.114621) ,
- rgb (0.033385, 0.023702, 0.123397) ,
- rgb (0.037668, 0.025921, 0.132232) ,
- rgb (0.042253, 0.028139, 0.141141) ,
- rgb (0.046915, 0.030324, 0.150164) ,
- rgb (0.051644, 0.032474, 0.159254) ,
- rgb (0.056449, 0.034569, 0.168414) ,
- rgb (0.06134, 0.03659, 0.177642) ,
- rgb (0.066331, 0.038504, 0.186962) ,
- rgb (0.071429, 0.040294, 0.196354) ,
- rgb (0.076637, 0.041905, 0.205799) ,
- rgb (0.081962, 0.043328, 0.215289) ,
- rgb (0.087411, 0.044556, 0.224813) ,
- rgb (0.09299, 0.045583, 0.234358) ,
- rgb (0.098702, 0.046402, 0.243904) ,
- rgb (0.104551, 0.047008, 0.25343) ,
- rgb (0.110536, 0.047399, 0.262912) ,
- rgb (0.116656, 0.047574, 0.272321) ,
- rgb (0.122908, 0.047536, 0.281624) ,
- rgb (0.129285, 0.047293, 0.290788) ,
- rgb (0.135778, 0.046856, 0.299776) ,
- rgb (0.142378, 0.046242, 0.308553) ,
- rgb (0.149073, 0.045468, 0.317085) ,
- rgb (0.15585, 0.044559, 0.325338) ,
- rgb (0.162689, 0.043554, 0.333277) ,
- rgb (0.169575, 0.042489, 0.340874) ,
- rgb (0.176493, 0.041402, 0.348111) ,
- rgb (0.183429, 0.040329, 0.354971) ,
- rgb (0.190367, 0.039309, 0.361447) ,
- rgb (0.197297, 0.0384, 0.367535) ,
- rgb (0.204209, 0.037632, 0.373238) ,
- rgb (0.211095, 0.03703, 0.378563) ,
- rgb (0.217949, 0.036615, 0.383522) ,
- rgb (0.224763, 0.036405, 0.388129) ,
- rgb (0.231538, 0.036405, 0.3924) ,
- rgb (0.238273, 0.036621, 0.396353) ,
- rgb (0.244967, 0.037055, 0.400007) ,
- rgb (0.25162, 0.037705, 0.403378) ,
- rgb (0.258234, 0.038571, 0.406485) ,
- rgb (0.26481, 0.039647, 0.409345) ,
- rgb (0.271347, 0.040922, 0.411976) ,
- rgb (0.27785, 0.042353, 0.414392) ,
- rgb (0.284321, 0.043933, 0.416608) ,
- rgb (0.290763, 0.045644, 0.418637) ,
- rgb (0.297178, 0.04747, 0.420491) ,
- rgb (0.303568, 0.049396, 0.422182) ,
- rgb (0.309935, 0.051407, 0.423721) ,
- rgb (0.316282, 0.05349, 0.425116) ,
- rgb (0.32261, 0.055634, 0.426377) ,
- rgb (0.328921, 0.057827, 0.427511) ,
- rgb (0.335217, 0.06006, 0.428524) ,
- rgb (0.3415, 0.062325, 0.429425) ,
- rgb (0.347771, 0.064616, 0.430217) ,
- rgb (0.354032, 0.066925, 0.430906) ,
- rgb (0.360284, 0.069247, 0.431497) ,
- rgb (0.366529, 0.071579, 0.431994) ,
- rgb (0.372768, 0.073915, 0.4324) ,
- rgb (0.379001, 0.076253, 0.432719) ,
- rgb (0.385228, 0.078591, 0.432955) ,
- rgb (0.391453, 0.080927, 0.433109) ,
- rgb (0.397674, 0.083257, 0.433183) ,
- rgb (0.403894, 0.08558, 0.433179) ,
- rgb (0.410113, 0.087896, 0.433098) ,
- rgb (0.416331, 0.090203, 0.432943) ,
- rgb (0.422549, 0.092501, 0.432714) ,
- rgb (0.428768, 0.09479, 0.432412) ,
- rgb (0.434987, 0.097069, 0.432039) ,
- rgb (0.441207, 0.099338, 0.431594) ,
- rgb (0.447428, 0.101597, 0.43108) ,
- rgb (0.453651, 0.103848, 0.430498) ,
- rgb (0.459875, 0.106089, 0.429846) ,
- rgb (0.4661, 0.108322, 0.429125) ,
- rgb (0.472328, 0.110547, 0.428334) ,
- rgb (0.478558, 0.112764, 0.427475) ,
- rgb (0.484789, 0.114974, 0.426548) ,
- rgb (0.491022, 0.117179, 0.425552) ,
- rgb (0.497257, 0.119379, 0.424488) ,
- rgb (0.503493, 0.121575, 0.423356) ,
- rgb (0.50973, 0.123769, 0.422156) ,
- rgb (0.515967, 0.12596, 0.420887) ,
- rgb (0.522206, 0.12815, 0.419549) ,
- rgb (0.528444, 0.130341, 0.418142) ,
- rgb (0.534683, 0.132534, 0.416667) ,
- rgb (0.54092, 0.134729, 0.415123) ,
- rgb (0.547157, 0.136929, 0.413511) ,
- rgb (0.553392, 0.139134, 0.411829) ,
- rgb (0.559624, 0.141346, 0.410078) ,
- rgb (0.565854, 0.143567, 0.408258) ,
- rgb (0.572081, 0.145797, 0.406369) ,
- rgb (0.578304, 0.148039, 0.404411) ,
- rgb (0.584521, 0.150294, 0.402385) ,
- rgb (0.590734, 0.152563, 0.40029) ,
- rgb (0.59694, 0.154848, 0.398125) ,
- rgb (0.603139, 0.157151, 0.395891) ,
- rgb (0.60933, 0.159474, 0.393589) ,
- rgb (0.615513, 0.161817, 0.391219) ,
- rgb (0.621685, 0.164184, 0.388781) ,
- rgb (0.627847, 0.166575, 0.386276) ,
- rgb (0.633998, 0.168992, 0.383704) ,
- rgb (0.640135, 0.171438, 0.381065) ,
- rgb (0.64626, 0.173914, 0.378359) ,
- rgb (0.652369, 0.176421, 0.375586) ,
- rgb (0.658463, 0.178962, 0.372748) ,
- rgb (0.66454, 0.181539, 0.369846) ,
- rgb (0.670599, 0.184153, 0.366879) ,
- rgb (0.676638, 0.186807, 0.363849) ,
- rgb (0.682656, 0.189501, 0.360757) ,
- rgb (0.688653, 0.192239, 0.357603) ,
- rgb (0.694627, 0.195021, 0.354388) ,
- rgb (0.700576, 0.197851, 0.351113) ,
- rgb (0.7065, 0.200728, 0.347777) ,
- rgb (0.712396, 0.203656, 0.344383) ,
- rgb (0.718264, 0.206636, 0.340931) ,
- rgb (0.724103, 0.20967, 0.337424) ,
- rgb (0.729909, 0.212759, 0.333861) ,
- rgb (0.735683, 0.215906, 0.330245) ,
- rgb (0.741423, 0.219112, 0.326576) ,
- rgb (0.747127, 0.222378, 0.322856) ,
- rgb (0.752794, 0.225706, 0.319085) ,
- rgb (0.758422, 0.229097, 0.315266) ,
- rgb (0.76401, 0.232554, 0.311399) ,
- rgb (0.769556, 0.236077, 0.307485) ,
- rgb (0.775059, 0.239667, 0.303526) ,
- rgb (0.780517, 0.243327, 0.299523) ,
- rgb (0.785929, 0.247056, 0.295477) ,
- rgb (0.791293, 0.250856, 0.29139) ,
- rgb (0.796607, 0.254728, 0.287264) ,
- rgb (0.801871, 0.258674, 0.283099) ,
- rgb (0.807082, 0.262692, 0.278898) ,
- rgb (0.812239, 0.266786, 0.274661) ,
- rgb (0.817341, 0.270954, 0.27039) ,
- rgb (0.822386, 0.275197, 0.266085) ,
- rgb (0.827372, 0.279517, 0.26175) ,
- rgb (0.832299, 0.283913, 0.257383) ,
- rgb (0.837165, 0.288385, 0.252988) ,
- rgb (0.841969, 0.292933, 0.248564) ,
- rgb (0.846709, 0.297559, 0.244113) ,
- rgb (0.851384, 0.30226, 0.239636) ,
- rgb (0.855992, 0.307038, 0.235133) ,
- rgb (0.860533, 0.311892, 0.230606) ,
- rgb (0.865006, 0.316822, 0.226055) ,
- rgb (0.869409, 0.321827, 0.221482) ,
- rgb (0.873741, 0.326906, 0.216886) ,
- rgb (0.878001, 0.33206, 0.212268) ,
- rgb (0.882188, 0.337287, 0.207628) ,
- rgb (0.886302, 0.342586, 0.202968) ,
- rgb (0.890341, 0.347957, 0.198286) ,
- rgb (0.894305, 0.353399, 0.193584) ,
- rgb (0.898192, 0.358911, 0.18886) ,
- rgb (0.902003, 0.364492, 0.184116) ,
- rgb (0.905735, 0.37014, 0.17935) ,
- rgb (0.90939, 0.375856, 0.174563) ,
- rgb (0.912966, 0.381636, 0.169755) ,
- rgb (0.916462, 0.387481, 0.164924) ,
- rgb (0.919879, 0.393389, 0.16007) ,
- rgb (0.923215, 0.399359, 0.155193) ,
- rgb (0.92647, 0.405389, 0.150292) ,
- rgb (0.929644, 0.411479, 0.145367) ,
- rgb (0.932737, 0.417627, 0.140417) ,
- rgb (0.935747, 0.423831, 0.13544) ,
- rgb (0.938675, 0.430091, 0.130438) ,
- rgb (0.941521, 0.436405, 0.125409) ,
- rgb (0.944285, 0.442772, 0.120354) ,
- rgb (0.946965, 0.449191, 0.115272) ,
- rgb (0.949562, 0.45566, 0.110164) ,
- rgb (0.952075, 0.462178, 0.105031) ,
- rgb (0.954506, 0.468744, 0.099874) ,
- rgb (0.956852, 0.475356, 0.094695) ,
- rgb (0.959114, 0.482014, 0.089499) ,
- rgb (0.961293, 0.488716, 0.084289) ,
- rgb (0.963387, 0.495462, 0.079073) ,
- rgb (0.965397, 0.502249, 0.073859) ,
- rgb (0.967322, 0.509078, 0.068659) ,
- rgb (0.969163, 0.515946, 0.063488) ,
- rgb (0.970919, 0.522853, 0.058367) ,
- rgb (0.97259, 0.529798, 0.053324) ,
- rgb (0.974176, 0.53678, 0.048392) ,
- rgb (0.975677, 0.543798, 0.043618) ,
- rgb (0.977092, 0.55085, 0.03905) ,
- rgb (0.978422, 0.557937, 0.034931) ,
- rgb (0.979666, 0.565057, 0.031409) ,
- rgb (0.980824, 0.572209, 0.028508) ,
- rgb (0.981895, 0.579392, 0.02625) ,
- rgb (0.982881, 0.586606, 0.024661) ,
- rgb (0.983779, 0.593849, 0.02377) ,
- rgb (0.984591, 0.601122, 0.023606) ,
- rgb (0.985315, 0.608422, 0.024202) ,
- rgb (0.985952, 0.61575, 0.025592) ,
- rgb (0.986502, 0.623105, 0.027814) ,
- rgb (0.986964, 0.630485, 0.030908) ,
- rgb (0.987337, 0.63789, 0.034916) ,
- rgb (0.987622, 0.64532, 0.039886) ,
- rgb (0.987819, 0.652773, 0.045581) ,
- rgb (0.987926, 0.66025, 0.05175) ,
- rgb (0.987945, 0.667748, 0.058329) ,
- rgb (0.987874, 0.675267, 0.065257) ,
- rgb (0.987714, 0.682807, 0.072489) ,
- rgb (0.987464, 0.690366, 0.07999) ,
- rgb (0.987124, 0.697944, 0.087731) ,
- rgb (0.986694, 0.70554, 0.095694) ,
- rgb (0.986175, 0.713153, 0.103863) ,
- rgb (0.985566, 0.720782, 0.112229) ,
- rgb (0.984865, 0.728427, 0.120785) ,
- rgb (0.984075, 0.736087, 0.129527) ,
- rgb (0.983196, 0.743758, 0.138453) ,
- rgb (0.982228, 0.751442, 0.147565) ,
- rgb (0.981173, 0.759135, 0.156863) ,
- rgb (0.980032, 0.766837, 0.166353) ,
- rgb (0.978806, 0.774545, 0.176037) ,
- rgb (0.977497, 0.782258, 0.185923) ,
- rgb (0.976108, 0.789974, 0.196018) ,
- rgb (0.974638, 0.797692, 0.206332) ,
- rgb (0.973088, 0.805409, 0.216877) ,
- rgb (0.971468, 0.813122, 0.227658) ,
- rgb (0.969783, 0.820825, 0.238686) ,
- rgb (0.968041, 0.828515, 0.249972) ,
- rgb (0.966243, 0.836191, 0.261534) ,
- rgb (0.964394, 0.843848, 0.273391) ,
- rgb (0.962517, 0.851476, 0.285546) ,
- rgb (0.960626, 0.859069, 0.29801) ,
- rgb (0.95872, 0.866624, 0.31082) ,
- rgb (0.956834, 0.874129, 0.323974) ,
- rgb (0.954997, 0.881569, 0.337475) ,
- rgb (0.953215, 0.888942, 0.351369) ,
- rgb (0.951546, 0.896226, 0.365627) ,
- rgb (0.950018, 0.903409, 0.380271) ,
- rgb (0.948683, 0.910473, 0.395289) ,
- rgb (0.947594, 0.917399, 0.410665) ,
- rgb (0.946809, 0.924168, 0.426373) ,
- rgb (0.946392, 0.930761, 0.442367) ,
- rgb (0.946403, 0.937159, 0.458592) ,
- rgb (0.946903, 0.943348, 0.47497) ,
- rgb (0.947937, 0.949318, 0.491426) ,
- rgb (0.949545, 0.955063, 0.50786) ,
- rgb (0.95174, 0.960587, 0.524203) ,
- rgb (0.954529, 0.965896, 0.540361) ,
- rgb (0.957896, 0.971003, 0.556275) ,
- rgb (0.961812, 0.975924, 0.571925) ,
- rgb (0.966249, 0.980678, 0.587206) ,
- rgb (0.971162, 0.985282, 0.602154) ,
- rgb (0.976511, 0.989753, 0.61676) ,
- rgb (0.982257, 0.994109, 0.631017) ,
- rgb (0.988362, 0.998364, 0.644924)
-});
+ rgb (0.001462, 0.000466, 0.013866) ,
+ rgb (0.002267, 0.00127, 0.01857) ,
+ rgb (0.003299, 0.002249, 0.024239) ,
+ rgb (0.004547, 0.003392, 0.030909) ,
+ rgb (0.006006, 0.004692, 0.038558) ,
+ rgb (0.007676, 0.006136, 0.046836) ,
+ rgb (0.009561, 0.007713, 0.055143) ,
+ rgb (0.011663, 0.009417, 0.06346) ,
+ rgb (0.013995, 0.011225, 0.071862) ,
+ rgb (0.016561, 0.013136, 0.080282) ,
+ rgb (0.019373, 0.015133, 0.088767) ,
+ rgb (0.022447, 0.017199, 0.097327) ,
+ rgb (0.025793, 0.019331, 0.10593) ,
+ rgb (0.029432, 0.021503, 0.114621) ,
+ rgb (0.033385, 0.023702, 0.123397) ,
+ rgb (0.037668, 0.025921, 0.132232) ,
+ rgb (0.042253, 0.028139, 0.141141) ,
+ rgb (0.046915, 0.030324, 0.150164) ,
+ rgb (0.051644, 0.032474, 0.159254) ,
+ rgb (0.056449, 0.034569, 0.168414) ,
+ rgb (0.06134, 0.03659, 0.177642) ,
+ rgb (0.066331, 0.038504, 0.186962) ,
+ rgb (0.071429, 0.040294, 0.196354) ,
+ rgb (0.076637, 0.041905, 0.205799) ,
+ rgb (0.081962, 0.043328, 0.215289) ,
+ rgb (0.087411, 0.044556, 0.224813) ,
+ rgb (0.09299, 0.045583, 0.234358) ,
+ rgb (0.098702, 0.046402, 0.243904) ,
+ rgb (0.104551, 0.047008, 0.25343) ,
+ rgb (0.110536, 0.047399, 0.262912) ,
+ rgb (0.116656, 0.047574, 0.272321) ,
+ rgb (0.122908, 0.047536, 0.281624) ,
+ rgb (0.129285, 0.047293, 0.290788) ,
+ rgb (0.135778, 0.046856, 0.299776) ,
+ rgb (0.142378, 0.046242, 0.308553) ,
+ rgb (0.149073, 0.045468, 0.317085) ,
+ rgb (0.15585, 0.044559, 0.325338) ,
+ rgb (0.162689, 0.043554, 0.333277) ,
+ rgb (0.169575, 0.042489, 0.340874) ,
+ rgb (0.176493, 0.041402, 0.348111) ,
+ rgb (0.183429, 0.040329, 0.354971) ,
+ rgb (0.190367, 0.039309, 0.361447) ,
+ rgb (0.197297, 0.0384, 0.367535) ,
+ rgb (0.204209, 0.037632, 0.373238) ,
+ rgb (0.211095, 0.03703, 0.378563) ,
+ rgb (0.217949, 0.036615, 0.383522) ,
+ rgb (0.224763, 0.036405, 0.388129) ,
+ rgb (0.231538, 0.036405, 0.3924) ,
+ rgb (0.238273, 0.036621, 0.396353) ,
+ rgb (0.244967, 0.037055, 0.400007) ,
+ rgb (0.25162, 0.037705, 0.403378) ,
+ rgb (0.258234, 0.038571, 0.406485) ,
+ rgb (0.26481, 0.039647, 0.409345) ,
+ rgb (0.271347, 0.040922, 0.411976) ,
+ rgb (0.27785, 0.042353, 0.414392) ,
+ rgb (0.284321, 0.043933, 0.416608) ,
+ rgb (0.290763, 0.045644, 0.418637) ,
+ rgb (0.297178, 0.04747, 0.420491) ,
+ rgb (0.303568, 0.049396, 0.422182) ,
+ rgb (0.309935, 0.051407, 0.423721) ,
+ rgb (0.316282, 0.05349, 0.425116) ,
+ rgb (0.32261, 0.055634, 0.426377) ,
+ rgb (0.328921, 0.057827, 0.427511) ,
+ rgb (0.335217, 0.06006, 0.428524) ,
+ rgb (0.3415, 0.062325, 0.429425) ,
+ rgb (0.347771, 0.064616, 0.430217) ,
+ rgb (0.354032, 0.066925, 0.430906) ,
+ rgb (0.360284, 0.069247, 0.431497) ,
+ rgb (0.366529, 0.071579, 0.431994) ,
+ rgb (0.372768, 0.073915, 0.4324) ,
+ rgb (0.379001, 0.076253, 0.432719) ,
+ rgb (0.385228, 0.078591, 0.432955) ,
+ rgb (0.391453, 0.080927, 0.433109) ,
+ rgb (0.397674, 0.083257, 0.433183) ,
+ rgb (0.403894, 0.08558, 0.433179) ,
+ rgb (0.410113, 0.087896, 0.433098) ,
+ rgb (0.416331, 0.090203, 0.432943) ,
+ rgb (0.422549, 0.092501, 0.432714) ,
+ rgb (0.428768, 0.09479, 0.432412) ,
+ rgb (0.434987, 0.097069, 0.432039) ,
+ rgb (0.441207, 0.099338, 0.431594) ,
+ rgb (0.447428, 0.101597, 0.43108) ,
+ rgb (0.453651, 0.103848, 0.430498) ,
+ rgb (0.459875, 0.106089, 0.429846) ,
+ rgb (0.4661, 0.108322, 0.429125) ,
+ rgb (0.472328, 0.110547, 0.428334) ,
+ rgb (0.478558, 0.112764, 0.427475) ,
+ rgb (0.484789, 0.114974, 0.426548) ,
+ rgb (0.491022, 0.117179, 0.425552) ,
+ rgb (0.497257, 0.119379, 0.424488) ,
+ rgb (0.503493, 0.121575, 0.423356) ,
+ rgb (0.50973, 0.123769, 0.422156) ,
+ rgb (0.515967, 0.12596, 0.420887) ,
+ rgb (0.522206, 0.12815, 0.419549) ,
+ rgb (0.528444, 0.130341, 0.418142) ,
+ rgb (0.534683, 0.132534, 0.416667) ,
+ rgb (0.54092, 0.134729, 0.415123) ,
+ rgb (0.547157, 0.136929, 0.413511) ,
+ rgb (0.553392, 0.139134, 0.411829) ,
+ rgb (0.559624, 0.141346, 0.410078) ,
+ rgb (0.565854, 0.143567, 0.408258) ,
+ rgb (0.572081, 0.145797, 0.406369) ,
+ rgb (0.578304, 0.148039, 0.404411) ,
+ rgb (0.584521, 0.150294, 0.402385) ,
+ rgb (0.590734, 0.152563, 0.40029) ,
+ rgb (0.59694, 0.154848, 0.398125) ,
+ rgb (0.603139, 0.157151, 0.395891) ,
+ rgb (0.60933, 0.159474, 0.393589) ,
+ rgb (0.615513, 0.161817, 0.391219) ,
+ rgb (0.621685, 0.164184, 0.388781) ,
+ rgb (0.627847, 0.166575, 0.386276) ,
+ rgb (0.633998, 0.168992, 0.383704) ,
+ rgb (0.640135, 0.171438, 0.381065) ,
+ rgb (0.64626, 0.173914, 0.378359) ,
+ rgb (0.652369, 0.176421, 0.375586) ,
+ rgb (0.658463, 0.178962, 0.372748) ,
+ rgb (0.66454, 0.181539, 0.369846) ,
+ rgb (0.670599, 0.184153, 0.366879) ,
+ rgb (0.676638, 0.186807, 0.363849) ,
+ rgb (0.682656, 0.189501, 0.360757) ,
+ rgb (0.688653, 0.192239, 0.357603) ,
+ rgb (0.694627, 0.195021, 0.354388) ,
+ rgb (0.700576, 0.197851, 0.351113) ,
+ rgb (0.7065, 0.200728, 0.347777) ,
+ rgb (0.712396, 0.203656, 0.344383) ,
+ rgb (0.718264, 0.206636, 0.340931) ,
+ rgb (0.724103, 0.20967, 0.337424) ,
+ rgb (0.729909, 0.212759, 0.333861) ,
+ rgb (0.735683, 0.215906, 0.330245) ,
+ rgb (0.741423, 0.219112, 0.326576) ,
+ rgb (0.747127, 0.222378, 0.322856) ,
+ rgb (0.752794, 0.225706, 0.319085) ,
+ rgb (0.758422, 0.229097, 0.315266) ,
+ rgb (0.76401, 0.232554, 0.311399) ,
+ rgb (0.769556, 0.236077, 0.307485) ,
+ rgb (0.775059, 0.239667, 0.303526) ,
+ rgb (0.780517, 0.243327, 0.299523) ,
+ rgb (0.785929, 0.247056, 0.295477) ,
+ rgb (0.791293, 0.250856, 0.29139) ,
+ rgb (0.796607, 0.254728, 0.287264) ,
+ rgb (0.801871, 0.258674, 0.283099) ,
+ rgb (0.807082, 0.262692, 0.278898) ,
+ rgb (0.812239, 0.266786, 0.274661) ,
+ rgb (0.817341, 0.270954, 0.27039) ,
+ rgb (0.822386, 0.275197, 0.266085) ,
+ rgb (0.827372, 0.279517, 0.26175) ,
+ rgb (0.832299, 0.283913, 0.257383) ,
+ rgb (0.837165, 0.288385, 0.252988) ,
+ rgb (0.841969, 0.292933, 0.248564) ,
+ rgb (0.846709, 0.297559, 0.244113) ,
+ rgb (0.851384, 0.30226, 0.239636) ,
+ rgb (0.855992, 0.307038, 0.235133) ,
+ rgb (0.860533, 0.311892, 0.230606) ,
+ rgb (0.865006, 0.316822, 0.226055) ,
+ rgb (0.869409, 0.321827, 0.221482) ,
+ rgb (0.873741, 0.326906, 0.216886) ,
+ rgb (0.878001, 0.33206, 0.212268) ,
+ rgb (0.882188, 0.337287, 0.207628) ,
+ rgb (0.886302, 0.342586, 0.202968) ,
+ rgb (0.890341, 0.347957, 0.198286) ,
+ rgb (0.894305, 0.353399, 0.193584) ,
+ rgb (0.898192, 0.358911, 0.18886) ,
+ rgb (0.902003, 0.364492, 0.184116) ,
+ rgb (0.905735, 0.37014, 0.17935) ,
+ rgb (0.90939, 0.375856, 0.174563) ,
+ rgb (0.912966, 0.381636, 0.169755) ,
+ rgb (0.916462, 0.387481, 0.164924) ,
+ rgb (0.919879, 0.393389, 0.16007) ,
+ rgb (0.923215, 0.399359, 0.155193) ,
+ rgb (0.92647, 0.405389, 0.150292) ,
+ rgb (0.929644, 0.411479, 0.145367) ,
+ rgb (0.932737, 0.417627, 0.140417) ,
+ rgb (0.935747, 0.423831, 0.13544) ,
+ rgb (0.938675, 0.430091, 0.130438) ,
+ rgb (0.941521, 0.436405, 0.125409) ,
+ rgb (0.944285, 0.442772, 0.120354) ,
+ rgb (0.946965, 0.449191, 0.115272) ,
+ rgb (0.949562, 0.45566, 0.110164) ,
+ rgb (0.952075, 0.462178, 0.105031) ,
+ rgb (0.954506, 0.468744, 0.099874) ,
+ rgb (0.956852, 0.475356, 0.094695) ,
+ rgb (0.959114, 0.482014, 0.089499) ,
+ rgb (0.961293, 0.488716, 0.084289) ,
+ rgb (0.963387, 0.495462, 0.079073) ,
+ rgb (0.965397, 0.502249, 0.073859) ,
+ rgb (0.967322, 0.509078, 0.068659) ,
+ rgb (0.969163, 0.515946, 0.063488) ,
+ rgb (0.970919, 0.522853, 0.058367) ,
+ rgb (0.97259, 0.529798, 0.053324) ,
+ rgb (0.974176, 0.53678, 0.048392) ,
+ rgb (0.975677, 0.543798, 0.043618) ,
+ rgb (0.977092, 0.55085, 0.03905) ,
+ rgb (0.978422, 0.557937, 0.034931) ,
+ rgb (0.979666, 0.565057, 0.031409) ,
+ rgb (0.980824, 0.572209, 0.028508) ,
+ rgb (0.981895, 0.579392, 0.02625) ,
+ rgb (0.982881, 0.586606, 0.024661) ,
+ rgb (0.983779, 0.593849, 0.02377) ,
+ rgb (0.984591, 0.601122, 0.023606) ,
+ rgb (0.985315, 0.608422, 0.024202) ,
+ rgb (0.985952, 0.61575, 0.025592) ,
+ rgb (0.986502, 0.623105, 0.027814) ,
+ rgb (0.986964, 0.630485, 0.030908) ,
+ rgb (0.987337, 0.63789, 0.034916) ,
+ rgb (0.987622, 0.64532, 0.039886) ,
+ rgb (0.987819, 0.652773, 0.045581) ,
+ rgb (0.987926, 0.66025, 0.05175) ,
+ rgb (0.987945, 0.667748, 0.058329) ,
+ rgb (0.987874, 0.675267, 0.065257) ,
+ rgb (0.987714, 0.682807, 0.072489) ,
+ rgb (0.987464, 0.690366, 0.07999) ,
+ rgb (0.987124, 0.697944, 0.087731) ,
+ rgb (0.986694, 0.70554, 0.095694) ,
+ rgb (0.986175, 0.713153, 0.103863) ,
+ rgb (0.985566, 0.720782, 0.112229) ,
+ rgb (0.984865, 0.728427, 0.120785) ,
+ rgb (0.984075, 0.736087, 0.129527) ,
+ rgb (0.983196, 0.743758, 0.138453) ,
+ rgb (0.982228, 0.751442, 0.147565) ,
+ rgb (0.981173, 0.759135, 0.156863) ,
+ rgb (0.980032, 0.766837, 0.166353) ,
+ rgb (0.978806, 0.774545, 0.176037) ,
+ rgb (0.977497, 0.782258, 0.185923) ,
+ rgb (0.976108, 0.789974, 0.196018) ,
+ rgb (0.974638, 0.797692, 0.206332) ,
+ rgb (0.973088, 0.805409, 0.216877) ,
+ rgb (0.971468, 0.813122, 0.227658) ,
+ rgb (0.969783, 0.820825, 0.238686) ,
+ rgb (0.968041, 0.828515, 0.249972) ,
+ rgb (0.966243, 0.836191, 0.261534) ,
+ rgb (0.964394, 0.843848, 0.273391) ,
+ rgb (0.962517, 0.851476, 0.285546) ,
+ rgb (0.960626, 0.859069, 0.29801) ,
+ rgb (0.95872, 0.866624, 0.31082) ,
+ rgb (0.956834, 0.874129, 0.323974) ,
+ rgb (0.954997, 0.881569, 0.337475) ,
+ rgb (0.953215, 0.888942, 0.351369) ,
+ rgb (0.951546, 0.896226, 0.365627) ,
+ rgb (0.950018, 0.903409, 0.380271) ,
+ rgb (0.948683, 0.910473, 0.395289) ,
+ rgb (0.947594, 0.917399, 0.410665) ,
+ rgb (0.946809, 0.924168, 0.426373) ,
+ rgb (0.946392, 0.930761, 0.442367) ,
+ rgb (0.946403, 0.937159, 0.458592) ,
+ rgb (0.946903, 0.943348, 0.47497) ,
+ rgb (0.947937, 0.949318, 0.491426) ,
+ rgb (0.949545, 0.955063, 0.50786) ,
+ rgb (0.95174, 0.960587, 0.524203) ,
+ rgb (0.954529, 0.965896, 0.540361) ,
+ rgb (0.957896, 0.971003, 0.556275) ,
+ rgb (0.961812, 0.975924, 0.571925) ,
+ rgb (0.966249, 0.980678, 0.587206) ,
+ rgb (0.971162, 0.985282, 0.602154) ,
+ rgb (0.976511, 0.989753, 0.61676) ,
+ rgb (0.982257, 0.994109, 0.631017) ,
+ rgb (0.988362, 0.998364, 0.644924)
+ });
list_data magma = list_data(new pen[] {
- rgb (0.001462, 0.000466, 0.013866) ,
- rgb (0.002258, 0.001295, 0.018331) ,
- rgb (0.003279, 0.002305, 0.023708) ,
- rgb (0.004512, 0.00349, 0.029965) ,
- rgb (0.00595, 0.004843, 0.03713) ,
- rgb (0.007588, 0.006356, 0.044973) ,
- rgb (0.009426, 0.008022, 0.052844) ,
- rgb (0.011465, 0.009828, 0.06075) ,
- rgb (0.013708, 0.011771, 0.068667) ,
- rgb (0.016156, 0.01384, 0.076603) ,
- rgb (0.018815, 0.016026, 0.084584) ,
- rgb (0.021692, 0.01832, 0.09261) ,
- rgb (0.024792, 0.020715, 0.100676) ,
- rgb (0.028123, 0.023201, 0.108787) ,
- rgb (0.031696, 0.025765, 0.116965) ,
- rgb (0.03552, 0.028397, 0.125209) ,
- rgb (0.039608, 0.03109, 0.133515) ,
- rgb (0.04383, 0.03383, 0.141886) ,
- rgb (0.048062, 0.036607, 0.150327) ,
- rgb (0.05232, 0.039407, 0.158841) ,
- rgb (0.056615, 0.04216, 0.167446) ,
- rgb (0.060949, 0.044794, 0.176129) ,
- rgb (0.06533, 0.047318, 0.184892) ,
- rgb (0.069764, 0.049726, 0.193735) ,
- rgb (0.074257, 0.052017, 0.20266) ,
- rgb (0.078815, 0.054184, 0.211667) ,
- rgb (0.083446, 0.056225, 0.220755) ,
- rgb (0.088155, 0.058133, 0.229922) ,
- rgb (0.092949, 0.059904, 0.239164) ,
- rgb (0.097833, 0.061531, 0.248477) ,
- rgb (0.102815, 0.06301, 0.257854) ,
- rgb (0.107899, 0.064335, 0.267289) ,
- rgb (0.113094, 0.065492, 0.276784) ,
- rgb (0.118405, 0.066479, 0.286321) ,
- rgb (0.123833, 0.067295, 0.295879) ,
- rgb (0.12938, 0.067935, 0.305443) ,
- rgb (0.135053, 0.068391, 0.315) ,
- rgb (0.140858, 0.068654, 0.324538) ,
- rgb (0.146785, 0.068738, 0.334011) ,
- rgb (0.152839, 0.068637, 0.343404) ,
- rgb (0.159018, 0.068354, 0.352688) ,
- rgb (0.165308, 0.067911, 0.361816) ,
- rgb (0.171713, 0.067305, 0.370771) ,
- rgb (0.178212, 0.066576, 0.379497) ,
- rgb (0.184801, 0.065732, 0.387973) ,
- rgb (0.19146, 0.064818, 0.396152) ,
- rgb (0.198177, 0.063862, 0.404009) ,
- rgb (0.204935, 0.062907, 0.411514) ,
- rgb (0.211718, 0.061992, 0.418647) ,
- rgb (0.218512, 0.061158, 0.425392) ,
- rgb (0.225302, 0.060445, 0.431742) ,
- rgb (0.232077, 0.059889, 0.437695) ,
- rgb (0.238826, 0.059517, 0.443256) ,
- rgb (0.245543, 0.059352, 0.448436) ,
- rgb (0.25222, 0.059415, 0.453248) ,
- rgb (0.258857, 0.059706, 0.45771) ,
- rgb (0.265447, 0.060237, 0.46184) ,
- rgb (0.271994, 0.060994, 0.46566) ,
- rgb (0.278493, 0.061978, 0.46919) ,
- rgb (0.284951, 0.063168, 0.472451) ,
- rgb (0.291366, 0.064553, 0.475462) ,
- rgb (0.29774, 0.066117, 0.478243) ,
- rgb (0.304081, 0.067835, 0.480812) ,
- rgb (0.310382, 0.069702, 0.483186) ,
- rgb (0.316654, 0.07169, 0.48538) ,
- rgb (0.322899, 0.073782, 0.487408) ,
- rgb (0.329114, 0.075972, 0.489287) ,
- rgb (0.335308, 0.078236, 0.491024) ,
- rgb (0.341482, 0.080564, 0.492631) ,
- rgb (0.347636, 0.082946, 0.494121) ,
- rgb (0.353773, 0.085373, 0.495501) ,
- rgb (0.359898, 0.087831, 0.496778) ,
- rgb (0.366012, 0.090314, 0.49796) ,
- rgb (0.372116, 0.092816, 0.499053) ,
- rgb (0.378211, 0.095332, 0.500067) ,
- rgb (0.384299, 0.097855, 0.501002) ,
- rgb (0.390384, 0.100379, 0.501864) ,
- rgb (0.396467, 0.102902, 0.502658) ,
- rgb (0.402548, 0.10542, 0.503386) ,
- rgb (0.408629, 0.10793, 0.504052) ,
- rgb (0.414709, 0.110431, 0.504662) ,
- rgb (0.420791, 0.11292, 0.505215) ,
- rgb (0.426877, 0.115395, 0.505714) ,
- rgb (0.432967, 0.117855, 0.50616) ,
- rgb (0.439062, 0.120298, 0.506555) ,
- rgb (0.445163, 0.122724, 0.506901) ,
- rgb (0.451271, 0.125132, 0.507198) ,
- rgb (0.457386, 0.127522, 0.507448) ,
- rgb (0.463508, 0.129893, 0.507652) ,
- rgb (0.46964, 0.132245, 0.507809) ,
- rgb (0.47578, 0.134577, 0.507921) ,
- rgb (0.481929, 0.136891, 0.507989) ,
- rgb (0.488088, 0.139186, 0.508011) ,
- rgb (0.494258, 0.141462, 0.507988) ,
- rgb (0.500438, 0.143719, 0.50792) ,
- rgb (0.506629, 0.145958, 0.507806) ,
- rgb (0.512831, 0.148179, 0.507648) ,
- rgb (0.519045, 0.150383, 0.507443) ,
- rgb (0.52527, 0.152569, 0.507192) ,
- rgb (0.531507, 0.154739, 0.506895) ,
- rgb (0.537755, 0.156894, 0.506551) ,
- rgb (0.544015, 0.159033, 0.506159) ,
- rgb (0.550287, 0.161158, 0.505719) ,
- rgb (0.556571, 0.163269, 0.50523) ,
- rgb (0.562866, 0.165368, 0.504692) ,
- rgb (0.569172, 0.167454, 0.504105) ,
- rgb (0.57549, 0.16953, 0.503466) ,
- rgb (0.581819, 0.171596, 0.502777) ,
- rgb (0.588158, 0.173652, 0.502035) ,
- rgb (0.594508, 0.175701, 0.501241) ,
- rgb (0.600868, 0.177743, 0.500394) ,
- rgb (0.607238, 0.179779, 0.499492) ,
- rgb (0.613617, 0.181811, 0.498536) ,
- rgb (0.620005, 0.18384, 0.497524) ,
- rgb (0.626401, 0.185867, 0.496456) ,
- rgb (0.632805, 0.187893, 0.495332) ,
- rgb (0.639216, 0.189921, 0.49415) ,
- rgb (0.645633, 0.191952, 0.49291) ,
- rgb (0.652056, 0.193986, 0.491611) ,
- rgb (0.658483, 0.196027, 0.490253) ,
- rgb (0.664915, 0.198075, 0.488836) ,
- rgb (0.671349, 0.200133, 0.487358) ,
- rgb (0.677786, 0.202203, 0.485819) ,
- rgb (0.684224, 0.204286, 0.484219) ,
- rgb (0.690661, 0.206384, 0.482558) ,
- rgb (0.697098, 0.208501, 0.480835) ,
- rgb (0.703532, 0.210638, 0.479049) ,
- rgb (0.709962, 0.212797, 0.477201) ,
- rgb (0.716387, 0.214982, 0.47529) ,
- rgb (0.722805, 0.217194, 0.473316) ,
- rgb (0.729216, 0.219437, 0.471279) ,
- rgb (0.735616, 0.221713, 0.46918) ,
- rgb (0.742004, 0.224025, 0.467018) ,
- rgb (0.748378, 0.226377, 0.464794) ,
- rgb (0.754737, 0.228772, 0.462509) ,
- rgb (0.761077, 0.231214, 0.460162) ,
- rgb (0.767398, 0.233705, 0.457755) ,
- rgb (0.773695, 0.236249, 0.455289) ,
- rgb (0.779968, 0.238851, 0.452765) ,
- rgb (0.786212, 0.241514, 0.450184) ,
- rgb (0.792427, 0.244242, 0.447543) ,
- rgb (0.798608, 0.24704, 0.444848) ,
- rgb (0.804752, 0.249911, 0.442102) ,
- rgb (0.810855, 0.252861, 0.439305) ,
- rgb (0.816914, 0.255895, 0.436461) ,
- rgb (0.822926, 0.259016, 0.433573) ,
- rgb (0.828886, 0.262229, 0.430644) ,
- rgb (0.834791, 0.26554, 0.427671) ,
- rgb (0.840636, 0.268953, 0.424666) ,
- rgb (0.846416, 0.272473, 0.421631) ,
- rgb (0.852126, 0.276106, 0.418573) ,
- rgb (0.857763, 0.279857, 0.415496) ,
- rgb (0.86332, 0.283729, 0.412403) ,
- rgb (0.868793, 0.287728, 0.409303) ,
- rgb (0.874176, 0.291859, 0.406205) ,
- rgb (0.879464, 0.296125, 0.403118) ,
- rgb (0.884651, 0.30053, 0.400047) ,
- rgb (0.889731, 0.305079, 0.397002) ,
- rgb (0.8947, 0.309773, 0.393995) ,
- rgb (0.899552, 0.314616, 0.391037) ,
- rgb (0.904281, 0.31961, 0.388137) ,
- rgb (0.908884, 0.324755, 0.385308) ,
- rgb (0.913354, 0.330052, 0.382563) ,
- rgb (0.917689, 0.3355, 0.379915) ,
- rgb (0.921884, 0.341098, 0.377376) ,
- rgb (0.925937, 0.346844, 0.374959) ,
- rgb (0.929845, 0.352734, 0.372677) ,
- rgb (0.933606, 0.358764, 0.370541) ,
- rgb (0.937221, 0.364929, 0.368567) ,
- rgb (0.940687, 0.371224, 0.366762) ,
- rgb (0.944006, 0.377643, 0.365136) ,
- rgb (0.94718, 0.384178, 0.363701) ,
- rgb (0.95021, 0.39082, 0.362468) ,
- rgb (0.953099, 0.397563, 0.361438) ,
- rgb (0.955849, 0.4044, 0.360619) ,
- rgb (0.958464, 0.411324, 0.360014) ,
- rgb (0.960949, 0.418323, 0.35963) ,
- rgb (0.96331, 0.42539, 0.359469) ,
- rgb (0.965549, 0.432519, 0.359529) ,
- rgb (0.967671, 0.439703, 0.35981) ,
- rgb (0.96968, 0.446936, 0.360311) ,
- rgb (0.971582, 0.45421, 0.36103) ,
- rgb (0.973381, 0.46152, 0.361965) ,
- rgb (0.975082, 0.468861, 0.363111) ,
- rgb (0.97669, 0.476226, 0.364466) ,
- rgb (0.97821, 0.483612, 0.366025) ,
- rgb (0.979645, 0.491014, 0.367783) ,
- rgb (0.981, 0.498428, 0.369734) ,
- rgb (0.982279, 0.505851, 0.371874) ,
- rgb (0.983485, 0.51328, 0.374198) ,
- rgb (0.984622, 0.520713, 0.376698) ,
- rgb (0.985693, 0.528148, 0.379371) ,
- rgb (0.9867, 0.535582, 0.38221) ,
- rgb (0.987646, 0.543015, 0.38521) ,
- rgb (0.988533, 0.550446, 0.388365) ,
- rgb (0.989363, 0.557873, 0.391671) ,
- rgb (0.990138, 0.565296, 0.395122) ,
- rgb (0.990871, 0.572706, 0.398714) ,
- rgb (0.991558, 0.580107, 0.402441) ,
- rgb (0.992196, 0.587502, 0.406299) ,
- rgb (0.992785, 0.594891, 0.410283) ,
- rgb (0.993326, 0.602275, 0.41439) ,
- rgb (0.993834, 0.609644, 0.418613) ,
- rgb (0.994309, 0.616999, 0.42295) ,
- rgb (0.994738, 0.62435, 0.427397) ,
- rgb (0.995122, 0.631696, 0.431951) ,
- rgb (0.99548, 0.639027, 0.436607) ,
- rgb (0.99581, 0.646344, 0.441361) ,
- rgb (0.996096, 0.653659, 0.446213) ,
- rgb (0.996341, 0.660969, 0.45116) ,
- rgb (0.99658, 0.668256, 0.456192) ,
- rgb (0.996775, 0.675541, 0.461314) ,
- rgb (0.996925, 0.682828, 0.466526) ,
- rgb (0.997077, 0.690088, 0.471811) ,
- rgb (0.997186, 0.697349, 0.477182) ,
- rgb (0.997254, 0.704611, 0.482635) ,
- rgb (0.997325, 0.711848, 0.488154) ,
- rgb (0.997351, 0.719089, 0.493755) ,
- rgb (0.997351, 0.726324, 0.499428) ,
- rgb (0.997341, 0.733545, 0.505167) ,
- rgb (0.997285, 0.740772, 0.510983) ,
- rgb (0.997228, 0.747981, 0.516859) ,
- rgb (0.997138, 0.75519, 0.522806) ,
- rgb (0.997019, 0.762398, 0.528821) ,
- rgb (0.996898, 0.769591, 0.534892) ,
- rgb (0.996727, 0.776795, 0.541039) ,
- rgb (0.996571, 0.783977, 0.547233) ,
- rgb (0.996369, 0.791167, 0.553499) ,
- rgb (0.996162, 0.798348, 0.55982) ,
- rgb (0.995932, 0.805527, 0.566202) ,
- rgb (0.99568, 0.812706, 0.572645) ,
- rgb (0.995424, 0.819875, 0.57914) ,
- rgb (0.995131, 0.827052, 0.585701) ,
- rgb (0.994851, 0.834213, 0.592307) ,
- rgb (0.994524, 0.841387, 0.598983) ,
- rgb (0.994222, 0.84854, 0.605696) ,
- rgb (0.993866, 0.855711, 0.612482) ,
- rgb (0.993545, 0.862859, 0.619299) ,
- rgb (0.99317, 0.870024, 0.626189) ,
- rgb (0.992831, 0.877168, 0.633109) ,
- rgb (0.99244, 0.88433, 0.640099) ,
- rgb (0.992089, 0.89147, 0.647116) ,
- rgb (0.991688, 0.898627, 0.654202) ,
- rgb (0.991332, 0.905763, 0.661309) ,
- rgb (0.99093, 0.912915, 0.668481) ,
- rgb (0.99057, 0.920049, 0.675675) ,
- rgb (0.990175, 0.927196, 0.682926) ,
- rgb (0.989815, 0.934329, 0.690198) ,
- rgb (0.989434, 0.94147, 0.697519) ,
- rgb (0.989077, 0.948604, 0.704863) ,
- rgb (0.988717, 0.955742, 0.712242) ,
- rgb (0.988367, 0.962878, 0.719649) ,
- rgb (0.988033, 0.970012, 0.727077) ,
- rgb (0.987691, 0.977154, 0.734536) ,
- rgb (0.987387, 0.984288, 0.742002) ,
- rgb (0.987053, 0.991438, 0.749504)
-});
+ rgb (0.001462, 0.000466, 0.013866) ,
+ rgb (0.002258, 0.001295, 0.018331) ,
+ rgb (0.003279, 0.002305, 0.023708) ,
+ rgb (0.004512, 0.00349, 0.029965) ,
+ rgb (0.00595, 0.004843, 0.03713) ,
+ rgb (0.007588, 0.006356, 0.044973) ,
+ rgb (0.009426, 0.008022, 0.052844) ,
+ rgb (0.011465, 0.009828, 0.06075) ,
+ rgb (0.013708, 0.011771, 0.068667) ,
+ rgb (0.016156, 0.01384, 0.076603) ,
+ rgb (0.018815, 0.016026, 0.084584) ,
+ rgb (0.021692, 0.01832, 0.09261) ,
+ rgb (0.024792, 0.020715, 0.100676) ,
+ rgb (0.028123, 0.023201, 0.108787) ,
+ rgb (0.031696, 0.025765, 0.116965) ,
+ rgb (0.03552, 0.028397, 0.125209) ,
+ rgb (0.039608, 0.03109, 0.133515) ,
+ rgb (0.04383, 0.03383, 0.141886) ,
+ rgb (0.048062, 0.036607, 0.150327) ,
+ rgb (0.05232, 0.039407, 0.158841) ,
+ rgb (0.056615, 0.04216, 0.167446) ,
+ rgb (0.060949, 0.044794, 0.176129) ,
+ rgb (0.06533, 0.047318, 0.184892) ,
+ rgb (0.069764, 0.049726, 0.193735) ,
+ rgb (0.074257, 0.052017, 0.20266) ,
+ rgb (0.078815, 0.054184, 0.211667) ,
+ rgb (0.083446, 0.056225, 0.220755) ,
+ rgb (0.088155, 0.058133, 0.229922) ,
+ rgb (0.092949, 0.059904, 0.239164) ,
+ rgb (0.097833, 0.061531, 0.248477) ,
+ rgb (0.102815, 0.06301, 0.257854) ,
+ rgb (0.107899, 0.064335, 0.267289) ,
+ rgb (0.113094, 0.065492, 0.276784) ,
+ rgb (0.118405, 0.066479, 0.286321) ,
+ rgb (0.123833, 0.067295, 0.295879) ,
+ rgb (0.12938, 0.067935, 0.305443) ,
+ rgb (0.135053, 0.068391, 0.315) ,
+ rgb (0.140858, 0.068654, 0.324538) ,
+ rgb (0.146785, 0.068738, 0.334011) ,
+ rgb (0.152839, 0.068637, 0.343404) ,
+ rgb (0.159018, 0.068354, 0.352688) ,
+ rgb (0.165308, 0.067911, 0.361816) ,
+ rgb (0.171713, 0.067305, 0.370771) ,
+ rgb (0.178212, 0.066576, 0.379497) ,
+ rgb (0.184801, 0.065732, 0.387973) ,
+ rgb (0.19146, 0.064818, 0.396152) ,
+ rgb (0.198177, 0.063862, 0.404009) ,
+ rgb (0.204935, 0.062907, 0.411514) ,
+ rgb (0.211718, 0.061992, 0.418647) ,
+ rgb (0.218512, 0.061158, 0.425392) ,
+ rgb (0.225302, 0.060445, 0.431742) ,
+ rgb (0.232077, 0.059889, 0.437695) ,
+ rgb (0.238826, 0.059517, 0.443256) ,
+ rgb (0.245543, 0.059352, 0.448436) ,
+ rgb (0.25222, 0.059415, 0.453248) ,
+ rgb (0.258857, 0.059706, 0.45771) ,
+ rgb (0.265447, 0.060237, 0.46184) ,
+ rgb (0.271994, 0.060994, 0.46566) ,
+ rgb (0.278493, 0.061978, 0.46919) ,
+ rgb (0.284951, 0.063168, 0.472451) ,
+ rgb (0.291366, 0.064553, 0.475462) ,
+ rgb (0.29774, 0.066117, 0.478243) ,
+ rgb (0.304081, 0.067835, 0.480812) ,
+ rgb (0.310382, 0.069702, 0.483186) ,
+ rgb (0.316654, 0.07169, 0.48538) ,
+ rgb (0.322899, 0.073782, 0.487408) ,
+ rgb (0.329114, 0.075972, 0.489287) ,
+ rgb (0.335308, 0.078236, 0.491024) ,
+ rgb (0.341482, 0.080564, 0.492631) ,
+ rgb (0.347636, 0.082946, 0.494121) ,
+ rgb (0.353773, 0.085373, 0.495501) ,
+ rgb (0.359898, 0.087831, 0.496778) ,
+ rgb (0.366012, 0.090314, 0.49796) ,
+ rgb (0.372116, 0.092816, 0.499053) ,
+ rgb (0.378211, 0.095332, 0.500067) ,
+ rgb (0.384299, 0.097855, 0.501002) ,
+ rgb (0.390384, 0.100379, 0.501864) ,
+ rgb (0.396467, 0.102902, 0.502658) ,
+ rgb (0.402548, 0.10542, 0.503386) ,
+ rgb (0.408629, 0.10793, 0.504052) ,
+ rgb (0.414709, 0.110431, 0.504662) ,
+ rgb (0.420791, 0.11292, 0.505215) ,
+ rgb (0.426877, 0.115395, 0.505714) ,
+ rgb (0.432967, 0.117855, 0.50616) ,
+ rgb (0.439062, 0.120298, 0.506555) ,
+ rgb (0.445163, 0.122724, 0.506901) ,
+ rgb (0.451271, 0.125132, 0.507198) ,
+ rgb (0.457386, 0.127522, 0.507448) ,
+ rgb (0.463508, 0.129893, 0.507652) ,
+ rgb (0.46964, 0.132245, 0.507809) ,
+ rgb (0.47578, 0.134577, 0.507921) ,
+ rgb (0.481929, 0.136891, 0.507989) ,
+ rgb (0.488088, 0.139186, 0.508011) ,
+ rgb (0.494258, 0.141462, 0.507988) ,
+ rgb (0.500438, 0.143719, 0.50792) ,
+ rgb (0.506629, 0.145958, 0.507806) ,
+ rgb (0.512831, 0.148179, 0.507648) ,
+ rgb (0.519045, 0.150383, 0.507443) ,
+ rgb (0.52527, 0.152569, 0.507192) ,
+ rgb (0.531507, 0.154739, 0.506895) ,
+ rgb (0.537755, 0.156894, 0.506551) ,
+ rgb (0.544015, 0.159033, 0.506159) ,
+ rgb (0.550287, 0.161158, 0.505719) ,
+ rgb (0.556571, 0.163269, 0.50523) ,
+ rgb (0.562866, 0.165368, 0.504692) ,
+ rgb (0.569172, 0.167454, 0.504105) ,
+ rgb (0.57549, 0.16953, 0.503466) ,
+ rgb (0.581819, 0.171596, 0.502777) ,
+ rgb (0.588158, 0.173652, 0.502035) ,
+ rgb (0.594508, 0.175701, 0.501241) ,
+ rgb (0.600868, 0.177743, 0.500394) ,
+ rgb (0.607238, 0.179779, 0.499492) ,
+ rgb (0.613617, 0.181811, 0.498536) ,
+ rgb (0.620005, 0.18384, 0.497524) ,
+ rgb (0.626401, 0.185867, 0.496456) ,
+ rgb (0.632805, 0.187893, 0.495332) ,
+ rgb (0.639216, 0.189921, 0.49415) ,
+ rgb (0.645633, 0.191952, 0.49291) ,
+ rgb (0.652056, 0.193986, 0.491611) ,
+ rgb (0.658483, 0.196027, 0.490253) ,
+ rgb (0.664915, 0.198075, 0.488836) ,
+ rgb (0.671349, 0.200133, 0.487358) ,
+ rgb (0.677786, 0.202203, 0.485819) ,
+ rgb (0.684224, 0.204286, 0.484219) ,
+ rgb (0.690661, 0.206384, 0.482558) ,
+ rgb (0.697098, 0.208501, 0.480835) ,
+ rgb (0.703532, 0.210638, 0.479049) ,
+ rgb (0.709962, 0.212797, 0.477201) ,
+ rgb (0.716387, 0.214982, 0.47529) ,
+ rgb (0.722805, 0.217194, 0.473316) ,
+ rgb (0.729216, 0.219437, 0.471279) ,
+ rgb (0.735616, 0.221713, 0.46918) ,
+ rgb (0.742004, 0.224025, 0.467018) ,
+ rgb (0.748378, 0.226377, 0.464794) ,
+ rgb (0.754737, 0.228772, 0.462509) ,
+ rgb (0.761077, 0.231214, 0.460162) ,
+ rgb (0.767398, 0.233705, 0.457755) ,
+ rgb (0.773695, 0.236249, 0.455289) ,
+ rgb (0.779968, 0.238851, 0.452765) ,
+ rgb (0.786212, 0.241514, 0.450184) ,
+ rgb (0.792427, 0.244242, 0.447543) ,
+ rgb (0.798608, 0.24704, 0.444848) ,
+ rgb (0.804752, 0.249911, 0.442102) ,
+ rgb (0.810855, 0.252861, 0.439305) ,
+ rgb (0.816914, 0.255895, 0.436461) ,
+ rgb (0.822926, 0.259016, 0.433573) ,
+ rgb (0.828886, 0.262229, 0.430644) ,
+ rgb (0.834791, 0.26554, 0.427671) ,
+ rgb (0.840636, 0.268953, 0.424666) ,
+ rgb (0.846416, 0.272473, 0.421631) ,
+ rgb (0.852126, 0.276106, 0.418573) ,
+ rgb (0.857763, 0.279857, 0.415496) ,
+ rgb (0.86332, 0.283729, 0.412403) ,
+ rgb (0.868793, 0.287728, 0.409303) ,
+ rgb (0.874176, 0.291859, 0.406205) ,
+ rgb (0.879464, 0.296125, 0.403118) ,
+ rgb (0.884651, 0.30053, 0.400047) ,
+ rgb (0.889731, 0.305079, 0.397002) ,
+ rgb (0.8947, 0.309773, 0.393995) ,
+ rgb (0.899552, 0.314616, 0.391037) ,
+ rgb (0.904281, 0.31961, 0.388137) ,
+ rgb (0.908884, 0.324755, 0.385308) ,
+ rgb (0.913354, 0.330052, 0.382563) ,
+ rgb (0.917689, 0.3355, 0.379915) ,
+ rgb (0.921884, 0.341098, 0.377376) ,
+ rgb (0.925937, 0.346844, 0.374959) ,
+ rgb (0.929845, 0.352734, 0.372677) ,
+ rgb (0.933606, 0.358764, 0.370541) ,
+ rgb (0.937221, 0.364929, 0.368567) ,
+ rgb (0.940687, 0.371224, 0.366762) ,
+ rgb (0.944006, 0.377643, 0.365136) ,
+ rgb (0.94718, 0.384178, 0.363701) ,
+ rgb (0.95021, 0.39082, 0.362468) ,
+ rgb (0.953099, 0.397563, 0.361438) ,
+ rgb (0.955849, 0.4044, 0.360619) ,
+ rgb (0.958464, 0.411324, 0.360014) ,
+ rgb (0.960949, 0.418323, 0.35963) ,
+ rgb (0.96331, 0.42539, 0.359469) ,
+ rgb (0.965549, 0.432519, 0.359529) ,
+ rgb (0.967671, 0.439703, 0.35981) ,
+ rgb (0.96968, 0.446936, 0.360311) ,
+ rgb (0.971582, 0.45421, 0.36103) ,
+ rgb (0.973381, 0.46152, 0.361965) ,
+ rgb (0.975082, 0.468861, 0.363111) ,
+ rgb (0.97669, 0.476226, 0.364466) ,
+ rgb (0.97821, 0.483612, 0.366025) ,
+ rgb (0.979645, 0.491014, 0.367783) ,
+ rgb (0.981, 0.498428, 0.369734) ,
+ rgb (0.982279, 0.505851, 0.371874) ,
+ rgb (0.983485, 0.51328, 0.374198) ,
+ rgb (0.984622, 0.520713, 0.376698) ,
+ rgb (0.985693, 0.528148, 0.379371) ,
+ rgb (0.9867, 0.535582, 0.38221) ,
+ rgb (0.987646, 0.543015, 0.38521) ,
+ rgb (0.988533, 0.550446, 0.388365) ,
+ rgb (0.989363, 0.557873, 0.391671) ,
+ rgb (0.990138, 0.565296, 0.395122) ,
+ rgb (0.990871, 0.572706, 0.398714) ,
+ rgb (0.991558, 0.580107, 0.402441) ,
+ rgb (0.992196, 0.587502, 0.406299) ,
+ rgb (0.992785, 0.594891, 0.410283) ,
+ rgb (0.993326, 0.602275, 0.41439) ,
+ rgb (0.993834, 0.609644, 0.418613) ,
+ rgb (0.994309, 0.616999, 0.42295) ,
+ rgb (0.994738, 0.62435, 0.427397) ,
+ rgb (0.995122, 0.631696, 0.431951) ,
+ rgb (0.99548, 0.639027, 0.436607) ,
+ rgb (0.99581, 0.646344, 0.441361) ,
+ rgb (0.996096, 0.653659, 0.446213) ,
+ rgb (0.996341, 0.660969, 0.45116) ,
+ rgb (0.99658, 0.668256, 0.456192) ,
+ rgb (0.996775, 0.675541, 0.461314) ,
+ rgb (0.996925, 0.682828, 0.466526) ,
+ rgb (0.997077, 0.690088, 0.471811) ,
+ rgb (0.997186, 0.697349, 0.477182) ,
+ rgb (0.997254, 0.704611, 0.482635) ,
+ rgb (0.997325, 0.711848, 0.488154) ,
+ rgb (0.997351, 0.719089, 0.493755) ,
+ rgb (0.997351, 0.726324, 0.499428) ,
+ rgb (0.997341, 0.733545, 0.505167) ,
+ rgb (0.997285, 0.740772, 0.510983) ,
+ rgb (0.997228, 0.747981, 0.516859) ,
+ rgb (0.997138, 0.75519, 0.522806) ,
+ rgb (0.997019, 0.762398, 0.528821) ,
+ rgb (0.996898, 0.769591, 0.534892) ,
+ rgb (0.996727, 0.776795, 0.541039) ,
+ rgb (0.996571, 0.783977, 0.547233) ,
+ rgb (0.996369, 0.791167, 0.553499) ,
+ rgb (0.996162, 0.798348, 0.55982) ,
+ rgb (0.995932, 0.805527, 0.566202) ,
+ rgb (0.99568, 0.812706, 0.572645) ,
+ rgb (0.995424, 0.819875, 0.57914) ,
+ rgb (0.995131, 0.827052, 0.585701) ,
+ rgb (0.994851, 0.834213, 0.592307) ,
+ rgb (0.994524, 0.841387, 0.598983) ,
+ rgb (0.994222, 0.84854, 0.605696) ,
+ rgb (0.993866, 0.855711, 0.612482) ,
+ rgb (0.993545, 0.862859, 0.619299) ,
+ rgb (0.99317, 0.870024, 0.626189) ,
+ rgb (0.992831, 0.877168, 0.633109) ,
+ rgb (0.99244, 0.88433, 0.640099) ,
+ rgb (0.992089, 0.89147, 0.647116) ,
+ rgb (0.991688, 0.898627, 0.654202) ,
+ rgb (0.991332, 0.905763, 0.661309) ,
+ rgb (0.99093, 0.912915, 0.668481) ,
+ rgb (0.99057, 0.920049, 0.675675) ,
+ rgb (0.990175, 0.927196, 0.682926) ,
+ rgb (0.989815, 0.934329, 0.690198) ,
+ rgb (0.989434, 0.94147, 0.697519) ,
+ rgb (0.989077, 0.948604, 0.704863) ,
+ rgb (0.988717, 0.955742, 0.712242) ,
+ rgb (0.988367, 0.962878, 0.719649) ,
+ rgb (0.988033, 0.970012, 0.727077) ,
+ rgb (0.987691, 0.977154, 0.734536) ,
+ rgb (0.987387, 0.984288, 0.742002) ,
+ rgb (0.987053, 0.991438, 0.749504)
+ });
list_data plasma = list_data(new pen[] {
- rgb (0.050383, 0.029803, 0.527975) ,
- rgb (0.063536, 0.028426, 0.533124) ,
- rgb (0.075353, 0.027206, 0.538007) ,
- rgb (0.086222, 0.026125, 0.542658) ,
- rgb (0.096379, 0.025165, 0.547103) ,
- rgb (0.10598, 0.024309, 0.551368) ,
- rgb (0.115124, 0.023556, 0.555468) ,
- rgb (0.123903, 0.022878, 0.559423) ,
- rgb (0.132381, 0.022258, 0.56325) ,
- rgb (0.140603, 0.021687, 0.566959) ,
- rgb (0.148607, 0.021154, 0.570562) ,
- rgb (0.156421, 0.020651, 0.574065) ,
- rgb (0.16407, 0.020171, 0.577478) ,
- rgb (0.171574, 0.019706, 0.580806) ,
- rgb (0.17895, 0.019252, 0.584054) ,
- rgb (0.186213, 0.018803, 0.587228) ,
- rgb (0.193374, 0.018354, 0.59033) ,
- rgb (0.200445, 0.017902, 0.593364) ,
- rgb (0.207435, 0.017442, 0.596333) ,
- rgb (0.21435, 0.016973, 0.599239) ,
- rgb (0.221197, 0.016497, 0.602083) ,
- rgb (0.227983, 0.016007, 0.604867) ,
- rgb (0.234715, 0.015502, 0.607592) ,
- rgb (0.241396, 0.014979, 0.610259) ,
- rgb (0.248032, 0.014439, 0.612868) ,
- rgb (0.254627, 0.013882, 0.615419) ,
- rgb (0.261183, 0.013308, 0.617911) ,
- rgb (0.267703, 0.012716, 0.620346) ,
- rgb (0.274191, 0.012109, 0.622722) ,
- rgb (0.280648, 0.011488, 0.625038) ,
- rgb (0.287076, 0.010855, 0.627295) ,
- rgb (0.293478, 0.010213, 0.62949) ,
- rgb (0.299855, 0.009561, 0.631624) ,
- rgb (0.30621, 0.008902, 0.633694) ,
- rgb (0.312543, 0.008239, 0.6357) ,
- rgb (0.318856, 0.007576, 0.63764) ,
- rgb (0.32515, 0.006915, 0.639512) ,
- rgb (0.331426, 0.006261, 0.641316) ,
- rgb (0.337683, 0.005618, 0.643049) ,
- rgb (0.343925, 0.004991, 0.64471) ,
- rgb (0.35015, 0.004382, 0.646298) ,
- rgb (0.356359, 0.003798, 0.64781) ,
- rgb (0.362553, 0.003243, 0.649245) ,
- rgb (0.368733, 0.002724, 0.650601) ,
- rgb (0.374897, 0.002245, 0.651876) ,
- rgb (0.381047, 0.001814, 0.653068) ,
- rgb (0.387183, 0.001434, 0.654177) ,
- rgb (0.393304, 0.001114, 0.655199) ,
- rgb (0.399411, 0.000859, 0.656133) ,
- rgb (0.405503, 0.000678, 0.656977) ,
- rgb (0.41158, 0.000577, 0.65773) ,
- rgb (0.417642, 0.000564, 0.65839) ,
- rgb (0.423689, 0.000646, 0.658956) ,
- rgb (0.429719, 0.000831, 0.659425) ,
- rgb (0.435734, 0.001127, 0.659797) ,
- rgb (0.441732, 0.00154, 0.660069) ,
- rgb (0.447714, 0.00208, 0.66024) ,
- rgb (0.453677, 0.002755, 0.66031) ,
- rgb (0.459623, 0.003574, 0.660277) ,
- rgb (0.46555, 0.004545, 0.660139) ,
- rgb (0.471457, 0.005678, 0.659897) ,
- rgb (0.477344, 0.00698, 0.659549) ,
- rgb (0.48321, 0.00846, 0.659095) ,
- rgb (0.489055, 0.010127, 0.658534) ,
- rgb (0.494877, 0.01199, 0.657865) ,
- rgb (0.500678, 0.014055, 0.657088) ,
- rgb (0.506454, 0.016333, 0.656202) ,
- rgb (0.512206, 0.018833, 0.655209) ,
- rgb (0.517933, 0.021563, 0.654109) ,
- rgb (0.523633, 0.024532, 0.652901) ,
- rgb (0.529306, 0.027747, 0.651586) ,
- rgb (0.534952, 0.031217, 0.650165) ,
- rgb (0.54057, 0.03495, 0.64864) ,
- rgb (0.546157, 0.038954, 0.64701) ,
- rgb (0.551715, 0.043136, 0.645277) ,
- rgb (0.557243, 0.047331, 0.643443) ,
- rgb (0.562738, 0.051545, 0.641509) ,
- rgb (0.568201, 0.055778, 0.639477) ,
- rgb (0.573632, 0.060028, 0.637349) ,
- rgb (0.579029, 0.064296, 0.635126) ,
- rgb (0.584391, 0.068579, 0.632812) ,
- rgb (0.589719, 0.072878, 0.630408) ,
- rgb (0.595011, 0.07719, 0.627917) ,
- rgb (0.600266, 0.081516, 0.625342) ,
- rgb (0.605485, 0.085854, 0.622686) ,
- rgb (0.610667, 0.090204, 0.619951) ,
- rgb (0.615812, 0.094564, 0.61714) ,
- rgb (0.620919, 0.098934, 0.614257) ,
- rgb (0.625987, 0.103312, 0.611305) ,
- rgb (0.631017, 0.107699, 0.608287) ,
- rgb (0.636008, 0.112092, 0.605205) ,
- rgb (0.640959, 0.116492, 0.602065) ,
- rgb (0.645872, 0.120898, 0.598867) ,
- rgb (0.650746, 0.125309, 0.595617) ,
- rgb (0.65558, 0.129725, 0.592317) ,
- rgb (0.660374, 0.134144, 0.588971) ,
- rgb (0.665129, 0.138566, 0.585582) ,
- rgb (0.669845, 0.142992, 0.582154) ,
- rgb (0.674522, 0.147419, 0.578688) ,
- rgb (0.67916, 0.151848, 0.575189) ,
- rgb (0.683758, 0.156278, 0.57166) ,
- rgb (0.688318, 0.160709, 0.568103) ,
- rgb (0.69284, 0.165141, 0.564522) ,
- rgb (0.697324, 0.169573, 0.560919) ,
- rgb (0.701769, 0.174005, 0.557296) ,
- rgb (0.706178, 0.178437, 0.553657) ,
- rgb (0.710549, 0.182868, 0.550004) ,
- rgb (0.714883, 0.187299, 0.546338) ,
- rgb (0.719181, 0.191729, 0.542663) ,
- rgb (0.723444, 0.196158, 0.538981) ,
- rgb (0.72767, 0.200586, 0.535293) ,
- rgb (0.731862, 0.205013, 0.531601) ,
- rgb (0.736019, 0.209439, 0.527908) ,
- rgb (0.740143, 0.213864, 0.524216) ,
- rgb (0.744232, 0.218288, 0.520524) ,
- rgb (0.748289, 0.222711, 0.516834) ,
- rgb (0.752312, 0.227133, 0.513149) ,
- rgb (0.756304, 0.231555, 0.509468) ,
- rgb (0.760264, 0.235976, 0.505794) ,
- rgb (0.764193, 0.240396, 0.502126) ,
- rgb (0.76809, 0.244817, 0.498465) ,
- rgb (0.771958, 0.249237, 0.494813) ,
- rgb (0.775796, 0.253658, 0.491171) ,
- rgb (0.779604, 0.258078, 0.487539) ,
- rgb (0.783383, 0.2625, 0.483918) ,
- rgb (0.787133, 0.266922, 0.480307) ,
- rgb (0.790855, 0.271345, 0.476706) ,
- rgb (0.794549, 0.27577, 0.473117) ,
- rgb (0.798216, 0.280197, 0.469538) ,
- rgb (0.801855, 0.284626, 0.465971) ,
- rgb (0.805467, 0.289057, 0.462415) ,
- rgb (0.809052, 0.293491, 0.45887) ,
- rgb (0.812612, 0.297928, 0.455338) ,
- rgb (0.816144, 0.302368, 0.451816) ,
- rgb (0.819651, 0.306812, 0.448306) ,
- rgb (0.823132, 0.311261, 0.444806) ,
- rgb (0.826588, 0.315714, 0.441316) ,
- rgb (0.830018, 0.320172, 0.437836) ,
- rgb (0.833422, 0.324635, 0.434366) ,
- rgb (0.836801, 0.329105, 0.430905) ,
- rgb (0.840155, 0.33358, 0.427455) ,
- rgb (0.843484, 0.338062, 0.424013) ,
- rgb (0.846788, 0.342551, 0.420579) ,
- rgb (0.850066, 0.347048, 0.417153) ,
- rgb (0.853319, 0.351553, 0.413734) ,
- rgb (0.856547, 0.356066, 0.410322) ,
- rgb (0.85975, 0.360588, 0.406917) ,
- rgb (0.862927, 0.365119, 0.403519) ,
- rgb (0.866078, 0.36966, 0.400126) ,
- rgb (0.869203, 0.374212, 0.396738) ,
- rgb (0.872303, 0.378774, 0.393355) ,
- rgb (0.875376, 0.383347, 0.389976) ,
- rgb (0.878423, 0.387932, 0.3866) ,
- rgb (0.881443, 0.392529, 0.383229) ,
- rgb (0.884436, 0.397139, 0.37986) ,
- rgb (0.887402, 0.401762, 0.376494) ,
- rgb (0.89034, 0.406398, 0.37313) ,
- rgb (0.89325, 0.411048, 0.369768) ,
- rgb (0.896131, 0.415712, 0.366407) ,
- rgb (0.898984, 0.420392, 0.363047) ,
- rgb (0.901807, 0.425087, 0.359688) ,
- rgb (0.904601, 0.429797, 0.356329) ,
- rgb (0.907365, 0.434524, 0.35297) ,
- rgb (0.910098, 0.439268, 0.34961) ,
- rgb (0.9128, 0.444029, 0.346251) ,
- rgb (0.915471, 0.448807, 0.34289) ,
- rgb (0.918109, 0.453603, 0.339529) ,
- rgb (0.920714, 0.458417, 0.336166) ,
- rgb (0.923287, 0.463251, 0.332801) ,
- rgb (0.925825, 0.468103, 0.329435) ,
- rgb (0.928329, 0.472975, 0.326067) ,
- rgb (0.930798, 0.477867, 0.322697) ,
- rgb (0.933232, 0.48278, 0.319325) ,
- rgb (0.93563, 0.487712, 0.315952) ,
- rgb (0.93799, 0.492667, 0.312575) ,
- rgb (0.940313, 0.497642, 0.309197) ,
- rgb (0.942598, 0.502639, 0.305816) ,
- rgb (0.944844, 0.507658, 0.302433) ,
- rgb (0.947051, 0.512699, 0.299049) ,
- rgb (0.949217, 0.517763, 0.295662) ,
- rgb (0.951344, 0.52285, 0.292275) ,
- rgb (0.953428, 0.52796, 0.288883) ,
- rgb (0.95547, 0.533093, 0.28549) ,
- rgb (0.957469, 0.53825, 0.282096) ,
- rgb (0.959424, 0.543431, 0.278701) ,
- rgb (0.961336, 0.548636, 0.275305) ,
- rgb (0.963203, 0.553865, 0.271909) ,
- rgb (0.965024, 0.559118, 0.268513) ,
- rgb (0.966798, 0.564396, 0.265118) ,
- rgb (0.968526, 0.5697, 0.261721) ,
- rgb (0.970205, 0.575028, 0.258325) ,
- rgb (0.971835, 0.580382, 0.254931) ,
- rgb (0.973416, 0.585761, 0.25154) ,
- rgb (0.974947, 0.591165, 0.248151) ,
- rgb (0.976428, 0.596595, 0.244767) ,
- rgb (0.977856, 0.602051, 0.241387) ,
- rgb (0.979233, 0.607532, 0.238013) ,
- rgb (0.980556, 0.613039, 0.234646) ,
- rgb (0.981826, 0.618572, 0.231287) ,
- rgb (0.983041, 0.624131, 0.227937) ,
- rgb (0.984199, 0.629718, 0.224595) ,
- rgb (0.985301, 0.63533, 0.221265) ,
- rgb (0.986345, 0.640969, 0.217948) ,
- rgb (0.987332, 0.646633, 0.214648) ,
- rgb (0.98826, 0.652325, 0.211364) ,
- rgb (0.989128, 0.658043, 0.2081) ,
- rgb (0.989935, 0.663787, 0.204859) ,
- rgb (0.990681, 0.669558, 0.201642) ,
- rgb (0.991365, 0.675355, 0.198453) ,
- rgb (0.991985, 0.681179, 0.195295) ,
- rgb (0.992541, 0.68703, 0.19217) ,
- rgb (0.993032, 0.692907, 0.189084) ,
- rgb (0.993456, 0.69881, 0.186041) ,
- rgb (0.993814, 0.704741, 0.183043) ,
- rgb (0.994103, 0.710698, 0.180097) ,
- rgb (0.994324, 0.716681, 0.177208) ,
- rgb (0.994474, 0.722691, 0.174381) ,
- rgb (0.994553, 0.728728, 0.171622) ,
- rgb (0.994561, 0.734791, 0.168938) ,
- rgb (0.994495, 0.74088, 0.166335) ,
- rgb (0.994355, 0.746995, 0.163821) ,
- rgb (0.994141, 0.753137, 0.161404) ,
- rgb (0.993851, 0.759304, 0.159092) ,
- rgb (0.993482, 0.765499, 0.156891) ,
- rgb (0.993033, 0.77172, 0.154808) ,
- rgb (0.992505, 0.777967, 0.152855) ,
- rgb (0.991897, 0.784239, 0.151042) ,
- rgb (0.991209, 0.790537, 0.149377) ,
- rgb (0.990439, 0.796859, 0.14787) ,
- rgb (0.989587, 0.803205, 0.146529) ,
- rgb (0.988648, 0.809579, 0.145357) ,
- rgb (0.987621, 0.815978, 0.144363) ,
- rgb (0.986509, 0.822401, 0.143557) ,
- rgb (0.985314, 0.828846, 0.142945) ,
- rgb (0.984031, 0.835315, 0.142528) ,
- rgb (0.982653, 0.841812, 0.142303) ,
- rgb (0.98119, 0.848329, 0.142279) ,
- rgb (0.979644, 0.854866, 0.142453) ,
- rgb (0.977995, 0.861432, 0.142808) ,
- rgb (0.976265, 0.868016, 0.143351) ,
- rgb (0.974443, 0.874622, 0.144061) ,
- rgb (0.97253, 0.88125, 0.144923) ,
- rgb (0.970533, 0.887896, 0.145919) ,
- rgb (0.968443, 0.894564, 0.147014) ,
- rgb (0.966271, 0.901249, 0.14818) ,
- rgb (0.964021, 0.90795, 0.14937) ,
- rgb (0.961681, 0.914672, 0.15052) ,
- rgb (0.959276, 0.921407, 0.151566) ,
- rgb (0.956808, 0.928152, 0.152409) ,
- rgb (0.954287, 0.934908, 0.152921) ,
- rgb (0.951726, 0.941671, 0.152925) ,
- rgb (0.949151, 0.948435, 0.152178) ,
- rgb (0.946602, 0.95519, 0.150328) ,
- rgb (0.944152, 0.961916, 0.146861) ,
- rgb (0.941896, 0.96859, 0.140956) ,
- rgb (0.940015, 0.975158, 0.131326)
-});
+ rgb (0.050383, 0.029803, 0.527975) ,
+ rgb (0.063536, 0.028426, 0.533124) ,
+ rgb (0.075353, 0.027206, 0.538007) ,
+ rgb (0.086222, 0.026125, 0.542658) ,
+ rgb (0.096379, 0.025165, 0.547103) ,
+ rgb (0.10598, 0.024309, 0.551368) ,
+ rgb (0.115124, 0.023556, 0.555468) ,
+ rgb (0.123903, 0.022878, 0.559423) ,
+ rgb (0.132381, 0.022258, 0.56325) ,
+ rgb (0.140603, 0.021687, 0.566959) ,
+ rgb (0.148607, 0.021154, 0.570562) ,
+ rgb (0.156421, 0.020651, 0.574065) ,
+ rgb (0.16407, 0.020171, 0.577478) ,
+ rgb (0.171574, 0.019706, 0.580806) ,
+ rgb (0.17895, 0.019252, 0.584054) ,
+ rgb (0.186213, 0.018803, 0.587228) ,
+ rgb (0.193374, 0.018354, 0.59033) ,
+ rgb (0.200445, 0.017902, 0.593364) ,
+ rgb (0.207435, 0.017442, 0.596333) ,
+ rgb (0.21435, 0.016973, 0.599239) ,
+ rgb (0.221197, 0.016497, 0.602083) ,
+ rgb (0.227983, 0.016007, 0.604867) ,
+ rgb (0.234715, 0.015502, 0.607592) ,
+ rgb (0.241396, 0.014979, 0.610259) ,
+ rgb (0.248032, 0.014439, 0.612868) ,
+ rgb (0.254627, 0.013882, 0.615419) ,
+ rgb (0.261183, 0.013308, 0.617911) ,
+ rgb (0.267703, 0.012716, 0.620346) ,
+ rgb (0.274191, 0.012109, 0.622722) ,
+ rgb (0.280648, 0.011488, 0.625038) ,
+ rgb (0.287076, 0.010855, 0.627295) ,
+ rgb (0.293478, 0.010213, 0.62949) ,
+ rgb (0.299855, 0.009561, 0.631624) ,
+ rgb (0.30621, 0.008902, 0.633694) ,
+ rgb (0.312543, 0.008239, 0.6357) ,
+ rgb (0.318856, 0.007576, 0.63764) ,
+ rgb (0.32515, 0.006915, 0.639512) ,
+ rgb (0.331426, 0.006261, 0.641316) ,
+ rgb (0.337683, 0.005618, 0.643049) ,
+ rgb (0.343925, 0.004991, 0.64471) ,
+ rgb (0.35015, 0.004382, 0.646298) ,
+ rgb (0.356359, 0.003798, 0.64781) ,
+ rgb (0.362553, 0.003243, 0.649245) ,
+ rgb (0.368733, 0.002724, 0.650601) ,
+ rgb (0.374897, 0.002245, 0.651876) ,
+ rgb (0.381047, 0.001814, 0.653068) ,
+ rgb (0.387183, 0.001434, 0.654177) ,
+ rgb (0.393304, 0.001114, 0.655199) ,
+ rgb (0.399411, 0.000859, 0.656133) ,
+ rgb (0.405503, 0.000678, 0.656977) ,
+ rgb (0.41158, 0.000577, 0.65773) ,
+ rgb (0.417642, 0.000564, 0.65839) ,
+ rgb (0.423689, 0.000646, 0.658956) ,
+ rgb (0.429719, 0.000831, 0.659425) ,
+ rgb (0.435734, 0.001127, 0.659797) ,
+ rgb (0.441732, 0.00154, 0.660069) ,
+ rgb (0.447714, 0.00208, 0.66024) ,
+ rgb (0.453677, 0.002755, 0.66031) ,
+ rgb (0.459623, 0.003574, 0.660277) ,
+ rgb (0.46555, 0.004545, 0.660139) ,
+ rgb (0.471457, 0.005678, 0.659897) ,
+ rgb (0.477344, 0.00698, 0.659549) ,
+ rgb (0.48321, 0.00846, 0.659095) ,
+ rgb (0.489055, 0.010127, 0.658534) ,
+ rgb (0.494877, 0.01199, 0.657865) ,
+ rgb (0.500678, 0.014055, 0.657088) ,
+ rgb (0.506454, 0.016333, 0.656202) ,
+ rgb (0.512206, 0.018833, 0.655209) ,
+ rgb (0.517933, 0.021563, 0.654109) ,
+ rgb (0.523633, 0.024532, 0.652901) ,
+ rgb (0.529306, 0.027747, 0.651586) ,
+ rgb (0.534952, 0.031217, 0.650165) ,
+ rgb (0.54057, 0.03495, 0.64864) ,
+ rgb (0.546157, 0.038954, 0.64701) ,
+ rgb (0.551715, 0.043136, 0.645277) ,
+ rgb (0.557243, 0.047331, 0.643443) ,
+ rgb (0.562738, 0.051545, 0.641509) ,
+ rgb (0.568201, 0.055778, 0.639477) ,
+ rgb (0.573632, 0.060028, 0.637349) ,
+ rgb (0.579029, 0.064296, 0.635126) ,
+ rgb (0.584391, 0.068579, 0.632812) ,
+ rgb (0.589719, 0.072878, 0.630408) ,
+ rgb (0.595011, 0.07719, 0.627917) ,
+ rgb (0.600266, 0.081516, 0.625342) ,
+ rgb (0.605485, 0.085854, 0.622686) ,
+ rgb (0.610667, 0.090204, 0.619951) ,
+ rgb (0.615812, 0.094564, 0.61714) ,
+ rgb (0.620919, 0.098934, 0.614257) ,
+ rgb (0.625987, 0.103312, 0.611305) ,
+ rgb (0.631017, 0.107699, 0.608287) ,
+ rgb (0.636008, 0.112092, 0.605205) ,
+ rgb (0.640959, 0.116492, 0.602065) ,
+ rgb (0.645872, 0.120898, 0.598867) ,
+ rgb (0.650746, 0.125309, 0.595617) ,
+ rgb (0.65558, 0.129725, 0.592317) ,
+ rgb (0.660374, 0.134144, 0.588971) ,
+ rgb (0.665129, 0.138566, 0.585582) ,
+ rgb (0.669845, 0.142992, 0.582154) ,
+ rgb (0.674522, 0.147419, 0.578688) ,
+ rgb (0.67916, 0.151848, 0.575189) ,
+ rgb (0.683758, 0.156278, 0.57166) ,
+ rgb (0.688318, 0.160709, 0.568103) ,
+ rgb (0.69284, 0.165141, 0.564522) ,
+ rgb (0.697324, 0.169573, 0.560919) ,
+ rgb (0.701769, 0.174005, 0.557296) ,
+ rgb (0.706178, 0.178437, 0.553657) ,
+ rgb (0.710549, 0.182868, 0.550004) ,
+ rgb (0.714883, 0.187299, 0.546338) ,
+ rgb (0.719181, 0.191729, 0.542663) ,
+ rgb (0.723444, 0.196158, 0.538981) ,
+ rgb (0.72767, 0.200586, 0.535293) ,
+ rgb (0.731862, 0.205013, 0.531601) ,
+ rgb (0.736019, 0.209439, 0.527908) ,
+ rgb (0.740143, 0.213864, 0.524216) ,
+ rgb (0.744232, 0.218288, 0.520524) ,
+ rgb (0.748289, 0.222711, 0.516834) ,
+ rgb (0.752312, 0.227133, 0.513149) ,
+ rgb (0.756304, 0.231555, 0.509468) ,
+ rgb (0.760264, 0.235976, 0.505794) ,
+ rgb (0.764193, 0.240396, 0.502126) ,
+ rgb (0.76809, 0.244817, 0.498465) ,
+ rgb (0.771958, 0.249237, 0.494813) ,
+ rgb (0.775796, 0.253658, 0.491171) ,
+ rgb (0.779604, 0.258078, 0.487539) ,
+ rgb (0.783383, 0.2625, 0.483918) ,
+ rgb (0.787133, 0.266922, 0.480307) ,
+ rgb (0.790855, 0.271345, 0.476706) ,
+ rgb (0.794549, 0.27577, 0.473117) ,
+ rgb (0.798216, 0.280197, 0.469538) ,
+ rgb (0.801855, 0.284626, 0.465971) ,
+ rgb (0.805467, 0.289057, 0.462415) ,
+ rgb (0.809052, 0.293491, 0.45887) ,
+ rgb (0.812612, 0.297928, 0.455338) ,
+ rgb (0.816144, 0.302368, 0.451816) ,
+ rgb (0.819651, 0.306812, 0.448306) ,
+ rgb (0.823132, 0.311261, 0.444806) ,
+ rgb (0.826588, 0.315714, 0.441316) ,
+ rgb (0.830018, 0.320172, 0.437836) ,
+ rgb (0.833422, 0.324635, 0.434366) ,
+ rgb (0.836801, 0.329105, 0.430905) ,
+ rgb (0.840155, 0.33358, 0.427455) ,
+ rgb (0.843484, 0.338062, 0.424013) ,
+ rgb (0.846788, 0.342551, 0.420579) ,
+ rgb (0.850066, 0.347048, 0.417153) ,
+ rgb (0.853319, 0.351553, 0.413734) ,
+ rgb (0.856547, 0.356066, 0.410322) ,
+ rgb (0.85975, 0.360588, 0.406917) ,
+ rgb (0.862927, 0.365119, 0.403519) ,
+ rgb (0.866078, 0.36966, 0.400126) ,
+ rgb (0.869203, 0.374212, 0.396738) ,
+ rgb (0.872303, 0.378774, 0.393355) ,
+ rgb (0.875376, 0.383347, 0.389976) ,
+ rgb (0.878423, 0.387932, 0.3866) ,
+ rgb (0.881443, 0.392529, 0.383229) ,
+ rgb (0.884436, 0.397139, 0.37986) ,
+ rgb (0.887402, 0.401762, 0.376494) ,
+ rgb (0.89034, 0.406398, 0.37313) ,
+ rgb (0.89325, 0.411048, 0.369768) ,
+ rgb (0.896131, 0.415712, 0.366407) ,
+ rgb (0.898984, 0.420392, 0.363047) ,
+ rgb (0.901807, 0.425087, 0.359688) ,
+ rgb (0.904601, 0.429797, 0.356329) ,
+ rgb (0.907365, 0.434524, 0.35297) ,
+ rgb (0.910098, 0.439268, 0.34961) ,
+ rgb (0.9128, 0.444029, 0.346251) ,
+ rgb (0.915471, 0.448807, 0.34289) ,
+ rgb (0.918109, 0.453603, 0.339529) ,
+ rgb (0.920714, 0.458417, 0.336166) ,
+ rgb (0.923287, 0.463251, 0.332801) ,
+ rgb (0.925825, 0.468103, 0.329435) ,
+ rgb (0.928329, 0.472975, 0.326067) ,
+ rgb (0.930798, 0.477867, 0.322697) ,
+ rgb (0.933232, 0.48278, 0.319325) ,
+ rgb (0.93563, 0.487712, 0.315952) ,
+ rgb (0.93799, 0.492667, 0.312575) ,
+ rgb (0.940313, 0.497642, 0.309197) ,
+ rgb (0.942598, 0.502639, 0.305816) ,
+ rgb (0.944844, 0.507658, 0.302433) ,
+ rgb (0.947051, 0.512699, 0.299049) ,
+ rgb (0.949217, 0.517763, 0.295662) ,
+ rgb (0.951344, 0.52285, 0.292275) ,
+ rgb (0.953428, 0.52796, 0.288883) ,
+ rgb (0.95547, 0.533093, 0.28549) ,
+ rgb (0.957469, 0.53825, 0.282096) ,
+ rgb (0.959424, 0.543431, 0.278701) ,
+ rgb (0.961336, 0.548636, 0.275305) ,
+ rgb (0.963203, 0.553865, 0.271909) ,
+ rgb (0.965024, 0.559118, 0.268513) ,
+ rgb (0.966798, 0.564396, 0.265118) ,
+ rgb (0.968526, 0.5697, 0.261721) ,
+ rgb (0.970205, 0.575028, 0.258325) ,
+ rgb (0.971835, 0.580382, 0.254931) ,
+ rgb (0.973416, 0.585761, 0.25154) ,
+ rgb (0.974947, 0.591165, 0.248151) ,
+ rgb (0.976428, 0.596595, 0.244767) ,
+ rgb (0.977856, 0.602051, 0.241387) ,
+ rgb (0.979233, 0.607532, 0.238013) ,
+ rgb (0.980556, 0.613039, 0.234646) ,
+ rgb (0.981826, 0.618572, 0.231287) ,
+ rgb (0.983041, 0.624131, 0.227937) ,
+ rgb (0.984199, 0.629718, 0.224595) ,
+ rgb (0.985301, 0.63533, 0.221265) ,
+ rgb (0.986345, 0.640969, 0.217948) ,
+ rgb (0.987332, 0.646633, 0.214648) ,
+ rgb (0.98826, 0.652325, 0.211364) ,
+ rgb (0.989128, 0.658043, 0.2081) ,
+ rgb (0.989935, 0.663787, 0.204859) ,
+ rgb (0.990681, 0.669558, 0.201642) ,
+ rgb (0.991365, 0.675355, 0.198453) ,
+ rgb (0.991985, 0.681179, 0.195295) ,
+ rgb (0.992541, 0.68703, 0.19217) ,
+ rgb (0.993032, 0.692907, 0.189084) ,
+ rgb (0.993456, 0.69881, 0.186041) ,
+ rgb (0.993814, 0.704741, 0.183043) ,
+ rgb (0.994103, 0.710698, 0.180097) ,
+ rgb (0.994324, 0.716681, 0.177208) ,
+ rgb (0.994474, 0.722691, 0.174381) ,
+ rgb (0.994553, 0.728728, 0.171622) ,
+ rgb (0.994561, 0.734791, 0.168938) ,
+ rgb (0.994495, 0.74088, 0.166335) ,
+ rgb (0.994355, 0.746995, 0.163821) ,
+ rgb (0.994141, 0.753137, 0.161404) ,
+ rgb (0.993851, 0.759304, 0.159092) ,
+ rgb (0.993482, 0.765499, 0.156891) ,
+ rgb (0.993033, 0.77172, 0.154808) ,
+ rgb (0.992505, 0.777967, 0.152855) ,
+ rgb (0.991897, 0.784239, 0.151042) ,
+ rgb (0.991209, 0.790537, 0.149377) ,
+ rgb (0.990439, 0.796859, 0.14787) ,
+ rgb (0.989587, 0.803205, 0.146529) ,
+ rgb (0.988648, 0.809579, 0.145357) ,
+ rgb (0.987621, 0.815978, 0.144363) ,
+ rgb (0.986509, 0.822401, 0.143557) ,
+ rgb (0.985314, 0.828846, 0.142945) ,
+ rgb (0.984031, 0.835315, 0.142528) ,
+ rgb (0.982653, 0.841812, 0.142303) ,
+ rgb (0.98119, 0.848329, 0.142279) ,
+ rgb (0.979644, 0.854866, 0.142453) ,
+ rgb (0.977995, 0.861432, 0.142808) ,
+ rgb (0.976265, 0.868016, 0.143351) ,
+ rgb (0.974443, 0.874622, 0.144061) ,
+ rgb (0.97253, 0.88125, 0.144923) ,
+ rgb (0.970533, 0.887896, 0.145919) ,
+ rgb (0.968443, 0.894564, 0.147014) ,
+ rgb (0.966271, 0.901249, 0.14818) ,
+ rgb (0.964021, 0.90795, 0.14937) ,
+ rgb (0.961681, 0.914672, 0.15052) ,
+ rgb (0.959276, 0.921407, 0.151566) ,
+ rgb (0.956808, 0.928152, 0.152409) ,
+ rgb (0.954287, 0.934908, 0.152921) ,
+ rgb (0.951726, 0.941671, 0.152925) ,
+ rgb (0.949151, 0.948435, 0.152178) ,
+ rgb (0.946602, 0.95519, 0.150328) ,
+ rgb (0.944152, 0.961916, 0.146861) ,
+ rgb (0.941896, 0.96859, 0.140956) ,
+ rgb (0.940015, 0.975158, 0.131326)
+ });
list_data twilight = list_data(new pen[] {
- rgb (0.8857501584075443, 0.8500092494306783, 0.8879736506427196) ,
- rgb (0.8837852019553906, 0.8507294054031063, 0.8872322209694989) ,
- rgb (0.8817223105928579, 0.8512759407765347, 0.8863805692551482) ,
- rgb (0.8795410528270573, 0.8516567540749572, 0.8854143767924102) ,
- rgb (0.8772488085896548, 0.8518702833887027, 0.8843412038131143) ,
- rgb (0.8748534750857597, 0.8519152612302319, 0.8831692696761383) ,
- rgb (0.8723313408512408, 0.8518016547808089, 0.8818970435500162) ,
- rgb (0.8697047485350982, 0.8515240300479789, 0.8805388339000336) ,
- rgb (0.8669601550533358, 0.8510896085314068, 0.8790976697717334) ,
- rgb (0.86408985081464, 0.8505039116750779, 0.8775792578489263) ,
- rgb (0.8611024543689985, 0.8497675485700126, 0.8759924292343957) ,
- rgb (0.8579825924567037, 0.8488893481028184, 0.8743403855344628) ,
- rgb (0.8547259318925698, 0.8478748812467282, 0.8726282980930582) ,
- rgb (0.8513371457085719, 0.8467273579611647, 0.8708608165735044) ,
- rgb (0.8478071070257792, 0.8454546229209523, 0.8690403678369444) ,
- rgb (0.8441261828674842, 0.8440648271103739, 0.8671697332269007) ,
- rgb (0.8403042080595778, 0.8425605950855084, 0.865250882410458) ,
- rgb (0.8363403180919118, 0.8409479651895194, 0.8632852800107016) ,
- rgb (0.8322270571293441, 0.8392349062775448, 0.8612756350042788) ,
- rgb (0.8279689431601354, 0.837426007513952, 0.8592239945130679) ,
- rgb (0.8235742968025285, 0.8355248776479544, 0.8571319132851495) ,
- rgb (0.8190465467793753, 0.8335364929949034, 0.855002062870101) ,
- rgb (0.8143898212114309, 0.8314655869419785, 0.8528375906214702) ,
- rgb (0.8095999819094809, 0.8293189667350546, 0.8506444160105037) ,
- rgb (0.8046916442981458, 0.8270983878056066, 0.8484244929697402) ,
- rgb (0.79967075421268, 0.8248078181208093, 0.8461821002957853) ,
- rgb (0.7945430508923111, 0.8224511622630462, 0.8439218478682798) ,
- rgb (0.7893144556460892, 0.8200321318870201, 0.8416486380471222) ,
- rgb (0.7839910104276492, 0.8175542640053343, 0.8393674746403673) ,
- rgb (0.7785789200822759, 0.8150208937874255, 0.8370834463093898) ,
- rgb (0.7730841659017094, 0.8124352473546601, 0.8348017295057968) ,
- rgb (0.7675110850441786, 0.8098007598713145, 0.8325281663805967) ,
- rgb (0.7618690793798029, 0.8071194938764749, 0.830266486168872) ,
- rgb (0.7561644358438198, 0.8043940873347794, 0.8280213899472) ,
- rgb (0.750403467654067, 0.8016269900896532, 0.8257973785108242) ,
- rgb (0.7445924777189017, 0.7988204771958325, 0.8235986758615652) ,
- rgb (0.7387377170049494, 0.7959766573503101, 0.8214292278043301) ,
- rgb (0.7328454364552346, 0.7930974646884407, 0.8192926338423038) ,
- rgb (0.726921775128297, 0.7901846863592763, 0.8171921746672638) ,
- rgb (0.7209728066553678, 0.7872399592345264, 0.8151307392087926) ,
- rgb (0.7150040307625213, 0.7842648709158119, 0.8131111655994991) ,
- rgb (0.709020781345393, 0.7812608871607091, 0.8111359185511793) ,
- rgb (0.7030297722540817, 0.7782290497335813, 0.8092061884805697) ,
- rgb (0.6970365443886174, 0.7751705000806606, 0.8073233538006345) ,
- rgb (0.691046410093091, 0.7720862946067809, 0.8054884169067907) ,
- rgb (0.6850644615439593, 0.7689774029354699, 0.8037020626717691) ,
- rgb (0.6790955449988215, 0.765844721313959, 0.8019646617300199) ,
- rgb (0.6731442255942621, 0.7626890873389048, 0.8002762854580953) ,
- rgb (0.6672147980375281, 0.7595112803730375, 0.7986367465453776) ,
- rgb (0.6613112930078745, 0.7563120270871903, 0.7970456043491897) ,
- rgb (0.6554369232645472, 0.7530920875676843, 0.7955027112903105) ,
- rgb (0.6495957300425348, 0.7498520122194177, 0.7940067402149911) ,
- rgb (0.6437910831099849, 0.7465923800833657, 0.7925565320130605) ,
- rgb (0.6380258682854598, 0.7433137671403319, 0.7911510045957317) ,
- rgb (0.6323027138710603, 0.740016721601314, 0.7897889276264043) ,
- rgb (0.6266240202260459, 0.7367017540369944, 0.7884690131633456) ,
- rgb (0.6209919306481755, 0.733369347989232, 0.7871899462469658) ,
- rgb (0.6154084641177048, 0.7300199523273969, 0.7859502270675048) ,
- rgb (0.6098754317609306, 0.7266539875975829, 0.7847483573269471) ,
- rgb (0.6043943420027486, 0.7232718614323369, 0.7835829559353559) ,
- rgb (0.5989665814482068, 0.7198739489224673, 0.7824525989934664) ,
- rgb (0.5935933569683722, 0.7164606049658685, 0.781355882376401) ,
- rgb (0.588275797805555, 0.7130321464645814, 0.7802914140563652) ,
- rgb (0.5830148703693241, 0.7095888767699747, 0.7792578182047659) ,
- rgb (0.5778116438998202, 0.7061310615715398, 0.7782534512102552) ,
- rgb (0.5726668948158774, 0.7026589535425779, 0.7772770268091199) ,
- rgb (0.5675811785386197, 0.6991727930264627, 0.776327485342753) ,
- rgb (0.5625551535721934, 0.6956727838162965, 0.7754035914230984) ,
- rgb (0.5575894041960517, 0.6921591145825405, 0.7745041337932782) ,
- rgb (0.5526845058934713, 0.6886319451516638, 0.7736279426902245) ,
- rgb (0.5478409815301863, 0.6850914221850988, 0.7727738647344087) ,
- rgb (0.5430593242401823, 0.6815376725306588, 0.7719407969783508) ,
- rgb (0.5383401557517628, 0.677970811290954, 0.7711273443905772) ,
- rgb (0.533683891477284, 0.6743909370521273, 0.7703325054879735) ,
- rgb (0.529090861832473, 0.6707981230280622, 0.7695555229231313) ,
- rgb (0.5245615147059358, 0.6671924299614223, 0.7687954171423095) ,
- rgb (0.5200962739223556, 0.6635739143403039, 0.768051194033441) ,
- rgb (0.5156955988596057, 0.65994260812898, 0.7673219148959617) ,
- rgb (0.5113599254160193, 0.6562985398183186, 0.7666066378064533) ,
- rgb (0.5070896957645166, 0.6526417240314645, 0.7659044566083585) ,
- rgb (0.5028853540415561, 0.6489721673409526, 0.7652144671817491) ,
- rgb (0.4987473366135607, 0.6452898684900934, 0.7645357873418008) ,
- rgb (0.4946761847863938, 0.6415948411950443, 0.7638671900213091) ,
- rgb (0.4906722493856122, 0.6378870485884708, 0.7632081276316384) ,
- rgb (0.4867359599430568, 0.6341664625110051, 0.7625578008592404) ,
- rgb (0.4828677867260272, 0.6304330455306234, 0.761915371498953) ,
- rgb (0.47906816236197386, 0.6266867625186013, 0.7612800037566242) ,
- rgb (0.47533752394906287, 0.6229275728383581, 0.7606508557181775) ,
- rgb (0.4716762951887709, 0.6191554324288464, 0.7600270922788305) ,
- rgb (0.46808490970531597, 0.6153702869579029, 0.7594078989109274) ,
- rgb (0.4645637671630393, 0.6115720882286415, 0.7587924262302581) ,
- rgb (0.4611132664702388, 0.607760777169989, 0.7581798643680714) ,
- rgb (0.45773377230160567, 0.6039363004658646, 0.7575693690185916) ,
- rgb (0.45442563977552913, 0.6000985950385866, 0.7569601366060649) ,
- rgb (0.45118918687617743, 0.5962476205135354, 0.7563512064324664) ,
- rgb (0.4480247093358917, 0.5923833145214658, 0.7557417647410792) ,
- rgb (0.4449324685421538, 0.5885055998308617, 0.7551311041857901) ,
- rgb (0.441912717666964, 0.5846144110017557, 0.7545183888441067) ,
- rgb (0.43896563958048396, 0.5807096924109849, 0.7539027620828594) ,
- rgb (0.4360913895835637, 0.5767913799818608, 0.7532834105961016) ,
- rgb (0.43329008867358393, 0.5728594162560667, 0.7526594653256667) ,
- rgb (0.4305617907305757, 0.5689137457245718, 0.752030080993127) ,
- rgb (0.42790652284925834, 0.5649543060909209, 0.7513944352191484) ,
- rgb (0.42532423665011354, 0.560981049599503, 0.7507516498900512) ,
- rgb (0.4228148567577266, 0.5569939212699658, 0.7501008698822764) ,
- rgb (0.42037822361396326, 0.5529928715810817, 0.7494412559451894) ,
- rgb (0.4180141407923363, 0.5489778542188889, 0.7487719316700112) ,
- rgb (0.4157223260454232, 0.544948827153504, 0.7480920445900052) ,
- rgb (0.4135024574331473, 0.5409057477109848, 0.7474007329754309) ,
- rgb (0.4113541469730457, 0.5368485776500593, 0.7466971285506578) ,
- rgb (0.4092768899914751, 0.5327773017713032, 0.7459803063570782) ,
- rgb (0.4072701869421907, 0.5286918801105741, 0.7452494263758127) ,
- rgb (0.4053334378930318, 0.5245922817498312, 0.7445036583670813) ,
- rgb (0.40346600333905397, 0.5204784765384003, 0.7437421522356709) ,
- rgb (0.40166714010896104, 0.5163504496968876, 0.7429640345324835) ,
- rgb (0.39993606933454834, 0.5122081814321852, 0.7421684457131799) ,
- rgb (0.3982719152586337, 0.5080516653927614, 0.7413545091809972) ,
- rgb (0.3966737490566561, 0.5038808905384797, 0.7405213858051674) ,
- rgb (0.3951405880820763, 0.4996958532637776, 0.7396682021171571) ,
- rgb (0.39367135736822567, 0.4954965577745118, 0.738794102296364) ,
- rgb (0.39226494876209317, 0.4912830033289926, 0.7378982478447508) ,
- rgb (0.390920175719949, 0.4870552025122304, 0.7369797713388125) ,
- rgb (0.38963580160340855, 0.48281316715123496, 0.7360378254693274) ,
- rgb (0.3884105330084243, 0.47855691131792805, 0.7350715764115726) ,
- rgb (0.3872430145933025, 0.4742864593363539, 0.7340801678785439) ,
- rgb (0.386131841788921, 0.4700018340988123, 0.7330627749243106) ,
- rgb (0.3850755679365139, 0.46570306719930193, 0.732018540336905) ,
- rgb (0.38407269378943537, 0.46139018782416635, 0.7309466543290268) ,
- rgb (0.3831216808440275, 0.457063235814072, 0.7298462679135326) ,
- rgb (0.38222094988570376, 0.45272225034283325, 0.7287165614400378) ,
- rgb (0.3813688793045416, 0.4483672766927786, 0.7275567131714135) ,
- rgb (0.3805638069656562, 0.4439983720863372, 0.7263658704513531) ,
- rgb (0.3798040374484875, 0.4396155882122263, 0.7251432377876109) ,
- rgb (0.3790878928311076, 0.43521897612544935, 0.7238879869132313) ,
- rgb (0.378413635091359, 0.43080859411413064, 0.7225993199306104) ,
- rgb (0.3777794975351373, 0.4263845142616835, 0.7212763999353023) ,
- rgb (0.3771837184425123, 0.4219468022345483, 0.7199184152447577) ,
- rgb (0.37662448930806297, 0.41749553747893614, 0.7185245473617611) ,
- rgb (0.37610001286385814, 0.4130307995247706, 0.7170939691992023) ,
- rgb (0.375608469194424, 0.40855267638072096, 0.7156258509158755) ,
- rgb (0.37514802505380473, 0.4040612609993941, 0.7141193695725726) ,
- rgb (0.3747168601930223, 0.3995566498711684, 0.7125736851650046) ,
- rgb (0.3743131319931234, 0.3950389482828331, 0.7109879652237746) ,
- rgb (0.3739349933047578, 0.3905082752937583, 0.7093613429347845) ,
- rgb (0.3735806215098284, 0.3859647438605754, 0.7076929760731058) ,
- rgb (0.37324816143326384, 0.38140848555753937, 0.7059820097480604) ,
- rgb (0.3729357864666503, 0.3768396383521984, 0.7042275578058994) ,
- rgb (0.37264166757849604, 0.3722583500483685, 0.7024287314570723) ,
- rgb (0.37236397858465387, 0.36766477862108266, 0.7005846349652077) ,
- rgb (0.3721008970244382, 0.3630590973698238, 0.6986943461507372) ,
- rgb (0.3718506155898596, 0.3584414828587522, 0.6967569581025654) ,
- rgb (0.3716113323440048, 0.3538121372967869, 0.6947714991938089) ,
- rgb (0.37138124223736607, 0.34917126878479027, 0.6927370347192883) ,
- rgb (0.37115856636209105, 0.3445191141023017, 0.6906525358646499) ,
- rgb (0.3709415155133733, 0.33985591488818123, 0.6885170337950512) ,
- rgb (0.3707283327942267, 0.33518193808489577, 0.6863294816960677) ,
- rgb (0.37051738634484427, 0.3304974124430785, 0.6840888878885721) ,
- rgb (0.37030682071842685, 0.32580269697872455, 0.6817941168448668) ,
- rgb (0.37009487130772695, 0.3210981375964933, 0.6794440539905685) ,
- rgb (0.3698798032902536, 0.31638410101153364, 0.6770375543809057) ,
- rgb (0.36965987626565955, 0.3116609876295197, 0.6745734474341955) ,
- rgb (0.3694333459127623, 0.3069292355186234, 0.6720505284912062) ,
- rgb (0.36919847837592484, 0.3021893217650707, 0.6694675433161452) ,
- rgb (0.3689535530659678, 0.29744175492366276, 0.6668232208982426) ,
- rgb (0.3686968223189527, 0.292687098561501, 0.6641162529823691) ,
- rgb (0.36842655638020444, 0.2879259643777846, 0.661345269109446) ,
- rgb (0.3681410147989972, 0.2831590122118299, 0.6585088880697231) ,
- rgb (0.3678384369653108, 0.2783869718129776, 0.655605668384537) ,
- rgb (0.36751707094367697, 0.2736106331709098, 0.6526341171161864) ,
- rgb (0.36717513650699446, 0.26883085667326956, 0.6495927229789225) ,
- rgb (0.3668108554010799, 0.26404857724525643, 0.6464799165290824) ,
- rgb (0.3664224325155063, 0.25926481158628106, 0.6432940914076554) ,
- rgb (0.36600853966739794, 0.25448043878086224, 0.6400336180336859) ,
- rgb (0.3655669837353898, 0.24969683475296395, 0.6366967518748858) ,
- rgb (0.3650957984588681, 0.24491536803550484, 0.6332817352005559) ,
- rgb (0.3645930889012501, 0.24013747024823828, 0.629786801550261) ,
- rgb (0.3640569302208851, 0.23536470386204195, 0.6262101345195302) ,
- rgb (0.36348537610385145, 0.2305987621839642, 0.6225498862239288) ,
- rgb (0.3628764356004103, 0.2258414929328703, 0.6188041741082302) ,
- rgb (0.36222809558295926, 0.22109488427338303, 0.6149711234609613) ,
- rgb (0.36153829010998356, 0.21636111429594002, 0.6110488067964093) ,
- rgb (0.36080493826624654, 0.21164251793458128, 0.6070353217206471) ,
- rgb (0.36002681809096376, 0.20694122817889948, 0.6029284543191687) ,
- rgb (0.35920088560930186, 0.20226037920758122, 0.5987265295935138) ,
- rgb (0.3583248996661781, 0.197602942459778, 0.5944276851750107) ,
- rgb (0.35739663292915563, 0.1929720819784246, 0.5900301125106313) ,
- rgb (0.35641381143126327, 0.18837119869242164, 0.5855320765920552) ,
- rgb (0.3553741530690672, 0.18380392577704466, 0.580931914318328) ,
- rgb (0.3542753496066376, 0.17927413271618647, 0.5762280966066872) ,
- rgb (0.35311574421123737, 0.17478570377561287, 0.5714187152355529) ,
- rgb (0.3518924860887379, 0.17034320478524959, 0.5665028491121665) ,
- rgb (0.3506030444193101, 0.1659512998472086, 0.5614796470399323) ,
- rgb (0.34924513554955644, 0.16161477763045118, 0.5563483747416378) ,
- rgb (0.3478165323877778, 0.1573386351115298, 0.5511085345270326) ,
- rgb (0.3463150717579309, 0.15312802296627787, 0.5457599924248665) ,
- rgb (0.34473901574536375, 0.1489882058982641, 0.5403024592040654) ,
- rgb (0.34308600291572294, 0.14492465359918028, 0.534737042820671) ,
- rgb (0.34135411074506483, 0.1409427920655632, 0.5290650094033675) ,
- rgb (0.33954168752669694, 0.1370480189671817, 0.5232879753508524) ,
- rgb (0.3376473209067111, 0.13324562282438077, 0.5174080757397947) ,
- rgb (0.33566978565015315, 0.12954074251271822, 0.5114280721516895) ,
- rgb (0.33360804901486, 0.1259381830100592, 0.505351647966549) ,
- rgb (0.33146154891145124, 0.12244245263391232, 0.4991827458843107) ,
- rgb (0.3292300520323141, 0.11905764321981127, 0.49292595612342666) ,
- rgb (0.3269137124539796, 0.1157873496841953, 0.4865864649569746) ,
- rgb (0.32451307931207785, 0.11263459791730848, 0.48017007211645196) ,
- rgb (0.3220288227606932, 0.10960114111258401, 0.4736849472572688) ,
- rgb (0.31946262395497965, 0.1066887988239266, 0.46713728801395243) ,
- rgb (0.316816480890235, 0.10389861387653518, 0.46053414662739794) ,
- rgb (0.3140927841475553, 0.10123077676403242, 0.45388335612058467) ,
- rgb (0.31129434479712365, 0.0986847719340522, 0.4471931371516162) ,
- rgb (0.30842444457210105, 0.09625938534057774, 0.44047194882050544) ,
- rgb (0.30548675819945936, 0.09395276484082374, 0.4337284999936111) ,
- rgb (0.3024853636457425, 0.0917611873973036, 0.42697404043749887) ,
- rgb (0.2994248396021477, 0.08968225371675004, 0.42021619665853854) ,
- rgb (0.2963100038890529, 0.08771325096046395, 0.41346259134143476) ,
- rgb (0.2931459309698525, 0.08585065688962071, 0.40672178082365834) ,
- rgb (0.2899379244517661, 0.08409078829085731, 0.40000214725256295) ,
- rgb (0.28669151388283165, 0.08242987384848069, 0.39331182532243375) ,
- rgb (0.28341239797185225, 0.08086415336549937, 0.38665868550105914) ,
- rgb (0.2801063857697547, 0.07938999480226153, 0.38005028528138707) ,
- rgb (0.2767793961581559, 0.07800394103378822, 0.37349382846504675) ,
- rgb (0.2734373934245081, 0.07670280023749607, 0.36699616136347685) ,
- rgb (0.2700863774911405, 0.07548367558427554, 0.36056376228111864) ,
- rgb (0.26673233211995284, 0.0743440180285462, 0.3542027606624096) ,
- rgb (0.26338121807151404, 0.07328165793989708, 0.34791888996380105) ,
- rgb (0.26003895187439957, 0.0722947810433622, 0.3417175669546984) ,
- rgb (0.256711916510839, 0.07138010624208224, 0.3356064898460009) ,
- rgb (0.25340685873736807, 0.07053358292685183, 0.3295945757321303) ,
- rgb (0.2501284530619938, 0.06975820642910699, 0.32368100685760637) ,
- rgb (0.24688226237959, 0.06905363944920445, 0.31786993834254956) ,
- rgb (0.24367372557466271, 0.06841985515092269, 0.3121652405088837) ,
- rgb (0.2405081333229594, 0.0678571038148556, 0.3065705449367832) ,
- rgb (0.23739062429054825, 0.06736588805055552, 0.3010892218406587) ,
- rgb (0.23433055727563878, 0.0669355996616394, 0.295740099298676) ,
- rgb (0.23132955273021344, 0.06657618693909059, 0.29051361067988485) ,
- rgb (0.2283917709422868, 0.06628997924139618, 0.28541074411068496) ,
- rgb (0.22552164337737857, 0.0660781731193956, 0.28043398847505197) ,
- rgb (0.22272706739121817, 0.06593379067565194, 0.275597146520537) ,
- rgb (0.22001251100779617, 0.0658579189189076, 0.2709027999432586) ,
- rgb (0.21737845072382705, 0.06585966123356204, 0.2663420934966951) ,
- rgb (0.21482843531473683, 0.06594038561377849, 0.26191675992376573) ,
- rgb (0.21237411048541005, 0.06608502466175845, 0.2576516509356954) ,
- rgb (0.21001214221188125, 0.06630857391894718, 0.2535289048041211) ,
- rgb (0.2077442377448806, 0.06661453200418091, 0.24954644291943817) ,
- rgb (0.20558051999470117, 0.06699046239786874, 0.24572497420147632) ,
- rgb (0.20352007949514977, 0.06744417961242422, 0.24205576625191821) ,
- rgb (0.2015613376412984, 0.06798327102620025, 0.23852974228695395) ,
- rgb (0.19971571438603364, 0.06859271055370472, 0.23517094067076993) ,
- rgb (0.19794834061899208, 0.06931406607166066, 0.23194647381302336) ,
- rgb (0.1960826032659409, 0.07032122724242362, 0.22874673279569585) ,
- rgb (0.19410351363791453, 0.07160830485689157, 0.22558727307410353) ,
- rgb (0.19199449184606268, 0.0731828306492733, 0.22243385243433622) ,
- rgb (0.18975853639094634, 0.07501986186214377, 0.2193005075652994) ,
- rgb (0.18739228342697645, 0.07710209689958833, 0.21618875376309582) ,
- rgb (0.18488035509396164, 0.07942573027972388, 0.21307651648984993) ,
- rgb (0.18774482037046955, 0.07725158846803931, 0.21387448578597812) ,
- rgb (0.19049578401722037, 0.07531127841678764, 0.2146562337112265) ,
- rgb (0.1931548636579131, 0.07360681904011795, 0.21542362939081539) ,
- rgb (0.19571853588267552, 0.07215778103960274, 0.21617499187076789) ,
- rgb (0.19819343656336558, 0.07097462525273879, 0.21690975060032436) ,
- rgb (0.20058760685133747, 0.07006457614998421, 0.21762721310371608) ,
- rgb (0.20290365333558247, 0.06943524858045896, 0.21833167885096033) ,
- rgb (0.20531725273301316, 0.06891959226639757, 0.21911516689288835) ,
- rgb (0.20785704662965598, 0.06848439879702528, 0.22000133917653536) ,
- rgb (0.21052882914958676, 0.06812195249816172, 0.22098759107715404) ,
- rgb (0.2133313859647627, 0.06783014842602667, 0.2220704321302429) ,
- rgb (0.21625279838647882, 0.06761633027051639, 0.22324568672294431) ,
- rgb (0.21930503925136402, 0.06746578636294004, 0.22451023616807558) ,
- rgb (0.22247308588973624, 0.06738821405309284, 0.22585960379408354) ,
- rgb (0.2257539681670791, 0.06738213230014747, 0.22728984778098055) ,
- rgb (0.2291562027859284, 0.06743473087115257, 0.22879681433956656) ,
- rgb (0.23266299920501882, 0.06755710438847978, 0.23037617493752832) ,
- rgb (0.23627495835774248, 0.06774359820987802, 0.23202360805926608) ,
- rgb (0.23999586188690308, 0.06798502996477995, 0.23373434258507808) ,
- rgb (0.2438114972024792, 0.06828985152901187, 0.23550427698321885) ,
- rgb (0.247720929905011, 0.06865333790948652, 0.2373288009471749) ,
- rgb (0.25172899728289466, 0.0690646308260355, 0.23920260612763083) ,
- rgb (0.2558213554748177, 0.06953231029187984, 0.24112190491594204) ,
- rgb (0.25999463887892144, 0.07005385560386188, 0.24308218808684579) ,
- rgb (0.2642551220706094, 0.07061659562299544, 0.24507758869355967) ,
- rgb (0.2685909594817286, 0.07122671627792246, 0.24710443563450618) ,
- rgb (0.272997015188973, 0.07188355544616351, 0.2491584709323293) ,
- rgb (0.277471508091428, 0.07258296989925478, 0.2512349399594277) ,
- rgb (0.2820174629736694, 0.07331569321404097, 0.25332800295084507) ,
- rgb (0.28662309235899847, 0.07408846082680887, 0.2554347867371703) ,
- rgb (0.29128515387578635, 0.0748990498474667, 0.25755101595750435) ,
- rgb (0.2960004726065818, 0.07574533600095842, 0.25967245030364566) ,
- rgb (0.3007727681291869, 0.07661782433616476, 0.2617929409781967) ,
- rgb (0.30559226007249934, 0.07752196310753731, 0.2639100669211966) ,
- rgb (0.31045520848595526, 0.07845687167618218, 0.2660200572779356) ,
- rgb (0.3153587000920581, 0.07942099731524319, 0.2681190407694196) ,
- rgb (0.3202998655799406, 0.08041299473755484, 0.2702032289303951) ,
- rgb (0.3252788886040126, 0.08142839007654609, 0.27226772884656186) ,
- rgb (0.3302917447118144, 0.08246763389003825, 0.27430929404579435) ,
- rgb (0.3353335322445545, 0.08353243411900396, 0.2763253435679004) ,
- rgb (0.34040164359597463, 0.08462223619170267, 0.27831254595259397) ,
- rgb (0.345493557138718, 0.08573665496512634, 0.28026769921081435) ,
- rgb (0.3506067824603248, 0.08687555176033529, 0.28218770540182386) ,
- rgb (0.35573889947341125, 0.08803897435024335, 0.2840695897279818) ,
- rgb (0.36088752387578377, 0.0892271943627452, 0.28591050458531014) ,
- rgb (0.36605031412464006, 0.0904406854276979, 0.2877077458811747) ,
- rgb (0.3712250843130934, 0.09167999748026273, 0.2894586539763317) ,
- rgb (0.3764103053221462, 0.09294519809377791, 0.2911602415731392) ,
- rgb (0.38160247377467543, 0.09423873126371218, 0.2928110750626949) ,
- rgb (0.3867993907954417, 0.09556181960083443, 0.29440901248173756) ,
- rgb (0.39199887556812907, 0.09691583650296684, 0.2959521200550908) ,
- rgb (0.39719876876325577, 0.09830232096827862, 0.2974385647628578) ,
- rgb (0.40239692379737496, 0.09972293031495055, 0.2988667436973397) ,
- rgb (0.4075912039268871, 0.10117945586419633, 0.300235195077286) ,
- rgb (0.41277985630360303, 0.1026734006932461, 0.3015422643746897) ,
- rgb (0.41796105205173684, 0.10420644885760968, 0.3027865203963184) ,
- rgb (0.42313214269556043, 0.10578120994917611, 0.3039675809469457) ,
- rgb (0.4282910131578975, 0.1073997763055258, 0.30508479060294547) ,
- rgb (0.4334355841041439, 0.1090642347484701, 0.3061376792828915) ,
- rgb (0.4385637818793154, 0.11077667828375456, 0.30712600062348083) ,
- rgb (0.44367358645071275, 0.11253912421257944, 0.3080497309546545) ,
- rgb (0.4487629917317482, 0.1143535557462255, 0.30890905921943196) ,
- rgb (0.4538300508699989, 0.11622183788331528, 0.3097044124984492) ,
- rgb (0.45887288947308297, 0.11814571137706886, 0.3104363697903881) ,
- rgb (0.46389102840284874, 0.12012561256850712, 0.31110343446582983) ,
- rgb (0.46888111384598413, 0.12216445576414045, 0.31170911458932665) ,
- rgb (0.473841437035254, 0.12426354237989065, 0.31225470169927194) ,
- rgb (0.47877034239726296, 0.12642401401409453, 0.3127417273582196) ,
- rgb (0.48366628618847957, 0.1286467902201389, 0.31317188565991266) ,
- rgb (0.48852847371852987, 0.13093210934893723, 0.31354553695453014) ,
- rgb (0.49335504375145617, 0.13328091630401023, 0.31386561956734976) ,
- rgb (0.4981443546207415, 0.13569380302451714, 0.314135190862664) ,
- rgb (0.5028952497497061, 0.13817086581280427, 0.3143566215383367) ,
- rgb (0.5076068118105369, 0.14071192654913128, 0.3145320012008257) ,
- rgb (0.5122783510532176, 0.14331656120063752, 0.3146630922831542) ,
- rgb (0.5169084880054446, 0.14598463068714407, 0.3147540759228004) ,
- rgb (0.5214965286322996, 0.14871544765633712, 0.3148076795453443) ,
- rgb (0.5260418962547748, 0.15150818660835483, 0.31482653406646727) ,
- rgb (0.5305442048985645, 0.15436183633886777, 0.3148129978918713) ,
- rgb (0.5350027976174474, 0.15727540775107324, 0.3147708520739653) ,
- rgb (0.5394173664919906, 0.16024769309971934, 0.31470295028655965) ,
- rgb (0.5437877131360856, 0.16327738551419116, 0.31461204226295625) ,
- rgb (0.5481137003346762, 0.1663630904279047, 0.3145010299091471) ,
- rgb (0.5523952157271191, 0.16950338809328983, 0.3143729155461537) ,
- rgb (0.5566322903496934, 0.17269677158182117, 0.31423043195101424) ,
- rgb (0.5608249903911717, 0.17594170887918095, 0.31407639883970623) ,
- rgb (0.564973435290177, 0.17923664950367169, 0.3139136046337036) ,
- rgb (0.5690778478401143, 0.18258004462335425, 0.3137444095679653) ,
- rgb (0.5731384575410787, 0.18597036007065024, 0.3135712686852) ,
- rgb (0.5771555081299204, 0.18940601489760422, 0.3133970433357208) ,
- rgb (0.5811293276158656, 0.19288548904692518, 0.3132239939418394) ,
- rgb (0.5850602439646688, 0.19640737049066315, 0.3130540116373273) ,
- rgb (0.5889486193554471, 0.19997020971775276, 0.31288922211590126) ,
- rgb (0.5927948053652026, 0.20357251410079796, 0.3127323483930494) ,
- rgb (0.5965991810912237, 0.207212956082026, 0.3125852303112123) ,
- rgb (0.6003621301041158, 0.21089030138947745, 0.3124493441041469) ,
- rgb (0.6040840169673274, 0.21460331490206347, 0.31232652641170694) ,
- rgb (0.6077652399481865, 0.21835070166659282, 0.312219032918702) ,
- rgb (0.6114062072731884, 0.22213124697023234, 0.3121288139643524) ,
- rgb (0.6150072323639137, 0.22594402043981826, 0.3120568068576574) ,
- rgb (0.6185686525887719, 0.2297879924917992, 0.3120046383872893) ,
- rgb (0.6220907982108261, 0.2336621873300741, 0.3119738327362739) ,
- rgb (0.6255741650043496, 0.23756535071152696, 0.3119669831491227) ,
- rgb (0.6290189201698587, 0.24149689191922535, 0.3119844719564572) ,
- rgb (0.6324253485421027, 0.24545598775548677, 0.3120276597462445) ,
- rgb (0.6357937104834237, 0.24944185818822678, 0.3120979395330059) ,
- rgb (0.6391243387840212, 0.2534536546198314, 0.3121968961206398) ,
- rgb (0.642417577481186, 0.257490519876798, 0.31232631707560987) ,
- rgb (0.6456734938264543, 0.2615520316161528, 0.31248673753935263) ,
- rgb (0.6488923016945825, 0.2656375533620908, 0.3126794181957019) ,
- rgb (0.652074172902773, 0.269746505252367, 0.3129056060581917) ,
- rgb (0.6552193260932713, 0.2738782665241015, 0.3131666792687211) ,
- rgb (0.6583280801134499, 0.2780321095766563, 0.3134643447952643) ,
- rgb (0.6614003753260178, 0.28220778870555907, 0.3137991292649849) ,
- rgb (0.6644363246987884, 0.2864048361425618, 0.31417223403606975) ,
- rgb (0.6674360376636913, 0.29062280081258873, 0.31458483752056837) ,
- rgb (0.670399595476762, 0.29486126309253047, 0.3150381395687221) ,
- rgb (0.6733272556481733, 0.29911962764489264, 0.3155337232398221) ,
- rgb (0.6762189792440975, 0.30339762792450425, 0.3160724937230589) ,
- rgb (0.6790747402815734, 0.30769497879760166, 0.31665545668946665) ,
- rgb (0.6818945715094452, 0.31201133280550686, 0.3172838048924495) ,
- rgb (0.6846785094249453, 0.3163463482122221, 0.31795870784057567) ,
- rgb (0.6874265643516962, 0.32069970535138104, 0.3186813762227769) ,
- rgb (0.6901389321505248, 0.32507091815606004, 0.319453323328983) ,
- rgb (0.6928154484676493, 0.32945984647042675, 0.3202754315314667) ,
- rgb (0.6954560834689112, 0.33386622163232865, 0.3211488430698579) ,
- rgb (0.6980608153581771, 0.3382897632604862, 0.3220747885521809) ,
- rgb (0.700629624772421, 0.34273019305341756, 0.32305449047765694) ,
- rgb (0.7031624945881415, 0.34718723719598, 0.32408913679491225) ,
- rgb (0.7056595112261009, 0.3516605297812094, 0.32518014084085567) ,
- rgb (0.7081205956842048, 0.356149855233803, 0.32632861885644465) ,
- rgb (0.7105456546582587, 0.36065500290840113, 0.3275357416278876) ,
- rgb (0.7129346683977347, 0.36517570519856757, 0.3288027427038317) ,
- rgb (0.7152876061484729, 0.3697117022522345, 0.3301308728723546) ,
- rgb (0.7176044490813385, 0.3742627271068619, 0.3315213862095893) ,
- rgb (0.7198852149054985, 0.37882848839337313, 0.332975552002454) ,
- rgb (0.7221299918421461, 0.3834086450896306, 0.33449469983585844) ,
- rgb (0.7243386564778159, 0.38800301593162145, 0.3360799596569183) ,
- rgb (0.7265112290022755, 0.3926113126792577, 0.3377325942005665) ,
- rgb (0.7286477385671655, 0.39723324476747235, 0.33945384341064017) ,
- rgb (0.7307482075484517, 0.401868526884681, 0.3412449533046818) ,
- rgb (0.7328127050626875, 0.4065168468778026, 0.3431071517341082) ,
- rgb (0.7348413359856494, 0.4111778700451951, 0.3450416947080907) ,
- rgb (0.7368342217358587, 0.4158512585029011, 0.347049785207584) ,
- rgb (0.7387914002459927, 0.4205367299231533, 0.34913260148542435) ,
- rgb (0.7407130161950609, 0.4252339389526239, 0.35129130890802607) ,
- rgb (0.7425992159973317, 0.42994254036133867, 0.3535270924537459) ,
- rgb (0.7444501867657067, 0.4346621718461711, 0.35584108091122535) ,
- rgb (0.7462661578916344, 0.439392450449735, 0.3582343914230064) ,
- rgb (0.7480473927555956, 0.44413297780351974, 0.36070813602540136) ,
- rgb (0.7497942054717047, 0.4488833348154881, 0.3632633755836028) ,
- rgb (0.7515068504589166, 0.45364314496866825, 0.36590112443835765) ,
- rgb (0.7531856636904657, 0.45841199172949604, 0.3686223664223477) ,
- rgb (0.7548310506695954, 0.46318942799460555, 0.3714280448394211) ,
- rgb (0.7564434157714071, 0.4679750143794846, 0.37431909037543515) ,
- rgb (0.7580232553845584, 0.4727682731566229, 0.3772963553109668) ,
- rgb (0.7595711110534006, 0.4775687122205708, 0.380360657784311) ,
- rgb (0.7610876378057071, 0.48237579130289127, 0.3835127572385229) ,
- rgb (0.7625733355405261, 0.48718906673415824, 0.38675335037837993) ,
- rgb (0.7640288560928866, 0.49200802533379656, 0.39008308392311997) ,
- rgb (0.7654549259333051, 0.4968321290972723, 0.3935025400011538) ,
- rgb (0.7668522895064389, 0.5016608471009063, 0.39701221751773474) ,
- rgb (0.768221765997353, 0.5064936237128791, 0.40061257089416885) ,
- rgb (0.7695642334401418, 0.5113298901696085, 0.4043039806968248) ,
- rgb (0.7708809196230247, 0.516168926434691, 0.40808667584648967) ,
- rgb (0.7721725722960555, 0.5210102658711383, 0.4119608998712287) ,
- rgb (0.7734402182988989, 0.5258533209345156, 0.41592679539764366) ,
- rgb (0.774684947460632, 0.5306974938477673, 0.4199844035696376) ,
- rgb (0.775907907306857, 0.5355421788246119, 0.42413367909988375) ,
- rgb (0.7771103295521099, 0.5403867491056124, 0.4283745037125848) ,
- rgb (0.7782934580763312, 0.545230594884266, 0.432706647838971) ,
- rgb (0.7794586273150664, 0.5500730841397727, 0.4371297985644476) ,
- rgb (0.7806077474948377, 0.5549133574489061, 0.4416433242636464) ,
- rgb (0.7817418047898184, 0.5597509805259486, 0.44624687186865436) ,
- rgb (0.7828622526444091, 0.5645853311116688, 0.45093985823706345) ,
- rgb (0.7839706083641448, 0.5694157832671042, 0.4557215474289206) ,
- rgb (0.7850684501960684, 0.5742417003617839, 0.46059116206904965) ,
- rgb (0.7861573713233296, 0.5790624629815756, 0.465547782819184) ,
- rgb (0.7872390410818835, 0.5838774374455721, 0.47059039582133383) ,
- rgb (0.7883151404562396, 0.5886860017356244, 0.4757179187907608) ,
- rgb (0.7893873776625194, 0.5934875421745599, 0.48092913815357724) ,
- rgb (0.7904577684772788, 0.5982813427706246, 0.48622257801969754) ,
- rgb (0.7915283284347561, 0.603066705931472, 0.49159667021646397) ,
- rgb (0.7926003430423745, 0.6078432208703702, 0.4970502062153201) ,
- rgb (0.7936755969866496, 0.6126102933407219, 0.5025816129126943) ,
- rgb (0.7947558597265404, 0.617367344002207, 0.5081892121310299) ,
- rgb (0.7958429237958377, 0.6221137880845115, 0.5138712409190979) ,
- rgb (0.7969385471995161, 0.626849056792967, 0.5196258425240281) ,
- rgb (0.7980444781513664, 0.6315725822508955, 0.5254510814483478) ,
- rgb (0.7991624518501963, 0.6362837937202919, 0.5313449594256143) ,
- rgb (0.8002941538975398, 0.6409821330674986, 0.5373053518514104) ,
- rgb (0.8014412429256005, 0.6456670345921877, 0.5433300863249918) ,
- rgb (0.8026053114611295, 0.6503379374810385, 0.5494169158460365) ,
- rgb (0.8037879253107763, 0.6549942654947263, 0.5555635086708381) ,
- rgb (0.804990547908103, 0.6596354502756416, 0.5617674511054698) ,
- rgb (0.8062146052692706, 0.6642608958528229, 0.5680262917864979) ,
- rgb (0.8074614045096935, 0.6688700095398864, 0.5743374637345958) ,
- rgb (0.8087321917008969, 0.6734621670219452, 0.5806983480557674) ,
- rgb (0.8100280946652069, 0.6780367267397182, 0.5871062690808275) ,
- rgb (0.8113501401176333, 0.6825930154624339, 0.5935584890905076) ,
- rgb (0.8126992203988149, 0.6871303371461888, 0.600052148204351) ,
- rgb (0.8140761104699334, 0.6916479479148213, 0.6065843782630862) ,
- rgb (0.8154814662727948, 0.6961450550830809, 0.6131522120932265) ,
- rgb (0.8169157577505589, 0.7006208301478398, 0.6197526063725792) ,
- rgb (0.8183793116449822, 0.705074381896351, 0.626382454789333) ,
- rgb (0.8198723065045529, 0.7095047497878748, 0.6330385704006711) ,
- rgb (0.8213947205565636, 0.7139109141951604, 0.6397176669767276) ,
- rgb (0.8229463511042843, 0.7182917733129006, 0.6464164243818421) ,
- rgb (0.8245268129450285, 0.7226461431208888, 0.653131379154226) ,
- rgb (0.8261354971058026, 0.7269727551823826, 0.659859001562165) ,
- rgb (0.8277716072353446, 0.7312702332407809, 0.6665957020468297) ,
- rgb (0.8294340781648147, 0.7355371221572935, 0.6733377200930191) ,
- rgb (0.8311216352909631, 0.7397718464763862, 0.6800812520363146) ,
- rgb (0.8328327718577798, 0.7439727181745988, 0.6868223587464855) ,
- rgb (0.8345656905566583, 0.7481379479992134, 0.6935569764986385) ,
- rgb (0.8363189884473793, 0.7522654895287526, 0.7002799902886496) ,
- rgb (0.8380912347613196, 0.7563531486080863, 0.7069856139021298) ,
- rgb (0.8398783988412087, 0.7603990719977968, 0.7136714781112923) ,
- rgb (0.8416775076684515, 0.7644010120098295, 0.7203329938728462) ,
- rgb (0.843485292229337, 0.7683566039987018, 0.7269653699897204) ,
- rgb (0.8452981073195511, 0.7722633860104472, 0.7335636824054149) ,
- rgb (0.847111955079651, 0.7761188023604716, 0.7401227576280706) ,
- rgb (0.8489224556311764, 0.7799202140765015, 0.7466371929366437) ,
- rgb (0.8507269702317879, 0.7836645734238389, 0.7530974636118285) ,
- rgb (0.8525190720770844, 0.7873493613354844, 0.7594994148789691) ,
- rgb (0.8542921961147046, 0.7909719677709199, 0.765838014779141) ,
- rgb (0.856040223147254, 0.7945296360155061, 0.7721061003767414) ,
- rgb (0.857756629435049, 0.7980196314271393, 0.778295716672475) ,
- rgb (0.8594346370300241, 0.8014392309950078, 0.7843978875138392) ,
- rgb (0.8610711702756552, 0.8047851790981223, 0.7903952966373629) ,
- rgb (0.8626560105112757, 0.8080552380426153, 0.796282666437655) ,
- rgb (0.8641834372394103, 0.8112464422465354, 0.8020461269686395) ,
- rgb (0.8656493432560532, 0.8143554406751491, 0.8076697232416455) ,
- rgb (0.867053149070485, 0.8173780404191124, 0.813134196269114) ,
- rgb (0.8683995469581863, 0.8203087551218152, 0.8184163896312899) ,
- rgb (0.8696913150261381, 0.8231415885956916, 0.8235047668317317) ,
- rgb (0.8709384671729751, 0.8258685788943851, 0.8283849726114961) ,
- rgb (0.8721533197845432, 0.8284805282370967, 0.8330486712880828) ,
- rgb (0.8733517136091627, 0.8309671525127262, 0.8374885100119709) ,
- rgb (0.8745379332026019, 0.8333197294864546, 0.8417192535806901) ,
- rgb (0.875714587099614, 0.8355302318472394, 0.8457553751902708) ,
- rgb (0.8768784845161469, 0.8375923807118654, 0.8496137354915025) ,
- rgb (0.8780229843664901, 0.8395016561854007, 0.8533064535245892) ,
- rgb (0.8791324424079277, 0.8412555488447591, 0.8568557229103964) ,
- rgb (0.8801929331569581, 0.8428522482477862, 0.8602739992715663) ,
- rgb (0.8811916987134195, 0.8442906671771735, 0.8635659516866988) ,
- rgb (0.8821154248940161, 0.8455700725455935, 0.8667376504623333) ,
- rgb (0.8829516859544853, 0.8466897027569927, 0.8697961704819097) ,
- rgb (0.8836912714589804, 0.8476489176151927, 0.8727414710144156) ,
- rgb (0.8843271305411354, 0.8484474157205542, 0.8755678522824297) ,
- rgb (0.8848513815990857, 0.849084264228938, 0.8782823528537247) ,
- rgb (0.8852589797263047, 0.8495589281098921, 0.8808841479402484) ,
- rgb (0.8855471481195238, 0.8498717428363158, 0.8833620612117095) ,
- rgb (0.8857115512284565, 0.8500218611585632, 0.8857253899008712)
-});
+ rgb (0.8857501584075443, 0.8500092494306783, 0.8879736506427196) ,
+ rgb (0.8837852019553906, 0.8507294054031063, 0.8872322209694989) ,
+ rgb (0.8817223105928579, 0.8512759407765347, 0.8863805692551482) ,
+ rgb (0.8795410528270573, 0.8516567540749572, 0.8854143767924102) ,
+ rgb (0.8772488085896548, 0.8518702833887027, 0.8843412038131143) ,
+ rgb (0.8748534750857597, 0.8519152612302319, 0.8831692696761383) ,
+ rgb (0.8723313408512408, 0.8518016547808089, 0.8818970435500162) ,
+ rgb (0.8697047485350982, 0.8515240300479789, 0.8805388339000336) ,
+ rgb (0.8669601550533358, 0.8510896085314068, 0.8790976697717334) ,
+ rgb (0.86408985081464, 0.8505039116750779, 0.8775792578489263) ,
+ rgb (0.8611024543689985, 0.8497675485700126, 0.8759924292343957) ,
+ rgb (0.8579825924567037, 0.8488893481028184, 0.8743403855344628) ,
+ rgb (0.8547259318925698, 0.8478748812467282, 0.8726282980930582) ,
+ rgb (0.8513371457085719, 0.8467273579611647, 0.8708608165735044) ,
+ rgb (0.8478071070257792, 0.8454546229209523, 0.8690403678369444) ,
+ rgb (0.8441261828674842, 0.8440648271103739, 0.8671697332269007) ,
+ rgb (0.8403042080595778, 0.8425605950855084, 0.865250882410458) ,
+ rgb (0.8363403180919118, 0.8409479651895194, 0.8632852800107016) ,
+ rgb (0.8322270571293441, 0.8392349062775448, 0.8612756350042788) ,
+ rgb (0.8279689431601354, 0.837426007513952, 0.8592239945130679) ,
+ rgb (0.8235742968025285, 0.8355248776479544, 0.8571319132851495) ,
+ rgb (0.8190465467793753, 0.8335364929949034, 0.855002062870101) ,
+ rgb (0.8143898212114309, 0.8314655869419785, 0.8528375906214702) ,
+ rgb (0.8095999819094809, 0.8293189667350546, 0.8506444160105037) ,
+ rgb (0.8046916442981458, 0.8270983878056066, 0.8484244929697402) ,
+ rgb (0.79967075421268, 0.8248078181208093, 0.8461821002957853) ,
+ rgb (0.7945430508923111, 0.8224511622630462, 0.8439218478682798) ,
+ rgb (0.7893144556460892, 0.8200321318870201, 0.8416486380471222) ,
+ rgb (0.7839910104276492, 0.8175542640053343, 0.8393674746403673) ,
+ rgb (0.7785789200822759, 0.8150208937874255, 0.8370834463093898) ,
+ rgb (0.7730841659017094, 0.8124352473546601, 0.8348017295057968) ,
+ rgb (0.7675110850441786, 0.8098007598713145, 0.8325281663805967) ,
+ rgb (0.7618690793798029, 0.8071194938764749, 0.830266486168872) ,
+ rgb (0.7561644358438198, 0.8043940873347794, 0.8280213899472) ,
+ rgb (0.750403467654067, 0.8016269900896532, 0.8257973785108242) ,
+ rgb (0.7445924777189017, 0.7988204771958325, 0.8235986758615652) ,
+ rgb (0.7387377170049494, 0.7959766573503101, 0.8214292278043301) ,
+ rgb (0.7328454364552346, 0.7930974646884407, 0.8192926338423038) ,
+ rgb (0.726921775128297, 0.7901846863592763, 0.8171921746672638) ,
+ rgb (0.7209728066553678, 0.7872399592345264, 0.8151307392087926) ,
+ rgb (0.7150040307625213, 0.7842648709158119, 0.8131111655994991) ,
+ rgb (0.709020781345393, 0.7812608871607091, 0.8111359185511793) ,
+ rgb (0.7030297722540817, 0.7782290497335813, 0.8092061884805697) ,
+ rgb (0.6970365443886174, 0.7751705000806606, 0.8073233538006345) ,
+ rgb (0.691046410093091, 0.7720862946067809, 0.8054884169067907) ,
+ rgb (0.6850644615439593, 0.7689774029354699, 0.8037020626717691) ,
+ rgb (0.6790955449988215, 0.765844721313959, 0.8019646617300199) ,
+ rgb (0.6731442255942621, 0.7626890873389048, 0.8002762854580953) ,
+ rgb (0.6672147980375281, 0.7595112803730375, 0.7986367465453776) ,
+ rgb (0.6613112930078745, 0.7563120270871903, 0.7970456043491897) ,
+ rgb (0.6554369232645472, 0.7530920875676843, 0.7955027112903105) ,
+ rgb (0.6495957300425348, 0.7498520122194177, 0.7940067402149911) ,
+ rgb (0.6437910831099849, 0.7465923800833657, 0.7925565320130605) ,
+ rgb (0.6380258682854598, 0.7433137671403319, 0.7911510045957317) ,
+ rgb (0.6323027138710603, 0.740016721601314, 0.7897889276264043) ,
+ rgb (0.6266240202260459, 0.7367017540369944, 0.7884690131633456) ,
+ rgb (0.6209919306481755, 0.733369347989232, 0.7871899462469658) ,
+ rgb (0.6154084641177048, 0.7300199523273969, 0.7859502270675048) ,
+ rgb (0.6098754317609306, 0.7266539875975829, 0.7847483573269471) ,
+ rgb (0.6043943420027486, 0.7232718614323369, 0.7835829559353559) ,
+ rgb (0.5989665814482068, 0.7198739489224673, 0.7824525989934664) ,
+ rgb (0.5935933569683722, 0.7164606049658685, 0.781355882376401) ,
+ rgb (0.588275797805555, 0.7130321464645814, 0.7802914140563652) ,
+ rgb (0.5830148703693241, 0.7095888767699747, 0.7792578182047659) ,
+ rgb (0.5778116438998202, 0.7061310615715398, 0.7782534512102552) ,
+ rgb (0.5726668948158774, 0.7026589535425779, 0.7772770268091199) ,
+ rgb (0.5675811785386197, 0.6991727930264627, 0.776327485342753) ,
+ rgb (0.5625551535721934, 0.6956727838162965, 0.7754035914230984) ,
+ rgb (0.5575894041960517, 0.6921591145825405, 0.7745041337932782) ,
+ rgb (0.5526845058934713, 0.6886319451516638, 0.7736279426902245) ,
+ rgb (0.5478409815301863, 0.6850914221850988, 0.7727738647344087) ,
+ rgb (0.5430593242401823, 0.6815376725306588, 0.7719407969783508) ,
+ rgb (0.5383401557517628, 0.677970811290954, 0.7711273443905772) ,
+ rgb (0.533683891477284, 0.6743909370521273, 0.7703325054879735) ,
+ rgb (0.529090861832473, 0.6707981230280622, 0.7695555229231313) ,
+ rgb (0.5245615147059358, 0.6671924299614223, 0.7687954171423095) ,
+ rgb (0.5200962739223556, 0.6635739143403039, 0.768051194033441) ,
+ rgb (0.5156955988596057, 0.65994260812898, 0.7673219148959617) ,
+ rgb (0.5113599254160193, 0.6562985398183186, 0.7666066378064533) ,
+ rgb (0.5070896957645166, 0.6526417240314645, 0.7659044566083585) ,
+ rgb (0.5028853540415561, 0.6489721673409526, 0.7652144671817491) ,
+ rgb (0.4987473366135607, 0.6452898684900934, 0.7645357873418008) ,
+ rgb (0.4946761847863938, 0.6415948411950443, 0.7638671900213091) ,
+ rgb (0.4906722493856122, 0.6378870485884708, 0.7632081276316384) ,
+ rgb (0.4867359599430568, 0.6341664625110051, 0.7625578008592404) ,
+ rgb (0.4828677867260272, 0.6304330455306234, 0.761915371498953) ,
+ rgb (0.47906816236197386, 0.6266867625186013, 0.7612800037566242) ,
+ rgb (0.47533752394906287, 0.6229275728383581, 0.7606508557181775) ,
+ rgb (0.4716762951887709, 0.6191554324288464, 0.7600270922788305) ,
+ rgb (0.46808490970531597, 0.6153702869579029, 0.7594078989109274) ,
+ rgb (0.4645637671630393, 0.6115720882286415, 0.7587924262302581) ,
+ rgb (0.4611132664702388, 0.607760777169989, 0.7581798643680714) ,
+ rgb (0.45773377230160567, 0.6039363004658646, 0.7575693690185916) ,
+ rgb (0.45442563977552913, 0.6000985950385866, 0.7569601366060649) ,
+ rgb (0.45118918687617743, 0.5962476205135354, 0.7563512064324664) ,
+ rgb (0.4480247093358917, 0.5923833145214658, 0.7557417647410792) ,
+ rgb (0.4449324685421538, 0.5885055998308617, 0.7551311041857901) ,
+ rgb (0.441912717666964, 0.5846144110017557, 0.7545183888441067) ,
+ rgb (0.43896563958048396, 0.5807096924109849, 0.7539027620828594) ,
+ rgb (0.4360913895835637, 0.5767913799818608, 0.7532834105961016) ,
+ rgb (0.43329008867358393, 0.5728594162560667, 0.7526594653256667) ,
+ rgb (0.4305617907305757, 0.5689137457245718, 0.752030080993127) ,
+ rgb (0.42790652284925834, 0.5649543060909209, 0.7513944352191484) ,
+ rgb (0.42532423665011354, 0.560981049599503, 0.7507516498900512) ,
+ rgb (0.4228148567577266, 0.5569939212699658, 0.7501008698822764) ,
+ rgb (0.42037822361396326, 0.5529928715810817, 0.7494412559451894) ,
+ rgb (0.4180141407923363, 0.5489778542188889, 0.7487719316700112) ,
+ rgb (0.4157223260454232, 0.544948827153504, 0.7480920445900052) ,
+ rgb (0.4135024574331473, 0.5409057477109848, 0.7474007329754309) ,
+ rgb (0.4113541469730457, 0.5368485776500593, 0.7466971285506578) ,
+ rgb (0.4092768899914751, 0.5327773017713032, 0.7459803063570782) ,
+ rgb (0.4072701869421907, 0.5286918801105741, 0.7452494263758127) ,
+ rgb (0.4053334378930318, 0.5245922817498312, 0.7445036583670813) ,
+ rgb (0.40346600333905397, 0.5204784765384003, 0.7437421522356709) ,
+ rgb (0.40166714010896104, 0.5163504496968876, 0.7429640345324835) ,
+ rgb (0.39993606933454834, 0.5122081814321852, 0.7421684457131799) ,
+ rgb (0.3982719152586337, 0.5080516653927614, 0.7413545091809972) ,
+ rgb (0.3966737490566561, 0.5038808905384797, 0.7405213858051674) ,
+ rgb (0.3951405880820763, 0.4996958532637776, 0.7396682021171571) ,
+ rgb (0.39367135736822567, 0.4954965577745118, 0.738794102296364) ,
+ rgb (0.39226494876209317, 0.4912830033289926, 0.7378982478447508) ,
+ rgb (0.390920175719949, 0.4870552025122304, 0.7369797713388125) ,
+ rgb (0.38963580160340855, 0.48281316715123496, 0.7360378254693274) ,
+ rgb (0.3884105330084243, 0.47855691131792805, 0.7350715764115726) ,
+ rgb (0.3872430145933025, 0.4742864593363539, 0.7340801678785439) ,
+ rgb (0.386131841788921, 0.4700018340988123, 0.7330627749243106) ,
+ rgb (0.3850755679365139, 0.46570306719930193, 0.732018540336905) ,
+ rgb (0.38407269378943537, 0.46139018782416635, 0.7309466543290268) ,
+ rgb (0.3831216808440275, 0.457063235814072, 0.7298462679135326) ,
+ rgb (0.38222094988570376, 0.45272225034283325, 0.7287165614400378) ,
+ rgb (0.3813688793045416, 0.4483672766927786, 0.7275567131714135) ,
+ rgb (0.3805638069656562, 0.4439983720863372, 0.7263658704513531) ,
+ rgb (0.3798040374484875, 0.4396155882122263, 0.7251432377876109) ,
+ rgb (0.3790878928311076, 0.43521897612544935, 0.7238879869132313) ,
+ rgb (0.378413635091359, 0.43080859411413064, 0.7225993199306104) ,
+ rgb (0.3777794975351373, 0.4263845142616835, 0.7212763999353023) ,
+ rgb (0.3771837184425123, 0.4219468022345483, 0.7199184152447577) ,
+ rgb (0.37662448930806297, 0.41749553747893614, 0.7185245473617611) ,
+ rgb (0.37610001286385814, 0.4130307995247706, 0.7170939691992023) ,
+ rgb (0.375608469194424, 0.40855267638072096, 0.7156258509158755) ,
+ rgb (0.37514802505380473, 0.4040612609993941, 0.7141193695725726) ,
+ rgb (0.3747168601930223, 0.3995566498711684, 0.7125736851650046) ,
+ rgb (0.3743131319931234, 0.3950389482828331, 0.7109879652237746) ,
+ rgb (0.3739349933047578, 0.3905082752937583, 0.7093613429347845) ,
+ rgb (0.3735806215098284, 0.3859647438605754, 0.7076929760731058) ,
+ rgb (0.37324816143326384, 0.38140848555753937, 0.7059820097480604) ,
+ rgb (0.3729357864666503, 0.3768396383521984, 0.7042275578058994) ,
+ rgb (0.37264166757849604, 0.3722583500483685, 0.7024287314570723) ,
+ rgb (0.37236397858465387, 0.36766477862108266, 0.7005846349652077) ,
+ rgb (0.3721008970244382, 0.3630590973698238, 0.6986943461507372) ,
+ rgb (0.3718506155898596, 0.3584414828587522, 0.6967569581025654) ,
+ rgb (0.3716113323440048, 0.3538121372967869, 0.6947714991938089) ,
+ rgb (0.37138124223736607, 0.34917126878479027, 0.6927370347192883) ,
+ rgb (0.37115856636209105, 0.3445191141023017, 0.6906525358646499) ,
+ rgb (0.3709415155133733, 0.33985591488818123, 0.6885170337950512) ,
+ rgb (0.3707283327942267, 0.33518193808489577, 0.6863294816960677) ,
+ rgb (0.37051738634484427, 0.3304974124430785, 0.6840888878885721) ,
+ rgb (0.37030682071842685, 0.32580269697872455, 0.6817941168448668) ,
+ rgb (0.37009487130772695, 0.3210981375964933, 0.6794440539905685) ,
+ rgb (0.3698798032902536, 0.31638410101153364, 0.6770375543809057) ,
+ rgb (0.36965987626565955, 0.3116609876295197, 0.6745734474341955) ,
+ rgb (0.3694333459127623, 0.3069292355186234, 0.6720505284912062) ,
+ rgb (0.36919847837592484, 0.3021893217650707, 0.6694675433161452) ,
+ rgb (0.3689535530659678, 0.29744175492366276, 0.6668232208982426) ,
+ rgb (0.3686968223189527, 0.292687098561501, 0.6641162529823691) ,
+ rgb (0.36842655638020444, 0.2879259643777846, 0.661345269109446) ,
+ rgb (0.3681410147989972, 0.2831590122118299, 0.6585088880697231) ,
+ rgb (0.3678384369653108, 0.2783869718129776, 0.655605668384537) ,
+ rgb (0.36751707094367697, 0.2736106331709098, 0.6526341171161864) ,
+ rgb (0.36717513650699446, 0.26883085667326956, 0.6495927229789225) ,
+ rgb (0.3668108554010799, 0.26404857724525643, 0.6464799165290824) ,
+ rgb (0.3664224325155063, 0.25926481158628106, 0.6432940914076554) ,
+ rgb (0.36600853966739794, 0.25448043878086224, 0.6400336180336859) ,
+ rgb (0.3655669837353898, 0.24969683475296395, 0.6366967518748858) ,
+ rgb (0.3650957984588681, 0.24491536803550484, 0.6332817352005559) ,
+ rgb (0.3645930889012501, 0.24013747024823828, 0.629786801550261) ,
+ rgb (0.3640569302208851, 0.23536470386204195, 0.6262101345195302) ,
+ rgb (0.36348537610385145, 0.2305987621839642, 0.6225498862239288) ,
+ rgb (0.3628764356004103, 0.2258414929328703, 0.6188041741082302) ,
+ rgb (0.36222809558295926, 0.22109488427338303, 0.6149711234609613) ,
+ rgb (0.36153829010998356, 0.21636111429594002, 0.6110488067964093) ,
+ rgb (0.36080493826624654, 0.21164251793458128, 0.6070353217206471) ,
+ rgb (0.36002681809096376, 0.20694122817889948, 0.6029284543191687) ,
+ rgb (0.35920088560930186, 0.20226037920758122, 0.5987265295935138) ,
+ rgb (0.3583248996661781, 0.197602942459778, 0.5944276851750107) ,
+ rgb (0.35739663292915563, 0.1929720819784246, 0.5900301125106313) ,
+ rgb (0.35641381143126327, 0.18837119869242164, 0.5855320765920552) ,
+ rgb (0.3553741530690672, 0.18380392577704466, 0.580931914318328) ,
+ rgb (0.3542753496066376, 0.17927413271618647, 0.5762280966066872) ,
+ rgb (0.35311574421123737, 0.17478570377561287, 0.5714187152355529) ,
+ rgb (0.3518924860887379, 0.17034320478524959, 0.5665028491121665) ,
+ rgb (0.3506030444193101, 0.1659512998472086, 0.5614796470399323) ,
+ rgb (0.34924513554955644, 0.16161477763045118, 0.5563483747416378) ,
+ rgb (0.3478165323877778, 0.1573386351115298, 0.5511085345270326) ,
+ rgb (0.3463150717579309, 0.15312802296627787, 0.5457599924248665) ,
+ rgb (0.34473901574536375, 0.1489882058982641, 0.5403024592040654) ,
+ rgb (0.34308600291572294, 0.14492465359918028, 0.534737042820671) ,
+ rgb (0.34135411074506483, 0.1409427920655632, 0.5290650094033675) ,
+ rgb (0.33954168752669694, 0.1370480189671817, 0.5232879753508524) ,
+ rgb (0.3376473209067111, 0.13324562282438077, 0.5174080757397947) ,
+ rgb (0.33566978565015315, 0.12954074251271822, 0.5114280721516895) ,
+ rgb (0.33360804901486, 0.1259381830100592, 0.505351647966549) ,
+ rgb (0.33146154891145124, 0.12244245263391232, 0.4991827458843107) ,
+ rgb (0.3292300520323141, 0.11905764321981127, 0.49292595612342666) ,
+ rgb (0.3269137124539796, 0.1157873496841953, 0.4865864649569746) ,
+ rgb (0.32451307931207785, 0.11263459791730848, 0.48017007211645196) ,
+ rgb (0.3220288227606932, 0.10960114111258401, 0.4736849472572688) ,
+ rgb (0.31946262395497965, 0.1066887988239266, 0.46713728801395243) ,
+ rgb (0.316816480890235, 0.10389861387653518, 0.46053414662739794) ,
+ rgb (0.3140927841475553, 0.10123077676403242, 0.45388335612058467) ,
+ rgb (0.31129434479712365, 0.0986847719340522, 0.4471931371516162) ,
+ rgb (0.30842444457210105, 0.09625938534057774, 0.44047194882050544) ,
+ rgb (0.30548675819945936, 0.09395276484082374, 0.4337284999936111) ,
+ rgb (0.3024853636457425, 0.0917611873973036, 0.42697404043749887) ,
+ rgb (0.2994248396021477, 0.08968225371675004, 0.42021619665853854) ,
+ rgb (0.2963100038890529, 0.08771325096046395, 0.41346259134143476) ,
+ rgb (0.2931459309698525, 0.08585065688962071, 0.40672178082365834) ,
+ rgb (0.2899379244517661, 0.08409078829085731, 0.40000214725256295) ,
+ rgb (0.28669151388283165, 0.08242987384848069, 0.39331182532243375) ,
+ rgb (0.28341239797185225, 0.08086415336549937, 0.38665868550105914) ,
+ rgb (0.2801063857697547, 0.07938999480226153, 0.38005028528138707) ,
+ rgb (0.2767793961581559, 0.07800394103378822, 0.37349382846504675) ,
+ rgb (0.2734373934245081, 0.07670280023749607, 0.36699616136347685) ,
+ rgb (0.2700863774911405, 0.07548367558427554, 0.36056376228111864) ,
+ rgb (0.26673233211995284, 0.0743440180285462, 0.3542027606624096) ,
+ rgb (0.26338121807151404, 0.07328165793989708, 0.34791888996380105) ,
+ rgb (0.26003895187439957, 0.0722947810433622, 0.3417175669546984) ,
+ rgb (0.256711916510839, 0.07138010624208224, 0.3356064898460009) ,
+ rgb (0.25340685873736807, 0.07053358292685183, 0.3295945757321303) ,
+ rgb (0.2501284530619938, 0.06975820642910699, 0.32368100685760637) ,
+ rgb (0.24688226237959, 0.06905363944920445, 0.31786993834254956) ,
+ rgb (0.24367372557466271, 0.06841985515092269, 0.3121652405088837) ,
+ rgb (0.2405081333229594, 0.0678571038148556, 0.3065705449367832) ,
+ rgb (0.23739062429054825, 0.06736588805055552, 0.3010892218406587) ,
+ rgb (0.23433055727563878, 0.0669355996616394, 0.295740099298676) ,
+ rgb (0.23132955273021344, 0.06657618693909059, 0.29051361067988485) ,
+ rgb (0.2283917709422868, 0.06628997924139618, 0.28541074411068496) ,
+ rgb (0.22552164337737857, 0.0660781731193956, 0.28043398847505197) ,
+ rgb (0.22272706739121817, 0.06593379067565194, 0.275597146520537) ,
+ rgb (0.22001251100779617, 0.0658579189189076, 0.2709027999432586) ,
+ rgb (0.21737845072382705, 0.06585966123356204, 0.2663420934966951) ,
+ rgb (0.21482843531473683, 0.06594038561377849, 0.26191675992376573) ,
+ rgb (0.21237411048541005, 0.06608502466175845, 0.2576516509356954) ,
+ rgb (0.21001214221188125, 0.06630857391894718, 0.2535289048041211) ,
+ rgb (0.2077442377448806, 0.06661453200418091, 0.24954644291943817) ,
+ rgb (0.20558051999470117, 0.06699046239786874, 0.24572497420147632) ,
+ rgb (0.20352007949514977, 0.06744417961242422, 0.24205576625191821) ,
+ rgb (0.2015613376412984, 0.06798327102620025, 0.23852974228695395) ,
+ rgb (0.19971571438603364, 0.06859271055370472, 0.23517094067076993) ,
+ rgb (0.19794834061899208, 0.06931406607166066, 0.23194647381302336) ,
+ rgb (0.1960826032659409, 0.07032122724242362, 0.22874673279569585) ,
+ rgb (0.19410351363791453, 0.07160830485689157, 0.22558727307410353) ,
+ rgb (0.19199449184606268, 0.0731828306492733, 0.22243385243433622) ,
+ rgb (0.18975853639094634, 0.07501986186214377, 0.2193005075652994) ,
+ rgb (0.18739228342697645, 0.07710209689958833, 0.21618875376309582) ,
+ rgb (0.18488035509396164, 0.07942573027972388, 0.21307651648984993) ,
+ rgb (0.18774482037046955, 0.07725158846803931, 0.21387448578597812) ,
+ rgb (0.19049578401722037, 0.07531127841678764, 0.2146562337112265) ,
+ rgb (0.1931548636579131, 0.07360681904011795, 0.21542362939081539) ,
+ rgb (0.19571853588267552, 0.07215778103960274, 0.21617499187076789) ,
+ rgb (0.19819343656336558, 0.07097462525273879, 0.21690975060032436) ,
+ rgb (0.20058760685133747, 0.07006457614998421, 0.21762721310371608) ,
+ rgb (0.20290365333558247, 0.06943524858045896, 0.21833167885096033) ,
+ rgb (0.20531725273301316, 0.06891959226639757, 0.21911516689288835) ,
+ rgb (0.20785704662965598, 0.06848439879702528, 0.22000133917653536) ,
+ rgb (0.21052882914958676, 0.06812195249816172, 0.22098759107715404) ,
+ rgb (0.2133313859647627, 0.06783014842602667, 0.2220704321302429) ,
+ rgb (0.21625279838647882, 0.06761633027051639, 0.22324568672294431) ,
+ rgb (0.21930503925136402, 0.06746578636294004, 0.22451023616807558) ,
+ rgb (0.22247308588973624, 0.06738821405309284, 0.22585960379408354) ,
+ rgb (0.2257539681670791, 0.06738213230014747, 0.22728984778098055) ,
+ rgb (0.2291562027859284, 0.06743473087115257, 0.22879681433956656) ,
+ rgb (0.23266299920501882, 0.06755710438847978, 0.23037617493752832) ,
+ rgb (0.23627495835774248, 0.06774359820987802, 0.23202360805926608) ,
+ rgb (0.23999586188690308, 0.06798502996477995, 0.23373434258507808) ,
+ rgb (0.2438114972024792, 0.06828985152901187, 0.23550427698321885) ,
+ rgb (0.247720929905011, 0.06865333790948652, 0.2373288009471749) ,
+ rgb (0.25172899728289466, 0.0690646308260355, 0.23920260612763083) ,
+ rgb (0.2558213554748177, 0.06953231029187984, 0.24112190491594204) ,
+ rgb (0.25999463887892144, 0.07005385560386188, 0.24308218808684579) ,
+ rgb (0.2642551220706094, 0.07061659562299544, 0.24507758869355967) ,
+ rgb (0.2685909594817286, 0.07122671627792246, 0.24710443563450618) ,
+ rgb (0.272997015188973, 0.07188355544616351, 0.2491584709323293) ,
+ rgb (0.277471508091428, 0.07258296989925478, 0.2512349399594277) ,
+ rgb (0.2820174629736694, 0.07331569321404097, 0.25332800295084507) ,
+ rgb (0.28662309235899847, 0.07408846082680887, 0.2554347867371703) ,
+ rgb (0.29128515387578635, 0.0748990498474667, 0.25755101595750435) ,
+ rgb (0.2960004726065818, 0.07574533600095842, 0.25967245030364566) ,
+ rgb (0.3007727681291869, 0.07661782433616476, 0.2617929409781967) ,
+ rgb (0.30559226007249934, 0.07752196310753731, 0.2639100669211966) ,
+ rgb (0.31045520848595526, 0.07845687167618218, 0.2660200572779356) ,
+ rgb (0.3153587000920581, 0.07942099731524319, 0.2681190407694196) ,
+ rgb (0.3202998655799406, 0.08041299473755484, 0.2702032289303951) ,
+ rgb (0.3252788886040126, 0.08142839007654609, 0.27226772884656186) ,
+ rgb (0.3302917447118144, 0.08246763389003825, 0.27430929404579435) ,
+ rgb (0.3353335322445545, 0.08353243411900396, 0.2763253435679004) ,
+ rgb (0.34040164359597463, 0.08462223619170267, 0.27831254595259397) ,
+ rgb (0.345493557138718, 0.08573665496512634, 0.28026769921081435) ,
+ rgb (0.3506067824603248, 0.08687555176033529, 0.28218770540182386) ,
+ rgb (0.35573889947341125, 0.08803897435024335, 0.2840695897279818) ,
+ rgb (0.36088752387578377, 0.0892271943627452, 0.28591050458531014) ,
+ rgb (0.36605031412464006, 0.0904406854276979, 0.2877077458811747) ,
+ rgb (0.3712250843130934, 0.09167999748026273, 0.2894586539763317) ,
+ rgb (0.3764103053221462, 0.09294519809377791, 0.2911602415731392) ,
+ rgb (0.38160247377467543, 0.09423873126371218, 0.2928110750626949) ,
+ rgb (0.3867993907954417, 0.09556181960083443, 0.29440901248173756) ,
+ rgb (0.39199887556812907, 0.09691583650296684, 0.2959521200550908) ,
+ rgb (0.39719876876325577, 0.09830232096827862, 0.2974385647628578) ,
+ rgb (0.40239692379737496, 0.09972293031495055, 0.2988667436973397) ,
+ rgb (0.4075912039268871, 0.10117945586419633, 0.300235195077286) ,
+ rgb (0.41277985630360303, 0.1026734006932461, 0.3015422643746897) ,
+ rgb (0.41796105205173684, 0.10420644885760968, 0.3027865203963184) ,
+ rgb (0.42313214269556043, 0.10578120994917611, 0.3039675809469457) ,
+ rgb (0.4282910131578975, 0.1073997763055258, 0.30508479060294547) ,
+ rgb (0.4334355841041439, 0.1090642347484701, 0.3061376792828915) ,
+ rgb (0.4385637818793154, 0.11077667828375456, 0.30712600062348083) ,
+ rgb (0.44367358645071275, 0.11253912421257944, 0.3080497309546545) ,
+ rgb (0.4487629917317482, 0.1143535557462255, 0.30890905921943196) ,
+ rgb (0.4538300508699989, 0.11622183788331528, 0.3097044124984492) ,
+ rgb (0.45887288947308297, 0.11814571137706886, 0.3104363697903881) ,
+ rgb (0.46389102840284874, 0.12012561256850712, 0.31110343446582983) ,
+ rgb (0.46888111384598413, 0.12216445576414045, 0.31170911458932665) ,
+ rgb (0.473841437035254, 0.12426354237989065, 0.31225470169927194) ,
+ rgb (0.47877034239726296, 0.12642401401409453, 0.3127417273582196) ,
+ rgb (0.48366628618847957, 0.1286467902201389, 0.31317188565991266) ,
+ rgb (0.48852847371852987, 0.13093210934893723, 0.31354553695453014) ,
+ rgb (0.49335504375145617, 0.13328091630401023, 0.31386561956734976) ,
+ rgb (0.4981443546207415, 0.13569380302451714, 0.314135190862664) ,
+ rgb (0.5028952497497061, 0.13817086581280427, 0.3143566215383367) ,
+ rgb (0.5076068118105369, 0.14071192654913128, 0.3145320012008257) ,
+ rgb (0.5122783510532176, 0.14331656120063752, 0.3146630922831542) ,
+ rgb (0.5169084880054446, 0.14598463068714407, 0.3147540759228004) ,
+ rgb (0.5214965286322996, 0.14871544765633712, 0.3148076795453443) ,
+ rgb (0.5260418962547748, 0.15150818660835483, 0.31482653406646727) ,
+ rgb (0.5305442048985645, 0.15436183633886777, 0.3148129978918713) ,
+ rgb (0.5350027976174474, 0.15727540775107324, 0.3147708520739653) ,
+ rgb (0.5394173664919906, 0.16024769309971934, 0.31470295028655965) ,
+ rgb (0.5437877131360856, 0.16327738551419116, 0.31461204226295625) ,
+ rgb (0.5481137003346762, 0.1663630904279047, 0.3145010299091471) ,
+ rgb (0.5523952157271191, 0.16950338809328983, 0.3143729155461537) ,
+ rgb (0.5566322903496934, 0.17269677158182117, 0.31423043195101424) ,
+ rgb (0.5608249903911717, 0.17594170887918095, 0.31407639883970623) ,
+ rgb (0.564973435290177, 0.17923664950367169, 0.3139136046337036) ,
+ rgb (0.5690778478401143, 0.18258004462335425, 0.3137444095679653) ,
+ rgb (0.5731384575410787, 0.18597036007065024, 0.3135712686852) ,
+ rgb (0.5771555081299204, 0.18940601489760422, 0.3133970433357208) ,
+ rgb (0.5811293276158656, 0.19288548904692518, 0.3132239939418394) ,
+ rgb (0.5850602439646688, 0.19640737049066315, 0.3130540116373273) ,
+ rgb (0.5889486193554471, 0.19997020971775276, 0.31288922211590126) ,
+ rgb (0.5927948053652026, 0.20357251410079796, 0.3127323483930494) ,
+ rgb (0.5965991810912237, 0.207212956082026, 0.3125852303112123) ,
+ rgb (0.6003621301041158, 0.21089030138947745, 0.3124493441041469) ,
+ rgb (0.6040840169673274, 0.21460331490206347, 0.31232652641170694) ,
+ rgb (0.6077652399481865, 0.21835070166659282, 0.312219032918702) ,
+ rgb (0.6114062072731884, 0.22213124697023234, 0.3121288139643524) ,
+ rgb (0.6150072323639137, 0.22594402043981826, 0.3120568068576574) ,
+ rgb (0.6185686525887719, 0.2297879924917992, 0.3120046383872893) ,
+ rgb (0.6220907982108261, 0.2336621873300741, 0.3119738327362739) ,
+ rgb (0.6255741650043496, 0.23756535071152696, 0.3119669831491227) ,
+ rgb (0.6290189201698587, 0.24149689191922535, 0.3119844719564572) ,
+ rgb (0.6324253485421027, 0.24545598775548677, 0.3120276597462445) ,
+ rgb (0.6357937104834237, 0.24944185818822678, 0.3120979395330059) ,
+ rgb (0.6391243387840212, 0.2534536546198314, 0.3121968961206398) ,
+ rgb (0.642417577481186, 0.257490519876798, 0.31232631707560987) ,
+ rgb (0.6456734938264543, 0.2615520316161528, 0.31248673753935263) ,
+ rgb (0.6488923016945825, 0.2656375533620908, 0.3126794181957019) ,
+ rgb (0.652074172902773, 0.269746505252367, 0.3129056060581917) ,
+ rgb (0.6552193260932713, 0.2738782665241015, 0.3131666792687211) ,
+ rgb (0.6583280801134499, 0.2780321095766563, 0.3134643447952643) ,
+ rgb (0.6614003753260178, 0.28220778870555907, 0.3137991292649849) ,
+ rgb (0.6644363246987884, 0.2864048361425618, 0.31417223403606975) ,
+ rgb (0.6674360376636913, 0.29062280081258873, 0.31458483752056837) ,
+ rgb (0.670399595476762, 0.29486126309253047, 0.3150381395687221) ,
+ rgb (0.6733272556481733, 0.29911962764489264, 0.3155337232398221) ,
+ rgb (0.6762189792440975, 0.30339762792450425, 0.3160724937230589) ,
+ rgb (0.6790747402815734, 0.30769497879760166, 0.31665545668946665) ,
+ rgb (0.6818945715094452, 0.31201133280550686, 0.3172838048924495) ,
+ rgb (0.6846785094249453, 0.3163463482122221, 0.31795870784057567) ,
+ rgb (0.6874265643516962, 0.32069970535138104, 0.3186813762227769) ,
+ rgb (0.6901389321505248, 0.32507091815606004, 0.319453323328983) ,
+ rgb (0.6928154484676493, 0.32945984647042675, 0.3202754315314667) ,
+ rgb (0.6954560834689112, 0.33386622163232865, 0.3211488430698579) ,
+ rgb (0.6980608153581771, 0.3382897632604862, 0.3220747885521809) ,
+ rgb (0.700629624772421, 0.34273019305341756, 0.32305449047765694) ,
+ rgb (0.7031624945881415, 0.34718723719598, 0.32408913679491225) ,
+ rgb (0.7056595112261009, 0.3516605297812094, 0.32518014084085567) ,
+ rgb (0.7081205956842048, 0.356149855233803, 0.32632861885644465) ,
+ rgb (0.7105456546582587, 0.36065500290840113, 0.3275357416278876) ,
+ rgb (0.7129346683977347, 0.36517570519856757, 0.3288027427038317) ,
+ rgb (0.7152876061484729, 0.3697117022522345, 0.3301308728723546) ,
+ rgb (0.7176044490813385, 0.3742627271068619, 0.3315213862095893) ,
+ rgb (0.7198852149054985, 0.37882848839337313, 0.332975552002454) ,
+ rgb (0.7221299918421461, 0.3834086450896306, 0.33449469983585844) ,
+ rgb (0.7243386564778159, 0.38800301593162145, 0.3360799596569183) ,
+ rgb (0.7265112290022755, 0.3926113126792577, 0.3377325942005665) ,
+ rgb (0.7286477385671655, 0.39723324476747235, 0.33945384341064017) ,
+ rgb (0.7307482075484517, 0.401868526884681, 0.3412449533046818) ,
+ rgb (0.7328127050626875, 0.4065168468778026, 0.3431071517341082) ,
+ rgb (0.7348413359856494, 0.4111778700451951, 0.3450416947080907) ,
+ rgb (0.7368342217358587, 0.4158512585029011, 0.347049785207584) ,
+ rgb (0.7387914002459927, 0.4205367299231533, 0.34913260148542435) ,
+ rgb (0.7407130161950609, 0.4252339389526239, 0.35129130890802607) ,
+ rgb (0.7425992159973317, 0.42994254036133867, 0.3535270924537459) ,
+ rgb (0.7444501867657067, 0.4346621718461711, 0.35584108091122535) ,
+ rgb (0.7462661578916344, 0.439392450449735, 0.3582343914230064) ,
+ rgb (0.7480473927555956, 0.44413297780351974, 0.36070813602540136) ,
+ rgb (0.7497942054717047, 0.4488833348154881, 0.3632633755836028) ,
+ rgb (0.7515068504589166, 0.45364314496866825, 0.36590112443835765) ,
+ rgb (0.7531856636904657, 0.45841199172949604, 0.3686223664223477) ,
+ rgb (0.7548310506695954, 0.46318942799460555, 0.3714280448394211) ,
+ rgb (0.7564434157714071, 0.4679750143794846, 0.37431909037543515) ,
+ rgb (0.7580232553845584, 0.4727682731566229, 0.3772963553109668) ,
+ rgb (0.7595711110534006, 0.4775687122205708, 0.380360657784311) ,
+ rgb (0.7610876378057071, 0.48237579130289127, 0.3835127572385229) ,
+ rgb (0.7625733355405261, 0.48718906673415824, 0.38675335037837993) ,
+ rgb (0.7640288560928866, 0.49200802533379656, 0.39008308392311997) ,
+ rgb (0.7654549259333051, 0.4968321290972723, 0.3935025400011538) ,
+ rgb (0.7668522895064389, 0.5016608471009063, 0.39701221751773474) ,
+ rgb (0.768221765997353, 0.5064936237128791, 0.40061257089416885) ,
+ rgb (0.7695642334401418, 0.5113298901696085, 0.4043039806968248) ,
+ rgb (0.7708809196230247, 0.516168926434691, 0.40808667584648967) ,
+ rgb (0.7721725722960555, 0.5210102658711383, 0.4119608998712287) ,
+ rgb (0.7734402182988989, 0.5258533209345156, 0.41592679539764366) ,
+ rgb (0.774684947460632, 0.5306974938477673, 0.4199844035696376) ,
+ rgb (0.775907907306857, 0.5355421788246119, 0.42413367909988375) ,
+ rgb (0.7771103295521099, 0.5403867491056124, 0.4283745037125848) ,
+ rgb (0.7782934580763312, 0.545230594884266, 0.432706647838971) ,
+ rgb (0.7794586273150664, 0.5500730841397727, 0.4371297985644476) ,
+ rgb (0.7806077474948377, 0.5549133574489061, 0.4416433242636464) ,
+ rgb (0.7817418047898184, 0.5597509805259486, 0.44624687186865436) ,
+ rgb (0.7828622526444091, 0.5645853311116688, 0.45093985823706345) ,
+ rgb (0.7839706083641448, 0.5694157832671042, 0.4557215474289206) ,
+ rgb (0.7850684501960684, 0.5742417003617839, 0.46059116206904965) ,
+ rgb (0.7861573713233296, 0.5790624629815756, 0.465547782819184) ,
+ rgb (0.7872390410818835, 0.5838774374455721, 0.47059039582133383) ,
+ rgb (0.7883151404562396, 0.5886860017356244, 0.4757179187907608) ,
+ rgb (0.7893873776625194, 0.5934875421745599, 0.48092913815357724) ,
+ rgb (0.7904577684772788, 0.5982813427706246, 0.48622257801969754) ,
+ rgb (0.7915283284347561, 0.603066705931472, 0.49159667021646397) ,
+ rgb (0.7926003430423745, 0.6078432208703702, 0.4970502062153201) ,
+ rgb (0.7936755969866496, 0.6126102933407219, 0.5025816129126943) ,
+ rgb (0.7947558597265404, 0.617367344002207, 0.5081892121310299) ,
+ rgb (0.7958429237958377, 0.6221137880845115, 0.5138712409190979) ,
+ rgb (0.7969385471995161, 0.626849056792967, 0.5196258425240281) ,
+ rgb (0.7980444781513664, 0.6315725822508955, 0.5254510814483478) ,
+ rgb (0.7991624518501963, 0.6362837937202919, 0.5313449594256143) ,
+ rgb (0.8002941538975398, 0.6409821330674986, 0.5373053518514104) ,
+ rgb (0.8014412429256005, 0.6456670345921877, 0.5433300863249918) ,
+ rgb (0.8026053114611295, 0.6503379374810385, 0.5494169158460365) ,
+ rgb (0.8037879253107763, 0.6549942654947263, 0.5555635086708381) ,
+ rgb (0.804990547908103, 0.6596354502756416, 0.5617674511054698) ,
+ rgb (0.8062146052692706, 0.6642608958528229, 0.5680262917864979) ,
+ rgb (0.8074614045096935, 0.6688700095398864, 0.5743374637345958) ,
+ rgb (0.8087321917008969, 0.6734621670219452, 0.5806983480557674) ,
+ rgb (0.8100280946652069, 0.6780367267397182, 0.5871062690808275) ,
+ rgb (0.8113501401176333, 0.6825930154624339, 0.5935584890905076) ,
+ rgb (0.8126992203988149, 0.6871303371461888, 0.600052148204351) ,
+ rgb (0.8140761104699334, 0.6916479479148213, 0.6065843782630862) ,
+ rgb (0.8154814662727948, 0.6961450550830809, 0.6131522120932265) ,
+ rgb (0.8169157577505589, 0.7006208301478398, 0.6197526063725792) ,
+ rgb (0.8183793116449822, 0.705074381896351, 0.626382454789333) ,
+ rgb (0.8198723065045529, 0.7095047497878748, 0.6330385704006711) ,
+ rgb (0.8213947205565636, 0.7139109141951604, 0.6397176669767276) ,
+ rgb (0.8229463511042843, 0.7182917733129006, 0.6464164243818421) ,
+ rgb (0.8245268129450285, 0.7226461431208888, 0.653131379154226) ,
+ rgb (0.8261354971058026, 0.7269727551823826, 0.659859001562165) ,
+ rgb (0.8277716072353446, 0.7312702332407809, 0.6665957020468297) ,
+ rgb (0.8294340781648147, 0.7355371221572935, 0.6733377200930191) ,
+ rgb (0.8311216352909631, 0.7397718464763862, 0.6800812520363146) ,
+ rgb (0.8328327718577798, 0.7439727181745988, 0.6868223587464855) ,
+ rgb (0.8345656905566583, 0.7481379479992134, 0.6935569764986385) ,
+ rgb (0.8363189884473793, 0.7522654895287526, 0.7002799902886496) ,
+ rgb (0.8380912347613196, 0.7563531486080863, 0.7069856139021298) ,
+ rgb (0.8398783988412087, 0.7603990719977968, 0.7136714781112923) ,
+ rgb (0.8416775076684515, 0.7644010120098295, 0.7203329938728462) ,
+ rgb (0.843485292229337, 0.7683566039987018, 0.7269653699897204) ,
+ rgb (0.8452981073195511, 0.7722633860104472, 0.7335636824054149) ,
+ rgb (0.847111955079651, 0.7761188023604716, 0.7401227576280706) ,
+ rgb (0.8489224556311764, 0.7799202140765015, 0.7466371929366437) ,
+ rgb (0.8507269702317879, 0.7836645734238389, 0.7530974636118285) ,
+ rgb (0.8525190720770844, 0.7873493613354844, 0.7594994148789691) ,
+ rgb (0.8542921961147046, 0.7909719677709199, 0.765838014779141) ,
+ rgb (0.856040223147254, 0.7945296360155061, 0.7721061003767414) ,
+ rgb (0.857756629435049, 0.7980196314271393, 0.778295716672475) ,
+ rgb (0.8594346370300241, 0.8014392309950078, 0.7843978875138392) ,
+ rgb (0.8610711702756552, 0.8047851790981223, 0.7903952966373629) ,
+ rgb (0.8626560105112757, 0.8080552380426153, 0.796282666437655) ,
+ rgb (0.8641834372394103, 0.8112464422465354, 0.8020461269686395) ,
+ rgb (0.8656493432560532, 0.8143554406751491, 0.8076697232416455) ,
+ rgb (0.867053149070485, 0.8173780404191124, 0.813134196269114) ,
+ rgb (0.8683995469581863, 0.8203087551218152, 0.8184163896312899) ,
+ rgb (0.8696913150261381, 0.8231415885956916, 0.8235047668317317) ,
+ rgb (0.8709384671729751, 0.8258685788943851, 0.8283849726114961) ,
+ rgb (0.8721533197845432, 0.8284805282370967, 0.8330486712880828) ,
+ rgb (0.8733517136091627, 0.8309671525127262, 0.8374885100119709) ,
+ rgb (0.8745379332026019, 0.8333197294864546, 0.8417192535806901) ,
+ rgb (0.875714587099614, 0.8355302318472394, 0.8457553751902708) ,
+ rgb (0.8768784845161469, 0.8375923807118654, 0.8496137354915025) ,
+ rgb (0.8780229843664901, 0.8395016561854007, 0.8533064535245892) ,
+ rgb (0.8791324424079277, 0.8412555488447591, 0.8568557229103964) ,
+ rgb (0.8801929331569581, 0.8428522482477862, 0.8602739992715663) ,
+ rgb (0.8811916987134195, 0.8442906671771735, 0.8635659516866988) ,
+ rgb (0.8821154248940161, 0.8455700725455935, 0.8667376504623333) ,
+ rgb (0.8829516859544853, 0.8466897027569927, 0.8697961704819097) ,
+ rgb (0.8836912714589804, 0.8476489176151927, 0.8727414710144156) ,
+ rgb (0.8843271305411354, 0.8484474157205542, 0.8755678522824297) ,
+ rgb (0.8848513815990857, 0.849084264228938, 0.8782823528537247) ,
+ rgb (0.8852589797263047, 0.8495589281098921, 0.8808841479402484) ,
+ rgb (0.8855471481195238, 0.8498717428363158, 0.8833620612117095) ,
+ rgb (0.8857115512284565, 0.8500218611585632, 0.8857253899008712)
+ });
list_data twilight_shifted = list_data(new pen[] {
- rgb (0.18739228342697645, 0.07710209689958833, 0.21618875376309582) ,
- rgb (0.18975853639094634, 0.07501986186214377, 0.2193005075652994) ,
- rgb (0.19199449184606268, 0.0731828306492733, 0.22243385243433622) ,
- rgb (0.19410351363791453, 0.07160830485689157, 0.22558727307410353) ,
- rgb (0.1960826032659409, 0.07032122724242362, 0.22874673279569585) ,
- rgb (0.19794834061899208, 0.06931406607166066, 0.23194647381302336) ,
- rgb (0.19971571438603364, 0.06859271055370472, 0.23517094067076993) ,
- rgb (0.2015613376412984, 0.06798327102620025, 0.23852974228695395) ,
- rgb (0.20352007949514977, 0.06744417961242422, 0.24205576625191821) ,
- rgb (0.20558051999470117, 0.06699046239786874, 0.24572497420147632) ,
- rgb (0.2077442377448806, 0.06661453200418091, 0.24954644291943817) ,
- rgb (0.21001214221188125, 0.06630857391894718, 0.2535289048041211) ,
- rgb (0.21237411048541005, 0.06608502466175845, 0.2576516509356954) ,
- rgb (0.21482843531473683, 0.06594038561377849, 0.26191675992376573) ,
- rgb (0.21737845072382705, 0.06585966123356204, 0.2663420934966951) ,
- rgb (0.22001251100779617, 0.0658579189189076, 0.2709027999432586) ,
- rgb (0.22272706739121817, 0.06593379067565194, 0.275597146520537) ,
- rgb (0.22552164337737857, 0.0660781731193956, 0.28043398847505197) ,
- rgb (0.2283917709422868, 0.06628997924139618, 0.28541074411068496) ,
- rgb (0.23132955273021344, 0.06657618693909059, 0.29051361067988485) ,
- rgb (0.23433055727563878, 0.0669355996616394, 0.295740099298676) ,
- rgb (0.23739062429054825, 0.06736588805055552, 0.3010892218406587) ,
- rgb (0.2405081333229594, 0.0678571038148556, 0.3065705449367832) ,
- rgb (0.24367372557466271, 0.06841985515092269, 0.3121652405088837) ,
- rgb (0.24688226237959, 0.06905363944920445, 0.31786993834254956) ,
- rgb (0.2501284530619938, 0.06975820642910699, 0.32368100685760637) ,
- rgb (0.25340685873736807, 0.07053358292685183, 0.3295945757321303) ,
- rgb (0.256711916510839, 0.07138010624208224, 0.3356064898460009) ,
- rgb (0.26003895187439957, 0.0722947810433622, 0.3417175669546984) ,
- rgb (0.26338121807151404, 0.07328165793989708, 0.34791888996380105) ,
- rgb (0.26673233211995284, 0.0743440180285462, 0.3542027606624096) ,
- rgb (0.2700863774911405, 0.07548367558427554, 0.36056376228111864) ,
- rgb (0.2734373934245081, 0.07670280023749607, 0.36699616136347685) ,
- rgb (0.2767793961581559, 0.07800394103378822, 0.37349382846504675) ,
- rgb (0.2801063857697547, 0.07938999480226153, 0.38005028528138707) ,
- rgb (0.28341239797185225, 0.08086415336549937, 0.38665868550105914) ,
- rgb (0.28669151388283165, 0.08242987384848069, 0.39331182532243375) ,
- rgb (0.2899379244517661, 0.08409078829085731, 0.40000214725256295) ,
- rgb (0.2931459309698525, 0.08585065688962071, 0.40672178082365834) ,
- rgb (0.2963100038890529, 0.08771325096046395, 0.41346259134143476) ,
- rgb (0.2994248396021477, 0.08968225371675004, 0.42021619665853854) ,
- rgb (0.3024853636457425, 0.0917611873973036, 0.42697404043749887) ,
- rgb (0.30548675819945936, 0.09395276484082374, 0.4337284999936111) ,
- rgb (0.30842444457210105, 0.09625938534057774, 0.44047194882050544) ,
- rgb (0.31129434479712365, 0.0986847719340522, 0.4471931371516162) ,
- rgb (0.3140927841475553, 0.10123077676403242, 0.45388335612058467) ,
- rgb (0.316816480890235, 0.10389861387653518, 0.46053414662739794) ,
- rgb (0.31946262395497965, 0.1066887988239266, 0.46713728801395243) ,
- rgb (0.3220288227606932, 0.10960114111258401, 0.4736849472572688) ,
- rgb (0.32451307931207785, 0.11263459791730848, 0.48017007211645196) ,
- rgb (0.3269137124539796, 0.1157873496841953, 0.4865864649569746) ,
- rgb (0.3292300520323141, 0.11905764321981127, 0.49292595612342666) ,
- rgb (0.33146154891145124, 0.12244245263391232, 0.4991827458843107) ,
- rgb (0.33360804901486, 0.1259381830100592, 0.505351647966549) ,
- rgb (0.33566978565015315, 0.12954074251271822, 0.5114280721516895) ,
- rgb (0.3376473209067111, 0.13324562282438077, 0.5174080757397947) ,
- rgb (0.33954168752669694, 0.1370480189671817, 0.5232879753508524) ,
- rgb (0.34135411074506483, 0.1409427920655632, 0.5290650094033675) ,
- rgb (0.34308600291572294, 0.14492465359918028, 0.534737042820671) ,
- rgb (0.34473901574536375, 0.1489882058982641, 0.5403024592040654) ,
- rgb (0.3463150717579309, 0.15312802296627787, 0.5457599924248665) ,
- rgb (0.3478165323877778, 0.1573386351115298, 0.5511085345270326) ,
- rgb (0.34924513554955644, 0.16161477763045118, 0.5563483747416378) ,
- rgb (0.3506030444193101, 0.1659512998472086, 0.5614796470399323) ,
- rgb (0.3518924860887379, 0.17034320478524959, 0.5665028491121665) ,
- rgb (0.35311574421123737, 0.17478570377561287, 0.5714187152355529) ,
- rgb (0.3542753496066376, 0.17927413271618647, 0.5762280966066872) ,
- rgb (0.3553741530690672, 0.18380392577704466, 0.580931914318328) ,
- rgb (0.35641381143126327, 0.18837119869242164, 0.5855320765920552) ,
- rgb (0.35739663292915563, 0.1929720819784246, 0.5900301125106313) ,
- rgb (0.3583248996661781, 0.197602942459778, 0.5944276851750107) ,
- rgb (0.35920088560930186, 0.20226037920758122, 0.5987265295935138) ,
- rgb (0.36002681809096376, 0.20694122817889948, 0.6029284543191687) ,
- rgb (0.36080493826624654, 0.21164251793458128, 0.6070353217206471) ,
- rgb (0.36153829010998356, 0.21636111429594002, 0.6110488067964093) ,
- rgb (0.36222809558295926, 0.22109488427338303, 0.6149711234609613) ,
- rgb (0.3628764356004103, 0.2258414929328703, 0.6188041741082302) ,
- rgb (0.36348537610385145, 0.2305987621839642, 0.6225498862239288) ,
- rgb (0.3640569302208851, 0.23536470386204195, 0.6262101345195302) ,
- rgb (0.3645930889012501, 0.24013747024823828, 0.629786801550261) ,
- rgb (0.3650957984588681, 0.24491536803550484, 0.6332817352005559) ,
- rgb (0.3655669837353898, 0.24969683475296395, 0.6366967518748858) ,
- rgb (0.36600853966739794, 0.25448043878086224, 0.6400336180336859) ,
- rgb (0.3664224325155063, 0.25926481158628106, 0.6432940914076554) ,
- rgb (0.3668108554010799, 0.26404857724525643, 0.6464799165290824) ,
- rgb (0.36717513650699446, 0.26883085667326956, 0.6495927229789225) ,
- rgb (0.36751707094367697, 0.2736106331709098, 0.6526341171161864) ,
- rgb (0.3678384369653108, 0.2783869718129776, 0.655605668384537) ,
- rgb (0.3681410147989972, 0.2831590122118299, 0.6585088880697231) ,
- rgb (0.36842655638020444, 0.2879259643777846, 0.661345269109446) ,
- rgb (0.3686968223189527, 0.292687098561501, 0.6641162529823691) ,
- rgb (0.3689535530659678, 0.29744175492366276, 0.6668232208982426) ,
- rgb (0.36919847837592484, 0.3021893217650707, 0.6694675433161452) ,
- rgb (0.3694333459127623, 0.3069292355186234, 0.6720505284912062) ,
- rgb (0.36965987626565955, 0.3116609876295197, 0.6745734474341955) ,
- rgb (0.3698798032902536, 0.31638410101153364, 0.6770375543809057) ,
- rgb (0.37009487130772695, 0.3210981375964933, 0.6794440539905685) ,
- rgb (0.37030682071842685, 0.32580269697872455, 0.6817941168448668) ,
- rgb (0.37051738634484427, 0.3304974124430785, 0.6840888878885721) ,
- rgb (0.3707283327942267, 0.33518193808489577, 0.6863294816960677) ,
- rgb (0.3709415155133733, 0.33985591488818123, 0.6885170337950512) ,
- rgb (0.37115856636209105, 0.3445191141023017, 0.6906525358646499) ,
- rgb (0.37138124223736607, 0.34917126878479027, 0.6927370347192883) ,
- rgb (0.3716113323440048, 0.3538121372967869, 0.6947714991938089) ,
- rgb (0.3718506155898596, 0.3584414828587522, 0.6967569581025654) ,
- rgb (0.3721008970244382, 0.3630590973698238, 0.6986943461507372) ,
- rgb (0.37236397858465387, 0.36766477862108266, 0.7005846349652077) ,
- rgb (0.37264166757849604, 0.3722583500483685, 0.7024287314570723) ,
- rgb (0.3729357864666503, 0.3768396383521984, 0.7042275578058994) ,
- rgb (0.37324816143326384, 0.38140848555753937, 0.7059820097480604) ,
- rgb (0.3735806215098284, 0.3859647438605754, 0.7076929760731058) ,
- rgb (0.3739349933047578, 0.3905082752937583, 0.7093613429347845) ,
- rgb (0.3743131319931234, 0.3950389482828331, 0.7109879652237746) ,
- rgb (0.3747168601930223, 0.3995566498711684, 0.7125736851650046) ,
- rgb (0.37514802505380473, 0.4040612609993941, 0.7141193695725726) ,
- rgb (0.375608469194424, 0.40855267638072096, 0.7156258509158755) ,
- rgb (0.37610001286385814, 0.4130307995247706, 0.7170939691992023) ,
- rgb (0.37662448930806297, 0.41749553747893614, 0.7185245473617611) ,
- rgb (0.3771837184425123, 0.4219468022345483, 0.7199184152447577) ,
- rgb (0.3777794975351373, 0.4263845142616835, 0.7212763999353023) ,
- rgb (0.378413635091359, 0.43080859411413064, 0.7225993199306104) ,
- rgb (0.3790878928311076, 0.43521897612544935, 0.7238879869132313) ,
- rgb (0.3798040374484875, 0.4396155882122263, 0.7251432377876109) ,
- rgb (0.3805638069656562, 0.4439983720863372, 0.7263658704513531) ,
- rgb (0.3813688793045416, 0.4483672766927786, 0.7275567131714135) ,
- rgb (0.38222094988570376, 0.45272225034283325, 0.7287165614400378) ,
- rgb (0.3831216808440275, 0.457063235814072, 0.7298462679135326) ,
- rgb (0.38407269378943537, 0.46139018782416635, 0.7309466543290268) ,
- rgb (0.3850755679365139, 0.46570306719930193, 0.732018540336905) ,
- rgb (0.386131841788921, 0.4700018340988123, 0.7330627749243106) ,
- rgb (0.3872430145933025, 0.4742864593363539, 0.7340801678785439) ,
- rgb (0.3884105330084243, 0.47855691131792805, 0.7350715764115726) ,
- rgb (0.38963580160340855, 0.48281316715123496, 0.7360378254693274) ,
- rgb (0.390920175719949, 0.4870552025122304, 0.7369797713388125) ,
- rgb (0.39226494876209317, 0.4912830033289926, 0.7378982478447508) ,
- rgb (0.39367135736822567, 0.4954965577745118, 0.738794102296364) ,
- rgb (0.3951405880820763, 0.4996958532637776, 0.7396682021171571) ,
- rgb (0.3966737490566561, 0.5038808905384797, 0.7405213858051674) ,
- rgb (0.3982719152586337, 0.5080516653927614, 0.7413545091809972) ,
- rgb (0.39993606933454834, 0.5122081814321852, 0.7421684457131799) ,
- rgb (0.40166714010896104, 0.5163504496968876, 0.7429640345324835) ,
- rgb (0.40346600333905397, 0.5204784765384003, 0.7437421522356709) ,
- rgb (0.4053334378930318, 0.5245922817498312, 0.7445036583670813) ,
- rgb (0.4072701869421907, 0.5286918801105741, 0.7452494263758127) ,
- rgb (0.4092768899914751, 0.5327773017713032, 0.7459803063570782) ,
- rgb (0.4113541469730457, 0.5368485776500593, 0.7466971285506578) ,
- rgb (0.4135024574331473, 0.5409057477109848, 0.7474007329754309) ,
- rgb (0.4157223260454232, 0.544948827153504, 0.7480920445900052) ,
- rgb (0.4180141407923363, 0.5489778542188889, 0.7487719316700112) ,
- rgb (0.42037822361396326, 0.5529928715810817, 0.7494412559451894) ,
- rgb (0.4228148567577266, 0.5569939212699658, 0.7501008698822764) ,
- rgb (0.42532423665011354, 0.560981049599503, 0.7507516498900512) ,
- rgb (0.42790652284925834, 0.5649543060909209, 0.7513944352191484) ,
- rgb (0.4305617907305757, 0.5689137457245718, 0.752030080993127) ,
- rgb (0.43329008867358393, 0.5728594162560667, 0.7526594653256667) ,
- rgb (0.4360913895835637, 0.5767913799818608, 0.7532834105961016) ,
- rgb (0.43896563958048396, 0.5807096924109849, 0.7539027620828594) ,
- rgb (0.441912717666964, 0.5846144110017557, 0.7545183888441067) ,
- rgb (0.4449324685421538, 0.5885055998308617, 0.7551311041857901) ,
- rgb (0.4480247093358917, 0.5923833145214658, 0.7557417647410792) ,
- rgb (0.45118918687617743, 0.5962476205135354, 0.7563512064324664) ,
- rgb (0.45442563977552913, 0.6000985950385866, 0.7569601366060649) ,
- rgb (0.45773377230160567, 0.6039363004658646, 0.7575693690185916) ,
- rgb (0.4611132664702388, 0.607760777169989, 0.7581798643680714) ,
- rgb (0.4645637671630393, 0.6115720882286415, 0.7587924262302581) ,
- rgb (0.46808490970531597, 0.6153702869579029, 0.7594078989109274) ,
- rgb (0.4716762951887709, 0.6191554324288464, 0.7600270922788305) ,
- rgb (0.47533752394906287, 0.6229275728383581, 0.7606508557181775) ,
- rgb (0.47906816236197386, 0.6266867625186013, 0.7612800037566242) ,
- rgb (0.4828677867260272, 0.6304330455306234, 0.761915371498953) ,
- rgb (0.4867359599430568, 0.6341664625110051, 0.7625578008592404) ,
- rgb (0.4906722493856122, 0.6378870485884708, 0.7632081276316384) ,
- rgb (0.4946761847863938, 0.6415948411950443, 0.7638671900213091) ,
- rgb (0.4987473366135607, 0.6452898684900934, 0.7645357873418008) ,
- rgb (0.5028853540415561, 0.6489721673409526, 0.7652144671817491) ,
- rgb (0.5070896957645166, 0.6526417240314645, 0.7659044566083585) ,
- rgb (0.5113599254160193, 0.6562985398183186, 0.7666066378064533) ,
- rgb (0.5156955988596057, 0.65994260812898, 0.7673219148959617) ,
- rgb (0.5200962739223556, 0.6635739143403039, 0.768051194033441) ,
- rgb (0.5245615147059358, 0.6671924299614223, 0.7687954171423095) ,
- rgb (0.529090861832473, 0.6707981230280622, 0.7695555229231313) ,
- rgb (0.533683891477284, 0.6743909370521273, 0.7703325054879735) ,
- rgb (0.5383401557517628, 0.677970811290954, 0.7711273443905772) ,
- rgb (0.5430593242401823, 0.6815376725306588, 0.7719407969783508) ,
- rgb (0.5478409815301863, 0.6850914221850988, 0.7727738647344087) ,
- rgb (0.5526845058934713, 0.6886319451516638, 0.7736279426902245) ,
- rgb (0.5575894041960517, 0.6921591145825405, 0.7745041337932782) ,
- rgb (0.5625551535721934, 0.6956727838162965, 0.7754035914230984) ,
- rgb (0.5675811785386197, 0.6991727930264627, 0.776327485342753) ,
- rgb (0.5726668948158774, 0.7026589535425779, 0.7772770268091199) ,
- rgb (0.5778116438998202, 0.7061310615715398, 0.7782534512102552) ,
- rgb (0.5830148703693241, 0.7095888767699747, 0.7792578182047659) ,
- rgb (0.588275797805555, 0.7130321464645814, 0.7802914140563652) ,
- rgb (0.5935933569683722, 0.7164606049658685, 0.781355882376401) ,
- rgb (0.5989665814482068, 0.7198739489224673, 0.7824525989934664) ,
- rgb (0.6043943420027486, 0.7232718614323369, 0.7835829559353559) ,
- rgb (0.6098754317609306, 0.7266539875975829, 0.7847483573269471) ,
- rgb (0.6154084641177048, 0.7300199523273969, 0.7859502270675048) ,
- rgb (0.6209919306481755, 0.733369347989232, 0.7871899462469658) ,
- rgb (0.6266240202260459, 0.7367017540369944, 0.7884690131633456) ,
- rgb (0.6323027138710603, 0.740016721601314, 0.7897889276264043) ,
- rgb (0.6380258682854598, 0.7433137671403319, 0.7911510045957317) ,
- rgb (0.6437910831099849, 0.7465923800833657, 0.7925565320130605) ,
- rgb (0.6495957300425348, 0.7498520122194177, 0.7940067402149911) ,
- rgb (0.6554369232645472, 0.7530920875676843, 0.7955027112903105) ,
- rgb (0.6613112930078745, 0.7563120270871903, 0.7970456043491897) ,
- rgb (0.6672147980375281, 0.7595112803730375, 0.7986367465453776) ,
- rgb (0.6731442255942621, 0.7626890873389048, 0.8002762854580953) ,
- rgb (0.6790955449988215, 0.765844721313959, 0.8019646617300199) ,
- rgb (0.6850644615439593, 0.7689774029354699, 0.8037020626717691) ,
- rgb (0.691046410093091, 0.7720862946067809, 0.8054884169067907) ,
- rgb (0.6970365443886174, 0.7751705000806606, 0.8073233538006345) ,
- rgb (0.7030297722540817, 0.7782290497335813, 0.8092061884805697) ,
- rgb (0.709020781345393, 0.7812608871607091, 0.8111359185511793) ,
- rgb (0.7150040307625213, 0.7842648709158119, 0.8131111655994991) ,
- rgb (0.7209728066553678, 0.7872399592345264, 0.8151307392087926) ,
- rgb (0.726921775128297, 0.7901846863592763, 0.8171921746672638) ,
- rgb (0.7328454364552346, 0.7930974646884407, 0.8192926338423038) ,
- rgb (0.7387377170049494, 0.7959766573503101, 0.8214292278043301) ,
- rgb (0.7445924777189017, 0.7988204771958325, 0.8235986758615652) ,
- rgb (0.750403467654067, 0.8016269900896532, 0.8257973785108242) ,
- rgb (0.7561644358438198, 0.8043940873347794, 0.8280213899472) ,
- rgb (0.7618690793798029, 0.8071194938764749, 0.830266486168872) ,
- rgb (0.7675110850441786, 0.8098007598713145, 0.8325281663805967) ,
- rgb (0.7730841659017094, 0.8124352473546601, 0.8348017295057968) ,
- rgb (0.7785789200822759, 0.8150208937874255, 0.8370834463093898) ,
- rgb (0.7839910104276492, 0.8175542640053343, 0.8393674746403673) ,
- rgb (0.7893144556460892, 0.8200321318870201, 0.8416486380471222) ,
- rgb (0.7945430508923111, 0.8224511622630462, 0.8439218478682798) ,
- rgb (0.79967075421268, 0.8248078181208093, 0.8461821002957853) ,
- rgb (0.8046916442981458, 0.8270983878056066, 0.8484244929697402) ,
- rgb (0.8095999819094809, 0.8293189667350546, 0.8506444160105037) ,
- rgb (0.8143898212114309, 0.8314655869419785, 0.8528375906214702) ,
- rgb (0.8190465467793753, 0.8335364929949034, 0.855002062870101) ,
- rgb (0.8235742968025285, 0.8355248776479544, 0.8571319132851495) ,
- rgb (0.8279689431601354, 0.837426007513952, 0.8592239945130679) ,
- rgb (0.8322270571293441, 0.8392349062775448, 0.8612756350042788) ,
- rgb (0.8363403180919118, 0.8409479651895194, 0.8632852800107016) ,
- rgb (0.8403042080595778, 0.8425605950855084, 0.865250882410458) ,
- rgb (0.8441261828674842, 0.8440648271103739, 0.8671697332269007) ,
- rgb (0.8478071070257792, 0.8454546229209523, 0.8690403678369444) ,
- rgb (0.8513371457085719, 0.8467273579611647, 0.8708608165735044) ,
- rgb (0.8547259318925698, 0.8478748812467282, 0.8726282980930582) ,
- rgb (0.8579825924567037, 0.8488893481028184, 0.8743403855344628) ,
- rgb (0.8611024543689985, 0.8497675485700126, 0.8759924292343957) ,
- rgb (0.86408985081464, 0.8505039116750779, 0.8775792578489263) ,
- rgb (0.8669601550533358, 0.8510896085314068, 0.8790976697717334) ,
- rgb (0.8697047485350982, 0.8515240300479789, 0.8805388339000336) ,
- rgb (0.8723313408512408, 0.8518016547808089, 0.8818970435500162) ,
- rgb (0.8748534750857597, 0.8519152612302319, 0.8831692696761383) ,
- rgb (0.8772488085896548, 0.8518702833887027, 0.8843412038131143) ,
- rgb (0.8795410528270573, 0.8516567540749572, 0.8854143767924102) ,
- rgb (0.8817223105928579, 0.8512759407765347, 0.8863805692551482) ,
- rgb (0.8837852019553906, 0.8507294054031063, 0.8872322209694989) ,
- rgb (0.8857501584075443, 0.8500092494306783, 0.8879736506427196) ,
- rgb (0.8857115512284565, 0.8500218611585632, 0.8857253899008712) ,
- rgb (0.8855471481195238, 0.8498717428363158, 0.8833620612117095) ,
- rgb (0.8852589797263047, 0.8495589281098921, 0.8808841479402484) ,
- rgb (0.8848513815990857, 0.849084264228938, 0.8782823528537247) ,
- rgb (0.8843271305411354, 0.8484474157205542, 0.8755678522824297) ,
- rgb (0.8836912714589804, 0.8476489176151927, 0.8727414710144156) ,
- rgb (0.8829516859544853, 0.8466897027569927, 0.8697961704819097) ,
- rgb (0.8821154248940161, 0.8455700725455935, 0.8667376504623333) ,
- rgb (0.8811916987134195, 0.8442906671771735, 0.8635659516866988) ,
- rgb (0.8801929331569581, 0.8428522482477862, 0.8602739992715663) ,
- rgb (0.8791324424079277, 0.8412555488447591, 0.8568557229103964) ,
- rgb (0.8780229843664901, 0.8395016561854007, 0.8533064535245892) ,
- rgb (0.8768784845161469, 0.8375923807118654, 0.8496137354915025) ,
- rgb (0.875714587099614, 0.8355302318472394, 0.8457553751902708) ,
- rgb (0.8745379332026019, 0.8333197294864546, 0.8417192535806901) ,
- rgb (0.8733517136091627, 0.8309671525127262, 0.8374885100119709) ,
- rgb (0.8721533197845432, 0.8284805282370967, 0.8330486712880828) ,
- rgb (0.8709384671729751, 0.8258685788943851, 0.8283849726114961) ,
- rgb (0.8696913150261381, 0.8231415885956916, 0.8235047668317317) ,
- rgb (0.8683995469581863, 0.8203087551218152, 0.8184163896312899) ,
- rgb (0.867053149070485, 0.8173780404191124, 0.813134196269114) ,
- rgb (0.8656493432560532, 0.8143554406751491, 0.8076697232416455) ,
- rgb (0.8641834372394103, 0.8112464422465354, 0.8020461269686395) ,
- rgb (0.8626560105112757, 0.8080552380426153, 0.796282666437655) ,
- rgb (0.8610711702756552, 0.8047851790981223, 0.7903952966373629) ,
- rgb (0.8594346370300241, 0.8014392309950078, 0.7843978875138392) ,
- rgb (0.857756629435049, 0.7980196314271393, 0.778295716672475) ,
- rgb (0.856040223147254, 0.7945296360155061, 0.7721061003767414) ,
- rgb (0.8542921961147046, 0.7909719677709199, 0.765838014779141) ,
- rgb (0.8525190720770844, 0.7873493613354844, 0.7594994148789691) ,
- rgb (0.8507269702317879, 0.7836645734238389, 0.7530974636118285) ,
- rgb (0.8489224556311764, 0.7799202140765015, 0.7466371929366437) ,
- rgb (0.847111955079651, 0.7761188023604716, 0.7401227576280706) ,
- rgb (0.8452981073195511, 0.7722633860104472, 0.7335636824054149) ,
- rgb (0.843485292229337, 0.7683566039987018, 0.7269653699897204) ,
- rgb (0.8416775076684515, 0.7644010120098295, 0.7203329938728462) ,
- rgb (0.8398783988412087, 0.7603990719977968, 0.7136714781112923) ,
- rgb (0.8380912347613196, 0.7563531486080863, 0.7069856139021298) ,
- rgb (0.8363189884473793, 0.7522654895287526, 0.7002799902886496) ,
- rgb (0.8345656905566583, 0.7481379479992134, 0.6935569764986385) ,
- rgb (0.8328327718577798, 0.7439727181745988, 0.6868223587464855) ,
- rgb (0.8311216352909631, 0.7397718464763862, 0.6800812520363146) ,
- rgb (0.8294340781648147, 0.7355371221572935, 0.6733377200930191) ,
- rgb (0.8277716072353446, 0.7312702332407809, 0.6665957020468297) ,
- rgb (0.8261354971058026, 0.7269727551823826, 0.659859001562165) ,
- rgb (0.8245268129450285, 0.7226461431208888, 0.653131379154226) ,
- rgb (0.8229463511042843, 0.7182917733129006, 0.6464164243818421) ,
- rgb (0.8213947205565636, 0.7139109141951604, 0.6397176669767276) ,
- rgb (0.8198723065045529, 0.7095047497878748, 0.6330385704006711) ,
- rgb (0.8183793116449822, 0.705074381896351, 0.626382454789333) ,
- rgb (0.8169157577505589, 0.7006208301478398, 0.6197526063725792) ,
- rgb (0.8154814662727948, 0.6961450550830809, 0.6131522120932265) ,
- rgb (0.8140761104699334, 0.6916479479148213, 0.6065843782630862) ,
- rgb (0.8126992203988149, 0.6871303371461888, 0.600052148204351) ,
- rgb (0.8113501401176333, 0.6825930154624339, 0.5935584890905076) ,
- rgb (0.8100280946652069, 0.6780367267397182, 0.5871062690808275) ,
- rgb (0.8087321917008969, 0.6734621670219452, 0.5806983480557674) ,
- rgb (0.8074614045096935, 0.6688700095398864, 0.5743374637345958) ,
- rgb (0.8062146052692706, 0.6642608958528229, 0.5680262917864979) ,
- rgb (0.804990547908103, 0.6596354502756416, 0.5617674511054698) ,
- rgb (0.8037879253107763, 0.6549942654947263, 0.5555635086708381) ,
- rgb (0.8026053114611295, 0.6503379374810385, 0.5494169158460365) ,
- rgb (0.8014412429256005, 0.6456670345921877, 0.5433300863249918) ,
- rgb (0.8002941538975398, 0.6409821330674986, 0.5373053518514104) ,
- rgb (0.7991624518501963, 0.6362837937202919, 0.5313449594256143) ,
- rgb (0.7980444781513664, 0.6315725822508955, 0.5254510814483478) ,
- rgb (0.7969385471995161, 0.626849056792967, 0.5196258425240281) ,
- rgb (0.7958429237958377, 0.6221137880845115, 0.5138712409190979) ,
- rgb (0.7947558597265404, 0.617367344002207, 0.5081892121310299) ,
- rgb (0.7936755969866496, 0.6126102933407219, 0.5025816129126943) ,
- rgb (0.7926003430423745, 0.6078432208703702, 0.4970502062153201) ,
- rgb (0.7915283284347561, 0.603066705931472, 0.49159667021646397) ,
- rgb (0.7904577684772788, 0.5982813427706246, 0.48622257801969754) ,
- rgb (0.7893873776625194, 0.5934875421745599, 0.48092913815357724) ,
- rgb (0.7883151404562396, 0.5886860017356244, 0.4757179187907608) ,
- rgb (0.7872390410818835, 0.5838774374455721, 0.47059039582133383) ,
- rgb (0.7861573713233296, 0.5790624629815756, 0.465547782819184) ,
- rgb (0.7850684501960684, 0.5742417003617839, 0.46059116206904965) ,
- rgb (0.7839706083641448, 0.5694157832671042, 0.4557215474289206) ,
- rgb (0.7828622526444091, 0.5645853311116688, 0.45093985823706345) ,
- rgb (0.7817418047898184, 0.5597509805259486, 0.44624687186865436) ,
- rgb (0.7806077474948377, 0.5549133574489061, 0.4416433242636464) ,
- rgb (0.7794586273150664, 0.5500730841397727, 0.4371297985644476) ,
- rgb (0.7782934580763312, 0.545230594884266, 0.432706647838971) ,
- rgb (0.7771103295521099, 0.5403867491056124, 0.4283745037125848) ,
- rgb (0.775907907306857, 0.5355421788246119, 0.42413367909988375) ,
- rgb (0.774684947460632, 0.5306974938477673, 0.4199844035696376) ,
- rgb (0.7734402182988989, 0.5258533209345156, 0.41592679539764366) ,
- rgb (0.7721725722960555, 0.5210102658711383, 0.4119608998712287) ,
- rgb (0.7708809196230247, 0.516168926434691, 0.40808667584648967) ,
- rgb (0.7695642334401418, 0.5113298901696085, 0.4043039806968248) ,
- rgb (0.768221765997353, 0.5064936237128791, 0.40061257089416885) ,
- rgb (0.7668522895064389, 0.5016608471009063, 0.39701221751773474) ,
- rgb (0.7654549259333051, 0.4968321290972723, 0.3935025400011538) ,
- rgb (0.7640288560928866, 0.49200802533379656, 0.39008308392311997) ,
- rgb (0.7625733355405261, 0.48718906673415824, 0.38675335037837993) ,
- rgb (0.7610876378057071, 0.48237579130289127, 0.3835127572385229) ,
- rgb (0.7595711110534006, 0.4775687122205708, 0.380360657784311) ,
- rgb (0.7580232553845584, 0.4727682731566229, 0.3772963553109668) ,
- rgb (0.7564434157714071, 0.4679750143794846, 0.37431909037543515) ,
- rgb (0.7548310506695954, 0.46318942799460555, 0.3714280448394211) ,
- rgb (0.7531856636904657, 0.45841199172949604, 0.3686223664223477) ,
- rgb (0.7515068504589166, 0.45364314496866825, 0.36590112443835765) ,
- rgb (0.7497942054717047, 0.4488833348154881, 0.3632633755836028) ,
- rgb (0.7480473927555956, 0.44413297780351974, 0.36070813602540136) ,
- rgb (0.7462661578916344, 0.439392450449735, 0.3582343914230064) ,
- rgb (0.7444501867657067, 0.4346621718461711, 0.35584108091122535) ,
- rgb (0.7425992159973317, 0.42994254036133867, 0.3535270924537459) ,
- rgb (0.7407130161950609, 0.4252339389526239, 0.35129130890802607) ,
- rgb (0.7387914002459927, 0.4205367299231533, 0.34913260148542435) ,
- rgb (0.7368342217358587, 0.4158512585029011, 0.347049785207584) ,
- rgb (0.7348413359856494, 0.4111778700451951, 0.3450416947080907) ,
- rgb (0.7328127050626875, 0.4065168468778026, 0.3431071517341082) ,
- rgb (0.7307482075484517, 0.401868526884681, 0.3412449533046818) ,
- rgb (0.7286477385671655, 0.39723324476747235, 0.33945384341064017) ,
- rgb (0.7265112290022755, 0.3926113126792577, 0.3377325942005665) ,
- rgb (0.7243386564778159, 0.38800301593162145, 0.3360799596569183) ,
- rgb (0.7221299918421461, 0.3834086450896306, 0.33449469983585844) ,
- rgb (0.7198852149054985, 0.37882848839337313, 0.332975552002454) ,
- rgb (0.7176044490813385, 0.3742627271068619, 0.3315213862095893) ,
- rgb (0.7152876061484729, 0.3697117022522345, 0.3301308728723546) ,
- rgb (0.7129346683977347, 0.36517570519856757, 0.3288027427038317) ,
- rgb (0.7105456546582587, 0.36065500290840113, 0.3275357416278876) ,
- rgb (0.7081205956842048, 0.356149855233803, 0.32632861885644465) ,
- rgb (0.7056595112261009, 0.3516605297812094, 0.32518014084085567) ,
- rgb (0.7031624945881415, 0.34718723719598, 0.32408913679491225) ,
- rgb (0.700629624772421, 0.34273019305341756, 0.32305449047765694) ,
- rgb (0.6980608153581771, 0.3382897632604862, 0.3220747885521809) ,
- rgb (0.6954560834689112, 0.33386622163232865, 0.3211488430698579) ,
- rgb (0.6928154484676493, 0.32945984647042675, 0.3202754315314667) ,
- rgb (0.6901389321505248, 0.32507091815606004, 0.319453323328983) ,
- rgb (0.6874265643516962, 0.32069970535138104, 0.3186813762227769) ,
- rgb (0.6846785094249453, 0.3163463482122221, 0.31795870784057567) ,
- rgb (0.6818945715094452, 0.31201133280550686, 0.3172838048924495) ,
- rgb (0.6790747402815734, 0.30769497879760166, 0.31665545668946665) ,
- rgb (0.6762189792440975, 0.30339762792450425, 0.3160724937230589) ,
- rgb (0.6733272556481733, 0.29911962764489264, 0.3155337232398221) ,
- rgb (0.670399595476762, 0.29486126309253047, 0.3150381395687221) ,
- rgb (0.6674360376636913, 0.29062280081258873, 0.31458483752056837) ,
- rgb (0.6644363246987884, 0.2864048361425618, 0.31417223403606975) ,
- rgb (0.6614003753260178, 0.28220778870555907, 0.3137991292649849) ,
- rgb (0.6583280801134499, 0.2780321095766563, 0.3134643447952643) ,
- rgb (0.6552193260932713, 0.2738782665241015, 0.3131666792687211) ,
- rgb (0.652074172902773, 0.269746505252367, 0.3129056060581917) ,
- rgb (0.6488923016945825, 0.2656375533620908, 0.3126794181957019) ,
- rgb (0.6456734938264543, 0.2615520316161528, 0.31248673753935263) ,
- rgb (0.642417577481186, 0.257490519876798, 0.31232631707560987) ,
- rgb (0.6391243387840212, 0.2534536546198314, 0.3121968961206398) ,
- rgb (0.6357937104834237, 0.24944185818822678, 0.3120979395330059) ,
- rgb (0.6324253485421027, 0.24545598775548677, 0.3120276597462445) ,
- rgb (0.6290189201698587, 0.24149689191922535, 0.3119844719564572) ,
- rgb (0.6255741650043496, 0.23756535071152696, 0.3119669831491227) ,
- rgb (0.6220907982108261, 0.2336621873300741, 0.3119738327362739) ,
- rgb (0.6185686525887719, 0.2297879924917992, 0.3120046383872893) ,
- rgb (0.6150072323639137, 0.22594402043981826, 0.3120568068576574) ,
- rgb (0.6114062072731884, 0.22213124697023234, 0.3121288139643524) ,
- rgb (0.6077652399481865, 0.21835070166659282, 0.312219032918702) ,
- rgb (0.6040840169673274, 0.21460331490206347, 0.31232652641170694) ,
- rgb (0.6003621301041158, 0.21089030138947745, 0.3124493441041469) ,
- rgb (0.5965991810912237, 0.207212956082026, 0.3125852303112123) ,
- rgb (0.5927948053652026, 0.20357251410079796, 0.3127323483930494) ,
- rgb (0.5889486193554471, 0.19997020971775276, 0.31288922211590126) ,
- rgb (0.5850602439646688, 0.19640737049066315, 0.3130540116373273) ,
- rgb (0.5811293276158656, 0.19288548904692518, 0.3132239939418394) ,
- rgb (0.5771555081299204, 0.18940601489760422, 0.3133970433357208) ,
- rgb (0.5731384575410787, 0.18597036007065024, 0.3135712686852) ,
- rgb (0.5690778478401143, 0.18258004462335425, 0.3137444095679653) ,
- rgb (0.564973435290177, 0.17923664950367169, 0.3139136046337036) ,
- rgb (0.5608249903911717, 0.17594170887918095, 0.31407639883970623) ,
- rgb (0.5566322903496934, 0.17269677158182117, 0.31423043195101424) ,
- rgb (0.5523952157271191, 0.16950338809328983, 0.3143729155461537) ,
- rgb (0.5481137003346762, 0.1663630904279047, 0.3145010299091471) ,
- rgb (0.5437877131360856, 0.16327738551419116, 0.31461204226295625) ,
- rgb (0.5394173664919906, 0.16024769309971934, 0.31470295028655965) ,
- rgb (0.5350027976174474, 0.15727540775107324, 0.3147708520739653) ,
- rgb (0.5305442048985645, 0.15436183633886777, 0.3148129978918713) ,
- rgb (0.5260418962547748, 0.15150818660835483, 0.31482653406646727) ,
- rgb (0.5214965286322996, 0.14871544765633712, 0.3148076795453443) ,
- rgb (0.5169084880054446, 0.14598463068714407, 0.3147540759228004) ,
- rgb (0.5122783510532176, 0.14331656120063752, 0.3146630922831542) ,
- rgb (0.5076068118105369, 0.14071192654913128, 0.3145320012008257) ,
- rgb (0.5028952497497061, 0.13817086581280427, 0.3143566215383367) ,
- rgb (0.4981443546207415, 0.13569380302451714, 0.314135190862664) ,
- rgb (0.49335504375145617, 0.13328091630401023, 0.31386561956734976) ,
- rgb (0.48852847371852987, 0.13093210934893723, 0.31354553695453014) ,
- rgb (0.48366628618847957, 0.1286467902201389, 0.31317188565991266) ,
- rgb (0.47877034239726296, 0.12642401401409453, 0.3127417273582196) ,
- rgb (0.473841437035254, 0.12426354237989065, 0.31225470169927194) ,
- rgb (0.46888111384598413, 0.12216445576414045, 0.31170911458932665) ,
- rgb (0.46389102840284874, 0.12012561256850712, 0.31110343446582983) ,
- rgb (0.45887288947308297, 0.11814571137706886, 0.3104363697903881) ,
- rgb (0.4538300508699989, 0.11622183788331528, 0.3097044124984492) ,
- rgb (0.4487629917317482, 0.1143535557462255, 0.30890905921943196) ,
- rgb (0.44367358645071275, 0.11253912421257944, 0.3080497309546545) ,
- rgb (0.4385637818793154, 0.11077667828375456, 0.30712600062348083) ,
- rgb (0.4334355841041439, 0.1090642347484701, 0.3061376792828915) ,
- rgb (0.4282910131578975, 0.1073997763055258, 0.30508479060294547) ,
- rgb (0.42313214269556043, 0.10578120994917611, 0.3039675809469457) ,
- rgb (0.41796105205173684, 0.10420644885760968, 0.3027865203963184) ,
- rgb (0.41277985630360303, 0.1026734006932461, 0.3015422643746897) ,
- rgb (0.4075912039268871, 0.10117945586419633, 0.300235195077286) ,
- rgb (0.40239692379737496, 0.09972293031495055, 0.2988667436973397) ,
- rgb (0.39719876876325577, 0.09830232096827862, 0.2974385647628578) ,
- rgb (0.39199887556812907, 0.09691583650296684, 0.2959521200550908) ,
- rgb (0.3867993907954417, 0.09556181960083443, 0.29440901248173756) ,
- rgb (0.38160247377467543, 0.09423873126371218, 0.2928110750626949) ,
- rgb (0.3764103053221462, 0.09294519809377791, 0.2911602415731392) ,
- rgb (0.3712250843130934, 0.09167999748026273, 0.2894586539763317) ,
- rgb (0.36605031412464006, 0.0904406854276979, 0.2877077458811747) ,
- rgb (0.36088752387578377, 0.0892271943627452, 0.28591050458531014) ,
- rgb (0.35573889947341125, 0.08803897435024335, 0.2840695897279818) ,
- rgb (0.3506067824603248, 0.08687555176033529, 0.28218770540182386) ,
- rgb (0.345493557138718, 0.08573665496512634, 0.28026769921081435) ,
- rgb (0.34040164359597463, 0.08462223619170267, 0.27831254595259397) ,
- rgb (0.3353335322445545, 0.08353243411900396, 0.2763253435679004) ,
- rgb (0.3302917447118144, 0.08246763389003825, 0.27430929404579435) ,
- rgb (0.3252788886040126, 0.08142839007654609, 0.27226772884656186) ,
- rgb (0.3202998655799406, 0.08041299473755484, 0.2702032289303951) ,
- rgb (0.3153587000920581, 0.07942099731524319, 0.2681190407694196) ,
- rgb (0.31045520848595526, 0.07845687167618218, 0.2660200572779356) ,
- rgb (0.30559226007249934, 0.07752196310753731, 0.2639100669211966) ,
- rgb (0.3007727681291869, 0.07661782433616476, 0.2617929409781967) ,
- rgb (0.2960004726065818, 0.07574533600095842, 0.25967245030364566) ,
- rgb (0.29128515387578635, 0.0748990498474667, 0.25755101595750435) ,
- rgb (0.28662309235899847, 0.07408846082680887, 0.2554347867371703) ,
- rgb (0.2820174629736694, 0.07331569321404097, 0.25332800295084507) ,
- rgb (0.277471508091428, 0.07258296989925478, 0.2512349399594277) ,
- rgb (0.272997015188973, 0.07188355544616351, 0.2491584709323293) ,
- rgb (0.2685909594817286, 0.07122671627792246, 0.24710443563450618) ,
- rgb (0.2642551220706094, 0.07061659562299544, 0.24507758869355967) ,
- rgb (0.25999463887892144, 0.07005385560386188, 0.24308218808684579) ,
- rgb (0.2558213554748177, 0.06953231029187984, 0.24112190491594204) ,
- rgb (0.25172899728289466, 0.0690646308260355, 0.23920260612763083) ,
- rgb (0.247720929905011, 0.06865333790948652, 0.2373288009471749) ,
- rgb (0.2438114972024792, 0.06828985152901187, 0.23550427698321885) ,
- rgb (0.23999586188690308, 0.06798502996477995, 0.23373434258507808) ,
- rgb (0.23627495835774248, 0.06774359820987802, 0.23202360805926608) ,
- rgb (0.23266299920501882, 0.06755710438847978, 0.23037617493752832) ,
- rgb (0.2291562027859284, 0.06743473087115257, 0.22879681433956656) ,
- rgb (0.2257539681670791, 0.06738213230014747, 0.22728984778098055) ,
- rgb (0.22247308588973624, 0.06738821405309284, 0.22585960379408354) ,
- rgb (0.21930503925136402, 0.06746578636294004, 0.22451023616807558) ,
- rgb (0.21625279838647882, 0.06761633027051639, 0.22324568672294431) ,
- rgb (0.2133313859647627, 0.06783014842602667, 0.2220704321302429) ,
- rgb (0.21052882914958676, 0.06812195249816172, 0.22098759107715404) ,
- rgb (0.20785704662965598, 0.06848439879702528, 0.22000133917653536) ,
- rgb (0.20531725273301316, 0.06891959226639757, 0.21911516689288835) ,
- rgb (0.20290365333558247, 0.06943524858045896, 0.21833167885096033) ,
- rgb (0.20058760685133747, 0.07006457614998421, 0.21762721310371608) ,
- rgb (0.19819343656336558, 0.07097462525273879, 0.21690975060032436) ,
- rgb (0.19571853588267552, 0.07215778103960274, 0.21617499187076789) ,
- rgb (0.1931548636579131, 0.07360681904011795, 0.21542362939081539) ,
- rgb (0.19049578401722037, 0.07531127841678764, 0.2146562337112265) ,
- rgb (0.18774482037046955, 0.07725158846803931, 0.21387448578597812) ,
- rgb (0.18488035509396164, 0.07942573027972388, 0.21307651648984993)
-});
+ rgb (0.18739228342697645, 0.07710209689958833, 0.21618875376309582) ,
+ rgb (0.18975853639094634, 0.07501986186214377, 0.2193005075652994) ,
+ rgb (0.19199449184606268, 0.0731828306492733, 0.22243385243433622) ,
+ rgb (0.19410351363791453, 0.07160830485689157, 0.22558727307410353) ,
+ rgb (0.1960826032659409, 0.07032122724242362, 0.22874673279569585) ,
+ rgb (0.19794834061899208, 0.06931406607166066, 0.23194647381302336) ,
+ rgb (0.19971571438603364, 0.06859271055370472, 0.23517094067076993) ,
+ rgb (0.2015613376412984, 0.06798327102620025, 0.23852974228695395) ,
+ rgb (0.20352007949514977, 0.06744417961242422, 0.24205576625191821) ,
+ rgb (0.20558051999470117, 0.06699046239786874, 0.24572497420147632) ,
+ rgb (0.2077442377448806, 0.06661453200418091, 0.24954644291943817) ,
+ rgb (0.21001214221188125, 0.06630857391894718, 0.2535289048041211) ,
+ rgb (0.21237411048541005, 0.06608502466175845, 0.2576516509356954) ,
+ rgb (0.21482843531473683, 0.06594038561377849, 0.26191675992376573) ,
+ rgb (0.21737845072382705, 0.06585966123356204, 0.2663420934966951) ,
+ rgb (0.22001251100779617, 0.0658579189189076, 0.2709027999432586) ,
+ rgb (0.22272706739121817, 0.06593379067565194, 0.275597146520537) ,
+ rgb (0.22552164337737857, 0.0660781731193956, 0.28043398847505197) ,
+ rgb (0.2283917709422868, 0.06628997924139618, 0.28541074411068496) ,
+ rgb (0.23132955273021344, 0.06657618693909059, 0.29051361067988485) ,
+ rgb (0.23433055727563878, 0.0669355996616394, 0.295740099298676) ,
+ rgb (0.23739062429054825, 0.06736588805055552, 0.3010892218406587) ,
+ rgb (0.2405081333229594, 0.0678571038148556, 0.3065705449367832) ,
+ rgb (0.24367372557466271, 0.06841985515092269, 0.3121652405088837) ,
+ rgb (0.24688226237959, 0.06905363944920445, 0.31786993834254956) ,
+ rgb (0.2501284530619938, 0.06975820642910699, 0.32368100685760637) ,
+ rgb (0.25340685873736807, 0.07053358292685183, 0.3295945757321303) ,
+ rgb (0.256711916510839, 0.07138010624208224, 0.3356064898460009) ,
+ rgb (0.26003895187439957, 0.0722947810433622, 0.3417175669546984) ,
+ rgb (0.26338121807151404, 0.07328165793989708, 0.34791888996380105) ,
+ rgb (0.26673233211995284, 0.0743440180285462, 0.3542027606624096) ,
+ rgb (0.2700863774911405, 0.07548367558427554, 0.36056376228111864) ,
+ rgb (0.2734373934245081, 0.07670280023749607, 0.36699616136347685) ,
+ rgb (0.2767793961581559, 0.07800394103378822, 0.37349382846504675) ,
+ rgb (0.2801063857697547, 0.07938999480226153, 0.38005028528138707) ,
+ rgb (0.28341239797185225, 0.08086415336549937, 0.38665868550105914) ,
+ rgb (0.28669151388283165, 0.08242987384848069, 0.39331182532243375) ,
+ rgb (0.2899379244517661, 0.08409078829085731, 0.40000214725256295) ,
+ rgb (0.2931459309698525, 0.08585065688962071, 0.40672178082365834) ,
+ rgb (0.2963100038890529, 0.08771325096046395, 0.41346259134143476) ,
+ rgb (0.2994248396021477, 0.08968225371675004, 0.42021619665853854) ,
+ rgb (0.3024853636457425, 0.0917611873973036, 0.42697404043749887) ,
+ rgb (0.30548675819945936, 0.09395276484082374, 0.4337284999936111) ,
+ rgb (0.30842444457210105, 0.09625938534057774, 0.44047194882050544) ,
+ rgb (0.31129434479712365, 0.0986847719340522, 0.4471931371516162) ,
+ rgb (0.3140927841475553, 0.10123077676403242, 0.45388335612058467) ,
+ rgb (0.316816480890235, 0.10389861387653518, 0.46053414662739794) ,
+ rgb (0.31946262395497965, 0.1066887988239266, 0.46713728801395243) ,
+ rgb (0.3220288227606932, 0.10960114111258401, 0.4736849472572688) ,
+ rgb (0.32451307931207785, 0.11263459791730848, 0.48017007211645196) ,
+ rgb (0.3269137124539796, 0.1157873496841953, 0.4865864649569746) ,
+ rgb (0.3292300520323141, 0.11905764321981127, 0.49292595612342666) ,
+ rgb (0.33146154891145124, 0.12244245263391232, 0.4991827458843107) ,
+ rgb (0.33360804901486, 0.1259381830100592, 0.505351647966549) ,
+ rgb (0.33566978565015315, 0.12954074251271822, 0.5114280721516895) ,
+ rgb (0.3376473209067111, 0.13324562282438077, 0.5174080757397947) ,
+ rgb (0.33954168752669694, 0.1370480189671817, 0.5232879753508524) ,
+ rgb (0.34135411074506483, 0.1409427920655632, 0.5290650094033675) ,
+ rgb (0.34308600291572294, 0.14492465359918028, 0.534737042820671) ,
+ rgb (0.34473901574536375, 0.1489882058982641, 0.5403024592040654) ,
+ rgb (0.3463150717579309, 0.15312802296627787, 0.5457599924248665) ,
+ rgb (0.3478165323877778, 0.1573386351115298, 0.5511085345270326) ,
+ rgb (0.34924513554955644, 0.16161477763045118, 0.5563483747416378) ,
+ rgb (0.3506030444193101, 0.1659512998472086, 0.5614796470399323) ,
+ rgb (0.3518924860887379, 0.17034320478524959, 0.5665028491121665) ,
+ rgb (0.35311574421123737, 0.17478570377561287, 0.5714187152355529) ,
+ rgb (0.3542753496066376, 0.17927413271618647, 0.5762280966066872) ,
+ rgb (0.3553741530690672, 0.18380392577704466, 0.580931914318328) ,
+ rgb (0.35641381143126327, 0.18837119869242164, 0.5855320765920552) ,
+ rgb (0.35739663292915563, 0.1929720819784246, 0.5900301125106313) ,
+ rgb (0.3583248996661781, 0.197602942459778, 0.5944276851750107) ,
+ rgb (0.35920088560930186, 0.20226037920758122, 0.5987265295935138) ,
+ rgb (0.36002681809096376, 0.20694122817889948, 0.6029284543191687) ,
+ rgb (0.36080493826624654, 0.21164251793458128, 0.6070353217206471) ,
+ rgb (0.36153829010998356, 0.21636111429594002, 0.6110488067964093) ,
+ rgb (0.36222809558295926, 0.22109488427338303, 0.6149711234609613) ,
+ rgb (0.3628764356004103, 0.2258414929328703, 0.6188041741082302) ,
+ rgb (0.36348537610385145, 0.2305987621839642, 0.6225498862239288) ,
+ rgb (0.3640569302208851, 0.23536470386204195, 0.6262101345195302) ,
+ rgb (0.3645930889012501, 0.24013747024823828, 0.629786801550261) ,
+ rgb (0.3650957984588681, 0.24491536803550484, 0.6332817352005559) ,
+ rgb (0.3655669837353898, 0.24969683475296395, 0.6366967518748858) ,
+ rgb (0.36600853966739794, 0.25448043878086224, 0.6400336180336859) ,
+ rgb (0.3664224325155063, 0.25926481158628106, 0.6432940914076554) ,
+ rgb (0.3668108554010799, 0.26404857724525643, 0.6464799165290824) ,
+ rgb (0.36717513650699446, 0.26883085667326956, 0.6495927229789225) ,
+ rgb (0.36751707094367697, 0.2736106331709098, 0.6526341171161864) ,
+ rgb (0.3678384369653108, 0.2783869718129776, 0.655605668384537) ,
+ rgb (0.3681410147989972, 0.2831590122118299, 0.6585088880697231) ,
+ rgb (0.36842655638020444, 0.2879259643777846, 0.661345269109446) ,
+ rgb (0.3686968223189527, 0.292687098561501, 0.6641162529823691) ,
+ rgb (0.3689535530659678, 0.29744175492366276, 0.6668232208982426) ,
+ rgb (0.36919847837592484, 0.3021893217650707, 0.6694675433161452) ,
+ rgb (0.3694333459127623, 0.3069292355186234, 0.6720505284912062) ,
+ rgb (0.36965987626565955, 0.3116609876295197, 0.6745734474341955) ,
+ rgb (0.3698798032902536, 0.31638410101153364, 0.6770375543809057) ,
+ rgb (0.37009487130772695, 0.3210981375964933, 0.6794440539905685) ,
+ rgb (0.37030682071842685, 0.32580269697872455, 0.6817941168448668) ,
+ rgb (0.37051738634484427, 0.3304974124430785, 0.6840888878885721) ,
+ rgb (0.3707283327942267, 0.33518193808489577, 0.6863294816960677) ,
+ rgb (0.3709415155133733, 0.33985591488818123, 0.6885170337950512) ,
+ rgb (0.37115856636209105, 0.3445191141023017, 0.6906525358646499) ,
+ rgb (0.37138124223736607, 0.34917126878479027, 0.6927370347192883) ,
+ rgb (0.3716113323440048, 0.3538121372967869, 0.6947714991938089) ,
+ rgb (0.3718506155898596, 0.3584414828587522, 0.6967569581025654) ,
+ rgb (0.3721008970244382, 0.3630590973698238, 0.6986943461507372) ,
+ rgb (0.37236397858465387, 0.36766477862108266, 0.7005846349652077) ,
+ rgb (0.37264166757849604, 0.3722583500483685, 0.7024287314570723) ,
+ rgb (0.3729357864666503, 0.3768396383521984, 0.7042275578058994) ,
+ rgb (0.37324816143326384, 0.38140848555753937, 0.7059820097480604) ,
+ rgb (0.3735806215098284, 0.3859647438605754, 0.7076929760731058) ,
+ rgb (0.3739349933047578, 0.3905082752937583, 0.7093613429347845) ,
+ rgb (0.3743131319931234, 0.3950389482828331, 0.7109879652237746) ,
+ rgb (0.3747168601930223, 0.3995566498711684, 0.7125736851650046) ,
+ rgb (0.37514802505380473, 0.4040612609993941, 0.7141193695725726) ,
+ rgb (0.375608469194424, 0.40855267638072096, 0.7156258509158755) ,
+ rgb (0.37610001286385814, 0.4130307995247706, 0.7170939691992023) ,
+ rgb (0.37662448930806297, 0.41749553747893614, 0.7185245473617611) ,
+ rgb (0.3771837184425123, 0.4219468022345483, 0.7199184152447577) ,
+ rgb (0.3777794975351373, 0.4263845142616835, 0.7212763999353023) ,
+ rgb (0.378413635091359, 0.43080859411413064, 0.7225993199306104) ,
+ rgb (0.3790878928311076, 0.43521897612544935, 0.7238879869132313) ,
+ rgb (0.3798040374484875, 0.4396155882122263, 0.7251432377876109) ,
+ rgb (0.3805638069656562, 0.4439983720863372, 0.7263658704513531) ,
+ rgb (0.3813688793045416, 0.4483672766927786, 0.7275567131714135) ,
+ rgb (0.38222094988570376, 0.45272225034283325, 0.7287165614400378) ,
+ rgb (0.3831216808440275, 0.457063235814072, 0.7298462679135326) ,
+ rgb (0.38407269378943537, 0.46139018782416635, 0.7309466543290268) ,
+ rgb (0.3850755679365139, 0.46570306719930193, 0.732018540336905) ,
+ rgb (0.386131841788921, 0.4700018340988123, 0.7330627749243106) ,
+ rgb (0.3872430145933025, 0.4742864593363539, 0.7340801678785439) ,
+ rgb (0.3884105330084243, 0.47855691131792805, 0.7350715764115726) ,
+ rgb (0.38963580160340855, 0.48281316715123496, 0.7360378254693274) ,
+ rgb (0.390920175719949, 0.4870552025122304, 0.7369797713388125) ,
+ rgb (0.39226494876209317, 0.4912830033289926, 0.7378982478447508) ,
+ rgb (0.39367135736822567, 0.4954965577745118, 0.738794102296364) ,
+ rgb (0.3951405880820763, 0.4996958532637776, 0.7396682021171571) ,
+ rgb (0.3966737490566561, 0.5038808905384797, 0.7405213858051674) ,
+ rgb (0.3982719152586337, 0.5080516653927614, 0.7413545091809972) ,
+ rgb (0.39993606933454834, 0.5122081814321852, 0.7421684457131799) ,
+ rgb (0.40166714010896104, 0.5163504496968876, 0.7429640345324835) ,
+ rgb (0.40346600333905397, 0.5204784765384003, 0.7437421522356709) ,
+ rgb (0.4053334378930318, 0.5245922817498312, 0.7445036583670813) ,
+ rgb (0.4072701869421907, 0.5286918801105741, 0.7452494263758127) ,
+ rgb (0.4092768899914751, 0.5327773017713032, 0.7459803063570782) ,
+ rgb (0.4113541469730457, 0.5368485776500593, 0.7466971285506578) ,
+ rgb (0.4135024574331473, 0.5409057477109848, 0.7474007329754309) ,
+ rgb (0.4157223260454232, 0.544948827153504, 0.7480920445900052) ,
+ rgb (0.4180141407923363, 0.5489778542188889, 0.7487719316700112) ,
+ rgb (0.42037822361396326, 0.5529928715810817, 0.7494412559451894) ,
+ rgb (0.4228148567577266, 0.5569939212699658, 0.7501008698822764) ,
+ rgb (0.42532423665011354, 0.560981049599503, 0.7507516498900512) ,
+ rgb (0.42790652284925834, 0.5649543060909209, 0.7513944352191484) ,
+ rgb (0.4305617907305757, 0.5689137457245718, 0.752030080993127) ,
+ rgb (0.43329008867358393, 0.5728594162560667, 0.7526594653256667) ,
+ rgb (0.4360913895835637, 0.5767913799818608, 0.7532834105961016) ,
+ rgb (0.43896563958048396, 0.5807096924109849, 0.7539027620828594) ,
+ rgb (0.441912717666964, 0.5846144110017557, 0.7545183888441067) ,
+ rgb (0.4449324685421538, 0.5885055998308617, 0.7551311041857901) ,
+ rgb (0.4480247093358917, 0.5923833145214658, 0.7557417647410792) ,
+ rgb (0.45118918687617743, 0.5962476205135354, 0.7563512064324664) ,
+ rgb (0.45442563977552913, 0.6000985950385866, 0.7569601366060649) ,
+ rgb (0.45773377230160567, 0.6039363004658646, 0.7575693690185916) ,
+ rgb (0.4611132664702388, 0.607760777169989, 0.7581798643680714) ,
+ rgb (0.4645637671630393, 0.6115720882286415, 0.7587924262302581) ,
+ rgb (0.46808490970531597, 0.6153702869579029, 0.7594078989109274) ,
+ rgb (0.4716762951887709, 0.6191554324288464, 0.7600270922788305) ,
+ rgb (0.47533752394906287, 0.6229275728383581, 0.7606508557181775) ,
+ rgb (0.47906816236197386, 0.6266867625186013, 0.7612800037566242) ,
+ rgb (0.4828677867260272, 0.6304330455306234, 0.761915371498953) ,
+ rgb (0.4867359599430568, 0.6341664625110051, 0.7625578008592404) ,
+ rgb (0.4906722493856122, 0.6378870485884708, 0.7632081276316384) ,
+ rgb (0.4946761847863938, 0.6415948411950443, 0.7638671900213091) ,
+ rgb (0.4987473366135607, 0.6452898684900934, 0.7645357873418008) ,
+ rgb (0.5028853540415561, 0.6489721673409526, 0.7652144671817491) ,
+ rgb (0.5070896957645166, 0.6526417240314645, 0.7659044566083585) ,
+ rgb (0.5113599254160193, 0.6562985398183186, 0.7666066378064533) ,
+ rgb (0.5156955988596057, 0.65994260812898, 0.7673219148959617) ,
+ rgb (0.5200962739223556, 0.6635739143403039, 0.768051194033441) ,
+ rgb (0.5245615147059358, 0.6671924299614223, 0.7687954171423095) ,
+ rgb (0.529090861832473, 0.6707981230280622, 0.7695555229231313) ,
+ rgb (0.533683891477284, 0.6743909370521273, 0.7703325054879735) ,
+ rgb (0.5383401557517628, 0.677970811290954, 0.7711273443905772) ,
+ rgb (0.5430593242401823, 0.6815376725306588, 0.7719407969783508) ,
+ rgb (0.5478409815301863, 0.6850914221850988, 0.7727738647344087) ,
+ rgb (0.5526845058934713, 0.6886319451516638, 0.7736279426902245) ,
+ rgb (0.5575894041960517, 0.6921591145825405, 0.7745041337932782) ,
+ rgb (0.5625551535721934, 0.6956727838162965, 0.7754035914230984) ,
+ rgb (0.5675811785386197, 0.6991727930264627, 0.776327485342753) ,
+ rgb (0.5726668948158774, 0.7026589535425779, 0.7772770268091199) ,
+ rgb (0.5778116438998202, 0.7061310615715398, 0.7782534512102552) ,
+ rgb (0.5830148703693241, 0.7095888767699747, 0.7792578182047659) ,
+ rgb (0.588275797805555, 0.7130321464645814, 0.7802914140563652) ,
+ rgb (0.5935933569683722, 0.7164606049658685, 0.781355882376401) ,
+ rgb (0.5989665814482068, 0.7198739489224673, 0.7824525989934664) ,
+ rgb (0.6043943420027486, 0.7232718614323369, 0.7835829559353559) ,
+ rgb (0.6098754317609306, 0.7266539875975829, 0.7847483573269471) ,
+ rgb (0.6154084641177048, 0.7300199523273969, 0.7859502270675048) ,
+ rgb (0.6209919306481755, 0.733369347989232, 0.7871899462469658) ,
+ rgb (0.6266240202260459, 0.7367017540369944, 0.7884690131633456) ,
+ rgb (0.6323027138710603, 0.740016721601314, 0.7897889276264043) ,
+ rgb (0.6380258682854598, 0.7433137671403319, 0.7911510045957317) ,
+ rgb (0.6437910831099849, 0.7465923800833657, 0.7925565320130605) ,
+ rgb (0.6495957300425348, 0.7498520122194177, 0.7940067402149911) ,
+ rgb (0.6554369232645472, 0.7530920875676843, 0.7955027112903105) ,
+ rgb (0.6613112930078745, 0.7563120270871903, 0.7970456043491897) ,
+ rgb (0.6672147980375281, 0.7595112803730375, 0.7986367465453776) ,
+ rgb (0.6731442255942621, 0.7626890873389048, 0.8002762854580953) ,
+ rgb (0.6790955449988215, 0.765844721313959, 0.8019646617300199) ,
+ rgb (0.6850644615439593, 0.7689774029354699, 0.8037020626717691) ,
+ rgb (0.691046410093091, 0.7720862946067809, 0.8054884169067907) ,
+ rgb (0.6970365443886174, 0.7751705000806606, 0.8073233538006345) ,
+ rgb (0.7030297722540817, 0.7782290497335813, 0.8092061884805697) ,
+ rgb (0.709020781345393, 0.7812608871607091, 0.8111359185511793) ,
+ rgb (0.7150040307625213, 0.7842648709158119, 0.8131111655994991) ,
+ rgb (0.7209728066553678, 0.7872399592345264, 0.8151307392087926) ,
+ rgb (0.726921775128297, 0.7901846863592763, 0.8171921746672638) ,
+ rgb (0.7328454364552346, 0.7930974646884407, 0.8192926338423038) ,
+ rgb (0.7387377170049494, 0.7959766573503101, 0.8214292278043301) ,
+ rgb (0.7445924777189017, 0.7988204771958325, 0.8235986758615652) ,
+ rgb (0.750403467654067, 0.8016269900896532, 0.8257973785108242) ,
+ rgb (0.7561644358438198, 0.8043940873347794, 0.8280213899472) ,
+ rgb (0.7618690793798029, 0.8071194938764749, 0.830266486168872) ,
+ rgb (0.7675110850441786, 0.8098007598713145, 0.8325281663805967) ,
+ rgb (0.7730841659017094, 0.8124352473546601, 0.8348017295057968) ,
+ rgb (0.7785789200822759, 0.8150208937874255, 0.8370834463093898) ,
+ rgb (0.7839910104276492, 0.8175542640053343, 0.8393674746403673) ,
+ rgb (0.7893144556460892, 0.8200321318870201, 0.8416486380471222) ,
+ rgb (0.7945430508923111, 0.8224511622630462, 0.8439218478682798) ,
+ rgb (0.79967075421268, 0.8248078181208093, 0.8461821002957853) ,
+ rgb (0.8046916442981458, 0.8270983878056066, 0.8484244929697402) ,
+ rgb (0.8095999819094809, 0.8293189667350546, 0.8506444160105037) ,
+ rgb (0.8143898212114309, 0.8314655869419785, 0.8528375906214702) ,
+ rgb (0.8190465467793753, 0.8335364929949034, 0.855002062870101) ,
+ rgb (0.8235742968025285, 0.8355248776479544, 0.8571319132851495) ,
+ rgb (0.8279689431601354, 0.837426007513952, 0.8592239945130679) ,
+ rgb (0.8322270571293441, 0.8392349062775448, 0.8612756350042788) ,
+ rgb (0.8363403180919118, 0.8409479651895194, 0.8632852800107016) ,
+ rgb (0.8403042080595778, 0.8425605950855084, 0.865250882410458) ,
+ rgb (0.8441261828674842, 0.8440648271103739, 0.8671697332269007) ,
+ rgb (0.8478071070257792, 0.8454546229209523, 0.8690403678369444) ,
+ rgb (0.8513371457085719, 0.8467273579611647, 0.8708608165735044) ,
+ rgb (0.8547259318925698, 0.8478748812467282, 0.8726282980930582) ,
+ rgb (0.8579825924567037, 0.8488893481028184, 0.8743403855344628) ,
+ rgb (0.8611024543689985, 0.8497675485700126, 0.8759924292343957) ,
+ rgb (0.86408985081464, 0.8505039116750779, 0.8775792578489263) ,
+ rgb (0.8669601550533358, 0.8510896085314068, 0.8790976697717334) ,
+ rgb (0.8697047485350982, 0.8515240300479789, 0.8805388339000336) ,
+ rgb (0.8723313408512408, 0.8518016547808089, 0.8818970435500162) ,
+ rgb (0.8748534750857597, 0.8519152612302319, 0.8831692696761383) ,
+ rgb (0.8772488085896548, 0.8518702833887027, 0.8843412038131143) ,
+ rgb (0.8795410528270573, 0.8516567540749572, 0.8854143767924102) ,
+ rgb (0.8817223105928579, 0.8512759407765347, 0.8863805692551482) ,
+ rgb (0.8837852019553906, 0.8507294054031063, 0.8872322209694989) ,
+ rgb (0.8857501584075443, 0.8500092494306783, 0.8879736506427196) ,
+ rgb (0.8857115512284565, 0.8500218611585632, 0.8857253899008712) ,
+ rgb (0.8855471481195238, 0.8498717428363158, 0.8833620612117095) ,
+ rgb (0.8852589797263047, 0.8495589281098921, 0.8808841479402484) ,
+ rgb (0.8848513815990857, 0.849084264228938, 0.8782823528537247) ,
+ rgb (0.8843271305411354, 0.8484474157205542, 0.8755678522824297) ,
+ rgb (0.8836912714589804, 0.8476489176151927, 0.8727414710144156) ,
+ rgb (0.8829516859544853, 0.8466897027569927, 0.8697961704819097) ,
+ rgb (0.8821154248940161, 0.8455700725455935, 0.8667376504623333) ,
+ rgb (0.8811916987134195, 0.8442906671771735, 0.8635659516866988) ,
+ rgb (0.8801929331569581, 0.8428522482477862, 0.8602739992715663) ,
+ rgb (0.8791324424079277, 0.8412555488447591, 0.8568557229103964) ,
+ rgb (0.8780229843664901, 0.8395016561854007, 0.8533064535245892) ,
+ rgb (0.8768784845161469, 0.8375923807118654, 0.8496137354915025) ,
+ rgb (0.875714587099614, 0.8355302318472394, 0.8457553751902708) ,
+ rgb (0.8745379332026019, 0.8333197294864546, 0.8417192535806901) ,
+ rgb (0.8733517136091627, 0.8309671525127262, 0.8374885100119709) ,
+ rgb (0.8721533197845432, 0.8284805282370967, 0.8330486712880828) ,
+ rgb (0.8709384671729751, 0.8258685788943851, 0.8283849726114961) ,
+ rgb (0.8696913150261381, 0.8231415885956916, 0.8235047668317317) ,
+ rgb (0.8683995469581863, 0.8203087551218152, 0.8184163896312899) ,
+ rgb (0.867053149070485, 0.8173780404191124, 0.813134196269114) ,
+ rgb (0.8656493432560532, 0.8143554406751491, 0.8076697232416455) ,
+ rgb (0.8641834372394103, 0.8112464422465354, 0.8020461269686395) ,
+ rgb (0.8626560105112757, 0.8080552380426153, 0.796282666437655) ,
+ rgb (0.8610711702756552, 0.8047851790981223, 0.7903952966373629) ,
+ rgb (0.8594346370300241, 0.8014392309950078, 0.7843978875138392) ,
+ rgb (0.857756629435049, 0.7980196314271393, 0.778295716672475) ,
+ rgb (0.856040223147254, 0.7945296360155061, 0.7721061003767414) ,
+ rgb (0.8542921961147046, 0.7909719677709199, 0.765838014779141) ,
+ rgb (0.8525190720770844, 0.7873493613354844, 0.7594994148789691) ,
+ rgb (0.8507269702317879, 0.7836645734238389, 0.7530974636118285) ,
+ rgb (0.8489224556311764, 0.7799202140765015, 0.7466371929366437) ,
+ rgb (0.847111955079651, 0.7761188023604716, 0.7401227576280706) ,
+ rgb (0.8452981073195511, 0.7722633860104472, 0.7335636824054149) ,
+ rgb (0.843485292229337, 0.7683566039987018, 0.7269653699897204) ,
+ rgb (0.8416775076684515, 0.7644010120098295, 0.7203329938728462) ,
+ rgb (0.8398783988412087, 0.7603990719977968, 0.7136714781112923) ,
+ rgb (0.8380912347613196, 0.7563531486080863, 0.7069856139021298) ,
+ rgb (0.8363189884473793, 0.7522654895287526, 0.7002799902886496) ,
+ rgb (0.8345656905566583, 0.7481379479992134, 0.6935569764986385) ,
+ rgb (0.8328327718577798, 0.7439727181745988, 0.6868223587464855) ,
+ rgb (0.8311216352909631, 0.7397718464763862, 0.6800812520363146) ,
+ rgb (0.8294340781648147, 0.7355371221572935, 0.6733377200930191) ,
+ rgb (0.8277716072353446, 0.7312702332407809, 0.6665957020468297) ,
+ rgb (0.8261354971058026, 0.7269727551823826, 0.659859001562165) ,
+ rgb (0.8245268129450285, 0.7226461431208888, 0.653131379154226) ,
+ rgb (0.8229463511042843, 0.7182917733129006, 0.6464164243818421) ,
+ rgb (0.8213947205565636, 0.7139109141951604, 0.6397176669767276) ,
+ rgb (0.8198723065045529, 0.7095047497878748, 0.6330385704006711) ,
+ rgb (0.8183793116449822, 0.705074381896351, 0.626382454789333) ,
+ rgb (0.8169157577505589, 0.7006208301478398, 0.6197526063725792) ,
+ rgb (0.8154814662727948, 0.6961450550830809, 0.6131522120932265) ,
+ rgb (0.8140761104699334, 0.6916479479148213, 0.6065843782630862) ,
+ rgb (0.8126992203988149, 0.6871303371461888, 0.600052148204351) ,
+ rgb (0.8113501401176333, 0.6825930154624339, 0.5935584890905076) ,
+ rgb (0.8100280946652069, 0.6780367267397182, 0.5871062690808275) ,
+ rgb (0.8087321917008969, 0.6734621670219452, 0.5806983480557674) ,
+ rgb (0.8074614045096935, 0.6688700095398864, 0.5743374637345958) ,
+ rgb (0.8062146052692706, 0.6642608958528229, 0.5680262917864979) ,
+ rgb (0.804990547908103, 0.6596354502756416, 0.5617674511054698) ,
+ rgb (0.8037879253107763, 0.6549942654947263, 0.5555635086708381) ,
+ rgb (0.8026053114611295, 0.6503379374810385, 0.5494169158460365) ,
+ rgb (0.8014412429256005, 0.6456670345921877, 0.5433300863249918) ,
+ rgb (0.8002941538975398, 0.6409821330674986, 0.5373053518514104) ,
+ rgb (0.7991624518501963, 0.6362837937202919, 0.5313449594256143) ,
+ rgb (0.7980444781513664, 0.6315725822508955, 0.5254510814483478) ,
+ rgb (0.7969385471995161, 0.626849056792967, 0.5196258425240281) ,
+ rgb (0.7958429237958377, 0.6221137880845115, 0.5138712409190979) ,
+ rgb (0.7947558597265404, 0.617367344002207, 0.5081892121310299) ,
+ rgb (0.7936755969866496, 0.6126102933407219, 0.5025816129126943) ,
+ rgb (0.7926003430423745, 0.6078432208703702, 0.4970502062153201) ,
+ rgb (0.7915283284347561, 0.603066705931472, 0.49159667021646397) ,
+ rgb (0.7904577684772788, 0.5982813427706246, 0.48622257801969754) ,
+ rgb (0.7893873776625194, 0.5934875421745599, 0.48092913815357724) ,
+ rgb (0.7883151404562396, 0.5886860017356244, 0.4757179187907608) ,
+ rgb (0.7872390410818835, 0.5838774374455721, 0.47059039582133383) ,
+ rgb (0.7861573713233296, 0.5790624629815756, 0.465547782819184) ,
+ rgb (0.7850684501960684, 0.5742417003617839, 0.46059116206904965) ,
+ rgb (0.7839706083641448, 0.5694157832671042, 0.4557215474289206) ,
+ rgb (0.7828622526444091, 0.5645853311116688, 0.45093985823706345) ,
+ rgb (0.7817418047898184, 0.5597509805259486, 0.44624687186865436) ,
+ rgb (0.7806077474948377, 0.5549133574489061, 0.4416433242636464) ,
+ rgb (0.7794586273150664, 0.5500730841397727, 0.4371297985644476) ,
+ rgb (0.7782934580763312, 0.545230594884266, 0.432706647838971) ,
+ rgb (0.7771103295521099, 0.5403867491056124, 0.4283745037125848) ,
+ rgb (0.775907907306857, 0.5355421788246119, 0.42413367909988375) ,
+ rgb (0.774684947460632, 0.5306974938477673, 0.4199844035696376) ,
+ rgb (0.7734402182988989, 0.5258533209345156, 0.41592679539764366) ,
+ rgb (0.7721725722960555, 0.5210102658711383, 0.4119608998712287) ,
+ rgb (0.7708809196230247, 0.516168926434691, 0.40808667584648967) ,
+ rgb (0.7695642334401418, 0.5113298901696085, 0.4043039806968248) ,
+ rgb (0.768221765997353, 0.5064936237128791, 0.40061257089416885) ,
+ rgb (0.7668522895064389, 0.5016608471009063, 0.39701221751773474) ,
+ rgb (0.7654549259333051, 0.4968321290972723, 0.3935025400011538) ,
+ rgb (0.7640288560928866, 0.49200802533379656, 0.39008308392311997) ,
+ rgb (0.7625733355405261, 0.48718906673415824, 0.38675335037837993) ,
+ rgb (0.7610876378057071, 0.48237579130289127, 0.3835127572385229) ,
+ rgb (0.7595711110534006, 0.4775687122205708, 0.380360657784311) ,
+ rgb (0.7580232553845584, 0.4727682731566229, 0.3772963553109668) ,
+ rgb (0.7564434157714071, 0.4679750143794846, 0.37431909037543515) ,
+ rgb (0.7548310506695954, 0.46318942799460555, 0.3714280448394211) ,
+ rgb (0.7531856636904657, 0.45841199172949604, 0.3686223664223477) ,
+ rgb (0.7515068504589166, 0.45364314496866825, 0.36590112443835765) ,
+ rgb (0.7497942054717047, 0.4488833348154881, 0.3632633755836028) ,
+ rgb (0.7480473927555956, 0.44413297780351974, 0.36070813602540136) ,
+ rgb (0.7462661578916344, 0.439392450449735, 0.3582343914230064) ,
+ rgb (0.7444501867657067, 0.4346621718461711, 0.35584108091122535) ,
+ rgb (0.7425992159973317, 0.42994254036133867, 0.3535270924537459) ,
+ rgb (0.7407130161950609, 0.4252339389526239, 0.35129130890802607) ,
+ rgb (0.7387914002459927, 0.4205367299231533, 0.34913260148542435) ,
+ rgb (0.7368342217358587, 0.4158512585029011, 0.347049785207584) ,
+ rgb (0.7348413359856494, 0.4111778700451951, 0.3450416947080907) ,
+ rgb (0.7328127050626875, 0.4065168468778026, 0.3431071517341082) ,
+ rgb (0.7307482075484517, 0.401868526884681, 0.3412449533046818) ,
+ rgb (0.7286477385671655, 0.39723324476747235, 0.33945384341064017) ,
+ rgb (0.7265112290022755, 0.3926113126792577, 0.3377325942005665) ,
+ rgb (0.7243386564778159, 0.38800301593162145, 0.3360799596569183) ,
+ rgb (0.7221299918421461, 0.3834086450896306, 0.33449469983585844) ,
+ rgb (0.7198852149054985, 0.37882848839337313, 0.332975552002454) ,
+ rgb (0.7176044490813385, 0.3742627271068619, 0.3315213862095893) ,
+ rgb (0.7152876061484729, 0.3697117022522345, 0.3301308728723546) ,
+ rgb (0.7129346683977347, 0.36517570519856757, 0.3288027427038317) ,
+ rgb (0.7105456546582587, 0.36065500290840113, 0.3275357416278876) ,
+ rgb (0.7081205956842048, 0.356149855233803, 0.32632861885644465) ,
+ rgb (0.7056595112261009, 0.3516605297812094, 0.32518014084085567) ,
+ rgb (0.7031624945881415, 0.34718723719598, 0.32408913679491225) ,
+ rgb (0.700629624772421, 0.34273019305341756, 0.32305449047765694) ,
+ rgb (0.6980608153581771, 0.3382897632604862, 0.3220747885521809) ,
+ rgb (0.6954560834689112, 0.33386622163232865, 0.3211488430698579) ,
+ rgb (0.6928154484676493, 0.32945984647042675, 0.3202754315314667) ,
+ rgb (0.6901389321505248, 0.32507091815606004, 0.319453323328983) ,
+ rgb (0.6874265643516962, 0.32069970535138104, 0.3186813762227769) ,
+ rgb (0.6846785094249453, 0.3163463482122221, 0.31795870784057567) ,
+ rgb (0.6818945715094452, 0.31201133280550686, 0.3172838048924495) ,
+ rgb (0.6790747402815734, 0.30769497879760166, 0.31665545668946665) ,
+ rgb (0.6762189792440975, 0.30339762792450425, 0.3160724937230589) ,
+ rgb (0.6733272556481733, 0.29911962764489264, 0.3155337232398221) ,
+ rgb (0.670399595476762, 0.29486126309253047, 0.3150381395687221) ,
+ rgb (0.6674360376636913, 0.29062280081258873, 0.31458483752056837) ,
+ rgb (0.6644363246987884, 0.2864048361425618, 0.31417223403606975) ,
+ rgb (0.6614003753260178, 0.28220778870555907, 0.3137991292649849) ,
+ rgb (0.6583280801134499, 0.2780321095766563, 0.3134643447952643) ,
+ rgb (0.6552193260932713, 0.2738782665241015, 0.3131666792687211) ,
+ rgb (0.652074172902773, 0.269746505252367, 0.3129056060581917) ,
+ rgb (0.6488923016945825, 0.2656375533620908, 0.3126794181957019) ,
+ rgb (0.6456734938264543, 0.2615520316161528, 0.31248673753935263) ,
+ rgb (0.642417577481186, 0.257490519876798, 0.31232631707560987) ,
+ rgb (0.6391243387840212, 0.2534536546198314, 0.3121968961206398) ,
+ rgb (0.6357937104834237, 0.24944185818822678, 0.3120979395330059) ,
+ rgb (0.6324253485421027, 0.24545598775548677, 0.3120276597462445) ,
+ rgb (0.6290189201698587, 0.24149689191922535, 0.3119844719564572) ,
+ rgb (0.6255741650043496, 0.23756535071152696, 0.3119669831491227) ,
+ rgb (0.6220907982108261, 0.2336621873300741, 0.3119738327362739) ,
+ rgb (0.6185686525887719, 0.2297879924917992, 0.3120046383872893) ,
+ rgb (0.6150072323639137, 0.22594402043981826, 0.3120568068576574) ,
+ rgb (0.6114062072731884, 0.22213124697023234, 0.3121288139643524) ,
+ rgb (0.6077652399481865, 0.21835070166659282, 0.312219032918702) ,
+ rgb (0.6040840169673274, 0.21460331490206347, 0.31232652641170694) ,
+ rgb (0.6003621301041158, 0.21089030138947745, 0.3124493441041469) ,
+ rgb (0.5965991810912237, 0.207212956082026, 0.3125852303112123) ,
+ rgb (0.5927948053652026, 0.20357251410079796, 0.3127323483930494) ,
+ rgb (0.5889486193554471, 0.19997020971775276, 0.31288922211590126) ,
+ rgb (0.5850602439646688, 0.19640737049066315, 0.3130540116373273) ,
+ rgb (0.5811293276158656, 0.19288548904692518, 0.3132239939418394) ,
+ rgb (0.5771555081299204, 0.18940601489760422, 0.3133970433357208) ,
+ rgb (0.5731384575410787, 0.18597036007065024, 0.3135712686852) ,
+ rgb (0.5690778478401143, 0.18258004462335425, 0.3137444095679653) ,
+ rgb (0.564973435290177, 0.17923664950367169, 0.3139136046337036) ,
+ rgb (0.5608249903911717, 0.17594170887918095, 0.31407639883970623) ,
+ rgb (0.5566322903496934, 0.17269677158182117, 0.31423043195101424) ,
+ rgb (0.5523952157271191, 0.16950338809328983, 0.3143729155461537) ,
+ rgb (0.5481137003346762, 0.1663630904279047, 0.3145010299091471) ,
+ rgb (0.5437877131360856, 0.16327738551419116, 0.31461204226295625) ,
+ rgb (0.5394173664919906, 0.16024769309971934, 0.31470295028655965) ,
+ rgb (0.5350027976174474, 0.15727540775107324, 0.3147708520739653) ,
+ rgb (0.5305442048985645, 0.15436183633886777, 0.3148129978918713) ,
+ rgb (0.5260418962547748, 0.15150818660835483, 0.31482653406646727) ,
+ rgb (0.5214965286322996, 0.14871544765633712, 0.3148076795453443) ,
+ rgb (0.5169084880054446, 0.14598463068714407, 0.3147540759228004) ,
+ rgb (0.5122783510532176, 0.14331656120063752, 0.3146630922831542) ,
+ rgb (0.5076068118105369, 0.14071192654913128, 0.3145320012008257) ,
+ rgb (0.5028952497497061, 0.13817086581280427, 0.3143566215383367) ,
+ rgb (0.4981443546207415, 0.13569380302451714, 0.314135190862664) ,
+ rgb (0.49335504375145617, 0.13328091630401023, 0.31386561956734976) ,
+ rgb (0.48852847371852987, 0.13093210934893723, 0.31354553695453014) ,
+ rgb (0.48366628618847957, 0.1286467902201389, 0.31317188565991266) ,
+ rgb (0.47877034239726296, 0.12642401401409453, 0.3127417273582196) ,
+ rgb (0.473841437035254, 0.12426354237989065, 0.31225470169927194) ,
+ rgb (0.46888111384598413, 0.12216445576414045, 0.31170911458932665) ,
+ rgb (0.46389102840284874, 0.12012561256850712, 0.31110343446582983) ,
+ rgb (0.45887288947308297, 0.11814571137706886, 0.3104363697903881) ,
+ rgb (0.4538300508699989, 0.11622183788331528, 0.3097044124984492) ,
+ rgb (0.4487629917317482, 0.1143535557462255, 0.30890905921943196) ,
+ rgb (0.44367358645071275, 0.11253912421257944, 0.3080497309546545) ,
+ rgb (0.4385637818793154, 0.11077667828375456, 0.30712600062348083) ,
+ rgb (0.4334355841041439, 0.1090642347484701, 0.3061376792828915) ,
+ rgb (0.4282910131578975, 0.1073997763055258, 0.30508479060294547) ,
+ rgb (0.42313214269556043, 0.10578120994917611, 0.3039675809469457) ,
+ rgb (0.41796105205173684, 0.10420644885760968, 0.3027865203963184) ,
+ rgb (0.41277985630360303, 0.1026734006932461, 0.3015422643746897) ,
+ rgb (0.4075912039268871, 0.10117945586419633, 0.300235195077286) ,
+ rgb (0.40239692379737496, 0.09972293031495055, 0.2988667436973397) ,
+ rgb (0.39719876876325577, 0.09830232096827862, 0.2974385647628578) ,
+ rgb (0.39199887556812907, 0.09691583650296684, 0.2959521200550908) ,
+ rgb (0.3867993907954417, 0.09556181960083443, 0.29440901248173756) ,
+ rgb (0.38160247377467543, 0.09423873126371218, 0.2928110750626949) ,
+ rgb (0.3764103053221462, 0.09294519809377791, 0.2911602415731392) ,
+ rgb (0.3712250843130934, 0.09167999748026273, 0.2894586539763317) ,
+ rgb (0.36605031412464006, 0.0904406854276979, 0.2877077458811747) ,
+ rgb (0.36088752387578377, 0.0892271943627452, 0.28591050458531014) ,
+ rgb (0.35573889947341125, 0.08803897435024335, 0.2840695897279818) ,
+ rgb (0.3506067824603248, 0.08687555176033529, 0.28218770540182386) ,
+ rgb (0.345493557138718, 0.08573665496512634, 0.28026769921081435) ,
+ rgb (0.34040164359597463, 0.08462223619170267, 0.27831254595259397) ,
+ rgb (0.3353335322445545, 0.08353243411900396, 0.2763253435679004) ,
+ rgb (0.3302917447118144, 0.08246763389003825, 0.27430929404579435) ,
+ rgb (0.3252788886040126, 0.08142839007654609, 0.27226772884656186) ,
+ rgb (0.3202998655799406, 0.08041299473755484, 0.2702032289303951) ,
+ rgb (0.3153587000920581, 0.07942099731524319, 0.2681190407694196) ,
+ rgb (0.31045520848595526, 0.07845687167618218, 0.2660200572779356) ,
+ rgb (0.30559226007249934, 0.07752196310753731, 0.2639100669211966) ,
+ rgb (0.3007727681291869, 0.07661782433616476, 0.2617929409781967) ,
+ rgb (0.2960004726065818, 0.07574533600095842, 0.25967245030364566) ,
+ rgb (0.29128515387578635, 0.0748990498474667, 0.25755101595750435) ,
+ rgb (0.28662309235899847, 0.07408846082680887, 0.2554347867371703) ,
+ rgb (0.2820174629736694, 0.07331569321404097, 0.25332800295084507) ,
+ rgb (0.277471508091428, 0.07258296989925478, 0.2512349399594277) ,
+ rgb (0.272997015188973, 0.07188355544616351, 0.2491584709323293) ,
+ rgb (0.2685909594817286, 0.07122671627792246, 0.24710443563450618) ,
+ rgb (0.2642551220706094, 0.07061659562299544, 0.24507758869355967) ,
+ rgb (0.25999463887892144, 0.07005385560386188, 0.24308218808684579) ,
+ rgb (0.2558213554748177, 0.06953231029187984, 0.24112190491594204) ,
+ rgb (0.25172899728289466, 0.0690646308260355, 0.23920260612763083) ,
+ rgb (0.247720929905011, 0.06865333790948652, 0.2373288009471749) ,
+ rgb (0.2438114972024792, 0.06828985152901187, 0.23550427698321885) ,
+ rgb (0.23999586188690308, 0.06798502996477995, 0.23373434258507808) ,
+ rgb (0.23627495835774248, 0.06774359820987802, 0.23202360805926608) ,
+ rgb (0.23266299920501882, 0.06755710438847978, 0.23037617493752832) ,
+ rgb (0.2291562027859284, 0.06743473087115257, 0.22879681433956656) ,
+ rgb (0.2257539681670791, 0.06738213230014747, 0.22728984778098055) ,
+ rgb (0.22247308588973624, 0.06738821405309284, 0.22585960379408354) ,
+ rgb (0.21930503925136402, 0.06746578636294004, 0.22451023616807558) ,
+ rgb (0.21625279838647882, 0.06761633027051639, 0.22324568672294431) ,
+ rgb (0.2133313859647627, 0.06783014842602667, 0.2220704321302429) ,
+ rgb (0.21052882914958676, 0.06812195249816172, 0.22098759107715404) ,
+ rgb (0.20785704662965598, 0.06848439879702528, 0.22000133917653536) ,
+ rgb (0.20531725273301316, 0.06891959226639757, 0.21911516689288835) ,
+ rgb (0.20290365333558247, 0.06943524858045896, 0.21833167885096033) ,
+ rgb (0.20058760685133747, 0.07006457614998421, 0.21762721310371608) ,
+ rgb (0.19819343656336558, 0.07097462525273879, 0.21690975060032436) ,
+ rgb (0.19571853588267552, 0.07215778103960274, 0.21617499187076789) ,
+ rgb (0.1931548636579131, 0.07360681904011795, 0.21542362939081539) ,
+ rgb (0.19049578401722037, 0.07531127841678764, 0.2146562337112265) ,
+ rgb (0.18774482037046955, 0.07725158846803931, 0.21387448578597812) ,
+ rgb (0.18488035509396164, 0.07942573027972388, 0.21307651648984993)
+ });
list_data viridis = list_data(new pen[] {
- rgb (0.267004, 0.004874, 0.329415) ,
- rgb (0.26851, 0.009605, 0.335427) ,
- rgb (0.269944, 0.014625, 0.341379) ,
- rgb (0.271305, 0.019942, 0.347269) ,
- rgb (0.272594, 0.025563, 0.353093) ,
- rgb (0.273809, 0.031497, 0.358853) ,
- rgb (0.274952, 0.037752, 0.364543) ,
- rgb (0.276022, 0.044167, 0.370164) ,
- rgb (0.277018, 0.050344, 0.375715) ,
- rgb (0.277941, 0.056324, 0.381191) ,
- rgb (0.278791, 0.062145, 0.386592) ,
- rgb (0.279566, 0.067836, 0.391917) ,
- rgb (0.280267, 0.073417, 0.397163) ,
- rgb (0.280894, 0.078907, 0.402329) ,
- rgb (0.281446, 0.08432, 0.407414) ,
- rgb (0.281924, 0.089666, 0.412415) ,
- rgb (0.282327, 0.094955, 0.417331) ,
- rgb (0.282656, 0.100196, 0.42216) ,
- rgb (0.28291, 0.105393, 0.426902) ,
- rgb (0.283091, 0.110553, 0.431554) ,
- rgb (0.283197, 0.11568, 0.436115) ,
- rgb (0.283229, 0.120777, 0.440584) ,
- rgb (0.283187, 0.125848, 0.44496) ,
- rgb (0.283072, 0.130895, 0.449241) ,
- rgb (0.282884, 0.13592, 0.453427) ,
- rgb (0.282623, 0.140926, 0.457517) ,
- rgb (0.28229, 0.145912, 0.46151) ,
- rgb (0.281887, 0.150881, 0.465405) ,
- rgb (0.281412, 0.155834, 0.469201) ,
- rgb (0.280868, 0.160771, 0.472899) ,
- rgb (0.280255, 0.165693, 0.476498) ,
- rgb (0.279574, 0.170599, 0.479997) ,
- rgb (0.278826, 0.17549, 0.483397) ,
- rgb (0.278012, 0.180367, 0.486697) ,
- rgb (0.277134, 0.185228, 0.489898) ,
- rgb (0.276194, 0.190074, 0.493001) ,
- rgb (0.275191, 0.194905, 0.496005) ,
- rgb (0.274128, 0.199721, 0.498911) ,
- rgb (0.273006, 0.20452, 0.501721) ,
- rgb (0.271828, 0.209303, 0.504434) ,
- rgb (0.270595, 0.214069, 0.507052) ,
- rgb (0.269308, 0.218818, 0.509577) ,
- rgb (0.267968, 0.223549, 0.512008) ,
- rgb (0.26658, 0.228262, 0.514349) ,
- rgb (0.265145, 0.232956, 0.516599) ,
- rgb (0.263663, 0.237631, 0.518762) ,
- rgb (0.262138, 0.242286, 0.520837) ,
- rgb (0.260571, 0.246922, 0.522828) ,
- rgb (0.258965, 0.251537, 0.524736) ,
- rgb (0.257322, 0.25613, 0.526563) ,
- rgb (0.255645, 0.260703, 0.528312) ,
- rgb (0.253935, 0.265254, 0.529983) ,
- rgb (0.252194, 0.269783, 0.531579) ,
- rgb (0.250425, 0.27429, 0.533103) ,
- rgb (0.248629, 0.278775, 0.534556) ,
- rgb (0.246811, 0.283237, 0.535941) ,
- rgb (0.244972, 0.287675, 0.53726) ,
- rgb (0.243113, 0.292092, 0.538516) ,
- rgb (0.241237, 0.296485, 0.539709) ,
- rgb (0.239346, 0.300855, 0.540844) ,
- rgb (0.237441, 0.305202, 0.541921) ,
- rgb (0.235526, 0.309527, 0.542944) ,
- rgb (0.233603, 0.313828, 0.543914) ,
- rgb (0.231674, 0.318106, 0.544834) ,
- rgb (0.229739, 0.322361, 0.545706) ,
- rgb (0.227802, 0.326594, 0.546532) ,
- rgb (0.225863, 0.330805, 0.547314) ,
- rgb (0.223925, 0.334994, 0.548053) ,
- rgb (0.221989, 0.339161, 0.548752) ,
- rgb (0.220057, 0.343307, 0.549413) ,
- rgb (0.21813, 0.347432, 0.550038) ,
- rgb (0.21621, 0.351535, 0.550627) ,
- rgb (0.214298, 0.355619, 0.551184) ,
- rgb (0.212395, 0.359683, 0.55171) ,
- rgb (0.210503, 0.363727, 0.552206) ,
- rgb (0.208623, 0.367752, 0.552675) ,
- rgb (0.206756, 0.371758, 0.553117) ,
- rgb (0.204903, 0.375746, 0.553533) ,
- rgb (0.203063, 0.379716, 0.553925) ,
- rgb (0.201239, 0.38367, 0.554294) ,
- rgb (0.19943, 0.387607, 0.554642) ,
- rgb (0.197636, 0.391528, 0.554969) ,
- rgb (0.19586, 0.395433, 0.555276) ,
- rgb (0.1941, 0.399323, 0.555565) ,
- rgb (0.192357, 0.403199, 0.555836) ,
- rgb (0.190631, 0.407061, 0.556089) ,
- rgb (0.188923, 0.41091, 0.556326) ,
- rgb (0.187231, 0.414746, 0.556547) ,
- rgb (0.185556, 0.41857, 0.556753) ,
- rgb (0.183898, 0.422383, 0.556944) ,
- rgb (0.182256, 0.426184, 0.55712) ,
- rgb (0.180629, 0.429975, 0.557282) ,
- rgb (0.179019, 0.433756, 0.55743) ,
- rgb (0.177423, 0.437527, 0.557565) ,
- rgb (0.175841, 0.44129, 0.557685) ,
- rgb (0.174274, 0.445044, 0.557792) ,
- rgb (0.172719, 0.448791, 0.557885) ,
- rgb (0.171176, 0.45253, 0.557965) ,
- rgb (0.169646, 0.456262, 0.55803) ,
- rgb (0.168126, 0.459988, 0.558082) ,
- rgb (0.166617, 0.463708, 0.558119) ,
- rgb (0.165117, 0.467423, 0.558141) ,
- rgb (0.163625, 0.471133, 0.558148) ,
- rgb (0.162142, 0.474838, 0.55814) ,
- rgb (0.160665, 0.47854, 0.558115) ,
- rgb (0.159194, 0.482237, 0.558073) ,
- rgb (0.157729, 0.485932, 0.558013) ,
- rgb (0.15627, 0.489624, 0.557936) ,
- rgb (0.154815, 0.493313, 0.55784) ,
- rgb (0.153364, 0.497, 0.557724) ,
- rgb (0.151918, 0.500685, 0.557587) ,
- rgb (0.150476, 0.504369, 0.55743) ,
- rgb (0.149039, 0.508051, 0.55725) ,
- rgb (0.147607, 0.511733, 0.557049) ,
- rgb (0.14618, 0.515413, 0.556823) ,
- rgb (0.144759, 0.519093, 0.556572) ,
- rgb (0.143343, 0.522773, 0.556295) ,
- rgb (0.141935, 0.526453, 0.555991) ,
- rgb (0.140536, 0.530132, 0.555659) ,
- rgb (0.139147, 0.533812, 0.555298) ,
- rgb (0.13777, 0.537492, 0.554906) ,
- rgb (0.136408, 0.541173, 0.554483) ,
- rgb (0.135066, 0.544853, 0.554029) ,
- rgb (0.133743, 0.548535, 0.553541) ,
- rgb (0.132444, 0.552216, 0.553018) ,
- rgb (0.131172, 0.555899, 0.552459) ,
- rgb (0.129933, 0.559582, 0.551864) ,
- rgb (0.128729, 0.563265, 0.551229) ,
- rgb (0.127568, 0.566949, 0.550556) ,
- rgb (0.126453, 0.570633, 0.549841) ,
- rgb (0.125394, 0.574318, 0.549086) ,
- rgb (0.124395, 0.578002, 0.548287) ,
- rgb (0.123463, 0.581687, 0.547445) ,
- rgb (0.122606, 0.585371, 0.546557) ,
- rgb (0.121831, 0.589055, 0.545623) ,
- rgb (0.121148, 0.592739, 0.544641) ,
- rgb (0.120565, 0.596422, 0.543611) ,
- rgb (0.120092, 0.600104, 0.54253) ,
- rgb (0.119738, 0.603785, 0.5414) ,
- rgb (0.119512, 0.607464, 0.540218) ,
- rgb (0.119423, 0.611141, 0.538982) ,
- rgb (0.119483, 0.614817, 0.537692) ,
- rgb (0.119699, 0.61849, 0.536347) ,
- rgb (0.120081, 0.622161, 0.534946) ,
- rgb (0.120638, 0.625828, 0.533488) ,
- rgb (0.12138, 0.629492, 0.531973) ,
- rgb (0.122312, 0.633153, 0.530398) ,
- rgb (0.123444, 0.636809, 0.528763) ,
- rgb (0.12478, 0.640461, 0.527068) ,
- rgb (0.126326, 0.644107, 0.525311) ,
- rgb (0.128087, 0.647749, 0.523491) ,
- rgb (0.130067, 0.651384, 0.521608) ,
- rgb (0.132268, 0.655014, 0.519661) ,
- rgb (0.134692, 0.658636, 0.517649) ,
- rgb (0.137339, 0.662252, 0.515571) ,
- rgb (0.14021, 0.665859, 0.513427) ,
- rgb (0.143303, 0.669459, 0.511215) ,
- rgb (0.146616, 0.67305, 0.508936) ,
- rgb (0.150148, 0.676631, 0.506589) ,
- rgb (0.153894, 0.680203, 0.504172) ,
- rgb (0.157851, 0.683765, 0.501686) ,
- rgb (0.162016, 0.687316, 0.499129) ,
- rgb (0.166383, 0.690856, 0.496502) ,
- rgb (0.170948, 0.694384, 0.493803) ,
- rgb (0.175707, 0.6979, 0.491033) ,
- rgb (0.180653, 0.701402, 0.488189) ,
- rgb (0.185783, 0.704891, 0.485273) ,
- rgb (0.19109, 0.708366, 0.482284) ,
- rgb (0.196571, 0.711827, 0.479221) ,
- rgb (0.202219, 0.715272, 0.476084) ,
- rgb (0.20803, 0.718701, 0.472873) ,
- rgb (0.214, 0.722114, 0.469588) ,
- rgb (0.220124, 0.725509, 0.466226) ,
- rgb (0.226397, 0.728888, 0.462789) ,
- rgb (0.232815, 0.732247, 0.459277) ,
- rgb (0.239374, 0.735588, 0.455688) ,
- rgb (0.24607, 0.73891, 0.452024) ,
- rgb (0.252899, 0.742211, 0.448284) ,
- rgb (0.259857, 0.745492, 0.444467) ,
- rgb (0.266941, 0.748751, 0.440573) ,
- rgb (0.274149, 0.751988, 0.436601) ,
- rgb (0.281477, 0.755203, 0.432552) ,
- rgb (0.288921, 0.758394, 0.428426) ,
- rgb (0.296479, 0.761561, 0.424223) ,
- rgb (0.304148, 0.764704, 0.419943) ,
- rgb (0.311925, 0.767822, 0.415586) ,
- rgb (0.319809, 0.770914, 0.411152) ,
- rgb (0.327796, 0.77398, 0.40664) ,
- rgb (0.335885, 0.777018, 0.402049) ,
- rgb (0.344074, 0.780029, 0.397381) ,
- rgb (0.35236, 0.783011, 0.392636) ,
- rgb (0.360741, 0.785964, 0.387814) ,
- rgb (0.369214, 0.788888, 0.382914) ,
- rgb (0.377779, 0.791781, 0.377939) ,
- rgb (0.386433, 0.794644, 0.372886) ,
- rgb (0.395174, 0.797475, 0.367757) ,
- rgb (0.404001, 0.800275, 0.362552) ,
- rgb (0.412913, 0.803041, 0.357269) ,
- rgb (0.421908, 0.805774, 0.35191) ,
- rgb (0.430983, 0.808473, 0.346476) ,
- rgb (0.440137, 0.811138, 0.340967) ,
- rgb (0.449368, 0.813768, 0.335384) ,
- rgb (0.458674, 0.816363, 0.329727) ,
- rgb (0.468053, 0.818921, 0.323998) ,
- rgb (0.477504, 0.821444, 0.318195) ,
- rgb (0.487026, 0.823929, 0.312321) ,
- rgb (0.496615, 0.826376, 0.306377) ,
- rgb (0.506271, 0.828786, 0.300362) ,
- rgb (0.515992, 0.831158, 0.294279) ,
- rgb (0.525776, 0.833491, 0.288127) ,
- rgb (0.535621, 0.835785, 0.281908) ,
- rgb (0.545524, 0.838039, 0.275626) ,
- rgb (0.555484, 0.840254, 0.269281) ,
- rgb (0.565498, 0.84243, 0.262877) ,
- rgb (0.575563, 0.844566, 0.256415) ,
- rgb (0.585678, 0.846661, 0.249897) ,
- rgb (0.595839, 0.848717, 0.243329) ,
- rgb (0.606045, 0.850733, 0.236712) ,
- rgb (0.616293, 0.852709, 0.230052) ,
- rgb (0.626579, 0.854645, 0.223353) ,
- rgb (0.636902, 0.856542, 0.21662) ,
- rgb (0.647257, 0.8584, 0.209861) ,
- rgb (0.657642, 0.860219, 0.203082) ,
- rgb (0.668054, 0.861999, 0.196293) ,
- rgb (0.678489, 0.863742, 0.189503) ,
- rgb (0.688944, 0.865448, 0.182725) ,
- rgb (0.699415, 0.867117, 0.175971) ,
- rgb (0.709898, 0.868751, 0.169257) ,
- rgb (0.720391, 0.87035, 0.162603) ,
- rgb (0.730889, 0.871916, 0.156029) ,
- rgb (0.741388, 0.873449, 0.149561) ,
- rgb (0.751884, 0.874951, 0.143228) ,
- rgb (0.762373, 0.876424, 0.137064) ,
- rgb (0.772852, 0.877868, 0.131109) ,
- rgb (0.783315, 0.879285, 0.125405) ,
- rgb (0.79376, 0.880678, 0.120005) ,
- rgb (0.804182, 0.882046, 0.114965) ,
- rgb (0.814576, 0.883393, 0.110347) ,
- rgb (0.82494, 0.88472, 0.106217) ,
- rgb (0.83527, 0.886029, 0.102646) ,
- rgb (0.845561, 0.887322, 0.099702) ,
- rgb (0.85581, 0.888601, 0.097452) ,
- rgb (0.866013, 0.889868, 0.095953) ,
- rgb (0.876168, 0.891125, 0.09525) ,
- rgb (0.886271, 0.892374, 0.095374) ,
- rgb (0.89632, 0.893616, 0.096335) ,
- rgb (0.906311, 0.894855, 0.098125) ,
- rgb (0.916242, 0.896091, 0.100717) ,
- rgb (0.926106, 0.89733, 0.104071) ,
- rgb (0.935904, 0.89857, 0.108131) ,
- rgb (0.945636, 0.899815, 0.112838) ,
- rgb (0.9553, 0.901065, 0.118128) ,
- rgb (0.964894, 0.902323, 0.123941) ,
- rgb (0.974417, 0.90359, 0.130215) ,
- rgb (0.983868, 0.904867, 0.136897) ,
- rgb (0.993248, 0.906157, 0.143936)
-});
+ rgb (0.267004, 0.004874, 0.329415) ,
+ rgb (0.26851, 0.009605, 0.335427) ,
+ rgb (0.269944, 0.014625, 0.341379) ,
+ rgb (0.271305, 0.019942, 0.347269) ,
+ rgb (0.272594, 0.025563, 0.353093) ,
+ rgb (0.273809, 0.031497, 0.358853) ,
+ rgb (0.274952, 0.037752, 0.364543) ,
+ rgb (0.276022, 0.044167, 0.370164) ,
+ rgb (0.277018, 0.050344, 0.375715) ,
+ rgb (0.277941, 0.056324, 0.381191) ,
+ rgb (0.278791, 0.062145, 0.386592) ,
+ rgb (0.279566, 0.067836, 0.391917) ,
+ rgb (0.280267, 0.073417, 0.397163) ,
+ rgb (0.280894, 0.078907, 0.402329) ,
+ rgb (0.281446, 0.08432, 0.407414) ,
+ rgb (0.281924, 0.089666, 0.412415) ,
+ rgb (0.282327, 0.094955, 0.417331) ,
+ rgb (0.282656, 0.100196, 0.42216) ,
+ rgb (0.28291, 0.105393, 0.426902) ,
+ rgb (0.283091, 0.110553, 0.431554) ,
+ rgb (0.283197, 0.11568, 0.436115) ,
+ rgb (0.283229, 0.120777, 0.440584) ,
+ rgb (0.283187, 0.125848, 0.44496) ,
+ rgb (0.283072, 0.130895, 0.449241) ,
+ rgb (0.282884, 0.13592, 0.453427) ,
+ rgb (0.282623, 0.140926, 0.457517) ,
+ rgb (0.28229, 0.145912, 0.46151) ,
+ rgb (0.281887, 0.150881, 0.465405) ,
+ rgb (0.281412, 0.155834, 0.469201) ,
+ rgb (0.280868, 0.160771, 0.472899) ,
+ rgb (0.280255, 0.165693, 0.476498) ,
+ rgb (0.279574, 0.170599, 0.479997) ,
+ rgb (0.278826, 0.17549, 0.483397) ,
+ rgb (0.278012, 0.180367, 0.486697) ,
+ rgb (0.277134, 0.185228, 0.489898) ,
+ rgb (0.276194, 0.190074, 0.493001) ,
+ rgb (0.275191, 0.194905, 0.496005) ,
+ rgb (0.274128, 0.199721, 0.498911) ,
+ rgb (0.273006, 0.20452, 0.501721) ,
+ rgb (0.271828, 0.209303, 0.504434) ,
+ rgb (0.270595, 0.214069, 0.507052) ,
+ rgb (0.269308, 0.218818, 0.509577) ,
+ rgb (0.267968, 0.223549, 0.512008) ,
+ rgb (0.26658, 0.228262, 0.514349) ,
+ rgb (0.265145, 0.232956, 0.516599) ,
+ rgb (0.263663, 0.237631, 0.518762) ,
+ rgb (0.262138, 0.242286, 0.520837) ,
+ rgb (0.260571, 0.246922, 0.522828) ,
+ rgb (0.258965, 0.251537, 0.524736) ,
+ rgb (0.257322, 0.25613, 0.526563) ,
+ rgb (0.255645, 0.260703, 0.528312) ,
+ rgb (0.253935, 0.265254, 0.529983) ,
+ rgb (0.252194, 0.269783, 0.531579) ,
+ rgb (0.250425, 0.27429, 0.533103) ,
+ rgb (0.248629, 0.278775, 0.534556) ,
+ rgb (0.246811, 0.283237, 0.535941) ,
+ rgb (0.244972, 0.287675, 0.53726) ,
+ rgb (0.243113, 0.292092, 0.538516) ,
+ rgb (0.241237, 0.296485, 0.539709) ,
+ rgb (0.239346, 0.300855, 0.540844) ,
+ rgb (0.237441, 0.305202, 0.541921) ,
+ rgb (0.235526, 0.309527, 0.542944) ,
+ rgb (0.233603, 0.313828, 0.543914) ,
+ rgb (0.231674, 0.318106, 0.544834) ,
+ rgb (0.229739, 0.322361, 0.545706) ,
+ rgb (0.227802, 0.326594, 0.546532) ,
+ rgb (0.225863, 0.330805, 0.547314) ,
+ rgb (0.223925, 0.334994, 0.548053) ,
+ rgb (0.221989, 0.339161, 0.548752) ,
+ rgb (0.220057, 0.343307, 0.549413) ,
+ rgb (0.21813, 0.347432, 0.550038) ,
+ rgb (0.21621, 0.351535, 0.550627) ,
+ rgb (0.214298, 0.355619, 0.551184) ,
+ rgb (0.212395, 0.359683, 0.55171) ,
+ rgb (0.210503, 0.363727, 0.552206) ,
+ rgb (0.208623, 0.367752, 0.552675) ,
+ rgb (0.206756, 0.371758, 0.553117) ,
+ rgb (0.204903, 0.375746, 0.553533) ,
+ rgb (0.203063, 0.379716, 0.553925) ,
+ rgb (0.201239, 0.38367, 0.554294) ,
+ rgb (0.19943, 0.387607, 0.554642) ,
+ rgb (0.197636, 0.391528, 0.554969) ,
+ rgb (0.19586, 0.395433, 0.555276) ,
+ rgb (0.1941, 0.399323, 0.555565) ,
+ rgb (0.192357, 0.403199, 0.555836) ,
+ rgb (0.190631, 0.407061, 0.556089) ,
+ rgb (0.188923, 0.41091, 0.556326) ,
+ rgb (0.187231, 0.414746, 0.556547) ,
+ rgb (0.185556, 0.41857, 0.556753) ,
+ rgb (0.183898, 0.422383, 0.556944) ,
+ rgb (0.182256, 0.426184, 0.55712) ,
+ rgb (0.180629, 0.429975, 0.557282) ,
+ rgb (0.179019, 0.433756, 0.55743) ,
+ rgb (0.177423, 0.437527, 0.557565) ,
+ rgb (0.175841, 0.44129, 0.557685) ,
+ rgb (0.174274, 0.445044, 0.557792) ,
+ rgb (0.172719, 0.448791, 0.557885) ,
+ rgb (0.171176, 0.45253, 0.557965) ,
+ rgb (0.169646, 0.456262, 0.55803) ,
+ rgb (0.168126, 0.459988, 0.558082) ,
+ rgb (0.166617, 0.463708, 0.558119) ,
+ rgb (0.165117, 0.467423, 0.558141) ,
+ rgb (0.163625, 0.471133, 0.558148) ,
+ rgb (0.162142, 0.474838, 0.55814) ,
+ rgb (0.160665, 0.47854, 0.558115) ,
+ rgb (0.159194, 0.482237, 0.558073) ,
+ rgb (0.157729, 0.485932, 0.558013) ,
+ rgb (0.15627, 0.489624, 0.557936) ,
+ rgb (0.154815, 0.493313, 0.55784) ,
+ rgb (0.153364, 0.497, 0.557724) ,
+ rgb (0.151918, 0.500685, 0.557587) ,
+ rgb (0.150476, 0.504369, 0.55743) ,
+ rgb (0.149039, 0.508051, 0.55725) ,
+ rgb (0.147607, 0.511733, 0.557049) ,
+ rgb (0.14618, 0.515413, 0.556823) ,
+ rgb (0.144759, 0.519093, 0.556572) ,
+ rgb (0.143343, 0.522773, 0.556295) ,
+ rgb (0.141935, 0.526453, 0.555991) ,
+ rgb (0.140536, 0.530132, 0.555659) ,
+ rgb (0.139147, 0.533812, 0.555298) ,
+ rgb (0.13777, 0.537492, 0.554906) ,
+ rgb (0.136408, 0.541173, 0.554483) ,
+ rgb (0.135066, 0.544853, 0.554029) ,
+ rgb (0.133743, 0.548535, 0.553541) ,
+ rgb (0.132444, 0.552216, 0.553018) ,
+ rgb (0.131172, 0.555899, 0.552459) ,
+ rgb (0.129933, 0.559582, 0.551864) ,
+ rgb (0.128729, 0.563265, 0.551229) ,
+ rgb (0.127568, 0.566949, 0.550556) ,
+ rgb (0.126453, 0.570633, 0.549841) ,
+ rgb (0.125394, 0.574318, 0.549086) ,
+ rgb (0.124395, 0.578002, 0.548287) ,
+ rgb (0.123463, 0.581687, 0.547445) ,
+ rgb (0.122606, 0.585371, 0.546557) ,
+ rgb (0.121831, 0.589055, 0.545623) ,
+ rgb (0.121148, 0.592739, 0.544641) ,
+ rgb (0.120565, 0.596422, 0.543611) ,
+ rgb (0.120092, 0.600104, 0.54253) ,
+ rgb (0.119738, 0.603785, 0.5414) ,
+ rgb (0.119512, 0.607464, 0.540218) ,
+ rgb (0.119423, 0.611141, 0.538982) ,
+ rgb (0.119483, 0.614817, 0.537692) ,
+ rgb (0.119699, 0.61849, 0.536347) ,
+ rgb (0.120081, 0.622161, 0.534946) ,
+ rgb (0.120638, 0.625828, 0.533488) ,
+ rgb (0.12138, 0.629492, 0.531973) ,
+ rgb (0.122312, 0.633153, 0.530398) ,
+ rgb (0.123444, 0.636809, 0.528763) ,
+ rgb (0.12478, 0.640461, 0.527068) ,
+ rgb (0.126326, 0.644107, 0.525311) ,
+ rgb (0.128087, 0.647749, 0.523491) ,
+ rgb (0.130067, 0.651384, 0.521608) ,
+ rgb (0.132268, 0.655014, 0.519661) ,
+ rgb (0.134692, 0.658636, 0.517649) ,
+ rgb (0.137339, 0.662252, 0.515571) ,
+ rgb (0.14021, 0.665859, 0.513427) ,
+ rgb (0.143303, 0.669459, 0.511215) ,
+ rgb (0.146616, 0.67305, 0.508936) ,
+ rgb (0.150148, 0.676631, 0.506589) ,
+ rgb (0.153894, 0.680203, 0.504172) ,
+ rgb (0.157851, 0.683765, 0.501686) ,
+ rgb (0.162016, 0.687316, 0.499129) ,
+ rgb (0.166383, 0.690856, 0.496502) ,
+ rgb (0.170948, 0.694384, 0.493803) ,
+ rgb (0.175707, 0.6979, 0.491033) ,
+ rgb (0.180653, 0.701402, 0.488189) ,
+ rgb (0.185783, 0.704891, 0.485273) ,
+ rgb (0.19109, 0.708366, 0.482284) ,
+ rgb (0.196571, 0.711827, 0.479221) ,
+ rgb (0.202219, 0.715272, 0.476084) ,
+ rgb (0.20803, 0.718701, 0.472873) ,
+ rgb (0.214, 0.722114, 0.469588) ,
+ rgb (0.220124, 0.725509, 0.466226) ,
+ rgb (0.226397, 0.728888, 0.462789) ,
+ rgb (0.232815, 0.732247, 0.459277) ,
+ rgb (0.239374, 0.735588, 0.455688) ,
+ rgb (0.24607, 0.73891, 0.452024) ,
+ rgb (0.252899, 0.742211, 0.448284) ,
+ rgb (0.259857, 0.745492, 0.444467) ,
+ rgb (0.266941, 0.748751, 0.440573) ,
+ rgb (0.274149, 0.751988, 0.436601) ,
+ rgb (0.281477, 0.755203, 0.432552) ,
+ rgb (0.288921, 0.758394, 0.428426) ,
+ rgb (0.296479, 0.761561, 0.424223) ,
+ rgb (0.304148, 0.764704, 0.419943) ,
+ rgb (0.311925, 0.767822, 0.415586) ,
+ rgb (0.319809, 0.770914, 0.411152) ,
+ rgb (0.327796, 0.77398, 0.40664) ,
+ rgb (0.335885, 0.777018, 0.402049) ,
+ rgb (0.344074, 0.780029, 0.397381) ,
+ rgb (0.35236, 0.783011, 0.392636) ,
+ rgb (0.360741, 0.785964, 0.387814) ,
+ rgb (0.369214, 0.788888, 0.382914) ,
+ rgb (0.377779, 0.791781, 0.377939) ,
+ rgb (0.386433, 0.794644, 0.372886) ,
+ rgb (0.395174, 0.797475, 0.367757) ,
+ rgb (0.404001, 0.800275, 0.362552) ,
+ rgb (0.412913, 0.803041, 0.357269) ,
+ rgb (0.421908, 0.805774, 0.35191) ,
+ rgb (0.430983, 0.808473, 0.346476) ,
+ rgb (0.440137, 0.811138, 0.340967) ,
+ rgb (0.449368, 0.813768, 0.335384) ,
+ rgb (0.458674, 0.816363, 0.329727) ,
+ rgb (0.468053, 0.818921, 0.323998) ,
+ rgb (0.477504, 0.821444, 0.318195) ,
+ rgb (0.487026, 0.823929, 0.312321) ,
+ rgb (0.496615, 0.826376, 0.306377) ,
+ rgb (0.506271, 0.828786, 0.300362) ,
+ rgb (0.515992, 0.831158, 0.294279) ,
+ rgb (0.525776, 0.833491, 0.288127) ,
+ rgb (0.535621, 0.835785, 0.281908) ,
+ rgb (0.545524, 0.838039, 0.275626) ,
+ rgb (0.555484, 0.840254, 0.269281) ,
+ rgb (0.565498, 0.84243, 0.262877) ,
+ rgb (0.575563, 0.844566, 0.256415) ,
+ rgb (0.585678, 0.846661, 0.249897) ,
+ rgb (0.595839, 0.848717, 0.243329) ,
+ rgb (0.606045, 0.850733, 0.236712) ,
+ rgb (0.616293, 0.852709, 0.230052) ,
+ rgb (0.626579, 0.854645, 0.223353) ,
+ rgb (0.636902, 0.856542, 0.21662) ,
+ rgb (0.647257, 0.8584, 0.209861) ,
+ rgb (0.657642, 0.860219, 0.203082) ,
+ rgb (0.668054, 0.861999, 0.196293) ,
+ rgb (0.678489, 0.863742, 0.189503) ,
+ rgb (0.688944, 0.865448, 0.182725) ,
+ rgb (0.699415, 0.867117, 0.175971) ,
+ rgb (0.709898, 0.868751, 0.169257) ,
+ rgb (0.720391, 0.87035, 0.162603) ,
+ rgb (0.730889, 0.871916, 0.156029) ,
+ rgb (0.741388, 0.873449, 0.149561) ,
+ rgb (0.751884, 0.874951, 0.143228) ,
+ rgb (0.762373, 0.876424, 0.137064) ,
+ rgb (0.772852, 0.877868, 0.131109) ,
+ rgb (0.783315, 0.879285, 0.125405) ,
+ rgb (0.79376, 0.880678, 0.120005) ,
+ rgb (0.804182, 0.882046, 0.114965) ,
+ rgb (0.814576, 0.883393, 0.110347) ,
+ rgb (0.82494, 0.88472, 0.106217) ,
+ rgb (0.83527, 0.886029, 0.102646) ,
+ rgb (0.845561, 0.887322, 0.099702) ,
+ rgb (0.85581, 0.888601, 0.097452) ,
+ rgb (0.866013, 0.889868, 0.095953) ,
+ rgb (0.876168, 0.891125, 0.09525) ,
+ rgb (0.886271, 0.892374, 0.095374) ,
+ rgb (0.89632, 0.893616, 0.096335) ,
+ rgb (0.906311, 0.894855, 0.098125) ,
+ rgb (0.916242, 0.896091, 0.100717) ,
+ rgb (0.926106, 0.89733, 0.104071) ,
+ rgb (0.935904, 0.89857, 0.108131) ,
+ rgb (0.945636, 0.899815, 0.112838) ,
+ rgb (0.9553, 0.901065, 0.118128) ,
+ rgb (0.964894, 0.902323, 0.123941) ,
+ rgb (0.974417, 0.90359, 0.130215) ,
+ rgb (0.983868, 0.904867, 0.136897) ,
+ rgb (0.993248, 0.906157, 0.143936)
+ });
Modified: trunk/Master/texmf-dist/asymptote/contour.asy
===================================================================
--- trunk/Master/texmf-dist/asymptote/contour.asy 2021-02-24 18:27:49 UTC (rev 57875)
+++ trunk/Master/texmf-dist/asymptote/contour.asy 2021-02-24 18:33:44 UTC (rev 57876)
@@ -1,10 +1,10 @@
// Contour routines written by Radoslav Marinov and John Bowman.
-
+
import graph_settings;
real eps=10000*realEpsilon;
-// 1
+// 1
// 6 +-------------------+ 5
// | \ / |
// | \ / |
@@ -16,7 +16,7 @@
// | / \ |
// | / \ |
// 7 +-------------------+ 4 or 8
-// 3
+// 3
private struct segment
{
@@ -76,11 +76,11 @@
private segment checktriangle(pair p0, pair p1, pair p2,
real v0, real v1, real v2, int edge=-1)
{
- // default null return
+ // default null return
static segment dflt;
real eps=eps*max(abs(v0),abs(v1),abs(v2));
-
+
if(v0 < -eps) {
if(v1 < -eps) {
if(v2 < -eps) return dflt; // nothing to do
@@ -92,10 +92,10 @@
else return case2(p1,p0,p2,v1,v0,v2,5+edge);
} else {
if(v2 < -eps) return case3(p0,p1,p2,v0,v1,v2,edge);
- else if(v2 <= eps)
+ else if(v2 <= eps)
return case2(p2,p0,p1,v2,v0,v1,edge);
else return case3(p1,p0,p2,v1,v0,v2,edge);
- }
+ }
} else if(v0 <= eps) {
if(v1 < -eps) {
if(v2 < -eps) return dflt; // nothing to do
@@ -109,7 +109,7 @@
if(v2 < -eps) return case2(p0,p1,p2,v0,v1,v2,4+edge);
else if(v2 <= eps) return case1(p0,p2,4+edge);
else return dflt; // nothing to do
- }
+ }
} else {
if(v1 < -eps) {
if(v2 < -eps) return case3(p1,p0,p2,v1,v0,v2,edge);
@@ -124,8 +124,8 @@
if(v2 < -eps) return case3(p0,p2,p1,v0,v2,v1);
else if(v2 <= eps) return dflt; // nothing to do
else return dflt; // nothing to do
- }
- }
+ }
+ }
}
// Collect connecting path segments.
@@ -135,7 +135,7 @@
int[] reverseF(int n) {return sequence(new int(int x){return n-1-x;},n-1);}
// use to reverse an array, omitting the last point
int[] reverseL(int n) {return sequence(new int(int x){return n-2-x;},n-1);}
-
+
for(int cnt=0; cnt < c.length; ++cnt) {
pair[][] gdscnt=points[cnt];
for(int i=0; i < gdscnt.length; ++i) {
@@ -144,11 +144,11 @@
for(int j=i+1; j < gdscnt.length; ++j) {
pair[] gjg=gdscnt[j];
int Lj=gjg.length;
- if(abs(gig[0]-gjg[0]) < eps) {
+ if(abs(gig[0]-gjg[0]) < eps) {
gdscnt[j]=gjg[reverseF(Lj)];
gdscnt[j].append(gig);
- gdscnt.delete(i);
- --i;
+ gdscnt.delete(i);
+ --i;
break;
} else if(abs(gig[0]-gjg[Lj-1]) < eps) {
gig.delete(0);
@@ -169,7 +169,7 @@
gdscnt.delete(i);
--i;
break;
- }
+ }
}
}
}
@@ -176,7 +176,8 @@
}
// Join path segments.
-private guide[][] connect(pair[][][] points, real[] c, interpolate join)
+private guide[][] connect(picture pic, pair[][][] points, real[] c,
+ interpolate join)
{
// set up return value
guide[][] result=new guide[c.length][];
@@ -189,13 +190,13 @@
if(pts.length > 0) {
if(pts.length > 1 && abs(pts[0]-pts[pts.length-1]) < eps) {
guide[] g=sequence(new guide(int i) {
- return pts[i];
+ return (pic.scale.x.T(pts[i].x), pic.scale.y.T(pts[i].y));
},pts.length-1);
g.push(cycle);
gd=join(...g);
} else
gd=join(...sequence(new guide(int i) {
- return pts[i];
+ return (pic.scale.x.T(pts[i].x), pic.scale.y.T(pts[i].y));
},pts.length));
}
resultcnt[i]=gd;
@@ -211,7 +212,7 @@
// midpoint: optional array containing values of f at cell midpoints
// c: array of contour values
// join: interpolation operator (e.g. operator -- or operator ..)
-guide[][] contour(pair[][] z, real[][] f,
+guide[][] contour(picture pic=currentpicture, pair[][] z, real[][] f,
real[][] midpoint=new real[][], real[] c,
interpolate join=operator --)
{
@@ -224,7 +225,7 @@
c=sort(c);
bool midpoints=midpoint.length > 0;
-
+
segment segments[][][]=new segment[nx][ny][];
// go over region a rectangle at a time
@@ -238,7 +239,7 @@
segment[][] segmentsi=segments[i];
for(int j=0; j < ny; ++j) {
segment[] segmentsij=segmentsi[j];
-
+
// define points
pair bleft=zi[j];
pair bright=zp[j];
@@ -264,26 +265,26 @@
int countm=0;
int countz=0;
int countp=0;
-
+
void check(real vertdat) {
if(vertdat < -eps) ++countm;
else {
- if(vertdat <= eps) ++countz;
+ if(vertdat <= eps) ++countz;
else ++countp;
}
}
-
+
check(vertdat0);
check(vertdat1);
check(vertdat2);
check(vertdat3);
- if(countm == 4) return 1; // nothing to do
- if(countp == 4) return -1; // nothing to do
+ if(countm == 4) return 1; // nothing to do
+ if(countp == 4) return -1; // nothing to do
if((countm == 3 || countp == 3) && countz == 1) return 0;
// go through the triangles
-
+
void addseg(segment seg) {
if(seg.active) {
seg.c=cnt;
@@ -301,7 +302,7 @@
vertdat0,vertdat1,vertdat4,3));
return 0;
}
-
+
void process(int l, int u) {
if(l >= u) return;
int i=quotient(l+u,2);
@@ -313,7 +314,7 @@
process(i+1,u);
}
}
-
+
process(0,c.length);
}
}
@@ -356,7 +357,7 @@
}
return -1;
}
-
+
int backward(int I, int J, bool first=true) {
if(I >= 0 && I < nx && J >= 0 && J < ny) {
segment[] segmentsIJ=segments[I][J];
@@ -380,7 +381,7 @@
}
return -1;
}
-
+
void follow(int f(int, int, bool first=true), int edge) {
int I=i;
int J=j;
@@ -445,7 +446,7 @@
collect(points,c); // Required to join remaining case1 cycles.
- return connect(points,c,join);
+ return connect(pic,points,c,join);
}
// Return contour guides for a 2D data array on a uniform lattice
@@ -454,8 +455,8 @@
// a,b: diagonally opposite vertices of rectangular domain
// c: array of contour values
// join: interpolation operator (e.g. operator -- or operator ..)
-guide[][] contour(real[][] f, real[][] midpoint=new real[][],
- pair a, pair b, real[] c,
+guide[][] contour(picture pic=currentpicture, real[][] f,
+ real[][] midpoint=new real[][], pair a, pair b, real[] c,
interpolate join=operator --)
{
int nx=f.length-1;
@@ -473,7 +474,7 @@
zi[j]=(xi,interp(a.y,b.y,j/ny));
}
}
- return contour(z,f,midpoint,c,join);
+ return contour(pic,z,f,midpoint,c,join);
}
// return contour guides for a real-valued function
@@ -482,14 +483,14 @@
// c: array of contour values
// nx,ny: number of subdivisions in x and y directions (determines accuracy)
// join: interpolation operator (e.g. operator -- or operator ..)
-guide[][] contour(real f(real, real), pair a, pair b,
- real[] c, int nx=ngraph, int ny=nx,
+guide[][] contour(picture pic=currentpicture, real f(real, real), pair a,
+ pair b, real[] c, int nx=ngraph, int ny=nx,
interpolate join=operator --)
{
// evaluate function at points and midpoints
real[][] dat=new real[nx+1][ny+1];
real[][] midpoint=new real[nx+1][ny+1];
-
+
for(int i=0; i <= nx; ++i) {
real x=interp(a.x,b.x,i/nx);
real x2=interp(a.x,b.x,(i+0.5)/nx);
@@ -501,9 +502,9 @@
}
}
- return contour(dat,midpoint,a,b,c,join);
+ return contour(pic,dat,midpoint,a,b,c,join);
}
-
+
void draw(picture pic=currentpicture, Label[] L=new Label[],
guide[][] g, pen[] p)
{
@@ -576,7 +577,7 @@
index=i;
}
}
- }
+ }
fillpalettei[j]=palette[index];
}
fillpalette[i]=fillpalettei;
@@ -620,7 +621,7 @@
// check existing guides and adds new segment to them if possible,
// or otherwise store segment as a new guide
private void addseg(pair[][] gds, segment seg)
-{
+{
if(!seg.active) return;
// search for a path to extend
for(int i=0; i < gds.length; ++i) {
@@ -629,33 +630,33 @@
gd.insert(0,seg.a);
return;
} else if(abs(gd[gd.length-1]-seg.b) < eps) {
- gd.push(seg.a);
+ gd.push(seg.a);
return;
} else if(abs(gd[0]-seg.a) < eps) {
gd.insert(0,seg.b);
return;
- } else if(abs(gd[gd.length-1]-seg.a) < eps) {
+ } else if(abs(gd[gd.length-1]-seg.a) < eps) {
gd.push(seg.b);
return;
}
}
-
+
// in case nothing is found
pair[] segm;
- segm=new pair[] {seg.a,seg.b};
+ segm=new pair[] {seg.a,seg.b};
gds.push(segm);
-
+
return;
}
-guide[][] contour(real f(pair), pair a, pair b,
+guide[][] contour(picture pic=currentpicture, real f(pair), pair a, pair b,
real[] c, int nx=ngraph, int ny=nx,
interpolate join=operator --)
{
- return contour(new real(real x, real y) {return f((x,y));},a,b,c,nx,ny,join);
+ return contour(pic,new real(real x, real y) {return f((x,y));},a,b,c,nx,ny,join);
}
-guide[][] contour(pair[] z, real[] f, real[] c, interpolate join=operator --)
+guide[][] contour(picture pic=currentpicture, pair[] z, real[] f, real[] c, interpolate join=operator --)
{
if(z.length != f.length)
abort("z and f arrays have different lengths");
@@ -664,7 +665,7 @@
// array to store guides found so far
pair[][][] points=new pair[c.length][][];
-
+
for(int cnt=0; cnt < c.length; ++cnt) {
pair[][] pointscnt=points[cnt];
real C=c[cnt];
@@ -678,5 +679,5 @@
collect(points,c);
- return connect(points,c,join);
+ return connect(pic,points,c,join);
}
Modified: trunk/Master/texmf-dist/asymptote/contour3.asy
===================================================================
--- trunk/Master/texmf-dist/asymptote/contour3.asy 2021-02-24 18:27:49 UTC (rev 57875)
+++ trunk/Master/texmf-dist/asymptote/contour3.asy 2021-02-24 18:33:44 UTC (rev 57876)
@@ -81,7 +81,7 @@
int j2=2j;
int j2p1=j2+1;
int j2p2=j2+2;
-
+
for(int k=0; k < nz; ++k) {
// vertex values
real vdat0=fij[k];
@@ -108,21 +108,21 @@
triple m3=0.25*(p100+p000+p001+p101);
triple m4=0.25*(p000+p010+p011+p001);
triple m5=0.25*(p001+p011+p111+p101);
- triple mc=0.5*(m0+m5);
+ triple mc=0.5*(m0+m5);
// optimization: we make sure we don't work with empty rectangles
int countm=0;
int countz=0;
int countp=0;
-
+
void check(real vdat) {
if(vdat < -eps) ++countm;
else {
- if(vdat <= eps) ++countz;
+ if(vdat <= eps) ++countz;
else ++countp;
}
}
-
+
check(vdat0);
check(vdat1);
check(vdat2);
@@ -132,32 +132,32 @@
check(vdat6);
check(vdat7);
- if(countm == 8 || countp == 8 ||
+ if(countm == 8 || countp == 8 ||
((countm == 7 || countp == 7) && countz == 1)) continue;
int k2=2k;
int k2p1=k2+1;
int k2p2=k2+2;
-
+
// Evaluate midpoints of cube sides.
// Then evaluate midpoint of cube.
real vdat8=midpoints ? midpoint[i2p1][j2p1][k2] :
0.25*(vdat0+vdat2+vdat6+vdat4);
- real vdat9=midpoints ? midpoint[i2p1][j2p2][k2p1] :
+ real vdat9=midpoints ? midpoint[i2p1][j2p2][k2p1] :
0.25*(vdat2+vdat6+vdat7+vdat3);
- real vdat10=midpoints ? midpoint[i2p2][j2p1][k2p1] :
+ real vdat10=midpoints ? midpoint[i2p2][j2p1][k2p1] :
0.25*(vdat7+vdat6+vdat4+vdat5);
- real vdat11=midpoints ? midpoint[i2p1][j2][k2p1] :
+ real vdat11=midpoints ? midpoint[i2p1][j2][k2p1] :
0.25*(vdat0+vdat4+vdat5+vdat1);
- real vdat12=midpoints ? midpoint[i2][j2p1][k2p1] :
+ real vdat12=midpoints ? midpoint[i2][j2p1][k2p1] :
0.25*(vdat0+vdat2+vdat3+vdat1);
- real vdat13=midpoints ? midpoint[i2p1][j2p1][k2p2] :
+ real vdat13=midpoints ? midpoint[i2p1][j2p1][k2p2] :
0.25*(vdat1+vdat3+vdat7+vdat5);
- real vdat14=midpoints ? midpoint[i2p1][j2p1][k2p1] :
+ real vdat14=midpoints ? midpoint[i2p1][j2p1][k2p1] :
0.125*(vdat0+vdat1+vdat2+vdat3+vdat4+vdat5+vdat6+vdat7);
-
+
// Go through the 24 pyramids, 4 for each side.
-
+
void addval(int kp0, int kp1, int kp2, triple add, triple v) {
bucket[] cur=kps[kp0][kp1][kp2];
for(int q=0; q < cur.length; ++q) {
@@ -192,8 +192,14 @@
vec0=unit(vec0);
triple normal=cross(vec2,vec1);
normal *= sgn(dot(normal,dir));
- real angle0=acos(-dot(vec1,vec2));
- real angle1=acos(-dot(vec2,vec0));
+
+ real angle(triple u, triple v) {
+ real Dot=-dot(u,v);
+ return Dot > 1 ? 0 : Dot < -1 ? pi : acos(Dot);
+ }
+
+ real angle0=angle(vec1,vec2);
+ real angle1=angle(vec2,vec0);
pts[0].normal=normal*angle0;
pts[1].normal=normal*angle1;
pts[2].normal=normal*(pi-angle0-angle1);
@@ -206,7 +212,7 @@
weighted[] points=obj.pts;
object obj1;
object obj2;
- obj1.active=true;
+ obj1.active=true;
obj2.active=true;
obj1.pts=new weighted[] {points[0],points[1],points[2]};
obj2.pts=new weighted[] {points[1],points[2],points[3]};
@@ -220,7 +226,7 @@
}
}
- weighted setupweighted(triple va, triple vb, real da, real db,
+ weighted setupweighted(triple va, triple vb, real da, real db,
int[] kpa, int[] kpb) {
weighted w;
real ratio=abs(da/(db-da));
@@ -318,7 +324,7 @@
static int[] pm4={0,1,1};
static int[] pm5={1,1,2};
static int[] pmc={1,1,1};
-
+
check4pyr(p000,p010,p110,p100,mc,m0,
vdat0,vdat2,vdat6,vdat4,vdat14,vdat8,
pp000,pp010,pp110,pp100,pmc,pm0);
@@ -378,14 +384,14 @@
ret.normal=normal*2/count;
return ret;
}
-
+
// Prepare return value.
vertex[][] g;
-
+
for(int q=0; q < objects.length; ++q) {
object p=objects[q];
g.push(new vertex[] {preparevertex(p.pts[0]),preparevertex(p.pts[1]),
- preparevertex(p.pts[2])});
+ preparevertex(p.pts[2])});
}
return g;
}
@@ -454,7 +460,7 @@
datij[k]=f(x,y,z);
if(i == nx || j == ny || k == nz) continue;
int k2p1=2k+1;
- midpointi2p1j2p1[2k]=f(x2,y2,z);
+ midpointi2p1j2p1[2k]=f(x2,y2,z);
midpointi2p1j2p1[k2p1]=f(x2,y2,z2);
midpointi2p1j2[k2p1]=f(x2,y,z2);
midpointi2j2p1[k2p1]=f(x,y2,z2);
Modified: trunk/Master/texmf-dist/asymptote/embed.asy
===================================================================
--- trunk/Master/texmf-dist/asymptote/embed.asy 2021-02-24 18:27:49 UTC (rev 57875)
+++ trunk/Master/texmf-dist/asymptote/embed.asy 2021-02-24 18:33:44 UTC (rev 57876)
@@ -7,23 +7,23 @@
// For documentation of the options see
// http://mirror.ctan.org/macros/latex/contrib/media9/doc/media9.pdf
-// Embed PRC or SWF content in pdf file
+// Embed PRC or SWF content in pdf file
string embedplayer(string name, string text="", string options="",
real width=0, real height=0)
{
- if(width != 0) options += ",width="+(string) (width/pt)+"pt";
- if(height != 0) options += ",height="+(string) (height/pt)+"pt";
+ if(width != 0) options += ",width="+(string) (width/pt)+"pt";
+ if(height != 0) options += ",height="+(string) (height/pt)+"pt";
return "%
\includemedia[noplaybutton,"+options+"]{"+text+"}{"+name+"}";
}
-// Embed media in pdf file
+// Embed media in pdf file
string embed(string name, string text="", string options="",
real width=0, real height=0)
{
return embedplayer("VPlayer.swf",text,"label="+name+
",activate=pageopen,addresource="+name+
- ",flashvars={source="+name+"&scaleMode=letterbox},"+
+ ",flashvars={source="+name+"&scaleMode=letterbox},"+
options,width,height);
}
Modified: trunk/Master/texmf-dist/asymptote/external.asy
===================================================================
--- trunk/Master/texmf-dist/asymptote/external.asy 2021-02-24 18:27:49 UTC (rev 57875)
+++ trunk/Master/texmf-dist/asymptote/external.asy 2021-02-24 18:33:44 UTC (rev 57876)
@@ -20,8 +20,8 @@
atexit(exitfunction);
}
}
- if(width != 0) options += ", width="+(string) (width/pt)+"pt";
- if(height != 0) options +=", height="+(string) (height/pt)+"pt";
+ if(width != 0) options += ", width="+(string) (width/pt)+"pt";
+ if(height != 0) options +=", height="+(string) (height/pt)+"pt";
return "\href{run:"+name+"}{"+graphic(image,options)+"}";
}
Modified: trunk/Master/texmf-dist/asymptote/feynman.asy
===================================================================
--- trunk/Master/texmf-dist/asymptote/feynman.asy 2021-02-24 18:27:49 UTC (rev 57875)
+++ trunk/Master/texmf-dist/asymptote/feynman.asy 2021-02-24 18:33:44 UTC (rev 57876)
@@ -10,12 +10,12 @@
// default ratio of width (distance between two loops) to amplitude for a gluon
// line. The gluon function uses this ratio, if the width parameter is
-// negative.
+// negative.
real gluonratio;
// default ratio of width (distance between two crests) to amplitude for a
// photon line. The photon function uses this ratio, if the width parameter is
-// negative.
+// negative.
real photonratio;
// default gluon amplitude
@@ -337,7 +337,7 @@
real vertexangle = minvertexangle,
real margin = linemargin)
{
- if(erasebg) do_overpaint(pic, p, bgpen,
+ if(erasebg) do_overpaint(pic, p, bgpen,
linewidth(fgpen)+margin, vertexangle);
draw(pic, p, fgpen, arrow);
}
@@ -358,7 +358,7 @@
real vertexangle = minvertexangle,
real margin = linemargin)
{
- if(erasebg) do_overpaint(pic, p, bgpen,
+ if(erasebg) do_overpaint(pic, p, bgpen,
linewidth(fgpen)+margin, vertexangle);
real htw = linewidth(fgpen)+dlspacing/2;
@@ -466,7 +466,7 @@
pen fgpen = vertexpen)
{
draw(pic, shift(xy)*scale(r)*((-1,-1)--(1,1)), fgpen);
- draw(pic, shift(xy)*scale(r)*((1,-1)--(-1,1)), fgpen);
+ draw(pic, shift(xy)*scale(r)*((1,-1)--(-1,1)), fgpen);
}
// draw a circle with an X in the middle on picture pic, at position xy with
@@ -508,7 +508,7 @@
}
// draw a momentum arrow on picture pic, along path p, at position position
-// (use one of the predefined pairs left or right), with an offset offset
+// (use one of the predefined pairs left or right), with an offset offset
// from the path, a length length, a pen fgpen and an arrowhead arrow. Making
// adjust nonzero shifts the momentum arrow along the path. If erasebg is true,
// the background is erased inside a margin margin around the momentum arrow.
@@ -527,7 +527,7 @@
real margin = momarrowmargin)
{
path momarrow = momArrowPath(p, align, pos, offset, length);
- if(erasebg) do_overpaint(pic, momarrow, bgpen,
+ if(erasebg) do_overpaint(pic, momarrow, bgpen,
linewidth(fgpen)+margin, 90);
draw(pic, momarrow, fgpen, arrow);
}
@@ -540,7 +540,7 @@
// (essentially, currentpen, arrowfactor and dotfactor). After customising the
// default parameters of plain.asy, you may call fmdefaults to adjust the
// parameters of feynman.asy.
-void fmdefaults()
+void fmdefaults()
{
real arrowsize=arrowsize(currentpen);
real linewidth=linewidth(currentpen);
Modified: trunk/Master/texmf-dist/asymptote/flowchart.asy
===================================================================
--- trunk/Master/texmf-dist/asymptote/flowchart.asy 2021-02-24 18:27:49 UTC (rev 57875)
+++ trunk/Master/texmf-dist/asymptote/flowchart.asy 2021-02-24 18:33:44 UTC (rev 57876)
@@ -57,29 +57,29 @@
// in absolute coordinates.
pair top(transform t=identity()) {
return shift(t)+f_top;
- }
+ }
pair bottom(transform t=identity()) {
return shift(t)+f_bottom;
- }
+ }
pair left(transform t=identity()) {
return shift(t)+f_left;
- }
+ }
pair right(transform t=identity()) {
return shift(t)+f_right;
- }
+ }
pair topleft(transform t=identity()) {
return shift(t)+f_topleft;
- }
+ }
pair topright(transform t=identity()) {
return shift(t)+f_topright;
- }
+ }
pair bottomleft(transform t=identity()) {
return shift(t)+f_bottomleft;
- }
+ }
pair bottomright(transform t=identity()) {
return shift(t)+f_bottomright;
- }
-
+ }
+
// Return a frame representing the block.
frame draw(pen p=currentpen);
@@ -118,25 +118,25 @@
block block;
block.draw=new frame(pen p) {
- frame block;
- filldraw(block,shift(0,z1.y)*box((0,0),z0),headerpen,drawpen);
- add(block,shift(-0.5*(Mheader+mheader))*fheader,(0,z1.y)+0.5z0);
- filldraw(block,box((0,0),z1),bodypen,drawpen);
- add(block,shift(-0.5*(Mbody+mbody))*fbody,0.5z1);
- return block;
+ frame block;
+ filldraw(block,shift(0,z1.y)*box((0,0),z0),headerpen,drawpen);
+ add(block,shift(-0.5*(Mheader+mheader))*fheader,(0,z1.y)+0.5z0);
+ filldraw(block,box((0,0),z1),bodypen,drawpen);
+ add(block,shift(-0.5*(Mbody+mbody))*fbody,0.5z1);
+ return block;
};
block.f_position=new pair(real x) {
- return point(shape,x);
+ return point(shape,x);
};
block.f_center=interp(point(shape,0),point(shape,3),0.5);
- block.f_bottomleft=point(shape,0);
- block.f_bottom=point(shape,5.5);
- block.f_bottomright=point(shape,5);
- block.f_right=point(shape,4.5);
- block.f_topright=point(shape,3);
- block.f_top=point(shape,2.5);
- block.f_topleft=point(shape,2);
- block.f_left=point(shape,0.5);
+ block.f_bottomleft=point(shape,0);
+ block.f_bottom=point(shape,5.5);
+ block.f_bottomright=point(shape,5);
+ block.f_right=point(shape,4.5);
+ block.f_topright=point(shape,3);
+ block.f_top=point(shape,2.5);
+ block.f_topleft=point(shape,2);
+ block.f_left=point(shape,0.5);
block.center=center;
block.size=point(shape,3);
return block;
@@ -156,25 +156,25 @@
block block;
block.draw=new frame(pen p) {
- frame block;
- filldraw(block,shape,fillpen,drawpen);
- add(block,shift(-0.5*(M+m))*f,0.5z);
- return block;
+ frame block;
+ filldraw(block,shape,fillpen,drawpen);
+ add(block,shift(-0.5*(M+m))*f,0.5z);
+ return block;
};
block.f_position=new pair(real x) {
- return point(shape,x);
+ return point(shape,x);
};
block.f_center=0.5*z;
block.center=center;
block.size=z;
block.f_bottomleft=point(shape,0);
- block.f_bottom=point(shape,0.5);
- block.f_bottomright=point(shape,1);
- block.f_right=point(shape,1.5);
- block.f_topright=point(shape,2);
- block.f_top=point(shape,2.5);
- block.f_topleft=point(shape,3);
- block.f_left=point(shape,3.5);
+ block.f_bottom=point(shape,0.5);
+ block.f_bottomright=point(shape,1);
+ block.f_right=point(shape,1.5);
+ block.f_topright=point(shape,2);
+ block.f_top=point(shape,2.5);
+ block.f_topleft=point(shape,3);
+ block.f_left=point(shape,3.5);
return block;
}
@@ -197,13 +197,13 @@
block block;
block.draw=new frame(pen p) {
- frame block;
- filldraw(block,shape,fillpen,drawpen);
- add(block,shift(-0.5*(M+m))*f,((a+skew)/2,b/2));
- return block;
+ frame block;
+ filldraw(block,shape,fillpen,drawpen);
+ add(block,shift(-0.5*(M+m))*f,((a+skew)/2,b/2));
+ return block;
};
block.f_position=new pair(real x) {
- return point(shape,x);
+ return point(shape,x);
};
block.f_center=((a+skew)/2,b/2);
block.center=center;
@@ -229,7 +229,7 @@
pair m=min(f);
pair M=max(f);
pair bound=maxbound(M-m,(minwidth,minheight));
-
+
real e=ds;
real a=0.5bound.x-dw;
real b=0.5bound.y;
@@ -244,25 +244,25 @@
block block;
block.draw=new frame(pen p) {
- frame block;
- filldraw(block,shape,fillpen,drawpen);
- add(block,shift(-0.5*(M+m))*f,(d,c));
- return block;
+ frame block;
+ filldraw(block,shape,fillpen,drawpen);
+ add(block,shift(-0.5*(M+m))*f,(d,c));
+ return block;
};
block.f_position=new pair(real x) {
- return point(shape,x);
+ return point(shape,x);
};
block.f_center=(point(shape,1).x,point(shape,0).y);
block.center=center;
block.size=(point(shape,0).x,point(shape,1).y);
- block.f_bottomleft=point(shape,2.5);
- block.f_bottom=point(shape,3);
- block.f_bottomright=point(shape,3.5);
- block.f_right=point(shape,0);
- block.f_topright=point(shape,0.5);
- block.f_top=point(shape,1);
- block.f_topleft=point(shape,1.5);
- block.f_left=point(shape,2);
+ block.f_bottomleft=point(shape,2.5);
+ block.f_bottom=point(shape,3);
+ block.f_bottomright=point(shape,3.5);
+ block.f_right=point(shape,0);
+ block.f_topright=point(shape,0.5);
+ block.f_top=point(shape,1);
+ block.f_topleft=point(shape,1.5);
+ block.f_left=point(shape,2);
return block;
}
@@ -274,30 +274,30 @@
pair m=min(f);
pair M=max(f);
real r=max(0.5length(M-m)+dr,0.5mindiameter);
-
+
path shape=(0,r)..(r,2r)..(2r,r)..(r,0)..cycle;
-
+
block block;
block.draw=new frame(pen p) {
- frame block;
- filldraw(block,shape,fillpen,drawpen);
- add(block,shift(-0.5*(M+m))*f,(r,r));
- return block;
+ frame block;
+ filldraw(block,shape,fillpen,drawpen);
+ add(block,shift(-0.5*(M+m))*f,(r,r));
+ return block;
};
block.f_position=new pair(real x) {
- return point(shape,x);
+ return point(shape,x);
};
block.f_center=(r,r);
block.center=center;
block.size=(2r,2r);
block.f_left=point(shape,0);
- block.f_topleft=point(shape,0.5);
- block.f_top=point(shape,1);
- block.f_topright=point(shape,1.5);
- block.f_right=point(shape,2);
- block.f_bottomright=point(shape,2.5);
- block.f_bottom=point(shape,3);
- block.f_bottomleft=point(shape,3.5);
+ block.f_topleft=point(shape,0.5);
+ block.f_top=point(shape,1);
+ block.f_topright=point(shape,1.5);
+ block.f_right=point(shape,2);
+ block.f_bottomright=point(shape,2.5);
+ block.f_bottom=point(shape,3);
+ block.f_bottomleft=point(shape,3.5);
return block;
}
@@ -313,33 +313,33 @@
real a=bound.x;
real b=bound.y;
-
+
path shape=(0,ds+dw)--(0,ds+b-dw){up}..{right}
(ds+dw,2ds+b)--(ds+a-dw,2ds+b){right}..{down}
(2ds+a,ds+b-dw)--(2ds+a,ds+dw){down}..{left}
(ds+a-dw,0)--(ds+dw,0){left}..{up}cycle;
-
+
block block;
block.draw=new frame(pen p) {
- frame block;
- filldraw(block,shape,fillpen,drawpen);
- add(block,shift(-0.5*(M+m))*f,(ds,ds)+0.5bound);
- return block;
+ frame block;
+ filldraw(block,shape,fillpen,drawpen);
+ add(block,shift(-0.5*(M+m))*f,(ds,ds)+0.5bound);
+ return block;
};
block.f_position=new pair(real x) {
- return point(shape,x);
+ return point(shape,x);
};
block.f_center=(ds+0.5a,ds+0.5b);
block.center=center;
block.size=(2ds+a,2ds+b);
- block.f_bottomleft=point(shape,7.5);
- block.f_bottom=point(shape,6.5);
- block.f_bottomright=point(shape,5.5);
- block.f_right=point(shape,4.5);
- block.f_topright=point(shape,3.5);
- block.f_top=point(shape,2.5);
- block.f_topleft=point(shape,1.5);
- block.f_left=point(shape,0.5);
+ block.f_bottomleft=point(shape,7.5);
+ block.f_bottom=point(shape,6.5);
+ block.f_bottomright=point(shape,5.5);
+ block.f_right=point(shape,4.5);
+ block.f_topright=point(shape,3.5);
+ block.f_top=point(shape,2.5);
+ block.f_topleft=point(shape,1.5);
+ block.f_left=point(shape,0.5);
return block;
}
@@ -359,25 +359,25 @@
(dw+a,0)--cycle;
block block;
block.draw=new frame(pen p) {
- frame block;
- filldraw(block,shape,fillpen,drawpen);
- add(block,shift(-0.5*(M+m))*f,(0.5bound+(dw,dh)));
- return block;
+ frame block;
+ filldraw(block,shape,fillpen,drawpen);
+ add(block,shift(-0.5*(M+m))*f,(0.5bound+(dw,dh)));
+ return block;
};
block.f_position=new pair(real x) {
- return point(shape,x);
+ return point(shape,x);
};
block.f_center=(dw+0.5a,dh+b);
block.center=center;
block.size=(2dw+a,2dh+2b);
- block.f_bottomleft=point(shape,4);
- block.f_bottom=point(shape,4.5);
- block.f_bottomright=point(shape,5);
- block.f_right=point(shape,0);
- block.f_topright=point(shape,1);
- block.f_top=point(shape,1.5);
- block.f_topleft=point(shape,2);
- block.f_left=point(shape,3);
+ block.f_bottomleft=point(shape,4);
+ block.f_bottom=point(shape,4.5);
+ block.f_bottomright=point(shape,5);
+ block.f_right=point(shape,0);
+ block.f_topright=point(shape,1);
+ block.f_top=point(shape,1.5);
+ block.f_topleft=point(shape,2);
+ block.f_left=point(shape,3);
return block;
}
@@ -388,14 +388,14 @@
for(int i=1; i < point.length; ++i) {
if(i-1 >= dir.length || dir[i-1] == Horizontal)
current=(point[i].x,point[i-1].y);
- else
+ else
current=(point[i-1].x,point[i].y);
-
+
if(current != prev) {
line=line--current;
prev=current;
}
-
+
current=point[i];
if(current != prev) {
line=line--current;
Modified: trunk/Master/texmf-dist/asymptote/geometry.asy
===================================================================
--- trunk/Master/texmf-dist/asymptote/geometry.asy 2021-02-24 18:27:49 UTC (rev 57875)
+++ trunk/Master/texmf-dist/asymptote/geometry.asy 2021-02-24 18:33:44 UTC (rev 57876)
@@ -40,7 +40,7 @@
real angle=degrees(dir);
if(angle > 90 && angle < 270) angle -= 180;
return rotate(angle);
-}
+}
// *=======================================================*
// *........................HEADER.........................*
@@ -165,7 +165,7 @@
ed = ea - 6 * eb;
ee = ed + ec + ec;
return 3 * sum + fac * (1.0 + ed * (-C1 + C5 * ed - C6 * delz * ee)
- +delz * (C2 * ee + delz * (-C3 * ec + delz * C4 * ea)))/(ave * sqrt(ave));
+ +delz * (C2 * ee + delz * (-C3 * ec + delz * C4 * ea)))/(ave * sqrt(ave));
}
/*<asyxml><function type="real" signature="elle(real,real)"><code></asyxml>*/
@@ -258,10 +258,10 @@
{/*<asyxml></code><documentation>This structure represents a coordinate system in the plane.</documentation></asyxml>*/
/*<asyxml><method type = "pair" signature="relativetodefault(pair)"><code></asyxml>*/
restricted convert relativetodefault = new pair(pair m){return m;};/*<asyxml></code><documentation>Convert a pair given relatively to this coordinate system to
- the pair relatively to the default coordinate system.</documentation></method></asyxml>*/
+ the pair relatively to the default coordinate system.</documentation></method></asyxml>*/
/*<asyxml><method type = "pair" signature="defaulttorelativet(pair)"><code></asyxml>*/
restricted convert defaulttorelative = new pair(pair m){return m;};/*<asyxml></code><documentation>Convert a pair given relatively to the default coordinate system to
- the pair relatively to this coordinate system.</documentation></method></asyxml>*/
+ the pair relatively to this coordinate system.</documentation></method></asyxml>*/
/*<asyxml><method type = "real" signature="dot(pair,pair)"><code></asyxml>*/
restricted dot dot = new real(pair m, pair n){return dot(m, n);};/*<asyxml></code><documentation>Return the dot product of this coordinate system.</documentation></method></asyxml>*/
/*<asyxml><method type = "real" signature="abs(pair)"><code></asyxml>*/
@@ -287,50 +287,50 @@
/*<asyxml><operator type = "bool" signature="==(coordsys,coordsys)"><code></asyxml>*/
bool operator ==(coordsys c1, coordsys c2)
-{/*<asyxml></code><documentation>Return true iff the coordinate system have the same origin and units vector.</documentation></operator></asyxml>*/
- return c1.O == c2.O && c1.i == c2.i && c1.j == c2.j;
-}
+ {/*<asyxml></code><documentation>Return true iff the coordinate system have the same origin and units vector.</documentation></operator></asyxml>*/
+ return c1.O == c2.O && c1.i == c2.i && c1.j == c2.j;
+ }
/*<asyxml><function type="coordsys" signature="cartesiansystem(pair,pair,pair)"><code></asyxml>*/
coordsys cartesiansystem(pair O = (0, 0), pair i, pair j)
{/*<asyxml></code><documentation>Return the Cartesian coordinate system (O, i, j).</documentation></function></asyxml>*/
- coordsys R;
- real[][] P = {{0, 0}, {0, 0}};
- real[][] iP;
- P[0][0] = i.x;
- P[0][1] = j.x;
- P[1][0] = i.y;
- P[1][1] = j.y;
- iP = inverse(P);
- real ni = abs(i);
- real nj = abs(j);
- real ij = angle(j) - angle(i);
+ coordsys R;
+ real[][] P = {{0, 0}, {0, 0}};
+ real[][] iP;
+ P[0][0] = i.x;
+ P[0][1] = j.x;
+ P[1][0] = i.y;
+ P[1][1] = j.y;
+ iP = inverse(P);
+ real ni = abs(i);
+ real nj = abs(j);
+ real ij = angle(j) - angle(i);
- pair rtd(pair m)
- {
- return O + (P[0][0] * m.x + P[0][1] * m.y, P[1][0] * m.x + P[1][1] * m.y);
- }
+ pair rtd(pair m)
+ {
+ return O + (P[0][0] * m.x + P[0][1] * m.y, P[1][0] * m.x + P[1][1] * m.y);
+ }
- pair dtr(pair m)
- {
- m-=O;
- return (iP[0][0] * m.x + iP[0][1] * m.y, iP[1][0] * m.x + iP[1][1] * m.y);
- }
+ pair dtr(pair m)
+ {
+ m-=O;
+ return (iP[0][0] * m.x + iP[0][1] * m.y, iP[1][0] * m.x + iP[1][1] * m.y);
+ }
- pair polar(real r, real a)
- {
- real ca = sin(ij - a)/(ni * sin(ij));
- real sa = sin(a)/(nj * sin(ij));
- return r * (ca, sa);
- }
+ pair polar(real r, real a)
+ {
+ real ca = sin(ij - a)/(ni * sin(ij));
+ real sa = sin(a)/(nj * sin(ij));
+ return r * (ca, sa);
+ }
- real tdot(pair m, pair n)
- {
- return m.x * n.x * ni^2 + m.y * n.y * nj^2 + (m.x * n.y + n.x * m.y) * dot(i, j);
- }
+ real tdot(pair m, pair n)
+ {
+ return m.x * n.x * ni^2 + m.y * n.y * nj^2 + (m.x * n.y + n.x * m.y) * dot(i, j);
+ }
- R.init(rtd, dtr, polar, tdot);
- return R;
+ R.init(rtd, dtr, polar, tdot);
+ return R;
}
@@ -344,19 +344,19 @@
pen jpen = ipen,
arrowbar arrow = Arrow)
{/*<asyxml></code><documentation>Draw the components (O, i, j, x - axis, y - axis) of 'R'.</documentation></function></asyxml>*/
- unravel R;
- dot(pic, O, dotpen);
- drawline(pic, O, O + i, xpen);
- drawline(pic, O, O + j, ypen);
- draw(pic, li, O--(O + i), ipen, arrow);
- Label lj = lj.copy();
- lj.align(lj.align, unit(I * j));
- draw(pic, lj, O--(O + j), jpen, arrow);
- draw(pic, lj, O--(O + j), jpen, arrow);
- Label lo = lo.copy();
- lo.align(lo.align, -2 * dir(O--O + i, O--O + j));
- lo.p(dotpen);
- label(pic, lo, O);
+ unravel R;
+ dot(pic, O, dotpen);
+ drawline(pic, O, O + i, xpen);
+ drawline(pic, O, O + j, ypen);
+ draw(pic, li, O--(O + i), ipen, arrow);
+ Label lj = lj.copy();
+ lj.align(lj.align, unit(I * j));
+ draw(pic, lj, O--(O + j), jpen, arrow);
+ draw(pic, lj, O--(O + j), jpen, arrow);
+ Label lo = lo.copy();
+ lo.align(lo.align, -2 * dir(O--O + i, O--O + j));
+ lo.p(dotpen);
+ label(pic, lo, O);
}
/*<asyxml><operator type = "pair" signature="/(pair,coordsys)"><code></asyxml>*/
@@ -364,7 +364,7 @@
{/*<asyxml></code><documentation>Return the xy - coordinates of 'p' relatively to
the coordinate system 'R'.
For example, if R = cartesiansystem((1, 2), (1, 0), (0, 1)), (0, 0)/R is (-1, -2).</documentation></operator></asyxml>*/
- return R.defaulttorelative(p);
+ return R.defaulttorelative(p);
}
/*<asyxml><operator type = "pair" signature="*(coordsys,pair)"><code></asyxml>*/
@@ -372,25 +372,25 @@
{/*<asyxml></code><documentation>Return the coordinates of 'p' given in the
xy - coordinates 'R'.
For example, if R = cartesiansystem((1, 2), (1, 0), (0, 1)), R * (0, 0) is (1, 2).</documentation></operator></asyxml>*/
- return R.relativetodefault(p);
+ return R.relativetodefault(p);
}
/*<asyxml><operator type = "path" signature="*(coordsys,path)"><code></asyxml>*/
path operator *(coordsys R, path g)
{/*<asyxml></code><documentation>Return the reconstructed path applying R * pair to each node, pre and post control point of 'g'.</documentation></operator></asyxml>*/
- guide og = R * point(g, 0);
- real l = length(g);
- for(int i = 1; i <= l; ++i)
- {
- pair P = R * point(g, i);
- pair post = R * postcontrol(g, i - 1);
- pair pre = R * precontrol(g, i);
- if(i == l && (cyclic(g)))
- og = og..controls post and pre..cycle;
- else
- og = og..controls post and pre..P;
- }
- return og;
+ guide og = R * point(g, 0);
+ real l = length(g);
+ for(int i = 1; i <= l; ++i)
+ {
+ pair P = R * point(g, i);
+ pair post = R * postcontrol(g, i - 1);
+ pair pre = R * precontrol(g, i);
+ if(i == l && (cyclic(g)))
+ og = og..controls post and pre..cycle;
+ else
+ og = og..controls post and pre..P;
+ }
+ return og;
}
/*<asyxml><operator type = "coordsys" signature="*(transform,coordsys)"><code></asyxml>*/
@@ -397,9 +397,9 @@
coordsys operator *(transform t,coordsys R)
{/*<asyxml></code><documentation>Provide transform * coordsys.
Note that shiftless(t) is applied to R.i and R.j.</documentation></operator></asyxml>*/
- coordsys oc;
- oc = cartesiansystem(t * R.O, shiftless(t) * R.i, shiftless(t) * R.j);
- return oc;
+ coordsys oc;
+ oc = cartesiansystem(t * R.O, shiftless(t) * R.i, shiftless(t) * R.j);
+ return oc;
}
/*<asyxml><constant type = "coordsys" signature="defaultcoordsys"><code></asyxml>*/
@@ -651,26 +651,26 @@
/*<asyxml><operator type = "bool" signature="==(explicit point,explicit point)"><code></asyxml>*/
bool operator ==(explicit point M, explicit point N)
-{/*<asyxml></code><documentation>Provide the test 'M == N' wish returns true iff MN < EPS</documentation></operator></asyxml>*/
- return abs(locate(M) - locate(N)) < EPS;
-}
+ {/*<asyxml></code><documentation>Provide the test 'M == N' wish returns true iff MN < EPS</documentation></operator></asyxml>*/
+ return abs(locate(M) - locate(N)) < EPS;
+ }
/*<asyxml><operator type = "bool" signature="!=(explicit point,explicit point)"><code></asyxml>*/
bool operator !=(explicit point M, explicit point N)
{/*<asyxml></code><documentation>Provide the test 'M != N' wish return true iff MN >= EPS</documentation></operator></asyxml>*/
- return !(M == N);
+ return !(M == N);
}
/*<asyxml><operator type = "guide" signature="cast(point)"><code></asyxml>*/
guide operator cast(point p)
{/*<asyxml></code><documentation>Cast point to guide.</documentation></operator></asyxml>*/
- return locate(p);
+ return locate(p);
}
/*<asyxml><operator type = "path" signature="cast(point)"><code></asyxml>*/
path operator cast(point p)
{/*<asyxml></code><documentation>Cast point to path.</documentation></operator></asyxml>*/
- return locate(p);
+ return locate(p);
}
/*<asyxml><function type="void" signature="dot(picture,Label,explicit point,align,string,pen)"><code></asyxml>*/
@@ -678,70 +678,70 @@
align align = NoAlign,
string format = defaultformat, pen p = currentpen)
{/*<asyxml></code><documentation></documentation></function></asyxml>*/
- Label L = L.copy();
- L.position(locate(Z));
- if(L.s == "") {
- if(format == "") format = defaultformat;
- L.s = "("+format(format, Z.x)+", "+format(format, Z.y)+")";
- }
- L.align(align, E);
- L.p(p);
- dot(pic, locate(Z), p);
- add(pic, L);
+ Label L = L.copy();
+ L.position(locate(Z));
+ if(L.s == "") {
+ if(format == "") format = defaultformat;
+ L.s = "("+format(format, Z.x)+", "+format(format, Z.y)+")";
+ }
+ L.align(align, E);
+ L.p(p);
+ dot(pic, locate(Z), p);
+ add(pic, L);
}
/*<asyxml><function type="real" signature="abs(coordsys,pair)"><code></asyxml>*/
real abs(coordsys R, pair m)
{/*<asyxml></code><documentation>Return the modulus |m| in the coordinate system 'R'.</documentation></function></asyxml>*/
- return R.abs(m);
+ return R.abs(m);
}
/*<asyxml><function type="real" signature="abs(explicit point)"><code></asyxml>*/
real abs(explicit point M)
{/*<asyxml></code><documentation>Return the modulus |M| in its coordinate system.</documentation></function></asyxml>*/
- return M.coordsys.abs(M.coordinates);
+ return M.coordsys.abs(M.coordinates);
}
/*<asyxml><function type="real" signature="length(explicit point)"><code></asyxml>*/
real length(explicit point M)
{/*<asyxml></code><documentation>Return the modulus |M| in its coordinate system (same as 'abs').</documentation></function></asyxml>*/
- return M.coordsys.abs(M.coordinates);
+ return M.coordsys.abs(M.coordinates);
}
/*<asyxml><function type="point" signature="conj(explicit point)"><code></asyxml>*/
point conj(explicit point M)
{/*<asyxml></code><documentation>Conjugate.</documentation></function></asyxml>*/
- return point(M.coordsys, conj(M.coordinates), M.m);
+ return point(M.coordsys, conj(M.coordinates), M.m);
}
/*<asyxml><function type="real" signature="degrees(explicit point,coordsys,bool)"><code></asyxml>*/
real degrees(explicit point M, coordsys R = M.coordsys, bool warn = true)
{/*<asyxml></code><documentation>Return the angle of M (in degrees) relatively to 'R'.</documentation></function></asyxml>*/
- return (degrees(locate(M) - R.O, warn) - degrees(R.i))%360;
+ return (degrees(locate(M) - R.O, warn) - degrees(R.i))%360;
}
/*<asyxml><function type="real" signature="angle(explicit point,coordsys,bool)"><code></asyxml>*/
real angle(explicit point M, coordsys R = M.coordsys, bool warn = true)
{/*<asyxml></code><documentation>Return the angle of M (in radians) relatively to 'R'.</documentation></function></asyxml>*/
- return radians(degrees(M, R, warn));
+ return radians(degrees(M, R, warn));
}
bool Finite(explicit point z)
{
- return abs(z.x) < Infinity && abs(z.y) < Infinity;
+ return abs(z.x) < Infinity && abs(z.y) < Infinity;
}
/*<asyxml><function type="bool" signature="finite(explicit point)"><code></asyxml>*/
bool finite(explicit point p)
{/*<asyxml></code><documentation>Avoid to compute 'finite((pair)(infinite_point))'.</documentation></function></asyxml>*/
- return finite(p.coordinates);
+ return finite(p.coordinates);
}
/*<asyxml><function type="real" signature="dot(point,point)"><code></asyxml>*/
real dot(point A, point B)
{/*<asyxml></code><documentation>Return the dot product in the coordinate system of 'A'.</documentation></function></asyxml>*/
- point[] P = standardizecoordsys(A.coordsys, A, B);
- return P[0].coordsys.dot(P[0].coordinates, P[1].coordinates);
+ point[] P = standardizecoordsys(A.coordsys, A, B);
+ return P[0].coordsys.dot(P[0].coordinates, P[1].coordinates);
}
/*<asyxml><function type="real" signature="dot(point,explicit pair)"><code></asyxml>*/
@@ -748,33 +748,33 @@
real dot(point A, explicit pair B)
{/*<asyxml></code><documentation>Return the dot product in the default coordinate system.
dot(explicit pair, point) is also defined.</documentation></function></asyxml>*/
- return dot(locate(A), B);
+ return dot(locate(A), B);
}
real dot(explicit pair A, point B)
{
- return dot(A, locate(B));
+ return dot(A, locate(B));
}
/*<asyxml><function type="transforms" signature="rotateO(real)"><code></asyxml>*/
transform rotateO(real a)
{/*<asyxml></code><documentation>Rotation around the origin of the current coordinate system.</documentation></function></asyxml>*/
- return rotate(a, currentcoordsys.O);
+ return rotate(a, currentcoordsys.O);
}
/*<asyxml><function type="transform" signature="projection(point,point)"><code></asyxml>*/
transform projection(point A, point B)
{/*<asyxml></code><documentation>Return the orthogonal projection on the line (AB).</documentation></function></asyxml>*/
- pair dir = unit(locate(A) - locate(B));
- pair a = locate(A);
- real cof = dir.x * a.x + dir.y * a.y;
- real tx = a.x - dir.x * cof;
- real txx = dir.x^2;
- real txy = dir.x * dir.y;
- real ty = a.y - dir.y * cof;
- real tyx = txy;
- real tyy = dir.y^2;
- transform t = (tx, ty, txx, txy, tyx, tyy);
- return t;
+ pair dir = unit(locate(A) - locate(B));
+ pair a = locate(A);
+ real cof = dir.x * a.x + dir.y * a.y;
+ real tx = a.x - dir.x * cof;
+ real txx = dir.x^2;
+ real txy = dir.x * dir.y;
+ real ty = a.y - dir.y * cof;
+ real tyx = txy;
+ real tyy = dir.y^2;
+ transform t = (tx, ty, txx, txy, tyx, tyy);
+ return t;
}
/*<asyxml><function type="transform" signature="projection(point,point,point,point,bool)"><code></asyxml>*/
@@ -782,45 +782,45 @@
{/*<asyxml></code><documentation>Return the (CD) parallel projection on (AB).
If 'safe = true' and (AB)//(CD) return the identity.
If 'safe = false' and (AB)//(CD) return an infinity scaling.</documentation></function></asyxml>*/
- pair a = locate(A);
- pair u = unit(locate(B) - locate(A));
- pair v = unit(locate(D) - locate(C));
- real c = u.x * a.y - u.y * a.x;
- real d = (conj(u) * v).y;
- if (abs(d) < epsgeo) {
- return safe ? identity() : scale(infinity);
- }
- real tx = c * v.x/d;
- real ty = c * v.y/d;
- real txx = u.x * v.y/d;
- real txy = -u.x * v.x/d;
- real tyx = u.y * v.y/d;
- real tyy = -u.y * v.x/d;
- transform t = (tx, ty, txx, txy, tyx, tyy);
- return t;
+ pair a = locate(A);
+ pair u = unit(locate(B) - locate(A));
+ pair v = unit(locate(D) - locate(C));
+ real c = u.x * a.y - u.y * a.x;
+ real d = (conj(u) * v).y;
+ if (abs(d) < epsgeo) {
+ return safe ? identity() : scale(infinity);
+ }
+ real tx = c * v.x/d;
+ real ty = c * v.y/d;
+ real txx = u.x * v.y/d;
+ real txy = -u.x * v.x/d;
+ real tyx = u.y * v.y/d;
+ real tyy = -u.y * v.x/d;
+ transform t = (tx, ty, txx, txy, tyx, tyy);
+ return t;
}
/*<asyxml><function type="transform" signature="scale(real,point)"><code></asyxml>*/
transform scale(real k, point M)
{/*<asyxml></code><documentation>Homothety.</documentation></function></asyxml>*/
- pair P = locate(M);
- return shift(P) * scale(k) * shift(-P);
+ pair P = locate(M);
+ return shift(P) * scale(k) * shift(-P);
}
/*<asyxml><function type="transform" signature="xscale(real,point)"><code></asyxml>*/
transform xscale(real k, point M)
{/*<asyxml></code><documentation>xscale from 'M' relatively to the x - axis of the coordinate system of 'M'.</documentation></function></asyxml>*/
- pair P = locate(M);
- real a = degrees(M.coordsys.i);
- return (shift(P) * rotate(a)) * xscale(k) * (rotate(-a) * shift(-P));
+ pair P = locate(M);
+ real a = degrees(M.coordsys.i);
+ return (shift(P) * rotate(a)) * xscale(k) * (rotate(-a) * shift(-P));
}
/*<asyxml><function type="transform" signature="yscale(real,point)"><code></asyxml>*/
transform yscale(real k, point M)
{/*<asyxml></code><documentation>yscale from 'M' relatively to the y - axis of the coordinate system of 'M'.</documentation></function></asyxml>*/
- pair P = locate(M);
- real a = degrees(M.coordsys.j) - 90;
- return (shift(P) * rotate(a)) * yscale(k) * (rotate(-a) * shift(-P));
+ pair P = locate(M);
+ real a = degrees(M.coordsys.j) - 90;
+ return (shift(P) * rotate(a)) * yscale(k) * (rotate(-a) * shift(-P));
}
/*<asyxml><function type="transform" signature="scale(real,point,point,point,point,bool)"><code></asyxml>*/
@@ -829,41 +829,41 @@
(help me for English translation...)
If 'safe = true' and (AB)//(CD) return the identity.
If 'safe = false' and (AB)//(CD) return a infinity scaling.</documentation></function></asyxml>*/
- pair a = locate(A);
- pair u = unit(locate(B) - locate(A));
- pair v = unit(locate(D) - locate(C));
- real c = u.x * a.y - u.y * a.x;
- real d = (conj(u) * v).y;
- real d = (conj(u) * v).y;
- if (abs(d) < epsgeo) {
- return safe ? identity() : scale(infinity);
- }
- real tx = (1 - k) * c * v.x/d;
- real ty = (1 - k) * c * v.y/d;
- real txx = (1 - k) * u.x * v.y/d + k;
- real txy = (k - 1) * u.x * v.x/d;
- real tyx = (1 - k) * u.y * v.y/d;
- real tyy = (k - 1) * u.y * v.x/d + k;
- transform t = (tx, ty, txx, txy, tyx, tyy);
- return t;
+ pair a = locate(A);
+ pair u = unit(locate(B) - locate(A));
+ pair v = unit(locate(D) - locate(C));
+ real c = u.x * a.y - u.y * a.x;
+ real d = (conj(u) * v).y;
+ real d = (conj(u) * v).y;
+ if (abs(d) < epsgeo) {
+ return safe ? identity() : scale(infinity);
+ }
+ real tx = (1 - k) * c * v.x/d;
+ real ty = (1 - k) * c * v.y/d;
+ real txx = (1 - k) * u.x * v.y/d + k;
+ real txy = (k - 1) * u.x * v.x/d;
+ real tyx = (1 - k) * u.y * v.y/d;
+ real tyy = (k - 1) * u.y * v.x/d + k;
+ transform t = (tx, ty, txx, txy, tyx, tyy);
+ return t;
}
/*<asyxml><function type="transform" signature="scaleO(real)"><code></asyxml>*/
transform scaleO(real x)
{/*<asyxml></code><documentation>Homothety from the origin of the current coordinate system.</documentation></function></asyxml>*/
- return scale(x, (0, 0));
+ return scale(x, (0, 0));
}
/*<asyxml><function type="transform" signature="xscaleO(real)"><code></asyxml>*/
transform xscaleO(real x)
{/*<asyxml></code><documentation>xscale from the origin and relatively to the current coordinate system.</documentation></function></asyxml>*/
- return scale(x, (0, 0), (0, 1), (0, 0), (1, 0));
+ return scale(x, (0, 0), (0, 1), (0, 0), (1, 0));
}
/*<asyxml><function type="transform" signature="yscaleO(real)"><code></asyxml>*/
transform yscaleO(real x)
{/*<asyxml></code><documentation>yscale from the origin and relatively to the current coordinate system.</documentation></function></asyxml>*/
- return scale(x, (0, 0), (1, 0), (0, 0), (0, 1));
+ return scale(x, (0, 0), (1, 0), (0, 0), (0, 1));
}
/*<asyxml><struct signature="vector"><code></asyxml>*/
@@ -876,7 +876,7 @@
/*<asyxml><operator type = "point" signature="cast(vector)"><code></asyxml>*/
point operator cast(vector v)
{/*<asyxml></code><documentation>Cast vector 'v' to point 'M' so that OM = v.</documentation></operator></asyxml>*/
- return v.v;
+ return v.v;
}
/*<asyxml><operator type = "vector" signature="cast(pair)"><code></asyxml>*/
@@ -883,9 +883,9 @@
vector operator cast(pair v)
{/*<asyxml></code><documentation>Cast pair to vector relatively to the current coordinate
system 'currentcoordsys'.</documentation></operator></asyxml>*/
- vector ov;
- ov.v = point(currentcoordsys, v);
- return ov;
+ vector ov;
+ ov.v = point(currentcoordsys, v);
+ return ov;
}
/*<asyxml><operator type = "vector" signature="cast(explicit point)"><code></asyxml>*/
@@ -892,29 +892,29 @@
vector operator cast(explicit point v)
{/*<asyxml></code><documentation>A point can be interpreted like a vector using the code
'(vector)a_point'.</documentation></operator></asyxml>*/
- vector ov;
- ov.v = v;
- return ov;
+ vector ov;
+ ov.v = v;
+ return ov;
}
/*<asyxml><operator type = "pair" signature="cast(explicit vector)"><code></asyxml>*/
pair operator cast(explicit vector v)
{/*<asyxml></code><documentation>Cast vector to pair (the coordinates of 'v' in the default coordinate system).</documentation></operator></asyxml>*/
- return locate(v.v) - v.v.coordsys.O;
+ return locate(v.v) - v.v.coordsys.O;
}
/*<asyxml><operator type = "align" signature="cast(vector)"><code></asyxml>*/
align operator cast(vector v)
{/*<asyxml></code><documentation>Cast vector to align.</documentation></operator></asyxml>*/
- return (pair)v;
+ return (pair)v;
}
/*<asyxml><function type="vector" signature="vector(coordsys, pair)"><code></asyxml>*/
vector vector(coordsys R = currentcoordsys, pair v)
{/*<asyxml></code><documentation>Return the vector of 'R' which has the coordinates 'v'.</documentation></function></asyxml>*/
- vector ov;
- ov.v = point(R, v);
- return ov;
+ vector ov;
+ ov.v = point(R, v);
+ return ov;
}
/*<asyxml><function type="vector" signature="vector(point)"><code></asyxml>*/
@@ -921,76 +921,76 @@
vector vector(point M)
{/*<asyxml></code><documentation>Return the vector OM, where O is the origin of the coordinate system of 'M'.
Useful to write 'vector(P - M);' instead of '(vector)(P - M)'.</documentation></function></asyxml>*/
- return M;
+ return M;
}
/*<asyxml><function type="point" signature="point(explicit vector)"><code></asyxml>*/
point point(explicit vector u)
{/*<asyxml></code><documentation>Return the point M so that OM = u, where O is the origin of the coordinate system of 'u'.</documentation></function></asyxml>*/
- return u.v;
+ return u.v;
}
/*<asyxml><function type="pair" signature="locate(explicit vector)"><code></asyxml>*/
pair locate(explicit vector v)
{/*<asyxml></code><documentation>Return the coordinates of 'v' in the default coordinate system (like casting vector to pair).</documentation></function></asyxml>*/
- return (pair)v;
+ return (pair)v;
}
/*<asyxml><function type="void" signature="show(Label,pen,arrowbar)"><code></asyxml>*/
void show(Label L, vector v, pen p = currentpen, arrowbar arrow = Arrow)
{/*<asyxml></code><documentation>Draw the vector v (from the origin of its coordinate system).</documentation></function></asyxml>*/
- coordsys R = v.v.coordsys;
- draw(L, R.O--v.v, p, arrow);
+ coordsys R = v.v.coordsys;
+ draw(L, R.O--v.v, p, arrow);
}
/*<asyxml><function type="vector" signature="changecoordsys(coordsys,vector)"><code></asyxml>*/
vector changecoordsys(coordsys R, vector v)
{/*<asyxml></code><documentation>Return the vector 'v' relatively to coordinate system 'R'.</documentation></function></asyxml>*/
- vector ov;
- ov.v = point(R, (locate(v) + R.O)/R);
- return ov;
+ vector ov;
+ ov.v = point(R, (locate(v) + R.O)/R);
+ return ov;
}
/*<asyxml><operator type = "vector" signature="*(real,explicit vector)"><code></asyxml>*/
vector operator *(real x, explicit vector v)
{/*<asyxml></code><documentation>Provide real * vector.</documentation></operator></asyxml>*/
- return x * v.v;
+ return x * v.v;
}
/*<asyxml><operator type = "vector" signature="/(explicit vector,real)"><code></asyxml>*/
vector operator /(explicit vector v, real x)
{/*<asyxml></code><documentation>Provide vector/real</documentation></operator></asyxml>*/
- return v.v/x;
+ return v.v/x;
}
/*<asyxml><operator type = "vector" signature="*(transform t,explicit vector)"><code></asyxml>*/
vector operator *(transform t, explicit vector v)
{/*<asyxml></code><documentation>Provide transform * vector.</documentation></operator></asyxml>*/
- return t * v.v;
+ return t * v.v;
}
/*<asyxml><operator type = "vector" signature="*(explicit point,explicit vector)"><code></asyxml>*/
vector operator *(explicit point M, explicit vector v)
{/*<asyxml></code><documentation>Provide point * vector</documentation></operator></asyxml>*/
- return M * v.v;
+ return M * v.v;
}
/*<asyxml><operator type = "point" signature="+(explicit point,explicit vector)"><code></asyxml>*/
point operator +(point M, explicit vector v)
{/*<asyxml></code><documentation>Return 'M' shifted by 'v'.</documentation></operator></asyxml>*/
- return shift(locate(v)) * M;
+ return shift(locate(v)) * M;
}
/*<asyxml><operator type = "point" signature="-(explicit point,explicit vector)"><code></asyxml>*/
point operator -(point M, explicit vector v)
{/*<asyxml></code><documentation>Return 'M' shifted by '-v'.</documentation></operator></asyxml>*/
- return shift(-locate(v)) * M;
+ return shift(-locate(v)) * M;
}
/*<asyxml><operator type = "vector" signature="-(explicit vector)"><code></asyxml>*/
vector operator -(explicit vector v)
{/*<asyxml></code><documentation>Provide -v.</documentation></operator></asyxml>*/
- return -v.v;
+ return -v.v;
}
/*<asyxml><operator type = "point" signature="+(explicit pair,explicit vector)"><code></asyxml>*/
@@ -998,7 +998,7 @@
{/*<asyxml></code><documentation>The pair 'm' is supposed to be the coordinates of
a point in the current coordinates system 'currentcoordsys'.
Return this point shifted by the vector 'v'.</documentation></operator></asyxml>*/
- return locate(m) + v;
+ return locate(m) + v;
}
/*<asyxml><operator type = "point" signature="-(explicit pair,explicit vector)"><code></asyxml>*/
@@ -1006,7 +1006,7 @@
{/*<asyxml></code><documentation>The pair 'm' is supposed to be the coordinates of
a point in the current coordinates system 'currentcoordsys'.
Return this point shifted by the vector '-v'.</documentation></operator></asyxml>*/
- return m + (-v);
+ return m + (-v);
}
/*<asyxml><operator type = "vector" signature="+(explicit vector,explicit vector)"><code></asyxml>*/
@@ -1014,9 +1014,9 @@
{/*<asyxml></code><documentation>Provide vector + vector.
If the two vector haven't the same coordinate system, the returned
vector is relative to the default coordinate system (without warning).</documentation></operator></asyxml>*/
- coordsys R = v1.v.coordsys;
- if(samecoordsys(false, v1, v2)){R = defaultcoordsys;}
- return vector(R, (locate(v1) + locate(v2))/R);
+ coordsys R = v1.v.coordsys;
+ if(samecoordsys(false, v1, v2)){R = defaultcoordsys;}
+ return vector(R, (locate(v1) + locate(v2))/R);
}
/*<asyxml><operator type = "vector" signature="-(explicit vector, explicit vector)"><code></asyxml>*/
@@ -1024,31 +1024,31 @@
{/*<asyxml></code><documentation>Provide vector - vector.
If the two vector haven't the same coordinate system, the returned
vector is relative to the default coordinate system (without warning).</documentation></operator></asyxml>*/
- return v1 + (-v2);
+ return v1 + (-v2);
}
/*<asyxml><operator type = "bool" signature="==(explicit vector,explicit vector)"><code></asyxml>*/
bool operator ==(explicit vector u, explicit vector v)
-{/*<asyxml></code><documentation>Return true iff |u - v|<EPS.</documentation></operator></asyxml>*/
- return abs(u - v) < EPS;
-}
+ {/*<asyxml></code><documentation>Return true iff |u - v|<EPS.</documentation></operator></asyxml>*/
+ return abs(u - v) < EPS;
+ }
/*<asyxml><function type="bool" signature="collinear(vector,vector)"><code></asyxml>*/
bool collinear(vector u, vector v)
{/*<asyxml></code><documentation>Return 'true' iff the vectors 'u' and 'v' are collinear.</documentation></function></asyxml>*/
- return abs(ypart((conj((pair)u) * (pair)v))) < EPS;
+ return abs(ypart((conj((pair)u) * (pair)v))) < EPS;
}
/*<asyxml><function type="vector" signature="unit(point)"><code></asyxml>*/
vector unit(point M)
{/*<asyxml></code><documentation>Return the unit vector according to the modulus of its coordinate system.</documentation></function></asyxml>*/
- return M/abs(M);
+ return M/abs(M);
}
/*<asyxml><function type="vector" signature="unit(vector)"><code></asyxml>*/
vector unit(vector u)
{/*<asyxml></code><documentation>Return the unit vector according to the modulus of its coordinate system.</documentation></function></asyxml>*/
- return u.v/abs(u.v);
+ return u.v/abs(u.v);
}
/*<asyxml><function type="real" signature="degrees(vector,coordsys,bool)"><code></asyxml>*/
@@ -1056,7 +1056,7 @@
coordsys R = v.v.coordsys,
bool warn = true)
{/*<asyxml></code><documentation>Return the angle of 'v' (in degrees) relatively to 'R'.</documentation></function></asyxml>*/
- return (degrees(locate(v), warn) - degrees(R.i))%360;
+ return (degrees(locate(v), warn) - degrees(R.i))%360;
}
/*<asyxml><function type="real" signature="angle(vector,coordsys,bool)"><code></asyxml>*/
@@ -1064,13 +1064,13 @@
coordsys R = v.v.coordsys,
bool warn = true)
{/*<asyxml></code><documentation>Return the angle of 'v' (in radians) relatively to 'R'.</documentation></function></asyxml>*/
- return radians(degrees(v, R, warn));
+ return radians(degrees(v, R, warn));
}
/*<asyxml><function type="vector" signature="conj(explicit vector)"><code></asyxml>*/
vector conj(explicit vector u)
{/*<asyxml></code><documentation>Conjugate.</documentation></function></asyxml>*/
- return conj(u.v);
+ return conj(u.v);
}
/*<asyxml><function type="transform" signature="rotate(explicit vector)"><code></asyxml>*/
@@ -1079,7 +1079,7 @@
This is useful for rotating text along a line in the direction dir.
rotate(explicit point dir) is also defined.
</documentation></function></asyxml>*/
- return rotate(locate(dir));
+ return rotate(locate(dir));
}
transform rotate(explicit point dir){return rotate(locate(vector(dir)));}
// *......................COORDINATES......................*
@@ -1311,7 +1311,7 @@
g = margin(g, p).g;
draw(apic, g, p);
if(filltype != NoFill) filltype.fill(apic, (relpoint(g, 0) - relpoint(g, 0.5)+
- relpoint(g, 1))--g--cycle, p + solid);
+ relpoint(g, 1))--g--cycle, p + solid);
add(pic, apic, locate(z));
}
@@ -1360,7 +1360,7 @@
pair Ap = A, Bp = B, Op = O;
pair dir = Ap - Op;
real a1 = degrees(dir);
- pair align = rotate(-a1) * unit(dir(Op--Ap, Op--Bp));
+ pair align = rotate(-a1) * dir(Op--Ap, Op--Bp);
perpendicularmark(pic = pic, z = O, align = align,
dir = dir, size = size, p = p,
margin = margin, filltype = filltype);
@@ -1700,16 +1700,16 @@
/*<asyxml><operator type = "bool" signature="==(line,line)"><code></asyxml>*/
bool operator ==(line l1, line l2)
-{/*<asyxml></code><documentation>Provide the test 'line == line'.</documentation></operator></asyxml>*/
- return (collinear(l1.u, l2.u) &&
- abs(ypart((locate(l1.A) - locate(l1.B))/(locate(l1.A) - locate(l2.B)))) < epsgeo &&
- l1.extendA == l2.extendA && l1.extendB == l2.extendB);
-}
+ {/*<asyxml></code><documentation>Provide the test 'line == line'.</documentation></operator></asyxml>*/
+ return (collinear(l1.u, l2.u) &&
+ abs(ypart((locate(l1.A) - locate(l1.B))/(locate(l1.A) - locate(l2.B)))) < epsgeo &&
+ l1.extendA == l2.extendA && l1.extendB == l2.extendB);
+ }
/*<asyxml><operator type = "bool" signature="!=(line,line)"><code></asyxml>*/
bool operator !=(line l1, line l2)
{/*<asyxml></code><documentation>Provide the test 'line != line'.</documentation></operator></asyxml>*/
- return !(l1 == l2);
+ return !(l1 == l2);
}
/*<asyxml><operator type = "bool" signature="@(point,line)"><code></asyxml>*/
@@ -1716,33 +1716,33 @@
bool operator @(point m, line l)
{/*<asyxml></code><documentation>Provide the test 'point @ line'.
Return true iff 'm' is on the 'l'.</documentation></operator></asyxml>*/
- point M = changecoordsys(l.A.coordsys, m);
- if (abs(l.a * M.x + l.b * M.y + l.c) >= epsgeo) return false;
- if (l.extendA && l.extendB) return true;
- if (!l.extendA && !l.extendB) return between(l.A, M, l.B);
- if (l.extendA) return sameside(M, l.A, l.B);
- return sameside(M, l.B, l.A);
+ point M = changecoordsys(l.A.coordsys, m);
+ if (abs(l.a * M.x + l.b * M.y + l.c) >= epsgeo) return false;
+ if (l.extendA && l.extendB) return true;
+ if (!l.extendA && !l.extendB) return between(l.A, M, l.B);
+ if (l.extendA) return sameside(M, l.A, l.B);
+ return sameside(M, l.B, l.A);
}
/*<asyxml><function type="coordsys" signature="coordsys(line)"><code></asyxml>*/
coordsys coordsys(line l)
{/*<asyxml></code><documentation>Return the coordinate system in which 'l' is defined.</documentation></function></asyxml>*/
- return l.A.coordsys;
+ return l.A.coordsys;
}
/*<asyxml><function type="line" signature="reverse(line)"><code></asyxml>*/
line reverse(line l)
{/*<asyxml></code><documentation>Permute the points 'A' and 'B' of 'l' and so its orientation.</documentation></function></asyxml>*/
- return line(l.B, l.extendB, l.A, l.extendA);
+ return line(l.B, l.extendB, l.A, l.extendA);
}
/*<asyxml><function type="line" signature="extend(line)"><code></asyxml>*/
line extend(line l)
{/*<asyxml></code><documentation>Return the infinite line passing through 'l.A' and 'l.B'.</documentation></function></asyxml>*/
- line ol = l.copy();
- ol.extendA = true;
- ol.extendB = true;
- return ol;
+ line ol = l.copy();
+ ol.extendA = true;
+ ol.extendB = true;
+ return ol;
}
/*<asyxml><function type="line" signature="complementary(explicit line)"><code></asyxml>*/
@@ -1749,31 +1749,31 @@
line complementary(explicit line l)
{/*<asyxml></code><documentation>Return the complementary of a half-line with respect of
the full line 'l'.</documentation></function></asyxml>*/
- if (l.extendA && l.extendB)
- abort("complementary: the parameter is not a half-line.");
- point origin = l.extendA ? l.B : l.A;
- point ptdir = l.extendA ?
- rotate(180, l.B) * l.A : rotate(180, l.A) * l.B;
- return line(origin, false, ptdir);
+ if (l.extendA && l.extendB)
+ abort("complementary: the parameter is not a half-line.");
+ point origin = l.extendA ? l.B : l.A;
+ point ptdir = l.extendA ?
+ rotate(180, l.B) * l.A : rotate(180, l.A) * l.B;
+ return line(origin, false, ptdir);
}
/*<asyxml><function type="line[]" signature="complementary(explicit segment)"><code></asyxml>*/
line[] complementary(explicit segment s)
{/*<asyxml></code><documentation>Return the two half-lines of origin 's.A' and 's.B' respectively.</documentation></function></asyxml>*/
- line[] ol = new line[2];
- ol[0] = complementary(line(s.A, false, s.B));
- ol[1] = complementary(line(s.A, s.B, false));
- return ol;
+ line[] ol = new line[2];
+ ol[0] = complementary(line(s.A, false, s.B));
+ ol[1] = complementary(line(s.A, s.B, false));
+ return ol;
}
/*<asyxml><function type="line" signature="Ox(coordsys)"><code></asyxml>*/
line Ox(coordsys R = currentcoordsys)
{/*<asyxml></code><documentation>Return the x-axis of 'R'.</documentation></function></asyxml>*/
- return line(point(R, (0, 0)), point(R, E));
+ return line(point(R, (0, 0)), point(R, E));
}
/*<asyxml><constant type = "line" signature="Ox"><code></asyxml>*/
restricted line Ox = Ox();/*<asyxml></code><documentation>the x-axis of
- the default coordinate system.</documentation></constant></asyxml>*/
+ the default coordinate system.</documentation></constant></asyxml>*/
/*<asyxml><function type="line" signature="Oy(coordsys)"><code></asyxml>*/
line Oy(coordsys R = currentcoordsys)
@@ -1782,7 +1782,7 @@
}
/*<asyxml><constant type = "line" signature="Oy"><code></asyxml>*/
restricted line Oy = Oy();/*<asyxml></code><documentation>the y-axis of
- the default coordinate system.</documentation></constant></asyxml>*/
+ the default coordinate system.</documentation></constant></asyxml>*/
/*<asyxml><function type="line" signature="line(real,point)"><code></asyxml>*/
line line(real a, point A = point(currentcoordsys, (0, 0)))
@@ -1826,7 +1826,7 @@
}
/*<asyxml><constant type = "line" signature="vline"><code></asyxml>*/
restricted line vline = vline();/*<asyxml></code><documentation>The vertical line in the current coordinate system passing
- through the origin of this system.</documentation></constant></asyxml>*/
+ through the origin of this system.</documentation></constant></asyxml>*/
/*<asyxml><function type="line" signature="hline(coordsys)"><code></asyxml>*/
line hline(coordsys R = currentcoordsys)
@@ -1837,7 +1837,7 @@
}
/*<asyxml><constant type = "line" signature="hline"><code></asyxml>*/
line hline = hline();/*<asyxml></code><documentation>The horizontal line in the current coordinate system passing
- through the origin of this system.</documentation></constant></asyxml>*/
+ through the origin of this system.</documentation></constant></asyxml>*/
/*<asyxml><function type="line" signature="changecoordsys(coordsys,line)"><code></asyxml>*/
line changecoordsys(coordsys R, line l)
@@ -2358,11 +2358,11 @@
bqe changecoordsys(coordsys R, bqe bqe)
{/*<asyxml></code><documentation>Returns the bivariate quadratic equation relatively to 'R'.</documentation></function></asyxml>*/
pair i = coordinates(changecoordsys(R, vector(defaultcoordsys,
- bqe.coordsys.i)));
+ bqe.coordsys.i)));
pair j = coordinates(changecoordsys(R, vector(defaultcoordsys,
- bqe.coordsys.j)));
+ bqe.coordsys.j)));
pair O = coordinates(changecoordsys(R, point(defaultcoordsys,
- bqe.coordsys.O)));
+ bqe.coordsys.O)));
real a = bqe.a[0], b = bqe.a[1], c = bqe.a[2], d = bqe.a[3], f = bqe.a[4], g = bqe.a[5];
real ux = i.x, uy = i.y;
real vx = j.x, vy = j.y;
@@ -2372,14 +2372,14 @@
real bpp = (-2 * a * vx * vy + b * ux * vy + b * uy * vx - 2 * c * ux * uy)/D^2;
real cp = (a * vx^2 - b * ux * vx + c * ux^2)/D^2;
real dp = (-2a * ox * vy^2 + 2a * oy * vx * vy + 2b * ox * uy * vy-
- b * oy * ux * vy - b * oy * uy * vx - 2c * ox * uy^2 + 2c * oy * uy * ux)/D^2+
+ b * oy * ux * vy - b * oy * uy * vx - 2c * ox * uy^2 + 2c * oy * uy * ux)/D^2+
(d * vy - f * uy)/D;
real fp = (2a * ox * vx * vy - b * ox * ux * vy - 2a * oy * vx^2-
- b * ox * uy * vx + 2 * b * oy * ux * vx + 2c * ox * ux * uy - 2c * oy * ux^2)/D^2+
+ b * ox * uy * vx + 2 * b * oy * ux * vx + 2c * ox * ux * uy - 2c * oy * ux^2)/D^2+
(f * ux - d * vx)/D;
g = (a * ox^2 * vy^2 - 2a * ox * oy * vx * vy - b * ox^2 * uy * vy + b * ox * oy * ux * vy+
- a * oy^2 * vx^2 + b * ox * oy * uy * vx - b * oy^2 * ux * vx + c * ox^2 * uy^2-
- 2 * c * ox * oy * ux * uy + c * oy^2 * ux^2)/D^2+
+ a * oy^2 * vx^2 + b * ox * oy * uy * vx - b * oy^2 * ux * vx + c * ox^2 * uy^2-
+ 2 * c * ox * oy * ux * uy + c * oy^2 * ux^2)/D^2+
(d * oy * vx + f * ox * uy - d * ox * vy - f * oy * ux)/D + g;
bqe obqe;
obqe.a = approximate(new real[] {ap, bpp, cp, dp, fp, g});
@@ -2636,7 +2636,7 @@
this.b = a * sqrt(this.e^2 - 1);
this.p = a * (this.e^2 - 1);
point A = this.C + (a^2/this.c) * unit(P[0]-this.C);
- this.D1 = line(A, A + rotateO(90) * unit(A - this.C));
+ this.D1 = line(A, A + rotate(90,this.C.coordsys.O) * unit(A - this.C));
this.D2 = reverse(rotate(180, C) * D1);
this.V1 = C + a * unit(F1 - C);
this.V2 = C + a * unit(F2 - C);
@@ -3073,8 +3073,8 @@
real gle = degrees(l);
coordsys Rp = cartesiansystem(R.O, rotate(gle) * R.i, rotate(gle) * R.j);
pts = new pair[] {coordinates(changecoordsys(Rp, M1)),
- coordinates(changecoordsys(Rp, M2)),
- coordinates(changecoordsys(Rp, M3))};
+ coordinates(changecoordsys(Rp, M2)),
+ coordinates(changecoordsys(Rp, M3))};
real[][] M;
real[] x;
for (int i = 0; i < 3; ++i) {
@@ -3560,10 +3560,10 @@
path g;
if(co.e < 1)
g = arcfromcenter((ellipse)co, angle1,
- angle2, direction, n);
+ angle2, direction, n);
else if(co.e > 1)
g = arcfromcenter((hyperbola)co, angle1,
- angle2, n, direction);
+ angle2, n, direction);
else abort("arcfromcenter: does not exist for a parabola.");
return g;
}
@@ -3590,8 +3590,8 @@
}
real[] coef = solve(M, x);
bqe bqe = changecoordsys(coordsys(el),
- bqe(defaultcoordsys,
- 1, coef[0], coef[1], coef[2], coef[3], coef[4]));
+ bqe(defaultcoordsys,
+ 1, coef[0], coef[1], coef[2], coef[3], coef[4]));
bqe.a = approximate(bqe.a);
return bqe;
}
@@ -4038,8 +4038,8 @@
// given form the center of the ellipse.
real gle = atan(el.a * tan(radians(a))/el.b)+
pi * (((a%90 == 0 && a != 0) ? floor(a/90) - 1 : floor(a/90)) -
- ((a%180 == 0) ? 0 : floor(a/180)) -
- (a%360 == 0 ? floor(a/(360)) : 0));
+ ((a%180 == 0) ? 0 : floor(a/180)) -
+ (a%360 == 0 ? floor(a/(360)) : 0));
/* // Uncomment to visualize the used branches
unitsize(2cm, 1cm);
import graph;
@@ -4076,7 +4076,7 @@
{/*<asyxml></code><documentation>Return the arclength from 180 to 'angle' given from focus in the
canonical coordinate system of 'p'.</documentation></function></asyxml>*/
real a = p.a; /* In canonicalcartesiansystem(p) the equation of p
- is x = y^2/(4a) */
+ is x = y^2/(4a) */
// integrate(sqrt(1 + (x/(2 * a))^2), x);
real S(real t){return 0.5 * t * sqrt(1 + t^2/(4 * a^2)) + a * asinh(t/(2 * a));}
real R(real gle){return 2 * a/(1 - Cos(gle));}
@@ -4110,7 +4110,7 @@
real x;/*<asyxml></code><documentation>The abscissa value.</documentation></property><property type = "int" signature="system"><code></asyxml>*/
int system;/*<asyxml></code><documentation>0 = relativesystem; 1 = curvilinearsystem; 2 = angularsystem; 3 = nodesystem</documentation></property><property type = "polarconicroutine" signature="polarconicroutine"><code></asyxml>*/
polarconicroutine polarconicroutine = fromCenter;/*<asyxml></code><documentation>The routine used with angular system and two foci conic section.
- Possible values are 'formCenter' and 'formFocus'.</documentation></property></asyxml>*/
+ Possible values are 'formCenter' and 'formFocus'.</documentation></property></asyxml>*/
/*<asyxml><method type = "abscissa" signature="copy()"><code></asyxml>*/
abscissa copy()
{/*<asyxml></code><documentation>Return a copy of this abscissa.</documentation></method></asyxml>*/
@@ -4800,7 +4800,7 @@
restricted real angle1, angle2;/*<asyxml></code><documentation>Values (in degrees) in ]-360, 360[.</documentation></property><property type = "bool" signature="direction"><code></asyxml>*/
bool direction = CCW;/*<asyxml></code><documentation>The arc will be drawn from 'angle1' to 'angle2' rotating in the direction 'direction'.</documentation></property><property type = "polarconicroutine" signature="polarconicroutine"><code></asyxml>*/
polarconicroutine polarconicroutine = currentpolarconicroutine;/*<asyxml></code><documentation>The routine to which the angles refer.
- If 'el' is a circle 'fromCenter' is always used.</documentation></property></asyxml>*/
+ If 'el' is a circle 'fromCenter' is always used.</documentation></property></asyxml>*/
/*<asyxml><method type = "void" signature="setangles(real,real,real)"><code></asyxml>*/
void setangles(real a0, real a1, real a2)
@@ -6478,7 +6478,7 @@
coordsys Rc = cartesiansystem(c.C, (1, 0), (0, 1));
line ll = changecoordsys(Rc, l);
pair[] P = intersectionpoints(ll.A.coordinates, ll.B.coordinates,
- 1, 0, 1, 0, 0, -c.r^2);
+ 1, 0, 1, 0, 0, -c.r^2);
for (int i = 0; i < P.length; ++i) {
point inter = changecoordsys(R, point(Rc, P[i]));
if(inter @ l) op.push(inter);
@@ -6518,7 +6518,7 @@
coordsys Rc = canonicalcartesiansystem(el);
line ll = changecoordsys(Rc, l);
pair[] P = intersectionpoints(ll.A.coordinates, ll.B.coordinates,
- 1/el.a^2, 0, 1/el.b^2, 0, 0, -1);
+ 1/el.a^2, 0, 1/el.b^2, 0, 0, -1);
for (int i = 0; i < P.length; ++i) {
point inter = changecoordsys(R, point(Rc, P[i]));
if(inter @ l) op.push(inter);
@@ -6575,7 +6575,7 @@
point[] op;
coordsys R = coordsys(h);
point A = intersectionpoint(l, h.A1), B = intersectionpoint(l, h.A2);
- point M = midpoint(segment(A, B));
+ point M = 0.5*(A + B);
bool tgt = Finite(M) ? M @ h : false;
if(tgt) {
if(M @ l) op.push(M);
@@ -6644,7 +6644,7 @@
if(abs(b[4]) > e) {
real D=b[4]^2;
c=new real[] {(a[0]*b[4]^2+a[2]*b[3]^2+
- (-2*a[2]*a[3])*b[3]+a[2]*a[3]^2)/D,
+ (-2*a[2]*a[3])*b[3]+a[2]*a[3]^2)/D,
-((-2*a[2]*b[3]+2*a[2]*a[3])*b[5]-a[3]*b[4]^2+
(2*a[2]*a[5])*b[3])/D,a[2]*(a[5]-b[5])^2/D+a[5]};
x=quadraticroots(c[0],c[1],c[2]);
Modified: trunk/Master/texmf-dist/asymptote/graph.asy
===================================================================
--- trunk/Master/texmf-dist/asymptote/graph.asy 2021-02-24 18:27:49 UTC (rev 57875)
+++ trunk/Master/texmf-dist/asymptote/graph.asy 2021-02-24 18:33:44 UTC (rev 57876)
@@ -42,14 +42,14 @@
return x-skip;
}
real Tinv(real x) {
- if(x <= a) return x;
- return x+skip;
+ if(x <= a) return x;
+ return x+skip;
}
return scaleT(T,Tinv,logarithmic=false,automin,automax);
}
// A "broken" logarithmic axis omitting the segment [a,b], where a and b are
-// automatically rounded to the nearest integral power of the base.
+// automatically rounded to the nearest integral power of the base.
scaleT BrokenLog(real a, real b, bool automin=false, bool automax=automin)
{
real A=round(Log.T(a));
@@ -92,7 +92,7 @@
Linear(zautoscale,zautoscale));
}
-struct scientific
+struct scientific
{
int sign;
real mantissa;
@@ -108,7 +108,7 @@
}
// Convert x to scientific notation
-scientific scientific(real x)
+scientific scientific(real x)
{
scientific s;
s.sign=sgn(x);
@@ -154,7 +154,7 @@
real upscale(real b, real a)
{
- if(b <= 5) b=5;
+ if(b <= 5) b=5;
else if (b > 10 && a >= 0 && b <= 12) b=12;
else if (b > 10 && (a >= 0 || 15 % -a == 0) && b <= 15) b=15;
else b=ceil(b/10)*10;
@@ -182,7 +182,7 @@
if(Min > 0) {Min=0; Max *= 2;}
else {Min *= 2; Max=0;}
}
-
+
int sign;
if(Min < 0 && Max <= 0) {real temp=-Min; Min=-Max; Max=temp; sign=-1;}
else sign=1;
@@ -203,7 +203,7 @@
while((b-a)*10.0^exp > 10*(Max-Min))
zoom();
-
+
real bsave=b;
if(b-a > (a >= 0 ? 8 : 6)) {
b=upscale(b,a);
@@ -211,11 +211,11 @@
if(a <= 5) a=0; else a=floor(a/10)*10;
} else a=-upscale(-a,-1);
}
-
+
// Redo b in case the value of a has changed
if(bsave-a > (a >= 0 ? 8 : 6))
b=upscale(bsave,a);
-
+
if(sign == -1) {real temp=-a; a=-b; b=temp;}
real Scale=10.0^exp;
m.min=scale.T(a*Scale);
@@ -266,7 +266,7 @@
ticklabel LogFormat=LogFormat(10);
ticklabel DefaultLogFormat=DefaultLogFormat(10);
-
+
// The default direction specifier.
pair zero(real) {return 0;}
@@ -275,7 +275,7 @@
autoscaleT S; // Autoscaling transformation.
pair dir(real t); // Absolute 2D tick direction.
triple dir3(real t); // Absolute 3D tick direction.
- real time(real v); // Returns the time corresponding to the value v.
+ real time(real v); // Returns the time corresponding to the value v.
ticklocate copy() {
ticklocate T=new ticklocate;
T.a=a;
@@ -289,7 +289,7 @@
}
autoscaleT defaultS;
-
+
typedef real valuetime(real);
valuetime linear(scalefcn S=identity, real Min, real Max)
@@ -300,7 +300,7 @@
ticklocate ticklocate(real a, real b, autoscaleT S=defaultS,
real tickmin=-infinity, real tickmax=infinity,
- real time(real)=null, pair dir(real)=zero)
+ real time(real)=null, pair dir(real)=zero)
{
if((valuetime) time == null) time=linear(S.T(),a,b);
ticklocate locate;
@@ -313,13 +313,13 @@
locate.dir=dir;
return locate;
}
-
+
private struct locateT {
real t; // tick location time
pair Z; // tick location in frame coordinates
pair pathdir; // path direction in frame coordinates
pair dir; // tick direction in frame coordinates
-
+
void dir(transform T, path g, ticklocate locate, real t) {
pathdir=unit(shiftless(T)*dir(g,t));
pair Dir=locate.dir(t);
@@ -333,7 +333,7 @@
}
}
-pair ticklabelshift(pair align, pen p=currentpen)
+pair ticklabelshift(pair align, pen p=currentpen)
{
return 0.25*unit(align)*labelmargin(p);
}
@@ -347,7 +347,7 @@
locate2.calc(T,g2,locate,val);
draw(f,locate1.Z--locate2.Z,p);
} else
- if(sign == 0)
+ if(sign == 0)
draw(f,locate1.Z-Size*locate1.dir--locate1.Z+Size*locate1.dir,p);
else
draw(f,locate1.Z--locate1.Z+Size*sign*locate1.dir,p);
@@ -388,10 +388,10 @@
label(d,F.T*baseline(s,baselinetemplate),locate1.Z+shift,align,F.p,
F.filltype);
return locate1.pathdir;
-}
+}
// Add axis label L to frame f.
-void labelaxis(frame f, transform T, Label L, path g,
+void labelaxis(frame f, transform T, Label L, path g,
ticklocate locate=null, int sign=1, bool ticklabels=false)
{
Label L0=L.copy();
@@ -403,7 +403,7 @@
locateT locate1;
locate1.dir(T,g,locate,t);
L0.align(L0.align,unit(-sgn(dot(sign*locate1.dir,perp))*perp));
- }
+ }
pair align=L0.align.dir;
if(L0.align.relative) align *= -perp;
pair alignperp=dot(align,perp)*perp;
@@ -477,7 +477,7 @@
// Check the tick coverage of a logarithmic axis.
bool logaxiscoverage(int N, transform T, path g, ticklocate locate, pair side,
- int sign, real Size, Label F, ticklabel ticklabel,
+ int sign, real Size, Label F, ticklabel ticklabel,
real limit, int first, int last)
{
bool loop=cyclic(g);
@@ -525,7 +525,7 @@
int n=0;
bool Fixed=find(a >= 1e4-epsilon | (a > 0 & a <= 1e-4-epsilon)) < 0;
-
+
string Format=defaultformat(4,fixed=Fixed);
if(Fixed && n < 4) {
@@ -576,13 +576,13 @@
if(size == 0) size=ticksize;
F=F.copy();
F.p(p);
-
+
if(F.align.dir != 0) side=F.align.dir;
else if(side == 0) side=((sign == 1) ? left : right);
-
+
bool ticklabels=false;
path G=T*g;
-
+
if(!locate.S.scale.logarithmic) {
real a=locate.S.Tinv(locate.a);
real b=locate.S.Tinv(locate.b);
@@ -594,15 +594,15 @@
if(a > b) {real temp=a; a=b; b=temp;}
if(b-a < 100.0*epsilon*norm) b=a;
-
+
bool autotick=Step == 0 && N == 0;
-
- real tickmin=finite(locate.S.tickMin) && (autotick || locate.S.automin) ?
+
+ real tickmin=finite(locate.S.tickMin) && (autotick || locate.S.automin) ?
locate.S.Tinv(locate.S.tickMin) : a;
real tickmax=finite(locate.S.tickMax) && (autotick || locate.S.automax) ?
locate.S.Tinv(locate.S.tickMax) : b;
if(tickmin > tickmax) {real temp=tickmin; tickmin=tickmax; tickmax=temp;}
-
+
real inStep=Step;
bool calcStep=true;
@@ -630,7 +630,7 @@
// Try using 2 ticks (otherwise 1);
int div=divisor[d+1];
Step=quotient(div,2)*len/div;
- calcStep=false;
+ calcStep=false;
if(axiscoverage(2,T,g,locate,Step,side,sign,Size,F,ticklabel,
norm,limit)) N=2;
else Step=len;
@@ -650,7 +650,7 @@
}
}
}
-
+
if(inStep != 0 && !locate.S.automin) {
tickmin=floor(tickmin/Step)*Step;
len=tickmax-tickmin;
@@ -661,13 +661,13 @@
if(N == 0) N=(int) (len/Step);
else Step=len/N;
}
-
+
if(n == 0) {
if(step != 0) n=ceil(Step/step);
} else step=Step/n;
-
+
b += epsilon*norm;
-
+
if(Size > 0) {
for(int i=0; i <= N; ++i) {
real val=tickmin+i*Step;
@@ -684,7 +684,7 @@
}
}
}
-
+
} else { // Logarithmic
string format=F.s;
if(F.s == "%") F.s="";
@@ -691,15 +691,15 @@
int base=round(locate.S.scale.Tinv(1));
- if(ticklabel == null)
+ if(ticklabel == null)
ticklabel=format == "%" ? Format("") : DefaultLogFormat(base);
real a=locate.S.postscale.Tinv(locate.a);
real b=locate.S.postscale.Tinv(locate.b);
if(a > b) {real temp=a; a=b; b=temp;}
-
+
int first=floor(a-epsilon);
int last=ceil(b+epsilon);
-
+
if(N == 0) {
N=1;
while(N <= last-first) {
@@ -708,10 +708,10 @@
++N;
}
}
-
+
if(N <= 2 && n == 0) n=base;
tickvalues.N=N;
-
+
if(N > 0) {
for(int i=first-1; i <= last+1; ++i) {
if(i >= a && i <= b)
@@ -725,7 +725,7 @@
}
}
}
- }
+ }
return tickvalues;
}
@@ -732,7 +732,7 @@
// Signature of routines that draw labelled paths with ticks and tick labels.
typedef void ticks(frame, transform, Label, pair, path, path, pen,
arrowbar, margin, ticklocate, int[], bool opposite=false);
-
+
// Tick construction routine for a user-specified array of tick values.
ticks Ticks(int sign, Label F="", ticklabel ticklabel=null,
bool beginlabel=true, bool endlabel=true,
@@ -741,7 +741,7 @@
real Size=0, real size=0, bool extend=false,
pen pTick=nullpen, pen ptick=nullpen)
{
- return new void(frame f, transform t, Label L, pair side, path g, path g2,
+ return new void(frame f, transform t, Label L, pair side, path g, path g2,
pen p, arrowbar arrow, margin margin, ticklocate locate,
int[] divisor, bool opposite) {
// Use local copy of context variables:
@@ -749,12 +749,12 @@
pen pTick=pTick;
pen ptick=ptick;
ticklabel ticklabel=ticklabel;
-
+
real Size=Size;
real size=size;
if(Size == 0) Size=Ticksize;
if(size == 0) size=ticksize;
-
+
Label L=L.copy();
Label F=F.copy();
L.p(p);
@@ -761,16 +761,16 @@
F.p(p);
if(pTick == nullpen) pTick=p;
if(ptick == nullpen) ptick=pTick;
-
+
if(F.align.dir != 0) side=F.align.dir;
else if(side == 0) side=F.T*((sign == 1) ? left : right);
-
+
bool ticklabels=false;
path G=t*g;
path G2=t*g2;
-
+
scalefcn T;
-
+
real a,b;
if(locate.S.scale.logarithmic) {
a=locate.S.postscale.Tinv(locate.a);
@@ -781,11 +781,11 @@
b=locate.S.Tinv(locate.b);
T=identity;
}
-
+
if(a > b) {real temp=a; a=b; b=temp;}
real norm=max(abs(a),abs(b));
-
+
string format=autoformat(F.s,norm...Ticks);
if(F.s == "%") F.s="";
if(ticklabel == null) {
@@ -809,7 +809,7 @@
drawtick(f,t,g,g2,locate,val,size,sign,ptick,extend);
}
endgroup(f);
-
+
if(N == 0) N=1;
if(Size > 0 && !opposite) {
for(int i=(beginlabel ? 0 : 1);
@@ -821,7 +821,7 @@
}
}
}
- if(L.s != "" && !opposite)
+ if(L.s != "" && !opposite)
labelaxis(f,t,L,G,locate,sign,ticklabels);
};
}
@@ -832,7 +832,7 @@
// Tickmodifier that removes all ticks in the intervals [a[i],b[i]].
tickmodifier OmitTickIntervals(real[] a, real[] b) {
- return new tickvalues(tickvalues v) {
+ return new tickvalues(tickvalues v) {
if(a.length != b.length) abort(differentlengths);
void omit(real[] A) {
if(A.length != 0) {
@@ -939,8 +939,8 @@
begin,end,modify,Size,size,extend,pTick,ptick);
}
-ticks LeftTicks(Label format="", ticklabel ticklabel=null,
- bool beginlabel=true, bool endlabel=true,
+ticks LeftTicks(Label format="", ticklabel ticklabel=null,
+ bool beginlabel=true, bool endlabel=true,
real[] Ticks, real[] ticks=new real[],
real Size=0, real size=0, bool extend=false,
pen pTick=nullpen, pen ptick=nullpen)
@@ -949,8 +949,8 @@
Ticks,ticks,Size,size,extend,pTick,ptick);
}
-ticks RightTicks(Label format="", ticklabel ticklabel=null,
- bool beginlabel=true, bool endlabel=true,
+ticks RightTicks(Label format="", ticklabel ticklabel=null,
+ bool beginlabel=true, bool endlabel=true,
real[] Ticks, real[] ticks=new real[],
real Size=0, real size=0, bool extend=false,
pen pTick=nullpen, pen ptick=nullpen)
@@ -959,8 +959,8 @@
Ticks,ticks,Size,size,extend,pTick,ptick);
}
-ticks Ticks(Label format="", ticklabel ticklabel=null,
- bool beginlabel=true, bool endlabel=true,
+ticks Ticks(Label format="", ticklabel ticklabel=null,
+ bool beginlabel=true, bool endlabel=true,
real[] Ticks, real[] ticks=new real[],
real Size=0, real size=0, bool extend=false,
pen pTick=nullpen, pen ptick=nullpen)
@@ -978,18 +978,18 @@
{
return minbound(pic.userMin(),(pic.scale.x.tickMin,pic.scale.y.tickMin));
}
-
+
pair tickMax(picture pic)
{
return maxbound(pic.userMax(),(pic.scale.x.tickMax,pic.scale.y.tickMax));
}
-
+
int Min=-1;
int Value=0;
int Max=1;
int Both=2;
-// Structure used to communicate axis and autoscale settings to tick routines.
+// Structure used to communicate axis and autoscale settings to tick routines.
struct axisT {
int type; // -1 = min, 0 = given value, 1 = max, 2 = min/max
int type2; // for 3D axis
@@ -1062,7 +1062,7 @@
};
}
-axis LeftRight(bool extend=false)
+axis LeftRight(bool extend=false)
{
return new void(picture pic, axisT axis) {
axis.type=Both;
@@ -1134,7 +1134,7 @@
void axis(picture pic=currentpicture, Label L="", path g, path g2=nullpath,
pen p=currentpen, ticks ticks, ticklocate locate,
arrowbar arrow=None, margin margin=NoMargin,
- int[] divisor=new int[], bool above=false, bool opposite=false)
+ int[] divisor=new int[], bool above=false, bool opposite=false)
{
Label L=L.copy();
real t=reltime(g,0.5);
@@ -1146,9 +1146,9 @@
ticks(d,t,L,0,g,g2,p,arrow,margin,locate,divisor,opposite);
(above ? add : prepend)(f,t*T*inverse(t)*d);
});
-
+
pic.addPath(g,p);
-
+
if(L.s != "") {
frame f;
Label L0=L.copy();
@@ -1195,7 +1195,7 @@
pic.scale.x.tickMax=mx.max;
divisor=mx.divisor;
}
-
+
real fuzz=epsilon*max(abs(a.x),abs(b.x));
a -= (fuzz,0);
b += (fuzz,0);
@@ -1211,8 +1211,8 @@
y2=pic.scale.y.automax() ? tickMax(pic).y : pic.userMax().y;
y=opposite ? y2 :
(pic.scale.y.automin() ? tickMin(pic).y : pic.userMin().y);
- }
- else if(type == Min)
+ }
+ else if(type == Min)
y=pic.scale.y.automin() ? tickMin(pic).y : pic.userMin().y;
else if(type == Max)
y=pic.scale.y.automax() ? tickMax(pic).y : pic.userMax().y;
@@ -1229,7 +1229,7 @@
pic.addPoint(a,min(p));
pic.addPoint(a,max(p));
}
-
+
if(finite(b)) {
pic.addPoint(b,min(p));
pic.addPoint(b,max(p));
@@ -1299,13 +1299,13 @@
ticklocate(a.y,b.y,pic.scale.y),divisor,opposite);
(above ? add : prepend)(f,t*T*tinv*d);
});
-
+
void bounds() {
if(type == Both) {
x2=pic.scale.x.automax() ? tickMax(pic).x : pic.userMax().x;
- x=opposite ? x2 :
+ x=opposite ? x2 :
(pic.scale.x.automin() ? tickMin(pic).x : pic.userMin().x);
- } else if(type == Min)
+ } else if(type == Min)
x=pic.scale.x.automin() ? tickMin(pic).x : pic.userMin().x;
else if(type == Max)
x=pic.scale.x.automax() ? tickMax(pic).x : pic.userMax().x;
@@ -1317,17 +1317,17 @@
pair b=(x,Ymax);
pair a2=(x2,Ymin);
pair b2=(x2,Ymax);
-
+
if(finite(a)) {
pic.addPoint(a,min(p));
pic.addPoint(a,max(p));
}
-
+
if(finite(b)) {
pic.addPoint(b,min(p));
pic.addPoint(b,max(p));
}
-
+
if(finite(a) && finite(b)) {
frame d;
ticks(d,pic.scaling(warn=false),L,side,
@@ -1361,32 +1361,32 @@
bool crop=NoCrop)
{
if(min > max) return;
-
+
pic.scale.x.automin=min <= -infinity;
pic.scale.x.automax=max >= infinity;
-
+
bounds mx;
if(pic.scale.x.automin() || pic.scale.x.automax())
mx=autoscale(pic.userMin().x,pic.userMax().x,pic.scale.x.scale);
-
+
if(pic.scale.x.automin) {
if(pic.scale.x.automin()) pic.userMinx(mx.min);
} else pic.userMinx(min(pic.scale.x.T(min),pic.scale.x.T(max)));
-
+
if(pic.scale.x.automax) {
if(pic.scale.x.automax()) pic.userMaxx(mx.max);
} else pic.userMaxx(max(pic.scale.x.T(min),pic.scale.x.T(max)));
-
+
if(crop) {
pair userMin=pic.userMin();
pair userMax=pic.userMax();
pic.bounds.xclip(userMin.x,userMax.x);
pic.clip(userMin, userMax,
- new void (frame f, transform t, transform T, pair, pair) {
- frame Tinvf=T == identity() ? f : t*inverse(T)*inverse(t)*f;
- clip(f,T*box(((t*userMin).x,(min(Tinvf)).y),
- ((t*userMax).x,(max(Tinvf)).y)));
- });
+ new void (frame f, transform t, transform T, pair, pair) {
+ frame Tinvf=T == identity() ? f : t*inverse(T)*inverse(t)*f;
+ clip(f,T*box(((t*userMin).x,(min(Tinvf)).y),
+ ((t*userMax).x,(max(Tinvf)).y)));
+ });
}
}
@@ -1395,37 +1395,37 @@
bool crop=NoCrop)
{
if(min > max) return;
-
+
pic.scale.y.automin=min <= -infinity;
pic.scale.y.automax=max >= infinity;
-
+
bounds my;
if(pic.scale.y.automin() || pic.scale.y.automax())
my=autoscale(pic.userMin().y,pic.userMax().y,pic.scale.y.scale);
-
+
if(pic.scale.y.automin) {
if(pic.scale.y.automin()) pic.userMiny(my.min);
} else pic.userMiny(min(pic.scale.y.T(min),pic.scale.y.T(max)));
-
+
if(pic.scale.y.automax) {
if(pic.scale.y.automax()) pic.userMaxy(my.max);
} else pic.userMaxy(max(pic.scale.y.T(min),pic.scale.y.T(max)));
-
+
if(crop) {
pair userMin=pic.userMin();
pair userMax=pic.userMax();
pic.bounds.yclip(userMin.y,userMax.y);
- pic.clip(userMin, userMax,
- new void (frame f, transform t, transform T, pair, pair) {
- frame Tinvf=T == identity() ? f : t*inverse(T)*inverse(t)*f;
- clip(f,T*box(((min(Tinvf)).x,(t*userMin).y),
- ((max(Tinvf)).x,(t*userMax).y)));
- });
+ pic.clip(userMin, userMax,
+ new void (frame f, transform t, transform T, pair, pair) {
+ frame Tinvf=T == identity() ? f : t*inverse(T)*inverse(t)*f;
+ clip(f,T*box(((min(Tinvf)).x,(t*userMin).y),
+ ((max(Tinvf)).x,(t*userMax).y)));
+ });
}
}
// Crop a picture to the current user-space picture limits.
-void crop(picture pic=currentpicture)
+void crop(picture pic=currentpicture)
{
xlimits(pic,false);
ylimits(pic,false);
@@ -1441,7 +1441,7 @@
if(crop && pic.userSetx() && pic.userSety())
clip(pic,box(pic.userMin(),pic.userMax()));
}
-
+
// Internal routine to autoscale the user limits of a picture.
void autoscale(picture pic=currentpicture, axis axis)
{
@@ -1448,7 +1448,7 @@
if(!pic.scale.set) {
bounds mx,my;
pic.scale.set=true;
-
+
if(pic.userSetx()) {
mx=autoscale(pic.userMin().x,pic.userMax().x,pic.scale.x.scale);
if(pic.scale.x.scale.logarithmic &&
@@ -1459,7 +1459,7 @@
pic.userMaxx2(ceil(pic.userMax().x));
}
} else {mx.min=mx.max=0; pic.scale.set=false;}
-
+
if(pic.userSety()) {
my=autoscale(pic.userMin().y,pic.userMax().y,pic.scale.y.scale);
if(pic.scale.y.scale.logarithmic &&
@@ -1470,7 +1470,7 @@
pic.userMaxy2(ceil(pic.userMax().y));
}
} else {my.min=my.max=0; pic.scale.set=false;}
-
+
pic.scale.x.tickMin=mx.min;
pic.scale.x.tickMax=mx.max;
pic.scale.y.tickMin=my.min;
@@ -1487,7 +1487,7 @@
bool above=false)
{
if(xmin > xmax) return;
-
+
if(pic.scale.x.automin && xmin > -infinity) pic.scale.x.automin=false;
if(pic.scale.x.automax && xmax < infinity) pic.scale.x.automax=false;
@@ -1495,20 +1495,20 @@
axis(pic,axis);
autoscale(pic,axis);
}
-
+
Label L=L.copy();
bool newticks=false;
-
+
if(xmin != -infinity) {
xmin=pic.scale.x.T(xmin);
newticks=true;
}
-
+
if(xmax != infinity) {
xmax=pic.scale.x.T(xmax);
newticks=true;
}
-
+
if(newticks && pic.userSetx() && ticks != NoTicks) {
if(xmin == -infinity) xmin=pic.userMin().x;
if(xmax == infinity) xmax=pic.userMax().x;
@@ -1517,9 +1517,9 @@
pic.scale.x.tickMax=mx.max;
axis.xdivisor=mx.divisor;
}
-
+
axis(pic,axis);
-
+
if(xmin == -infinity && !axis.extend) {
if(pic.scale.set)
xmin=pic.scale.x.automin() ? pic.scale.x.tickMin :
@@ -1526,7 +1526,7 @@
max(pic.scale.x.tickMin,pic.userMin().x);
else xmin=pic.userMin().x;
}
-
+
if(xmax == infinity && !axis.extend) {
if(pic.scale.set)
xmax=pic.scale.x.automax() ? pic.scale.x.tickMax :
@@ -1536,7 +1536,7 @@
if(L.defaultposition) L.position(axis.position);
L.align(L.align,axis.align);
-
+
xaxisAt(pic,L,axis,xmin,xmax,p,ticks,arrow,margin,above);
if(axis.type == Both)
xaxisAt(pic,L,axis,xmin,xmax,p,ticks,arrow,margin,above,true);
@@ -1552,25 +1552,25 @@
if(pic.scale.y.automin && ymin > -infinity) pic.scale.y.automin=false;
if(pic.scale.y.automax && ymax < infinity) pic.scale.y.automax=false;
-
+
if(!pic.scale.set) {
axis(pic,axis);
autoscale(pic,axis);
}
-
+
Label L=L.copy();
bool newticks=false;
-
+
if(ymin != -infinity) {
ymin=pic.scale.y.T(ymin);
newticks=true;
}
-
+
if(ymax != infinity) {
ymax=pic.scale.y.T(ymax);
newticks=true;
}
-
+
if(newticks && pic.userSety() && ticks != NoTicks) {
if(ymin == -infinity) ymin=pic.userMin().y;
if(ymax == infinity) ymax=pic.userMax().y;
@@ -1579,9 +1579,9 @@
pic.scale.y.tickMax=my.max;
axis.ydivisor=my.divisor;
}
-
+
axis(pic,axis);
-
+
if(ymin == -infinity && !axis.extend) {
if(pic.scale.set)
ymin=pic.scale.y.automin() ? pic.scale.y.tickMin :
@@ -1588,8 +1588,8 @@
max(pic.scale.y.tickMin,pic.userMin().y);
else ymin=pic.userMin().y;
}
-
-
+
+
if(ymax == infinity && !axis.extend) {
if(pic.scale.set)
ymax=pic.scale.y.automax() ? pic.scale.y.tickMax :
@@ -1599,14 +1599,14 @@
if(L.defaultposition) L.position(axis.position);
L.align(L.align,axis.align);
-
+
if(autorotate && L.defaulttransform) {
frame f;
add(f,Label(L.s,(0,0),L.p));
- if(length(max(f)-min(f)) > ylabelwidth*fontsize(L.p))
+ if(length(max(f)-min(f)) > ylabelwidth*fontsize(L.p))
L.transform(rotate(90));
}
-
+
yaxisAt(pic,L,axis,ymin,ymax,p,ticks,arrow,margin,above);
if(axis.type == Both)
yaxisAt(pic,L,axis,ymin,ymax,p,ticks,arrow,margin,above,true);
@@ -1627,7 +1627,7 @@
void xequals(picture pic=currentpicture, Label L="", real x,
bool extend=false, real ymin=-infinity, real ymax=infinity,
pen p=currentpen, ticks ticks=NoTicks,
- arrowbar arrow=None, margin margin=NoMargin, bool above=true)
+ arrowbar arrow=None, margin margin=NoMargin, bool above=true)
{
yaxis(pic,L,XEquals(x,extend),ymin,ymax,p,ticks,arrow,margin,above);
}
@@ -1682,7 +1682,7 @@
}
void ytick(picture pic=currentpicture, explicit pair z, pair dir=E,
- real size=Ticksize, pen p=currentpen)
+ real size=Ticksize, pen p=currentpen)
{
tick(pic,z,dir,size,p);
}
@@ -1799,7 +1799,7 @@
bounds a=autoscale(pic.userMin().x,pic.userMax().x,pic.scale.x.scale);
real bmin=pic.scale.x.automin() ? a.min : pic.userMin().x;
real bmax=pic.scale.x.automax() ? a.max : pic.userMax().x;
-
+
real denom=bmax-bmin;
if(denom != 0) {
pic.erase();
@@ -1849,7 +1849,7 @@
typedef guide graph(pair f(real), real, real, int);
typedef guide[] multigraph(pair f(real), real, real, int);
-
+
graph graph(interpolate join)
{
return new guide(pair f(real), real a, real b, int n) {
@@ -2055,7 +2055,7 @@
}
// Connect points in z into segments corresponding to consecutive true elements
-// of b using interpolation operator join.
+// of b using interpolation operator join.
path[] segment(pair[] z, bool[] cond, interpolate join=operator --)
{
checkconditionlength(cond.length,z.length);
@@ -2102,7 +2102,7 @@
if(dmy != dpy) draw(pic,Scale(pic,z+(0,dmy))--Scale(pic,z+(0,dpy)),p,
Bars(size));
}
-
+
void errorbars(picture pic=currentpicture, pair[] z, pair[] dp, pair[] dm={},
bool[] cond={}, pen p=currentpen, real size=0)
{
@@ -2157,13 +2157,13 @@
real x=(n == 1) ? 0.5 : i/(n-1);
if(truesize)
draw(relpoint(g,x),pic,vector(x),p,arrow);
- else
+ else
draw(pic,shift(relpoint(g,x))*vector(x),p,arrow,margin);
}
return pic;
}
-real maxlength(pair a, pair b, int nx, int ny)
+real maxlength(pair a, pair b, int nx, int ny)
{
return min((b.x-a.x)/nx,(b.y-a.y)/ny);
}
Modified: trunk/Master/texmf-dist/asymptote/graph3.asy
===================================================================
--- trunk/Master/texmf-dist/asymptote/graph3.asy 2021-02-24 18:27:49 UTC (rev 57875)
+++ trunk/Master/texmf-dist/asymptote/graph3.asy 2021-02-24 18:33:44 UTC (rev 57876)
@@ -9,7 +9,7 @@
ticklocate ticklocate(real a, real b, autoscaleT S=defaultS,
real tickmin=-infinity, real tickmax=infinity,
- real time(real)=null, direction3 dir)
+ real time(real)=null, direction3 dir)
{
if((valuetime) time == null) time=linear(S.T(),a,b);
ticklocate locate;
@@ -23,13 +23,13 @@
locate.dir3=dir;
return locate;
}
-
+
private struct locateT {
real t; // tick location time
triple V; // tick location in frame coordinates
triple pathdir; // path direction in frame coordinates
triple dir; // tick direction in frame coordinates
-
+
void dir(transform3 T, path3 g, ticklocate locate, real t) {
pathdir=unit(shiftless(T)*dir(g,t));
triple Dir=locate.dir3(t);
@@ -60,7 +60,7 @@
draw(pic,G,p,name="tick");
}
-triple ticklabelshift(triple align, pen p=currentpen)
+triple ticklabelshift(triple align, pen p=currentpen)
{
return 0.25*unit(align)*labelmargin(p);
}
@@ -100,10 +100,10 @@
if(s != "")
label(pic,F.defaulttransform3 ? baseline(s,baselinetemplate) : F.T3*s,v,
align,F.p);
-}
+}
// Add axis label L to frame f.
-void labelaxis(picture pic, transform3 T, Label L, path3 g,
+void labelaxis(picture pic, transform3 T, Label L, path3 g,
ticklocate locate=null, int sign=1, bool ticklabels=false)
{
triple m=pic.min(identity4);
@@ -118,7 +118,7 @@
picture F;
if(L.align.dir3 == O)
align=unit(invert(L.align.dir,v,P))*abs(L.align.dir);
-
+
if(ticklabels && locate != null && piecewisestraight(g)) {
locateT locate1;
locate1.dir(T,g,locate,t);
@@ -171,12 +171,12 @@
pen pTick=pTick;
pen ptick=ptick;
ticklabel ticklabel=ticklabel;
-
+
real Size=Size;
real size=size;
if(Size == 0) Size=Ticksize;
if(size == 0) size=ticksize;
-
+
Label L=L.copy();
Label F=F.copy();
L.p(p);
@@ -183,13 +183,13 @@
F.p(p);
if(pTick == nullpen) pTick=p;
if(ptick == nullpen) ptick=pTick;
-
+
bool ticklabels=false;
path3 G=t*g;
path3 G2=t*g2;
-
+
scalefcn T;
-
+
real a,b;
if(locate.S.scale.logarithmic) {
a=locate.S.postscale.Tinv(locate.a);
@@ -200,11 +200,11 @@
b=locate.S.Tinv(locate.b);
T=identity;
}
-
+
if(a > b) {real temp=a; a=b; b=temp;}
real norm=max(abs(a),abs(b));
-
+
string format=autoformat(F.s,norm...Ticks);
if(F.s == "%") F.s="";
if(ticklabel == null) {
@@ -324,8 +324,8 @@
begin,end,modify,Size,size,extend,pTick,ptick);
}
-ticks3 InTicks(Label format="", ticklabel ticklabel=null,
- bool beginlabel=true, bool endlabel=true,
+ticks3 InTicks(Label format="", ticklabel ticklabel=null,
+ bool beginlabel=true, bool endlabel=true,
real[] Ticks, real[] ticks=new real[],
real Size=0, real size=0, bool extend=false,
pen pTick=nullpen, pen ptick=nullpen)
@@ -334,8 +334,8 @@
Ticks,ticks,Size,size,extend,pTick,ptick);
}
-ticks3 OutTicks(Label format="", ticklabel ticklabel=null,
- bool beginlabel=true, bool endlabel=true,
+ticks3 OutTicks(Label format="", ticklabel ticklabel=null,
+ bool beginlabel=true, bool endlabel=true,
real[] Ticks, real[] ticks=new real[],
real Size=0, real size=0, bool extend=false,
pen pTick=nullpen, pen ptick=nullpen)
@@ -344,8 +344,8 @@
Ticks,ticks,Size,size,extend,pTick,ptick);
}
-ticks3 InOutTicks(Label format="", ticklabel ticklabel=null,
- bool beginlabel=true, bool endlabel=true,
+ticks3 InOutTicks(Label format="", ticklabel ticklabel=null,
+ bool beginlabel=true, bool endlabel=true,
real[] Ticks, real[] ticks=new real[],
real Size=0, real size=0, bool extend=false,
pen pTick=nullpen, pen ptick=nullpen)
@@ -362,15 +362,15 @@
triple tickMin3(picture pic)
{
return minbound(pic.userMin(),(pic.scale.x.tickMin,pic.scale.y.tickMin,
- pic.scale.z.tickMin));
+ pic.scale.z.tickMin));
}
-
+
triple tickMax3(picture pic)
{
return maxbound(pic.userMax(),(pic.scale.x.tickMax,pic.scale.y.tickMax,
- pic.scale.z.tickMax));
+ pic.scale.z.tickMax));
}
-
+
axis Bounds(int type=Both, int type2=Both, triple align=O, bool extend=false)
{
return new void(picture pic, axisT axis) {
@@ -470,7 +470,7 @@
void axis(picture pic=currentpicture, Label L="", path3 g, path3 g2=nullpath3,
pen p=currentpen, ticks3 ticks, ticklocate locate,
arrowbar3 arrow=None, margin3 margin=NoMargin3,
- int[] divisor=new int[], bool above=false, bool opposite=false)
+ int[] divisor=new int[], bool above=false, bool opposite=false)
{
Label L=L.copy();
real t=reltime(g,0.5);
@@ -477,15 +477,15 @@
if(L.defaultposition) L.position(t);
divisor=copy(divisor);
locate=locate.copy();
-
+
pic.add(new void (picture f, transform3 t, transform3 T, triple, triple) {
picture d;
ticks(d,t,L,g,g2,p,arrow,margin,locate,divisor,opposite,true);
add(f,t*T*inverse(t)*d);
},above=above);
-
+
addPath(pic,g,p);
-
+
if(L.s != "") {
frame f;
Label L0=L.copy();
@@ -552,7 +552,7 @@
y0=y2;
z0=z;
}
-
+
triple a2=xmin == -infinity ? tinv*(lb.x-min3(p).x,ytrans(t,y0),
ztrans(t,z0)) : (xmin,y0,z0);
triple b2=xmax == infinity ? tinv*(rt.x-max3(p).x,ytrans(t,y0),
@@ -564,7 +564,7 @@
pic.scale.x.tickMax=mx.max;
divisor=mx.divisor;
}
-
+
triple fuzz=X*epsilon*max(abs(a.x),abs(b.x));
a -= fuzz;
b += fuzz;
@@ -584,7 +584,7 @@
y=pic.scale.y.automax() ? tickMax3(pic).y : pic.userMax().y;
else if(type == Both) {
y2=pic.scale.y.automax() ? tickMax3(pic).y : pic.userMax().y;
- y=opposite ? y2 :
+ y=opposite ? y2 :
(pic.scale.y.automin() ? tickMin3(pic).y : pic.userMin().y);
}
@@ -594,7 +594,7 @@
z=pic.scale.z.automax() ? tickMax3(pic).z : pic.userMax().z;
else if(type2 == Both) {
z2=pic.scale.z.automax() ? tickMax3(pic).z : pic.userMax().z;
- z=opposite2 ? z2 :
+ z=opposite2 ? z2 :
(pic.scale.z.automin() ? tickMin3(pic).z : pic.userMin().z);
}
@@ -610,7 +610,7 @@
pic.addPoint(a,min3(p));
pic.addPoint(a,max3(p));
}
-
+
if(finite(b)) {
pic.addPoint(b,min3(p));
pic.addPoint(b,max3(p));
@@ -650,7 +650,7 @@
pic.scale.x.bound.push(bounds);
}
-// An internal routine to draw an x axis at a particular y value.
+// An internal routine to draw a y axis at a particular value.
void yaxis3At(picture pic=currentpicture, Label L="", axis axis,
real ymin=-infinity, real ymax=infinity, pen p=currentpen,
ticks3 ticks=NoTicks3,
@@ -685,12 +685,12 @@
x0=x2;
z0=z;
}
-
+
triple a2=ymin == -infinity ? tinv*(xtrans(t,x0),lb.y-min3(p).y,
ztrans(t,z0)) : (x0,ymin,z0);
triple b2=ymax == infinity ? tinv*(xtrans(t,x0),rt.y-max3(p).y,
ztrans(t,z0)) : (x0,ymax,z0);
-
+
if(ymin == -infinity || ymax == infinity) {
bounds my=autoscale(a.y,b.y,pic.scale.y.scale);
pic.scale.y.tickMin=my.min;
@@ -697,7 +697,7 @@
pic.scale.y.tickMax=my.max;
divisor=my.divisor;
}
-
+
triple fuzz=Y*epsilon*max(abs(a.y),abs(b.y));
a -= fuzz;
b += fuzz;
@@ -717,7 +717,7 @@
x=pic.scale.x.automax() ? tickMax3(pic).x : pic.userMax().x;
else if(type == Both) {
x2=pic.scale.x.automax() ? tickMax3(pic).x : pic.userMax().x;
- x=opposite ? x2 :
+ x=opposite ? x2 :
(pic.scale.x.automin() ? tickMin3(pic).x : pic.userMin().x);
}
@@ -727,7 +727,7 @@
z=pic.scale.z.automax() ? tickMax3(pic).z : pic.userMax().z;
else if(type2 == Both) {
z2=pic.scale.z.automax() ? tickMax3(pic).z : pic.userMax().z;
- z=opposite2 ? z2 :
+ z=opposite2 ? z2 :
(pic.scale.z.automin() ? tickMin3(pic).z : pic.userMin().z);
}
@@ -743,7 +743,7 @@
pic.addPoint(a,min3(p));
pic.addPoint(a,max3(p));
}
-
+
if(finite(b)) {
pic.addPoint(b,min3(p));
pic.addPoint(b,max3(p));
@@ -783,7 +783,7 @@
pic.scale.y.bound.push(bounds);
}
-// An internal routine to draw an x axis at a particular y value.
+// An internal routine to draw a z axis at a particular value.
void zaxis3At(picture pic=currentpicture, Label L="", axis axis,
real zmin=-infinity, real zmax=infinity, pen p=currentpen,
ticks3 ticks=NoTicks3,
@@ -818,7 +818,7 @@
x0=x2;
y0=y;
}
-
+
triple a2=zmin == -infinity ? tinv*(xtrans(t,x0),ytrans(t,y0),
lb.z-min3(p).z) : (x0,y0,zmin);
triple b2=zmax == infinity ? tinv*(xtrans(t,x0),ytrans(t,y0),
@@ -830,7 +830,7 @@
pic.scale.z.tickMax=mz.max;
divisor=mz.divisor;
}
-
+
triple fuzz=Z*epsilon*max(abs(a.z),abs(b.z));
a -= fuzz;
b += fuzz;
@@ -850,7 +850,7 @@
x=pic.scale.x.automax() ? tickMax3(pic).x : pic.userMax().x;
else if(type == Both) {
x2=pic.scale.x.automax() ? tickMax3(pic).x : pic.userMax().x;
- x=opposite ? x2 :
+ x=opposite ? x2 :
(pic.scale.x.automin() ? tickMin3(pic).x : pic.userMin().x);
}
@@ -860,7 +860,7 @@
y=pic.scale.y.automax() ? tickMax3(pic).y : pic.userMax().y;
else if(type2 == Both) {
y2=pic.scale.y.automax() ? tickMax3(pic).y : pic.userMax().y;
- y=opposite2 ? y2 :
+ y=opposite2 ? y2 :
(pic.scale.y.automin() ? tickMin3(pic).y : pic.userMin().y);
}
@@ -876,7 +876,7 @@
pic.addPoint(a,min3(p));
pic.addPoint(a,max3(p));
}
-
+
if(finite(b)) {
pic.addPoint(b,min3(p));
pic.addPoint(b,max3(p));
@@ -934,7 +934,7 @@
pic.userMaxz3(ceil(pic.userMax().z));
}
} else {mz.min=mz.max=0; pic.scale.set=false;}
-
+
pic.scale.z.tickMin=mz.min;
pic.scale.z.tickMax=mz.max;
axis.zdivisor=mz.divisor;
@@ -948,7 +948,7 @@
arrowbar3 arrow=None, margin3 margin=NoMargin3, bool above=false)
{
if(xmin > xmax) return;
-
+
if(pic.scale.x.automin && xmin > -infinity) pic.scale.x.automin=false;
if(pic.scale.x.automax && xmax < infinity) pic.scale.x.automax=false;
@@ -956,19 +956,19 @@
axis(pic,axis);
autoscale3(pic,axis);
}
-
+
bool newticks=false;
-
+
if(xmin != -infinity) {
xmin=pic.scale.x.T(xmin);
newticks=true;
}
-
+
if(xmax != infinity) {
xmax=pic.scale.x.T(xmax);
newticks=true;
}
-
+
if(newticks && pic.userSetx() && ticks != NoTicks3) {
if(xmin == -infinity) xmin=pic.userMin().x;
if(xmax == infinity) xmax=pic.userMax().x;
@@ -977,9 +977,9 @@
pic.scale.x.tickMax=mx.max;
axis.xdivisor=mx.divisor;
}
-
+
axis(pic,axis);
-
+
if(xmin == -infinity && !axis.extend) {
if(pic.scale.set)
xmin=pic.scale.x.automin() ? pic.scale.x.tickMin :
@@ -986,7 +986,7 @@
max(pic.scale.x.tickMin,pic.userMin().x);
else xmin=pic.userMin().x;
}
-
+
if(xmax == infinity && !axis.extend) {
if(pic.scale.set)
xmax=pic.scale.x.automax() ? pic.scale.x.tickMax :
@@ -998,7 +998,7 @@
L=L.copy();
L.position(axis.position);
}
-
+
bool back=false;
if(axis.type == Both) {
triple v=currentprojection.normal;
@@ -1025,24 +1025,24 @@
if(pic.scale.y.automin && ymin > -infinity) pic.scale.y.automin=false;
if(pic.scale.y.automax && ymax < infinity) pic.scale.y.automax=false;
-
+
if(!pic.scale.set) {
axis(pic,axis);
autoscale3(pic,axis);
}
-
+
bool newticks=false;
-
+
if(ymin != -infinity) {
ymin=pic.scale.y.T(ymin);
newticks=true;
}
-
+
if(ymax != infinity) {
ymax=pic.scale.y.T(ymax);
newticks=true;
}
-
+
if(newticks && pic.userSety() && ticks != NoTicks3) {
if(ymin == -infinity) ymin=pic.userMin().y;
if(ymax == infinity) ymax=pic.userMax().y;
@@ -1051,9 +1051,9 @@
pic.scale.y.tickMax=my.max;
axis.ydivisor=my.divisor;
}
-
+
axis(pic,axis);
-
+
if(ymin == -infinity && !axis.extend) {
if(pic.scale.set)
ymin=pic.scale.y.automin() ? pic.scale.y.tickMin :
@@ -1060,8 +1060,8 @@
max(pic.scale.y.tickMin,pic.userMin().y);
else ymin=pic.userMin().y;
}
-
-
+
+
if(ymax == infinity && !axis.extend) {
if(pic.scale.set)
ymax=pic.scale.y.automax() ? pic.scale.y.tickMax :
@@ -1073,7 +1073,7 @@
L=L.copy();
L.position(axis.position);
}
-
+
bool back=false;
if(axis.type == Both) {
triple v=currentprojection.normal;
@@ -1100,24 +1100,24 @@
if(pic.scale.z.automin && zmin > -infinity) pic.scale.z.automin=false;
if(pic.scale.z.automax && zmax < infinity) pic.scale.z.automax=false;
-
+
if(!pic.scale.set) {
axis(pic,axis);
autoscale3(pic,axis);
}
-
+
bool newticks=false;
-
+
if(zmin != -infinity) {
zmin=pic.scale.z.T(zmin);
newticks=true;
}
-
+
if(zmax != infinity) {
zmax=pic.scale.z.T(zmax);
newticks=true;
}
-
+
if(newticks && pic.userSetz() && ticks != NoTicks3) {
if(zmin == -infinity) zmin=pic.userMin().z;
if(zmax == infinity) zmax=pic.userMax().z;
@@ -1126,9 +1126,9 @@
pic.scale.z.tickMax=mz.max;
axis.zdivisor=mz.divisor;
}
-
+
axis(pic,axis);
-
+
if(zmin == -infinity && !axis.extend) {
if(pic.scale.set)
zmin=pic.scale.z.automin() ? pic.scale.z.tickMin :
@@ -1135,7 +1135,7 @@
max(pic.scale.z.tickMin,pic.userMin().z);
else zmin=pic.userMin().z;
}
-
+
if(zmax == infinity && !axis.extend) {
if(pic.scale.set)
zmax=pic.scale.z.automax() ? pic.scale.z.tickMax :
@@ -1147,7 +1147,7 @@
L=L.copy();
L.position(axis.position);
}
-
+
bool back=false;
if(axis.type == Both) {
triple v=currentprojection.vector();
@@ -1169,18 +1169,18 @@
bool crop=NoCrop)
{
if(min > max) return;
-
+
pic.scale.z.automin=min <= -infinity;
pic.scale.z.automax=max >= infinity;
-
+
bounds mz;
if(pic.scale.z.automin() || pic.scale.z.automax())
mz=autoscale(pic.userMin().z,pic.userMax().z,pic.scale.z.scale);
-
+
if(pic.scale.z.automin) {
if(pic.scale.z.automin()) pic.userMinz(mz.min);
} else pic.userMinz(min(pic.scale.z.T(min),pic.scale.z.T(max)));
-
+
if(pic.scale.z.automax) {
if(pic.scale.z.automax()) pic.userMaxz(mz.max);
} else pic.userMaxz(max(pic.scale.z.T(min),pic.scale.z.T(max)));
@@ -1193,10 +1193,10 @@
ylimits(pic,min.y,max.y);
zlimits(pic,min.z,max.z);
}
-
+
// Draw x, y and z axes.
void axes3(picture pic=currentpicture,
- Label xlabel="", Label ylabel="", Label zlabel="",
+ Label xlabel="", Label ylabel="", Label zlabel="",
bool extend=false,
triple min=(-infinity,-infinity,-infinity),
triple max=(infinity,infinity,infinity),
@@ -1212,11 +1212,50 @@
return (pic.scale.x.T(v.x),pic.scale.y.T(v.y),pic.scale.z.T(v.z));
}
+triple[][] Scale(picture pic=currentpicture, triple[][] P)
+{
+ triple[][] Q=new triple[P.length][];
+ for(int i=0; i < P.length; ++i) {
+ triple[] Pi=P[i];
+ Q[i]=new triple[Pi.length];
+ for(int j=0; j < Pi.length; ++j)
+ Q[i][j]=Scale(pic,Pi[j]);
+ }
+ return Q;
+}
+
+real ScaleX(picture pic=currentpicture, real x)
+{
+ return pic.scale.x.T(x);
+}
+
+real ScaleY(picture pic=currentpicture, real y)
+{
+ return pic.scale.y.T(y);
+}
+
real ScaleZ(picture pic=currentpicture, real z)
{
return pic.scale.z.T(z);
}
+real[][] ScaleZ(picture pic=currentpicture, real[][] P)
+{
+ real[][] Q=new real[P.length][];
+ for(int i=0; i < P.length; ++i) {
+ real[] Pi=P[i];
+ Q[i]=new real[Pi.length];
+ for(int j=0; j < Pi.length; ++j)
+ Q[i][j]=ScaleZ(pic,Pi[j]);
+ }
+ return Q;
+}
+
+real[] uniform(real T(real x), real Tinv(real x), real a, real b, int n)
+{
+ return map(Tinv,uniform(T(a),T(b),n));
+}
+
// Draw a tick of length size at triple v in direction dir using pen p.
void tick(picture pic=currentpicture, triple v, triple dir, real size=Ticksize,
pen p=currentpen)
@@ -1240,11 +1279,11 @@
real size=Ticksize, pen p=currentpen)
{
tick(pic,(x,pic.scale.y.scale.logarithmic ? 1 : 0,
- pic.scale.z.scale.logarithmic ? 1 : 0),dir,size,p);
+ pic.scale.z.scale.logarithmic ? 1 : 0),dir,size,p);
}
void ytick(picture pic=currentpicture, triple v, triple dir=X,
- real size=Ticksize, pen p=currentpen)
+ real size=Ticksize, pen p=currentpen)
{
tick(pic,v,dir,size,p);
}
@@ -1257,7 +1296,7 @@
}
void ztick(picture pic=currentpicture, triple v, triple dir=X,
- real size=Ticksize, pen p=currentpen)
+ real size=Ticksize, pen p=currentpen)
{
xtick(pic,v,dir,size,p);
}
@@ -1294,7 +1333,7 @@
string format="", real size=Ticksize, pen p=currentpen)
{
xtick(pic,L,(x,pic.scale.y.scale.logarithmic ? 1 : 0,
- pic.scale.z.scale.logarithmic ? 1 : 0),dir,size,p);
+ pic.scale.z.scale.logarithmic ? 1 : 0),dir,size,p);
}
void ytick(picture pic=currentpicture, Label L, triple v, triple dir=X,
@@ -1307,7 +1346,7 @@
string format="", real size=Ticksize, pen p=currentpen)
{
xtick(pic,L,(pic.scale.x.scale.logarithmic ? 1 : 0,y,
- pic.scale.z.scale.logarithmic ? 1 : 0),dir,format,size,p);
+ pic.scale.z.scale.logarithmic ? 1 : 0),dir,format,size,p);
}
void ztick(picture pic=currentpicture, Label L, triple v, triple dir=X,
@@ -1320,7 +1359,7 @@
string format="", real size=Ticksize, pen p=currentpen)
{
xtick(pic,L,(pic.scale.x.scale.logarithmic ? 1 : 0,
- pic.scale.z.scale.logarithmic ? 1 : 0,z),dir,format,size,p);
+ pic.scale.z.scale.logarithmic ? 1 : 0,z),dir,format,size,p);
}
private void label(picture pic, Label L, triple v, real x, align align,
@@ -1416,7 +1455,7 @@
guide3 Straight(... guide3[])=operator --;
guide3 Spline(... guide3[])=operator ..;
-
+
guide3 graph(picture pic=currentpicture, real x(real), real y(real),
real z(real), real a, real b, int n=ngraph,
interpolate3 join=operator --)
@@ -1519,12 +1558,12 @@
guide3 graph(triple F(pair), path p, int n=1, interpolate3 join=operator --)
{
- return graph(new triple(path p, real position)
+ return graph(new triple(path p, real position)
{return F(point(p,position));},p,n,join);
}
guide3 graph(picture pic=currentpicture, real f(pair), path p, int n=1,
- interpolate3 join=operator --)
+ interpolate3 join=operator --)
{
return graph(new triple(pair z) {return Scale(pic,(z.x,z.y,f(z)));},p,n,
join);
@@ -1538,7 +1577,7 @@
}
// Connect points in v into segments corresponding to consecutive true elements
-// of b using interpolation operator join.
+// of b using interpolation operator join.
path3[] segment(triple[] v, bool[] cond, interpolate3 join=operator --)
{
checkconditionlength(cond.length,v.length);
@@ -1596,13 +1635,13 @@
}
// return the surface described by a matrix f
-surface surface(triple[][] f, bool[][] cond={})
+surface surface(picture pic=currentpicture, triple[][] f, bool[][] cond={})
{
if(!rectangular(f)) abort("matrix is not rectangular");
-
+
int nx=f.length-1;
int ny=nx > 0 ? f[0].length-1 : 0;
-
+
bool all=cond.length == 0;
int count;
@@ -1632,7 +1671,11 @@
int[] indexi=s.index[i];
for(int j=0; j < ny; ++j) {
if(all || (condi[j] && condi[j+1] && condp[j] && condp[j+1]))
- s.s[++k]=patch(new triple[] {fi[j],fp[j],fp[j+1],fi[j+1]});
+ s.s[++k]=patch(new triple[] {
+ Scale(pic,fi[j]),
+ Scale(pic,fp[j]),
+ Scale(pic,fp[j+1]),
+ Scale(pic,fi[j+1])});
indexi[j]=k;
}
}
@@ -1708,14 +1751,15 @@
real zppmppp=zpp-hx*pp[jp];
real zijqij=zij+hy*qi[j];
real zpjqpj=zpj+hy*qp[j];
-
+
s.s[k]=patch(new triple[][] {
- {(xi,yj,zij),(xi,y1,zijqij),(xi,y2,zip-qip),(xi,yp,zip)},
- {(x1,yj,zij+pij),(x1,y1,zijqij+pij+hxy*ri[j]),
- (x1,y2,zippip-qip-hxy*ri[jp]),(x1,yp,zippip)},
- {(x2,yj,zpj-ppj),(x2,y1,zpjqpj-ppj-hxy*rp[j]),
- (x2,y2,zppmppp-qpp+hxy*rp[jp]),(x2,yp,zppmppp)},
- {(xp,yj,zpj),(xp,y1,zpjqpj),(xp,y2,zpp-qpp),(xp,yp,zpp)}},copy=false);
+ {(xi,yj,zij),(xi,y1,zijqij),(xi,y2,zip-qip),(xi,yp,zip)},
+ {(x1,yj,zij+pij),(x1,y1,zijqij+pij+hxy*ri[j]),
+ (x1,y2,zippip-qip-hxy*ri[jp]),(x1,yp,zippip)},
+ {(x2,yj,zpj-ppj),(x2,y1,zpjqpj-ppj-hxy*rp[j]),
+ (x2,y2,zppmppp-qpp+hxy*rp[jp]),(x2,yp,zppmppp)},
+ {(xp,yj,zpj),(xp,y1,zpjqpj),(xp,y2,zpp-qpp),(xp,yp,zpp)}},
+ copy=false);
indexi[j]=k;
++k;
}
@@ -1787,11 +1831,11 @@
real zpjqpj=zpj+hy*qp[j];
s[k]=new real[][] {{zij,zijqij,zip-qip,zip},
- {zij+pij,zijqij+pij+hxy*ri[j],
- zippip-qip-hxy*ri[jp],zippip},
- {zpj-ppj,zpjqpj-ppj-hxy*rp[j],
- zppmppp-qpp+hxy*rp[jp],zppmppp},
- {zpj,zpjqpj,zpp-qpp,zpp}};
+ {zij+pij,zijqij+pij+hxy*ri[j],
+ zippip-qip-hxy*ri[jp],zippip},
+ {zpj-ppj,zpjqpj-ppj-hxy*rp[j],
+ zppmppp-qpp+hxy*rp[jp],zppmppp},
+ {zpj,zpjqpj,zpp-qpp,zpp}};
++k;
}
}
@@ -1831,10 +1875,15 @@
// return the surface described by a real matrix f, interpolated with
// xsplinetype and ysplinetype.
-surface surface(real[][] f, real[] x, real[] y,
- splinetype xsplinetype=null, splinetype ysplinetype=xsplinetype,
+surface surface(picture pic=currentpicture, real[][] f, real[] x, real[] y,
+ splinetype xsplinetype=null,
+ splinetype ysplinetype=xsplinetype,
bool[][] cond={})
{
+ real[][] f=ScaleZ(pic,f);
+ real[] x=map(pic.scale.x.T,x);
+ real[] y=map(pic.scale.y.T,y);
+
real epsilon=sqrtEpsilon*norm(y);
if(xsplinetype == null)
xsplinetype=(abs(x[0]-x[x.length-1]) <= epsilon) ? periodic : notaknot;
@@ -1863,8 +1912,9 @@
// return the surface described by a real matrix f, interpolated with
// xsplinetype and ysplinetype.
-surface surface(real[][] f, pair a, pair b, splinetype xsplinetype,
- splinetype ysplinetype=xsplinetype, bool[][] cond={})
+surface surface(picture pic=currentpicture, real[][] f, pair a, pair b,
+ splinetype xsplinetype, splinetype ysplinetype=xsplinetype,
+ bool[][] cond={})
{
if(!rectangular(f)) abort("matrix is not rectangular");
@@ -1873,13 +1923,14 @@
if(nx == 0 || ny == 0) return nullsurface;
- real[] x=uniform(a.x,b.x,nx);
- real[] y=uniform(a.y,b.y,ny);
- return surface(f,x,y,xsplinetype,ysplinetype,cond);
+ real[] x=uniform(pic.scale.x.T,pic.scale.x.Tinv,a.x,b.x,nx);
+ real[] y=uniform(pic.scale.y.T,pic.scale.y.Tinv,a.y,b.y,ny);
+ return surface(pic,f,x,y,xsplinetype,ysplinetype,cond);
}
// return the surface described by a real matrix f, interpolated linearly.
-surface surface(real[][] f, pair a, pair b, bool[][] cond={})
+surface surface(picture pic=currentpicture, real[][] f, pair a, pair b,
+ bool[][] cond={})
{
if(!rectangular(f)) abort("matrix is not rectangular");
@@ -1891,22 +1942,25 @@
bool all=cond.length == 0;
triple[][] v=new triple[nx+1][ny+1];
+
+ pair a=Scale(pic,a);
+ pair b=Scale(pic,b);
for(int i=0; i <= nx; ++i) {
- real x=interp(a.x,b.x,i/nx);
+ real x=pic.scale.x.Tinv(interp(a.x,b.x,i/nx));
bool[] condi=all ? null : cond[i];
triple[] vi=v[i];
real[] fi=f[i];
for(int j=0; j <= ny; ++j)
if(all || condi[j])
- vi[j]=(x,interp(a.y,b.y,j/ny),fi[j]);
+ vi[j]=(x,pic.scale.y.Tinv(interp(a.y,b.y,j/ny)),fi[j]);
}
- return surface(v,cond);
+ return surface(pic,v,cond);
}
// return the surface described by a parametric function f over box(a,b),
// interpolated linearly.
-surface surface(triple f(pair z), pair a, pair b, int nu=nmesh, int nv=nu,
- bool cond(pair z)=null)
+surface surface(picture pic=currentpicture, triple f(pair z), pair a, pair b,
+ int nu=nmesh, int nv=nu, bool cond(pair z)=null)
{
if(nu <= 0 || nv <= 0) return nullsurface;
@@ -1921,23 +1975,25 @@
triple[][] v=new triple[nu+1][nv+1];
+ pair a=Scale(pic,a);
+ pair b=Scale(pic,b);
for(int i=0; i <= nu; ++i) {
- real x=interp(a.x,b.x,i*du);
+ real x=pic.scale.x.Tinv(interp(a.x,b.x,i*du));
bool[] activei=all ? null : active[i];
triple[] vi=v[i];
for(int j=0; j <= nv; ++j) {
- pair z=(x,interp(a.y,b.y,j*dv));
+ pair z=(x,pic.scale.y.Tinv(interp(a.y,b.y,j*dv)));
if(all || (activei[j]=cond(z))) vi[j]=f(z);
}
}
- return surface(v,active);
+ return surface(pic,v,active);
}
-
+
// return the surface described by a parametric function f evaluated at u and v
// and interpolated with usplinetype and vsplinetype.
-surface surface(triple f(pair z), real[] u, real[] v,
- splinetype[] usplinetype, splinetype[] vsplinetype=Spline,
- bool cond(pair z)=null)
+surface surface(picture pic=currentpicture, triple f(pair z),
+ real[] u, real[] v, splinetype[] usplinetype,
+ splinetype[] vsplinetype=Spline, bool cond(pair z)=null)
{
int nu=u.length-1;
int nv=v.length-1;
@@ -1960,7 +2016,7 @@
for(int j=0; j <= nv; ++j) {
pair z=(ui,v[j]);
if(!all) activei[j]=cond(z);
- triple f=f(z);
+ triple f=Scale(pic,f(z));
fxi[j]=f.x;
fyi[j]=f.y;
fzi[j]=f.z;
@@ -2020,27 +2076,30 @@
// return the surface described by a parametric function f over box(a,b),
// interpolated with usplinetype and vsplinetype.
-surface surface(triple f(pair z), pair a, pair b, int nu=nmesh, int nv=nu,
+surface surface(picture pic=currentpicture, triple f(pair z), pair a, pair b,
+ int nu=nmesh, int nv=nu,
splinetype[] usplinetype, splinetype[] vsplinetype=Spline,
bool cond(pair z)=null)
{
- return surface(f,uniform(a.x,b.x,nu),uniform(a.y,b.y,nv),
- usplinetype,vsplinetype,cond);
+ real[] x=uniform(pic.scale.x.T,pic.scale.x.Tinv,a.x,b.x,nu);
+ real[] y=uniform(pic.scale.y.T,pic.scale.y.Tinv,a.y,b.y,nv);
+ return surface(pic,f,x,y,usplinetype,vsplinetype,cond);
}
// return the surface described by a real function f over box(a,b),
// interpolated linearly.
-surface surface(real f(pair z), pair a, pair b, int nx=nmesh, int ny=nx,
- bool cond(pair z)=null)
+surface surface(picture pic=currentpicture, real f(pair z), pair a, pair b,
+ int nx=nmesh, int ny=nx, bool cond(pair z)=null)
{
- return surface(new triple(pair z) {return (z.x,z.y,f(z));},a,b,nx,ny,cond);
+ return surface(pic,new triple(pair z) {return (z.x,z.y,f(z));},a,b,nx,ny,
+ cond);
}
// return the surface described by a real function f over box(a,b),
// interpolated with xsplinetype and ysplinetype.
-surface surface(real f(pair z), pair a, pair b, int nx=nmesh, int ny=nx,
- splinetype xsplinetype, splinetype ysplinetype=xsplinetype,
- bool cond(pair z)=null)
+surface surface(picture pic=currentpicture, real f(pair z), pair a, pair b,
+ int nx=nmesh, int ny=nx, splinetype xsplinetype,
+ splinetype ysplinetype=xsplinetype, bool cond(pair z)=null)
{
bool[][] active;
bool all=cond == null;
@@ -2052,8 +2111,8 @@
pair dz=(dx,dy);
real[][] F=new real[nx+1][ny+1];
- real[] x=uniform(a.x,b.x,nx);
- real[] y=uniform(a.y,b.y,ny);
+ real[] x=uniform(pic.scale.x.T,pic.scale.x.Tinv,a.x,b.x,nx);
+ real[] y=uniform(pic.scale.y.T,pic.scale.y.Tinv,a.y,b.y,ny);
for(int i=0; i <= nx; ++i) {
bool[] activei=all ? null : active[i];
real[] Fi=F[i];
@@ -2064,7 +2123,7 @@
if(!all) activei[j]=cond(z);
}
}
- return surface(F,x,y,xsplinetype,ysplinetype,active);
+ return surface(pic,F,x,y,xsplinetype,ysplinetype,active);
}
guide3[][] lift(real f(real x, real y), guide[][] g,
@@ -2128,7 +2187,7 @@
render,interaction);
}
-real maxlength(triple f(pair z), pair a, pair b, int nu, int nv)
+real maxlength(triple f(pair z), pair a, pair b, int nu, int nv)
{
return min(abs(f((b.x,a.y))-f(a))/nu,abs(f((a.x,b.y))-f(a))/nv);
}
Modified: trunk/Master/texmf-dist/asymptote/graph_splinetype.asy
===================================================================
--- trunk/Master/texmf-dist/asymptote/graph_splinetype.asy 2021-02-24 18:27:49 UTC (rev 57875)
+++ trunk/Master/texmf-dist/asymptote/graph_splinetype.asy 2021-02-24 18:33:44 UTC (rev 57876)
@@ -13,7 +13,7 @@
abort(text+": "+string(x)+" != "+string(y));
}
-void checkincreasing(real[] x)
+void checkincreasing(real[] x)
{
if(!increasing(x,true))
abort("strictly increasing array expected");
@@ -114,7 +114,7 @@
// Standard cubic spline interpolation with the natural condition
// s''(a)=s''(b)=0.
// if n=2, linear interpolation is returned
-// Don't use the natural type unless the underlying function
+// Don't use the natural type unless the underlying function
// has zero second end points derivatives.
real[] natural(real[] x, real[] y)
{
@@ -186,25 +186,25 @@
// Piecewise Cubic Hermite Interpolating Polynomial (PCHIP)
// Modified MATLAB code
-// [1] Fritsch, F. N. and R. E. Carlson,
-// "Monotone Piecewise Cubic Interpolation,"
+// [1] Fritsch, F. N. and R. E. Carlson,
+// "Monotone Piecewise Cubic Interpolation,"
// SIAM J. Numerical Analysis, Vol. 17, 1980, pp.238-246.
-// [2] Kahaner, David, Cleve Moler, Stephen Nash,
+// [2] Kahaner, David, Cleve Moler, Stephen Nash,
// Numerical Methods and Software, Prentice Hall, 1988.
-real[] monotonic(real[] x, real[] y)
+real[] monotonic(real[] x, real[] y)
{
- int n=x.length;
+ int n=x.length;
checklengths(n,y.length);
checkincreasing(x);
- real[] d=new real[n];
+ real[] d=new real[n];
if(n > 2) {
real[] h=new real[n-1];
real[] del=new real[n-1];
for(int i=0; i < n-1; ++i) {
- h[i]=x[i+1]-x[i];
- del[i]=(y[i+1]-y[i])/h[i];
- }
- int j=0;
+ h[i]=x[i+1]-x[i];
+ del[i]=(y[i+1]-y[i])/h[i];
+ }
+ int j=0;
int k[]=new int[];
for(int i=0; i < n-2; ++i)
if((sgn(del[i])*sgn(del[i+1])) > 0) {k[j]=i; j=j+1;}
@@ -220,10 +220,10 @@
w2[i]=(h[k[i]+1]+hs[i])/(3*hs[i]);
dmax[i]=max(abs(del[k[i]]),abs(del[k[i]+1]));
dmin[i]=min(abs(del[k[i]]),abs(del[k[i]+1]));
- }
+ }
for(int i=0; i < n; ++i) d[i]=0;
for(int i=0; i < j; ++i)
- d[k[i]+1]=dmin[i]/(w1[i]*(del[k[i]]/dmax[i])+w2[i]*(del[k[i]+1]/dmax[i]));
+ d[k[i]+1]=dmin[i]/(w1[i]*(del[k[i]]/dmax[i])+w2[i]*(del[k[i]+1]/dmax[i]));
d[0]=((2*h[0]+h[1])*del[0]-h[0]*del[1])/(h[0]+h[1]);
if(sgn(d[0]) != sgn(del[0])) {d[0]=0;}
else if((sgn(del[0]) != sgn(del[1])) && (abs(d[0]) > abs(3*del[0])))
@@ -238,7 +238,7 @@
d[0]=d[1]=(y[1]-y[0])/(x[1]-x[0]);
} else abort(morepoints);
return d;
-}
+}
// Return standard cubic spline interpolation as a guide
guide hermite(real[] x, real[] y, splinetype splinetype=null)
Modified: trunk/Master/texmf-dist/asymptote/grid3.asy
===================================================================
--- trunk/Master/texmf-dist/asymptote/grid3.asy 2021-02-24 18:27:49 UTC (rev 57875)
+++ trunk/Master/texmf-dist/asymptote/grid3.asy 2021-02-24 18:33:44 UTC (rev 57876)
@@ -259,7 +259,7 @@
N,n,Step,step,begin,end,
Size,size,false,pTick,ptick);
otg.grid3=new void(picture pic, bool above) {
- grid3(pic,gridroutine,N,n,Step,step,begin,end,pGrid,pgrid,above);
+ grid3(pic,gridroutine,N,n,Step,step,begin,end,pGrid,pgrid,above);
};
return otg;
};
@@ -280,7 +280,7 @@
otg.ticks=Ticks3(-1,F,ticklabel,beginlabel,endlabel,N,n,Step,step,
begin,end,Size,size,false,pTick,ptick);
otg.grid3=new void(picture pic, bool above) {
- grid3(pic,gridroutine,N,n,Step,step,begin,end,pGrid,pgrid,above);
+ grid3(pic,gridroutine,N,n,Step,step,begin,end,pGrid,pgrid,above);
};
return otg;
};
@@ -301,7 +301,7 @@
otg.ticks=Ticks3(1,F,ticklabel,beginlabel,endlabel,N,n,Step,step,
begin,end,Size,size,false,pTick,ptick);
otg.grid3=new void(picture pic, bool above) {
- grid3(pic,gridroutine,N,n,Step,step,begin,end,pGrid,pgrid,above);
+ grid3(pic,gridroutine,N,n,Step,step,begin,end,pGrid,pgrid,above);
};
return otg;
};
Modified: trunk/Master/texmf-dist/asymptote/interpolate.asy
===================================================================
--- trunk/Master/texmf-dist/asymptote/interpolate.asy 2021-02-24 18:27:49 UTC (rev 57875)
+++ trunk/Master/texmf-dist/asymptote/interpolate.asy 2021-02-24 18:33:44 UTC (rev 57876)
@@ -7,8 +7,8 @@
// and values y_0,...,y_n in the array y,
// hdiffdiv(x,y,dyp) computes Newton's Divided Difference for
-// Hermite interpolation where dyp={dy_0,...,dy_n}.
-//
+// Hermite interpolation where dyp={dy_0,...,dy_n}.
+//
// fhorner(x,coeff) uses Horner's rule to compute the polynomial
// a_0+a_1(x-x_0)+a_2(x-x_0)(x-x_1)+...+a_n(x-x_0)..(x-x_{n-1}),
// where coeff={a_0,a_1,...,a_n}.
@@ -54,7 +54,7 @@
return s;
};
}
-
+
// Newton's Divided Difference method: n(n-1)/2 divisions, n(n-1) additions.
horner diffdiv(real[] x, real[] y)
{
@@ -136,5 +136,5 @@
real[] dy=splinetype(x,y);
return new real(real t) {
return pwhermite(x,y,dy)(t);
- };
+ };
}
Modified: trunk/Master/texmf-dist/asymptote/labelpath3.asy
===================================================================
--- trunk/Master/texmf-dist/asymptote/labelpath3.asy 2021-02-24 18:27:49 UTC (rev 57875)
+++ trunk/Master/texmf-dist/asymptote/labelpath3.asy 2021-02-24 18:33:44 UTC (rev 57876)
@@ -21,7 +21,7 @@
}
// Modification of the bishop frame construction contained in
-// space_tube.asy (from Philippe Ivaldi's modules).
+// space_tube.asy (from Philippe Ivaldi's modules).
// For noncyclic path3s only
triple[] nextframe(path3 p, real reltimestart, triple[] start, real
reltimeend, int subdiv=20)
@@ -40,7 +40,7 @@
}
return bf[subdiv];
}
-
+
surface labelpath(string s, path3 p, real angle=90, triple optional=O)
{
real Cos=Cos(angle);
@@ -48,10 +48,10 @@
path[] text=texpath(Label(s,(0,0),Align,basealign));
text=scale(1/(max(text).x-min(text).x))*text;
path[][] decompose=containmentTree(text);
-
+
real[][] xpos=new real[decompose.length][2];
surface sf;
- for(int i=0; i < decompose.length; ++i) {// Identify positions along x-axis
+ for(int i=0; i < decompose.length; ++i) {// Identify positions along x-axis
xpos[i][1]=i;
real pos0=0.5(max(decompose[i]).x+min(decompose[i]).x);
xpos[i][0]=pos0;
Deleted: trunk/Master/texmf-dist/asymptote/latin1.asy
===================================================================
--- trunk/Master/texmf-dist/asymptote/latin1.asy 2021-02-24 18:27:49 UTC (rev 57875)
+++ trunk/Master/texmf-dist/asymptote/latin1.asy 2021-02-24 18:33:44 UTC (rev 57876)
@@ -1,2 +0,0 @@
-usepackage("fontenc","T1");
-usepackage("inputenc","latin1");
Modified: trunk/Master/texmf-dist/asymptote/lmfit.asy
===================================================================
--- trunk/Master/texmf-dist/asymptote/lmfit.asy 2021-02-24 18:27:49 UTC (rev 57875)
+++ trunk/Master/texmf-dist/asymptote/lmfit.asy 2021-02-24 18:33:44 UTC (rev 57876)
@@ -58,31 +58,31 @@
private real LM_USERTOL = 30 * LM_MACHEP;
restricted string lm_infmsg[] = {
- "improper input parameters",
- "the relative error in the sum of squares is at most tol",
- "the relative error between x and the solution is at most tol",
- "both errors are at most tol",
- "fvec is orthogonal to the columns of the jacobian to machine precision",
- "number of calls to fcn has reached or exceeded maxcall*(n+1)",
- "ftol is too small: no further reduction in the sum of squares is possible",
- "xtol too small: no further improvement in approximate solution x possible",
- "gtol too small: no further improvement in approximate solution x possible",
- "not enough memory",
- "break requested within function evaluation"
+ "improper input parameters",
+ "the relative error in the sum of squares is at most tol",
+ "the relative error between x and the solution is at most tol",
+ "both errors are at most tol",
+ "fvec is orthogonal to the columns of the jacobian to machine precision",
+ "number of calls to fcn has reached or exceeded maxcall*(n+1)",
+ "ftol is too small: no further reduction in the sum of squares is possible",
+ "xtol too small: no further improvement in approximate solution x possible",
+ "gtol too small: no further improvement in approximate solution x possible",
+ "not enough memory",
+ "break requested within function evaluation"
};
restricted string lm_shortmsg[] = {
- "invalid input",
- "success (f)",
- "success (p)",
- "success (f,p)",
- "degenerate",
- "call limit",
- "failed (f)",
- "failed (p)",
- "failed (o)",
- "no memory",
- "user break"
+ "invalid input",
+ "success (f)",
+ "success (p)",
+ "success (f,p)",
+ "degenerate",
+ "call limit",
+ "failed (f)",
+ "failed (p)",
+ "failed (o)",
+ "no memory",
+ "user break"
};
@@ -91,7 +91,7 @@
real[] user_t;
real[] user_y;
real[] user_w;
- real user_func(real user_t_point, real[] par);
+ real user_func(real user_t_point, real[] par);
};
@@ -99,7 +99,7 @@
// the int and real types
struct lm_int_type {
int val;
-
+
void operator init(int val) {
this.val = val;
}
@@ -108,7 +108,7 @@
struct lm_real_type {
real val;
-
+
void operator init(real val) {
this.val = val;
}
@@ -402,7 +402,7 @@
}
break;
}
-
+
sdiag[j] = r[j * ldr + j];
r[j * ldr + j] = x[j];
}
@@ -508,10 +508,10 @@
dxnorm = lm_enorm(n, wa2);
fp_old = fp;
fp = dxnorm - delta;
-
+
if (fabs(fp) <= p1 * delta || (parl == 0.0 && fp <= fp_old && fp_old < 0.0) || iter == 10)
break;
-
+
for (j = 0; j < n; ++j)
wa1[j] = diag[ipvt[j]] * wa2[ipvt[j]] / dxnorm;
@@ -522,12 +522,12 @@
}
temp = lm_enorm(n, wa1);
parc = fp / delta / temp / temp;
-
+
if (fp > 0)
parl = max(parl, par.val);
else if (fp < 0)
paru = min(paru, par.val);
-
+
par.val = max(parl, par.val + parc);
}
}
@@ -540,7 +540,7 @@
static real p25 = 0.25;
static real p75 = 0.75;
static real p0001 = 1.0e-4;
-
+
nfev.val = 0;
int iter = 1;
lm_real_type par = lm_real_type(0);
@@ -563,7 +563,7 @@
}
}
}
-
+
info.val = 0;
evaluate(x, m, fvec, data, info);
if(printout != null) printout(n, x, m, fvec, data, 0, 0, ++nfev.val);
@@ -587,7 +587,7 @@
fjac[j * m + i] = (wa4[i] - fvec[i]) / (x[j] - temp);
x[j] = temp;
}
-
+
lm_qrfac(m, n, fjac, true, ipvt, wa1, wa2, wa3);
if (iter == 1) {
@@ -695,7 +695,7 @@
delta = pnorm / p5;
par.val *= p5;
}
-
+
if (ratio >= p0001) {
for (j = 0; j < n; ++j) {
x[j] = wa2[j];
@@ -735,7 +735,7 @@
void lm_minimize(int m_dat, int n_par, real[] par, lm_evaluate_ftype evaluate, lm_print_ftype printout, lm_data_type data, lm_control_type control) {
int n = n_par;
int m = m_dat;
-
+
real[] fvec = new real[m];
real[] diag = new real[n];
real[] qtf = new real[n];
@@ -838,13 +838,13 @@
int n_par = parameters.length;
lm_evaluate_ftype evaluate = lm_evaluate_default;
lm_print_ftype printout = control.verbose ? lm_print_default : lm_print_quiet;
-
+
lm_data_type data;
data.user_t = xdata;
data.user_y = ydata;
data.user_w = 1 / errors;
data.user_func = new real(real x, real[] params) {
- return function(params, x);
+ return function(params, x);
};
lm_control_type ctrl;
@@ -856,7 +856,7 @@
ctrl.maxcall = control.maxIterations;
lm_minimize(m_dat, n_par, parameters, evaluate, printout, data, ctrl);
-
+
return FitResult(ctrl.fnorm, ctrl.nfev.val, ctrl.info.val);
}
Added: trunk/Master/texmf-dist/asymptote/map.asy
===================================================================
--- trunk/Master/texmf-dist/asymptote/map.asy (rev 0)
+++ trunk/Master/texmf-dist/asymptote/map.asy 2021-02-24 18:33:44 UTC (rev 57876)
@@ -0,0 +1,40 @@
+// Create a struct <name> parameterized by types <key> and <value>,
+// that maps keys to values, defaulting to the value in <default>.
+void mapTemplate(string name, string key, string value, string default)
+{
+ type(key,"Key");
+ type(value,"Value");
+ eval("Value default="+default,true);
+
+ eval("
+ struct keyValue {
+ Key key;
+ Value T;
+ void operator init(Key key) {
+ this.key=key;
+ }
+ void operator init(Key key, Value T) {
+ this.key=key;
+ this.T=T;
+ }
+ }
+
+ struct map {
+ keyValue[] M;
+ bool operator < (keyValue a, keyValue b) {return a.key < b.key;}
+
+ void add(Key key, Value T) {
+ keyValue m=keyValue(key,T);
+ M.insert(search(M,m,operator <)+1,m);
+ }
+ Value lookup(Key key) {
+ int i=search(M,keyValue(key),operator <);
+ if(i >= 0 && M[i].key == key) return M[i].T;
+ return default;
+ }
+ }
+",true);
+
+ type("map",name);
+}
+
Modified: trunk/Master/texmf-dist/asymptote/math.asy
===================================================================
--- trunk/Master/texmf-dist/asymptote/math.asy 2021-02-24 18:27:49 UTC (rev 57875)
+++ trunk/Master/texmf-dist/asymptote/math.asy 2021-02-24 18:33:44 UTC (rev 57876)
@@ -30,7 +30,7 @@
picture pic;
for(int i=0; i <= Nx; ++i) draw(pic,(i,0)--(i,Ny),p);
for(int j=0; j <= Ny; ++j) draw(pic,(0,j)--(Nx,j),p);
- return pic;
+ return pic;
}
bool polygon(path p)
@@ -55,7 +55,7 @@
real denom=n.x*(Q.x-P.x)+n.y*(Q.y-P.y)+n.z*(Q.z-P.z);
return denom == 0 ? infinity : (d-n.x*P.x-n.y*P.y-n.z*P.z)/denom;
}
-
+
// Return any point on the intersection of the two planes with normals
// n0 and n1 passing through points P0 and P1, respectively.
// If the planes are parallel return (infinity,infinity,infinity).
@@ -293,7 +293,7 @@
},true);
}
-real interpolate(real[] x, real[] y, real x0, int i)
+real interpolate(real[] x, real[] y, real x0, int i)
{
int n=x.length;
if(n == 0) abort("Zero data points in interpolate");
@@ -317,7 +317,7 @@
// real[] x are listed in ascending order and return y0. Values outside the
// available data range are linearly extrapolated using the first derivative
// at the nearest endpoint.
-real interpolate(real[] x, real[] y, real x0)
+real interpolate(real[] x, real[] y, real x0)
{
return interpolate(x,y,x0,search(x,x0));
}
@@ -378,7 +378,7 @@
// Remove roots at numerical infinity.
if(abs(a) <= Fuzz*(abs(b)+Fuzz*(abs(c)+Fuzz*(abs(d)+Fuzz*abs(e)))))
return cubicroots(b,c,d,e);
-
+
// Detect roots at numerical zero.
if(abs(e) <= Fuzz*(abs(d)+Fuzz*(abs(c)+Fuzz*(abs(b)+Fuzz*abs(a)))))
return cubicroots(a,b,c,d);
@@ -388,7 +388,7 @@
c *= ainv;
d *= ainv;
e *= ainv;
-
+
pair[] roots;
real[] T=cubicroots(1,-2c,c^2+b*d-4e,d^2+b^2*e-b*c*d);
if(T.length == 0) return roots;
@@ -434,13 +434,13 @@
real[] solution=solve(AtA(A),b*A,warn=false);
if (solution.length == 0 && warn)
abort("Cannot compute least-squares approximation for " +
- "a matrix with linearly dependent columns.");
+ "a matrix with linearly dependent columns.");
return solution;
}
// Namespace
struct rootfinder_settings {
- static real roottolerance = 1e-4;
+ static real roottolerance=1e-4;
}
real findroot(real f(real), real a, real b,
Modified: trunk/Master/texmf-dist/asymptote/metapost.asy
===================================================================
--- trunk/Master/texmf-dist/asymptote/metapost.asy 2021-02-24 18:27:49 UTC (rev 57875)
+++ trunk/Master/texmf-dist/asymptote/metapost.asy 2021-02-24 18:33:44 UTC (rev 57876)
@@ -2,7 +2,7 @@
path cuttings;
-path cutbefore(path p, path q)
+path cutbefore(path p, path q)
{
slice s=firstcut(p,q);
cuttings=s.before;
@@ -9,7 +9,7 @@
return s.after;
}
-path cutafter(path p, path q)
+path cutafter(path p, path q)
{
slice s=lastcut(p,q);
cuttings=s.after;
Modified: trunk/Master/texmf-dist/asymptote/obj.asy
===================================================================
--- trunk/Master/texmf-dist/asymptote/obj.asy 2021-02-24 18:27:49 UTC (rev 57875)
+++ trunk/Master/texmf-dist/asymptote/obj.asy 2021-02-24 18:33:44 UTC (rev 57876)
@@ -1,7 +1,7 @@
// A module for reading simple obj files with groups.
// Authors: Jens Schwaiger and John Bowman
//
-// Here simple means that :
+// Here simple means that :
//
// 1) all vertex statements should come before the face statements;
//
Modified: trunk/Master/texmf-dist/asymptote/ode.asy
===================================================================
--- trunk/Master/texmf-dist/asymptote/ode.asy 2021-02-24 18:27:49 UTC (rev 57875)
+++ trunk/Master/texmf-dist/asymptote/ode.asy 2021-02-24 18:33:44 UTC (rev 57876)
@@ -14,7 +14,7 @@
int order;
coefficients a;
void stepDependence(real h, real c, coefficients a) {}
-
+
real pgrow;
real pshrink;
bool exponential;
@@ -54,7 +54,7 @@
if(fabs(x) > 1) return (exp(x)-x-1)/x2;
real x3=x2*x;
real x5=x2*x3;
- if(fabs(x) < 0.1)
+ if(fabs(x) < 0.1)
return Coeff[1]+x*Coeff[2]+x2*Coeff[3]+x3*Coeff[4]+x2*x2*Coeff[5]
+x5*Coeff[6]+x3*x3*Coeff[7]+x5*x2*Coeff[8]+x5*x3*Coeff[9];
else {
@@ -73,7 +73,7 @@
real x3=x2*x;
if(fabs(x) > 1.6) return (exp(x)-0.5*x2-x-1)/x3;
real x5=x2*x3;
- if(fabs(x) < 0.1)
+ if(fabs(x) < 0.1)
return Coeff[2]+x*Coeff[3]+x2*Coeff[4]+x3*Coeff[5]
+x2*x2*Coeff[6]+x5*Coeff[7]+x3*x3*Coeff[8]+x5*x2*Coeff[9]
+x5*x3*Coeff[10];
@@ -90,13 +90,13 @@
}
}
-void expfactors(real x, coefficients a)
+void expfactors(real x, coefficients a)
{
for(int i=0; i < a.steps.length; ++i)
a.factors[i]=exp(x*a.steps[i]);
a.factors[a.steps.length]=exp(x);
}
-
+
// First-Order Euler
RKTableau Euler=RKTableau(1,new real[][], new real[] {1});
@@ -185,40 +185,40 @@
// Fifth-Order Cash-Karp Runge-Kutta
RKTableau RK5=RKTableau(5,new real[][] {{1/5},
- {3/40,9/40},
- {3/10,-9/10,6/5},
- {-11/54,5/2,-70/27,35/27},
- {1631/55296,175/512,575/13824,
- 44275/110592,253/4096}},
+ {3/40,9/40},
+ {3/10,-9/10,6/5},
+ {-11/54,5/2,-70/27,35/27},
+ {1631/55296,175/512,575/13824,
+ 44275/110592,253/4096}},
new real[] {37/378,0,250/621,125/594,
- 0,512/1771}, // 5th order
+ 0,512/1771}, // 5th order
new real[] {2825/27648,0,18575/48384,13525/55296,
- 277/14336,1/4}); // 4th order
+ 277/14336,1/4}); // 4th order
// Fifth-Order Fehlberg Runge-Kutta
RKTableau RK5F=RKTableau(5,new real[][] {{1/4},
- {3/32,9/32},
- {1932/2197,-7200/2197,7296/2197},
- {439/216,-8,3680/513,-845/4104},
- {-8/27,2,-3544/2565,1859/4104,
- -11/40}},
+ {3/32,9/32},
+ {1932/2197,-7200/2197,7296/2197},
+ {439/216,-8,3680/513,-845/4104},
+ {-8/27,2,-3544/2565,1859/4104,
+ -11/40}},
new real[] {16/135,0,6656/12825,28561/56430,-9/50,2/55}, // 5th order
new real[] {25/216,0,1408/2565,2197/4104,-1/5,0}); // 4th order
// Fifth-Order Dormand-Prince Runge-Kutta
RKTableau RK5DP=RKTableau(5,new real[][] {{1/5},
- {3/40,9/40},
- {44/45,-56/15,32/9},
- {19372/6561,-25360/2187,64448/6561,
- -212/729},
- {9017/3168,-355/33,46732/5247,49/176,
- -5103/18656}},
+ {3/40,9/40},
+ {44/45,-56/15,32/9},
+ {19372/6561,-25360/2187,64448/6561,
+ -212/729},
+ {9017/3168,-355/33,46732/5247,49/176,
+ -5103/18656}},
new real[] {35/384,0,500/1113,125/192,-2187/6784,
- 11/84}, // 5th order
+ 11/84}, // 5th order
new real[] {5179/57600,0,7571/16695,393/640,
- -92097/339200,187/2100,1/40}); // 4th order
+ -92097/339200,187/2100,1/40}); // 4th order
-real error(real error, real initial, real lowOrder, real norm, real diff)
+real error(real error, real initial, real lowOrder, real norm, real diff)
{
if(initial != 0 && lowOrder != initial) {
static real epsilon=realMin/realEpsilon;
@@ -249,7 +249,7 @@
real[] y;
}
-void write(solution S)
+void write(solution S)
{
for(int i=0; i < S.t.length; ++i)
write(S.t[i],S.y[i]);
@@ -276,7 +276,7 @@
new real(real t, real y) {return f(t,y)-c*y;};
tableau.stepDependence(h,c,tableau.a);
-
+
real t=a;
real f0;
if(tableau.a.lowOrderWeights.length == 0) dynamic=false;
@@ -293,7 +293,7 @@
tableau.stepDependence(h,c,tableau.a);
dt=h;
}
-
+
real[] predictions={fsal ? f0 : F(t,y)};
for(int i=0; i < tableau.a.steps.length; ++i)
predictions.push(F(t+h*tableau.a.steps[i],
@@ -336,7 +336,7 @@
real[][] y;
}
-void write(Solution S)
+void write(Solution S)
{
for(int i=0; i < S.t.length; ++i) {
write(S.t[i],tab);
@@ -356,7 +356,7 @@
Solution S;
S.t=new real[] {a};
S.y=new real[][] {copy(y)};
-
+
if(h == 0) {
if(b == a) return S;
if(n == 0) abort("Either n or h must be specified");
Modified: trunk/Master/texmf-dist/asymptote/palette.asy
===================================================================
--- trunk/Master/texmf-dist/asymptote/palette.asy 2021-02-24 18:27:49 UTC (rev 57875)
+++ trunk/Master/texmf-dist/asymptote/palette.asy 2021-02-24 18:33:44 UTC (rev 57876)
@@ -5,7 +5,7 @@
typedef bounds range(picture pic, real min, real max);
range Range(bool automin=false, real min=-infinity,
- bool automax=false, real max=infinity)
+ bool automax=false, real max=infinity)
{
return new bounds(picture pic, real dmin, real dmax) {
// autoscale routine finds reasonable limits
@@ -45,7 +45,7 @@
// Reduce color palette to approximate range of data relative to "display"
// range => errors of 1/palette.length in resulting color space.
pen[] adjust(picture pic, real min, real max, real rmin, real rmax,
- pen[] palette)
+ pen[] palette)
{
real dmin=pic.scale.z.T(min);
real dmax=pic.scale.z.T(max);
@@ -100,7 +100,7 @@
initial=T*initial;
final=T*final;
}
-
+
pic.add(new void(frame F, transform t) {
_image(F,f,initial,final,palette,t*T,copy=false,antialias=antialias);
},true);
@@ -146,7 +146,7 @@
initial=T*initial;
final=T*final;
}
-
+
pic.add(new void(frame F, transform t) {
_image(F,data,initial,final,t*T,copy=false,antialias=antialias);
},true);
@@ -171,7 +171,7 @@
initial=T*initial;
final=T*final;
}
-
+
pic.add(new void(frame F, transform t) {
_image(F,f,width,height,initial,final,t*T,antialias=antialias);
},true);
@@ -190,8 +190,8 @@
real rmax=pic.scale.z.T(bounds.max);
palette=adjust(pic,m,M,rmin,rmax,palette);
- rmin=max(rmin,m);
- rmax=min(rmax,M);
+ rmin=max(rmin,pic.scale.z.T(m));
+ rmax=min(rmax,pic.scale.z.T(M));
// Crop data to allowed range and scale
if(range != Full || pic.scale.z.scale.T != identity ||
@@ -201,6 +201,12 @@
real M=bounds.max;
f=map(new real(real x) {return T(min(max(x,m),M));},f);
}
+ if(pic.scale.x.scale.T != identity || pic.scale.x.postscale.T != identity ||
+ pic.scale.y.scale.T != identity || pic.scale.y.postscale.T != identity) {
+ scalefcn Tx=pic.scale.x.T;
+ scalefcn Ty=pic.scale.y.T;
+ z=map(new pair(pair z) {return (Tx(z.x),Ty(z.y));},z);
+ }
int[] edges={0,0,1};
int N=palette.length-1;
@@ -267,13 +273,13 @@
return Ticks(sign,format,ticklabel,beginlabel,endlabel,N,n,Step,step,
true,true,extend=true,pTick,ptick);
};
-}
+}
paletteticks PaletteTicks=PaletteTicks();
paletteticks NoTicks=new ticks(int sign=-1) {return NoTicks;};
-void palette(picture pic=currentpicture, Label L="", bounds bounds,
- pair initial, pair final, axis axis=Right, pen[] palette,
+void palette(picture pic=currentpicture, Label L="", bounds bounds,
+ pair initial, pair final, axis axis=Right, pen[] palette,
pen p=currentpen, paletteticks ticks=PaletteTicks,
bool copy=true, bool antialias=false)
{
@@ -280,7 +286,7 @@
real initialz=pic.scale.z.T(bounds.min);
real finalz=pic.scale.z.T(bounds.max);
bounds mz=autoscale(initialz,finalz,pic.scale.z.scale);
-
+
axisT axis;
axis(pic,axis);
real angle=degrees(axis.align.dir);
@@ -311,11 +317,11 @@
if(vertical && L.defaulttransform) {
frame f;
add(f,Label(L.s,(0,0),L.p));
- if(length(max(f)-min(f)) > ylabelwidth*fontsize(L.p))
+ if(length(max(f)-min(f)) > ylabelwidth*fontsize(L.p))
L.transform(rotate(90));
}
real[][] pdata={sequence(palette.length)};
-
+
transform T;
pair Tinitial,Tfinal;
if(vertical) {
@@ -326,12 +332,12 @@
Tinitial=initial;
Tfinal=final;
}
-
+
pic.add(new void(frame f, transform t) {
_image(f,pdata,Tinitial,Tfinal,palette,t*T,copy=false,
antialias=antialias);
},true);
-
+
ticklocate locate=ticklocate(initialz,finalz,pic.scale.z,mz.min,mz.max);
axis(pic,L,g,g2,p,ticks(sgn(axis.side.x*dot(lambda,par))),locate,mz.divisor,
true);
@@ -356,13 +362,13 @@
pen[] Wheel(int NColors=32766)
{
if(settings.gray) return Grayscale(NColors);
-
+
int nintervals=6;
if(NColors <= nintervals) NColors=nintervals+1;
int n=-quotient(NColors,-nintervals);
-
+
pen[] Palette;
-
+
Palette=new pen[n*nintervals];
real ninv=1.0/n;
@@ -373,7 +379,7 @@
Palette[n+i]=rgb(ininv1,0.0,1.0);
Palette[2n+i]=rgb(0.0,ininv,1.0);
Palette[3n+i]=rgb(0.0,1.0,ininv1);
- Palette[4n+i]=rgb(ininv,1.0,0.0);
+ Palette[4n+i]=rgb(ininv,1.0,0.0);
Palette[5n+i]=rgb(1.0,ininv1,0.0);
}
return Palette;
@@ -383,14 +389,14 @@
pen[] Rainbow(int NColors=32766)
{
if(settings.gray) return Grayscale(NColors);
-
+
int offset=1;
int nintervals=5;
if(NColors <= nintervals) NColors=nintervals+1;
int n=-quotient(NColors-1,-nintervals);
-
+
pen[] Palette;
-
+
Palette=new pen[n*nintervals+offset];
real ninv=1.0/n;
@@ -400,11 +406,11 @@
Palette[i]=rgb(ininv1,0.0,1.0);
Palette[n+i]=rgb(0.0,ininv,1.0);
Palette[2n+i]=rgb(0.0,1.0,ininv1);
- Palette[3n+i]=rgb(ininv,1.0,0.0);
+ Palette[3n+i]=rgb(ininv,1.0,0.0);
Palette[4n+i]=rgb(1.0,ininv1,0.0);
}
Palette[4n+n]=rgb(1.0,0.0,0.0);
-
+
return Palette;
}
@@ -411,26 +417,26 @@
private pen[] BWRainbow(int NColors, bool two)
{
if(settings.gray) return Grayscale(NColors);
-
+
int offset=1;
int nintervals=6;
int divisor=3;
-
+
if(two) nintervals += 6;
-
+
int Nintervals=nintervals*divisor;
if(NColors <= Nintervals) NColors=Nintervals+1;
int num=NColors-offset;
int n=-quotient(num,-Nintervals)*divisor;
NColors=n*nintervals+offset;
-
+
pen[] Palette;
-
+
Palette=new pen[NColors];
real ninv=1.0/n;
int k=0;
-
+
if(two) {
for(int i=0; i < n; ++i) {
real ininv=i*ninv;
@@ -444,9 +450,9 @@
}
k += 6n;
}
-
+
if(two)
- for(int i=0; i < n; ++i)
+ for(int i=0; i < n; ++i)
Palette[k+i]=rgb(1.0-i*ninv,0.0,1.0);
else {
int n3=-quotient(n,-3);
@@ -467,12 +473,12 @@
real ininv1=1.0-ininv;
Palette[k+i]=rgb(0.0,ininv,1.0);
Palette[k+n+i]=rgb(0.0,1.0,ininv1);
- Palette[k+2n+i]=rgb(ininv,1.0,0.0);
+ Palette[k+2n+i]=rgb(ininv,1.0,0.0);
Palette[k+3n+i]=rgb(1.0,ininv1,0.0);
Palette[k+4n+i]=rgb(1.0,ininv,ininv);
}
Palette[k+5n]=rgb(1.0,1.0,1.0);
-
+
return Palette;
}
@@ -484,7 +490,7 @@
real step=(Palette.length-1)/(n-1);
return sequence(new pen(int i) {
return Palette[round(i*step)];
- },n);
+ },n);
}
// A rainbow palette tapering off to black/white at the spectrum ends,
@@ -507,7 +513,7 @@
//A palette varying linearly over the specified array of pens, using
// NColors in each interpolation interval.
-pen[] Gradient(int NColors=256 ... pen[] p)
+pen[] Gradient(int NColors=256 ... pen[] p)
{
pen[] P;
if(p.length < 2) abort("at least 2 colors must be specified");
@@ -522,7 +528,7 @@
return P;
}
-pen[] cmyk(pen[] Palette)
+pen[] cmyk(pen[] Palette)
{
int n=Palette.length;
for(int i=0; i < n; ++i)
Modified: trunk/Master/texmf-dist/asymptote/patterns.asy
===================================================================
--- trunk/Master/texmf-dist/asymptote/patterns.asy 2021-02-24 18:27:49 UTC (rev 57875)
+++ trunk/Master/texmf-dist/asymptote/patterns.asy 2021-02-24 18:33:44 UTC (rev 57876)
@@ -7,7 +7,7 @@
pair pmin=min(f)-lb;
pair pmax=max(f)+rt;
string s="%.6f";
- postscript(tiling,"<< /PaintType 1 /PatternType 1 /TilingType 1
+ postscript(tiling,"<< /PaintType 1 /PatternType 1 /TilingType 1
/BBox ["+format(s,pmin.x,"C")+" "+format(s,pmin.y,"C")+" "+
format(s,pmax.x,"C")+" "+format(s,pmax.y,"C")+"]
/XStep "+format(s,pmax.x-pmin.x,"C")+"
@@ -64,7 +64,7 @@
}
real hatchepsilon=1e-4;
-picture hatch(real H=5mm, pair dir=NE, pen p=currentpen)
+picture hatch(real H=5mm, pair dir=NE, pen p=currentpen)
{
picture tiling;
real theta=angle(dir);
Modified: trunk/Master/texmf-dist/asymptote/plain.asy
===================================================================
--- trunk/Master/texmf-dist/asymptote/plain.asy 2021-02-24 18:27:49 UTC (rev 57875)
+++ trunk/Master/texmf-dist/asymptote/plain.asy 2021-02-24 18:33:44 UTC (rev 57876)
@@ -18,13 +18,13 @@
include plain_constants;
-access version;
+access version;
if(version.VERSION != VERSION) {
warning("version","using possibly incompatible version "+
version.VERSION+" of plain.asy"+'\n');
nowarn("version");
}
-
+
include plain_strings;
include plain_pens;
include plain_paths;
@@ -32,13 +32,15 @@
include plain_margins;
include plain_picture;
include plain_Label;
-include plain_shipout;
include plain_arcs;
include plain_boxes;
+include plain_shipout;
include plain_markers;
include plain_arrows;
include plain_debugger;
+real RELEASE=(real) split(VERSION,"-")[0];
+
typedef void exitfcn();
void updatefunction()
@@ -106,7 +108,7 @@
});
// Save the current state, so that restore will put things back in that state.
-restoreThunk save()
+restoreThunk save()
{
return restore=buildRestoreThunk();
}
@@ -132,7 +134,7 @@
}
// Save the current state, so that restore will put things back in that state.
-restoreThunk savedefaults()
+restoreThunk savedefaults()
{
return restoredefaults=buildRestoreDefaults();
}
@@ -145,7 +147,7 @@
atexit(null);
}
-// Return the sequence n,...m
+// Return the sequence n,...,m
int[] sequence(int n, int m)
{
return sequence(new int(int x){return x;},m-n+1)+n;
@@ -180,6 +182,19 @@
if(!embedded) restoredefaults();
}
+// Associate a parametrized type with a name.
+void type(string type, string name)
+{
+ eval("typedef "+type+" "+name,true);
+}
+
+void mapArray(string From, string To)
+{
+ type(From,"From");
+ type(To,"To");
+ eval("To[] map(To f(From), From[] a) {return sequence(new To(int i) {return f(a[i]);},a.length);}",true);
+}
+
// Evaluate user command line option.
void usersetting()
{
@@ -186,7 +201,7 @@
eval(settings.user,true);
}
-string stripsuffix(string f, string suffix=".asy")
+string stripsuffix(string f, string suffix=".asy")
{
int n=rfind(f,suffix);
if(n != -1) f=erase(f,n,-1);
@@ -231,6 +246,7 @@
struct processtime {
real user;
real system;
+ real clock;
}
struct cputime {
@@ -239,21 +255,26 @@
processtime change;
}
-cputime cputime()
+cputime cputime()
{
static processtime last;
real [] a=_cputime();
cputime cputime;
+ real clock=a[4];
cputime.parent.user=a[0];
cputime.parent.system=a[1];
+ cputime.parent.clock=clock;
cputime.child.user=a[2];
cputime.child.system=a[3];
- real user=a[0]+a[2];
- real system=a[1]+a[3];
+ cputime.child.clock=0;
+ real user=cputime.parent.user+cputime.child.user;
+ real system=cputime.parent.system+cputime.child.system;
cputime.change.user=user-last.user;
cputime.change.system=system-last.system;
+ cputime.change.clock=clock-last.clock;
last.user=user;
last.system=system;
+ last.clock=clock;
return cputime;
}
@@ -285,23 +306,3 @@
}
cputime();
-
-void nosetpagesize()
-{
- static bool initialized=false;
- if(!initialized && latex()) {
- // Portably pass nosetpagesize option to graphicx package.
- texpreamble("\usepackage{ifluatex}\ifluatex
-\ifx\pdfpagewidth\undefined\let\pdfpagewidth\paperwidth\fi
-\ifx\pdfpageheight\undefined\let\pdfpageheight\paperheight\fi\else
-\let\paperwidthsave\paperwidth\let\paperwidth\undefined
-\usepackage{graphicx}
-\let\paperwidth\paperwidthsave\fi");
- initialized=true;
- }
-}
-
-nosetpagesize();
-
-if(settings.tex == "luatex")
- texpreamble("\input luatex85.sty");
Modified: trunk/Master/texmf-dist/asymptote/plain_Label.asy
===================================================================
--- trunk/Master/texmf-dist/asymptote/plain_Label.asy 2021-02-24 18:27:49 UTC (rev 57875)
+++ trunk/Master/texmf-dist/asymptote/plain_Label.asy 2021-02-24 18:33:44 UTC (rev 57876)
@@ -15,10 +15,10 @@
real a=t.xx, b=t.xy, c=t.yx, d=t.yy;
real arg=(a-d)^2+4b*c;
pair delta=arg >= 0 ? sqrt(arg) : I*sqrt(-arg);
- real trace=a+d;
+ real trace=a+d;
pair l1=0.5(trace+delta);
pair l2=0.5(trace-delta);
-
+
if(abs(delta) < sqrtEpsilon*max(abs(l1),abs(l2))) {
real s=abs(0.5trace);
return (s != 0) ? scale(1/s)*t : t;
@@ -51,7 +51,7 @@
}
}
return c;
- }
+ }
pair[][] conj(pair[][] a) {
pair[][] c=new pair[2][2];
@@ -61,7 +61,7 @@
}
}
return c;
- }
+ }
A=conj(U)*A*U;
@@ -70,7 +70,7 @@
A[0][0] /= D;
A[0][1] /= D;
}
-
+
D=abs(A[1][1]);
if(D != 0) {
A[1][0] /= D;
@@ -155,13 +155,13 @@
s.align=align;
return s;
}
-
+
restricted side NoSide;
restricted side LeftSide=Relative(W);
restricted side Center=Relative((0,0));
restricted side RightSide=Relative(E);
-side operator * (real x, side s)
+side operator * (real x, side s)
{
side S;
S.align=x*s.align;
@@ -190,7 +190,7 @@
p.relative=true;
return p;
}
-
+
restricted position BeginPoint=Relative(0);
restricted position MidPoint=Relative(0.5);
restricted position EndPoint=Relative(1);
@@ -227,8 +227,8 @@
bool defaulttransform3=true;
embed embed=Rotate; // Shift, Rotate, Slant, or Scale with embedded picture
filltype filltype=NoFill;
-
- void init(string s="", string size="", position position=0,
+
+ void init(string s="", string size="", position position=0,
bool defaultposition=true, align align=NoAlign, pen p=nullpen,
transform T=identity(), transform3 T3=identity4,
bool defaulttransform=true, bool defaulttransform3=true,
@@ -246,17 +246,17 @@
this.embed=embed;
this.filltype=filltype;
}
-
+
void initalign(string s="", string size="", align align, pen p=nullpen,
embed embed=Rotate, filltype filltype=NoFill) {
init(s,size,align,p,embed,filltype);
}
-
+
void transform(transform T) {
this.T=T;
defaulttransform=false;
}
-
+
void transform3(transform3 T) {
this.T3=copy(T);
defaulttransform3=false;
@@ -268,12 +268,12 @@
defaulttransform3,embed,filltype);
return L;
}
-
+
void position(position pos) {
this.position=pos;
defaultposition=false;
}
-
+
void align(align a) {
align.align(a);
}
@@ -280,15 +280,15 @@
void align(align a, align default) {
align.align(a,default);
}
-
+
void p(pen p0) {
if(this.p == nullpen) this.p=p0;
}
-
+
void filltype(filltype filltype0) {
if(this.filltype == NoFill) this.filltype=filltype0;
}
-
+
void label(frame f, transform t=identity(), pair position, pair align) {
pen p0=p == nullpen ? currentpen : p;
align=length(align)*unit(rotation(t)*align);
@@ -309,7 +309,7 @@
add(f,d,filltype);
}
}
-
+
void label(picture pic=currentpicture, pair position, pair align) {
if(s == "") return;
pic.add(new void (frame f, transform t) {
@@ -324,7 +324,7 @@
void out(picture pic=currentpicture) {
label(pic,position.position,align.dir);
}
-
+
void out(picture pic=currentpicture, path g) {
bool relative=position.relative;
real position=position.position.x;
@@ -349,7 +349,7 @@
pair position=point(g,position);
pic.addBox(position,position,min(f),max(f));
}
-
+
void write(file file=stdout, suffix suffix=endl) {
write(file,"\""+s+"\"");
if(!defaultposition) write(file,", position=",position.position);
@@ -364,11 +364,11 @@
}
write(file,"",suffix);
}
-
+
real relative() {
return defaultposition ? 0.5 : position.position.x;
};
-
+
real relative(path g) {
return position.relative ? reltime(g,relative()) : relative();
};
@@ -380,12 +380,12 @@
{
L.out(f,t);
}
-
+
void add(picture pic=currentpicture, Label L)
{
L.out(pic);
}
-
+
Label operator * (transform t, Label L)
{
Label tL=L.copy();
@@ -466,13 +466,13 @@
{
add(f,Label(L,position,align,p,filltype));
}
-
+
void label(frame f, Label L, align align=NoAlign,
pen p=currentpen, filltype filltype=NoFill)
{
add(f,Label(L,L.position,align,p,filltype));
}
-
+
void label(picture pic=currentpicture, Label L, pair position,
align align=NoAlign, pen p=currentpen, filltype filltype=NoFill)
{
@@ -479,7 +479,7 @@
Label L=Label(L,position,align,p,filltype);
add(pic,L);
}
-
+
void label(picture pic=currentpicture, Label L, align align=NoAlign,
pen p=currentpen, filltype filltype=NoFill)
{
@@ -494,7 +494,7 @@
label(opic,L,L.position,align,p,filltype);
add(pic,opic,origin);
}
-
+
void label(picture pic=currentpicture, Label L, explicit path g,
align align=NoAlign, pen p=currentpen, filltype filltype=NoFill)
{
@@ -532,12 +532,12 @@
return object(f);
}
-object operator cast(Label L)
+object operator cast(Label L)
{
return object(L);
}
-object operator cast(string s)
+object operator cast(string s)
{
return object(s);
}
@@ -562,7 +562,7 @@
}
// Returns a copy of object F aligned in the direction align
-object align(object F, pair align)
+object align(object F, pair align)
{
return shift(F.f,align)*F;
}
@@ -594,7 +594,7 @@
real fontsize;
string font;
- void operator init(Label L)
+ void operator init(Label L)
{
s=replace(L.s,'\n',' ');
fontsize=fontsize(L.p);
@@ -603,7 +603,7 @@
pen pen() {return fontsize(fontsize)+fontcommand(font);}
}
-
+
bool lexorder(stringfont a, stringfont b) {
return a.s < b.s || (a.s == b.s && (a.fontsize < b.fontsize ||
(a.fontsize == b.fontsize &&
@@ -615,7 +615,7 @@
static stringfont[] stringlist;
static bool adjust[];
-
+
path[] G;
stringfont s=stringfont(L);
@@ -649,7 +649,7 @@
label(f,L);
return transform(box(min(f),max(f)),L);
}
-
+
if(stringlist.length > 0) {
path[][] g;
int n=stringlist.length;
@@ -660,9 +660,9 @@
s[i]=adjust[i] ? "."+S.s : S.s;
p[i]=adjust[i] ? S.pen()+basealign : S.pen();
}
-
+
g=tex ? _texpath(s,p) : textpath(s,p);
-
+
if(tex)
for(int i=0; i < n; ++i)
if(adjust[i]) {
@@ -670,8 +670,8 @@
g[i].delete(0);
g[i]=shift(0,-y)*g[i];
}
-
-
+
+
for(int i=0; i < stringlist.length; ++i) {
stringfont s=stringlist[i];
int j=search(stringcache,s,lexorder)+1;
@@ -686,6 +686,6 @@
}
texpath=new path[](string s, pen p, bool tex=settings.tex != "none", bool bbox=false)
-{
- return texpath(Label(s,p));
-};
+ {
+ return texpath(Label(s,p));
+ };
Modified: trunk/Master/texmf-dist/asymptote/plain_arcs.asy
===================================================================
--- trunk/Master/texmf-dist/asymptote/plain_arcs.asy 2021-02-24 18:27:49 UTC (rev 57875)
+++ trunk/Master/texmf-dist/asymptote/plain_arcs.asy 2021-02-24 18:33:44 UTC (rev 57876)
@@ -1,5 +1,5 @@
bool CCW=true;
-bool CW=false;
+bool CW=false;
path circle(pair c, real r)
{
@@ -35,7 +35,7 @@
{
return arc(c,c+r*dir(angle1),c+r*dir(angle2),direction);
}
-
+
// return an arc centered at c with radius r > 0 from angle1 to angle2 in
// degrees, drawing counterclockwise if angle2 >= angle1 (otherwise clockwise).
path arc(pair c, real r, real angle1, real angle2)
Modified: trunk/Master/texmf-dist/asymptote/plain_arrows.asy
===================================================================
--- trunk/Master/texmf-dist/asymptote/plain_arrows.asy 2021-02-24 18:27:49 UTC (rev 57875)
+++ trunk/Master/texmf-dist/asymptote/plain_arrows.asy 2021-02-24 18:33:44 UTC (rev 57876)
@@ -12,7 +12,7 @@
real barfactor=arrowfactor;
-real arrowsize(pen p=currentpen)
+real arrowsize(pen p=currentpen)
{
return arrowfactor*linewidth(p);
}
@@ -53,39 +53,39 @@
arrowhead DefaultHead;
DefaultHead.head=new path(path g, position position=EndPoint, pen p=currentpen,
real size=0, real angle=arrowangle) {
- if(size == 0) size=DefaultHead.size(p);
- bool relative=position.relative;
- real position=position.position.x;
- if(relative) position=reltime(g,position);
- path r=subpath(g,position,0);
- pair x=point(r,0);
- real t=arctime(r,size);
- pair y=point(r,t);
- path base=arrowbase(r,y,t,size);
- path left=rotate(-angle,x)*r;
- path right=rotate(angle,x)*r;
- real[] T=arrowbasepoints(base,left,right);
- pair denom=point(right,T[1])-y;
- real factor=denom != 0 ? length((point(left,T[0])-y)/denom) : 1;
- path left=rotate(-angle*factor,x)*r;
- path right=rotate(angle*factor,x)*r;
- real[] T=arrowbasepoints(base,left,right);
- return subpath(left,0,T[0])--subpath(right,T[1],0)&cycle;
+ if(size == 0) size=DefaultHead.size(p);
+ bool relative=position.relative;
+ real position=position.position.x;
+ if(relative) position=reltime(g,position);
+ path r=subpath(g,position,0);
+ pair x=point(r,0);
+ real t=arctime(r,size);
+ pair y=point(r,t);
+ path base=arrowbase(r,y,t,size);
+ path left=rotate(-angle,x)*r;
+ path right=rotate(angle,x)*r;
+ real[] T=arrowbasepoints(base,left,right);
+ pair denom=point(right,T[1])-y;
+ real factor=denom != 0 ? length((point(left,T[0])-y)/denom) : 1;
+ path left=rotate(-angle*factor,x)*r;
+ path right=rotate(angle*factor,x)*r;
+ real[] T=arrowbasepoints(base,left,right);
+ return subpath(left,0,T[0])--subpath(right,T[1],0)&cycle;
};
arrowhead SimpleHead;
SimpleHead.head=new path(path g, position position=EndPoint, pen p=currentpen,
real size=0, real angle=arrowangle) {
- if(size == 0) size=SimpleHead.size(p);
- bool relative=position.relative;
- real position=position.position.x;
- if(relative) position=reltime(g,position);
- path r=subpath(g,position,0);
- pair x=point(r,0);
- real t=arctime(r,size);
- path left=rotate(-angle,x)*r;
- path right=rotate(angle,x)*r;
- return subpath(left,t,0)--subpath(right,0,t);
+ if(size == 0) size=SimpleHead.size(p);
+ bool relative=position.relative;
+ real position=position.position.x;
+ if(relative) position=reltime(g,position);
+ path r=subpath(g,position,0);
+ pair x=point(r,0);
+ real t=arctime(r,size);
+ path left=rotate(-angle,x)*r;
+ path right=rotate(angle,x)*r;
+ return subpath(left,t,0)--subpath(right,0,t);
};
arrowhead HookHead(real dir=arrowdir, real barb=arrowbarb)
@@ -94,34 +94,34 @@
a.head=new path(path g, position position=EndPoint, pen p=currentpen,
real size=0, real angle=arrowangle)
{
- if(size == 0) size=a.size(p);
- angle=min(angle*arrowhookfactor,45);
- bool relative=position.relative;
- real position=position.position.x;
- if(relative) position=reltime(g,position);
- path r=subpath(g,position,0);
- pair x=point(r,0);
- real t=arctime(r,size);
- pair y=point(r,t);
- path base=arrowbase(r,y,t,size);
- path left=rotate(-angle,x)*r;
- path right=rotate(angle,x)*r;
- real[] T=arrowbasepoints(base,left,right,1);
- pair denom=point(right,T[1])-y;
- real factor=denom != 0 ? length((point(left,T[0])-y)/denom) : 1;
- path left=rotate(-angle*factor,x)*r;
- path right=rotate(angle*factor,x)*r;
- real[] T=arrowbasepoints(base,left,right,1);
- left=subpath(left,0,T[0]);
- right=subpath(right,T[1],0);
- pair pl0=point(left,0), pl1=relpoint(left,1);
- pair pr0=relpoint(right,0), pr1=relpoint(right,1);
- pair M=(pl1+pr0)/2;
- pair v=barb*unit(M-pl0);
- pl1=pl1+v; pr0=pr0+v;
- left=pl0{dir(-dir+degrees(M-pl0,false))}..pl1--M;
- right=M--pr0..pr1{dir(dir+degrees(pr1-M,false))};
- return left--right&cycle;
+ if(size == 0) size=a.size(p);
+ angle=min(angle*arrowhookfactor,45);
+ bool relative=position.relative;
+ real position=position.position.x;
+ if(relative) position=reltime(g,position);
+ path r=subpath(g,position,0);
+ pair x=point(r,0);
+ real t=arctime(r,size);
+ pair y=point(r,t);
+ path base=arrowbase(r,y,t,size);
+ path left=rotate(-angle,x)*r;
+ path right=rotate(angle,x)*r;
+ real[] T=arrowbasepoints(base,left,right,1);
+ pair denom=point(right,T[1])-y;
+ real factor=denom != 0 ? length((point(left,T[0])-y)/denom) : 1;
+ path left=rotate(-angle*factor,x)*r;
+ path right=rotate(angle*factor,x)*r;
+ real[] T=arrowbasepoints(base,left,right,1);
+ left=subpath(left,0,T[0]);
+ right=subpath(right,T[1],0);
+ pair pl0=point(left,0), pl1=relpoint(left,1);
+ pair pr0=relpoint(right,0), pr1=relpoint(right,1);
+ pair M=(pl1+pr0)/2;
+ pair v=barb*unit(M-pl0);
+ pl1=pl1+v; pr0=pr0+v;
+ left=pl0{dir(-dir+degrees(M-pl0,false))}..pl1--M;
+ right=M--pr0..pr1{dir(dir+degrees(pr1-M,false))};
+ return left--right&cycle;
};
return a;
}
@@ -129,35 +129,35 @@
arrowhead TeXHead;
TeXHead.size=new real(pen p)
-{
- static real hcoef=2.1; // 84/40=abs(base-hint)/base_height
- return hcoef*arrowtexfactor*linewidth(p);
-};
+ {
+ static real hcoef=2.1; // 84/40=abs(base-hint)/base_height
+ return hcoef*arrowtexfactor*linewidth(p);
+ };
TeXHead.arcsize=TeXHead.size;
TeXHead.head=new path(path g, position position=EndPoint, pen p=currentpen,
real size=0, real angle=arrowangle) {
- static real wcoef=1/84; // 1/abs(base-hint)
- static path texhead=scale(wcoef)*
- ((0,20) .. controls (-75,75) and (-108,158) ..
- (-108,166) .. controls (-108,175) and (-100,178) ..
- (-93,178) .. controls (-82,178) and (-80,173) ..
- (-77,168) .. controls (-62,134) and (-30,61) ..
- (70,14) .. controls (82,8) and (84,7) ..
- (84,0) .. controls (84,-7) and (82,-8) ..
- (70,-14) .. controls (-30,-61) and (-62,-134) ..
- (-77,-168) .. controls (-80,-173) and (-82,-178) ..
- (-93,-178) .. controls (-100,-178) and (-108,-175)..
- (-108,-166).. controls (-108,-158) and (-75,-75) ..
- (0,-20)--cycle);
- if(size == 0) size=TeXHead.size(p);
- path gp=scale(size)*texhead;
- bool relative=position.relative;
- real position=position.position.x;
- if(relative) position=reltime(g,position);
- path r=subpath(g,position,0);
- pair y=point(r,arctime(r,size));
- return shift(y)*rotate(degrees(-dir(r,arctime(r,0.5*size))))*gp;
+ static real wcoef=1/84; // 1/abs(base-hint)
+ static path texhead=scale(wcoef)*
+ ((0,20) .. controls (-75,75) and (-108,158) ..
+ (-108,166) .. controls (-108,175) and (-100,178) ..
+ (-93,178) .. controls (-82,178) and (-80,173) ..
+ (-77,168) .. controls (-62,134) and (-30,61) ..
+ (70,14) .. controls (82,8) and (84,7) ..
+ (84,0) .. controls (84,-7) and (82,-8) ..
+ (70,-14) .. controls (-30,-61) and (-62,-134) ..
+ (-77,-168) .. controls (-80,-173) and (-82,-178) ..
+ (-93,-178) .. controls (-100,-178) and (-108,-175)..
+ (-108,-166).. controls (-108,-158) and (-75,-75) ..
+ (0,-20)--cycle);
+ if(size == 0) size=TeXHead.size(p);
+ path gp=scale(size)*texhead;
+ bool relative=position.relative;
+ real position=position.position.x;
+ if(relative) position=reltime(g,position);
+ path r=subpath(g,position,0);
+ pair y=point(r,arctime(r,size));
+ return shift(y)*rotate(degrees(-dir(r,arctime(r,0.5*size))))*gp;
};
TeXHead.defaultfilltype=new filltype(pen p) {return Fill(p);};
@@ -169,7 +169,7 @@
position *= arclength(g);
if(center) position += 0.5*size;
position=arctime(g,position);
- } else if(center)
+ } else if(center)
position=arctime(g,arclength(subpath(g,0,position))+0.5*size);
return position;
}
@@ -251,7 +251,7 @@
drawarrow(f,arrowhead,t*g,p,size,angle,filltype,position,forwards,margin,
center);
});
-
+
pic.addPath(g,p);
real position=position(position,size,g,center);
@@ -275,7 +275,7 @@
pic.add(new void(frame f, transform t) {
drawarrow2(f,arrowhead,t*g,p,size,angle,filltype,margin);
});
-
+
pic.addPath(g,p);
int L=length(g);
@@ -291,7 +291,7 @@
Draw(opic,-0.5d--0.5d,p+solid);
add(pic,opic,a);
}
-
+
picture bar(pair a, pair d, pen p=currentpen)
{
picture pic;
@@ -345,7 +345,7 @@
return false;
};
}
-
+
arrowbar Arrows(arrowhead arrowhead=DefaultHead,
real size=0, real angle=arrowangle,
filltype filltype=null)
@@ -383,7 +383,7 @@
real size=0, real angle=arcarrowangle,
filltype filltype=null,
position position=EndPoint)=ArcArrow;
-
+
arrowbar MidArcArrow(arrowhead arrowhead=DefaultHead,
real size=0, real angle=arcarrowangle,
filltype filltype=null)
@@ -395,7 +395,7 @@
return false;
};
}
-
+
arrowbar ArcArrows(arrowhead arrowhead=DefaultHead,
real size=0, real angle=arcarrowangle,
filltype filltype=null)
@@ -406,8 +406,8 @@
return false;
};
}
-
-arrowbar BeginBar(real size=0)
+
+arrowbar BeginBar(real size=0)
{
return new bool(picture pic, path g, pen p, margin margin) {
real size=size == 0 ? barsize(p) : size;
@@ -416,7 +416,7 @@
};
}
-arrowbar Bar(real size=0)
+arrowbar Bar(real size=0)
{
return new bool(picture pic, path g, pen p, margin margin) {
int L=length(g);
@@ -426,9 +426,9 @@
};
}
-arrowbar EndBar(real size=0)=Bar;
+arrowbar EndBar(real size=0)=Bar;
-arrowbar Bars(real size=0)
+arrowbar Bars(real size=0)
{
return new bool(picture pic, path g, pen p, margin margin) {
real size=size == 0 ? barsize(p) : size;
@@ -469,73 +469,73 @@
// These if statements are ordered in such a way that the most common case
// (with just a path and a pen) executes the least bytecode.
if (marker == nomarker)
- {
- if (arrow == None && bar == None)
{
- if (margin == NoMargin && size(nib(p)) == 0)
- {
- pic.addExactAbove(
- new void(frame f, transform t, transform T, pair, pair) {
- _draw(f,t*T*g,p);
- });
- pic.addPath(g,p);
+ if (arrow == None && bar == None)
+ {
+ if (margin == NoMargin && size(nib(p)) == 0)
+ {
+ pic.addExactAbove(
+ new void(frame f, transform t, transform T, pair, pair) {
+ _draw(f,t*T*g,p);
+ });
+ pic.addPath(g,p);
- // Jumping over else clauses takes time, so test if we can return
- // here.
- if (L == null && legend == null)
- return;
+ // Jumping over else clauses takes time, so test if we can return
+ // here.
+ if (L == null && legend == null)
+ return;
+ }
+ else // With margin or polygonal pen.
+ {
+ _draw(pic, g, p, margin);
+ }
+ }
+ else /* arrow or bar */
+ {
+ // Note we are using & instead of && as both arrow and bar need to be
+ // called.
+ if (arrow(pic, g, p, margin) & bar(pic, g, p, margin))
+ _draw(pic, g, p, margin);
+ }
+
+ if(L != null && L.s != "") {
+ L=L.copy();
+ L.align(align);
+ L.p(p);
+ L.out(pic,g);
}
- else // With margin or polygonal pen.
- {
- _draw(pic, g, p, margin);
+
+ if(legend != null && legend.s != "") {
+ legend.p(p);
+ pic.legend.push(Legend(legend.s,legend.p,p,marker.f,marker.above));
}
}
- else /* arrow or bar */
+ else /* marker != nomarker */
{
+ if(marker != nomarker && !marker.above) marker.mark(pic,g);
+
// Note we are using & instead of && as both arrow and bar need to be
// called.
- if (arrow(pic, g, p, margin) & bar(pic, g, p, margin))
- _draw(pic, g, p, margin);
- }
+ if ((arrow == None || arrow(pic, g, p, margin)) &
+ (bar == None || bar(pic, g, p, margin)))
+ {
+ _draw(pic, g, p, margin);
+ }
- if(L != null && L.s != "") {
- L=L.copy();
- L.align(align);
- L.p(p);
- L.out(pic,g);
- }
+ if(L != null && L.s != "") {
+ L=L.copy();
+ L.align(align);
+ L.p(p);
+ L.out(pic,g);
+ }
- if(legend != null && legend.s != "") {
- legend.p(p);
- pic.legend.push(Legend(legend.s,legend.p,p,marker.f,marker.above));
- }
- }
- else /* marker != nomarker */
- {
- if(marker != nomarker && !marker.above) marker.mark(pic,g);
-
- // Note we are using & instead of && as both arrow and bar need to be
- // called.
- if ((arrow == None || arrow(pic, g, p, margin)) &
- (bar == None || bar(pic, g, p, margin)))
- {
- _draw(pic, g, p, margin);
+ if(legend != null && legend.s != "") {
+ legend.p(p);
+ pic.legend.push(Legend(legend.s,legend.p,p,marker.f,marker.above));
}
- if(L != null && L.s != "") {
- L=L.copy();
- L.align(align);
- L.p(p);
- L.out(pic,g);
+ if(marker != nomarker && marker.above) marker.mark(pic,g);
}
-
- if(legend != null && legend.s != "") {
- legend.p(p);
- pic.legend.push(Legend(legend.s,legend.p,p,marker.f,marker.above));
- }
-
- if(marker != nomarker && marker.above) marker.mark(pic,g);
- }
}
// Draw a fixed-size line about the user-coordinate 'origin'.
@@ -551,12 +551,12 @@
void draw(picture pic=currentpicture, explicit path[] g, pen p=currentpen,
Label legend=null, marker marker=nomarker)
-{
+{
// This could be optimized to size and draw the entire array as a batch.
- for(int i=0; i < g.length-1; ++i)
+ for(int i=0; i < g.length-1; ++i)
draw(pic,g[i],p,marker);
if(g.length > 0) draw(pic,g[g.length-1],p,legend,marker);
-}
+}
void draw(picture pic=currentpicture, guide[] g, pen p=currentpen,
Label legend=null, marker marker=nomarker)
@@ -621,7 +621,7 @@
{
if(pictures.length == 0)
return new frame[];
-
+
picture all;
size(all,pictures[0]);
for(picture pic : pictures)
Modified: trunk/Master/texmf-dist/asymptote/plain_bounds.asy
===================================================================
--- trunk/Master/texmf-dist/asymptote/plain_bounds.asy 2021-02-24 18:27:49 UTC (rev 57875)
+++ trunk/Master/texmf-dist/asymptote/plain_bounds.asy 2021-02-24 18:33:44 UTC (rev 57876)
@@ -4,7 +4,7 @@
// have been added, this is only an approximation since it takes the bounds of
// their transformed bounding box.
private void addTransformedCoords(coords2 dest, transform t,
- coords2 point, coords2 min, coords2 max)
+ coords2 point, coords2 min, coords2 max)
{
dest.push(t, point, point);
@@ -47,7 +47,7 @@
for (coord c : src)
addIfMaximal(dest, c.user, c.truesize);
}
-
+
// Same as addIfMaximal, but testing for minimal coords.
private void addIfMinimal(coord[] coords, real user, real truesize) {
for (coord c : coords)
@@ -130,7 +130,7 @@
void operator init(coord[] left, coord[] bottom,
coord[] right, coord[] top) {
this.left = left;
- this.bottom = bottom;
+ this.bottom = bottom;
this.right = right;
this.top = top;
}
@@ -197,7 +197,7 @@
void addBox(pair userMin, pair userMax, pair trueMin, pair trueMax) {
assert(!frozen);
- this.min.push(userMin, trueMin);
+ this.min.push(userMin, trueMin);
this.max.push(userMax, trueMax);
}
@@ -334,7 +334,7 @@
addLocalsToExtremes(t, e);
}
-
+
private void addLocalsToExtremes(extremes e) {
addMinToExtremes(e, point);
addMaxToExtremes(e, point);
@@ -466,7 +466,7 @@
acc.pushUserCoords(min, max);
if (pathBounds.length > 0)
acc.push(min(pathBounds), max(pathBounds));
- for (var pp : pathpenBounds)
+ for (var pp : pathpenBounds)
if(size(pp.g) > 0)
acc.push(min(pp.g), max(pp.g));
for (var link : links)
@@ -623,13 +623,13 @@
// Get the extremal coordinates.
extremes e = extremes();
-
+
real sx;
if(xunitsize == 0) {
if(xsize != 0) sx=calculateScaling("x",e.left,e.right,xsize,warn);
} else sx=xunitsize;
- /* Possible alternative code :
+ /* Possible alternative code :
real sx = xunitsize != 0 ? xunitsize :
xsize != 0 ? calculateScaling("x", Coords.x, xsize, warn) :
0; */
@@ -697,7 +697,7 @@
makeMutable();
base.append(b.base);
}
-
+
void append(transform t, bounds b) {
// makeMutable will be called by append.
if (t == identity())
@@ -760,7 +760,7 @@
makeMutable();
base.yclip(Min,Max);
}
-
+
void clip(pair Min, pair Max) {
// TODO: If the user bounds have been manually altered, they may be
// incorrect after the clip.
Modified: trunk/Master/texmf-dist/asymptote/plain_boxes.asy
===================================================================
--- trunk/Master/texmf-dist/asymptote/plain_boxes.asy 2021-02-24 18:27:49 UTC (rev 57875)
+++ trunk/Master/texmf-dist/asymptote/plain_boxes.asy 2021-02-24 18:33:44 UTC (rev 57876)
@@ -20,7 +20,6 @@
pair m=min(src);
pair M=max(src);
pair bound=M-m;
- int sign=filltype == NoFill ? 1 : -1;
real a=bound.x+2*xmargin;
real b=bound.y+2*ymargin;
real ds=0;
@@ -90,7 +89,7 @@
L0.position(0);
L0.p(p);
add(F.f,L0);
- F.g=e(F.f,xmargin,ymargin,p,filltype);
+ F.g=e(F.f,xmargin,ymargin,p,filltype,above);
return F;
}
Modified: trunk/Master/texmf-dist/asymptote/plain_margins.asy
===================================================================
--- trunk/Master/texmf-dist/asymptote/plain_margins.asy 2021-02-24 18:27:49 UTC (rev 57875)
+++ trunk/Master/texmf-dist/asymptote/plain_margins.asy 2021-02-24 18:33:44 UTC (rev 57876)
@@ -5,7 +5,7 @@
typedef marginT margin(path, pen);
-path trim(path g, real begin, real end) {
+path trim(path g, real begin, real end=begin) {
real a=arctime(g,begin);
real b=arctime(g,arclength(g)-end);
return a <= b ? subpath(g,a,b) : point(g,a);
@@ -36,7 +36,7 @@
};
}
-margin Margin(real begin, real end)
+margin Margin(real begin, real end=begin)
{
return new marginT(path g, pen p) {
marginT margin;
@@ -48,7 +48,7 @@
};
}
-margin PenMargin(real begin, real end)
+margin PenMargin(real begin, real end=begin)
{
return new marginT(path g, pen p) {
marginT margin;
@@ -60,7 +60,7 @@
};
}
-margin DotMargin(real begin, real end)
+margin DotMargin(real begin, real end=begin)
{
return new marginT(path g, pen p) {
marginT margin;
@@ -73,7 +73,7 @@
};
}
-margin TrueMargin(real begin, real end)
+margin TrueMargin(real begin, real end=begin)
{
return new marginT(path g, pen p) {
marginT margin;
Modified: trunk/Master/texmf-dist/asymptote/plain_picture.asy
===================================================================
--- trunk/Master/texmf-dist/asymptote/plain_picture.asy 2021-02-24 18:27:49 UTC (rev 57875)
+++ trunk/Master/texmf-dist/asymptote/plain_picture.asy 2021-02-24 18:33:44 UTC (rev 57876)
@@ -1355,13 +1355,14 @@
}
void tensorshade(picture pic=currentpicture, path[] g, bool stroke=false,
- pen fillrule=currentpen, pen[][] p, path[] b=g,
+ pen fillrule=currentpen, pen[][] p, path[] b=new path[],
pair[][] z=new pair[][], bool copy=true)
{
+ bool compact=b.length == 0 || b[0] == nullpath;
if(copy) {
g=copy(g);
p=copy(p);
- b=copy(b);
+ if(!compact) b=copy(b);
z=copy(z);
}
pic.add(new void(frame f, transform t) {
@@ -1368,7 +1369,11 @@
pair[][] Z=new pair[z.length][];
for(int i=0; i < z.length; ++i)
Z[i]=t*z[i];
- tensorshade(f,t*g,stroke,fillrule,p,t*b,Z,false);
+ path[] G=t*g;
+ if(compact)
+ tensorshade(f,G,stroke,fillrule,p,Z,false);
+ else
+ tensorshade(f,G,stroke,fillrule,p,t*b,Z,false);
},true);
pic.addPath(g);
}
@@ -1375,32 +1380,20 @@
void tensorshade(frame f, path[] g, bool stroke=false,
pen fillrule=currentpen, pen[] p,
- path b=g.length > 0 ? g[0] : nullpath)
+ path b=g.length > 0 ? g[0] : nullpath, pair[] z=new pair[])
{
- tensorshade(f,g,stroke,fillrule,new pen[][] {p},b);
+ tensorshade(f,g,stroke,fillrule,new pen[][] {p},b,
+ z.length > 0 ? new pair[][] {z} : new pair[][]);
}
-void tensorshade(frame f, path[] g, bool stroke=false,
- pen fillrule=currentpen, pen[] p,
- path b=g.length > 0 ? g[0] : nullpath, pair[] z)
-{
- tensorshade(f,g,stroke,fillrule,new pen[][] {p},b,new pair[][] {z});
-}
-
void tensorshade(picture pic=currentpicture, path[] g, bool stroke=false,
pen fillrule=currentpen, pen[] p,
- path b=g.length > 0 ? g[0] : nullpath)
+ path b=nullpath, pair[] z=new pair[])
{
- tensorshade(pic,g,stroke,fillrule,new pen[][] {p},b);
+ tensorshade(pic,g,stroke,fillrule,new pen[][] {p},b,
+ z.length > 0 ? new pair[][] {z} : new pair[][]);
}
-void tensorshade(picture pic=currentpicture, path[] g, bool stroke=false,
- pen fillrule=currentpen, pen[] p,
- path b=g.length > 0 ? g[0] : nullpath, pair[] z)
-{
- tensorshade(pic,g,stroke,fillrule,new pen[][] {p},b,new pair[][] {z});
-}
-
// Smoothly shade the regions between consecutive paths of a sequence using a
// given array of pens:
void draw(picture pic=currentpicture, path[] g, pen fillrule=currentpen,
Modified: trunk/Master/texmf-dist/asymptote/plain_shipout.asy
===================================================================
--- trunk/Master/texmf-dist/asymptote/plain_shipout.asy 2021-02-24 18:27:49 UTC (rev 57875)
+++ trunk/Master/texmf-dist/asymptote/plain_shipout.asy 2021-02-24 18:33:44 UTC (rev 57876)
@@ -86,14 +86,10 @@
}
}
- if(outformat(format) == "html") {
- warning("htmltosvg",
- "html output requested for 2D picture; generating svg image instead...");
- format="svg";
- }
-
- if(settings.xasy || (!implicitshipout && prefix == defaultfilename)) {
- if(prefix == defaultfilename) {
+ bool defaultprefix=prefix==defaultfilename;
+
+ if(settings.xasy || (!implicitshipout && defaultprefix)) {
+ if(defaultprefix) {
currentpicture.clear();
add(f,group=false);
}
@@ -132,8 +128,15 @@
}
frame f;
transform t=pic.calculateTransform();
- if(currentpicture.fitter == null)
- f=pic.fit(t);
+ if(currentpicture.fitter == null) {
+ pen background=currentlight.background;
+ if(settings.outformat == "html" && background == nullpen)
+ background=white;
+ if(background != nullpen)
+ f=bbox(pic,nullpen,Fill(background));
+ else
+ f=pic.fit(t);
+ }
else
f=pic.fit(prefix,format,view=view,options,script,light,P);
Modified: trunk/Master/texmf-dist/asymptote/rationalSimplex.asy
===================================================================
--- trunk/Master/texmf-dist/asymptote/rationalSimplex.asy 2021-02-24 18:27:49 UTC (rev 57875)
+++ trunk/Master/texmf-dist/asymptote/rationalSimplex.asy 2021-02-24 18:33:44 UTC (rev 57876)
@@ -1,8 +1,8 @@
// Rational simplex solver written by John C. Bowman and Pouria Ramazi, 2018.
import rational;
-void simplexStandard(rational[] c, rational[][] A, int[] s=new int[],
- rational[] b) {}
+void simplexInit(rational[] c, rational[][] A, int[] s=new int[],
+ rational[] b, int count) {}
void simplexTableau(rational[][] E, int[] Bindices, int I=-1, int J=-1) {}
void simplexPhase1(rational[] c, rational[][] A, rational[] b,
int[] Bindices) {}
@@ -35,7 +35,10 @@
int case;
rational[] x;
+ rational[] xStandard;
rational cost;
+ rational[] d;
+ bool dual=false;
int m,n;
int J;
@@ -70,7 +73,7 @@
int iterate(rational[][] E, int N, int[] Bindices) {
while(true) {
- // Find first negative entry in bottom (reduced cost) row
+ // Bland's rule: first negative entry in reduced cost (bottom) row enters
rational[] Em=E[m];
for(J=1; J <= N; ++J)
if(Em[J] < 0) break;
@@ -94,7 +97,7 @@
rational r=E[i][0]/u;
if(r <= t && (r < t || Bindices[i] < Bindices[I])) {
t=r; I=i;
- } // Bland's rule: exiting variable has smallest minimizing index
+ } // Bland's rule: exiting variable has smallest minimizing subscript
}
}
if(I == -1)
@@ -111,8 +114,7 @@
int iterateDual(rational[][] E, int N, int[] Bindices) {
while(true) {
- // Find first negative entry in zeroth (basic variable) column
- rational[] Em=E[m];
+ // Bland's rule: negative variable with smallest subscript exits
int I;
for(I=0; I < m; ++I) {
if(E[I][0] < 0) break;
@@ -121,23 +123,30 @@
if(I == m)
break;
+ for(int i=I+1; i < m; ++i) {
+ if(E[i][0] < 0 && Bindices[i] < Bindices[I])
+ I=i;
+ }
+
+ rational[] Em=E[m];
+ rational[] EI=E[I];
int J=0;
rational t;
for(int j=1; j <= N; ++j) {
- rational u=E[I][j];
+ rational u=EI[j];
if(u < 0) {
- t=-E[m][j]/u;
+ t=-Em[j]/u;
J=j;
break;
}
}
for(int j=J+1; j <= N; ++j) {
- rational u=E[I][j];
+ rational u=EI[j];
if(u < 0) {
- rational r=-E[m][j]/u;
+ rational r=-Em[j]/u;
if(r <= t && (r < t || j < J)) {
t=r; J=j;
- } // Bland's rule: exiting variable has smallest minimizing index
+ } // Bland's rule: smallest minimizing subscript enters
}
}
if(J == 0)
@@ -157,8 +166,7 @@
// b is a vector of length m, and c is a vector of length n.
// Can set phase1=false if the last m columns of A form the identity matrix.
void operator init(rational[] c, rational[][] A, rational[] b,
- bool phase1=true, bool dual=false) {
- if(dual) phase1=false;
+ bool phase1=true) {
// Phase 1
m=A.length;
if(m == 0) {case=INFEASIBLE; return;}
@@ -243,7 +251,7 @@
simplexPhase1(c,A,b,Bindices);
iterate(E,n+k,Bindices);
-
+
if(Em[0] != 0) {
simplexTableau(E,Bindices);
case=INFEASIBLE;
@@ -278,7 +286,7 @@
for(int i=0; i < m; ++i) {
int k=Bindices[i];
if(k > n) continue;
- Bindices[ip]=k;
+ Bindices[ip]=k;
cB[ip]=c[k-1];
rational[] Dip=D[ip];
rational[] Ei=E[i];
@@ -319,15 +327,28 @@
case=(dual ? iterateDual : iterate)(D,n,Bindices);
simplexTableau(D,Bindices);
+
+ if(case != INFEASIBLE) {
+ x=new rational[n];
+ for(int j=0; j < n; ++j)
+ x[j]=0;
+
+ for(int k=0; k < m; ++k)
+ x[Bindices[k]-1]=D[k][0];
+ }
+
+ if(case == UNBOUNDED) {
+ d=new rational[n];
+ for(int j=0; j < n; ++j)
+ d[j]=0;
+ d[J-1]=1;
+ for(int k=0; k < m; ++k)
+ d[Bindices[k]-1]=-D[k][J];
+ }
+
if(case != OPTIMAL)
return;
- for(int j=0; j < n; ++j)
- x[j]=0;
-
- for(int k=0; k < m; ++k)
- x[Bindices[k]-1]=D[k][0];
-
cost=-Dm[0];
}
@@ -353,21 +374,21 @@
ai[j]=Ai[j];
}
}
-
+
int k=0;
bool phase1=false;
- bool dual=count == m && all(c >= 0);
+ dual=count == m && all(c >= 0);
for(int i=0; i < m; ++i) {
rational[] ai=a[i];
for(int j=0; j < k; ++j)
ai[n+j]=0;
+ int si=s[i];
if(k < count)
- ai[n+k]=-s[i];
+ ai[n+k]=-si;
for(int j=k+1; j < count; ++j)
ai[n+j]=0;
- int si=s[i];
if(si == 0) phase1=true;
else {
++k;
@@ -378,23 +399,25 @@
for(int j=0; j < n+count; ++j)
ai[j]=-ai[j];
}
- } else if(si*bi > 0) {
- if(dual && si == 1) {
- b[i]=-bi;
- s[i]=-1;
- for(int j=0; j < n+count; ++j)
- ai[j]=-ai[j];
- } else
- phase1=true;
- }
+ } else if(dual && si == 1) {
+ b[i]=-bi;
+ s[i]=-1;
+ for(int j=0; j < n+count; ++j)
+ ai[j]=-ai[j];
+ } else if(si*bi > 0)
+ phase1=true;
}
}
+ if(dual) phase1=false;
rational[] C=concat(c,array(count,rational(0)));
- if(count > 0) simplexStandard(C,a,b);
- operator init(C,a,b,phase1,dual);
+ simplexInit(C,a,b,count);
+ operator init(C,a,b,phase1);
- if(case == OPTIMAL && count > 0)
- x.delete(n,n+count-1);
+ if(case != INFEASIBLE) {
+ xStandard=copy(x);
+ if(count > 0)
+ x.delete(n,n+count-1);
+ }
}
}
Modified: trunk/Master/texmf-dist/asymptote/simplex.asy
===================================================================
--- trunk/Master/texmf-dist/asymptote/simplex.asy 2021-02-24 18:27:49 UTC (rev 57875)
+++ trunk/Master/texmf-dist/asymptote/simplex.asy 2021-02-24 18:33:44 UTC (rev 57876)
@@ -8,6 +8,7 @@
int case;
real[] x;
real cost;
+ bool dual=false;
int m,n;
int J;
@@ -43,7 +44,7 @@
int iterate(real[][] E, int N, int[] Bindices) {
while(true) {
- // Find first negative entry in bottom (reduced cost) row
+ // Bland's rule: first negative entry in reduced cost (bottom) row enters
real[] Em=E[m];
for(J=1; J <= N; ++J)
if(Em[J] < 0) break;
@@ -67,7 +68,7 @@
real r=E[i][0]/u;
if(r <= t && (r < t || Bindices[i] < Bindices[I])) {
t=r; I=i;
- } // Bland's rule: exiting variable has smallest minimizing index
+ } // Bland's rule: exiting variable has smallest minimizing subscript
}
}
if(I == -1)
@@ -82,8 +83,7 @@
int iterateDual(real[][] E, int N, int[] Bindices) {
while(true) {
- // Find first negative entry in zeroth (basic variable) column
- real[] Em=E[m];
+ // Bland's rule: negative variable with smallest subscript exits
int I;
for(I=0; I < m; ++I) {
if(E[I][0] < 0) break;
@@ -92,23 +92,30 @@
if(I == m)
break;
+ for(int i=I+1; i < m; ++i) {
+ if(E[i][0] < 0 && Bindices[i] < Bindices[I])
+ I=i;
+ }
+
+ real[] Em=E[m];
+ real[] EI=E[I];
int J=0;
real t;
for(int j=1; j <= N; ++j) {
- real u=E[I][j];
+ real u=EI[j];
if(u < -EpsilonA) {
- t=-E[m][j]/u;
+ t=-Em[j]/u;
J=j;
break;
}
}
for(int j=J+1; j <= N; ++j) {
- real u=E[I][j];
+ real u=EI[j];
if(u < -EpsilonA) {
- real r=-E[m][j]/u;
- if(r <= t && (r < t || j < J)) {
+ real r=-Em[j]/u;
+ if(r < t) {
t=r; J=j;
- } // Bland's rule: exiting variable has smallest minimizing index
+ } // Bland's rule: smallest minimizing subscript enters
}
}
if(J == 0)
@@ -125,9 +132,7 @@
// where A is an m x n matrix, x is a vector of n non-negative numbers,
// b is a vector of length m, and c is a vector of length n.
// Can set phase1=false if the last m columns of A form the identity matrix.
- void operator init(real[] c, real[][] A, real[] b, bool phase1=true,
- bool dual=false) {
- if(dual) phase1=false;
+ void operator init(real[] c, real[][] A, real[] b, bool phase1=true) {
static real epsilon=sqrt(realEpsilon);
real normA=norm(A);
real epsilonA=100.0*realEpsilon*normA;
@@ -324,11 +329,11 @@
real[] ai=a[i];
for(int j=0; j < k; ++j)
ai[n+j]=0;
+ int si=s[i];
if(k < count)
- ai[n+k]=-s[i];
+ ai[n+k]=-si;
for(int j=k+1; j < count; ++j)
ai[n+j]=0;
- int si=s[i];
if(si == 0) phase1=true;
else {
++k;
@@ -339,19 +344,18 @@
for(int j=0; j < n+count; ++j)
ai[j]=-ai[j];
}
- } else if(si*bi > 0) {
- if(dual && si == 1) {
- b[i]=-bi;
- s[i]=-1;
- for(int j=0; j < n+count; ++j)
- ai[j]=-ai[j];
- } else
- phase1=true;
- }
+ } else if(dual && si == 1) {
+ b[i]=-bi;
+ s[i]=-1;
+ for(int j=0; j < n+count; ++j)
+ ai[j]=-ai[j];
+ } else if(si*bi > 0)
+ phase1=true;
}
}
- operator init(concat(c,array(count,0.0)),a,b,phase1,dual);
+ if(dual) phase1=false;
+ operator init(concat(c,array(count,0.0)),a,b,phase1);
if(case == OPTIMAL && count > 0)
x.delete(n,n+count-1);
Modified: trunk/Master/texmf-dist/asymptote/slide.asy
===================================================================
--- trunk/Master/texmf-dist/asymptote/slide.asy 2021-02-24 18:27:49 UTC (rev 57875)
+++ trunk/Master/texmf-dist/asymptote/slide.asy 2021-02-24 18:33:44 UTC (rev 57876)
@@ -309,7 +309,7 @@
void center(string s, pen p=itempen)
{
- remark("\center "+s,p);
+ remark(center=true,"\center "+s,p);
}
void vbox(string s, pen p=itempen)
Modified: trunk/Master/texmf-dist/asymptote/slopefield.asy
===================================================================
--- trunk/Master/texmf-dist/asymptote/slopefield.asy 2021-02-24 18:27:49 UTC (rev 57875)
+++ trunk/Master/texmf-dist/asymptote/slopefield.asy 2021-02-24 18:33:44 UTC (rev 57876)
@@ -19,7 +19,6 @@
draw(pic,(cp.x-mp,cp.y-mp*slope)--(cp.x+mp,cp.y+mp*slope),p,arrow);
}
}
- clip(pic,box(a,b));
return pic;
}
Modified: trunk/Master/texmf-dist/asymptote/three.asy
===================================================================
--- trunk/Master/texmf-dist/asymptote/three.asy 2021-02-24 18:27:49 UTC (rev 57875)
+++ trunk/Master/texmf-dist/asymptote/three.asy 2021-02-24 18:33:44 UTC (rev 57876)
@@ -1065,7 +1065,7 @@
triple dir(path3 p, path3 h)
{
- return 0.5*(dir(p)+dir(h));
+ return unit(dir(p)+dir(h));
}
// return the point on path3 p at arclength L
@@ -1880,6 +1880,14 @@
return c >= 0 ? identity(4) : diagonal(1,-1,-1,1);
}
+// Align Label with normal in direction dir.
+Label align(Label L, triple dir)
+{
+ Label L=L.copy();
+ L.transform3(align(unit(dir)));
+ return L;
+}
+
// return a rotation that maps X,Y to the projection plane.
transform3 transform3(projection P=currentprojection)
{
@@ -2554,25 +2562,6 @@
Format(t[0][3])+sep+Format(t[1][3])+sep+Format(t[2][3]);
}
-void writeJavaScript(string name, string preamble, string script)
-{
- file out=output(name);
- write(out,preamble);
- if(script != "") {
- write(out,endl);
- file in=input(script);
- while(true) {
- string line=in;
- if(eof(in)) break;
- write(out,line,endl);
- }
- }
- close(out);
- if(settings.verbose > 1) write("Wrote "+name);
- if(!settings.inlinetex)
- file3.push(name);
-}
-
pair viewportmargin(pair lambda)
{
return maxbound(0.5*(viewportsize-lambda),viewportmargin);
@@ -2593,7 +2582,7 @@
if(script == "") script=defaultembed3Dscript;
if(P.infinity) {
- if(viewplanesize==0) {
+ if(viewplanesize == 0) {
triple lambda=max3(f)-min3(f);
pair margin=viewportmargin((lambda.x,lambda.y));
viewplanesize=(max(lambda.x+2*margin.x,lambda.y+2*margin.y))/P.zoom;
@@ -2645,6 +2634,7 @@
pair viewportmargin;
transform3 T=identity4;
picture pic2;
+ bool keepAspect=true;
void operator init(frame f, real width, real height,
projection P=currentprojection) {
@@ -2660,6 +2650,7 @@
projection P=currentprojection) {
real xsize3=pic.xsize3, ysize3=pic.ysize3, zsize3=pic.zsize3;
bool warn=true;
+ this.keepAspect=keepAspect;
if(xsize3 == 0 && ysize3 == 0 && zsize3 == 0) {
xsize3=ysize3=zsize3=max(xsize,ysize);
@@ -2678,18 +2669,18 @@
if(!P.absolute) {
this.P=t*P;
+ if(this.P.autoadjust || this.P.infinity)
+ adjusted=adjusted | this.P.adjust(m,M);
if(this.P.center && settings.render != 0) {
triple target=0.5*(m+M);
this.P.target=target;
this.P.calculate();
}
- if(this.P.autoadjust || this.P.infinity)
- adjusted=adjusted | this.P.adjust(m,M);
}
bool scale=xsize != 0 || ysize != 0;
bool scaleAdjust=scale && this.P.autoadjust;
- bool noAdjust=(this.P.absolute || !scaleAdjust);
+ bool noAdjust=this.P.absolute || !scaleAdjust;
if(pic.bounds3.exact && noAdjust)
this.P.bboxonly=false;
@@ -2812,9 +2803,11 @@
triple m=min3(S.f);
triple M=max3(S.f);
triple lambda=M-m;
- S.viewportmargin=viewportmargin((lambda.x,lambda.y));
- S.width=ceil(lambda.x+2*S.viewportmargin.x);
- S.height=ceil(lambda.y+2*S.viewportmargin.y);
+ if(S.keepAspect) {
+ S.viewportmargin=viewportmargin((lambda.x,lambda.y));
+ S.width=ceil(lambda.x+2*S.viewportmargin.x);
+ S.height=ceil(lambda.y+2*S.viewportmargin.y);
+ }
orthoshift=(-0.5(m.x+M.x),-0.5*(m.y+M.y),0);
S.f=shift(orthoshift)*S.f; // Eye will be at (0,0,0)
inv=inverse(modelview);
Modified: trunk/Master/texmf-dist/asymptote/three_light.asy
===================================================================
--- trunk/Master/texmf-dist/asymptote/three_light.asy 2021-02-24 18:27:49 UTC (rev 57875)
+++ trunk/Master/texmf-dist/asymptote/three_light.asy 2021-02-24 18:33:44 UTC (rev 57876)
@@ -125,7 +125,7 @@
rgb(0.5,0.5,0.57)},specularfactor=3,
new triple[] {(-2,-1.5,-0.5),(2,1.1,-2.5),(-0.5,0,2)});
-light Headlamp=light(gray(0.8),specular=gray(0.7),
+light Headlamp=light(white,specular=gray(0.7),
specularfactor=3,dir(42,48));
currentlight=Headlamp;
Modified: trunk/Master/texmf-dist/asymptote/three_surface.asy
===================================================================
--- trunk/Master/texmf-dist/asymptote/three_surface.asy 2021-02-24 18:27:49 UTC (rev 57875)
+++ trunk/Master/texmf-dist/asymptote/three_surface.asy 2021-02-24 18:33:44 UTC (rev 57876)
@@ -1374,6 +1374,10 @@
bool primitive=false)
{
bool straight=s.straight && s.planar;
+
+ // Planar Bezier surfaces require extra precision in WebGL
+ int digits=s.planar && !straight ? 12 : settings.digits;
+
if(s.colors.length > 0) {
if(prc() && light.on())
straight=false; // PRC vertex colors (for quads only) ignore lighting
@@ -1383,7 +1387,7 @@
(s.triangular ? drawbeziertriangle : draw)
(f,s.P,center,straight,m.p,m.opacity,m.shininess,
- m.metallic,m.fresnel0,s.colors,interaction.type,primitive);
+ m.metallic,m.fresnel0,s.colors,interaction.type,digits,primitive);
}
void _draw(frame f, path3 g, triple center=O, material m,
@@ -1500,8 +1504,18 @@
p.push(p[0]);
s=tensor(s);
} else p=s.colors(m,light);
- tensorshade(f,box(t*s.min(P),t*s.max(P)),m.diffuse(),
- p,t*project(s.external(),P,1),t*project(s.internal(),P));
+ path g=t*project(s.external(),P,1);
+ pair[] internal=t*project(s.internal(),P);
+ pen fillrule=m.diffuse();
+ if(inside(g,internal[0],fillrule) && inside(g,internal[1],fillrule) &&
+ inside(g,internal[2],fillrule) && inside(g,internal[3],fillrule)) {
+ if(p[0] == p[1] && p[1] == p[2] && p[2] == p[3])
+ fill(f,g,fillrule+p[0]);
+ else
+ tensorshade(f,g,fillrule,p,internal);
+ } else {
+ tensorshade(f,box(t*s.min(P),t*s.max(P)),fillrule,p,g,internal);
+ }
}
restricted pen[] nullpens={nullpen};
Modified: trunk/Master/texmf-dist/asymptote/three_tube.asy
===================================================================
--- trunk/Master/texmf-dist/asymptote/three_tube.asy 2021-02-24 18:27:49 UTC (rev 57875)
+++ trunk/Master/texmf-dist/asymptote/three_tube.asy 2021-02-24 18:33:44 UTC (rev 57876)
@@ -159,10 +159,10 @@
triple c0=postcontrol(g,0);
triple c1=precontrol(g,1);
triple z1=point(g,1);
- real norm=sqrtEpsilon*max(abs(z0),abs(c0),abs(c1),abs(z1));
+ real norm=sqrtEpsilon*max(abs(z0),abs(c0),abs(c1),abs(z1),r);
surface[] s;
void Split(triple z0, triple c0, triple c1, triple z1,
- real depth=mantissaBits) {
+ int depth=mantissaBits) {
if(depth > 0) {
pair threshold(triple z0, triple c0, triple c1) {
triple u=c1-z0;
Modified: trunk/Master/texmf-dist/asymptote/tube.asy
===================================================================
--- trunk/Master/texmf-dist/asymptote/tube.asy 2021-02-24 18:27:49 UTC (rev 57875)
+++ trunk/Master/texmf-dist/asymptote/tube.asy 2021-02-24 18:33:44 UTC (rev 57876)
@@ -14,10 +14,10 @@
void render(path3 s, real r, void f(path3, real))
{
void Split(triple z0, triple c0, triple c1, triple z1, real t0=0, real t1=1,
- real depth=mantissaBits) {
+ int depth=mantissaBits) {
if(depth > 0) {
real S=straightness(z0,c0,c1,z1);
- if(S > max(tubegranularity*max(abs(z0),abs(c0),abs(c1),abs(z1)))) {
+ if(S > max(tubegranularity*max(abs(z0),abs(c0),abs(c1),abs(z1),r))) {
--depth;
triple m0=0.5*(z0+c0);
triple m1=0.5*(c0+c1);
Deleted: trunk/Master/texmf-dist/asymptote/unicode.asy
===================================================================
--- trunk/Master/texmf-dist/asymptote/unicode.asy 2021-02-24 18:27:49 UTC (rev 57875)
+++ trunk/Master/texmf-dist/asymptote/unicode.asy 2021-02-24 18:33:44 UTC (rev 57876)
@@ -1,2 +0,0 @@
-usepackage("ucs");
-usepackage("inputenc","utf8x");
Modified: trunk/Master/texmf-dist/asymptote/version.asy
===================================================================
--- trunk/Master/texmf-dist/asymptote/version.asy 2021-02-24 18:27:49 UTC (rev 57875)
+++ trunk/Master/texmf-dist/asymptote/version.asy 2021-02-24 18:33:44 UTC (rev 57876)
@@ -1 +1 @@
-string VERSION="2.65";
+string VERSION="2.69";
Modified: trunk/Master/texmf-dist/asymptote/webgl/asygl.js
===================================================================
--- trunk/Master/texmf-dist/asymptote/webgl/asygl.js 2021-02-24 18:27:49 UTC (rev 57875)
+++ trunk/Master/texmf-dist/asymptote/webgl/asygl.js 2021-02-24 18:33:44 UTC (rev 57876)
@@ -1,6 +1,6 @@
/*@license
AsyGL: Render Bezier patches and triangles via subdivision with WebGL.
- Copyright 2019: John C. Bowman and Supakorn "Jamie" Rassameemasmuang
+ Copyright 2019-2020: John C. Bowman and Supakorn "Jamie" Rassameemasmuang
University of Alberta
This program is free software; you can redistribute it and/or modify
@@ -36,4 +36,4 @@
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
THE SOFTWARE.*/
-let vertex="\nattribute vec3 position;\n#ifdef WIDTH\nattribute float width;\n#endif\n#ifdef NORMAL\nattribute vec3 normal;\n#endif\nattribute float materialIndex;\n#ifdef COLOR\nattribute vec4 color;\n#endif\n\nuniform mat3 normMat;\nuniform mat4 viewMat;\nuniform mat4 projViewMat;\n\n#ifdef NORMAL\n#ifndef ORTHOGRAPHIC\nvarying vec3 ViewPosition;\n#endif\nvarying vec3 Normal;\n#endif\nvarying vec4 diffuse;\nvarying vec3 specular;\nvarying float roughness,metallic,fresnel0;\nvarying vec4 emissive;\n\nstruct Material {\n vec4 diffuse,emissive,specular;\n vec4 parameters;\n};\n\nuniform Material Materials[Nmaterials];\n\nvoid main(void)\n{\n vec4 v=vec4(position,1.0);\n gl_Position=projViewMat*v;\n#ifdef NORMAL\n#ifndef ORTHOGRAPHIC\n ViewPosition=(viewMat*v).xyz;\n#endif \n Normal=normalize(normal*normMat);\n \n Material m;\n#ifdef TRANSPARENT\n m=Materials[int(abs(materialIndex))-1];\n emissive=m.emissive;\n if(materialIndex >= 0.0) {\n diffuse=m.diffuse;\n } else {\n diffuse=color;\n#if nlights == 0\n emissive += color;\n#endif\n }\n#else\n m=Materials[int(materialIndex)];\n emissive=m.emissive;\n#ifdef COLOR\n diffuse=color;\n#if nlights == 0\n emissive += color;\n#endif\n#else\n diffuse=m.diffuse;\n#endif\n#endif\n specular=m.specular.rgb;\n vec4 parameters=m.parameters;\n roughness=1.0-parameters[0];\n metallic=parameters[1];\n fresnel0=parameters[2];\n#else\n emissive=Materials[int(materialIndex)].emissive;\n#endif\n#ifdef WIDTH\n gl_PointSize=width;\n#endif\n}\n",fragment="\n#ifdef NORMAL\n#ifndef ORTHOGRAPHIC\nvarying vec3 ViewPosition;\n#endif\nvarying vec3 Normal;\nvarying vec4 diffuse;\nvarying vec3 specular;\nvarying float roughness,metallic,fresnel0;\n\nfloat Roughness2;\nvec3 normal;\n\nstruct Light {\n vec3 direction;\n vec3 color;\n};\n\nuniform Light Lights[Nlights];\n\nfloat NDF_TRG(vec3 h)\n{\n float ndoth=max(dot(normal,h),0.0);\n float alpha2=Roughness2*Roughness2;\n float denom=ndoth*ndoth*(alpha2-1.0)+1.0;\n return denom != 0.0 !
? alpha2/(denom*denom) : 0.0;\n}\n \nfloat GGX_Geom(vec3 v)\n{\n float ndotv=max(dot(v,normal),0.0);\n float ap=1.0+Roughness2;\n float k=0.125*ap*ap;\n return ndotv/((ndotv*(1.0-k))+k);\n}\n \nfloat Geom(vec3 v, vec3 l)\n{\n return GGX_Geom(v)*GGX_Geom(l);\n}\n \nfloat Fresnel(vec3 h, vec3 v, float fresnel0)\n{\n float a=1.0-max(dot(h,v),0.0);\n float b=a*a;\n return fresnel0+(1.0-fresnel0)*b*b*a;\n}\n \n// physical based shading using UE4 model.\nvec3 BRDF(vec3 viewDirection, vec3 lightDirection)\n{\n vec3 lambertian=diffuse.rgb;\n vec3 h=normalize(lightDirection+viewDirection);\n \n float omegain=max(dot(viewDirection,normal),0.0);\n float omegali=max(dot(lightDirection,normal),0.0);\n \n float D=NDF_TRG(h);\n float G=Geom(viewDirection,lightDirection);\n float F=Fresnel(h,viewDirection,fresnel0);\n \n float denom=4.0*omegain*omegali;\n float rawReflectance=denom > 0.0 ? (D*G)/denom : 0.0;\n \n vec3 dielectric=mix(lambertian,rawReflectance*specular,F);\n vec3 metal=rawReflectance*diffuse.rgb;\n \n return mix(dielectric,metal,metallic);\n}\n#endif\nvarying vec4 emissive;\n \nvoid main(void)\n{\n#if defined(NORMAL) && nlights > 0\n normal=normalize(Normal);\n normal=gl_FrontFacing ? normal : -normal;\n#ifdef ORTHOGRAPHIC\n vec3 viewDir=vec3(0.0,0.0,1.0);\n#else\n vec3 viewDir=-normalize(ViewPosition);\n#endif\n Roughness2=roughness*roughness;\n vec3 color=emissive.rgb;\n for(int i=0; i < nlights; ++i) {\n Light Li=Lights[i];\n vec3 L=Li.direction;\n float cosTheta=max(dot(normal,L),0.0);\n vec3 radiance=cosTheta*Li.color;\n color += BRDF(viewDir,L)*radiance;\n }\n gl_FragColor=vec4(color,diffuse.a);\n#else\n gl_FragColor=emissive;\n#endif\n}\n";!function(t,e){if("object"==typeof exports&&"object"==typeof module)module.exports=e();else if("function"==typeof define&&define.amd)define([],e);else{var i=e();for(var a in i)("object"==typeof exports?exports:t)[a]=i[a]}}("undefined"!=typeof self?self:this,function(){return function(t){!
var e={};function i(a){if(e[a])return e[a].exports;var r=e[a]={i:a,l:!1,exports:{}};return t[a].call(r.exports,r,r.exports,i),r.l=!0,r.exports}return i.m=t,i.c=e,i.d=function(t,e,a){i.o(t,e)||Object.defineProperty(t,e,{configurable:!1,enumerable:!0,get:a})},i.n=function(t){var e=t&&t.__esModule?function(){return t.default}:function(){return t};return i.d(e,"a",e),e},i.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},i.p="",i(i.s=1)}([function(t,e,i){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.setMatrixArrayType=function(t){e.ARRAY_TYPE=t},e.toRadian=function(t){return t*r},e.equals=function(t,e){return Math.abs(t-e)<=a*Math.max(1,Math.abs(t),Math.abs(e))};var a=e.EPSILON=1e-6;e.ARRAY_TYPE="undefined"!=typeof Float32Array?Float32Array:Array,e.RANDOM=Math.random;var r=Math.PI/180},function(t,e,i){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.mat4=e.mat3=void 0;var a=n(i(2)),r=n(i(3));function n(t){if(t&&t.__esModule)return t;var e={};if(null!=t)for(var i in t)Object.prototype.hasOwnProperty.call(t,i)&&(e[i]=t[i]);return e.default=t,e}e.mat3=a,e.mat4=r},function(t,e,i){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.create=function(){var t=new a.ARRAY_TYPE(9);return t[0]=1,t[1]=0,t[2]=0,t[3]=0,t[4]=1,t[5]=0,t[6]=0,t[7]=0,t[8]=1,t},e.fromMat4=function(t,e){return t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[4],t[4]=e[5],t[5]=e[6],t[6]=e[8],t[7]=e[9],t[8]=e[10],t},e.invert=function(t,e){var i=e[0],a=e[1],r=e[2],n=e[3],s=e[4],o=e[5],h=e[6],l=e[7],d=e[8],c=d*s-o*l,m=-d*n+o*h,f=l*n-s*h,u=i*c+a*m+r*f;if(!u)return null;return u=1/u,t[0]=c*u,t[1]=(-d*a+r*l)*u,t[2]=(o*a-r*s)*u,t[3]=m*u,t[4]=(d*i-r*h)*u,t[5]=(-o*i+r*n)*u,t[6]=f*u,t[7]=(-l*i+a*h)*u,t[8]=(s*i-a*n)*u,t};var a=function(t){if(t&&t.__esModule)return t;var e={};if(null!=t)for(var i in t)Object.prototype.hasOwnProperty.call(t,i)&&(e[i]=t[i]);return e.default=t,e}(i(0))},function(t,e,i){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.create=function(){var t=new a.ARRAY_TYPE(16);return t[0]!
=1,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=1,t[6]=0,t[7]=0,t[8]=0,t[9]=0,t[10]=1,t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,t},e.identity=function(t){return t[0]=1,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=1,t[6]=0,t[7]=0,t[8]=0,t[9]=0,t[10]=1,t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,t},e.invert=function(t,e){var i=e[0],a=e[1],r=e[2],n=e[3],s=e[4],o=e[5],h=e[6],l=e[7],d=e[8],c=e[9],m=e[10],f=e[11],u=e[12],p=e[13],v=e[14],g=e[15],w=i*o-a*s,x=i*h-r*s,M=i*l-n*s,b=a*h-r*o,A=a*l-n*o,S=r*l-n*h,P=d*p-c*u,R=d*v-m*u,T=d*g-f*u,y=c*v-m*p,D=c*g-f*p,I=m*g-f*v,z=w*I-x*D+M*y+b*T-A*R+S*P;if(!z)return null;return z=1/z,t[0]=(o*I-h*D+l*y)*z,t[1]=(r*D-a*I-n*y)*z,t[2]=(p*S-v*A+g*b)*z,t[3]=(m*A-c*S-f*b)*z,t[4]=(h*T-s*I-l*R)*z,t[5]=(i*I-r*T+n*R)*z,t[6]=(v*M-u*S-g*x)*z,t[7]=(d*S-m*M+f*x)*z,t[8]=(s*D-o*T+l*P)*z,t[9]=(a*T-i*D-n*P)*z,t[10]=(u*A-p*M+g*w)*z,t[11]=(c*M-d*A-f*w)*z,t[12]=(o*R-s*y-h*P)*z,t[13]=(i*y-a*R+r*P)*z,t[14]=(p*x-u*b-v*w)*z,t[15]=(d*b-c*x+m*w)*z,t},e.multiply=r,e.translate=function(t,e,i){var a=i[0],r=i[1],n=i[2],s=void 0,o=void 0,h=void 0,l=void 0,d=void 0,c=void 0,m=void 0,f=void 0,u=void 0,p=void 0,v=void 0,g=void 0;e===t?(t[12]=e[0]*a+e[4]*r+e[8]*n+e[12],t[13]=e[1]*a+e[5]*r+e[9]*n+e[13],t[14]=e[2]*a+e[6]*r+e[10]*n+e[14],t[15]=e[3]*a+e[7]*r+e[11]*n+e[15]):(s=e[0],o=e[1],h=e[2],l=e[3],d=e[4],c=e[5],m=e[6],f=e[7],u=e[8],p=e[9],v=e[10],g=e[11],t[0]=s,t[1]=o,t[2]=h,t[3]=l,t[4]=d,t[5]=c,t[6]=m,t[7]=f,t[8]=u,t[9]=p,t[10]=v,t[11]=g,t[12]=s*a+d*r+u*n+e[12],t[13]=o*a+c*r+p*n+e[13],t[14]=h*a+m*r+v*n+e[14],t[15]=l*a+f*r+g*n+e[15]);return t},e.rotate=function(t,e,i,r){var n=r[0],s=r[1],o=r[2],h=Math.sqrt(n*n+s*s+o*o),l=void 0,d=void 0,c=void 0,m=void 0,f=void 0,u=void 0,p=void 0,v=void 0,g=void 0,w=void 0,x=void 0,M=void 0,b=void 0,A=void 0,S=void 0,P=void 0,R=void 0,T=void 0,y=void 0,D=void 0,I=void 0,z=void 0,E=void 0,O=void 0;if(Math.abs(h)<a.EPSILON)return null;n*=h=1/h,s*=h,o*=h,l=Math.sin(i),d=Math.cos(i),c=1-d,m=e[0],f=e[1],u=e[2],p=e[3],v=e[4],g=e[5],w=e[6],x=e[7],M=e[8],b=e[9],A=e[10],S=e[11],P=n*n*c+d,R=s*n*c+o*l,T=o*n*c-s*l,y=n*s*c-o*l,D!
=s*s*c+d,I=o*s*c+n*l,z=n*o*c+s*l,E=s*o*c-n*l,O=o*o*c+d,t[0]=m*P+v*R+M*T,t[1]=f*P+g*R+b*T,t[2]=u*P+w*R+A*T,t[3]=p*P+x*R+S*T,t[4]=m*y+v*D+M*I,t[5]=f*y+g*D+b*I,t[6]=u*y+w*D+A*I,t[7]=p*y+x*D+S*I,t[8]=m*z+v*E+M*O,t[9]=f*z+g*E+b*O,t[10]=u*z+w*E+A*O,t[11]=p*z+x*E+S*O,e!==t&&(t[12]=e[12],t[13]=e[13],t[14]=e[14],t[15]=e[15]);return t},e.fromTranslation=function(t,e){return t[0]=1,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=1,t[6]=0,t[7]=0,t[8]=0,t[9]=0,t[10]=1,t[11]=0,t[12]=e[0],t[13]=e[1],t[14]=e[2],t[15]=1,t},e.fromRotation=function(t,e,i){var r=i[0],n=i[1],s=i[2],o=Math.sqrt(r*r+n*n+s*s),h=void 0,l=void 0,d=void 0;if(Math.abs(o)<a.EPSILON)return null;return r*=o=1/o,n*=o,s*=o,h=Math.sin(e),l=Math.cos(e),d=1-l,t[0]=r*r*d+l,t[1]=n*r*d+s*h,t[2]=s*r*d-n*h,t[3]=0,t[4]=r*n*d-s*h,t[5]=n*n*d+l,t[6]=s*n*d+r*h,t[7]=0,t[8]=r*s*d+n*h,t[9]=n*s*d-r*h,t[10]=s*s*d+l,t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,t},e.frustum=function(t,e,i,a,r,n,s){var o=1/(i-e),h=1/(r-a),l=1/(n-s);return t[0]=2*n*o,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=2*n*h,t[6]=0,t[7]=0,t[8]=(i+e)*o,t[9]=(r+a)*h,t[10]=(s+n)*l,t[11]=-1,t[12]=0,t[13]=0,t[14]=s*n*2*l,t[15]=0,t},e.ortho=function(t,e,i,a,r,n,s){var o=1/(e-i),h=1/(a-r),l=1/(n-s);return t[0]=-2*o,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=-2*h,t[6]=0,t[7]=0,t[8]=0,t[9]=0,t[10]=2*l,t[11]=0,t[12]=(e+i)*o,t[13]=(r+a)*h,t[14]=(s+n)*l,t[15]=1,t};var a=function(t){if(t&&t.__esModule)return t;var e={};if(null!=t)for(var i in t)Object.prototype.hasOwnProperty.call(t,i)&&(e[i]=t[i]);return e.default=t,e}(i(0));function r(t,e,i){var a=e[0],r=e[1],n=e[2],s=e[3],o=e[4],h=e[5],l=e[6],d=e[7],c=e[8],m=e[9],f=e[10],u=e[11],p=e[12],v=e[13],g=e[14],w=e[15],x=i[0],M=i[1],b=i[2],A=i[3];return t[0]=x*a+M*o+b*c+A*p,t[1]=x*r+M*h+b*m+A*v,t[2]=x*n+M*l+b*f+A*g,t[3]=x*s+M*d+b*u+A*w,x=i[4],M=i[5],b=i[6],A=i[7],t[4]=x*a+M*o+b*c+A*p,t[5]=x*r+M*h+b*m+A*v,t[6]=x*n+M*l+b*f+A*g,t[7]=x*s+M*d+b*u+A*w,x=i[8],M=i[9],b=i[10],A=i[11],t[8]=x*a+M*o+b*c+A*p,t[9]=x*r+M*h+b*m+A*v,t[10]=x*n+M*l+b*f+A*g,t[11]=x*s+M*d+b*u+A*w,x=i[12],M=i[13],b=i[14],A=i[15],t[12]=x*a+M*o+b*c+A*p,t[13!
]=x*r+M*h+b*m+A*v,t[14]=x*n+M*l+b*f+A*g,t[15]=x*s+M*d+b*u+A*w,t}}])});let canvasWidth,canvasHeight,b,B,angle,Zoom0,viewportmargin,zoomFactor,zoomPinchFactor,zoomPinchCap,zoomStep,shiftHoldDistance,shiftWaitTime,vibrateTime,embedded,canvas,gl,alpha,offscreen,context,maxMaterials,halfCanvasWidth,halfCanvasHeight,Zoom,P=[],Materials=[],Lights=[],Centers=[],Background=[1,1,1,1],absolute=!1,viewportshift=[0,0],nlights=0,Nmaterials=2,materials=[],pixel=.75,FillFactor=.1,maxViewportWidth=window.innerWidth,maxViewportHeight=window.innerHeight;const windowTrim=10;let lastzoom,H,zmin,zmax,size2,ArcballFactor,positionBuffer,materialBuffer,colorBuffer,indexBuffer,resizeStep=1.2,third=1/3,rotMat=mat4.create(),projMat=mat4.create(),viewMat=mat4.create(),projViewMat=mat4.create(),normMat=mat3.create(),viewMat3=mat3.create(),cjMatInv=mat4.create(),T=mat4.create(),center={x:0,y:0,z:0},shift={x:0,y:0},viewParam={xmin:0,xmax:0,ymin:0,ymax:0,zmin:0,zmax:0},remesh=!0,wireframe=0,mouseDownOrTouchActive=!1,lastMouseX=null,lastMouseY=null,touchID=null,Positions=[],Normals=[],Colors=[],Indices=[];class Material{constructor(t,e,i,a,r,n){this.diffuse=t,this.emissive=e,this.specular=i,this.shininess=a,this.metallic=r,this.fresnel0=n}setUniform(t,e){let i=i=>gl.getUniformLocation(t,"Materials["+e+"]."+i);gl.uniform4fv(i("diffuse"),new Float32Array(this.diffuse)),gl.uniform4fv(i("emissive"),new Float32Array(this.emissive)),gl.uniform4fv(i("specular"),new Float32Array(this.specular)),gl.uniform4f(i("parameters"),this.shininess,this.metallic,this.fresnel0,0)}}let indexExt,TRIANGLES,material0Data,material1Data,materialData,colorData,transparentData,triangleData,materialIndex,enumPointLight=1,enumDirectionalLight=2;class Light{constructor(t,e){this.direction=t,this.color=e}setUniform(t,e){let i=i=>gl.getUniformLocation(t,"Lights["+e+"]."+i);gl.uniform3fv(i("direction"),new Float32Array(this.direction)),gl.uniform3fv(i("color"),new Float32Array(this.color))}}function initShaders(){let t=gl.getParameter(gl.MAX_VERTEX_UNIFORM_VECTORS);maxMaterials=!
Math.floor((t-14)/4),Nmaterials=Math.min(Math.max(Nmaterials,Materials.length),maxMaterials),pixelShader=initShader(["WIDTH"]),materialShader=initShader(["NORMAL"]),colorShader=initShader(["NORMAL","COLOR"]),transparentShader=initShader(["NORMAL","COLOR","TRANSPARENT"])}function deleteShaders(){gl.deleteProgram(transparentShader),gl.deleteProgram(colorShader),gl.deleteProgram(materialShader),gl.deleteProgram(pixelShader)}function setBuffers(){positionBuffer=gl.createBuffer(),materialBuffer=gl.createBuffer(),colorBuffer=gl.createBuffer(),indexBuffer=gl.createBuffer()}function noGL(){gl||alert("Could not initialize WebGL")}function saveAttributes(){let t=window.top.document.asygl[alpha];t.gl=gl,t.nlights=Lights.length,t.Nmaterials=Nmaterials,t.maxMaterials=maxMaterials,t.pixelShader=pixelShader,t.materialShader=materialShader,t.colorShader=colorShader,t.transparentShader=transparentShader}function restoreAttributes(){let t=window.top.document.asygl[alpha];gl=t.gl,nlights=t.nlights,Nmaterials=t.Nmaterials,maxMaterials=t.maxMaterials,pixelShader=t.pixelShader,materialShader=t.materialShader,colorShader=t.colorShader,transparentShader=t.transparentShader}function initGL(){if(alpha=Background[3]<1,embedded){let t=window.top.document;null==t.asygl&&(t.asygl=Array(2)),context=canvas.getContext("2d"),(offscreen=t.offscreen)||(offscreen=t.createElement("canvas"),t.offscreen=offscreen),t.asygl[alpha]&&t.asygl[alpha].gl?(restoreAttributes(),(Lights.length!=nlights||Math.min(Materials.length,maxMaterials)>Nmaterials)&&(initShaders(),saveAttributes())):((gl=offscreen.getContext("webgl",{alpha:alpha}))||noGL(),initShaders(),t.asygl[alpha]={},saveAttributes())}else(gl=canvas.getContext("webgl",{alpha:alpha}))||noGL(),initShaders();setBuffers(),indexExt=gl.getExtension("OES_element_index_uint"),TRIANGLES=gl.TRIANGLES,material0Data=new vertexBuffer(gl.POINTS),material1Data=new vertexBuffer(gl.LINES),materialData=new vertexBuffer,colorData=new vertexBuffer,transparentData=new vertexBuffer,triangleData=new vertexBuffer}function get!
Shader(t,e,i,a=[]){let r=`#version 100\n#ifdef GL_FRAGMENT_PRECISION_HIGH\n precision highp float;\n#else\n precision mediump float;\n#endif\n #define nlights ${0==wireframe?Lights.length:0}\n\n const int Nlights=${Math.max(Lights.length,1)};\n\n #define Nmaterials ${Nmaterials}\n`;orthographic&&(r+="#define ORTHOGRAPHIC\n"),a.forEach(t=>r+="#define "+t+"\n");let n=t.createShader(i);return t.shaderSource(n,r+e),t.compileShader(n),t.getShaderParameter(n,t.COMPILE_STATUS)?n:(alert(t.getShaderInfoLog(n)),null)}function drawBuffer(t,e,i=t.indices){if(0==t.indices.length)return;let a=e!=pixelShader;setUniforms(t,e),gl.bindBuffer(gl.ARRAY_BUFFER,positionBuffer),gl.bufferData(gl.ARRAY_BUFFER,new Float32Array(t.vertices),gl.STATIC_DRAW),gl.vertexAttribPointer(positionAttribute,3,gl.FLOAT,!1,a?24:16,0),a&&Lights.length>0?gl.vertexAttribPointer(normalAttribute,3,gl.FLOAT,!1,24,12):pixel&&gl.vertexAttribPointer(widthAttribute,1,gl.FLOAT,!1,16,12),gl.bindBuffer(gl.ARRAY_BUFFER,materialBuffer),gl.bufferData(gl.ARRAY_BUFFER,new Int16Array(t.materialIndices),gl.STATIC_DRAW),gl.vertexAttribPointer(materialAttribute,1,gl.SHORT,!1,2,0),e!=colorShader&&e!=transparentShader||(gl.bindBuffer(gl.ARRAY_BUFFER,colorBuffer),gl.bufferData(gl.ARRAY_BUFFER,new Uint8Array(t.colors),gl.STATIC_DRAW),gl.vertexAttribPointer(colorAttribute,4,gl.UNSIGNED_BYTE,!0,0,0)),gl.bindBuffer(gl.ELEMENT_ARRAY_BUFFER,indexBuffer),gl.bufferData(gl.ELEMENT_ARRAY_BUFFER,indexExt?new Uint32Array(i):new Uint16Array(i),gl.STATIC_DRAW),gl.drawElements(a?wireframe?gl.LINES:t.type:gl.POINTS,i.length,indexExt?gl.UNSIGNED_INT:gl.UNSIGNED_SHORT,0)}class vertexBuffer{constructor(t){this.type=t||TRIANGLES,this.clear()}clear(){this.vertices=[],this.materialIndices=[],this.colors=[],this.indices=[],this.nvertices=0,this.materials=[],this.materialTable=[]}vertex(t,e){return this.vertices.push(t[0]),this.vertices.push(t[1]),this.vertices.push(t[2]),this.vertices.push(e[0]),this.vertices.push(e[1]),this.vertices.push(e[2]),this.materialIndices.push(materialIndex),this.nver!
tices++}Vertex(t,e,i=[0,0,0,0]){return this.vertices.push(t[0]),this.vertices.push(t[1]),this.vertices.push(t[2]),this.vertices.push(e[0]),this.vertices.push(e[1]),this.vertices.push(e[2]),this.materialIndices.push(materialIndex),this.colors.push(i[0]),this.colors.push(i[1]),this.colors.push(i[2]),this.colors.push(i[3]),this.nvertices++}vertex0(t,e){return this.vertices.push(t[0]),this.vertices.push(t[1]),this.vertices.push(t[2]),this.vertices.push(e),this.materialIndices.push(materialIndex),this.nvertices++}iVertex(t,e,i,a=[0,0,0,0]){let r=6*t;this.vertices[r]=e[0],this.vertices[r+1]=e[1],this.vertices[r+2]=e[2],this.vertices[r+3]=i[0],this.vertices[r+4]=i[1],this.vertices[r+5]=i[2],this.materialIndices[t]=materialIndex;let n=4*t;this.colors[n]=a[0],this.colors[n+1]=a[1],this.colors[n+2]=a[2],this.colors[n+3]=a[3],this.indices.push(t)}append(t){append(this.vertices,t.vertices),append(this.materialIndices,t.materialIndices),append(this.colors,t.colors),appendOffset(this.indices,t.indices,this.nvertices),this.nvertices+=t.nvertices}}function append(t,e){let i=t.length,a=e.length;t.length+=a;for(let r=0;r<a;++r)t[i+r]=e[r]}function appendOffset(t,e,i){let a=t.length,r=e.length;t.length+=e.length;for(let n=0;n<r;++n)t[a+n]=e[n]+i}class Geometry{constructor(){this.data=new vertexBuffer,this.Onscreen=!1,this.m=[]}offscreen(t){let e=projViewMat,i=t[0],a=i[0],r=i[1],n=i[2],s=1/(e[3]*a+e[7]*r+e[11]*n+e[15]);this.x=this.X=(e[0]*a+e[4]*r+e[8]*n+e[12])*s,this.y=this.Y=(e[1]*a+e[5]*r+e[9]*n+e[13])*s;for(let i=1,a=t.length;i<a;++i){let a=t[i],r=a[0],n=a[1],s=a[2],o=1/(e[3]*r+e[7]*n+e[11]*s+e[15]),h=(e[0]*r+e[4]*n+e[8]*s+e[12])*o,l=(e[1]*r+e[5]*n+e[9]*s+e[13])*o;h<this.x?this.x=h:h>this.X&&(this.X=h),l<this.y?this.y=l:l>this.Y&&(this.Y=l)}return(this.X<-1.01||this.x>1.01||this.Y<-1.01||this.y>1.01)&&(this.Onscreen=!1,!0)}T(t){let e=this.c[0],i=this.c[1],a=this.c[2],r=t[0]-e,n=t[1]-i,s=t[2]-a;return[r*normMat[0]+n*normMat[3]+s*normMat[6]+e,r*normMat[1]+n*normMat[4]+s*normMat[7]+i,r*normMat[2]+n*normMat[5]+s*normMat[8]+a]}Tcorn!
ers(t,e){return[this.T(t),this.T([t[0],t[1],e[2]]),this.T([t[0],e[1],t[2]]),this.T([t[0],e[1],e[2]]),this.T([e[0],t[1],t[2]]),this.T([e[0],t[1],e[2]]),this.T([e[0],e[1],t[2]]),this.T(e)]}setMaterial(t,e){null==t.materialTable[this.MaterialIndex]&&(t.materials.length>=Nmaterials&&e(),t.materialTable[this.MaterialIndex]=t.materials.length,t.materials.push(Materials[this.MaterialIndex])),materialIndex=t.materialTable[this.MaterialIndex]}render(){let t;if(this.setMaterialIndex(),0==this.CenterIndex?t=corners(this.Min,this.Max):(this.c=Centers[this.CenterIndex-1],t=this.Tcorners(this.Min,this.Max)),this.offscreen(t))return void this.data.clear();let e,i=this.controlpoints;if(0==this.CenterIndex){if(!remesh&&this.Onscreen)return void this.append();e=i}else{let t=i.length;e=Array(t);for(let a=0;a<t;++a)e[a]=this.T(i[a])}let a=orthographic?1:this.Min[2]/B[2],r=pixel*Math.hypot(a*(viewParam.xmax-viewParam.xmin),a*(viewParam.ymax-viewParam.ymin))/size2;this.res2=r*r,this.Epsilon=FillFactor*r,this.data.clear(),this.Onscreen=!0,this.process(e)}}class BezierPatch extends Geometry{constructor(t,e,i,a,r,n){super(),this.controlpoints=t,this.Min=a,this.Max=r,this.color=n,this.CenterIndex=e;let s=t.length;if(n){let t=n[0][3]+n[1][3]+n[2][3];this.transparent=16==s||4==s?t+n[3][3]<1020:t<765}else this.transparent=Materials[i].diffuse[3]<1;this.MaterialIndex=i,this.vertex=this.transparent?this.data.Vertex.bind(this.data):this.data.vertex.bind(this.data),this.L2norm(this.controlpoints)}setMaterialIndex(){this.transparent?this.setMaterial(transparentData,drawTransparent):this.color?this.setMaterial(colorData,drawColor):this.setMaterial(materialData,drawMaterial)}L2norm(t){let e=t[0];this.epsilon=0;let i=t.length;for(let a=1;a<i;++a)this.epsilon=Math.max(this.epsilon,abs2([t[a][0]-e[0],t[a][1]-e[1],t[a][2]-e[2]]));this.epsilon*=Number.EPSILON}processTriangle(t){let e=t[0],i=t[1],a=t[2],r=unit(cross([i[0]-e[0],i[1]-e[1],i[2]-e[2]],[a[0]-e[0],a[1]-e[1],a[2]-e[2]]));if(!this.offscreen([e,i,a])){let t,n,s;this.color?(t=this.data.Vertex(e,r!
,this.color[0]),n=this.data.Vertex(i,r,this.color[1]),s=this.data.Vertex(a,r,this.color[2])):(t=this.vertex(e,r),n=this.vertex(i,r),s=this.vertex(a,r)),0==wireframe?(this.data.indices.push(t),this.data.indices.push(n),this.data.indices.push(s)):(this.data.indices.push(t),this.data.indices.push(n),this.data.indices.push(n),this.data.indices.push(s),this.data.indices.push(s),this.data.indices.push(t)),this.append()}}processQuad(t){let e=t[0],i=t[1],a=t[2],r=t[3],n=cross([i[0]-e[0],i[1]-e[1],i[2]-e[2]],[a[0]-i[0],a[1]-i[1],a[2]-i[2]]),s=cross([a[0]-r[0],a[1]-r[1],a[2]-r[2]],[r[0]-e[0],r[1]-e[1],r[2]-e[2]]),o=unit([n[0]+s[0],n[1]+s[1],n[2]+s[2]]);if(!this.offscreen([e,i,a,r])){let t,n,s,h;this.color?(t=this.data.Vertex(e,o,this.color[0]),n=this.data.Vertex(i,o,this.color[1]),s=this.data.Vertex(a,o,this.color[2]),h=this.data.Vertex(r,o,this.color[3])):(t=this.vertex(e,o),n=this.vertex(i,o),s=this.vertex(a,o),h=this.vertex(r,o)),0==wireframe?(this.data.indices.push(t),this.data.indices.push(n),this.data.indices.push(s),this.data.indices.push(t),this.data.indices.push(s),this.data.indices.push(h)):(this.data.indices.push(t),this.data.indices.push(n),this.data.indices.push(n),this.data.indices.push(s),this.data.indices.push(s),this.data.indices.push(h),this.data.indices.push(h),this.data.indices.push(t)),this.append()}}curve(t,e,i,a,r){new BezierCurve([t[e],t[i],t[a],t[r]],0,materialIndex,this.Min,this.Max).render()}process(t){if(this.transparent&&1!=wireframe&&(materialIndex=this.color?-1-materialIndex:1+materialIndex),10==t.length)return this.process3(t);if(3==t.length)return this.processTriangle(t);if(4==t.length)return this.processQuad(t);if(1==wireframe)return this.curve(t,0,4,8,12),this.curve(t,12,13,14,15),this.curve(t,15,11,7,3),void this.curve(t,3,2,1,0);let e=t[0],i=t[3],a=t[12],r=t[15],n=this.normal(i,t[2],t[1],e,t[4],t[8],a);abs2(n)<this.epsilon&&abs2(n=this.normal(i,t[2],t[1],e,t[13],t[14],r))<this.epsilon&&(n=this.normal(r,t[11],t[7],i,t[4],t[8],a));let s=this.normal(e,t[4],t[8],a,t[13],t[14],r);abs2(s)<th!
is.epsilon&&abs2(s=this.normal(e,t[4],t[8],a,t[11],t[7],i))<this.epsilon&&(s=this.normal(i,t[2],t[1],e,t[13],t[14],r));let o=this.normal(a,t[13],t[14],r,t[11],t[7],i);abs2(o)<this.epsilon&&abs2(o=this.normal(a,t[13],t[14],r,t[2],t[1],e))<this.epsilon&&(o=this.normal(e,t[4],t[8],a,t[11],t[7],i));let h=this.normal(r,t[11],t[7],i,t[2],t[1],e);if(abs2(h)<this.epsilon&&abs2(h=this.normal(r,t[11],t[7],i,t[4],t[8],a))<this.epsilon&&(h=this.normal(a,t[13],t[14],r,t[2],t[1],e)),this.color){let l=this.color[0],d=this.color[1],c=this.color[2],m=this.color[3],f=this.data.Vertex(e,n,l),u=this.data.Vertex(a,s,d),p=this.data.Vertex(r,o,c),v=this.data.Vertex(i,h,m);this.Render(t,f,u,p,v,e,a,r,i,!1,!1,!1,!1,l,d,c,m)}else{let l=this.vertex(e,n),d=this.vertex(a,s),c=this.vertex(r,o),m=this.vertex(i,h);this.Render(t,l,d,c,m,e,a,r,i,!1,!1,!1,!1)}this.data.indices.length>0&&this.append()}append(){this.transparent?transparentData.append(this.data):this.color?colorData.append(this.data):materialData.append(this.data)}Render(t,e,i,a,r,n,s,o,h,l,d,c,m,f,u,p,v){let g=this.Distance(t);if(g[0]<this.res2&&g[1]<this.res2)this.offscreen([n,s,o])||(0==wireframe?(this.data.indices.push(e),this.data.indices.push(i),this.data.indices.push(a)):(this.data.indices.push(e),this.data.indices.push(i),this.data.indices.push(i),this.data.indices.push(a))),this.offscreen([n,o,h])||(0==wireframe?(this.data.indices.push(e),this.data.indices.push(a),this.data.indices.push(r)):(this.data.indices.push(a),this.data.indices.push(r),this.data.indices.push(r),this.data.indices.push(e)));else{if(this.offscreen(t))return;let w=t[0],x=t[3],M=t[12],b=t[15];if(g[0]<this.res2){let g=new Split3(w,t[1],t[2],x),A=new Split3(t[4],t[5],t[6],t[7]),S=new Split3(t[8],t[9],t[10],t[11]),P=new Split3(M,t[13],t[14],b),R=[w,g.m0,g.m3,g.m5,t[4],A.m0,A.m3,A.m5,t[8],S.m0,S.m3,S.m5,M,P.m0,P.m3,P.m5],T=[g.m5,g.m4,g.m2,x,A.m5,A.m4,A.m2,t[7],S.m5,S.m4,S.m2,t[11],P.m5,P.m4,P.m2,b],y=this.normal(R[12],R[13],R[14],R[15],R[11],R[7],R[3]);abs2(y)<=this.epsilon&&abs2(y=this.normal(R[12],R[13],R[1!
4],R[15],R[2],R[1],R[0]))<=this.epsilon&&(y=this.normal(R[0],R[4],R[8],R[12],R[11],R[7],R[3]));let D=this.normal(T[3],T[2],T[1],T[0],T[4],T[8],T[12]);abs2(D)<=this.epsilon&&abs2(D=this.normal(T[3],T[2],T[1],T[0],T[13],T[14],T[15]))<=this.epsilon&&(D=this.normal(T[15],T[11],T[7],T[3],T[4],T[8],T[12]));let I=this.Epsilon,z=[.5*(s[0]+o[0]),.5*(s[1]+o[1]),.5*(s[2]+o[2])];if(!d)if(d=Straightness(M,t[13],t[14],b)<this.res2){let t=unit(this.differential(T[12],T[8],T[4],T[0]));z=[z[0]-I*t[0],z[1]-I*t[1],z[2]-I*t[2]]}else z=R[15];let E=[.5*(h[0]+n[0]),.5*(h[1]+n[1]),.5*(h[2]+n[2])];if(!m)if(m=Straightness(w,t[1],t[2],x)<this.res2){let t=unit(this.differential(R[3],R[7],R[11],R[15]));E=[E[0]-I*t[0],E[1]-I*t[1],E[2]-I*t[2]]}else E=T[0];if(f){let t=Array(4),g=Array(4);for(let e=0;e<4;++e)t[e]=.5*(u[e]+p[e]),g[e]=.5*(v[e]+f[e]);let w=this.data.Vertex(z,y,t),x=this.data.Vertex(E,D,g);this.Render(R,e,i,w,x,n,s,z,E,l,d,!1,m,f,u,t,g),this.Render(T,x,w,a,r,E,z,o,h,!1,d,c,m,g,t,p,v)}else{let t=this.vertex(z,y),f=this.vertex(E,D);this.Render(R,e,i,t,f,n,s,z,E,l,d,!1,m),this.Render(T,f,t,a,r,E,z,o,h,!1,d,c,m)}return}if(g[1]<this.res2){let g=new Split3(w,t[4],t[8],M),A=new Split3(t[1],t[5],t[9],t[13]),S=new Split3(t[2],t[6],t[10],t[14]),P=new Split3(x,t[7],t[11],b),R=[w,t[1],t[2],x,g.m0,A.m0,S.m0,P.m0,g.m3,A.m3,S.m3,P.m3,g.m5,A.m5,S.m5,P.m5],T=[g.m5,A.m5,S.m5,P.m5,g.m4,A.m4,S.m4,P.m4,g.m2,A.m2,S.m2,P.m2,M,t[13],t[14],b],y=this.normal(R[0],R[4],R[8],R[12],R[13],R[14],R[15]);abs2(y)<=this.epsilon&&abs2(y=this.normal(R[0],R[4],R[8],R[12],R[11],R[7],R[3]))<=this.epsilon&&(y=this.normal(R[3],R[2],R[1],R[0],R[13],R[14],R[15]));let D=this.normal(T[15],T[11],T[7],T[3],T[2],T[1],T[0]);abs2(D)<=this.epsilon&&abs2(D=this.normal(T[15],T[11],T[7],T[3],T[4],T[8],T[12]))<=this.epsilon&&(D=this.normal(T[12],T[13],T[14],T[15],T[2],T[1],T[0]));let I=this.Epsilon,z=[.5*(n[0]+s[0]),.5*(n[1]+s[1]),.5*(n[2]+s[2])];if(!l)if(l=Straightness(w,t[4],t[8],M)<this.res2){let t=unit(this.differential(T[0],T[1],T[2],T[3]));z=[z[0]-I*t[0],z[1]-I*t[1],z[2]-I*t[2]]}el!
se z=R[12];let E=[.5*(o[0]+h[0]),.5*(o[1]+h[1]),.5*(o[2]+h[2])];if(!c)if(c=Straightness(b,t[11],t[7],x)<this.res2){let t=unit(this.differential(R[15],R[14],R[13],R[12]));E=[E[0]-I*t[0],E[1]-I*t[1],E[2]-I*t[2]]}else E=T[3];if(f){let t=Array(4),g=Array(4);for(let e=0;e<4;++e)t[e]=.5*(f[e]+u[e]),g[e]=.5*(p[e]+v[e]);let w=this.data.Vertex(z,y,t),x=this.data.Vertex(E,D,g);this.Render(R,e,w,x,r,n,z,E,h,l,!1,c,m,f,t,g,v),this.Render(T,w,i,a,x,z,s,o,E,l,d,c,!1,t,u,p,g)}else{let t=this.vertex(z,y),f=this.vertex(E,D);this.Render(R,e,t,f,r,n,z,E,h,l,!1,c,m),this.Render(T,t,i,a,f,z,s,o,E,l,d,c,!1)}return}let A=new Split3(w,t[1],t[2],x),S=new Split3(t[4],t[5],t[6],t[7]),P=new Split3(t[8],t[9],t[10],t[11]),R=new Split3(M,t[13],t[14],b),T=new Split3(w,t[4],t[8],M),y=new Split3(A.m0,S.m0,P.m0,R.m0),D=new Split3(A.m3,S.m3,P.m3,R.m3),I=new Split3(A.m5,S.m5,P.m5,R.m5),z=new Split3(A.m4,S.m4,P.m4,R.m4),E=new Split3(A.m2,S.m2,P.m2,R.m2),O=new Split3(x,t[7],t[11],b),L=[w,A.m0,A.m3,A.m5,T.m0,y.m0,D.m0,I.m0,T.m3,y.m3,D.m3,I.m3,T.m5,y.m5,D.m5,I.m5],N=[T.m5,y.m5,D.m5,I.m5,T.m4,y.m4,D.m4,I.m4,T.m2,y.m2,D.m2,I.m2,M,R.m0,R.m3,R.m5],_=[I.m5,z.m5,E.m5,O.m5,I.m4,z.m4,E.m4,O.m4,I.m2,z.m2,E.m2,O.m2,R.m5,R.m4,R.m2,b],B=[A.m5,A.m4,A.m2,x,I.m0,z.m0,E.m0,O.m0,I.m3,z.m3,E.m3,O.m3,I.m5,z.m5,E.m5,O.m5],V=L[15],C=this.normal(L[0],L[4],L[8],L[12],L[13],L[14],L[15]);abs2(C)<this.epsilon&&abs2(C=this.normal(L[0],L[4],L[8],L[12],L[11],L[7],L[3]))<this.epsilon&&(C=this.normal(L[3],L[2],L[1],L[0],L[13],L[14],L[15]));let F=this.normal(N[12],N[13],N[14],N[15],N[11],N[7],N[3]);abs2(F)<this.epsilon&&abs2(F=this.normal(N[12],N[13],N[14],N[15],N[2],N[1],N[0]))<this.epsilon&&(F=this.normal(N[0],N[4],N[8],N[12],N[11],N[7],N[3]));let H=this.normal(_[15],_[11],_[7],_[3],_[2],_[1],_[0]);abs2(H)<this.epsilon&&abs2(H=this.normal(_[15],_[11],_[7],_[3],_[4],_[8],_[12]))<this.epsilon&&(H=this.normal(_[12],_[13],_[14],_[15],_[2],_[1],_[0]));let G=this.normal(B[3],B[2],B[1],B[0],B[4],B[8],B[12]);abs2(G)<this.epsilon&&abs2(G=this.normal(B[3],B[2],B[1],B[0],B[13],B[14],B[15]))<t!
his.epsilon&&(G=this.normal(B[15],B[11],B[7],B[3],B[4],B[8],B[12]));let U=this.normal(_[3],_[2],_[1],V,_[4],_[8],_[12]),W=this.Epsilon,Y=[.5*(n[0]+s[0]),.5*(n[1]+s[1]),.5*(n[2]+s[2])];if(!l)if(l=Straightness(w,t[4],t[8],M)<this.res2){let t=unit(this.differential(N[0],N[1],N[2],N[3]));Y=[Y[0]-W*t[0],Y[1]-W*t[1],Y[2]-W*t[2]]}else Y=L[12];let j=[.5*(s[0]+o[0]),.5*(s[1]+o[1]),.5*(s[2]+o[2])];if(!d)if(d=Straightness(M,t[13],t[14],b)<this.res2){let t=unit(this.differential(_[12],_[8],_[4],_[0]));j=[j[0]-W*t[0],j[1]-W*t[1],j[2]-W*t[2]]}else j=N[15];let k=[.5*(o[0]+h[0]),.5*(o[1]+h[1]),.5*(o[2]+h[2])];if(!c)if(c=Straightness(b,t[11],t[7],x)<this.res2){let t=unit(this.differential(B[15],B[14],B[13],B[12]));k=[k[0]-W*t[0],k[1]-W*t[1],k[2]-W*t[2]]}else k=_[3];let Z=[.5*(h[0]+n[0]),.5*(h[1]+n[1]),.5*(h[2]+n[2])];if(!m)if(m=Straightness(w,t[1],t[2],x)<this.res2){let t=unit(this.differential(L[3],L[7],L[11],L[15]));Z=[Z[0]-W*t[0],Z[1]-W*t[1],Z[2]-W*t[2]]}else Z=B[0];if(f){let t=Array(4),g=Array(4),w=Array(4),x=Array(4),M=Array(4);for(let e=0;e<4;++e)t[e]=.5*(f[e]+u[e]),g[e]=.5*(u[e]+p[e]),w[e]=.5*(p[e]+v[e]),x[e]=.5*(v[e]+f[e]),M[e]=.5*(t[e]+w[e]);let b=this.data.Vertex(Y,C,t),A=this.data.Vertex(j,F,g),S=this.data.Vertex(k,H,w),P=this.data.Vertex(Z,G,x),R=this.data.Vertex(V,U,M);this.Render(L,e,b,R,P,n,Y,V,Z,l,!1,!1,m,f,t,M,x),this.Render(N,b,i,A,R,Y,s,j,V,l,d,!1,!1,t,u,g,M),this.Render(_,R,A,a,S,V,j,o,k,!1,d,c,!1,M,g,p,w),this.Render(B,P,R,S,r,Z,V,k,h,!1,!1,c,m,x,M,w,v)}else{let t=this.vertex(Y,C),f=this.vertex(j,F),u=this.vertex(k,H),p=this.vertex(Z,G),v=this.vertex(V,U);this.Render(L,e,t,v,p,n,Y,V,Z,l,!1,!1,m),this.Render(N,t,i,f,v,Y,s,j,V,l,d,!1,!1),this.Render(_,v,f,a,u,V,j,o,k,!1,d,c,!1),this.Render(B,p,v,u,r,Z,V,k,h,!1,!1,c,m)}}}process3(t){if(1==wireframe)return this.curve(t,0,1,3,6),this.curve(t,6,7,8,9),void this.curve(t,9,5,2,0);let e=t[0],i=t[6],a=t[9],r=this.normal(a,t[5],t[2],e,t[1],t[3],i),n=this.normal(e,t[1],t[3],i,t[7],t[8],a),s=this.normal(i,t[7],t[8],a,t[5],t[2],e);if(this.color){let o=this.color[0],h=this!
.color[1],l=this.color[2],d=this.data.Vertex(e,r,o),c=this.data.Vertex(i,n,h),m=this.data.Vertex(a,s,l);this.Render3(t,d,c,m,e,i,a,!1,!1,!1,o,h,l)}else{let o=this.vertex(e,r),h=this.vertex(i,n),l=this.vertex(a,s);this.Render3(t,o,h,l,e,i,a,!1,!1,!1)}this.data.indices.length>0&&this.append()}Render3(t,e,i,a,r,n,s,o,h,l,d,c,m){if(this.Distance3(t)<this.res2)this.offscreen([r,n,s])||(0==wireframe?(this.data.indices.push(e),this.data.indices.push(i),this.data.indices.push(a)):(this.data.indices.push(e),this.data.indices.push(i),this.data.indices.push(i),this.data.indices.push(a),this.data.indices.push(a),this.data.indices.push(e)));else{if(this.offscreen(t))return;let f=t[0],u=t[1],p=t[2],v=t[3],g=t[4],w=t[5],x=t[6],M=t[7],b=t[8],A=t[9],S=[.5*(A[0]+w[0]),.5*(A[1]+w[1]),.5*(A[2]+w[2])],P=[.5*(A[0]+b[0]),.5*(A[1]+b[1]),.5*(A[2]+b[2])],R=[.5*(w[0]+p[0]),.5*(w[1]+p[1]),.5*(w[2]+p[2])],T=[.5*(b[0]+g[0]),.5*(b[1]+g[1]),.5*(b[2]+g[2])],y=[.5*(b[0]+M[0]),.5*(b[1]+M[1]),.5*(b[2]+M[2])],D=[.5*(p[0]+g[0]),.5*(p[1]+g[1]),.5*(p[2]+g[2])],I=[.5*(p[0]+f[0]),.5*(p[1]+f[1]),.5*(p[2]+f[2])],z=[.5*(g[0]+v[0]),.5*(g[1]+v[1]),.5*(g[2]+v[2])],E=[.5*(M[0]+x[0]),.5*(M[1]+x[1]),.5*(M[2]+x[2])],O=[.5*(f[0]+u[0]),.5*(f[1]+u[1]),.5*(f[2]+u[2])],L=[.5*(u[0]+v[0]),.5*(u[1]+v[1]),.5*(u[2]+v[2])],N=[.5*(v[0]+x[0]),.5*(v[1]+x[1]),.5*(v[2]+x[2])],_=[.5*(S[0]+R[0]),.5*(S[1]+R[1]),.5*(S[2]+R[2])],B=[.5*(P[0]+y[0]),.5*(P[1]+y[1]),.5*(P[2]+y[2])],V=[.5*(R[0]+I[0]),.5*(R[1]+I[1]),.5*(R[2]+I[2])],C=[.5*T[0]+.25*(g[0]+u[0]),.5*T[1]+.25*(g[1]+u[1]),.5*T[2]+.25*(g[2]+u[2])],F=[.5*(y[0]+E[0]),.5*(y[1]+E[1]),.5*(y[2]+E[2])],H=[.5*D[0]+.25*(g[0]+M[0]),.5*D[1]+.25*(g[1]+M[1]),.5*D[2]+.25*(g[2]+M[2])],G=[.25*(w[0]+g[0])+.5*z[0],.25*(w[1]+g[1])+.5*z[1],.25*(w[2]+g[2])+.5*z[2]],U=[.5*(O[0]+L[0]),.5*(O[1]+L[1]),.5*(O[2]+L[2])],W=[.5*(L[0]+N[0]),.5*(L[1]+N[1]),.5*(L[2]+N[2])],Y=[.5*(H[0]+U[0]),.5*(H[1]+U[1]),.5*(H[2]+U[2])],j=[.5*(H[0]+W[0]),.5*(H[1]+W[1]),.5*(H[2]+W[2])],k=[.5*(U[0]+W[0]),.5*(U[1]+W[1]),.5*(U[2]+W[2])],Z=[.5*(G[0]+F[0]),.5*(G[1]+F[1]),.5*(G[2]+F[2])!
],X=[.5*(B[0]+G[0]),.5*(B[1]+G[1]),.5*(B[2]+G[2])],q=[.5*(B[0]+F[0]),.5*(B[1]+F[1]),.5*(B[2]+F[2])],K=[.5*(_[0]+C[0]),.5*(_[1]+C[1]),.5*(_[2]+C[2])],$=[.5*(V[0]+C[0]),.5*(V[1]+C[1]),.5*(V[2]+C[2])],Q=[.5*(_[0]+V[0]),.5*(_[1]+V[1]),.5*(_[2]+V[2])],J=[f,O,I,U,[.5*(D[0]+O[0]),.5*(D[1]+O[1]),.5*(D[2]+O[2])],V,k,Y,$,Q],tt=[k,W,j,N,[.5*(z[0]+E[0]),.5*(z[1]+E[1]),.5*(z[2]+E[2])],Z,x,E,F,q],et=[Q,K,_,X,[.5*(S[0]+T[0]),.5*(S[1]+T[1]),.5*(S[2]+T[2])],S,q,B,P,A],it=[q,X,Z,K,[.25*(R[0]+y[0]+L[0]+g[0]),.25*(R[1]+y[1]+L[1]+g[1]),.25*(R[2]+y[2]+L[2]+g[2])],j,Q,$,Y,k],at=this.normal(k,j,Z,q,X,K,Q),rt=this.normal(q,X,K,Q,$,Y,k),nt=this.normal(Q,$,Y,k,j,Z,q),st=this.Epsilon,ot=[.5*(n[0]+s[0]),.5*(n[1]+s[1]),.5*(n[2]+s[2])];if(!o)if(o=Straightness(x,M,b,A)<this.res2){let t=unit(this.sumdifferential(it[0],it[2],it[5],it[9],it[1],it[3],it[6]));ot=[ot[0]-st*t[0],ot[1]-st*t[1],ot[2]-st*t[2]]}else ot=q;let ht=[.5*(s[0]+r[0]),.5*(s[1]+r[1]),.5*(s[2]+r[2])];if(!h)if(h=Straightness(f,p,w,A)<this.res2){let t=unit(this.sumdifferential(it[6],it[3],it[1],it[0],it[7],it[8],it[9]));ht=[ht[0]-st*t[0],ht[1]-st*t[1],ht[2]-st*t[2]]}else ht=Q;let lt=[.5*(r[0]+n[0]),.5*(r[1]+n[1]),.5*(r[2]+n[2])];if(!l)if(l=Straightness(f,u,v,x)<this.res2){let t=unit(this.sumdifferential(it[9],it[8],it[7],it[6],it[5],it[2],it[0]));lt=[lt[0]-st*t[0],lt[1]-st*t[1],lt[2]-st*t[2]]}else lt=k;if(d){let t=Array(4),f=Array(4),u=Array(4);for(let e=0;e<4;++e)t[e]=.5*(c[e]+m[e]),f[e]=.5*(m[e]+d[e]),u[e]=.5*(d[e]+c[e]);let p=this.data.Vertex(ot,at,t),v=this.data.Vertex(ht,rt,f),g=this.data.Vertex(lt,nt,u);this.Render3(J,e,g,v,r,lt,ht,!1,h,l,d,u,f),this.Render3(tt,g,i,p,lt,n,ot,o,!1,l,u,c,t),this.Render3(et,v,p,a,ht,ot,s,o,h,!1,f,t,m),this.Render3(it,p,v,g,ot,ht,lt,!1,!1,!1,t,f,u)}else{let t=this.vertex(ot,at),d=this.vertex(ht,rt),c=this.vertex(lt,nt);this.Render3(J,e,c,d,r,lt,ht,!1,h,l),this.Render3(tt,c,i,t,lt,n,ot,o,!1,l),this.Render3(et,d,t,a,ht,ot,s,o,h,!1),this.Render3(it,t,d,c,ot,ht,lt,!1,!1,!1)}}}Distance(t){let e=t[0],i=t[3],a=t[12],r=t[15],n=Flatness(e,a,i,r);n=Math.max!
(Straightness(e,t[4],t[8],a)),n=Math.max(n,Straightness(t[1],t[5],t[9],t[13])),n=Math.max(n,Straightness(i,t[7],t[11],r)),n=Math.max(n,Straightness(t[2],t[6],t[10],t[14]));let s=Flatness(e,i,a,r);return s=Math.max(s,Straightness(e,t[1],t[2],i)),s=Math.max(s,Straightness(t[4],t[5],t[6],t[7])),s=Math.max(s,Straightness(t[8],t[9],t[10],t[11])),[n,s=Math.max(s,Straightness(a,t[13],t[14],r))]}Distance3(t){let e=t[0],i=t[4],a=t[6],r=t[9],n=abs2([(e[0]+a[0]+r[0])*third-i[0],(e[1]+a[1]+r[1])*third-i[1],(e[2]+a[2]+r[2])*third-i[2]]);return n=Math.max(n,Straightness(e,t[1],t[3],a)),n=Math.max(n,Straightness(e,t[2],t[5],r)),Math.max(n,Straightness(a,t[7],t[8],r))}differential(t,e,i,a){let r=[3*(e[0]-t[0]),3*(e[1]-t[1]),3*(e[2]-t[2])];return abs2(r)>this.epsilon?r:abs2(r=bezierPP(t,e,i))>this.epsilon?r:bezierPPP(t,e,i,a)}sumdifferential(t,e,i,a,r,n,s){let o=this.differential(t,e,i,a),h=this.differential(t,r,n,s);return[o[0]+h[0],o[1]+h[1],o[2]+h[2]]}normal(t,e,i,a,r,n,s){let o=3*(r[0]-a[0]),h=3*(r[1]-a[1]),l=3*(r[2]-a[2]),d=3*(i[0]-a[0]),c=3*(i[1]-a[1]),m=3*(i[2]-a[2]),f=[h*m-l*c,l*d-o*m,o*c-h*d];if(abs2(f)>this.epsilon)return f;let u=[d,c,m],p=[o,h,l],v=bezierPP(a,i,e),g=bezierPP(a,r,n),w=cross(g,u),x=cross(p,v);if(abs2(f=[w[0]+x[0],w[1]+x[1],w[2]+x[2]])>this.epsilon)return f;let M=bezierPPP(a,i,e,t),b=bezierPPP(a,r,n,s);w=cross(p,M),x=cross(b,u);let A=cross(g,v);return abs2(f=[w[0]+x[0]+A[0],w[1]+x[1]+A[1],w[2]+x[2]+A[2]])>this.epsilon?f:(w=cross(b,v),x=cross(g,M),abs2(f=[w[0]+x[0],w[1]+x[1],w[2]+x[2]])>this.epsilon?f:cross(b,M))}}class BezierCurve extends Geometry{constructor(t,e,i,a,r){super(),this.controlpoints=t,this.Min=a,this.Max=r,this.CenterIndex=e,this.MaterialIndex=i}setMaterialIndex(){this.setMaterial(material1Data,drawMaterial1)}processLine(t){let e=t[0],i=t[1];if(!this.offscreen([e,i])){let t=[0,0,1];this.data.indices.push(this.data.vertex(e,t)),this.data.indices.push(this.data.vertex(i,t)),this.append()}}process(t){if(2==t.length)return this.processLine(t);let e=t[0],i=t[1],a=t[2],r=t[3],n=this.normal(bezier!
P(e,i),bezierPP(e,i,a)),s=this.normal(bezierP(a,r),bezierPP(r,a,i)),o=this.data.vertex(e,n),h=this.data.vertex(r,s);this.Render(t,o,h),this.data.indices.length>0&&this.append()}append(){material1Data.append(this.data)}Render(t,e,i){let a=t[0],r=t[1],n=t[2],s=t[3];if(Straightness(a,r,n,s)<this.res2)this.offscreen([a,s])||(this.data.indices.push(e),this.data.indices.push(i));else{if(this.offscreen(t))return;let o=[.5*(a[0]+r[0]),.5*(a[1]+r[1]),.5*(a[2]+r[2])],h=[.5*(r[0]+n[0]),.5*(r[1]+n[1]),.5*(r[2]+n[2])],l=[.5*(n[0]+s[0]),.5*(n[1]+s[1]),.5*(n[2]+s[2])],d=[.5*(o[0]+h[0]),.5*(o[1]+h[1]),.5*(o[2]+h[2])],c=[.5*(h[0]+l[0]),.5*(h[1]+l[1]),.5*(h[2]+l[2])],m=[.5*(d[0]+c[0]),.5*(d[1]+c[1]),.5*(d[2]+c[2])],f=[a,o,d,m],u=[m,c,l,s],p=this.normal(bezierPh(a,r,n,s),bezierPPh(a,r,n,s)),v=this.data.vertex(m,p);this.Render(f,e,v),this.Render(u,v,i)}}normal(t,e){let i=dot(t,t),a=dot(t,e);return[i*e[0]-a*t[0],i*e[1]-a*t[1],i*e[2]-a*t[2]]}}class Pixel extends Geometry{constructor(t,e,i,a,r){super(),this.controlpoint=t,this.width=e,this.CenterIndex=0,this.MaterialIndex=i,this.Min=a,this.Max=r}setMaterialIndex(){this.setMaterial(material0Data,drawMaterial0)}process(t){this.data.indices.push(this.data.vertex0(this.controlpoint,this.width)),this.append()}append(){material0Data.append(this.data)}}class Triangles extends Geometry{constructor(t,e,i){super(),this.CenterIndex=0,this.MaterialIndex=t,this.Min=e,this.Max=i,this.Positions=Positions,this.Normals=Normals,this.Colors=Colors,this.Indices=Indices,Positions=[],Normals=[],Colors=[],Indices=[],this.transparent=Materials[t].diffuse[3]<1}setMaterialIndex(){this.transparent?this.setMaterial(transparentData,drawTransparent):this.setMaterial(triangleData,drawTriangle)}process(t){materialIndex=this.Colors.length>0?-1-materialIndex:1+materialIndex;for(let t=0,e=this.Indices.length;t<e;++t){let e=this.Indices[t],i=e[0],a=this.Positions[i[0]],r=this.Positions[i[1]],n=this.Positions[i[2]];if(!this.offscreen([a,r,n])){let t=e.length>1?e[1]:i;if(t&&0!=t.length||(t=i),this.Colors.length>0){let s=e!
.length>2?e[2]:i;s&&0!=s.length||(s=i);let o=this.Colors[s[0]],h=this.Colors[s[1]],l=this.Colors[s[2]];this.transparent|=o[3]+h[3]+l[3]<765,0==wireframe?(this.data.iVertex(i[0],a,this.Normals[t[0]],o),this.data.iVertex(i[1],r,this.Normals[t[1]],h),this.data.iVertex(i[2],n,this.Normals[t[2]],l)):(this.data.iVertex(i[0],a,this.Normals[t[0]],o),this.data.iVertex(i[1],r,this.Normals[t[1]],h),this.data.iVertex(i[1],r,this.Normals[t[1]],h),this.data.iVertex(i[2],n,this.Normals[t[2]],l),this.data.iVertex(i[2],n,this.Normals[t[2]],l),this.data.iVertex(i[0],a,this.Normals[t[0]],o))}else 0==wireframe?(this.data.iVertex(i[0],a,this.Normals[t[0]]),this.data.iVertex(i[1],r,this.Normals[t[1]]),this.data.iVertex(i[2],n,this.Normals[t[2]])):(this.data.iVertex(i[0],a,this.Normals[t[0]]),this.data.iVertex(i[1],r,this.Normals[t[1]]),this.data.iVertex(i[1],r,this.Normals[t[1]]),this.data.iVertex(i[2],n,this.Normals[t[2]]),this.data.iVertex(i[2],n,this.Normals[t[2]]),this.data.iVertex(i[0],a,this.Normals[t[0]]))}}this.data.nvertices=this.Positions.length,this.data.indices.length>0&&this.append()}append(){this.transparent?transparentData.append(this.data):triangleData.append(this.data)}}function home(){mat4.identity(rotMat),initProjection(),setProjection(),remesh=!0,draw()}let positionAttribute=0,normalAttribute=1,materialAttribute=2,colorAttribute=3,widthAttribute=4;function initShader(t=[]){let e=getShader(gl,vertex,gl.VERTEX_SHADER,t),i=getShader(gl,fragment,gl.FRAGMENT_SHADER,t),a=gl.createProgram();return gl.attachShader(a,e),gl.attachShader(a,i),gl.bindAttribLocation(a,positionAttribute,"position"),gl.bindAttribLocation(a,normalAttribute,"normal"),gl.bindAttribLocation(a,materialAttribute,"materialIndex"),gl.bindAttribLocation(a,colorAttribute,"color"),gl.bindAttribLocation(a,widthAttribute,"width"),gl.linkProgram(a),gl.getProgramParameter(a,gl.LINK_STATUS)||alert("Could not initialize shaders"),a}class Split3{constructor(t,e,i,a){this.m0=[.5*(t[0]+e[0]),.5*(t[1]+e[1]),.5*(t[2]+e[2])];let r=.5*(e[0]+i[0]),n=.5*(e[1]+i[1]),s=.5*!
(e[2]+i[2]);this.m2=[.5*(i[0]+a[0]),.5*(i[1]+a[1]),.5*(i[2]+a[2])],this.m3=[.5*(this.m0[0]+r),.5*(this.m0[1]+n),.5*(this.m0[2]+s)],this.m4=[.5*(r+this.m2[0]),.5*(n+this.m2[1]),.5*(s+this.m2[2])],this.m5=[.5*(this.m3[0]+this.m4[0]),.5*(this.m3[1]+this.m4[1]),.5*(this.m3[2]+this.m4[2])]}}function unit(t){let e=1/(Math.sqrt(t[0]*t[0]+t[1]*t[1]+t[2]*t[2])||1);return[t[0]*e,t[1]*e,t[2]*e]}function abs2(t){return t[0]*t[0]+t[1]*t[1]+t[2]*t[2]}function dot(t,e){return t[0]*e[0]+t[1]*e[1]+t[2]*e[2]}function cross(t,e){return[t[1]*e[2]-t[2]*e[1],t[2]*e[0]-t[0]*e[2],t[0]*e[1]-t[1]*e[0]]}function bezierP(t,e){return[e[0]-t[0],e[1]-t[1],e[2]-t[2]]}function bezierPP(t,e,i){return[3*(t[0]+i[0])-6*e[0],3*(t[1]+i[1])-6*e[1],3*(t[2]+i[2])-6*e[2]]}function bezierPPP(t,e,i,a){return[a[0]-t[0]+3*(e[0]-i[0]),a[1]-t[1]+3*(e[1]-i[1]),a[2]-t[2]+3*(e[2]-i[2])]}function bezierPh(t,e,i,a){return[i[0]+a[0]-t[0]-e[0],i[1]+a[1]-t[1]-e[1],i[2]+a[2]-t[2]-e[2]]}function bezierPPh(t,e,i,a){return[3*t[0]-5*e[0]+i[0]+a[0],3*t[1]-5*e[1]+i[1]+a[1],3*t[2]-5*e[2]+i[2]+a[2]]}function Straightness(t,e,i,a){let r=[third*(a[0]-t[0]),third*(a[1]-t[1]),third*(a[2]-t[2])];return Math.max(abs2([e[0]-r[0]-t[0],e[1]-r[1]-t[1],e[2]-r[2]-t[2]]),abs2([a[0]-r[0]-i[0],a[1]-r[1]-i[1],a[2]-r[2]-i[2]]))}function Flatness(t,e,i,a){let r=[e[0]-t[0],e[1]-t[1],e[2]-t[2]],n=[a[0]-i[0],a[1]-i[1],a[2]-i[2]];return Math.max(abs2(cross(r,unit(n))),abs2(cross(n,unit(r))))/9}function corners(t,e){return[t,[t[0],t[1],e[2]],[t[0],e[1],t[2]],[t[0],e[1],e[2]],[e[0],t[1],t[2]],[e[0],t[1],e[2]],[e[0],e[1],t[2]],e]}function minbound(t){return[Math.min(t[0][0],t[1][0],t[2][0],t[3][0],t[4][0],t[5][0],t[6][0],t[7][0]),Math.min(t[0][1],t[1][1],t[2][1],t[3][1],t[4][1],t[5][1],t[6][1],t[7][1]),Math.min(t[0][2],t[1][2],t[2][2],t[3][2],t[4][2],t[5][2],t[6][2],t[7][2])]}function maxbound(t){return[Math.max(t[0][0],t[1][0],t[2][0],t[3][0],t[4][0],t[5][0],t[6][0],t[7][0]),Math.max(t[0][1],t[1][1],t[2][1],t[3][1],t[4][1],t[5][1],t[6][1],t[7][1]),Math.max(t[0][2],t[1][2],t[2][2],t[3][2],t[4][2],t[5]!
[2],t[6][2],t[7][2])]}function COBTarget(t,e){mat4.fromTranslation(T,[center.x,center.y,center.z]),mat4.invert(cjMatInv,T),mat4.multiply(t,e,cjMatInv),mat4.multiply(t,T,t)}function setUniforms(t,e){let i=e==pixelShader;gl.useProgram(e),gl.enableVertexAttribArray(positionAttribute),i&&gl.enableVertexAttribArray(widthAttribute);let a=!i&&Lights.length>0;if(a&&gl.enableVertexAttribArray(normalAttribute),gl.enableVertexAttribArray(materialAttribute),e.projViewMatUniform=gl.getUniformLocation(e,"projViewMat"),e.viewMatUniform=gl.getUniformLocation(e,"viewMat"),e.normMatUniform=gl.getUniformLocation(e,"normMat"),e!=colorShader&&e!=transparentShader||gl.enableVertexAttribArray(colorAttribute),a)for(let t=0;t<Lights.length;++t)Lights[t].setUniform(e,t);for(let i=0;i<t.materials.length;++i)t.materials[i].setUniform(e,i);gl.uniformMatrix4fv(e.projViewMatUniform,!1,projViewMat),gl.uniformMatrix4fv(e.viewMatUniform,!1,viewMat),gl.uniformMatrix3fv(e.normMatUniform,!1,normMat)}function handleMouseDown(t){zoomEnabled||enableZoom(),mouseDownOrTouchActive=!0,lastMouseX=t.clientX,lastMouseY=t.clientY}let pinchStart,touchStartTime,pinch=!1;function pinchDistance(t){return Math.hypot(t[0].pageX-t[1].pageX,t[0].pageY-t[1].pageY)}function handleTouchStart(t){t.preventDefault(),zoomEnabled||enableZoom();let e=t.targetTouches;swipe=rotate=pinch=!1,zooming||(1!=e.length||mouseDownOrTouchActive||(touchStartTime=(new Date).getTime(),touchId=e[0].identifier,lastMouseX=e[0].pageX,lastMouseY=e[0].pageY),2!=e.length||mouseDownOrTouchActive||(touchId=e[0].identifier,pinchStart=pinchDistance(e),pinch=!0))}function handleMouseUpOrTouchEnd(t){mouseDownOrTouchActive=!1}function rotateScene(t,e,i,a,r){if(t==i&&e==a)return;let[n,s]=arcball([t,-e],[i,-a]);mat4.fromRotation(T,2*r*ArcballFactor*n/lastzoom,s),mat4.multiply(rotMat,T,rotMat)}function shiftScene(t,e,i,a){let r=1/lastzoom;shift.x+=(i-t)*r*halfCanvasWidth,shift.y-=(a-e)*r*halfCanvasHeight}function panScene(t,e,i,a){orthographic?shiftScene(t,e,i,a):(center.x+=(i-t)*(viewParam.xmax-viewParam.x!
min),center.y-=(a-e)*(viewParam.ymax-viewParam.ymin))}function updateViewMatrix(){COBTarget(viewMat,rotMat),mat4.translate(viewMat,viewMat,[center.x,center.y,0]),mat3.fromMat4(viewMat3,viewMat),mat3.invert(normMat,viewMat3),mat4.multiply(projViewMat,projMat,viewMat)}function capzoom(){let t=Math.sqrt(Number.MAX_VALUE),e=1/t;Zoom<=e&&(Zoom=e),Zoom>=t&&(Zoom=t),Zoom!=lastzoom&&(remesh=!0),lastzoom=Zoom}function zoomImage(t){let e=zoomStep*halfCanvasHeight*t;const i=Math.log(.1*Number.MAX_VALUE)/Math.log(zoomFactor);Math.abs(e)<i&&(Zoom*=zoomFactor**e,capzoom())}function normMouse(t){let e=t[0],i=t[1],a=Math.hypot(e,i);return a>1&&(denom=1/a,e*=denom,i*=denom),[e,i,Math.sqrt(Math.max(1-i*i-e*e,0))]}function arcball(t,e){let i=normMouse(t),a=normMouse(e),r=dot(i,a);return r>1?r=1:r<-1&&(r=-1),[Math.acos(r),unit(cross(i,a))]}function zoomScene(t,e,i,a){zoomImage(e-a)}const DRAGMODE_ROTATE=1,DRAGMODE_SHIFT=2,DRAGMODE_ZOOM=3,DRAGMODE_PAN=4;function processDrag(t,e,i,a=1){let r;switch(i){case DRAGMODE_ROTATE:r=rotateScene;break;case DRAGMODE_SHIFT:r=shiftScene;break;case DRAGMODE_ZOOM:r=zoomScene;break;case DRAGMODE_PAN:r=panScene;break;default:r=((t,e,i,a)=>{})}r((lastMouseX-halfCanvasWidth)/halfCanvasWidth,(lastMouseY-halfCanvasHeight)/halfCanvasHeight,(t-halfCanvasWidth)/halfCanvasWidth,(e-halfCanvasHeight)/halfCanvasHeight,a),lastMouseX=t,lastMouseY=e,setProjection(),draw()}let zoomEnabled=0;function enableZoom(){zoomEnabled=1,canvas.addEventListener("wheel",handleMouseWheel,!1)}function disableZoom(){zoomEnabled=0,canvas.removeEventListener("wheel",handleMouseWheel,!1)}function handleKey(t){if(zoomEnabled||enableZoom(),embedded&&zoomEnabled&&27==t.keyCode)return void disableZoom();let e=[];switch(t.key){case"x":e=[1,0,0];break;case"y":e=[0,1,0];break;case"z":e=[0,0,1];break;case"h":home();break;case"m":3==++wireframe&&(wireframe=0),2!=wireframe&&(embedded||deleteShaders(),initShaders()),remesh=!0,draw();break;case"+":case"=":case">":expand();break;case"-":case"_":case"<":shrink()}e.length>0&&(mat4.rotate(rotMat,rot!
Mat,.1,e),updateViewMatrix(),draw())}function handleMouseWheel(t){t.preventDefault(),t.deltaY<0?Zoom*=zoomFactor:Zoom/=zoomFactor,capzoom(),setProjection(),draw()}function handleMouseMove(t){if(!mouseDownOrTouchActive)return;let e;processDrag(t.clientX,t.clientY,e=t.getModifierState("Control")?DRAGMODE_SHIFT:t.getModifierState("Shift")?DRAGMODE_ZOOM:t.getModifierState("Alt")?DRAGMODE_PAN:DRAGMODE_ROTATE)}let zooming=!1,swipe=!1,rotate=!1;function handleTouchMove(t){if(t.preventDefault(),zooming)return;let e=t.targetTouches;if(!pinch&&1==e.length&&touchId==e[0].identifier){let t=e[0].pageX,i=e[0].pageY,a=t-lastMouseX,r=i-lastMouseY,n=a*a+r*r<=shiftHoldDistance*shiftHoldDistance;if(n&&!swipe&&!rotate&&(new Date).getTime()-touchStartTime>shiftWaitTime&&(navigator.vibrate&&window.navigator.vibrate(vibrateTime),swipe=!0),swipe)processDrag(t,i,DRAGMODE_SHIFT);else if(!n){rotate=!0,processDrag(e[0].pageX,e[0].pageY,DRAGMODE_ROTATE,.5)}}if(pinch&&!swipe&&2==e.length&&touchId==e[0].identifier){let t=pinchDistance(e),i=t-pinchStart;zooming=!0,(i*=zoomPinchFactor)>zoomPinchCap&&(i=zoomPinchCap),i<-zoomPinchCap&&(i=-zoomPinchCap),zoomImage(i/size2),pinchStart=t,swipe=rotate=zooming=!1,setProjection(),draw()}}let pixelShader,materialShader,colorShader,transparentShader,zbuffer=[];function transformVertices(t){let e=viewMat[2],i=viewMat[6],a=viewMat[10];zbuffer.length=t.length;for(let r=0;r<t.length;++r){let n=6*r;zbuffer[r]=e*t[n]+i*t[n+1]+a*t[n+2]}}function drawMaterial0(){drawBuffer(material0Data,pixelShader),material0Data.clear()}function drawMaterial1(){drawBuffer(material1Data,materialShader),material1Data.clear()}function drawMaterial(){drawBuffer(materialData,materialShader),materialData.clear()}function drawColor(){drawBuffer(colorData,colorShader),colorData.clear()}function drawTriangle(){drawBuffer(triangleData,transparentShader),triangleData.clear()}function drawTransparent(){let t=transparentData.indices;if(wireframe>0)return drawBuffer(transparentData,transparentShader,t),void transparentData.clear();if(t.length!
>0){transformVertices(transparentData.vertices);let e=t.length/3,i=Array(e).fill().map((t,e)=>e);i.sort(function(e,i){let a=3*e;Ia=t[a],Ib=t[a+1],Ic=t[a+2];let r=3*i;return IA=t[r],IB=t[r+1],IC=t[r+2],zbuffer[Ia]+zbuffer[Ib]+zbuffer[Ic]<zbuffer[IA]+zbuffer[IB]+zbuffer[IC]?-1:1});let a=Array(t.length);for(let r=0;r<e;++r){let e=3*i[r];a[3*r]=t[e],a[3*r+1]=t[e+1],a[3*r+2]=t[e+2]}gl.depthMask(!1),drawBuffer(transparentData,transparentShader,a),gl.depthMask(!0)}transparentData.clear()}function drawBuffers(){drawMaterial0(),drawMaterial1(),drawMaterial(),drawColor(),drawTriangle(),drawTransparent()}function draw(){embedded&&(offscreen.width=canvas.width,offscreen.height=canvas.height,setViewport()),gl.clearColor(Background[0],Background[1],Background[2],Background[3]),gl.clear(gl.COLOR_BUFFER_BIT|gl.DEPTH_BUFFER_BIT);for(let t=0;t<P.length;++t)P[t].render();drawBuffers(),embedded&&(context.clearRect(0,0,canvas.width,canvas.height),context.drawImage(offscreen,0,0)),0==wireframe&&(remesh=!1)}function setDimensions(t,e,i,a){let r=t/e,n=1/lastzoom,s=(i/t+viewportshift[0])*lastzoom,o=(a/e+viewportshift[1])*lastzoom;if(orthographic){let t=B[0]-b[0],e=B[1]-b[1];if(t<e*r){let t=.5*e*r*n,i=2*t*s,a=e*n*o;viewParam.xmin=-t-i,viewParam.xmax=t-i,viewParam.ymin=b[1]*n-a,viewParam.ymax=B[1]*n-a}else{let e=.5*t/(r*Zoom),i=t*n*s,a=2*e*o;viewParam.xmin=b[0]*n-i,viewParam.xmax=B[0]*n-i,viewParam.ymin=-e-a,viewParam.ymax=e-a}}else{let t=H*n,e=t*r,i=2*e*s,a=2*t*o;viewParam.xmin=-e-i,viewParam.xmax=e-i,viewParam.ymin=-t-a,viewParam.ymax=t-a}}function setProjection(){setDimensions(canvasWidth,canvasHeight,shift.x,shift.y),(orthographic?mat4.ortho:mat4.frustum)(projMat,viewParam.xmin,viewParam.xmax,viewParam.ymin,viewParam.ymax,-viewParam.zmax,-viewParam.zmin),updateViewMatrix()}function initProjection(){H=-Math.tan(.5*angle)*B[2],center.x=center.y=0,center.z=.5*(b[2]+B[2]),lastzoom=Zoom=Zoom0,viewParam.zmin=b[2],viewParam.zmax=B[2],shift.x=shift.y=0}function setViewport(){gl.viewportWidth=canvasWidth,gl.viewportHeight=canvasHeight,gl.viewp!
ort(0,0,gl.viewportWidth,gl.viewportHeight),gl.scissor(0,0,gl.viewportWidth,gl.viewportHeight)}function setCanvas(){canvas.width=canvasWidth,canvas.height=canvasHeight,embedded&&(offscreen.width=canvasWidth,offscreen.height=canvasHeight),size2=Math.hypot(canvasWidth,canvasHeight),halfCanvasWidth=.5*canvasWidth,halfCanvasHeight=.5*canvasHeight}function setsize(t,e){t>maxViewportWidth&&(t=maxViewportWidth),e>maxViewportHeight&&(e=maxViewportHeight),shift.x*=t/canvasWidth,shift.y*=e/canvasHeight,canvasWidth=t,canvasHeight=e,setCanvas(),setViewport(),home()}function expand(){setsize(canvasWidth*resizeStep+.5,canvasHeight*resizeStep+.5)}function shrink(){setsize(Math.max(canvasWidth/resizeStep+.5,1),Math.max(canvasHeight/resizeStep+.5,1))}function webGLInit(){if(canvas=document.getElementById("Asymptote"),embedded=window.top.document!=document,initGL(),absolute&&!embedded)canvasWidth*=window.devicePixelRatio,canvasHeight*=window.devicePixelRatio;else{canvas.width=Math.max(window.innerWidth-windowTrim,windowTrim),canvas.height=Math.max(window.innerHeight-windowTrim,windowTrim);let t=canvasWidth/canvasHeight;canvas.width>canvas.height*t?canvas.width=Math.min(canvas.height*t,canvas.width):canvas.height=Math.min(canvas.width/t,canvas.height),canvas.width>0&&(canvasWidth=canvas.width),canvas.height>0&&(canvasHeight=canvas.height)}setCanvas(),ArcballFactor=1+8*Math.hypot(viewportmargin[0],viewportmargin[1])/size2,viewportshift[0]/=Zoom0,viewportshift[1]/=Zoom0,gl.enable(gl.BLEND),gl.blendFunc(gl.SRC_ALPHA,gl.ONE_MINUS_SRC_ALPHA),gl.enable(gl.DEPTH_TEST),gl.enable(gl.SCISSOR_TEST),setViewport(),home(),canvas.onmousedown=handleMouseDown,document.onmouseup=handleMouseUpOrTouchEnd,document.onmousemove=handleMouseMove,canvas.onkeydown=handleKey,embedded||enableZoom(),canvas.addEventListener("touchstart",handleTouchStart,!1),canvas.addEventListener("touchend",handleMouseUpOrTouchEnd,!1),canvas.addEventListener("touchcancel",handleMouseUpOrTouchEnd,!1),canvas.addEventListener("touchleave",handleMouseUpOrTouchEnd,!1),canvas.addEve!
ntListener("touchmove",handleTouchMove,!1),document.addEventListener("keydown",handleKey,!1)}let listen=!1;class Align{constructor(t,e){if(this.center=t,e){let t=e[0],i=e[1];this.ct=Math.cos(t),this.st=Math.sin(t),this.cp=Math.cos(i),this.sp=Math.sin(i)}}T0(t){return[t[0]+this.center[0],t[1]+this.center[1],t[2]+this.center[2]]}T(t){let e=t[0],i=t[1],a=t[2],r=e*this.ct+a*this.st;return[r*this.cp-i*this.sp+this.center[0],r*this.sp+i*this.cp+this.center[1],-e*this.st+a*this.ct+this.center[2]]}}function Tcorners(t,e,i){let a=[t(e),t([e[0],e[1],i[2]]),t([e[0],i[1],e[2]]),t([e[0],i[1],i[2]]),t([i[0],e[1],e[2]]),t([i[0],e[1],i[2]]),t([i[0],i[1],e[2]]),t(i)];return[minbound(a),maxbound(a)]}function sphere(t,e,i,r,n){let s,o,h,l,d,c,m=.524670512339254,f=.595936986722291,u=.954967051233925,p=.0820155480083437,v=.996685028842544,g=.0549670512339254,w=.998880711874577,x=.0405017186586849,M=[[[1,0,0],[1,0,m],[f,0,u],[p,0,v],[1,a,0],[1,a,m],[f,a*f,u],[p,a*p,v],[a,1,0],[a,1,m],[a*f,f,u],[a*p,p,v],[0,1,0],[0,1,m],[0,f,u],[0,p,v]],[[p,0,v],[p,a*p,v],[g,0,w],[a*p,p,v],[x,x,1],[.05*a,0,1],[0,p,v],[0,g,w],[0,.05*a,1],[0,0,1]]],b=new Align(t,n);function A(t){let e=Array(t.length);for(let i=0;i<t.length;++i){let a=t[i];e[i]=d([s*a[0],o*a[1],h*a[2]])}return e}n?(l=1,c=0,d=b.T.bind(b)):(l=-1,c=-e,d=b.T0.bind(b));let S=Tcorners(d,[-e,-e,c],[e,e,e]),R=S[0],T=S[1];for(let t=-1;t<=1;t+=2){s=t*e;for(let t=-1;t<=1;t+=2){o=t*e;for(let t=l;t<=1;t+=2){h=t*e;for(let t=0;t<2;++t)P.push(new BezierPatch(A(M[t]),i,r,R,T))}}}}let a=4/3*(Math.sqrt(2)-1);function disk(t,e,i,r,n){let s=1-2*a/3,o=[[1,0,0],[1,-a,0],[a,-1,0],[0,-1,0],[1,a,0],[s,0,0],[0,-s,0],[-a,-1,0],[a,1,0],[0,s,0],[-s,0,0],[-1,-a,0],[0,1,0],[-a,1,0],[-1,a,0],[-1,0,0]],h=new Align(t,n);let l=Tcorners(h.T.bind(h),[-e,-e,0],[e,e,0]);P.push(new BezierPatch(function(t){let i=Array(t.length);for(let a=0;a<t.length;++a){let r=t[a];i[a]=h.T([e*r[0],e*r[1],0])}return i}(o),i,r,l[0],l[1]))}function cylinder(t,e,i,r,n,s,o){let h,l,d=[[1,0,0],[1,0,1/3],[1,0,2/3],[1,0,1],[1,a,0],[1,a,1/3],[1,a,2/3],!
[1,a,1],[a,1,0],[a,1,1/3],[a,1,2/3],[a,1,1],[0,1,0],[0,1,1/3],[0,1,2/3],[0,1,1]],c=new Align(t,s);function m(t){let e=Array(t.length);for(let a=0;a<t.length;++a){let r=t[a];e[a]=c.T([h*r[0],l*r[1],i*r[2]])}return e}let f=Tcorners(c.T.bind(c),[-e,-e,0],[e,e,i]),u=f[0],p=f[1];for(let t=-1;t<=1;t+=2){h=t*e;for(let t=-1;t<=1;t+=2)l=t*e,P.push(new BezierPatch(m(d),r,n,u,p))}if(o){let e=c.T([0,0,i]);P.push(new BezierCurve([t,e],r,n,t,e))}}function rmf(t,e,i,a,r){class n{constructor(t,e,i){this.p=t,this.r=e,this.t=i,this.s=cross(i,e)}}let s=Number.EPSILON*Math.max(abs2(t),abs2(e),abs2(i),abs2(a));function o(r){if(1==r){let r=[a[0]-i[0],a[1]-i[1],a[2]-i[2]];return abs2(r)>s?unit(r):abs2(r=[2*i[0]-e[0]-a[0],2*i[1]-e[1]-a[1],2*i[2]-e[2]-a[2]])>s?unit(r):[a[0]-t[0]+3*(e[0]-i[0]),a[1]-t[1]+3*(e[1]-i[1]),a[2]-t[2]+3*(e[2]-i[2])]}let n=[a[0]-t[0]+3*(e[0]-i[0]),a[1]-t[1]+3*(e[1]-i[1]),a[2]-t[2]+3*(e[2]-i[2])],o=[2*(t[0]+i[0])-4*e[0],2*(t[1]+i[1])-4*e[1],2*(t[2]+i[2])-4*e[2]],h=[e[0]-t[0],e[1]-t[1],e[2]-t[2]],l=r*r,d=[n[0]*l+o[0]*r+h[0],n[1]*l+o[1]*r+h[1],n[2]*l+o[2]*r+h[2]];return abs2(d)>s?unit(d):abs2(d=[n[0]*(l=2*r)+o[0],n[1]*l+o[1],n[2]*l+o[2]])>s?unit(d):unit(n)}let h=Array(r.length),l=[e[0]-t[0],e[1]-t[1],e[2]-t[2]];abs2(l)<s&&abs2(l=[t[0]-2*e[0]+i[0],t[1]-2*e[1]+i[1],t[2]-2*e[2]+i[2]])<s&&(l=[a[0]-t[0]+3*(e[0]-i[0]),a[1]-t[1]+3*(e[1]-i[1]),a[2]-t[2]+3*(e[2]-i[2])]);let d=function(t){let e=cross(t,[0,1,0]),i=Number.EPSILON*abs2(t);return abs2(e)>i?unit(e):abs2(e=cross(t,[0,0,1]))>i?unit(e):[1,0,0]}(l=unit(l));h[0]=new n(t,d,l);for(let s=1;s<r.length;++s){let l=h[s-1],d=r[s],c=1-d,m=c*c,f=m*c,u=3*d;m*=u,c*=u*d;let p=d*d*d,v=[f*t[0]+m*e[0]+c*i[0]+p*a[0],f*t[1]+m*e[1]+c*i[1]+p*a[1],f*t[2]+m*e[2]+c*i[2]+p*a[2]],g=[v[0]-l.p[0],v[1]-l.p[1],v[2]-l.p[2]];if(0!=g[0]||0!=g[1]||0!=g[2]){let t=l.r,e=unit(g),i=l.t,a=dot(e,i),r=[i[0]-2*a*e[0],i[1]-2*a*e[1],i[2]-2*a*e[2]];i=o(d);let c=2*dot(e,t),m=[t[0]-c*e[0],t[1]-c*e[1],t[2]-c*e[2]],f=unit([i[0]-r[0],i[1]-r[1],i[2]-r[2]]),u=2*dot(f,m);m=[m[0]-u*f[0],m[1]-u*f[1],m[2]-u*f[2]],h[s]=new !
n(v,unit(m),unit(i))}else h[s]=h[s-1]}return h}function tube(t,e,i,r,n,s,o){let h=rmf(t[0],t[1],t[2],t[3],[0,1/3,2/3,1]),l=a*e,d=[[e,0],[e,l],[l,e],[0,e]];function c(e,a,o,l){let c=Array(16);for(let i=0;i<4;++i){let r=h[i],n=r.r[0],s=r.s[0],m=n*e+s*a,f=n*o+s*l,u=(n=r.r[1])*e+(s=r.s[1])*a,p=n*o+s*l,v=(n=r.r[2])*e+(s=r.s[2])*a,g=n*o+s*l,w=t[i],x=w[0];w1=w[1],w2=w[2];for(let t=0;t<4;++t){let e=d[t],a=e[0],r=e[1];c[4*i+t]=[m*a+f*r+x,u*a+p*r+w1,v*a+g*r+w2]}}P.push(new BezierPatch(c,i,r,n,s))}c(1,0,0,1),c(0,-1,1,0),c(-1,0,0,-1),c(0,1,-1,0),o&&P.push(new BezierCurve(t,i,r,n,s))}function webGLStart(){0==window.innerWidth||0==window.innerHeight?listen||(listen=!0,window.addEventListener("resize",webGLStart,!1)):(listen&&(window.removeEventListener("resize",webGLStart,!1),listen=!1),webGLInit())}
+let vertex="\nattribute vec3 position;\n#ifdef WIDTH\nattribute float width;\n#endif\n#ifdef NORMAL\nattribute vec3 normal;\n#endif\nattribute float materialIndex;\n#ifdef COLOR\nattribute vec4 color;\n#endif\n\nuniform mat3 normMat;\nuniform mat4 viewMat;\nuniform mat4 projViewMat;\n\n#ifdef NORMAL\n#ifndef ORTHOGRAPHIC\nvarying vec3 ViewPosition;\n#endif\nvarying vec3 Normal;\n#endif\nvarying vec4 diffuse;\nvarying vec3 specular;\nvarying float roughness,metallic,fresnel0;\nvarying vec4 emissive;\n\nstruct Material {\n vec4 diffuse,emissive,specular;\n vec4 parameters;\n};\n\nuniform Material Materials[Nmaterials];\n\nvoid main(void)\n{\n vec4 v=vec4(position,1.0);\n gl_Position=projViewMat*v;\n#ifdef NORMAL\n#ifndef ORTHOGRAPHIC\n ViewPosition=(viewMat*v).xyz;\n#endif \n Normal=normalize(normal*normMat);\n \n Material m;\n#ifdef TRANSPARENT\n m=Materials[int(abs(materialIndex))-1];\n emissive=m.emissive;\n if(materialIndex >= 0.0) {\n diffuse=m.diffuse;\n } else {\n diffuse=color;\n#if nlights == 0\n emissive += color;\n#endif\n }\n#else\n m=Materials[int(materialIndex)];\n emissive=m.emissive;\n#ifdef COLOR\n diffuse=color;\n#if nlights == 0\n emissive += color;\n#endif\n#else\n diffuse=m.diffuse;\n#endif\n#endif\n specular=m.specular.rgb;\n vec4 parameters=m.parameters;\n roughness=1.0-parameters[0];\n metallic=parameters[1];\n fresnel0=parameters[2];\n#else\n emissive=Materials[int(materialIndex)].emissive;\n#endif\n#ifdef WIDTH\n gl_PointSize=width;\n#endif\n}\n",fragment="\n#ifdef NORMAL\n#ifndef ORTHOGRAPHIC\nvarying vec3 ViewPosition;\n#endif\nvarying vec3 Normal;\nvarying vec4 diffuse;\nvarying vec3 specular;\nvarying float roughness,metallic,fresnel0;\n\nfloat Roughness2;\nvec3 normal;\n\nstruct Light {\n vec3 direction;\n vec3 color;\n};\n\nuniform Light Lights[Nlights];\n\nfloat NDF_TRG(vec3 h)\n{\n float ndoth=max(dot(normal,h),0.0);\n float alpha2=Roughness2*Roughness2;\n float denom=ndoth*ndoth*(alpha2-1.0)+1.0;\n return denom != 0.0 !
? alpha2/(denom*denom) : 0.0;\n}\n \nfloat GGX_Geom(vec3 v)\n{\n float ndotv=max(dot(v,normal),0.0);\n float ap=1.0+Roughness2;\n float k=0.125*ap*ap;\n return ndotv/((ndotv*(1.0-k))+k);\n}\n \nfloat Geom(vec3 v, vec3 l)\n{\n return GGX_Geom(v)*GGX_Geom(l);\n}\n \nfloat Fresnel(vec3 h, vec3 v, float fresnel0)\n{\n float a=1.0-max(dot(h,v),0.0);\n float b=a*a;\n return fresnel0+(1.0-fresnel0)*b*b*a;\n}\n \n// physical based shading using UE4 model.\nvec3 BRDF(vec3 viewDirection, vec3 lightDirection)\n{\n vec3 lambertian=diffuse.rgb;\n vec3 h=normalize(lightDirection+viewDirection);\n \n float omegain=max(dot(viewDirection,normal),0.0);\n float omegali=max(dot(lightDirection,normal),0.0);\n \n float D=NDF_TRG(h);\n float G=Geom(viewDirection,lightDirection);\n float F=Fresnel(h,viewDirection,fresnel0);\n \n float denom=4.0*omegain*omegali;\n float rawReflectance=denom > 0.0 ? (D*G)/denom : 0.0;\n \n vec3 dielectric=mix(lambertian,rawReflectance*specular,F);\n vec3 metal=rawReflectance*diffuse.rgb;\n \n return mix(dielectric,metal,metallic);\n}\n#endif\nvarying vec4 emissive;\n \nvoid main(void)\n{\n#if defined(NORMAL) && nlights > 0\n normal=normalize(Normal);\n normal=gl_FrontFacing ? normal : -normal;\n#ifdef ORTHOGRAPHIC\n vec3 viewDir=vec3(0.0,0.0,1.0);\n#else\n vec3 viewDir=-normalize(ViewPosition);\n#endif\n Roughness2=roughness*roughness;\n vec3 color=emissive.rgb;\n for(int i=0; i < nlights; ++i) {\n Light Li=Lights[i];\n vec3 L=Li.direction;\n float cosTheta=max(dot(normal,L),0.0);\n vec3 radiance=cosTheta*Li.color;\n color += BRDF(viewDir,L)*radiance;\n }\n gl_FragColor=vec4(color,diffuse.a);\n#else\n gl_FragColor=emissive;\n#endif\n}\n";!function(t,e){if("object"==typeof exports&&"object"==typeof module)module.exports=e();else if("function"==typeof define&&define.amd)define([],e);else{var i=e();for(var a in i)("object"==typeof exports?exports:t)[a]=i[a]}}("undefined"!=typeof self?self:this,(function(){return function(t)!
{var e={};function i(a){if(e[a])return e[a].exports;var r=e[a]={i:a,l:!1,exports:{}};return t[a].call(r.exports,r,r.exports,i),r.l=!0,r.exports}return i.m=t,i.c=e,i.d=function(t,e,a){i.o(t,e)||Object.defineProperty(t,e,{configurable:!1,enumerable:!0,get:a})},i.n=function(t){var e=t&&t.__esModule?function(){return t.default}:function(){return t};return i.d(e,"a",e),e},i.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},i.p="",i(i.s=1)}([function(t,e,i){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.setMatrixArrayType=function(t){e.ARRAY_TYPE=t},e.toRadian=function(t){return t*r},e.equals=function(t,e){return Math.abs(t-e)<=a*Math.max(1,Math.abs(t),Math.abs(e))};var a=e.EPSILON=1e-6;e.ARRAY_TYPE="undefined"!=typeof Float32Array?Float32Array:Array,e.RANDOM=Math.random;var r=Math.PI/180},function(t,e,i){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.mat4=e.mat3=void 0;var a=n(i(2)),r=n(i(3));function n(t){if(t&&t.__esModule)return t;var e={};if(null!=t)for(var i in t)Object.prototype.hasOwnProperty.call(t,i)&&(e[i]=t[i]);return e.default=t,e}e.mat3=a,e.mat4=r},function(t,e,i){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.create=function(){var t=new a.ARRAY_TYPE(9);return t[0]=1,t[1]=0,t[2]=0,t[3]=0,t[4]=1,t[5]=0,t[6]=0,t[7]=0,t[8]=1,t},e.fromMat4=function(t,e){return t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[4],t[4]=e[5],t[5]=e[6],t[6]=e[8],t[7]=e[9],t[8]=e[10],t},e.invert=function(t,e){var i=e[0],a=e[1],r=e[2],n=e[3],s=e[4],o=e[5],h=e[6],l=e[7],c=e[8],d=c*s-o*l,m=-c*n+o*h,f=l*n-s*h,u=i*d+a*m+r*f;if(!u)return null;return u=1/u,t[0]=d*u,t[1]=(-c*a+r*l)*u,t[2]=(o*a-r*s)*u,t[3]=m*u,t[4]=(c*i-r*h)*u,t[5]=(-o*i+r*n)*u,t[6]=f*u,t[7]=(-l*i+a*h)*u,t[8]=(s*i-a*n)*u,t};var a=function(t){if(t&&t.__esModule)return t;var e={};if(null!=t)for(var i in t)Object.prototype.hasOwnProperty.call(t,i)&&(e[i]=t[i]);return e.default=t,e}(i(0))},function(t,e,i){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.create=function(){var t=new a.ARRAY_TYPE(16);return t[0!
]=1,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=1,t[6]=0,t[7]=0,t[8]=0,t[9]=0,t[10]=1,t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,t},e.identity=function(t){return t[0]=1,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=1,t[6]=0,t[7]=0,t[8]=0,t[9]=0,t[10]=1,t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,t},e.invert=function(t,e){var i=e[0],a=e[1],r=e[2],n=e[3],s=e[4],o=e[5],h=e[6],l=e[7],c=e[8],d=e[9],m=e[10],f=e[11],u=e[12],p=e[13],v=e[14],g=e[15],x=i*o-a*s,w=i*h-r*s,M=i*l-n*s,b=a*h-r*o,S=a*l-n*o,P=r*l-n*h,A=c*p-d*u,y=c*v-m*u,T=c*g-f*u,R=d*v-m*p,D=d*g-f*p,I=m*g-f*v,z=x*I-w*D+M*R+b*T-S*y+P*A;if(!z)return null;return z=1/z,t[0]=(o*I-h*D+l*R)*z,t[1]=(r*D-a*I-n*R)*z,t[2]=(p*P-v*S+g*b)*z,t[3]=(m*S-d*P-f*b)*z,t[4]=(h*T-s*I-l*y)*z,t[5]=(i*I-r*T+n*y)*z,t[6]=(v*M-u*P-g*w)*z,t[7]=(c*P-m*M+f*w)*z,t[8]=(s*D-o*T+l*A)*z,t[9]=(a*T-i*D-n*A)*z,t[10]=(u*S-p*M+g*x)*z,t[11]=(d*M-c*S-f*x)*z,t[12]=(o*y-s*R-h*A)*z,t[13]=(i*R-a*y+r*A)*z,t[14]=(p*w-u*b-v*x)*z,t[15]=(c*b-d*w+m*x)*z,t},e.multiply=r,e.translate=function(t,e,i){var a=i[0],r=i[1],n=i[2],s=void 0,o=void 0,h=void 0,l=void 0,c=void 0,d=void 0,m=void 0,f=void 0,u=void 0,p=void 0,v=void 0,g=void 0;e===t?(t[12]=e[0]*a+e[4]*r+e[8]*n+e[12],t[13]=e[1]*a+e[5]*r+e[9]*n+e[13],t[14]=e[2]*a+e[6]*r+e[10]*n+e[14],t[15]=e[3]*a+e[7]*r+e[11]*n+e[15]):(s=e[0],o=e[1],h=e[2],l=e[3],c=e[4],d=e[5],m=e[6],f=e[7],u=e[8],p=e[9],v=e[10],g=e[11],t[0]=s,t[1]=o,t[2]=h,t[3]=l,t[4]=c,t[5]=d,t[6]=m,t[7]=f,t[8]=u,t[9]=p,t[10]=v,t[11]=g,t[12]=s*a+c*r+u*n+e[12],t[13]=o*a+d*r+p*n+e[13],t[14]=h*a+m*r+v*n+e[14],t[15]=l*a+f*r+g*n+e[15]);return t},e.rotate=function(t,e,i,r){var n,s,o,h,l,c,d,m,f,u,p,v,g,x,w,M,b,S,P,A,y,T,R,D,I=r[0],z=r[1],L=r[2],N=Math.sqrt(I*I+z*z+L*L);if(Math.abs(N)<a.EPSILON)return null;I*=N=1/N,z*=N,L*=N,n=Math.sin(i),s=Math.cos(i),o=1-s,h=e[0],l=e[1],c=e[2],d=e[3],m=e[4],f=e[5],u=e[6],p=e[7],v=e[8],g=e[9],x=e[10],w=e[11],M=I*I*o+s,b=z*I*o+L*n,S=L*I*o-z*n,P=I*z*o-L*n,A=z*z*o+s,y=L*z*o+I*n,T=I*L*o+z*n,R=z*L*o-I*n,D=L*L*o+s,t[0]=h*M+m*b+v*S,t[1]=l*M+f*b+g*S,t[2]=c*M+u*b+x*S,t[3]=d*M+p*b+w*S,t[4]=h*P+m*A+v*y,t[5]=l*P+f*A+g*y,t[6]=c*P+u!
*A+x*y,t[7]=d*P+p*A+w*y,t[8]=h*T+m*R+v*D,t[9]=l*T+f*R+g*D,t[10]=c*T+u*R+x*D,t[11]=d*T+p*R+w*D,e!==t&&(t[12]=e[12],t[13]=e[13],t[14]=e[14],t[15]=e[15]);return t},e.fromTranslation=function(t,e){return t[0]=1,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=1,t[6]=0,t[7]=0,t[8]=0,t[9]=0,t[10]=1,t[11]=0,t[12]=e[0],t[13]=e[1],t[14]=e[2],t[15]=1,t},e.fromRotation=function(t,e,i){var r,n,s,o=i[0],h=i[1],l=i[2],c=Math.sqrt(o*o+h*h+l*l);if(Math.abs(c)<a.EPSILON)return null;return o*=c=1/c,h*=c,l*=c,r=Math.sin(e),n=Math.cos(e),s=1-n,t[0]=o*o*s+n,t[1]=h*o*s+l*r,t[2]=l*o*s-h*r,t[3]=0,t[4]=o*h*s-l*r,t[5]=h*h*s+n,t[6]=l*h*s+o*r,t[7]=0,t[8]=o*l*s+h*r,t[9]=h*l*s-o*r,t[10]=l*l*s+n,t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,t},e.frustum=function(t,e,i,a,r,n,s){var o=1/(i-e),h=1/(r-a),l=1/(n-s);return t[0]=2*n*o,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=2*n*h,t[6]=0,t[7]=0,t[8]=(i+e)*o,t[9]=(r+a)*h,t[10]=(s+n)*l,t[11]=-1,t[12]=0,t[13]=0,t[14]=s*n*2*l,t[15]=0,t},e.ortho=function(t,e,i,a,r,n,s){var o=1/(e-i),h=1/(a-r),l=1/(n-s);return t[0]=-2*o,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=-2*h,t[6]=0,t[7]=0,t[8]=0,t[9]=0,t[10]=2*l,t[11]=0,t[12]=(e+i)*o,t[13]=(r+a)*h,t[14]=(s+n)*l,t[15]=1,t};var a=function(t){if(t&&t.__esModule)return t;var e={};if(null!=t)for(var i in t)Object.prototype.hasOwnProperty.call(t,i)&&(e[i]=t[i]);return e.default=t,e}(i(0));function r(t,e,i){var a=e[0],r=e[1],n=e[2],s=e[3],o=e[4],h=e[5],l=e[6],c=e[7],d=e[8],m=e[9],f=e[10],u=e[11],p=e[12],v=e[13],g=e[14],x=e[15],w=i[0],M=i[1],b=i[2],S=i[3];return t[0]=w*a+M*o+b*d+S*p,t[1]=w*r+M*h+b*m+S*v,t[2]=w*n+M*l+b*f+S*g,t[3]=w*s+M*c+b*u+S*x,w=i[4],M=i[5],b=i[6],S=i[7],t[4]=w*a+M*o+b*d+S*p,t[5]=w*r+M*h+b*m+S*v,t[6]=w*n+M*l+b*f+S*g,t[7]=w*s+M*c+b*u+S*x,w=i[8],M=i[9],b=i[10],S=i[11],t[8]=w*a+M*o+b*d+S*p,t[9]=w*r+M*h+b*m+S*v,t[10]=w*n+M*l+b*f+S*g,t[11]=w*s+M*c+b*u+S*x,w=i[12],M=i[13],b=i[14],S=i[15],t[12]=w*a+M*o+b*d+S*p,t[13]=w*r+M*h+b*m+S*v,t[14]=w*n+M*l+b*f+S*g,t[15]=w*s+M*c+b*u+S*x,t}}])}));let canvasWidth,canvasHeight,canvasWidth0,canvasHeight0,b,B,angle,Zoom0,zoom0,viewportmargin,zoomFactor,zoomPinchFact!
or,zoomPinchCap,zoomStep,shiftHoldDistance,shiftWaitTime,vibrateTime,embedded,canvas,gl,alpha,offscreen,context,maxMaterials,halfCanvasWidth,halfCanvasHeight,Zoom,maxViewportWidth,maxViewportHeight,P=[],Materials=[],Lights=[],Centers=[],Background=[1,1,1,1],absolute=!1,viewportshift=[0,0],nlights=0,Nmaterials=2,materials=[],pixel=.75,zoomRemeshFactor=1.5,FillFactor=.1;const windowTrim=10;let lastZoom,H,zmin,zmax,size2,ArcballFactor,third=1/3,rotMat=mat4.create(),projMat=mat4.create(),viewMat=mat4.create(),projViewMat=mat4.create(),normMat=mat3.create(),viewMat3=mat3.create(),cjMatInv=mat4.create(),T=mat4.create(),center={x:0,y:0,z:0},shift={x:0,y:0},viewParam={xmin:0,xmax:0,ymin:0,ymax:0,zmin:0,zmax:0},remesh=!0,wireframe=0,mouseDownOrTouchActive=!1,lastMouseX=null,lastMouseY=null,touchID=null,Positions=[],Normals=[],Colors=[],Indices=[];class Material{constructor(t,e,i,a,r,n){this.diffuse=t,this.emissive=e,this.specular=i,this.shininess=a,this.metallic=r,this.fresnel0=n}setUniform(t,e){let i=i=>gl.getUniformLocation(t,"Materials["+e+"]."+i);gl.uniform4fv(i("diffuse"),new Float32Array(this.diffuse)),gl.uniform4fv(i("emissive"),new Float32Array(this.emissive)),gl.uniform4fv(i("specular"),new Float32Array(this.specular)),gl.uniform4f(i("parameters"),this.shininess,this.metallic,this.fresnel0,0)}}let indexExt,TRIANGLES,material0Data,material1Data,materialData,colorData,transparentData,triangleData,materialIndex,enumPointLight=1,enumDirectionalLight=2;class Light{constructor(t,e){this.direction=t,this.color=e}setUniform(t,e){let i=i=>gl.getUniformLocation(t,"Lights["+e+"]."+i);gl.uniform3fv(i("direction"),new Float32Array(this.direction)),gl.uniform3fv(i("color"),new Float32Array(this.color))}}function initShaders(){let t=gl.getParameter(gl.MAX_VERTEX_UNIFORM_VECTORS);maxMaterials=Math.floor((t-14)/4),Nmaterials=Math.min(Math.max(Nmaterials,Materials.length),maxMaterials),pixelShader=initShader(["WIDTH"]),materialShader=initShader(["NORMAL"]),colorShader=initShader(["NORMAL","COLOR"]),transparentShader=initShader(["!
NORMAL","COLOR","TRANSPARENT"])}function deleteShaders(){gl.deleteProgram(transparentShader),gl.deleteProgram(colorShader),gl.deleteProgram(materialShader),gl.deleteProgram(pixelShader)}function noGL(){gl||alert("Could not initialize WebGL")}function saveAttributes(){let t=window.top.document.asygl[alpha];t.gl=gl,t.nlights=Lights.length,t.Nmaterials=Nmaterials,t.maxMaterials=maxMaterials,t.pixelShader=pixelShader,t.materialShader=materialShader,t.colorShader=colorShader,t.transparentShader=transparentShader}function restoreAttributes(){let t=window.top.document.asygl[alpha];gl=t.gl,nlights=t.nlights,Nmaterials=t.Nmaterials,maxMaterials=t.maxMaterials,pixelShader=t.pixelShader,materialShader=t.materialShader,colorShader=t.colorShader,transparentShader=t.transparentShader}function initGL(){if(alpha=Background[3]<1,embedded){let t=window.top.document;null==t.asygl&&(t.asygl=Array(2)),context=canvas.getContext("2d"),offscreen=t.offscreen,offscreen||(offscreen=t.createElement("canvas"),t.offscreen=offscreen),t.asygl[alpha]&&t.asygl[alpha].gl?(restoreAttributes(),(Lights.length!=nlights||Math.min(Materials.length,maxMaterials)>Nmaterials)&&(initShaders(),saveAttributes())):(gl=offscreen.getContext("webgl",{alpha:alpha}),gl||noGL(),initShaders(),t.asygl[alpha]={},saveAttributes())}else gl=canvas.getContext("webgl",{alpha:alpha}),gl||noGL(),initShaders();indexExt=gl.getExtension("OES_element_index_uint"),TRIANGLES=gl.TRIANGLES,material0Data=new vertexBuffer(gl.POINTS),material1Data=new vertexBuffer(gl.LINES),materialData=new vertexBuffer,colorData=new vertexBuffer,transparentData=new vertexBuffer,triangleData=new vertexBuffer}function getShader(t,e,i,a=[]){let r=`#version 100\n#ifdef GL_FRAGMENT_PRECISION_HIGH\n precision highp float;\n#else\n precision mediump float;\n#endif\n #define nlights ${0==wireframe?Lights.length:0}\n\n const int Nlights=${Math.max(Lights.length,1)};\n\n #define Nmaterials ${Nmaterials}\n`;orthographic&&(r+="#define ORTHOGRAPHIC\n"),a.forEach(t=>r+="#define "+t+"\n");let n=t.createShader(i!
);return t.shaderSource(n,r+e),t.compileShader(n),t.getShaderParameter(n,t.COMPILE_STATUS)?n:(alert(t.getShaderInfoLog(n)),null)}function registerBuffer(t,e,i,a=gl.ARRAY_BUFFER){return t.length>0&&(0==e&&(e=gl.createBuffer(),i=!0),gl.bindBuffer(a,e),i&&gl.bufferData(a,t,gl.STATIC_DRAW)),e}function drawBuffer(t,e,i=t.indices){if(0==t.indices.length)return;let a=e!=pixelShader;setUniforms(t,e);let r=remesh||t.partial||!t.rendered;t.verticesBuffer=registerBuffer(new Float32Array(t.vertices),t.verticesBuffer,r),gl.vertexAttribPointer(positionAttribute,3,gl.FLOAT,!1,a?24:16,0),a&&Lights.length>0?gl.vertexAttribPointer(normalAttribute,3,gl.FLOAT,!1,24,12):pixel&&gl.vertexAttribPointer(widthAttribute,1,gl.FLOAT,!1,16,12),t.materialsBuffer=registerBuffer(new Int16Array(t.materialIndices),t.materialsBuffer,r),gl.vertexAttribPointer(materialAttribute,1,gl.SHORT,!1,2,0),e!=colorShader&&e!=transparentShader||(t.colorsBuffer=registerBuffer(new Uint8Array(t.colors),t.colorsBuffer,r),gl.vertexAttribPointer(colorAttribute,4,gl.UNSIGNED_BYTE,!0,0,0)),t.indicesBuffer=registerBuffer(indexExt?new Uint32Array(i):new Uint16Array(i),t.indicesBuffer,r,gl.ELEMENT_ARRAY_BUFFER),t.rendered=!0,gl.drawElements(a?wireframe?gl.LINES:t.type:gl.POINTS,i.length,indexExt?gl.UNSIGNED_INT:gl.UNSIGNED_SHORT,0)}class vertexBuffer{constructor(t){this.type=t||TRIANGLES,this.verticesBuffer=0,this.materialsBuffer=0,this.colorsBuffer=0,this.indicesBuffer=0,this.rendered=!1,this.partial=!1,this.clear()}clear(){this.vertices=[],this.materialIndices=[],this.colors=[],this.indices=[],this.nvertices=0,this.materials=[],this.materialTable=[]}vertex(t,e){return this.vertices.push(t[0]),this.vertices.push(t[1]),this.vertices.push(t[2]),this.vertices.push(e[0]),this.vertices.push(e[1]),this.vertices.push(e[2]),this.materialIndices.push(materialIndex),this.nvertices++}Vertex(t,e,i=[0,0,0,0]){return this.vertices.push(t[0]),this.vertices.push(t[1]),this.vertices.push(t[2]),this.vertices.push(e[0]),this.vertices.push(e[1]),this.vertices.push(e[2]),this.materialIndice!
s.push(materialIndex),this.colors.push(i[0]),this.colors.push(i[1]),this.colors.push(i[2]),this.colors.push(i[3]),this.nvertices++}vertex0(t,e){return this.vertices.push(t[0]),this.vertices.push(t[1]),this.vertices.push(t[2]),this.vertices.push(e),this.materialIndices.push(materialIndex),this.nvertices++}iVertex(t,e,i,a=[0,0,0,0]){let r=6*t;this.vertices[r]=e[0],this.vertices[r+1]=e[1],this.vertices[r+2]=e[2],this.vertices[r+3]=i[0],this.vertices[r+4]=i[1],this.vertices[r+5]=i[2],this.materialIndices[t]=materialIndex;let n=4*t;this.colors[n]=a[0],this.colors[n+1]=a[1],this.colors[n+2]=a[2],this.colors[n+3]=a[3],this.indices.push(t)}append(t){append(this.vertices,t.vertices),append(this.materialIndices,t.materialIndices),append(this.colors,t.colors),appendOffset(this.indices,t.indices,this.nvertices),this.nvertices+=t.nvertices}}function append(t,e){let i=t.length,a=e.length;t.length+=a;for(let r=0;r<a;++r)t[i+r]=e[r]}function appendOffset(t,e,i){let a=t.length,r=e.length;t.length+=e.length;for(let n=0;n<r;++n)t[a+n]=e[n]+i}class Geometry{constructor(){this.data=new vertexBuffer,this.Onscreen=!1,this.m=[]}offscreen(t){let e=projViewMat,i=t[0],a=i[0],r=i[1],n=i[2],s=1/(e[3]*a+e[7]*r+e[11]*n+e[15]);this.x=this.X=(e[0]*a+e[4]*r+e[8]*n+e[12])*s,this.y=this.Y=(e[1]*a+e[5]*r+e[9]*n+e[13])*s;for(let i=1,a=t.length;i<a;++i){let a=t[i],r=a[0],n=a[1],s=a[2],o=1/(e[3]*r+e[7]*n+e[11]*s+e[15]),h=(e[0]*r+e[4]*n+e[8]*s+e[12])*o,l=(e[1]*r+e[5]*n+e[9]*s+e[13])*o;h<this.x?this.x=h:h>this.X&&(this.X=h),l<this.y?this.y=l:l>this.Y&&(this.Y=l)}return(this.X<-1.01||this.x>1.01||this.Y<-1.01||this.y>1.01)&&(this.Onscreen=!1,!0)}T(t){let e=this.c[0],i=this.c[1],a=this.c[2],r=t[0]-e,n=t[1]-i,s=t[2]-a;return[r*normMat[0]+n*normMat[3]+s*normMat[6]+e,r*normMat[1]+n*normMat[4]+s*normMat[7]+i,r*normMat[2]+n*normMat[5]+s*normMat[8]+a]}Tcorners(t,e){return[this.T(t),this.T([t[0],t[1],e[2]]),this.T([t[0],e[1],t[2]]),this.T([t[0],e[1],e[2]]),this.T([e[0],t[1],t[2]]),this.T([e[0],t[1],e[2]]),this.T([e[0],e[1],t[2]]),this.T(e)]}setMaterial(t,e){null!
==t.materialTable[this.MaterialIndex]&&(t.materials.length>=Nmaterials&&(t.partial=!0,e()),t.materialTable[this.MaterialIndex]=t.materials.length,t.materials.push(Materials[this.MaterialIndex])),materialIndex=t.materialTable[this.MaterialIndex]}render(){let t;if(this.setMaterialIndex(),0==this.CenterIndex?t=corners(this.Min,this.Max):(this.c=Centers[this.CenterIndex-1],t=this.Tcorners(this.Min,this.Max)),this.offscreen(t))return this.data.clear(),void this.notRendered();let e,i=this.controlpoints;if(0==this.CenterIndex){if(!remesh&&this.Onscreen)return void this.append();e=i}else{let t=i.length;e=Array(t);for(let a=0;a<t;++a)e[a]=this.T(i[a])}let a=orthographic?1:this.Min[2]/B[2],r=pixel*Math.hypot(a*(viewParam.xmax-viewParam.xmin),a*(viewParam.ymax-viewParam.ymin))/size2;this.res2=r*r,this.Epsilon=FillFactor*r,this.data.clear(),this.notRendered(),this.Onscreen=!0,this.process(e)}}class BezierPatch extends Geometry{constructor(t,e,i,a,r,n){super(),this.controlpoints=t,this.Min=a,this.Max=r,this.color=n,this.CenterIndex=e;let s=t.length;if(n){let t=n[0][3]+n[1][3]+n[2][3];this.transparent=16==s||4==s?t+n[3][3]<1020:t<765}else this.transparent=Materials[i].diffuse[3]<1;this.MaterialIndex=i,this.vertex=this.transparent?this.data.Vertex.bind(this.data):this.data.vertex.bind(this.data),this.L2norm(this.controlpoints)}setMaterialIndex(){this.transparent?this.setMaterial(transparentData,drawTransparent):this.color?this.setMaterial(colorData,drawColor):this.setMaterial(materialData,drawMaterial)}L2norm(t){let e=t[0];this.epsilon=0;let i=t.length;for(let a=1;a<i;++a)this.epsilon=Math.max(this.epsilon,abs2([t[a][0]-e[0],t[a][1]-e[1],t[a][2]-e[2]]));this.epsilon*=Number.EPSILON}processTriangle(t){let e=t[0],i=t[1],a=t[2],r=unit(cross([i[0]-e[0],i[1]-e[1],i[2]-e[2]],[a[0]-e[0],a[1]-e[1],a[2]-e[2]]));if(!this.offscreen([e,i,a])){let t,n,s;this.color?(t=this.data.Vertex(e,r,this.color[0]),n=this.data.Vertex(i,r,this.color[1]),s=this.data.Vertex(a,r,this.color[2])):(t=this.vertex(e,r),n=this.vertex(i,r),s=this.vertex(a,r)),0==!
wireframe?(this.data.indices.push(t),this.data.indices.push(n),this.data.indices.push(s)):(this.data.indices.push(t),this.data.indices.push(n),this.data.indices.push(n),this.data.indices.push(s),this.data.indices.push(s),this.data.indices.push(t)),this.append()}}processQuad(t){let e=t[0],i=t[1],a=t[2],r=t[3],n=cross([i[0]-e[0],i[1]-e[1],i[2]-e[2]],[a[0]-i[0],a[1]-i[1],a[2]-i[2]]),s=cross([a[0]-r[0],a[1]-r[1],a[2]-r[2]],[r[0]-e[0],r[1]-e[1],r[2]-e[2]]),o=unit([n[0]+s[0],n[1]+s[1],n[2]+s[2]]);if(!this.offscreen([e,i,a,r])){let t,n,s,h;this.color?(t=this.data.Vertex(e,o,this.color[0]),n=this.data.Vertex(i,o,this.color[1]),s=this.data.Vertex(a,o,this.color[2]),h=this.data.Vertex(r,o,this.color[3])):(t=this.vertex(e,o),n=this.vertex(i,o),s=this.vertex(a,o),h=this.vertex(r,o)),0==wireframe?(this.data.indices.push(t),this.data.indices.push(n),this.data.indices.push(s),this.data.indices.push(t),this.data.indices.push(s),this.data.indices.push(h)):(this.data.indices.push(t),this.data.indices.push(n),this.data.indices.push(n),this.data.indices.push(s),this.data.indices.push(s),this.data.indices.push(h),this.data.indices.push(h),this.data.indices.push(t)),this.append()}}curve(t,e,i,a,r){new BezierCurve([t[e],t[i],t[a],t[r]],0,materialIndex,this.Min,this.Max).render()}process(t){if(this.transparent&&1!=wireframe&&(materialIndex=this.color?-1-materialIndex:1+materialIndex),10==t.length)return this.process3(t);if(3==t.length)return this.processTriangle(t);if(4==t.length)return this.processQuad(t);if(1==wireframe)return this.curve(t,0,4,8,12),this.curve(t,12,13,14,15),this.curve(t,15,11,7,3),void this.curve(t,3,2,1,0);let e=t[0],i=t[3],a=t[12],r=t[15],n=this.normal(i,t[2],t[1],e,t[4],t[8],a);abs2(n)<this.epsilon&&(n=this.normal(i,t[2],t[1],e,t[13],t[14],r),abs2(n)<this.epsilon&&(n=this.normal(r,t[11],t[7],i,t[4],t[8],a)));let s=this.normal(e,t[4],t[8],a,t[13],t[14],r);abs2(s)<this.epsilon&&(s=this.normal(e,t[4],t[8],a,t[11],t[7],i),abs2(s)<this.epsilon&&(s=this.normal(i,t[2],t[1],e,t[13],t[14],r)));let o=this.normal(a,t[13],t[!
14],r,t[11],t[7],i);abs2(o)<this.epsilon&&(o=this.normal(a,t[13],t[14],r,t[2],t[1],e),abs2(o)<this.epsilon&&(o=this.normal(e,t[4],t[8],a,t[11],t[7],i)));let h=this.normal(r,t[11],t[7],i,t[2],t[1],e);if(abs2(h)<this.epsilon&&(h=this.normal(r,t[11],t[7],i,t[4],t[8],a),abs2(h)<this.epsilon&&(h=this.normal(a,t[13],t[14],r,t[2],t[1],e))),this.color){let l=this.color[0],c=this.color[1],d=this.color[2],m=this.color[3],f=this.data.Vertex(e,n,l),u=this.data.Vertex(a,s,c),p=this.data.Vertex(r,o,d),v=this.data.Vertex(i,h,m);this.Render(t,f,u,p,v,e,a,r,i,!1,!1,!1,!1,l,c,d,m)}else{let l=this.vertex(e,n),c=this.vertex(a,s),d=this.vertex(r,o),m=this.vertex(i,h);this.Render(t,l,c,d,m,e,a,r,i,!1,!1,!1,!1)}this.data.indices.length>0&&this.append()}append(){this.transparent?transparentData.append(this.data):this.color?colorData.append(this.data):materialData.append(this.data)}notRendered(){this.transparent?transparentData.rendered=!1:this.color?colorData.rendered=!1:materialData.rendered=!1}Render(t,e,i,a,r,n,s,o,h,l,c,d,m,f,u,p,v){let g=this.Distance(t);if(g[0]<this.res2&&g[1]<this.res2)this.offscreen([n,s,o])||(0==wireframe?(this.data.indices.push(e),this.data.indices.push(i),this.data.indices.push(a)):(this.data.indices.push(e),this.data.indices.push(i),this.data.indices.push(i),this.data.indices.push(a))),this.offscreen([n,o,h])||(0==wireframe?(this.data.indices.push(e),this.data.indices.push(a),this.data.indices.push(r)):(this.data.indices.push(a),this.data.indices.push(r),this.data.indices.push(r),this.data.indices.push(e)));else{if(this.offscreen(t))return;let x=t[0],w=t[3],M=t[12],b=t[15];if(g[0]<this.res2){let g=new Split3(x,t[1],t[2],w),S=new Split3(t[4],t[5],t[6],t[7]),P=new Split3(t[8],t[9],t[10],t[11]),A=new Split3(M,t[13],t[14],b),y=[x,g.m0,g.m3,g.m5,t[4],S.m0,S.m3,S.m5,t[8],P.m0,P.m3,P.m5,M,A.m0,A.m3,A.m5],T=[g.m5,g.m4,g.m2,w,S.m5,S.m4,S.m2,t[7],P.m5,P.m4,P.m2,t[11],A.m5,A.m4,A.m2,b],R=this.normal(y[12],y[13],y[14],y[15],y[11],y[7],y[3]);abs2(R)<=this.epsilon&&(R=this.normal(y[12],y[13],y[14],y[15],y[2],y[1],y[0]),a!
bs2(R)<=this.epsilon&&(R=this.normal(y[0],y[4],y[8],y[12],y[11],y[7],y[3])));let D=this.normal(T[3],T[2],T[1],T[0],T[4],T[8],T[12]);abs2(D)<=this.epsilon&&(D=this.normal(T[3],T[2],T[1],T[0],T[13],T[14],T[15]),abs2(D)<=this.epsilon&&(D=this.normal(T[15],T[11],T[7],T[3],T[4],T[8],T[12])));let I=this.Epsilon,z=[.5*(s[0]+o[0]),.5*(s[1]+o[1]),.5*(s[2]+o[2])];if(!c)if(c=Straightness(M,t[13],t[14],b)<this.res2){let t=unit(this.differential(T[12],T[8],T[4],T[0]));z=[z[0]-I*t[0],z[1]-I*t[1],z[2]-I*t[2]]}else z=y[15];let L=[.5*(h[0]+n[0]),.5*(h[1]+n[1]),.5*(h[2]+n[2])];if(!m)if(m=Straightness(x,t[1],t[2],w)<this.res2){let t=unit(this.differential(y[3],y[7],y[11],y[15]));L=[L[0]-I*t[0],L[1]-I*t[1],L[2]-I*t[2]]}else L=T[0];if(f){let t=Array(4),g=Array(4);for(let e=0;e<4;++e)t[e]=.5*(u[e]+p[e]),g[e]=.5*(v[e]+f[e]);let x=this.data.Vertex(z,R,t),w=this.data.Vertex(L,D,g);this.Render(y,e,i,x,w,n,s,z,L,l,c,!1,m,f,u,t,g),this.Render(T,w,x,a,r,L,z,o,h,!1,c,d,m,g,t,p,v)}else{let t=this.vertex(z,R),f=this.vertex(L,D);this.Render(y,e,i,t,f,n,s,z,L,l,c,!1,m),this.Render(T,f,t,a,r,L,z,o,h,!1,c,d,m)}return}if(g[1]<this.res2){let g=new Split3(x,t[4],t[8],M),S=new Split3(t[1],t[5],t[9],t[13]),P=new Split3(t[2],t[6],t[10],t[14]),A=new Split3(w,t[7],t[11],b),y=[x,t[1],t[2],w,g.m0,S.m0,P.m0,A.m0,g.m3,S.m3,P.m3,A.m3,g.m5,S.m5,P.m5,A.m5],T=[g.m5,S.m5,P.m5,A.m5,g.m4,S.m4,P.m4,A.m4,g.m2,S.m2,P.m2,A.m2,M,t[13],t[14],b],R=this.normal(y[0],y[4],y[8],y[12],y[13],y[14],y[15]);abs2(R)<=this.epsilon&&(R=this.normal(y[0],y[4],y[8],y[12],y[11],y[7],y[3]),abs2(R)<=this.epsilon&&(R=this.normal(y[3],y[2],y[1],y[0],y[13],y[14],y[15])));let D=this.normal(T[15],T[11],T[7],T[3],T[2],T[1],T[0]);abs2(D)<=this.epsilon&&(D=this.normal(T[15],T[11],T[7],T[3],T[4],T[8],T[12]),abs2(D)<=this.epsilon&&(D=this.normal(T[12],T[13],T[14],T[15],T[2],T[1],T[0])));let I=this.Epsilon,z=[.5*(n[0]+s[0]),.5*(n[1]+s[1]),.5*(n[2]+s[2])];if(!l)if(l=Straightness(x,t[4],t[8],M)<this.res2){let t=unit(this.differential(T[0],T[1],T[2],T[3]));z=[z[0]-I*t[0],z[1]-I*t[1],z[2]-I*t[2]]}else z=y!
[12];let L=[.5*(o[0]+h[0]),.5*(o[1]+h[1]),.5*(o[2]+h[2])];if(!d)if(d=Straightness(b,t[11],t[7],w)<this.res2){let t=unit(this.differential(y[15],y[14],y[13],y[12]));L=[L[0]-I*t[0],L[1]-I*t[1],L[2]-I*t[2]]}else L=T[3];if(f){let t=Array(4),g=Array(4);for(let e=0;e<4;++e)t[e]=.5*(f[e]+u[e]),g[e]=.5*(p[e]+v[e]);let x=this.data.Vertex(z,R,t),w=this.data.Vertex(L,D,g);this.Render(y,e,x,w,r,n,z,L,h,l,!1,d,m,f,t,g,v),this.Render(T,x,i,a,w,z,s,o,L,l,c,d,!1,t,u,p,g)}else{let t=this.vertex(z,R),f=this.vertex(L,D);this.Render(y,e,t,f,r,n,z,L,h,l,!1,d,m),this.Render(T,t,i,a,f,z,s,o,L,l,c,d,!1)}return}let S=new Split3(x,t[1],t[2],w),P=new Split3(t[4],t[5],t[6],t[7]),A=new Split3(t[8],t[9],t[10],t[11]),y=new Split3(M,t[13],t[14],b),T=new Split3(x,t[4],t[8],M),R=new Split3(S.m0,P.m0,A.m0,y.m0),D=new Split3(S.m3,P.m3,A.m3,y.m3),I=new Split3(S.m5,P.m5,A.m5,y.m5),z=new Split3(S.m4,P.m4,A.m4,y.m4),L=new Split3(S.m2,P.m2,A.m2,y.m2),N=new Split3(w,t[7],t[11],b),E=[x,S.m0,S.m3,S.m5,T.m0,R.m0,D.m0,I.m0,T.m3,R.m3,D.m3,I.m3,T.m5,R.m5,D.m5,I.m5],O=[T.m5,R.m5,D.m5,I.m5,T.m4,R.m4,D.m4,I.m4,T.m2,R.m2,D.m2,I.m2,M,y.m0,y.m3,y.m5],V=[I.m5,z.m5,L.m5,N.m5,I.m4,z.m4,L.m4,N.m4,I.m2,z.m2,L.m2,N.m2,y.m5,y.m4,y.m2,b],C=[S.m5,S.m4,S.m2,w,I.m0,z.m0,L.m0,N.m0,I.m3,z.m3,L.m3,N.m3,I.m5,z.m5,L.m5,N.m5],B=E[15],H=this.normal(E[0],E[4],E[8],E[12],E[13],E[14],E[15]);abs2(H)<this.epsilon&&(H=this.normal(E[0],E[4],E[8],E[12],E[11],E[7],E[3]),abs2(H)<this.epsilon&&(H=this.normal(E[3],E[2],E[1],E[0],E[13],E[14],E[15])));let _=this.normal(O[12],O[13],O[14],O[15],O[11],O[7],O[3]);abs2(_)<this.epsilon&&(_=this.normal(O[12],O[13],O[14],O[15],O[2],O[1],O[0]),abs2(_)<this.epsilon&&(_=this.normal(O[0],O[4],O[8],O[12],O[11],O[7],O[3])));let F=this.normal(V[15],V[11],V[7],V[3],V[2],V[1],V[0]);abs2(F)<this.epsilon&&(F=this.normal(V[15],V[11],V[7],V[3],V[4],V[8],V[12]),abs2(F)<this.epsilon&&(F=this.normal(V[12],V[13],V[14],V[15],V[2],V[1],V[0])));let G=this.normal(C[3],C[2],C[1],C[0],C[4],C[8],C[12]);abs2(G)<this.epsilon&&(G=this.normal(C[3],C[2],C[1],C[0],C[13],C[14],C[15]),!
abs2(G)<this.epsilon&&(G=this.normal(C[15],C[11],C[7],C[3],C[4],C[8],C[12])));let W=this.normal(V[3],V[2],V[1],B,V[4],V[8],V[12]),U=this.Epsilon,Z=[.5*(n[0]+s[0]),.5*(n[1]+s[1]),.5*(n[2]+s[2])];if(!l)if(l=Straightness(x,t[4],t[8],M)<this.res2){let t=unit(this.differential(O[0],O[1],O[2],O[3]));Z=[Z[0]-U*t[0],Z[1]-U*t[1],Z[2]-U*t[2]]}else Z=E[12];let j=[.5*(s[0]+o[0]),.5*(s[1]+o[1]),.5*(s[2]+o[2])];if(!c)if(c=Straightness(M,t[13],t[14],b)<this.res2){let t=unit(this.differential(V[12],V[8],V[4],V[0]));j=[j[0]-U*t[0],j[1]-U*t[1],j[2]-U*t[2]]}else j=O[15];let k=[.5*(o[0]+h[0]),.5*(o[1]+h[1]),.5*(o[2]+h[2])];if(!d)if(d=Straightness(b,t[11],t[7],w)<this.res2){let t=unit(this.differential(C[15],C[14],C[13],C[12]));k=[k[0]-U*t[0],k[1]-U*t[1],k[2]-U*t[2]]}else k=V[3];let Y=[.5*(h[0]+n[0]),.5*(h[1]+n[1]),.5*(h[2]+n[2])];if(!m)if(m=Straightness(x,t[1],t[2],w)<this.res2){let t=unit(this.differential(E[3],E[7],E[11],E[15]));Y=[Y[0]-U*t[0],Y[1]-U*t[1],Y[2]-U*t[2]]}else Y=C[0];if(f){let t=Array(4),g=Array(4),x=Array(4),w=Array(4),M=Array(4);for(let e=0;e<4;++e)t[e]=.5*(f[e]+u[e]),g[e]=.5*(u[e]+p[e]),x[e]=.5*(p[e]+v[e]),w[e]=.5*(v[e]+f[e]),M[e]=.5*(t[e]+x[e]);let b=this.data.Vertex(Z,H,t),S=this.data.Vertex(j,_,g),P=this.data.Vertex(k,F,x),A=this.data.Vertex(Y,G,w),y=this.data.Vertex(B,W,M);this.Render(E,e,b,y,A,n,Z,B,Y,l,!1,!1,m,f,t,M,w),this.Render(O,b,i,S,y,Z,s,j,B,l,c,!1,!1,t,u,g,M),this.Render(V,y,S,a,P,B,j,o,k,!1,c,d,!1,M,g,p,x),this.Render(C,A,y,P,r,Y,B,k,h,!1,!1,d,m,w,M,x,v)}else{let t=this.vertex(Z,H),f=this.vertex(j,_),u=this.vertex(k,F),p=this.vertex(Y,G),v=this.vertex(B,W);this.Render(E,e,t,v,p,n,Z,B,Y,l,!1,!1,m),this.Render(O,t,i,f,v,Z,s,j,B,l,c,!1,!1),this.Render(V,v,f,a,u,B,j,o,k,!1,c,d,!1),this.Render(C,p,v,u,r,Y,B,k,h,!1,!1,d,m)}}}process3(t){if(1==wireframe)return this.curve(t,0,1,3,6),this.curve(t,6,7,8,9),void this.curve(t,9,5,2,0);let e=t[0],i=t[6],a=t[9],r=this.normal(a,t[5],t[2],e,t[1],t[3],i),n=this.normal(e,t[1],t[3],i,t[7],t[8],a),s=this.normal(i,t[7],t[8],a,t[5],t[2],e);if(this.color){let o=this.color!
[0],h=this.color[1],l=this.color[2],c=this.data.Vertex(e,r,o),d=this.data.Vertex(i,n,h),m=this.data.Vertex(a,s,l);this.Render3(t,c,d,m,e,i,a,!1,!1,!1,o,h,l)}else{let o=this.vertex(e,r),h=this.vertex(i,n),l=this.vertex(a,s);this.Render3(t,o,h,l,e,i,a,!1,!1,!1)}this.data.indices.length>0&&this.append()}Render3(t,e,i,a,r,n,s,o,h,l,c,d,m){if(this.Distance3(t)<this.res2)this.offscreen([r,n,s])||(0==wireframe?(this.data.indices.push(e),this.data.indices.push(i),this.data.indices.push(a)):(this.data.indices.push(e),this.data.indices.push(i),this.data.indices.push(i),this.data.indices.push(a),this.data.indices.push(a),this.data.indices.push(e)));else{if(this.offscreen(t))return;let f=t[0],u=t[1],p=t[2],v=t[3],g=t[4],x=t[5],w=t[6],M=t[7],b=t[8],S=t[9],P=[.5*(S[0]+x[0]),.5*(S[1]+x[1]),.5*(S[2]+x[2])],A=[.5*(S[0]+b[0]),.5*(S[1]+b[1]),.5*(S[2]+b[2])],y=[.5*(x[0]+p[0]),.5*(x[1]+p[1]),.5*(x[2]+p[2])],T=[.5*(b[0]+g[0]),.5*(b[1]+g[1]),.5*(b[2]+g[2])],R=[.5*(b[0]+M[0]),.5*(b[1]+M[1]),.5*(b[2]+M[2])],D=[.5*(p[0]+g[0]),.5*(p[1]+g[1]),.5*(p[2]+g[2])],I=[.5*(p[0]+f[0]),.5*(p[1]+f[1]),.5*(p[2]+f[2])],z=[.5*(g[0]+v[0]),.5*(g[1]+v[1]),.5*(g[2]+v[2])],L=[.5*(M[0]+w[0]),.5*(M[1]+w[1]),.5*(M[2]+w[2])],N=[.5*(f[0]+u[0]),.5*(f[1]+u[1]),.5*(f[2]+u[2])],E=[.5*(u[0]+v[0]),.5*(u[1]+v[1]),.5*(u[2]+v[2])],O=[.5*(v[0]+w[0]),.5*(v[1]+w[1]),.5*(v[2]+w[2])],V=[.5*(P[0]+y[0]),.5*(P[1]+y[1]),.5*(P[2]+y[2])],C=[.5*(A[0]+R[0]),.5*(A[1]+R[1]),.5*(A[2]+R[2])],B=[.5*(y[0]+I[0]),.5*(y[1]+I[1]),.5*(y[2]+I[2])],H=[.5*T[0]+.25*(g[0]+u[0]),.5*T[1]+.25*(g[1]+u[1]),.5*T[2]+.25*(g[2]+u[2])],_=[.5*(R[0]+L[0]),.5*(R[1]+L[1]),.5*(R[2]+L[2])],F=[.5*D[0]+.25*(g[0]+M[0]),.5*D[1]+.25*(g[1]+M[1]),.5*D[2]+.25*(g[2]+M[2])],G=[.25*(x[0]+g[0])+.5*z[0],.25*(x[1]+g[1])+.5*z[1],.25*(x[2]+g[2])+.5*z[2]],W=[.5*(N[0]+E[0]),.5*(N[1]+E[1]),.5*(N[2]+E[2])],U=[.5*(E[0]+O[0]),.5*(E[1]+O[1]),.5*(E[2]+O[2])],Z=[.5*(F[0]+W[0]),.5*(F[1]+W[1]),.5*(F[2]+W[2])],j=[.5*(F[0]+U[0]),.5*(F[1]+U[1]),.5*(F[2]+U[2])],k=[.5*(W[0]+U[0]),.5*(W[1]+U[1]),.5*(W[2]+U[2])],Y=[.5*(G[0]+_[0]),.5*(G[1]+_[1]),.5*(!
G[2]+_[2])],X=[.5*(C[0]+G[0]),.5*(C[1]+G[1]),.5*(C[2]+G[2])],q=[.5*(C[0]+_[0]),.5*(C[1]+_[1]),.5*(C[2]+_[2])],K=[.5*(V[0]+H[0]),.5*(V[1]+H[1]),.5*(V[2]+H[2])],$=[.5*(B[0]+H[0]),.5*(B[1]+H[1]),.5*(B[2]+H[2])],Q=[.5*(V[0]+B[0]),.5*(V[1]+B[1]),.5*(V[2]+B[2])],J=[f,N,I,W,[.5*(D[0]+N[0]),.5*(D[1]+N[1]),.5*(D[2]+N[2])],B,k,Z,$,Q],tt=[k,U,j,O,[.5*(z[0]+L[0]),.5*(z[1]+L[1]),.5*(z[2]+L[2])],Y,w,L,_,q],et=[Q,K,V,X,[.5*(P[0]+T[0]),.5*(P[1]+T[1]),.5*(P[2]+T[2])],P,q,C,A,S],it=[q,X,Y,K,[.25*(y[0]+R[0]+E[0]+g[0]),.25*(y[1]+R[1]+E[1]+g[1]),.25*(y[2]+R[2]+E[2]+g[2])],j,Q,$,Z,k],at=this.normal(k,j,Y,q,X,K,Q),rt=this.normal(q,X,K,Q,$,Z,k),nt=this.normal(Q,$,Z,k,j,Y,q),st=this.Epsilon,ot=[.5*(n[0]+s[0]),.5*(n[1]+s[1]),.5*(n[2]+s[2])];if(!o)if(o=Straightness(w,M,b,S)<this.res2){let t=unit(this.sumdifferential(it[0],it[2],it[5],it[9],it[1],it[3],it[6]));ot=[ot[0]-st*t[0],ot[1]-st*t[1],ot[2]-st*t[2]]}else ot=q;let ht=[.5*(s[0]+r[0]),.5*(s[1]+r[1]),.5*(s[2]+r[2])];if(!h)if(h=Straightness(f,p,x,S)<this.res2){let t=unit(this.sumdifferential(it[6],it[3],it[1],it[0],it[7],it[8],it[9]));ht=[ht[0]-st*t[0],ht[1]-st*t[1],ht[2]-st*t[2]]}else ht=Q;let lt=[.5*(r[0]+n[0]),.5*(r[1]+n[1]),.5*(r[2]+n[2])];if(!l)if(l=Straightness(f,u,v,w)<this.res2){let t=unit(this.sumdifferential(it[9],it[8],it[7],it[6],it[5],it[2],it[0]));lt=[lt[0]-st*t[0],lt[1]-st*t[1],lt[2]-st*t[2]]}else lt=k;if(c){let t=Array(4),f=Array(4),u=Array(4);for(let e=0;e<4;++e)t[e]=.5*(d[e]+m[e]),f[e]=.5*(m[e]+c[e]),u[e]=.5*(c[e]+d[e]);let p=this.data.Vertex(ot,at,t),v=this.data.Vertex(ht,rt,f),g=this.data.Vertex(lt,nt,u);this.Render3(J,e,g,v,r,lt,ht,!1,h,l,c,u,f),this.Render3(tt,g,i,p,lt,n,ot,o,!1,l,u,d,t),this.Render3(et,v,p,a,ht,ot,s,o,h,!1,f,t,m),this.Render3(it,p,v,g,ot,ht,lt,!1,!1,!1,t,f,u)}else{let t=this.vertex(ot,at),c=this.vertex(ht,rt),d=this.vertex(lt,nt);this.Render3(J,e,d,c,r,lt,ht,!1,h,l),this.Render3(tt,d,i,t,lt,n,ot,o,!1,l),this.Render3(et,c,t,a,ht,ot,s,o,h,!1),this.Render3(it,t,c,d,ot,ht,lt,!1,!1,!1)}}}Distance(t){let e=t[0],i=t[3],a=t[12],r=t[15],n=Flatness(e,a,i,r);!
n=Math.max(Straightness(e,t[4],t[8],a)),n=Math.max(n,Straightness(t[1],t[5],t[9],t[13])),n=Math.max(n,Straightness(i,t[7],t[11],r)),n=Math.max(n,Straightness(t[2],t[6],t[10],t[14]));let s=Flatness(e,i,a,r);return s=Math.max(s,Straightness(e,t[1],t[2],i)),s=Math.max(s,Straightness(t[4],t[5],t[6],t[7])),s=Math.max(s,Straightness(t[8],t[9],t[10],t[11])),s=Math.max(s,Straightness(a,t[13],t[14],r)),[n,s]}Distance3(t){let e=t[0],i=t[4],a=t[6],r=t[9],n=abs2([(e[0]+a[0]+r[0])*third-i[0],(e[1]+a[1]+r[1])*third-i[1],(e[2]+a[2]+r[2])*third-i[2]]);return n=Math.max(n,Straightness(e,t[1],t[3],a)),n=Math.max(n,Straightness(e,t[2],t[5],r)),Math.max(n,Straightness(a,t[7],t[8],r))}differential(t,e,i,a){let r=[3*(e[0]-t[0]),3*(e[1]-t[1]),3*(e[2]-t[2])];return abs2(r)>this.epsilon?r:(r=bezierPP(t,e,i),abs2(r)>this.epsilon?r:bezierPPP(t,e,i,a))}sumdifferential(t,e,i,a,r,n,s){let o=this.differential(t,e,i,a),h=this.differential(t,r,n,s);return[o[0]+h[0],o[1]+h[1],o[2]+h[2]]}normal(t,e,i,a,r,n,s){let o=3*(r[0]-a[0]),h=3*(r[1]-a[1]),l=3*(r[2]-a[2]),c=3*(i[0]-a[0]),d=3*(i[1]-a[1]),m=3*(i[2]-a[2]),f=[h*m-l*d,l*c-o*m,o*d-h*c];if(abs2(f)>this.epsilon)return f;let u=[c,d,m],p=[o,h,l],v=bezierPP(a,i,e),g=bezierPP(a,r,n),x=cross(g,u),w=cross(p,v);if(f=[x[0]+w[0],x[1]+w[1],x[2]+w[2]],abs2(f)>this.epsilon)return f;let M=bezierPPP(a,i,e,t),b=bezierPPP(a,r,n,s);x=cross(p,M),w=cross(b,u);let S=cross(g,v);return f=[x[0]+w[0]+S[0],x[1]+w[1]+S[1],x[2]+w[2]+S[2]],abs2(f)>this.epsilon?f:(x=cross(b,v),w=cross(g,M),f=[x[0]+w[0],x[1]+w[1],x[2]+w[2]],abs2(f)>this.epsilon?f:cross(b,M))}}class BezierCurve extends Geometry{constructor(t,e,i,a,r){super(),this.controlpoints=t,this.Min=a,this.Max=r,this.CenterIndex=e,this.MaterialIndex=i}setMaterialIndex(){this.setMaterial(material1Data,drawMaterial1)}processLine(t){let e=t[0],i=t[1];if(!this.offscreen([e,i])){let t=[0,0,1];this.data.indices.push(this.data.vertex(e,t)),this.data.indices.push(this.data.vertex(i,t)),this.append()}}process(t){if(2==t.length)return this.processLine(t);let e=t[0],i=t[1],a=t[2],r=t[3!
],n=this..normal(bezierP(e,i),bezierPP(e,i,a)),s=this.normal(bezierP(a,r),bezierPP(r,a,i)),o=this.data.vertex(e,n),h=this.data.vertex(r,s);this.Render(t,o,h),this.data.indices.length>0&&this.append()}append(){material1Data.append(this.data)}notRendered(){material1Data.rendered=!1}Render(t,e,i){let a=t[0],r=t[1],n=t[2],s=t[3];if(Straightness(a,r,n,s)<this.res2)this.offscreen([a,s])||(this.data.indices.push(e),this.data.indices.push(i));else{if(this.offscreen(t))return;let o=[.5*(a[0]+r[0]),.5*(a[1]+r[1]),.5*(a[2]+r[2])],h=[.5*(r[0]+n[0]),.5*(r[1]+n[1]),.5*(r[2]+n[2])],l=[.5*(n[0]+s[0]),.5*(n[1]+s[1]),.5*(n[2]+s[2])],c=[.5*(o[0]+h[0]),.5*(o[1]+h[1]),.5*(o[2]+h[2])],d=[.5*(h[0]+l[0]),.5*(h[1]+l[1]),.5*(h[2]+l[2])],m=[.5*(c[0]+d[0]),.5*(c[1]+d[1]),.5*(c[2]+d[2])],f=[a,o,c,m],u=[m,d,l,s],p=this.normal(bezierPh(a,r,n,s),bezierPPh(a,r,n,s)),v=this.data.vertex(m,p);this.Render(f,e,v),this.Render(u,v,i)}}normal(t,e){let i=dot(t,t),a=dot(t,e);return[i*e[0]-a*t[0],i*e[1]-a*t[1],i*e[2]-a*t[2]]}}class Pixel extends Geometry{constructor(t,e,i,a,r){super(),this.controlpoint=t,this.width=e,this.CenterIndex=0,this.MaterialIndex=i,this.Min=a,this.Max=r}setMaterialIndex(){this.setMaterial(material0Data,drawMaterial0)}process(t){this.data.indices.push(this.data.vertex0(this.controlpoint,this.width)),this.append()}append(){material0Data.append(this.data)}notRendered(){material0Data.rendered=!1}}class Triangles extends Geometry{constructor(t,e,i){super(),this.CenterIndex=0,this.MaterialIndex=t,this.Min=e,this.Max=i,this.Positions=Positions,this.Normals=Normals,this.Colors=Colors,this.Indices=Indices,Positions=[],Normals=[],Colors=[],Indices=[],this.transparent=Materials[t].diffuse[3]<1}setMaterialIndex(){this.transparent?this.setMaterial(transparentData,drawTransparent):this.setMaterial(triangleData,drawTriangle)}process(t){materialIndex=this.Colors.length>0?-1-materialIndex:1+materialIndex;for(let t=0,e=this.Indices.length;t<e;++t){let e=this.Indices[t],i=e[0],a=this.Positions[i[0]],r=this.Positions[i[1]],n=this.Positions[i[2]];if(!t!
his.offscreen([a,r,n])){let t=e.length>1?e[1]:i;if(t&&0!=t.length||(t=i),this.Colors.length>0){let s=e.length>2?e[2]:i;s&&0!=s.length||(s=i);let o=this.Colors[s[0]],h=this.Colors[s[1]],l=this.Colors[s[2]];this.transparent|=o[3]+h[3]+l[3]<765,0==wireframe?(this.data.iVertex(i[0],a,this.Normals[t[0]],o),this.data.iVertex(i[1],r,this.Normals[t[1]],h),this.data.iVertex(i[2],n,this.Normals[t[2]],l)):(this.data.iVertex(i[0],a,this.Normals[t[0]],o),this.data.iVertex(i[1],r,this.Normals[t[1]],h),this.data.iVertex(i[1],r,this.Normals[t[1]],h),this.data.iVertex(i[2],n,this.Normals[t[2]],l),this.data.iVertex(i[2],n,this.Normals[t[2]],l),this.data.iVertex(i[0],a,this.Normals[t[0]],o))}else 0==wireframe?(this.data.iVertex(i[0],a,this.Normals[t[0]]),this.data.iVertex(i[1],r,this.Normals[t[1]]),this.data.iVertex(i[2],n,this.Normals[t[2]])):(this.data.iVertex(i[0],a,this.Normals[t[0]]),this.data.iVertex(i[1],r,this.Normals[t[1]]),this.data.iVertex(i[1],r,this.Normals[t[1]]),this.data.iVertex(i[2],n,this.Normals[t[2]]),this.data.iVertex(i[2],n,this.Normals[t[2]]),this.data.iVertex(i[0],a,this.Normals[t[0]]))}}this.data.nvertices=this.Positions.length,this.data.indices.length>0&&this.append()}append(){this.transparent?transparentData.append(this.data):triangleData.append(this.data)}notRendered(){this.transparent?transparentData.rendered=!1:triangleData.rendered=!1}}function redraw(){initProjection(),setProjection(),remesh=!0,draw()}function home(){mat4.identity(rotMat),redraw()}let positionAttribute=0,normalAttribute=1,materialAttribute=2,colorAttribute=3,widthAttribute=4;function initShader(t=[]){let e=getShader(gl,vertex,gl.VERTEX_SHADER,t),i=getShader(gl,fragment,gl.FRAGMENT_SHADER,t),a=gl.createProgram();return gl.attachShader(a,e),gl.attachShader(a,i),gl.bindAttribLocation(a,positionAttribute,"position"),gl.bindAttribLocation(a,normalAttribute,"normal"),gl.bindAttribLocation(a,materialAttribute,"materialIndex"),gl.bindAttribLocation(a,colorAttribute,"color"),gl.bindAttribLocation(a,widthAttribute,"width"),gl.linkProgram(a),g!
l.getProgramParameter(a,gl.LINK_STATUS)||alert("Could not initialize shaders"),a}class Split3{constructor(t,e,i,a){this.m0=[.5*(t[0]+e[0]),.5*(t[1]+e[1]),.5*(t[2]+e[2])];let r=.5*(e[0]+i[0]),n=.5*(e[1]+i[1]),s=.5*(e[2]+i[2]);this.m2=[.5*(i[0]+a[0]),.5*(i[1]+a[1]),.5*(i[2]+a[2])],this.m3=[.5*(this.m0[0]+r),.5*(this.m0[1]+n),.5*(this.m0[2]+s)],this.m4=[.5*(r+this.m2[0]),.5*(n+this.m2[1]),.5*(s+this.m2[2])],this.m5=[.5*(this.m3[0]+this.m4[0]),.5*(this.m3[1]+this.m4[1]),.5*(this.m3[2]+this.m4[2])]}}function unit(t){let e=1/(Math.sqrt(t[0]*t[0]+t[1]*t[1]+t[2]*t[2])||1);return[t[0]*e,t[1]*e,t[2]*e]}function abs2(t){return t[0]*t[0]+t[1]*t[1]+t[2]*t[2]}function dot(t,e){return t[0]*e[0]+t[1]*e[1]+t[2]*e[2]}function cross(t,e){return[t[1]*e[2]-t[2]*e[1],t[2]*e[0]-t[0]*e[2],t[0]*e[1]-t[1]*e[0]]}function bezierP(t,e){return[e[0]-t[0],e[1]-t[1],e[2]-t[2]]}function bezierPP(t,e,i){return[3*(t[0]+i[0])-6*e[0],3*(t[1]+i[1])-6*e[1],3*(t[2]+i[2])-6*e[2]]}function bezierPPP(t,e,i,a){return[a[0]-t[0]+3*(e[0]-i[0]),a[1]-t[1]+3*(e[1]-i[1]),a[2]-t[2]+3*(e[2]-i[2])]}function bezierPh(t,e,i,a){return[i[0]+a[0]-t[0]-e[0],i[1]+a[1]-t[1]-e[1],i[2]+a[2]-t[2]-e[2]]}function bezierPPh(t,e,i,a){return[3*t[0]-5*e[0]+i[0]+a[0],3*t[1]-5*e[1]+i[1]+a[1],3*t[2]-5*e[2]+i[2]+a[2]]}function Straightness(t,e,i,a){let r=[third*(a[0]-t[0]),third*(a[1]-t[1]),third*(a[2]-t[2])];return Math.max(abs2([e[0]-r[0]-t[0],e[1]-r[1]-t[1],e[2]-r[2]-t[2]]),abs2([a[0]-r[0]-i[0],a[1]-r[1]-i[1],a[2]-r[2]-i[2]]))}function Flatness(t,e,i,a){let r=[e[0]-t[0],e[1]-t[1],e[2]-t[2]],n=[a[0]-i[0],a[1]-i[1],a[2]-i[2]];return Math.max(abs2(cross(r,unit(n))),abs2(cross(n,unit(r))))/9}function corners(t,e){return[t,[t[0],t[1],e[2]],[t[0],e[1],t[2]],[t[0],e[1],e[2]],[e[0],t[1],t[2]],[e[0],t[1],e[2]],[e[0],e[1],t[2]],e]}function minbound(t){return[Math.min(t[0][0],t[1][0],t[2][0],t[3][0],t[4][0],t[5][0],t[6][0],t[7][0]),Math.min(t[0][1],t[1][1],t[2][1],t[3][1],t[4][1],t[5][1],t[6][1],t[7][1]),Math.min(t[0][2],t[1][2],t[2][2],t[3][2],t[4][2],t[5][2],t[6][2],t[7][2])]}function maxboun!
d(t){return[Math.max(t[0][0],t[1][0],t[2][0],t[3][0],t[4][0],t[5][0],t[6][0],t[7][0]),Math.max(t[0][1],t[1][1],t[2][1],t[3][1],t[4][1],t[5][1],t[6][1],t[7][1]),Math.max(t[0][2],t[1][2],t[2][2],t[3][2],t[4][2],t[5][2],t[6][2],t[7][2])]}function COBTarget(t,e){mat4.fromTranslation(T,[center.x,center.y,center.z]),mat4.invert(cjMatInv,T),mat4.multiply(t,e,cjMatInv),mat4.multiply(t,T,t)}function setUniforms(t,e){let i=e==pixelShader;gl.useProgram(e),gl.enableVertexAttribArray(positionAttribute),i&&gl.enableVertexAttribArray(widthAttribute);let a=!i&&Lights.length>0;if(a&&gl.enableVertexAttribArray(normalAttribute),gl.enableVertexAttribArray(materialAttribute),e.projViewMatUniform=gl.getUniformLocation(e,"projViewMat"),e.viewMatUniform=gl.getUniformLocation(e,"viewMat"),e.normMatUniform=gl.getUniformLocation(e,"normMat"),e!=colorShader&&e!=transparentShader||gl.enableVertexAttribArray(colorAttribute),a)for(let t=0;t<Lights.length;++t)Lights[t].setUniform(e,t);for(let i=0;i<t.materials.length;++i)t.materials[i].setUniform(e,i);gl.uniformMatrix4fv(e.projViewMatUniform,!1,projViewMat),gl.uniformMatrix4fv(e.viewMatUniform,!1,viewMat),gl.uniformMatrix3fv(e.normMatUniform,!1,normMat)}function handleMouseDown(t){zoomEnabled||enableZoom(),mouseDownOrTouchActive=!0,lastMouseX=t.clientX,lastMouseY=t.clientY}let pinchStart,touchStartTime,pinch=!1;function pinchDistance(t){return Math.hypot(t[0].pageX-t[1].pageX,t[0].pageY-t[1].pageY)}function handleTouchStart(t){t.preventDefault(),zoomEnabled||enableZoom();let e=t.targetTouches;swipe=rotate=pinch=!1,zooming||(1!=e.length||mouseDownOrTouchActive||(touchStartTime=(new Date).getTime(),touchId=e[0].identifier,lastMouseX=e[0].pageX,lastMouseY=e[0].pageY),2!=e.length||mouseDownOrTouchActive||(touchId=e[0].identifier,pinchStart=pinchDistance(e),pinch=!0))}function handleMouseUpOrTouchEnd(t){mouseDownOrTouchActive=!1}function rotateScene(t,e,i,a,r){if(t==i&&e==a)return;let[n,s]=arcball([t,-e],[i,-a]);mat4.fromRotation(T,2*r*ArcballFactor*n/Zoom,s),mat4.multiply(rotMat,T,rotMat)}function!
shiftScene(t,e,i,a){let r=1/Zoom;shift.x+=(i-t)*r*halfCanvasWidth,shift.y-=(a-e)*r*halfCanvasHeight}function panScene(t,e,i,a){orthographic?shiftScene(t,e,i,a):(center.x+=(i-t)*(viewParam.xmax-viewParam.xmin),center.y-=(a-e)*(viewParam.ymax-viewParam.ymin))}function updateViewMatrix(){COBTarget(viewMat,rotMat),mat4.translate(viewMat,viewMat,[center.x,center.y,0]),mat3.fromMat4(viewMat3,viewMat),mat3.invert(normMat,viewMat3),mat4.multiply(projViewMat,projMat,viewMat)}function capzoom(){let t=Math.sqrt(Number.MAX_VALUE),e=1/t;Zoom<=e&&(Zoom=e),Zoom>=t&&(Zoom=t),(zoomRemeshFactor*Zoom<lastZoom||Zoom>zoomRemeshFactor*lastZoom)&&(remesh=!0,lastZoom=Zoom)}function zoomImage(t){let e=zoomStep*halfCanvasHeight*t;const i=Math.log(.1*Number.MAX_VALUE)/Math.log(zoomFactor);Math.abs(e)<i&&(Zoom*=zoomFactor**e,capzoom())}function normMouse(t){let e=t[0],i=t[1],a=Math.hypot(e,i);return a>1&&(denom=1/a,e*=denom,i*=denom),[e,i,Math.sqrt(Math.max(1-i*i-e*e,0))]}function arcball(t,e){let i=normMouse(t),a=normMouse(e),r=dot(i,a);return[r>1?0:r<-1?pi:Math.acos(r),unit(cross(i,a))]}function zoomScene(t,e,i,a){zoomImage(e-a)}const DRAGMODE_ROTATE=1,DRAGMODE_SHIFT=2,DRAGMODE_ZOOM=3,DRAGMODE_PAN=4;function processDrag(t,e,i,a=1){let r;switch(i){case 1:r=rotateScene;break;case 2:r=shiftScene;break;case 3:r=zoomScene;break;case 4:r=panScene;break;default:r=(t,e,i,a)=>{}}r((lastMouseX-halfCanvasWidth)/halfCanvasWidth,(lastMouseY-halfCanvasHeight)/halfCanvasHeight,(t-halfCanvasWidth)/halfCanvasWidth,(e-halfCanvasHeight)/halfCanvasHeight,a),lastMouseX=t,lastMouseY=e,setProjection(),draw()}let zoomEnabled=0;function enableZoom(){zoomEnabled=1,canvas.addEventListener("wheel",handleMouseWheel,!1)}function disableZoom(){zoomEnabled=0,canvas.removeEventListener("wheel",handleMouseWheel,!1)}function handleKey(t){if(zoomEnabled||enableZoom(),embedded&&zoomEnabled&&27==t.keyCode)return void disableZoom();let e=[];switch(t.key){case"x":e=[1,0,0];break;case"y":e=[0,1,0];break;case"z":e=[0,0,1];break;case"h":home();break;case"m":++wireframe,3==wirefr!
ame&&(wireframe=0),2!=wireframe&&(embedded||deleteShaders(),initShaders()),remesh=!0,draw();break;case"+":case"=":case">":expand();break;case"-":case"_":case"<":shrink()}e.length>0&&(mat4.rotate(rotMat,rotMat,.1,e),updateViewMatrix(),draw())}function setZoom(){capzoom(),setProjection(),draw()}function handleMouseWheel(t){t.preventDefault(),t.deltaY<0?Zoom*=zoomFactor:Zoom/=zoomFactor,setZoom()}function handleMouseMove(t){if(!mouseDownOrTouchActive)return;let e,i=t.clientX,a=t.clientY;e=t.getModifierState("Control")?2:t.getModifierState("Shift")?3:t.getModifierState("Alt")?4:1,processDrag(i,a,e)}let zooming=!1,swipe=!1,rotate=!1;function handleTouchMove(t){if(t.preventDefault(),zooming)return;let e=t.targetTouches;if(!pinch&&1==e.length&&touchId==e[0].identifier){let t=e[0].pageX,i=e[0].pageY,a=t-lastMouseX,r=i-lastMouseY,n=a*a+r*r<=shiftHoldDistance*shiftHoldDistance;if(n&&!swipe&&!rotate&&(new Date).getTime()-touchStartTime>shiftWaitTime&&(navigator.vibrate&&window.navigator.vibrate(vibrateTime),swipe=!0),swipe)processDrag(t,i,2);else if(!n){rotate=!0,processDrag(e[0].pageX,e[0].pageY,1,.5)}}if(pinch&&!swipe&&2==e.length&&touchId==e[0].identifier){let t=pinchDistance(e),i=t-pinchStart;zooming=!0,i*=zoomPinchFactor,i>zoomPinchCap&&(i=zoomPinchCap),i<-zoomPinchCap&&(i=-zoomPinchCap),zoomImage(i/size2),pinchStart=t,swipe=rotate=zooming=!1,setProjection(),draw()}}let pixelShader,materialShader,colorShader,transparentShader,zbuffer=[];function transformVertices(t){let e=viewMat[2],i=viewMat[6],a=viewMat[10];zbuffer.length=t.length;for(let r=0;r<t.length;++r){let n=6*r;zbuffer[r]=e*t[n]+i*t[n+1]+a*t[n+2]}}function drawMaterial0(){drawBuffer(material0Data,pixelShader),material0Data.clear()}function drawMaterial1(){drawBuffer(material1Data,materialShader),material1Data.clear()}function drawMaterial(){drawBuffer(materialData,materialShader),materialData.clear()}function drawColor(){drawBuffer(colorData,colorShader),colorData.clear()}function drawTriangle(){drawBuffer(triangleData,transparentShader),triangleData.rendered!
=!1,triangleData.clear()}function drawTransparent(){let t=transparentData.indices;if(wireframe>0)return drawBuffer(transparentData,transparentShader,t),void transparentData.clear();if(t.length>0){transformVertices(transparentData.vertices);let e=t.length/3,i=Array(e).fill().map((t,e)=>e);i.sort((function(e,i){let a=3*e;Ia=t[a],Ib=t[a+1],Ic=t[a+2];let r=3*i;return IA=t[r],IB=t[r+1],IC=t[r+2],zbuffer[Ia]+zbuffer[Ib]+zbuffer[Ic]<zbuffer[IA]+zbuffer[IB]+zbuffer[IC]?-1:1}));let a=Array(t.length);for(let r=0;r<e;++r){let e=3*i[r];a[3*r]=t[e],a[3*r+1]=t[e+1],a[3*r+2]=t[e+2]}gl.depthMask(!1),drawBuffer(transparentData,transparentShader,a),transparentData.rendered=!1,gl.depthMask(!0)}transparentData.clear()}function drawBuffers(){drawMaterial0(),drawMaterial1(),drawMaterial(),drawColor(),drawTriangle(),drawTransparent()}function draw(){embedded&&(offscreen.width=canvasWidth,offscreen.height=canvasHeight,setViewport()),gl.clearColor(Background[0],Background[1],Background[2],Background[3]),gl.clear(gl.COLOR_BUFFER_BIT|gl.DEPTH_BUFFER_BIT);for(let t=0;t<P.length;++t)P[t].render();drawBuffers(),embedded&&(context.clearRect(0,0,canvasWidth,canvasHeight),context.drawImage(offscreen,0,0)),0==wireframe&&(remesh=!1)}function setDimensions(t,e,i,a){let r=t/e,n=1/Zoom,s=(i/t+viewportshift[0])*Zoom,o=(a/e+viewportshift[1])*Zoom;if(orthographic){let t=B[0]-b[0],e=B[1]-b[1];if(t<e*r){let t=.5*e*r*n,i=2*t*s,a=e*n*o;viewParam.xmin=-t-i,viewParam.xmax=t-i,viewParam.ymin=b[1]*n-a,viewParam.ymax=B[1]*n-a}else{let e=.5*t/(r*Zoom),i=t*n*s,a=2*e*o;viewParam.xmin=b[0]*n-i,viewParam.xmax=B[0]*n-i,viewParam.ymin=-e-a,viewParam.ymax=e-a}}else{let t=H*n,e=t*r,i=2*e*s,a=2*t*o;viewParam.xmin=-e-i,viewParam.xmax=e-i,viewParam.ymin=-t-a,viewParam.ymax=t-a}}function setProjection(){setDimensions(canvasWidth,canvasHeight,shift.x,shift.y),(orthographic?mat4.ortho:mat4.frustum)(projMat,viewParam.xmin,viewParam.xmax,viewParam.ymin,viewParam.ymax,-viewParam.zmax,-viewParam.zmin),updateViewMatrix()}function initProjection(){H=-Math.tan(.5*angle)*B[2],center.!
x=center..y=0,center.z=.5*(b[2]+B[2]),lastZoom=Zoom=zoom0,viewParam.zmin=b[2],viewParam.zmax=B[2],shift.x=shift.y=0}function setViewport(){gl.viewportWidth=canvasWidth,gl.viewportHeight=canvasHeight,gl.viewport(.5*(canvas.width-canvasWidth),.5*(canvas.height-canvasHeight),canvasWidth,canvasHeight),gl.scissor(0,0,canvas.width,canvas.height)}function setCanvas(){embedded&&(canvas.width=offscreen.width=canvasWidth,canvas.height=offscreen.height=canvasHeight),size2=Math.hypot(canvasWidth,canvasHeight),halfCanvasWidth=.5*canvas.width,halfCanvasHeight=.5*canvas.height,ArcballFactor=1+8*Math.hypot(viewportmargin[0],viewportmargin[1])/size2}function setsize(t,e){t>maxViewportWidth&&(t=maxViewportWidth),e>maxViewportHeight&&(e=maxViewportHeight),shift.x*=t/canvasWidth,shift.y*=e/canvasHeight,canvasWidth=t,canvasHeight=e,setCanvas(),setViewport(),setProjection(),remesh=!0}function resize(){if(zoom0=Zoom0,absolute&&!embedded)canvasWidth=canvasWidth0*window.devicePixelRatio,canvasHeight=canvasHeight0*window.devicePixelRatio;else{let t=canvasWidth0/canvasHeight0;canvasWidth=Math.max(window.innerWidth-10,10),canvasHeight=Math.max(window.innerHeight-10,10),!orthographic&&canvasWidth<canvasHeight*t&&(zoom0*=canvasWidth/(canvasHeight*t))}canvas.width=canvasWidth,canvas.height=canvasHeight;window.innerWidth,window.innerHeight;viewportshift[0]/=zoom0,viewportshift[1]/=zoom0,setsize(canvasWidth,canvasHeight),redraw()}function expand(){Zoom*=zoomFactor,setZoom()}function shrink(){Zoom/=zoomFactor,setZoom()}class Align{constructor(t,e){if(this.center=t,e){let t=e[0],i=e[1];this.ct=Math.cos(t),this.st=Math.sin(t),this.cp=Math.cos(i),this.sp=Math.sin(i)}}T0(t){return[t[0]+this.center[0],t[1]+this.center[1],t[2]+this.center[2]]}T(t){let e=t[0],i=t[1],a=t[2],r=e*this.ct+a*this.st;return[r*this.cp-i*this.sp+this.center[0],r*this.sp+i*this.cp+this.center[1],-e*this.st+a*this.ct+this.center[2]]}}function Tcorners(t,e,i){let a=[t(e),t([e[0],e[1],i[2]]),t([e[0],i[1],e[2]]),t([e[0],i[1],i[2]]),t([i[0],e[1],e[2]]),t([i[0],e[1],i[2]]),t([i[0],i[1!
],e[2]]),t(i)];return[minbound(a),maxbound(a)]}function sphere(t,e,i,r,n){let s,o,h,l,c,d,m=.524670512339254,f=.595936986722291,u=.954967051233925,p=.0820155480083437,v=.996685028842544,g=.0549670512339254,x=.998880711874577,w=.0405017186586849,M=[[[1,0,0],[1,0,m],[f,0,u],[p,0,v],[1,a,0],[1,a,m],[f,a*f,u],[p,a*p,v],[a,1,0],[a,1,m],[a*f,f,u],[a*p,p,v],[0,1,0],[0,1,m],[0,f,u],[0,p,v]],[[p,0,v],[p,a*p,v],[g,0,x],[a*p,p,v],[w,w,1],[.05*a,0,1],[0,p,v],[0,g,x],[0,.05*a,1],[0,0,1]]],b=new Align(t,n);function S(t){let e=Array(t.length);for(let i=0;i<t.length;++i){let a=t[i];e[i]=c([s*a[0],o*a[1],h*a[2]])}return e}n?(l=1,d=0,c=b.T.bind(b)):(l=-1,d=-e,c=b.T0.bind(b));let A=Tcorners(c,[-e,-e,d],[e,e,e]),y=A[0],T=A[1];for(let t=-1;t<=1;t+=2){s=t*e;for(let t=-1;t<=1;t+=2){o=t*e;for(let t=l;t<=1;t+=2){h=t*e;for(let t=0;t<2;++t)P.push(new BezierPatch(S(M[t]),i,r,y,T))}}}}let a=4/3*(Math.sqrt(2)-1);function disk(t,e,i,r,n){let s=1-2*a/3,o=[[1,0,0],[1,-a,0],[a,-1,0],[0,-1,0],[1,a,0],[s,0,0],[0,-s,0],[-a,-1,0],[a,1,0],[0,s,0],[-s,0,0],[-1,-a,0],[0,1,0],[-a,1,0],[-1,a,0],[-1,0,0]],h=new Align(t,n);let l=Tcorners(h.T.bind(h),[-e,-e,0],[e,e,0]);P.push(new BezierPatch(function(t){let i=Array(t.length);for(let a=0;a<t.length;++a){let r=t[a];i[a]=h.T([e*r[0],e*r[1],0])}return i}(o),i,r,l[0],l[1]))}function cylinder(t,e,i,r,n,s,o){let h,l,c=[[1,0,0],[1,0,1/3],[1,0,2/3],[1,0,1],[1,a,0],[1,a,1/3],[1,a,2/3],[1,a,1],[a,1,0],[a,1,1/3],[a,1,2/3],[a,1,1],[0,1,0],[0,1,1/3],[0,1,2/3],[0,1,1]],d=new Align(t,s);function m(t){let e=Array(t.length);for(let a=0;a<t.length;++a){let r=t[a];e[a]=d.T([h*r[0],l*r[1],i*r[2]])}return e}let f=Tcorners(d.T.bind(d),[-e,-e,0],[e,e,i]),u=f[0],p=f[1];for(let t=-1;t<=1;t+=2){h=t*e;for(let t=-1;t<=1;t+=2)l=t*e,P.push(new BezierPatch(m(c),r,n,u,p))}if(o){let e=d.T([0,0,i]);P.push(new BezierCurve([t,e],r,n,t,e))}}function rmf(t,e,i,a,r){class n{constructor(t,e,i){this.p=t,this.r=e,this.t=i,this.s=cross(i,e)}}let s=Number.EPSILON*Math.max(abs2(t),abs2(e),abs2(i),abs2(a));function o(r){if(1==r){let r=[a[0]-i[0],a[1]-i[!
1],a[2]-i[2]];return abs2(r)>s?unit(r):(r=[2*i[0]-e[0]-a[0],2*i[1]-e[1]-a[1],2*i[2]-e[2]-a[2]],abs2(r)>s?unit(r):[a[0]-t[0]+3*(e[0]-i[0]),a[1]-t[1]+3*(e[1]-i[1]),a[2]-t[2]+3*(e[2]-i[2])])}let n=[a[0]-t[0]+3*(e[0]-i[0]),a[1]-t[1]+3*(e[1]-i[1]),a[2]-t[2]+3*(e[2]-i[2])],o=[2*(t[0]+i[0])-4*e[0],2*(t[1]+i[1])-4*e[1],2*(t[2]+i[2])-4*e[2]],h=[e[0]-t[0],e[1]-t[1],e[2]-t[2]],l=r*r,c=[n[0]*l+o[0]*r+h[0],n[1]*l+o[1]*r+h[1],n[2]*l+o[2]*r+h[2]];return abs2(c)>s?unit(c):(l=2*r,c=[n[0]*l+o[0],n[1]*l+o[1],n[2]*l+o[2]],abs2(c)>s?unit(c):unit(n))}let h=Array(r.length),l=[e[0]-t[0],e[1]-t[1],e[2]-t[2]];abs2(l)<s&&(l=[t[0]-2*e[0]+i[0],t[1]-2*e[1]+i[1],t[2]-2*e[2]+i[2]],abs2(l)<s&&(l=[a[0]-t[0]+3*(e[0]-i[0]),a[1]-t[1]+3*(e[1]-i[1]),a[2]-t[2]+3*(e[2]-i[2])])),l=unit(l);let c=function(t){let e=cross(t,[0,1,0]),i=Number.EPSILON*abs2(t);return abs2(e)>i?unit(e):(e=cross(t,[0,0,1]),abs2(e)>i?unit(e):[1,0,0])}(l);h[0]=new n(t,c,l);for(let s=1;s<r.length;++s){let l=h[s-1],c=r[s],d=1-c,m=d*d,f=m*d,u=3*c;m*=u,d*=u*c;let p=c*c*c,v=[f*t[0]+m*e[0]+d*i[0]+p*a[0],f*t[1]+m*e[1]+d*i[1]+p*a[1],f*t[2]+m*e[2]+d*i[2]+p*a[2]],g=[v[0]-l.p[0],v[1]-l.p[1],v[2]-l.p[2]];if(0!=g[0]||0!=g[1]||0!=g[2]){let t=l.r,e=unit(g),i=l.t,a=dot(e,i),r=[i[0]-2*a*e[0],i[1]-2*a*e[1],i[2]-2*a*e[2]];i=o(c);let d=2*dot(e,t),m=[t[0]-d*e[0],t[1]-d*e[1],t[2]-d*e[2]],f=unit([i[0]-r[0],i[1]-r[1],i[2]-r[2]]),u=2*dot(f,m);m=[m[0]-u*f[0],m[1]-u*f[1],m[2]-u*f[2]],h[s]=new n(v,unit(m),unit(i))}else h[s]=h[s-1]}return h}function tube(t,e,i,r,n,s,o){let h=rmf(t[0],t[1],t[2],t[3],[0,1/3,2/3,1]),l=a*e,c=[[e,0],[e,l],[l,e],[0,e]];function d(e,a,o,l){let d=Array(16);for(let i=0;i<4;++i){let r=h[i],n=r.r[0],s=r.s[0],m=n*e+s*a,f=n*o+s*l;n=r.r[1],s=r.s[1];let u=n*e+s*a,p=n*o+s*l;n=r.r[2],s=r.s[2];let v=n*e+s*a,g=n*o+s*l,x=t[i],w=x[0];w1=x[1],w2=x[2];for(let t=0;t<4;++t){let e=c[t],a=e[0],r=e[1];d[4*i+t]=[m*a+f*r+w,u*a+p*r+w1,v*a+g*r+w2]}}P.push(new BezierPatch(d,i,r,n,s))}d(1,0,0,1),d(0,-1,1,0),d(-1,0,0,-1),d(0,1,-1,0),o&&P.push(new BezierCurve(t,i,r,n,s))}function webGLStart(){canvas=document.ge!
tElementById("Asymptote"),embedded=window.top.document!=document,initGL(),gl.enable(gl.BLEND),gl.blendFunc(gl.SRC_ALPHA,gl.ONE_MINUS_SRC_ALPHA),gl.enable(gl.DEPTH_TEST),gl.enable(gl.SCISSOR_TEST),canvas.onmousedown=handleMouseDown,document.onmouseup=handleMouseUpOrTouchEnd,document.onmousemove=handleMouseMove,canvas.onkeydown=handleKey,embedded||enableZoom(),canvas.addEventListener("touchstart",handleTouchStart,!1),canvas.addEventListener("touchend",handleMouseUpOrTouchEnd,!1),canvas.addEventListener("touchcancel",handleMouseUpOrTouchEnd,!1),canvas.addEventListener("touchleave",handleMouseUpOrTouchEnd,!1),canvas.addEventListener("touchmove",handleTouchMove,!1),document.addEventListener("keydown",handleKey,!1),canvasWidth0=canvasWidth,canvasHeight0=canvasHeight,mat4.identity(rotMat),0!=window.innerWidth&&0!=window.innerHeight&&resize(),window.addEventListener("resize",resize,!1)}
Modified: trunk/Master/texmf-dist/doc/asymptote/CAD.pdf
===================================================================
(Binary files differ)
Modified: trunk/Master/texmf-dist/doc/asymptote/TeXShopAndAsymptote.pdf
===================================================================
(Binary files differ)
Modified: trunk/Master/texmf-dist/doc/asymptote/asy-latex.pdf
===================================================================
(Binary files differ)
Modified: trunk/Master/texmf-dist/doc/asymptote/asyRefCard.pdf
===================================================================
(Binary files differ)
Modified: trunk/Master/texmf-dist/doc/asymptote/asymptote.pdf
===================================================================
(Binary files differ)
Added: trunk/Master/texmf-dist/doc/asymptote/examples/100d.pdb1
===================================================================
--- trunk/Master/texmf-dist/doc/asymptote/examples/100d.pdb1 (rev 0)
+++ trunk/Master/texmf-dist/doc/asymptote/examples/100d.pdb1 2021-02-24 18:33:44 UTC (rev 57876)
@@ -0,0 +1,535 @@
+HEADER DNA/RNA 05-DEC-94 XXXX
+TITLE CRYSTAL STRUCTURE OF THE HIGHLY DISTORTED CHIMERIC DECAMER
+TITLE 2 R(C)D(CGGCGCCG)R(G)-SPERMINE COMPLEX-SPERMINE BINDING TO
+TITLE 3 PHOSPHATE ONLY AND MINOR GROOVE TERTIARY BASE-PAIRING
+COMPND 5'-R(*CP*)-D(*CP*GP*GP*CP*GP*CP*CP*GP*)-R(*G)-3'
+KEYWDS A-DNA/RNA, DOUBLE HELIX
+EXPDTA X-RAY DIFFRACTION
+AUTHOR C.BAN, B.RAMAKRISHNAN, M.SUNDARALINGAM
+JRNL AUTH C.BAN, B.RAMAKRISHNAN, M.SUNDARALINGAM
+JRNL TITL CRYSTAL STRUCTURE OF THE HIGHLY DISTORTED CHIMERIC
+JRNL TITL 2 DECAMER R(C)D(CGGCGCCG)R(G).SPERMINE
+JRNL TITL 3 COMPLEX--SPERMINE BINDING TO PHOSPHATE ONLY AND
+JRNL TITL 4 MINOR GROOVE TERTIARY BASE-PAIRING.
+JRNL REF NUCLEIC ACIDS RES. V. 22 5466 1994
+JRNL REFN ASTM NARHAD UK ISSN 0305-1048
+REMARK 1
+SEQRES 1 A 10 C DC DG DG DC DG DC DC DG G
+SEQRES 1 B 10 C DC DG DG DC DG DC DC DG G
+HETNAM SPM SPERMINE
+FORMUL 3 SPM C10 H26 N4
+FORMUL 4 HOH *67(H2 O)
+CRYST1 23.980 40.770 44.840 90.00 90.00 90.00 P 21 21 21 8
+ORIGX1 1.000000 0.000000 0.000000 0.00000
+ORIGX2 0.000000 1.000000 0.000000 0.00000
+ORIGX3 0.000000 0.000000 1.000000 0.00000
+SCALE1 0.041701 0.000000 0.000000 0.00000
+SCALE2 0.000000 0.024528 0.000000 0.00000
+SCALE3 0.000000 0.000000 0.022302 0.00000
+ATOM 1 N1 C A 1 -4.931 6.902 7.826 1.00 19.25 N
+ATOM 2 C2 C A 1 -4.838 7.263 9.158 1.00 16.72 C
+ATOM 3 O2 C A 1 -4.287 8.308 9.505 1.00 15.49 O
+ATOM 4 N3 C A 1 -5.367 6.448 10.085 1.00 15.96 N
+ATOM 5 C4 C A 1 -5.978 5.310 9.736 1.00 16.84 C
+ATOM 6 N4 C A 1 -6.592 4.588 10.676 1.00 19.14 N
+ATOM 7 C5 C A 1 -6.059 4.907 8.376 1.00 17.68 C
+ATOM 8 C6 C A 1 -5.522 5.732 7.461 1.00 17.68 C
+ATOM 9 O5' C A 1 -4.549 5.095 4.262 1.00 28.71 O
+ATOM 10 C5' C A 1 -4.176 6.323 3.646 1.00 27.35 C
+ATOM 11 C4' C A 1 -3.853 7.410 4.672 1.00 24.41 C
+ATOM 12 O4' C A 1 -4.992 7.650 5.512 1.00 22.53 O
+ATOM 13 C3' C A 1 -2.713 7.010 5.605 1.00 23.56 C
+ATOM 14 O3' C A 1 -1.379 7.127 5.060 1.00 21.02 O
+ATOM 15 C2' C A 1 -2.950 7.949 6.756 1.00 23.73 C
+ATOM 16 O2' C A 1 -2.407 9.267 6.554 1.00 23.93 O
+ATOM 17 C1' C A 1 -4.489 7.917 6.825 1.00 20.60 C
+ATOM 18 P DC A 2 -0.178 6.220 5.647 1.00 24.85 P
+ATOM 19 N1 DC A 2 -1.070 6.635 10.823 1.00 14.48 N
+ATOM 20 C2 DC A 2 -1.417 6.355 12.130 1.00 13.03 C
+ATOM 21 O2 DC A 2 -1.007 7.022 13.094 1.00 11.15 O
+ATOM 22 N3 DC A 2 -2.233 5.297 12.333 1.00 11.95 N
+ATOM 23 C4 DC A 2 -2.681 4.542 11.344 1.00 11.37 C
+ATOM 24 N4 DC A 2 -3.532 3.569 11.652 1.00 11.93 N
+ATOM 25 C5 DC A 2 -2.314 4.796 9.986 1.00 11.95 C
+ATOM 26 C6 DC A 2 -1.510 5.853 9.776 1.00 11.94 C
+ATOM 27 OP1 DC A 2 0.915 6.451 4.671 1.00 25.96 O
+ATOM 28 OP2 DC A 2 -0.948 4.954 5.664 1.00 24.57 O
+ATOM 29 O5' DC A 2 0.435 6.502 7.097 1.00 24.10 O
+ATOM 30 C5' DC A 2 1.020 7.793 7.281 1.00 19.66 C
+ATOM 31 C4' DC A 2 1.034 8.184 8.738 1.00 17.99 C
+ATOM 32 O4' DC A 2 -0.290 8.244 9.222 1.00 17.23 O
+ATOM 33 C3' DC A 2 1.724 7.167 9.617 1.00 18.98 C
+ATOM 34 O3' DC A 2 3.130 7.395 9.564 1.00 18.39 O
+ATOM 35 C2' DC A 2 1.152 7.607 10.934 1.00 17.33 C
+ATOM 36 C1' DC A 2 -0.273 7.853 10.599 1.00 15.44 C
+ATOM 37 P DG A 3 4.177 6.440 10.285 1.00 21.10 P
+ATOM 38 N9 DG A 3 1.615 4.437 14.168 1.00 11.63 N
+ATOM 39 C8 DG A 3 1.389 4.110 12.865 1.00 10.83 C
+ATOM 40 N7 DG A 3 0.474 3.204 12.690 1.00 12.03 N
+ATOM 41 C5 DG A 3 0.093 2.891 13.972 1.00 9.28 C
+ATOM 42 C6 DG A 3 -0.792 1.917 14.408 1.00 6.67 C
+ATOM 43 O6 DG A 3 -1.528 1.253 13.693 1.00 11.90 O
+ATOM 44 N1 DG A 3 -0.833 1.822 15.808 1.00 7.48 N
+ATOM 45 C2 DG A 3 -0.098 2.583 16.686 1.00 7.12 C
+ATOM 46 N2 DG A 3 -0.228 2.346 17.999 1.00 2.92 N
+ATOM 47 N3 DG A 3 0.745 3.531 16.259 1.00 7.08 N
+ATOM 48 C4 DG A 3 0.788 3.626 14.894 1.00 12.36 C
+ATOM 49 OP1 DG A 3 5.469 7.004 9.830 1.00 21.52 O
+ATOM 50 OP2 DG A 3 3.681 5.183 9.686 1.00 14.50 O
+ATOM 51 O5' DG A 3 4.378 6.142 11.832 1.00 19.95 O
+ATOM 52 C5' DG A 3 4.654 7.213 12.730 1.00 17.61 C
+ATOM 53 C4' DG A 3 4.016 6.885 14.035 1.00 17.62 C
+ATOM 54 O4' DG A 3 2.614 6.626 13.799 1.00 16.77 O
+ATOM 55 C3' DG A 3 4.595 5.586 14.598 1.00 16.31 C
+ATOM 56 O3' DG A 3 5.774 5.836 15.353 1.00 18.86 O
+ATOM 57 C2' DG A 3 3.484 5.274 15.528 1.00 17.71 C
+ATOM 58 C1' DG A 3 2.243 5.627 14.740 1.00 16.27 C
+ATOM 59 P DG A 4 6.647 4.633 15.976 1.00 19.10 P
+ATOM 60 N9 DG A 4 3.496 1.232 18.319 1.00 11.82 N
+ATOM 61 C8 DG A 4 3.617 1.742 17.054 1.00 8.09 C
+ATOM 62 N7 DG A 4 2.902 1.118 16.167 1.00 11.07 N
+ATOM 63 C5 DG A 4 2.252 0.091 16.894 1.00 11.16 C
+ATOM 64 C6 DG A 4 1.310 -0.920 16.456 1.00 9.75 C
+ATOM 65 O6 DG A 4 0.888 -1.151 15.321 1.00 9.97 O
+ATOM 66 N1 DG A 4 0.906 -1.749 17.502 1.00 8.27 N
+ATOM 67 C2 DG A 4 1.340 -1.630 18.818 1.00 8.31 C
+ATOM 68 N2 DG A 4 0.852 -2.494 19.717 1.00 6.42 N
+ATOM 69 N3 DG A 4 2.218 -0.681 19.223 1.00 9.10 N
+ATOM 70 C4 DG A 4 2.629 0.144 18.209 1.00 10.34 C
+ATOM 71 OP1 DG A 4 7.834 5.387 16.410 1.00 21.78 O
+ATOM 72 OP2 DG A 4 6.811 3.466 15.083 1.00 20.41 O
+ATOM 73 O5' DG A 4 5.837 4.160 17.304 1.00 19.69 O
+ATOM 74 C5' DG A 4 5.832 4.777 18.613 1.00 14.70 C
+ATOM 75 C4' DG A 4 5.349 3.746 19.615 1.00 15.74 C
+ATOM 76 O4' DG A 4 4.014 3.339 19.320 1.00 15.71 O
+ATOM 77 C3' DG A 4 6.144 2.446 19.549 1.00 14.86 C
+ATOM 78 O3' DG A 4 7.442 2.553 20.185 1.00 20.22 O
+ATOM 79 C2' DG A 4 5.194 1.467 20.191 1.00 13.42 C
+ATOM 80 C1' DG A 4 3.886 1.904 19.582 1.00 13.10 C
+ATOM 81 P DC A 5 8.623 1.481 19.918 1.00 16.11 P
+ATOM 82 N1 DC A 5 5.142 -2.576 17.527 1.00 12.08 N
+ATOM 83 C2 DC A 5 4.179 -3.389 16.962 1.00 12.60 C
+ATOM 84 O2 DC A 5 3.695 -4.327 17.591 1.00 10.69 O
+ATOM 85 N3 DC A 5 3.792 -3.162 15.680 1.00 10.73 N
+ATOM 86 C4 DC A 5 4.335 -2.176 14.967 1.00 10.86 C
+ATOM 87 N4 DC A 5 3.833 -1.904 13.765 1.00 7.57 N
+ATOM 88 C5 DC A 5 5.346 -1.339 15.528 1.00 12.31 C
+ATOM 89 C6 DC A 5 5.709 -1.571 16.800 1.00 10.26 C
+ATOM 90 OP1 DC A 5 9.474 2.225 20.879 1.00 21.84 O
+ATOM 91 OP2 DC A 5 8.908 1.639 18.468 1.00 19.79 O
+ATOM 92 O5' DC A 5 8.728 -0.072 20.325 1.00 19.47 O
+ATOM 93 C5' DC A 5 8.554 -1.158 19.407 1.00 15.29 C
+ATOM 94 C4' DC A 5 7.470 -2.178 19.802 1.00 12.49 C
+ATOM 95 O4' DC A 5 6.161 -1.717 19.496 1.00 12.55 O
+ATOM 96 C3' DC A 5 7.697 -3.468 19.046 1.00 11.96 C
+ATOM 97 O3' DC A 5 8.775 -4.194 19.666 1.00 14.17 O
+ATOM 98 C2' DC A 5 6.342 -4.056 19.192 1.00 10.58 C
+ATOM 99 C1' DC A 5 5.464 -2.822 18.946 1.00 10.97 C
+ATOM 100 P DG A 6 9.797 -5.058 18.800 1.00 14.87 P
+ATOM 101 N9 DG A 6 5.801 -7.550 16.290 1.00 13.78 N
+ATOM 102 C8 DG A 6 6.477 -6.339 16.189 1.00 11.32 C
+ATOM 103 N7 DG A 6 6.114 -5.628 15.161 1.00 11.53 N
+ATOM 104 C5 DG A 6 5.137 -6.431 14.528 1.00 15.14 C
+ATOM 105 C6 DG A 6 4.442 -6.239 13.291 1.00 14.51 C
+ATOM 106 O6 DG A 6 4.382 -5.224 12.595 1.00 15.52 O
+ATOM 107 N1 DG A 6 3.678 -7.348 12.942 1.00 15.78 N
+ATOM 108 C2 DG A 6 3.558 -8.503 13.679 1.00 16.04 C
+ATOM 109 N2 DG A 6 2.732 -9.421 13.210 1.00 15.11 N
+ATOM 110 N3 DG A 6 4.187 -8.691 14.842 1.00 14.81 N
+ATOM 111 C4 DG A 6 4.959 -7.617 15.206 1.00 13.90 C
+ATOM 112 OP1 DG A 6 10.851 -5.532 19.718 1.00 14.32 O
+ATOM 113 OP2 DG A 6 10.144 -4.575 17.432 1.00 10.67 O
+ATOM 114 O5' DG A 6 8.762 -6.277 18.626 1.00 15.18 O
+ATOM 115 C5' DG A 6 8.679 -7.438 19.428 1.00 15.40 C
+ATOM 116 C4' DG A 6 7.717 -8.446 18.789 1.00 15.34 C
+ATOM 117 O4' DG A 6 6.431 -7.834 18.520 1.00 16.46 O
+ATOM 118 C3' DG A 6 8.150 -9.052 17.449 1.00 16.54 C
+ATOM 119 O3' DG A 6 9.172 -10.043 17.595 1.00 18.58 O
+ATOM 120 C2' DG A 6 6.796 -9.650 17.066 1.00 17.79 C
+ATOM 121 C1' DG A 6 5.804 -8.517 17.397 1.00 13.96 C
+ATOM 122 P DC A 7 10.498 -10.100 16.665 1.00 17.81 P
+ATOM 123 N1 DC A 7 7.217 -9.334 12.285 1.00 7.65 N
+ATOM 124 C2 DC A 7 6.458 -8.793 11.230 1.00 10.22 C
+ATOM 125 O2 DC A 7 5.771 -9.507 10.500 1.00 15.05 O
+ATOM 126 N3 DC A 7 6.567 -7.461 10.942 1.00 6.65 N
+ATOM 127 C4 DC A 7 7.403 -6.694 11.658 1.00 5.07 C
+ATOM 128 N4 DC A 7 7.447 -5.391 11.420 1.00 4.65 N
+ATOM 129 C5 DC A 7 8.188 -7.242 12.730 1.00 4.20 C
+ATOM 130 C6 DC A 7 8.053 -8.558 13.000 1.00 6.45 C
+ATOM 131 OP1 DC A 7 11.307 -11.102 17.394 1.00 17.82 O
+ATOM 132 OP2 DC A 7 11.084 -8.759 16.374 1.00 20.08 O
+ATOM 133 O5' DC A 7 9.986 -10.722 15.264 1.00 17.30 O
+ATOM 134 C5' DC A 7 9.312 -11.986 15.170 1.00 16.36 C
+ATOM 135 C4' DC A 7 8.436 -12.095 13.916 1.00 15.85 C
+ATOM 136 O4' DC A 7 7.361 -11.148 13.955 1.00 16.34 O
+ATOM 137 C3' DC A 7 9.165 -11.823 12.595 1.00 14.83 C
+ATOM 138 O3' DC A 7 10.003 -12.907 12.161 1.00 16.25 O
+ATOM 139 C2' DC A 7 7.973 -11.600 11.717 1.00 11.20 C
+ATOM 140 C1' DC A 7 7.076 -10.772 12.582 1.00 10.61 C
+ATOM 141 P DC A 8 11.175 -12.651 11.083 1.00 18.77 P
+ATOM 142 N1 DC A 8 8.297 -9.310 7.883 1.00 6.87 N
+ATOM 143 C2 DC A 8 7.867 -8.224 7.123 1.00 9.10 C
+ATOM 144 O2 DC A 8 7.226 -8.387 6.080 1.00 7.86 O
+ATOM 145 N3 DC A 8 8.296 -6.966 7.459 1.00 7.75 N
+ATOM 146 C4 DC A 8 9.147 -6.784 8.485 1.00 9.21 C
+ATOM 147 N4 DC A 8 9.589 -5.560 8.779 1.00 7.67 N
+ATOM 148 C5 DC A 8 9.609 -7.891 9.258 1.00 7.40 C
+ATOM 149 C6 DC A 8 9.156 -9.121 8.923 1.00 9.24 C
+ATOM 150 OP1 DC A 8 11.871 -13.952 10.908 1.00 20.04 O
+ATOM 151 OP2 DC A 8 12.020 -11.472 11.376 1.00 20.24 O
+ATOM 152 O5' DC A 8 10.469 -12.357 9.649 1.00 18.79 O
+ATOM 153 C5' DC A 8 9.733 -13.334 8.924 1.00 12.85 C
+ATOM 154 C4' DC A 8 8.867 -12.647 7.941 1.00 14.40 C
+ATOM 155 O4' DC A 8 8.156 -11.587 8.589 1.00 10.91 O
+ATOM 156 C3' DC A 8 9.598 -11.936 6.845 1.00 14.90 C
+ATOM 157 O3' DC A 8 10.249 -12.831 5.936 1.00 15.23 O
+ATOM 158 C2' DC A 8 8.377 -11.232 6.304 1.00 9.34 C
+ATOM 159 C1' DC A 8 7.789 -10.648 7.568 1.00 8.80 C
+ATOM 160 P DG A 9 11.518 -12.329 5.128 1.00 14.64 P
+ATOM 161 N9 DG A 9 9.338 -8.006 2.891 1.00 5.76 N
+ATOM 162 C8 DG A 9 10.079 -8.162 4.036 1.00 7.27 C
+ATOM 163 N7 DG A 9 10.578 -7.077 4.541 1.00 5.05 N
+ATOM 164 C5 DG A 9 10.143 -6.100 3.664 1.00 6.30 C
+ATOM 165 C6 DG A 9 10.387 -4.694 3.690 1.00 6.32 C
+ATOM 166 O6 DG A 9 10.988 -4.056 4.538 1.00 8.77 O
+ATOM 167 N1 DG A 9 9.805 -4.022 2.632 1.00 5.02 N
+ATOM 168 C2 DG A 9 9.072 -4.651 1.658 1.00 7.22 C
+ATOM 169 N2 DG A 9 8.590 -3.921 0.680 1.00 5.13 N
+ATOM 170 N3 DG A 9 8.837 -5.970 1.631 1.00 8.90 N
+ATOM 171 C4 DG A 9 9.395 -6.649 2.656 1.00 5.39 C
+ATOM 172 OP1 DG A 9 11.889 -13.707 4.763 1.00 17.77 O
+ATOM 173 OP2 DG A 9 12.558 -11.435 5.714 1.00 16.33 O
+ATOM 174 O5' DG A 9 10.890 -11.645 3.793 1.00 13.73 O
+ATOM 175 C5' DG A 9 10.098 -12.334 2.826 1.00 10.04 C
+ATOM 176 C4' DG A 9 9.322 -11.365 2.036 1.00 8.60 C
+ATOM 177 O4' DG A 9 8.636 -10.420 2.864 1.00 9.95 O
+ATOM 178 C3' DG A 9 10.183 -10.481 1.201 1.00 11.49 C
+ATOM 179 O3' DG A 9 10.786 -11.138 0.073 1.00 12.29 O
+ATOM 180 C2' DG A 9 9.103 -9.503 0.858 1.00 7.88 C
+ATOM 181 C1' DG A 9 8.570 -9.111 2.181 1.00 8.58 C
+ATOM 182 P G A 10 12.244 -10.723 -0.414 1.00 18.00 P
+ATOM 183 N9 G A 10 11.582 -5.303 -1.017 1.00 15.40 N
+ATOM 184 C8 G A 10 12.179 -6.115 -0.061 1.00 15.00 C
+ATOM 185 N7 G A 10 12.826 -5.480 0.870 1.00 12.61 N
+ATOM 186 C5 G A 10 12.635 -4.148 0.522 1.00 13.15 C
+ATOM 187 C6 G A 10 13.133 -2.991 1.159 1.00 11.89 C
+ATOM 188 O6 G A 10 13.713 -2.965 2.241 1.00 12.64 O
+ATOM 189 N1 G A 10 12.806 -1.814 0.462 1.00 9.10 N
+ATOM 190 C2 G A 10 12.079 -1.777 -0.689 1.00 10.96 C
+ATOM 191 N2 G A 10 11.851 -0.582 -1.197 1.00 11.87 N
+ATOM 192 N3 G A 10 11.588 -2.874 -1.294 1.00 12.41 N
+ATOM 193 C4 G A 10 11.899 -4.020 -0.633 1.00 13.44 C
+ATOM 194 OP1 G A 10 12.221 -11.870 -1.354 1.00 19.65 O
+ATOM 195 OP2 G A 10 13.525 -10.237 0.168 1.00 21.55 O
+ATOM 196 O5' G A 10 11.507 -9.424 -1.092 1.00 18.23 O
+ATOM 197 C5' G A 10 10.721 -9.357 -2.288 1.00 18.20 C
+ATOM 198 C4' G A 10 10.589 -7.934 -2.878 1.00 17.37 C
+ATOM 199 O4' G A 10 10.102 -6.968 -1.936 1.00 15.12 O
+ATOM 200 C3' G A 10 11.859 -7.317 -3.471 1.00 17.88 C
+ATOM 201 O3' G A 10 12.164 -7.754 -4.846 1.00 16.65 O
+ATOM 202 C2' G A 10 11.470 -5.841 -3.464 1.00 16.83 C
+ATOM 203 O2' G A 10 10.607 -5.618 -4.583 1.00 18.75 O
+ATOM 204 C1' G A 10 10.721 -5.691 -2.168 1.00 15.79 C
+TER 205 G A 10
+ATOM 206 N1 C B 11 13.988 2.735 1.589 1.00 16.99 N
+ATOM 207 C2 C B 11 13.552 1.541 1.023 1.00 15.65 C
+ATOM 208 O2 C B 11 12.869 1.532 0.006 1.00 14.94 O
+ATOM 209 N3 C B 11 13.773 0.359 1.678 1.00 16.15 N
+ATOM 210 C4 C B 11 14.386 0.347 2.865 1.00 16.53 C
+ATOM 211 N4 C B 11 14.619 -0.822 3.476 1.00 18.43 N
+ATOM 212 C5 C B 11 14.816 1.571 3.473 1.00 16.78 C
+ATOM 213 C6 C B 11 14.597 2.724 2.804 1.00 15.01 C
+ATOM 214 O5' C B 11 14.526 5.793 4.007 1.00 18.48 O
+ATOM 215 C5' C B 11 14.531 6.777 2.948 1.00 17.64 C
+ATOM 216 C4' C B 11 14.028 6.161 1.616 1.00 17.23 C
+ATOM 217 O4' C B 11 14.808 4.991 1.256 1.00 16.55 O
+ATOM 218 C3' C B 11 12.611 5.611 1.737 1.00 17.97 C
+ATOM 219 O3' C B 11 11.508 6.538 1.711 1.00 18.76 O
+ATOM 220 C2' C B 11 12.546 4.594 0.654 1.00 14.10 C
+ATOM 221 O2' C B 11 12.366 5.290 -0.579 1.00 13.63 O
+ATOM 222 C1' C B 11 13.918 3.977 0.766 1.00 14.14 C
+ATOM 223 P DC B 12 10.233 6.143 2.644 1.00 21.42 P
+ATOM 224 N1 DC B 12 9.527 0.825 1.326 1.00 15.29 N
+ATOM 225 C2 DC B 12 9.472 -0.563 1.382 1.00 14.49 C
+ATOM 226 O2 DC B 12 8.922 -1.257 0.518 1.00 17.30 O
+ATOM 227 N3 DC B 12 10.055 -1.190 2.418 1.00 11.60 N
+ATOM 228 C4 DC B 12 10.676 -0.500 3.383 1.00 15.58 C
+ATOM 229 N4 DC B 12 11.164 -1.186 4.430 1.00 14.28 N
+ATOM 230 C5 DC B 12 10.760 0.927 3.341 1.00 15.60 C
+ATOM 231 C6 DC B 12 10.166 1.544 2.298 1.00 15.73 C
+ATOM 232 OP1 DC B 12 9.634 7.406 2.139 1.00 21.29 O
+ATOM 233 OP2 DC B 12 10.077 5.869 4.079 1.00 22.13 O
+ATOM 234 O5' DC B 12 9.636 4.841 1.804 1.00 20.84 O
+ATOM 235 C5' DC B 12 8.999 5.040 0.519 1.00 19.83 C
+ATOM 236 C4' DC B 12 8.512 3.757 -0.108 1.00 18.55 C
+ATOM 237 O4' DC B 12 9.529 2.733 -0.171 1.00 19.79 O
+ATOM 238 C3' DC B 12 7.498 3.211 0.801 1.00 18.00 C
+ATOM 239 O3' DC B 12 6.305 3.969 0.629 1.00 19.14 O
+ATOM 240 C2' DC B 12 7.475 1.788 0.344 1.00 15.87 C
+ATOM 241 C1' DC B 12 8.913 1.473 0.156 1.00 15.45 C
+ATOM 242 P DG B 13 4.970 3.543 1.371 1.00 21.52 P
+ATOM 243 N9 DG B 13 6.185 -2.069 3.050 1.00 9.23 N
+ATOM 244 C8 DG B 13 6.745 -1.032 3.745 1.00 8.94 C
+ATOM 245 N7 DG B 13 7.370 -1.389 4.833 1.00 7.30 N
+ATOM 246 C5 DG B 13 7.209 -2.767 4.877 1.00 8.43 C
+ATOM 247 C6 DG B 13 7.692 -3.719 5.823 1.00 9.75 C
+ATOM 248 O6 DG B 13 8.258 -3.536 6.903 1.00 14.29 O
+ATOM 249 N1 DG B 13 7.361 -5.014 5.443 1.00 5.73 N
+ATOM 250 C2 DG B 13 6.655 -5.359 4.323 1.00 2.65 C
+ATOM 251 N2 DG B 13 6.506 -6.654 4.079 1.00 2.15 N
+ATOM 252 N3 DG B 13 6.190 -4.477 3.470 1.00 2.55 N
+ATOM 253 C4 DG B 13 6.497 -3.198 3.793 1.00 6.08 C
+ATOM 254 OP1 DG B 13 4.172 4.637 0.743 1.00 22.41 O
+ATOM 255 OP2 DG B 13 5.322 3.646 2.816 1.00 21.67 O
+ATOM 256 O5' DG B 13 4.263 2.118 1.102 1.00 18.28 O
+ATOM 257 C5' DG B 13 3.977 1.214 2.153 1.00 12.90 C
+ATOM 258 C4' DG B 13 3.997 -0.166 1.554 1.00 15.74 C
+ATOM 259 O4' DG B 13 5.326 -0.638 1.288 1.00 15.41 O
+ATOM 260 C3' DG B 13 3.328 -1.110 2.479 1.00 14.99 C
+ATOM 261 O3' DG B 13 1.948 -0.901 2.181 1.00 18.56 O
+ATOM 262 C2' DG B 13 3.943 -2.416 1.990 1.00 14.49 C
+ATOM 263 C1' DG B 13 5.414 -2.020 1.777 1.00 12.61 C
+ATOM 264 P DG B 14 0.784 -1.093 3.255 1.00 15.78 P
+ATOM 265 N9 DG B 14 3.152 -5.336 5.518 1.00 6.83 N
+ATOM 266 C8 DG B 14 3.420 -4.010 5.692 1.00 4.36 C
+ATOM 267 N7 DG B 14 4.172 -3.751 6.719 1.00 5.76 N
+ATOM 268 C5 DG B 14 4.412 -5.012 7.281 1.00 8.36 C
+ATOM 269 C6 DG B 14 5.175 -5.383 8.425 1.00 10.81 C
+ATOM 270 O6 DG B 14 5.939 -4.687 9.102 1.00 10.46 O
+ATOM 271 N1 DG B 14 5.100 -6.738 8.655 1.00 7.70 N
+ATOM 272 C2 DG B 14 4.415 -7.650 7.890 1.00 6.88 C
+ATOM 273 N2 DG B 14 4.444 -8.925 8.254 1.00 4.21 N
+ATOM 274 N3 DG B 14 3.730 -7.316 6.805 1.00 7.97 N
+ATOM 275 C4 DG B 14 3.774 -5.982 6.566 1.00 7.79 C
+ATOM 276 OP1 DG B 14 -0.388 -0.771 2.418 1.00 12.44 O
+ATOM 277 OP2 DG B 14 0.951 -0.425 4.562 1.00 16.99 O
+ATOM 278 O5' DG B 14 0.825 -2.666 3.590 1.00 12.34 O
+ATOM 279 C5' DG B 14 0.518 -3.657 2.618 1.00 15.26 C
+ATOM 280 C4' DG B 14 0.962 -5.042 3.026 1.00 11.81 C
+ATOM 281 O4' DG B 14 2.388 -5.092 3.261 1.00 14.56 O
+ATOM 282 C3' DG B 14 0.298 -5.494 4.281 1.00 10.90 C
+ATOM 283 O3' DG B 14 -1.014 -5.933 3.977 1.00 16.35 O
+ATOM 284 C2' DG B 14 1.223 -6.607 4.600 1.00 8.75 C
+ATOM 285 C1' DG B 14 2.583 -6.029 4.341 1.00 8.31 C
+ATOM 286 P DC B 15 -2.108 -5.846 5.127 1.00 18.17 P
+ATOM 287 N1 DC B 15 0.594 -8.193 8.784 1.00 10.36 N
+ATOM 288 C2 DC B 15 1.420 -8.271 9.913 1.00 13.07 C
+ATOM 289 O2 DC B 15 1.626 -9.323 10.519 1.00 11.62 O
+ATOM 290 N3 DC B 15 1.985 -7.143 10.391 1.00 9.60 N
+ATOM 291 C4 DC B 15 1.755 -5.962 9.810 1.00 9.75 C
+ATOM 292 N4 DC B 15 2.507 -4.945 10.242 1.00 10.36 N
+ATOM 293 C5 DC B 15 0.883 -5.835 8.681 1.00 8.80 C
+ATOM 294 C6 DC B 15 0.336 -6.973 8.201 1.00 11.04 C
+ATOM 295 OP1 DC B 15 -3.198 -6.237 4.195 1.00 23.53 O
+ATOM 296 OP2 DC B 15 -2.242 -4.630 5.951 1.00 23.09 O
+ATOM 297 O5' DC B 15 -1.783 -7.100 6.053 1.00 20.88 O
+ATOM 298 C5' DC B 15 -2.023 -8.439 5.585 1.00 16.99 C
+ATOM 299 C4' DC B 15 -1.560 -9.527 6.542 1.00 16.47 C
+ATOM 300 O4' DC B 15 -0.145 -9.414 6.793 1.00 14.34 O
+ATOM 301 C3' DC B 15 -2.235 -9.419 7.903 1.00 17.63 C
+ATOM 302 O3' DC B 15 -3.580 -9.983 8.004 1.00 16.81 O
+ATOM 303 C2' DC B 15 -1.174 -10.022 8.803 1.00 12.88 C
+ATOM 304 C1' DC B 15 0.116 -9.496 8.210 1.00 14.19 C
+ATOM 305 P DG B 16 -4.447 -9.204 9.118 1.00 23.27 P
+ATOM 306 N9 DG B 16 -0.792 -7.342 13.150 1.00 14.23 N
+ATOM 307 C8 DG B 16 -1.064 -6.617 12.000 1.00 13.86 C
+ATOM 308 N7 DG B 16 -0.426 -5.487 11.941 1.00 10.67 N
+ATOM 309 C5 DG B 16 0.313 -5.477 13.124 1.00 13.65 C
+ATOM 310 C6 DG B 16 1.184 -4.501 13.652 1.00 10.61 C
+ATOM 311 O6 DG B 16 1.552 -3.475 13.129 1.00 10.52 O
+ATOM 312 N1 DG B 16 1.683 -4.846 14.894 1.00 14.28 N
+ATOM 313 C2 DG B 16 1.388 -6.009 15.567 1.00 12.13 C
+ATOM 314 N2 DG B 16 1.910 -6.217 16.766 1.00 10.28 N
+ATOM 315 N3 DG B 16 0.578 -6.929 15.063 1.00 15.53 N
+ATOM 316 C4 DG B 16 0.082 -6.603 13.853 1.00 12.03 C
+ATOM 317 OP1 DG B 16 -5.486 -10.240 8.913 1.00 22.76 O
+ATOM 318 OP2 DG B 16 -4.614 -7.887 8.455 1.00 24.12 O
+ATOM 319 O5' DG B 16 -4.232 -8.798 10.672 1.00 18.16 O
+ATOM 320 C5' DG B 16 -4.091 -9.850 11.581 1.00 18.35 C
+ATOM 321 C4' DG B 16 -3.224 -9.555 12.771 1.00 17.50 C
+ATOM 322 O4' DG B 16 -1.873 -9.267 12.423 1.00 15.59 O
+ATOM 323 C3' DG B 16 -3.673 -8.498 13.727 1.00 17.67 C
+ATOM 324 O3' DG B 16 -4.857 -8.945 14.432 1.00 23.53 O
+ATOM 325 C2' DG B 16 -2.423 -8.573 14.568 1.00 16.53 C
+ATOM 326 C1' DG B 16 -1.278 -8.659 13.568 1.00 15.43 C
+ATOM 327 P DC B 17 -6.006 -7.956 15.048 1.00 19.94 P
+ATOM 328 N1 DC B 17 -2.194 -5.587 17.570 1.00 12.74 N
+ATOM 329 C2 DC B 17 -1.248 -4.622 17.829 1.00 13.09 C
+ATOM 330 O2 DC B 17 -0.698 -4.517 18.933 1.00 12.24 O
+ATOM 331 N3 DC B 17 -0.984 -3.712 16.852 1.00 14.35 N
+ATOM 332 C4 DC B 17 -1.639 -3.762 15.686 1.00 13.79 C
+ATOM 333 N4 DC B 17 -1.297 -2.921 14.711 1.00 16.68 N
+ATOM 334 C5 DC B 17 -2.631 -4.748 15.430 1.00 11.59 C
+ATOM 335 C6 DC B 17 -2.858 -5.633 16.400 1.00 8.53 C
+ATOM 336 OP1 DC B 17 -6.749 -9.243 15.142 1.00 18.85 O
+ATOM 337 OP2 DC B 17 -6.441 -6.892 14.132 1.00 21.49 O
+ATOM 338 O5' DC B 17 -5.598 -7.385 16.536 1.00 17.70 O
+ATOM 339 C5' DC B 17 -5.483 -8.267 17.659 1.00 17.29 C
+ATOM 340 C4' DC B 17 -4.462 -7.850 18.701 1.00 19.19 C
+ATOM 341 O4' DC B 17 -3.142 -7.783 18.121 1.00 20.08 O
+ATOM 342 C3' DC B 17 -4.754 -6.460 19.204 1.00 21.26 C
+ATOM 343 O3' DC B 17 -5.866 -6.375 20.121 1.00 23.03 O
+ATOM 344 C2' DC B 17 -3.399 -6.104 19.736 1.00 18.88 C
+ATOM 345 C1' DC B 17 -2.472 -6.604 18.629 1.00 18.39 C
+ATOM 346 P DC B 18 -7.007 -5.260 19.781 1.00 28.77 P
+ATOM 347 N1 DC B 18 -3.297 -1.380 18.786 1.00 18.17 N
+ATOM 348 C2 DC B 18 -2.446 -0.458 18.171 1.00 16.98 C
+ATOM 349 O2 DC B 18 -1.573 0.166 18.774 1.00 20.32 O
+ATOM 350 N3 DC B 18 -2.583 -0.258 16.848 1.00 16.82 N
+ATOM 351 C4 DC B 18 -3.505 -0.931 16.149 1.00 15.76 C
+ATOM 352 N4 DC B 18 -3.636 -0.665 14.860 1.00 13.34 N
+ATOM 353 C5 DC B 18 -4.372 -1.893 16.748 1.00 12.67 C
+ATOM 354 C6 DC B 18 -4.237 -2.080 18.066 1.00 14.81 C
+ATOM 355 OP1 DC B 18 -8.010 -5.697 20.796 1.00 27.91 O
+ATOM 356 OP2 DC B 18 -7.417 -4.926 18.375 1.00 24.48 O
+ATOM 357 O5' DC B 18 -6.346 -3.878 20.355 1.00 26.69 O
+ATOM 358 C5' DC B 18 -5.876 -3.663 21.675 1.00 22.45 C
+ATOM 359 C4' DC B 18 -4.868 -2.527 21.660 1.00 20.14 C
+ATOM 360 O4' DC B 18 -3.898 -2.791 20.621 1.00 17.95 O
+ATOM 361 C3' DC B 18 -5.383 -1.139 21.350 1.00 20.46 C
+ATOM 362 O3' DC B 18 -6.122 -0.495 22.422 1.00 22.52 O
+ATOM 363 C2' DC B 18 -4.069 -0.456 20.977 1.00 18.70 C
+ATOM 364 C1' DC B 18 -3.245 -1.549 20.252 1.00 18.68 C
+ATOM 365 P DG B 19 -7.015 0.794 21.992 1.00 18.68 P
+ATOM 366 N9 DG B 19 -3.670 3.314 18.697 1.00 8.91 N
+ATOM 367 C8 DG B 19 -4.569 2.317 18.417 1.00 7.23 C
+ATOM 368 N7 DG B 19 -4.814 2.192 17.179 1.00 8.80 N
+ATOM 369 C5 DG B 19 -4.038 3.182 16.585 1.00 8.99 C
+ATOM 370 C6 DG B 19 -3.831 3.450 15.217 1.00 9.86 C
+ATOM 371 O6 DG B 19 -4.361 2.871 14.270 1.00 14.98 O
+ATOM 372 N1 DG B 19 -2.868 4.446 14.998 1.00 8.65 N
+ATOM 373 C2 DG B 19 -2.192 5.116 15.998 1.00 8.58 C
+ATOM 374 N2 DG B 19 -1.417 6.149 15.640 1.00 8.82 N
+ATOM 375 N3 DG B 19 -2.387 4.836 17.299 1.00 9.44 N
+ATOM 376 C4 DG B 19 -3.324 3.871 17.515 1.00 8.64 C
+ATOM 377 OP1 DG B 19 -7.592 0.740 23.355 1.00 20.58 O
+ATOM 378 OP2 DG B 19 -7.881 0.644 20.808 1.00 18.98 O
+ATOM 379 O5' DG B 19 -6.137 2.085 21.765 1.00 14.67 O
+ATOM 380 C5' DG B 19 -5.282 2.635 22.743 1.00 14.92 C
+ATOM 381 C4' DG B 19 -4.265 3.471 22.044 1.00 11.67 C
+ATOM 382 O4' DG B 19 -3.668 2.725 20.993 1.00 13.34 O
+ATOM 383 C3' DG B 19 -4.831 4.632 21.315 1.00 12.46 C
+ATOM 384 O3' DG B 19 -5.233 5.692 22.194 1.00 12.97 O
+ATOM 385 C2' DG B 19 -3.646 4.994 20.460 1.00 10.60 C
+ATOM 386 C1' DG B 19 -3.149 3.663 20.010 1.00 11.00 C
+ATOM 387 P G B 20 -6.156 6.845 21.578 1.00 16.17 P
+ATOM 388 N9 G B 20 -4.621 7.966 16.781 1.00 8.70 N
+ATOM 389 C8 G B 20 -5.409 6.982 17.305 1.00 8.15 C
+ATOM 390 N7 G B 20 -5.951 6.226 16.408 1.00 9.88 N
+ATOM 391 C5 G B 20 -5.496 6.753 15.190 1.00 10.42 C
+ATOM 392 C6 G B 20 -5.780 6.342 13.855 1.00 11.50 C
+ATOM 393 O6 G B 20 -6.476 5.399 13.485 1.00 13.46 O
+ATOM 394 N1 G B 20 -5.138 7.125 12.924 1.00 8.26 N
+ATOM 395 C2 G B 20 -4.310 8.187 13.214 1.00 7.88 C
+ATOM 396 N2 G B 20 -3.735 8.801 12.170 1.00 6.62 N
+ATOM 397 N3 G B 20 -4.043 8.594 14.477 1.00 8.59 N
+ATOM 398 C4 G B 20 -4.676 7.821 15.410 1.00 7.98 C
+ATOM 399 OP1 G B 20 -6.346 7.569 22.839 1.00 11.59 O
+ATOM 400 OP2 G B 20 -7.348 6.334 20.882 1.00 19.70 O
+ATOM 401 O5' G B 20 -5.304 7.716 20.550 1.00 15.64 O
+ATOM 402 C5' G B 20 -4.166 8.497 20.960 1.00 13.60 C
+ATOM 403 C4' G B 20 -3.731 9.295 19.780 1.00 11.64 C
+ATOM 404 O4' G B 20 -3.346 8.405 18.762 1.00 12.78 O
+ATOM 405 C3' G B 20 -4.937 10.017 19.154 1.00 9.26 C
+ATOM 406 O3' G B 20 -5.162 11.232 19.849 1.00 8.82 O
+ATOM 407 C2' G B 20 -4.515 10.231 17.738 1.00 10.28 C
+ATOM 408 O2' G B 20 -3.496 11.210 17.640 1.00 14.06 O
+ATOM 409 C1' G B 20 -3.782 8.924 17.491 1.00 11.06 C
+TER 410 G B 20
+HETATM 411 N1 SPM 21 10.683 -8.783 22.839 1.00 40.13 N
+HETATM 412 C2 SPM 21 11.531 -7.621 23.379 1.00 38.06 C
+HETATM 413 C3 SPM 21 10.826 -6.312 23.033 1.00 36.69 C
+HETATM 414 C4 SPM 21 11.754 -5.116 22.994 1.00 35.02 C
+HETATM 415 N5 SPM 21 10.958 -3.909 22.549 1.00 32.86 N
+HETATM 416 C6 SPM 21 12.018 -2.878 22.231 1.00 32.94 C
+HETATM 417 C7 SPM 21 11.419 -1.515 22.220 1.00 31.05 C
+HETATM 418 C8 SPM 21 12.460 -0.586 21.671 1.00 30.79 C
+HETATM 419 C9 SPM 21 12.057 0.847 21.888 1.00 28.48 C
+HETATM 420 N10 SPM 21 13.064 1.749 21.221 1.00 28.45 N
+HETATM 421 C11 SPM 21 13.493 2.749 22.270 1.00 30.71 C
+HETATM 422 C12 SPM 21 14.237 3.946 21.699 1.00 31.37 C
+HETATM 423 C13 SPM 21 14.691 4.712 22.920 1.00 32.44 C
+HETATM 424 N14 SPM 21 14.460 6.175 22.642 1.00 34.72 N
+HETATM 425 O HOH 22 -2.974 -2.437 11.925 1.00 16.09 O
+HETATM 426 O HOH 23 4.908 -5.520 0.996 1.00 18.38 O
+HETATM 427 O HOH 24 -7.781 4.610 18.814 1.00 18.46 O
+HETATM 428 O HOH 25 -0.410 11.047 5.984 1.00 21.92 O
+HETATM 429 O HOH 26 -8.768 2.303 25.439 1.00 63.34 O
+HETATM 430 O HOH 27 2.982 -6.730 19.716 1.00 59.88 O
+HETATM 431 O HOH 28 14.965 -12.628 -1.536 1.00 20.30 O
+HETATM 432 O HOH 29 11.946 -14.326 0.320 1.00 19.82 O
+HETATM 433 O HOH 30 10.067 -5.986 15.026 1.00 53.92 O
+HETATM 434 O HOH 31 12.687 -7.091 6.513 1.00 22.27 O
+HETATM 435 O HOH 32 12.609 -9.474 8.227 1.00 37.71 O
+HETATM 436 O HOH 33 -2.941 -7.858 2.063 1.00 27.19 O
+HETATM 437 O HOH 34 7.529 -3.577 14.088 1.00 21.79 O
+HETATM 438 O HOH 35 1.254 -0.882 12.378 1.00 24.27 O
+HETATM 439 O HOH 36 3.423 0.963 13.195 1.00 29.99 O
+HETATM 440 O HOH 37 7.112 -6.175 -0.485 1.00 27.77 O
+HETATM 441 O HOH 38 -0.686 -3.219 10.199 1.00 34.51 O
+HETATM 442 O HOH 39 9.580 7.535 14.458 1.00 36.42 O
+HETATM 443 O HOH 40 13.715 -4.726 5.032 1.00 69.56 O
+HETATM 444 O HOH 41 5.720 -2.345 11.434 1.00 31.09 O
+HETATM 445 O HOH 42 3.591 6.788 4.471 1.00 54.80 O
+HETATM 446 O HOH 43 10.402 4.780 14.504 1.00 68.31 O
+HETATM 447 O HOH 44 14.574 -10.275 18.466 1.00 49.77 O
+HETATM 448 O HOH 45 9.740 9.480 0.051 1.00 32.13 O
+HETATM 449 O HOH 46 0.657 2.761 2.939 1.00 32.50 O
+HETATM 450 O HOH 47 -4.337 -5.705 11.632 1.00 61.29 O
+HETATM 451 O HOH 48 8.511 0.032 6.773 1.00 19.39 O
+HETATM 452 O HOH 49 4.696 -1.081 7.336 1.00 33.58 O
+HETATM 453 O HOH 50 15.251 -12.102 2.108 1.00 32.25 O
+HETATM 454 O HOH 51 -6.031 -4.587 15.810 1.00 44.75 O
+HETATM 455 O HOH 52 3.985 7.860 0.750 1.00 43.33 O
+HETATM 456 O HOH 53 -9.947 -8.411 16.066 1.00 42.79 O
+HETATM 457 O HOH 54 14.022 -9.173 2.574 1.00 61.84 O
+HETATM 458 O HOH 55 8.927 4.925 21.552 1.00 21.30 O
+HETATM 459 O HOH 56 12.080 -9.656 20.565 1.00 39.11 O
+HETATM 460 O HOH 57 10.264 3.453 5.213 1.00 32.36 O
+HETATM 461 O HOH 58 7.585 8.903 10.458 1.00 55.81 O
+HETATM 462 O HOH 59 -6.958 -12.129 15.577 1.00 25.61 O
+HETATM 463 O HOH 60 7.487 1.041 16.040 1.00 46.35 O
+HETATM 464 O HOH 61 -0.194 -3.247 7.396 1.00 35.93 O
+HETATM 465 O HOH 62 8.225 6.727 12.206 1.00 60.91 O
+HETATM 466 O HOH 63 -7.060 4.463 4.604 1.00 46.27 O
+HETATM 467 O HOH 64 7.946 3.533 12.709 1.00 28.03 O
+HETATM 468 O HOH 65 6.779 -1.926 8.904 1.00 41.06 O
+HETATM 469 O HOH 66 -4.616 1.948 8.938 1.00 36.90 O
+HETATM 470 O HOH 67 2.587 3.984 4.922 1.00 71.03 O
+HETATM 471 O HOH 68 -2.870 3.373 6.568 1.00 35.34 O
+HETATM 472 O HOH 69 -2.641 -4.676 8.852 1.00 65.95 O
+HETATM 473 O HOH 70 7.896 2.158 5.060 1.00 37.59 O
+HETATM 474 O HOH 71 -10.031 -4.027 18.622 1.00 67.65 O
+HETATM 475 O HOH 72 -8.176 -1.645 24.639 1.00 49.61 O
+HETATM 476 O HOH 73 17.116 0.579 15.466 1.00 47.99 O
+HETATM 477 O HOH 74 -2.555 0.759 5.884 1.00 40.81 O
+HETATM 478 O HOH 75 5.250 1.995 7.543 1.00 70.98 O
+HETATM 479 O HOH 76 -10.113 -6.723 18.202 1.00 59.20 O
+HETATM 480 O HOH 77 1.829 -2.266 9.724 1.00 75.20 O
+HETATM 481 O HOH 78 -8.873 -3.504 22.680 1.00 79.41 O
+HETATM 482 O HOH 79 -9.310 -1.446 19.391 1.00 71.79 O
+HETATM 483 O HOH 80 -6.613 0.677 10.598 1.00 80.35 O
+HETATM 484 O HOH 81 -7.134 2.452 7.202 1.00 72.90 O
+HETATM 485 O HOH 82 13.359 4.222 15.085 1.00 55.82 O
+HETATM 486 O HOH 83 -1.981 3.230 3.724 1.00 91.06 O
+HETATM 487 O HOH 84 8.014 -16.765 6.352 1.00 97.71 O
+HETATM 488 O HOH 85 13.277 -1.574 6.340 1.00 80.86 O
+HETATM 489 O HOH 86 4.216 1.820 10.481 1.00 76.69 O
+HETATM 490 O HOH 87 10.662 -11.389 23.778 1.00 49.18 O
+HETATM 491 O HOH 88 -2.029 -10.316 17.858 1.00 83.02 O
+CONECT 411 412
+CONECT 412 411 413
+CONECT 413 412 414
+CONECT 414 413 415
+CONECT 415 414 416
+CONECT 416 415 417
+CONECT 417 416 418
+CONECT 418 417 419
+CONECT 419 418 420
+CONECT 420 419 421
+CONECT 421 420 422
+CONECT 422 421 423
+CONECT 423 422 424
+CONECT 424 423
+MASTER 0 0 0 0 0 0 0 6 489 2 14 2
+END
Modified: trunk/Master/texmf-dist/doc/asymptote/examples/1overx.asy
===================================================================
--- trunk/Master/texmf-dist/doc/asymptote/examples/1overx.asy 2021-02-24 18:27:49 UTC (rev 57875)
+++ trunk/Master/texmf-dist/doc/asymptote/examples/1overx.asy 2021-02-24 18:33:44 UTC (rev 57876)
@@ -8,7 +8,7 @@
static int lastsign=0;
if(x == 0) return false;
int sign=sgn(x);
- bool b=lastsign == 0 || sign == lastsign;
+ bool b=lastsign == 0 || sign == lastsign;
lastsign=sign;
return b ? true : default;
}
Modified: trunk/Master/texmf-dist/doc/asymptote/examples/BezierPatch.asy
===================================================================
--- trunk/Master/texmf-dist/doc/asymptote/examples/BezierPatch.asy 2021-02-24 18:27:49 UTC (rev 57875)
+++ trunk/Master/texmf-dist/doc/asymptote/examples/BezierPatch.asy 2021-02-24 18:33:44 UTC (rev 57876)
@@ -5,9 +5,9 @@
surface s=surface(patch(new triple[][] {
{(0,0,0),(1,0,0),(1,0,0),(2,0,0)},
- {(0,1,0),(1,0,1),(1,0,1),(2,1,0)},
- {(0,1,0),(1,0,-1),(1,0,-1),(2,1,0)},
- {(0,2,0),(1,2,0),(1,2,0),(2,2,0)}}));
+ {(0,1,0),(1,0,1),(1,0,1),(2,1,0)},
+ {(0,1,0),(1,0,-1),(1,0,-1),(2,1,0)},
+ {(0,2,0),(1,2,0),(1,2,0),(2,2,0)}}));
draw(s,yellow);
draw(s.s[0].vequals(0.5),squarecap+2bp+blue,currentlight);
Modified: trunk/Master/texmf-dist/doc/asymptote/examples/BezierSurface.asy
===================================================================
--- trunk/Master/texmf-dist/doc/asymptote/examples/BezierSurface.asy 2021-02-24 18:27:49 UTC (rev 57875)
+++ trunk/Master/texmf-dist/doc/asymptote/examples/BezierSurface.asy 2021-02-24 18:33:44 UTC (rev 57876)
@@ -10,29 +10,33 @@
// viewpoint=getstring("viewpoint",viewpoint);
currentprojection=perspective(viewpoint);
-triple[][][] P={
+triple[][][] P=
{
+ {
{(-1.6,0,1.875),(-2.3,0,1.875),(-2.7,0,1.875),(-2.7,0,1.65),},
{(-1.6,-0.3,1.875),(-2.3,-0.3,1.875),(-2.7,-0.3,1.875),(-2.7,-0.3,1.65),},
{(-1.5,-0.3,2.1),(-2.5,-0.3,2.1),(-3,-0.3,2.1),(-3,-0.3,1.65),},
{(-1.5,0,2.1),(-2.5,0,2.1),(-3,0,2.1),(-3,0,1.65),}
- },{
+ },
+ {
{(-2.7,0,1.65),(-2.7,0,1.425),(-2.5,0,0.975),(-2,0,0.75),},
{(-2.7,-0.3,1.65),(-2.7,-0.3,1.425),(-2.5,-0.3,0.975),(-2,-0.3,0.75),},
{(-3,-0.3,1.65),(-3,-0.3,1.2),(-2.65,-0.3,0.7275),(-1.9,-0.3,0.45),},
{(-3,0,1.65),(-3,0,1.2),(-2.65,0,0.7275),(-1.9,0,0.45),}
- },{
+ },
+ {
{(-2.7,0,1.65),(-2.7,0,1.875),(-2.3,0,1.875),(-1.6,0,1.875),},
{(-2.7,0.3,1.65),(-2.7,0.3,1.875),(-2.3,0.3,1.875),(-1.6,0.3,1.875),},
{(-3,0.3,1.65),(-3,0.3,2.1),(-2.5,0.3,2.1),(-1.5,0.3,2.1),},
{(-3,0,1.65),(-3,0,2.1),(-2.5,0,2.1),(-1.5,0,2.1),}
- },{
+ },
+ {
{(-2,0,0.75),(-2.5,0,0.975),(-2.7,0,1.425),(-2.7,0,1.65),},
{(-2,0.3,0.75),(-2.5,0.3,0.975),(-2.7,0.3,1.425),(-2.7,0.3,1.65),},
{(-1.9,0.3,0.45),(-2.65,0.3,0.7275),(-3,0.3,1.2),(-3,0.3,1.65),},
{(-1.9,0,0.45),(-2.65,0,0.7275),(-3,0,1.2),(-3,0,1.65),}
- }
-};
+ }
+ };
picture pic;
size(pic,15cm);
Modified: trunk/Master/texmf-dist/doc/asymptote/examples/CDlabel.asy
===================================================================
--- trunk/Master/texmf-dist/doc/asymptote/examples/CDlabel.asy 2021-02-24 18:27:49 UTC (rev 57875)
+++ trunk/Master/texmf-dist/doc/asymptote/examples/CDlabel.asy 2021-02-24 18:33:44 UTC (rev 57876)
@@ -5,12 +5,12 @@
fill(unitcircle^^(scale(2/11.7)*unitcircle),
evenodd+rgb(124/255,205/255,124/255));
label(scale(1.1)*minipage(
-"\centering\scriptsize \textbf{\LARGE {\tt Asymptote}\\
+ "\centering\scriptsize \textbf{\LARGE {\tt Asymptote}\\
\smallskip
\small The Vector Graphics Language}\\
\smallskip
\textsc{Andy Hammerlindl, John Bowman, and Tom Prince}
-http://asymptote.sourceforge.net\\
+https://asymptote.sourceforge.io\\
",8cm),(0,0.6));
label(graphic("logo","height=7cm"),(0,-0.22));
clip(unitcircle^^(scale(2/11.7)*unitcircle),evenodd);
Modified: trunk/Master/texmf-dist/doc/asymptote/examples/Gouraud.asy
===================================================================
--- trunk/Master/texmf-dist/doc/asymptote/examples/Gouraud.asy 2021-02-24 18:27:49 UTC (rev 57875)
+++ trunk/Master/texmf-dist/doc/asymptote/examples/Gouraud.asy 2021-02-24 18:33:44 UTC (rev 57876)
@@ -1,6 +1,6 @@
size(200);
-pen[] p={red,green,blue,magenta};
+pen[] p={red,green,blue,yellow};
pair[] z={(-1,0),(0,0),(0,1),(1,0)};
int[] edges={0,0,0,1};
gouraudshade(z[0]--z[2]--z[3]--cycle,p,z,edges);
Modified: trunk/Master/texmf-dist/doc/asymptote/examples/HermiteSpline.asy
===================================================================
--- trunk/Master/texmf-dist/doc/asymptote/examples/HermiteSpline.asy 2021-02-24 18:27:49 UTC (rev 57875)
+++ trunk/Master/texmf-dist/doc/asymptote/examples/HermiteSpline.asy 2021-02-24 18:33:44 UTC (rev 57876)
@@ -1,14 +1,14 @@
import graph;
-size(140mm,70mm,IgnoreAspect);
-scale(false);
+size(140mm,70mm,IgnoreAspect);
+scale(false);
real[] x={1,3,4,5,6};
-real[] y={1,5,2,0,4};
+real[] y={1,5,2,0,4};
-marker mark=marker(scale(1mm)*cross(6,false,r=0.35),red,Fill);
+marker mark=marker(scale(1mm)*cross(6,false,r=0.35),red,Fill);
draw(graph(x,y,Hermite),"Hermite Spline",mark);
-xaxis("$x$",Bottom,LeftTicks(x));
-yaxis("$y$",Left,LeftTicks);
+xaxis("$x$",Bottom,LeftTicks(x));
+yaxis("$y$",Left,LeftTicks);
attach(legend(),point(NW),40S+30E,UnFill);
Modified: trunk/Master/texmf-dist/doc/asymptote/examples/Klein.asy
===================================================================
--- trunk/Master/texmf-dist/doc/asymptote/examples/Klein.asy 2021-02-24 18:27:49 UTC (rev 57875)
+++ trunk/Master/texmf-dist/doc/asymptote/examples/Klein.asy 2021-02-24 18:33:44 UTC (rev 57876)
@@ -2,12 +2,11 @@
size(469pt);
-currentprojection=perspective(
-camera=(25.0851928432063,-30.3337528952473,19.3728775115443),
-up=Z,
-target=(-0.590622314050054,0.692357205025578,-0.627122488455679),
-zoom=1,
-autoadjust=false);
+currentprojection=
+ perspective(camera=(25.0851928432063,-30.3337528952473,19.3728775115443),
+ up=Z,
+ target=(-0.590622314050054,0.692357205025578,-0.627122488455679),
+ zoom=1,autoadjust=false);
triple f(pair t) {
real u=t.x;
Modified: trunk/Master/texmf-dist/doc/asymptote/examples/NURBScurve.asy
===================================================================
--- trunk/Master/texmf-dist/doc/asymptote/examples/NURBScurve.asy 2021-02-24 18:27:49 UTC (rev 57875)
+++ trunk/Master/texmf-dist/doc/asymptote/examples/NURBScurve.asy 2021-02-24 18:33:44 UTC (rev 57876)
@@ -8,13 +8,14 @@
// udegree=3, nu=6;
real[] knot={0,0,0,0,0.4,0.6,1,1,1,1};
-triple[] P={
- (-31.2061,12.001,6.45082),
- (-31.3952,14.7353,6.53707),
- (-31.5909,21.277,6.70051),
- (-31.4284,25.4933,6.76745),
- (-31.5413,30.3485,6.68777),
- (-31.4896,32.2839,6.58385)
+triple[] P=
+ {
+ (-31.2061,12.001,6.45082),
+ (-31.3952,14.7353,6.53707),
+ (-31.5909,21.277,6.70051),
+ (-31.4284,25.4933,6.76745),
+ (-31.5413,30.3485,6.68777),
+ (-31.4896,32.2839,6.58385)
};
draw(P,knot,green);
Modified: trunk/Master/texmf-dist/doc/asymptote/examples/NURBSsphere.asy
===================================================================
--- trunk/Master/texmf-dist/doc/asymptote/examples/NURBSsphere.asy 2021-02-24 18:27:49 UTC (rev 57875)
+++ trunk/Master/texmf-dist/doc/asymptote/examples/NURBSsphere.asy 2021-02-24 18:33:44 UTC (rev 57876)
@@ -1,16 +1,16 @@
import three;
/* Reference:
- at article{Qin97,
- title={{Representing quadric surfaces using NURBS surfaces}},
- author={Qin, K.},
- journal={Journal of Computer Science and Technology},
- volume={12},
- number={3},
- pages={210--216},
- year={1997},
- publisher={Springer}
-}
+ @article{Qin97,
+ title={{Representing quadric surfaces using NURBS surfaces}},
+ author={Qin, K.},
+ journal={Journal of Computer Science and Technology},
+ volume={12},
+ number={3},
+ pages={210--216},
+ year={1997},
+ publisher={Springer}
+ }
*/
size(10cm);
@@ -31,8 +31,8 @@
real[][] weights=new real[3][4];
for(int i=0; i < 3; ++i)
-for(int j=0; j < 4; ++j)
- weights[i][j]=W[i]*w[j];
+ for(int j=0; j < 4; ++j)
+ weights[i][j]=W[i]*w[j];
real[] uknot={0,0,1/3,1/2,1,1};
real[] vknot={0,0,0,0,1,1,1,1};
@@ -40,7 +40,7 @@
int N=1;
for(int k=0; k < N; ++k)
-for(int i=0; i < 4; ++i)
- draw(shift(k*Z)*P[i:i+3],uknot,vknot,weights,blue);
+ for(int i=0; i < 4; ++i)
+ draw(shift(k*Z)*P[i:i+3],uknot,vknot,weights,blue);
// draw(unitsphere,red+opacity(0.1));
Modified: trunk/Master/texmf-dist/doc/asymptote/examples/NURBSsurface.asy
===================================================================
--- trunk/Master/texmf-dist/doc/asymptote/examples/NURBSsurface.asy 2021-02-24 18:27:49 UTC (rev 57875)
+++ trunk/Master/texmf-dist/doc/asymptote/examples/NURBSsurface.asy 2021-02-24 18:33:44 UTC (rev 57876)
@@ -9,43 +9,49 @@
real[] uknot={0,0,0,0,0.5,1,1,1,1};
real[] vknot={0,0,0,0,0.4,0.6,1,1,1,1};
-triple[][] P={{
- (-31.2061,12.001,6.45082),
- (-31.3952,14.7353,6.53707),
- (-31.5909,21.277,6.70051),
- (-31.4284,25.4933,6.76745),
- (-31.5413,30.3485,6.68777),
- (-31.4896,32.2839,6.58385)
- },{
- (-28.279,12.001,7.89625),
- (-28.4187,14.7353,8.00954),
- (-28.5633,21.277,8.22422),
- (-28.4433,25.4933,8.31214),
- (-28.5266,30.3485,8.20749),
- (-28.4885,32.2839,8.07099)
- },{
- (-20,12.001,10.0379),
- (-20,14.7353,10.2001),
- (-20,21.277,10.5076),
- (-20,25.4933,10.6335),
- (-20,30.3485,10.4836),
- (-20,32.2839,10.2881)
- },{
- (-11.721,12.001,7.84024),
- (-11.5813,14.7353,7.95269),
- (-11.4367,21.277,8.16575),
- (-11.5567,25.4933,8.25302),
- (-11.4734,30.3485,8.14915),
- (-11.5115,32.2839,8.01367)
- },{
- (-8.79391,12.001,6.39481),
- (-8.60483,14.7353,6.48022),
- (-8.40905,21.277,6.64204),
- (-8.57158,25.4933,6.70832),
- (-8.45874,30.3485,6.62943),
- (-8.51041,32.2839,6.52653)
- }
-};
+triple[][] P=
+ {
+ {
+ (-31.2061,12.001,6.45082),
+ (-31.3952,14.7353,6.53707),
+ (-31.5909,21.277,6.70051),
+ (-31.4284,25.4933,6.76745),
+ (-31.5413,30.3485,6.68777),
+ (-31.4896,32.2839,6.58385)
+ },
+ {
+ (-28.279,12.001,7.89625),
+ (-28.4187,14.7353,8.00954),
+ (-28.5633,21.277,8.22422),
+ (-28.4433,25.4933,8.31214),
+ (-28.5266,30.3485,8.20749),
+ (-28.4885,32.2839,8.07099)
+ },
+ {
+ (-20,12.001,10.0379),
+ (-20,14.7353,10.2001),
+ (-20,21.277,10.5076),
+ (-20,25.4933,10.6335),
+ (-20,30.3485,10.4836),
+ (-20,32.2839,10.2881)
+ },
+ {
+ (-11.721,12.001,7.84024),
+ (-11.5813,14.7353,7.95269),
+ (-11.4367,21.277,8.16575),
+ (-11.5567,25.4933,8.25302),
+ (-11.4734,30.3485,8.14915),
+ (-11.5115,32.2839,8.01367)
+ },
+ {
+ (-8.79391,12.001,6.39481),
+ (-8.60483,14.7353,6.48022),
+ (-8.40905,21.277,6.64204),
+ (-8.57158,25.4933,6.70832),
+ (-8.45874,30.3485,6.62943),
+ (-8.51041,32.2839,6.52653)
+ }
+ };
draw(P,uknot,vknot,new pen[] {red,green,blue,magenta});
Modified: trunk/Master/texmf-dist/doc/asymptote/examples/RiemannSphere.asy
===================================================================
--- trunk/Master/texmf-dist/doc/asymptote/examples/RiemannSphere.asy 2021-02-24 18:27:49 UTC (rev 57875)
+++ trunk/Master/texmf-dist/doc/asymptote/examples/RiemannSphere.asy 2021-02-24 18:33:44 UTC (rev 57876)
@@ -33,9 +33,9 @@
draw(q,1bp+heavyblue);
triple
- A=(0,0,1),
- B=(u(40),v(40),w(40)),
- C=(x(40),y(40),z(40));
+A=(0,0,1),
+B=(u(40),v(40),w(40)),
+C=(x(40),y(40),z(40));
path3 L=A--C;
draw(L,1bp+black);
Modified: trunk/Master/texmf-dist/doc/asymptote/examples/RiemannSurface.asy
===================================================================
--- trunk/Master/texmf-dist/doc/asymptote/examples/RiemannSurface.asy 2021-02-24 18:27:49 UTC (rev 57875)
+++ trunk/Master/texmf-dist/doc/asymptote/examples/RiemannSurface.asy 2021-02-24 18:33:44 UTC (rev 57876)
@@ -1,13 +1,13 @@
import graph3;
import palette;
-
+
size(200,300,keepAspect=false);
//settings.nothin=true;
-
+
currentprojection=orthographic(10,10,30);
currentlight=(10,10,5);
triple f(pair t) {return (exp(t.x)*cos(t.y),exp(t.x)*sin(t.y),t.y);}
-
+
surface s=surface(f,(-4,-2pi),(0,4pi),8,16,Spline);
s.colors(palette(s.map(zpart),Rainbow()));
draw(s,render(merge=true));
Modified: trunk/Master/texmf-dist/doc/asymptote/examples/RiemannSurfaceRoot.asy
===================================================================
--- trunk/Master/texmf-dist/doc/asymptote/examples/RiemannSurfaceRoot.asy 2021-02-24 18:27:49 UTC (rev 57875)
+++ trunk/Master/texmf-dist/doc/asymptote/examples/RiemannSurfaceRoot.asy 2021-02-24 18:33:44 UTC (rev 57876)
@@ -5,11 +5,11 @@
int n=3;
size(200,300,keepAspect=false);
-
+
currentprojection=orthographic(10,10,30);
currentlight=(10,10,5);
triple f(pair t) {return (t.x*cos(t.y),t.x*sin(t.y),t.x^(1/n)*sin(t.y/n));}
-
+
surface s=surface(f,(0,0),(1,2pi*n),8,16,Spline);
s.colors(palette(s.map(zpart),Rainbow()));
Modified: trunk/Master/texmf-dist/doc/asymptote/examples/SierpinskiGasket.asy
===================================================================
--- trunk/Master/texmf-dist/doc/asymptote/examples/SierpinskiGasket.asy 2021-02-24 18:27:49 UTC (rev 57875)
+++ trunk/Master/texmf-dist/doc/asymptote/examples/SierpinskiGasket.asy 2021-02-24 18:33:44 UTC (rev 57876)
@@ -2,15 +2,15 @@
import palette;
import three;
currentprojection=perspective(8,2,1);
-
+
triple[] M={(0,0,1),1/3*(sqrt(8),0,-1),
1/3*((sqrt(8))*Cos(120),(sqrt(8))*Sin(120),-1),
1/3*((sqrt(8))*Cos(240),(sqrt(8))*Sin(240),-1)};
-
+
int level=5;
-
+
surface s;
-
+
void recur(triple p, real u, int l) {
if(l < level)
for(triple V : M)
@@ -23,9 +23,9 @@
s.append(surface((p+u*(V+M[3]))--(p+u*(V+M[2]))--(p+u*(V+M[1]))--cycle));
}
}
-
+
recur(O,0.5,1);
-
+
s.colors(palette(s.map(zpart),Rainbow()));
-
+
draw(s,render(merge=true));
Modified: trunk/Master/texmf-dist/doc/asymptote/examples/SierpinskiSponge.asy
===================================================================
--- trunk/Master/texmf-dist/doc/asymptote/examples/SierpinskiSponge.asy 2021-02-24 18:27:49 UTC (rev 57875)
+++ trunk/Master/texmf-dist/doc/asymptote/examples/SierpinskiSponge.asy 2021-02-24 18:33:44 UTC (rev 57876)
@@ -4,36 +4,40 @@
currentprojection=orthographic(1,1,1);
-triple[] M={
- (-1,-1,-1),(0,-1,-1),(1,-1,-1),(1,0,-1),
- (1,1,-1),(0,1,-1),(-1,1,-1),(-1,0,-1),
- (-1,-1,0),(1,-1,0),(1,1,0),(-1,1,0),
- (-1,-1,1),(0,-1,1),(1,-1,1),(1,0,1),(1,1,1),(0,1,1),(-1,1,1),(-1,0,1)
-};
+triple[] M=
+ {
+ (-1,-1,-1),(0,-1,-1),(1,-1,-1),(1,0,-1),
+ (1,1,-1),(0,1,-1),(-1,1,-1),(-1,0,-1),
+ (-1,-1,0),(1,-1,0),(1,1,0),(-1,1,0),
+ (-1,-1,1),(0,-1,1),(1,-1,1),(1,0,1),(1,1,1),(0,1,1),(-1,1,1),(-1,0,1)
+ };
-surface[] Squares={
- surface((1,-1,-1)--(1,1,-1)--(1,1,1)--(1,-1,1)--cycle),
- surface((-1,-1,-1)--(-1,1,-1)--(-1,1,1)--(-1,-1,1)--cycle),
- surface((1,1,-1)--(-1,1,-1)--(-1,1,1)--(1,1,1)--cycle),
- surface((1,-1,-1)--(-1,-1,-1)--(-1,-1,1)--(1,-1,1)--cycle),
- surface((1,-1,1)--(1,1,1)--(-1,1,1)--(-1,-1,1)--cycle),
- surface((1,-1,-1)--(1,1,-1)--(-1,1,-1)--(-1,-1,-1)--cycle),
+surface[] Squares=
+ {
+ surface((1,-1,-1)--(1,1,-1)--(1,1,1)--(1,-1,1)--cycle),
+ surface((-1,-1,-1)--(-1,1,-1)--(-1,1,1)--(-1,-1,1)--cycle),
+ surface((1,1,-1)--(-1,1,-1)--(-1,1,1)--(1,1,1)--cycle),
+ surface((1,-1,-1)--(-1,-1,-1)--(-1,-1,1)--(1,-1,1)--cycle),
+ surface((1,-1,1)--(1,1,1)--(-1,1,1)--(-1,-1,1)--cycle),
+ surface((1,-1,-1)--(1,1,-1)--(-1,1,-1)--(-1,-1,-1)--cycle),
};
-int[][] SquaresPoints={
- {2,3,4,10,16,15,14,9},
- {0,7,6,11,18,19,12,8},
- {4,5,6,11,18,17,16,10},
- {2,1,0,8,12,13,14,9},
- {12,13,14,15,16,17,18,19},
- {0,1,2,3,4,5,6,7}
-};
+int[][] SquaresPoints=
+ {
+ {2,3,4,10,16,15,14,9},
+ {0,7,6,11,18,19,12,8},
+ {4,5,6,11,18,17,16,10},
+ {2,1,0,8,12,13,14,9},
+ {12,13,14,15,16,17,18,19},
+ {0,1,2,3,4,5,6,7}
+ };
-int[][] index={
- {0,2,4},{0,1},{1,2,4},{2,3},{1,3,4},{0,1},{0,3,4},{2,3},
- {4,5},{4,5},{4,5},{4,5},
- {0,2,5},{0,1},{1,2,5},{2,3},{1,3,5},{0,1},{0,3,5},{2,3}
-};
+int[][] index=
+ {
+ {0,2,4},{0,1},{1,2,4},{2,3},{1,3,4},{0,1},{0,3,4},{2,3},
+ {4,5},{4,5},{4,5},{4,5},
+ {0,2,5},{0,1},{1,2,5},{2,3},{1,3,5},{0,1},{0,3,5},{2,3}
+ };
int[] Sponge0=array(n=6,value=1);
Modified: trunk/Master/texmf-dist/doc/asymptote/examples/animations/slidemovies.asy
===================================================================
--- trunk/Master/texmf-dist/doc/asymptote/examples/animations/slidemovies.asy 2021-02-24 18:27:49 UTC (rev 57875)
+++ trunk/Master/texmf-dist/doc/asymptote/examples/animations/slidemovies.asy 2021-02-24 18:33:44 UTC (rev 57876)
@@ -16,7 +16,7 @@
usersetting();
titlepage("Slides with {\tt Asymptote}: Animations","John C. Bowman",
- "University of Alberta","\today","http://asymptote.sf.net");
+ "University of Alberta","\today","https://asymptote.sourceforge.io");
title("Embedded PDF movies (portable)");
animation a=animation("A");
Added: trunk/Master/texmf-dist/doc/asymptote/examples/axialshade.asy
===================================================================
--- trunk/Master/texmf-dist/doc/asymptote/examples/axialshade.asy (rev 0)
+++ trunk/Master/texmf-dist/doc/asymptote/examples/axialshade.asy 2021-02-24 18:33:44 UTC (rev 57876)
@@ -0,0 +1,5 @@
+size(0,100);
+
+axialshade(unitsquare,red,(0,0),blue,(1,1));
+
+
Modified: trunk/Master/texmf-dist/doc/asymptote/examples/bars3.asy
===================================================================
--- trunk/Master/texmf-dist/doc/asymptote/examples/bars3.asy 2021-02-24 18:27:49 UTC (rev 57875)
+++ trunk/Master/texmf-dist/doc/asymptote/examples/bars3.asy 2021-02-24 18:33:44 UTC (rev 57876)
@@ -1,5 +1,5 @@
import three;
-import palette;
+import palette;
import graph3;
size(300);
Modified: trunk/Master/texmf-dist/doc/asymptote/examples/centroidfg.asy
===================================================================
--- trunk/Master/texmf-dist/doc/asymptote/examples/centroidfg.asy 2021-02-24 18:27:49 UTC (rev 57875)
+++ trunk/Master/texmf-dist/doc/asymptote/examples/centroidfg.asy 2021-02-24 18:33:44 UTC (rev 57876)
@@ -8,9 +8,9 @@
draw(graph(f,a,b,operator ..),red);
draw(graph(g,a,b,operator ..),blue);
-
-xaxis();
+xaxis();
+
int n=5;
real width=(b-a)/(real) n;
@@ -18,7 +18,7 @@
real x=a+width*i;
draw((x,g(x))--(x,f(x)));
}
-
+
labelx("$a$",a);
labelx("$b$",b);
draw((a,0)--(a,g(a)),dotted);
Modified: trunk/Master/texmf-dist/doc/asymptote/examples/colorpatch.asy
===================================================================
--- trunk/Master/texmf-dist/doc/asymptote/examples/colorpatch.asy 2021-02-24 18:27:49 UTC (rev 57875)
+++ trunk/Master/texmf-dist/doc/asymptote/examples/colorpatch.asy 2021-02-24 18:33:44 UTC (rev 57876)
@@ -5,9 +5,9 @@
surface s=surface(patch(new triple[][] {
{(0,0,0),(1,0,0),(1,0,0),(2,0,0)},
- {(0,1,0),(1,0,1),(1,0,1),(2,1,0)},
- {(0,1,0),(1,0,-1),(1,0,-1),(2,1,0)},
- {(0,2,0),(1,2,0),(1,2,0),(2,2,0)}}));
+ {(0,1,0),(1,0,1),(1,0,1),(2,1,0)},
+ {(0,1,0),(1,0,-1),(1,0,-1),(2,1,0)},
+ {(0,2,0),(1,2,0),(1,2,0),(2,2,0)}}));
s.s[0].colors=new pen[] {red,green,blue,black};
draw(s,nolight);
Modified: trunk/Master/texmf-dist/doc/asymptote/examples/colorplanes.asy
===================================================================
--- trunk/Master/texmf-dist/doc/asymptote/examples/colorplanes.asy 2021-02-24 18:27:49 UTC (rev 57875)
+++ trunk/Master/texmf-dist/doc/asymptote/examples/colorplanes.asy 2021-02-24 18:33:44 UTC (rev 57876)
@@ -16,7 +16,7 @@
gouraudshade(faces.push(y),project(y),p,edges);
gouraudshade(faces.push(l),project(l),p,edges);
gouraudshade(faces.push(g),project(g),new pen[]{cyan,magenta,yellow,black},
- edges);
+ edges);
add(faces);
Modified: trunk/Master/texmf-dist/doc/asymptote/examples/conicurv.asy
===================================================================
--- trunk/Master/texmf-dist/doc/asymptote/examples/conicurv.asy 2021-02-24 18:27:49 UTC (rev 57875)
+++ trunk/Master/texmf-dist/doc/asymptote/examples/conicurv.asy 2021-02-24 18:33:44 UTC (rev 57876)
@@ -1,4 +1,4 @@
-// Original name : conicurv.mp
+// Original name : conicurv.mp
// Author : L. Nobre G.
// Translators : J. Pienaar (2004) and John Bowman (2005)
@@ -7,7 +7,7 @@
size(300,0);
-currentprojection=perspective(10,-5,5.44);
+currentprojection=perspective(10,-5,5.44);
real theta=30, width=3, shortradius=2, bord=2, refsize=1, vecsize=2;
real height=0.3, anglar=1.75, totup=3;
Modified: trunk/Master/texmf-dist/doc/asymptote/examples/contextfonts.asy
===================================================================
--- trunk/Master/texmf-dist/doc/asymptote/examples/contextfonts.asy 2021-02-24 18:27:49 UTC (rev 57875)
+++ trunk/Master/texmf-dist/doc/asymptote/examples/contextfonts.asy 2021-02-24 18:33:44 UTC (rev 57876)
@@ -1,6 +1,6 @@
settings.tex="context";
// Work around ConTeXT bug for font sizes less than 12pt:
-texpreamble("\setupbodyfont[8pt]");
+texpreamble("\setupbodyfont[8pt]");
usetypescript("iwona");
usetypescript("antykwa-torunska");
Modified: trunk/Master/texmf-dist/doc/asymptote/examples/controlsystem.asy
===================================================================
--- trunk/Master/texmf-dist/doc/asymptote/examples/controlsystem.asy 2021-02-24 18:27:49 UTC (rev 57875)
+++ trunk/Master/texmf-dist/doc/asymptote/examples/controlsystem.asy 2021-02-24 18:33:44 UTC (rev 57876)
@@ -4,7 +4,7 @@
block delay=roundrectangle("$e^{-sT_t}$",(0.33,0));
block system=roundrectangle("$\frac{s+3}{s^2+0.3s+1}$",(0.6,0));
block controller=roundrectangle("$0.06\left( 1 + \frac{1}{s}\right)$",
- (0.45,-0.25));
+ (0.45,-0.25));
block sum1=circle("",(0.15,0),mindiameter=0.3cm);
block junction1=circle("",(0.75,0),fillpen=currentpen);
@@ -16,7 +16,7 @@
add(new void(picture pic, transform t) {
blockconnector operator --=blockconnector(pic,t);
-
+
block(0,0)--Label("$u$",align=N)--Arrow--sum1--Arrow--delay--Arrow--
system--junction1--Label("$y$",align=N)--Arrow--block(1,0);
Modified: trunk/Master/texmf-dist/doc/asymptote/examples/cosaddition.asy
===================================================================
--- trunk/Master/texmf-dist/doc/asymptote/examples/cosaddition.asy 2021-02-24 18:27:49 UTC (rev 57875)
+++ trunk/Master/texmf-dist/doc/asymptote/examples/cosaddition.asy 2021-02-24 18:33:44 UTC (rev 57876)
@@ -4,7 +4,7 @@
real A=130;
real B=40;
-pair O=(0,0);
+pair O=(0,0);
pair R=(1,0);
pair P=dir(A);
pair Q=dir(B);
Modified: trunk/Master/texmf-dist/doc/asymptote/examples/cpkcolors.asy
===================================================================
--- trunk/Master/texmf-dist/doc/asymptote/examples/cpkcolors.asy 2021-02-24 18:27:49 UTC (rev 57875)
+++ trunk/Master/texmf-dist/doc/asymptote/examples/cpkcolors.asy 2021-02-24 18:33:44 UTC (rev 57876)
@@ -17,243 +17,245 @@
* License along with this library; if not, write to the Free Software
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
*/
-string[] Element={
- "Xx", // 0
- "H", // 1
- "He", // 2
- "Li", // 3
- "Be", // 4
- "B", // 5
- "C", // 6
- "N", // 7
- "O", // 8
- "F", // 9
- "Ne", // 10
- "Na", // 11
- "Mg", // 12
- "Al", // 13
- "Si", // 14
- "P", // 15
- "S", // 16
- "Cl", // 17
- "Ar", // 18
- "K", // 19
- "Ca", // 20
- "Sc", // 21
- "Ti", // 22
- "V", // 23
- "Cr", // 24
- "Mn", // 25
- "Fe", // 26
- "Co", // 27
- "Ni", // 28
- "Cu", // 29
- "Zn", // 30
- "Ga", // 31
- "Ge", // 32
- "As", // 33
- "Se", // 34
- "Br", // 35
- "Kr", // 36
- "Rb", // 37
- "Sr", // 38
- "Y", // 39
- "Zr", // 40
- "Nb", // 41
- "Mo", // 42
- "Tc", // 43
- "Ru", // 44
- "Rh", // 45
- "Pd", // 46
- "Ag", // 47
- "Cd", // 48
- "In", // 49
- "Sn", // 50
- "Sb", // 51
- "Te", // 52
- "I", // 53
- "Xe", // 54
- "Cs", // 55
- "Ba", // 56
- "La", // 57
- "Ce", // 58
- "Pr", // 59
- "Nd", // 60
- "Pm", // 61
- "Sm", // 62
- "Eu", // 63
- "Gd", // 64
- "Tb", // 65
- "Dy", // 66
- "Ho", // 67
- "Er", // 68
- "Tm", // 69
- "Yb", // 70
- "Lu", // 71
- "Hf", // 72
- "Ta", // 73
- "W", // 74
- "Re", // 75
- "Os", // 76
- "Ir", // 77
- "Pt", // 78
- "Au", // 79
- "Hg", // 80
- "Tl", // 81
- "Pb", // 82
- "Bi", // 83
- "Po", // 84
- "At", // 85
- "Rn", // 86
- "Fr", // 87
- "Ra", // 88
- "Ac", // 89
- "Th", // 90
- "Pa", // 91
- "U", // 92
- "Np", // 93
- "Pu", // 94
- "Am", // 95
- "Cm", // 96
- "Bk", // 97
- "Cf", // 98
- "Es", // 99
- "Fm", // 100
- "Md", // 101
- "No", // 102
- "Lr", // 103
- "Rf", // 104
- "Db", // 105
- "Sg", // 106
- "Bh", // 107
- "Hs", // 108
- "Mt", // 109
- /*
- "Ds", // 110
- "Uuu",// 111
- "Uub",// 112
- "Uut",// 113
- "Uuq",// 114
- "Uup",// 115
- "Uuh",// 116
- "Uus",// 117
- "Uuo",// 118
- */
-};
+string[] Element=
+ {
+ "Xx", // 0
+ "H", // 1
+ "He", // 2
+ "Li", // 3
+ "Be", // 4
+ "B", // 5
+ "C", // 6
+ "N", // 7
+ "O", // 8
+ "F", // 9
+ "Ne", // 10
+ "Na", // 11
+ "Mg", // 12
+ "Al", // 13
+ "Si", // 14
+ "P", // 15
+ "S", // 16
+ "Cl", // 17
+ "Ar", // 18
+ "K", // 19
+ "Ca", // 20
+ "Sc", // 21
+ "Ti", // 22
+ "V", // 23
+ "Cr", // 24
+ "Mn", // 25
+ "Fe", // 26
+ "Co", // 27
+ "Ni", // 28
+ "Cu", // 29
+ "Zn", // 30
+ "Ga", // 31
+ "Ge", // 32
+ "As", // 33
+ "Se", // 34
+ "Br", // 35
+ "Kr", // 36
+ "Rb", // 37
+ "Sr", // 38
+ "Y", // 39
+ "Zr", // 40
+ "Nb", // 41
+ "Mo", // 42
+ "Tc", // 43
+ "Ru", // 44
+ "Rh", // 45
+ "Pd", // 46
+ "Ag", // 47
+ "Cd", // 48
+ "In", // 49
+ "Sn", // 50
+ "Sb", // 51
+ "Te", // 52
+ "I", // 53
+ "Xe", // 54
+ "Cs", // 55
+ "Ba", // 56
+ "La", // 57
+ "Ce", // 58
+ "Pr", // 59
+ "Nd", // 60
+ "Pm", // 61
+ "Sm", // 62
+ "Eu", // 63
+ "Gd", // 64
+ "Tb", // 65
+ "Dy", // 66
+ "Ho", // 67
+ "Er", // 68
+ "Tm", // 69
+ "Yb", // 70
+ "Lu", // 71
+ "Hf", // 72
+ "Ta", // 73
+ "W", // 74
+ "Re", // 75
+ "Os", // 76
+ "Ir", // 77
+ "Pt", // 78
+ "Au", // 79
+ "Hg", // 80
+ "Tl", // 81
+ "Pb", // 82
+ "Bi", // 83
+ "Po", // 84
+ "At", // 85
+ "Rn", // 86
+ "Fr", // 87
+ "Ra", // 88
+ "Ac", // 89
+ "Th", // 90
+ "Pa", // 91
+ "U", // 92
+ "Np", // 93
+ "Pu", // 94
+ "Am", // 95
+ "Cm", // 96
+ "Bk", // 97
+ "Cf", // 98
+ "Es", // 99
+ "Fm", // 100
+ "Md", // 101
+ "No", // 102
+ "Lr", // 103
+ "Rf", // 104
+ "Db", // 105
+ "Sg", // 106
+ "Bh", // 107
+ "Hs", // 108
+ "Mt", // 109
+ /*
+ "Ds", // 110
+ "Uuu",// 111
+ "Uub",// 112
+ "Uut",// 113
+ "Uuq",// 114
+ "Uup",// 115
+ "Uuh",// 116
+ "Uus",// 117
+ "Uuo",// 118
+ */
+ };
// Default table of CPK atom colors
// (ghemical colors with a few proposed modifications).
-string[] Hexcolor={
- "FF1493", // Xx 0
- "FFFFFF", // H 1
- "D9FFFF", // He 2
- "CC80FF", // Li 3
- "C2FF00", // Be 4
- "FFB5B5", // B 5
- "909090", // C 6 - changed from ghemical
- "3050F8", // N 7 - changed from ghemical
- "FF0D0D", // O 8
- "90E050", // F 9 - changed from ghemical
- "B3E3F5", // Ne 10
- "AB5CF2", // Na 11
- "8AFF00", // Mg 12
- "BFA6A6", // Al 13
- "F0C8A0", // Si 14 - changed from ghemical
- "FF8000", // P 15
- "FFFF30", // S 16
- "1FF01F", // Cl 17
- "80D1E3", // Ar 18
- "8F40D4", // K 19
- "3DFF00", // Ca 20
- "E6E6E6", // Sc 21
- "BFC2C7", // Ti 22
- "A6A6AB", // V 23
- "8A99C7", // Cr 24
- "9C7AC7", // Mn 25
- "E06633", // Fe 26 - changed from ghemical
- "F090A0", // Co 27 - changed from ghemical
- "50D050", // Ni 28 - changed from ghemical
- "C88033", // Cu 29 - changed from ghemical
- "7D80B0", // Zn 30
- "C28F8F", // Ga 31
- "668F8F", // Ge 32
- "BD80E3", // As 33
- "FFA100", // Se 34
- "A62929", // Br 35
- "5CB8D1", // Kr 36
- "702EB0", // Rb 37
- "00FF00", // Sr 38
- "94FFFF", // Y 39
- "94E0E0", // Zr 40
- "73C2C9", // Nb 41
- "54B5B5", // Mo 42
- "3B9E9E", // Tc 43
- "248F8F", // Ru 44
- "0A7D8C", // Rh 45
- "006985", // Pd 46
- "C0C0C0", // Ag 47 - changed from ghemical
- "FFD98F", // Cd 48
- "A67573", // In 49
- "668080", // Sn 50
- "9E63B5", // Sb 51
- "D47A00", // Te 52
- "940094", // I 53
- "429EB0", // Xe 54
- "57178F", // Cs 55
- "00C900", // Ba 56
- "70D4FF", // La 57
- "FFFFC7", // Ce 58
- "D9FFC7", // Pr 59
- "C7FFC7", // Nd 60
- "A3FFC7", // Pm 61
- "8FFFC7", // Sm 62
- "61FFC7", // Eu 63
- "45FFC7", // Gd 64
- "30FFC7", // Tb 65
- "1FFFC7", // Dy 66
- "00FF9C", // Ho 67
- "00E675", // Er 68
- "00D452", // Tm 69
- "00BF38", // Yb 70
- "00AB24", // Lu 71
- "4DC2FF", // Hf 72
- "4DA6FF", // Ta 73
- "2194D6", // W 74
- "267DAB", // Re 75
- "266696", // Os 76
- "175487", // Ir 77
- "D0D0E0", // Pt 78 - changed from ghemical
- "FFD123", // Au 79 - changed from ghemical
- "B8B8D0", // Hg 80 - changed from ghemical
- "A6544D", // Tl 81
- "575961", // Pb 82
- "9E4FB5", // Bi 83
- "AB5C00", // Po 84
- "754F45", // At 85
- "428296", // Rn 86
- "420066", // Fr 87
- "007D00", // Ra 88
- "70ABFA", // Ac 89
- "00BAFF", // Th 90
- "00A1FF", // Pa 91
- "008FFF", // U 92
- "0080FF", // Np 93
- "006BFF", // Pu 94
- "545CF2", // Am 95
- "785CE3", // Cm 96
- "8A4FE3", // Bk 97
- "A136D4", // Cf 98
- "B31FD4", // Es 99
- "B31FBA", // Fm 100
- "B30DA6", // Md 101
- "BD0D87", // No 102
- "C70066", // Lr 103
- "CC0059", // Rf 104
- "D1004F", // Db 105
- "D90045", // Sg 106
- "E00038", // Bh 107
- "E6002E", // Hs 108
- "EB0026" // Mt 109
-};
+string[] Hexcolor=
+ {
+ "FF1493", // Xx 0
+ "FFFFFF", // H 1
+ "D9FFFF", // He 2
+ "CC80FF", // Li 3
+ "C2FF00", // Be 4
+ "FFB5B5", // B 5
+ "909090", // C 6 - changed from ghemical
+ "3050F8", // N 7 - changed from ghemical
+ "FF0D0D", // O 8
+ "90E050", // F 9 - changed from ghemical
+ "B3E3F5", // Ne 10
+ "AB5CF2", // Na 11
+ "8AFF00", // Mg 12
+ "BFA6A6", // Al 13
+ "F0C8A0", // Si 14 - changed from ghemical
+ "FF8000", // P 15
+ "FFFF30", // S 16
+ "1FF01F", // Cl 17
+ "80D1E3", // Ar 18
+ "8F40D4", // K 19
+ "3DFF00", // Ca 20
+ "E6E6E6", // Sc 21
+ "BFC2C7", // Ti 22
+ "A6A6AB", // V 23
+ "8A99C7", // Cr 24
+ "9C7AC7", // Mn 25
+ "E06633", // Fe 26 - changed from ghemical
+ "F090A0", // Co 27 - changed from ghemical
+ "50D050", // Ni 28 - changed from ghemical
+ "C88033", // Cu 29 - changed from ghemical
+ "7D80B0", // Zn 30
+ "C28F8F", // Ga 31
+ "668F8F", // Ge 32
+ "BD80E3", // As 33
+ "FFA100", // Se 34
+ "A62929", // Br 35
+ "5CB8D1", // Kr 36
+ "702EB0", // Rb 37
+ "00FF00", // Sr 38
+ "94FFFF", // Y 39
+ "94E0E0", // Zr 40
+ "73C2C9", // Nb 41
+ "54B5B5", // Mo 42
+ "3B9E9E", // Tc 43
+ "248F8F", // Ru 44
+ "0A7D8C", // Rh 45
+ "006985", // Pd 46
+ "C0C0C0", // Ag 47 - changed from ghemical
+ "FFD98F", // Cd 48
+ "A67573", // In 49
+ "668080", // Sn 50
+ "9E63B5", // Sb 51
+ "D47A00", // Te 52
+ "940094", // I 53
+ "429EB0", // Xe 54
+ "57178F", // Cs 55
+ "00C900", // Ba 56
+ "70D4FF", // La 57
+ "FFFFC7", // Ce 58
+ "D9FFC7", // Pr 59
+ "C7FFC7", // Nd 60
+ "A3FFC7", // Pm 61
+ "8FFFC7", // Sm 62
+ "61FFC7", // Eu 63
+ "45FFC7", // Gd 64
+ "30FFC7", // Tb 65
+ "1FFFC7", // Dy 66
+ "00FF9C", // Ho 67
+ "00E675", // Er 68
+ "00D452", // Tm 69
+ "00BF38", // Yb 70
+ "00AB24", // Lu 71
+ "4DC2FF", // Hf 72
+ "4DA6FF", // Ta 73
+ "2194D6", // W 74
+ "267DAB", // Re 75
+ "266696", // Os 76
+ "175487", // Ir 77
+ "D0D0E0", // Pt 78 - changed from ghemical
+ "FFD123", // Au 79 - changed from ghemical
+ "B8B8D0", // Hg 80 - changed from ghemical
+ "A6544D", // Tl 81
+ "575961", // Pb 82
+ "9E4FB5", // Bi 83
+ "AB5C00", // Po 84
+ "754F45", // At 85
+ "428296", // Rn 86
+ "420066", // Fr 87
+ "007D00", // Ra 88
+ "70ABFA", // Ac 89
+ "00BAFF", // Th 90
+ "00A1FF", // Pa 91
+ "008FFF", // U 92
+ "0080FF", // Np 93
+ "006BFF", // Pu 94
+ "545CF2", // Am 95
+ "785CE3", // Cm 96
+ "8A4FE3", // Bk 97
+ "A136D4", // Cf 98
+ "B31FD4", // Es 99
+ "B31FBA", // Fm 100
+ "B30DA6", // Md 101
+ "BD0D87", // No 102
+ "C70066", // Lr 103
+ "CC0059", // Rf 104
+ "D1004F", // Db 105
+ "D90045", // Sg 106
+ "E00038", // Bh 107
+ "E6002E", // Hs 108
+ "EB0026" // Mt 109
+ };
Modified: trunk/Master/texmf-dist/doc/asymptote/examples/curvedlabel3.asy
===================================================================
--- trunk/Master/texmf-dist/doc/asymptote/examples/curvedlabel3.asy 2021-02-24 18:27:49 UTC (rev 57875)
+++ trunk/Master/texmf-dist/doc/asymptote/examples/curvedlabel3.asy 2021-02-24 18:33:44 UTC (rev 57876)
@@ -8,7 +8,7 @@
\textbf{Asymptote} (implemented with {\tt texpath}).}";
string txt2="This is a test of curved labels in Asymptote\\(implemented
-without the {\tt PSTricks pstextpath} macro).";
+without the {\tt PSTricks pstextpath} macro).";
draw(surface(g),paleblue+opacity(0.5));
draw(labelpath(txt1,subpath(g,0,reltime(g,0.95)),angle=-90),orange);
Modified: trunk/Master/texmf-dist/doc/asymptote/examples/diatom.asy
===================================================================
--- trunk/Master/texmf-dist/doc/asymptote/examples/diatom.asy 2021-02-24 18:27:49 UTC (rev 57875)
+++ trunk/Master/texmf-dist/doc/asymptote/examples/diatom.asy 2021-02-24 18:33:44 UTC (rev 57876)
@@ -40,7 +40,7 @@
real[] P=percentage[taxon];
if(max(P) < ignorebelow) continue;
final=taxon;
-}
+}
real angle=45;
real L=3cm;
@@ -100,10 +100,10 @@
pair z1=t*z+v;
pair w1=z1+Ldir;
draw[i]=new void(frame f) {
- path g=z0--(z0.x+(ymax-z0.y)/Tan(angle),ymax)--
- (z1.x+(ymax-z1.y)/Tan(angle),ymax)--z1;
- draw(f,g);
- label(f,group[i],point(g,1.5),align);
+ path g=z0--(z0.x+(ymax-z0.y)/Tan(angle),ymax)--
+ (z1.x+(ymax-z1.y)/Tan(angle),ymax)--z1;
+ draw(f,g);
+ label(f,group[i],point(g,1.5),align);
};
});
}
@@ -113,7 +113,7 @@
if(taxon == 0) yaxis(pic,depthlabel,Left,RightTicks(0,10),above=true);
if(taxon == final) yaxis(pic,Right,LeftTicks("%",0,10),above=true);
-
+
add(shift(location,0)*pic);
location += pic.userMax().x;
}
Modified: trunk/Master/texmf-dist/doc/asymptote/examples/dimension.asy
===================================================================
--- trunk/Master/texmf-dist/doc/asymptote/examples/dimension.asy 2021-02-24 18:27:49 UTC (rev 57875)
+++ trunk/Master/texmf-dist/doc/asymptote/examples/dimension.asy 2021-02-24 18:33:44 UTC (rev 57876)
@@ -1,7 +1,7 @@
-size(12cm,0);
-
+size(12cm,0);
+
void distance(picture pic=currentpicture, pair A, pair B, Label L="", real n=0,
- pen p=currentpen)
+ pen p=currentpen)
{
real d=3mm;
path g=A--B;
@@ -9,15 +9,15 @@
pic.add(new void(frame f, transform t) {
picture opic;
path G=T*t*g;
- draw(opic,Label(L,Center,UnFill(1)),G,p,Arrows(NoFill),Bars,PenMargins);
+ draw(opic,Label(L,Center,UnFill(1)),G,p,Arrows(NoFill),Bars,PenMargins);
add(f,opic.fit());
});
pic.addBox(min(g),max(g),T*min(p),T*max(p));
-}
-
-pair A=(0,0), B=(3,3);
-
-dot(A);
-dot(B);
-
-distance(A,B,"$\ell$",1);
+}
+
+pair A=(0,0), B=(3,3);
+
+dot(A);
+dot(B);
+
+distance(A,B,"$\ell$",1);
Modified: trunk/Master/texmf-dist/doc/asymptote/examples/electromagnetic.asy
===================================================================
--- trunk/Master/texmf-dist/doc/asymptote/examples/electromagnetic.asy 2021-02-24 18:27:49 UTC (rev 57875)
+++ trunk/Master/texmf-dist/doc/asymptote/examples/electromagnetic.asy 2021-02-24 18:33:44 UTC (rev 57876)
@@ -1,47 +1,47 @@
-import graph;
+import graph;
import palette;
-texpreamble("\usepackage[amssymb,thinqspace,thinspace]{SIunits}");
-
-size(800,200);
-
+texpreamble("\usepackage[amssymb,thinqspace,thinspace]{SIunits}");
+
+size(800,200);
+
real c=3e8;
real nm=1e-9;
-real freq(real lambda) {return c/(lambda*nm);}
-real lambda(real f) {return c/(f*nm);}
-
-real fmin=10;
-real fmax=1e23;
-
-scale(Log(true),Linear(true));
-xlimits(fmin,fmax);
-ylimits(0,1);
-
+real freq(real lambda) {return c/(lambda*nm);}
+real lambda(real f) {return c/(f*nm);}
+
+real fmin=10;
+real fmax=1e23;
+
+scale(Log(true),Linear(true));
+xlimits(fmin,fmax);
+ylimits(0,1);
+
real uv=freq(400);
real ir=freq(700);
-
+
bounds visible=bounds(Scale(uv).x,Scale(ir).x);
palette(visible,uv,ir+(0,2),Bottom,Rainbow(),invisible);
-xaxis(Label("\hertz",1),Bottom,RightTicks,above=true);
-
+xaxis(Label("\hertz",1),Bottom,RightTicks,above=true);
+
real log10Left(real x) {return -log10(x);}
real pow10Left(real x) {return pow10(-x);}
scaleT LogLeft=scaleT(log10Left,pow10Left,logarithmic=true);
-picture q=secondaryX(new void(picture p) {
- scale(p,LogLeft,Linear);
+picture q=secondaryX(new void(picture p) {
+ scale(p,LogLeft,Linear);
xlimits(p,lambda(fmax),lambda(fmin));
- ylimits(p,0,1);
- xaxis(p,Label("\nano\metre",1,0.01N),Top,LeftTicks(DefaultLogFormat,n=10));
- });
-
-add(q,above=true);
+ ylimits(p,0,1);
+ xaxis(p,Label("\nano\metre",1,0.01N),Top,LeftTicks(DefaultLogFormat,n=10));
+ });
+add(q,above=true);
+
margin margin=PenMargin(0,0);
-draw("radio",Scale((10,1))--Scale((5e12,1)),S,Arrow);
+draw("radio",Scale((10,1))--Scale((5e12,1)),S,Arrow);
draw("infrared",Scale((1e12,1.75))--Scale(shift(0,1.75)*ir),LeftSide,Arrows,margin);
draw("UV",Scale(shift(0,1.75)*uv)--Scale((1e17,1.76)),LeftSide,Arrows,margin);
-draw("x-rays",Scale((1e16,1))--Scale((1e21,1)),RightSide,Arrows);
-draw("$\gamma$-rays",Scale((fmax,1.75))--Scale((2e18,1.75)),Arrow);
+draw("x-rays",Scale((1e16,1))--Scale((1e21,1)),RightSide,Arrows);
+draw("$\gamma$-rays",Scale((fmax,1.75))--Scale((2e18,1.75)),Arrow);
Modified: trunk/Master/texmf-dist/doc/asymptote/examples/elliptic.asy
===================================================================
--- trunk/Master/texmf-dist/doc/asymptote/examples/elliptic.asy 2021-02-24 18:27:49 UTC (rev 57875)
+++ trunk/Master/texmf-dist/doc/asymptote/examples/elliptic.asy 2021-02-24 18:33:44 UTC (rev 57876)
@@ -74,7 +74,7 @@
curve c; c.a=-1; c.b=4;
-pair oncurve(real x)
+pair oncurve(real x)
{
return (x,sqrt(c.y2(x)));
}
@@ -111,5 +111,5 @@
add(output,currentpicture.fit(),(0.5cm,0),E);
shipout(output);
-
+
restore();
Modified: trunk/Master/texmf-dist/doc/asymptote/examples/equilchord.asy
===================================================================
--- trunk/Master/texmf-dist/doc/asymptote/examples/equilchord.asy 2021-02-24 18:27:49 UTC (rev 57875)
+++ trunk/Master/texmf-dist/doc/asymptote/examples/equilchord.asy 2021-02-24 18:33:44 UTC (rev 57876)
@@ -6,7 +6,7 @@
real t=0.5;
real F(pair z) {
- return (z.x^2+z.y^2 <= 1) ? sqrt(3)*(sqrt(1-z.x^2)-abs(z.y)) : 0;
+ return (z.x^2+z.y^2 <= 1) ? sqrt(3)*(sqrt(1-z.x^2)-abs(z.y)) : 0;
}
real a=1.5;
Modified: trunk/Master/texmf-dist/doc/asymptote/examples/exp.asy
===================================================================
--- trunk/Master/texmf-dist/doc/asymptote/examples/exp.asy 2021-02-24 18:27:49 UTC (rev 57875)
+++ trunk/Master/texmf-dist/doc/asymptote/examples/exp.asy 2021-02-24 18:33:44 UTC (rev 57876)
@@ -4,11 +4,11 @@
real f(real x) {return exp(x);}
pair F(real x) {return (x,f(x));}
+draw(graph(f,-4,2,operator ..),red);
+
xaxis("$x$");
yaxis("$y$",0);
-draw(graph(f,-4,2,operator ..),red);
-
labely(1,E);
label("$e^x$",F(1),SE);
Modified: trunk/Master/texmf-dist/doc/asymptote/examples/fequlogo.asy
===================================================================
--- trunk/Master/texmf-dist/doc/asymptote/examples/fequlogo.asy 2021-02-24 18:27:49 UTC (rev 57875)
+++ trunk/Master/texmf-dist/doc/asymptote/examples/fequlogo.asy 2021-02-24 18:33:44 UTC (rev 57876)
@@ -4,7 +4,7 @@
size(200,0);
size3(200);
-if(settings.render < 0) settings.render=8;
+if(settings.render < 0) settings.render=8;
texpreamble("\usepackage[T1]{fontenc}");
texpreamble("\usepackage{ccfonts,eulervm}");
@@ -34,4 +34,4 @@
draw(f,surface(invert(box(min(f,P),max(f,P)),min3(f),P),
new pen[] {orange,red,yellow,brown}+opacity(0.9)));
}
-);
+ );
Modified: trunk/Master/texmf-dist/doc/asymptote/examples/filesurface.asy
===================================================================
--- trunk/Master/texmf-dist/doc/asymptote/examples/filesurface.asy 2021-02-24 18:27:49 UTC (rev 57875)
+++ trunk/Master/texmf-dist/doc/asymptote/examples/filesurface.asy 2021-02-24 18:33:44 UTC (rev 57876)
@@ -19,7 +19,7 @@
real[] level=uniform(min(f)*(1-sqrtEpsilon),max(f)*(1+sqrtEpsilon),4);
s.colors(palette(s.map(new real(triple v) {return find(level >= v.z);}),
- Rainbow()));
+ Rainbow()));
draw(s,meshpen=thick(),render(merge=true));
@@ -32,11 +32,11 @@
zaxis3("$z$",Bounds,InTicks);
/*
-picture palette;
-size3(palette,1cm);
-draw(palette,unitcube,red);
-frame F=palette.fit3();
-add(F,(M.x,m.y,m.z));
+ picture palette;
+ size3(palette,1cm);
+ draw(palette,unitcube,red);
+ frame F=palette.fit3();
+ add(F,(M.x,m.y,m.z));
*/
currentprojection=perspective(camera=target+realmult(dir(68,225),M-m),
Modified: trunk/Master/texmf-dist/doc/asymptote/examples/fillcontour.asy
===================================================================
--- trunk/Master/texmf-dist/doc/asymptote/examples/fillcontour.asy 2021-02-24 18:27:49 UTC (rev 57875)
+++ trunk/Master/texmf-dist/doc/asymptote/examples/fillcontour.asy 2021-02-24 18:33:44 UTC (rev 57876)
@@ -15,7 +15,7 @@
defaultpen(1bp);
bounds range=bounds(-1,1);
-
+
real[] Cvals=uniform(range.min,range.max,Divs);
guide[][] g=contour(f,a,b,Cvals,N,operator --);
Modified: trunk/Master/texmf-dist/doc/asymptote/examples/fin.asy
===================================================================
--- trunk/Master/texmf-dist/doc/asymptote/examples/fin.asy 2021-02-24 18:27:49 UTC (rev 57875)
+++ trunk/Master/texmf-dist/doc/asymptote/examples/fin.asy 2021-02-24 18:33:44 UTC (rev 57876)
@@ -2,7 +2,7 @@
import palette;
int N = 26;
-real[] C = array(N,0);
+real[] C = array(N,0);
real[][] A = new real[N][N];
for(int i = 0; i < N; ++i)
for(int j = 0; j < N; ++j)
@@ -46,23 +46,23 @@
// interior nodes
for(int m = 2; m<13; ++m)
-{
- A[i][indexof(m,2)] = -4;
- A[i][indexof(m-1,2)] = A[i][indexof(m+1,2)] = 1;
- A[i][indexof(m,1)] = 2;
- C[i] = 0;
- ++i;
-}
+ {
+ A[i][indexof(m,2)] = -4;
+ A[i][indexof(m-1,2)] = A[i][indexof(m+1,2)] = 1;
+ A[i][indexof(m,1)] = 2;
+ C[i] = 0;
+ ++i;
+ }
// convective bottom side nodes
for(int m = 2; m<13; ++m)
-{
- A[i][indexof(m,1)] = -(2+h*delta/k);
- A[i][indexof(m-1,1)] = A[i][indexof(m+1,1)] = 0.5;
- A[i][indexof(m,2)] = 1;
- C[i] = -h*delta*Tinf/k;
- ++i;
-}
+ {
+ A[i][indexof(m,1)] = -(2+h*delta/k);
+ A[i][indexof(m-1,1)] = A[i][indexof(m+1,1)] = 0.5;
+ A[i][indexof(m,2)] = 1;
+ C[i] = -h*delta*Tinf/k;
+ ++i;
+ }
// convective bottom right corner node
A[i][indexof(13,2)] = A[i][indexof(12,1)] = 0.5;
@@ -115,18 +115,18 @@
draw(shift(0,1,0)*rightsquare,lookupColour(1,2));
for(int i = 2; i < 13; ++i)
-{
- draw(shift(i-1,1,0)*square,lookupColour(i,2));
-}
+ {
+ draw(shift(i-1,1,0)*square,lookupColour(i,2));
+ }
draw(shift(12,1,0)*leftsquare,lookupColour(13,2));
draw(shift(0,2,0)*SEcorner,lookupColour(1,3));
draw(shift(0,0,0)*NEcorner,lookupColour(1,1));
for(int i = 2; i < 13; ++i)
-{
- draw(shift(i-1,0,0)*topsquare,lookupColour(i,1));
- draw(shift(i-1,2,0)*bottomsquare,lookupColour(i,3));
-}
+ {
+ draw(shift(i-1,0,0)*topsquare,lookupColour(i,1));
+ draw(shift(i-1,2,0)*bottomsquare,lookupColour(i,3));
+ }
draw(shift(12,2,0)*SWcorner,lookupColour(13,3));
draw(shift(12,0,0)*NWcorner,lookupColour(13,1));
Modified: trunk/Master/texmf-dist/doc/asymptote/examples/floatingdisk.asy
===================================================================
--- trunk/Master/texmf-dist/doc/asymptote/examples/floatingdisk.asy 2021-02-24 18:27:49 UTC (rev 57875)
+++ trunk/Master/texmf-dist/doc/asymptote/examples/floatingdisk.asy 2021-02-24 18:33:44 UTC (rev 57876)
@@ -1,28 +1,28 @@
-import trembling;
-if(settings.outformat == "")
- settings.outformat="pdf";
+import trembling;
+if(settings.outformat == "")
+ settings.outformat="pdf";
-size(6cm,0);
-
-real R=1/5;
-real h=0.5;
-real d=1/12;
-real l=.7;
-
-pair pA=(-l,0);
-pair pB=(l,0);
+size(6cm,0);
+real R=1/5;
+real h=0.5;
+real d=1/12;
+real l=.7;
+
+pair pA=(-l,0);
+pair pB=(l,0);
+
tremble tr=tremble(angle=10,frequency=0.1,random=50,fuzz=1);
-path waterline=tr.deform(pA..pB);
+path waterline=tr.deform(pA..pB);
-path disk=shift(0,-d)*scale(R)*unitcircle;
-path water=waterline--(l,-h)--(-l,-h)--(-l,0)--cycle;
-path container=(l,1/7)--(l,-h)--(-l,-h)--(-l,1/7);
-
-filldraw(disk,red,linewidth(.3));
-fill(water,mediumgrey+opacity(0.5));
-draw(waterline);
-
-draw(container,linewidth(1.5));
-
+path disk=shift(0,-d)*scale(R)*unitcircle;
+path water=waterline--(l,-h)--(-l,-h)--(-l,0)--cycle;
+path container=(l,1/7)--(l,-h)--(-l,-h)--(-l,1/7);
+
+filldraw(disk,red,linewidth(.3));
+fill(water,mediumgrey+opacity(0.5));
+draw(waterline);
+
+draw(container,linewidth(1.5));
+
shipout(bbox(2mm));
Modified: trunk/Master/texmf-dist/doc/asymptote/examples/floor.asy
===================================================================
--- trunk/Master/texmf-dist/doc/asymptote/examples/floor.asy 2021-02-24 18:27:49 UTC (rev 57875)
+++ trunk/Master/texmf-dist/doc/asymptote/examples/floor.asy 2021-02-24 18:33:44 UTC (rev 57876)
@@ -10,7 +10,7 @@
static real lasty;
static bool first=true;
real y=floor(x);
- bool samebranch=first || lasty == y;
+ bool samebranch=first || lasty == y;
first=false;
if(samebranch) lasty=x;
else {
@@ -21,7 +21,7 @@
return samebranch ? true : default;
};
-draw(graph(Floor,-5.5,5.5,500,branch));
+draw(graph(Floor,-5.5,5.5,500,branch));
axes("$x$",rotate(0)*"$\lfloor x\rfloor$",red);
dot(Close);
Modified: trunk/Master/texmf-dist/doc/asymptote/examples/flowchartdemo.asy
===================================================================
--- trunk/Master/texmf-dist/doc/asymptote/examples/flowchartdemo.asy 2021-02-24 18:27:49 UTC (rev 57875)
+++ trunk/Master/texmf-dist/doc/asymptote/examples/flowchartdemo.asy 2021-02-24 18:33:44 UTC (rev 57876)
@@ -3,8 +3,8 @@
import flowchart;
block block1=rectangle(Label("Example",magenta),
- pack(Label("Start:",heavygreen),"",Label("$A:=0$",blue),
- "$B:=1$"),(-0.5,3),palegreen,paleblue,red);
+ pack(Label("Start:",heavygreen),"",Label("$A:=0$",blue),
+ "$B:=1$"),(-0.5,3),palegreen,paleblue,red);
block block2=diamond(Label("Choice?",blue),(0,2),palegreen,red);
block block3=roundrectangle("Do something",(-1,1));
block block4=bevel("Don't do something",(1,1));
Modified: trunk/Master/texmf-dist/doc/asymptote/examples/gamma.asy
===================================================================
--- trunk/Master/texmf-dist/doc/asymptote/examples/gamma.asy 2021-02-24 18:27:49 UTC (rev 57875)
+++ trunk/Master/texmf-dist/doc/asymptote/examples/gamma.asy 2021-02-24 18:33:44 UTC (rev 57876)
@@ -12,7 +12,7 @@
}
draw(graph(gamma,-4,4,n=2000,branch),red);
-
+
scale(false);
xlimits(-4,4);
ylimits(-6,6);
Modified: trunk/Master/texmf-dist/doc/asymptote/examples/gamma3.asy
===================================================================
--- trunk/Master/texmf-dist/doc/asymptote/examples/gamma3.asy 2021-02-24 18:27:49 UTC (rev 57875)
+++ trunk/Master/texmf-dist/doc/asymptote/examples/gamma3.asy 2021-02-24 18:33:44 UTC (rev 57876)
@@ -7,7 +7,7 @@
real X=4.5;
real M=abs(gamma((X,0)));
-pair Gamma(pair z)
+pair Gamma(pair z)
{
return (z.x > 0 || z != floor(z.x)) ? gamma(z) : M;
}
Modified: trunk/Master/texmf-dist/doc/asymptote/examples/genustwo.asy
===================================================================
--- trunk/Master/texmf-dist/doc/asymptote/examples/genustwo.asy 2021-02-24 18:27:49 UTC (rev 57875)
+++ trunk/Master/texmf-dist/doc/asymptote/examples/genustwo.asy 2021-02-24 18:33:44 UTC (rev 57876)
@@ -12,9 +12,9 @@
return (r-2)^2 + z^2 - tuberadius^2;
}
-// Take the union of the two tangent tori (by taking
+// Take the union of the two tangent tori (by taking
// the product of the functions defining them). Then
-// add (or subtract) a bit of noise to smooth things
+// add (or subtract) a bit of noise to smooth things
// out.
real f(real x, real y, real z) {
real f1 = toruscontour(x - 2 - tuberadius, y, z);
@@ -22,15 +22,15 @@
return f1 * f2 - 0.1;
}
-// The noisy function extends a bit farther than the union of
+// The noisy function extends a bit farther than the union of
// the two tori, so include a bit of extra space in the box.
triple max = (2*(2+tuberadius), 2+tuberadius, tuberadius)
- + (0.1, 0.1, 0.1);
+ + (0.1, 0.1, 0.1);
triple min = -max;
// Draw the implicit surface.
-draw(implicitsurface(f, min, max, overlapedges=true,
+draw(implicitsurface(f, min, max, overlapedges=true,
nx=20, nz=5),
surfacepen=material(diffusepen=gray(0.6),
- emissivepen=gray(0.3),
- specularpen=gray(0.1)));
+ emissivepen=gray(0.3),
+ specularpen=gray(0.1)));
Modified: trunk/Master/texmf-dist/doc/asymptote/examples/icon.asy
===================================================================
--- trunk/Master/texmf-dist/doc/asymptote/examples/icon.asy 2021-02-24 18:27:49 UTC (rev 57875)
+++ trunk/Master/texmf-dist/doc/asymptote/examples/icon.asy 2021-02-24 18:33:44 UTC (rev 57876)
@@ -4,7 +4,7 @@
real f(real t) {return t < 0 ? -1/t : -0.5/t;}
-picture logo(pair s=0, pen q)
+picture logo(pair s=0, pen q)
{
picture pic;
pen p=linewidth(3)+q;
@@ -17,6 +17,6 @@
draw(pic,z+c+eps--z,p);
yaxis(pic,p);
return shift(s)*pic;
-}
+}
add(logo(red));
Modified: trunk/Master/texmf-dist/doc/asymptote/examples/imagecontour.asy
===================================================================
--- trunk/Master/texmf-dist/doc/asymptote/examples/imagecontour.asy 2021-02-24 18:27:49 UTC (rev 57875)
+++ trunk/Master/texmf-dist/doc/asymptote/examples/imagecontour.asy 2021-02-24 18:33:44 UTC (rev 57876)
@@ -19,7 +19,7 @@
pen[] Palette=BWRainbow();
bounds range=image(f,Automatic,a,b,N,Palette);
-
+
// Major contours
real[] Cvals=uniform(range.min,range.max,Divs);
Modified: trunk/Master/texmf-dist/doc/asymptote/examples/imagehistogram.asy
===================================================================
--- trunk/Master/texmf-dist/doc/asymptote/examples/imagehistogram.asy 2021-02-24 18:27:49 UTC (rev 57875)
+++ trunk/Master/texmf-dist/doc/asymptote/examples/imagehistogram.asy 2021-02-24 18:33:44 UTC (rev 57876)
@@ -1,8 +1,8 @@
import stats;
-import graph;
-import palette;
-import contour;
-
+import graph;
+import palette;
+import contour;
+
size(20cm);
scale(false);
@@ -9,39 +9,39 @@
pair[] data=new pair[50000];
for(int i=0; i < data.length; ++i)
- data[i]=Gaussrandpair();
-
-// Histogram limits and number of bins
-pair datamin=(-0.15,-0.15);
-pair datamax=(0.15,0.15);
-int Nx=30;
-int Ny=30;
+ data[i]=Gaussrandpair();
+// Histogram limits and number of bins
+pair datamin=(-0.15,-0.15);
+pair datamax=(0.15,0.15);
+int Nx=30;
+int Ny=30;
+
int[][] bins=frequency(data,datamin,datamax,Nx,Ny);
-
-real[] values=new real[Nx*Ny];
+
+real[] values=new real[Nx*Ny];
pair[] points=new pair[Nx*Ny];
-int k=0;
+int k=0;
real dx=(datamax.x-datamin.x)/Nx;
real dy=(datamax.y-datamin.y)/Ny;
for(int i=0; i < Nx; ++i) {
for(int j=0; j < Ny; ++j) {
- values[k]=bins[i][j];
- points[k]=(datamin.x+(i+0.5)*dx,datamin.y+(j+0.5)*dy);
- ++k;
+ values[k]=bins[i][j];
+ points[k]=(datamin.x+(i+0.5)*dx,datamin.y+(j+0.5)*dy);
+ ++k;
}
-}
-
-// Create a color palette
+}
+
+// Create a color palette
pen[] InvGrayscale(int NColors=256) {
- real ninv=1.0/(NColors-1.0);
- return sequence(new pen(int i) {return gray(1-17*i*ninv);},NColors);
-}
-
-// Draw the histogram, with axes
-bounds range=image(points,values,Range(0,40),InvGrayscale());
+ real ninv=1.0/(NColors-1.0);
+ return sequence(new pen(int i) {return gray(1-17*i*ninv);},NColors);
+}
+
+// Draw the histogram, with axes
+bounds range=image(points,values,Range(0,40),InvGrayscale());
draw(contour(points,values,new real[] {1,2,3,4,8,12,16,20,24,28,32,36,40},
- operator--),blue);
-xaxis("$x$",BottomTop,LeftTicks,above=true);
-yaxis("$y$",LeftRight,RightTicks,above=true);
+ operator--),blue);
+xaxis("$x$",BottomTop,LeftTicks,above=true);
+yaxis("$y$",LeftRight,RightTicks,above=true);
Modified: trunk/Master/texmf-dist/doc/asymptote/examples/integraltest.asy
===================================================================
--- trunk/Master/texmf-dist/doc/asymptote/examples/integraltest.asy 2021-02-24 18:27:49 UTC (rev 57875)
+++ trunk/Master/texmf-dist/doc/asymptote/examples/integraltest.asy 2021-02-24 18:33:44 UTC (rev 57876)
@@ -9,17 +9,17 @@
void subinterval(real a, real b)
{
path g=box((a,0),(b,f(b)));
- filldraw(g,lightgray);
+ filldraw(g,lightgray);
draw(box((a,f(a)),(b,0)));
}
int a=1, b=9;
-
-xaxis("$x$",0,b);
-yaxis("$y$",0);
-
+
+xaxis("$x$",0,b);
+yaxis("$y$",0);
+
draw(graph(f,a,b,operator ..),red);
-
+
int n=2;
for(int i=a; i <= b; ++i) {
Modified: trunk/Master/texmf-dist/doc/asymptote/examples/interpolate1.asy
===================================================================
--- trunk/Master/texmf-dist/doc/asymptote/examples/interpolate1.asy 2021-02-24 18:27:49 UTC (rev 57875)
+++ trunk/Master/texmf-dist/doc/asymptote/examples/interpolate1.asy 2021-02-24 18:33:44 UTC (rev 57876)
@@ -127,9 +127,9 @@
shipout("runge4");
-erase();
+erase();
-// Test 5: The situation is much better using Tchebychev points.
+// Test 5: The situation is much better using Tchebychev points.
unitsize(2cm);
@@ -194,7 +194,7 @@
shipout("runge6");
-erase();
+erase();
// Test 7: Another Tchebychev example.
Modified: trunk/Master/texmf-dist/doc/asymptote/examples/intro.asy
===================================================================
--- trunk/Master/texmf-dist/doc/asymptote/examples/intro.asy 2021-02-24 18:27:49 UTC (rev 57875)
+++ trunk/Master/texmf-dist/doc/asymptote/examples/intro.asy 2021-02-24 18:33:44 UTC (rev 57876)
@@ -32,7 +32,7 @@
%and Instituto Nacional de Matem\'atica Pura e Aplicada (IMPA)
\medskip\Green{Collaborators: Orest Shardt, Michail Vidiassov}",
"June 30, 2010",
-"http://asymptote.sf.net/intro.pdf");
+"https://asymptote.sourceforge.io/intro.pdf");
title("History");
item("1979: \TeX\ and \MF\ (Knuth)");
@@ -48,7 +48,7 @@
title("Statistics (as of June, 2010)");
item("Runs under Linux/UNIX, Mac OS X, Microsoft Windows.");
item("4000 downloads/month from primary\hfill\\
- {\tt asymptote.sourceforge.net} site alone.");
+ {\tt asymptote.sourceforge.io} site alone.");
item("80\ 000 lines of low-level C++ code.");
item("36\ 000 lines of high-level Asymptote code.");
@@ -941,7 +941,7 @@
title("\mbox{Asymptote: 2D \& 3D Vector Graphics Language}");
asyinclude("../examples/logo3");
skip();
-center("\tt http://asymptote.sf.net");
+center("\tt https://asymptote.sourceforge.io");
center("(freely available under the LGPL license)");
// LocalWords: pdflatex mflogo viewportsize pagewidth pagemargin goysr bibtex
Modified: trunk/Master/texmf-dist/doc/asymptote/examples/jump.asy
===================================================================
--- trunk/Master/texmf-dist/doc/asymptote/examples/jump.asy 2021-02-24 18:27:49 UTC (rev 57875)
+++ trunk/Master/texmf-dist/doc/asymptote/examples/jump.asy 2021-02-24 18:33:44 UTC (rev 57876)
@@ -1,13 +1,13 @@
import graph;
size(4inches,0);
-real f1(real x) {return (1+x^2);}
+real f1(real x) {return (1+x^2);}
real f2(real x) {return (4-x);}
xaxis("$x$",LeftTicks,Arrow);
yaxis("$y$",RightTicks,Arrow);
-draw("$y=1+x^2$",graph(f1,-2,1));
+draw("$y=1+x^2$",graph(f1,-2,1));
dot((1,f1(1)),UnFill);
draw("$y=4-x$",graph(f2,1,5),LeftSide,red,Arrow);
Modified: trunk/Master/texmf-dist/doc/asymptote/examples/label3zoom.asy
===================================================================
--- trunk/Master/texmf-dist/doc/asymptote/examples/label3zoom.asy 2021-02-24 18:27:49 UTC (rev 57875)
+++ trunk/Master/texmf-dist/doc/asymptote/examples/label3zoom.asy 2021-02-24 18:33:44 UTC (rev 57876)
@@ -3,14 +3,14 @@
currentlight=Headlamp;
size(469.75499pt,0);
-currentprojection=perspective(
-camera=(160.119024441391,136.348802919248,253.822628496226),
-up=(-0.188035408976828,0.910392236102215,-0.368549401594584),
-target=(25.5462739598034,1.77605243766079,-9.93996244768584),
-zoom=5.59734733413271,
-angle=5.14449021168139,
-viewportshift=(0.813449720559684,-0.604674743165144),
-autoadjust=false);
+currentprojection=
+ perspective(camera=(160.119024441391,136.348802919248,253.822628496226),
+ up=(-0.188035408976828,0.910392236102215,-0.368549401594584),
+ target=(25.5462739598034,1.77605243766079,-9.93996244768584),
+ zoom=5.59734733413271,
+ angle=5.14449021168139,
+ viewportshift=(0.813449720559684,-0.604674743165144),
+ autoadjust=false);
draw(scale3(4)*extrude("$\displaystyle\int\limits_{-\infty}^{+\infty}\!\! e^{-\alpha x^2}\!\!=\sqrt{\frac{\pi}{\alpha}}$",2Z),
material(blue));
Modified: trunk/Master/texmf-dist/doc/asymptote/examples/leastsquares.asy
===================================================================
--- trunk/Master/texmf-dist/doc/asymptote/examples/leastsquares.asy 2021-02-24 18:27:49 UTC (rev 57875)
+++ trunk/Master/texmf-dist/doc/asymptote/examples/leastsquares.asy 2021-02-24 18:33:44 UTC (rev 57876)
@@ -22,7 +22,7 @@
// Remove negative or zero values of rho:
t=rho > 0 ? t : null;
rho=rho > 0 ? rho : null;
-
+
scale(Log(true),Linear(true));
int n=step > 0 ? ceil((last-first)/step) : 0;
@@ -33,17 +33,17 @@
real first=first+i*step;
real[] logrho=(t >= first & t <= last) ? log(rho) : null;
real[] logt=(t >= first & t <= last) ? -log(t) : null;
-
+
if(logt.length < 2) break;
-
+
// Fit to the line logt=L.m*logrho+L.b:
linefit L=leastsquares(logt,logrho);
-
+
T.push(first);
xi.push(L.m);
dxi.push(L.dm);
-}
-
+}
+
draw(graph(T,xi),blue);
errorbars(T,xi,dxi,red);
Modified: trunk/Master/texmf-dist/doc/asymptote/examples/legend.asy
===================================================================
--- trunk/Master/texmf-dist/doc/asymptote/examples/legend.asy 2021-02-24 18:27:49 UTC (rev 57875)
+++ trunk/Master/texmf-dist/doc/asymptote/examples/legend.asy 2021-02-24 18:33:44 UTC (rev 57876)
@@ -1,15 +1,15 @@
-import graph;
-size(8cm,6cm,IgnoreAspect);
-
-typedef real realfcn(real);
-realfcn F(real p) {
- return new real(real x) {return sin(p*x);};
-};
-
+import graph;
+size(8cm,6cm,IgnoreAspect);
+
+typedef real realfcn(real);
+realfcn F(real p) {
+ return new real(real x) {return sin(p*x);};
+};
+
for(int i=1; i < 5; ++i)
draw(graph(F(i*pi),0,1),Pen(i),
- "$\sin("+(i == 1 ? "" : (string) i)+"\pi x)$");
-xaxis("$x$",BottomTop,LeftTicks);
-yaxis("$y$",LeftRight,RightTicks(trailingzero));
-
-attach(legend(2),(point(S).x,truepoint(S).y),10S,UnFill);
+ "$\sin("+(i == 1 ? "" : (string) i)+"\pi x)$");
+xaxis("$x$",BottomTop,LeftTicks);
+yaxis("$y$",LeftRight,RightTicks(trailingzero));
+
+attach(legend(2),(point(S).x,truepoint(S).y),10S,UnFill);
Modified: trunk/Master/texmf-dist/doc/asymptote/examples/linearregression.asy
===================================================================
--- trunk/Master/texmf-dist/doc/asymptote/examples/linearregression.asy 2021-02-24 18:27:49 UTC (rev 57875)
+++ trunk/Master/texmf-dist/doc/asymptote/examples/linearregression.asy 2021-02-24 18:33:44 UTC (rev 57876)
@@ -28,13 +28,13 @@
real[] coeffs = leastsquares(independentvars, dependentvars, warn=false);
if (coeffs.length == 0) {
abort("Unable to find regression: independent variables are "
- + "linearly dependent.");
+ + "linearly dependent.");
}
real f(pair xy) {
return coeffs[0] * xy.x // income
- + coeffs[1] * xy.y // education
- + coeffs[2]; // residue
+ + coeffs[1] * xy.y // education
+ + coeffs[2]; // residue
}
real xmin = infinity, xmax = -infinity, ymin = infinity, ymax = -infinity;
@@ -52,7 +52,7 @@
for (int ii = 0; ii < independentvars.length; ++ii) {
triple pt = (independentvars[ii][0], independentvars[ii][1],
- dependentvars[ii]);
+ dependentvars[ii]);
draw(shift(pt) * unitsphere, material(yellow, emissivepen=0.2*yellow));
real z = f((pt.x, pt.y));
if (pt.z > z) draw (pt -- (pt.x, pt.y, z), green);
Modified: trunk/Master/texmf-dist/doc/asymptote/examples/linetype.asy
===================================================================
--- trunk/Master/texmf-dist/doc/asymptote/examples/linetype.asy 2021-02-24 18:27:49 UTC (rev 57875)
+++ trunk/Master/texmf-dist/doc/asymptote/examples/linetype.asy 2021-02-24 18:33:44 UTC (rev 57876)
@@ -6,7 +6,7 @@
draw((0,y-40)--(100,y-40),currentpen+dashdotted);
draw((0,y-50)--(100,y-50),currentpen+longdashdotted);
draw((0,y-60)--(100,y-60),currentpen+Dotted);
-}
+}
currentpen=linewidth(0.5);
testline(100);
Modified: trunk/Master/texmf-dist/doc/asymptote/examples/lmfit1.asy
===================================================================
--- trunk/Master/texmf-dist/doc/asymptote/examples/lmfit1.asy 2021-02-24 18:27:49 UTC (rev 57875)
+++ trunk/Master/texmf-dist/doc/asymptote/examples/lmfit1.asy 2021-02-24 18:33:44 UTC (rev 57876)
@@ -4,10 +4,10 @@
size(10cm, 7cm, IgnoreAspect);
real[] date = { 1790, 1800, 1810, 1820, 1830, 1840, 1850, 1860, 1870, 1880,
-1890, 1900, 1910, 1920, 1930, 1940, 1950, 1960, 1970, 1980, 1990 };
+ 1890, 1900, 1910, 1920, 1930, 1940, 1950, 1960, 1970, 1980, 1990 };
real[] population = { 3.929, 5.308, 7.240, 9.638, 12.866, 17.069, 23.192, 31.443,
-38.558, 50.156, 62.948, 75.996, 91.972, 105.711, 122.775, 131.669, 150.697,
-179.323, 203.185, 226.546, 248.710 };
+ 38.558, 50.156, 62.948, 75.996, 91.972, 105.711, 122.775, 131.669, 150.697,
+ 179.323, 203.185, 226.546, 248.710 };
real t0 = 1776;
Modified: trunk/Master/texmf-dist/doc/asymptote/examples/logo.asy
===================================================================
--- trunk/Master/texmf-dist/doc/asymptote/examples/logo.asy 2021-02-24 18:27:49 UTC (rev 57875)
+++ trunk/Master/texmf-dist/doc/asymptote/examples/logo.asy 2021-02-24 18:33:44 UTC (rev 57876)
@@ -1,6 +1,6 @@
size(140,80,IgnoreAspect);
-picture logo(pair s=0, pen q)
+picture logo(pair s=0, pen q)
{
picture pic;
pen p=linewidth(2)+fontsize(24pt)+q;
@@ -19,7 +19,7 @@
draw(pic,(0,y1)--(0,y2),p);
draw(pic,(a,0)--(b,0),p);
return shift(s)*pic;
-}
+}
pair z=(-0.015,0.08);
for(int x=0; x < 10; ++x)
Modified: trunk/Master/texmf-dist/doc/asymptote/examples/logo3.asy
===================================================================
--- trunk/Master/texmf-dist/doc/asymptote/examples/logo3.asy 2021-02-24 18:27:49 UTC (rev 57875)
+++ trunk/Master/texmf-dist/doc/asymptote/examples/logo3.asy 2021-02-24 18:33:44 UTC (rev 57876)
@@ -1,12 +1,16 @@
import three;
-//size(105,50,IgnoreAspect);
-size(560,320,IgnoreAspect); // Fullsize
+size(560,320,IgnoreAspect);
size3(140,80,15);
-currentprojection=perspective(-2,20,10,up=Y);
-currentlight=White;
-viewportmargin=(0,10);
+currentprojection=
+ perspective(camera=(-0.7387428806982,-50.4754947040394,10.1433958227456),
+ up=(0.0023,0.158056646909439,0.000753078712035578),
+ target=(0.275794537878997,1.26294757366264,-0.0498743055531516),
+ zoom=1,
+ angle=3.26228798100531,
+ autoadjust=false);
+
real a=-0.4;
real b=0.95;
real y1=-5;
@@ -32,12 +36,11 @@
g.push(point(B,0)--shift(f*hy,-f*h)*B--point(B,1)--shift(-f*hy,f*h)*reverse(B)--cycle);
triple H=-0.1Z;
-material m=material(lightgray,shininess=1.0);
+material m=material(0.5*red+0.125*purple,shininess=1.0);
for(path p : g)
- draw(extrude(p,H),m);
+ draw(extrude(p,H),m,nolight);
surface s=surface(g);
draw(s,red,nolight);
-draw(shift(H)*s,m);
-
+draw(shift(H)*s,m,nolight);
Modified: trunk/Master/texmf-dist/doc/asymptote/examples/lowupint.asy
===================================================================
--- trunk/Master/texmf-dist/doc/asymptote/examples/lowupint.asy 2021-02-24 18:27:49 UTC (rev 57875)
+++ trunk/Master/texmf-dist/doc/asymptote/examples/lowupint.asy 2021-02-24 18:33:44 UTC (rev 57876)
@@ -8,8 +8,8 @@
real height=(a < c && c < b) ? f(c) : h(f(a),f(b));
pair p=(a,0), q=(b,height);
path g=box(p,q);
- fill(g,lightgray);
- draw(g);
+ fill(g,lightgray);
+ draw(g);
}
void partition(real a, real b, real c, real h(real,real))
Modified: trunk/Master/texmf-dist/doc/asymptote/examples/markers1.asy
===================================================================
--- trunk/Master/texmf-dist/doc/asymptote/examples/markers1.asy 2021-02-24 18:27:49 UTC (rev 57875)
+++ trunk/Master/texmf-dist/doc/asymptote/examples/markers1.asy 2021-02-24 18:33:44 UTC (rev 57876)
@@ -64,7 +64,7 @@
p=T*p;
draw(p,CircleBarIntervalMarker(n=3,angle=30,barsize=8mm,radius=2mm,
FillDraw(.8red),circleabove=true,dotframe,
- above=false));
+ above=false));
label("$11$",point(p,0),3W);
//line 12 **********
Modified: trunk/Master/texmf-dist/doc/asymptote/examples/markregular.asy
===================================================================
--- trunk/Master/texmf-dist/doc/asymptote/examples/markregular.asy 2021-02-24 18:27:49 UTC (rev 57875)
+++ trunk/Master/texmf-dist/doc/asymptote/examples/markregular.asy 2021-02-24 18:33:44 UTC (rev 57876)
@@ -8,8 +8,8 @@
real f(real x) {return x^2;}
marker cross=marker(scale(4)*rotate(45)*cross(4),
- markuniform(new pair(real t) {return Scale((t,f(t)));},
- xmin,xmax,round(2*(xmax-xmin))),1bp+red);
+ markuniform(new pair(real t) {return Scale((t,f(t)));},
+ xmin,xmax,round(2*(xmax-xmin))),1bp+red);
draw(graph(f,xmin,xmax,n=400),linewidth(1bp),cross);
@@ -17,10 +17,10 @@
xaxis(Label("$x$",position=EndPoint, align=NE),xmin=xmin,xmax=xmax,
Ticks(scale(.7)*Label(align=E),NoZero,begin=false,beginlabel=false,
- end=false,endlabel=false,Step=1,step=.25,
- Size=1mm, size=.5mm,pTick=black,ptick=gray),Arrow);
+ end=false,endlabel=false,Step=1,step=.25,
+ Size=1mm, size=.5mm,pTick=black,ptick=gray),Arrow);
yaxis(Label("$y$",position=EndPoint, align=NE),ymin=ymin,ymax=ymax,
Ticks(scale(.7)*Label(),NoZero,begin=false,beginlabel=false,
- end=false,endlabel=false,Step=1,step=.25,Size=1mm,size=.5mm,
+ end=false,endlabel=false,Step=1,step=.25,Size=1mm,size=.5mm,
pTick=black,ptick=gray),Arrow);
Modified: trunk/Master/texmf-dist/doc/asymptote/examples/mergeExample.asy
===================================================================
--- trunk/Master/texmf-dist/doc/asymptote/examples/mergeExample.asy 2021-02-24 18:27:49 UTC (rev 57875)
+++ trunk/Master/texmf-dist/doc/asymptote/examples/mergeExample.asy 2021-02-24 18:33:44 UTC (rev 57876)
@@ -20,11 +20,11 @@
path l = point(p[1],2)--point(p[0],4);
draw(l,red);
for(int i = 0; i < p.length; ++i)
-{
- real[][] ts = intersections(l,p[i]);
- for(real[] t:ts)
- dot(point(l,t[0]));
-}
+ {
+ real[][] ts = intersections(l,p[i]);
+ for(real[] t:ts)
+ dot(point(l,t[0]));
+ }
path l2 = point(l,intersections(l,p[0])[0][0])--point(l,intersections(l,p[2])[1][0]);
real to = intersections(l,p[0])[0][1];
real ti = intersections(l,p[2])[1][1];
@@ -71,7 +71,7 @@
real x = min(p).x - 4.5w;
string l = "abcdef";
for(int i = 0; i < 6; ++i)
-{
- label("("+substr(l,i,1)+")",(x,min(p).y),3S,fontsize(10pt));
- x += w;
-}
+ {
+ label("("+substr(l,i,1)+")",(x,min(p).y),3S,fontsize(10pt));
+ x += w;
+ }
Modified: trunk/Master/texmf-dist/doc/asymptote/examples/mosaic.asy
===================================================================
--- trunk/Master/texmf-dist/doc/asymptote/examples/mosaic.asy 2021-02-24 18:27:49 UTC (rev 57875)
+++ trunk/Master/texmf-dist/doc/asymptote/examples/mosaic.asy 2021-02-24 18:33:44 UTC (rev 57876)
@@ -19,7 +19,7 @@
// returns the path obtained by adding to p a copy rotated
// around the endpoint of p by 180 degrees
// works only if the initial point and the endpoint of p are different
- // a c_line is symetric with respect to the center of
+ // a c_line is symetric with respect to the center of
// the straight line between its endpoints
//
return p..rotate(180,point(p,length(p)))*reverse(p);
@@ -41,7 +41,7 @@
}
void centershade(picture pic=currentpicture, path p, pen in, pen out,
- pen drawpen=currentpen) {
+ pen drawpen=currentpen) {
pair center=0.5(max(p)+min(p));
real radius=0.5abs(max(p)-min(p));
radialshade(pic,p,in,center,0,out,center,radius);
@@ -86,7 +86,7 @@
}
for(int j=0; j < 7; ++j) {
- tage[j]=shift((j,yc)+diff)*kasten;
+ tage[j]=shift((j,yc)+diff)*kasten;
filldraw(tage[j],farbe(j),black+2bp);
label(wochentag[j],zentrum(tage[j]),Palatino());
for(int i=0; i < 6; ++i) {bx[i][j]=shift((j,-yc*i)+diff)*kasten;
@@ -94,10 +94,10 @@
if(holiday[i][j]) {filldraw(bx[i][j],farbe(6),black+2bp);};
};
};
-filldraw(Gkasten,0.3white,black+2bp);
+filldraw(Gkasten,0.3white,black+2bp);
for(int j=0; j < 7; ++j)
for(int i=0; i < 6 ; ++i) {label(entry[i][j],zentrum(bx[i][j]),Palatino());}
-label("\Huge Februar 2006",zentrum(Gkasten),Palatino()+white);
+label("\Huge Februar 2006",zentrum(Gkasten),Palatino()+white);
// Zentrum=center; Februar=february
add(kalender,currentpicture);
erase();
@@ -139,9 +139,9 @@
(1-i/10)*chartreuse,black+2bp);
}
}
-
-// Now we produce the bijective images inside
-// a suitably scaled unitcircle
+
+// Now we produce the bijective images inside
+// a suitably scaled unitcircle
for(int k=-1; k < 2; ++k)
for(int l=-1; l < 2; ++l) {
transform tr=shift(k*tri+l*trii);
@@ -149,11 +149,11 @@
centershade(temppic,scale(2.5)*tounitcircle(tr*kontur[i],380),
(1-i/10)*white,(1-i/10)*orange,black+2bp);
}
- }
-
-add(temppic);
+ }
-// We clip the picture to a suitable box
+add(temppic);
+
+// We clip the picture to a suitable box
pair piccenter=0.5*(temppic.min()+temppic.max());
pair picbox=temppic.max()-temppic.min();
real picwidth=picbox.x;
@@ -162,4 +162,4 @@
clip(trialtrans*unitsquare);
// add the calendar at a suitable position
-add(kalender.fit(0.75*outputwidth),interp(point(S),point(N),1/13));
+add(kalender.fit(0.75*outputwidth),interp(point(S),point(N),1/13));
Modified: trunk/Master/texmf-dist/doc/asymptote/examples/mosquito.asy
===================================================================
--- trunk/Master/texmf-dist/doc/asymptote/examples/mosquito.asy 2021-02-24 18:27:49 UTC (rev 57875)
+++ trunk/Master/texmf-dist/doc/asymptote/examples/mosquito.asy 2021-02-24 18:33:44 UTC (rev 57876)
@@ -49,7 +49,7 @@
RightSide,Arrow,PenMargin);
path ise=point(infectious,E)--point(se,0.5);
-
+
draw("$(ac)$",ise,LeftSide,dashed,Arrow,PenMargin);
label(minipage("\flushleft{biting rate $\times$ transmission
probability}",50pt),point(infectious,SE),dir(-60)+S);
@@ -58,7 +58,7 @@
draw("$(ab)$",isi,LeftSide,dashed,Arrow,PenMargin);
draw(se,LeftSide,Arrow,PenMargin);
-
+
real t=2.0;
draw("$\beta_M$",
point(susceptibleM,E){right}..tension t..{left}point(larval,E),
Modified: trunk/Master/texmf-dist/doc/asymptote/examples/near_earth.asy
===================================================================
--- trunk/Master/texmf-dist/doc/asymptote/examples/near_earth.asy 2021-02-24 18:27:49 UTC (rev 57875)
+++ trunk/Master/texmf-dist/doc/asymptote/examples/near_earth.asy 2021-02-24 18:33:44 UTC (rev 57876)
@@ -7,7 +7,7 @@
pen thickp=linewidth(0.5mm);
real radius=0.8, lambda=37, aux=60;
-currentprojection=perspective(4,1,2);
+currentprojection=perspective(4,1,2);
// Planes
pen bg=gray(0.9)+opacity(0.5);
@@ -21,7 +21,7 @@
draw(Label("$y$",1),O--r*Y,p,Arrow3);
draw(Label("$z$",1),O--r*Z,p,Arrow3);
label("$\rm O$",(0,0,0),W);
-
+
// Point Q
triple pQ=radius*dir(lambda,aux);
draw(O--radius*dir(90,aux),dashed);
Modified: trunk/Master/texmf-dist/doc/asymptote/examples/oneoverx.asy
===================================================================
--- trunk/Master/texmf-dist/doc/asymptote/examples/oneoverx.asy 2021-02-24 18:27:49 UTC (rev 57875)
+++ trunk/Master/texmf-dist/doc/asymptote/examples/oneoverx.asy 2021-02-24 18:33:44 UTC (rev 57876)
@@ -8,7 +8,7 @@
static int lastsign=0;
if(x == 0) return false;
int sign=sgn(x);
- bool b=lastsign == 0 || sign == lastsign;
+ bool b=lastsign == 0 || sign == lastsign;
lastsign=sign;
return b ? true : default;
}
Deleted: trunk/Master/texmf-dist/doc/asymptote/examples/p-orbital.asy
===================================================================
--- trunk/Master/texmf-dist/doc/asymptote/examples/p-orbital.asy 2021-02-24 18:27:49 UTC (rev 57875)
+++ trunk/Master/texmf-dist/doc/asymptote/examples/p-orbital.asy 2021-02-24 18:33:44 UTC (rev 57876)
@@ -1,31 +0,0 @@
-import graph3;
-import palette;
-size(200);
-currentprojection=orthographic(6,8,2);
-viewportmargin=(1cm,0);
-
-real c0=0.1;
-
-real f(real r) {return r*(1-r/6)*exp(-r/3);}
-
-triple f(pair t) {
- real r=t.x;
- real phi=t.y;
- real f=f(r);
- real s=max(min(f != 0 ? c0/f : 1,1),-1);
- real R=r*sqrt(1-s^2);
- return (R*cos(phi),R*sin(phi),r*s);
-}
-
-bool cond(pair t) {return f(t.x) != 0;}
-
-real R=abs((20,20,20));
-surface s=surface(f,(0,0),(R,2pi),100,8,Spline,cond);
-
-s.colors(palette(s.map(abs),Gradient(palegreen,heavyblue)));
-
-render render=render(compression=Low,merge=true);
-draw(s,render);
-draw(zscale3(-1)*s);
-
-axes3("$x$","$y$","$z$",Arrow3);
Added: trunk/Master/texmf-dist/doc/asymptote/examples/pOrbital.asy
===================================================================
--- trunk/Master/texmf-dist/doc/asymptote/examples/pOrbital.asy (rev 0)
+++ trunk/Master/texmf-dist/doc/asymptote/examples/pOrbital.asy 2021-02-24 18:33:44 UTC (rev 57876)
@@ -0,0 +1,31 @@
+import graph3;
+import palette;
+size(200);
+currentprojection=orthographic(6,8,2);
+viewportmargin=(1cm,0);
+
+real c0=0.1;
+
+real f(real r) {return r*(1-r/6)*exp(-r/3);}
+
+triple f(pair t) {
+ real r=t.x;
+ real phi=t.y;
+ real f=f(r);
+ real s=max(min(f != 0 ? c0/f : 1,1),-1);
+ real R=r*sqrt(1-s^2);
+ return (R*cos(phi),R*sin(phi),r*s);
+}
+
+bool cond(pair t) {return f(t.x) != 0;}
+
+real R=abs((20,20,20));
+surface s=surface(f,(0,0),(R,2pi),100,8,Spline,cond);
+
+s.colors(palette(s.map(abs),Gradient(palegreen,heavyblue)));
+
+render render=render(compression=Low,merge=true);
+draw(s,render);
+draw(zscale3(-1)*s);
+
+axes3("$x$","$y$","$z$",Arrow3);
Modified: trunk/Master/texmf-dist/doc/asymptote/examples/pathintersectsurface.asy
===================================================================
--- trunk/Master/texmf-dist/doc/asymptote/examples/pathintersectsurface.asy 2021-02-24 18:27:49 UTC (rev 57875)
+++ trunk/Master/texmf-dist/doc/asymptote/examples/pathintersectsurface.asy 2021-02-24 18:33:44 UTC (rev 57876)
@@ -7,11 +7,12 @@
draw(g,red);
-triple[][] P={
- {(0,0,0),(1,0,0),(1,0,0),(2,0,0)},
- {(0,4/3,0),(2/3,4/3,2),(4/3,4/3,2),(2,4/3,0)},
- {(0,2/3,0),(2/3,2/3,0),(4/3,2/3,0),(2,2/3,0)},
- {(0,2,0),(2/3,2,0),(4/3,2,0),(2,2,0)}};
+triple[][] P=
+ {
+ {(0,0,0),(1,0,0),(1,0,0),(2,0,0)},
+ {(0,4/3,0),(2/3,4/3,2),(4/3,4/3,2),(2,4/3,0)},
+ {(0,2/3,0),(2/3,2/3,0),(4/3,2/3,0),(2,2/3,0)},
+ {(0,2,0),(2/3,2,0),(4/3,2,0),(2,2,0)}};
surface s=surface(patch(P));
s.append(unitplane);
Modified: trunk/Master/texmf-dist/doc/asymptote/examples/pdb.asy
===================================================================
--- trunk/Master/texmf-dist/doc/asymptote/examples/pdb.asy 2021-02-24 18:27:49 UTC (rev 57875)
+++ trunk/Master/texmf-dist/doc/asymptote/examples/pdb.asy 2021-02-24 18:33:44 UTC (rev 57876)
@@ -24,7 +24,7 @@
string prefix=stripextension(filename);
file data=input(filename);
-pen color(string e)
+pen color(string e)
{
e=replace(e," ","");
int n=length(e);
@@ -33,7 +33,7 @@
int index=find(Element == e);
if(index < 0) return currentpen;
return rgb(Hexcolor[index]);
-}
+}
// ATOM
string[] name,altLoc,resName,chainID,iCode,element,charge;
@@ -42,7 +42,7 @@
bool newchain=true;
-struct bond
+struct bond
{
int i,j;
void operator init(int i, int j) {
@@ -53,7 +53,7 @@
bond[] bonds;
-struct atom
+struct atom
{
string name;
triple v;
@@ -87,8 +87,8 @@
serial=(int) substr(line,6,5);
a.name=substr(line,76,2);
a.v=((real) substr(line,30,8),
- (real) substr(line,38,8),
- (real) substr(line,46,8));
+ (real) substr(line,38,8),
+ (real) substr(line,46,8));
}
if(ATOM) {
if(newchain) {
@@ -109,12 +109,12 @@
int i=(int) substr(line,6,5);
while(true) {
string s=replace(substr(line,11+k,5)," ","");
- if(s == "") break;
+ if(s == "") break;
k += 5;
int j=(int) s;
if(j <= i) continue;
bonds.push(bond(i,j));
- }
+ }
}
}
@@ -158,7 +158,6 @@
string viewfilename=prefix+".views";
if(!error(input(viewfilename,check=false)))
- options="3Dviews="+viewfilename;
+ options="3Dviews="+locatefile(viewfilename);
-shipout(prefix,options=options);
-currentpicture.erase();
+shipout(options=options);
Modified: trunk/Master/texmf-dist/doc/asymptote/examples/pipes.asy
===================================================================
--- trunk/Master/texmf-dist/doc/asymptote/examples/pipes.asy 2021-02-24 18:27:49 UTC (rev 57875)
+++ trunk/Master/texmf-dist/doc/asymptote/examples/pipes.asy 2021-02-24 18:33:44 UTC (rev 57876)
@@ -4,14 +4,14 @@
import palette;
size(8cm);
-currentprojection=perspective(
-camera=(13.3596389245356,8.01038090435314,14.4864483364785),
-up=(-0.0207054323419367,-0.00472438375047319,0.0236460907598947),
-target=(-1.06042550499095,2.68154529985845,0.795007562120261));
+currentprojection=
+ perspective(camera=(13.3596389245356,8.01038090435314,14.4864483364785),
+ up=(-0.0207054323419367,-0.00472438375047319,0.0236460907598947),
+ target=(-1.06042550499095,2.68154529985845,0.795007562120261));
defaultpen(fontsize(6pt));
-// draw coordinates and frames
+// draw coordinates and frames
// axis1 is defined by z axis of TBase
// axis2 is defined by z axis of TEnd
void DrawFrame(transform3 TBase, transform3 TEnd, string s)
@@ -25,57 +25,57 @@
real[][] A=
{
- {v1.x,-v2.x,-n.x},
- {v1.y,-v2.y,-n.y},
- {v1.z,-v2.z,-n.z}
+ {v1.x,-v2.x,-n.x},
+ {v1.y,-v2.y,-n.y},
+ {v1.z,-v2.z,-n.z}
};
triple vb=p2-p1;
real[] b={vb.x,vb.y,vb.z};
-
- // Get the extention along vector v1 and v2,
+
+ // Get the extention along vector v1 and v2,
// so, we can get the common normal between two axis
real[] x=solve(A,b);
real s1=x[0];
real s2=x[1];
-
+
// get foot of a perpendicular on both axies
triple foot1=p1+s1*v1;
triple foot2=p2+s2*v2;
-
+
// draw two axis
triple axis_a,axis_b;
axis_a=p1+s1*v1*1.5;
axis_b=p1-s1*v1*1.5;
draw(axis_a--axis_b);
-
+
axis_a=p2+s2*v2*1.5;
axis_b=p2-s2*v2*1.5;
draw(axis_a--axis_b);
-
- // draw "a"(common normal)
- draw(Label("$a_{"+s+"}$"),foot1--foot2,linewidth(1pt));
+ // draw "a"(common normal)
+ draw(Label("$a_{"+s+"}$"),foot1--foot2,linewidth(1pt));
+
// draw the coordinates frame
triple dx,dy,dz,org;
real length=0.8;
-
+
org=foot1;
dx =length*unit(foot2-foot1); // define the x axis of the frame on "a"
dz =length*unit(v1); // define the z axis which is along axis1
dy =length*unit(cross(dz,dx));
-
+
draw(Label("$X_{"+s+"}$",1,align=-dy-dz),org--(org+dx),red+linewidth(1.5pt),
Arrow3(8));
- draw(Label("$Y_{"+s+"}$",1,align=2dy-dz-dx),org--(org+dy),
- green+linewidth(1.5pt), Arrow3(8));
+ draw(Label("$Y_{"+s+"}$",1,align=2dy-dz-dx),org--(org+dy),
+ green+linewidth(1.5pt), Arrow3(8));
draw(Label("$Z_{"+s+"}$",1,align=-2dx-dy),org--(org+dz),
- blue+linewidth(1.5pt), Arrow3(8));
-
+ blue+linewidth(1.5pt), Arrow3(8));
+
dot(Label("$O_{"+s+"}$",align =-dx-dz,black),org,black); // origin
-
+
}
void DrawLink(transform3 TBase, transform3 TEnd, pen objStyle,string s)
@@ -85,13 +85,13 @@
path3 generator=(0.5*r,0,h)--(r,0,h)--(r,0,0)--(0.5*r,0,0);
revolution vase=revolution(O,generator,0,360);
surface objSurface=surface(vase);
-
+
render render=render(merge=true);
// draw two cylinders
draw(TBase*objSurface,objStyle,render);
draw(TEnd*shift((0,0,-h+1e-5))*objSurface,objStyle,render);
-
+
// draw the link between two cylinders
triple pStart=TBase*(0.5*h*Z);
triple pEnd =TEnd*(-0.5*h*Z);
@@ -98,7 +98,7 @@
triple pControl1=0.25*(pEnd-pStart)+TBase*(0,0,h);
triple pControl2=-0.25*(pEnd-pStart)+TEnd*(0,0,-h);
path3 p=pStart..controls pControl1 and pControl2..pEnd;
- draw(tube(p,scale(0.2)*unitsquare),objStyle,render);
+ draw(tube(p,scale(0.2)*unitsquare),objStyle,render);
}
// t1 and t2 define the starting frame and ending frame of the first link(i-1)
@@ -105,7 +105,7 @@
transform3 t1=shift((0,0,1));
transform3 t2=shift((0,0,-1))*rotate(-20,Y)*shift((0,3,2));
// as, the two links were connected, so t2 is also the starting frame of link(i)
-// t3 defines the ending frame of link(i)
+// t3 defines the ending frame of link(i)
transform3 t3=t2*rotate(40,Z)*shift((0,3,1.5))*rotate(-15,Y)*shift(-1.5*Z);
// draw link(i-1)
@@ -137,4 +137,4 @@
// draw d_{i-1}
triple org_i =t2*shift((0,0,1.5))*O;
-draw(Label("$d_{i}$",0.13),p0--org_i,linewidth(1pt));
+draw(Label("$d_{i}$",0.13),p0--org_i,linewidth(1pt));
Modified: trunk/Master/texmf-dist/doc/asymptote/examples/poster.asy
===================================================================
--- trunk/Master/texmf-dist/doc/asymptote/examples/poster.asy 2021-02-24 18:27:49 UTC (rev 57875)
+++ trunk/Master/texmf-dist/doc/asymptote/examples/poster.asy 2021-02-24 18:33:44 UTC (rev 57876)
@@ -16,7 +16,7 @@
frame f=background.fit();
box(f,RadialShade(yellow,0.6*yellow+red),above=false);
background.erase();
-add(background,f);
+add(background,f);
title("Young Researchers' Conference",align=3S,fontsize(48pt));
center("University of Alberta, Edmonton, April 1--2, 2006");
Modified: trunk/Master/texmf-dist/doc/asymptote/examples/projectrevolution.asy
===================================================================
--- trunk/Master/texmf-dist/doc/asymptote/examples/projectrevolution.asy 2021-02-24 18:27:49 UTC (rev 57875)
+++ trunk/Master/texmf-dist/doc/asymptote/examples/projectrevolution.asy 2021-02-24 18:33:44 UTC (rev 57876)
@@ -1,17 +1,17 @@
-import solids;
-import palette;
-
-currentprojection=orthographic(20,0,3);
-
-size(400,300,IgnoreAspect);
-
+import solids;
+import palette;
+
+currentprojection=orthographic(20,0,3);
+
+size(400,300,IgnoreAspect);
+
revolution r=revolution(graph(new triple(real x) {
- return (x,0,sin(x)*exp(-x/2));},0,2pi,operator ..),axis=Z);
-surface s=surface(r);
-
+ return (x,0,sin(x)*exp(-x/2));},0,2pi,operator ..),axis=Z);
+surface s=surface(r);
+
surface S=planeproject(shift(-Z)*unitsquare3)*s;
S.colors(palette(s.map(zpart),Rainbow()));
render render=render(compression=Low,merge=true);
draw(S,render);
-draw(s,lightgray,render);
+draw(s,lightgray,render);
Modified: trunk/Master/texmf-dist/doc/asymptote/examples/rainbow.asy
===================================================================
--- trunk/Master/texmf-dist/doc/asymptote/examples/rainbow.asy 2021-02-24 18:27:49 UTC (rev 57875)
+++ trunk/Master/texmf-dist/doc/asymptote/examples/rainbow.asy 2021-02-24 18:33:44 UTC (rev 57876)
@@ -4,7 +4,7 @@
void rainbow(path g) {
draw(new path[] {scale(1.3)*g,scale(1.2)*g,scale(1.1)*g,g,
- scale(0.9)*g,scale(0.8)*g,scale(0.7)*g},
+ scale(0.9)*g,scale(0.8)*g,scale(0.7)*g},
new pen[] {red,orange,yellow,green,blue,indigo,purple});
}
Modified: trunk/Master/texmf-dist/doc/asymptote/examples/roll.asy
===================================================================
--- trunk/Master/texmf-dist/doc/asymptote/examples/roll.asy 2021-02-24 18:27:49 UTC (rev 57875)
+++ trunk/Master/texmf-dist/doc/asymptote/examples/roll.asy 2021-02-24 18:33:44 UTC (rev 57876)
@@ -3,7 +3,7 @@
size(200,0);
triple f(pair t) {
-return(t.x+t.y/4+sin(t.y),cos(t.y),sin(t.y));
+ return(t.x+t.y/4+sin(t.y),cos(t.y),sin(t.y));
}
surface s=surface(f,(0,0),(2pi,2pi),7,20,Spline);
Modified: trunk/Master/texmf-dist/doc/asymptote/examples/roundpath.asy
===================================================================
--- trunk/Master/texmf-dist/doc/asymptote/examples/roundpath.asy 2021-02-24 18:27:49 UTC (rev 57875)
+++ trunk/Master/texmf-dist/doc/asymptote/examples/roundpath.asy 2021-02-24 18:33:44 UTC (rev 57876)
@@ -22,7 +22,7 @@
for (int i = 1; i < 20; ++i) // only round edges
draw(shift(0,-30)*roundedpath(B,i/4), rgb(0.5, i*0.049,0) + linewidth(0.5));
-for (int i = 1; i < 20; ++i) // round edged and scale
+for (int i = 1; i < 20; ++i) // round edged and scale
draw(shift(0,-60)*roundedpath(B,i/4,1-i/50), rgb(1, 1 - i*0.049,i*0.049) + linewidth(0.5));
for (int i = 1; i < 50; ++i) // shift (round edged und scaled shifted version)
Modified: trunk/Master/texmf-dist/doc/asymptote/examples/secondaryaxis.asy
===================================================================
--- trunk/Master/texmf-dist/doc/asymptote/examples/secondaryaxis.asy 2021-02-24 18:27:49 UTC (rev 57875)
+++ trunk/Master/texmf-dist/doc/asymptote/examples/secondaryaxis.asy 2021-02-24 18:33:44 UTC (rev 57876)
@@ -26,7 +26,7 @@
draw(pic,graph(pic,t,infectious,t >= 10 & t <= 15),red);
yaxis(pic,Right,red,LeftTicks(begin=false,end=false));
});
-
+
add(secondary);
label(shift(5mm*N)*"Proportion of crows",point(NW),E);
Modified: trunk/Master/texmf-dist/doc/asymptote/examples/shadestroke.asy
===================================================================
--- trunk/Master/texmf-dist/doc/asymptote/examples/shadestroke.asy 2021-02-24 18:27:49 UTC (rev 57875)
+++ trunk/Master/texmf-dist/doc/asymptote/examples/shadestroke.asy 2021-02-24 18:33:44 UTC (rev 57876)
@@ -1,5 +1,5 @@
size(100);
radialshade(W..N..E--(0,0),stroke=true,
- red+linewidth(30),(0,0),0.25,yellow,(0,0),1);
+ red+linewidth(30),(0,0),0.25,yellow,(0,0),1);
Modified: trunk/Master/texmf-dist/doc/asymptote/examples/sinxlex.asy
===================================================================
--- trunk/Master/texmf-dist/doc/asymptote/examples/sinxlex.asy 2021-02-24 18:27:49 UTC (rev 57875)
+++ trunk/Master/texmf-dist/doc/asymptote/examples/sinxlex.asy 2021-02-24 18:33:44 UTC (rev 57876)
@@ -3,7 +3,7 @@
size(0,100);
real theta=30;
-pair A=(0,0);
+pair A=(0,0);
pair B=dir(theta);
pair C=(1,0);
pair D=(1,Tan(theta));
@@ -21,4 +21,4 @@
dot("$D$",D);
dot(("$E$"),E,S);
label("$1$",A--B,LeftSide);
-
+
Modified: trunk/Master/texmf-dist/doc/asymptote/examples/slidedemo.asy
===================================================================
--- trunk/Master/texmf-dist/doc/asymptote/examples/slidedemo.asy 2021-02-24 18:27:49 UTC (rev 57875)
+++ trunk/Master/texmf-dist/doc/asymptote/examples/slidedemo.asy 2021-02-24 18:33:44 UTC (rev 57876)
@@ -31,7 +31,7 @@
author="John C. Bowman",
institution="University of Alberta",
date="\today",
- url="http://asymptote.sf.net");
+ url="https://asymptote.sourceforge.io");
outline("Basic Commands");
item("item");
@@ -112,7 +112,7 @@
title("\mbox{Asymptote: 2D \& 3D Vector Graphics Language}");
asyinclude("logo3");
-center("\tt http://asymptote.sf.net");
+center("\tt https://asymptote.sourceforge.io");
center("(freely available under the LGPL license)");
bibliography("refs");
Modified: trunk/Master/texmf-dist/doc/asymptote/examples/slope.asy
===================================================================
--- trunk/Master/texmf-dist/doc/asymptote/examples/slope.asy 2021-02-24 18:27:49 UTC (rev 57875)
+++ trunk/Master/texmf-dist/doc/asymptote/examples/slope.asy 2021-02-24 18:33:44 UTC (rev 57876)
@@ -20,8 +20,8 @@
real[] F(real t, real[] y) {
return sequence(new real(int m) {return f(t,y[M-m-1]);},M);
- // return new real[] {exp((L[1]-1)*t)*y[1],
- // -exp(-(L[1]-1)*t)*y[0]};
+ // return new real[] {exp((L[1]-1)*t)*y[1],
+ // -exp(-(L[1]-1)*t)*y[0]};
// return new real[]{-y[0]^2};
}
@@ -46,23 +46,23 @@
// real[] exact=new real[] {exp(-b)*sin(b),exp(-L[1]*b)*cos(b)};
for(int m=0; m < M; ++m)
maxnorm=max(maxnorm,abs(S.y[S.y.length-1][m]-exact[m]));
- if(maxnorm != 0) {
- tau.push(dt);
- // error.push(dt^-(order+1)*maxnorm);
- error.push(maxnorm);
- }
+ if(maxnorm != 0) {
+ tau.push(dt);
+ // error.push(dt^-(order+1)*maxnorm);
+ error.push(maxnorm);
+ }
}
/*
-for(int i=0; i < n-1; ++i) {
+ for(int i=0; i < n-1; ++i) {
real dt=(b-a)*lambda^(n-i);
real maxnorm=0;
for(int m=0; m < M; ++m) {
- solution S=integrate(Y0[m],L[m],f,a,b,dt,dynamic=false,0.000,1000,RK4_375,verbose=false);
- maxnorm=max(maxnorm,abs(S.y[S.y.length-1]-exact[m]));
+ solution S=integrate(Y0[m],L[m],f,a,b,dt,dynamic=false,0.000,1000,RK4_375,verbose=false);
+ maxnorm=max(maxnorm,abs(S.y[S.y.length-1]-exact[m]));
}
error2.push(dt^-order*maxnorm);
-}
+ }
*/
//scale(Log,Log);
Modified: trunk/Master/texmf-dist/doc/asymptote/examples/soccerball.asy
===================================================================
--- trunk/Master/texmf-dist/doc/asymptote/examples/soccerball.asy 2021-02-24 18:27:49 UTC (rev 57875)
+++ trunk/Master/texmf-dist/doc/asymptote/examples/soccerball.asy 2021-02-24 18:33:44 UTC (rev 57876)
@@ -1,43 +1,45 @@
import graph3;
size(400);
currentlight.background=palegreen;
+settings.digits=15;
defaultrender=render(compression=Zero,merge=true);
real c=(1+sqrt(5))/2;
-
+
triple[] z={(c,1,0),(-c,1,0),(-c,-1,0),(c,-1,0)};
triple[] x={(0,c,1),(0,-c,1),(0,-c,-1),(0,c,-1)};
triple[] y={(1,0,c),(1,0,-c),(-1,0,-c),(-1,0,c)};
-
-triple[][] Q={
- {z[0],y[1],x[3],x[0],y[0],z[3]},
- {z[1],x[0],x[3],y[2],z[2],y[3]},
- {z[2],z[1],y[2],x[2],x[1],y[3]},
- {z[3],z[0],y[0],x[1],x[2],y[1]},
- {x[0],x[3],z[1],y[3],y[0],z[0]},
- {x[1],x[2],z[2],y[3],y[0],z[3]},
- {x[2],x[1],z[3],y[1],y[2],z[2]},
- {x[3],x[0],z[0],y[1],y[2],z[1]},
- {y[0],y[3],x[1],z[3],z[0],x[0]},
- {y[1],y[2],x[2],z[3],z[0],x[3]},
- {y[2],y[1],x[3],z[1],z[2],x[2]},
- {y[3],y[0],x[0],z[1],z[2],x[1]}
-};
-
+
+triple[][] Q=
+ {
+ {z[0],y[1],x[3],x[0],y[0],z[3]},
+ {z[1],x[0],x[3],y[2],z[2],y[3]},
+ {z[2],z[1],y[2],x[2],x[1],y[3]},
+ {z[3],z[0],y[0],x[1],x[2],y[1]},
+ {x[0],x[3],z[1],y[3],y[0],z[0]},
+ {x[1],x[2],z[2],y[3],y[0],z[3]},
+ {x[2],x[1],z[3],y[1],y[2],z[2]},
+ {x[3],x[0],z[0],y[1],y[2],z[1]},
+ {y[0],y[3],x[1],z[3],z[0],x[0]},
+ {y[1],y[2],x[2],z[3],z[0],x[3]},
+ {y[2],y[1],x[3],z[1],z[2],x[2]},
+ {y[3],y[0],x[0],z[1],z[2],x[1]}
+ };
+
int nArc=4;
path3 p=Arc(O,Q[0][0],Q[0][1],nArc);
real R=abs(point(p,reltime(p,1/3)));
-
+
triple[][] P;
for(int i=0;i < Q.length;++i){
P[i]=new triple[] ;
for(int j=0;j < Q[i].length;++j){
P[i][j]=Q[i][j]/R;
- }
-}
-
+ }
+}
+
// FIXME: Use a baryicentric coordinate mesh
surface sphericaltriangle(triple center, triple A, triple B, triple C,
int nu=3, int nv=nu) {
@@ -48,10 +50,10 @@
path3 cr=Arc(O,relpoint(tri2,p.x),relpoint(tri3,p.x),nArc);
return relpoint(cr,p.y);
};
-
+
return surface(tri,(0,0),(1-sqrtEpsilon,1),nu,nv,Spline);
-}
-
+}
+
for(int i=0;i < P.length;++i){
triple[] pentagon=sequence(new triple(int k) {
path3 p=Arc(O,P[i][0],P[i][k+1],nArc);
@@ -64,8 +66,8 @@
for(int i=0;i < 5;++i){
surface sf=sphericaltriangle(O,pentagon[i],M,pentagon[i+1]);
draw(sf,black);
- }
-}
+ }
+}
for(int i=0;i < P.length;++i) {
for(int j=1;j <= 5;++j) {
@@ -85,6 +87,6 @@
for(int i=0;i < 6;++i) {
surface sf=sphericaltriangle(O,hexagon[i],M,hexagon[i+1]);
draw(sf,white);
- }
- }
+ }
+ }
}
Modified: trunk/Master/texmf-dist/doc/asymptote/examples/spectrum.asy
===================================================================
--- trunk/Master/texmf-dist/doc/asymptote/examples/spectrum.asy 2021-02-24 18:27:49 UTC (rev 57875)
+++ trunk/Master/texmf-dist/doc/asymptote/examples/spectrum.asy 2021-02-24 18:33:44 UTC (rev 57876)
@@ -11,7 +11,7 @@
if(wl > 510 && wl <= 580) {rgb=((wl-510)/70,1,0);}
if(wl > 580 && wl <= 645) {rgb=(1,(645-wl)/65,0);}
if(wl > 645 && wl <= 780) {rgb=(1,0,0);}
-
+
real Intensity=1;
if(intensity) {
if(wl >= 700) {Intensity=0.3+0.7*(780-wl)/80;}
Modified: trunk/Master/texmf-dist/doc/asymptote/examples/sphereskeleton.asy
===================================================================
--- trunk/Master/texmf-dist/doc/asymptote/examples/sphereskeleton.asy 2021-02-24 18:27:49 UTC (rev 57875)
+++ trunk/Master/texmf-dist/doc/asymptote/examples/sphereskeleton.asy 2021-02-24 18:33:44 UTC (rev 57876)
@@ -1,9 +1,9 @@
-size(100);
-import solids;
+size(100);
+import solids;
currentprojection=orthographic(5,4,2);
-revolution sphere=sphere(1);
+revolution sphere=sphere(1);
draw(surface(sphere),green+opacity(0.2));
draw(sphere,m=7,blue);
Modified: trunk/Master/texmf-dist/doc/asymptote/examples/spiral3.asy
===================================================================
--- trunk/Master/texmf-dist/doc/asymptote/examples/spiral3.asy 2021-02-24 18:27:49 UTC (rev 57875)
+++ trunk/Master/texmf-dist/doc/asymptote/examples/spiral3.asy 2021-02-24 18:33:44 UTC (rev 57876)
@@ -1,8 +1,8 @@
import graph3;
import palette;
-
+
size3(10cm);
-
+
currentprojection=orthographic(5,4,2);
viewportmargin=(2cm,0);
Modified: trunk/Master/texmf-dist/doc/asymptote/examples/spline.asy
===================================================================
--- trunk/Master/texmf-dist/doc/asymptote/examples/spline.asy 2021-02-24 18:27:49 UTC (rev 57875)
+++ trunk/Master/texmf-dist/doc/asymptote/examples/spline.asy 2021-02-24 18:33:44 UTC (rev 57876)
@@ -1,15 +1,15 @@
-import graph;
-import interpolate;
-
-size(15cm,15cm,IgnoreAspect);
-
-real a=1997, b=2002;
-int n=5;
-real[] xpt=a+sequence(n+1)*(b-a)/n;
-real[] ypt={31,36,26,22,21,24};
+import graph;
+import interpolate;
+
+size(15cm,15cm,IgnoreAspect);
+
+real a=1997, b=2002;
+int n=5;
+real[] xpt=a+sequence(n+1)*(b-a)/n;
+real[] ypt={31,36,26,22,21,24};
horner h=diffdiv(xpt,ypt);
fhorner L=fhorner(h);
-
+
scale(false,true);
pen p=linewidth(1);
Modified: trunk/Master/texmf-dist/doc/asymptote/examples/splitpatch.asy
===================================================================
--- trunk/Master/texmf-dist/doc/asymptote/examples/splitpatch.asy 2021-02-24 18:27:49 UTC (rev 57875)
+++ trunk/Master/texmf-dist/doc/asymptote/examples/splitpatch.asy 2021-02-24 18:33:44 UTC (rev 57876)
@@ -33,10 +33,10 @@
if(depth > 0)
write(pt.tree[i],qt.tree[j],Pi,Qj,depth);
}
- }
+ }
}
}
-
+
// Output the subpatches of p from subdivision.
void read(surface[] S, tree t, triple[][] p, int depth=n) {
--depth;
@@ -44,7 +44,7 @@
triple[][][] P=Split(p);
for(int i=0; i < 2; ++i) {
- if(t.tree.initialized(i))
+ if(t.tree.initialized(i))
read(S,t.tree[i],P[i],depth);
else {
S[0].push(patch(P[i]));
@@ -62,19 +62,21 @@
currentprojection=orthographic(0,0,1);
-triple[][] A={
- {(0,0,0),(1,0,0),(1,0,0),(2,0,0)},
- {(0,4/3,0),(2/3,4/3,2),(4/3,4/3,2),(2,4/3,0)},
- {(0,2/3,0),(2/3,2/3,0),(4/3,2/3,0),(2,2/3,0)},
- {(0,2,0),(2/3,2,0),(4/3,2,0),(2,2,0)}
-};
+triple[][] A=
+ {
+ {(0,0,0),(1,0,0),(1,0,0),(2,0,0)},
+ {(0,4/3,0),(2/3,4/3,2),(4/3,4/3,2),(2,4/3,0)},
+ {(0,2/3,0),(2/3,2/3,0),(4/3,2/3,0),(2,2/3,0)},
+ {(0,2,0),(2/3,2,0),(4/3,2,0),(2,2,0)}
+ };
-triple[][] B={
- {(0.5,0,-1),(0.5,1,-1),(0.5,2,-1),(0.5,3,-1)},
- {(0.5,0,0),(0.5,1,0),(0.5,2,0),(0.5,3,0)},
- {(0.5,0,1),(0.5,1,1),(0.5,2,1),(0.5,3,1)},
- {(0.5,0,2),(0.5,1,2),(0.5,2,2),(0.5,3,2)}
-};
+triple[][] B=
+ {
+ {(0.5,0,-1),(0.5,1,-1),(0.5,2,-1),(0.5,3,-1)},
+ {(0.5,0,0),(0.5,1,0),(0.5,2,0),(0.5,3,0)},
+ {(0.5,0,1),(0.5,1,1),(0.5,2,1),(0.5,3,1)},
+ {(0.5,0,2),(0.5,1,2),(0.5,2,2),(0.5,3,2)}
+ };
split S=split(B,A);
Modified: trunk/Master/texmf-dist/doc/asymptote/examples/spring.asy
===================================================================
--- trunk/Master/texmf-dist/doc/asymptote/examples/spring.asy 2021-02-24 18:27:49 UTC (rev 57875)
+++ trunk/Master/texmf-dist/doc/asymptote/examples/spring.asy 2021-02-24 18:33:44 UTC (rev 57876)
@@ -2,7 +2,7 @@
{
return (2.0*lambda*t+r*cos(t),r*sin(t));
}
-
+
guide coil(guide g=nullpath, real lambda, real r, real a, real b, int n)
{
real width=(b-a)/n;
@@ -15,7 +15,7 @@
void drawspring(real x, string label) {
real r=8;
- real t1=-pi;
+ real t1=-pi;
real t2=10*pi;
real lambda=(t2-t1+x)/(t2-t1);
pair b=coilpoint(lambda,r,t1);
@@ -22,7 +22,7 @@
pair c=coilpoint(lambda,r,t2);
pair a=b-20;
pair d=c+20;
-
+
draw(a--b,BeginBar(2*barsize()));
draw(c--d);
draw(coil(lambda,r,t1,t2,100));
Modified: trunk/Master/texmf-dist/doc/asymptote/examples/stereoscopic.asy
===================================================================
--- trunk/Master/texmf-dist/doc/asymptote/examples/stereoscopic.asy 2021-02-24 18:27:49 UTC (rev 57875)
+++ trunk/Master/texmf-dist/doc/asymptote/examples/stereoscopic.asy 2021-02-24 18:33:44 UTC (rev 57876)
@@ -1,5 +1,5 @@
import three;
-
+
currentprojection=perspective(50*dir(70,15));
picture pic;
@@ -6,6 +6,6 @@
unitsize(pic,1cm);
draw(pic,xscale3(10)*unitcube,yellow,blue);
-
+
addStereoViews(pic);
Modified: trunk/Master/texmf-dist/doc/asymptote/examples/strokeshade.asy
===================================================================
--- trunk/Master/texmf-dist/doc/asymptote/examples/strokeshade.asy 2021-02-24 18:27:49 UTC (rev 57875)
+++ trunk/Master/texmf-dist/doc/asymptote/examples/strokeshade.asy 2021-02-24 18:33:44 UTC (rev 57876)
@@ -1,4 +1,4 @@
size(100);
guide g=(0,0)..controls(70,30) and (-40,30)..(30,0);
latticeshade(g,stroke=true,linewidth(10),
- new pen[][] {{red,orange,yellow},{green,blue,purple}});
+ new pen[][] {{red,orange,yellow},{green,blue,purple}});
Modified: trunk/Master/texmf-dist/doc/asymptote/examples/teapot.asy
===================================================================
--- trunk/Master/texmf-dist/doc/asymptote/examples/teapot.asy 2021-02-24 18:27:49 UTC (rev 57875)
+++ trunk/Master/texmf-dist/doc/asymptote/examples/teapot.asy 2021-02-24 18:33:44 UTC (rev 57876)
@@ -5,168 +5,200 @@
currentprojection=perspective(250,-250,250);
currentlight=Viewport;
-triple[][][] Q={
+triple[][][] Q=
{
+ {
{(39.68504,0,68.0315),(37.91339,0,71.75197),(40.74803,0,71.75197),(42.51969,0,68.0315)},
{(39.68504,-22.22362,68.0315),(37.91339,-21.2315,71.75197),(40.74803,-22.8189,71.75197),(42.51969,-23.81102,68.0315)},
{(22.22362,-39.68504,68.0315),(21.2315,-37.91339,71.75197),(22.8189,-40.74803,71.75197),(23.81102,-42.51969,68.0315)},
{(0,-39.68504,68.0315),(0,-37.91339,71.75197),(0,-40.74803,71.75197),(0,-42.51969,68.0315)}
- },{
+ },
+ {
{(0,-39.68504,68.0315),(0,-37.91339,71.75197),(0,-40.74803,71.75197),(0,-42.51969,68.0315)},
{(-22.22362,-39.68504,68.0315),(-21.2315,-37.91339,71.75197),(-22.8189,-40.74803,71.75197),(-23.81102,-42.51969,68.0315)},
{(-39.68504,-22.22362,68.0315),(-37.91339,-21.2315,71.75197),(-40.74803,-22.8189,71.75197),(-42.51969,-23.81102,68.0315)},
{(-39.68504,0,68.0315),(-37.91339,0,71.75197),(-40.74803,0,71.75197),(-42.51969,0,68.0315)}
- },{
+ },
+ {
{(-39.68504,0,68.0315),(-37.91339,0,71.75197),(-40.74803,0,71.75197),(-42.51969,0,68.0315)},
{(-39.68504,22.22362,68.0315),(-37.91339,21.2315,71.75197),(-40.74803,22.8189,71.75197),(-42.51969,23.81102,68.0315)},
{(-22.22362,39.68504,68.0315),(-21.2315,37.91339,71.75197),(-22.8189,40.74803,71.75197),(-23.81102,42.51969,68.0315)},
{(0,39.68504,68.0315),(0,37.91339,71.75197),(0,40.74803,71.75197),(0,42.51969,68.0315)}
- },{
+ },
+ {
{(0,39.68504,68.0315),(0,37.91339,71.75197),(0,40.74803,71.75197),(0,42.51969,68.0315)},
{(22.22362,39.68504,68.0315),(21.2315,37.91339,71.75197),(22.8189,40.74803,71.75197),(23.81102,42.51969,68.0315)},
{(39.68504,22.22362,68.0315),(37.91339,21.2315,71.75197),(40.74803,22.8189,71.75197),(42.51969,23.81102,68.0315)},
{(39.68504,0,68.0315),(37.91339,0,71.75197),(40.74803,0,71.75197),(42.51969,0,68.0315)}
- },{
+ },
+ {
{(42.51969,0,68.0315),(49.60629,0,53.1496),(56.69291,0,38.26771),(56.69291,0,25.51181)},
{(42.51969,-23.81102,68.0315),(49.60629,-27.77952,53.1496),(56.69291,-31.74803,38.26771),(56.69291,-31.74803,25.51181)},
{(23.81102,-42.51969,68.0315),(27.77952,-49.60629,53.1496),(31.74803,-56.69291,38.26771),(31.74803,-56.69291,25.51181)},
{(0,-42.51969,68.0315),(0,-49.60629,53.1496),(0,-56.69291,38.26771),(0,-56.69291,25.51181)}
- },{
+ },
+ {
{(0,-42.51969,68.0315),(0,-49.60629,53.1496),(0,-56.69291,38.26771),(0,-56.69291,25.51181)},
{(-23.81102,-42.51969,68.0315),(-27.77952,-49.60629,53.1496),(-31.74803,-56.69291,38.26771),(-31.74803,-56.69291,25.51181)},
{(-42.51969,-23.81102,68.0315),(-49.60629,-27.77952,53.1496),(-56.69291,-31.74803,38.26771),(-56.69291,-31.74803,25.51181)},
{(-42.51969,0,68.0315),(-49.60629,0,53.1496),(-56.69291,0,38.26771),(-56.69291,0,25.51181)}
- },{
+ },
+ {
{(-42.51969,0,68.0315),(-49.60629,0,53.1496),(-56.69291,0,38.26771),(-56.69291,0,25.51181)},
{(-42.51969,23.81102,68.0315),(-49.60629,27.77952,53.1496),(-56.69291,31.74803,38.26771),(-56.69291,31.74803,25.51181)},
{(-23.81102,42.51969,68.0315),(-27.77952,49.60629,53.1496),(-31.74803,56.69291,38.26771),(-31.74803,56.69291,25.51181)},
{(0,42.51969,68.0315),(0,49.60629,53.1496),(0,56.69291,38.26771),(0,56.69291,25.51181)}
- },{
+ },
+ {
{(0,42.51969,68.0315),(0,49.60629,53.1496),(0,56.69291,38.26771),(0,56.69291,25.51181)},
{(23.81102,42.51969,68.0315),(27.77952,49.60629,53.1496),(31.74803,56.69291,38.26771),(31.74803,56.69291,25.51181)},
{(42.51969,23.81102,68.0315),(49.60629,27.77952,53.1496),(56.69291,31.74803,38.26771),(56.69291,31.74803,25.51181)},
{(42.51969,0,68.0315),(49.60629,0,53.1496),(56.69291,0,38.26771),(56.69291,0,25.51181)}
- },{
+ },
+ {
{(56.69291,0,25.51181),(56.69291,0,12.7559),(42.51969,0,6.377957),(42.51969,0,4.251961)},
{(56.69291,-31.74803,25.51181),(56.69291,-31.74803,12.7559),(42.51969,-23.81102,6.377957),(42.51969,-23.81102,4.251961)},
{(31.74803,-56.69291,25.51181),(31.74803,-56.69291,12.7559),(23.81102,-42.51969,6.377957),(23.81102,-42.51969,4.251961)},
{(0,-56.69291,25.51181),(0,-56.69291,12.7559),(0,-42.51969,6.377957),(0,-42.51969,4.251961)}
- },{
+ },
+ {
{(0,-56.69291,25.51181),(0,-56.69291,12.7559),(0,-42.51969,6.377957),(0,-42.51969,4.251961)},
{(-31.74803,-56.69291,25.51181),(-31.74803,-56.69291,12.7559),(-23.81102,-42.51969,6.377957),(-23.81102,-42.51969,4.251961)},
{(-56.69291,-31.74803,25.51181),(-56.69291,-31.74803,12.7559),(-42.51969,-23.81102,6.377957),(-42.51969,-23.81102,4.251961)},
{(-56.69291,0,25.51181),(-56.69291,0,12.7559),(-42.51969,0,6.377957),(-42.51969,0,4.251961)}
- },{
+ },
+ {
{(-56.69291,0,25.51181),(-56.69291,0,12.7559),(-42.51969,0,6.377957),(-42.51969,0,4.251961)},
{(-56.69291,31.74803,25.51181),(-56.69291,31.74803,12.7559),(-42.51969,23.81102,6.377957),(-42.51969,23.81102,4.251961)},
{(-31.74803,56.69291,25.51181),(-31.74803,56.69291,12.7559),(-23.81102,42.51969,6.377957),(-23.81102,42.51969,4.251961)},
{(0,56.69291,25.51181),(0,56.69291,12.7559),(0,42.51969,6.377957),(0,42.51969,4.251961)}
- },{
+ },
+ {
{(0,56.69291,25.51181),(0,56.69291,12.7559),(0,42.51969,6.377957),(0,42.51969,4.251961)},
{(31.74803,56.69291,25.51181),(31.74803,56.69291,12.7559),(23.81102,42.51969,6.377957),(23.81102,42.51969,4.251961)},
{(56.69291,31.74803,25.51181),(56.69291,31.74803,12.7559),(42.51969,23.81102,6.377957),(42.51969,23.81102,4.251961)},
{(56.69291,0,25.51181),(56.69291,0,12.7559),(42.51969,0,6.377957),(42.51969,0,4.251961)}
- },{
+ },
+ {
{(-45.35433,0,57.40157),(-65.19685,0,57.40157),(-76.53543,0,57.40157),(-76.53543,0,51.02362)},
{(-45.35433,-8.503932,57.40157),(-65.19685,-8.503932,57.40157),(-76.53543,-8.503932,57.40157),(-76.53543,-8.503932,51.02362)},
{(-42.51969,-8.503932,63.77952),(-70.86614,-8.503932,63.77952),(-85.03937,-8.503932,63.77952),(-85.03937,-8.503932,51.02362)},
{(-42.51969,0,63.77952),(-70.86614,0,63.77952),(-85.03937,0,63.77952),(-85.03937,0,51.02362)}
- },{
+ },
+ {
{(-42.51969,0,63.77952),(-70.86614,0,63.77952),(-85.03937,0,63.77952),(-85.03937,0,51.02362)},
{(-42.51969,8.503932,63.77952),(-70.86614,8.503932,63.77952),(-85.03937,8.503932,63.77952),(-85.03937,8.503932,51.02362)},
{(-45.35433,8.503932,57.40157),(-65.19685,8.503932,57.40157),(-76.53543,8.503932,57.40157),(-76.53543,8.503932,51.02362)},
{(-45.35433,0,57.40157),(-65.19685,0,57.40157),(-76.53543,0,57.40157),(-76.53543,0,51.02362)}
- },{
+ },
+ {
{(-76.53543,0,51.02362),(-76.53543,0,44.64566),(-70.86614,0,31.88976),(-56.69291,0,25.51181)},
{(-76.53543,-8.503932,51.02362),(-76.53543,-8.503932,44.64566),(-70.86614,-8.503932,31.88976),(-56.69291,-8.503932,25.51181)},
{(-85.03937,-8.503932,51.02362),(-85.03937,-8.503932,38.26771),(-75.11811,-8.503932,26.5748),(-53.85826,-8.503932,17.00787)},
{(-85.03937,0,51.02362),(-85.03937,0,38.26771),(-75.11811,0,26.5748),(-53.85826,0,17.00787)}
- },{
+ },
+ {
{(-85.03937,0,51.02362),(-85.03937,0,38.26771),(-75.11811,0,26.5748),(-53.85826,0,17.00787)},
{(-85.03937,8.503932,51.02362),(-85.03937,8.503932,38.26771),(-75.11811,8.503932,26.5748),(-53.85826,8.503932,17.00787)},
{(-76.53543,8.503932,51.02362),(-76.53543,8.503932,44.64566),(-70.86614,8.503932,31.88976),(-56.69291,8.503932,25.51181)},
{(-76.53543,0,51.02362),(-76.53543,0,44.64566),(-70.86614,0,31.88976),(-56.69291,0,25.51181)}
- },{
+ },
+ {
{(48.18897,0,40.3937),(73.70078,0,40.3937),(65.19685,0,59.52755),(76.53543,0,68.0315)},
{(48.18897,-18.70866,40.3937),(73.70078,-18.70866,40.3937),(65.19685,-7.086619,59.52755),(76.53543,-7.086619,68.0315)},
{(48.18897,-18.70866,17.00787),(87.87401,-18.70866,23.38582),(68.0315,-7.086619,57.40157),(93.5433,-7.086619,68.0315)},
{(48.18897,0,17.00787),(87.87401,0,23.38582),(68.0315,0,57.40157),(93.5433,0,68.0315)}
- },{
+ },
+ {
{(48.18897,0,17.00787),(87.87401,0,23.38582),(68.0315,0,57.40157),(93.5433,0,68.0315)},
{(48.18897,18.70866,17.00787),(87.87401,18.70866,23.38582),(68.0315,7.086619,57.40157),(93.5433,7.086619,68.0315)},
{(48.18897,18.70866,40.3937),(73.70078,18.70866,40.3937),(65.19685,7.086619,59.52755),(76.53543,7.086619,68.0315)},
{(48.18897,0,40.3937),(73.70078,0,40.3937),(65.19685,0,59.52755),(76.53543,0,68.0315)}
- },{
+ },
+ {
{(76.53543,0,68.0315),(79.37007,0,70.15748),(82.20472,0,70.15748),(79.37007,0,68.0315)},
{(76.53543,-7.086619,68.0315),(79.37007,-7.086619,70.15748),(82.20472,-4.251961,70.15748),(79.37007,-4.251961,68.0315)},
{(93.5433,-7.086619,68.0315),(99.92125,-7.086619,70.68897),(97.79527,-4.251961,71.22047),(90.70866,-4.251961,68.0315)},
{(93.5433,0,68.0315),(99.92125,0,70.68897),(97.79527,0,71.22047),(90.70866,0,68.0315)}
- },{
+ },
+ {
{(93.5433,0,68.0315),(99.92125,0,70.68897),(97.79527,0,71.22047),(90.70866,0,68.0315)},
{(93.5433,7.086619,68.0315),(99.92125,7.086619,70.68897),(97.79527,4.251961,71.22047),(90.70866,4.251961,68.0315)},
{(76.53543,7.086619,68.0315),(79.37007,7.086619,70.15748),(82.20472,4.251961,70.15748),(79.37007,4.251961,68.0315)},
{(76.53543,0,68.0315),(79.37007,0,70.15748),(82.20472,0,70.15748),(79.37007,0,68.0315)}
- },{
+ },
+ {
{(0,0,89.29133),(22.67716,0,89.29133),(0,0,80.7874),(5.669294,0,76.53543)},
{(0,0,89.29133),(22.67716,-12.7559,89.29133),(0,0,80.7874),(5.669294,-3.174809,76.53543)},
{(0,0,89.29133),(12.7559,-22.67716,89.29133),(0,0,80.7874),(3.174809,-5.669294,76.53543)},
{(0,0,89.29133),(0,-22.67716,89.29133),(0,0,80.7874),(0,-5.669294,76.53543)}
- },{
+ },
+ {
{(0,0,89.29133),(0,-22.67716,89.29133),(0,0,80.7874),(0,-5.669294,76.53543)},
{(0,0,89.29133),(-12.7559,-22.67716,89.29133),(0,0,80.7874),(-3.174809,-5.669294,76.53543)},
{(0,0,89.29133),(-22.67716,-12.7559,89.29133),(0,0,80.7874),(-5.669294,-3.174809,76.53543)},
{(0,0,89.29133),(-22.67716,0,89.29133),(0,0,80.7874),(-5.669294,0,76.53543)}
- },{
+ },
+ {
{(0,0,89.29133),(-22.67716,0,89.29133),(0,0,80.7874),(-5.669294,0,76.53543)},
{(0,0,89.29133),(-22.67716,12.7559,89.29133),(0,0,80.7874),(-5.669294,3.174809,76.53543)},
{(0,0,89.29133),(-12.7559,22.67716,89.29133),(0,0,80.7874),(-3.174809,5.669294,76.53543)},
{(0,0,89.29133),(0,22.67716,89.29133),(0,0,80.7874),(0,5.669294,76.53543)}
- },{
+ },
+ {
{(0,0,89.29133),(0,22.67716,89.29133),(0,0,80.7874),(0,5.669294,76.53543)},
{(0,0,89.29133),(12.7559,22.67716,89.29133),(0,0,80.7874),(3.174809,5.669294,76.53543)},
{(0,0,89.29133),(22.67716,12.7559,89.29133),(0,0,80.7874),(5.669294,3.174809,76.53543)},
{(0,0,89.29133),(22.67716,0,89.29133),(0,0,80.7874),(5.669294,0,76.53543)}
- },{
+ },
+ {
{(5.669294,0,76.53543),(11.33858,0,72.28346),(36.85039,0,72.28346),(36.85039,0,68.0315)},
{(5.669294,-3.174809,76.53543),(11.33858,-6.349609,72.28346),(36.85039,-20.63622,72.28346),(36.85039,-20.63622,68.0315)},
{(3.174809,-5.669294,76.53543),(6.349609,-11.33858,72.28346),(20.63622,-36.85039,72.28346),(20.63622,-36.85039,68.0315)},
{(0,-5.669294,76.53543),(0,-11.33858,72.28346),(0,-36.85039,72.28346),(0,-36.85039,68.0315)}
- },{
+ },
+ {
{(0,-5.669294,76.53543),(0,-11.33858,72.28346),(0,-36.85039,72.28346),(0,-36.85039,68.0315)},
{(-3.174809,-5.669294,76.53543),(-6.349609,-11.33858,72.28346),(-20.63622,-36.85039,72.28346),(-20.63622,-36.85039,68.0315)},
{(-5.669294,-3.174809,76.53543),(-11.33858,-6.349609,72.28346),(-36.85039,-20.63622,72.28346),(-36.85039,-20.63622,68.0315)},
{(-5.669294,0,76.53543),(-11.33858,0,72.28346),(-36.85039,0,72.28346),(-36.85039,0,68.0315)},
- },{
+ },
+ {
{(-5.669294,0,76.53543),(-11.33858,0,72.28346),(-36.85039,0,72.28346),(-36.85039,0,68.0315)},
{(-5.669294,3.174809,76.53543),(-11.33858,6.349609,72.28346),(-36.85039,20.63622,72.28346),(-36.85039,20.63622,68.0315)},
{(-3.174809,5.669294,76.53543),(-6.349609,11.33858,72.28346),(-20.63622,36.85039,72.28346),(-20.63622,36.85039,68.0315)},
{(0,5.669294,76.53543),(0,11.33858,72.28346),(0,36.85039,72.28346),(0,36.85039,68.0315)}
- },{
+ },
+ {
{(0,5.669294,76.53543),(0,11.33858,72.28346),(0,36.85039,72.28346),(0,36.85039,68.0315)},
{(3.174809,5.669294,76.53543),(6.349609,11.33858,72.28346),(20.63622,36.85039,72.28346),(20.63622,36.85039,68.0315)},
{(5.669294,3.174809,76.53543),(11.33858,6.349609,72.28346),(36.85039,20.63622,72.28346),(36.85039,20.63622,68.0315)},
{(5.669294,0,76.53543),(11.33858,0,72.28346),(36.85039,0,72.28346),(36.85039,0,68.0315)},
- },{
+ },
+ {
{(0,0,0),(40.3937,0,0),(42.51969,0,2.12598),(42.51969,0,4.251961)},
{(0,0,0),(40.3937,22.62047,0),(42.51969,23.81102,2.12598),(42.51969,23.81102,4.251961)},
{(0,0,0),(22.62047,40.3937,0),(23.81102,42.51969,2.12598),(23.81102,42.51969,4.251961)},
{(0,0,0),(0,40.3937,0),(0,42.51969,2.12598),(0,42.51969,4.251961)}
- },{
+ },
+ {
{(0,0,0),(0,40.3937,0),(0,42.51969,2.12598),(0,42.51969,4.251961)},
{(0,0,0),(-22.62047,40.3937,0),(-23.81102,42.51969,2.12598),(-23.81102,42.51969,4.251961)},
{(0,0,0),(-40.3937,22.62047,0),(-42.51969,23.81102,2.12598),(-42.51969,23.81102,4.251961)},
{(0,0,0),(-40.3937,0,0),(-42.51969,0,2.12598),(-42.51969,0,4.251961)}
- },{
+ },
+ {
{(0,0,0),(-40.3937,0,0),(-42.51969,0,2.12598),(-42.51969,0,4.251961)},
{(0,0,0),(-40.3937,-22.62047,0),(-42.51969,-23.81102,2.12598),(-42.51969,-23.81102,4.251961)},
{(0,0,0),(-22.62047,-40.3937,0),(-23.81102,-42.51969,2.12598),(-23.81102,-42.51969,4.251961)},
{(0,0,0),(0,-40.3937,0),(0,-42.51969,2.12598),(0,-42.51969,4.251961)}
- },{
+ },
+ {
{(0,0,0),(0,-40.3937,0),(0,-42.51969,2.12598),(0,-42.51969,4.251961)},
{(0,0,0),(22.62047,-40.3937,0),(23.81102,-42.51969,2.12598),(23.81102,-42.51969,4.251961)},
{(0,0,0),(40.3937,-22.62047,0),(42.51969,-23.81102,2.12598),(42.51969,-23.81102,4.251961)},
{(0,0,0),(40.3937,0,0),(42.51969,0,2.12598),(42.51969,0,4.251961)}
- }
-};
+ }
+ };
draw(surface(Q),material(blue, shininess=0.85, metallic=0),render(compression=Low));
Modified: trunk/Master/texmf-dist/doc/asymptote/examples/thermodynamics.asy
===================================================================
--- trunk/Master/texmf-dist/doc/asymptote/examples/thermodynamics.asy 2021-02-24 18:27:49 UTC (rev 57875)
+++ trunk/Master/texmf-dist/doc/asymptote/examples/thermodynamics.asy 2021-02-24 18:33:44 UTC (rev 57876)
@@ -14,7 +14,7 @@
draw(ReturnPic, ((0,-S)--(0,S)), bar = EndArrow); // y axis
label(ReturnPic, "$\varepsilon$", (S,0), SW); // x axis label
label(ReturnPic, "$\sigma$", (0,S), SW); // y axis label
- label(ReturnPic, legend, (0.7S, -S), NW); // add label 'legend'
+ label(ReturnPic, legend, (0.7S, -S), NW); // add label 'legend'
return ReturnPic; // return picture
}
@@ -32,71 +32,71 @@
real inc = 2.8; // increment-offset for combining pictures
//////////////////////////////////////// 1st diagram
-T[1] = CreateKOOS(S, "$T_1$"); // initialise T[1] as empty diagram with label $T_1$
-graph = A; // # pointwise definition of current path 'graph'
-graph = graph -- (A.x + grad*1.6, A.y + 1.6); // #
-graph = graph -- (E.x - grad*0.4, E.y - 0.4); // #
+T[1] = CreateKOOS(S, "$T_1$"); // initialise T[1] as empty diagram with label $T_1$
+graph = A; // # pointwise definition of current path 'graph'
+graph = graph -- (A.x + grad*1.6, A.y + 1.6); // #
+graph = graph -- (E.x - grad*0.4, E.y - 0.4); // #
graph = graph -- E; // #
-graph = roundedpath(graph, radius, S); // round edges of 'graph' using roundedpath() in roundedpath.asy
-ActPen = rgb(0,0,0.6) + linewidth(lw); // define pen for drawing in 1st diagram
-draw(T[1], graph, ActPen); // draw 'graph' with 'ActPen' into 'T[1]' (1st hysteresis branch)
-draw(T[1], rotate(180,(0,0))*graph, ActPen); // draw rotated 'graph' (2nd hysteresis branch)
+graph = roundedpath(graph, radius, S); // round edges of 'graph' using roundedpath() in roundedpath.asy
+ActPen = rgb(0,0,0.6) + linewidth(lw); // define pen for drawing in 1st diagram
+draw(T[1], graph, ActPen); // draw 'graph' with 'ActPen' into 'T[1]' (1st hysteresis branch)
+draw(T[1], rotate(180,(0,0))*graph, ActPen); // draw rotated 'graph' (2nd hysteresis branch)
graph = (0,0) -- (grad*0.6, 0.6) -- ( (grad*0.6, 0.6) + (0.1, 0) ); // define branch from origin to hysteresis
-graph = roundedpath(graph, radius, S); // round this path
-draw(T[1], graph, ActPen); // draw this path into 'T[1]'
+graph = roundedpath(graph, radius, S); // round this path
+draw(T[1], graph, ActPen); // draw this path into 'T[1]'
//////////////////////////////////////// 2nd diagram
-T[2] = CreateKOOS(S, "$T_2$"); // initialise T[2] as empty diagram with label $T_2$
-graph = A; // # pointwise definition of current path 'graph'
-graph = graph -- (A.x + grad*1.3, A.y + 1.3); // #
-graph = graph -- (E.x - grad*0.7 , E.y - 0.7); // #
+T[2] = CreateKOOS(S, "$T_2$"); // initialise T[2] as empty diagram with label $T_2$
+graph = A; // # pointwise definition of current path 'graph'
+graph = graph -- (A.x + grad*1.3, A.y + 1.3); // #
+graph = graph -- (E.x - grad*0.7 , E.y - 0.7); // #
graph = graph -- E; // #
-
-graph = roundedpath(graph, radius, S); // round edges of 'graph' using roundedpath() in roundedpath.asy
-ActPen = rgb(0.2,0,0.4) + linewidth(lw); // define pen for drawing in 2nd diagram
-draw(T[2], graph, ActPen); // draw 'graph' with 'ActPen' into 'T[2]' (1st hysteresis branch)
-draw(T[2], rotate(180,(0,0))*graph, ActPen); // draw rotated 'graph' (2nd hysteresis branch)
+graph = roundedpath(graph, radius, S); // round edges of 'graph' using roundedpath() in roundedpath.asy
+ActPen = rgb(0.2,0,0.4) + linewidth(lw); // define pen for drawing in 2nd diagram
+draw(T[2], graph, ActPen); // draw 'graph' with 'ActPen' into 'T[2]' (1st hysteresis branch)
+draw(T[2], rotate(180,(0,0))*graph, ActPen); // draw rotated 'graph' (2nd hysteresis branch)
+
graph = (0,0) -- (grad*0.3, 0.3) -- ( (grad*0.3, 0.3) + (0.1, 0) ); // define branch from origin to hysteresis
-graph = roundedpath(graph, radius, S); // round this path
-draw(T[2], graph, ActPen); // draw this path into 'T[2]'
+graph = roundedpath(graph, radius, S); // round this path
+draw(T[2], graph, ActPen); // draw this path into 'T[2]'
//////////////////////////////////////// 3rd diagram
-T[3] = CreateKOOS(S, "$T_3$"); // initialise T[3] as empty diagram with label $T_3$
-graph = A; // # pointwise definition of current path 'graph'
-graph = graph -- (A.x + grad*0.7, A.y + 0.7); // #
-graph = graph -- ( - grad*0.3 , - 0.3); // #
-graph = graph -- (0,0); // #
-graph = graph -- (grad*0.6, 0.6); // #
-graph = graph -- (E.x - grad*0.4, E.y - 0.4); // #
-graph = graph -- E; // #
-
-graph = roundedpath(graph, radius, S); // round edges of 'graph' using roundedpath() in roundedpath.asy
-ActPen = rgb(0.6,0,0.2) + linewidth(lw); // define pen for drawing in 3rd diagram
-draw(T[3], graph, ActPen); // draw 'graph' with 'ActPen' into 'T[3]' (1st hysteresis branch)
-draw(T[3], rotate(180,(0,0))*graph, ActPen); // draw rotated 'graph' (2nd hysteresis branch)
+T[3] = CreateKOOS(S, "$T_3$"); // initialise T[3] as empty diagram with label $T_3$
+graph = A; // # pointwise definition of current path 'graph'
+graph = graph -- (A.x + grad*0.7, A.y + 0.7); // #
+graph = graph -- ( - grad*0.3 , - 0.3); // #
+graph = graph -- (0,0); // #
+graph = graph -- (grad*0.6, 0.6); // #
+graph = graph -- (E.x - grad*0.4, E.y - 0.4); // #
+graph = graph -- E; // #
+graph = roundedpath(graph, radius, S); // round edges of 'graph' using roundedpath() in roundedpath.asy
+ActPen = rgb(0.6,0,0.2) + linewidth(lw); // define pen for drawing in 3rd diagram
+draw(T[3], graph, ActPen); // draw 'graph' with 'ActPen' into 'T[3]' (1st hysteresis branch)
+draw(T[3], rotate(180,(0,0))*graph, ActPen); // draw rotated 'graph' (2nd hysteresis branch)
+
//////////////////////////////////////// 4th diagram
-T[4] = CreateKOOS(S, "$T_4$"); // initialise T[4] as empty diagram with label $T_4$
-graph = A; // # pointwise definition of current path 'graph'
-graph = graph -- (A.x + grad*0.4, A.y + 0.4); // #
-graph = graph -- ( - grad*0.6 , - 0.6); // #
-graph = graph -- (0,0); // #
-graph = graph -- (grad*0.9, 0.9); // #
-graph = graph -- (E.x - grad*0.1, E.y - 0.1); // #
-graph = graph -- E; // #
-
-graph = roundedpath(graph, radius, S); // round edges of 'graph' using roundedpath() in roundedpath.asy
-ActPen = rgb(0.6,0,0) + linewidth(lw); // define pen for drawing in 4th diagram
-draw(T[4], graph, ActPen); // draw 'graph' with 'ActPen' into 'T[4]' (1st hysteresis branch)
-draw(T[4], rotate(180,(0,0))*graph, ActPen); // draw rotated 'graph' (3nd hysteresis branch)
+T[4] = CreateKOOS(S, "$T_4$"); // initialise T[4] as empty diagram with label $T_4$
+graph = A; // # pointwise definition of current path 'graph'
+graph = graph -- (A.x + grad*0.4, A.y + 0.4); // #
+graph = graph -- ( - grad*0.6 , - 0.6); // #
+graph = graph -- (0,0); // #
+graph = graph -- (grad*0.9, 0.9); // #
+graph = graph -- (E.x - grad*0.1, E.y - 0.1); // #
+graph = graph -- E; // #
+graph = roundedpath(graph, radius, S); // round edges of 'graph' using roundedpath() in roundedpath.asy
+ActPen = rgb(0.6,0,0) + linewidth(lw); // define pen for drawing in 4th diagram
+draw(T[4], graph, ActPen); // draw 'graph' with 'ActPen' into 'T[4]' (1st hysteresis branch)
+draw(T[4], rotate(180,(0,0))*graph, ActPen); // draw rotated 'graph' (3nd hysteresis branch)
+
// add some labels and black dots to the first two pictures
pair SWW = (-0.8, -0.6);
label(T[1], "$\sigma_f$", (0, 0.6S), NE); // sigma_f
@@ -126,6 +126,6 @@
draw(shift(( 1 - grad*0.55 + 0*inc)*S, 0.45*S)*mark, ActPen); // # draw all intersections
draw(shift((-1 + grad*1.45 + 0*inc)*S, 0.45*S)*mark, ActPen); // #
draw(shift(( 1 - grad*0.55 + 1*inc)*S, 0.45*S)*mark, ActPen); // #
-draw(shift(( 1 - grad*0.55 + 2*inc)*S, 0.45*S)*mark, ActPen); // #
-draw(shift(( grad*0.45 + 2*inc)*S, 0.45*S)*mark, ActPen); // #
+draw(shift(( 1 - grad*0.55 + 2*inc)*S, 0.45*S)*mark, ActPen); // #
+draw(shift(( grad*0.45 + 2*inc)*S, 0.45*S)*mark, ActPen); // #
draw(shift(( grad*0.45 + 3*inc)*S, 0.45*S)*mark, ActPen); // #
Modified: trunk/Master/texmf-dist/doc/asymptote/examples/torus.asy
===================================================================
--- trunk/Master/texmf-dist/doc/asymptote/examples/torus.asy 2021-02-24 18:27:49 UTC (rev 57875)
+++ trunk/Master/texmf-dist/doc/asymptote/examples/torus.asy 2021-02-24 18:33:44 UTC (rev 57876)
@@ -7,9 +7,9 @@
real a=1;
/*
-import solids;
-revolution torus=revolution(reverse(Circle(R*X,a,Y,32)),Z,90,345);
-surface s=surface(torus);
+ import solids;
+ revolution torus=revolution(reverse(Circle(R*X,a,Y,32)),Z,90,345);
+ surface s=surface(torus);
*/
triple f(pair t) {
Modified: trunk/Master/texmf-dist/doc/asymptote/examples/triads.asy
===================================================================
--- trunk/Master/texmf-dist/doc/asymptote/examples/triads.asy 2021-02-24 18:27:49 UTC (rev 57875)
+++ trunk/Master/texmf-dist/doc/asymptote/examples/triads.asy 2021-02-24 18:33:44 UTC (rev 57876)
@@ -12,18 +12,18 @@
pen d=c+darkgreen;
void drawarrow(string s="", pair p, pair q, side side=RightSide,
- bool upscale=false, pen c)
+ bool upscale=false, pen c)
{
path g=p{dir(-5)}..{dir(-85)}q;
- if(upscale) g=reverse(g);
+ if(upscale) g=reverse(g);
draw(s,g,side,c,Arrow(Fill,0.65));
-}
+}
void spectrum(pair l,pair m, pair s) {
draw(p,c);
-
+
d += 4.0;
- dot("$p$",l,SW,d);
+ dot("$p$",l,SW,d);
dot("$q$",m,SW,d);
dot("$k$",s,SW,d);
Modified: trunk/Master/texmf-dist/doc/asymptote/examples/triangle.asy
===================================================================
--- trunk/Master/texmf-dist/doc/asymptote/examples/triangle.asy 2021-02-24 18:27:49 UTC (rev 57875)
+++ trunk/Master/texmf-dist/doc/asymptote/examples/triangle.asy 2021-02-24 18:33:44 UTC (rev 57876)
@@ -2,7 +2,7 @@
import geometry;
triangle t=triangle(b=3,alpha=90,c=4);
-
+
dot((0,0));
draw(t);
Modified: trunk/Master/texmf-dist/doc/asymptote/examples/truncatedIcosahedron.asy
===================================================================
--- trunk/Master/texmf-dist/doc/asymptote/examples/truncatedIcosahedron.asy 2021-02-24 18:27:49 UTC (rev 57875)
+++ trunk/Master/texmf-dist/doc/asymptote/examples/truncatedIcosahedron.asy 2021-02-24 18:33:44 UTC (rev 57876)
@@ -10,20 +10,21 @@
triple[] x={(0,c,1),(0,-c,1),(0,-c,-1),(0,c,-1)};
triple[] y={(1,0,c),(1,0,-c),(-1,0,-c),(-1,0,c)};
-triple[][] Q={
- {(c,1,0),(1,0,-c),(0,c,-1),(0,c,1),(1,0,c),(c,-1,0)},
- {(-c,1,0),(0,c,1),(0,c,-1),(-1,0,-c),(-c,-1,0),(-1,0,c)},
- {(-c,-1,0),(-c,1,0),(-1,0,-c),(0,-c,-1),(0,-c,1),(-1,0,c)},
- {(c,-1,0),(c,1,0),(1,0,c),(0,-c,1),(0,-c,-1),(1,0,-c)},
- {(0,c,1),(0,c,-1),(-c,1,0),(-1,0,c),(1,0,c),(c,1,0)},
- {(0,-c,1),(0,-c,-1),(-c,-1,0),(-1,0,c),(1,0,c),(c,-1,0)},
- {(0,-c,-1),(0,-c,1),(c,-1,0),(1,0,-c),(-1,0,-c),(-c,-1,0)},
- {(0,c,-1),(0,c,1),(c,1,0),(1,0,-c),(-1,0,-c),(-c,1,0)},
- {(1,0,c),(-1,0,c),(0,-c,1),(c,-1,0),(c,1,0),(0,c,1)},
- {(1,0,-c),(-1,0,-c),(0,-c,-1),(c,-1,0),(c,1,0),(0,c,-1)},
- {(-1,0,-c),(1,0,-c),(0,c,-1),(-c,1,0),(-c,-1,0),(0,-c,-1)},
- {(-1,0,c),(1,0,c),(0,c,1),(-c,1,0),(-c,-1,0),(0,-c,1)}
-};
+triple[][] Q=
+ {
+ {(c,1,0),(1,0,-c),(0,c,-1),(0,c,1),(1,0,c),(c,-1,0)},
+ {(-c,1,0),(0,c,1),(0,c,-1),(-1,0,-c),(-c,-1,0),(-1,0,c)},
+ {(-c,-1,0),(-c,1,0),(-1,0,-c),(0,-c,-1),(0,-c,1),(-1,0,c)},
+ {(c,-1,0),(c,1,0),(1,0,c),(0,-c,1),(0,-c,-1),(1,0,-c)},
+ {(0,c,1),(0,c,-1),(-c,1,0),(-1,0,c),(1,0,c),(c,1,0)},
+ {(0,-c,1),(0,-c,-1),(-c,-1,0),(-1,0,c),(1,0,c),(c,-1,0)},
+ {(0,-c,-1),(0,-c,1),(c,-1,0),(1,0,-c),(-1,0,-c),(-c,-1,0)},
+ {(0,c,-1),(0,c,1),(c,1,0),(1,0,-c),(-1,0,-c),(-c,1,0)},
+ {(1,0,c),(-1,0,c),(0,-c,1),(c,-1,0),(c,1,0),(0,c,1)},
+ {(1,0,-c),(-1,0,-c),(0,-c,-1),(c,-1,0),(c,1,0),(0,c,-1)},
+ {(-1,0,-c),(1,0,-c),(0,c,-1),(-c,1,0),(-c,-1,0),(0,-c,-1)},
+ {(-1,0,c),(1,0,c),(0,c,1),(-c,1,0),(-c,-1,0),(0,-c,1)}
+ };
real R=abs(interp(Q[0][0],Q[0][1],1/3));
Modified: trunk/Master/texmf-dist/doc/asymptote/examples/tvgen.asy
===================================================================
--- trunk/Master/texmf-dist/doc/asymptote/examples/tvgen.asy 2021-02-24 18:27:49 UTC (rev 57875)
+++ trunk/Master/texmf-dist/doc/asymptote/examples/tvgen.asy 2021-02-24 18:33:44 UTC (rev 57876)
@@ -17,10 +17,10 @@
* Boston, MA 02110-1301, USA.
*
* tvgen-1.2/tvgen.asy http://picaros.org/ftp/soft/tvgen-1.2.tgz
- * This asy script generates pm5544-like television test cards. The image
- * parameters were derived from a 1990 recording. The basic parameters
- * conform to itu-r bt.470, bt.601, and bt.709. There is no unique image
- * since local variants exist and parameters have varied over time.
+ * This asy script generates pm5544-like television test cards. The image
+ * parameters were derived from a 1990 recording. The basic parameters
+ * conform to itu-r bt.470, bt.601, and bt.709. There is no unique image
+ * since local variants exist and parameters have varied over time.
*/
//papertype="a4";
import plain;
@@ -27,30 +27,30 @@
int verbose=settings.verbose/*+2*/; /* uncomment for debug info */
/* tv dot coordinates --> PS points */
-pair tvps(real col, real row, real xd, real yd, int Nv) {
- real psx, psy;
- psx=col*xd; psy=(Nv-row)*yd;
- return (psx,psy);
+pair tvps(real col, real row, real xd, real yd, int Nv) {
+ real psx, psy;
+ psx=col*xd; psy=(Nv-row)*yd;
+ return (psx,psy);
}
path tvrect(int lc, int tr, int rc, int br, real xd, real yd, int Nv) {
- real lx, ty, rx, by;
- pair[] z;
-
- lx=lc*xd; ty=(Nv-tr)*yd;
- rx=rc*xd; by=(Nv-br)*yd;
+ real lx, ty, rx, by;
+ pair[] z;
+
+ lx=lc*xd; ty=(Nv-tr)*yd;
+ rx=rc*xd; by=(Nv-br)*yd;
/* bl br tr tl */
z[0]=(lx, by);
- z[1]=(rx, by);
- z[2]=(rx, ty);
- z[3]=(lx, ty);
-
- return z[0]--z[1]--z[2]--z[3]--cycle;
+ z[1]=(rx, by);
+ z[2]=(rx, ty);
+ z[3]=(lx, ty);
+
+ return z[0]--z[1]--z[2]--z[3]--cycle;
}
/********************* horizontal castellations ********************/
/* Draw a horizontal red line in the top left and the bottom right
* castellation. These testlines disappear if the monitor is not set
- * in a dot-exact mode. An example is image crop due to overscan.
+ * in a dot-exact mode. An example is image crop due to overscan.
*
* For 625 line systems any analog-compatible processing removes
* these red testlines since the first halfline of the odd field and
@@ -58,8 +58,8 @@
* visible line frame often results via a final copy paste operation.
*/
void castelhor(int colortv, int[] rccoll, int[] rccolr, int cmaxi, int Nh,
- int topdist, int botdist,
- pen pdef, real xd, real yd, int Nv) {
+ int topdist, int botdist,
+ pen pdef, real xd, real yd, int Nv) {
pen pblack, pwhite, pred;
int i;
@@ -113,26 +113,26 @@
zzc = tvrect(lc,botdist, rc,br, xd,yd,Nv);
fill(zzc, p=pcast);
}
-
+
return;
}
/********************* vertical castellations ********************/
-/* The bottom right red rectangle tests for a non causal color FIR
- * filter in the receiver. The last 2..4 dots then typically appear
- * colorless, green, or cyan.
+/* The bottom right red rectangle tests for a non causal color FIR
+ * filter in the receiver. The last 2..4 dots then typically appear
+ * colorless, green, or cyan.
*
- * This stems from the fact that the chroma subcarrier is of lower
- * bandwidth than luma and thus continues after the last active sample.
- * These trailing (y,u,v) samples result from an abrupt signal to zero
- * transition and depend on the transmit and receive filters. Samples
- * from VHS, system B/G/D/K, system I, or a DVD player output are
- * different. Nevertheless, a sharpening filter uses this data and so
- * adds false color to the last dots.
+ * This stems from the fact that the chroma subcarrier is of lower
+ * bandwidth than luma and thus continues after the last active sample.
+ * These trailing (y,u,v) samples result from an abrupt signal to zero
+ * transition and depend on the transmit and receive filters. Samples
+ * from VHS, system B/G/D/K, system I, or a DVD player output are
+ * different. Nevertheless, a sharpening filter uses this data and so
+ * adds false color to the last dots.
*/
void castelver(int colortv, int leftdist, int rightdist, int Nh,
- int[] rcrowb, int[] rcrowt, int rmaxi,
- pen pdef, real xd, real yd, int Nv) {
+ int[] rcrowb, int[] rcrowt, int rmaxi,
+ pen pdef, real xd, real yd, int Nv) {
pen pblack, pwhite;
int i;
@@ -144,7 +144,7 @@
pen pcastl, pcastr;
int tr, br;
path zzc;
-
+
if (inext%2 == 0) {
pcastl = pwhite;
} else {
@@ -157,10 +157,10 @@
}
tr=rcrowb[i];
- br=rcrowt[i+1];
+ br=rcrowt[i+1];
zzc=tvrect( 0,tr, leftdist,br, xd,yd,Nv);
fill(zzc, p=pcastl);
- zzc=tvrect(rightdist,tr, Nh,br, xd,yd,Nv);
+ zzc=tvrect(rightdist,tr, Nh,br, xd,yd,Nv);
fill(zzc, p=pcastr);
}
return;
@@ -167,7 +167,7 @@
}
/********************* image aspect ratio markers ********************/
void rimarkers(real rimage, int Nh, int Nhc, int os, int Nvc, int Nsy,
- pen pdef, real xd, real yd, int Nv) {
+ pen pdef, real xd, real yd, int Nv) {
int[] ridefN={ 4, 16 };
int[] ridefD={ 3, 9 };
int i;
@@ -187,11 +187,11 @@
if (2*offa<Nh) {
int hy, tr, br;
path zz;
-
- hy=floor(Nsy/3);
- tr=Nvc-hy;
- br=Nvc+hy;
-
+
+ hy=floor(Nsy/3);
+ tr=Nvc-hy;
+ br=Nvc+hy;
+
zz=tvrect(Nhc+offb, tr, Nhc+offa, br, xd,yd,Nv);
//dot(zz);
fill(zz, p=pdef);
@@ -206,7 +206,7 @@
/************* crosshatch: line pairing, center interlace test *************/
/* There are 2 coordinate systems in use:
* 1. integer number based for the gridlines
- *
+ *
* coff, Nhc, rccoll[], rccolc[], rccolr[] : vertical gridlines,
* rcrowc, Nvc : horizontal gridlines,
*
@@ -215,15 +215,15 @@
* ccenter={ cx=Nh/2, cy=Nv/2} : the true image center,
* rcoff rcright rcleft : offset to ccenter and points on the circle.
*
- * Both centers coincide if Nh and Nv are even.
+ * Both centers coincide if Nh and Nv are even.
*/
void centerline(int colortv,
- int[] rccoll, int[] rccolc, int[] rccolr, int divsx,
- int Nhc, int os,
- int[] rcrowt, int[] rcrowc, int[] rcrowb, int divsy,
- int Nvc,
- pair ccenter, real[] rcoff, pair[] rcright, pair[] rcleft,
- pen pdef, real xd, real yd, int Nv) {
+ int[] rccoll, int[] rccolc, int[] rccolr, int divsx,
+ int Nhc, int os,
+ int[] rcrowt, int[] rcrowc, int[] rcrowb, int divsy,
+ int Nvc,
+ pair ccenter, real[] rcoff, pair[] rcright, pair[] rcleft,
+ pen pdef, real xd, real yd, int Nv) {
pen pblack, pwhite;
int cmaxi, maxoff, mincol, maxcol;
int rows, tr, br;
@@ -239,7 +239,7 @@
/* black, vertical gridlines redrawn below */
pair[] z;
int col;
-
+
z[0]=rcright[divsy];
col = rccolc[divsx+1];
@@ -249,9 +249,9 @@
z[3]=tvps(col,rcrowc[divsy-1], xd,yd,Nv);
z[4]=tvps(col,rcrowc[divsy], xd,yd,Nv);
- z[5]=rcleft[divsy];
+ z[5]=rcleft[divsy];
z[6]=rcleft[divsy+1];
-
+
z[7]=tvps(col,rcrowc[divsy+1], xd,yd,Nv);
z[8]=tvps(col,rcrowc[divsy+2], xd,yd,Nv);
col = rccolc[divsx+1];
@@ -258,12 +258,12 @@
z[9]=tvps(col,rcrowc[divsy+2], xd,yd,Nv);
z[10]=tvps(col,rcrowc[divsy+1], xd,yd,Nv);
- z[11]=rcright[divsy+1];
+ z[11]=rcright[divsy+1];
fill(z[1]--z[2]--z[3]--z[4] //--z[5]--z[6]
- --arc(ccenter, z[5], z[6])
- --z[7]--z[8]--z[9]--z[10] //--z[11]--z[0]
- --arc(ccenter,z[11], z[0])
- --cycle, p=pblack);
+ --arc(ccenter, z[5], z[6])
+ --z[7]--z[8]--z[9]--z[10] //--z[11]--z[0]
+ --arc(ccenter,z[11], z[0])
+ --cycle, p=pblack);
} else {
/* 3 rows of black squares inside the gratings */
int i, imax = divsy+1;
@@ -277,28 +277,28 @@
lmaxoff = min(floor(rcoff[i]), floor(rcoff[inext]));
lmincol = Nhc-lmaxoff;
lmaxcol = Nhc+lmaxoff;
-
+
/* square top and bottom */
tr = rcrowb[i];
br = rcrowt[inext];
for (j=0; j<cmaxi; ++j) { /* column j */
- int jnext = j+1;
-
- if (lmincol<=rccolc[j] && rccolc[jnext]<=lmaxcol) {
- /* square is inside circle */
- int lc, rc;
- path zzsq;
+ int jnext = j+1;
- lc = rccolr[j];
- rc = rccoll[jnext];
- zzsq = tvrect(lc, tr, rc, br, xd,yd,Nv);
- fill(zzsq, p=pblack); /* draw black squares */
- }
+ if (lmincol<=rccolc[j] && rccolc[jnext]<=lmaxcol) {
+ /* square is inside circle */
+ int lc, rc;
+ path zzsq;
+
+ lc = rccolr[j];
+ rc = rccoll[jnext];
+ zzsq = tvrect(lc, tr, rc, br, xd,yd,Nv);
+ fill(zzsq, p=pblack); /* draw black squares */
+ }
} /* for col j */
} /* for row i */
}
-
+
/* center cross: vertical and horizontal centerline */
maxoff = floor(rcoff[divsy]); /* XXX rcoff is relative to ccenter */
mincol = Nhc-maxoff;
@@ -327,24 +327,24 @@
int i;
for (i=0; i<=cmaxi; ++i) {
int coll, colr;
-
+
coll=rccoll[i];
colr=rccolr[i];
if (mincol<=coll && colr<=maxcol) {
- path zzv;
- zzv=tvrect(coll, tr, colr, br, xd,yd,Nv);
- fill(zzv, p=pwhite);
+ path zzv;
+ zzv=tvrect(coll, tr, colr, br, xd,yd,Nv);
+ fill(zzv, p=pwhite);
}
}
}
return;
}
-
+
/************************ topbw **************************************/
-void topbw(int[] coff, int Nhc, int os, int urow, int trow, int brow,
- pair ccenter, pair rclt, pair rclb, pair rcrt, pair rcrb,
- pen pdef, real xd, real yd, int Nv) {
+void topbw(int[] coff, int Nhc, int os, int urow, int trow, int brow,
+ pair ccenter, pair rclt, pair rclb, pair rcrt, pair rcrb,
+ pen pdef, real xd, real yd, int Nv) {
pen pblack=pdef+gray(0.0), pwhite=pdef+gray(1.0);
pair[] ze;
path zext, zref, zint;
@@ -371,7 +371,7 @@
--ze[3]--ze[4]--ze[5]--ze[6]--ze[7]--ze[8]--ze[9]--cycle;
off=ceil((coff[1]+coff[2])/2);
- zint=tvrect(Nhc-off,urow, Nhc+off,trow, xd,yd,Nv);
+ zint=tvrect(Nhc-off,urow, Nhc+off,trow, xd,yd,Nv);
/* paths are completely resolved; no free endpoint conditions */
fill(zext^^reverse(zint), p=pwhite);
@@ -384,7 +384,7 @@
}
/************************ testtone **************************************/
-/* x on circle -> return y>=0
+/* x on circle -> return y>=0
* in:
* x x-coordinate relative to origin
* crad circle radius in y units, true size=crad*yd
@@ -418,9 +418,9 @@
}
/* brow>trow && xb>xt */
-void testtone(real Tt, int trow, int brow,
- real ccol, real crow, real crad,
- pen pdef, real xd, real yd, int Nv) {
+void testtone(real Tt, int trow, int brow,
+ real ccol, real crow, real crad,
+ pen pdef, real xd, real yd, int Nv) {
int blocks, i;
real yt, xt, yb, xb, Ttt=Tt/2;
pair ccenter;
@@ -488,7 +488,7 @@
z[2]=tvps(ccol+tl,brow, xd,yd,Nv);
z[3]=tvps(ccol+tr,brow, xd,yd,Nv);
zz=z[0]--z[1]--z[2]--z[3]--cycle;
- }
+ }
if (tl<tr) {
if (i%2 == 0) {
@@ -502,9 +502,9 @@
}
/************************ color bars *************************************/
-void colorbars(int[] coff, int Nhc, int trow, int crow, int brow,
- pair ccenter, pair rclt, pair rclb, pair rcrt, pair rcrb,
- pen pdef, real xd, real yd, int Nv) {
+void colorbars(int[] coff, int Nhc, int trow, int crow, int brow,
+ pair ccenter, pair rclt, pair rclb, pair rcrt, pair rcrb,
+ pen pdef, real xd, real yd, int Nv) {
real cI=0.75;
real[] cR={ cI, 0, 0, cI, cI, 0 };
real[] cG={ cI, cI, cI, 0, 0, 0 };
@@ -517,11 +517,11 @@
int off;
int ii=2*i, il=cmax-i, ir=i+cmax+1;
path zzl, zzr;
-
+
off=ceil((coff[1+ii]+coff[2+ii])/2);
if (i!=0 && i<cmax) {
- zzr=tvrect(Nhc+poff,trow, Nhc+off,brow, xd,yd,Nv);
- zzl=tvrect(Nhc-off,trow, Nhc-poff,brow, xd,yd,Nv);
+ zzr=tvrect(Nhc+poff,trow, Nhc+off,brow, xd,yd,Nv);
+ zzl=tvrect(Nhc-off,trow, Nhc-poff,brow, xd,yd,Nv);
} else {
if(i==0) {
int col, pcol;
@@ -586,7 +586,7 @@
int coverflow;
cycles=freq*step;
- coverflow=floor(abs(cycles));
+ coverflow=floor(abs(cycles));
if (coverflow>1) {
thetaret=0;
} else {
@@ -595,10 +595,10 @@
cycles-=coverflow*sgn(cycles);
thetaret=theta+cycles*dpi; /* cycles=(-1 .. 1) */
- if (thetaret>pi) {
- thetaret-=dpi;
- } else if (thetaret<-pi) {
- thetaret-=dpi;
+ if (thetaret>pi) {
+ thetaret-=dpi;
+ } else if (thetaret<-pi) {
+ thetaret-=dpi;
}
}
@@ -606,9 +606,9 @@
return thetaret;
}
-void testfreqs(real[] ftones, int[] coff, int Nhc, int trow,int crow,int brow,
- pair ccenter, pair rclt, pair rclb, pair rcrt, pair rcrb,
- pen pdef, real xd, real yd, int Nv) {
+void testfreqs(real[] ftones, int[] coff, int Nhc, int trow,int crow,int brow,
+ pair ccenter, pair rclt, pair rclb, pair rcrt, pair rcrb,
+ pen pdef, real xd, real yd, int Nv) {
int[] divc;
real[] divfl, divfr;
int i, divs, coffmax, off, divnext;
@@ -649,7 +649,7 @@
tr=trow;
}
- if (off == divc[divnext]) {
+ if (off == divc[divnext]) {
/* switch frequency: cycles=0.5*fcur+0.5*fnext */
thl=addphase(thl, fl, -0.5);
thr=addphase(thr, fr, 0.5);
@@ -672,10 +672,10 @@
//write(off, thr, ampr);
col=Nhc-off-1;
- zz=tvrect(col,tr, col+1,brow, xd,yd,Nv);
+ zz=tvrect(col,tr, col+1,brow, xd,yd,Nv);
fill(zz, p=pdef+gray(ampl));
col=Nhc+off;
- zz=tvrect(col,tr, col+1,brow, xd,yd,Nv);
+ zz=tvrect(col,tr, col+1,brow, xd,yd,Nv);
fill(zz, p=pdef+gray(ampr));
}
@@ -690,9 +690,9 @@
}
/************************ gray bars **************************************/
-void graybars(int[] coff, int Nhc, int trow, int brow,
- pair ccenter, pair rclt, pair rclb, pair rcrt, pair rcrb,
- pen pdef, real xd, real yd, int Nv) {
+void graybars(int[] coff, int Nhc, int trow, int brow,
+ pair ccenter, pair rclt, pair rclb, pair rcrt, pair rcrb,
+ pen pdef, real xd, real yd, int Nv) {
int[] gs={0, 20, 40, 60, 80, 100};
int cmax=2, poff, i;
@@ -701,11 +701,11 @@
int off;
int ii=2*i, il=cmax-i, ir=i+cmax+1;
path zzl, zzr;
-
+
off=ceil((coff[1+ii]+coff[2+ii])/2);
if (i<cmax) {
- zzl=tvrect(Nhc-off,trow, Nhc-poff,brow, xd,yd,Nv);
- zzr=tvrect(Nhc+poff,trow, Nhc+off,brow, xd,yd,Nv);
+ zzl=tvrect(Nhc-off,trow, Nhc-poff,brow, xd,yd,Nv);
+ zzr=tvrect(Nhc+poff,trow, Nhc+off,brow, xd,yd,Nv);
} else {
int pcol;
pair zlt, zlb, zrt, zrb;
@@ -729,15 +729,15 @@
}
/************************ bottom bw **************************************/
-void bottombw(int off, int Nhc, int trow, int brow,
- pair ccenter, pair rclt, pair rclb, pair rcrt, pair rcrb,
- pen pdef, real xd, real yd, int Nv) {
+void bottombw(int off, int Nhc, int trow, int brow,
+ pair ccenter, pair rclt, pair rclb, pair rcrt, pair rcrb,
+ pen pdef, real xd, real yd, int Nv) {
int rows;
pair zt, zb;
path zz;
rows=brow-trow;
- zz=tvrect(Nhc-off,trow, Nhc+off,brow, xd,yd,Nv);
+ zz=tvrect(Nhc-off,trow, Nhc+off,brow, xd,yd,Nv);
fill(zz, p=pdef+gray(0.0));
zt=tvps(Nhc-off,trow, xd,yd,Nv);
@@ -751,9 +751,9 @@
}
/************************ bottom circle **************************************/
-void bottomcirc(int off, int Nhc, int trow, real cx, real cy, real crad,
- pair ccenter, pair rclt, pair rcrt,
- pen pdef, real xd, real yd, int Nv) {
+void bottomcirc(int off, int Nhc, int trow, real cx, real cy, real crad,
+ pair ccenter, pair rclt, pair rcrt,
+ pen pdef, real xd, real yd, int Nv) {
real cI=0.75;
real xl, yl, xr, yr, phil, phir;
pair ccleft, ccright;
@@ -767,7 +767,7 @@
xr=Nhc+off-cx;
phir=acos(xr*xd/yd/crad);
- yr=crad*sin(phir);
+ yr=crad*sin(phir);
ccright=tvps(cx+xr,cy+yr, xd,yd,Nv);
//dot(ccright); dot(ccleft);
@@ -793,7 +793,7 @@
/****************************** PAL ears ***********************************/
/* values pro mille
- * left y R G B
+ * left y R G B
* 550 306 674 550
* 500 363 500 859
* 500 637 500 141
@@ -804,12 +804,12 @@
*
* in: dright= -1 left ear, +1 right ear
*/
-void palears(int[] coff, int[] coffa, int[] coffb, int Nhc,
- int[] rcrowt, int[] rcrowb, int Nvc, int divsy, int dright,
- pen pdef, real xd, real yd, int Nv) {
- /* the amplitude of (u,v) as seen on a vectorscope,
+void palears(int[] coff, int[] coffa, int[] coffb, int Nhc,
+ int[] rcrowt, int[] rcrowb, int Nvc, int divsy, int dright,
+ pen pdef, real xd, real yd, int Nv) {
+ /* the amplitude of (u,v) as seen on a vectorscope,
* max 0.296 Vn for 100% saturation in W and V ears.
- * cvbs: 0.7*( y +/- |u+jv| ) = -0.24 .. 0.93 V
+ * cvbs: 0.7*( y +/- |u+jv| ) = -0.24 .. 0.93 V
* maxima: ebu 75/0 bars 0.70, bbc 100/25 0.88, 100/0 bars 0.93
* burst: 0.150 Vcvbs, 21.4 IRE or 0.214 V normalized.
* luma: modulated for monochrome compatibility, 1990 version.
@@ -890,10 +890,10 @@
ph= (u!=0 || v!=0) ? atan2(v,u) : 0.0;
if (v>=0) {
if (ph<0)
- ph=ph+pi;
+ ph=ph+pi;
} else {
if (ph>0)
- ph=ph-pi;
+ ph=ph-pi;
}
if (A>0) {
u=u/A*cI;
@@ -918,14 +918,14 @@
/****************************** NTSC bars ***********************************/
/* amplitude equals color burst smpte (pm: -V +U)
- * y campl sat R G B
+ * y campl sat R G B
* left 0.5 0.21 70% -I?
* right 0.5 0.17 60% +Q?
*/
-void ntscbars(int[] rccoll, int[] rccolr, int divsx,
- int[] rcrowt, int[] rcrowb, int divsy, int dright,
- pen pdef, real xd, real yd, int Nv) {
- /* The amplitude of (i,q) as seen on a vectorscope,
+void ntscbars(int[] rccoll, int[] rccolr, int divsx,
+ int[] rcrowt, int[] rcrowb, int divsy, int dright,
+ pen pdef, real xd, real yd, int Nv) {
+ /* The amplitude of (i,q) as seen on a vectorscope,
* max 0.292 Vn for 100% saturation in I==0 ears.
* burst: 0.143 Vcvbs, 20 IRE or 0.200 V normalized.
* pedestal: (yp,up,vp)=(p,0,0)+(1-p)*(y,u,v), p=0.075.
@@ -943,7 +943,7 @@
real[] cil={ 0, 0, 0, -1, 1 };
real[] cql={ -1, 1, 0, 0, 0 };
int[] indl={ -7, -8, 0, 8, 7 };
-
+
real cy, ci, cq;
int rmaxi, dri, ind, ibase, lcol, rcol, i;
@@ -979,17 +979,17 @@
B=By+cy;
if (verbose > 1)
write(ind, cy*1000, round(ci*1000), round(cq*1000),
- round(R*1000), round(G*1000), round(B*1000));
+ round(R*1000), round(G*1000), round(B*1000));
for (i=0; i<rmaxi; ++i) {
path zz;
int brow, trow, inext=i+1;
-
+
if (i>0) {
trow=rcrowb[i];
} else {
trow=floor((rcrowb[i]+rcrowt[inext])/2);
- }
+ }
if (inext<rmaxi) {
brow=rcrowt[inext];
@@ -1000,7 +1000,7 @@
zz=tvrect(lcol,trow, rcol,brow, xd,yd,Nv);
fill(zz, p=pdef+rgb(R,G,B));
}
-
+
return;
}
@@ -1019,10 +1019,10 @@
* 0 4/3 704 guaranteed analog broadcast itu-r bt.470
* 1 4/3 720 new broadcast, most TV station logos and animations
* 2 15/11 720 total aperture analog 4/3, 1.37 film DVDs
- * 3 20/11 720 total aperture analog 16/9, 1.85 film DVDs
- * 4 4/3 768 bsys=0, square dot analog broadcast
+ * 3 20/11 720 total aperture analog 16/9, 1.85 film DVDs
+ * 4 4/3 768 bsys=0, square dot analog broadcast
* 5 4/3 768 bsys=1, square dot cable TV info channel
- * 6 131/96 786 bsys=2, total square dot broadcast camera
+ * 6 131/96 786 bsys=2, total square dot broadcast camera
* 7 16/9 720 new broadcast 16/9, SD from HD-1440 or itu-r bt.709
* 8 4/3 704 525 analog broadcast itu-r bt.470 711x485
* 9 4/3 720 525 new broadcast
@@ -1029,11 +1029,11 @@
* 10 15/11 720 525 total aperture analog broadcast
* 11 16/9 1920 1250, 1080 square dot at 12.5 frames/second
* 12 4/3 1600 1250, 1200 square dot at 12.5 frames/second
- *
+ *
* colortv:
* 0 monochrome crosshatch,
* 1 pal ears,
- * 2 ntsc bars,
+ * 2 ntsc bars,
* 3 neither ears nor bars.
*
* os: horizontal oversampling, typical values for 13.5MHz:
@@ -1068,9 +1068,9 @@
{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 };
/* active lines for a 625 line frame
- * The number of active video lines decreased around 1997.
+ * The number of active video lines decreased around 1997.
* old: 3 run in + 575 visible + 3 run out = 581 lines
- * new: 6 teletext and WSS + 575 visible
+ * new: 6 teletext and WSS + 575 visible
* Hence the image center shifted down by 3 lines. Thus
* old TV + new testcard = bottom is cut off,
* new TV + old testcard = top is cut off.
@@ -1083,7 +1083,7 @@
* Nv=576 lines
* rd=ri*Nv/Nh=4/3*9/11=12/11
*
- * Nv: 480=2^5*3*5 576=2^6*3^2
+ * Nv: 480=2^5*3*5 576=2^6*3^2
* Nh: 704=2^6*11 720=2^4*3^2*5
*
* horizontal line distance for pre 1997 test pattern
@@ -1096,7 +1096,7 @@
* x line width 230 ns -> 3 dots
* bottom 2.9us red -> 39.15 dots
*
- * resolution DPI from image aspect ratio
+ * resolution DPI from image aspect ratio
* Rv=Nv/ly, ly=4in
* ri=Ni/Di, Ni={ 4, 15, 16} Di={ 3, 11, 9}
* lx=ri*ly
@@ -1107,7 +1107,7 @@
* Ni=15 ri=15/Di => Nh=k*60
* Ni=16 ri=16/Di => Nh=k*64
*
- * resolution DPI from dot aspect ratio, general algorithm,
+ * resolution DPI from dot aspect ratio, general algorithm,
*
* rd=Nd/Dd=ldx/ldy
*
@@ -1119,7 +1119,7 @@
*
* ldx=1/(m*Dd), ldy=1/(m*Nd), Rh=m*Dd, Rv=m*Nd
*
- * and
+ * and
*
* lx=Nh*ldx=Nh/(m*Dd), ly=Nv*ldy=Nv/(m*Nd)
*
@@ -1154,8 +1154,8 @@
//size(xsize, ysize, Aspect); // should not have any effect
Nsy=bNsy[bsys]; // grating size in lines 42,43 or 34,35
-Nshift=bNsh[bsys]; // shift image up: pre 1997 =3, 2007 =0
-fs=1e6*bfs[bsys]*os;
+Nshift=bNsh[bsys]; // shift image up: pre 1997 =3, 2007 =0
+fs=1e6*bfs[bsys]*os;
Na=0; // add 1,0,-1 to height of hor center squares for even Na+Nsy
Ttone=fs/250e3; // period of ft=250 kHz, fs/ft=54
@@ -1185,8 +1185,8 @@
}
rmaxi=2*divsy+1;
-/* Nsyc: center square height
- * line pairing test: verify distance of center to top and bot
+/* Nsyc: center square height
+ * line pairing test: verify distance of center to top and bot
* distance is odd ==> top=even/odd, cent=odd/even, bot=even/odd
*
* Nsyc odd: not possible
@@ -1215,7 +1215,7 @@
} else if (Nsyc%4 == 0) {
Nyst=1; /* stagger */
}
-for (i=0; i<=divsy; ++i) {
+for (i=0; i<=divsy; ++i) {
int iu, id, ou, od, ru, rd;
iu=divsy-i;
@@ -1228,7 +1228,7 @@
}
rcrowc[iu]=Nvc-ou;
rcrowc[id]=Nvc-od;
-
+
ru=Nvc-(ou+Nyst);
rd=Nvc-(od+Nyst);
@@ -1253,7 +1253,7 @@
lsq=Nsy*yd;
Nsx=lsq/xd; /* floating point */
-divsx=floor(((Nh-10*os)/Nsx-1)/2);
+divsx=floor(((Nh-10*os)/Nsx-1)/2);
Nhc=round(Nh/2);
rdistx=(1+2*divsx)*Nsx;
Nl=Nhc-round(rdistx/2);
@@ -1264,10 +1264,10 @@
int[] coff, coffl, coffr;
int[] rccoll, rccolc, rccolr;
-for (i=0; i<=divsx; ++i) {
+for (i=0; i<=divsx; ++i) {
int off, offl, offr, il, ir;
real cdist;
-
+
cdist=Nsx*(1+2*i); /* horizontal distance 2 symmetrical vert lines */
off=round(cdist/2);
// write(cdist, off);
@@ -1277,7 +1277,7 @@
coff[i]=off;
coffl[i]=offl;
coffr[i]=offr;
-
+
if (verbose > 1) {
write(cdist, off);
}
@@ -1290,7 +1290,7 @@
rccoll[ir]=Nhc+offl;
rccolc[ir]=Nhc+off;
- rccolr[ir]=Nhc+offr;
+ rccolr[ir]=Nhc+offr;
}
Nl=rccolc[0];
Nr=Nh-rccolc[cmaxi];
@@ -1299,9 +1299,9 @@
}
/**** draw gray background ****/
-{
+{
path zz;
-
+
//zz=tvrect(0,0, Nh,Nv, xd,yd,Nv);
/* keep white canvas for castellations */
zz=tvrect(rccoll[0],rcrowt[0], rccolr[cmaxi],rcrowb[rmaxi], xd,yd,Nv);
@@ -1355,16 +1355,16 @@
/**** draw 2*divsx+2 vertical gridlines ****/
for (i=0; i<=cmaxi; ++i) {
path zzv;
- zzv=tvrect(rccoll[i],0, rccolr[i],Nv, xd,yd,Nv);
- fill(zzv, p=pwhite);
+ zzv=tvrect(rccoll[i],0, rccolr[i],Nv, xd,yd,Nv);
+ fill(zzv, p=pwhite);
}
/**** castellations ****/
castelhor(colortv, rccoll, rccolr, cmaxi, Nh, rcrowt[0], rcrowb[rmaxi],
- pdefault, xd, yd, Nv);
+ pdefault, xd, yd, Nv);
castelver(colortv, rccoll[0], rccolr[cmaxi], Nh, rcrowb, rcrowt, rmaxi,
- pdefault, xd, yd, Nv);
+ pdefault, xd, yd, Nv);
/****** markers for 4/3 aspect ratio ******/
if (rimage>4/3) {
@@ -1373,59 +1373,59 @@
/****** line pairing center ******/
centerline(colortv, rccoll, rccolc, rccolr, divsx, Nhc, os,
- rcrowt, rcrowc, rcrowb, divsy, Nvc,
- ccenter, rcoff, rcright, rcleft, pdefault, xd, yd, Nv);
+ rcrowt, rcrowc, rcrowb, divsy, Nvc,
+ ccenter, rcoff, rcright, rcleft, pdefault, xd, yd, Nv);
if (colortv>0) {
/* topbw structure */
- topbw(coff, Nhc, os, rcrowc[divsy-5], rcrowc[divsy-4], rcrowc[divsy-3],
- ccenter, rcleft[divsy-4], rcleft[divsy-3], rcright[divsy-4],
- rcright[divsy-3], pdefault, xd, yd, Nv);
+ topbw(coff, Nhc, os, rcrowc[divsy-5], rcrowc[divsy-4], rcrowc[divsy-3],
+ ccenter, rcleft[divsy-4], rcleft[divsy-3], rcright[divsy-4],
+ rcright[divsy-3], pdefault, xd, yd, Nv);
/* 250 kHz */
- testtone(Ttone, rcrowc[divsy-3], rcrowc[divsy-2],
+ testtone(Ttone, rcrowc[divsy-3], rcrowc[divsy-2],
cx, cy, crad, pdefault, xd, yd, Nv);
- /* color bars */
- colorbars(coff, Nhc, rcrowc[divsy-2], rcrowc[divsy-1], rcrowc[divsy],
- ccenter, rcleft[divsy-2], rcleft[divsy], rcright[divsy-2],
- rcright[divsy], pdefault, xd, yd, Nv);
+ /* color bars */
+ colorbars(coff, Nhc, rcrowc[divsy-2], rcrowc[divsy-1], rcrowc[divsy],
+ ccenter, rcleft[divsy-2], rcleft[divsy], rcright[divsy-2],
+ rcright[divsy], pdefault, xd, yd, Nv);
/* test frequencies */
testfreqs(ftones, coff, Nhc, rcrowc[divsy+1], rcrowc[divsy+2],
- rcrowc[divsy+3], ccenter, rcleft[divsy+1], rcleft[divsy+3],
- rcright[divsy+1],rcright[divsy+3], pdefault, xd, yd, Nv);
+ rcrowc[divsy+3], ccenter, rcleft[divsy+1], rcleft[divsy+3],
+ rcright[divsy+1],rcright[divsy+3], pdefault, xd, yd, Nv);
/* gray bars */
graybars(coff, Nhc, rcrowc[divsy+3], rcrowc[divsy+4], ccenter,
- rcleft[divsy+3], rcleft[divsy+4],
- rcright[divsy+3], rcright[divsy+4], pdefault, xd,yd,Nv);
+ rcleft[divsy+3], rcleft[divsy+4],
+ rcright[divsy+3], rcright[divsy+4], pdefault, xd,yd,Nv);
/* PAL ears */
if (colortv == 1) {
- palears(coff,coffr,coffl, Nhc, rcrowt, rcrowb, Nvc, divsy, -1,
+ palears(coff,coffr,coffl, Nhc, rcrowt, rcrowb, Nvc, divsy, -1,
pdefault, xd, yd, Nv);
- palears(coff,coffr,coffl, Nhc, rcrowt, rcrowb, Nvc, divsy, 1,
+ palears(coff,coffr,coffl, Nhc, rcrowt, rcrowb, Nvc, divsy, 1,
pdefault, xd, yd, Nv);
} else if (colortv == 2) {
- ntscbars(rccoll, rccolr, divsx, rcrowt, rcrowb, divsy, -1,
+ ntscbars(rccoll, rccolr, divsx, rcrowt, rcrowb, divsy, -1,
pdefault, xd, yd, Nv);
- ntscbars(rccoll, rccolr, divsx, rcrowt, rcrowb, divsy, 1,
+ ntscbars(rccoll, rccolr, divsx, rcrowt, rcrowb, divsy, 1,
pdefault, xd, yd, Nv);
- ntscbars(rccoll, rccolr, divsx, rcrowt, rcrowb, divsy, -2,
+ ntscbars(rccoll, rccolr, divsx, rcrowt, rcrowb, divsy, -2,
pdefault, xd, yd, Nv);
- ntscbars(rccoll, rccolr, divsx, rcrowt, rcrowb, divsy, 2,
+ ntscbars(rccoll, rccolr, divsx, rcrowt, rcrowb, divsy, 2,
pdefault, xd, yd, Nv);
}
/* bottom wh - black - wh */
- bottombw(round((coff[2]+coff[3])/2), Nhc, rcrowc[divsy+4], rcrowc[divsy+5],
- ccenter, rcleft[divsy+4], rcleft[divsy+5],
- rcright[divsy+4], rcright[divsy+5], pdefault, xd, yd, Nv);
+ bottombw(round((coff[2]+coff[3])/2), Nhc, rcrowc[divsy+4], rcrowc[divsy+5],
+ ccenter, rcleft[divsy+4], rcleft[divsy+5],
+ rcright[divsy+4], rcright[divsy+5], pdefault, xd, yd, Nv);
/* bottom yellow red circle */
- bottomcirc(coff[0], Nhc, rcrowc[divsy+5], cx, cy, crad,
- ccenter, rcleft[divsy+5], rcright[divsy+5], pdefault, xd, yd, Nv);
+ bottomcirc(coff[0], Nhc, rcrowc[divsy+5], cx, cy, crad,
+ ccenter, rcleft[divsy+5], rcright[divsy+5], pdefault, xd, yd, Nv);
}
/********************** set id *********************/
@@ -1466,10 +1466,10 @@
colNsy = round((rccolc[divsx+5]+rccolc[divsx+6])/2);
Npos = tvps(colNsy,rowNsy, xd,yd,Nv);
iNsy = format("%i", Nsy);
-
- if (colortv>0) {
+
+ if (colortv>0) {
pbw=pdefault+gray(1.0);
- } else {
+ } else {
pbw=pdefault+gray(0.0);
}
label(ires, rpos, p=pbw);
Modified: trunk/Master/texmf-dist/doc/asymptote/examples/twistedtubes.asy
===================================================================
--- trunk/Master/texmf-dist/doc/asymptote/examples/twistedtubes.asy 2021-02-24 18:27:49 UTC (rev 57875)
+++ trunk/Master/texmf-dist/doc/asymptote/examples/twistedtubes.asy 2021-02-24 18:33:44 UTC (rev 57876)
@@ -1,30 +1,30 @@
-import graph3;
-import palette;
-
-size(300,300,keepAspect=true);
-
+import graph3;
+import palette;
+
+size(300,300,keepAspect=true);
+
real w=0.4;
-real f(triple t) {return sin(t.x);}
+real f(triple t) {return sin(t.x);}
triple f1(pair t) {return (cos(t.x)-2cos(w*t.y),sin(t.x)-2sin(w*t.y),t.y);}
triple f2(pair t) {return (cos(t.x)+2cos(w*t.y),sin(t.x)+2sin(w*t.y),t.y);}
triple f3(pair t) {return (cos(t.x)+2sin(w*t.y),sin(t.x)-2cos(w*t.y),t.y);}
triple f4(pair t) {return (cos(t.x)-2sin(w*t.y),sin(t.x)+2cos(w*t.y),t.y);}
-surface s1=surface(f1,(0,0),(2pi,10),8,8,Spline);
-surface s2=surface(f2,(0,0),(2pi,10),8,8,Spline);
-surface s3=surface(f3,(0,0),(2pi,10),8,8,Spline);
-surface s4=surface(f4,(0,0),(2pi,10),8,8,Spline);
+surface s1=surface(f1,(0,0),(2pi,10),8,8,Spline);
+surface s2=surface(f2,(0,0),(2pi,10),8,8,Spline);
+surface s3=surface(f3,(0,0),(2pi,10),8,8,Spline);
+surface s4=surface(f4,(0,0),(2pi,10),8,8,Spline);
pen[] Rainbow=Rainbow();
-s1.colors(palette(s1.map(f),Rainbow));
-s2.colors(palette(s2.map(f),Rainbow));
-s3.colors(palette(s3.map(f),Rainbow));
-s4.colors(palette(s4.map(f),Rainbow));
+s1.colors(palette(s1.map(f),Rainbow));
+s2.colors(palette(s2.map(f),Rainbow));
+s3.colors(palette(s3.map(f),Rainbow));
+s4.colors(palette(s4.map(f),Rainbow));
defaultrender.merge=true;
-draw(s1);
+draw(s1);
draw(s2);
draw(s3);
draw(s4);
Modified: trunk/Master/texmf-dist/doc/asymptote/examples/unitoctant.asy
===================================================================
--- trunk/Master/texmf-dist/doc/asymptote/examples/unitoctant.asy 2021-02-24 18:27:49 UTC (rev 57875)
+++ trunk/Master/texmf-dist/doc/asymptote/examples/unitoctant.asy 2021-02-24 18:33:44 UTC (rev 57876)
@@ -1,35 +1,24 @@
import graph3;
-currentprojection=orthographic(5,4,2);
+currentprojection=orthographic(5,5,8);
size(0,150);
-patch s=octant1x;
-draw(surface(s),green+opacity(0.5));
-draw(s.external(),blue);
+patch s0=octant1.s[0];
+patch s1=octant1.s[1];
+draw(surface(s0),green+opacity(0.5));
+draw(surface(s1),green+opacity(0.5));
+draw(s0.external(),blue);
+draw(s1.external(),blue);
-triple[][] P=s.P;
+triple[][] P0=s0.P;
+triple[][] P1=s1.P;
for(int i=0; i < 4; ++i)
- dot(P[i],red);
+ dot(P0[i],red+0.75mm);
+for(int i=0; i < 4; ++i)
+ dot(P1[i],red+0.65mm);
+
axes3("$x$","$y$",Label("$z$",align=Z));
-triple P00=P[0][0];
-triple P10=P[1][0];
-triple P01=P[0][1];
-triple P02=P[0][2];
-triple P11=P[1][1];
-triple P12=P[1][2];
-triple Q11=XYplane(xypart(P11));
-triple Q12=XYplane(xypart(P12));
-draw(P11--Q11,dashed);
-draw(P12--Q12,dashed);
-draw(O--Q12--Q11--(Q11.x,0,0));
-draw(Q12--(Q12.x,0,0));
-label("$(1,0,0)$",P00,-2Y);
-label("$(1,a,0)$",P10,-Z);
-label("$(1,0,a)$",P01,-2Y);
-label("$(a,0,1)$",P02,Z+X-Y);
-label("$(1,a,a)$",P11,3X);
-label("$(a,a^2,1)$",P12,7X+Y);
Added: trunk/Master/texmf-dist/doc/asymptote/examples/unitoctantx.asy
===================================================================
--- trunk/Master/texmf-dist/doc/asymptote/examples/unitoctantx.asy (rev 0)
+++ trunk/Master/texmf-dist/doc/asymptote/examples/unitoctantx.asy 2021-02-24 18:33:44 UTC (rev 57876)
@@ -0,0 +1,35 @@
+import graph3;
+
+currentprojection=orthographic(5,4,2);
+
+size(0,150);
+patch s=octant1x;
+draw(surface(s),green+opacity(0.5));
+draw(s.external(),blue);
+
+triple[][] P=s.P;
+
+for(int i=0; i < 4; ++i)
+ dot(P[i],red);
+
+axes3("$x$","$y$",Label("$z$",align=Z));
+triple P00=P[0][0];
+triple P10=P[1][0];
+triple P01=P[0][1];
+triple P02=P[0][2];
+triple P11=P[1][1];
+triple P12=P[1][2];
+triple Q11=XYplane(xypart(P11));
+triple Q12=XYplane(xypart(P12));
+
+draw(P11--Q11,dashed);
+draw(P12--Q12,dashed);
+draw(O--Q12--Q11--(Q11.x,0,0));
+draw(Q12--(Q12.x,0,0));
+
+label("$(1,0,0)$",P00,-2Y);
+label("$(1,a,0)$",P10,-Z);
+label("$(1,0,a)$",P01,-2Y);
+label("$(a,0,1)$",P02,Z+X-Y);
+label("$(1,a,a)$",P11,3X);
+label("$(a,a^2,1)$",P12,7X+Y);
Modified: trunk/Master/texmf-dist/doc/asymptote/examples/vertexshading.asy
===================================================================
--- trunk/Master/texmf-dist/doc/asymptote/examples/vertexshading.asy 2021-02-24 18:27:49 UTC (rev 57875)
+++ trunk/Master/texmf-dist/doc/asymptote/examples/vertexshading.asy 2021-02-24 18:33:44 UTC (rev 57876)
@@ -14,7 +14,7 @@
new pen[] {red,green+opacity(0.5),blue,black}),
prc() ? nolight : currentlight);
draw(surface(shift(X)*((0,0,0)..controls (1,0,0) and (2,0,0)..(3,0,0)..
- controls (2.5,sqrt(3)/2,0) and (2,sqrt(3),0)..
- (1.5,3*sqrt(3)/2,0)..
- controls (1,sqrt(3),0) and (0.5,sqrt(3)/2,0)..cycle),
+ controls (2.5,sqrt(3)/2,0) and (2,sqrt(3),0)..
+ (1.5,3*sqrt(3)/2,0)..
+ controls (1,sqrt(3),0) and (0.5,sqrt(3)/2,0)..cycle),
new triple[] {(1.5,sqrt(3)/2,2)},new pen[] {red,green,blue}));
Modified: trunk/Master/texmf-dist/doc/asymptote/examples/worldmap.asy
===================================================================
--- trunk/Master/texmf-dist/doc/asymptote/examples/worldmap.asy 2021-02-24 18:27:49 UTC (rev 57875)
+++ trunk/Master/texmf-dist/doc/asymptote/examples/worldmap.asy 2021-02-24 18:33:44 UTC (rev 57876)
@@ -3,7 +3,7 @@
// The required data file is available here:
// http://www.uni-graz.at/~schwaige/asymptote/worldmap.dat
// This data was originally obtained from
-// http://www.ngdc.noaa.gov/mgg_coastline/mapit.jsp
+// http://www.ngdc.noaa.gov/mgg_coastline/mapit.jsp
real findtheta(real phi, real epsilon=realEpsilon) {
// Determine for given phi the unique solution -pi/2 <= theta <= pi/2 off
@@ -23,12 +23,12 @@
pair mollweide(real lambda, real phi, real lambda0=0){
// calculate the Mollweide projection centered at lambda0 for the point
- // with coordinates(phi,lambda)
+ // with coordinates(phi,lambda)
static real c1=2*sqrt(2)/pi;
static real c2=sqrt(2);
real theta=findtheta(phi);
return(c1*(lambda-lambda0)*cos(theta), c2*sin(theta));
-}
+}
guide gfrompairs(pair[] data){
guide gtmp;
@@ -54,7 +54,7 @@
if(spstr[0] == "#") {++cnt; arrarrpair[cnt]=new pair[] ; newseg=true;}
if(spstr[0] != "#" && newseg) {
string[] spstr1=split(str,'\t'); // separator is TAB not SPACE
- pair tmp=((real) spstr1[1],(real) spstr1[0]);
+ pair tmp=((real) spstr1[1],(real) spstr1[0]);
arrarrpair[cnt].push(tmp);
}
}
@@ -78,7 +78,7 @@
for(int j=1; j <= 5; ++j) draw(gfrompairs(constlong(-180+j/6*360)),white);
draw(gfrompairs(constlong(-180)),1.5bp+white);
draw(gfrompairs(constlong(180)),1.5bp+white);
-for(int j=0; j <= 12; ++j) draw(gfrompairs(constlat(-90+j/6*180)),white);
+for(int j=0; j <= 12; ++j) draw(gfrompairs(constlat(-90+j/6*180)),white);
//draw(gfrompairs(constlong(10)),dotted);
close(in);
Modified: trunk/Master/texmf-dist/doc/asymptote/examples/xstitch.asy
===================================================================
--- trunk/Master/texmf-dist/doc/asymptote/examples/xstitch.asy 2021-02-24 18:27:49 UTC (rev 57875)
+++ trunk/Master/texmf-dist/doc/asymptote/examples/xstitch.asy 2021-02-24 18:33:44 UTC (rev 57876)
@@ -42,22 +42,22 @@
pen linepen(int i, int max) {
- real w=i == -1 || i == max+1 ? 2.0 :
- i % 10 == 0 || i == max ? 1.0 :
- i % 5 == 0 ? 0.8 :
+ real w=i == -1 || i == max+1 ? 2.0 :
+ i % 10 == 0 || i == max ? 1.0 :
+ i % 5 == 0 ? 0.8 :
0.25;
return linewidth(w);
}
pen xpen(int i) {
- return linepen(i,width)+(i == width/2 ? red :
- i == 75 || i == width-75 ? dashed :
+ return linepen(i,width)+(i == width/2 ? red :
+ i == 75 || i == width-75 ? dashed :
black);
}
pen ypen(int i) {
- return linepen(i,height)+(i == height/2 ? red :
- i == 75 || i == height-75 ? dashed :
+ return linepen(i,height)+(i == height/2 ? red :
+ i == 75 || i == height-75 ? dashed :
black);
}
Modified: trunk/Master/texmf-dist/doc/asymptote/examples/xxsq01x-1.asy
===================================================================
--- trunk/Master/texmf-dist/doc/asymptote/examples/xxsq01x-1.asy 2021-02-24 18:27:49 UTC (rev 57875)
+++ trunk/Master/texmf-dist/doc/asymptote/examples/xxsq01x-1.asy 2021-02-24 18:33:44 UTC (rev 57876)
@@ -28,8 +28,8 @@
yaxis3(Label("$y$",1),Arrow3);
dot(Label("$(1,1)$"),(1,1,0));
dot(Label("$(-1,1)$"),(-1,1,0),W);
-arrow("$y=x^{2}$",F3(0.7),X,1cm,red);
-arrow("$y=x$",(0.3,0.3,0),X,1.5cm,red);
+arrow("$y=x^{2}$",F3(0.7),X,1cm,red);
+arrow("$y=x$",(0.3,0.3,0),X,1.5cm,red);
draw(circle((-1,1,0),2,Y),dashed);
draw((-1,1,0)--(1,1,0),dashed);
draw(shift(-X)*arc(0.02Y,0.3,90,0,0,0,CW),Arrow3);
Modified: trunk/Master/texmf-dist/doc/asymptote/examples/xxsq01y.asy
===================================================================
--- trunk/Master/texmf-dist/doc/asymptote/examples/xxsq01y.asy 2021-02-24 18:27:49 UTC (rev 57875)
+++ trunk/Master/texmf-dist/doc/asymptote/examples/xxsq01y.asy 2021-02-24 18:33:44 UTC (rev 57876)
@@ -25,8 +25,8 @@
yaxis3(Label("$y$",1),ymax=1.25,dashed,Arrow3);
dot("$(1,1)$",(1,1,0),X);
-arrow("$y=x^{2}$",F3(0.7),X,0.75cm,red);
-arrow("$y=x$",(0.8,0.8,0),Y,1cm,red);
+arrow("$y=x^{2}$",F3(0.7),X,0.75cm,red);
+arrow("$y=x$",(0.8,0.8,0),Y,1cm,red);
real r=0.4;
draw((r,f(r),0)--(r,r,0),red);
Modified: trunk/Master/texmf-dist/doc/asymptote/examples/yingyang.asy
===================================================================
--- trunk/Master/texmf-dist/doc/asymptote/examples/yingyang.asy 2021-02-24 18:27:49 UTC (rev 57875)
+++ trunk/Master/texmf-dist/doc/asymptote/examples/yingyang.asy 2021-02-24 18:33:44 UTC (rev 57876)
@@ -1,5 +1,5 @@
size(0,25cm);
-guide center=(0,1){W}..tension 0.8..(0,0){(1,-.5)}..tension 0.8..{W}(0,-1);
+guide center=(0,1){W}..tension 0.8..(0,0){(1,-.5)}..tension 0.8..{W}(0,-1);
draw((0,1)..(-1,0)..(0,-1));
filldraw(center{E}..{N}(1,0)..{W}cycle);
Modified: trunk/Master/texmf-dist/doc/info/asy-faq.info
===================================================================
--- trunk/Master/texmf-dist/doc/info/asy-faq.info 2021-02-24 18:27:49 UTC (rev 57875)
+++ trunk/Master/texmf-dist/doc/info/asy-faq.info 2021-02-24 18:33:44 UTC (rev 57876)
@@ -10,7 +10,7 @@
File: asy-faq.info, Node: Top, Next: Question 1.1, Up: (dir)
ASYMPTOTE FREQUENTLY ASKED QUESTIONS
- 25 Mar 2020
+ 2021-02-19
This is the list of Frequently Asked Questions about Asymptote (asy).
@@ -223,7 +223,7 @@
Binary releases are available for Linux, MacOS X, and Microsoft Windows
platforms, in addition to full source code, from the website
-http://asymptote.sourceforge.net/. Many Linux distributions (such as
+https://asymptote.sourceforge.io/. Many Linux distributions (such as
RedHat and Debian) now include an Asymptote package (check your
distribution's documentation for further information about this).
@@ -234,7 +234,7 @@
If you have a question, please try to find an answer in this FAQ, in the
extensive Asymptote documentation at
-http://asymptote.sourceforge.net/doc/, or search the forum:
+https://asymptote.sourceforge.io/doc/, or search the forum:
http://sourceforge.net/forum/forum.php?forum_id=409349.
@@ -316,7 +316,7 @@
Question 2.3. What do I do if I get the error: Error: pdfetex (file pdftex.cfg): cannot open config file...texinfo.tex appears to be broken?
-Simply put http://asymptote.sourceforge.net/asymptote.pdf in the directory
+Simply put https://asymptote.sourceforge.io/asymptote.pdf in the directory
doc and repeat the command make all. Or, if you don't want to build a
local copy of the documentation, simply proceed with make install-asy.
@@ -340,7 +340,7 @@
http://dario.dse.nl/projects/asylatex/.
Philippe Ivaldi has contributed an Asymptote mode for Emacs users
-http://asymptote.sourceforge.net/doc/Editing-modes.html, which includes a
+https://asymptote.sourceforge.io/doc/Editing-modes.html, which includes a
lasy-mode that allows one to compile and view the output of one
\begin{asy}...\end{asy} section at a time.
@@ -541,7 +541,7 @@
Question 4.4. How can I use international fonts in Asymptote labels?
-See http://asymptote.sourceforge.net/doc/unicode.html.
+See https://asymptote.sourceforge.io/doc/Pens.html.
File: asy-faq.info, Node: Question 4.5, Next: Question 4.6, Previous: Question 4.4, Up: Section 4
@@ -586,8 +586,8 @@
Fixed-size objects should be drawn on a separate picture and then added to
currentpicture. Here is one way (see also
-http://asymptote.sourceforge.net/gallery/subpictures.asy and
-http://asymptote.sourceforge.net/gallery/mosquito.asy):
+https://asymptote.sourceforge.io/gallery/subpictures.asy and
+https://asymptote.sourceforge.io/gallery/mosquito.asy):
real u=2cm;
@@ -904,7 +904,7 @@
labels; the default), Suppress (an overlapping label will not be written
at all), SuppressQuiet, and MoveQuiet. The last two achieve the same
result as the non-quiet types, but will not notify you which labels are
-overlapping. See: http://asymptote.sourceforge.net/doc/Pens.html.
+overlapping. See: https://asymptote.sourceforge.io/doc/Pens.html.
In the case of a user-specified tick array, you can change which labels
get suppressed/moved by changing the order of array entries.
@@ -948,7 +948,7 @@
scaling and same resulting figure size (just ensure the two coordinates
given to fixedscaling() leaves room for any labels).
-See also http://asymptote.sourceforge.net/doc/Frames-and-pictures.html.
+See also https://asymptote.sourceforge.io/doc/Frames-and-pictures.html.
File: asy-faq.info, Node: Question 6.9, Next: Question 6.10, Previous: Question 6.8, Up: Section 6
@@ -966,7 +966,7 @@
xaxis("$x$",BottomTop,LeftTicks);
yaxis("$y$",LeftRight,RightTicks);
-See also http://asymptote.sourceforge.net/doc/graph.html.
+See also https://asymptote.sourceforge.io/doc/graph.html.
File: asy-faq.info, Node: Question 6.10, Next: Question 6.11, Previous: Question 6.9, Up: Section 6
@@ -1051,7 +1051,7 @@
Question 6.13. How can I make the y axis display base-2 logarithmic values?
-See the example http://asymptote.sourceforge.net/gallery/2D
+See the example https://asymptote.sourceforge.io/gallery/2D
graphs/log2graph.asy.
@@ -1061,7 +1061,7 @@
An easy way to do this, if the axes to be aligned have the same scaling
and size, is illustrated in the example
-http://asymptote.sourceforge.net/gallery/2D graphs/alignedaxis.asy.
+https://asymptote.sourceforge.io/gallery/2D graphs/alignedaxis.asy.
Here is a more general solution to the problem of aligning two arbitrary
axes. One fits the second picture to a frame based on the horizontal
@@ -1125,7 +1125,7 @@
Question 6.15. How can I change the direction of the y-axis, such that negatives values are on the upper y-axis?
Here is a simple example (see also the example
-http://asymptote.sourceforge.net/gallery/2D graphs/diatom.asy or the
+https://asymptote.sourceforge.io/gallery/2D graphs/diatom.asy or the
discussion of Linear(-1) in the documentation):
import graph;
@@ -1159,7 +1159,7 @@
y=t
x=(t-2)^2+1
-See the example http://asymptote.sourceforge.net/gallery/2D
+See the example https://asymptote.sourceforge.io/gallery/2D
graphs/parametricgraph.asy.
@@ -1382,7 +1382,7 @@
Yes, Asymptote includes a line-based debugger:
-http://asymptote.sourceforge.net/doc/Debugger.html
+https://asymptote.sourceforge.io/doc/Debugger.html
File: asy-faq.info, Node: Question 7.9, Next: Question 8.1, Previous: Question 7.8, Up: Section 7
@@ -1441,7 +1441,7 @@
should scale with the picture size. The resulting linear programming
problem is solved via the Simplex method.
-See the http://asymptote.sourceforge.net/gallery/dimension.asy example for
+See the https://asymptote.sourceforge.io/gallery/dimension.asy example for
an example of how deferred drawing is used to accomodate both user and
true-size (PostScript) coordinates.
@@ -1495,7 +1495,7 @@
confusing to new users. But we could be persuaded to add something similar
if someone can justify the need. In the meantime, one can always use the
explicit built-in linear solver solve (see
-http://asymptote.sourceforge.net/doc/solve.html), which uses LU
+https://asymptote.sourceforge.io/doc/solve.html), which uses LU
decomposition.
@@ -1578,7 +1578,7 @@
clip(100,100);
See also the discussion of tilings in the documentation:
-http://asymptote.sourceforge.net/doc/Pens.html.
+https://asymptote.sourceforge.io/doc/Pens.html.
File: asy-faq.info, Node: Section 9, Previous: Section 8, Up: Top
@@ -1612,7 +1612,7 @@
interactiveView=false;
batchView=false;
in their config.asy file. See
-http://asymptote.sourceforge.net/doc/Options.html.
+https://asymptote.sourceforge.io/doc/Options.html.
File: asy-faq.info, Node: Question 9.2, Next: Question 9.3, Previous: Question 9.1, Up: Section 9
@@ -1631,8 +1631,8 @@
a Label:
label(graphic("file"),(0,0));
-See the example http://asymptote.sourceforge.net/gallery/orthocenter.asy
-and http://asymptote.sourceforge.net/doc/label.html.
+See the example https://asymptote.sourceforge.io/gallery/orthocenter.asy
+and https://asymptote.sourceforge.io/doc/label.html.
File: asy-faq.info, Node: Question 9.4, Next: Question 9.5, Previous: Question 9.3, Up: Section 9
Modified: trunk/Master/texmf-dist/doc/info/asymptote.info
===================================================================
--- trunk/Master/texmf-dist/doc/info/asymptote.info 2021-02-24 18:27:49 UTC (rev 57875)
+++ trunk/Master/texmf-dist/doc/info/asymptote.info 2021-02-24 18:33:44 UTC (rev 57876)
@@ -1,11 +1,11 @@
This is asymptote.info, produced by makeinfo version 6.6 from
asymptote.texi.
-This file documents 'Asymptote', version 2.65.
+This file documents 'Asymptote', version 2.69.
<https://asymptote.sourceforge.io>
- Copyright (C) 2004-19 Andy Hammerlindl, John Bowman, and Tom Prince.
+ Copyright (C) 2004-20 Andy Hammerlindl, John Bowman, and Tom Prince.
Permission is granted to copy, distribute and/or modify this
document under the terms of the GNU Lesser General Public License
@@ -22,11 +22,11 @@
Asymptote
*********
-This file documents 'Asymptote', version 2.65.
+This file documents 'Asymptote', version 2.69.
<https://asymptote.sourceforge.io>
- Copyright (C) 2004-19 Andy Hammerlindl, John Bowman, and Tom Prince.
+ Copyright (C) 2004-20 Andy Hammerlindl, John Bowman, and Tom Prince.
Permission is granted to copy, distribute and/or modify this
document under the terms of the GNU Lesser General Public License
@@ -126,6 +126,7 @@
* stats:: Statistics routines and histograms
* patterns:: Custom fill and draw patterns
* markers:: Custom path marker routines
+* map:: Map keys to values
* tree:: Dynamic binary search tree
* binarytree:: Binary tree drawing module
* drawtree:: Tree drawing module
@@ -136,8 +137,6 @@
* embed:: Embedding movies, sounds, and 3D objects
* slide:: Making presentations with 'Asymptote'
* MetaPost:: 'MetaPost' compatibility routines
-* unicode:: Accept 'unicode' (UTF-8) characters
-* latin1:: Accept 'ISO 8859-1' characters
* babel:: Interface to 'LaTeX' 'babel' package
* labelpath:: Drawing curved labels
* labelpath3:: Drawing curved labels in 3D
@@ -175,9 +174,13 @@
drawing. Labels and equations are typeset with 'LaTeX', for overall
document consistency, yielding the same high-quality level of
typesetting that 'LaTeX' provides for scientific text. By default it
-produces 'PostScript' output, but it can also generate any format that
-the 'ImageMagick' package can produce.
+produces 'PostScript' output, but it can also generate 'PDF', 'SVG',
+'WebGL', 'PRC', and any format that the 'ImageMagick' package can
+produce. You can even try it out in your Web browser without installing
+it, using the 'Asymptote Web Application':
+ <http://asymptote.ualberta.ca>
+
A major advantage of 'Asymptote' over other graphics packages is that
it is a high-level programming language, as opposed to just a graphics
program: it can therefore exploit the best features of the script
@@ -292,8 +295,8 @@
The executable file will be '/usr/local/bin/asy') and example code will
be installed by default in '/usr/local/share/doc/asymptote/examples'.
-Fedora users can easily install the most recent version of 'Asymptote'
-with the command
+Fedora users can easily install a recent version of 'Asymptote' with the
+command
dnf --enablerepo=rawhide install asymptote
To install the latest version of 'Asymptote' on a Debian-based
@@ -332,7 +335,7 @@
A working TeX implementation (we recommend
<https://www.tug.org/texlive> or <http://www.miktex.org>) will be
required to typeset labels. You will also need to install 'GPL
-Ghostscript' version 9.14 or later from
+Ghostscript' version 9.52 or later from
<http://downloads.ghostscript.com/public>.
To view 'PostScript' output, you can install the program 'gsview'
@@ -365,7 +368,7 @@
this (via a 'SIGHUP' signal). Version 'gv-3.6.3' or later (from
<https://ftp.gnu.org/gnu/gv/>) is required for interactive mode to work
properly. Users of 'ggv' will need to enable 'Watch file' under
-'Edit/Postscript Viewer Preferences'. Users of 'gsview' will need to
+'Edit/PostScript Viewer Preferences'. Users of 'gsview' will need to
enable 'Options/Auto Redisplay' (however, under 'MSDOS' it is still
necessary to click on the 'gsview' window; under 'UNIX' one must
manually redisplay by pressing the 'r' key).
@@ -397,7 +400,9 @@
display 3D 'WebGL' output. The default setting is 'google-chrome' under
'UNIX' and 'cmd' under 'Microsoft Windows'. Note that 'Internet
Explorer' does not support 'WebGL'; 'Microsoft Windows' users should set
-their default html browser to 'chrome' or 'microsoft-edge'.
+their default html browser to 'chrome' or 'microsoft-edge'. By default,
+2D and 3D 'HTML' images expand to the enclosing canvas; this can be
+disabled by setting the configuation variable 'absolute' to 'true'.
On 'UNIX' systems, to support automatic document reloading of 'PDF'
files in 'Adobe Reader', we recommend copying the file 'reload.js' from
@@ -462,8 +467,8 @@
2.5 Search paths
================
-In looking for 'Asymptote' system files, 'asy' will search the following
-paths, in the order listed:
+In looking for 'Asymptote' files, 'asy' will search the following paths,
+in the order listed:
1. The current directory;
2. A list of one or more directories specified by the configuration
variable 'dir' or environment variable 'ASYMPTOTE_DIR' (separated
@@ -475,6 +480,9 @@
4. The 'Asymptote' system directory (by default,
'/usr/local/share/asymptote' under 'UNIX' and 'C:\Program
Files\Asymptote' under 'MSDOS').
+ 5. The 'Asymptote' examples directory (by default,
+ '/usr/local/share/doc/asymptote/examples' under 'UNIX' and
+ 'C:\Program Files\Asymptote\examples' under 'MSDOS').
File: asymptote.info, Node: Compiling from UNIX source, Next: Editing modes, Prev: Search paths, Up: Installation
@@ -498,18 +506,16 @@
in the 'Asymptote' source directory.
On 'UNIX' platforms (other than 'MacOS X'), we recommend using
-version '3.0.0' of the 'freeglut' library. To compile 'freeglut',
+version '3.2.1' of the 'freeglut' library. To compile 'freeglut',
download
- <https://prdownloads.sourceforge.net/freeglut/freeglut-3.0.0.tar.gz>
+ <https://prdownloads.sourceforge.net/freeglut/freeglut-3.2.1.tar.gz>
and type (as the root user):
-gunzip freeglut-3.0.0.tar.gz
-tar -xf freeglut-3.0.0.tar
-cd freeglut-3.0.0
-./configure --prefix=/usr
-cmake .
+gunzip freeglut-3.2.1.tar.gz
+tar -xf freeglut-3.2.1.tar
+cd freeglut-3.2.1
+cmake -DCMAKE_INSTALL_PREFIX=/usr -DCMAKE_C_FLAGS=-fcommon .
make
make install
-cd ..
Then compile 'Asymptote' with the commands
./configure
@@ -528,9 +534,10 @@
./configure --prefix=$HOME/asymptote
One can disable use of the Boehm garbage collector by configuring
with './configure --disable-gc'. For a list of other configuration
-options, say './configure --help'. For example, one can tell configure
-to look for header files and libraries in nonstandard locations:
-./configure CPPFLAGS=-I/opt/local/include LDFLAGS=-L/opt/local/lib
+options, say './configure --help'. For example, under 'MacOS X', one
+can tell configure to use the 'clang' compilers and look for header
+files and libraries in nonstandard locations:
+./configure CC=clang CXX=clang++ CPPFLAGS=-I/opt/local/include LDFLAGS=-L/opt/local/lib
If you are compiling 'Asymptote' with 'gcc', you will need a
relatively recent version (e.g. 3.4.4 or later). For full interactive
@@ -618,7 +625,10 @@
make all
make install
-To compile without optimization, use the command 'make CFLAGS=-g'.
+To compile without optimization, use the command 'make CFLAGS=-g'. On
+'Ubuntu' systems, you may need to first install the required
+dependencies:
+apt-get build-dep asymptote
File: asymptote.info, Node: Uninstall, Prev: Git, Up: Installation
@@ -652,7 +662,7 @@
thorough introduction, see the excellent 'Asymptote' tutorial written by
Charles Staats:
- <https://math.uchicago.edu/~cstaats/Charles_Staats_III/Notes_and_papers_files/asymptote_tutorial.pdf>
+ <https://asymptote.sourceforge.io/asymptote_tutorial.pdf>
Another 'Asymptote' tutorial is available as a wiki, with images
rendered by an online Asymptote engine:
@@ -798,7 +808,7 @@
a unit circle:
path unitcircle=E..N..W..S..cycle;
-An 'Asymptote' path, being connected, is equivalent to a 'Postscript
+An 'Asymptote' path, being connected, is equivalent to a 'PostScript
subpath'. The '^^' binary operator, which requests that the pen be
moved (without drawing or affecting endpoint curvatures) from the final
point of the left-hand path to the initial point of the right-hand path,
@@ -820,8 +830,8 @@
filldraw(unitcircle^^reverse(g),yellow,black);
The '^^' operator is used by the 'box(triple, triple)' function in
-the module 'three.asy' to construct the edges of a cube 'unitbox'
-without retracing steps (*note three::):
+the module 'three' to construct the edges of a cube 'unitbox' without
+retracing steps (*note three::):
import three;
currentprojection=orthographic(5,4,2,center=true);
@@ -873,6 +883,9 @@
'tex' commands are always drawn after the 'PostScript' objects in that
layer.
+ A page break can be generated with the command
+void newpage(picture pic=currentpicture);
+
While some of these drawing commands take many options, they all have
sensible default values (for example, the picture argument defaults to
currentpicture).
@@ -930,18 +943,19 @@
'labelmargin(p)' to avoid overlap with other drawn objects. Typical
values of 'margin' are 'NoMargin', 'BeginMargin', 'EndMargin' (or
equivalently 'Margin'), and 'Margins' (which leaves a margin at both
-ends of the path). One may use 'Margin(real begin, real end)' to
+ends of the path). One may use 'Margin(real begin, real end=begin)' to
specify the size of the beginning and ending margin, respectively, in
multiples of the units 'labelmargin(p)' used for aligning labels.
Alternatively, 'BeginPenMargin', 'EndPenMargin' (or equivalently
-'PenMargin'), 'PenMargins', 'PenMargin(real begin, real end)' specify a
-margin in units of the pen line width, taking account of the pen line
-width when drawing the path or arrow. For example, use 'DotMargin', an
-abbreviation for 'PenMargin(-0.5*dotfactor,0.5*dotfactor)', to draw from
-the usual beginning point just up to the boundary of an end dot of width
+'PenMargin'), 'PenMargins', 'PenMargin(real begin, real end=begin)'
+specify a margin in units of the pen line width, taking account of the
+pen line width when drawing the path or arrow. For example, use
+'DotMargin', an abbreviation for
+'PenMargin(-0.5*dotfactor,0.5*dotfactor)', to draw from the usual
+beginning point just up to the boundary of an end dot of width
'dotfactor*linewidth(p)'. The qualifiers 'BeginDotMargin',
'EndDotMargin', and 'DotMargins' work similarly. The qualifier
-'TrueMargin(real begin, real end)' allows one to specify a margin
+'TrueMargin(real begin, real end=begin)' allows one to specify a margin
directly in 'PostScript' units, independent of the pen line width.
The use of arrows, bars, and margins is illustrated by the examples
@@ -1051,7 +1065,8 @@
pen pena, pair a, bool extenda=true,
pen penb, pair b, bool extendb=true);
The boolean parameters 'extenda' and 'extendb' indicate whether the
-shading should extend beyond the axis endpoints 'a' and 'b'.
+shading should extend beyond the axis endpoints 'a' and 'b'. An example
+of axial shading is provided in the example file 'axialshade.asy'.
Radial gradient shading varying smoothly from 'pena' on the circle
with center 'a' and radius 'ra' to 'penb' on the circle with center 'b'
@@ -1079,10 +1094,10 @@
here:
<https://www.adobe.com/content/dam/acom/en/devnet/postscript/pdfs/TN5600.SmoothShading.pdf>
- Tensor product shading using fill rule 'fillrule' on patches bounded
-by the n cyclic paths of length 4 in path array 'b', using the vertex
-colors specified in the n \times 4 pen array 'p' and internal control
-points in the n \times 4 array 'z', is implemented with
+ Tensor product shading using clipping path 'g', fill rule 'fillrule'
+on patches bounded by the n cyclic paths of length 4 in path array 'b',
+using the vertex colors specified in the n \times 4 pen array 'p' and
+internal control points in the n \times 4 array 'z', is implemented with
void tensorshade(picture pic=currentpicture, path[] g, bool stroke=false,
pen fillrule=currentpen, pen[][] p, path[] b=g,
pair[][] z=new pair[][]);
@@ -1129,8 +1144,10 @@
the path 'g', using fill rule 'fillrule' (*note fillrule::). If
'stroke=true', the clipped portion is the same as the region that would
be drawn with 'draw(pic,g,zerowinding)'; in this case the path 'g' need
-not be cyclic. For an illustration of picture clipping, see the first
-example in *note LaTeX usage::.
+not be cyclic. While clipping has no notion of depth (it transcends
+layers and even pages), one can localize clipping to a temporary
+picture, which can then be added to 'pic'. For an illustration of
+picture clipping, see the first example in *note LaTeX usage::.
File: asymptote.info, Node: label, Prev: clip, Up: Drawing commands
@@ -1260,12 +1277,12 @@
fill(unitcircle^^(scale(2/11.7)*unitcircle),
evenodd+rgb(124/255,205/255,124/255));
label(scale(1.1)*minipage(
-"\centering\scriptsize \textbf{\LARGE {\tt Asymptote}\\
+ "\centering\scriptsize \textbf{\LARGE {\tt Asymptote}\\
\smallskip
\small The Vector Graphics Language}\\
\smallskip
\textsc{Andy Hammerlindl, John Bowman, and Tom Prince}
-http://asymptote.sourceforge.net\\
+https://asymptote.sourceforge.io\\
",8cm),(0,0.6));
label(graphic("logo","height=7cm"),(0,-0.22));
clip(unitcircle^^(scale(2/11.7)*unitcircle),evenodd);
@@ -1484,12 +1501,12 @@
returns the conjugate of 'z';
'real length(pair z)'
- returns the complex modulus '|z|' of its argument 'z'. For
+ returns the complex modulus |'z'| of its argument 'z'. For
example,
pair z=(3,4);
length(z);
returns the result 5. A synonym for 'length(pair)' is
- 'abs(pair)';
+ 'abs(pair)'. The function 'abs2(pair z)' returns |'z'|^2;
'real angle(pair z, bool warn=true)'
returns the angle of 'z' in radians in the interval
@@ -1563,8 +1580,9 @@
Here are the built-in functions for triples:
'real length(triple v)'
- returns the length '|v|' of the vector 'v'. A synonym for
- 'length(triple)' is 'abs(triple)';
+ returns the length |'v'| of its argument 'v'. A synonym for
+ 'length(triple)' is 'abs(triple)'. The function 'abs2(triple
+ v)' returns |'v'|^2;
'real polar(triple v, bool warn=true)'
returns the colatitude of 'v' measured from the z axis in
@@ -2419,7 +2437,7 @@
'defaultpen(pen)', causes the label alignment routines to use the
full label bounding box for alignment. In contrast, 'basealign'
requests that the TeX baseline be respected. The base align
- setting of a pen is returned by 'int basealigin(pen p=currentpen)'.
+ setting of a pen is returned by 'int basealign(pen p=currentpen)'.
* The font size is specified in TeX points (1 pt = 1/72.27 inches)
with the function 'pen fontsize(real size, real
@@ -2435,14 +2453,12 @@
fontsize(pen p=currentpen)' and 'real lineskip(pen p=currentpen)',
respectively.
- * A pen using a specific 'LaTeX' 'NFSS' font is returned by calling
- the function 'pen font(string encoding, string family, string
- series, string shape)'. The default setting,
- 'font("OT1","cmr","m","n")', corresponds to 12pt Computer Modern
- Roman; this may be changed with 'defaultpen(pen)'. The font
- setting of a pen is returned by 'string font(pen p=currentpen)'.
- Support for standardized international characters is provided by
- the 'unicode' package (*note unicode::).
+ * A pen using a specific LaTeX NFSS font is returned by calling the
+ function 'pen font(string encoding, string family, string series,
+ string shape)'. The default setting, 'font("OT1","cmr","m","n")',
+ corresponds to 12pt Computer Modern Roman; this may be changed with
+ 'defaultpen(pen)'. The font setting of a pen is returned by
+ 'string font(pen p=currentpen)'.
Alternatively, one may select a fixed-size TeX font (on which
'fontsize' has no effect) like '"cmr12"' (12pt Computer Modern
@@ -2466,6 +2482,25 @@
pen Symbol(string series="m", string shape="n");
pen ZapfDingbats(string series="m", string shape="n");
+ * Starting with the 2018/04/01 release, LaTeX takes UTF-8 as the new
+ default input encoding. However, you can still set different input
+ encoding (so as the font, font encoding or even language context).
+ Here is an example for 'cp1251' and Russian language in Cyrillic
+ script (font encoding 'T2A'):
+ texpreamble("\usepackage[math]{anttor}");
+ texpreamble("\usepackage[T2A]{fontenc}");
+ texpreamble("\usepackage[cp1251]{inputenc}");
+ texpreamble("\usepackage[russian]{babel}");
+ Support for Chinese, Japanese, and Korean fonts is provided by the
+ CJK package:
+ <https://ctan.org/pkg/cjk>
+ The following commands enable the CJK song family (within a label,
+ you can also temporarily switch to another family, say kai, by
+ prepending '"\CJKfamily{kai}"' to the label string):
+ texpreamble("\usepackage{CJK}
+ \AtBeginDocument{\begin{CJK*}{GBK}{song}}
+ \AtEndDocument{\clearpage\end{CJK*}}");
+
* The transparency of a pen can be changed with the command:
pen opacity(real opacity=1, string blend="Compatible");
The opacity can be varied from '0' (fully transparent) to the
@@ -2652,7 +2687,8 @@
The implicit initializer for transforms is 'identity()'. The
routines 'shift(transform t)' and 'shiftless(transform t)' return the
transforms '(t.x,t.y,0,0,0,0)' and '(0,0,t.xx,t.xy,t.yx,t.yy)'
-respectively.
+respectively. The function 'bool isometry(transform t)' can be used to
+test if 't' is an isometry (preserves distance).
File: asymptote.info, Node: Frames and pictures, Next: Files, Prev: Transforms, Up: Programming
@@ -2991,7 +3027,7 @@
value) files and portable XDR (External Data Representation) binary
files.
- An input file must first be opened with
+ An input file can be opened with
input(string name="", bool check=true, string comment="#", string mode="");
reading is then done by assignment:
file fin=input("test.txt");
@@ -3004,12 +3040,14 @@
this character is encountered in a data file, the remainder of the line
is ignored. When reading strings, a comment character followed
immediately by another comment character is treated as a single literal
-comment character.
+comment character. If 'Asymptote' is compiled with support for
+'libcurl', 'name' can be a URL.
- One can change the current working directory for read operations to
-the contents of the string 's' with the function 'string cd(string s)',
-which returns the new working directory. If 'string s' is empty, the
-path is reset to the value it had at program startup.
+ Unless the '-noglobalread' command-line option is specified, one can
+change the current working directory for read operations to the contents
+of the string 's' with the function 'string cd(string s)', which returns
+the new working directory. If 'string s' is empty, the path is reset to
+the value it had at program startup.
When reading pairs, the enclosing parenthesis are optional. Strings
are also read by assignment, by reading characters up to but not
@@ -3025,9 +3063,11 @@
end-of-file, and both reading and writing operations will be enabled.
For security reasons, writing to files in directories other than the
current directory is allowed only if the '-globalwrite' (or '-nosafe')
-command-line option is specified. The function 'string mktemp(string
-s)' may be used to create and return the name of a unique temporary file
-in the current directory based on the string 's'.
+command-line option is specified. Reading from files in other
+directories is allowed unless the '-noglobalread' command-line option is
+specified. The function 'string mktemp(string s)' may be used to create
+and return the name of a unique temporary file in the current directory
+based on the string 's'.
There are two special files: 'stdin', which reads from the keyboard,
and 'stdout', which writes to the terminal. The implicit initializer
@@ -3063,12 +3103,12 @@
(available on all 'UNIX' platforms). Alternatively, a file may also be
opened with 'mode="binary"' to read or write double precision reals and
single precision integers in the native (nonportable) machine binary
-format. The virtual member functions 'file singlereal(bool b=true)' and
-'file singleint(bool b=true)' be used to change the precision of real
-and integer I/O operations, respectively, for an XDR or binary file 'f'.
-Similarly, the function 'file signedint(bool b=true)' can be used to
-modify the signedness of integer reads and writes for an XDR or binary
-file 'f'.
+format, or to read the entire file into a string. The virtual member
+functions 'file singlereal(bool b=true)' and 'file singleint(bool
+b=true)' be used to change the precision of real and integer I/O
+operations, respectively, for an XDR or binary file 'f'. Similarly, the
+function 'file signedint(bool b=true)' can be used to modify the
+signedness of integer reads and writes for an XDR or binary file 'f'.
The virtual members 'name', 'mode', 'singlereal', 'singleint', and
'signedint' may be used to query the respective parameters for a given
@@ -3386,10 +3426,11 @@
The function 'cputime()' returns a structure 'cputime' with
cumulative CPU times broken down into the fields 'parent.user',
-'parent.system', 'child.user', and 'child.system'. For convenience, the
-incremental fields 'change.user' and 'change.system' indicate the change
-in the corresponding total parent and child CPU times since the last
-call to 'cputime()'. The function
+'parent.system', 'child.user', and 'child.system', along with the
+cumulative wall clock time in 'parent.clock', all measured in seconds.
+For convenience, the incremental fields 'change.user', 'change.system',
+and 'change.clock' indicate the change in the corresponding fields since
+the last call to 'cputime()'. The function
void write(file file=stdout, string s="", cputime c,
string format=cputimeformat, suffix suffix=none);
displays the incremental user cputime followed by "u", the incremental
@@ -4079,18 +4120,18 @@
'new T[] {list}'
returns a new array of type 'T[]' initialized with 'list' (a comma
- delimited list of elements).
+ delimited list of elements);
'new T[n]'
returns a new array of 'n' elements of type 'T[]'. These 'n' array
elements are not initialized unless they are arrays themselves (in
- which case they are each initialized to empty arrays).
+ which case they are each initialized to empty arrays);
'T[] array(int n, T value, int depth=intMax)'
returns an array consisting of 'n' copies of 'value'. If 'value'
is itself an array, a deep copy of 'value' is made for each entry.
If 'depth' is specified, this deep copying only recurses to the
- specified number of levels.
+ specified number of levels;
'int[] sequence(int n)'
if 'n >= 1' returns the array '{0,1,...,n-1}' (otherwise returns a
@@ -4108,8 +4149,13 @@
'T[] map(T f(T), T[] a)'
returns the array obtained by applying the function 'f' to each
element of the array 'a'. This is equivalent to 'sequence(new
- T(int i) {return f(a[i]);},a.length)'.
+ T(int i) {return f(a[i]);},a.length)';
+'T2[] map(T2 f(T1), T1[] a)'
+ constructed by calling 'mapArray("T1","T2")', returns the array
+ obtained by applying the function 'f' to each element of the array
+ 'a';
+
'int[] reverse(int n)'
if 'n >= 1' returns the array '{n-1,n-2,...,0}' (otherwise returns
a null array);
@@ -4117,7 +4163,7 @@
'int[] complement(int[] a, int n)'
returns the complement of the integer array 'a' in
'{0,1,2,...,n-1}', so that 'b[complement(a,b.length)]' yields the
- complement of 'b[a]'.
+ complement of 'b[a]';
'real[] uniform(real a, real b, int n)'
if 'n >= 1' returns a uniform partition of '[a,b]' into 'n'
@@ -4129,13 +4175,13 @@
the end of the array for the '-n'th value;
'int[] findall(bool[] a)'
- returns the indices of all 'true' values in the boolean array 'a'.
+ returns the indices of all 'true' values in the boolean array 'a';
'int search(T[] a, T key)'
For built-in ordered types 'T', searches a sorted array 'a' of 'n'
elements for k, returning the index 'i' if 'a[i] <= key < a[i+1]',
'-1' if 'key' is less than all elements of 'a', or 'n-1' if 'key'
- is greater than or equal to the last element of 'a'.
+ is greater than or equal to the last element of 'a';
'int search(T[] a, T key, bool less(T i, T j))'
searches an array 'a' sorted in ascending order such that element
@@ -4175,44 +4221,44 @@
'i' precedes element 'j' if 'less(i,j)' is true, subject to (if
'stable' is 'true') the stability constraint that the original
order of elements 'i' and 'j' is preserved if 'less(i,j)' and
- 'less(j,i)' are both 'false'.
+ 'less(j,i)' are both 'false';
'T[][] transpose(T[][] a)'
- returns the transpose of 'a'.
+ returns the transpose of 'a';
'T[][][] transpose(T[][][] a, int[] perm)'
returns the 3D transpose of 'a' obtained by applying the
permutation 'perm' of 'new int[]{0,1,2}' to the indices of each
- entry.
+ entry;
'T sum(T[] a)'
- For arithmetic types 'T', returns the sum of 'a'. In the case
@@ Diff output truncated at 1234567 characters. @@
More information about the tex-live-commits
mailing list.