summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNorbert Preining <norbert@preining.info>2020-07-08 03:01:45 +0000
committerNorbert Preining <norbert@preining.info>2020-07-08 03:01:45 +0000
commit8c3fedd243b69349b426144e5e2b94ef4aea6a4c (patch)
treef5842753f11a90141f3cc2e356c3a04766e8d81e
parentef87f13c4503a2aa4a9098cbf33e0bfcad19008e (diff)
CTAN sync 202007080301
-rw-r--r--FILES.byname2537
-rw-r--r--FILES.byname.gzbin2227448 -> 2227811 bytes
-rw-r--r--FILES.last07days1896
-rw-r--r--graphics/asymptote/ChangeLog499
-rw-r--r--graphics/asymptote/GUI/configs/xasyconfig.cson2
-rw-r--r--graphics/asymptote/GUI/icons_rc.py3312
-rw-r--r--graphics/asymptote/GUI/xasy2asy.py4
-rw-r--r--graphics/asymptote/Makefile.in2
-rw-r--r--graphics/asymptote/ReleaseNotes22
-rw-r--r--graphics/asymptote/array.cc9
-rw-r--r--graphics/asymptote/array.h4
-rw-r--r--graphics/asymptote/asy-keywords.el4
-rw-r--r--graphics/asymptote/asy.list153
-rw-r--r--graphics/asymptote/asymptote.spec6
-rw-r--r--graphics/asymptote/base/map.asy40
-rw-r--r--graphics/asymptote/base/plain.asy15
-rw-r--r--graphics/asymptote/base/plain_picture.asy35
-rw-r--r--graphics/asymptote/base/plain_shipout.asy23
-rw-r--r--graphics/asymptote/base/slopefield.asy1
-rw-r--r--graphics/asymptote/base/three.asy23
-rw-r--r--graphics/asymptote/base/three_light.asy2
-rw-r--r--graphics/asymptote/base/three_surface.asy20
-rw-r--r--graphics/asymptote/base/webgl/asygl.js2
-rw-r--r--graphics/asymptote/beziercurve.h5
-rw-r--r--graphics/asymptote/bezierpatch.cc1
-rw-r--r--graphics/asymptote/bezierpatch.h19
-rwxr-xr-xgraphics/asymptote/configure21
-rw-r--r--graphics/asymptote/configure.ac4
-rw-r--r--graphics/asymptote/doc/CAD.pdfbin167756 -> 186207 bytes
-rw-r--r--graphics/asymptote/doc/FAQ/asy-faq.info2
-rw-r--r--graphics/asymptote/doc/TeXShopAndAsymptote.pdfbin77122 -> 76935 bytes
-rw-r--r--graphics/asymptote/doc/asy-latex.pdfbin194590 -> 194595 bytes
-rw-r--r--graphics/asymptote/doc/asy.17
-rw-r--r--graphics/asymptote/doc/asyRefCard.pdfbin121144 -> 121144 bytes
-rw-r--r--graphics/asymptote/doc/asymptote.pdfbin1293637 -> 1282789 bytes
-rw-r--r--graphics/asymptote/doc/asymptote.texi202
-rw-r--r--graphics/asymptote/doc/png/asymptote.info1122
-rw-r--r--graphics/asymptote/drawfill.h23
-rw-r--r--graphics/asymptote/drawpath3.cc86
-rw-r--r--graphics/asymptote/drawpath3.h7
-rw-r--r--graphics/asymptote/drawsurface.cc28
-rw-r--r--graphics/asymptote/drawsurface.h23
-rw-r--r--graphics/asymptote/examples/Gouraud.asy2
-rw-r--r--graphics/asymptote/examples/axialshade.asy5
-rw-r--r--graphics/asymptote/examples/logo3.asy2
-rw-r--r--graphics/asymptote/examples/soccerball.asy1
-rw-r--r--graphics/asymptote/examples/unitoctant.asy41
-rw-r--r--graphics/asymptote/examples/unitoctantx.asy35
-rw-r--r--graphics/asymptote/fileio.h12
-rw-r--r--graphics/asymptote/glew.c4
-rw-r--r--graphics/asymptote/glrender.cc281
-rw-r--r--graphics/asymptote/glrender.h25
-rw-r--r--graphics/asymptote/jsfile.cc65
-rw-r--r--graphics/asymptote/jsfile.h14
-rw-r--r--graphics/asymptote/main.cc13
-rw-r--r--graphics/asymptote/parser.cc3
-rw-r--r--graphics/asymptote/picture.cc210
-rw-r--r--graphics/asymptote/picture.h9
-rw-r--r--graphics/asymptote/pipestream.cc8
-rw-r--r--graphics/asymptote/pipestream.h9
-rw-r--r--graphics/asymptote/psfile.cc12
-rw-r--r--graphics/asymptote/psfile.h8
-rw-r--r--graphics/asymptote/revision.cc2
-rw-r--r--graphics/asymptote/runarray.cc445
-rw-r--r--graphics/asymptote/runarray.in1
-rw-r--r--graphics/asymptote/runfile.cc8
-rw-r--r--graphics/asymptote/runfile.in8
-rw-r--r--graphics/asymptote/runlabel.cc4
-rw-r--r--graphics/asymptote/runlabel.in4
-rw-r--r--graphics/asymptote/runpair.cc263
-rw-r--r--graphics/asymptote/runpair.in5
-rw-r--r--graphics/asymptote/runpicture.cc344
-rw-r--r--graphics/asymptote/runpicture.in38
-rw-r--r--graphics/asymptote/runtriple.cc155
-rw-r--r--graphics/asymptote/runtriple.in5
-rw-r--r--graphics/asymptote/settings.cc12
-rw-r--r--graphics/asymptote/settings.h1
-rw-r--r--graphics/asymptote/shaders.h2
-rw-r--r--graphics/asymptote/stack.cc8
-rw-r--r--graphics/asymptote/texfile.cc149
-rw-r--r--graphics/asymptote/texfile.h21
-rw-r--r--graphics/asymptote/util.cc54
-rw-r--r--graphics/asymptote/util.h1
-rw-r--r--graphics/asymptote/webgl/gl.js145
-rw-r--r--macros/latex/contrib/reledmac/README.md2
-rw-r--r--macros/latex/contrib/reledmac/doc-more/page-typesetting-columns.pdfbin40842 -> 40840 bytes
-rw-r--r--macros/latex/contrib/reledmac/examples/1-criticalendnotes.pdfbin175600 -> 175600 bytes
-rw-r--r--macros/latex/contrib/reledmac/examples/1-criticalnotes.pdfbin119720 -> 119720 bytes
-rw-r--r--macros/latex/contrib/reledmac/examples/1-sidenotes.pdfbin145283 -> 145283 bytes
-rw-r--r--macros/latex/contrib/reledmac/examples/1-tabular.pdfbin187373 -> 187373 bytes
-rw-r--r--macros/latex/contrib/reledmac/examples/1-verses-doublenumbering.pdfbin121150 -> 121150 bytes
-rw-r--r--macros/latex/contrib/reledmac/examples/1-verses.pdfbin121318 -> 121318 bytes
-rw-r--r--macros/latex/contrib/reledmac/examples/2-antilabe.pdfbin128416 -> 128416 bytes
-rw-r--r--macros/latex/contrib/reledmac/examples/2-cross_referencing.pdfbin120386 -> 120386 bytes
-rw-r--r--macros/latex/contrib/reledmac/examples/2-footnote_spacing.pdfbin123574 -> 123574 bytes
-rw-r--r--macros/latex/contrib/reledmac/examples/2-glossaries.pdfbin132844 -> 132844 bytes
-rw-r--r--macros/latex/contrib/reledmac/examples/2-indexing.pdfbin185822 -> 185822 bytes
-rw-r--r--macros/latex/contrib/reledmac/examples/2-lemma_disambigution.pdfbin122378 -> 122378 bytes
-rw-r--r--macros/latex/contrib/reledmac/examples/2-line_numbers_in_header.pdfbin142433 -> 142433 bytes
-rw-r--r--macros/latex/contrib/reledmac/examples/2-linespacing.pdfbin136296 -> 136296 bytes
-rw-r--r--macros/latex/contrib/reledmac/examples/2-manuscript-apparatus.pdfbin156021 -> 156021 bytes
-rw-r--r--macros/latex/contrib/reledmac/examples/2-notes-width.pdfbin126635 -> 126635 bytes
-rw-r--r--macros/latex/contrib/reledmac/examples/2-one_series_per_pstart.pdfbin131284 -> 131284 bytes
-rw-r--r--macros/latex/contrib/reledmac/examples/2-performances.pdfbin133738 -> 133738 bytes
-rw-r--r--macros/latex/contrib/reledmac/examples/2-reledmac-right-to-left.pdfbin31756 -> 31059 bytes
-rw-r--r--macros/latex/contrib/reledmac/examples/2-subdivision-number-in-header.pdfbin212782 -> 212782 bytes
-rw-r--r--macros/latex/contrib/reledmac/examples/2-titles_in_line_numbering_with_notes.pdfbin188331 -> 188331 bytes
-rw-r--r--macros/latex/contrib/reledmac/examples/2-titles_not_in_line_numbering.pdfbin173338 -> 173338 bytes
-rw-r--r--macros/latex/contrib/reledmac/examples/3-reledpar_columns_different_languages.pdfbin24475 -> 23272 bytes
-rw-r--r--macros/latex/contrib/reledmac/examples/3-reledpar_mwe.pdfbin93085 -> 93085 bytes
-rw-r--r--macros/latex/contrib/reledmac/examples/3-reledpar_pages_different_languages_lualatex.pdfbin37801 -> 37801 bytes
-rw-r--r--macros/latex/contrib/reledmac/examples/3-reledpar_same_page_number_in_both_side.pdfbin135907 -> 135907 bytes
-rw-r--r--macros/latex/contrib/reledmac/examples/3-reledpar_sync_setting_advancedshifted-nomax.pdfbin190089 -> 190089 bytes
-rw-r--r--macros/latex/contrib/reledmac/examples/3-reledpar_sync_setting_advancedshifted.pdfbin189289 -> 189289 bytes
-rw-r--r--macros/latex/contrib/reledmac/examples/3-reledpar_sync_setting_default.pdfbin168067 -> 168067 bytes
-rw-r--r--macros/latex/contrib/reledmac/examples/3-reledpar_sync_setting_nomax-shifted.pdfbin189852 -> 189852 bytes
-rw-r--r--macros/latex/contrib/reledmac/examples/3-reledpar_sync_setting_nomax.pdfbin188770 -> 188770 bytes
-rw-r--r--macros/latex/contrib/reledmac/examples/3-reledpar_sync_setting_nosync.pdfbin188677 -> 188677 bytes
-rw-r--r--macros/latex/contrib/reledmac/examples/3-reledpar_sync_setting_shifted.pdfbin188808 -> 188808 bytes
-rw-r--r--macros/latex/contrib/reledmac/examples/4-reledpar_column_mix_with_not_column-continuous-numbering.pdfbin187768 -> 187768 bytes
-rw-r--r--macros/latex/contrib/reledmac/examples/4-reledpar_column_mix_with_not_column.pdfbin132837 -> 132837 bytes
-rw-r--r--macros/latex/contrib/reledmac/examples/4-reledpar_columns_alignment.pdfbin173906 -> 173906 bytes
-rw-r--r--macros/latex/contrib/reledmac/examples/4-reledpar_columns_titles_in_line_numbering_with_notes.pdfbin199864 -> 199864 bytes
-rw-r--r--macros/latex/contrib/reledmac/examples/4-reledpar_inside-outside-columns.pdfbin123230 -> 123230 bytes
-rw-r--r--macros/latex/contrib/reledmac/examples/4-reledpar_one_series_per_pstart.pdfbin144326 -> 144326 bytes
-rw-r--r--macros/latex/contrib/reledmac/examples/4-reledpar_pages_long_notes.pdfbin226079 -> 226079 bytes
-rw-r--r--macros/latex/contrib/reledmac/examples/4-reledpar_pages_notes_leftpage.pdfbin124679 -> 124679 bytes
-rw-r--r--macros/latex/contrib/reledmac/examples/4-reledpar_pages_paragraph_separator_between.pdfbin120874 -> 120874 bytes
-rw-r--r--macros/latex/contrib/reledmac/examples/4-reledpar_pages_titles_in_line_numbering_with_notes.pdfbin260966 -> 260966 bytes
-rw-r--r--macros/latex/contrib/reledmac/examples/4-reledpar_titles_not_in_line_numbering.pdfbin180904 -> 180904 bytes
-rw-r--r--macros/latex/contrib/reledmac/examples/4-reledpar_verse_text_between.pdfbin116963 -> 116963 bytes
-rw-r--r--macros/latex/contrib/reledmac/makefile2
-rw-r--r--macros/latex/contrib/reledmac/migration.pdfbin356983 -> 356983 bytes
-rw-r--r--macros/latex/contrib/reledmac/reledmac.dtx17
-rw-r--r--macros/latex/contrib/reledmac/reledmac.pdfbin2003149 -> 2003146 bytes
-rw-r--r--macros/latex/contrib/reledmac/reledpar.pdfbin987044 -> 987044 bytes
-rw-r--r--macros/latex/contrib/semantex/README.md10
-rw-r--r--macros/latex/contrib/semantex/semantex.pdfbin234442 -> 235556 bytes
-rw-r--r--macros/latex/contrib/semantex/semantex.sty2
-rw-r--r--macros/latex/contrib/semantex/semantex.tex103
-rw-r--r--macros/latex/required/babel/base/README.md20
-rw-r--r--macros/latex/required/babel/base/babel.dtx271
-rw-r--r--macros/latex/required/babel/base/babel.ins2
-rw-r--r--macros/latex/required/babel/base/babel.pdfbin790671 -> 793176 bytes
-rw-r--r--macros/latex/required/babel/base/bbcompat.dtx2
-rw-r--r--systems/texlive/tlnet/tlpkg/TeXLive/TLUtils.pm20
-rw-r--r--systems/texlive/tlnet/tlpkg/installer/ctan-mirrors.pl48
-rw-r--r--systems/texlive/tlnet/tlpkg/texlive.tlpdb303
-rw-r--r--systems/texlive/tlnet/tlpkg/texlive.tlpdb.md52
-rw-r--r--systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha5122
-rw-r--r--systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512.asc14
-rw-r--r--systems/texlive/tlnet/tlpkg/texlive.tlpdb.xzbin2200264 -> 2205584 bytes
-rw-r--r--systems/win32/miktex/tm/packages/next/pr.ini8
-rw-r--r--systems/win32/miktex/tm/packages/pr.ini8
-rw-r--r--systems/win32/w32tex/ChangeLog34
-rw-r--r--timestamp2
156 files changed, 7580 insertions, 5887 deletions
diff --git a/FILES.byname b/FILES.byname
index e85568da62..859484d364 100644
--- a/FILES.byname
+++ b/FILES.byname
@@ -5003,7 +5003,7 @@
1990/10/02 | 5440 | dviware/vutex/vaxvms.hlp
1990/10/02 | 812 | dviware/vutex/vaxvms.ins
1990/10/02 | 127576 | dviware/vutex/vutex.web
-2020/07/06 | 191100 | FILES.last07days
+2020/07/07 | 193269 | FILES.last07days
2018/06/27 | 99883 | fonts/academicons/academicons.pdf
2018/06/27 | 10779 | fonts/academicons/academicons.sty
2018/06/27 | 5774 | fonts/academicons/academicons.tex
@@ -127450,929 +127450,932 @@
2012/11/17 | 1096 | graphics/AddTeX2Eps/default.tex
2006/04/17 | 836 | graphics/AddTeX2Eps/readme.txt
2012/11/17 | 5620 | graphics/AddTeX2Eps.zip
-2020/03/26 | 472 | graphics/asymptote/absyn.cc
-2020/03/26 | 1030 | graphics/asymptote/absyn.h
-2020/03/26 | 3309 | graphics/asymptote/access.cc
-2020/03/26 | 2976 | graphics/asymptote/access.h
-2020/03/26 | 2278 | graphics/asymptote/align.h
-2020/03/26 | 891 | graphics/asymptote/angle.h
-2020/03/26 | 18591 | graphics/asymptote/application.cc
-2020/03/26 | 9094 | graphics/asymptote/application.h
-2020/03/26 | 4624 | graphics/asymptote/array.cc
-2020/03/26 | 1951 | graphics/asymptote/array.h
-2020/03/26 | 14023 | graphics/asymptote/arrayop.h
-2020/03/26 | 11541 | graphics/asymptote/aspy.py
-2020/03/26 | 4286 | graphics/asymptote/asy.ico
-2020/03/26 | 17785 | graphics/asymptote/asy-keywords.el
-2020/03/26 | 206710 | graphics/asymptote/asy.list
-2020/03/26 | 1612 | graphics/asymptote/asy-list.pl
-2020/03/26 | 6300 | graphics/asymptote/asymptote.nsi
-2020/03/26 | 2937 | graphics/asymptote/asymptote.spec
-2020/03/26 | 770 | graphics/asymptote/asy.rc
-2020/03/26 | 34 | graphics/asymptote/autogen.sh
-2020/03/26 | 12534 | graphics/asymptote/ax_pthread.m4
-2020/03/26 | 42 | graphics/asymptote/base/animate.asy
-2020/03/26 | 5254 | graphics/asymptote/base/animation.asy
-2020/03/26 | 578 | graphics/asymptote/base/annotate.asy
-2020/03/26 | 99 | graphics/asymptote/base/asy_filetype.vim
-2020/03/26 | 268 | graphics/asymptote/base/asy-init.el
-2020/03/26 | 8243 | graphics/asymptote/base/asy-kate.sh
-2020/03/26 | 71223 | graphics/asymptote/base/asy-mode.el
-2020/03/26 | 1276 | graphics/asymptote/base/asymptote.py
-2020/03/26 | 8870 | graphics/asymptote/base/asy.vim
-2020/03/26 | 51 | graphics/asymptote/base/babel.asy
-2020/03/26 | 9566 | graphics/asymptote/base/bezulate.asy
-2020/03/26 | 11482 | graphics/asymptote/base/binarytree.asy
-2020/03/26 | 5440 | graphics/asymptote/base/bsp.asy
-2020/03/26 | 10830 | graphics/asymptote/base/CAD.asy
-2020/03/26 | 174673 | graphics/asymptote/base/colormap.asy
-2020/03/26 | 14660 | graphics/asymptote/base/contour3.asy
-2020/03/26 | 20105 | graphics/asymptote/base/contour.asy
-2020/03/26 | 2109 | graphics/asymptote/base/drawtree.asy
-2020/03/26 | 1183 | graphics/asymptote/base/embed.asy
-2020/03/26 | 1122 | graphics/asymptote/base/external.asy
-2020/03/26 | 21459 | graphics/asymptote/base/feynman.asy
-2020/03/26 | 14311 | graphics/asymptote/base/flowchart.asy
-2020/03/26 | 35 | graphics/asymptote/base/fontsize.asy
-2020/03/26 | 320533 | graphics/asymptote/base/geometry.asy
-2020/03/26 | 68543 | graphics/asymptote/base/graph3.asy
-2020/03/26 | 63886 | graphics/asymptote/base/graph.asy
-2020/03/26 | 314 | graphics/asymptote/base/graph_settings.asy
-2020/03/26 | 7422 | graphics/asymptote/base/graph_splinetype.asy
-2020/03/26 | 13476 | graphics/asymptote/base/grid3.asy
-2020/03/26 | 3944 | graphics/asymptote/base/interpolate.asy
-2020/03/26 | 2465 | graphics/asymptote/base/labelpath3.asy
-2020/03/26 | 729 | graphics/asymptote/base/labelpath.asy
-2020/03/26 | 61 | graphics/asymptote/base/latin1.asy
-2020/03/26 | 24659 | graphics/asymptote/base/lmfit.asy
-2020/03/26 | 7302 | graphics/asymptote/base/markers.asy
-2020/03/26 | 11030 | graphics/asymptote/base/math.asy
-2020/03/26 | 253 | graphics/asymptote/base/metapost.asy
-2020/03/26 | 39 | graphics/asymptote/base/nopapersize.ps
-2020/03/26 | 3279 | graphics/asymptote/base/obj.asy
-2020/03/26 | 15192 | graphics/asymptote/base/ode.asy
-2020/03/26 | 14801 | graphics/asymptote/base/palette.asy
-2020/03/26 | 2615 | graphics/asymptote/base/patterns.asy
-2020/03/26 | 1259 | graphics/asymptote/base/plain_arcs.asy
-2020/03/26 | 19561 | graphics/asymptote/base/plain_arrows.asy
-2020/03/26 | 7193 | graphics/asymptote/base/plain.asy
-2020/03/26 | 21005 | graphics/asymptote/base/plain_bounds.asy
-2020/03/26 | 4128 | graphics/asymptote/base/plain_boxes.asy
-2020/03/26 | 3716 | graphics/asymptote/base/plain_constants.asy
-2020/03/26 | 2187 | graphics/asymptote/base/plain_debugger.asy
-2020/03/26 | 6292 | graphics/asymptote/base/plain_filldraw.asy
-2020/03/26 | 16578 | graphics/asymptote/base/plain_Label.asy
-2020/03/26 | 2552 | graphics/asymptote/base/plain_margins.asy
-2020/03/26 | 11320 | graphics/asymptote/base/plain_markers.asy
-2020/03/26 | 9309 | graphics/asymptote/base/plain_paths.asy
-2020/03/26 | 8661 | graphics/asymptote/base/plain_pens.asy
-2020/03/26 | 46927 | graphics/asymptote/base/plain_picture.asy
-2020/03/26 | 6285 | graphics/asymptote/base/plain_prethree.asy
-2020/03/26 | 5760 | graphics/asymptote/base/plain_scaling.asy
-2020/03/26 | 3992 | graphics/asymptote/base/plain_shipout.asy
-2020/03/26 | 6169 | graphics/asymptote/base/plain_strings.asy
-2020/03/26 | 358 | graphics/asymptote/base/pstoedit.asy
-2020/03/26 | 5003 | graphics/asymptote/base/rational.asy
-2020/03/26 | 9399 | graphics/asymptote/base/rationalSimplex.asy
-2020/03/26 | 657 | graphics/asymptote/base/reload.js
-2020/03/26 | 289 | graphics/asymptote/base/res/notes.txt
-2020/03/26 | 3430 | graphics/asymptote/base/roundedpath.asy
-2020/03/26 | 5277 | graphics/asymptote/base/shaders/fragment.glsl
-2020/03/26 | 630 | graphics/asymptote/base/shaders/vertex.glsl
-2020/03/26 | 8290 | graphics/asymptote/base/simplex.asy
-2020/03/26 | 608 | graphics/asymptote/base/size10.asy
-2020/03/26 | 600 | graphics/asymptote/base/size11.asy
-2020/03/26 | 16138 | graphics/asymptote/base/slide.asy
-2020/03/26 | 2068 | graphics/asymptote/base/slopefield.asy
-2020/03/26 | 56037 | graphics/asymptote/base/smoothcontour3.asy
-2020/03/26 | 12035 | graphics/asymptote/base/solids.asy
-2020/03/26 | 7307 | graphics/asymptote/base/stats.asy
-2020/03/26 | 22971 | graphics/asymptote/base/syzygy.asy
-2020/03/26 | 2277 | graphics/asymptote/base/texcolors.asy
-2020/03/26 | 23791 | graphics/asymptote/base/three_arrows.asy
-2020/03/26 | 85787 | graphics/asymptote/base/three.asy
-2020/03/26 | 3728 | graphics/asymptote/base/three_light.asy
-2020/03/26 | 2764 | graphics/asymptote/base/three_margins.asy
-2020/03/26 | 71908 | graphics/asymptote/base/three_surface.asy
-2020/03/26 | 5879 | graphics/asymptote/base/three_tube.asy
-2020/03/26 | 1375 | graphics/asymptote/base/tree.asy
-2020/03/26 | 5797 | graphics/asymptote/base/trembling.asy
-2020/03/26 | 4991 | graphics/asymptote/base/tube.asy
-2020/03/26 | 51 | graphics/asymptote/base/unicode.asy
-2020/03/26 | 60051 | graphics/asymptote/base/webgl/asygl.js
-2020/03/26 | 4812 | graphics/asymptote/base/x11colors.asy
-2020/03/26 | 3670 | graphics/asymptote/bbox3.h
-2020/03/26 | 4503 | graphics/asymptote/bbox.h
-2020/03/26 | 1851 | graphics/asymptote/beziercurve.cc
-2020/03/26 | 1207 | graphics/asymptote/beziercurve.h
-2020/03/26 | 32262 | graphics/asymptote/bezierpatch.cc
-2020/03/26 | 5273 | graphics/asymptote/bezierpatch.h
+2020/07/07 | 472 | graphics/asymptote/absyn.cc
+2020/07/07 | 1030 | graphics/asymptote/absyn.h
+2020/07/07 | 3309 | graphics/asymptote/access.cc
+2020/07/07 | 2976 | graphics/asymptote/access.h
+2020/07/07 | 2278 | graphics/asymptote/align.h
+2020/07/07 | 891 | graphics/asymptote/angle.h
+2020/07/07 | 18591 | graphics/asymptote/application.cc
+2020/07/07 | 9094 | graphics/asymptote/application.h
+2020/07/07 | 4736 | graphics/asymptote/array.cc
+2020/07/07 | 1986 | graphics/asymptote/array.h
+2020/07/07 | 14023 | graphics/asymptote/arrayop.h
+2020/07/07 | 11541 | graphics/asymptote/aspy.py
+2020/07/07 | 4286 | graphics/asymptote/asy.ico
+2020/07/07 | 17816 | graphics/asymptote/asy-keywords.el
+2020/07/07 | 206707 | graphics/asymptote/asy.list
+2020/07/07 | 1612 | graphics/asymptote/asy-list.pl
+2020/07/07 | 6300 | graphics/asymptote/asymptote.nsi
+2020/07/07 | 3001 | graphics/asymptote/asymptote.spec
+2020/07/07 | 770 | graphics/asymptote/asy.rc
+2020/07/07 | 34 | graphics/asymptote/autogen.sh
+2020/07/07 | 12534 | graphics/asymptote/ax_pthread.m4
+2020/07/07 | 42 | graphics/asymptote/base/animate.asy
+2020/07/07 | 5254 | graphics/asymptote/base/animation.asy
+2020/07/07 | 578 | graphics/asymptote/base/annotate.asy
+2020/07/07 | 99 | graphics/asymptote/base/asy_filetype.vim
+2020/07/07 | 268 | graphics/asymptote/base/asy-init.el
+2020/07/07 | 8243 | graphics/asymptote/base/asy-kate.sh
+2020/07/07 | 71223 | graphics/asymptote/base/asy-mode.el
+2020/07/07 | 1276 | graphics/asymptote/base/asymptote.py
+2020/07/07 | 8870 | graphics/asymptote/base/asy.vim
+2020/07/07 | 51 | graphics/asymptote/base/babel.asy
+2020/07/07 | 9566 | graphics/asymptote/base/bezulate.asy
+2020/07/07 | 11482 | graphics/asymptote/base/binarytree.asy
+2020/07/07 | 5440 | graphics/asymptote/base/bsp.asy
+2020/07/07 | 10830 | graphics/asymptote/base/CAD.asy
+2020/07/07 | 174673 | graphics/asymptote/base/colormap.asy
+2020/07/07 | 14660 | graphics/asymptote/base/contour3.asy
+2020/07/07 | 20105 | graphics/asymptote/base/contour.asy
+2020/07/07 | 2109 | graphics/asymptote/base/drawtree.asy
+2020/07/07 | 1183 | graphics/asymptote/base/embed.asy
+2020/07/07 | 1122 | graphics/asymptote/base/external.asy
+2020/07/07 | 21459 | graphics/asymptote/base/feynman.asy
+2020/07/07 | 14311 | graphics/asymptote/base/flowchart.asy
+2020/07/07 | 35 | graphics/asymptote/base/fontsize.asy
+2020/07/07 | 320533 | graphics/asymptote/base/geometry.asy
+2020/07/07 | 68543 | graphics/asymptote/base/graph3.asy
+2020/07/07 | 63886 | graphics/asymptote/base/graph.asy
+2020/07/07 | 314 | graphics/asymptote/base/graph_settings.asy
+2020/07/07 | 7422 | graphics/asymptote/base/graph_splinetype.asy
+2020/07/07 | 13476 | graphics/asymptote/base/grid3.asy
+2020/07/07 | 3944 | graphics/asymptote/base/interpolate.asy
+2020/07/07 | 2465 | graphics/asymptote/base/labelpath3.asy
+2020/07/07 | 729 | graphics/asymptote/base/labelpath.asy
+2020/07/07 | 61 | graphics/asymptote/base/latin1.asy
+2020/07/07 | 24659 | graphics/asymptote/base/lmfit.asy
+2020/07/07 | 908 | graphics/asymptote/base/map.asy
+2020/07/07 | 7302 | graphics/asymptote/base/markers.asy
+2020/07/07 | 11030 | graphics/asymptote/base/math.asy
+2020/07/07 | 253 | graphics/asymptote/base/metapost.asy
+2020/07/07 | 39 | graphics/asymptote/base/nopapersize.ps
+2020/07/07 | 3279 | graphics/asymptote/base/obj.asy
+2020/07/07 | 15192 | graphics/asymptote/base/ode.asy
+2020/07/07 | 14801 | graphics/asymptote/base/palette.asy
+2020/07/07 | 2615 | graphics/asymptote/base/patterns.asy
+2020/07/07 | 1259 | graphics/asymptote/base/plain_arcs.asy
+2020/07/07 | 19561 | graphics/asymptote/base/plain_arrows.asy
+2020/07/07 | 7508 | graphics/asymptote/base/plain.asy
+2020/07/07 | 21005 | graphics/asymptote/base/plain_bounds.asy
+2020/07/07 | 4128 | graphics/asymptote/base/plain_boxes.asy
+2020/07/07 | 3716 | graphics/asymptote/base/plain_constants.asy
+2020/07/07 | 2187 | graphics/asymptote/base/plain_debugger.asy
+2020/07/07 | 6292 | graphics/asymptote/base/plain_filldraw.asy
+2020/07/07 | 16578 | graphics/asymptote/base/plain_Label.asy
+2020/07/07 | 2552 | graphics/asymptote/base/plain_margins.asy
+2020/07/07 | 11320 | graphics/asymptote/base/plain_markers.asy
+2020/07/07 | 9309 | graphics/asymptote/base/plain_paths.asy
+2020/07/07 | 8661 | graphics/asymptote/base/plain_pens.asy
+2020/07/07 | 46727 | graphics/asymptote/base/plain_picture.asy
+2020/07/07 | 6285 | graphics/asymptote/base/plain_prethree.asy
+2020/07/07 | 5760 | graphics/asymptote/base/plain_scaling.asy
+2020/07/07 | 4078 | graphics/asymptote/base/plain_shipout.asy
+2020/07/07 | 6169 | graphics/asymptote/base/plain_strings.asy
+2020/07/07 | 358 | graphics/asymptote/base/pstoedit.asy
+2020/07/07 | 5003 | graphics/asymptote/base/rational.asy
+2020/07/07 | 9399 | graphics/asymptote/base/rationalSimplex.asy
+2020/07/07 | 657 | graphics/asymptote/base/reload.js
+2020/07/07 | 289 | graphics/asymptote/base/res/notes.txt
+2020/07/07 | 3430 | graphics/asymptote/base/roundedpath.asy
+2020/07/07 | 5277 | graphics/asymptote/base/shaders/fragment.glsl
+2020/07/07 | 630 | graphics/asymptote/base/shaders/vertex.glsl
+2020/07/07 | 8290 | graphics/asymptote/base/simplex.asy
+2020/07/07 | 608 | graphics/asymptote/base/size10.asy
+2020/07/07 | 600 | graphics/asymptote/base/size11.asy
+2020/07/07 | 16138 | graphics/asymptote/base/slide.asy
+2020/07/07 | 2046 | graphics/asymptote/base/slopefield.asy
+2020/07/07 | 56037 | graphics/asymptote/base/smoothcontour3.asy
+2020/07/07 | 12035 | graphics/asymptote/base/solids.asy
+2020/07/07 | 7307 | graphics/asymptote/base/stats.asy
+2020/07/07 | 22971 | graphics/asymptote/base/syzygy.asy
+2020/07/07 | 2277 | graphics/asymptote/base/texcolors.asy
+2020/07/07 | 23791 | graphics/asymptote/base/three_arrows.asy
+2020/07/07 | 85383 | graphics/asymptote/base/three.asy
+2020/07/07 | 3724 | graphics/asymptote/base/three_light.asy
+2020/07/07 | 2764 | graphics/asymptote/base/three_margins.asy
+2020/07/07 | 72387 | graphics/asymptote/base/three_surface.asy
+2020/07/07 | 5879 | graphics/asymptote/base/three_tube.asy
+2020/07/07 | 1375 | graphics/asymptote/base/tree.asy
+2020/07/07 | 5797 | graphics/asymptote/base/trembling.asy
+2020/07/07 | 4991 | graphics/asymptote/base/tube.asy
+2020/07/07 | 51 | graphics/asymptote/base/unicode.asy
+2020/07/07 | 60325 | graphics/asymptote/base/webgl/asygl.js
+2020/07/07 | 4812 | graphics/asymptote/base/x11colors.asy
+2020/07/07 | 3670 | graphics/asymptote/bbox3.h
+2020/07/07 | 4503 | graphics/asymptote/bbox.h
+2020/07/07 | 1851 | graphics/asymptote/beziercurve.cc
+2020/07/07 | 1288 | graphics/asymptote/beziercurve.h
+2020/07/07 | 32279 | graphics/asymptote/bezierpatch.cc
+2020/07/07 | 5631 | graphics/asymptote/bezierpatch.h
2018/02/02 | 3002325 | graphics/asymptote/binaries/i386-windows/cygwin1.dll
-2020/03/26 | 2505 | graphics/asymptote/binaries/i386-windows/README
-2020/03/26 | 7598080 | graphics/asymptote/binaries/i386-windows/texlive/asy.exe
+2020/07/07 | 2505 | graphics/asymptote/binaries/i386-windows/README
+2020/07/07 | 7605760 | graphics/asymptote/binaries/i386-windows/texlive/asy.exe
2018/04/05 | 288 | graphics/asymptote/binaries/i386-windows/texlive/README
2018/11/08 | 3339661 | graphics/asymptote/binaries/x86_64-windows/cygwin1.dll
-2020/03/26 | 2505 | graphics/asymptote/binaries/x86_64-windows/README
-2020/03/26 | 7867392 | graphics/asymptote/binaries/x86_64-windows/texlive/asy.exe
+2020/07/07 | 2505 | graphics/asymptote/binaries/x86_64-windows/README
+2020/07/07 | 7872000 | graphics/asymptote/binaries/x86_64-windows/texlive/asy.exe
2019/10/11 | 288 | graphics/asymptote/binaries/x86_64-windows/texlive/README
-2020/03/26 | 255 | graphics/asymptote/BUGS
-2020/03/26 | 1229 | graphics/asymptote/build-scripts/build-asygl
-2020/03/26 | 2482 | graphics/asymptote/build-scripts/build-asymptote
-2020/03/26 | 3449 | graphics/asymptote/build-scripts/build-asymptote.dos
-2020/03/26 | 1907 | graphics/asymptote/build-scripts/HOWTO-MSWindows
-2020/03/26 | 288 | graphics/asymptote/build-scripts/README-binaries
-2020/03/26 | 31244 | graphics/asymptote/builtin.cc
-2020/03/26 | 1637 | graphics/asymptote/builtin.h
-2020/03/26 | 1151 | graphics/asymptote/callable.cc
-2020/03/26 | 1642 | graphics/asymptote/callable.h
-2020/03/26 | 1191 | graphics/asymptote/camperror.cc
-2020/03/26 | 818 | graphics/asymptote/camperror.h
-2020/03/26 | 13339 | graphics/asymptote/camp.l
-2020/03/26 | 127885 | graphics/asymptote/camp.tab.cc
-2020/03/26 | 4089 | graphics/asymptote/camp.tab.h
-2020/03/26 | 20029 | graphics/asymptote/camp.y
-2020/03/26 | 4687 | graphics/asymptote/castop.h
-2020/03/26 | 1401328 | graphics/asymptote/ChangeLog
-2020/03/26 | 7808 | graphics/asymptote/coder.cc
-2020/03/26 | 11658 | graphics/asymptote/coder.h
-2020/03/26 | 1126 | graphics/asymptote/coenv.cc
-2020/03/26 | 908 | graphics/asymptote/coenv.h
-2020/03/26 | 1610 | graphics/asymptote/common.h
-2020/03/26 | 48441 | graphics/asymptote/config.guess
-2020/03/26 | 6871 | graphics/asymptote/config.h.in
-2020/03/26 | 31609 | graphics/asymptote/config.sub
-2020/03/26 | 285989 | graphics/asymptote/configure
-2020/03/26 | 14773 | graphics/asymptote/configure.ac
-2020/03/26 | 3673 | graphics/asymptote/constructor.cc
-2020/03/26 | 20866 | graphics/asymptote/dec.cc
-2020/03/26 | 15845 | graphics/asymptote/dec.h
-2020/03/26 | 5897 | graphics/asymptote/Delaunay.cc
-2020/03/26 | 384 | graphics/asymptote/Delaunay.h
-2020/03/26 | 8045 | graphics/asymptote/doc/asy.1
-2020/03/26 | 1005 | graphics/asymptote/doc/asy.1.begin
-2020/03/26 | 333 | graphics/asymptote/doc/asy.1.end
-2020/03/26 | 2800 | graphics/asymptote/doc/asycolors.sty
-2020/03/26 | 18126 | graphics/asymptote/doc/asy-latex.dtx
-2020/03/26 | 194590 | graphics/asymptote/doc/asy-latex.pdf
-2020/03/26 | 1293637 | graphics/asymptote/doc/asymptote.pdf
-2020/03/26 | 9836 | graphics/asymptote/doc/asymptote.sty
-2020/03/26 | 385350 | graphics/asymptote/doc/asymptote.texi
-2020/03/26 | 121144 | graphics/asymptote/doc/asyRefCard.pdf
-2020/03/26 | 20051 | graphics/asymptote/doc/asyRefCard.tex
-2020/03/26 | 246 | graphics/asymptote/doc/axis3.asy
-2020/03/26 | 416 | graphics/asymptote/doc/bezier2.asy
-2020/03/26 | 81 | graphics/asymptote/doc/bezier.asy
-2020/03/26 | 234 | graphics/asymptote/doc/beziercurve.asy
-2020/03/26 | 41 | graphics/asymptote/doc/bigdiagonal.asy
-2020/03/26 | 306 | graphics/asymptote/doc/binarytreetest.asy
-2020/03/26 | 677 | graphics/asymptote/doc/Bode.asy
-2020/03/26 | 524 | graphics/asymptote/doc/brokenaxis.asy
-2020/03/26 | 1391 | graphics/asymptote/doc/CAD1.asy
-2020/03/26 | 167756 | graphics/asymptote/doc/CAD.pdf
-2020/03/26 | 10196 | graphics/asymptote/doc/CAD.tex
-2020/03/26 | 492 | graphics/asymptote/doc/CDlabel.asy
-2020/03/26 | 4348 | graphics/asymptote/doc/colo-asy.tex
-2020/03/26 | 49 | graphics/asymptote/doc/colons.asy
-2020/03/26 | 1620 | graphics/asymptote/doc/colors.asy
-2020/03/26 | 243 | graphics/asymptote/doc/cube.asy
-2020/03/26 | 86 | graphics/asymptote/doc/cylinderskeleton.asy
-2020/03/26 | 218 | graphics/asymptote/doc/datagraph.asy
-2020/03/26 | 24 | graphics/asymptote/doc/diagonal.asy
-2020/03/26 | 2882 | graphics/asymptote/doc/diatom.asy
-2020/03/26 | 4067 | graphics/asymptote/doc/diatom.csv
-2020/03/26 | 49 | graphics/asymptote/doc/dots.asy
-2020/03/26 | 1051 | graphics/asymptote/doc/eetomumu.asy
-2020/03/26 | 2039 | graphics/asymptote/doc/elliptic.asy
-2020/03/26 | 912 | graphics/asymptote/doc/errorbars.asy
-2020/03/26 | 202 | graphics/asymptote/doc/exp.asy
-2020/03/26 | 343 | graphics/asymptote/doc/externalprc.tex
-2020/03/26 | 19597 | graphics/asymptote/doc/external-proposal.html
-2020/03/26 | 25137 | graphics/asymptote/doc/extra/intro.asy
-2020/03/26 | 40764 | graphics/asymptote/doc/FAQ/asy-faq.bfnn
-2020/03/26 | 63140 | graphics/asymptote/doc/FAQ/asy-faq.info
-2020/03/26 | 9202 | graphics/asymptote/doc/FAQ/bfnnconv.pl
-2020/03/26 | 13663 | graphics/asymptote/doc/FAQ/install-sh
-2020/03/26 | 1000 | graphics/asymptote/doc/FAQ/Makefile
-2020/03/26 | 4718 | graphics/asymptote/doc/FAQ/m-ascii.pl
-2020/03/26 | 9725 | graphics/asymptote/doc/FAQ/m-html.pl
-2020/03/26 | 5627 | graphics/asymptote/doc/FAQ/m-info.pl
-2020/03/26 | 6104 | graphics/asymptote/doc/FAQ/m-lout.pl
-2020/03/26 | 4578 | graphics/asymptote/doc/FAQ/m-post.pl
-2020/03/26 | 238 | graphics/asymptote/doc/filegraph.asy
-2020/03/26 | 26 | graphics/asymptote/doc/filegraph.dat
-2020/03/26 | 604 | graphics/asymptote/doc/flow.asy
-2020/03/26 | 862 | graphics/asymptote/doc/flowchartdemo.asy
-2020/03/26 | 464 | graphics/asymptote/doc/GaussianSurface.asy
-2020/03/26 | 376 | graphics/asymptote/doc/generalaxis3.asy
-2020/03/26 | 277 | graphics/asymptote/doc/generalaxis.asy
-2020/03/26 | 754 | graphics/asymptote/doc/graphmarkers.asy
-2020/03/26 | 426 | graphics/asymptote/doc/grid3xyz.asy
-2020/03/26 | 279 | graphics/asymptote/doc/hatch.asy
-2020/03/26 | 423 | graphics/asymptote/doc/helix.asy
-2020/03/26 | 330 | graphics/asymptote/doc/HermiteSpline.asy
-2020/03/26 | 441 | graphics/asymptote/doc/histogram.asy
-2020/03/26 | 521 | graphics/asymptote/doc/Hobbycontrol.asy
-2020/03/26 | 500 | graphics/asymptote/doc/Hobbydir.asy
-2020/03/26 | 380 | graphics/asymptote/doc/icon.asy
-2020/03/26 | 401 | graphics/asymptote/doc/image.asy
-2020/03/26 | 872 | graphics/asymptote/doc/imagecontour.asy
-2020/03/26 | 13663 | graphics/asymptote/doc/install-sh
-2020/03/26 | 357 | graphics/asymptote/doc/irregularcontour.asy
-2020/03/26 | 442 | graphics/asymptote/doc/join3.asy
-2020/03/26 | 261 | graphics/asymptote/doc/join.asy
-2020/03/26 | 417 | graphics/asymptote/doc/knots.asy
-2020/03/26 | 121 | graphics/asymptote/doc/labelsquare.asy
-2020/03/26 | 144 | graphics/asymptote/doc/latexmkrc
-2020/03/26 | 150 | graphics/asymptote/doc/latexmkrc_asydir
-2020/03/26 | 3106 | graphics/asymptote/doc/latexusage.tex
-2020/03/26 | 1025 | graphics/asymptote/doc/leastsquares.asy
-2020/03/26 | 6318 | graphics/asymptote/doc/leastsquares.dat
-2020/03/26 | 410 | graphics/asymptote/doc/legend.asy
-2020/03/26 | 366 | graphics/asymptote/doc/lineargraph0.asy
-2020/03/26 | 373 | graphics/asymptote/doc/lineargraph.asy
-2020/03/26 | 416 | graphics/asymptote/doc/linetype.asy
-2020/03/26 | 423 | graphics/asymptote/doc/log2graph.asy
-2020/03/26 | 262 | graphics/asymptote/doc/loggraph.asy
-2020/03/26 | 382 | graphics/asymptote/doc/loggrid.asy
-2020/03/26 | 480 | graphics/asymptote/doc/logimage.asy
-2020/03/26 | 619 | graphics/asymptote/doc/logo.asy
-2020/03/26 | 314 | graphics/asymptote/doc/logticks.asy
-2020/03/26 | 3023 | graphics/asymptote/doc/Makefile.in
-2020/03/26 | 293 | graphics/asymptote/doc/makepen.asy
-2020/03/26 | 2653 | graphics/asymptote/doc/markers1.asy
-2020/03/26 | 877 | graphics/asymptote/doc/markers2.asy
-2020/03/26 | 288 | graphics/asymptote/doc/mexicanhat.asy
-2020/03/26 | 374 | graphics/asymptote/doc/monthaxis.asy
-2020/03/26 | 458 | graphics/asymptote/doc/multicontour.asy
-2020/03/26 | 3497 | graphics/asymptote/doc/ocg.sty
-2020/03/26 | 115 | graphics/asymptote/doc/onecontour.asy
-2020/03/26 | 240 | graphics/asymptote/doc/parametricgraph.asy
-2020/03/26 | 498 | graphics/asymptote/doc/penfunctionimage.asy
-2020/03/26 | 219 | graphics/asymptote/doc/penimage.asy
-2020/03/26 | 2771 | graphics/asymptote/doc/pixel.pdf
-2020/03/26 | 354 | graphics/asymptote/doc/planes.asy
-2020/03/26 | 462052 | graphics/asymptote/doc/png/asymptote.info
-2020/03/26 | 1469 | graphics/asymptote/doc/png/Makefile.in
-2020/03/26 | 49 | graphics/asymptote/doc/quartercircle.asy
-2020/03/26 | 354 | graphics/asymptote/doc/reloadpdf.tex
-2020/03/26 | 157 | graphics/asymptote/doc/saddle.asy
-2020/03/26 | 355 | graphics/asymptote/doc/scaledgraph.asy
-2020/03/26 | 821 | graphics/asymptote/doc/secondaryaxis.asy
-2020/03/26 | 48847 | graphics/asymptote/doc/secondaryaxis.csv
-2020/03/26 | 256 | graphics/asymptote/doc/shadedtiling.asy
-2020/03/26 | 154 | graphics/asymptote/doc/slopefield1.asy
-2020/03/26 | 52 | graphics/asymptote/doc/square.asy
-2020/03/26 | 341 | graphics/asymptote/doc/subpictures.asy
-2020/03/26 | 123 | graphics/asymptote/doc/superpath.asy
-2020/03/26 | 77122 | graphics/asymptote/doc/TeXShopAndAsymptote.pdf
-2020/03/26 | 2653 | graphics/asymptote/doc/TeXShopAndAsymptote.tex
-2020/03/26 | 390 | graphics/asymptote/doc/tile.asy
-2020/03/26 | 396 | graphics/asymptote/doc/triangulate.asy
-2020/03/26 | 186 | graphics/asymptote/doc/unitcircle3.asy
-2020/03/26 | 147 | graphics/asymptote/doc/vectorfield.asy
-2020/03/26 | 1746 | graphics/asymptote/doc/westnile.asy
-2020/03/26 | 4727 | graphics/asymptote/doc/westnile.csv
-2020/03/26 | 880 | graphics/asymptote/doc/xasy.1x
-2020/03/26 | 1878 | graphics/asymptote/drawclipbegin.h
-2020/03/26 | 1213 | graphics/asymptote/drawclipend.h
-2020/03/26 | 11384 | graphics/asymptote/drawelement.h
-2020/03/26 | 4619 | graphics/asymptote/drawfill.cc
-2020/03/26 | 6570 | graphics/asymptote/drawfill.h
-2020/03/26 | 496 | graphics/asymptote/drawgrestore.h
-2020/03/26 | 2924 | graphics/asymptote/drawgroup.h
-2020/03/26 | 466 | graphics/asymptote/drawgsave.h
-2020/03/26 | 3042 | graphics/asymptote/drawimage.h
-2020/03/26 | 6865 | graphics/asymptote/drawlabel.cc
-2020/03/26 | 2163 | graphics/asymptote/drawlabel.h
-2020/03/26 | 773 | graphics/asymptote/drawlayer.h
-2020/03/26 | 6013 | graphics/asymptote/drawpath3.cc
-2020/03/26 | 5925 | graphics/asymptote/drawpath3.h
-2020/03/26 | 3522 | graphics/asymptote/drawpath.cc
-2020/03/26 | 674 | graphics/asymptote/drawpath.h
-2020/03/26 | 23740 | graphics/asymptote/drawsurface.cc
-2020/03/26 | 20093 | graphics/asymptote/drawsurface.h
-2020/03/26 | 1279 | graphics/asymptote/drawverbatim.h
-2020/03/26 | 20738 | graphics/asymptote/entry.cc
-2020/03/26 | 14795 | graphics/asymptote/entry.h
-2020/03/26 | 5465 | graphics/asymptote/env.cc
-2020/03/26 | 1142 | graphics/asymptote/envcompleter.cc
-2020/03/26 | 845 | graphics/asymptote/envcompleter.h
-2020/03/26 | 4575 | graphics/asymptote/env.h
-2020/03/26 | 10632 | graphics/asymptote/EnvVarUpdate.nsh
-2020/03/26 | 1753 | graphics/asymptote/errormsg.cc
-2020/03/26 | 5098 | graphics/asymptote/errormsg.h
-2020/03/26 | 9251 | graphics/asymptote/errors
-2020/03/26 | 6911 | graphics/asymptote/errortest.asy
-2020/03/26 | 657 | graphics/asymptote/examples/100d.views
-2020/03/26 | 309 | graphics/asymptote/examples/1overx.asy
-2020/03/26 | 4158 | graphics/asymptote/examples/advection.asy
-2020/03/26 | 245 | graphics/asymptote/examples/alignbox.asy
-2020/03/26 | 2832 | graphics/asymptote/examples/alignedaxis.asy
-2020/03/26 | 946 | graphics/asymptote/examples/animations/cube.asy
-2020/03/26 | 160672 | graphics/asymptote/examples/animations/dice.u3d
-2020/03/26 | 1919 | graphics/asymptote/examples/animations/earthmoon.asy
-2020/03/26 | 503 | graphics/asymptote/examples/animations/embeddedmovie.asy
-2020/03/26 | 196 | graphics/asymptote/examples/animations/embeddedu3d.asy
-2020/03/26 | 411 | graphics/asymptote/examples/animations/externalmovie.asy
-2020/03/26 | 414 | graphics/asymptote/examples/animations/glmovie.asy
-2020/03/26 | 1760 | graphics/asymptote/examples/animations/heatequation.asy
-2020/03/26 | 1037 | graphics/asymptote/examples/animations/inlinemovie3.tex
-2020/03/26 | 1235 | graphics/asymptote/examples/animations/inlinemovie.tex
-2020/03/26 | 326 | graphics/asymptote/examples/animations/pdfmovie.asy
-2020/03/26 | 1238 | graphics/asymptote/examples/animations/slidemovies.asy
-2020/03/26 | 856 | graphics/asymptote/examples/animations/sphere.asy
-2020/03/26 | 798 | graphics/asymptote/examples/animations/torusanimation.asy
-2020/03/26 | 1498 | graphics/asymptote/examples/animations/wavepacket.asy
-2020/03/26 | 1120 | graphics/asymptote/examples/animations/wheel.asy
-2020/03/26 | 236 | graphics/asymptote/examples/annotation.asy
-2020/03/26 | 1240 | graphics/asymptote/examples/arrows3.asy
-2020/03/26 | 497 | graphics/asymptote/examples/bars3.asy
-2020/03/26 | 1033 | graphics/asymptote/examples/basealign.asy
-2020/03/26 | 395 | graphics/asymptote/examples/BezierPatch.asy
-2020/03/26 | 581 | graphics/asymptote/examples/BezierSaddle.asy
-2020/03/26 | 1526 | graphics/asymptote/examples/BezierSurface.asy
-2020/03/26 | 199 | graphics/asymptote/examples/BezierTriangle.asy
-2020/03/26 | 154 | graphics/asymptote/examples/billboard.asy
-2020/03/26 | 513 | graphics/asymptote/examples/buildcycle.asy
-2020/03/26 | 233 | graphics/asymptote/examples/cardioid.asy
-2020/03/26 | 485 | graphics/asymptote/examples/cards.asy
-2020/03/26 | 691 | graphics/asymptote/examples/centroidfg.asy
-2020/03/26 | 322 | graphics/asymptote/examples/cheese.asy
-2020/03/26 | 576 | graphics/asymptote/examples/circles.asy
-2020/03/26 | 228 | graphics/asymptote/examples/circumcircle.asy
-2020/03/26 | 762 | graphics/asymptote/examples/clockarray.asy
-2020/03/26 | 264 | graphics/asymptote/examples/coag.asy
-2020/03/26 | 424 | graphics/asymptote/examples/colorpatch.asy
-2020/03/26 | 465 | graphics/asymptote/examples/colorplanes.asy
-2020/03/26 | 739 | graphics/asymptote/examples/condor.asy
-2020/03/26 | 495 | graphics/asymptote/examples/cones.asy
-2020/03/26 | 1780 | graphics/asymptote/examples/conicurv.asy
-2020/03/26 | 255 | graphics/asymptote/examples/contextfonts.asy
-2020/03/26 | 778 | graphics/asymptote/examples/controlsystem.asy
-2020/03/26 | 123 | graphics/asymptote/examples/Coons.asy
-2020/03/26 | 235 | graphics/asymptote/examples/cos2theta.asy
-2020/03/26 | 582 | graphics/asymptote/examples/cos3.asy
-2020/03/26 | 461 | graphics/asymptote/examples/cosaddition.asy
-2020/03/26 | 5740 | graphics/asymptote/examples/cpkcolors.asy
-2020/03/26 | 573 | graphics/asymptote/examples/curvedlabel3.asy
-2020/03/26 | 177 | graphics/asymptote/examples/curvedlabel.asy
-2020/03/26 | 1835 | graphics/asymptote/examples/cyclohexane.asy
-2020/03/26 | 352 | graphics/asymptote/examples/cylinder.asy
-2020/03/26 | 506 | graphics/asymptote/examples/delu.asy
-2020/03/26 | 521 | graphics/asymptote/examples/dimension.asy
-2020/03/26 | 1216 | graphics/asymptote/examples/dragon.asy
-2020/03/26 | 1326 | graphics/asymptote/examples/electromagnetic.asy
-2020/03/26 | 325 | graphics/asymptote/examples/elevation.asy
-2020/03/26 | 398 | graphics/asymptote/examples/epix.asy
-2020/03/26 | 242 | graphics/asymptote/examples/equilateral.asy
-2020/03/26 | 549 | graphics/asymptote/examples/equilchord.asy
-2020/03/26 | 579 | graphics/asymptote/examples/exp3.asy
-2020/03/26 | 519 | graphics/asymptote/examples/extrudedcontour.asy
-2020/03/26 | 498 | graphics/asymptote/examples/fano.asy
-2020/03/26 | 972 | graphics/asymptote/examples/fequlogo.asy
-2020/03/26 | 727 | graphics/asymptote/examples/fermi.asy
-2020/03/26 | 971 | graphics/asymptote/examples/filesurface.asy
-2020/03/26 | 5543 | graphics/asymptote/examples/filesurface.dat
-2020/03/26 | 574 | graphics/asymptote/examples/fillcontour.asy
-2020/03/26 | 4203 | graphics/asymptote/examples/fin.asy
-2020/03/26 | 710 | graphics/asymptote/examples/fjortoft.asy
-2020/03/26 | 581 | graphics/asymptote/examples/floatingdisk.asy
-2020/03/26 | 502 | graphics/asymptote/examples/floor.asy
-2020/03/26 | 683 | graphics/asymptote/examples/fractaltree.asy
-2020/03/26 | 1185 | graphics/asymptote/examples/functionshading.asy
-2020/03/26 | 499 | graphics/asymptote/examples/galleon.asy
-2020/03/26 | 714 | graphics/asymptote/examples/gamma3.asy
-2020/03/26 | 440 | graphics/asymptote/examples/gamma.asy
-2020/03/26 | 679 | graphics/asymptote/examples/genusthree.asy
-2020/03/26 | 1136 | graphics/asymptote/examples/genustwo.asy
-2020/03/26 | 384 | graphics/asymptote/examples/Gouraud.asy
-2020/03/26 | 616 | graphics/asymptote/examples/Gouraudcontour.asy
-2020/03/26 | 76 | graphics/asymptote/examples/grid.asy
-2020/03/26 | 459 | graphics/asymptote/examples/hierarchy.asy
-2020/03/26 | 315 | graphics/asymptote/examples/hyperboloid.asy
-2020/03/26 | 267 | graphics/asymptote/examples/hyperboloidsilhouette.asy
-2020/03/26 | 1140 | graphics/asymptote/examples/imagehistogram.asy
-2020/03/26 | 610 | graphics/asymptote/examples/impact.asy
-2020/03/26 | 605 | graphics/asymptote/examples/integraltest.asy
-2020/03/26 | 4825 | graphics/asymptote/examples/interpolate1.asy
-2020/03/26 | 291 | graphics/asymptote/examples/jump.asy
-2020/03/26 | 1309 | graphics/asymptote/examples/Klein.asy
-2020/03/26 | 182 | graphics/asymptote/examples/label3.asy
-2020/03/26 | 196 | graphics/asymptote/examples/label3ribbon.asy
-2020/03/26 | 187 | graphics/asymptote/examples/label3solid.asy
-2020/03/26 | 546 | graphics/asymptote/examples/label3zoom.asy
-2020/03/26 | 264 | graphics/asymptote/examples/labelbox.asy
-2020/03/26 | 1114 | graphics/asymptote/examples/laserlattice.asy
-2020/03/26 | 136 | graphics/asymptote/examples/latticeshading.asy
-2020/03/26 | 688 | graphics/asymptote/examples/layers.asy
-2020/03/26 | 460 | graphics/asymptote/examples/lever.asy
-2020/03/26 | 654 | graphics/asymptote/examples/limit.asy
-2020/03/26 | 1908 | graphics/asymptote/examples/linearregression.asy
-2020/03/26 | 168 | graphics/asymptote/examples/lines.asy
-2020/03/26 | 980 | graphics/asymptote/examples/lmfit1.asy
-2020/03/26 | 206 | graphics/asymptote/examples/log.asy
-2020/03/26 | 349 | graphics/asymptote/examples/logdown.asy
-2020/03/26 | 1231 | graphics/asymptote/examples/logo3.asy
-2020/03/26 | 196 | graphics/asymptote/examples/lowint.asy
-2020/03/26 | 659 | graphics/asymptote/examples/lowupint.asy
-2020/03/26 | 479 | graphics/asymptote/examples/magnetic.asy
-2020/03/26 | 833 | graphics/asymptote/examples/markregular.asy
-2020/03/26 | 1950 | graphics/asymptote/examples/mergeExample.asy
-2020/03/26 | 5258 | graphics/asymptote/examples/mosaic.asy
-2020/03/26 | 2512 | graphics/asymptote/examples/mosquito.asy
-2020/03/26 | 1569 | graphics/asymptote/examples/near_earth.asy
-2020/03/26 | 649 | graphics/asymptote/examples/NURBScurve.asy
-2020/03/26 | 1020 | graphics/asymptote/examples/NURBSsphere.asy
-2020/03/26 | 1461 | graphics/asymptote/examples/NURBSsurface.asy
-2020/03/26 | 1251 | graphics/asymptote/examples/odetest.asy
-2020/03/26 | 309 | graphics/asymptote/examples/oneoverx.asy
-2020/03/26 | 861 | graphics/asymptote/examples/orthocenter.asy
-2020/03/26 | 254 | graphics/asymptote/examples/parametricelevation.asy
-2020/03/26 | 407 | graphics/asymptote/examples/parametricsurface.asy
-2020/03/26 | 711 | graphics/asymptote/examples/partialsurface.asy
-2020/03/26 | 1055 | graphics/asymptote/examples/partitionExample.asy
-2020/03/26 | 419 | graphics/asymptote/examples/pathintersectsurface.asy
-2020/03/26 | 3344 | graphics/asymptote/examples/pdb.asy
-2020/03/26 | 361 | graphics/asymptote/examples/phase.asy
-2020/03/26 | 22873 | graphics/asymptote/examples/piicon.png
-2020/03/26 | 362 | graphics/asymptote/examples/pipeintersection.asy
-2020/03/26 | 3873 | graphics/asymptote/examples/pipes.asy
-2020/03/26 | 418 | graphics/asymptote/examples/planeproject.asy
-2020/03/26 | 930 | graphics/asymptote/examples/polararea.asy
-2020/03/26 | 628 | graphics/asymptote/examples/polarcircle.asy
-2020/03/26 | 326 | graphics/asymptote/examples/polardatagraph.asy
-2020/03/26 | 643 | graphics/asymptote/examples/p-orbital.asy
-2020/03/26 | 956 | graphics/asymptote/examples/poster.asy
-2020/03/26 | 58 | graphics/asymptote/examples/progrid.asy
-2020/03/26 | 373 | graphics/asymptote/examples/projectelevation.asy
-2020/03/26 | 438 | graphics/asymptote/examples/projectrevolution.asy
-2020/03/26 | 747 | graphics/asymptote/examples/pseudosphere.asy
-2020/03/26 | 557 | graphics/asymptote/examples/Pythagoras.asy
-2020/03/26 | 420 | graphics/asymptote/examples/PythagoreanTree.asy
-2020/03/26 | 734 | graphics/asymptote/examples/quilt.asy
-2020/03/26 | 325 | graphics/asymptote/examples/rainbow.asy
-2020/03/26 | 78 | graphics/asymptote/examples/randompath3.asy
-2020/03/26 | 1537 | graphics/asymptote/examples/refs.bib
-2020/03/26 | 993 | graphics/asymptote/examples/RiemannSphere.asy
-2020/03/26 | 369 | graphics/asymptote/examples/RiemannSurface.asy
-2020/03/26 | 386 | graphics/asymptote/examples/RiemannSurfaceRoot.asy
-2020/03/26 | 141 | graphics/asymptote/examples/ring.asy
-2020/03/26 | 182 | graphics/asymptote/examples/roll.asy
-2020/03/26 | 1310 | graphics/asymptote/examples/roundpath.asy
-2020/03/26 | 288 | graphics/asymptote/examples/sacone3D.asy
-2020/03/26 | 445 | graphics/asymptote/examples/sacone.asy
-2020/03/26 | 341 | graphics/asymptote/examples/sacylinder3D.asy
-2020/03/26 | 400 | graphics/asymptote/examples/sacylinder.asy
-2020/03/26 | 66 | graphics/asymptote/examples/shade.asy
-2020/03/26 | 104 | graphics/asymptote/examples/shadestroke.asy
-2020/03/26 | 1065 | graphics/asymptote/examples/shellmethod.asy
-2020/03/26 | 829 | graphics/asymptote/examples/shellsqrtx01.asy
-2020/03/26 | 410 | graphics/asymptote/examples/Sierpinski.asy
-2020/03/26 | 849 | graphics/asymptote/examples/SierpinskiGasket.asy
-2020/03/26 | 2361 | graphics/asymptote/examples/SierpinskiSponge.asy
-2020/03/26 | 327 | graphics/asymptote/examples/sin1x.asy
-2020/03/26 | 579 | graphics/asymptote/examples/sin3.asy
-2020/03/26 | 591 | graphics/asymptote/examples/sinc.asy
-2020/03/26 | 385 | graphics/asymptote/examples/sinxlex.asy
-2020/03/26 | 3340 | graphics/asymptote/examples/slidedemo.asy
-2020/03/26 | 341 | graphics/asymptote/examples/slidedemo_.bbl
-2020/03/26 | 2043 | graphics/asymptote/examples/slope.asy
-2020/03/26 | 520 | graphics/asymptote/examples/smoothelevation.asy
-2020/03/26 | 2658 | graphics/asymptote/examples/soccerball.asy
-2020/03/26 | 2362 | graphics/asymptote/examples/spectrum.asy
-2020/03/26 | 141 | graphics/asymptote/examples/sphere.asy
-2020/03/26 | 150 | graphics/asymptote/examples/spheresilhouette.asy
-2020/03/26 | 165 | graphics/asymptote/examples/sphereskeleton.asy
-2020/03/26 | 376 | graphics/asymptote/examples/sphericalharmonic.asy
-2020/03/26 | 426 | graphics/asymptote/examples/spiral3.asy
-2020/03/26 | 210 | graphics/asymptote/examples/spiral.asy
-2020/03/26 | 618 | graphics/asymptote/examples/spline.asy
-2020/03/26 | 2180 | graphics/asymptote/examples/splitpatch.asy
-2020/03/26 | 38 | graphics/asymptote/examples/spring0.asy
-2020/03/26 | 43 | graphics/asymptote/examples/spring2.asy
-2020/03/26 | 671 | graphics/asymptote/examples/spring.asy
-2020/03/26 | 674 | graphics/asymptote/examples/sqrtx01.asy
-2020/03/26 | 579 | graphics/asymptote/examples/sqrtx01y1.asy
-2020/03/26 | 145 | graphics/asymptote/examples/star.asy
-2020/03/26 | 170 | graphics/asymptote/examples/stereoscopic.asy
-2020/03/26 | 59 | graphics/asymptote/examples/stroke3.asy
-2020/03/26 | 315 | graphics/asymptote/examples/strokepath.asy
-2020/03/26 | 168 | graphics/asymptote/examples/strokeshade.asy
-2020/03/26 | 198 | graphics/asymptote/examples/tanh.asy
-2020/03/26 | 13739 | graphics/asymptote/examples/teapot.asy
-2020/03/26 | 303 | graphics/asymptote/examples/tensor.asy
-2020/03/26 | 547 | graphics/asymptote/examples/tetra.asy
-2020/03/26 | 312 | graphics/asymptote/examples/textpath.asy
-2020/03/26 | 10210 | graphics/asymptote/examples/thermodynamics.asy
-2020/03/26 | 576 | graphics/asymptote/examples/threeviews.asy
-2020/03/26 | 104 | graphics/asymptote/examples/tiling.asy
-2020/03/26 | 413 | graphics/asymptote/examples/torus.asy
-2020/03/26 | 246 | graphics/asymptote/examples/transparency.asy
-2020/03/26 | 250 | graphics/asymptote/examples/transparentCubes.asy
-2020/03/26 | 602 | graphics/asymptote/examples/treetest.asy
-2020/03/26 | 589 | graphics/asymptote/examples/trefoilknot.asy
-2020/03/26 | 969 | graphics/asymptote/examples/triads.asy
-2020/03/26 | 209 | graphics/asymptote/examples/triangle.asy
-2020/03/26 | 441 | graphics/asymptote/examples/triangles.asy
-2020/03/26 | 251 | graphics/asymptote/examples/triceratops.asy
-2020/03/26 | 291 | graphics/asymptote/examples/trumpet.asy
-2020/03/26 | 2084 | graphics/asymptote/examples/truncatedIcosahedron.asy
-2020/03/26 | 40326 | graphics/asymptote/examples/tvgen.asy
-2020/03/26 | 885 | graphics/asymptote/examples/twistedtubes.asy
-2020/03/26 | 26096 | graphics/asymptote/examples/uhrturm.obj
-2020/03/26 | 322 | graphics/asymptote/examples/unitcircle.asy
-2020/03/26 | 714 | graphics/asymptote/examples/unitoctant.asy
-2020/03/26 | 199 | graphics/asymptote/examples/upint.asy
-2020/03/26 | 525 | graphics/asymptote/examples/vectorfield3.asy
-2020/03/26 | 351 | graphics/asymptote/examples/vectorfieldsphere.asy
-2020/03/26 | 839 | graphics/asymptote/examples/venn3.asy
-2020/03/26 | 626 | graphics/asymptote/examples/venn.asy
-2020/03/26 | 784 | graphics/asymptote/examples/vertexshading.asy
-2020/03/26 | 360 | graphics/asymptote/examples/washer.asy
-2020/03/26 | 1010 | graphics/asymptote/examples/washermethod.asy
-2020/03/26 | 628 | graphics/asymptote/examples/wedge.asy
-2020/03/26 | 1036 | graphics/asymptote/examples/workcone.asy
-2020/03/26 | 978 | graphics/asymptote/examples/worksheet.asy
-2020/03/26 | 2633 | graphics/asymptote/examples/worldmap.asy
-2020/03/26 | 1261761 | graphics/asymptote/examples/worldmap.dat
-2020/03/26 | 580 | graphics/asymptote/examples/xsin1x.asy
-2020/03/26 | 3746 | graphics/asymptote/examples/xstitch.asy
-2020/03/26 | 743 | graphics/asymptote/examples/xxsq01.asy
-2020/03/26 | 868 | graphics/asymptote/examples/xxsq01x-1.asy
-2020/03/26 | 827 | graphics/asymptote/examples/xxsq01y.asy
-2020/03/26 | 223 | graphics/asymptote/examples/yingyang.asy
-2020/03/26 | 33877 | graphics/asymptote/exp.cc
-2020/03/26 | 28809 | graphics/asymptote/exp.h
-2020/03/26 | 119 | graphics/asymptote/fftw++asy.cc
-2020/03/26 | 1694 | graphics/asymptote/fftw++.cc
-2020/03/26 | 44894 | graphics/asymptote/fftw++.h
-2020/03/26 | 4063 | graphics/asymptote/fileio.cc
-2020/03/26 | 19984 | graphics/asymptote/fileio.h
-2020/03/26 | 1245 | graphics/asymptote/findsym.pl
-2020/03/26 | 1020 | graphics/asymptote/flatguide.cc
-2020/03/26 | 4231 | graphics/asymptote/flatguide.h
-2020/03/26 | 666 | graphics/asymptote/fpu.h
-2020/03/26 | 2173 | graphics/asymptote/frame.h
-2020/03/26 | 7935 | graphics/asymptote/fundec.cc
-2020/03/26 | 4347 | graphics/asymptote/fundec.h
-2020/03/26 | 1160528 | graphics/asymptote/gc-8.0.4.tar.gz
-2020/03/26 | 3161 | graphics/asymptote/genv.cc
-2020/03/26 | 1626 | graphics/asymptote/genv.h
-2020/03/26 | 4520 | graphics/asymptote/getopt1.c
-2020/03/26 | 30147 | graphics/asymptote/getopt.c
-2020/03/26 | 6650 | graphics/asymptote/getopt.h
-2020/03/26 | 152 | graphics/asymptote/glew.c
-2020/03/26 | 1235777 | graphics/asymptote/GL/glew.c
-2020/03/26 | 1186601 | graphics/asymptote/GL/glew.h
-2020/03/26 | 73435 | graphics/asymptote/GL/glxew.h
-2020/03/26 | 76801 | graphics/asymptote/gl-matrix-2.4.0-pruned/dist/gl-matrix.js
-2020/03/26 | 1131 | graphics/asymptote/gl-matrix-2.4.0-pruned/LICENSE.js
-2020/03/26 | 44813 | graphics/asymptote/glrender.cc
-2020/03/26 | 8673 | graphics/asymptote/glrender.h
-2020/03/26 | 63314 | graphics/asymptote/GL/wglew.h
-2020/03/26 | 50697 | graphics/asymptote/gsl.cc
-2020/03/26 | 22 | graphics/asymptote/GUI/configs/__init__.py
-2020/03/26 | 1148 | graphics/asymptote/GUI/configs/xasyconfig.cson
-2020/03/26 | 395 | graphics/asymptote/GUI/configs/xasykeymap.cson
-2020/03/26 | 3503 | graphics/asymptote/GUI/CustMatTransform.py
-2020/03/26 | 131 | graphics/asymptote/GUI/DebugFlags.py
-2020/03/26 | 1175 | graphics/asymptote/guide.cc
-2020/03/26 | 298 | graphics/asymptote/guideflags.h
-2020/03/26 | 6783 | graphics/asymptote/guide.h
-2020/03/26 | 1724 | graphics/asymptote/GUI/GuidesManager.py
-2020/03/26 | 164511 | graphics/asymptote/GUI/icons_rc.py
-2020/03/26 | 23 | graphics/asymptote/GUI/__init__.py
-2020/03/26 | 11528 | graphics/asymptote/GUI/InplaceAddObj.py
-2020/03/26 | 5151 | graphics/asymptote/GUI/labelEditor.py
-2020/03/26 | 700 | graphics/asymptote/GUI/locale/th/LC_MESSAGES/base.po
-2020/03/26 | 2399 | graphics/asymptote/GUI/PrimitiveShape.py
-2020/03/26 | 9945 | graphics/asymptote/GUI/pyUIClass/custMatTransform.py
-2020/03/26 | 6154 | graphics/asymptote/GUI/pyUIClass/labelTextEditor.py
-2020/03/26 | 2825 | graphics/asymptote/GUI/pyUIClass/setCustomAnchor.py
-2020/03/26 | 7129 | graphics/asymptote/GUI/pyUIClass/widg_addLabel.py
-2020/03/26 | 2193 | graphics/asymptote/GUI/pyUIClass/widg_addPolyOpt.py
-2020/03/26 | 4849 | graphics/asymptote/GUI/pyUIClass/widg_editBezier.py
-2020/03/26 | 4668 | graphics/asymptote/GUI/pyUIClass/widgetPointEditor.py
-2020/03/26 | 56646 | graphics/asymptote/GUI/pyUIClass/window1.py
-2020/03/26 | 57 | graphics/asymptote/GUI/requirements.txt
-2020/03/26 | 361 | graphics/asymptote/GUI/res/icons/anchor.svg
-2020/03/26 | 637 | graphics/asymptote/GUI/res/icons/android-arrow-back.svg
-2020/03/26 | 637 | graphics/asymptote/GUI/res/icons/android-arrow-forward.svg
-2020/03/26 | 802 | graphics/asymptote/GUI/res/icons/android-camera.svg
-2020/03/26 | 695 | graphics/asymptote/GUI/res/icons/android-close.svg
-2020/03/26 | 1319 | graphics/asymptote/GUI/res/icons/android-color-palette.svg
-2020/03/26 | 674 | graphics/asymptote/GUI/res/icons/android-delete.svg
-2020/03/26 | 633 | graphics/asymptote/GUI/res/icons/android-done.svg
-2020/03/26 | 822 | graphics/asymptote/GUI/res/icons/android-expand.svg
-2020/03/26 | 850 | graphics/asymptote/GUI/res/icons/android-folder-open.svg
-2020/03/26 | 1482 | graphics/asymptote/GUI/res/icons/android-hand.svg
-2020/03/26 | 1124 | graphics/asymptote/GUI/res/icons/android-locate.svg
-2020/03/26 | 764 | graphics/asymptote/GUI/res/icons/android-radio-button-off.svg
-2020/03/26 | 844 | graphics/asymptote/GUI/res/icons/android-radio-button-on.svg
-2020/03/26 | 806 | graphics/asymptote/GUI/res/icons/android-refresh.svg
-2020/03/26 | 713 | graphics/asymptote/GUI/res/icons/arrow-move.svg
-2020/03/26 | 639 | graphics/asymptote/GUI/res/icons/arrow-resize.svg
-2020/03/26 | 589 | graphics/asymptote/GUI/res/icons/bucket.asy
-2020/03/26 | 1492 | graphics/asymptote/GUI/res/icons/bucket.svg
-2020/03/26 | 111 | graphics/asymptote/GUI/res/icons/center.asy
-2020/03/26 | 124 | graphics/asymptote/GUI/res/icons/centerorigin.asy
-2020/03/26 | 1052 | graphics/asymptote/GUI/res/icons/centerorigin.svg
-2020/03/26 | 892 | graphics/asymptote/GUI/res/icons/center.svg
-2020/03/26 | 780 | graphics/asymptote/GUI/res/icons/check.svg
-2020/03/26 | 1013 | graphics/asymptote/GUI/res/icons/chevron-with-circle-left.svg
-2020/03/26 | 998 | graphics/asymptote/GUI/res/icons/chevron-with-circle-right.svg
-2020/03/26 | 754 | graphics/asymptote/GUI/res/icons/circle.svg
-2020/03/26 | 105 | graphics/asymptote/GUI/res/icons/closedcurve.asy
-2020/03/26 | 1237 | graphics/asymptote/GUI/res/icons/closedcurve.svg
-2020/03/26 | 105 | graphics/asymptote/GUI/res/icons/closedpolygon.asy
-2020/03/26 | 1102 | graphics/asymptote/GUI/res/icons/closedpolygon.svg
-2020/03/26 | 838 | graphics/asymptote/GUI/res/icons/close-round.svg
-2020/03/26 | 1194 | graphics/asymptote/GUI/res/icons/code.svg
-2020/03/26 | 876 | graphics/asymptote/GUI/res/icons/edit.svg
-2020/03/26 | 1003 | graphics/asymptote/GUI/res/icons/eye.svg
-2020/03/26 | 1967 | graphics/asymptote/GUI/res/icons/filledbucket.svg
-2020/03/26 | 1764 | graphics/asymptote/GUI/res/icons/grid.svg
-2020/03/26 | 964 | graphics/asymptote/GUI/res/icons/magnifying-glass.svg
-2020/03/26 | 98 | graphics/asymptote/GUI/res/icons/opencurve.asy
-2020/03/26 | 1186 | graphics/asymptote/GUI/res/icons/opencurve.svg
-2020/03/26 | 98 | graphics/asymptote/GUI/res/icons/openpolygon.asy
-2020/03/26 | 1085 | graphics/asymptote/GUI/res/icons/openpolygon.svg
-2020/03/26 | 759 | graphics/asymptote/GUI/res/icons/plus-round.svg
-2020/03/26 | 1711 | graphics/asymptote/GUI/res/icons.qrc
-2020/03/26 | 673 | graphics/asymptote/GUI/res/icons/save.svg
-2020/03/26 | 1920 | graphics/asymptote/GUI/res/icons/social-python.svg
-2020/03/26 | 108 | graphics/asymptote/GUI/res/icons/subdirectory-left.svg
-2020/03/26 | 284 | graphics/asymptote/GUI/res/icons/text.svg
-2020/03/26 | 1226 | graphics/asymptote/GUI/res/icons/triangle-stroked-15.svg
-2020/03/26 | 1393 | graphics/asymptote/GUI/SetCustomAnchor.py
-2020/03/26 | 394 | graphics/asymptote/GUI/setup.py
-2020/03/26 | 3616 | graphics/asymptote/GUI/UndoRedoStack.py
-2020/03/26 | 3249 | graphics/asymptote/GUI/Widg_addLabel.py
-2020/03/26 | 883 | graphics/asymptote/GUI/Widg_addPolyOpt.py
-2020/03/26 | 1665 | graphics/asymptote/GUI/Widg_editBezier.py
-2020/03/26 | 72687 | graphics/asymptote/GUI/Window1.py
-2020/03/26 | 10271 | graphics/asymptote/GUI/windows/custMatTransform.ui
-2020/03/26 | 6552 | graphics/asymptote/GUI/windows/labelTextEditor.ui
-2020/03/26 | 2631 | graphics/asymptote/GUI/windows/setCustomAnchor.ui
-2020/03/26 | 6896 | graphics/asymptote/GUI/windows/widg_addLabel.ui
-2020/03/26 | 2148 | graphics/asymptote/GUI/windows/widg_addPolyOpt.ui
-2020/03/26 | 4474 | graphics/asymptote/GUI/windows/widg_editBezier.ui
-2020/03/26 | 4166 | graphics/asymptote/GUI/windows/widgetPointEditor.ui
-2020/03/26 | 75576 | graphics/asymptote/GUI/windows/window1.ui
-2020/03/26 | 50497 | graphics/asymptote/GUI/xasy2asy.py
-2020/03/26 | 821 | graphics/asymptote/GUI/xasyArgs.py
-2020/03/26 | 13550 | graphics/asymptote/GUI/xasyBezierInterface.py
-2020/03/26 | 2554 | graphics/asymptote/GUI/xasyFile.py
-2020/03/26 | 5048 | graphics/asymptote/GUI/xasyOptions.py
-2020/03/26 | 503 | graphics/asymptote/GUI/xasy.py
-2020/03/26 | 599 | graphics/asymptote/GUI/xasyStrings.py
-2020/03/26 | 710 | graphics/asymptote/GUI/xasySvg.py
-2020/03/26 | 964 | graphics/asymptote/GUI/xasyTransform.py
-2020/03/26 | 1504 | graphics/asymptote/GUI/xasyUtils.py
-2020/03/26 | 238 | graphics/asymptote/GUI/xasyValidator.py
-2020/03/26 | 12744 | graphics/asymptote/impdatum.cc
-2020/03/26 | 10445 | graphics/asymptote/INSTALL
-2020/03/26 | 15645 | graphics/asymptote/install-sh
-2020/03/26 | 1986 | graphics/asymptote/inst.h
-2020/03/26 | 5538 | graphics/asymptote/interact.cc
-2020/03/26 | 1349 | graphics/asymptote/interact.h
-2020/03/26 | 5857 | graphics/asymptote/item.h
-2020/03/26 | 9065 | graphics/asymptote/jsfile.cc
-2020/03/26 | 1836 | graphics/asymptote/jsfile.h
-2020/03/26 | 609 | graphics/asymptote/keywords.cc
-2020/03/26 | 1253 | graphics/asymptote/keywords.pl
-2020/03/26 | 22355 | graphics/asymptote/knot.cc
-2020/03/26 | 12300 | graphics/asymptote/knot.h
-2020/03/26 | 345 | graphics/asymptote/lexical.h
-2020/03/26 | 83431 | graphics/asymptote/lex.yy.cc
-2020/03/26 | 503734 | graphics/asymptote/libatomic_ops-7.6.10.tar.gz
-2020/03/26 | 35147 | graphics/asymptote/LICENSE
-2020/03/26 | 7639 | graphics/asymptote/LICENSE.LESSER
-2020/03/26 | 2766 | graphics/asymptote/lnkX64IconFix.nsh
-2020/03/26 | 2197 | graphics/asymptote/locate.cc
-2020/03/26 | 577 | graphics/asymptote/locate.h
-2020/03/26 | 5301 | graphics/asymptote/main.cc
-2020/03/26 | 11585 | graphics/asymptote/Makefile.in
-2020/03/26 | 2632 | graphics/asymptote/material.h
-2020/03/26 | 6425 | graphics/asymptote/mathop.h
-2020/03/26 | 5070 | graphics/asymptote/memory.h
-2020/03/26 | 720 | graphics/asymptote/mod.h
-2020/03/26 | 908 | graphics/asymptote/modifier.h
-2020/03/26 | 7445 | graphics/asymptote/name.cc
-2020/03/26 | 5239 | graphics/asymptote/name.h
-2020/03/26 | 4269 | graphics/asymptote/newexp.cc
-2020/03/26 | 1278 | graphics/asymptote/newexp.h
-2020/03/26 | 917 | graphics/asymptote/opcodes.h
-2020/03/26 | 1050 | graphics/asymptote/opsymbols.pl
-2020/03/26 | 5145 | graphics/asymptote/pair.h
-2020/03/26 | 3505 | graphics/asymptote/parser.cc
-2020/03/26 | 852 | graphics/asymptote/parser.h
-2020/03/26 | 5262 | graphics/asymptote/patches/bison.patch
-2020/03/26 | 1805 | graphics/asymptote/patches/cygwin_freeglut-3.0.0.patch
-2020/03/26 | 1311 | graphics/asymptote/patches/dvipdf
-2020/03/26 | 113 | graphics/asymptote/patches/fixmem.reg
-2020/03/26 | 1524 | graphics/asymptote/patches/flex.patch
-2020/03/26 | 271 | graphics/asymptote/patches/gc6.8_AIX.patch
-2020/03/26 | 489 | graphics/asymptote/patches/gc-7.0nomem.patch
-2020/03/26 | 318 | graphics/asymptote/patches/gcc3.3.2curses.patch
-2020/03/26 | 19462 | graphics/asymptote/patches/gl-matrix-2.4.0-pruned.patch
-2020/03/26 | 1082 | graphics/asymptote/patches/README
-2020/03/26 | 38217 | graphics/asymptote/path3.cc
-2020/03/26 | 10604 | graphics/asymptote/path3.h
-2020/03/26 | 34126 | graphics/asymptote/path.cc
-2020/03/26 | 11680 | graphics/asymptote/path.h
-2020/03/26 | 1594 | graphics/asymptote/pen.cc
-2020/03/26 | 28156 | graphics/asymptote/pen.h
-2020/03/26 | 40487 | graphics/asymptote/picture.cc
-2020/03/26 | 3434 | graphics/asymptote/picture.h
-2020/03/26 | 5392 | graphics/asymptote/pipestream.cc
-2020/03/26 | 2722 | graphics/asymptote/pipestream.h
-2020/03/26 | 138 | graphics/asymptote/Pipfile
-2020/03/26 | 2526 | graphics/asymptote/policy.h
-2020/03/26 | 654 | graphics/asymptote/prcfile.h
-2020/03/26 | 974 | graphics/asymptote/prc/Makefile
-2020/03/26 | 70751 | graphics/asymptote/prc/oPRCFile.cc
-2020/03/26 | 51432 | graphics/asymptote/prc/oPRCFile.h
-2020/03/26 | 8371 | graphics/asymptote/prc/PRCbitStream.cc
-2020/03/26 | 2518 | graphics/asymptote/prc/PRCbitStream.h
-2020/03/26 | 177246 | graphics/asymptote/prc/PRCdouble.cc
-2020/03/26 | 3765 | graphics/asymptote/prc/PRCdouble.h
-2020/03/26 | 30208 | graphics/asymptote/prc/PRC.h
-2020/03/26 | 6021 | graphics/asymptote/prc/PRCTools/bitData.cc
-2020/03/26 | 1860 | graphics/asymptote/prc/PRCTools/bitData.h
-2020/03/26 | 1927 | graphics/asymptote/prc/PRCTools/bitSearchDouble.cc
-2020/03/26 | 1863 | graphics/asymptote/prc/PRCTools/bitSearchUI.cc
-2020/03/26 | 1245 | graphics/asymptote/prc/PRCTools/describeMain.cc
-2020/03/26 | 68126 | graphics/asymptote/prc/PRCTools/describePRC.cc
-2020/03/26 | 4335 | graphics/asymptote/prc/PRCTools/describePRC.h
-2020/03/26 | 1310 | graphics/asymptote/prc/PRCTools/extractSections.cc
-2020/03/26 | 2276 | graphics/asymptote/prc/PRCTools/inflation.cc
-2020/03/26 | 1051 | graphics/asymptote/prc/PRCTools/inflation.h
-2020/03/26 | 1479 | graphics/asymptote/prc/PRCTools/inflationMain.cc
-2020/03/26 | 8792 | graphics/asymptote/prc/PRCTools/iPRCFile.cc
-2020/03/26 | 2341 | graphics/asymptote/prc/PRCTools/iPRCFile.h
-2020/03/26 | 1658 | graphics/asymptote/prc/PRCTools/Makefile
-2020/03/26 | 4716 | graphics/asymptote/prc/PRCTools/makePRC.cc
-2020/03/26 | 95 | graphics/asymptote/prc/test.asy
-2020/03/26 | 36243 | graphics/asymptote/prc/test.cc
-2020/03/26 | 66751 | graphics/asymptote/prc/writePRC.cc
-2020/03/26 | 48481 | graphics/asymptote/prc/writePRC.h
-2020/03/26 | 116025 | graphics/asymptote/predicates.cc
-2020/03/26 | 986 | graphics/asymptote/predicates.h
-2020/03/26 | 1234 | graphics/asymptote/primitives.h
-2020/03/26 | 25292 | graphics/asymptote/process.cc
-2020/03/26 | 3003 | graphics/asymptote/process.h
-2020/03/26 | 2378 | graphics/asymptote/profile.py
-2020/03/26 | 9892 | graphics/asymptote/profiler.h
-2020/03/26 | 3275 | graphics/asymptote/program.cc
-2020/03/26 | 2562 | graphics/asymptote/program.h
-2020/03/26 | 18964 | graphics/asymptote/psfile.cc
-2020/03/26 | 9306 | graphics/asymptote/psfile.h
-2020/03/26 | 2505 | graphics/asymptote/README
-2020/03/26 | 1704 | graphics/asymptote/record.cc
-2020/03/26 | 2738 | graphics/asymptote/record.h
-2020/03/26 | 1098 | graphics/asymptote/refaccess.cc
-2020/03/26 | 1936 | graphics/asymptote/refaccess.h
-2020/03/26 | 120050 | graphics/asymptote/ReleaseNotes
-2020/03/26 | 62 | graphics/asymptote/revision.cc
-2020/03/26 | 3553 | graphics/asymptote/rounding.h
-2020/03/26 | 73504 | graphics/asymptote/runarray.cc
-2020/03/26 | 1492 | graphics/asymptote/runarray.h
-2020/03/26 | 48669 | graphics/asymptote/runarray.in
-2020/03/26 | 2661 | graphics/asymptote/runbacktrace.cc
-2020/03/26 | 169 | graphics/asymptote/runbacktrace.h
-2020/03/26 | 833 | graphics/asymptote/runbacktrace.in
-2020/03/26 | 17755 | graphics/asymptote/runfile.cc
-2020/03/26 | 969 | graphics/asymptote/runfile.h
-2020/03/26 | 5936 | graphics/asymptote/runfile.in
-2020/03/26 | 8062 | graphics/asymptote/runhistory.cc
-2020/03/26 | 161 | graphics/asymptote/runhistory.h
-2020/03/26 | 5024 | graphics/asymptote/runhistory.in
-2020/03/26 | 16702 | graphics/asymptote/runlabel.cc
-2020/03/26 | 153 | graphics/asymptote/runlabel.h
-2020/03/26 | 12959 | graphics/asymptote/runlabel.in
-2020/03/26 | 21977 | graphics/asymptote/runmath.cc
-2020/03/26 | 269 | graphics/asymptote/runmath.h
-2020/03/26 | 8929 | graphics/asymptote/runmath.in
-2020/03/26 | 16190 | graphics/asymptote/runpair.cc
-2020/03/26 | 299 | graphics/asymptote/runpair.h
-2020/03/26 | 4132 | graphics/asymptote/runpair.in
-2020/03/26 | 25707 | graphics/asymptote/runpath3d.cc
-2020/03/26 | 186 | graphics/asymptote/runpath3d.h
-2020/03/26 | 8016 | graphics/asymptote/runpath3d.in
-2020/03/26 | 26872 | graphics/asymptote/runpath.cc
-2020/03/26 | 177 | graphics/asymptote/runpath.h
-2020/03/26 | 8458 | graphics/asymptote/runpath.in
-2020/03/26 | 56889 | graphics/asymptote/runpicture.cc
-2020/03/26 | 191 | graphics/asymptote/runpicture.h
-2020/03/26 | 19308 | graphics/asymptote/runpicture.in
-2020/03/26 | 18772 | graphics/asymptote/runstring.cc
-2020/03/26 | 188 | graphics/asymptote/runstring.h
-2020/03/26 | 9871 | graphics/asymptote/runstring.in
-2020/03/26 | 12629 | graphics/asymptote/runsystem.cc
-2020/03/26 | 157 | graphics/asymptote/runsystem.h
-2020/03/26 | 5119 | graphics/asymptote/runsystem.in
-2020/03/26 | 1343 | graphics/asymptote/runtimebase.in
-2020/03/26 | 60505 | graphics/asymptote/runtime.cc
-2020/03/26 | 1163 | graphics/asymptote/runtime.h
-2020/03/26 | 20545 | graphics/asymptote/runtime.in
-2020/03/26 | 7230 | graphics/asymptote/runtime.pl
-2020/03/26 | 13628 | graphics/asymptote/runtriple.cc
-2020/03/26 | 320 | graphics/asymptote/runtriple.h
-2020/03/26 | 2675 | graphics/asymptote/runtriple.in
-2020/03/26 | 2113 | graphics/asymptote/seconds.h
-2020/03/26 | 51676 | graphics/asymptote/settings.cc
-2020/03/26 | 2667 | graphics/asymptote/settings.h
-2020/03/26 | 2905 | graphics/asymptote/shaders.cc
-2020/03/26 | 882 | graphics/asymptote/shaders.h
-2020/03/26 | 6660 | graphics/asymptote/simpson.cc
-2020/03/26 | 14448 | graphics/asymptote/stack.cc
-2020/03/26 | 3328 | graphics/asymptote/stack.h
-2020/03/26 | 958 | graphics/asymptote/statistics.h
-2020/03/26 | 12103 | graphics/asymptote/stm.cc
-2020/03/26 | 4400 | graphics/asymptote/stm.h
-2020/03/26 | 8912 | graphics/asymptote/symbol.cc
-2020/03/26 | 2662 | graphics/asymptote/symbol.h
-2020/03/26 | 2697 | graphics/asymptote/table.h
-2020/03/26 | 620 | graphics/asymptote/tests/arith/integer.asy
-2020/03/26 | 449 | graphics/asymptote/tests/arith/pair.asy
-2020/03/26 | 193 | graphics/asymptote/tests/arith/random.asy
-2020/03/26 | 383 | graphics/asymptote/tests/arith/real.asy
-2020/03/26 | 1710 | graphics/asymptote/tests/arith/roots.asy
-2020/03/26 | 639 | graphics/asymptote/tests/arith/transform.asy
-2020/03/26 | 244 | graphics/asymptote/tests/arith/triple.asy
-2020/03/26 | 936 | graphics/asymptote/tests/array/array.asy
-2020/03/26 | 680 | graphics/asymptote/tests/array/delete.asy
-2020/03/26 | 737 | graphics/asymptote/tests/array/determinant.asy
-2020/03/26 | 1927 | graphics/asymptote/tests/array/fields.asy
-2020/03/26 | 4841 | graphics/asymptote/tests/array/slice.asy
-2020/03/26 | 966 | graphics/asymptote/tests/array/solve.asy
-2020/03/26 | 746 | graphics/asymptote/tests/array/sort.asy
-2020/03/26 | 1096 | graphics/asymptote/tests/array/transpose.asy
-2020/03/26 | 276 | graphics/asymptote/tests/bench/6000circles.asy
-2020/03/26 | 2222 | graphics/asymptote/tests/frames/loop.asy
-2020/03/26 | 202 | graphics/asymptote/tests/frames/stat2.asy
-2020/03/26 | 158 | graphics/asymptote/tests/frames/stat.asy
-2020/03/26 | 62 | graphics/asymptote/tests/gc/array.asy
-2020/03/26 | 102 | graphics/asymptote/tests/gc/file.asy
-2020/03/26 | 54 | graphics/asymptote/tests/gc/funcall.asy
-2020/03/26 | 65 | graphics/asymptote/tests/gc/guide.asy
-2020/03/26 | 143 | graphics/asymptote/tests/gc/label.asy
-2020/03/26 | 124 | graphics/asymptote/tests/gc/path.asy
-2020/03/26 | 72 | graphics/asymptote/tests/gc/pen.asy
-2020/03/26 | 193 | graphics/asymptote/tests/gc/shipout.asy
-2020/03/26 | 77 | graphics/asymptote/tests/gc/string.asy
-2020/03/26 | 129 | graphics/asymptote/tests/gc/struct.asy
-2020/03/26 | 70 | graphics/asymptote/tests/gc/transform.asy
-2020/03/26 | 369 | graphics/asymptote/tests/gs/ghostscript.asy
-2020/03/26 | 11907 | graphics/asymptote/tests/gsl/random.asy
-2020/03/26 | 1209 | graphics/asymptote/tests/imp/unravel.asy
-2020/03/26 | 308 | graphics/asymptote/tests/Makefile
-2020/03/26 | 18 | graphics/asymptote/tests/output/circle.asy
-2020/03/26 | 22 | graphics/asymptote/tests/output/line.asy
-2020/03/26 | 1284 | graphics/asymptote/tests/output/Makefile
-2020/03/26 | 1384 | graphics/asymptote/tests/pic/trans.asy
-2020/03/26 | 236 | graphics/asymptote/tests/string/erase.asy
-2020/03/26 | 182 | graphics/asymptote/tests/string/find.asy
-2020/03/26 | 109 | graphics/asymptote/tests/string/insert.asy
-2020/03/26 | 132 | graphics/asymptote/tests/string/length.asy
-2020/03/26 | 187 | graphics/asymptote/tests/string/rfind.asy
-2020/03/26 | 118 | graphics/asymptote/tests/string/substr.asy
-2020/03/26 | 238 | graphics/asymptote/tests/TestLib.asy
-2020/03/26 | 159 | graphics/asymptote/tests/types/cast.asy
-2020/03/26 | 6503 | graphics/asymptote/tests/types/constructor.asy
-2020/03/26 | 155 | graphics/asymptote/tests/types/ecast.asy
-2020/03/26 | 3375 | graphics/asymptote/tests/types/guide.asy
-2020/03/26 | 224 | graphics/asymptote/tests/types/init.asy
-2020/03/26 | 4242 | graphics/asymptote/tests/types/keyword.asy
-2020/03/26 | 4072 | graphics/asymptote/tests/types/order.asy
-2020/03/26 | 2731 | graphics/asymptote/tests/types/resolve.asy
-2020/03/26 | 308 | graphics/asymptote/tests/types/shadow.asy
-2020/03/26 | 1331 | graphics/asymptote/tests/types/spec.asy
-2020/03/26 | 1189 | graphics/asymptote/tests/types/var.asy
-2020/03/26 | 20174 | graphics/asymptote/texfile.cc
-2020/03/26 | 10727 | graphics/asymptote/texfile.h
-2020/03/26 | 1293 | graphics/asymptote/TODO
-2020/03/26 | 6185 | graphics/asymptote/transform.h
-2020/03/26 | 10582 | graphics/asymptote/tr.cc
-2020/03/26 | 3676 | graphics/asymptote/tr.h
-2020/03/26 | 9651 | graphics/asymptote/triple.h
-2020/03/26 | 13884 | graphics/asymptote/types.cc
-2020/03/26 | 15372 | graphics/asymptote/types.h
-2020/03/26 | 9756 | graphics/asymptote/util.cc
-2020/03/26 | 4515 | graphics/asymptote/util.h
-2020/03/26 | 1978 | graphics/asymptote/varinit.cc
-2020/03/26 | 2013 | graphics/asymptote/varinit.h
-2020/03/26 | 901 | graphics/asymptote/virtualfieldaccess.cc
-2020/03/26 | 2328 | graphics/asymptote/virtualfieldaccess.h
-2020/03/26 | 750 | graphics/asymptote/vm.h
-2020/03/26 | 219 | graphics/asymptote/wce
-2020/03/26 | 2146 | graphics/asymptote/webgl/fragment.glsl
-2020/03/26 | 82821 | graphics/asymptote/webgl/gl.js
-2020/03/26 | 815 | graphics/asymptote/webgl/license
-2020/03/26 | 1446 | graphics/asymptote/webgl/vertex.glsl
-2020/03/26 | 6661 | graphics/asymptote/xstream.h
-2020/03/26 | 14728927 | graphics/asymptote.zip
+2020/07/07 | 255 | graphics/asymptote/BUGS
+2020/07/07 | 1229 | graphics/asymptote/build-scripts/build-asygl
+2020/07/07 | 2482 | graphics/asymptote/build-scripts/build-asymptote
+2020/07/07 | 3449 | graphics/asymptote/build-scripts/build-asymptote.dos
+2020/07/07 | 1907 | graphics/asymptote/build-scripts/HOWTO-MSWindows
+2020/07/07 | 288 | graphics/asymptote/build-scripts/README-binaries
+2020/07/07 | 31244 | graphics/asymptote/builtin.cc
+2020/07/07 | 1637 | graphics/asymptote/builtin.h
+2020/07/07 | 1151 | graphics/asymptote/callable.cc
+2020/07/07 | 1642 | graphics/asymptote/callable.h
+2020/07/07 | 1191 | graphics/asymptote/camperror.cc
+2020/07/07 | 818 | graphics/asymptote/camperror.h
+2020/07/07 | 13339 | graphics/asymptote/camp.l
+2020/07/07 | 127885 | graphics/asymptote/camp.tab.cc
+2020/07/07 | 4089 | graphics/asymptote/camp.tab.h
+2020/07/07 | 20029 | graphics/asymptote/camp.y
+2020/07/07 | 4687 | graphics/asymptote/castop.h
+2020/07/07 | 1415947 | graphics/asymptote/ChangeLog
+2020/07/07 | 7808 | graphics/asymptote/coder.cc
+2020/07/07 | 11658 | graphics/asymptote/coder.h
+2020/07/07 | 1126 | graphics/asymptote/coenv.cc
+2020/07/07 | 908 | graphics/asymptote/coenv.h
+2020/07/07 | 1610 | graphics/asymptote/common.h
+2020/07/07 | 48441 | graphics/asymptote/config.guess
+2020/07/07 | 6871 | graphics/asymptote/config.h.in
+2020/07/07 | 31609 | graphics/asymptote/config.sub
+2020/07/07 | 285954 | graphics/asymptote/configure
+2020/07/07 | 14764 | graphics/asymptote/configure.ac
+2020/07/07 | 3673 | graphics/asymptote/constructor.cc
+2020/07/07 | 20866 | graphics/asymptote/dec.cc
+2020/07/07 | 15845 | graphics/asymptote/dec.h
+2020/07/07 | 5897 | graphics/asymptote/Delaunay.cc
+2020/07/07 | 384 | graphics/asymptote/Delaunay.h
+2020/07/07 | 7975 | graphics/asymptote/doc/asy.1
+2020/07/07 | 1005 | graphics/asymptote/doc/asy.1.begin
+2020/07/07 | 333 | graphics/asymptote/doc/asy.1.end
+2020/07/07 | 2800 | graphics/asymptote/doc/asycolors.sty
+2020/07/07 | 18126 | graphics/asymptote/doc/asy-latex.dtx
+2020/07/07 | 194595 | graphics/asymptote/doc/asy-latex.pdf
+2020/07/07 | 1282789 | graphics/asymptote/doc/asymptote.pdf
+2020/07/07 | 9836 | graphics/asymptote/doc/asymptote.sty
+2020/07/07 | 386752 | graphics/asymptote/doc/asymptote.texi
+2020/07/07 | 121144 | graphics/asymptote/doc/asyRefCard.pdf
+2020/07/07 | 20051 | graphics/asymptote/doc/asyRefCard.tex
+2020/07/07 | 246 | graphics/asymptote/doc/axis3.asy
+2020/07/07 | 416 | graphics/asymptote/doc/bezier2.asy
+2020/07/07 | 81 | graphics/asymptote/doc/bezier.asy
+2020/07/07 | 234 | graphics/asymptote/doc/beziercurve.asy
+2020/07/07 | 41 | graphics/asymptote/doc/bigdiagonal.asy
+2020/07/07 | 306 | graphics/asymptote/doc/binarytreetest.asy
+2020/07/07 | 677 | graphics/asymptote/doc/Bode.asy
+2020/07/07 | 524 | graphics/asymptote/doc/brokenaxis.asy
+2020/07/07 | 1391 | graphics/asymptote/doc/CAD1.asy
+2020/07/07 | 186207 | graphics/asymptote/doc/CAD.pdf
+2020/07/07 | 10196 | graphics/asymptote/doc/CAD.tex
+2020/07/07 | 492 | graphics/asymptote/doc/CDlabel.asy
+2020/07/07 | 4348 | graphics/asymptote/doc/colo-asy.tex
+2020/07/07 | 49 | graphics/asymptote/doc/colons.asy
+2020/07/07 | 1620 | graphics/asymptote/doc/colors.asy
+2020/07/07 | 243 | graphics/asymptote/doc/cube.asy
+2020/07/07 | 86 | graphics/asymptote/doc/cylinderskeleton.asy
+2020/07/07 | 218 | graphics/asymptote/doc/datagraph.asy
+2020/07/07 | 24 | graphics/asymptote/doc/diagonal.asy
+2020/07/07 | 2882 | graphics/asymptote/doc/diatom.asy
+2020/07/07 | 4067 | graphics/asymptote/doc/diatom.csv
+2020/07/07 | 49 | graphics/asymptote/doc/dots.asy
+2020/07/07 | 1051 | graphics/asymptote/doc/eetomumu.asy
+2020/07/07 | 2039 | graphics/asymptote/doc/elliptic.asy
+2020/07/07 | 912 | graphics/asymptote/doc/errorbars.asy
+2020/07/07 | 202 | graphics/asymptote/doc/exp.asy
+2020/07/07 | 343 | graphics/asymptote/doc/externalprc.tex
+2020/07/07 | 19597 | graphics/asymptote/doc/external-proposal.html
+2020/07/07 | 25137 | graphics/asymptote/doc/extra/intro.asy
+2020/07/07 | 40764 | graphics/asymptote/doc/FAQ/asy-faq.bfnn
+2020/07/07 | 63140 | graphics/asymptote/doc/FAQ/asy-faq.info
+2020/07/07 | 9202 | graphics/asymptote/doc/FAQ/bfnnconv.pl
+2020/07/07 | 13663 | graphics/asymptote/doc/FAQ/install-sh
+2020/07/07 | 1000 | graphics/asymptote/doc/FAQ/Makefile
+2020/07/07 | 4718 | graphics/asymptote/doc/FAQ/m-ascii.pl
+2020/07/07 | 9725 | graphics/asymptote/doc/FAQ/m-html.pl
+2020/07/07 | 5627 | graphics/asymptote/doc/FAQ/m-info.pl
+2020/07/07 | 6104 | graphics/asymptote/doc/FAQ/m-lout.pl
+2020/07/07 | 4578 | graphics/asymptote/doc/FAQ/m-post.pl
+2020/07/07 | 238 | graphics/asymptote/doc/filegraph.asy
+2020/07/07 | 26 | graphics/asymptote/doc/filegraph.dat
+2020/07/07 | 604 | graphics/asymptote/doc/flow.asy
+2020/07/07 | 862 | graphics/asymptote/doc/flowchartdemo.asy
+2020/07/07 | 464 | graphics/asymptote/doc/GaussianSurface.asy
+2020/07/07 | 376 | graphics/asymptote/doc/generalaxis3.asy
+2020/07/07 | 277 | graphics/asymptote/doc/generalaxis.asy
+2020/07/07 | 754 | graphics/asymptote/doc/graphmarkers.asy
+2020/07/07 | 426 | graphics/asymptote/doc/grid3xyz.asy
+2020/07/07 | 279 | graphics/asymptote/doc/hatch.asy
+2020/07/07 | 423 | graphics/asymptote/doc/helix.asy
+2020/07/07 | 330 | graphics/asymptote/doc/HermiteSpline.asy
+2020/07/07 | 441 | graphics/asymptote/doc/histogram.asy
+2020/07/07 | 521 | graphics/asymptote/doc/Hobbycontrol.asy
+2020/07/07 | 500 | graphics/asymptote/doc/Hobbydir.asy
+2020/07/07 | 380 | graphics/asymptote/doc/icon.asy
+2020/07/07 | 401 | graphics/asymptote/doc/image.asy
+2020/07/07 | 872 | graphics/asymptote/doc/imagecontour.asy
+2020/07/07 | 13663 | graphics/asymptote/doc/install-sh
+2020/07/07 | 357 | graphics/asymptote/doc/irregularcontour.asy
+2020/07/07 | 442 | graphics/asymptote/doc/join3.asy
+2020/07/07 | 261 | graphics/asymptote/doc/join.asy
+2020/07/07 | 417 | graphics/asymptote/doc/knots.asy
+2020/07/07 | 121 | graphics/asymptote/doc/labelsquare.asy
+2020/07/07 | 144 | graphics/asymptote/doc/latexmkrc
+2020/07/07 | 150 | graphics/asymptote/doc/latexmkrc_asydir
+2020/07/07 | 3106 | graphics/asymptote/doc/latexusage.tex
+2020/07/07 | 1025 | graphics/asymptote/doc/leastsquares.asy
+2020/07/07 | 6318 | graphics/asymptote/doc/leastsquares.dat
+2020/07/07 | 410 | graphics/asymptote/doc/legend.asy
+2020/07/07 | 366 | graphics/asymptote/doc/lineargraph0.asy
+2020/07/07 | 373 | graphics/asymptote/doc/lineargraph.asy
+2020/07/07 | 416 | graphics/asymptote/doc/linetype.asy
+2020/07/07 | 423 | graphics/asymptote/doc/log2graph.asy
+2020/07/07 | 262 | graphics/asymptote/doc/loggraph.asy
+2020/07/07 | 382 | graphics/asymptote/doc/loggrid.asy
+2020/07/07 | 480 | graphics/asymptote/doc/logimage.asy
+2020/07/07 | 619 | graphics/asymptote/doc/logo.asy
+2020/07/07 | 314 | graphics/asymptote/doc/logticks.asy
+2020/07/07 | 3023 | graphics/asymptote/doc/Makefile.in
+2020/07/07 | 293 | graphics/asymptote/doc/makepen.asy
+2020/07/07 | 2653 | graphics/asymptote/doc/markers1.asy
+2020/07/07 | 877 | graphics/asymptote/doc/markers2.asy
+2020/07/07 | 288 | graphics/asymptote/doc/mexicanhat.asy
+2020/07/07 | 374 | graphics/asymptote/doc/monthaxis.asy
+2020/07/07 | 458 | graphics/asymptote/doc/multicontour.asy
+2020/07/07 | 3497 | graphics/asymptote/doc/ocg.sty
+2020/07/07 | 115 | graphics/asymptote/doc/onecontour.asy
+2020/07/07 | 240 | graphics/asymptote/doc/parametricgraph.asy
+2020/07/07 | 498 | graphics/asymptote/doc/penfunctionimage.asy
+2020/07/07 | 219 | graphics/asymptote/doc/penimage.asy
+2020/07/07 | 2771 | graphics/asymptote/doc/pixel.pdf
+2020/07/07 | 354 | graphics/asymptote/doc/planes.asy
+2020/07/07 | 463387 | graphics/asymptote/doc/png/asymptote.info
+2020/07/07 | 1469 | graphics/asymptote/doc/png/Makefile.in
+2020/07/07 | 49 | graphics/asymptote/doc/quartercircle.asy
+2020/07/07 | 354 | graphics/asymptote/doc/reloadpdf.tex
+2020/07/07 | 157 | graphics/asymptote/doc/saddle.asy
+2020/07/07 | 355 | graphics/asymptote/doc/scaledgraph.asy
+2020/07/07 | 821 | graphics/asymptote/doc/secondaryaxis.asy
+2020/07/07 | 48847 | graphics/asymptote/doc/secondaryaxis.csv
+2020/07/07 | 256 | graphics/asymptote/doc/shadedtiling.asy
+2020/07/07 | 154 | graphics/asymptote/doc/slopefield1.asy
+2020/07/07 | 52 | graphics/asymptote/doc/square.asy
+2020/07/07 | 341 | graphics/asymptote/doc/subpictures.asy
+2020/07/07 | 123 | graphics/asymptote/doc/superpath.asy
+2020/07/07 | 76935 | graphics/asymptote/doc/TeXShopAndAsymptote.pdf
+2020/07/07 | 2653 | graphics/asymptote/doc/TeXShopAndAsymptote.tex
+2020/07/07 | 390 | graphics/asymptote/doc/tile.asy
+2020/07/07 | 396 | graphics/asymptote/doc/triangulate.asy
+2020/07/07 | 186 | graphics/asymptote/doc/unitcircle3.asy
+2020/07/07 | 147 | graphics/asymptote/doc/vectorfield.asy
+2020/07/07 | 1746 | graphics/asymptote/doc/westnile.asy
+2020/07/07 | 4727 | graphics/asymptote/doc/westnile.csv
+2020/07/07 | 880 | graphics/asymptote/doc/xasy.1x
+2020/07/07 | 1878 | graphics/asymptote/drawclipbegin.h
+2020/07/07 | 1213 | graphics/asymptote/drawclipend.h
+2020/07/07 | 11384 | graphics/asymptote/drawelement.h
+2020/07/07 | 4619 | graphics/asymptote/drawfill.cc
+2020/07/07 | 6625 | graphics/asymptote/drawfill.h
+2020/07/07 | 496 | graphics/asymptote/drawgrestore.h
+2020/07/07 | 2924 | graphics/asymptote/drawgroup.h
+2020/07/07 | 466 | graphics/asymptote/drawgsave.h
+2020/07/07 | 3042 | graphics/asymptote/drawimage.h
+2020/07/07 | 6865 | graphics/asymptote/drawlabel.cc
+2020/07/07 | 2163 | graphics/asymptote/drawlabel.h
+2020/07/07 | 773 | graphics/asymptote/drawlayer.h
+2020/07/07 | 5633 | graphics/asymptote/drawpath3.cc
+2020/07/07 | 5931 | graphics/asymptote/drawpath3.h
+2020/07/07 | 3522 | graphics/asymptote/drawpath.cc
+2020/07/07 | 674 | graphics/asymptote/drawpath.h
+2020/07/07 | 23876 | graphics/asymptote/drawsurface.cc
+2020/07/07 | 20202 | graphics/asymptote/drawsurface.h
+2020/07/07 | 1279 | graphics/asymptote/drawverbatim.h
+2020/07/07 | 20738 | graphics/asymptote/entry.cc
+2020/07/07 | 14795 | graphics/asymptote/entry.h
+2020/07/07 | 5465 | graphics/asymptote/env.cc
+2020/07/07 | 1142 | graphics/asymptote/envcompleter.cc
+2020/07/07 | 845 | graphics/asymptote/envcompleter.h
+2020/07/07 | 4575 | graphics/asymptote/env.h
+2020/07/07 | 10632 | graphics/asymptote/EnvVarUpdate.nsh
+2020/07/07 | 1753 | graphics/asymptote/errormsg.cc
+2020/07/07 | 5098 | graphics/asymptote/errormsg.h
+2020/07/07 | 9251 | graphics/asymptote/errors
+2020/07/07 | 6911 | graphics/asymptote/errortest.asy
+2020/07/07 | 657 | graphics/asymptote/examples/100d.views
+2020/07/07 | 309 | graphics/asymptote/examples/1overx.asy
+2020/07/07 | 4158 | graphics/asymptote/examples/advection.asy
+2020/07/07 | 245 | graphics/asymptote/examples/alignbox.asy
+2020/07/07 | 2832 | graphics/asymptote/examples/alignedaxis.asy
+2020/07/07 | 946 | graphics/asymptote/examples/animations/cube.asy
+2020/07/07 | 160672 | graphics/asymptote/examples/animations/dice.u3d
+2020/07/07 | 1919 | graphics/asymptote/examples/animations/earthmoon.asy
+2020/07/07 | 503 | graphics/asymptote/examples/animations/embeddedmovie.asy
+2020/07/07 | 196 | graphics/asymptote/examples/animations/embeddedu3d.asy
+2020/07/07 | 411 | graphics/asymptote/examples/animations/externalmovie.asy
+2020/07/07 | 414 | graphics/asymptote/examples/animations/glmovie.asy
+2020/07/07 | 1760 | graphics/asymptote/examples/animations/heatequation.asy
+2020/07/07 | 1037 | graphics/asymptote/examples/animations/inlinemovie3.tex
+2020/07/07 | 1235 | graphics/asymptote/examples/animations/inlinemovie.tex
+2020/07/07 | 326 | graphics/asymptote/examples/animations/pdfmovie.asy
+2020/07/07 | 1238 | graphics/asymptote/examples/animations/slidemovies.asy
+2020/07/07 | 856 | graphics/asymptote/examples/animations/sphere.asy
+2020/07/07 | 798 | graphics/asymptote/examples/animations/torusanimation.asy
+2020/07/07 | 1498 | graphics/asymptote/examples/animations/wavepacket.asy
+2020/07/07 | 1120 | graphics/asymptote/examples/animations/wheel.asy
+2020/07/07 | 236 | graphics/asymptote/examples/annotation.asy
+2020/07/07 | 1240 | graphics/asymptote/examples/arrows3.asy
+2020/07/07 | 61 | graphics/asymptote/examples/axialshade.asy
+2020/07/07 | 497 | graphics/asymptote/examples/bars3.asy
+2020/07/07 | 1033 | graphics/asymptote/examples/basealign.asy
+2020/07/07 | 395 | graphics/asymptote/examples/BezierPatch.asy
+2020/07/07 | 581 | graphics/asymptote/examples/BezierSaddle.asy
+2020/07/07 | 1526 | graphics/asymptote/examples/BezierSurface.asy
+2020/07/07 | 199 | graphics/asymptote/examples/BezierTriangle.asy
+2020/07/07 | 154 | graphics/asymptote/examples/billboard.asy
+2020/07/07 | 513 | graphics/asymptote/examples/buildcycle.asy
+2020/07/07 | 233 | graphics/asymptote/examples/cardioid.asy
+2020/07/07 | 485 | graphics/asymptote/examples/cards.asy
+2020/07/07 | 691 | graphics/asymptote/examples/centroidfg.asy
+2020/07/07 | 322 | graphics/asymptote/examples/cheese.asy
+2020/07/07 | 576 | graphics/asymptote/examples/circles.asy
+2020/07/07 | 228 | graphics/asymptote/examples/circumcircle.asy
+2020/07/07 | 762 | graphics/asymptote/examples/clockarray.asy
+2020/07/07 | 264 | graphics/asymptote/examples/coag.asy
+2020/07/07 | 424 | graphics/asymptote/examples/colorpatch.asy
+2020/07/07 | 465 | graphics/asymptote/examples/colorplanes.asy
+2020/07/07 | 739 | graphics/asymptote/examples/condor.asy
+2020/07/07 | 495 | graphics/asymptote/examples/cones.asy
+2020/07/07 | 1780 | graphics/asymptote/examples/conicurv.asy
+2020/07/07 | 255 | graphics/asymptote/examples/contextfonts.asy
+2020/07/07 | 778 | graphics/asymptote/examples/controlsystem.asy
+2020/07/07 | 123 | graphics/asymptote/examples/Coons.asy
+2020/07/07 | 235 | graphics/asymptote/examples/cos2theta.asy
+2020/07/07 | 582 | graphics/asymptote/examples/cos3.asy
+2020/07/07 | 461 | graphics/asymptote/examples/cosaddition.asy
+2020/07/07 | 5740 | graphics/asymptote/examples/cpkcolors.asy
+2020/07/07 | 573 | graphics/asymptote/examples/curvedlabel3.asy
+2020/07/07 | 177 | graphics/asymptote/examples/curvedlabel.asy
+2020/07/07 | 1835 | graphics/asymptote/examples/cyclohexane.asy
+2020/07/07 | 352 | graphics/asymptote/examples/cylinder.asy
+2020/07/07 | 506 | graphics/asymptote/examples/delu.asy
+2020/07/07 | 521 | graphics/asymptote/examples/dimension.asy
+2020/07/07 | 1216 | graphics/asymptote/examples/dragon.asy
+2020/07/07 | 1326 | graphics/asymptote/examples/electromagnetic.asy
+2020/07/07 | 325 | graphics/asymptote/examples/elevation.asy
+2020/07/07 | 398 | graphics/asymptote/examples/epix.asy
+2020/07/07 | 242 | graphics/asymptote/examples/equilateral.asy
+2020/07/07 | 549 | graphics/asymptote/examples/equilchord.asy
+2020/07/07 | 579 | graphics/asymptote/examples/exp3.asy
+2020/07/07 | 519 | graphics/asymptote/examples/extrudedcontour.asy
+2020/07/07 | 498 | graphics/asymptote/examples/fano.asy
+2020/07/07 | 972 | graphics/asymptote/examples/fequlogo.asy
+2020/07/07 | 727 | graphics/asymptote/examples/fermi.asy
+2020/07/07 | 971 | graphics/asymptote/examples/filesurface.asy
+2020/07/07 | 5543 | graphics/asymptote/examples/filesurface.dat
+2020/07/07 | 574 | graphics/asymptote/examples/fillcontour.asy
+2020/07/07 | 4203 | graphics/asymptote/examples/fin.asy
+2020/07/07 | 710 | graphics/asymptote/examples/fjortoft.asy
+2020/07/07 | 581 | graphics/asymptote/examples/floatingdisk.asy
+2020/07/07 | 502 | graphics/asymptote/examples/floor.asy
+2020/07/07 | 683 | graphics/asymptote/examples/fractaltree.asy
+2020/07/07 | 1185 | graphics/asymptote/examples/functionshading.asy
+2020/07/07 | 499 | graphics/asymptote/examples/galleon.asy
+2020/07/07 | 714 | graphics/asymptote/examples/gamma3.asy
+2020/07/07 | 440 | graphics/asymptote/examples/gamma.asy
+2020/07/07 | 679 | graphics/asymptote/examples/genusthree.asy
+2020/07/07 | 1136 | graphics/asymptote/examples/genustwo.asy
+2020/07/07 | 383 | graphics/asymptote/examples/Gouraud.asy
+2020/07/07 | 616 | graphics/asymptote/examples/Gouraudcontour.asy
+2020/07/07 | 76 | graphics/asymptote/examples/grid.asy
+2020/07/07 | 459 | graphics/asymptote/examples/hierarchy.asy
+2020/07/07 | 315 | graphics/asymptote/examples/hyperboloid.asy
+2020/07/07 | 267 | graphics/asymptote/examples/hyperboloidsilhouette.asy
+2020/07/07 | 1140 | graphics/asymptote/examples/imagehistogram.asy
+2020/07/07 | 610 | graphics/asymptote/examples/impact.asy
+2020/07/07 | 605 | graphics/asymptote/examples/integraltest.asy
+2020/07/07 | 4825 | graphics/asymptote/examples/interpolate1.asy
+2020/07/07 | 291 | graphics/asymptote/examples/jump.asy
+2020/07/07 | 1309 | graphics/asymptote/examples/Klein.asy
+2020/07/07 | 182 | graphics/asymptote/examples/label3.asy
+2020/07/07 | 196 | graphics/asymptote/examples/label3ribbon.asy
+2020/07/07 | 187 | graphics/asymptote/examples/label3solid.asy
+2020/07/07 | 546 | graphics/asymptote/examples/label3zoom.asy
+2020/07/07 | 264 | graphics/asymptote/examples/labelbox.asy
+2020/07/07 | 1114 | graphics/asymptote/examples/laserlattice.asy
+2020/07/07 | 136 | graphics/asymptote/examples/latticeshading.asy
+2020/07/07 | 688 | graphics/asymptote/examples/layers.asy
+2020/07/07 | 460 | graphics/asymptote/examples/lever.asy
+2020/07/07 | 654 | graphics/asymptote/examples/limit.asy
+2020/07/07 | 1908 | graphics/asymptote/examples/linearregression.asy
+2020/07/07 | 168 | graphics/asymptote/examples/lines.asy
+2020/07/07 | 980 | graphics/asymptote/examples/lmfit1.asy
+2020/07/07 | 206 | graphics/asymptote/examples/log.asy
+2020/07/07 | 349 | graphics/asymptote/examples/logdown.asy
+2020/07/07 | 1231 | graphics/asymptote/examples/logo3.asy
+2020/07/07 | 196 | graphics/asymptote/examples/lowint.asy
+2020/07/07 | 659 | graphics/asymptote/examples/lowupint.asy
+2020/07/07 | 479 | graphics/asymptote/examples/magnetic.asy
+2020/07/07 | 833 | graphics/asymptote/examples/markregular.asy
+2020/07/07 | 1950 | graphics/asymptote/examples/mergeExample.asy
+2020/07/07 | 5258 | graphics/asymptote/examples/mosaic.asy
+2020/07/07 | 2512 | graphics/asymptote/examples/mosquito.asy
+2020/07/07 | 1569 | graphics/asymptote/examples/near_earth.asy
+2020/07/07 | 649 | graphics/asymptote/examples/NURBScurve.asy
+2020/07/07 | 1020 | graphics/asymptote/examples/NURBSsphere.asy
+2020/07/07 | 1461 | graphics/asymptote/examples/NURBSsurface.asy
+2020/07/07 | 1251 | graphics/asymptote/examples/odetest.asy
+2020/07/07 | 309 | graphics/asymptote/examples/oneoverx.asy
+2020/07/07 | 861 | graphics/asymptote/examples/orthocenter.asy
+2020/07/07 | 254 | graphics/asymptote/examples/parametricelevation.asy
+2020/07/07 | 407 | graphics/asymptote/examples/parametricsurface.asy
+2020/07/07 | 711 | graphics/asymptote/examples/partialsurface.asy
+2020/07/07 | 1055 | graphics/asymptote/examples/partitionExample.asy
+2020/07/07 | 419 | graphics/asymptote/examples/pathintersectsurface.asy
+2020/07/07 | 3344 | graphics/asymptote/examples/pdb.asy
+2020/07/07 | 361 | graphics/asymptote/examples/phase.asy
+2020/07/07 | 22873 | graphics/asymptote/examples/piicon.png
+2020/07/07 | 362 | graphics/asymptote/examples/pipeintersection.asy
+2020/07/07 | 3873 | graphics/asymptote/examples/pipes.asy
+2020/07/07 | 418 | graphics/asymptote/examples/planeproject.asy
+2020/07/07 | 930 | graphics/asymptote/examples/polararea.asy
+2020/07/07 | 628 | graphics/asymptote/examples/polarcircle.asy
+2020/07/07 | 326 | graphics/asymptote/examples/polardatagraph.asy
+2020/07/07 | 643 | graphics/asymptote/examples/p-orbital.asy
+2020/07/07 | 956 | graphics/asymptote/examples/poster.asy
+2020/07/07 | 58 | graphics/asymptote/examples/progrid.asy
+2020/07/07 | 373 | graphics/asymptote/examples/projectelevation.asy
+2020/07/07 | 438 | graphics/asymptote/examples/projectrevolution.asy
+2020/07/07 | 747 | graphics/asymptote/examples/pseudosphere.asy
+2020/07/07 | 557 | graphics/asymptote/examples/Pythagoras.asy
+2020/07/07 | 420 | graphics/asymptote/examples/PythagoreanTree.asy
+2020/07/07 | 734 | graphics/asymptote/examples/quilt.asy
+2020/07/07 | 325 | graphics/asymptote/examples/rainbow.asy
+2020/07/07 | 78 | graphics/asymptote/examples/randompath3.asy
+2020/07/07 | 1537 | graphics/asymptote/examples/refs.bib
+2020/07/07 | 993 | graphics/asymptote/examples/RiemannSphere.asy
+2020/07/07 | 369 | graphics/asymptote/examples/RiemannSurface.asy
+2020/07/07 | 386 | graphics/asymptote/examples/RiemannSurfaceRoot.asy
+2020/07/07 | 141 | graphics/asymptote/examples/ring.asy
+2020/07/07 | 182 | graphics/asymptote/examples/roll.asy
+2020/07/07 | 1310 | graphics/asymptote/examples/roundpath.asy
+2020/07/07 | 288 | graphics/asymptote/examples/sacone3D.asy
+2020/07/07 | 445 | graphics/asymptote/examples/sacone.asy
+2020/07/07 | 341 | graphics/asymptote/examples/sacylinder3D.asy
+2020/07/07 | 400 | graphics/asymptote/examples/sacylinder.asy
+2020/07/07 | 66 | graphics/asymptote/examples/shade.asy
+2020/07/07 | 104 | graphics/asymptote/examples/shadestroke.asy
+2020/07/07 | 1065 | graphics/asymptote/examples/shellmethod.asy
+2020/07/07 | 829 | graphics/asymptote/examples/shellsqrtx01.asy
+2020/07/07 | 410 | graphics/asymptote/examples/Sierpinski.asy
+2020/07/07 | 849 | graphics/asymptote/examples/SierpinskiGasket.asy
+2020/07/07 | 2361 | graphics/asymptote/examples/SierpinskiSponge.asy
+2020/07/07 | 327 | graphics/asymptote/examples/sin1x.asy
+2020/07/07 | 579 | graphics/asymptote/examples/sin3.asy
+2020/07/07 | 591 | graphics/asymptote/examples/sinc.asy
+2020/07/07 | 385 | graphics/asymptote/examples/sinxlex.asy
+2020/07/07 | 3340 | graphics/asymptote/examples/slidedemo.asy
+2020/07/07 | 341 | graphics/asymptote/examples/slidedemo_.bbl
+2020/07/07 | 2043 | graphics/asymptote/examples/slope.asy
+2020/07/07 | 520 | graphics/asymptote/examples/smoothelevation.asy
+2020/07/07 | 2678 | graphics/asymptote/examples/soccerball.asy
+2020/07/07 | 2362 | graphics/asymptote/examples/spectrum.asy
+2020/07/07 | 141 | graphics/asymptote/examples/sphere.asy
+2020/07/07 | 150 | graphics/asymptote/examples/spheresilhouette.asy
+2020/07/07 | 165 | graphics/asymptote/examples/sphereskeleton.asy
+2020/07/07 | 376 | graphics/asymptote/examples/sphericalharmonic.asy
+2020/07/07 | 426 | graphics/asymptote/examples/spiral3.asy
+2020/07/07 | 210 | graphics/asymptote/examples/spiral.asy
+2020/07/07 | 618 | graphics/asymptote/examples/spline.asy
+2020/07/07 | 2180 | graphics/asymptote/examples/splitpatch.asy
+2020/07/07 | 38 | graphics/asymptote/examples/spring0.asy
+2020/07/07 | 43 | graphics/asymptote/examples/spring2.asy
+2020/07/07 | 671 | graphics/asymptote/examples/spring.asy
+2020/07/07 | 674 | graphics/asymptote/examples/sqrtx01.asy
+2020/07/07 | 579 | graphics/asymptote/examples/sqrtx01y1.asy
+2020/07/07 | 145 | graphics/asymptote/examples/star.asy
+2020/07/07 | 170 | graphics/asymptote/examples/stereoscopic.asy
+2020/07/07 | 59 | graphics/asymptote/examples/stroke3.asy
+2020/07/07 | 315 | graphics/asymptote/examples/strokepath.asy
+2020/07/07 | 168 | graphics/asymptote/examples/strokeshade.asy
+2020/07/07 | 198 | graphics/asymptote/examples/tanh.asy
+2020/07/07 | 13739 | graphics/asymptote/examples/teapot.asy
+2020/07/07 | 303 | graphics/asymptote/examples/tensor.asy
+2020/07/07 | 547 | graphics/asymptote/examples/tetra.asy
+2020/07/07 | 312 | graphics/asymptote/examples/textpath.asy
+2020/07/07 | 10210 | graphics/asymptote/examples/thermodynamics.asy
+2020/07/07 | 576 | graphics/asymptote/examples/threeviews.asy
+2020/07/07 | 104 | graphics/asymptote/examples/tiling.asy
+2020/07/07 | 413 | graphics/asymptote/examples/torus.asy
+2020/07/07 | 246 | graphics/asymptote/examples/transparency.asy
+2020/07/07 | 250 | graphics/asymptote/examples/transparentCubes.asy
+2020/07/07 | 602 | graphics/asymptote/examples/treetest.asy
+2020/07/07 | 589 | graphics/asymptote/examples/trefoilknot.asy
+2020/07/07 | 969 | graphics/asymptote/examples/triads.asy
+2020/07/07 | 209 | graphics/asymptote/examples/triangle.asy
+2020/07/07 | 441 | graphics/asymptote/examples/triangles.asy
+2020/07/07 | 251 | graphics/asymptote/examples/triceratops.asy
+2020/07/07 | 291 | graphics/asymptote/examples/trumpet.asy
+2020/07/07 | 2084 | graphics/asymptote/examples/truncatedIcosahedron.asy
+2020/07/07 | 40326 | graphics/asymptote/examples/tvgen.asy
+2020/07/07 | 885 | graphics/asymptote/examples/twistedtubes.asy
+2020/07/07 | 26096 | graphics/asymptote/examples/uhrturm.obj
+2020/07/07 | 322 | graphics/asymptote/examples/unitcircle.asy
+2020/07/07 | 430 | graphics/asymptote/examples/unitoctant.asy
+2020/07/07 | 714 | graphics/asymptote/examples/unitoctantx.asy
+2020/07/07 | 199 | graphics/asymptote/examples/upint.asy
+2020/07/07 | 525 | graphics/asymptote/examples/vectorfield3.asy
+2020/07/07 | 351 | graphics/asymptote/examples/vectorfieldsphere.asy
+2020/07/07 | 839 | graphics/asymptote/examples/venn3.asy
+2020/07/07 | 626 | graphics/asymptote/examples/venn.asy
+2020/07/07 | 784 | graphics/asymptote/examples/vertexshading.asy
+2020/07/07 | 360 | graphics/asymptote/examples/washer.asy
+2020/07/07 | 1010 | graphics/asymptote/examples/washermethod.asy
+2020/07/07 | 628 | graphics/asymptote/examples/wedge.asy
+2020/07/07 | 1036 | graphics/asymptote/examples/workcone.asy
+2020/07/07 | 978 | graphics/asymptote/examples/worksheet.asy
+2020/07/07 | 2633 | graphics/asymptote/examples/worldmap.asy
+2020/07/07 | 1261761 | graphics/asymptote/examples/worldmap.dat
+2020/07/07 | 580 | graphics/asymptote/examples/xsin1x.asy
+2020/07/07 | 3746 | graphics/asymptote/examples/xstitch.asy
+2020/07/07 | 743 | graphics/asymptote/examples/xxsq01.asy
+2020/07/07 | 868 | graphics/asymptote/examples/xxsq01x-1.asy
+2020/07/07 | 827 | graphics/asymptote/examples/xxsq01y.asy
+2020/07/07 | 223 | graphics/asymptote/examples/yingyang.asy
+2020/07/07 | 33877 | graphics/asymptote/exp.cc
+2020/07/07 | 28809 | graphics/asymptote/exp.h
+2020/07/07 | 119 | graphics/asymptote/fftw++asy.cc
+2020/07/07 | 1694 | graphics/asymptote/fftw++.cc
+2020/07/07 | 44894 | graphics/asymptote/fftw++.h
+2020/07/07 | 4063 | graphics/asymptote/fileio.cc
+2020/07/07 | 20163 | graphics/asymptote/fileio.h
+2020/07/07 | 1245 | graphics/asymptote/findsym.pl
+2020/07/07 | 1020 | graphics/asymptote/flatguide.cc
+2020/07/07 | 4231 | graphics/asymptote/flatguide.h
+2020/07/07 | 666 | graphics/asymptote/fpu.h
+2020/07/07 | 2173 | graphics/asymptote/frame.h
+2020/07/07 | 7935 | graphics/asymptote/fundec.cc
+2020/07/07 | 4347 | graphics/asymptote/fundec.h
+2020/07/07 | 1160528 | graphics/asymptote/gc-8.0.4.tar.gz
+2020/07/07 | 3161 | graphics/asymptote/genv.cc
+2020/07/07 | 1626 | graphics/asymptote/genv.h
+2020/07/07 | 4520 | graphics/asymptote/getopt1.c
+2020/07/07 | 30147 | graphics/asymptote/getopt.c
+2020/07/07 | 6650 | graphics/asymptote/getopt.h
+2020/07/07 | 202 | graphics/asymptote/glew.c
+2020/07/07 | 1235777 | graphics/asymptote/GL/glew.c
+2020/07/07 | 1186601 | graphics/asymptote/GL/glew.h
+2020/07/07 | 73435 | graphics/asymptote/GL/glxew.h
+2020/07/07 | 76801 | graphics/asymptote/gl-matrix-2.4.0-pruned/dist/gl-matrix.js
+2020/07/07 | 1131 | graphics/asymptote/gl-matrix-2.4.0-pruned/LICENSE.js
+2020/07/07 | 45928 | graphics/asymptote/glrender.cc
+2020/07/07 | 9314 | graphics/asymptote/glrender.h
+2020/07/07 | 63314 | graphics/asymptote/GL/wglew.h
+2020/07/07 | 50697 | graphics/asymptote/gsl.cc
+2020/07/07 | 22 | graphics/asymptote/GUI/configs/__init__.py
+2020/07/07 | 1148 | graphics/asymptote/GUI/configs/xasyconfig.cson
+2020/07/07 | 395 | graphics/asymptote/GUI/configs/xasykeymap.cson
+2020/07/07 | 3503 | graphics/asymptote/GUI/CustMatTransform.py
+2020/07/07 | 131 | graphics/asymptote/GUI/DebugFlags.py
+2020/07/07 | 1175 | graphics/asymptote/guide.cc
+2020/07/07 | 298 | graphics/asymptote/guideflags.h
+2020/07/07 | 6783 | graphics/asymptote/guide.h
+2020/07/07 | 1724 | graphics/asymptote/GUI/GuidesManager.py
+2020/07/07 | 164511 | graphics/asymptote/GUI/icons_rc.py
+2020/07/07 | 23 | graphics/asymptote/GUI/__init__.py
+2020/07/07 | 11528 | graphics/asymptote/GUI/InplaceAddObj.py
+2020/07/07 | 5151 | graphics/asymptote/GUI/labelEditor.py
+2020/07/07 | 700 | graphics/asymptote/GUI/locale/th/LC_MESSAGES/base.po
+2020/07/07 | 2399 | graphics/asymptote/GUI/PrimitiveShape.py
+2020/07/07 | 9945 | graphics/asymptote/GUI/pyUIClass/custMatTransform.py
+2020/07/07 | 6154 | graphics/asymptote/GUI/pyUIClass/labelTextEditor.py
+2020/07/07 | 2825 | graphics/asymptote/GUI/pyUIClass/setCustomAnchor.py
+2020/07/07 | 7129 | graphics/asymptote/GUI/pyUIClass/widg_addLabel.py
+2020/07/07 | 2193 | graphics/asymptote/GUI/pyUIClass/widg_addPolyOpt.py
+2020/07/07 | 4849 | graphics/asymptote/GUI/pyUIClass/widg_editBezier.py
+2020/07/07 | 4668 | graphics/asymptote/GUI/pyUIClass/widgetPointEditor.py
+2020/07/07 | 56646 | graphics/asymptote/GUI/pyUIClass/window1.py
+2020/07/07 | 57 | graphics/asymptote/GUI/requirements.txt
+2020/07/07 | 361 | graphics/asymptote/GUI/res/icons/anchor.svg
+2020/07/07 | 637 | graphics/asymptote/GUI/res/icons/android-arrow-back.svg
+2020/07/07 | 637 | graphics/asymptote/GUI/res/icons/android-arrow-forward.svg
+2020/07/07 | 802 | graphics/asymptote/GUI/res/icons/android-camera.svg
+2020/07/07 | 695 | graphics/asymptote/GUI/res/icons/android-close.svg
+2020/07/07 | 1319 | graphics/asymptote/GUI/res/icons/android-color-palette.svg
+2020/07/07 | 674 | graphics/asymptote/GUI/res/icons/android-delete.svg
+2020/07/07 | 633 | graphics/asymptote/GUI/res/icons/android-done.svg
+2020/07/07 | 822 | graphics/asymptote/GUI/res/icons/android-expand.svg
+2020/07/07 | 850 | graphics/asymptote/GUI/res/icons/android-folder-open.svg
+2020/07/07 | 1482 | graphics/asymptote/GUI/res/icons/android-hand.svg
+2020/07/07 | 1124 | graphics/asymptote/GUI/res/icons/android-locate.svg
+2020/07/07 | 764 | graphics/asymptote/GUI/res/icons/android-radio-button-off.svg
+2020/07/07 | 844 | graphics/asymptote/GUI/res/icons/android-radio-button-on.svg
+2020/07/07 | 806 | graphics/asymptote/GUI/res/icons/android-refresh.svg
+2020/07/07 | 713 | graphics/asymptote/GUI/res/icons/arrow-move.svg
+2020/07/07 | 639 | graphics/asymptote/GUI/res/icons/arrow-resize.svg
+2020/07/07 | 589 | graphics/asymptote/GUI/res/icons/bucket.asy
+2020/07/07 | 1492 | graphics/asymptote/GUI/res/icons/bucket.svg
+2020/07/07 | 111 | graphics/asymptote/GUI/res/icons/center.asy
+2020/07/07 | 124 | graphics/asymptote/GUI/res/icons/centerorigin.asy
+2020/07/07 | 1052 | graphics/asymptote/GUI/res/icons/centerorigin.svg
+2020/07/07 | 892 | graphics/asymptote/GUI/res/icons/center.svg
+2020/07/07 | 780 | graphics/asymptote/GUI/res/icons/check.svg
+2020/07/07 | 1013 | graphics/asymptote/GUI/res/icons/chevron-with-circle-left.svg
+2020/07/07 | 998 | graphics/asymptote/GUI/res/icons/chevron-with-circle-right.svg
+2020/07/07 | 754 | graphics/asymptote/GUI/res/icons/circle.svg
+2020/07/07 | 105 | graphics/asymptote/GUI/res/icons/closedcurve.asy
+2020/07/07 | 1237 | graphics/asymptote/GUI/res/icons/closedcurve.svg
+2020/07/07 | 105 | graphics/asymptote/GUI/res/icons/closedpolygon.asy
+2020/07/07 | 1102 | graphics/asymptote/GUI/res/icons/closedpolygon.svg
+2020/07/07 | 838 | graphics/asymptote/GUI/res/icons/close-round.svg
+2020/07/07 | 1194 | graphics/asymptote/GUI/res/icons/code.svg
+2020/07/07 | 876 | graphics/asymptote/GUI/res/icons/edit.svg
+2020/07/07 | 1003 | graphics/asymptote/GUI/res/icons/eye.svg
+2020/07/07 | 1967 | graphics/asymptote/GUI/res/icons/filledbucket.svg
+2020/07/07 | 1764 | graphics/asymptote/GUI/res/icons/grid.svg
+2020/07/07 | 964 | graphics/asymptote/GUI/res/icons/magnifying-glass.svg
+2020/07/07 | 98 | graphics/asymptote/GUI/res/icons/opencurve.asy
+2020/07/07 | 1186 | graphics/asymptote/GUI/res/icons/opencurve.svg
+2020/07/07 | 98 | graphics/asymptote/GUI/res/icons/openpolygon.asy
+2020/07/07 | 1085 | graphics/asymptote/GUI/res/icons/openpolygon.svg
+2020/07/07 | 759 | graphics/asymptote/GUI/res/icons/plus-round.svg
+2020/07/07 | 1711 | graphics/asymptote/GUI/res/icons.qrc
+2020/07/07 | 673 | graphics/asymptote/GUI/res/icons/save.svg
+2020/07/07 | 1920 | graphics/asymptote/GUI/res/icons/social-python.svg
+2020/07/07 | 108 | graphics/asymptote/GUI/res/icons/subdirectory-left.svg
+2020/07/07 | 284 | graphics/asymptote/GUI/res/icons/text.svg
+2020/07/07 | 1226 | graphics/asymptote/GUI/res/icons/triangle-stroked-15.svg
+2020/07/07 | 1393 | graphics/asymptote/GUI/SetCustomAnchor.py
+2020/07/07 | 394 | graphics/asymptote/GUI/setup.py
+2020/07/07 | 3616 | graphics/asymptote/GUI/UndoRedoStack.py
+2020/07/07 | 3249 | graphics/asymptote/GUI/Widg_addLabel.py
+2020/07/07 | 883 | graphics/asymptote/GUI/Widg_addPolyOpt.py
+2020/07/07 | 1665 | graphics/asymptote/GUI/Widg_editBezier.py
+2020/07/07 | 72687 | graphics/asymptote/GUI/Window1.py
+2020/07/07 | 10271 | graphics/asymptote/GUI/windows/custMatTransform.ui
+2020/07/07 | 6552 | graphics/asymptote/GUI/windows/labelTextEditor.ui
+2020/07/07 | 2631 | graphics/asymptote/GUI/windows/setCustomAnchor.ui
+2020/07/07 | 6896 | graphics/asymptote/GUI/windows/widg_addLabel.ui
+2020/07/07 | 2148 | graphics/asymptote/GUI/windows/widg_addPolyOpt.ui
+2020/07/07 | 4474 | graphics/asymptote/GUI/windows/widg_editBezier.ui
+2020/07/07 | 4166 | graphics/asymptote/GUI/windows/widgetPointEditor.ui
+2020/07/07 | 75576 | graphics/asymptote/GUI/windows/window1.ui
+2020/07/07 | 50492 | graphics/asymptote/GUI/xasy2asy.py
+2020/07/07 | 821 | graphics/asymptote/GUI/xasyArgs.py
+2020/07/07 | 13550 | graphics/asymptote/GUI/xasyBezierInterface.py
+2020/07/07 | 2554 | graphics/asymptote/GUI/xasyFile.py
+2020/07/07 | 5048 | graphics/asymptote/GUI/xasyOptions.py
+2020/07/07 | 503 | graphics/asymptote/GUI/xasy.py
+2020/07/07 | 599 | graphics/asymptote/GUI/xasyStrings.py
+2020/07/07 | 710 | graphics/asymptote/GUI/xasySvg.py
+2020/07/07 | 964 | graphics/asymptote/GUI/xasyTransform.py
+2020/07/07 | 1504 | graphics/asymptote/GUI/xasyUtils.py
+2020/07/07 | 238 | graphics/asymptote/GUI/xasyValidator.py
+2020/07/07 | 12744 | graphics/asymptote/impdatum.cc
+2020/07/07 | 10445 | graphics/asymptote/INSTALL
+2020/07/07 | 15645 | graphics/asymptote/install-sh
+2020/07/07 | 1986 | graphics/asymptote/inst.h
+2020/07/07 | 5538 | graphics/asymptote/interact.cc
+2020/07/07 | 1349 | graphics/asymptote/interact.h
+2020/07/07 | 5857 | graphics/asymptote/item.h
+2020/07/07 | 9771 | graphics/asymptote/jsfile.cc
+2020/07/07 | 2104 | graphics/asymptote/jsfile.h
+2020/07/07 | 609 | graphics/asymptote/keywords.cc
+2020/07/07 | 1253 | graphics/asymptote/keywords.pl
+2020/07/07 | 22355 | graphics/asymptote/knot.cc
+2020/07/07 | 12300 | graphics/asymptote/knot.h
+2020/07/07 | 345 | graphics/asymptote/lexical.h
+2020/07/07 | 83431 | graphics/asymptote/lex.yy.cc
+2020/07/07 | 503734 | graphics/asymptote/libatomic_ops-7.6.10.tar.gz
+2020/07/07 | 35147 | graphics/asymptote/LICENSE
+2020/07/07 | 7639 | graphics/asymptote/LICENSE.LESSER
+2020/07/07 | 2766 | graphics/asymptote/lnkX64IconFix.nsh
+2020/07/07 | 2197 | graphics/asymptote/locate.cc
+2020/07/07 | 577 | graphics/asymptote/locate.h
+2020/07/07 | 5424 | graphics/asymptote/main.cc
+2020/07/07 | 11604 | graphics/asymptote/Makefile.in
+2020/07/07 | 2632 | graphics/asymptote/material.h
+2020/07/07 | 6425 | graphics/asymptote/mathop.h
+2020/07/07 | 5070 | graphics/asymptote/memory.h
+2020/07/07 | 720 | graphics/asymptote/mod.h
+2020/07/07 | 908 | graphics/asymptote/modifier.h
+2020/07/07 | 7445 | graphics/asymptote/name.cc
+2020/07/07 | 5239 | graphics/asymptote/name.h
+2020/07/07 | 4269 | graphics/asymptote/newexp.cc
+2020/07/07 | 1278 | graphics/asymptote/newexp.h
+2020/07/07 | 917 | graphics/asymptote/opcodes.h
+2020/07/07 | 1050 | graphics/asymptote/opsymbols.pl
+2020/07/07 | 5145 | graphics/asymptote/pair.h
+2020/07/07 | 3498 | graphics/asymptote/parser.cc
+2020/07/07 | 852 | graphics/asymptote/parser.h
+2020/07/07 | 5262 | graphics/asymptote/patches/bison.patch
+2020/07/07 | 1805 | graphics/asymptote/patches/cygwin_freeglut-3.0.0.patch
+2020/07/07 | 1311 | graphics/asymptote/patches/dvipdf
+2020/07/07 | 113 | graphics/asymptote/patches/fixmem.reg
+2020/07/07 | 1524 | graphics/asymptote/patches/flex.patch
+2020/07/07 | 271 | graphics/asymptote/patches/gc6.8_AIX.patch
+2020/07/07 | 489 | graphics/asymptote/patches/gc-7.0nomem.patch
+2020/07/07 | 318 | graphics/asymptote/patches/gcc3.3.2curses.patch
+2020/07/07 | 19462 | graphics/asymptote/patches/gl-matrix-2.4.0-pruned.patch
+2020/07/07 | 1082 | graphics/asymptote/patches/README
+2020/07/07 | 38217 | graphics/asymptote/path3.cc
+2020/07/07 | 10604 | graphics/asymptote/path3.h
+2020/07/07 | 34126 | graphics/asymptote/path.cc
+2020/07/07 | 11680 | graphics/asymptote/path.h
+2020/07/07 | 1594 | graphics/asymptote/pen.cc
+2020/07/07 | 28156 | graphics/asymptote/pen.h
+2020/07/07 | 40864 | graphics/asymptote/picture.cc
+2020/07/07 | 3514 | graphics/asymptote/picture.h
+2020/07/07 | 5248 | graphics/asymptote/pipestream.cc
+2020/07/07 | 2624 | graphics/asymptote/pipestream.h
+2020/07/07 | 138 | graphics/asymptote/Pipfile
+2020/07/07 | 2526 | graphics/asymptote/policy.h
+2020/07/07 | 654 | graphics/asymptote/prcfile.h
+2020/07/07 | 974 | graphics/asymptote/prc/Makefile
+2020/07/07 | 70751 | graphics/asymptote/prc/oPRCFile.cc
+2020/07/07 | 51432 | graphics/asymptote/prc/oPRCFile.h
+2020/07/07 | 8371 | graphics/asymptote/prc/PRCbitStream.cc
+2020/07/07 | 2518 | graphics/asymptote/prc/PRCbitStream.h
+2020/07/07 | 177246 | graphics/asymptote/prc/PRCdouble.cc
+2020/07/07 | 3765 | graphics/asymptote/prc/PRCdouble.h
+2020/07/07 | 30208 | graphics/asymptote/prc/PRC.h
+2020/07/07 | 6021 | graphics/asymptote/prc/PRCTools/bitData.cc
+2020/07/07 | 1860 | graphics/asymptote/prc/PRCTools/bitData.h
+2020/07/07 | 1927 | graphics/asymptote/prc/PRCTools/bitSearchDouble.cc
+2020/07/07 | 1863 | graphics/asymptote/prc/PRCTools/bitSearchUI.cc
+2020/07/07 | 1245 | graphics/asymptote/prc/PRCTools/describeMain.cc
+2020/07/07 | 68126 | graphics/asymptote/prc/PRCTools/describePRC.cc
+2020/07/07 | 4335 | graphics/asymptote/prc/PRCTools/describePRC.h
+2020/07/07 | 1310 | graphics/asymptote/prc/PRCTools/extractSections.cc
+2020/07/07 | 2276 | graphics/asymptote/prc/PRCTools/inflation.cc
+2020/07/07 | 1051 | graphics/asymptote/prc/PRCTools/inflation.h
+2020/07/07 | 1479 | graphics/asymptote/prc/PRCTools/inflationMain.cc
+2020/07/07 | 8792 | graphics/asymptote/prc/PRCTools/iPRCFile.cc
+2020/07/07 | 2341 | graphics/asymptote/prc/PRCTools/iPRCFile.h
+2020/07/07 | 1658 | graphics/asymptote/prc/PRCTools/Makefile
+2020/07/07 | 4716 | graphics/asymptote/prc/PRCTools/makePRC.cc
+2020/07/07 | 95 | graphics/asymptote/prc/test.asy
+2020/07/07 | 36243 | graphics/asymptote/prc/test.cc
+2020/07/07 | 66751 | graphics/asymptote/prc/writePRC.cc
+2020/07/07 | 48481 | graphics/asymptote/prc/writePRC.h
+2020/07/07 | 116025 | graphics/asymptote/predicates.cc
+2020/07/07 | 986 | graphics/asymptote/predicates.h
+2020/07/07 | 1234 | graphics/asymptote/primitives.h
+2020/07/07 | 25292 | graphics/asymptote/process.cc
+2020/07/07 | 3003 | graphics/asymptote/process.h
+2020/07/07 | 2378 | graphics/asymptote/profile.py
+2020/07/07 | 9892 | graphics/asymptote/profiler.h
+2020/07/07 | 3275 | graphics/asymptote/program.cc
+2020/07/07 | 2562 | graphics/asymptote/program.h
+2020/07/07 | 19124 | graphics/asymptote/psfile.cc
+2020/07/07 | 9027 | graphics/asymptote/psfile.h
+2020/07/07 | 2505 | graphics/asymptote/README
+2020/07/07 | 1704 | graphics/asymptote/record.cc
+2020/07/07 | 2738 | graphics/asymptote/record.h
+2020/07/07 | 1098 | graphics/asymptote/refaccess.cc
+2020/07/07 | 1936 | graphics/asymptote/refaccess.h
+2020/07/07 | 121567 | graphics/asymptote/ReleaseNotes
+2020/07/07 | 62 | graphics/asymptote/revision.cc
+2020/07/07 | 3553 | graphics/asymptote/rounding.h
+2020/07/07 | 73550 | graphics/asymptote/runarray.cc
+2020/07/07 | 1492 | graphics/asymptote/runarray.h
+2020/07/07 | 48715 | graphics/asymptote/runarray.in
+2020/07/07 | 2661 | graphics/asymptote/runbacktrace.cc
+2020/07/07 | 169 | graphics/asymptote/runbacktrace.h
+2020/07/07 | 833 | graphics/asymptote/runbacktrace.in
+2020/07/07 | 17790 | graphics/asymptote/runfile.cc
+2020/07/07 | 969 | graphics/asymptote/runfile.h
+2020/07/07 | 5971 | graphics/asymptote/runfile.in
+2020/07/07 | 8062 | graphics/asymptote/runhistory.cc
+2020/07/07 | 161 | graphics/asymptote/runhistory.h
+2020/07/07 | 5024 | graphics/asymptote/runhistory.in
+2020/07/07 | 16635 | graphics/asymptote/runlabel.cc
+2020/07/07 | 153 | graphics/asymptote/runlabel.h
+2020/07/07 | 12892 | graphics/asymptote/runlabel.in
+2020/07/07 | 21977 | graphics/asymptote/runmath.cc
+2020/07/07 | 269 | graphics/asymptote/runmath.h
+2020/07/07 | 8929 | graphics/asymptote/runmath.in
+2020/07/07 | 16491 | graphics/asymptote/runpair.cc
+2020/07/07 | 299 | graphics/asymptote/runpair.h
+2020/07/07 | 4175 | graphics/asymptote/runpair.in
+2020/07/07 | 25707 | graphics/asymptote/runpath3d.cc
+2020/07/07 | 186 | graphics/asymptote/runpath3d.h
+2020/07/07 | 8016 | graphics/asymptote/runpath3d.in
+2020/07/07 | 26872 | graphics/asymptote/runpath.cc
+2020/07/07 | 177 | graphics/asymptote/runpath.h
+2020/07/07 | 8458 | graphics/asymptote/runpath.in
+2020/07/07 | 57302 | graphics/asymptote/runpicture.cc
+2020/07/07 | 191 | graphics/asymptote/runpicture.h
+2020/07/07 | 19561 | graphics/asymptote/runpicture.in
+2020/07/07 | 18772 | graphics/asymptote/runstring.cc
+2020/07/07 | 188 | graphics/asymptote/runstring.h
+2020/07/07 | 9871 | graphics/asymptote/runstring.in
+2020/07/07 | 12629 | graphics/asymptote/runsystem.cc
+2020/07/07 | 157 | graphics/asymptote/runsystem.h
+2020/07/07 | 5119 | graphics/asymptote/runsystem.in
+2020/07/07 | 1343 | graphics/asymptote/runtimebase.in
+2020/07/07 | 60505 | graphics/asymptote/runtime.cc
+2020/07/07 | 1163 | graphics/asymptote/runtime.h
+2020/07/07 | 20545 | graphics/asymptote/runtime.in
+2020/07/07 | 7230 | graphics/asymptote/runtime.pl
+2020/07/07 | 13944 | graphics/asymptote/runtriple.cc
+2020/07/07 | 320 | graphics/asymptote/runtriple.h
+2020/07/07 | 2719 | graphics/asymptote/runtriple.in
+2020/07/07 | 2113 | graphics/asymptote/seconds.h
+2020/07/07 | 51631 | graphics/asymptote/settings.cc
+2020/07/07 | 2690 | graphics/asymptote/settings.h
+2020/07/07 | 2905 | graphics/asymptote/shaders.cc
+2020/07/07 | 882 | graphics/asymptote/shaders.h
+2020/07/07 | 6660 | graphics/asymptote/simpson.cc
+2020/07/07 | 14494 | graphics/asymptote/stack.cc
+2020/07/07 | 3328 | graphics/asymptote/stack.h
+2020/07/07 | 958 | graphics/asymptote/statistics.h
+2020/07/07 | 12103 | graphics/asymptote/stm.cc
+2020/07/07 | 4400 | graphics/asymptote/stm.h
+2020/07/07 | 8912 | graphics/asymptote/symbol.cc
+2020/07/07 | 2662 | graphics/asymptote/symbol.h
+2020/07/07 | 2697 | graphics/asymptote/table.h
+2020/07/07 | 620 | graphics/asymptote/tests/arith/integer.asy
+2020/07/07 | 449 | graphics/asymptote/tests/arith/pair.asy
+2020/07/07 | 193 | graphics/asymptote/tests/arith/random.asy
+2020/07/07 | 383 | graphics/asymptote/tests/arith/real.asy
+2020/07/07 | 1710 | graphics/asymptote/tests/arith/roots.asy
+2020/07/07 | 639 | graphics/asymptote/tests/arith/transform.asy
+2020/07/07 | 244 | graphics/asymptote/tests/arith/triple.asy
+2020/07/07 | 936 | graphics/asymptote/tests/array/array.asy
+2020/07/07 | 680 | graphics/asymptote/tests/array/delete.asy
+2020/07/07 | 737 | graphics/asymptote/tests/array/determinant.asy
+2020/07/07 | 1927 | graphics/asymptote/tests/array/fields.asy
+2020/07/07 | 4841 | graphics/asymptote/tests/array/slice.asy
+2020/07/07 | 966 | graphics/asymptote/tests/array/solve.asy
+2020/07/07 | 746 | graphics/asymptote/tests/array/sort.asy
+2020/07/07 | 1096 | graphics/asymptote/tests/array/transpose.asy
+2020/07/07 | 276 | graphics/asymptote/tests/bench/6000circles.asy
+2020/07/07 | 2222 | graphics/asymptote/tests/frames/loop.asy
+2020/07/07 | 202 | graphics/asymptote/tests/frames/stat2.asy
+2020/07/07 | 158 | graphics/asymptote/tests/frames/stat.asy
+2020/07/07 | 62 | graphics/asymptote/tests/gc/array.asy
+2020/07/07 | 102 | graphics/asymptote/tests/gc/file.asy
+2020/07/07 | 54 | graphics/asymptote/tests/gc/funcall.asy
+2020/07/07 | 65 | graphics/asymptote/tests/gc/guide.asy
+2020/07/07 | 143 | graphics/asymptote/tests/gc/label.asy
+2020/07/07 | 124 | graphics/asymptote/tests/gc/path.asy
+2020/07/07 | 72 | graphics/asymptote/tests/gc/pen.asy
+2020/07/07 | 193 | graphics/asymptote/tests/gc/shipout.asy
+2020/07/07 | 77 | graphics/asymptote/tests/gc/string.asy
+2020/07/07 | 129 | graphics/asymptote/tests/gc/struct.asy
+2020/07/07 | 70 | graphics/asymptote/tests/gc/transform.asy
+2020/07/07 | 369 | graphics/asymptote/tests/gs/ghostscript.asy
+2020/07/07 | 11907 | graphics/asymptote/tests/gsl/random.asy
+2020/07/07 | 1209 | graphics/asymptote/tests/imp/unravel.asy
+2020/07/07 | 308 | graphics/asymptote/tests/Makefile
+2020/07/07 | 18 | graphics/asymptote/tests/output/circle.asy
+2020/07/07 | 22 | graphics/asymptote/tests/output/line.asy
+2020/07/07 | 1284 | graphics/asymptote/tests/output/Makefile
+2020/07/07 | 1384 | graphics/asymptote/tests/pic/trans.asy
+2020/07/07 | 236 | graphics/asymptote/tests/string/erase.asy
+2020/07/07 | 182 | graphics/asymptote/tests/string/find.asy
+2020/07/07 | 109 | graphics/asymptote/tests/string/insert.asy
+2020/07/07 | 132 | graphics/asymptote/tests/string/length.asy
+2020/07/07 | 187 | graphics/asymptote/tests/string/rfind.asy
+2020/07/07 | 118 | graphics/asymptote/tests/string/substr.asy
+2020/07/07 | 238 | graphics/asymptote/tests/TestLib.asy
+2020/07/07 | 159 | graphics/asymptote/tests/types/cast.asy
+2020/07/07 | 6503 | graphics/asymptote/tests/types/constructor.asy
+2020/07/07 | 155 | graphics/asymptote/tests/types/ecast.asy
+2020/07/07 | 3375 | graphics/asymptote/tests/types/guide.asy
+2020/07/07 | 224 | graphics/asymptote/tests/types/init.asy
+2020/07/07 | 4242 | graphics/asymptote/tests/types/keyword.asy
+2020/07/07 | 4072 | graphics/asymptote/tests/types/order.asy
+2020/07/07 | 2731 | graphics/asymptote/tests/types/resolve.asy
+2020/07/07 | 308 | graphics/asymptote/tests/types/shadow.asy
+2020/07/07 | 1331 | graphics/asymptote/tests/types/spec.asy
+2020/07/07 | 1189 | graphics/asymptote/tests/types/var.asy
+2020/07/07 | 18307 | graphics/asymptote/texfile.cc
+2020/07/07 | 10798 | graphics/asymptote/texfile.h
+2020/07/07 | 1293 | graphics/asymptote/TODO
+2020/07/07 | 6185 | graphics/asymptote/transform.h
+2020/07/07 | 10582 | graphics/asymptote/tr.cc
+2020/07/07 | 3676 | graphics/asymptote/tr.h
+2020/07/07 | 9651 | graphics/asymptote/triple.h
+2020/07/07 | 13884 | graphics/asymptote/types.cc
+2020/07/07 | 15372 | graphics/asymptote/types.h
+2020/07/07 | 11180 | graphics/asymptote/util.cc
+2020/07/07 | 4557 | graphics/asymptote/util.h
+2020/07/07 | 1978 | graphics/asymptote/varinit.cc
+2020/07/07 | 2013 | graphics/asymptote/varinit.h
+2020/07/07 | 901 | graphics/asymptote/virtualfieldaccess.cc
+2020/07/07 | 2328 | graphics/asymptote/virtualfieldaccess.h
+2020/07/07 | 750 | graphics/asymptote/vm.h
+2020/07/07 | 219 | graphics/asymptote/wce
+2020/07/07 | 2146 | graphics/asymptote/webgl/fragment.glsl
+2020/07/07 | 83751 | graphics/asymptote/webgl/gl.js
+2020/07/07 | 815 | graphics/asymptote/webgl/license
+2020/07/07 | 1446 | graphics/asymptote/webgl/vertex.glsl
+2020/07/07 | 6661 | graphics/asymptote/xstream.h
+2020/07/07 | 14756413 | graphics/asymptote.zip
2014/04/16 | 55108 | graphics/asypictureb/asypictureB.dtx
2014/04/16 | 2401 | graphics/asypictureb/asypictureB.ins
2014/04/15 | 637107 | graphics/asypictureb/asypictureB.pdf
@@ -139983,8 +139986,8 @@
2020/02/15 | 3527 | info/biblio/tugboat.ltx
2014/08/12 | 20186 | info/biblio/type.bib
2019/12/12 | 2025 | info/biblio/type.ltx
-2020/04/15 | 1146793 | info/biblio/typeset.bib
-2020/03/20 | 2846 | info/biblio/typeset.ltx
+2020/07/06 | 1150222 | info/biblio/typeset.bib
+2020/07/06 | 2844 | info/biblio/typeset.ltx
1996/03/21 | 590 | info/biblio/widebib.sty
1994/09/24 | 2480 | info/biblio/xcite.sty
2019/10/22 | 2296480 | info/biblio.zip
@@ -163356,7 +163359,7 @@
2020/02/28 | 22237296 | install/macros/latex/latex-base.tds.zip
2020/06/01 | 1578753 | install/macros/latex/required/amscls.tds.zip
2013/03/08 | 2480846 | install/macros/latex/required/amslatex/math.tds.zip
-2020/06/10 | 2706891 | install/macros/latex/required/babel-base.tds.zip
+2020/07/07 | 2714843 | install/macros/latex/required/babel-base.tds.zip
2020/02/02 | 2654475 | install/macros/latex/required/latex-amsmath.tds.zip
2019/10/15 | 200482 | install/macros/latex/required/latexbug.tds.zip
2018/04/06 | 1324669 | install/macros/latex/required/latex-cyrillic.tds.zip
@@ -199154,117 +199157,117 @@
2012/01/07 | 66974 | macros/latex/contrib/regstats/regstats-example.pdf
2012/01/07 | 327688 | macros/latex/contrib/regstats/regstats.pdf
2012/01/08 | 409653 | macros/latex/contrib/regstats.zip
-2020/06/23 | 24795 | macros/latex/contrib/reledmac/doc-include/migrate-mac.dtx
-2020/05/30 | 5010 | macros/latex/contrib/reledmac/doc-include/migrate-par.dtx
-2020/05/30 | 16 | macros/latex/contrib/reledmac/doc-more/latexmkrc
-2020/05/30 | 243 | macros/latex/contrib/reledmac/doc-more/makefile
-2020/06/24 | 40842 | macros/latex/contrib/reledmac/doc-more/page-typesetting-columns.pdf
-2020/06/06 | 4645 | macros/latex/contrib/reledmac/doc-more/page-typesetting-columns.tex
-2020/06/24 | 175600 | macros/latex/contrib/reledmac/examples/1-criticalendnotes.pdf
-2020/06/24 | 1979 | macros/latex/contrib/reledmac/examples/1-criticalendnotes.tex
-2020/06/24 | 119720 | macros/latex/contrib/reledmac/examples/1-criticalnotes.pdf
-2020/06/24 | 2161 | macros/latex/contrib/reledmac/examples/1-criticalnotes.tex
-2020/06/24 | 145283 | macros/latex/contrib/reledmac/examples/1-sidenotes.pdf
-2020/06/24 | 9804 | macros/latex/contrib/reledmac/examples/1-sidenotes.tex
-2020/06/24 | 187373 | macros/latex/contrib/reledmac/examples/1-tabular.pdf
-2020/06/24 | 2004 | macros/latex/contrib/reledmac/examples/1-tabular.tex
-2020/06/24 | 121150 | macros/latex/contrib/reledmac/examples/1-verses-doublenumbering.pdf
-2020/06/24 | 2592 | macros/latex/contrib/reledmac/examples/1-verses-doublenumbering.tex
-2020/06/24 | 121318 | macros/latex/contrib/reledmac/examples/1-verses.pdf
-2020/06/24 | 1902 | macros/latex/contrib/reledmac/examples/1-verses.tex
-2020/06/24 | 128416 | macros/latex/contrib/reledmac/examples/2-antilabe.pdf
-2020/06/24 | 1998 | macros/latex/contrib/reledmac/examples/2-antilabe.tex
-2020/06/24 | 120386 | macros/latex/contrib/reledmac/examples/2-cross_referencing.pdf
-2020/06/24 | 1857 | macros/latex/contrib/reledmac/examples/2-cross_referencing.tex
-2020/06/24 | 123574 | macros/latex/contrib/reledmac/examples/2-footnote_spacing.pdf
-2020/06/24 | 6806 | macros/latex/contrib/reledmac/examples/2-footnote_spacing.tex
-2020/06/24 | 132844 | macros/latex/contrib/reledmac/examples/2-glossaries.pdf
-2020/06/24 | 1776 | macros/latex/contrib/reledmac/examples/2-glossaries.tex
-2020/06/24 | 185822 | macros/latex/contrib/reledmac/examples/2-indexing.pdf
-2020/06/24 | 2761 | macros/latex/contrib/reledmac/examples/2-indexing.tex
-2020/06/24 | 122378 | macros/latex/contrib/reledmac/examples/2-lemma_disambigution.pdf
-2020/06/24 | 1139 | macros/latex/contrib/reledmac/examples/2-lemma_disambigution.tex
-2020/06/24 | 142433 | macros/latex/contrib/reledmac/examples/2-line_numbers_in_header.pdf
-2020/06/24 | 11391 | macros/latex/contrib/reledmac/examples/2-line_numbers_in_header.tex
-2020/06/24 | 136296 | macros/latex/contrib/reledmac/examples/2-linespacing.pdf
-2020/06/24 | 1488 | macros/latex/contrib/reledmac/examples/2-linespacing.tex
-2020/06/24 | 156021 | macros/latex/contrib/reledmac/examples/2-manuscript-apparatus.pdf
-2020/06/24 | 21449 | macros/latex/contrib/reledmac/examples/2-manuscript-apparatus.tex
-2020/06/24 | 126635 | macros/latex/contrib/reledmac/examples/2-notes-width.pdf
-2020/06/24 | 1528 | macros/latex/contrib/reledmac/examples/2-notes-width.tex
-2020/06/24 | 131284 | macros/latex/contrib/reledmac/examples/2-one_series_per_pstart.pdf
-2020/06/24 | 5161 | macros/latex/contrib/reledmac/examples/2-one_series_per_pstart.tex
-2020/06/24 | 133738 | macros/latex/contrib/reledmac/examples/2-performances.pdf
-2020/06/24 | 2710 | macros/latex/contrib/reledmac/examples/2-performances.tex
-2020/06/24 | 31756 | macros/latex/contrib/reledmac/examples/2-reledmac-right-to-left.pdf
-2020/06/24 | 3159 | macros/latex/contrib/reledmac/examples/2-reledmac-right-to-left.tex
-2020/06/24 | 212782 | macros/latex/contrib/reledmac/examples/2-subdivision-number-in-header.pdf
-2020/06/24 | 15949 | macros/latex/contrib/reledmac/examples/2-subdivision-number-in-header.tex
-2020/06/24 | 188331 | macros/latex/contrib/reledmac/examples/2-titles_in_line_numbering_with_notes.pdf
-2020/06/24 | 3065 | macros/latex/contrib/reledmac/examples/2-titles_in_line_numbering_with_notes.tex
-2020/06/24 | 173338 | macros/latex/contrib/reledmac/examples/2-titles_not_in_line_numbering.pdf
-2020/06/24 | 2006 | macros/latex/contrib/reledmac/examples/2-titles_not_in_line_numbering.tex
-2020/06/24 | 24475 | macros/latex/contrib/reledmac/examples/3-reledpar_columns_different_languages.pdf
-2020/06/24 | 2388 | macros/latex/contrib/reledmac/examples/3-reledpar_columns_different_languages.tex
-2020/06/24 | 93085 | macros/latex/contrib/reledmac/examples/3-reledpar_mwe.pdf
-2020/06/24 | 2912 | macros/latex/contrib/reledmac/examples/3-reledpar_mwe.tex
-2020/06/24 | 37801 | macros/latex/contrib/reledmac/examples/3-reledpar_pages_different_languages_lualatex.pdf
-2020/06/24 | 2027 | macros/latex/contrib/reledmac/examples/3-reledpar_pages_different_languages_lualatex.tex
-2020/06/24 | 135907 | macros/latex/contrib/reledmac/examples/3-reledpar_same_page_number_in_both_side.pdf
-2020/06/24 | 20137 | macros/latex/contrib/reledmac/examples/3-reledpar_same_page_number_in_both_side.tex
-2020/06/24 | 190089 | macros/latex/contrib/reledmac/examples/3-reledpar_sync_setting_advancedshifted-nomax.pdf
-2020/06/24 | 1665 | macros/latex/contrib/reledmac/examples/3-reledpar_sync_setting_advancedshifted-nomax.tex
-2020/06/24 | 189289 | macros/latex/contrib/reledmac/examples/3-reledpar_sync_setting_advancedshifted.pdf
-2020/06/24 | 1627 | macros/latex/contrib/reledmac/examples/3-reledpar_sync_setting_advancedshifted.tex
-2020/06/24 | 168067 | macros/latex/contrib/reledmac/examples/3-reledpar_sync_setting_default.pdf
-2020/06/24 | 1553 | macros/latex/contrib/reledmac/examples/3-reledpar_sync_setting_default.tex
-2020/06/24 | 188770 | macros/latex/contrib/reledmac/examples/3-reledpar_sync_setting_nomax.pdf
-2020/06/24 | 189852 | macros/latex/contrib/reledmac/examples/3-reledpar_sync_setting_nomax-shifted.pdf
-2020/06/24 | 1644 | macros/latex/contrib/reledmac/examples/3-reledpar_sync_setting_nomax-shifted.tex
-2020/06/24 | 1603 | macros/latex/contrib/reledmac/examples/3-reledpar_sync_setting_nomax.tex
-2020/06/24 | 188677 | macros/latex/contrib/reledmac/examples/3-reledpar_sync_setting_nosync.pdf
-2020/06/24 | 1609 | macros/latex/contrib/reledmac/examples/3-reledpar_sync_setting_nosync.tex
-2020/06/24 | 188808 | macros/latex/contrib/reledmac/examples/3-reledpar_sync_setting_shifted.pdf
-2020/06/24 | 1611 | macros/latex/contrib/reledmac/examples/3-reledpar_sync_setting_shifted.tex
-2020/06/24 | 187768 | macros/latex/contrib/reledmac/examples/4-reledpar_column_mix_with_not_column-continuous-numbering.pdf
-2020/06/24 | 13642 | macros/latex/contrib/reledmac/examples/4-reledpar_column_mix_with_not_column-continuous-numbering.tex
-2020/06/24 | 132837 | macros/latex/contrib/reledmac/examples/4-reledpar_column_mix_with_not_column.pdf
-2020/06/24 | 12681 | macros/latex/contrib/reledmac/examples/4-reledpar_column_mix_with_not_column.tex
-2020/06/24 | 173906 | macros/latex/contrib/reledmac/examples/4-reledpar_columns_alignment.pdf
-2020/06/24 | 3005 | macros/latex/contrib/reledmac/examples/4-reledpar_columns_alignment.tex
-2020/06/24 | 199864 | macros/latex/contrib/reledmac/examples/4-reledpar_columns_titles_in_line_numbering_with_notes.pdf
-2020/06/24 | 5587 | macros/latex/contrib/reledmac/examples/4-reledpar_columns_titles_in_line_numbering_with_notes.tex
-2020/06/24 | 123230 | macros/latex/contrib/reledmac/examples/4-reledpar_inside-outside-columns.pdf
-2020/06/24 | 11558 | macros/latex/contrib/reledmac/examples/4-reledpar_inside-outside-columns.tex
-2020/06/24 | 144326 | macros/latex/contrib/reledmac/examples/4-reledpar_one_series_per_pstart.pdf
-2020/06/24 | 10033 | macros/latex/contrib/reledmac/examples/4-reledpar_one_series_per_pstart.tex
-2020/06/24 | 226079 | macros/latex/contrib/reledmac/examples/4-reledpar_pages_long_notes.pdf
-2020/06/24 | 43045 | macros/latex/contrib/reledmac/examples/4-reledpar_pages_long_notes.tex
-2020/06/24 | 124679 | macros/latex/contrib/reledmac/examples/4-reledpar_pages_notes_leftpage.pdf
-2020/06/24 | 6540 | macros/latex/contrib/reledmac/examples/4-reledpar_pages_notes_leftpage.tex
-2020/06/24 | 120874 | macros/latex/contrib/reledmac/examples/4-reledpar_pages_paragraph_separator_between.pdf
-2020/06/24 | 4504 | macros/latex/contrib/reledmac/examples/4-reledpar_pages_paragraph_separator_between.tex
-2020/06/24 | 260966 | macros/latex/contrib/reledmac/examples/4-reledpar_pages_titles_in_line_numbering_with_notes.pdf
-2020/06/24 | 9314 | macros/latex/contrib/reledmac/examples/4-reledpar_pages_titles_in_line_numbering_with_notes.tex
-2020/06/24 | 180904 | macros/latex/contrib/reledmac/examples/4-reledpar_titles_not_in_line_numbering.pdf
-2020/06/24 | 8510 | macros/latex/contrib/reledmac/examples/4-reledpar_titles_not_in_line_numbering.tex
-2020/06/24 | 116963 | macros/latex/contrib/reledmac/examples/4-reledpar_verse_text_between.pdf
-2020/06/24 | 2157 | macros/latex/contrib/reledmac/examples/4-reledpar_verse_text_between.tex
-2020/05/30 | 49 | macros/latex/contrib/reledmac/examples/latexmkrc
-2020/06/24 | 816 | macros/latex/contrib/reledmac/examples/makefile
+2020/07/06 | 24795 | macros/latex/contrib/reledmac/doc-include/migrate-mac.dtx
+2020/07/06 | 5010 | macros/latex/contrib/reledmac/doc-include/migrate-par.dtx
+2020/07/06 | 16 | macros/latex/contrib/reledmac/doc-more/latexmkrc
+2020/07/06 | 243 | macros/latex/contrib/reledmac/doc-more/makefile
+2020/07/06 | 40840 | macros/latex/contrib/reledmac/doc-more/page-typesetting-columns.pdf
+2020/07/06 | 4645 | macros/latex/contrib/reledmac/doc-more/page-typesetting-columns.tex
+2020/07/06 | 175600 | macros/latex/contrib/reledmac/examples/1-criticalendnotes.pdf
+2020/07/06 | 1979 | macros/latex/contrib/reledmac/examples/1-criticalendnotes.tex
+2020/07/06 | 119720 | macros/latex/contrib/reledmac/examples/1-criticalnotes.pdf
+2020/07/06 | 2161 | macros/latex/contrib/reledmac/examples/1-criticalnotes.tex
+2020/07/06 | 145283 | macros/latex/contrib/reledmac/examples/1-sidenotes.pdf
+2020/07/06 | 9804 | macros/latex/contrib/reledmac/examples/1-sidenotes.tex
+2020/07/06 | 187373 | macros/latex/contrib/reledmac/examples/1-tabular.pdf
+2020/07/06 | 2004 | macros/latex/contrib/reledmac/examples/1-tabular.tex
+2020/07/06 | 121150 | macros/latex/contrib/reledmac/examples/1-verses-doublenumbering.pdf
+2020/07/06 | 2592 | macros/latex/contrib/reledmac/examples/1-verses-doublenumbering.tex
+2020/07/06 | 121318 | macros/latex/contrib/reledmac/examples/1-verses.pdf
+2020/07/06 | 1902 | macros/latex/contrib/reledmac/examples/1-verses.tex
+2020/07/06 | 128416 | macros/latex/contrib/reledmac/examples/2-antilabe.pdf
+2020/07/06 | 1998 | macros/latex/contrib/reledmac/examples/2-antilabe.tex
+2020/07/06 | 120386 | macros/latex/contrib/reledmac/examples/2-cross_referencing.pdf
+2020/07/06 | 1857 | macros/latex/contrib/reledmac/examples/2-cross_referencing.tex
+2020/07/06 | 123574 | macros/latex/contrib/reledmac/examples/2-footnote_spacing.pdf
+2020/07/06 | 6806 | macros/latex/contrib/reledmac/examples/2-footnote_spacing.tex
+2020/07/06 | 132844 | macros/latex/contrib/reledmac/examples/2-glossaries.pdf
+2020/07/06 | 1776 | macros/latex/contrib/reledmac/examples/2-glossaries.tex
+2020/07/06 | 185822 | macros/latex/contrib/reledmac/examples/2-indexing.pdf
+2020/07/06 | 2761 | macros/latex/contrib/reledmac/examples/2-indexing.tex
+2020/07/06 | 122378 | macros/latex/contrib/reledmac/examples/2-lemma_disambigution.pdf
+2020/07/06 | 1139 | macros/latex/contrib/reledmac/examples/2-lemma_disambigution.tex
+2020/07/06 | 142433 | macros/latex/contrib/reledmac/examples/2-line_numbers_in_header.pdf
+2020/07/06 | 11391 | macros/latex/contrib/reledmac/examples/2-line_numbers_in_header.tex
+2020/07/06 | 136296 | macros/latex/contrib/reledmac/examples/2-linespacing.pdf
+2020/07/06 | 1488 | macros/latex/contrib/reledmac/examples/2-linespacing.tex
+2020/07/06 | 156021 | macros/latex/contrib/reledmac/examples/2-manuscript-apparatus.pdf
+2020/07/06 | 21449 | macros/latex/contrib/reledmac/examples/2-manuscript-apparatus.tex
+2020/07/06 | 126635 | macros/latex/contrib/reledmac/examples/2-notes-width.pdf
+2020/07/06 | 1528 | macros/latex/contrib/reledmac/examples/2-notes-width.tex
+2020/07/06 | 131284 | macros/latex/contrib/reledmac/examples/2-one_series_per_pstart.pdf
+2020/07/06 | 5161 | macros/latex/contrib/reledmac/examples/2-one_series_per_pstart.tex
+2020/07/06 | 133738 | macros/latex/contrib/reledmac/examples/2-performances.pdf
+2020/07/06 | 2710 | macros/latex/contrib/reledmac/examples/2-performances.tex
+2020/07/06 | 31059 | macros/latex/contrib/reledmac/examples/2-reledmac-right-to-left.pdf
+2020/07/06 | 3159 | macros/latex/contrib/reledmac/examples/2-reledmac-right-to-left.tex
+2020/07/06 | 212782 | macros/latex/contrib/reledmac/examples/2-subdivision-number-in-header.pdf
+2020/07/06 | 15949 | macros/latex/contrib/reledmac/examples/2-subdivision-number-in-header.tex
+2020/07/06 | 188331 | macros/latex/contrib/reledmac/examples/2-titles_in_line_numbering_with_notes.pdf
+2020/07/06 | 3065 | macros/latex/contrib/reledmac/examples/2-titles_in_line_numbering_with_notes.tex
+2020/07/06 | 173338 | macros/latex/contrib/reledmac/examples/2-titles_not_in_line_numbering.pdf
+2020/07/06 | 2006 | macros/latex/contrib/reledmac/examples/2-titles_not_in_line_numbering.tex
+2020/07/06 | 23272 | macros/latex/contrib/reledmac/examples/3-reledpar_columns_different_languages.pdf
+2020/07/06 | 2388 | macros/latex/contrib/reledmac/examples/3-reledpar_columns_different_languages.tex
+2020/07/06 | 93085 | macros/latex/contrib/reledmac/examples/3-reledpar_mwe.pdf
+2020/07/06 | 2912 | macros/latex/contrib/reledmac/examples/3-reledpar_mwe.tex
+2020/07/06 | 37801 | macros/latex/contrib/reledmac/examples/3-reledpar_pages_different_languages_lualatex.pdf
+2020/07/06 | 2027 | macros/latex/contrib/reledmac/examples/3-reledpar_pages_different_languages_lualatex.tex
+2020/07/06 | 135907 | macros/latex/contrib/reledmac/examples/3-reledpar_same_page_number_in_both_side.pdf
+2020/07/06 | 20137 | macros/latex/contrib/reledmac/examples/3-reledpar_same_page_number_in_both_side.tex
+2020/07/06 | 190089 | macros/latex/contrib/reledmac/examples/3-reledpar_sync_setting_advancedshifted-nomax.pdf
+2020/07/06 | 1665 | macros/latex/contrib/reledmac/examples/3-reledpar_sync_setting_advancedshifted-nomax.tex
+2020/07/06 | 189289 | macros/latex/contrib/reledmac/examples/3-reledpar_sync_setting_advancedshifted.pdf
+2020/07/06 | 1627 | macros/latex/contrib/reledmac/examples/3-reledpar_sync_setting_advancedshifted.tex
+2020/07/06 | 168067 | macros/latex/contrib/reledmac/examples/3-reledpar_sync_setting_default.pdf
+2020/07/06 | 1553 | macros/latex/contrib/reledmac/examples/3-reledpar_sync_setting_default.tex
+2020/07/06 | 188770 | macros/latex/contrib/reledmac/examples/3-reledpar_sync_setting_nomax.pdf
+2020/07/06 | 189852 | macros/latex/contrib/reledmac/examples/3-reledpar_sync_setting_nomax-shifted.pdf
+2020/07/06 | 1644 | macros/latex/contrib/reledmac/examples/3-reledpar_sync_setting_nomax-shifted.tex
+2020/07/06 | 1603 | macros/latex/contrib/reledmac/examples/3-reledpar_sync_setting_nomax.tex
+2020/07/06 | 188677 | macros/latex/contrib/reledmac/examples/3-reledpar_sync_setting_nosync.pdf
+2020/07/06 | 1609 | macros/latex/contrib/reledmac/examples/3-reledpar_sync_setting_nosync.tex
+2020/07/06 | 188808 | macros/latex/contrib/reledmac/examples/3-reledpar_sync_setting_shifted.pdf
+2020/07/06 | 1611 | macros/latex/contrib/reledmac/examples/3-reledpar_sync_setting_shifted.tex
+2020/07/06 | 187768 | macros/latex/contrib/reledmac/examples/4-reledpar_column_mix_with_not_column-continuous-numbering.pdf
+2020/07/06 | 13642 | macros/latex/contrib/reledmac/examples/4-reledpar_column_mix_with_not_column-continuous-numbering.tex
+2020/07/06 | 132837 | macros/latex/contrib/reledmac/examples/4-reledpar_column_mix_with_not_column.pdf
+2020/07/06 | 12681 | macros/latex/contrib/reledmac/examples/4-reledpar_column_mix_with_not_column.tex
+2020/07/06 | 173906 | macros/latex/contrib/reledmac/examples/4-reledpar_columns_alignment.pdf
+2020/07/06 | 3005 | macros/latex/contrib/reledmac/examples/4-reledpar_columns_alignment.tex
+2020/07/06 | 199864 | macros/latex/contrib/reledmac/examples/4-reledpar_columns_titles_in_line_numbering_with_notes.pdf
+2020/07/06 | 5587 | macros/latex/contrib/reledmac/examples/4-reledpar_columns_titles_in_line_numbering_with_notes.tex
+2020/07/06 | 123230 | macros/latex/contrib/reledmac/examples/4-reledpar_inside-outside-columns.pdf
+2020/07/06 | 11558 | macros/latex/contrib/reledmac/examples/4-reledpar_inside-outside-columns.tex
+2020/07/06 | 144326 | macros/latex/contrib/reledmac/examples/4-reledpar_one_series_per_pstart.pdf
+2020/07/06 | 10033 | macros/latex/contrib/reledmac/examples/4-reledpar_one_series_per_pstart.tex
+2020/07/06 | 226079 | macros/latex/contrib/reledmac/examples/4-reledpar_pages_long_notes.pdf
+2020/07/06 | 43045 | macros/latex/contrib/reledmac/examples/4-reledpar_pages_long_notes.tex
+2020/07/06 | 124679 | macros/latex/contrib/reledmac/examples/4-reledpar_pages_notes_leftpage.pdf
+2020/07/06 | 6540 | macros/latex/contrib/reledmac/examples/4-reledpar_pages_notes_leftpage.tex
+2020/07/06 | 120874 | macros/latex/contrib/reledmac/examples/4-reledpar_pages_paragraph_separator_between.pdf
+2020/07/06 | 4504 | macros/latex/contrib/reledmac/examples/4-reledpar_pages_paragraph_separator_between.tex
+2020/07/06 | 260966 | macros/latex/contrib/reledmac/examples/4-reledpar_pages_titles_in_line_numbering_with_notes.pdf
+2020/07/06 | 9314 | macros/latex/contrib/reledmac/examples/4-reledpar_pages_titles_in_line_numbering_with_notes.tex
+2020/07/06 | 180904 | macros/latex/contrib/reledmac/examples/4-reledpar_titles_not_in_line_numbering.pdf
+2020/07/06 | 8510 | macros/latex/contrib/reledmac/examples/4-reledpar_titles_not_in_line_numbering.tex
+2020/07/06 | 116963 | macros/latex/contrib/reledmac/examples/4-reledpar_verse_text_between.pdf
+2020/07/06 | 2157 | macros/latex/contrib/reledmac/examples/4-reledpar_verse_text_between.tex
+2020/07/06 | 49 | macros/latex/contrib/reledmac/examples/latexmkrc
+2020/07/06 | 816 | macros/latex/contrib/reledmac/examples/makefile
2020/05/30 | 2269 | macros/latex/contrib/reledmac/examples/reledmac.xdy
-2020/05/30 | 16 | macros/latex/contrib/reledmac/latexmkrc
-2020/06/24 | 1695 | macros/latex/contrib/reledmac/makefile
-2020/05/30 | 3495 | macros/latex/contrib/reledmac/migration.dtx
-2020/06/24 | 356983 | macros/latex/contrib/reledmac/migration.pdf
-2020/06/23 | 3808 | macros/latex/contrib/reledmac/README.md
-2020/06/24 | 876587 | macros/latex/contrib/reledmac/reledmac.dtx
-2020/05/30 | 2691 | macros/latex/contrib/reledmac/reledmac.ins
-2020/06/24 | 2003149 | macros/latex/contrib/reledmac/reledmac.pdf
-2020/06/23 | 303460 | macros/latex/contrib/reledmac/reledpar.dtx
-2020/05/30 | 2638 | macros/latex/contrib/reledmac/reledpar.ins
-2020/06/24 | 987044 | macros/latex/contrib/reledmac/reledpar.pdf
-2020/06/24 | 10315146 | macros/latex/contrib/reledmac.zip
+2020/07/06 | 16 | macros/latex/contrib/reledmac/latexmkrc
+2020/07/06 | 1718 | macros/latex/contrib/reledmac/makefile
+2020/07/06 | 3495 | macros/latex/contrib/reledmac/migration.dtx
+2020/07/06 | 356983 | macros/latex/contrib/reledmac/migration.pdf
+2020/07/06 | 3808 | macros/latex/contrib/reledmac/README.md
+2020/07/06 | 876839 | macros/latex/contrib/reledmac/reledmac.dtx
+2020/07/06 | 2691 | macros/latex/contrib/reledmac/reledmac.ins
+2020/07/06 | 2003146 | macros/latex/contrib/reledmac/reledmac.pdf
+2020/07/06 | 303460 | macros/latex/contrib/reledmac/reledpar.dtx
+2020/07/06 | 2638 | macros/latex/contrib/reledmac/reledpar.ins
+2020/07/06 | 987044 | macros/latex/contrib/reledmac/reledpar.pdf
+2020/07/07 | 10313506 | macros/latex/contrib/reledmac.zip
1999/02/05 | 10370 | macros/latex/contrib/relenc/2sidedoc.sty
2011/04/06 | 6770 | macros/latex/contrib/relenc/README
1999/02/05 | 13969 | macros/latex/contrib/relenc/reldemo.tex
@@ -201923,11 +201926,11 @@
2019/12/10 | 24550 | macros/latex/contrib/selinput/selinput.dtx
2019/12/10 | 537307 | macros/latex/contrib/selinput/selinput.pdf
2019/12/11 | 541126 | macros/latex/contrib/selinput.zip
-2020/05/30 | 1233 | macros/latex/contrib/semantex/README.md
-2020/07/06 | 234442 | macros/latex/contrib/semantex/semantex.pdf
-2020/07/06 | 162096 | macros/latex/contrib/semantex/semantex.sty
-2020/07/06 | 75886 | macros/latex/contrib/semantex/semantex.tex
-2020/07/06 | 269216 | macros/latex/contrib/semantex.zip
+2020/07/07 | 1204 | macros/latex/contrib/semantex/README.md
+2020/07/07 | 235556 | macros/latex/contrib/semantex/semantex.pdf
+2020/07/07 | 162098 | macros/latex/contrib/semantex/semantex.sty
+2020/07/07 | 71044 | macros/latex/contrib/semantex/semantex.tex
+2020/07/07 | 268945 | macros/latex/contrib/semantex.zip
2020/01/29 | 1014 | macros/latex/contrib/semantic-markup/README
2020/01/29 | 266707 | macros/latex/contrib/semantic-markup/semantic-markup.pdf
2020/01/29 | 4666 | macros/latex/contrib/semantic-markup/semantic-markup.sty
@@ -209215,14 +209218,14 @@
2020/02/02 | 430478 | macros/latex/required/amsmath/testmath.pdf
2019/10/06 | 82371 | macros/latex/required/amsmath/testmath.tex
2020/02/02 | 2623593 | macros/latex/required/amsmath.zip
-2020/06/10 | 660307 | macros/latex/required/babel/base/babel.dtx
-2020/06/10 | 7392 | macros/latex/required/babel/base/babel.ins
-2020/06/10 | 790671 | macros/latex/required/babel/base/babel.pdf
-2020/06/10 | 21932 | macros/latex/required/babel/base/bbcompat.dtx
-2020/06/10 | 3526 | macros/latex/required/babel/base/bbidxglo.dtx
-2020/06/10 | 768821 | macros/latex/required/babel/base/locale.zip
-2020/06/10 | 8522 | macros/latex/required/babel/base/README.md
-2020/06/10 | 1734192 | macros/latex/required/babel/base.zip
+2020/07/07 | 661942 | macros/latex/required/babel/base/babel.dtx
+2020/07/07 | 7392 | macros/latex/required/babel/base/babel.ins
+2020/07/07 | 793176 | macros/latex/required/babel/base/babel.pdf
+2020/07/07 | 21932 | macros/latex/required/babel/base/bbcompat.dtx
+2020/07/07 | 3526 | macros/latex/required/babel/base/bbidxglo.dtx
+2020/07/07 | 770813 | macros/latex/required/babel/base/locale.zip
+2020/07/07 | 9196 | macros/latex/required/babel/base/README.md
+2020/07/07 | 1739730 | macros/latex/required/babel/base.zip
2018/04/06 | 5462 | macros/latex/required/cyrillic/changes.txt
2018/04/06 | 57716 | macros/latex/required/cyrillic/cyinpenc.dtx
2018/04/06 | 206017 | macros/latex/required/cyrillic/cyinpenc.pdf
@@ -251804,10 +251807,10 @@
2018/01/26 | 4655 | support/wp2latex/html2latex.htm
2007/07/22 | 600 | support/wp2latex/readme.1st
2018/06/13 | 7401 | support/wp2latex/readme.txt
-2016/04/23 | 5636295 | support/wp2latex/wp2latex-3.73.zip
+2016/12/04 | 5662481 | support/wp2latex/wp2latex-3.74.zip
2018/01/26 | 45297 | support/wp2latex/wp2latex.doc.htm
2018/01/26 | 7259 | support/wp2latex/wp2latex.faq
-2016/05/08 | 886614 | support/wp2latex/WP2LaTeX_Installer-3.73.exe
+2017/01/01 | 888938 | support/wp2latex/WP2LaTeX_Installer-3.74.exe
2018/01/26 | 1241 | support/wp2latex/wp2latex.lsm
2018/01/26 | 35145 | support/wp2latex/wp2latex_pas-2.3.zip
2000/02/22 | 481 | support/wsuipa2tipa/README
@@ -255967,9 +255970,9 @@
2019/08/24 | 352 | systems/texlive/tlnet/archive/clojure-pamphlet.x86_64-linuxmusl.r51944.tar.xz
2019/08/24 | 352 | systems/texlive/tlnet/archive/clojure-pamphlet.x86_64-linux.r51944.tar.xz
2019/08/24 | 348 | systems/texlive/tlnet/archive/clojure-pamphlet.x86_64-solaris.r51944.tar.xz
-2020/07/01 | 577860 | systems/texlive/tlnet/archive/cloze.doc.r55704.tar.xz
-2020/07/01 | 8832 | systems/texlive/tlnet/archive/cloze.r55704.tar.xz
-2020/07/01 | 6008 | systems/texlive/tlnet/archive/cloze.source.r55704.tar.xz
+2020/07/07 | 577160 | systems/texlive/tlnet/archive/cloze.doc.r55763.tar.xz
+2020/07/07 | 9208 | systems/texlive/tlnet/archive/cloze.r55763.tar.xz
+2020/07/07 | 6008 | systems/texlive/tlnet/archive/cloze.source.r55763.tar.xz
2019/02/28 | 289968 | systems/texlive/tlnet/archive/clrdblpg.doc.r47511.tar.xz
2019/02/28 | 1256 | systems/texlive/tlnet/archive/clrdblpg.r47511.tar.xz
2019/02/28 | 2740 | systems/texlive/tlnet/archive/clrdblpg.source.r47511.tar.xz
@@ -256874,13 +256877,13 @@
2019/02/28 | 340 | systems/texlive/tlnet/archive/de-macro.amd64-freebsd.r17399.tar.xz
2019/02/28 | 340 | systems/texlive/tlnet/archive/de-macro.amd64-netbsd.r30191.tar.xz
2019/02/28 | 340 | systems/texlive/tlnet/archive/de-macro.armhf-linux.r30015.tar.xz
-2019/02/28 | 49764 | systems/texlive/tlnet/archive/de-macro.doc.r26355.tar.xz
+2020/07/07 | 57104 | systems/texlive/tlnet/archive/de-macro.doc.r55766.tar.xz
2019/02/28 | 340 | systems/texlive/tlnet/archive/de-macro.i386-cygwin.r17399.tar.xz
2019/02/28 | 340 | systems/texlive/tlnet/archive/de-macro.i386-freebsd.r17399.tar.xz
2019/02/28 | 340 | systems/texlive/tlnet/archive/de-macro.i386-linux.r17399.tar.xz
2019/02/28 | 340 | systems/texlive/tlnet/archive/de-macro.i386-netbsd.r30191.tar.xz
2019/02/28 | 340 | systems/texlive/tlnet/archive/de-macro.i386-solaris.r17399.tar.xz
-2019/02/28 | 7848 | systems/texlive/tlnet/archive/de-macro.r26355.tar.xz
+2020/07/07 | 7904 | systems/texlive/tlnet/archive/de-macro.r55766.tar.xz
2019/02/28 | 684 | systems/texlive/tlnet/archive/de-macro.win32.r17428.tar.xz
2019/02/28 | 340 | systems/texlive/tlnet/archive/de-macro.x86_64-cygwin.r33557.tar.xz
2019/02/28 | 348 | systems/texlive/tlnet/archive/de-macro.x86_64-darwinlegacy.r43871.tar.xz
@@ -263736,8 +263739,8 @@
2019/12/12 | 6840 | systems/texlive/tlnet/archive/selinput.source.r53098.tar.xz
2019/02/28 | 509908 | systems/texlive/tlnet/archive/selnolig.doc.r38721.tar.xz
2019/02/28 | 54008 | systems/texlive/tlnet/archive/selnolig.r38721.tar.xz
-2020/06/08 | 235612 | systems/texlive/tlnet/archive/semantex.doc.r55475.tar.xz
-2020/06/08 | 12568 | systems/texlive/tlnet/archive/semantex.r55475.tar.xz
+2020/07/07 | 249820 | systems/texlive/tlnet/archive/semantex.doc.r55765.tar.xz
+2020/07/07 | 17332 | systems/texlive/tlnet/archive/semantex.r55765.tar.xz
2019/02/28 | 357820 | systems/texlive/tlnet/archive/semantic.doc.r15878.tar.xz
2020/01/31 | 270076 | systems/texlive/tlnet/archive/semantic-markup.doc.r53607.tar.xz
2020/01/31 | 2500 | systems/texlive/tlnet/archive/semantic-markup.r53607.tar.xz
@@ -264659,8 +264662,8 @@
2020/03/24 | 280 | systems/texlive/tlnet/archive/texlive-cz.r54496.tar.xz
2020/03/29 | 1338300 | systems/texlive/tlnet/archive/texlive-de.doc.r54604.tar.xz
2020/03/29 | 272 | systems/texlive/tlnet/archive/texlive-de.r54604.tar.xz
-2020/07/06 | 167256 | systems/texlive/tlnet/archive/texlive-docindex.doc.r55754.tar.xz
-2020/07/06 | 388 | systems/texlive/tlnet/archive/texlive-docindex.r55754.tar.xz
+2020/07/07 | 167232 | systems/texlive/tlnet/archive/texlive-docindex.doc.r55762.tar.xz
+2020/07/07 | 388 | systems/texlive/tlnet/archive/texlive-docindex.r55762.tar.xz
2020/04/16 | 1891392 | systems/texlive/tlnet/archive/texlive-en.doc.r54755.tar.xz
2020/04/16 | 272 | systems/texlive/tlnet/archive/texlive-en.r54755.tar.xz
2020/03/22 | 3090144 | systems/texlive/tlnet/archive/texlive-es.doc.r54465.tar.xz
@@ -266378,16 +266381,16 @@
2020/01/24 | 138180 | systems/texlive/tlnet/archive/zxjatype.doc.r53500.tar.xz
2020/01/24 | 8760 | systems/texlive/tlnet/archive/zxjatype.r53500.tar.xz
2020/06/13 | 105829 | systems/texlive/tlnet/install-tl
-2020/07/06 | 5500855 | systems/texlive/tlnet/install-tl-unx.tar.gz
-2020/07/06 | 152 | systems/texlive/tlnet/install-tl-unx.tar.gz.sha512
-2020/07/06 | 455 | systems/texlive/tlnet/install-tl-unx.tar.gz.sha512.asc
+2020/07/07 | 5500827 | systems/texlive/tlnet/install-tl-unx.tar.gz
+2020/07/07 | 152 | systems/texlive/tlnet/install-tl-unx.tar.gz.sha512
+2020/07/07 | 455 | systems/texlive/tlnet/install-tl-unx.tar.gz.sha512.asc
2020/05/31 | 4770 | systems/texlive/tlnet/install-tl-windows.bat
-2020/07/06 | 19380217 | systems/texlive/tlnet/install-tl-windows.exe
-2020/07/06 | 153 | systems/texlive/tlnet/install-tl-windows.exe.sha512
-2020/07/06 | 455 | systems/texlive/tlnet/install-tl-windows.exe.sha512.asc
-2020/07/06 | 24268914 | systems/texlive/tlnet/install-tl.zip
-2020/07/06 | 145 | systems/texlive/tlnet/install-tl.zip.sha512
-2020/07/06 | 455 | systems/texlive/tlnet/install-tl.zip.sha512.asc
+2020/07/07 | 19380214 | systems/texlive/tlnet/install-tl-windows.exe
+2020/07/07 | 153 | systems/texlive/tlnet/install-tl-windows.exe.sha512
+2020/07/07 | 455 | systems/texlive/tlnet/install-tl-windows.exe.sha512.asc
+2020/07/07 | 24268914 | systems/texlive/tlnet/install-tl.zip
+2020/07/07 | 145 | systems/texlive/tlnet/install-tl.zip.sha512
+2020/07/07 | 455 | systems/texlive/tlnet/install-tl.zip.sha512.asc
2020/03/05 | 1215 | systems/texlive/tlnet/README.md
2020/04/06 | 5961 | systems/texlive/tlnet/tlpkg/gpg/pubring.gpg
2016/04/12 | 600 | systems/texlive/tlnet/tlpkg/gpg/random_seed
@@ -266443,12 +266446,12 @@
2020/05/17 | 20322 | systems/texlive/tlnet/tlpkg/TeXLive/TLCrypto.pm
2020/05/03 | 4786 | systems/texlive/tlnet/tlpkg/TeXLive/TLDownload.pm
2017/11/14 | 27560 | systems/texlive/tlnet/tlpkg/TeXLive/TLPaper.pm
-2020/07/06 | 16308142 | systems/texlive/tlnet/tlpkg/texlive.tlpdb
-2020/07/06 | 48 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.md5
+2020/07/07 | 16308198 | systems/texlive/tlnet/tlpkg/texlive.tlpdb
+2020/07/07 | 48 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.md5
2020/05/13 | 86417 | systems/texlive/tlnet/tlpkg/TeXLive/TLPDB.pm
-2020/07/06 | 144 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512
-2020/07/06 | 455 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512.asc
-2020/07/06 | 2203540 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.xz
+2020/07/07 | 144 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512
+2020/07/07 | 455 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512.asc
+2020/07/07 | 2200264 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.xz
2020/04/15 | 58761 | systems/texlive/tlnet/tlpkg/TeXLive/TLPOBJ.pm
2020/03/20 | 41736 | systems/texlive/tlnet/tlpkg/TeXLive/TLPSRC.pm
2020/05/11 | 15010 | systems/texlive/tlnet/tlpkg/TeXLive/TLTREE.pm
@@ -270923,7 +270926,7 @@
2020/02/04 | 281488 | systems/win32/miktex/tm/packages/filehook.tar.lzma
2012/12/04 | 924573 | systems/win32/miktex/tm/packages/fileinfo.tar.lzma
2011/09/21 | 281409 | systems/win32/miktex/tm/packages/filemod.tar.lzma
-2020/07/06 | 539894 | systems/win32/miktex/tm/packages/files.csv.lzma
+2020/07/07 | 539894 | systems/win32/miktex/tm/packages/files.csv.lzma
2001/05/14 | 5617 | systems/win32/miktex/tm/packages/finbib.tar.lzma
2015/10/20 | 44379 | systems/win32/miktex/tm/packages/findhyph.tar.lzma
2011/10/21 | 89323 | systems/win32/miktex/tm/packages/fink.tar.lzma
@@ -272082,9 +272085,9 @@
2018/01/12 | 157226 | systems/win32/miktex/tm/packages/miktex-zip-bin-x64.tar.lzma
2020/06/30 | 39315 | systems/win32/miktex/tm/packages/miktex-zlib-bin-2.9.tar.lzma
2020/06/30 | 43053 | systems/win32/miktex/tm/packages/miktex-zlib-bin-x64-2.9.tar.lzma
-2020/07/06 | 201504 | systems/win32/miktex/tm/packages/miktex-zzdb1-2.9.tar.lzma
-2020/07/06 | 1204712 | systems/win32/miktex/tm/packages/miktex-zzdb2-2.9.tar.lzma
-2020/07/06 | 1124836 | systems/win32/miktex/tm/packages/miktex-zzdb3-2.9.tar.lzma
+2020/07/07 | 201514 | systems/win32/miktex/tm/packages/miktex-zzdb1-2.9.tar.lzma
+2020/07/07 | 1205479 | systems/win32/miktex/tm/packages/miktex-zzdb2-2.9.tar.lzma
+2020/07/07 | 1125024 | systems/win32/miktex/tm/packages/miktex-zzdb3-2.9.tar.lzma
2020/06/30 | 13117 | systems/win32/miktex/tm/packages/miktex-zzip-bin-2.9.tar.lzma
2020/06/30 | 14123 | systems/win32/miktex/tm/packages/miktex-zzip-bin-x64-2.9.tar.lzma
2016/07/15 | 35914 | systems/win32/miktex/tm/packages/mil3.tar.lzma
@@ -272238,192 +272241,192 @@
2018/04/09 | 400132 | systems/win32/miktex/tm/packages/newunicodechar.tar.lzma
2011/09/19 | 101312 | systems/win32/miktex/tm/packages/newvbtm.tar.lzma
2019/09/11 | 231430 | systems/win32/miktex/tm/packages/newverbs.tar.lzma
-2020/07/06 | 540973 | systems/win32/miktex/tm/packages/next/files.csv.lzma
-2020/07/06 | 59173 | systems/win32/miktex/tm/packages/next/miktex-arctrl-bin-2.9.tar.lzma
-2020/07/06 | 67326 | systems/win32/miktex/tm/packages/next/miktex-arctrl-bin-x64-2.9.tar.lzma
-2020/07/06 | 957364 | systems/win32/miktex/tm/packages/next/miktex-asymptote-bin-2.9.tar.lzma
-2020/07/06 | 1060544 | systems/win32/miktex/tm/packages/next/miktex-asymptote-bin-x64-2.9.tar.lzma
-2020/07/06 | 28618 | systems/win32/miktex/tm/packages/next/miktex-autosp-bin-2.9.tar.lzma
-2020/07/06 | 30892 | systems/win32/miktex/tm/packages/next/miktex-autosp-bin-x64-2.9.tar.lzma
-2020/07/06 | 29319 | systems/win32/miktex/tm/packages/next/miktex-axohelp-bin-2.9.tar.lzma
-2020/07/06 | 34704 | systems/win32/miktex/tm/packages/next/miktex-axohelp-bin-x64-2.9.tar.lzma
-2020/07/06 | 49695 | systems/win32/miktex/tm/packages/next/miktex-bibarts-bin-2.9.tar.lzma
-2020/07/06 | 57197 | systems/win32/miktex/tm/packages/next/miktex-bibarts-bin-x64-2.9.tar.lzma
-2020/07/06 | 84387 | systems/win32/miktex/tm/packages/next/miktex-bibtex8bit-bin-2.9.tar.lzma
-2020/07/06 | 93648 | systems/win32/miktex/tm/packages/next/miktex-bibtex8bit-bin-x64-2.9.tar.lzma
-2020/07/06 | 65602 | systems/win32/miktex/tm/packages/next/miktex-bibtex-bin-2.9.tar.lzma
-2020/07/06 | 73407 | systems/win32/miktex/tm/packages/next/miktex-bibtex-bin-x64-2.9.tar.lzma
-2020/07/06 | 27037 | systems/win32/miktex/tm/packages/next/miktex-bzip2-bin-2.9.tar.lzma
-2020/07/06 | 30875 | systems/win32/miktex/tm/packages/next/miktex-bzip2-bin-x64-2.9.tar.lzma
-2020/07/06 | 329722 | systems/win32/miktex/tm/packages/next/miktex-cairo-bin-2.9.tar.lzma
-2020/07/06 | 392543 | systems/win32/miktex/tm/packages/next/miktex-cairo-bin-x64-2.9.tar.lzma
-2020/07/06 | 32134 | systems/win32/miktex/tm/packages/next/miktex-chktex-bin-2.9.tar.lzma
-2020/07/06 | 36307 | systems/win32/miktex/tm/packages/next/miktex-chktex-bin-x64-2.9.tar.lzma
-2020/07/06 | 72071 | systems/win32/miktex/tm/packages/next/miktex-cjkutils-bin-2.9.tar.lzma
-2020/07/06 | 79199 | systems/win32/miktex/tm/packages/next/miktex-cjkutils-bin-x64-2.9.tar.lzma
-2020/07/06 | 203500 | systems/win32/miktex/tm/packages/next/miktex-console-bin-2.9.tar.lzma
-2020/07/06 | 223962 | systems/win32/miktex/tm/packages/next/miktex-console-bin-x64-2.9.tar.lzma
-2020/07/06 | 169760 | systems/win32/miktex/tm/packages/next/miktex-curl-bin-2.9.tar.lzma
-2020/07/06 | 184497 | systems/win32/miktex/tm/packages/next/miktex-curl-bin-x64-2.9.tar.lzma
-2020/07/06 | 51922 | systems/win32/miktex/tm/packages/next/miktex-cweb-bin-2.9.tar.lzma
-2020/07/06 | 58608 | systems/win32/miktex/tm/packages/next/miktex-cweb-bin-x64-2.9.tar.lzma
-2020/07/06 | 20771 | systems/win32/miktex/tm/packages/next/miktex-devnag-bin-2.9.tar.lzma
-2020/07/06 | 22969 | systems/win32/miktex/tm/packages/next/miktex-devnag-bin-x64-2.9.tar.lzma
-2020/07/06 | 460276 | systems/win32/miktex/tm/packages/next/miktex-doc-2.9.tar.lzma
-2020/07/06 | 460366 | systems/win32/miktex/tm/packages/next/miktex-doc.tar.lzma
-2020/07/06 | 45498 | systems/win32/miktex/tm/packages/next/miktex-dvicopy-bin-2.9.tar.lzma
-2020/07/06 | 51044 | systems/win32/miktex/tm/packages/next/miktex-dvicopy-bin-x64-2.9.tar.lzma
-2020/07/06 | 273610 | systems/win32/miktex/tm/packages/next/miktex-dvipdfmx-bin-2.9.tar.lzma
-2020/07/06 | 310931 | systems/win32/miktex/tm/packages/next/miktex-dvipdfmx-bin-x64-2.9.tar.lzma
-2020/07/06 | 40787 | systems/win32/miktex/tm/packages/next/miktex-dvipng-bin-2.9.tar.lzma
-2020/07/06 | 44984 | systems/win32/miktex/tm/packages/next/miktex-dvipng-bin-x64-2.9.tar.lzma
-2020/07/06 | 115819 | systems/win32/miktex/tm/packages/next/miktex-dvips-bin-2.9.tar.lzma
-2020/07/06 | 130330 | systems/win32/miktex/tm/packages/next/miktex-dvips-bin-x64-2.9.tar.lzma
-2020/07/06 | 1266023 | systems/win32/miktex/tm/packages/next/miktex-dvisvgm-bin-2.9.tar.lzma
-2020/07/06 | 1409381 | systems/win32/miktex/tm/packages/next/miktex-dvisvgm-bin-x64-2.9.tar.lzma
-2020/07/06 | 95313 | systems/win32/miktex/tm/packages/next/miktex-epstopdf-bin-2.9.tar.lzma
-2020/07/06 | 109775 | systems/win32/miktex/tm/packages/next/miktex-epstopdf-bin-x64-2.9.tar.lzma
-2020/07/06 | 43305 | systems/win32/miktex/tm/packages/next/miktex-expat-bin-2.9.tar.lzma
-2020/07/06 | 48049 | systems/win32/miktex/tm/packages/next/miktex-expat-bin-x64-2.9.tar.lzma
-2020/07/06 | 46284 | systems/win32/miktex/tm/packages/next/miktex-findtexmf-bin-2.9.tar.lzma
-2020/07/06 | 51239 | systems/win32/miktex/tm/packages/next/miktex-findtexmf-bin-x64-2.9.tar.lzma
-2020/07/06 | 57184 | systems/win32/miktex/tm/packages/next/miktex-fmt-bin-2.9.tar.lzma
-2020/07/06 | 62930 | systems/win32/miktex/tm/packages/next/miktex-fmt-bin-x64-2.9.tar.lzma
-2020/07/06 | 133618 | systems/win32/miktex/tm/packages/next/miktex-fontconfig-bin-2.9.tar.lzma
-2020/07/06 | 151909 | systems/win32/miktex/tm/packages/next/miktex-fontconfig-bin-x64-2.9.tar.lzma
-2020/07/06 | 73102 | systems/win32/miktex/tm/packages/next/miktex-fonts-bin-2.9.tar.lzma
-2020/07/06 | 77566 | systems/win32/miktex/tm/packages/next/miktex-fonts-bin-x64-2.9.tar.lzma
-2020/07/06 | 68820 | systems/win32/miktex/tm/packages/next/miktex-freeglut-bin-2.9.tar.lzma
-2020/07/06 | 77427 | systems/win32/miktex/tm/packages/next/miktex-freeglut-bin-x64-2.9.tar.lzma
-2020/07/06 | 246796 | systems/win32/miktex/tm/packages/next/miktex-freetype2-bin-2.9.tar.lzma
-2020/07/06 | 281689 | systems/win32/miktex/tm/packages/next/miktex-freetype2-bin-x64-2.9.tar.lzma
-2020/07/06 | 25474 | systems/win32/miktex/tm/packages/next/miktex-fribidixetex-bin-2.9.tar.lzma
-2020/07/06 | 28977 | systems/win32/miktex/tm/packages/next/miktex-fribidixetex-bin-x64-2.9.tar.lzma
-2020/07/06 | 100970 | systems/win32/miktex/tm/packages/next/miktex-gd-bin-2.9.tar.lzma
-2020/07/06 | 117131 | systems/win32/miktex/tm/packages/next/miktex-gd-bin-x64-2.9.tar.lzma
-2020/07/06 | 63529 | systems/win32/miktex/tm/packages/next/miktex-graphite2-bin-2.9.tar.lzma
-2020/07/06 | 72600 | systems/win32/miktex/tm/packages/next/miktex-graphite2-bin-x64-2.9.tar.lzma
-2020/07/06 | 94262 | systems/win32/miktex/tm/packages/next/miktex-gregorio-bin-2.9.tar.lzma
-2020/07/06 | 113697 | systems/win32/miktex/tm/packages/next/miktex-gregorio-bin-x64-2.9.tar.lzma
-2020/07/06 | 58973 | systems/win32/miktex/tm/packages/next/miktex-gsf2pk-bin-2.9.tar.lzma
-2020/07/06 | 65576 | systems/win32/miktex/tm/packages/next/miktex-gsf2pk-bin-x64-2.9.tar.lzma
-2020/07/06 | 462359 | systems/win32/miktex/tm/packages/next/miktex-harfbuzz-bin-2.9.tar.lzma
-2020/07/06 | 550399 | systems/win32/miktex/tm/packages/next/miktex-harfbuzz-bin-x64-2.9.tar.lzma
-2020/07/06 | 141816 | systems/win32/miktex/tm/packages/next/miktex-hunspell-bin-2.9.tar.lzma
-2020/07/06 | 154453 | systems/win32/miktex/tm/packages/next/miktex-hunspell-bin-x64-2.9.tar.lzma
-2020/07/06 | 94531 | systems/win32/miktex/tm/packages/next/miktex-jpeg-bin-2.9.tar.lzma
-2020/07/06 | 109016 | systems/win32/miktex/tm/packages/next/miktex-jpeg-bin-x64-2.9.tar.lzma
-2020/07/06 | 15923 | systems/win32/miktex/tm/packages/next/miktex-kpathsea-bin-2.9.tar.lzma
-2020/07/06 | 17621 | systems/win32/miktex/tm/packages/next/miktex-kpathsea-bin-x64-2.9.tar.lzma
-2020/07/06 | 27943 | systems/win32/miktex/tm/packages/next/miktex-lacheck-bin-2.9.tar.lzma
-2020/07/06 | 29631 | systems/win32/miktex/tm/packages/next/miktex-lacheck-bin-x64-2.9.tar.lzma
-2020/07/06 | 623384 | systems/win32/miktex/tm/packages/next/miktex-lcdf-typetools-bin-2.9.tar.lzma
-2020/07/06 | 676982 | systems/win32/miktex/tm/packages/next/miktex-lcdf-typetools-bin-x64-2.9.tar.lzma
-2020/07/06 | 500484 | systems/win32/miktex/tm/packages/next/miktex-libressl-bin-2.9.tar.lzma
-2020/07/06 | 562945 | systems/win32/miktex/tm/packages/next/miktex-libressl-bin-x64-2.9.tar.lzma
-2020/07/06 | 544668 | systems/win32/miktex/tm/packages/next/miktex-log4cxx-bin-2.9.tar.lzma
-2020/07/06 | 586876 | systems/win32/miktex/tm/packages/next/miktex-log4cxx-bin-x64-2.9.tar.lzma
-2020/07/06 | 93645 | systems/win32/miktex/tm/packages/next/miktex-lua53-bin-2.9.tar.lzma
-2020/07/06 | 102563 | systems/win32/miktex/tm/packages/next/miktex-lua53-bin-x64-2.9.tar.lzma
-2020/07/06 | 1751870 | systems/win32/miktex/tm/packages/next/miktex-luatex-bin-2.9.tar.lzma
-2020/07/06 | 2028475 | systems/win32/miktex/tm/packages/next/miktex-luatex-bin-x64-2.9.tar.lzma
-2020/07/06 | 67271 | systems/win32/miktex/tm/packages/next/miktex-lzma-bin-2.9.tar.lzma
-2020/07/06 | 73668 | systems/win32/miktex/tm/packages/next/miktex-lzma-bin-x64-2.9.tar.lzma
-2020/07/06 | 26955 | systems/win32/miktex/tm/packages/next/miktex-makeindex-bin-2.9.tar.lzma
-2020/07/06 | 31223 | systems/win32/miktex/tm/packages/next/miktex-makeindex-bin-x64-2.9.tar.lzma
-2020/07/06 | 7557 | systems/win32/miktex/tm/packages/next/miktex-md5-bin-2.9.tar.lzma
-2020/07/06 | 8581 | systems/win32/miktex/tm/packages/next/miktex-md5-bin-x64-2.9.tar.lzma
-2020/07/06 | 171138 | systems/win32/miktex/tm/packages/next/miktex-metafont-bin-2.9.tar.lzma
-2020/07/06 | 187109 | systems/win32/miktex/tm/packages/next/miktex-metafont-bin-x64-2.9.tar.lzma
-2020/07/06 | 269063 | systems/win32/miktex/tm/packages/next/miktex-metapost-bin-2.9.tar.lzma
-2020/07/06 | 305168 | systems/win32/miktex/tm/packages/next/miktex-metapost-bin-x64-2.9.tar.lzma
-2020/07/06 | 96909 | systems/win32/miktex/tm/packages/next/miktex-mfware-bin-2.9.tar.lzma
-2020/07/06 | 101911 | systems/win32/miktex/tm/packages/next/miktex-mfware-bin-x64-2.9.tar.lzma
-2020/07/06 | 79744 | systems/win32/miktex/tm/packages/next/miktex-mkfntmap-bin-2.9.tar.lzma
-2020/07/06 | 88780 | systems/win32/miktex/tm/packages/next/miktex-mkfntmap-bin-x64-2.9.tar.lzma
-2020/07/06 | 170232 | systems/win32/miktex/tm/packages/next/miktex-mktex-bin-2.9.tar.lzma
-2020/07/06 | 189215 | systems/win32/miktex/tm/packages/next/miktex-mktex-bin-x64-2.9.tar.lzma
-2020/07/06 | 159287 | systems/win32/miktex/tm/packages/next/miktex-mo-bin-2.9.tar.lzma
-2020/07/06 | 179906 | systems/win32/miktex/tm/packages/next/miktex-mo-bin-x64-2.9.tar.lzma
-2020/07/06 | 196477 | systems/win32/miktex/tm/packages/next/miktex-mpfr-bin-2.9.tar.lzma
-2020/07/06 | 177270 | systems/win32/miktex/tm/packages/next/miktex-mpfr-bin-x64-2.9.tar.lzma
-2020/07/06 | 84819 | systems/win32/miktex/tm/packages/next/miktex-mpmcli-bin-2.9.tar.lzma
-2020/07/06 | 96515 | systems/win32/miktex/tm/packages/next/miktex-mpmcli-bin-x64-2.9.tar.lzma
-2020/07/06 | 31242 | systems/win32/miktex/tm/packages/next/miktex-mspack-bin-2.9.tar.lzma
-2020/07/06 | 35051 | systems/win32/miktex/tm/packages/next/miktex-mspack-bin-x64-2.9.tar.lzma
-2020/07/06 | 57249 | systems/win32/miktex/tm/packages/next/miktex-mthelp-bin-2.9.tar.lzma
-2020/07/06 | 64201 | systems/win32/miktex/tm/packages/next/miktex-mthelp-bin-x64-2.9.tar.lzma
-2020/07/06 | 63351 | systems/win32/miktex/tm/packages/next/miktex-mtprint-bin-2.9.tar.lzma
-2020/07/06 | 69875 | systems/win32/miktex/tm/packages/next/miktex-mtprint-bin-x64-2.9.tar.lzma
-2020/07/06 | 45737 | systems/win32/miktex/tm/packages/next/miktex-m-tx-bin-2.9.tar.lzma
-2020/07/06 | 52206 | systems/win32/miktex/tm/packages/next/miktex-m-tx-bin-x64-2.9.tar.lzma
-2020/07/06 | 193352 | systems/win32/miktex/tm/packages/next/miktex-omegaware-bin-2.9.tar.lzma
-2020/07/06 | 210650 | systems/win32/miktex/tm/packages/next/miktex-omegaware-bin-x64-2.9.tar.lzma
-2020/07/06 | 35336 | systems/win32/miktex/tm/packages/next/miktex-patgen-bin-2.9.tar.lzma
-2020/07/06 | 35313 | systems/win32/miktex/tm/packages/next/miktex-patgen-bin.tar.lzma
-2020/07/06 | 39507 | systems/win32/miktex/tm/packages/next/miktex-patgen-bin-x64-2.9.tar.lzma
-2020/07/06 | 39508 | systems/win32/miktex/tm/packages/next/miktex-patgen-bin-x64.tar.lzma
-2020/07/06 | 327004 | systems/win32/miktex/tm/packages/next/miktex-pdftex-bin-2.9.tar.lzma
-2020/07/06 | 360665 | systems/win32/miktex/tm/packages/next/miktex-pdftex-bin-x64-2.9.tar.lzma
-2020/07/06 | 187768 | systems/win32/miktex/tm/packages/next/miktex-pixman-bin-2.9.tar.lzma
-2020/07/06 | 194054 | systems/win32/miktex/tm/packages/next/miktex-pixman-bin-x64-2.9.tar.lzma
-2020/07/06 | 207507 | systems/win32/miktex/tm/packages/next/miktex-pmx-bin-2.9.tar.lzma
-2020/07/06 | 243027 | systems/win32/miktex/tm/packages/next/miktex-pmx-bin-x64-2.9.tar.lzma
-2020/07/06 | 78147 | systems/win32/miktex/tm/packages/next/miktex-png-bin-2.9.tar.lzma
-2020/07/06 | 87407 | systems/win32/miktex/tm/packages/next/miktex-png-bin-x64-2.9.tar.lzma
-2020/07/06 | 922566 | systems/win32/miktex/tm/packages/next/miktex-poppler-bin-2.9.tar.lzma
-2020/07/06 | 1021925 | systems/win32/miktex/tm/packages/next/miktex-poppler-bin-x64-2.9.tar.lzma
-2020/07/06 | 20012 | systems/win32/miktex/tm/packages/next/miktex-popt-bin-2.9.tar.lzma
-2020/07/06 | 23597 | systems/win32/miktex/tm/packages/next/miktex-popt-bin-x64-2.9.tar.lzma
-2020/07/06 | 31242 | systems/win32/miktex/tm/packages/next/miktex-posix-bin-2.9.tar.lzma
-2020/07/06 | 36861 | systems/win32/miktex/tm/packages/next/miktex-posix-bin-x64-2.9.tar.lzma
-2020/07/06 | 63502 | systems/win32/miktex/tm/packages/next/miktex-ps2pk-bin-2.9.tar.lzma
-2020/07/06 | 71533 | systems/win32/miktex/tm/packages/next/miktex-ps2pk-bin-x64-2.9.tar.lzma
-2020/07/06 | 42502 | systems/win32/miktex/tm/packages/next/miktex-psutils-bin-2.9.tar.lzma
-2020/07/06 | 50905 | systems/win32/miktex/tm/packages/next/miktex-psutils-bin-x64-2.9.tar.lzma
-2020/07/06 | 1193672 | systems/win32/miktex/tm/packages/next/miktex-runtime-bin-2.9.tar.lzma
-2020/07/06 | 1327710 | systems/win32/miktex/tm/packages/next/miktex-runtime-bin-x64-2.9.tar.lzma
-2020/07/06 | 42064 | systems/win32/miktex/tm/packages/next/miktex-synctex-bin-2.9.tar.lzma
-2020/07/06 | 51417 | systems/win32/miktex/tm/packages/next/miktex-synctex-bin-x64-2.9.tar.lzma
-2020/07/06 | 76757 | systems/win32/miktex/tm/packages/next/miktex-tdsutil-bin-2.9.tar.lzma
-2020/07/06 | 76738 | systems/win32/miktex/tm/packages/next/miktex-tdsutil-bin.tar.lzma
-2020/07/06 | 82832 | systems/win32/miktex/tm/packages/next/miktex-tdsutil-bin-x64-2.9.tar.lzma
-2020/07/06 | 82762 | systems/win32/miktex/tm/packages/next/miktex-tdsutil-bin-x64.tar.lzma
-2020/07/06 | 26878 | systems/win32/miktex/tm/packages/next/miktex-teckit-bin-2.9.tar.lzma
-2020/07/06 | 29182 | systems/win32/miktex/tm/packages/next/miktex-teckit-bin-x64-2.9.tar.lzma
-2020/07/06 | 16017 | systems/win32/miktex/tm/packages/next/miktex-tex2xindy-bin-2.9.tar.lzma
-2020/07/06 | 17729 | systems/win32/miktex/tm/packages/next/miktex-tex2xindy-bin-x64-2.9.tar.lzma
-2020/07/06 | 63495 | systems/win32/miktex/tm/packages/next/miktex-tex4ht-bin-2.9.tar.lzma
-2020/07/06 | 69136 | systems/win32/miktex/tm/packages/next/miktex-tex4ht-bin-x64-2.9.tar.lzma
-2020/07/06 | 151033 | systems/win32/miktex/tm/packages/next/miktex-tex-bin-2.9.tar.lzma
-2020/07/06 | 164960 | systems/win32/miktex/tm/packages/next/miktex-tex-bin-x64-2.9.tar.lzma
-2020/07/06 | 77603 | systems/win32/miktex/tm/packages/next/miktex-texify-bin-2.9.tar.lzma
-2020/07/06 | 88015 | systems/win32/miktex/tm/packages/next/miktex-texify-bin-x64-2.9.tar.lzma
-2020/07/06 | 98015 | systems/win32/miktex/tm/packages/next/miktex-texware-bin-2.9.tar.lzma
-2020/07/06 | 104589 | systems/win32/miktex/tm/packages/next/miktex-texware-bin-x64-2.9.tar.lzma
-2020/07/06 | 2534428 | systems/win32/miktex/tm/packages/next/miktex-texworks-bin-2.9.tar.lzma
-2020/07/06 | 2659107 | systems/win32/miktex/tm/packages/next/miktex-texworks-bin-x64-2.9.tar.lzma
-2020/07/06 | 55579 | systems/win32/miktex/tm/packages/next/miktex-ttf2pk2-bin-2.9.tar.lzma
-2020/07/06 | 61818 | systems/win32/miktex/tm/packages/next/miktex-ttf2pk2-bin-x64-2.9.tar.lzma
-2020/07/06 | 33136 | systems/win32/miktex/tm/packages/next/miktex-upmendex-bin.tar.lzma
-2020/07/06 | 36964 | systems/win32/miktex/tm/packages/next/miktex-upmendex-bin-x64.tar.lzma
-2020/07/06 | 26629 | systems/win32/miktex/tm/packages/next/miktex-uriparser-bin-2.9.tar.lzma
-2020/07/06 | 32401 | systems/win32/miktex/tm/packages/next/miktex-uriparser-bin-x64-2.9.tar.lzma
-2020/07/06 | 66121 | systems/win32/miktex/tm/packages/next/miktex-web-bin-2.9.tar.lzma
-2020/07/06 | 70303 | systems/win32/miktex/tm/packages/next/miktex-web-bin-x64-2.9.tar.lzma
-2020/07/06 | 249728 | systems/win32/miktex/tm/packages/next/miktex-xetex-bin-2.9.tar.lzma
-2020/07/06 | 279308 | systems/win32/miktex/tm/packages/next/miktex-xetex-bin-x64-2.9.tar.lzma
-2020/07/06 | 597674 | systems/win32/miktex/tm/packages/next/miktex-yap-bin-2.9.tar.lzma
-2020/07/06 | 638874 | systems/win32/miktex/tm/packages/next/miktex-yap-bin-x64-2.9.tar.lzma
-2020/07/06 | 38948 | systems/win32/miktex/tm/packages/next/miktex-zlib-bin-2.9.tar.lzma
-2020/07/06 | 43024 | systems/win32/miktex/tm/packages/next/miktex-zlib-bin-x64-2.9.tar.lzma
-2020/07/06 | 201598 | systems/win32/miktex/tm/packages/next/miktex-zzdb1-2.9.tar.lzma
-2020/07/06 | 1204757 | systems/win32/miktex/tm/packages/next/miktex-zzdb2-2.9.tar.lzma
-2020/07/06 | 1124561 | systems/win32/miktex/tm/packages/next/miktex-zzdb3-2.9.tar.lzma
-2020/07/06 | 13135 | systems/win32/miktex/tm/packages/next/miktex-zzip-bin-2.9.tar.lzma
-2020/07/06 | 14115 | systems/win32/miktex/tm/packages/next/miktex-zzip-bin-x64-2.9.tar.lzma
+2020/07/07 | 540973 | systems/win32/miktex/tm/packages/next/files.csv.lzma
+2020/07/07 | 59173 | systems/win32/miktex/tm/packages/next/miktex-arctrl-bin-2.9.tar.lzma
+2020/07/07 | 67328 | systems/win32/miktex/tm/packages/next/miktex-arctrl-bin-x64-2.9.tar.lzma
+2020/07/07 | 957366 | systems/win32/miktex/tm/packages/next/miktex-asymptote-bin-2.9.tar.lzma
+2020/07/07 | 1060543 | systems/win32/miktex/tm/packages/next/miktex-asymptote-bin-x64-2.9.tar.lzma
+2020/07/07 | 28618 | systems/win32/miktex/tm/packages/next/miktex-autosp-bin-2.9.tar.lzma
+2020/07/07 | 30892 | systems/win32/miktex/tm/packages/next/miktex-autosp-bin-x64-2.9.tar.lzma
+2020/07/07 | 29321 | systems/win32/miktex/tm/packages/next/miktex-axohelp-bin-2.9.tar.lzma
+2020/07/07 | 34703 | systems/win32/miktex/tm/packages/next/miktex-axohelp-bin-x64-2.9.tar.lzma
+2020/07/07 | 49695 | systems/win32/miktex/tm/packages/next/miktex-bibarts-bin-2.9.tar.lzma
+2020/07/07 | 57199 | systems/win32/miktex/tm/packages/next/miktex-bibarts-bin-x64-2.9.tar.lzma
+2020/07/07 | 84390 | systems/win32/miktex/tm/packages/next/miktex-bibtex8bit-bin-2.9.tar.lzma
+2020/07/07 | 93648 | systems/win32/miktex/tm/packages/next/miktex-bibtex8bit-bin-x64-2.9.tar.lzma
+2020/07/07 | 65602 | systems/win32/miktex/tm/packages/next/miktex-bibtex-bin-2.9.tar.lzma
+2020/07/07 | 73409 | systems/win32/miktex/tm/packages/next/miktex-bibtex-bin-x64-2.9.tar.lzma
+2020/07/07 | 27037 | systems/win32/miktex/tm/packages/next/miktex-bzip2-bin-2.9.tar.lzma
+2020/07/07 | 30876 | systems/win32/miktex/tm/packages/next/miktex-bzip2-bin-x64-2.9.tar.lzma
+2020/07/07 | 329721 | systems/win32/miktex/tm/packages/next/miktex-cairo-bin-2.9.tar.lzma
+2020/07/07 | 392543 | systems/win32/miktex/tm/packages/next/miktex-cairo-bin-x64-2.9.tar.lzma
+2020/07/07 | 32134 | systems/win32/miktex/tm/packages/next/miktex-chktex-bin-2.9.tar.lzma
+2020/07/07 | 36308 | systems/win32/miktex/tm/packages/next/miktex-chktex-bin-x64-2.9.tar.lzma
+2020/07/07 | 72073 | systems/win32/miktex/tm/packages/next/miktex-cjkutils-bin-2.9.tar.lzma
+2020/07/07 | 79200 | systems/win32/miktex/tm/packages/next/miktex-cjkutils-bin-x64-2.9.tar.lzma
+2020/07/07 | 203498 | systems/win32/miktex/tm/packages/next/miktex-console-bin-2.9.tar.lzma
+2020/07/07 | 223963 | systems/win32/miktex/tm/packages/next/miktex-console-bin-x64-2.9.tar.lzma
+2020/07/07 | 169762 | systems/win32/miktex/tm/packages/next/miktex-curl-bin-2.9.tar.lzma
+2020/07/07 | 184502 | systems/win32/miktex/tm/packages/next/miktex-curl-bin-x64-2.9.tar.lzma
+2020/07/07 | 51923 | systems/win32/miktex/tm/packages/next/miktex-cweb-bin-2.9.tar.lzma
+2020/07/07 | 58608 | systems/win32/miktex/tm/packages/next/miktex-cweb-bin-x64-2.9.tar.lzma
+2020/07/07 | 20769 | systems/win32/miktex/tm/packages/next/miktex-devnag-bin-2.9.tar.lzma
+2020/07/07 | 22969 | systems/win32/miktex/tm/packages/next/miktex-devnag-bin-x64-2.9.tar.lzma
+2020/07/07 | 460275 | systems/win32/miktex/tm/packages/next/miktex-doc-2.9.tar.lzma
+2020/07/07 | 460366 | systems/win32/miktex/tm/packages/next/miktex-doc.tar.lzma
+2020/07/07 | 45499 | systems/win32/miktex/tm/packages/next/miktex-dvicopy-bin-2.9.tar.lzma
+2020/07/07 | 51044 | systems/win32/miktex/tm/packages/next/miktex-dvicopy-bin-x64-2.9.tar.lzma
+2020/07/07 | 273613 | systems/win32/miktex/tm/packages/next/miktex-dvipdfmx-bin-2.9.tar.lzma
+2020/07/07 | 310932 | systems/win32/miktex/tm/packages/next/miktex-dvipdfmx-bin-x64-2.9.tar.lzma
+2020/07/07 | 40786 | systems/win32/miktex/tm/packages/next/miktex-dvipng-bin-2.9.tar.lzma
+2020/07/07 | 44984 | systems/win32/miktex/tm/packages/next/miktex-dvipng-bin-x64-2.9.tar.lzma
+2020/07/07 | 115819 | systems/win32/miktex/tm/packages/next/miktex-dvips-bin-2.9.tar.lzma
+2020/07/07 | 130330 | systems/win32/miktex/tm/packages/next/miktex-dvips-bin-x64-2.9.tar.lzma
+2020/07/07 | 1266025 | systems/win32/miktex/tm/packages/next/miktex-dvisvgm-bin-2.9.tar.lzma
+2020/07/07 | 1409381 | systems/win32/miktex/tm/packages/next/miktex-dvisvgm-bin-x64-2.9.tar.lzma
+2020/07/07 | 95313 | systems/win32/miktex/tm/packages/next/miktex-epstopdf-bin-2.9.tar.lzma
+2020/07/07 | 109776 | systems/win32/miktex/tm/packages/next/miktex-epstopdf-bin-x64-2.9.tar.lzma
+2020/07/07 | 43306 | systems/win32/miktex/tm/packages/next/miktex-expat-bin-2.9.tar.lzma
+2020/07/07 | 48050 | systems/win32/miktex/tm/packages/next/miktex-expat-bin-x64-2.9.tar.lzma
+2020/07/07 | 46285 | systems/win32/miktex/tm/packages/next/miktex-findtexmf-bin-2.9.tar.lzma
+2020/07/07 | 51241 | systems/win32/miktex/tm/packages/next/miktex-findtexmf-bin-x64-2.9.tar.lzma
+2020/07/07 | 57185 | systems/win32/miktex/tm/packages/next/miktex-fmt-bin-2.9.tar.lzma
+2020/07/07 | 62930 | systems/win32/miktex/tm/packages/next/miktex-fmt-bin-x64-2.9.tar.lzma
+2020/07/07 | 133621 | systems/win32/miktex/tm/packages/next/miktex-fontconfig-bin-2.9.tar.lzma
+2020/07/07 | 151908 | systems/win32/miktex/tm/packages/next/miktex-fontconfig-bin-x64-2.9.tar.lzma
+2020/07/07 | 73102 | systems/win32/miktex/tm/packages/next/miktex-fonts-bin-2.9.tar.lzma
+2020/07/07 | 77568 | systems/win32/miktex/tm/packages/next/miktex-fonts-bin-x64-2.9.tar.lzma
+2020/07/07 | 68821 | systems/win32/miktex/tm/packages/next/miktex-freeglut-bin-2.9.tar.lzma
+2020/07/07 | 77428 | systems/win32/miktex/tm/packages/next/miktex-freeglut-bin-x64-2.9.tar.lzma
+2020/07/07 | 246797 | systems/win32/miktex/tm/packages/next/miktex-freetype2-bin-2.9.tar.lzma
+2020/07/07 | 281692 | systems/win32/miktex/tm/packages/next/miktex-freetype2-bin-x64-2.9.tar.lzma
+2020/07/07 | 25474 | systems/win32/miktex/tm/packages/next/miktex-fribidixetex-bin-2.9.tar.lzma
+2020/07/07 | 28976 | systems/win32/miktex/tm/packages/next/miktex-fribidixetex-bin-x64-2.9.tar.lzma
+2020/07/07 | 100972 | systems/win32/miktex/tm/packages/next/miktex-gd-bin-2.9.tar.lzma
+2020/07/07 | 117131 | systems/win32/miktex/tm/packages/next/miktex-gd-bin-x64-2.9.tar.lzma
+2020/07/07 | 63531 | systems/win32/miktex/tm/packages/next/miktex-graphite2-bin-2.9.tar.lzma
+2020/07/07 | 72601 | systems/win32/miktex/tm/packages/next/miktex-graphite2-bin-x64-2.9.tar.lzma
+2020/07/07 | 94265 | systems/win32/miktex/tm/packages/next/miktex-gregorio-bin-2.9.tar.lzma
+2020/07/07 | 113699 | systems/win32/miktex/tm/packages/next/miktex-gregorio-bin-x64-2.9.tar.lzma
+2020/07/07 | 58973 | systems/win32/miktex/tm/packages/next/miktex-gsf2pk-bin-2.9.tar.lzma
+2020/07/07 | 65576 | systems/win32/miktex/tm/packages/next/miktex-gsf2pk-bin-x64-2.9.tar.lzma
+2020/07/07 | 462360 | systems/win32/miktex/tm/packages/next/miktex-harfbuzz-bin-2.9.tar.lzma
+2020/07/07 | 550400 | systems/win32/miktex/tm/packages/next/miktex-harfbuzz-bin-x64-2.9.tar.lzma
+2020/07/07 | 141818 | systems/win32/miktex/tm/packages/next/miktex-hunspell-bin-2.9.tar.lzma
+2020/07/07 | 154453 | systems/win32/miktex/tm/packages/next/miktex-hunspell-bin-x64-2.9.tar.lzma
+2020/07/07 | 94532 | systems/win32/miktex/tm/packages/next/miktex-jpeg-bin-2.9.tar.lzma
+2020/07/07 | 109015 | systems/win32/miktex/tm/packages/next/miktex-jpeg-bin-x64-2.9.tar.lzma
+2020/07/07 | 15922 | systems/win32/miktex/tm/packages/next/miktex-kpathsea-bin-2.9.tar.lzma
+2020/07/07 | 17621 | systems/win32/miktex/tm/packages/next/miktex-kpathsea-bin-x64-2.9.tar.lzma
+2020/07/07 | 27945 | systems/win32/miktex/tm/packages/next/miktex-lacheck-bin-2.9.tar.lzma
+2020/07/07 | 29633 | systems/win32/miktex/tm/packages/next/miktex-lacheck-bin-x64-2.9.tar.lzma
+2020/07/07 | 623384 | systems/win32/miktex/tm/packages/next/miktex-lcdf-typetools-bin-2.9.tar.lzma
+2020/07/07 | 676982 | systems/win32/miktex/tm/packages/next/miktex-lcdf-typetools-bin-x64-2.9.tar.lzma
+2020/07/07 | 500485 | systems/win32/miktex/tm/packages/next/miktex-libressl-bin-2.9.tar.lzma
+2020/07/07 | 562946 | systems/win32/miktex/tm/packages/next/miktex-libressl-bin-x64-2.9.tar.lzma
+2020/07/07 | 544671 | systems/win32/miktex/tm/packages/next/miktex-log4cxx-bin-2.9.tar.lzma
+2020/07/07 | 586876 | systems/win32/miktex/tm/packages/next/miktex-log4cxx-bin-x64-2.9.tar.lzma
+2020/07/07 | 93648 | systems/win32/miktex/tm/packages/next/miktex-lua53-bin-2.9.tar.lzma
+2020/07/07 | 102565 | systems/win32/miktex/tm/packages/next/miktex-lua53-bin-x64-2.9.tar.lzma
+2020/07/07 | 1751872 | systems/win32/miktex/tm/packages/next/miktex-luatex-bin-2.9.tar.lzma
+2020/07/07 | 2028474 | systems/win32/miktex/tm/packages/next/miktex-luatex-bin-x64-2.9.tar.lzma
+2020/07/07 | 67272 | systems/win32/miktex/tm/packages/next/miktex-lzma-bin-2.9.tar.lzma
+2020/07/07 | 73670 | systems/win32/miktex/tm/packages/next/miktex-lzma-bin-x64-2.9.tar.lzma
+2020/07/07 | 26956 | systems/win32/miktex/tm/packages/next/miktex-makeindex-bin-2.9.tar.lzma
+2020/07/07 | 31223 | systems/win32/miktex/tm/packages/next/miktex-makeindex-bin-x64-2.9.tar.lzma
+2020/07/07 | 7557 | systems/win32/miktex/tm/packages/next/miktex-md5-bin-2.9.tar.lzma
+2020/07/07 | 8581 | systems/win32/miktex/tm/packages/next/miktex-md5-bin-x64-2.9.tar.lzma
+2020/07/07 | 171139 | systems/win32/miktex/tm/packages/next/miktex-metafont-bin-2.9.tar.lzma
+2020/07/07 | 187111 | systems/win32/miktex/tm/packages/next/miktex-metafont-bin-x64-2.9.tar.lzma
+2020/07/07 | 269065 | systems/win32/miktex/tm/packages/next/miktex-metapost-bin-2.9.tar.lzma
+2020/07/07 | 305166 | systems/win32/miktex/tm/packages/next/miktex-metapost-bin-x64-2.9.tar.lzma
+2020/07/07 | 96906 | systems/win32/miktex/tm/packages/next/miktex-mfware-bin-2.9.tar.lzma
+2020/07/07 | 101913 | systems/win32/miktex/tm/packages/next/miktex-mfware-bin-x64-2.9.tar.lzma
+2020/07/07 | 79744 | systems/win32/miktex/tm/packages/next/miktex-mkfntmap-bin-2.9.tar.lzma
+2020/07/07 | 88780 | systems/win32/miktex/tm/packages/next/miktex-mkfntmap-bin-x64-2.9.tar.lzma
+2020/07/07 | 170233 | systems/win32/miktex/tm/packages/next/miktex-mktex-bin-2.9.tar.lzma
+2020/07/07 | 189216 | systems/win32/miktex/tm/packages/next/miktex-mktex-bin-x64-2.9.tar.lzma
+2020/07/07 | 159287 | systems/win32/miktex/tm/packages/next/miktex-mo-bin-2.9.tar.lzma
+2020/07/07 | 179905 | systems/win32/miktex/tm/packages/next/miktex-mo-bin-x64-2.9.tar.lzma
+2020/07/07 | 196475 | systems/win32/miktex/tm/packages/next/miktex-mpfr-bin-2.9.tar.lzma
+2020/07/07 | 177271 | systems/win32/miktex/tm/packages/next/miktex-mpfr-bin-x64-2.9.tar.lzma
+2020/07/07 | 84820 | systems/win32/miktex/tm/packages/next/miktex-mpmcli-bin-2.9.tar.lzma
+2020/07/07 | 96515 | systems/win32/miktex/tm/packages/next/miktex-mpmcli-bin-x64-2.9.tar.lzma
+2020/07/07 | 31243 | systems/win32/miktex/tm/packages/next/miktex-mspack-bin-2.9.tar.lzma
+2020/07/07 | 35051 | systems/win32/miktex/tm/packages/next/miktex-mspack-bin-x64-2.9.tar.lzma
+2020/07/07 | 57249 | systems/win32/miktex/tm/packages/next/miktex-mthelp-bin-2.9.tar.lzma
+2020/07/07 | 64202 | systems/win32/miktex/tm/packages/next/miktex-mthelp-bin-x64-2.9.tar.lzma
+2020/07/07 | 63351 | systems/win32/miktex/tm/packages/next/miktex-mtprint-bin-2.9.tar.lzma
+2020/07/07 | 69875 | systems/win32/miktex/tm/packages/next/miktex-mtprint-bin-x64-2.9.tar.lzma
+2020/07/07 | 45738 | systems/win32/miktex/tm/packages/next/miktex-m-tx-bin-2.9.tar.lzma
+2020/07/07 | 52205 | systems/win32/miktex/tm/packages/next/miktex-m-tx-bin-x64-2.9.tar.lzma
+2020/07/07 | 193353 | systems/win32/miktex/tm/packages/next/miktex-omegaware-bin-2.9.tar.lzma
+2020/07/07 | 210650 | systems/win32/miktex/tm/packages/next/miktex-omegaware-bin-x64-2.9.tar.lzma
+2020/07/07 | 35337 | systems/win32/miktex/tm/packages/next/miktex-patgen-bin-2.9.tar.lzma
+2020/07/07 | 35314 | systems/win32/miktex/tm/packages/next/miktex-patgen-bin.tar.lzma
+2020/07/07 | 39509 | systems/win32/miktex/tm/packages/next/miktex-patgen-bin-x64-2.9.tar.lzma
+2020/07/07 | 39507 | systems/win32/miktex/tm/packages/next/miktex-patgen-bin-x64.tar.lzma
+2020/07/07 | 327005 | systems/win32/miktex/tm/packages/next/miktex-pdftex-bin-2.9.tar.lzma
+2020/07/07 | 360664 | systems/win32/miktex/tm/packages/next/miktex-pdftex-bin-x64-2.9.tar.lzma
+2020/07/07 | 187767 | systems/win32/miktex/tm/packages/next/miktex-pixman-bin-2.9.tar.lzma
+2020/07/07 | 194055 | systems/win32/miktex/tm/packages/next/miktex-pixman-bin-x64-2.9.tar.lzma
+2020/07/07 | 207508 | systems/win32/miktex/tm/packages/next/miktex-pmx-bin-2.9.tar.lzma
+2020/07/07 | 243026 | systems/win32/miktex/tm/packages/next/miktex-pmx-bin-x64-2.9.tar.lzma
+2020/07/07 | 78147 | systems/win32/miktex/tm/packages/next/miktex-png-bin-2.9.tar.lzma
+2020/07/07 | 87408 | systems/win32/miktex/tm/packages/next/miktex-png-bin-x64-2.9.tar.lzma
+2020/07/07 | 922567 | systems/win32/miktex/tm/packages/next/miktex-poppler-bin-2.9.tar.lzma
+2020/07/07 | 1021925 | systems/win32/miktex/tm/packages/next/miktex-poppler-bin-x64-2.9.tar.lzma
+2020/07/07 | 20014 | systems/win32/miktex/tm/packages/next/miktex-popt-bin-2.9.tar.lzma
+2020/07/07 | 23597 | systems/win32/miktex/tm/packages/next/miktex-popt-bin-x64-2.9.tar.lzma
+2020/07/07 | 31243 | systems/win32/miktex/tm/packages/next/miktex-posix-bin-2.9.tar.lzma
+2020/07/07 | 36862 | systems/win32/miktex/tm/packages/next/miktex-posix-bin-x64-2.9.tar.lzma
+2020/07/07 | 63502 | systems/win32/miktex/tm/packages/next/miktex-ps2pk-bin-2.9.tar.lzma
+2020/07/07 | 71533 | systems/win32/miktex/tm/packages/next/miktex-ps2pk-bin-x64-2.9.tar.lzma
+2020/07/07 | 42503 | systems/win32/miktex/tm/packages/next/miktex-psutils-bin-2.9.tar.lzma
+2020/07/07 | 50904 | systems/win32/miktex/tm/packages/next/miktex-psutils-bin-x64-2.9.tar.lzma
+2020/07/07 | 1193676 | systems/win32/miktex/tm/packages/next/miktex-runtime-bin-2.9.tar.lzma
+2020/07/07 | 1327712 | systems/win32/miktex/tm/packages/next/miktex-runtime-bin-x64-2.9.tar.lzma
+2020/07/07 | 42065 | systems/win32/miktex/tm/packages/next/miktex-synctex-bin-2.9.tar.lzma
+2020/07/07 | 51417 | systems/win32/miktex/tm/packages/next/miktex-synctex-bin-x64-2.9.tar.lzma
+2020/07/07 | 76754 | systems/win32/miktex/tm/packages/next/miktex-tdsutil-bin-2.9.tar.lzma
+2020/07/07 | 76737 | systems/win32/miktex/tm/packages/next/miktex-tdsutil-bin.tar.lzma
+2020/07/07 | 82833 | systems/win32/miktex/tm/packages/next/miktex-tdsutil-bin-x64-2.9.tar.lzma
+2020/07/07 | 82762 | systems/win32/miktex/tm/packages/next/miktex-tdsutil-bin-x64.tar.lzma
+2020/07/07 | 26879 | systems/win32/miktex/tm/packages/next/miktex-teckit-bin-2.9.tar.lzma
+2020/07/07 | 29182 | systems/win32/miktex/tm/packages/next/miktex-teckit-bin-x64-2.9.tar.lzma
+2020/07/07 | 16018 | systems/win32/miktex/tm/packages/next/miktex-tex2xindy-bin-2.9.tar.lzma
+2020/07/07 | 17730 | systems/win32/miktex/tm/packages/next/miktex-tex2xindy-bin-x64-2.9.tar.lzma
+2020/07/07 | 63496 | systems/win32/miktex/tm/packages/next/miktex-tex4ht-bin-2.9.tar.lzma
+2020/07/07 | 69135 | systems/win32/miktex/tm/packages/next/miktex-tex4ht-bin-x64-2.9.tar.lzma
+2020/07/07 | 151032 | systems/win32/miktex/tm/packages/next/miktex-tex-bin-2.9.tar.lzma
+2020/07/07 | 164958 | systems/win32/miktex/tm/packages/next/miktex-tex-bin-x64-2.9.tar.lzma
+2020/07/07 | 77604 | systems/win32/miktex/tm/packages/next/miktex-texify-bin-2.9.tar.lzma
+2020/07/07 | 88015 | systems/win32/miktex/tm/packages/next/miktex-texify-bin-x64-2.9.tar.lzma
+2020/07/07 | 98015 | systems/win32/miktex/tm/packages/next/miktex-texware-bin-2.9.tar.lzma
+2020/07/07 | 104589 | systems/win32/miktex/tm/packages/next/miktex-texware-bin-x64-2.9.tar.lzma
+2020/07/07 | 2534429 | systems/win32/miktex/tm/packages/next/miktex-texworks-bin-2.9.tar.lzma
+2020/07/07 | 2659107 | systems/win32/miktex/tm/packages/next/miktex-texworks-bin-x64-2.9.tar.lzma
+2020/07/07 | 55579 | systems/win32/miktex/tm/packages/next/miktex-ttf2pk2-bin-2.9.tar.lzma
+2020/07/07 | 61818 | systems/win32/miktex/tm/packages/next/miktex-ttf2pk2-bin-x64-2.9.tar.lzma
+2020/07/07 | 33138 | systems/win32/miktex/tm/packages/next/miktex-upmendex-bin.tar.lzma
+2020/07/07 | 36965 | systems/win32/miktex/tm/packages/next/miktex-upmendex-bin-x64.tar.lzma
+2020/07/07 | 26630 | systems/win32/miktex/tm/packages/next/miktex-uriparser-bin-2.9.tar.lzma
+2020/07/07 | 32404 | systems/win32/miktex/tm/packages/next/miktex-uriparser-bin-x64-2.9.tar.lzma
+2020/07/07 | 66120 | systems/win32/miktex/tm/packages/next/miktex-web-bin-2.9.tar.lzma
+2020/07/07 | 70302 | systems/win32/miktex/tm/packages/next/miktex-web-bin-x64-2.9.tar.lzma
+2020/07/07 | 249728 | systems/win32/miktex/tm/packages/next/miktex-xetex-bin-2.9.tar.lzma
+2020/07/07 | 279309 | systems/win32/miktex/tm/packages/next/miktex-xetex-bin-x64-2.9.tar.lzma
+2020/07/07 | 597671 | systems/win32/miktex/tm/packages/next/miktex-yap-bin-2.9.tar.lzma
+2020/07/07 | 638875 | systems/win32/miktex/tm/packages/next/miktex-yap-bin-x64-2.9.tar.lzma
+2020/07/07 | 38948 | systems/win32/miktex/tm/packages/next/miktex-zlib-bin-2.9.tar.lzma
+2020/07/07 | 43025 | systems/win32/miktex/tm/packages/next/miktex-zlib-bin-x64-2.9.tar.lzma
+2020/07/07 | 201605 | systems/win32/miktex/tm/packages/next/miktex-zzdb1-2.9.tar.lzma
+2020/07/07 | 1205385 | systems/win32/miktex/tm/packages/next/miktex-zzdb2-2.9.tar.lzma
+2020/07/07 | 1126068 | systems/win32/miktex/tm/packages/next/miktex-zzdb3-2.9.tar.lzma
+2020/07/07 | 13135 | systems/win32/miktex/tm/packages/next/miktex-zzip-bin-2.9.tar.lzma
+2020/07/07 | 14116 | systems/win32/miktex/tm/packages/next/miktex-zzip-bin-x64-2.9.tar.lzma
2019/03/12 | 1412 | systems/win32/miktex/tm/packages/nextpage.tar.lzma
-2020/07/06 | 1153 | systems/win32/miktex/tm/packages/next/pr.ini
+2020/07/07 | 1153 | systems/win32/miktex/tm/packages/next/pr.ini
2018/07/06 | 145915 | systems/win32/miktex/tm/packages/nexus-otf.tar.lzma
2017/03/30 | 191149 | systems/win32/miktex/tm/packages/nfssext-cfr.tar.lzma
2012/12/20 | 612251 | systems/win32/miktex/tm/packages/nicefilelist.tar.lzma
@@ -272739,7 +272742,7 @@
2008/11/07 | 35981 | systems/win32/miktex/tm/packages/prettyref.tar.lzma
2017/07/26 | 201385 | systems/win32/miktex/tm/packages/preview.tar.lzma
2019/06/20 | 375963 | systems/win32/miktex/tm/packages/prftree.tar.lzma
-2020/07/06 | 857 | systems/win32/miktex/tm/packages/pr.ini
+2020/07/07 | 857 | systems/win32/miktex/tm/packages/pr.ini
2010/09/27 | 248469 | systems/win32/miktex/tm/packages/printlen.tar.lzma
2008/06/17 | 77313 | systems/win32/miktex/tm/packages/proba.tar.lzma
2017/07/12 | 988486 | systems/win32/miktex/tm/packages/probsoln.tar.lzma
@@ -273885,7 +273888,7 @@
2020/06/18 | 4916176 | systems/win32/w32tex/aleph-w32.tar.xz
2020/06/28 | 66276404 | systems/win32/w32tex/biblatex-biber.tar.xz
2016/12/13 | 65971452 | systems/win32/w32tex/cbfonts.tar.xz
-2020/07/05 | 679589 | systems/win32/w32tex/ChangeLog
+2020/07/06 | 679805 | systems/win32/w32tex/ChangeLog
2009/08/03 | 141221 | systems/win32/w32tex/ChangeLog.0
2009/08/03 | 221890 | systems/win32/w32tex/ChangeLog.1
2009/08/03 | 116462 | systems/win32/w32tex/ChangeLog.2
@@ -273893,7 +273896,7 @@
2017/06/24 | 644754 | systems/win32/w32tex/ChangeLog.4
2020/06/15 | 22150800 | systems/win32/w32tex/cjkzr.tar.xz
2013/04/27 | 15858676 | systems/win32/w32tex/context-doc.tar.xz
-2020/07/02 | 140206852 | systems/win32/w32tex/context.tar.xz
+2020/07/06 | 140200032 | systems/win32/w32tex/context.tar.xz
2020/06/13 | 910472 | systems/win32/w32tex/cweb-w32.tar.xz
2020/03/02 | 6281164 | systems/win32/w32tex/datetime2.tar.xz
2020/06/13 | 845760 | systems/win32/w32tex/dvi2ps-w32.tar.xz
@@ -273926,7 +273929,7 @@
2020/06/22 | 9762648 | systems/win32/w32tex/newtxpx-boondoxfonts.tar.xz
2020/06/13 | 1235252 | systems/win32/w32tex/omegaj-w32.tar.xz
2020/03/01 | 355876 | systems/win32/w32tex/otfbeta.tar.xz
-2020/07/03 | 20826312 | systems/win32/w32tex/pdftex-w32.tar.xz
+2020/07/05 | 20828836 | systems/win32/w32tex/pdftex-w32.tar.xz
2020/07/01 | 81326564 | systems/win32/w32tex/pgfcontrib.tar.xz
2015/01/26 | 189072 | systems/win32/w32tex/plain2-2.54-w32.tar.xz
2020/05/26 | 2823676 | systems/win32/w32tex/platex.tar.xz
@@ -273961,11 +273964,11 @@
2013/04/08 | 722652 | systems/win32/w32tex/utf.tar.xz
2013/04/08 | 13748 | systems/win32/w32tex/vf-n2bk.tar.xz
2020/03/27 | 38319492 | systems/win32/w32tex/w32tex-src.tar.xz
-2020/07/04 | 99280296 | systems/win32/w32tex/web2c-lib.tar.xz
+2020/07/05 | 99275860 | systems/win32/w32tex/web2c-lib.tar.xz
2020/07/01 | 44057500 | systems/win32/w32tex/web2c-w32.tar.xz
2020/06/13 | 811316 | systems/win32/w32tex/win64/aleph-w64.tar.xz
2019/12/09 | 22317480 | systems/win32/w32tex/win64/biblatex-biber-w64.tar.xz
-2020/07/02 | 2144624 | systems/win32/w32tex/win64/context-w64.tar.xz
+2020/07/06 | 2144652 | systems/win32/w32tex/win64/context-w64.tar.xz
2020/06/13 | 82884 | systems/win32/w32tex/win64/cweb-w64.tar.xz
2020/06/13 | 758152 | systems/win32/w32tex/win64/dvi2ps-w64.tar.xz
2020/06/13 | 447760 | systems/win32/w32tex/win64/dvi2tty-w64.tar.xz
@@ -274101,7 +274104,7 @@
2004/06/04 | 404 | tds/tds.sed
2004/06/23 | 65418 | tds/tds.tex
2019/05/29 | 304264 | tds.zip
-2020/07/07 | 186 | timestamp
+2020/07/08 | 186 | timestamp
2002/08/26 | 61898 | usergrps/dante/antrag.pdf
2002/08/26 | 118217 | usergrps/dante/antrag.ps
2017/06/30 | 917 | usergrps/dante/dtk/doc/beispiel.bib
diff --git a/FILES.byname.gz b/FILES.byname.gz
index 5a56ab5432..6447398adb 100644
--- a/FILES.byname.gz
+++ b/FILES.byname.gz
Binary files differ
diff --git a/FILES.last07days b/FILES.last07days
index eacb4ab2f7..34c707d06a 100644
--- a/FILES.last07days
+++ b/FILES.last07days
@@ -1,272 +1,1327 @@
+2020/07/07 | 99 | graphics/asymptote/base/asy_filetype.vim
+2020/07/07 | 998 | graphics/asymptote/GUI/res/icons/chevron-with-circle-right.svg
+2020/07/07 | 9945 | graphics/asymptote/GUI/pyUIClass/custMatTransform.py
+2020/07/07 | 993 | graphics/asymptote/examples/RiemannSphere.asy
+2020/07/07 | 98 | graphics/asymptote/GUI/res/icons/openpolygon.asy
+2020/07/07 | 98 | graphics/asymptote/GUI/res/icons/opencurve.asy
+2020/07/07 | 9892 | graphics/asymptote/profiler.h
+2020/07/07 | 9871 | graphics/asymptote/runstring.in
+2020/07/07 | 986 | graphics/asymptote/predicates.h
+2020/07/07 | 9836 | graphics/asymptote/doc/asymptote.sty
+2020/07/07 | 980 | graphics/asymptote/examples/lmfit1.asy
+2020/07/07 | 98015 | systems/win32/miktex/tm/packages/next/miktex-texware-bin-2.9.tar.lzma
+2020/07/07 | 978 | graphics/asymptote/examples/worksheet.asy
+2020/07/07 | 9771 | graphics/asymptote/jsfile.cc
+2020/07/07 | 974 | graphics/asymptote/prc/Makefile
+2020/07/07 | 972 | graphics/asymptote/examples/fequlogo.asy
+2020/07/07 | 9725 | graphics/asymptote/doc/FAQ/m-html.pl
+2020/07/07 | 971 | graphics/asymptote/examples/filesurface.asy
+2020/07/07 | 969 | graphics/asymptote/runfile.h
+2020/07/07 | 969 | graphics/asymptote/examples/triads.asy
+2020/07/07 | 96906 | systems/win32/miktex/tm/packages/next/miktex-mfware-bin-2.9.tar.lzma
+2020/07/07 | 966 | graphics/asymptote/tests/array/solve.asy
+2020/07/07 | 9651 | graphics/asymptote/triple.h
+2020/07/07 | 96515 | systems/win32/miktex/tm/packages/next/miktex-mpmcli-bin-x64-2.9.tar.lzma
+2020/07/07 | 964 | graphics/asymptote/GUI/xasyTransform.py
+2020/07/07 | 964 | graphics/asymptote/GUI/res/icons/magnifying-glass.svg
+2020/07/07 | 95 | graphics/asymptote/prc/test.asy
+2020/07/07 | 958 | graphics/asymptote/statistics.h
+2020/07/07 | 957366 | systems/win32/miktex/tm/packages/next/miktex-asymptote-bin-2.9.tar.lzma
+2020/07/07 | 956 | graphics/asymptote/examples/poster.asy
+2020/07/07 | 9566 | graphics/asymptote/base/bezulate.asy
+2020/07/07 | 95313 | systems/win32/miktex/tm/packages/next/miktex-epstopdf-bin-2.9.tar.lzma
+2020/07/07 | 946 | graphics/asymptote/examples/animations/cube.asy
+2020/07/07 | 94532 | systems/win32/miktex/tm/packages/next/miktex-jpeg-bin-2.9.tar.lzma
+2020/07/07 | 94265 | systems/win32/miktex/tm/packages/next/miktex-gregorio-bin-2.9.tar.lzma
+2020/07/07 | 9399 | graphics/asymptote/base/rationalSimplex.asy
+2020/07/07 | 936 | graphics/asymptote/tests/array/array.asy
+2020/07/07 | 93648 | systems/win32/miktex/tm/packages/next/miktex-lua53-bin-2.9.tar.lzma
+2020/07/07 | 93648 | systems/win32/miktex/tm/packages/next/miktex-bibtex8bit-bin-x64-2.9.tar.lzma
+2020/07/07 | 9314 | graphics/asymptote/glrender.h
+2020/07/07 | 930 | graphics/asymptote/examples/polararea.asy
+2020/07/07 | 9309 | graphics/asymptote/base/plain_paths.asy
+2020/07/07 | 9251 | graphics/asymptote/errors
+2020/07/07 | 922567 | systems/win32/miktex/tm/packages/next/miktex-poppler-bin-2.9.tar.lzma
+2020/07/07 | 9208 | systems/texlive/tlnet/archive/cloze.r55763.tar.xz
+2020/07/07 | 9202 | graphics/asymptote/doc/FAQ/bfnnconv.pl
+2020/07/07 | 9196 | macros/latex/required/babel/base/README.md
+2020/07/07 | 917 | graphics/asymptote/opcodes.h
+2020/07/07 | 912 | graphics/asymptote/doc/errorbars.asy
+2020/07/07 | 9094 | graphics/asymptote/application.h
+2020/07/07 | 908 | graphics/asymptote/modifier.h
+2020/07/07 | 908 | graphics/asymptote/coenv.h
+2020/07/07 | 908 | graphics/asymptote/base/map.asy
+2020/07/07 | 9027 | graphics/asymptote/psfile.h
+2020/07/07 | 901 | graphics/asymptote/virtualfieldaccess.cc
+2020/07/07 | 892 | graphics/asymptote/GUI/res/icons/center.svg
+2020/07/07 | 8929 | graphics/asymptote/runmath.in
+2020/07/07 | 891 | graphics/asymptote/angle.h
+2020/07/07 | 8912 | graphics/asymptote/symbol.cc
+2020/07/07 | 88780 | systems/win32/miktex/tm/packages/next/miktex-mkfntmap-bin-x64-2.9.tar.lzma
+2020/07/07 | 8870 | graphics/asymptote/base/asy.vim
+2020/07/07 | 885 | graphics/asymptote/examples/twistedtubes.asy
+2020/07/07 | 883 | graphics/asymptote/GUI/Widg_addPolyOpt.py
+2020/07/07 | 882 | graphics/asymptote/shaders.h
+2020/07/07 | 880 | graphics/asymptote/doc/xasy.1x
+2020/07/07 | 88015 | systems/win32/miktex/tm/packages/next/miktex-texify-bin-x64-2.9.tar.lzma
+2020/07/07 | 8792 | graphics/asymptote/prc/PRCTools/iPRCFile.cc
+2020/07/07 | 877 | graphics/asymptote/doc/markers2.asy
+2020/07/07 | 876 | graphics/asymptote/GUI/res/icons/edit.svg
+2020/07/07 | 87408 | systems/win32/miktex/tm/packages/next/miktex-png-bin-x64-2.9.tar.lzma
+2020/07/07 | 872 | graphics/asymptote/doc/imagecontour.asy
+2020/07/07 | 86 | graphics/asymptote/doc/cylinderskeleton.asy
+2020/07/07 | 868 | graphics/asymptote/examples/xxsq01x-1.asy
+2020/07/07 | 8661 | graphics/asymptote/base/plain_pens.asy
+2020/07/07 | 862 | graphics/asymptote/doc/flowchartdemo.asy
+2020/07/07 | 861 | graphics/asymptote/examples/orthocenter.asy
+2020/07/07 | 8581 | systems/win32/miktex/tm/packages/next/miktex-md5-bin-x64-2.9.tar.lzma
+2020/07/07 | 857 | systems/win32/miktex/tm/packages/pr.ini
+2020/07/07 | 856 | graphics/asymptote/examples/animations/sphere.asy
+2020/07/07 | 85383 | graphics/asymptote/base/three.asy
+2020/07/07 | 852 | graphics/asymptote/parser.h
+2020/07/07 | 850 | graphics/asymptote/GUI/res/icons/android-folder-open.svg
+2020/07/07 | 849 | graphics/asymptote/examples/SierpinskiGasket.asy
+2020/07/07 | 84820 | systems/win32/miktex/tm/packages/next/miktex-mpmcli-bin-2.9.tar.lzma
+2020/07/07 | 845 | graphics/asymptote/envcompleter.h
+2020/07/07 | 8458 | graphics/asymptote/runpath.in
+2020/07/07 | 844 | graphics/asymptote/GUI/res/icons/android-radio-button-on.svg
+2020/07/07 | 84390 | systems/win32/miktex/tm/packages/next/miktex-bibtex8bit-bin-2.9.tar.lzma
+2020/07/07 | 839 | graphics/asymptote/examples/venn3.asy
+2020/07/07 | 838 | graphics/asymptote/GUI/res/icons/close-round.svg
+2020/07/07 | 83751 | graphics/asymptote/webgl/gl.js
+2020/07/07 | 8371 | graphics/asymptote/prc/PRCbitStream.cc
+2020/07/07 | 83431 | graphics/asymptote/lex.yy.cc
+2020/07/07 | 833 | graphics/asymptote/runbacktrace.in
+2020/07/07 | 833 | graphics/asymptote/examples/markregular.asy
+2020/07/07 | 829 | graphics/asymptote/examples/shellsqrtx01.asy
+2020/07/07 | 8290 | graphics/asymptote/base/simplex.asy
+2020/07/07 | 82833 | systems/win32/miktex/tm/packages/next/miktex-tdsutil-bin-x64-2.9.tar.lzma
+2020/07/07 | 827 | graphics/asymptote/examples/xxsq01y.asy
+2020/07/07 | 82762 | systems/win32/miktex/tm/packages/next/miktex-tdsutil-bin-x64.tar.lzma
+2020/07/07 | 8243 | graphics/asymptote/base/asy-kate.sh
+2020/07/07 | 822 | graphics/asymptote/GUI/res/icons/android-expand.svg
+2020/07/07 | 821 | graphics/asymptote/GUI/xasyArgs.py
+2020/07/07 | 821 | graphics/asymptote/doc/secondaryaxis.asy
+2020/07/07 | 81 | graphics/asymptote/doc/bezier.asy
+2020/07/07 | 818 | graphics/asymptote/camperror.h
+2020/07/07 | 815 | graphics/asymptote/webgl/license
+2020/07/07 | 806 | graphics/asymptote/GUI/res/icons/android-refresh.svg
+2020/07/07 | 8062 | graphics/asymptote/runhistory.cc
+2020/07/07 | 802 | graphics/asymptote/GUI/res/icons/android-camera.svg
+2020/07/07 | 8016 | graphics/asymptote/runpath3d.in
+2020/07/07 | 798 | graphics/asymptote/examples/animations/torusanimation.asy
+2020/07/07 | 7975 | graphics/asymptote/doc/asy.1
+2020/07/07 | 79744 | systems/win32/miktex/tm/packages/next/miktex-mkfntmap-bin-2.9.tar.lzma
+2020/07/07 | 7935 | graphics/asymptote/fundec.cc
+2020/07/07 | 793176 | macros/latex/required/babel/base/babel.pdf
+2020/07/07 | 79200 | systems/win32/miktex/tm/packages/next/miktex-cjkutils-bin-x64-2.9.tar.lzma
+2020/07/07 | 7904 | systems/texlive/tlnet/archive/de-macro.r55766.tar.xz
+2020/07/07 | 78 | graphics/asymptote/examples/randompath3.asy
+2020/07/07 | 7872000 | graphics/asymptote/binaries/x86_64-windows/texlive/asy.exe
+2020/07/07 | 784 | graphics/asymptote/examples/vertexshading.asy
+2020/07/07 | 78147 | systems/win32/miktex/tm/packages/next/miktex-png-bin-2.9.tar.lzma
+2020/07/07 | 780 | graphics/asymptote/GUI/res/icons/check.svg
+2020/07/07 | 7808 | graphics/asymptote/coder.cc
+2020/07/07 | 77 | graphics/asymptote/tests/gc/string.asy
+2020/07/07 | 778 | graphics/asymptote/examples/controlsystem.asy
+2020/07/07 | 77604 | systems/win32/miktex/tm/packages/next/miktex-texify-bin-2.9.tar.lzma
+2020/07/07 | 77568 | systems/win32/miktex/tm/packages/next/miktex-fonts-bin-x64-2.9.tar.lzma
+2020/07/07 | 77428 | systems/win32/miktex/tm/packages/next/miktex-freeglut-bin-x64-2.9.tar.lzma
+2020/07/07 | 773 | graphics/asymptote/drawlayer.h
+2020/07/07 | 770 | graphics/asymptote/asy.rc
+2020/07/07 | 770813 | macros/latex/required/babel/base/locale.zip
+2020/07/07 | 76 | graphics/asymptote/examples/grid.asy
+2020/07/07 | 76935 | graphics/asymptote/doc/TeXShopAndAsymptote.pdf
+2020/07/07 | 76801 | graphics/asymptote/gl-matrix-2.4.0-pruned/dist/gl-matrix.js
+2020/07/07 | 76754 | systems/win32/miktex/tm/packages/next/miktex-tdsutil-bin-2.9.tar.lzma
+2020/07/07 | 76737 | systems/win32/miktex/tm/packages/next/miktex-tdsutil-bin.tar.lzma
+2020/07/07 | 764 | graphics/asymptote/GUI/res/icons/android-radio-button-off.svg
+2020/07/07 | 7639 | graphics/asymptote/LICENSE.LESSER
+2020/07/07 | 762 | graphics/asymptote/examples/clockarray.asy
+2020/07/07 | 7605760 | graphics/asymptote/binaries/i386-windows/texlive/asy.exe
+2020/07/07 | 759 | graphics/asymptote/GUI/res/icons/plus-round.svg
+2020/07/07 | 7557 | systems/win32/miktex/tm/packages/next/miktex-md5-bin-2.9.tar.lzma
+2020/07/07 | 75576 | graphics/asymptote/GUI/windows/window1.ui
+2020/07/07 | 754 | graphics/asymptote/GUI/res/icons/circle.svg
+2020/07/07 | 754 | graphics/asymptote/doc/graphmarkers.asy
+2020/07/07 | 750 | graphics/asymptote/vm.h
+2020/07/07 | 7508 | graphics/asymptote/base/plain.asy
+2020/07/07 | 747 | graphics/asymptote/examples/pseudosphere.asy
+2020/07/07 | 746 | graphics/asymptote/tests/array/sort.asy
+2020/07/07 | 7445 | graphics/asymptote/name.cc
+2020/07/07 | 743 | graphics/asymptote/examples/xxsq01.asy
+2020/07/07 | 7422 | graphics/asymptote/base/graph_splinetype.asy
+2020/07/07 | 739 | graphics/asymptote/examples/condor.asy
+2020/07/07 | 7392 | macros/latex/required/babel/base/babel.ins
+2020/07/07 | 737 | graphics/asymptote/tests/array/determinant.asy
+2020/07/07 | 73670 | systems/win32/miktex/tm/packages/next/miktex-lzma-bin-x64-2.9.tar.lzma
+2020/07/07 | 73550 | graphics/asymptote/runarray.cc
+2020/07/07 | 734 | graphics/asymptote/examples/quilt.asy
+2020/07/07 | 73435 | graphics/asymptote/GL/glxew.h
+2020/07/07 | 73409 | systems/win32/miktex/tm/packages/next/miktex-bibtex-bin-x64-2.9.tar.lzma
+2020/07/07 | 73102 | systems/win32/miktex/tm/packages/next/miktex-fonts-bin-2.9.tar.lzma
+2020/07/07 | 7307 | graphics/asymptote/base/stats.asy
+2020/07/07 | 7302 | graphics/asymptote/base/markers.asy
+2020/07/07 | 72 | graphics/asymptote/tests/gc/pen.asy
+2020/07/07 | 729 | graphics/asymptote/base/labelpath.asy
+2020/07/07 | 727 | graphics/asymptote/examples/fermi.asy
+2020/07/07 | 72687 | graphics/asymptote/GUI/Window1.py
+2020/07/07 | 72601 | systems/win32/miktex/tm/packages/next/miktex-graphite2-bin-x64-2.9.tar.lzma
+2020/07/07 | 72387 | graphics/asymptote/base/three_surface.asy
+2020/07/07 | 7230 | graphics/asymptote/runtime.pl
+2020/07/07 | 720 | graphics/asymptote/mod.h
+2020/07/07 | 72073 | systems/win32/miktex/tm/packages/next/miktex-cjkutils-bin-2.9.tar.lzma
+2020/07/07 | 71533 | systems/win32/miktex/tm/packages/next/miktex-ps2pk-bin-x64-2.9.tar.lzma
+2020/07/07 | 714 | graphics/asymptote/examples/unitoctantx.asy
+2020/07/07 | 714 | graphics/asymptote/examples/gamma3.asy
+2020/07/07 | 713 | graphics/asymptote/GUI/res/icons/arrow-move.svg
+2020/07/07 | 7129 | graphics/asymptote/GUI/pyUIClass/widg_addLabel.py
+2020/07/07 | 71223 | graphics/asymptote/base/asy-mode.el
+2020/07/07 | 711 | graphics/asymptote/examples/partialsurface.asy
+2020/07/07 | 710 | graphics/asymptote/GUI/xasySvg.py
+2020/07/07 | 710 | graphics/asymptote/examples/fjortoft.asy
+2020/07/07 | 71044 | macros/latex/contrib/semantex/semantex.tex
+2020/07/07 | 70 | graphics/asymptote/tests/gc/transform.asy
+2020/07/07 | 70751 | graphics/asymptote/prc/oPRCFile.cc
+2020/07/07 | 70302 | systems/win32/miktex/tm/packages/next/miktex-web-bin-x64-2.9.tar.lzma
+2020/07/07 | 700 | graphics/asymptote/GUI/locale/th/LC_MESSAGES/base.po
+2020/07/07 | 69875 | systems/win32/miktex/tm/packages/next/miktex-mtprint-bin-x64-2.9.tar.lzma
+2020/07/07 | 695 | graphics/asymptote/GUI/res/icons/android-close.svg
+2020/07/07 | 691 | graphics/asymptote/examples/centroidfg.asy
+2020/07/07 | 69135 | systems/win32/miktex/tm/packages/next/miktex-tex4ht-bin-x64-2.9.tar.lzma
+2020/07/07 | 6911 | graphics/asymptote/errortest.asy
+2020/07/07 | 6896 | graphics/asymptote/GUI/windows/widg_addLabel.ui
+2020/07/07 | 688 | graphics/asymptote/examples/layers.asy
+2020/07/07 | 68821 | systems/win32/miktex/tm/packages/next/miktex-freeglut-bin-2.9.tar.lzma
+2020/07/07 | 6871 | graphics/asymptote/config.h.in
+2020/07/07 | 6865 | graphics/asymptote/drawlabel.cc
+2020/07/07 | 68543 | graphics/asymptote/base/graph3.asy
+2020/07/07 | 683 | graphics/asymptote/examples/fractaltree.asy
+2020/07/07 | 68126 | graphics/asymptote/prc/PRCTools/describePRC.cc
+2020/07/07 | 680 | graphics/asymptote/tests/array/delete.asy
+2020/07/07 | 679 | graphics/asymptote/examples/genusthree.asy
+2020/07/07 | 6783 | graphics/asymptote/guide.h
+2020/07/07 | 677 | graphics/asymptote/doc/Bode.asy
+2020/07/07 | 676982 | systems/win32/miktex/tm/packages/next/miktex-lcdf-typetools-bin-x64-2.9.tar.lzma
+2020/07/07 | 674 | graphics/asymptote/GUI/res/icons/android-delete.svg
+2020/07/07 | 674 | graphics/asymptote/examples/sqrtx01.asy
+2020/07/07 | 674 | graphics/asymptote/drawpath.h
+2020/07/07 | 673 | graphics/asymptote/GUI/res/icons/save.svg
+2020/07/07 | 67328 | systems/win32/miktex/tm/packages/next/miktex-arctrl-bin-x64-2.9.tar.lzma
+2020/07/07 | 67272 | systems/win32/miktex/tm/packages/next/miktex-lzma-bin-2.9.tar.lzma
+2020/07/07 | 671 | graphics/asymptote/examples/spring.asy
+2020/07/07 | 66 | graphics/asymptote/examples/shade.asy
+2020/07/07 | 66751 | graphics/asymptote/prc/writePRC.cc
+2020/07/07 | 666 | graphics/asymptote/fpu.h
+2020/07/07 | 6661 | graphics/asymptote/xstream.h
+2020/07/07 | 6660 | graphics/asymptote/simpson.cc
+2020/07/07 | 6650 | graphics/asymptote/getopt.h
+2020/07/07 | 6625 | graphics/asymptote/drawfill.h
+2020/07/07 | 661942 | macros/latex/required/babel/base/babel.dtx
+2020/07/07 | 66120 | systems/win32/miktex/tm/packages/next/miktex-web-bin-2.9.tar.lzma
+2020/07/07 | 65 | graphics/asymptote/tests/gc/guide.asy
+2020/07/07 | 659 | graphics/asymptote/examples/lowupint.asy
+2020/07/07 | 657 | graphics/asymptote/examples/100d.views
+2020/07/07 | 657 | graphics/asymptote/base/reload.js
+2020/07/07 | 65602 | systems/win32/miktex/tm/packages/next/miktex-bibtex-bin-2.9.tar.lzma
+2020/07/07 | 65576 | systems/win32/miktex/tm/packages/next/miktex-gsf2pk-bin-x64-2.9.tar.lzma
+2020/07/07 | 6552 | graphics/asymptote/GUI/windows/labelTextEditor.ui
+2020/07/07 | 654 | graphics/asymptote/prcfile.h
+2020/07/07 | 654 | graphics/asymptote/examples/limit.asy
+2020/07/07 | 6503 | graphics/asymptote/tests/types/constructor.asy
+2020/07/07 | 649 | graphics/asymptote/examples/NURBScurve.asy
+2020/07/07 | 643 | graphics/asymptote/examples/p-orbital.asy
+2020/07/07 | 6425 | graphics/asymptote/mathop.h
+2020/07/07 | 64202 | systems/win32/miktex/tm/packages/next/miktex-mthelp-bin-x64-2.9.tar.lzma
+2020/07/07 | 639 | graphics/asymptote/tests/arith/transform.asy
+2020/07/07 | 639 | graphics/asymptote/GUI/res/icons/arrow-resize.svg
+2020/07/07 | 638875 | systems/win32/miktex/tm/packages/next/miktex-yap-bin-x64-2.9.tar.lzma
+2020/07/07 | 63886 | graphics/asymptote/base/graph.asy
+2020/07/07 | 637 | graphics/asymptote/GUI/res/icons/android-arrow-forward.svg
+2020/07/07 | 637 | graphics/asymptote/GUI/res/icons/android-arrow-back.svg
+2020/07/07 | 63531 | systems/win32/miktex/tm/packages/next/miktex-graphite2-bin-2.9.tar.lzma
+2020/07/07 | 63502 | systems/win32/miktex/tm/packages/next/miktex-ps2pk-bin-2.9.tar.lzma
+2020/07/07 | 63496 | systems/win32/miktex/tm/packages/next/miktex-tex4ht-bin-2.9.tar.lzma
+2020/07/07 | 633 | graphics/asymptote/GUI/res/icons/android-done.svg
+2020/07/07 | 63351 | systems/win32/miktex/tm/packages/next/miktex-mtprint-bin-2.9.tar.lzma
+2020/07/07 | 63314 | graphics/asymptote/GL/wglew.h
+2020/07/07 | 6318 | graphics/asymptote/doc/leastsquares.dat
+2020/07/07 | 63140 | graphics/asymptote/doc/FAQ/asy-faq.info
+2020/07/07 | 630 | graphics/asymptote/base/shaders/vertex.glsl
+2020/07/07 | 6300 | graphics/asymptote/asymptote.nsi
+2020/07/07 | 62 | graphics/asymptote/tests/gc/array.asy
+2020/07/07 | 62 | graphics/asymptote/revision.cc
+2020/07/07 | 62930 | systems/win32/miktex/tm/packages/next/miktex-fmt-bin-x64-2.9.tar.lzma
+2020/07/07 | 6292 | graphics/asymptote/base/plain_filldraw.asy
+2020/07/07 | 628 | graphics/asymptote/examples/wedge.asy
+2020/07/07 | 628 | graphics/asymptote/examples/polarcircle.asy
+2020/07/07 | 6285 | graphics/asymptote/base/plain_prethree.asy
+2020/07/07 | 626 | graphics/asymptote/examples/venn.asy
+2020/07/07 | 623384 | systems/win32/miktex/tm/packages/next/miktex-lcdf-typetools-bin-2.9.tar.lzma
+2020/07/07 | 620 | graphics/asymptote/tests/arith/integer.asy
+2020/07/07 | 61 | graphics/asymptote/examples/axialshade.asy
+2020/07/07 | 61 | graphics/asymptote/base/latin1.asy
+2020/07/07 | 619 | graphics/asymptote/doc/logo.asy
+2020/07/07 | 618 | graphics/asymptote/examples/spline.asy
+2020/07/07 | 6185 | graphics/asymptote/transform.h
+2020/07/07 | 61818 | systems/win32/miktex/tm/packages/next/miktex-ttf2pk2-bin-x64-2.9.tar.lzma
+2020/07/07 | 616 | graphics/asymptote/examples/Gouraudcontour.asy
+2020/07/07 | 6169 | graphics/asymptote/base/plain_strings.asy
+2020/07/07 | 6154 | graphics/asymptote/GUI/pyUIClass/labelTextEditor.py
+2020/07/07 | 610 | graphics/asymptote/examples/impact.asy
+2020/07/07 | 6104 | graphics/asymptote/doc/FAQ/m-lout.pl
+2020/07/07 | 609 | graphics/asymptote/keywords.cc
+2020/07/07 | 608 | graphics/asymptote/base/size10.asy
+2020/07/07 | 605 | graphics/asymptote/examples/integraltest.asy
+2020/07/07 | 60505 | graphics/asymptote/runtime.cc
+2020/07/07 | 604 | graphics/asymptote/doc/flow.asy
+2020/07/07 | 60325 | graphics/asymptote/base/webgl/asygl.js
+2020/07/07 | 602 | graphics/asymptote/examples/treetest.asy
+2020/07/07 | 6021 | graphics/asymptote/prc/PRCTools/bitData.cc
+2020/07/07 | 600 | graphics/asymptote/base/size11.asy
+2020/07/07 | 6008 | systems/texlive/tlnet/archive/cloze.source.r55763.tar.xz
+2020/07/07 | 59 | graphics/asymptote/examples/stroke3.asy
+2020/07/07 | 599 | graphics/asymptote/GUI/xasyStrings.py
+2020/07/07 | 597671 | systems/win32/miktex/tm/packages/next/miktex-yap-bin-2.9.tar.lzma
+2020/07/07 | 5971 | graphics/asymptote/runfile.in
+2020/07/07 | 5931 | graphics/asymptote/drawpath3.h
+2020/07/07 | 591 | graphics/asymptote/examples/sinc.asy
+2020/07/07 | 59173 | systems/win32/miktex/tm/packages/next/miktex-arctrl-bin-2.9.tar.lzma
+2020/07/07 | 58 | graphics/asymptote/examples/progrid.asy
+2020/07/07 | 589 | graphics/asymptote/GUI/res/icons/bucket.asy
+2020/07/07 | 589 | graphics/asymptote/examples/trefoilknot.asy
+2020/07/07 | 5897 | graphics/asymptote/Delaunay.cc
+2020/07/07 | 58973 | systems/win32/miktex/tm/packages/next/miktex-gsf2pk-bin-2.9.tar.lzma
+2020/07/07 | 5879 | graphics/asymptote/base/three_tube.asy
+2020/07/07 | 586876 | systems/win32/miktex/tm/packages/next/miktex-log4cxx-bin-x64-2.9.tar.lzma
+2020/07/07 | 58608 | systems/win32/miktex/tm/packages/next/miktex-cweb-bin-x64-2.9.tar.lzma
+2020/07/07 | 5857 | graphics/asymptote/item.h
+2020/07/07 | 582 | graphics/asymptote/examples/cos3.asy
+2020/07/07 | 581 | graphics/asymptote/examples/floatingdisk.asy
+2020/07/07 | 581 | graphics/asymptote/examples/BezierSaddle.asy
+2020/07/07 | 580 | graphics/asymptote/examples/xsin1x.asy
+2020/07/07 | 57 | graphics/asymptote/GUI/requirements.txt
+2020/07/07 | 579 | graphics/asymptote/examples/sqrtx01y1.asy
+2020/07/07 | 579 | graphics/asymptote/examples/sin3.asy
+2020/07/07 | 579 | graphics/asymptote/examples/exp3.asy
+2020/07/07 | 5797 | graphics/asymptote/base/trembling.asy
+2020/07/07 | 578 | graphics/asymptote/base/annotate.asy
+2020/07/07 | 577 | graphics/asymptote/locate.h
+2020/07/07 | 577160 | systems/texlive/tlnet/archive/cloze.doc.r55763.tar.xz
+2020/07/07 | 576 | graphics/asymptote/examples/threeviews.asy
+2020/07/07 | 576 | graphics/asymptote/examples/circles.asy
+2020/07/07 | 5760 | graphics/asymptote/base/plain_scaling.asy
+2020/07/07 | 574 | graphics/asymptote/examples/fillcontour.asy
+2020/07/07 | 5740 | graphics/asymptote/examples/cpkcolors.asy
+2020/07/07 | 573 | graphics/asymptote/examples/curvedlabel3.asy
+2020/07/07 | 57302 | graphics/asymptote/runpicture.cc
+2020/07/07 | 57249 | systems/win32/miktex/tm/packages/next/miktex-mthelp-bin-2.9.tar.lzma
+2020/07/07 | 57199 | systems/win32/miktex/tm/packages/next/miktex-bibarts-bin-x64-2.9.tar.lzma
+2020/07/07 | 57185 | systems/win32/miktex/tm/packages/next/miktex-fmt-bin-2.9.tar.lzma
+2020/07/07 | 57104 | systems/texlive/tlnet/archive/de-macro.doc.r55766.tar.xz
+2020/07/07 | 56646 | graphics/asymptote/GUI/pyUIClass/window1.py
+2020/07/07 | 5633 | graphics/asymptote/drawpath3.cc
+2020/07/07 | 5631 | graphics/asymptote/bezierpatch.h
+2020/07/07 | 562946 | systems/win32/miktex/tm/packages/next/miktex-libressl-bin-x64-2.9.tar.lzma
+2020/07/07 | 5627 | graphics/asymptote/doc/FAQ/m-info.pl
+2020/07/07 | 56037 | graphics/asymptote/base/smoothcontour3.asy
+2020/07/07 | 557 | graphics/asymptote/examples/Pythagoras.asy
+2020/07/07 | 55579 | systems/win32/miktex/tm/packages/next/miktex-ttf2pk2-bin-2.9.tar.lzma
+2020/07/07 | 5543 | graphics/asymptote/examples/filesurface.dat
+2020/07/07 | 5538 | graphics/asymptote/interact.cc
+2020/07/07 | 550400 | systems/win32/miktex/tm/packages/next/miktex-harfbuzz-bin-x64-2.9.tar.lzma
+2020/07/07 | 5500827 | systems/texlive/tlnet/install-tl-unx.tar.gz
+2020/07/07 | 54 | graphics/asymptote/tests/gc/funcall.asy
+2020/07/07 | 549 | graphics/asymptote/examples/equilchord.asy
+2020/07/07 | 547 | graphics/asymptote/examples/tetra.asy
+2020/07/07 | 546 | graphics/asymptote/examples/label3zoom.asy
+2020/07/07 | 5465 | graphics/asymptote/env.cc
+2020/07/07 | 544671 | systems/win32/miktex/tm/packages/next/miktex-log4cxx-bin-2.9.tar.lzma
+2020/07/07 | 5440 | graphics/asymptote/base/bsp.asy
+2020/07/07 | 5424 | graphics/asymptote/main.cc
+2020/07/07 | 540973 | systems/win32/miktex/tm/packages/next/files.csv.lzma
+2020/07/07 | 539894 | systems/win32/miktex/tm/packages/files.csv.lzma
+2020/07/07 | 52 | graphics/asymptote/doc/square.asy
+2020/07/07 | 5277 | graphics/asymptote/base/shaders/fragment.glsl
+2020/07/07 | 5262 | graphics/asymptote/patches/bison.patch
+2020/07/07 | 525 | graphics/asymptote/examples/vectorfield3.asy
+2020/07/07 | 5258 | graphics/asymptote/examples/mosaic.asy
+2020/07/07 | 5254 | graphics/asymptote/base/animation.asy
+2020/07/07 | 524 | graphics/asymptote/doc/brokenaxis.asy
+2020/07/07 | 5248 | graphics/asymptote/pipestream.cc
+2020/07/07 | 5239 | graphics/asymptote/name.h
+2020/07/07 | 52205 | systems/win32/miktex/tm/packages/next/miktex-m-tx-bin-x64-2.9.tar.lzma
+2020/07/07 | 521 | graphics/asymptote/examples/dimension.asy
+2020/07/07 | 521 | graphics/asymptote/doc/Hobbycontrol.asy
+2020/07/07 | 520 | graphics/asymptote/examples/smoothelevation.asy
+2020/07/07 | 51 | graphics/asymptote/base/unicode.asy
+2020/07/07 | 51 | graphics/asymptote/base/babel.asy
+2020/07/07 | 519 | graphics/asymptote/examples/extrudedcontour.asy
+2020/07/07 | 51923 | systems/win32/miktex/tm/packages/next/miktex-cweb-bin-2.9.tar.lzma
+2020/07/07 | 51631 | graphics/asymptote/settings.cc
+2020/07/07 | 5151 | graphics/asymptote/GUI/labelEditor.py
+2020/07/07 | 5145 | graphics/asymptote/pair.h
+2020/07/07 | 51432 | graphics/asymptote/prc/oPRCFile.h
+2020/07/07 | 51417 | systems/win32/miktex/tm/packages/next/miktex-synctex-bin-x64-2.9.tar.lzma
+2020/07/07 | 513 | graphics/asymptote/examples/buildcycle.asy
+2020/07/07 | 51241 | systems/win32/miktex/tm/packages/next/miktex-findtexmf-bin-x64-2.9.tar.lzma
+2020/07/07 | 5119 | graphics/asymptote/runsystem.in
+2020/07/07 | 51044 | systems/win32/miktex/tm/packages/next/miktex-dvicopy-bin-x64-2.9.tar.lzma
+2020/07/07 | 5098 | graphics/asymptote/errormsg.h
+2020/07/07 | 50904 | systems/win32/miktex/tm/packages/next/miktex-psutils-bin-x64-2.9.tar.lzma
+2020/07/07 | 5070 | graphics/asymptote/memory.h
+2020/07/07 | 506 | graphics/asymptote/examples/delu.asy
+2020/07/07 | 50697 | graphics/asymptote/gsl.cc
+2020/07/07 | 50492 | graphics/asymptote/GUI/xasy2asy.py
+2020/07/07 | 5048 | graphics/asymptote/GUI/xasyOptions.py
+2020/07/07 | 503 | graphics/asymptote/GUI/xasy.py
+2020/07/07 | 503 | graphics/asymptote/examples/animations/embeddedmovie.asy
+2020/07/07 | 503734 | graphics/asymptote/libatomic_ops-7.6.10.tar.gz
+2020/07/07 | 502 | graphics/asymptote/examples/floor.asy
+2020/07/07 | 5024 | graphics/asymptote/runhistory.in
+2020/07/07 | 500 | graphics/asymptote/doc/Hobbydir.asy
+2020/07/07 | 500485 | systems/win32/miktex/tm/packages/next/miktex-libressl-bin-2.9.tar.lzma
+2020/07/07 | 5003 | graphics/asymptote/base/rational.asy
+2020/07/07 | 49 | graphics/asymptote/doc/quartercircle.asy
+2020/07/07 | 49 | graphics/asymptote/doc/dots.asy
+2020/07/07 | 49 | graphics/asymptote/doc/colons.asy
+2020/07/07 | 499 | graphics/asymptote/examples/galleon.asy
+2020/07/07 | 4991 | graphics/asymptote/base/tube.asy
+2020/07/07 | 498 | graphics/asymptote/examples/fano.asy
+2020/07/07 | 498 | graphics/asymptote/doc/penfunctionimage.asy
+2020/07/07 | 497 | graphics/asymptote/examples/bars3.asy
+2020/07/07 | 496 | graphics/asymptote/drawgrestore.h
+2020/07/07 | 49695 | systems/win32/miktex/tm/packages/next/miktex-bibarts-bin-2.9.tar.lzma
+2020/07/07 | 495 | graphics/asymptote/examples/cones.asy
+2020/07/07 | 492 | graphics/asymptote/doc/CDlabel.asy
+2020/07/07 | 48 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.md5
+2020/07/07 | 489 | graphics/asymptote/patches/gc-7.0nomem.patch
+2020/07/07 | 48847 | graphics/asymptote/doc/secondaryaxis.csv
+2020/07/07 | 48715 | graphics/asymptote/runarray.in
+2020/07/07 | 485 | graphics/asymptote/examples/cards.asy
+2020/07/07 | 4849 | graphics/asymptote/GUI/pyUIClass/widg_editBezier.py
+2020/07/07 | 48481 | graphics/asymptote/prc/writePRC.h
+2020/07/07 | 48441 | graphics/asymptote/config.guess
+2020/07/07 | 4841 | graphics/asymptote/tests/array/slice.asy
+2020/07/07 | 4825 | graphics/asymptote/examples/interpolate1.asy
+2020/07/07 | 4812 | graphics/asymptote/base/x11colors.asy
+2020/07/07 | 480 | graphics/asymptote/doc/logimage.asy
+2020/07/07 | 48050 | systems/win32/miktex/tm/packages/next/miktex-expat-bin-x64-2.9.tar.lzma
+2020/07/07 | 479 | graphics/asymptote/examples/magnetic.asy
+2020/07/07 | 4736 | graphics/asymptote/array.cc
+2020/07/07 | 472 | graphics/asymptote/absyn.cc
+2020/07/07 | 4727 | graphics/asymptote/doc/westnile.csv
+2020/07/07 | 4718 | graphics/asymptote/doc/FAQ/m-ascii.pl
+2020/07/07 | 4716 | graphics/asymptote/prc/PRCTools/makePRC.cc
+2020/07/07 | 4687 | graphics/asymptote/castop.h
+2020/07/07 | 46727 | graphics/asymptote/base/plain_picture.asy
+2020/07/07 | 466 | graphics/asymptote/drawgsave.h
+2020/07/07 | 4668 | graphics/asymptote/GUI/pyUIClass/widgetPointEditor.py
+2020/07/07 | 465 | graphics/asymptote/examples/colorplanes.asy
+2020/07/07 | 464 | graphics/asymptote/doc/GaussianSurface.asy
+2020/07/07 | 463387 | graphics/asymptote/doc/png/asymptote.info
+2020/07/07 | 46285 | systems/win32/miktex/tm/packages/next/miktex-findtexmf-bin-2.9.tar.lzma
+2020/07/07 | 462360 | systems/win32/miktex/tm/packages/next/miktex-harfbuzz-bin-2.9.tar.lzma
+2020/07/07 | 461 | graphics/asymptote/examples/cosaddition.asy
+2020/07/07 | 4619 | graphics/asymptote/drawfill.cc
+2020/07/07 | 460 | graphics/asymptote/examples/lever.asy
+2020/07/07 | 460366 | systems/win32/miktex/tm/packages/next/miktex-doc.tar.lzma
+2020/07/07 | 460275 | systems/win32/miktex/tm/packages/next/miktex-doc-2.9.tar.lzma
+2020/07/07 | 459 | graphics/asymptote/examples/hierarchy.asy
+2020/07/07 | 45928 | graphics/asymptote/glrender.cc
+2020/07/07 | 458 | graphics/asymptote/doc/multicontour.asy
+2020/07/07 | 4578 | graphics/asymptote/doc/FAQ/m-post.pl
+2020/07/07 | 4575 | graphics/asymptote/env.h
+2020/07/07 | 45738 | systems/win32/miktex/tm/packages/next/miktex-m-tx-bin-2.9.tar.lzma
+2020/07/07 | 455 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512.asc
+2020/07/07 | 455 | systems/texlive/tlnet/install-tl.zip.sha512.asc
+2020/07/07 | 455 | systems/texlive/tlnet/install-tl-windows.exe.sha512.asc
+2020/07/07 | 455 | systems/texlive/tlnet/install-tl-unx.tar.gz.sha512.asc
+2020/07/07 | 4557 | graphics/asymptote/util.h
+2020/07/07 | 45499 | systems/win32/miktex/tm/packages/next/miktex-dvicopy-bin-2.9.tar.lzma
+2020/07/07 | 4520 | graphics/asymptote/getopt1.c
+2020/07/07 | 4503 | graphics/asymptote/bbox.h
+2020/07/07 | 449 | graphics/asymptote/tests/arith/pair.asy
+2020/07/07 | 44984 | systems/win32/miktex/tm/packages/next/miktex-dvipng-bin-x64-2.9.tar.lzma
+2020/07/07 | 44894 | graphics/asymptote/fftw++.h
+2020/07/07 | 4474 | graphics/asymptote/GUI/windows/widg_editBezier.ui
+2020/07/07 | 445 | graphics/asymptote/examples/sacone.asy
+2020/07/07 | 442 | graphics/asymptote/doc/join3.asy
+2020/07/07 | 441 | graphics/asymptote/examples/triangles.asy
+2020/07/07 | 441 | graphics/asymptote/doc/histogram.asy
+2020/07/07 | 440 | graphics/asymptote/examples/gamma.asy
+2020/07/07 | 4400 | graphics/asymptote/stm.h
+2020/07/07 | 43 | graphics/asymptote/examples/spring2.asy
+2020/07/07 | 438 | graphics/asymptote/examples/projectrevolution.asy
+2020/07/07 | 4348 | graphics/asymptote/doc/colo-asy.tex
+2020/07/07 | 4347 | graphics/asymptote/fundec.h
+2020/07/07 | 4335 | graphics/asymptote/prc/PRCTools/describePRC.h
+2020/07/07 | 43306 | systems/win32/miktex/tm/packages/next/miktex-expat-bin-2.9.tar.lzma
+2020/07/07 | 430 | graphics/asymptote/examples/unitoctant.asy
+2020/07/07 | 43025 | systems/win32/miktex/tm/packages/next/miktex-zlib-bin-x64-2.9.tar.lzma
+2020/07/07 | 42 | graphics/asymptote/base/animate.asy
+2020/07/07 | 4286 | graphics/asymptote/asy.ico
+2020/07/07 | 426 | graphics/asymptote/examples/spiral3.asy
+2020/07/07 | 426 | graphics/asymptote/doc/grid3xyz.asy
+2020/07/07 | 4269 | graphics/asymptote/newexp.cc
+2020/07/07 | 42503 | systems/win32/miktex/tm/packages/next/miktex-psutils-bin-2.9.tar.lzma
+2020/07/07 | 424 | graphics/asymptote/examples/colorpatch.asy
+2020/07/07 | 4242 | graphics/asymptote/tests/types/keyword.asy
+2020/07/07 | 423 | graphics/asymptote/doc/log2graph.asy
+2020/07/07 | 423 | graphics/asymptote/doc/helix.asy
+2020/07/07 | 4231 | graphics/asymptote/flatguide.h
+2020/07/07 | 420 | graphics/asymptote/examples/PythagoreanTree.asy
+2020/07/07 | 42065 | systems/win32/miktex/tm/packages/next/miktex-synctex-bin-2.9.tar.lzma
+2020/07/07 | 4203 | graphics/asymptote/examples/fin.asy
+2020/07/07 | 41 | graphics/asymptote/doc/bigdiagonal.asy
+2020/07/07 | 419 | graphics/asymptote/examples/pathintersectsurface.asy
+2020/07/07 | 418 | graphics/asymptote/examples/planeproject.asy
+2020/07/07 | 417 | graphics/asymptote/doc/knots.asy
+2020/07/07 | 4175 | graphics/asymptote/runpair.in
+2020/07/07 | 416 | graphics/asymptote/doc/linetype.asy
+2020/07/07 | 416 | graphics/asymptote/doc/bezier2.asy
+2020/07/07 | 4166 | graphics/asymptote/GUI/windows/widgetPointEditor.ui
+2020/07/07 | 4158 | graphics/asymptote/examples/advection.asy
+2020/07/07 | 414 | graphics/asymptote/examples/animations/glmovie.asy
+2020/07/07 | 413 | graphics/asymptote/examples/torus.asy
+2020/07/07 | 4128 | graphics/asymptote/base/plain_boxes.asy
+2020/07/07 | 411 | graphics/asymptote/examples/animations/externalmovie.asy
+2020/07/07 | 410 | graphics/asymptote/examples/Sierpinski.asy
+2020/07/07 | 410 | graphics/asymptote/doc/legend.asy
+2020/07/07 | 4089 | graphics/asymptote/camp.tab.h
+2020/07/07 | 40864 | graphics/asymptote/picture.cc
+2020/07/07 | 407 | graphics/asymptote/examples/parametricsurface.asy
+2020/07/07 | 4078 | graphics/asymptote/base/plain_shipout.asy
+2020/07/07 | 40786 | systems/win32/miktex/tm/packages/next/miktex-dvipng-bin-2.9.tar.lzma
+2020/07/07 | 40764 | graphics/asymptote/doc/FAQ/asy-faq.bfnn
+2020/07/07 | 4072 | graphics/asymptote/tests/types/order.asy
+2020/07/07 | 4067 | graphics/asymptote/doc/diatom.csv
+2020/07/07 | 4063 | graphics/asymptote/fileio.cc
+2020/07/07 | 40326 | graphics/asymptote/examples/tvgen.asy
+2020/07/07 | 401 | graphics/asymptote/doc/image.asy
+2020/07/07 | 400 | graphics/asymptote/examples/sacylinder.asy
+2020/07/07 | 39 | graphics/asymptote/base/nopapersize.ps
+2020/07/07 | 398 | graphics/asymptote/examples/epix.asy
+2020/07/07 | 396 | graphics/asymptote/doc/triangulate.asy
+2020/07/07 | 395 | graphics/asymptote/GUI/configs/xasykeymap.cson
+2020/07/07 | 395 | graphics/asymptote/examples/BezierPatch.asy
+2020/07/07 | 39509 | systems/win32/miktex/tm/packages/next/miktex-patgen-bin-x64-2.9.tar.lzma
+2020/07/07 | 39507 | systems/win32/miktex/tm/packages/next/miktex-patgen-bin-x64.tar.lzma
+2020/07/07 | 394 | graphics/asymptote/GUI/setup.py
+2020/07/07 | 3944 | graphics/asymptote/base/interpolate.asy
+2020/07/07 | 392543 | systems/win32/miktex/tm/packages/next/miktex-cairo-bin-x64-2.9.tar.lzma
+2020/07/07 | 390 | graphics/asymptote/doc/tile.asy
+2020/07/07 | 38 | graphics/asymptote/examples/spring0.asy
+2020/07/07 | 38948 | systems/win32/miktex/tm/packages/next/miktex-zlib-bin-2.9.tar.lzma
+2020/07/07 | 388 | systems/texlive/tlnet/archive/texlive-docindex.r55762.tar.xz
+2020/07/07 | 3873 | graphics/asymptote/examples/pipes.asy
+2020/07/07 | 386 | graphics/asymptote/examples/RiemannSurfaceRoot.asy
+2020/07/07 | 386752 | graphics/asymptote/doc/asymptote.texi
+2020/07/07 | 385 | graphics/asymptote/examples/sinxlex.asy
+2020/07/07 | 384 | graphics/asymptote/Delaunay.h
+2020/07/07 | 383 | graphics/asymptote/tests/arith/real.asy
+2020/07/07 | 383 | graphics/asymptote/examples/Gouraud.asy
+2020/07/07 | 382 | graphics/asymptote/doc/loggrid.asy
+2020/07/07 | 38217 | graphics/asymptote/path3.cc
+2020/07/07 | 380 | graphics/asymptote/doc/icon.asy
+2020/07/07 | 376 | graphics/asymptote/examples/sphericalharmonic.asy
+2020/07/07 | 376 | graphics/asymptote/doc/generalaxis3.asy
+2020/07/07 | 3765 | graphics/asymptote/prc/PRCdouble.h
+2020/07/07 | 374 | graphics/asymptote/doc/monthaxis.asy
+2020/07/07 | 3746 | graphics/asymptote/examples/xstitch.asy
+2020/07/07 | 373 | graphics/asymptote/examples/projectelevation.asy
+2020/07/07 | 373 | graphics/asymptote/doc/lineargraph.asy
+2020/07/07 | 3724 | graphics/asymptote/base/three_light.asy
+2020/07/07 | 3716 | graphics/asymptote/base/plain_constants.asy
+2020/07/07 | 369 | graphics/asymptote/tests/gs/ghostscript.asy
+2020/07/07 | 369 | graphics/asymptote/examples/RiemannSurface.asy
+2020/07/07 | 36965 | systems/win32/miktex/tm/packages/next/miktex-upmendex-bin-x64.tar.lzma
+2020/07/07 | 36862 | systems/win32/miktex/tm/packages/next/miktex-posix-bin-x64-2.9.tar.lzma
+2020/07/07 | 3676 | graphics/asymptote/tr.h
+2020/07/07 | 3673 | graphics/asymptote/constructor.cc
+2020/07/07 | 3670 | graphics/asymptote/bbox3.h
+2020/07/07 | 366 | graphics/asymptote/doc/lineargraph0.asy
+2020/07/07 | 36308 | systems/win32/miktex/tm/packages/next/miktex-chktex-bin-x64-2.9.tar.lzma
+2020/07/07 | 362 | graphics/asymptote/examples/pipeintersection.asy
+2020/07/07 | 36243 | graphics/asymptote/prc/test.cc
+2020/07/07 | 361 | graphics/asymptote/GUI/res/icons/anchor.svg
+2020/07/07 | 361 | graphics/asymptote/examples/phase.asy
+2020/07/07 | 3616 | graphics/asymptote/GUI/UndoRedoStack.py
+2020/07/07 | 360 | graphics/asymptote/examples/washer.asy
+2020/07/07 | 360664 | systems/win32/miktex/tm/packages/next/miktex-pdftex-bin-x64-2.9.tar.lzma
+2020/07/07 | 35 | graphics/asymptote/base/fontsize.asy
+2020/07/07 | 358 | graphics/asymptote/base/pstoedit.asy
+2020/07/07 | 357 | graphics/asymptote/doc/irregularcontour.asy
+2020/07/07 | 355 | graphics/asymptote/doc/scaledgraph.asy
+2020/07/07 | 3553 | graphics/asymptote/rounding.h
+2020/07/07 | 354 | graphics/asymptote/doc/reloadpdf.tex
+2020/07/07 | 354 | graphics/asymptote/doc/planes.asy
+2020/07/07 | 35337 | systems/win32/miktex/tm/packages/next/miktex-patgen-bin-2.9.tar.lzma
+2020/07/07 | 35314 | systems/win32/miktex/tm/packages/next/miktex-patgen-bin.tar.lzma
+2020/07/07 | 352 | graphics/asymptote/examples/cylinder.asy
+2020/07/07 | 3526 | macros/latex/required/babel/base/bbidxglo.dtx
+2020/07/07 | 3522 | graphics/asymptote/drawpath.cc
+2020/07/07 | 351 | graphics/asymptote/examples/vectorfieldsphere.asy
+2020/07/07 | 3514 | graphics/asymptote/picture.h
+2020/07/07 | 35147 | graphics/asymptote/LICENSE
+2020/07/07 | 35051 | systems/win32/miktex/tm/packages/next/miktex-mspack-bin-x64-2.9.tar.lzma
+2020/07/07 | 3503 | graphics/asymptote/GUI/CustMatTransform.py
+2020/07/07 | 34 | graphics/asymptote/autogen.sh
+2020/07/07 | 349 | graphics/asymptote/examples/logdown.asy
+2020/07/07 | 3498 | graphics/asymptote/parser.cc
+2020/07/07 | 3497 | graphics/asymptote/doc/ocg.sty
+2020/07/07 | 34703 | systems/win32/miktex/tm/packages/next/miktex-axohelp-bin-x64-2.9.tar.lzma
+2020/07/07 | 345 | graphics/asymptote/lexical.h
+2020/07/07 | 3449 | graphics/asymptote/build-scripts/build-asymptote.dos
+2020/07/07 | 343 | graphics/asymptote/doc/externalprc.tex
+2020/07/07 | 3430 | graphics/asymptote/base/roundedpath.asy
+2020/07/07 | 341 | graphics/asymptote/examples/slidedemo_.bbl
+2020/07/07 | 341 | graphics/asymptote/examples/sacylinder3D.asy
+2020/07/07 | 341 | graphics/asymptote/doc/subpictures.asy
+2020/07/07 | 34126 | graphics/asymptote/path.cc
+2020/07/07 | 33877 | graphics/asymptote/exp.cc
+2020/07/07 | 3375 | graphics/asymptote/tests/types/guide.asy
+2020/07/07 | 3344 | graphics/asymptote/examples/pdb.asy
+2020/07/07 | 3340 | graphics/asymptote/examples/slidedemo.asy
+2020/07/07 | 333 | graphics/asymptote/doc/asy.1.end
+2020/07/07 | 3328 | graphics/asymptote/stack.h
+2020/07/07 | 33138 | systems/win32/miktex/tm/packages/next/miktex-upmendex-bin.tar.lzma
+2020/07/07 | 330 | graphics/asymptote/doc/HermiteSpline.asy
+2020/07/07 | 3309 | graphics/asymptote/access.cc
+2020/07/07 | 329721 | systems/win32/miktex/tm/packages/next/miktex-cairo-bin-2.9.tar.lzma
+2020/07/07 | 327 | graphics/asymptote/examples/sin1x.asy
+2020/07/07 | 3279 | graphics/asymptote/base/obj.asy
+2020/07/07 | 3275 | graphics/asymptote/program.cc
+2020/07/07 | 327005 | systems/win32/miktex/tm/packages/next/miktex-pdftex-bin-2.9.tar.lzma
+2020/07/07 | 326 | graphics/asymptote/examples/polardatagraph.asy
+2020/07/07 | 326 | graphics/asymptote/examples/animations/pdfmovie.asy
+2020/07/07 | 325 | graphics/asymptote/examples/rainbow.asy
+2020/07/07 | 325 | graphics/asymptote/examples/elevation.asy
+2020/07/07 | 3249 | graphics/asymptote/GUI/Widg_addLabel.py
+2020/07/07 | 32404 | systems/win32/miktex/tm/packages/next/miktex-uriparser-bin-x64-2.9.tar.lzma
+2020/07/07 | 322 | graphics/asymptote/examples/unitcircle.asy
+2020/07/07 | 322 | graphics/asymptote/examples/cheese.asy
+2020/07/07 | 32279 | graphics/asymptote/bezierpatch.cc
+2020/07/07 | 32134 | systems/win32/miktex/tm/packages/next/miktex-chktex-bin-2.9.tar.lzma
+2020/07/07 | 320 | graphics/asymptote/runtriple.h
+2020/07/07 | 320533 | graphics/asymptote/base/geometry.asy
+2020/07/07 | 318 | graphics/asymptote/patches/gcc3.3.2curses.patch
+2020/07/07 | 3161 | graphics/asymptote/genv.cc
+2020/07/07 | 31609 | graphics/asymptote/config.sub
+2020/07/07 | 315 | graphics/asymptote/examples/strokepath.asy
+2020/07/07 | 315 | graphics/asymptote/examples/hyperboloid.asy
+2020/07/07 | 314 | graphics/asymptote/doc/logticks.asy
+2020/07/07 | 314 | graphics/asymptote/base/graph_settings.asy
+2020/07/07 | 312 | graphics/asymptote/examples/textpath.asy
+2020/07/07 | 31244 | graphics/asymptote/builtin.cc
+2020/07/07 | 31243 | systems/win32/miktex/tm/packages/next/miktex-posix-bin-2.9.tar.lzma
+2020/07/07 | 31243 | systems/win32/miktex/tm/packages/next/miktex-mspack-bin-2.9.tar.lzma
+2020/07/07 | 31223 | systems/win32/miktex/tm/packages/next/miktex-makeindex-bin-x64-2.9.tar.lzma
+2020/07/07 | 310932 | systems/win32/miktex/tm/packages/next/miktex-dvipdfmx-bin-x64-2.9.tar.lzma
+2020/07/07 | 3106 | graphics/asymptote/doc/latexusage.tex
+2020/07/07 | 309 | graphics/asymptote/examples/oneoverx.asy
+2020/07/07 | 309 | graphics/asymptote/examples/1overx.asy
+2020/07/07 | 308 | graphics/asymptote/tests/types/shadow.asy
+2020/07/07 | 308 | graphics/asymptote/tests/Makefile
+2020/07/07 | 30892 | systems/win32/miktex/tm/packages/next/miktex-autosp-bin-x64-2.9.tar.lzma
+2020/07/07 | 30876 | systems/win32/miktex/tm/packages/next/miktex-bzip2-bin-x64-2.9.tar.lzma
+2020/07/07 | 306 | graphics/asymptote/doc/binarytreetest.asy
+2020/07/07 | 305166 | systems/win32/miktex/tm/packages/next/miktex-metapost-bin-x64-2.9.tar.lzma
+2020/07/07 | 3042 | graphics/asymptote/drawimage.h
+2020/07/07 | 303 | graphics/asymptote/examples/tensor.asy
+2020/07/07 | 3023 | graphics/asymptote/doc/Makefile.in
+2020/07/07 | 30208 | graphics/asymptote/prc/PRC.h
+2020/07/07 | 30147 | graphics/asymptote/getopt.c
+2020/07/07 | 3003 | graphics/asymptote/process.h
+2020/07/07 | 3001 | graphics/asymptote/asymptote.spec
+2020/07/07 | 299 | graphics/asymptote/runpair.h
+2020/07/07 | 298 | graphics/asymptote/guideflags.h
+2020/07/07 | 2976 | graphics/asymptote/access.h
+2020/07/07 | 29633 | systems/win32/miktex/tm/packages/next/miktex-lacheck-bin-x64-2.9.tar.lzma
+2020/07/07 | 293 | graphics/asymptote/doc/makepen.asy
+2020/07/07 | 29321 | systems/win32/miktex/tm/packages/next/miktex-axohelp-bin-2.9.tar.lzma
+2020/07/07 | 2924 | graphics/asymptote/drawgroup.h
+2020/07/07 | 291 | graphics/asymptote/examples/trumpet.asy
+2020/07/07 | 291 | graphics/asymptote/examples/jump.asy
+2020/07/07 | 29182 | systems/win32/miktex/tm/packages/next/miktex-teckit-bin-x64-2.9.tar.lzma
+2020/07/07 | 2905 | graphics/asymptote/shaders.cc
+2020/07/07 | 289 | graphics/asymptote/base/res/notes.txt
+2020/07/07 | 28976 | systems/win32/miktex/tm/packages/next/miktex-fribidixetex-bin-x64-2.9.tar.lzma
+2020/07/07 | 288 | graphics/asymptote/examples/sacone3D.asy
+2020/07/07 | 288 | graphics/asymptote/doc/mexicanhat.asy
+2020/07/07 | 288 | graphics/asymptote/build-scripts/README-binaries
+2020/07/07 | 2882 | graphics/asymptote/doc/diatom.asy
+2020/07/07 | 28809 | graphics/asymptote/exp.h
+2020/07/07 | 28618 | systems/win32/miktex/tm/packages/next/miktex-autosp-bin-2.9.tar.lzma
+2020/07/07 | 285954 | graphics/asymptote/configure
+2020/07/07 | 284 | graphics/asymptote/GUI/res/icons/text.svg
+2020/07/07 | 2832 | graphics/asymptote/examples/alignedaxis.asy
+2020/07/07 | 2825 | graphics/asymptote/GUI/pyUIClass/setCustomAnchor.py
+2020/07/07 | 281692 | systems/win32/miktex/tm/packages/next/miktex-freetype2-bin-x64-2.9.tar.lzma
+2020/07/07 | 28156 | graphics/asymptote/pen.h
+2020/07/07 | 2800 | graphics/asymptote/doc/asycolors.sty
+2020/07/07 | 279 | graphics/asymptote/doc/hatch.asy
+2020/07/07 | 27945 | systems/win32/miktex/tm/packages/next/miktex-lacheck-bin-2.9.tar.lzma
+2020/07/07 | 279309 | systems/win32/miktex/tm/packages/next/miktex-xetex-bin-x64-2.9.tar.lzma
+2020/07/07 | 277 | graphics/asymptote/doc/generalaxis.asy
+2020/07/07 | 2771 | graphics/asymptote/doc/pixel.pdf
+2020/07/07 | 276 | graphics/asymptote/tests/bench/6000circles.asy
+2020/07/07 | 2766 | graphics/asymptote/lnkX64IconFix.nsh
+2020/07/07 | 2764 | graphics/asymptote/base/three_margins.asy
+2020/07/07 | 2738 | graphics/asymptote/record.h
+2020/07/07 | 273613 | systems/win32/miktex/tm/packages/next/miktex-dvipdfmx-bin-2.9.tar.lzma
+2020/07/07 | 2731 | graphics/asymptote/tests/types/resolve.asy
+2020/07/07 | 271 | graphics/asymptote/patches/gc6.8_AIX.patch
+2020/07/07 | 2719 | graphics/asymptote/runtriple.in
+2020/07/07 | 2714843 | install/macros/latex/required/babel-base.tds.zip
+2020/07/07 | 27037 | systems/win32/miktex/tm/packages/next/miktex-bzip2-bin-2.9.tar.lzma
+2020/07/07 | 26 | graphics/asymptote/doc/filegraph.dat
+2020/07/07 | 269 | graphics/asymptote/runmath.h
+2020/07/07 | 2697 | graphics/asymptote/table.h
+2020/07/07 | 26956 | systems/win32/miktex/tm/packages/next/miktex-makeindex-bin-2.9.tar.lzma
+2020/07/07 | 2690 | graphics/asymptote/settings.h
+2020/07/07 | 269065 | systems/win32/miktex/tm/packages/next/miktex-metapost-bin-2.9.tar.lzma
+2020/07/07 | 268 | graphics/asymptote/base/asy-init.el
+2020/07/07 | 268945 | macros/latex/contrib/semantex.zip
+2020/07/07 | 26879 | systems/win32/miktex/tm/packages/next/miktex-teckit-bin-2.9.tar.lzma
+2020/07/07 | 26872 | graphics/asymptote/runpath.cc
+2020/07/07 | 267 | graphics/asymptote/examples/hyperboloidsilhouette.asy
+2020/07/07 | 2678 | graphics/asymptote/examples/soccerball.asy
+2020/07/07 | 26630 | systems/win32/miktex/tm/packages/next/miktex-uriparser-bin-2.9.tar.lzma
+2020/07/07 | 2662 | graphics/asymptote/symbol.h
+2020/07/07 | 2661 | graphics/asymptote/runbacktrace.cc
+2020/07/07 | 2659107 | systems/win32/miktex/tm/packages/next/miktex-texworks-bin-x64-2.9.tar.lzma
+2020/07/07 | 2653 | graphics/asymptote/doc/TeXShopAndAsymptote.tex
+2020/07/07 | 2653 | graphics/asymptote/doc/markers1.asy
+2020/07/07 | 264 | graphics/asymptote/examples/labelbox.asy
+2020/07/07 | 264 | graphics/asymptote/examples/coag.asy
+2020/07/07 | 2633 | graphics/asymptote/examples/worldmap.asy
+2020/07/07 | 2632 | graphics/asymptote/material.h
+2020/07/07 | 2631 | graphics/asymptote/GUI/windows/setCustomAnchor.ui
+2020/07/07 | 262 | graphics/asymptote/doc/loggraph.asy
+2020/07/07 | 2624 | graphics/asymptote/pipestream.h
+2020/07/07 | 261 | graphics/asymptote/doc/join.asy
+2020/07/07 | 2615 | graphics/asymptote/base/patterns.asy
+2020/07/07 | 26096 | graphics/asymptote/examples/uhrturm.obj
+2020/07/07 | 25707 | graphics/asymptote/runpath3d.cc
+2020/07/07 | 256 | graphics/asymptote/doc/shadedtiling.asy
+2020/07/07 | 2562 | graphics/asymptote/program.h
+2020/07/07 | 255 | graphics/asymptote/examples/contextfonts.asy
+2020/07/07 | 255 | graphics/asymptote/BUGS
+2020/07/07 | 2554 | graphics/asymptote/GUI/xasyFile.py
+2020/07/07 | 2552 | graphics/asymptote/base/plain_margins.asy
+2020/07/07 | 254 | graphics/asymptote/examples/parametricelevation.asy
+2020/07/07 | 25474 | systems/win32/miktex/tm/packages/next/miktex-fribidixetex-bin-2.9.tar.lzma
+2020/07/07 | 253 | graphics/asymptote/base/metapost.asy
+2020/07/07 | 2534429 | systems/win32/miktex/tm/packages/next/miktex-texworks-bin-2.9.tar.lzma
+2020/07/07 | 25292 | graphics/asymptote/process.cc
+2020/07/07 | 2526 | graphics/asymptote/policy.h
+2020/07/07 | 251 | graphics/asymptote/examples/triceratops.asy
+2020/07/07 | 2518 | graphics/asymptote/prc/PRCbitStream.h
+2020/07/07 | 25137 | graphics/asymptote/doc/extra/intro.asy
+2020/07/07 | 2512 | graphics/asymptote/examples/mosquito.asy
+2020/07/07 | 250 | graphics/asymptote/examples/transparentCubes.asy
+2020/07/07 | 2505 | graphics/asymptote/README
+2020/07/07 | 2505 | graphics/asymptote/binaries/x86_64-windows/README
+2020/07/07 | 2505 | graphics/asymptote/binaries/i386-windows/README
+2020/07/07 | 24 | graphics/asymptote/doc/diagonal.asy
+2020/07/07 | 249820 | systems/texlive/tlnet/archive/semantex.doc.r55765.tar.xz
+2020/07/07 | 249728 | systems/win32/miktex/tm/packages/next/miktex-xetex-bin-2.9.tar.lzma
+2020/07/07 | 2482 | graphics/asymptote/build-scripts/build-asymptote
+2020/07/07 | 246 | graphics/asymptote/examples/transparency.asy
+2020/07/07 | 246 | graphics/asymptote/doc/axis3.asy
+2020/07/07 | 246797 | systems/win32/miktex/tm/packages/next/miktex-freetype2-bin-2.9.tar.lzma
+2020/07/07 | 2465 | graphics/asymptote/base/labelpath3.asy
+2020/07/07 | 24659 | graphics/asymptote/base/lmfit.asy
+2020/07/07 | 245 | graphics/asymptote/examples/alignbox.asy
+2020/07/07 | 244 | graphics/asymptote/tests/arith/triple.asy
+2020/07/07 | 243 | graphics/asymptote/doc/cube.asy
+2020/07/07 | 243026 | systems/win32/miktex/tm/packages/next/miktex-pmx-bin-x64-2.9.tar.lzma
+2020/07/07 | 242 | graphics/asymptote/examples/equilateral.asy
+2020/07/07 | 24268914 | systems/texlive/tlnet/install-tl.zip
+2020/07/07 | 240 | graphics/asymptote/doc/parametricgraph.asy
+2020/07/07 | 23 | graphics/asymptote/GUI/__init__.py
+2020/07/07 | 2399 | graphics/asymptote/GUI/PrimitiveShape.py
+2020/07/07 | 238 | graphics/asymptote/tests/TestLib.asy
+2020/07/07 | 238 | graphics/asymptote/GUI/xasyValidator.py
+2020/07/07 | 238 | graphics/asymptote/doc/filegraph.asy
+2020/07/07 | 23876 | graphics/asymptote/drawsurface.cc
+2020/07/07 | 23791 | graphics/asymptote/base/three_arrows.asy
+2020/07/07 | 2378 | graphics/asymptote/profile.py
+2020/07/07 | 236 | graphics/asymptote/tests/string/erase.asy
+2020/07/07 | 236 | graphics/asymptote/examples/annotation.asy
+2020/07/07 | 2362 | graphics/asymptote/examples/spectrum.asy
+2020/07/07 | 2361 | graphics/asymptote/examples/SierpinskiSponge.asy
+2020/07/07 | 235 | graphics/asymptote/examples/cos2theta.asy
+2020/07/07 | 23597 | systems/win32/miktex/tm/packages/next/miktex-popt-bin-x64-2.9.tar.lzma
+2020/07/07 | 235556 | macros/latex/contrib/semantex/semantex.pdf
+2020/07/07 | 234 | graphics/asymptote/doc/beziercurve.asy
+2020/07/07 | 2341 | graphics/asymptote/prc/PRCTools/iPRCFile.h
+2020/07/07 | 233 | graphics/asymptote/examples/cardioid.asy
+2020/07/07 | 2328 | graphics/asymptote/virtualfieldaccess.h
+2020/07/07 | 22 | graphics/asymptote/tests/output/line.asy
+2020/07/07 | 22 | graphics/asymptote/GUI/configs/__init__.py
+2020/07/07 | 22971 | graphics/asymptote/base/syzygy.asy
+2020/07/07 | 22969 | systems/win32/miktex/tm/packages/next/miktex-devnag-bin-x64-2.9.tar.lzma
+2020/07/07 | 228 | graphics/asymptote/examples/circumcircle.asy
+2020/07/07 | 22873 | graphics/asymptote/examples/piicon.png
+2020/07/07 | 2278 | graphics/asymptote/align.h
+2020/07/07 | 2277 | graphics/asymptote/base/texcolors.asy
+2020/07/07 | 2276 | graphics/asymptote/prc/PRCTools/inflation.cc
+2020/07/07 | 224 | graphics/asymptote/tests/types/init.asy
+2020/07/07 | 223 | graphics/asymptote/examples/yingyang.asy
+2020/07/07 | 223963 | systems/win32/miktex/tm/packages/next/miktex-console-bin-x64-2.9.tar.lzma
+2020/07/07 | 22355 | graphics/asymptote/knot.cc
+2020/07/07 | 2222 | graphics/asymptote/tests/frames/loop.asy
+2020/07/07 | 2200264 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.xz
+2020/07/07 | 219 | graphics/asymptote/wce
+2020/07/07 | 219 | graphics/asymptote/doc/penimage.asy
+2020/07/07 | 2197 | graphics/asymptote/locate.cc
+2020/07/07 | 21977 | graphics/asymptote/runmath.cc
+2020/07/07 | 2193 | graphics/asymptote/GUI/pyUIClass/widg_addPolyOpt.py
+2020/07/07 | 21932 | macros/latex/required/babel/base/bbcompat.dtx
+2020/07/07 | 218 | graphics/asymptote/doc/datagraph.asy
+2020/07/07 | 2187 | graphics/asymptote/base/plain_debugger.asy
+2020/07/07 | 2180 | graphics/asymptote/examples/splitpatch.asy
+2020/07/07 | 2173 | graphics/asymptote/frame.h
+2020/07/07 | 2163 | graphics/asymptote/drawlabel.h
+2020/07/07 | 2148 | graphics/asymptote/GUI/windows/widg_addPolyOpt.ui
+2020/07/07 | 2146 | graphics/asymptote/webgl/fragment.glsl
+2020/07/07 | 21459 | graphics/asymptote/base/feynman.asy
+2020/07/07 | 2113 | graphics/asymptote/seconds.h
+2020/07/07 | 210 | graphics/asymptote/examples/spiral.asy
+2020/07/07 | 2109 | graphics/asymptote/base/drawtree.asy
+2020/07/07 | 210650 | systems/win32/miktex/tm/packages/next/miktex-omegaware-bin-x64-2.9.tar.lzma
+2020/07/07 | 2104 | graphics/asymptote/jsfile.h
+2020/07/07 | 21005 | graphics/asymptote/base/plain_bounds.asy
+2020/07/07 | 209 | graphics/asymptote/examples/triangle.asy
+2020/07/07 | 20866 | graphics/asymptote/dec.cc
+2020/07/07 | 2084 | graphics/asymptote/examples/truncatedIcosahedron.asy
+2020/07/07 | 20769 | systems/win32/miktex/tm/packages/next/miktex-devnag-bin-2.9.tar.lzma
+2020/07/07 | 207508 | systems/win32/miktex/tm/packages/next/miktex-pmx-bin-2.9.tar.lzma
+2020/07/07 | 20738 | graphics/asymptote/entry.cc
+2020/07/07 | 206 | graphics/asymptote/examples/log.asy
+2020/07/07 | 206707 | graphics/asymptote/asy.list
+2020/07/07 | 20545 | graphics/asymptote/runtime.in
+2020/07/07 | 2046 | graphics/asymptote/base/slopefield.asy
+2020/07/07 | 2043 | graphics/asymptote/examples/slope.asy
+2020/07/07 | 2039 | graphics/asymptote/doc/elliptic.asy
+2020/07/07 | 203498 | systems/win32/miktex/tm/packages/next/miktex-console-bin-2.9.tar.lzma
+2020/07/07 | 202 | graphics/asymptote/tests/frames/stat2.asy
+2020/07/07 | 202 | graphics/asymptote/glew.c
+2020/07/07 | 202 | graphics/asymptote/doc/exp.asy
+2020/07/07 | 2028474 | systems/win32/miktex/tm/packages/next/miktex-luatex-bin-x64-2.9.tar.lzma
+2020/07/07 | 20202 | graphics/asymptote/drawsurface.h
+2020/07/07 | 20163 | graphics/asymptote/fileio.h
+2020/07/07 | 201605 | systems/win32/miktex/tm/packages/next/miktex-zzdb1-2.9.tar.lzma
+2020/07/07 | 201514 | systems/win32/miktex/tm/packages/miktex-zzdb1-2.9.tar.lzma
+2020/07/07 | 2013 | graphics/asymptote/varinit.h
+2020/07/07 | 20105 | graphics/asymptote/base/contour.asy
+2020/07/07 | 20051 | graphics/asymptote/doc/asyRefCard.tex
+2020/07/07 | 20029 | graphics/asymptote/camp.y
+2020/07/07 | 20014 | systems/win32/miktex/tm/packages/next/miktex-popt-bin-2.9.tar.lzma
+2020/07/07 | 199 | graphics/asymptote/examples/upint.asy
+2020/07/07 | 199 | graphics/asymptote/examples/BezierTriangle.asy
+2020/07/07 | 198 | graphics/asymptote/examples/tanh.asy
+2020/07/07 | 1986 | graphics/asymptote/inst.h
+2020/07/07 | 1986 | graphics/asymptote/array.h
+2020/07/07 | 1978 | graphics/asymptote/varinit.cc
+2020/07/07 | 196 | graphics/asymptote/examples/lowint.asy
+2020/07/07 | 196 | graphics/asymptote/examples/label3ribbon.asy
+2020/07/07 | 196 | graphics/asymptote/examples/animations/embeddedu3d.asy
+2020/07/07 | 1967 | graphics/asymptote/GUI/res/icons/filledbucket.svg
+2020/07/07 | 196475 | systems/win32/miktex/tm/packages/next/miktex-mpfr-bin-2.9.tar.lzma
+2020/07/07 | 19597 | graphics/asymptote/doc/external-proposal.html
+2020/07/07 | 19561 | graphics/asymptote/runpicture.in
+2020/07/07 | 19561 | graphics/asymptote/base/plain_arrows.asy
+2020/07/07 | 1950 | graphics/asymptote/examples/mergeExample.asy
+2020/07/07 | 19462 | graphics/asymptote/patches/gl-matrix-2.4.0-pruned.patch
+2020/07/07 | 194595 | graphics/asymptote/doc/asy-latex.pdf
+2020/07/07 | 194055 | systems/win32/miktex/tm/packages/next/miktex-pixman-bin-x64-2.9.tar.lzma
+2020/07/07 | 193 | graphics/asymptote/tests/gc/shipout.asy
+2020/07/07 | 193 | graphics/asymptote/tests/arith/random.asy
+2020/07/07 | 19380214 | systems/texlive/tlnet/install-tl-windows.exe
+2020/07/07 | 1936 | graphics/asymptote/refaccess.h
+2020/07/07 | 193353 | systems/win32/miktex/tm/packages/next/miktex-omegaware-bin-2.9.tar.lzma
+2020/07/07 | 1927 | graphics/asymptote/tests/array/fields.asy
+2020/07/07 | 1927 | graphics/asymptote/prc/PRCTools/bitSearchDouble.cc
+2020/07/07 | 1920 | graphics/asymptote/GUI/res/icons/social-python.svg
+2020/07/07 | 191 | graphics/asymptote/runpicture.h
+2020/07/07 | 1919 | graphics/asymptote/examples/animations/earthmoon.asy
+2020/07/07 | 19124 | graphics/asymptote/psfile.cc
+2020/07/07 | 1908 | graphics/asymptote/examples/linearregression.asy
+2020/07/07 | 1907 | graphics/asymptote/build-scripts/HOWTO-MSWindows
+2020/07/07 | 18 | graphics/asymptote/tests/output/circle.asy
+2020/07/07 | 189216 | systems/win32/miktex/tm/packages/next/miktex-mktex-bin-x64-2.9.tar.lzma
+2020/07/07 | 188 | graphics/asymptote/runstring.h
+2020/07/07 | 187 | graphics/asymptote/tests/string/rfind.asy
+2020/07/07 | 187 | graphics/asymptote/examples/label3solid.asy
+2020/07/07 | 1878 | graphics/asymptote/drawclipbegin.h
+2020/07/07 | 187767 | systems/win32/miktex/tm/packages/next/miktex-pixman-bin-2.9.tar.lzma
+2020/07/07 | 18772 | graphics/asymptote/runstring.cc
+2020/07/07 | 187111 | systems/win32/miktex/tm/packages/next/miktex-metafont-bin-x64-2.9.tar.lzma
+2020/07/07 | 186 | graphics/asymptote/runpath3d.h
+2020/07/07 | 186 | graphics/asymptote/doc/unitcircle3.asy
+2020/07/07 | 1863 | graphics/asymptote/prc/PRCTools/bitSearchUI.cc
+2020/07/07 | 186207 | graphics/asymptote/doc/CAD.pdf
+2020/07/07 | 1860 | graphics/asymptote/prc/PRCTools/bitData.h
+2020/07/07 | 18591 | graphics/asymptote/application.cc
+2020/07/07 | 1851 | graphics/asymptote/beziercurve.cc
+2020/07/07 | 184502 | systems/win32/miktex/tm/packages/next/miktex-curl-bin-x64-2.9.tar.lzma
+2020/07/07 | 1835 | graphics/asymptote/examples/cyclohexane.asy
+2020/07/07 | 18307 | graphics/asymptote/texfile.cc
+2020/07/07 | 182 | graphics/asymptote/tests/string/find.asy
+2020/07/07 | 182 | graphics/asymptote/examples/roll.asy
+2020/07/07 | 182 | graphics/asymptote/examples/label3.asy
+2020/07/07 | 18126 | graphics/asymptote/doc/asy-latex.dtx
+2020/07/07 | 1805 | graphics/asymptote/patches/cygwin_freeglut-3.0.0.patch
+2020/07/07 | 179905 | systems/win32/miktex/tm/packages/next/miktex-mo-bin-x64-2.9.tar.lzma
+2020/07/07 | 17816 | graphics/asymptote/asy-keywords.el
+2020/07/07 | 1780 | graphics/asymptote/examples/conicurv.asy
+2020/07/07 | 177 | graphics/asymptote/runpath.h
+2020/07/07 | 177 | graphics/asymptote/examples/curvedlabel.asy
+2020/07/07 | 17790 | graphics/asymptote/runfile.cc
+2020/07/07 | 17730 | systems/win32/miktex/tm/packages/next/miktex-tex2xindy-bin-x64-2.9.tar.lzma
+2020/07/07 | 177271 | systems/win32/miktex/tm/packages/next/miktex-mpfr-bin-x64-2.9.tar.lzma
+2020/07/07 | 177246 | graphics/asymptote/prc/PRCdouble.cc
+2020/07/07 | 1764 | graphics/asymptote/GUI/res/icons/grid.svg
+2020/07/07 | 17621 | systems/win32/miktex/tm/packages/next/miktex-kpathsea-bin-x64-2.9.tar.lzma
+2020/07/07 | 1760 | graphics/asymptote/examples/animations/heatequation.asy
+2020/07/07 | 1753 | graphics/asymptote/errormsg.cc
+2020/07/07 | 1751872 | systems/win32/miktex/tm/packages/next/miktex-luatex-bin-2.9.tar.lzma
+2020/07/07 | 1746 | graphics/asymptote/doc/westnile.asy
+2020/07/07 | 174673 | graphics/asymptote/base/colormap.asy
+2020/07/07 | 1739730 | macros/latex/required/babel/base.zip
+2020/07/07 | 17332 | systems/texlive/tlnet/archive/semantex.r55765.tar.xz
+2020/07/07 | 1724 | graphics/asymptote/GUI/GuidesManager.py
+2020/07/07 | 1711 | graphics/asymptote/GUI/res/icons.qrc
+2020/07/07 | 171139 | systems/win32/miktex/tm/packages/next/miktex-metafont-bin-2.9.tar.lzma
+2020/07/07 | 1710 | graphics/asymptote/tests/arith/roots.asy
+2020/07/07 | 170 | graphics/asymptote/examples/stereoscopic.asy
+2020/07/07 | 1704 | graphics/asymptote/record.cc
+2020/07/07 | 170233 | systems/win32/miktex/tm/packages/next/miktex-mktex-bin-2.9.tar.lzma
+2020/07/07 | 169 | graphics/asymptote/runbacktrace.h
+2020/07/07 | 169762 | systems/win32/miktex/tm/packages/next/miktex-curl-bin-2.9.tar.lzma
+2020/07/07 | 1694 | graphics/asymptote/fftw++.cc
+2020/07/07 | 168 | graphics/asymptote/examples/strokeshade.asy
+2020/07/07 | 168 | graphics/asymptote/examples/lines.asy
+2020/07/07 | 167232 | systems/texlive/tlnet/archive/texlive-docindex.doc.r55762.tar.xz
+2020/07/07 | 1665 | graphics/asymptote/GUI/Widg_editBezier.py
+2020/07/07 | 16635 | graphics/asymptote/runlabel.cc
+2020/07/07 | 165 | graphics/asymptote/examples/sphereskeleton.asy
+2020/07/07 | 1658 | graphics/asymptote/prc/PRCTools/Makefile
+2020/07/07 | 16578 | graphics/asymptote/base/plain_Label.asy
+2020/07/07 | 164958 | systems/win32/miktex/tm/packages/next/miktex-tex-bin-x64-2.9.tar.lzma
+2020/07/07 | 16491 | graphics/asymptote/runpair.cc
+2020/07/07 | 164511 | graphics/asymptote/GUI/icons_rc.py
+2020/07/07 | 1642 | graphics/asymptote/callable.h
+2020/07/07 | 1637 | graphics/asymptote/builtin.h
+2020/07/07 | 16308198 | systems/texlive/tlnet/tlpkg/texlive.tlpdb
+2020/07/07 | 1626 | graphics/asymptote/genv.h
+2020/07/07 | 1620 | graphics/asymptote/doc/colors.asy
+2020/07/07 | 162098 | macros/latex/contrib/semantex/semantex.sty
+2020/07/07 | 161 | graphics/asymptote/runhistory.h
+2020/07/07 | 16138 | graphics/asymptote/base/slide.asy
+2020/07/07 | 1612 | graphics/asymptote/asy-list.pl
+2020/07/07 | 1610 | graphics/asymptote/common.h
+2020/07/07 | 160672 | graphics/asymptote/examples/animations/dice.u3d
+2020/07/07 | 16018 | systems/win32/miktex/tm/packages/next/miktex-tex2xindy-bin-2.9.tar.lzma
+2020/07/07 | 159 | graphics/asymptote/tests/types/cast.asy
+2020/07/07 | 1594 | graphics/asymptote/pen.cc
+2020/07/07 | 159287 | systems/win32/miktex/tm/packages/next/miktex-mo-bin-2.9.tar.lzma
+2020/07/07 | 15922 | systems/win32/miktex/tm/packages/next/miktex-kpathsea-bin-2.9.tar.lzma
+2020/07/07 | 158 | graphics/asymptote/tests/frames/stat.asy
+2020/07/07 | 15845 | graphics/asymptote/dec.h
+2020/07/07 | 157 | graphics/asymptote/runsystem.h
+2020/07/07 | 157 | graphics/asymptote/doc/saddle.asy
+2020/07/07 | 1569 | graphics/asymptote/examples/near_earth.asy
+2020/07/07 | 15645 | graphics/asymptote/install-sh
+2020/07/07 | 155 | graphics/asymptote/tests/types/ecast.asy
+2020/07/07 | 154 | graphics/asymptote/examples/billboard.asy
+2020/07/07 | 154 | graphics/asymptote/doc/slopefield1.asy
+2020/07/07 | 154453 | systems/win32/miktex/tm/packages/next/miktex-hunspell-bin-x64-2.9.tar.lzma
+2020/07/07 | 153 | systems/texlive/tlnet/install-tl-windows.exe.sha512
+2020/07/07 | 153 | graphics/asymptote/runlabel.h
+2020/07/07 | 1537 | graphics/asymptote/examples/refs.bib
+2020/07/07 | 15372 | graphics/asymptote/types.h
+2020/07/07 | 152 | systems/texlive/tlnet/install-tl-unx.tar.gz.sha512
+2020/07/07 | 1526 | graphics/asymptote/examples/BezierSurface.asy
+2020/07/07 | 1524 | graphics/asymptote/patches/flex.patch
+2020/07/07 | 15192 | graphics/asymptote/base/ode.asy
+2020/07/07 | 151908 | systems/win32/miktex/tm/packages/next/miktex-fontconfig-bin-x64-2.9.tar.lzma
+2020/07/07 | 151032 | systems/win32/miktex/tm/packages/next/miktex-tex-bin-2.9.tar.lzma
+2020/07/07 | 150 | graphics/asymptote/examples/spheresilhouette.asy
+2020/07/07 | 150 | graphics/asymptote/doc/latexmkrc_asydir
+2020/07/07 | 1504 | graphics/asymptote/GUI/xasyUtils.py
+2020/07/07 | 1498 | graphics/asymptote/examples/animations/wavepacket.asy
+2020/07/07 | 1492 | graphics/asymptote/runarray.h
+2020/07/07 | 1492 | graphics/asymptote/GUI/res/icons/bucket.svg
+2020/07/07 | 1482 | graphics/asymptote/GUI/res/icons/android-hand.svg
+2020/07/07 | 14801 | graphics/asymptote/base/palette.asy
+2020/07/07 | 147 | graphics/asymptote/doc/vectorfield.asy
+2020/07/07 | 1479 | graphics/asymptote/prc/PRCTools/inflationMain.cc
+2020/07/07 | 14795 | graphics/asymptote/entry.h
+2020/07/07 | 14764 | graphics/asymptote/configure.ac
+2020/07/07 | 14756413 | graphics/asymptote.zip
+2020/07/07 | 1469 | graphics/asymptote/doc/png/Makefile.in
+2020/07/07 | 14660 | graphics/asymptote/base/contour3.asy
+2020/07/07 | 1461 | graphics/asymptote/examples/NURBSsurface.asy
+2020/07/07 | 145 | systems/texlive/tlnet/install-tl.zip.sha512
+2020/07/07 | 145 | graphics/asymptote/examples/star.asy
+2020/07/07 | 144 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512
+2020/07/07 | 144 | graphics/asymptote/doc/latexmkrc
+2020/07/07 | 14494 | graphics/asymptote/stack.cc
+2020/07/07 | 1446 | graphics/asymptote/webgl/vertex.glsl
+2020/07/07 | 143 | graphics/asymptote/tests/gc/label.asy
+2020/07/07 | 14311 | graphics/asymptote/base/flowchart.asy
+2020/07/07 | 141 | graphics/asymptote/examples/sphere.asy
+2020/07/07 | 141 | graphics/asymptote/examples/ring.asy
+2020/07/07 | 141818 | systems/win32/miktex/tm/packages/next/miktex-hunspell-bin-2.9.tar.lzma
+2020/07/07 | 1415947 | graphics/asymptote/ChangeLog
+2020/07/07 | 14116 | systems/win32/miktex/tm/packages/next/miktex-zzip-bin-x64-2.9.tar.lzma
+2020/07/07 | 1409381 | systems/win32/miktex/tm/packages/next/miktex-dvisvgm-bin-x64-2.9.tar.lzma
+2020/07/07 | 14023 | graphics/asymptote/arrayop.h
+2020/07/07 | 13944 | graphics/asymptote/runtriple.cc
+2020/07/07 | 1393 | graphics/asymptote/GUI/SetCustomAnchor.py
+2020/07/07 | 1391 | graphics/asymptote/doc/CAD1.asy
+2020/07/07 | 138 | graphics/asymptote/Pipfile
+2020/07/07 | 13884 | graphics/asymptote/types.cc
+2020/07/07 | 1384 | graphics/asymptote/tests/pic/trans.asy
+2020/07/07 | 1375 | graphics/asymptote/base/tree.asy
+2020/07/07 | 13739 | graphics/asymptote/examples/teapot.asy
+2020/07/07 | 136 | graphics/asymptote/examples/latticeshading.asy
+2020/07/07 | 13663 | graphics/asymptote/doc/install-sh
+2020/07/07 | 13663 | graphics/asymptote/doc/FAQ/install-sh
+2020/07/07 | 13550 | graphics/asymptote/GUI/xasyBezierInterface.py
+2020/07/07 | 1349 | graphics/asymptote/interact.h
+2020/07/07 | 13476 | graphics/asymptote/base/grid3.asy
+2020/07/07 | 1343 | graphics/asymptote/runtimebase.in
+2020/07/07 | 133621 | systems/win32/miktex/tm/packages/next/miktex-fontconfig-bin-2.9.tar.lzma
+2020/07/07 | 13339 | graphics/asymptote/camp.l
+2020/07/07 | 1331 | graphics/asymptote/tests/types/spec.asy
+2020/07/07 | 132 | graphics/asymptote/tests/string/length.asy
+2020/07/07 | 1327712 | systems/win32/miktex/tm/packages/next/miktex-runtime-bin-x64-2.9.tar.lzma
+2020/07/07 | 1326 | graphics/asymptote/examples/electromagnetic.asy
+2020/07/07 | 131 | graphics/asymptote/GUI/DebugFlags.py
+2020/07/07 | 1319 | graphics/asymptote/GUI/res/icons/android-color-palette.svg
+2020/07/07 | 13135 | systems/win32/miktex/tm/packages/next/miktex-zzip-bin-2.9.tar.lzma
+2020/07/07 | 1311 | graphics/asymptote/patches/dvipdf
+2020/07/07 | 1310 | graphics/asymptote/prc/PRCTools/extractSections.cc
+2020/07/07 | 1310 | graphics/asymptote/examples/roundpath.asy
+2020/07/07 | 1309 | graphics/asymptote/examples/Klein.asy
+2020/07/07 | 130330 | systems/win32/miktex/tm/packages/next/miktex-dvips-bin-x64-2.9.tar.lzma
+2020/07/07 | 129 | graphics/asymptote/tests/gc/struct.asy
+2020/07/07 | 1293 | graphics/asymptote/TODO
+2020/07/07 | 12892 | graphics/asymptote/runlabel.in
+2020/07/07 | 1288 | graphics/asymptote/beziercurve.h
+2020/07/07 | 1284 | graphics/asymptote/tests/output/Makefile
+2020/07/07 | 1282789 | graphics/asymptote/doc/asymptote.pdf
+2020/07/07 | 1279 | graphics/asymptote/drawverbatim.h
+2020/07/07 | 1278 | graphics/asymptote/newexp.h
+2020/07/07 | 127885 | graphics/asymptote/camp.tab.cc
+2020/07/07 | 1276 | graphics/asymptote/base/asymptote.py
+2020/07/07 | 12744 | graphics/asymptote/impdatum.cc
+2020/07/07 | 1266025 | systems/win32/miktex/tm/packages/next/miktex-dvisvgm-bin-2.9.tar.lzma
+2020/07/07 | 12629 | graphics/asymptote/runsystem.cc
+2020/07/07 | 1261761 | graphics/asymptote/examples/worldmap.dat
+2020/07/07 | 1259 | graphics/asymptote/base/plain_arcs.asy
+2020/07/07 | 1253 | graphics/asymptote/keywords.pl
+2020/07/07 | 12534 | graphics/asymptote/ax_pthread.m4
+2020/07/07 | 1251 | graphics/asymptote/examples/odetest.asy
+2020/07/07 | 124 | graphics/asymptote/tests/gc/path.asy
+2020/07/07 | 124 | graphics/asymptote/GUI/res/icons/centerorigin.asy
+2020/07/07 | 1245 | graphics/asymptote/prc/PRCTools/describeMain.cc
+2020/07/07 | 1245 | graphics/asymptote/findsym.pl
+2020/07/07 | 1240 | graphics/asymptote/examples/arrows3.asy
+2020/07/07 | 123 | graphics/asymptote/examples/Coons.asy
+2020/07/07 | 123 | graphics/asymptote/doc/superpath.asy
+2020/07/07 | 1238 | graphics/asymptote/examples/animations/slidemovies.asy
+2020/07/07 | 1237 | graphics/asymptote/GUI/res/icons/closedcurve.svg
+2020/07/07 | 1235 | graphics/asymptote/examples/animations/inlinemovie.tex
+2020/07/07 | 1235777 | graphics/asymptote/GL/glew.c
+2020/07/07 | 1234 | graphics/asymptote/primitives.h
+2020/07/07 | 1231 | graphics/asymptote/examples/logo3.asy
+2020/07/07 | 12300 | graphics/asymptote/knot.h
+2020/07/07 | 1229 | graphics/asymptote/build-scripts/build-asygl
+2020/07/07 | 1226 | graphics/asymptote/GUI/res/icons/triangle-stroked-15.svg
+2020/07/07 | 121 | graphics/asymptote/doc/labelsquare.asy
+2020/07/07 | 1216 | graphics/asymptote/examples/dragon.asy
+2020/07/07 | 121567 | graphics/asymptote/ReleaseNotes
+2020/07/07 | 1213 | graphics/asymptote/drawclipend.h
+2020/07/07 | 121144 | graphics/asymptote/doc/asyRefCard.pdf
+2020/07/07 | 12103 | graphics/asymptote/stm.cc
+2020/07/07 | 1209 | graphics/asymptote/tests/imp/unravel.asy
+2020/07/07 | 1205479 | systems/win32/miktex/tm/packages/miktex-zzdb2-2.9.tar.lzma
+2020/07/07 | 1205385 | systems/win32/miktex/tm/packages/next/miktex-zzdb2-2.9.tar.lzma
+2020/07/07 | 1204 | macros/latex/contrib/semantex/README.md
+2020/07/07 | 12035 | graphics/asymptote/base/solids.asy
+2020/07/07 | 119 | graphics/asymptote/fftw++asy.cc
+2020/07/07 | 1194 | graphics/asymptote/GUI/res/icons/code.svg
+2020/07/07 | 1193676 | systems/win32/miktex/tm/packages/next/miktex-runtime-bin-2.9.tar.lzma
+2020/07/07 | 1191 | graphics/asymptote/camperror.cc
+2020/07/07 | 11907 | graphics/asymptote/tests/gsl/random.asy
+2020/07/07 | 118 | graphics/asymptote/tests/string/substr.asy
+2020/07/07 | 1189 | graphics/asymptote/tests/types/var.asy
+2020/07/07 | 1186 | graphics/asymptote/GUI/res/icons/opencurve.svg
+2020/07/07 | 1186601 | graphics/asymptote/GL/glew.h
+2020/07/07 | 1185 | graphics/asymptote/examples/functionshading.asy
+2020/07/07 | 1183 | graphics/asymptote/base/embed.asy
+2020/07/07 | 1175 | graphics/asymptote/guide.cc
+2020/07/07 | 117131 | systems/win32/miktex/tm/packages/next/miktex-gd-bin-x64-2.9.tar.lzma
+2020/07/07 | 11680 | graphics/asymptote/path.h
+2020/07/07 | 11658 | graphics/asymptote/coder.h
+2020/07/07 | 1163 | graphics/asymptote/runtime.h
+2020/07/07 | 1160528 | graphics/asymptote/gc-8.0.4.tar.gz
+2020/07/07 | 11604 | graphics/asymptote/Makefile.in
+2020/07/07 | 116025 | graphics/asymptote/predicates.cc
+2020/07/07 | 115 | graphics/asymptote/doc/onecontour.asy
+2020/07/07 | 115819 | systems/win32/miktex/tm/packages/next/miktex-dvips-bin-2.9.tar.lzma
+2020/07/07 | 11541 | graphics/asymptote/aspy.py
+2020/07/07 | 1153 | systems/win32/miktex/tm/packages/next/pr.ini
+2020/07/07 | 11528 | graphics/asymptote/GUI/InplaceAddObj.py
+2020/07/07 | 1151 | graphics/asymptote/callable.cc
+2020/07/07 | 1148 | graphics/asymptote/GUI/configs/xasyconfig.cson
+2020/07/07 | 11482 | graphics/asymptote/base/binarytree.asy
+2020/07/07 | 1142 | graphics/asymptote/envcompleter.cc
+2020/07/07 | 1140 | graphics/asymptote/examples/imagehistogram.asy
+2020/07/07 | 113 | graphics/asymptote/patches/fixmem.reg
+2020/07/07 | 11384 | graphics/asymptote/drawelement.h
+2020/07/07 | 1136 | graphics/asymptote/examples/genustwo.asy
+2020/07/07 | 113699 | systems/win32/miktex/tm/packages/next/miktex-gregorio-bin-x64-2.9.tar.lzma
+2020/07/07 | 11320 | graphics/asymptote/base/plain_markers.asy
+2020/07/07 | 1131 | graphics/asymptote/gl-matrix-2.4.0-pruned/LICENSE.js
+2020/07/07 | 1126 | graphics/asymptote/coenv.cc
+2020/07/07 | 1126068 | systems/win32/miktex/tm/packages/next/miktex-zzdb3-2.9.tar.lzma
+2020/07/07 | 1125024 | systems/win32/miktex/tm/packages/miktex-zzdb3-2.9.tar.lzma
+2020/07/07 | 1124 | graphics/asymptote/GUI/res/icons/android-locate.svg
+2020/07/07 | 1122 | graphics/asymptote/base/external.asy
+2020/07/07 | 1120 | graphics/asymptote/examples/animations/wheel.asy
+2020/07/07 | 111 | graphics/asymptote/GUI/res/icons/center.asy
+2020/07/07 | 11180 | graphics/asymptote/util.cc
+2020/07/07 | 1114 | graphics/asymptote/examples/laserlattice.asy
+2020/07/07 | 11030 | graphics/asymptote/base/math.asy
+2020/07/07 | 1102 | graphics/asymptote/GUI/res/icons/closedpolygon.svg
+2020/07/07 | 109 | graphics/asymptote/tests/string/insert.asy
+2020/07/07 | 1098 | graphics/asymptote/refaccess.cc
+2020/07/07 | 109776 | systems/win32/miktex/tm/packages/next/miktex-epstopdf-bin-x64-2.9.tar.lzma
+2020/07/07 | 1096 | graphics/asymptote/tests/array/transpose.asy
+2020/07/07 | 109015 | systems/win32/miktex/tm/packages/next/miktex-jpeg-bin-x64-2.9.tar.lzma
+2020/07/07 | 108 | graphics/asymptote/GUI/res/icons/subdirectory-left.svg
+2020/07/07 | 1085 | graphics/asymptote/GUI/res/icons/openpolygon.svg
+2020/07/07 | 10830 | graphics/asymptote/base/CAD.asy
+2020/07/07 | 1082 | graphics/asymptote/patches/README
+2020/07/07 | 10798 | graphics/asymptote/texfile.h
+2020/07/07 | 1065 | graphics/asymptote/examples/shellmethod.asy
+2020/07/07 | 10632 | graphics/asymptote/EnvVarUpdate.nsh
+2020/07/07 | 1060543 | systems/win32/miktex/tm/packages/next/miktex-asymptote-bin-x64-2.9.tar.lzma
+2020/07/07 | 10604 | graphics/asymptote/path3.h
+2020/07/07 | 105 | graphics/asymptote/GUI/res/icons/closedpolygon.asy
+2020/07/07 | 105 | graphics/asymptote/GUI/res/icons/closedcurve.asy
+2020/07/07 | 10582 | graphics/asymptote/tr.cc
+2020/07/07 | 1055 | graphics/asymptote/examples/partitionExample.asy
+2020/07/07 | 1052 | graphics/asymptote/GUI/res/icons/centerorigin.svg
+2020/07/07 | 1051 | graphics/asymptote/prc/PRCTools/inflation.h
+2020/07/07 | 1051 | graphics/asymptote/doc/eetomumu.asy
+2020/07/07 | 1050 | graphics/asymptote/opsymbols.pl
+2020/07/07 | 104 | graphics/asymptote/examples/tiling.asy
+2020/07/07 | 104 | graphics/asymptote/examples/shadestroke.asy
+2020/07/07 | 104589 | systems/win32/miktex/tm/packages/next/miktex-texware-bin-x64-2.9.tar.lzma
+2020/07/07 | 10445 | graphics/asymptote/INSTALL
+2020/07/07 | 1037 | graphics/asymptote/examples/animations/inlinemovie3.tex
+2020/07/07 | 1036 | graphics/asymptote/examples/workcone.asy
+2020/07/07 | 1033 | graphics/asymptote/examples/basealign.asy
+2020/07/07 | 10313506 | macros/latex/contrib/reledmac.zip
+2020/07/07 | 1030 | graphics/asymptote/absyn.h
+2020/07/07 | 102 | graphics/asymptote/tests/gc/file.asy
+2020/07/07 | 10271 | graphics/asymptote/GUI/windows/custMatTransform.ui
+2020/07/07 | 1025 | graphics/asymptote/doc/leastsquares.asy
+2020/07/07 | 102565 | systems/win32/miktex/tm/packages/next/miktex-lua53-bin-x64-2.9.tar.lzma
+2020/07/07 | 1021925 | systems/win32/miktex/tm/packages/next/miktex-poppler-bin-x64-2.9.tar.lzma
+2020/07/07 | 10210 | graphics/asymptote/examples/thermodynamics.asy
+2020/07/07 | 1020 | graphics/asymptote/flatguide.cc
+2020/07/07 | 1020 | graphics/asymptote/examples/NURBSsphere.asy
+2020/07/07 | 10196 | graphics/asymptote/doc/CAD.tex
+2020/07/07 | 101913 | systems/win32/miktex/tm/packages/next/miktex-mfware-bin-x64-2.9.tar.lzma
+2020/07/07 | 1013 | graphics/asymptote/GUI/res/icons/chevron-with-circle-left.svg
+2020/07/07 | 1010 | graphics/asymptote/examples/washermethod.asy
+2020/07/07 | 100972 | systems/win32/miktex/tm/packages/next/miktex-gd-bin-2.9.tar.lzma
+2020/07/07 | 1005 | graphics/asymptote/doc/asy.1.begin
+2020/07/07 | 1003 | graphics/asymptote/GUI/res/icons/eye.svg
+2020/07/07 | 1000 | graphics/asymptote/doc/FAQ/Makefile
+2020/07/06 | 987044 | macros/latex/contrib/reledmac/reledpar.pdf
2020/07/06 | 982708 | systems/texlive/tlnet/archive/eplain.doc.r55758.tar.xz
-2020/07/06 | 98015 | systems/win32/miktex/tm/packages/next/miktex-texware-bin-2.9.tar.lzma
-2020/07/06 | 96909 | systems/win32/miktex/tm/packages/next/miktex-mfware-bin-2.9.tar.lzma
-2020/07/06 | 96515 | systems/win32/miktex/tm/packages/next/miktex-mpmcli-bin-x64-2.9.tar.lzma
-2020/07/06 | 957364 | systems/win32/miktex/tm/packages/next/miktex-asymptote-bin-2.9.tar.lzma
-2020/07/06 | 95313 | systems/win32/miktex/tm/packages/next/miktex-epstopdf-bin-2.9.tar.lzma
-2020/07/06 | 94531 | systems/win32/miktex/tm/packages/next/miktex-jpeg-bin-2.9.tar.lzma
-2020/07/06 | 94262 | systems/win32/miktex/tm/packages/next/miktex-gregorio-bin-2.9.tar.lzma
+2020/07/06 | 9804 | macros/latex/contrib/reledmac/examples/1-sidenotes.tex
2020/07/06 | 938 | graphics/pgf/contrib/circuitikz/doc/circuitikz-context.tex
2020/07/06 | 937253 | graphics/pgf/contrib/circuitikz/tex/circuitikz-1.1.2.sty
-2020/07/06 | 93648 | systems/win32/miktex/tm/packages/next/miktex-bibtex8bit-bin-x64-2.9.tar.lzma
-2020/07/06 | 93645 | systems/win32/miktex/tm/packages/next/miktex-lua53-bin-2.9.tar.lzma
+2020/07/06 | 9314 | macros/latex/contrib/reledmac/examples/4-reledpar_pages_titles_in_line_numbering_with_notes.tex
+2020/07/06 | 93085 | macros/latex/contrib/reledmac/examples/3-reledpar_mwe.pdf
2020/07/06 | 929934 | graphics/pgf/contrib/circuitikz/tex/t-circuitikz-1.1.2.tex
-2020/07/06 | 922566 | systems/win32/miktex/tm/packages/next/miktex-poppler-bin-2.9.tar.lzma
2020/07/06 | 9091 | graphics/pgf/contrib/circuitikz/tex/pgfcircflow.tex
-2020/07/06 | 88780 | systems/win32/miktex/tm/packages/next/miktex-mkfntmap-bin-x64-2.9.tar.lzma
-2020/07/06 | 88015 | systems/win32/miktex/tm/packages/next/miktex-texify-bin-x64-2.9.tar.lzma
-2020/07/06 | 87407 | systems/win32/miktex/tm/packages/next/miktex-png-bin-x64-2.9.tar.lzma
+2020/07/06 | 876839 | macros/latex/contrib/reledmac/reledmac.dtx
2020/07/06 | 8738 | graphics/pgf/contrib/circuitikz/tex/pgfcirccurrent.tex
-2020/07/06 | 8581 | systems/win32/miktex/tm/packages/next/miktex-md5-bin-x64-2.9.tar.lzma
-2020/07/06 | 857 | systems/win32/miktex/tm/packages/pr.ini
-2020/07/06 | 84819 | systems/win32/miktex/tm/packages/next/miktex-mpmcli-bin-2.9.tar.lzma
-2020/07/06 | 84387 | systems/win32/miktex/tm/packages/next/miktex-bibtex8bit-bin-2.9.tar.lzma
+2020/07/06 | 8510 | macros/latex/contrib/reledmac/examples/4-reledpar_titles_not_in_line_numbering.tex
2020/07/06 | 841461 | graphics/pgf/contrib/circuitikz/tex/circuitikz-1.0.sty
2020/07/06 | 834142 | graphics/pgf/contrib/circuitikz/tex/t-circuitikz-1.0.tex
-2020/07/06 | 82832 | systems/win32/miktex/tm/packages/next/miktex-tdsutil-bin-x64-2.9.tar.lzma
-2020/07/06 | 82762 | systems/win32/miktex/tm/packages/next/miktex-tdsutil-bin-x64.tar.lzma
-2020/07/06 | 79744 | systems/win32/miktex/tm/packages/next/miktex-mkfntmap-bin-2.9.tar.lzma
-2020/07/06 | 79199 | systems/win32/miktex/tm/packages/next/miktex-cjkutils-bin-x64-2.9.tar.lzma
-2020/07/06 | 78147 | systems/win32/miktex/tm/packages/next/miktex-png-bin-2.9.tar.lzma
-2020/07/06 | 77603 | systems/win32/miktex/tm/packages/next/miktex-texify-bin-2.9.tar.lzma
-2020/07/06 | 77566 | systems/win32/miktex/tm/packages/next/miktex-fonts-bin-x64-2.9.tar.lzma
-2020/07/06 | 77427 | systems/win32/miktex/tm/packages/next/miktex-freeglut-bin-x64-2.9.tar.lzma
-2020/07/06 | 76757 | systems/win32/miktex/tm/packages/next/miktex-tdsutil-bin-2.9.tar.lzma
-2020/07/06 | 76738 | systems/win32/miktex/tm/packages/next/miktex-tdsutil-bin.tar.lzma
+2020/07/06 | 816 | macros/latex/contrib/reledmac/examples/makefile
2020/07/06 | 758990 | graphics/pgf/contrib/circuitikz/tex/circuitikz-0.9.6.sty
-2020/07/06 | 75886 | macros/latex/contrib/semantex/semantex.tex
-2020/07/06 | 7557 | systems/win32/miktex/tm/packages/next/miktex-md5-bin-2.9.tar.lzma
2020/07/06 | 751663 | graphics/pgf/contrib/circuitikz/tex/t-circuitikz-0.9.6.tex
-2020/07/06 | 73668 | systems/win32/miktex/tm/packages/next/miktex-lzma-bin-x64-2.9.tar.lzma
-2020/07/06 | 73407 | systems/win32/miktex/tm/packages/next/miktex-bibtex-bin-x64-2.9.tar.lzma
-2020/07/06 | 73102 | systems/win32/miktex/tm/packages/next/miktex-fonts-bin-2.9.tar.lzma
-2020/07/06 | 72600 | systems/win32/miktex/tm/packages/next/miktex-graphite2-bin-x64-2.9.tar.lzma
-2020/07/06 | 72071 | systems/win32/miktex/tm/packages/next/miktex-cjkutils-bin-2.9.tar.lzma
-2020/07/06 | 71533 | systems/win32/miktex/tm/packages/next/miktex-ps2pk-bin-x64-2.9.tar.lzma
-2020/07/06 | 70303 | systems/win32/miktex/tm/packages/next/miktex-web-bin-x64-2.9.tar.lzma
-2020/07/06 | 69875 | systems/win32/miktex/tm/packages/next/miktex-mtprint-bin-x64-2.9.tar.lzma
-2020/07/06 | 69136 | systems/win32/miktex/tm/packages/next/miktex-tex4ht-bin-x64-2.9.tar.lzma
2020/07/06 | 690730 | graphics/pgf/contrib/circuitikz/tex/circuitikz-0.9.3.sty
-2020/07/06 | 68820 | systems/win32/miktex/tm/packages/next/miktex-freeglut-bin-2.9.tar.lzma
2020/07/06 | 683433 | graphics/pgf/contrib/circuitikz/tex/t-circuitikz-0.9.3.tex
-2020/07/06 | 676982 | systems/win32/miktex/tm/packages/next/miktex-lcdf-typetools-bin-x64-2.9.tar.lzma
-2020/07/06 | 67326 | systems/win32/miktex/tm/packages/next/miktex-arctrl-bin-x64-2.9.tar.lzma
-2020/07/06 | 67271 | systems/win32/miktex/tm/packages/next/miktex-lzma-bin-2.9.tar.lzma
-2020/07/06 | 66121 | systems/win32/miktex/tm/packages/next/miktex-web-bin-2.9.tar.lzma
+2020/07/06 | 6806 | macros/latex/contrib/reledmac/examples/2-footnote_spacing.tex
+2020/07/06 | 679805 | systems/win32/w32tex/ChangeLog
2020/07/06 | 65690 | support/de-macro.zip
-2020/07/06 | 65602 | systems/win32/miktex/tm/packages/next/miktex-bibtex-bin-2.9.tar.lzma
-2020/07/06 | 65576 | systems/win32/miktex/tm/packages/next/miktex-gsf2pk-bin-x64-2.9.tar.lzma
-2020/07/06 | 64201 | systems/win32/miktex/tm/packages/next/miktex-mthelp-bin-x64-2.9.tar.lzma
-2020/07/06 | 638874 | systems/win32/miktex/tm/packages/next/miktex-yap-bin-x64-2.9.tar.lzma
-2020/07/06 | 63529 | systems/win32/miktex/tm/packages/next/miktex-graphite2-bin-2.9.tar.lzma
-2020/07/06 | 63502 | systems/win32/miktex/tm/packages/next/miktex-ps2pk-bin-2.9.tar.lzma
-2020/07/06 | 63495 | systems/win32/miktex/tm/packages/next/miktex-tex4ht-bin-2.9.tar.lzma
+2020/07/06 | 6540 | macros/latex/contrib/reledmac/examples/4-reledpar_pages_notes_leftpage.tex
2020/07/06 | 6340 | systems/texlive/tlnet/archive/cascade.source.r55759.tar.xz
-2020/07/06 | 63351 | systems/win32/miktex/tm/packages/next/miktex-mtprint-bin-2.9.tar.lzma
-2020/07/06 | 62930 | systems/win32/miktex/tm/packages/next/miktex-fmt-bin-x64-2.9.tar.lzma
-2020/07/06 | 623384 | systems/win32/miktex/tm/packages/next/miktex-lcdf-typetools-bin-2.9.tar.lzma
2020/07/06 | 61988 | graphics/pgf/contrib/circuitikz/tex/pgfcircpath.tex
-2020/07/06 | 61818 | systems/win32/miktex/tm/packages/next/miktex-ttf2pk2-bin-x64-2.9.tar.lzma
2020/07/06 | 6106 | graphics/pgf/contrib/circuitikz/doc/ctikzmanutils.sty
-2020/07/06 | 597674 | systems/win32/miktex/tm/packages/next/miktex-yap-bin-2.9.tar.lzma
-2020/07/06 | 59173 | systems/win32/miktex/tm/packages/next/miktex-arctrl-bin-2.9.tar.lzma
-2020/07/06 | 58973 | systems/win32/miktex/tm/packages/next/miktex-gsf2pk-bin-2.9.tar.lzma
-2020/07/06 | 586876 | systems/win32/miktex/tm/packages/next/miktex-log4cxx-bin-x64-2.9.tar.lzma
-2020/07/06 | 58608 | systems/win32/miktex/tm/packages/next/miktex-cweb-bin-x64-2.9.tar.lzma
-2020/07/06 | 57249 | systems/win32/miktex/tm/packages/next/miktex-mthelp-bin-2.9.tar.lzma
-2020/07/06 | 57197 | systems/win32/miktex/tm/packages/next/miktex-bibarts-bin-x64-2.9.tar.lzma
-2020/07/06 | 57184 | systems/win32/miktex/tm/packages/next/miktex-fmt-bin-2.9.tar.lzma
-2020/07/06 | 562945 | systems/win32/miktex/tm/packages/next/miktex-libressl-bin-x64-2.9.tar.lzma
-2020/07/06 | 55579 | systems/win32/miktex/tm/packages/next/miktex-ttf2pk2-bin-2.9.tar.lzma
-2020/07/06 | 550399 | systems/win32/miktex/tm/packages/next/miktex-harfbuzz-bin-x64-2.9.tar.lzma
-2020/07/06 | 5500855 | systems/texlive/tlnet/install-tl-unx.tar.gz
-2020/07/06 | 544668 | systems/win32/miktex/tm/packages/next/miktex-log4cxx-bin-2.9.tar.lzma
+2020/07/06 | 5587 | macros/latex/contrib/reledmac/examples/4-reledpar_columns_titles_in_line_numbering_with_notes.tex
2020/07/06 | 54275 | support/de-macro/user-guide.pdf
-2020/07/06 | 540973 | systems/win32/miktex/tm/packages/next/files.csv.lzma
-2020/07/06 | 539894 | systems/win32/miktex/tm/packages/files.csv.lzma
-2020/07/06 | 52206 | systems/win32/miktex/tm/packages/next/miktex-m-tx-bin-x64-2.9.tar.lzma
-2020/07/06 | 51922 | systems/win32/miktex/tm/packages/next/miktex-cweb-bin-2.9.tar.lzma
-2020/07/06 | 51417 | systems/win32/miktex/tm/packages/next/miktex-synctex-bin-x64-2.9.tar.lzma
-2020/07/06 | 51239 | systems/win32/miktex/tm/packages/next/miktex-findtexmf-bin-x64-2.9.tar.lzma
-2020/07/06 | 51044 | systems/win32/miktex/tm/packages/next/miktex-dvicopy-bin-x64-2.9.tar.lzma
-2020/07/06 | 50905 | systems/win32/miktex/tm/packages/next/miktex-psutils-bin-x64-2.9.tar.lzma
-2020/07/06 | 500484 | systems/win32/miktex/tm/packages/next/miktex-libressl-bin-2.9.tar.lzma
-2020/07/06 | 49695 | systems/win32/miktex/tm/packages/next/miktex-bibarts-bin-2.9.tar.lzma
-2020/07/06 | 48 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.md5
-2020/07/06 | 48049 | systems/win32/miktex/tm/packages/next/miktex-expat-bin-x64-2.9.tar.lzma
-2020/07/06 | 46284 | systems/win32/miktex/tm/packages/next/miktex-findtexmf-bin-2.9.tar.lzma
-2020/07/06 | 462359 | systems/win32/miktex/tm/packages/next/miktex-harfbuzz-bin-2.9.tar.lzma
+2020/07/06 | 5161 | macros/latex/contrib/reledmac/examples/2-one_series_per_pstart.tex
+2020/07/06 | 5010 | macros/latex/contrib/reledmac/doc-include/migrate-par.dtx
+2020/07/06 | 49 | macros/latex/contrib/reledmac/examples/latexmkrc
+2020/07/06 | 4645 | macros/latex/contrib/reledmac/doc-more/page-typesetting-columns.tex
2020/07/06 | 46195 | graphics/pgf/contrib/circuitikz/tex/pgfcircmonopoles.tex
-2020/07/06 | 460366 | systems/win32/miktex/tm/packages/next/miktex-doc.tar.lzma
-2020/07/06 | 460276 | systems/win32/miktex/tm/packages/next/miktex-doc-2.9.tar.lzma
-2020/07/06 | 45737 | systems/win32/miktex/tm/packages/next/miktex-m-tx-bin-2.9.tar.lzma
-2020/07/06 | 455 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512.asc
-2020/07/06 | 455 | systems/texlive/tlnet/install-tl.zip.sha512.asc
-2020/07/06 | 455 | systems/texlive/tlnet/install-tl-windows.exe.sha512.asc
-2020/07/06 | 455 | systems/texlive/tlnet/install-tl-unx.tar.gz.sha512.asc
-2020/07/06 | 45498 | systems/win32/miktex/tm/packages/next/miktex-dvicopy-bin-2.9.tar.lzma
-2020/07/06 | 44984 | systems/win32/miktex/tm/packages/next/miktex-dvipng-bin-x64-2.9.tar.lzma
-2020/07/06 | 43305 | systems/win32/miktex/tm/packages/next/miktex-expat-bin-2.9.tar.lzma
-2020/07/06 | 43024 | systems/win32/miktex/tm/packages/next/miktex-zlib-bin-x64-2.9.tar.lzma
+2020/07/06 | 4504 | macros/latex/contrib/reledmac/examples/4-reledpar_pages_paragraph_separator_between.tex
+2020/07/06 | 43045 | macros/latex/contrib/reledmac/examples/4-reledpar_pages_long_notes.tex
2020/07/06 | 428876 | systems/texlive/tlnet/archive/cweb.doc.r55757.tar.xz
-2020/07/06 | 42502 | systems/win32/miktex/tm/packages/next/miktex-psutils-bin-2.9.tar.lzma
2020/07/06 | 42240 | systems/texlive/tlnet/archive/eplain.r55758.tar.xz
2020/07/06 | 4222 | support/de-macro/user-guide.tex
2020/07/06 | 422268 | graphics/pgf/contrib/circuitikz/tex/circuitikz-0.8.3.sty
-2020/07/06 | 42064 | systems/win32/miktex/tm/packages/next/miktex-synctex-bin-2.9.tar.lzma
2020/07/06 | 418 | graphics/pgf/contrib/circuitikz/doc/compatibility.tex
2020/07/06 | 416850 | graphics/pgf/contrib/circuitikz/tex/t-circuitikz-0.8.3.tex
-2020/07/06 | 40787 | systems/win32/miktex/tm/packages/next/miktex-dvipng-bin-2.9.tar.lzma
+2020/07/06 | 40840 | macros/latex/contrib/reledmac/doc-more/page-typesetting-columns.pdf
2020/07/06 | 403539 | graphics/pgf/contrib/circuitikz/tex/circuitikz-0.7.sty
2020/07/06 | 396576 | systems/texlive/tlnet/archive/eplain.source.r55758.tar.xz
-2020/07/06 | 39508 | systems/win32/miktex/tm/packages/next/miktex-patgen-bin-x64.tar.lzma
-2020/07/06 | 39507 | systems/win32/miktex/tm/packages/next/miktex-patgen-bin-x64-2.9.tar.lzma
2020/07/06 | 393856 | graphics/pgf/contrib/circuitikz/tex/circuitikz-0.6.sty
-2020/07/06 | 392543 | systems/win32/miktex/tm/packages/next/miktex-cairo-bin-x64-2.9.tar.lzma
-2020/07/06 | 38948 | systems/win32/miktex/tm/packages/next/miktex-zlib-bin-2.9.tar.lzma
-2020/07/06 | 388 | systems/texlive/tlnet/archive/texlive-docindex.r55754.tar.xz
2020/07/06 | 38750 | graphics/pgf/contrib/circuitikz/tex/pgfcircquadpoles.tex
-2020/07/06 | 36964 | systems/win32/miktex/tm/packages/next/miktex-upmendex-bin-x64.tar.lzma
-2020/07/06 | 36861 | systems/win32/miktex/tm/packages/next/miktex-posix-bin-x64-2.9.tar.lzma
+2020/07/06 | 3808 | macros/latex/contrib/reledmac/README.md
+2020/07/06 | 37801 | macros/latex/contrib/reledmac/examples/3-reledpar_pages_different_languages_lualatex.pdf
2020/07/06 | 3648 | support/de-macro/README
2020/07/06 | 364086 | graphics/pgf/contrib/circuitikz/tex/circuitikz-0.4.sty
-2020/07/06 | 36307 | systems/win32/miktex/tm/packages/next/miktex-chktex-bin-x64-2.9.tar.lzma
-2020/07/06 | 360665 | systems/win32/miktex/tm/packages/next/miktex-pdftex-bin-x64-2.9.tar.lzma
2020/07/06 | 3590 | graphics/pgf/contrib/circuitikz/tex/t-circuitikz.tex
-2020/07/06 | 35336 | systems/win32/miktex/tm/packages/next/miktex-patgen-bin-2.9.tar.lzma
-2020/07/06 | 35313 | systems/win32/miktex/tm/packages/next/miktex-patgen-bin.tar.lzma
+2020/07/06 | 356983 | macros/latex/contrib/reledmac/migration.pdf
2020/07/06 | 351216 | graphics/pgf/contrib/circuitikz/doc/circuitikzmanual.tex
-2020/07/06 | 35051 | systems/win32/miktex/tm/packages/next/miktex-mspack-bin-x64-2.9.tar.lzma
-2020/07/06 | 34704 | systems/win32/miktex/tm/packages/next/miktex-axohelp-bin-x64-2.9.tar.lzma
-2020/07/06 | 33136 | systems/win32/miktex/tm/packages/next/miktex-upmendex-bin.tar.lzma
-2020/07/06 | 329722 | systems/win32/miktex/tm/packages/next/miktex-cairo-bin-2.9.tar.lzma
+2020/07/06 | 3495 | macros/latex/contrib/reledmac/migration.dtx
2020/07/06 | 3277 | graphics/pgf/contrib/circuitikz/README.md
-2020/07/06 | 327004 | systems/win32/miktex/tm/packages/next/miktex-pdftex-bin-2.9.tar.lzma
-2020/07/06 | 32401 | systems/win32/miktex/tm/packages/next/miktex-uriparser-bin-x64-2.9.tar.lzma
-2020/07/06 | 32134 | systems/win32/miktex/tm/packages/next/miktex-chktex-bin-2.9.tar.lzma
2020/07/06 | 31707 | graphics/pgf/contrib/circuitikz/tex/pgfcircvoltage.tex
-2020/07/06 | 31242 | systems/win32/miktex/tm/packages/next/miktex-posix-bin-2.9.tar.lzma
-2020/07/06 | 31242 | systems/win32/miktex/tm/packages/next/miktex-mspack-bin-2.9.tar.lzma
-2020/07/06 | 31223 | systems/win32/miktex/tm/packages/next/miktex-makeindex-bin-x64-2.9.tar.lzma
-2020/07/06 | 310931 | systems/win32/miktex/tm/packages/next/miktex-dvipdfmx-bin-x64-2.9.tar.lzma
+2020/07/06 | 3159 | macros/latex/contrib/reledmac/examples/2-reledmac-right-to-left.tex
+2020/07/06 | 31059 | macros/latex/contrib/reledmac/examples/2-reledmac-right-to-left.pdf
2020/07/06 | 3098 | graphics/pgf/contrib/circuitikz/tex/ctikzstyle-legacy.tex
-2020/07/06 | 30892 | systems/win32/miktex/tm/packages/next/miktex-autosp-bin-x64-2.9.tar.lzma
-2020/07/06 | 30875 | systems/win32/miktex/tm/packages/next/miktex-bzip2-bin-x64-2.9.tar.lzma
2020/07/06 | 30827 | graphics/pgf/contrib/circuitikz/tex/pgfcircshapes.tex
-2020/07/06 | 305168 | systems/win32/miktex/tm/packages/next/miktex-metapost-bin-x64-2.9.tar.lzma
-2020/07/06 | 29631 | systems/win32/miktex/tm/packages/next/miktex-lacheck-bin-x64-2.9.tar.lzma
-2020/07/06 | 29319 | systems/win32/miktex/tm/packages/next/miktex-axohelp-bin-2.9.tar.lzma
-2020/07/06 | 29182 | systems/win32/miktex/tm/packages/next/miktex-teckit-bin-x64-2.9.tar.lzma
-2020/07/06 | 28977 | systems/win32/miktex/tm/packages/next/miktex-fribidixetex-bin-x64-2.9.tar.lzma
+2020/07/06 | 3065 | macros/latex/contrib/reledmac/examples/2-titles_in_line_numbering_with_notes.tex
+2020/07/06 | 303460 | macros/latex/contrib/reledmac/reledpar.dtx
+2020/07/06 | 3005 | macros/latex/contrib/reledmac/examples/4-reledpar_columns_alignment.tex
+2020/07/06 | 2912 | macros/latex/contrib/reledmac/examples/3-reledpar_mwe.tex
2020/07/06 | 28838 | support/de-macro/de-macro
-2020/07/06 | 28618 | systems/win32/miktex/tm/packages/next/miktex-autosp-bin-2.9.tar.lzma
-2020/07/06 | 281689 | systems/win32/miktex/tm/packages/next/miktex-freetype2-bin-x64-2.9.tar.lzma
+2020/07/06 | 2844 | info/biblio/typeset.ltx
2020/07/06 | 280 | graphics/pgf/contrib/circuitikz/tex/ctikzstyle-example.tex
-2020/07/06 | 27943 | systems/win32/miktex/tm/packages/next/miktex-lacheck-bin-2.9.tar.lzma
-2020/07/06 | 279308 | systems/win32/miktex/tm/packages/next/miktex-xetex-bin-x64-2.9.tar.lzma
-2020/07/06 | 273610 | systems/win32/miktex/tm/packages/next/miktex-dvipdfmx-bin-2.9.tar.lzma
-2020/07/06 | 27037 | systems/win32/miktex/tm/packages/next/miktex-bzip2-bin-2.9.tar.lzma
-2020/07/06 | 26955 | systems/win32/miktex/tm/packages/next/miktex-makeindex-bin-2.9.tar.lzma
-2020/07/06 | 269216 | macros/latex/contrib/semantex.zip
-2020/07/06 | 269063 | systems/win32/miktex/tm/packages/next/miktex-metapost-bin-2.9.tar.lzma
-2020/07/06 | 26878 | systems/win32/miktex/tm/packages/next/miktex-teckit-bin-2.9.tar.lzma
+2020/07/06 | 2761 | macros/latex/contrib/reledmac/examples/2-indexing.tex
+2020/07/06 | 2710 | macros/latex/contrib/reledmac/examples/2-performances.tex
+2020/07/06 | 2691 | macros/latex/contrib/reledmac/reledmac.ins
2020/07/06 | 2678 | graphics/pgf/contrib/circuitikz/tex/pgfcircutils.tex
-2020/07/06 | 26629 | systems/win32/miktex/tm/packages/next/miktex-uriparser-bin-2.9.tar.lzma
-2020/07/06 | 2659107 | systems/win32/miktex/tm/packages/next/miktex-texworks-bin-x64-2.9.tar.lzma
+2020/07/06 | 2638 | macros/latex/contrib/reledmac/reledpar.ins
2020/07/06 | 26187 | graphics/pgf/contrib/circuitikz/doc/changelog.tex
-2020/07/06 | 25474 | systems/win32/miktex/tm/packages/next/miktex-fribidixetex-bin-2.9.tar.lzma
-2020/07/06 | 2534428 | systems/win32/miktex/tm/packages/next/miktex-texworks-bin-2.9.tar.lzma
-2020/07/06 | 249728 | systems/win32/miktex/tm/packages/next/miktex-xetex-bin-2.9.tar.lzma
-2020/07/06 | 246796 | systems/win32/miktex/tm/packages/next/miktex-freetype2-bin-2.9.tar.lzma
-2020/07/06 | 243027 | systems/win32/miktex/tm/packages/next/miktex-pmx-bin-x64-2.9.tar.lzma
-2020/07/06 | 24268914 | systems/texlive/tlnet/install-tl.zip
+2020/07/06 | 260966 | macros/latex/contrib/reledmac/examples/4-reledpar_pages_titles_in_line_numbering_with_notes.pdf
+2020/07/06 | 2592 | macros/latex/contrib/reledmac/examples/1-verses-doublenumbering.tex
+2020/07/06 | 24795 | macros/latex/contrib/reledmac/doc-include/migrate-mac.dtx
+2020/07/06 | 243 | macros/latex/contrib/reledmac/doc-more/makefile
2020/07/06 | 240141 | graphics/pgf/contrib/circuitikz/tex/pgfcirctripoles.tex
+2020/07/06 | 2388 | macros/latex/contrib/reledmac/examples/3-reledpar_columns_different_languages.tex
2020/07/06 | 23636 | systems/texlive/tlnet/archive/cweb.r55757.tar.xz
-2020/07/06 | 23597 | systems/win32/miktex/tm/packages/next/miktex-popt-bin-x64-2.9.tar.lzma
-2020/07/06 | 234442 | macros/latex/contrib/semantex/semantex.pdf
-2020/07/06 | 22969 | systems/win32/miktex/tm/packages/next/miktex-devnag-bin-x64-2.9.tar.lzma
+2020/07/06 | 23272 | macros/latex/contrib/reledmac/examples/3-reledpar_columns_different_languages.pdf
2020/07/06 | 2280 | systems/texlive/tlnet/archive/cascade.r55759.tar.xz
+2020/07/06 | 226079 | macros/latex/contrib/reledmac/examples/4-reledpar_pages_long_notes.pdf
2020/07/06 | 225681 | graphics/pgf/contrib/circuitikz/tex/pgfcircbipoles.tex
-2020/07/06 | 223962 | systems/win32/miktex/tm/packages/next/miktex-console-bin-x64-2.9.tar.lzma
-2020/07/06 | 2203540 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.xz
2020/07/06 | 218656 | systems/texlive/tlnet/archive/texlive-scripts.doc.r55754.tar.xz
-2020/07/06 | 210650 | systems/win32/miktex/tm/packages/next/miktex-omegaware-bin-x64-2.9.tar.lzma
+2020/07/06 | 2161 | macros/latex/contrib/reledmac/examples/1-criticalnotes.tex
+2020/07/06 | 2157 | macros/latex/contrib/reledmac/examples/4-reledpar_verse_text_between.tex
+2020/07/06 | 21449 | macros/latex/contrib/reledmac/examples/2-manuscript-apparatus.tex
+2020/07/06 | 2144652 | systems/win32/w32tex/win64/context-w64.tar.xz
+2020/07/06 | 212782 | macros/latex/contrib/reledmac/examples/2-subdivision-number-in-header.pdf
2020/07/06 | 2095479 | install/graphics/pgf/contrib/circuitikz.tds.zip
2020/07/06 | 2081944 | graphics/pgf/contrib/circuitikz.zip
-2020/07/06 | 20771 | systems/win32/miktex/tm/packages/next/miktex-devnag-bin-2.9.tar.lzma
-2020/07/06 | 207507 | systems/win32/miktex/tm/packages/next/miktex-pmx-bin-2.9.tar.lzma
-2020/07/06 | 203500 | systems/win32/miktex/tm/packages/next/miktex-console-bin-2.9.tar.lzma
-2020/07/06 | 2028475 | systems/win32/miktex/tm/packages/next/miktex-luatex-bin-x64-2.9.tar.lzma
-2020/07/06 | 201598 | systems/win32/miktex/tm/packages/next/miktex-zzdb1-2.9.tar.lzma
-2020/07/06 | 201504 | systems/win32/miktex/tm/packages/miktex-zzdb1-2.9.tar.lzma
-2020/07/06 | 20012 | systems/win32/miktex/tm/packages/next/miktex-popt-bin-2.9.tar.lzma
-2020/07/06 | 196477 | systems/win32/miktex/tm/packages/next/miktex-mpfr-bin-2.9.tar.lzma
-2020/07/06 | 194054 | systems/win32/miktex/tm/packages/next/miktex-pixman-bin-x64-2.9.tar.lzma
-2020/07/06 | 19380217 | systems/texlive/tlnet/install-tl-windows.exe
-2020/07/06 | 193352 | systems/win32/miktex/tm/packages/next/miktex-omegaware-bin-2.9.tar.lzma
-2020/07/06 | 189215 | systems/win32/miktex/tm/packages/next/miktex-mktex-bin-x64-2.9.tar.lzma
-2020/07/06 | 187768 | systems/win32/miktex/tm/packages/next/miktex-pixman-bin-2.9.tar.lzma
+2020/07/06 | 2027 | macros/latex/contrib/reledmac/examples/3-reledpar_pages_different_languages_lualatex.tex
+2020/07/06 | 20137 | macros/latex/contrib/reledmac/examples/3-reledpar_same_page_number_in_both_side.tex
+2020/07/06 | 2006 | macros/latex/contrib/reledmac/examples/2-titles_not_in_line_numbering.tex
+2020/07/06 | 2004 | macros/latex/contrib/reledmac/examples/1-tabular.tex
+2020/07/06 | 2003146 | macros/latex/contrib/reledmac/reledmac.pdf
+2020/07/06 | 1998 | macros/latex/contrib/reledmac/examples/2-antilabe.tex
+2020/07/06 | 199864 | macros/latex/contrib/reledmac/examples/4-reledpar_columns_titles_in_line_numbering_with_notes.pdf
+2020/07/06 | 1979 | macros/latex/contrib/reledmac/examples/1-criticalendnotes.tex
+2020/07/06 | 1902 | macros/latex/contrib/reledmac/examples/1-verses.tex
+2020/07/06 | 190089 | macros/latex/contrib/reledmac/examples/3-reledpar_sync_setting_advancedshifted-nomax.pdf
+2020/07/06 | 189852 | macros/latex/contrib/reledmac/examples/3-reledpar_sync_setting_nomax-shifted.pdf
+2020/07/06 | 189289 | macros/latex/contrib/reledmac/examples/3-reledpar_sync_setting_advancedshifted.pdf
+2020/07/06 | 188808 | macros/latex/contrib/reledmac/examples/3-reledpar_sync_setting_shifted.pdf
+2020/07/06 | 188770 | macros/latex/contrib/reledmac/examples/3-reledpar_sync_setting_nomax.pdf
+2020/07/06 | 188677 | macros/latex/contrib/reledmac/examples/3-reledpar_sync_setting_nosync.pdf
+2020/07/06 | 188331 | macros/latex/contrib/reledmac/examples/2-titles_in_line_numbering_with_notes.pdf
+2020/07/06 | 187768 | macros/latex/contrib/reledmac/examples/4-reledpar_column_mix_with_not_column-continuous-numbering.pdf
2020/07/06 | 1875 | graphics/pgf/contrib/circuitikz/tex/ctikzstyle-romano.tex
-2020/07/06 | 187109 | systems/win32/miktex/tm/packages/next/miktex-metafont-bin-x64-2.9.tar.lzma
-2020/07/06 | 184497 | systems/win32/miktex/tm/packages/next/miktex-curl-bin-x64-2.9.tar.lzma
-2020/07/06 | 179906 | systems/win32/miktex/tm/packages/next/miktex-mo-bin-x64-2.9.tar.lzma
-2020/07/06 | 17729 | systems/win32/miktex/tm/packages/next/miktex-tex2xindy-bin-x64-2.9.tar.lzma
-2020/07/06 | 177270 | systems/win32/miktex/tm/packages/next/miktex-mpfr-bin-x64-2.9.tar.lzma
-2020/07/06 | 17621 | systems/win32/miktex/tm/packages/next/miktex-kpathsea-bin-x64-2.9.tar.lzma
-2020/07/06 | 1751870 | systems/win32/miktex/tm/packages/next/miktex-luatex-bin-2.9.tar.lzma
+2020/07/06 | 187373 | macros/latex/contrib/reledmac/examples/1-tabular.pdf
+2020/07/06 | 185822 | macros/latex/contrib/reledmac/examples/2-indexing.pdf
+2020/07/06 | 1857 | macros/latex/contrib/reledmac/examples/2-cross_referencing.tex
+2020/07/06 | 180904 | macros/latex/contrib/reledmac/examples/4-reledpar_titles_not_in_line_numbering.pdf
+2020/07/06 | 1776 | macros/latex/contrib/reledmac/examples/2-glossaries.tex
+2020/07/06 | 175600 | macros/latex/contrib/reledmac/examples/1-criticalendnotes.pdf
+2020/07/06 | 173906 | macros/latex/contrib/reledmac/examples/4-reledpar_columns_alignment.pdf
2020/07/06 | 17352 | graphics/pgf/contrib/circuitikz/doc/circuitikz-context.pdf
-2020/07/06 | 171138 | systems/win32/miktex/tm/packages/next/miktex-metafont-bin-2.9.tar.lzma
-2020/07/06 | 170232 | systems/win32/miktex/tm/packages/next/miktex-mktex-bin-2.9.tar.lzma
-2020/07/06 | 169760 | systems/win32/miktex/tm/packages/next/miktex-curl-bin-2.9.tar.lzma
+2020/07/06 | 173338 | macros/latex/contrib/reledmac/examples/2-titles_not_in_line_numbering.pdf
+2020/07/06 | 1718 | macros/latex/contrib/reledmac/makefile
+2020/07/06 | 16 | macros/latex/contrib/reledmac/latexmkrc
+2020/07/06 | 16 | macros/latex/contrib/reledmac/doc-more/latexmkrc
+2020/07/06 | 168067 | macros/latex/contrib/reledmac/examples/3-reledpar_sync_setting_default.pdf
2020/07/06 | 168008 | systems/texlive/tlnet/archive/cascade.doc.r55759.tar.xz
-2020/07/06 | 167256 | systems/texlive/tlnet/archive/texlive-docindex.doc.r55754.tar.xz
-2020/07/06 | 164960 | systems/win32/miktex/tm/packages/next/miktex-tex-bin-x64-2.9.tar.lzma
-2020/07/06 | 16308142 | systems/texlive/tlnet/tlpkg/texlive.tlpdb
-2020/07/06 | 162096 | macros/latex/contrib/semantex/semantex.sty
-2020/07/06 | 16017 | systems/win32/miktex/tm/packages/next/miktex-tex2xindy-bin-2.9.tar.lzma
-2020/07/06 | 159287 | systems/win32/miktex/tm/packages/next/miktex-mo-bin-2.9.tar.lzma
-2020/07/06 | 15923 | systems/win32/miktex/tm/packages/next/miktex-kpathsea-bin-2.9.tar.lzma
+2020/07/06 | 1665 | macros/latex/contrib/reledmac/examples/3-reledpar_sync_setting_advancedshifted-nomax.tex
+2020/07/06 | 1644 | macros/latex/contrib/reledmac/examples/3-reledpar_sync_setting_nomax-shifted.tex
+2020/07/06 | 1627 | macros/latex/contrib/reledmac/examples/3-reledpar_sync_setting_advancedshifted.tex
+2020/07/06 | 1611 | macros/latex/contrib/reledmac/examples/3-reledpar_sync_setting_shifted.tex
+2020/07/06 | 1609 | macros/latex/contrib/reledmac/examples/3-reledpar_sync_setting_nosync.tex
+2020/07/06 | 1603 | macros/latex/contrib/reledmac/examples/3-reledpar_sync_setting_nomax.tex
+2020/07/06 | 15949 | macros/latex/contrib/reledmac/examples/2-subdivision-number-in-header.tex
+2020/07/06 | 156021 | macros/latex/contrib/reledmac/examples/2-manuscript-apparatus.pdf
+2020/07/06 | 1553 | macros/latex/contrib/reledmac/examples/3-reledpar_sync_setting_default.tex
2020/07/06 | 15503 | CTAN.sites
-2020/07/06 | 154453 | systems/win32/miktex/tm/packages/next/miktex-hunspell-bin-x64-2.9.tar.lzma
-2020/07/06 | 153 | systems/texlive/tlnet/install-tl-windows.exe.sha512
-2020/07/06 | 152 | systems/texlive/tlnet/install-tl-unx.tar.gz.sha512
-2020/07/06 | 151909 | systems/win32/miktex/tm/packages/next/miktex-fontconfig-bin-x64-2.9.tar.lzma
-2020/07/06 | 151033 | systems/win32/miktex/tm/packages/next/miktex-tex-bin-2.9.tar.lzma
-2020/07/06 | 145 | systems/texlive/tlnet/install-tl.zip.sha512
-2020/07/06 | 144 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512
-2020/07/06 | 141816 | systems/win32/miktex/tm/packages/next/miktex-hunspell-bin-2.9.tar.lzma
+2020/07/06 | 1528 | macros/latex/contrib/reledmac/examples/2-notes-width.tex
+2020/07/06 | 1488 | macros/latex/contrib/reledmac/examples/2-linespacing.tex
+2020/07/06 | 145283 | macros/latex/contrib/reledmac/examples/1-sidenotes.pdf
+2020/07/06 | 144326 | macros/latex/contrib/reledmac/examples/4-reledpar_one_series_per_pstart.pdf
+2020/07/06 | 142433 | macros/latex/contrib/reledmac/examples/2-line_numbers_in_header.pdf
2020/07/06 | 141248 | systems/texlive/tlnet/archive/texlive-msg-translations.r55755.tar.xz
-2020/07/06 | 14115 | systems/win32/miktex/tm/packages/next/miktex-zzip-bin-x64-2.9.tar.lzma
-2020/07/06 | 1409381 | systems/win32/miktex/tm/packages/next/miktex-dvisvgm-bin-x64-2.9.tar.lzma
2020/07/06 | 14053 | graphics/pgf/contrib/circuitikz/tex/pgfcirclabel.tex
+2020/07/06 | 140200032 | systems/win32/w32tex/context.tar.xz
2020/07/06 | 140188 | graphics/pgf/contrib/circuitikz/tex/pgfcircmultipoles.tex
-2020/07/06 | 133618 | systems/win32/miktex/tm/packages/next/miktex-fontconfig-bin-2.9.tar.lzma
-2020/07/06 | 1327710 | systems/win32/miktex/tm/packages/next/miktex-runtime-bin-x64-2.9.tar.lzma
+2020/07/06 | 13642 | macros/latex/contrib/reledmac/examples/4-reledpar_column_mix_with_not_column-continuous-numbering.tex
+2020/07/06 | 136296 | macros/latex/contrib/reledmac/examples/2-linespacing.pdf
+2020/07/06 | 135907 | macros/latex/contrib/reledmac/examples/3-reledpar_same_page_number_in_both_side.pdf
+2020/07/06 | 133738 | macros/latex/contrib/reledmac/examples/2-performances.pdf
+2020/07/06 | 132844 | macros/latex/contrib/reledmac/examples/2-glossaries.pdf
+2020/07/06 | 132837 | macros/latex/contrib/reledmac/examples/4-reledpar_column_mix_with_not_column.pdf
2020/07/06 | 131676 | systems/texlive/tlnet/archive/texlive-scripts.r55754.tar.xz
-2020/07/06 | 13135 | systems/win32/miktex/tm/packages/next/miktex-zzip-bin-2.9.tar.lzma
-2020/07/06 | 130330 | systems/win32/miktex/tm/packages/next/miktex-dvips-bin-x64-2.9.tar.lzma
-2020/07/06 | 1266023 | systems/win32/miktex/tm/packages/next/miktex-dvisvgm-bin-2.9.tar.lzma
-2020/07/06 | 1204757 | systems/win32/miktex/tm/packages/next/miktex-zzdb2-2.9.tar.lzma
-2020/07/06 | 1204712 | systems/win32/miktex/tm/packages/miktex-zzdb2-2.9.tar.lzma
-2020/07/06 | 1193672 | systems/win32/miktex/tm/packages/next/miktex-runtime-bin-2.9.tar.lzma
-2020/07/06 | 117131 | systems/win32/miktex/tm/packages/next/miktex-gd-bin-x64-2.9.tar.lzma
-2020/07/06 | 115819 | systems/win32/miktex/tm/packages/next/miktex-dvips-bin-2.9.tar.lzma
-2020/07/06 | 1153 | systems/win32/miktex/tm/packages/next/pr.ini
-2020/07/06 | 113697 | systems/win32/miktex/tm/packages/next/miktex-gregorio-bin-x64-2.9.tar.lzma
-2020/07/06 | 1124836 | systems/win32/miktex/tm/packages/miktex-zzdb3-2.9.tar.lzma
-2020/07/06 | 1124561 | systems/win32/miktex/tm/packages/next/miktex-zzdb3-2.9.tar.lzma
+2020/07/06 | 131284 | macros/latex/contrib/reledmac/examples/2-one_series_per_pstart.pdf
+2020/07/06 | 128416 | macros/latex/contrib/reledmac/examples/2-antilabe.pdf
+2020/07/06 | 12681 | macros/latex/contrib/reledmac/examples/4-reledpar_column_mix_with_not_column.tex
+2020/07/06 | 126635 | macros/latex/contrib/reledmac/examples/2-notes-width.pdf
+2020/07/06 | 124679 | macros/latex/contrib/reledmac/examples/4-reledpar_pages_notes_leftpage.pdf
+2020/07/06 | 123574 | macros/latex/contrib/reledmac/examples/2-footnote_spacing.pdf
+2020/07/06 | 123230 | macros/latex/contrib/reledmac/examples/4-reledpar_inside-outside-columns.pdf
+2020/07/06 | 122378 | macros/latex/contrib/reledmac/examples/2-lemma_disambigution.pdf
+2020/07/06 | 121318 | macros/latex/contrib/reledmac/examples/1-verses.pdf
+2020/07/06 | 121150 | macros/latex/contrib/reledmac/examples/1-verses-doublenumbering.pdf
+2020/07/06 | 120874 | macros/latex/contrib/reledmac/examples/4-reledpar_pages_paragraph_separator_between.pdf
+2020/07/06 | 120386 | macros/latex/contrib/reledmac/examples/2-cross_referencing.pdf
+2020/07/06 | 119720 | macros/latex/contrib/reledmac/examples/1-criticalnotes.pdf
+2020/07/06 | 116963 | macros/latex/contrib/reledmac/examples/4-reledpar_verse_text_between.pdf
+2020/07/06 | 11558 | macros/latex/contrib/reledmac/examples/4-reledpar_inside-outside-columns.tex
+2020/07/06 | 1150222 | info/biblio/typeset.bib
+2020/07/06 | 1139 | macros/latex/contrib/reledmac/examples/2-lemma_disambigution.tex
+2020/07/06 | 11391 | macros/latex/contrib/reledmac/examples/2-line_numbers_in_header.tex
2020/07/06 | 11132 | graphics/pgf/contrib/circuitikz/tex/circuitikz.sty
-2020/07/06 | 109775 | systems/win32/miktex/tm/packages/next/miktex-epstopdf-bin-x64-2.9.tar.lzma
-2020/07/06 | 109016 | systems/win32/miktex/tm/packages/next/miktex-jpeg-bin-x64-2.9.tar.lzma
-2020/07/06 | 1060544 | systems/win32/miktex/tm/packages/next/miktex-asymptote-bin-x64-2.9.tar.lzma
-2020/07/06 | 104589 | systems/win32/miktex/tm/packages/next/miktex-texware-bin-x64-2.9.tar.lzma
-2020/07/06 | 102563 | systems/win32/miktex/tm/packages/next/miktex-lua53-bin-x64-2.9.tar.lzma
-2020/07/06 | 1021925 | systems/win32/miktex/tm/packages/next/miktex-poppler-bin-x64-2.9.tar.lzma
-2020/07/06 | 101911 | systems/win32/miktex/tm/packages/next/miktex-mfware-bin-x64-2.9.tar.lzma
2020/07/06 | 1017702 | graphics/pgf/contrib/circuitikz/doc/circuitikzmanual.pdf
2020/07/06 | 101349 | graphics/pgf/contrib/circuitikz/tex/pgfcirc.defines.tex
-2020/07/06 | 100970 | systems/win32/miktex/tm/packages/next/miktex-gd-bin-2.9.tar.lzma
+2020/07/06 | 10033 | macros/latex/contrib/reledmac/examples/4-reledpar_one_series_per_pstart.tex
2020/07/05 | 99848 | systems/texlive/tlnet/tlpkg/translations/fr.po
+2020/07/05 | 99275860 | systems/win32/w32tex/web2c-lib.tar.xz
2020/07/05 | 96266 | systems/texlive/tlnet/tlpkg/translations/vi.po
2020/07/05 | 95538 | systems/texlive/tlnet/tlpkg/translations/de.po
2020/07/05 | 9515 | macros/latex/contrib/cascade/cascade-french.tex
@@ -284,7 +1339,6 @@
2020/07/05 | 7468 | systems/texlive/tlnet/archive/expkv-opt.source.r55751.tar.xz
2020/07/05 | 72938 | systems/texlive/tlnet/tlpkg/translations/pl.po
2020/07/05 | 72716 | systems/texlive/tlnet/tlpkg/translations/zh_CN.po
-2020/07/05 | 679589 | systems/win32/w32tex/ChangeLog
2020/07/05 | 65039 | macros/latex/contrib/cascade/cascade-french.pdf
2020/07/05 | 63275 | systems/texlive/tlnet/tlpkg/translations/zh_TW.po
2020/07/05 | 58600 | systems/texlive/tlnet/tlpkg/translations/messages.pot
@@ -300,6 +1354,7 @@
2020/07/05 | 257152 | systems/texlive/tlnet/archive/expkv-opt.doc.r55751.tar.xz
2020/07/05 | 2372 | systems/texlive/tlnet/archive/expkv-opt.r55751.tar.xz
2020/07/05 | 22554 | macros/latex/contrib/cascade/cascade.dtx
+2020/07/05 | 20828836 | systems/win32/w32tex/pdftex-w32.tar.xz
2020/07/05 | 18632 | systems/texlive/tlnet/archive/expkv.source.r55750.tar.xz
2020/07/05 | 17919908 | systems/win32/w32tex/luatex-exp-w32.tar.xz
2020/07/05 | 174640 | macros/latex/contrib/cascade.zip
@@ -308,7 +1363,6 @@
2020/07/05 | 112575 | systems/texlive/tlnet/tlpkg/translations/ru.po
2020/07/05 | 109963 | systems/texlive/tlnet/tlpkg/translations/sr.po
2020/07/05 | 108503 | macros/latex/contrib/cascade/cascade.pdf
-2020/07/04 | 99280296 | systems/win32/w32tex/web2c-lib.tar.xz
2020/07/04 | 9917 | usergrps/usergrps/labels.pdf
2020/07/04 | 952 | macros/eplain/doc/demo/Makefile
2020/07/04 | 87256 | macros/eplain/doc/ChangeLog
@@ -436,7 +1490,6 @@
2020/07/03 | 232846 | systems/win32/miktex/tm/packages/bubblesort.tar.lzma
2020/07/03 | 223260 | systems/texlive/tlnet/archive/etbb.doc.r55727.tar.xz
2020/07/03 | 222892 | systems/texlive/tlnet/archive/bubblesort.doc.r55733.tar.xz
-2020/07/03 | 20826312 | systems/win32/w32tex/pdftex-w32.tar.xz
2020/07/03 | 1904 | systems/texlive/tlnet/archive/bubblesort.r55733.tar.xz
2020/07/03 | 161156 | macros/latex/contrib/GuIT/GuITlogo/guittest.pdf
2020/07/03 | 1599281 | systems/win32/miktex/tm/packages/fbb.tar.lzma
@@ -1189,7 +2242,6 @@
2020/07/02 | 21544 | fonts/fbb/tfm/fbbP-Bold-lf-ly1.tfm
2020/07/02 | 21520 | fonts/fbb/tfm/fbbP-Bold-tosf-ly1.tfm
2020/07/02 | 21520 | fonts/fbb/tfm/fbbP-Bold-tlf-ly1.tfm
-2020/07/02 | 2144624 | systems/win32/w32tex/win64/context-w64.tar.xz
2020/07/02 | 2140 | fonts/fbb/tfm/fbb-BoldItalic-tosf-swash-ly1--base.tfm
2020/07/02 | 2140 | fonts/fbb/tfm/fbb-BoldItalic-tlf-swash-ly1--base.tfm
2020/07/02 | 2136 | fonts/fbb/tfm/fbb-BoldItalic-inf-ly1.tfm
@@ -2072,7 +3124,6 @@
2020/07/02 | 14068 | fonts/etbb/tfm/ETbb-Italic-lf-swash-ly1.tfm
2020/07/02 | 14044 | fonts/etbb/tfm/ETbb-Italic-tosf-swash-ly1.tfm
2020/07/02 | 14044 | fonts/etbb/tfm/ETbb-Italic-tlf-swash-ly1.tfm
-2020/07/02 | 140206852 | systems/win32/w32tex/context.tar.xz
2020/07/02 | 1356 | fonts/fbb/tfm/fbbP-Bold-osf-sc-ot1--base.tfm
2020/07/02 | 1356 | fonts/fbb/tfm/fbb-Bold-osf-sc-ot1--base.tfm
2020/07/02 | 1349 | macros/latex/contrib/richtext/examples/caption-image.tex
@@ -2157,9 +3208,7 @@
2020/07/01 | 94488 | fonts/etbb/opentype/ETbb-BoldItalic.otf
2020/07/01 | 896 | macros/latex/contrib/verifiche/README.md
2020/07/01 | 88504 | fonts/etbb/opentype/ETbb-Italic.otf
-2020/07/01 | 8832 | systems/texlive/tlnet/archive/cloze.r55704.tar.xz
2020/07/01 | 8494408 | systems/win32/w32tex/uptex-w32.tar.xz
-2020/07/01 | 81326564 | systems/win32/w32tex/pgfcontrib.tar.xz
2020/07/01 | 7399 | macros/latex/contrib/beamer-contrib/beamerappendixnote/beamerappendixnote.dtx
2020/07/01 | 715 | macros/latex/contrib/bubblesort/README.md
2020/07/01 | 70403 | macros/latex/contrib/beamer-contrib/beamerappendixnote/beamerappendixnote.pdf
@@ -2169,10 +3218,8 @@
2020/07/01 | 668 | systems/texlive/tlnet/archive/collection-luatex.r55713.tar.xz
2020/07/01 | 628 | systems/texlive/tlnet/archive/collection-langgerman.r55706.tar.xz
2020/07/01 | 615378 | systems/win32/miktex/tm/packages/pm-isomath.tar.lzma
-2020/07/01 | 6008 | systems/texlive/tlnet/archive/cloze.source.r55704.tar.xz
2020/07/01 | 594516 | systems/texlive/tlnet/archive/pm-isomath.doc.r55711.tar.xz
2020/07/01 | 592006 | systems/win32/miktex/tm/packages/cloze.tar.lzma
-2020/07/01 | 577860 | systems/texlive/tlnet/archive/cloze.doc.r55704.tar.xz
2020/07/01 | 57672 | systems/texlive/tlnet/archive/tracklang.source.r55707.tar.xz
2020/07/01 | 569506 | systems/win32/miktex/tm/packages/babel-french.tar.lzma
2020/07/01 | 504635 | macros/latex/contrib/verifiche/verifiche.pdf
@@ -2242,414 +3289,3 @@
2020/07/01 | 1071787 | systems/win32/miktex/tm/packages/tracklang.tar.lzma
2020/07/01 | 105175 | fonts/etbb/type1/ETbb-BoldItalic.pfb
2020/07/01 | 10487920 | systems/win32/w32tex/ptex-w32.tar.xz
-2020/06/30 | 97730 | graphics/pgf/contrib/tikzducks/tikzducks-generic.tex
-2020/06/30 | 97441 | systems/win32/miktex/tm/packages/miktex-texware-bin-2.9.tar.lzma
-2020/06/30 | 971 | systems/win32/miktex/setup/rpm/fedora/30/repodata/89e8634133b908c640896f1558a2dc5bf8d763c9467eecec9e1b012497e1150b-other.sqlite.bz2
-2020/06/30 | 96861 | systems/win32/miktex/tm/packages/miktex-mpmcli-bin-x64-2.9.tar.lzma
-2020/06/30 | 96468 | systems/win32/miktex/tm/packages/miktex-mfware-bin-2.9.tar.lzma
-2020/06/30 | 956649 | systems/win32/miktex/tm/packages/miktex-asymptote-bin-2.9.tar.lzma
-2020/06/30 | 95426 | systems/win32/miktex/tm/packages/miktex-epstopdf-bin-2.9.tar.lzma
-2020/06/30 | 9462 | fonts/erewhon/README
-2020/06/30 | 94496 | systems/win32/miktex/tm/packages/miktex-jpeg-bin-2.9.tar.lzma
-2020/06/30 | 94419 | systems/win32/miktex/tm/packages/miktex-gregorio-bin-2.9.tar.lzma
-2020/06/30 | 941 | macros/generic/tracklang/samples/regions/regions.sty
-2020/06/30 | 93762 | systems/win32/miktex/tm/packages/miktex-lua53-bin-2.9.tar.lzma
-2020/06/30 | 93682 | systems/win32/miktex/tm/packages/miktex-bibtex8bit-bin-x64-2.9.tar.lzma
-2020/06/30 | 930 | macros/generic/tracklang/README
-2020/06/30 | 92 | systems/win32/miktex/setup/deb/dists/stretch/universe/binary-amd64/Release
-2020/06/30 | 922268 | systems/win32/miktex/tm/packages/miktex-poppler-bin-2.9.tar.lzma
-2020/06/30 | 89 | systems/win32/miktex/setup/deb/dists/xenial/universe/binary-amd64/Release
-2020/06/30 | 89 | systems/win32/miktex/setup/deb/dists/buster/universe/binary-amd64/Release
-2020/06/30 | 89 | systems/win32/miktex/setup/deb/dists/bionic/universe/binary-amd64/Release
-2020/06/30 | 896061 | macros/latex/contrib/nicematrix/nicematrix.pdf
-2020/06/30 | 88848 | systems/win32/miktex/tm/packages/qrbill.tar.lzma
-2020/06/30 | 88738 | systems/win32/miktex/tm/packages/miktex-mkfntmap-bin-x64-2.9.tar.lzma
-2020/06/30 | 87959 | systems/win32/miktex/tm/packages/miktex-texify-bin-x64-2.9.tar.lzma
-2020/06/30 | 8791 | macros/context/contrib/context-vim/tex/context/third/vim/t-vim.tex
-2020/06/30 | 87338 | systems/win32/miktex/tm/packages/miktex-png-bin-x64-2.9.tar.lzma
-2020/06/30 | 86 | systems/win32/miktex/setup/deb/dists/focal/universe/binary-amd64/Release
-2020/06/30 | 8641 | macros/context/contrib/context-vim/tex/context/third/vim/t-syntax-highlight.mkiv
-2020/06/30 | 863265 | fonts/erewhon/doc/erewhon-doc.pdf
-2020/06/30 | 8570 | systems/win32/miktex/tm/packages/miktex-md5-bin-x64-2.9.tar.lzma
-2020/06/30 | 8550 | macros/context/contrib/context-vim/tex/context/third/vim/t-syntax-highlight.mkii
-2020/06/30 | 85171 | systems/win32/miktex/tm/packages/miktex-mpmcli-bin-2.9.tar.lzma
-2020/06/30 | 848 | macros/generic/tracklang/samples/animals/animals2.sty
-2020/06/30 | 84405 | systems/win32/miktex/tm/packages/miktex-bibtex8bit-bin-2.9.tar.lzma
-2020/06/30 | 82844 | systems/win32/miktex/tm/packages/miktex-tdsutil-bin-x64.tar.lzma
-2020/06/30 | 812 | systems/win32/miktex/setup/rpm/fedora/32/repodata/31d230bbc272ed5cc7bc741a95317c25dec4f701ed60323f62df96f0ac851ac8-other.sqlite.bz2
-2020/06/30 | 79555 | systems/win32/miktex/tm/packages/miktex-mkfntmap-bin-2.9.tar.lzma
-2020/06/30 | 79330 | systems/win32/miktex/tm/packages/miktex-cjkutils-bin-x64-2.9.tar.lzma
-2020/06/30 | 784 | macros/generic/tracklang/samples/animals/animals.sty
-2020/06/30 | 781 | macros/generic/tracklang/samples/sample-tracklang4.tex
-2020/06/30 | 78148 | systems/win32/miktex/tm/packages/miktex-png-bin-2.9.tar.lzma
-2020/06/30 | 77540 | systems/win32/miktex/tm/packages/miktex-texify-bin-2.9.tar.lzma
-2020/06/30 | 77463 | systems/win32/miktex/tm/packages/miktex-freeglut-bin-x64-2.9.tar.lzma
-2020/06/30 | 77429 | systems/win32/miktex/tm/packages/miktex-fonts-bin-x64-2.9.tar.lzma
-2020/06/30 | 76821 | systems/win32/miktex/tm/packages/miktex-tdsutil-bin.tar.lzma
-2020/06/30 | 7555 | systems/win32/miktex/tm/packages/miktex-md5-bin-2.9.tar.lzma
-2020/06/30 | 7547 | macros/generic/tracklang/samples/animals/sample-animals-sr-poly.pdf
-2020/06/30 | 7436 | systems/texlive/tlnet/archive/metastr.r55701.tar.xz
-2020/06/30 | 742279 | macros/generic/tracklang/tracklang.pdf
-2020/06/30 | 73686 | systems/win32/miktex/tm/packages/miktex-lzma-bin-x64-2.9.tar.lzma
-2020/06/30 | 73422 | systems/win32/miktex/tm/packages/miktex-bibtex-bin-x64-2.9.tar.lzma
-2020/06/30 | 72782 | systems/win32/miktex/tm/packages/miktex-fonts-bin-2.9.tar.lzma
-2020/06/30 | 72558 | systems/win32/miktex/tm/packages/miktex-graphite2-bin-x64-2.9.tar.lzma
-2020/06/30 | 72172 | systems/texlive/tlnet/archive/qrbill.doc.r55700.tar.xz
-2020/06/30 | 72023 | systems/win32/miktex/tm/packages/miktex-cjkutils-bin-2.9.tar.lzma
-2020/06/30 | 71534 | systems/win32/miktex/tm/packages/miktex-ps2pk-bin-x64-2.9.tar.lzma
-2020/06/30 | 70096 | systems/win32/miktex/tm/packages/miktex-web-bin-x64-2.9.tar.lzma
-2020/06/30 | 69792 | systems/win32/miktex/tm/packages/miktex-mtprint-bin-x64-2.9.tar.lzma
-2020/06/30 | 69177 | systems/win32/miktex/tm/packages/miktex-tex4ht-bin-x64-2.9.tar.lzma
-2020/06/30 | 6910 | systems/win32/miktex/setup/deb/dists/buster/universe/binary-amd64/Packages
-2020/06/30 | 6910 | macros/context/contrib/context-vim/tex/context/third/vim/2context.vim
-2020/06/30 | 689 | macros/generic/tracklang/samples/sample-tracklang5.tex
-2020/06/30 | 68622 | systems/win32/miktex/tm/packages/miktex-freeglut-bin-2.9.tar.lzma
-2020/06/30 | 6860 | systems/win32/miktex/setup/deb/dists/stretch/universe/binary-amd64/Packages
-2020/06/30 | 677410 | systems/win32/miktex/tm/packages/miktex-lcdf-typetools-bin-x64-2.9.tar.lzma
-2020/06/30 | 6745 | systems/win32/miktex/setup/deb/dists/xenial/universe/binary-amd64/Packages
-2020/06/30 | 67240 | systems/win32/miktex/tm/packages/miktex-lzma-bin-2.9.tar.lzma
-2020/06/30 | 67078 | systems/win32/miktex/tm/packages/miktex-arctrl-bin-x64-2.9.tar.lzma
-2020/06/30 | 6600 | systems/win32/miktex/setup/deb/dists/bionic/universe/binary-amd64/Packages
-2020/06/30 | 65914 | systems/win32/miktex/tm/packages/miktex-web-bin-2.9.tar.lzma
-2020/06/30 | 65743 | systems/win32/miktex/tm/packages/miktex-bibtex-bin-2.9.tar.lzma
-2020/06/30 | 65634 | systems/win32/miktex/tm/packages/miktex-gsf2pk-bin-x64-2.9.tar.lzma
-2020/06/30 | 6544 | systems/texlive/tlnet/archive/qrbill.r55700.tar.xz
-2020/06/30 | 64185 | systems/win32/miktex/tm/packages/miktex-mthelp-bin-x64-2.9.tar.lzma
-2020/06/30 | 638018 | systems/win32/miktex/tm/packages/miktex-yap-bin-x64-2.9.tar.lzma
-2020/06/30 | 63579 | systems/win32/miktex/tm/packages/miktex-tex4ht-bin-2.9.tar.lzma
-2020/06/30 | 63533 | systems/win32/miktex/tm/packages/miktex-ps2pk-bin-2.9.tar.lzma
-2020/06/30 | 63479 | systems/win32/miktex/tm/packages/miktex-graphite2-bin-2.9.tar.lzma
-2020/06/30 | 63360 | systems/win32/miktex/tm/packages/miktex-mtprint-bin-2.9.tar.lzma
-2020/06/30 | 630 | macros/generic/tracklang/samples/regions/sample-regions2-map.tex
-2020/06/30 | 62947 | systems/win32/miktex/tm/packages/miktex-fmt-bin-x64-2.9.tar.lzma
-2020/06/30 | 6264 | support/xml2pmx/doc/Readme.XML2PMX
-2020/06/30 | 623375 | systems/win32/miktex/tm/packages/miktex-lcdf-typetools-bin-2.9.tar.lzma
-2020/06/30 | 6202 | macros/generic/tracklang/samples/sample-tracklang4.pdf
-2020/06/30 | 61914 | systems/win32/miktex/tm/packages/miktex-ttf2pk2-bin-x64-2.9.tar.lzma
-2020/06/30 | 608103 | macros/latex/contrib/pm-isomath.zip
-2020/06/30 | 600199 | macros/luatex/generic/cloze/cloze.pdf
-2020/06/30 | 597918 | systems/win32/miktex/tm/packages/miktex-yap-bin-2.9.tar.lzma
-2020/06/30 | 594246 | macros/latex/contrib/pm-isomath/pm-isomath.pdf
-2020/06/30 | 59309 | systems/win32/miktex/tm/packages/miktex-arctrl-bin-2.9.tar.lzma
-2020/06/30 | 590 | graphics/pgf/contrib/tikzducks/tikzlibraryducks.code.tex
-2020/06/30 | 59084 | systems/win32/miktex/tm/packages/miktex-gsf2pk-bin-2.9.tar.lzma
-2020/06/30 | 587464 | macros/luatex/generic/cloze.zip
-2020/06/30 | 58623 | systems/win32/miktex/tm/packages/miktex-cweb-bin-x64-2.9.tar.lzma
-2020/06/30 | 583711 | systems/win32/miktex/tm/packages/miktex-log4cxx-bin-x64-2.9.tar.lzma
-2020/06/30 | 57337 | systems/win32/miktex/tm/packages/miktex-mthelp-bin-2.9.tar.lzma
-2020/06/30 | 57201 | systems/win32/miktex/tm/packages/miktex-bibarts-bin-x64-2.9.tar.lzma
-2020/06/30 | 57081 | systems/win32/miktex/tm/packages/miktex-fmt-bin-2.9.tar.lzma
-2020/06/30 | 56324963 | systems/win32/miktex/setup/darwin-x86_64/miktex-20.6.29-darwin-x86_64.dmg
-2020/06/30 | 562 | macros/generic/tracklang/samples/regions/sample-regions2-map2.tex
-2020/06/30 | 562 | graphics/pgf/contrib/tikzducks/README.md
-2020/06/30 | 562291 | systems/win32/miktex/tm/packages/miktex-libressl-bin-x64-2.9.tar.lzma
-2020/06/30 | 561 | systems/win32/miktex/setup/rpm/fedora/28/repodata/cd56eca0e12820abd09ae0cad8b448d3700660915a44769a5169e8ff414dea4c-other.xml.gz
-2020/06/30 | 556 | systems/win32/miktex/setup/rpm/opensuse/15/repodata/6605760b206aad1d284a6c3335e8cd5a4fbc1401d0003195d4b00a04937e0792-other.xml.gz
-2020/06/30 | 55679 | systems/win32/miktex/tm/packages/miktex-ttf2pk2-bin-2.9.tar.lzma
-2020/06/30 | 5564 | systems/win32/miktex/setup/rpm/opensuse/15/repodata/c6fdf688505e65803204a740c975d9ed928430b3fc145951588bd688c001c0d0-filelists.sqlite.bz2
-2020/06/30 | 549944 | systems/win32/miktex/tm/packages/miktex-harfbuzz-bin-x64-2.9.tar.lzma
-2020/06/30 | 544123 | systems/win32/miktex/tm/packages/miktex-log4cxx-bin-2.9.tar.lzma
-2020/06/30 | 523571 | support/xml2pmx.zip
-2020/06/30 | 52226 | macros/latex/contrib/shtthesis/shtthesis-user-guide.tex
-2020/06/30 | 52171 | systems/win32/miktex/tm/packages/miktex-m-tx-bin-x64-2.9.tar.lzma
-2020/06/30 | 51938 | systems/win32/miktex/tm/packages/miktex-cweb-bin-2.9.tar.lzma
-2020/06/30 | 51601 | macros/latex/contrib/shtthesis/shtthesis.cls
-2020/06/30 | 51478 | systems/win32/miktex/tm/packages/miktex-synctex-bin-x64-2.9.tar.lzma
-2020/06/30 | 51318 | systems/win32/miktex/tm/packages/miktex-findtexmf-bin-x64-2.9.tar.lzma
-2020/06/30 | 5118071 | install/fonts/erewhon.tds.zip
-2020/06/30 | 51124 | systems/win32/miktex/tm/packages/miktex-dvicopy-bin-x64-2.9.tar.lzma
-2020/06/30 | 510122 | systems/win32/miktex/doc/miktex.pdf
-2020/06/30 | 50923 | systems/win32/miktex/tm/packages/miktex-psutils-bin-x64-2.9.tar.lzma
-2020/06/30 | 5047175 | fonts/erewhon.zip
-2020/06/30 | 500708 | systems/win32/miktex/tm/packages/miktex-libressl-bin-2.9.tar.lzma
-2020/06/30 | 499 | systems/win32/miktex/source/miktex-20.6.29.tar.xz.asc
-2020/06/30 | 49632 | systems/win32/miktex/tm/packages/miktex-bibarts-bin-2.9.tar.lzma
-2020/06/30 | 49503 | macros/latex/contrib/pm-isomath/pm-isomath.dtx
-2020/06/30 | 488 | systems/win32/miktex/setup/rpm/opensuse/15/repodata/repomd.xml.asc
-2020/06/30 | 488 | systems/win32/miktex/setup/rpm/fedora/32/repodata/repomd.xml.asc
-2020/06/30 | 488 | systems/win32/miktex/setup/rpm/fedora/30/repodata/repomd.xml.asc
-2020/06/30 | 488 | systems/win32/miktex/setup/rpm/fedora/28/repodata/repomd.xml.asc
-2020/06/30 | 48068 | systems/win32/miktex/tm/packages/miktex-expat-bin-x64-2.9.tar.lzma
-2020/06/30 | 473 | systems/win32/miktex/setup/deb/dists/xenial/Release.gpg
-2020/06/30 | 473 | systems/win32/miktex/setup/deb/dists/stretch/Release.gpg
-2020/06/30 | 473 | systems/win32/miktex/setup/deb/dists/focal/Release.gpg
-2020/06/30 | 473 | systems/win32/miktex/setup/deb/dists/buster/Release.gpg
-2020/06/30 | 473 | systems/win32/miktex/setup/deb/dists/bionic/Release.gpg
-2020/06/30 | 469453 | graphics/pgf/contrib/tikzducks.zip
-2020/06/30 | 4667 | systems/win32/miktex/setup/deb/dists/focal/universe/binary-amd64/Packages
-2020/06/30 | 46285 | systems/win32/miktex/tm/packages/miktex-findtexmf-bin-2.9.tar.lzma
-2020/06/30 | 462262 | systems/win32/miktex/tm/packages/miktex-harfbuzz-bin-2.9.tar.lzma
-2020/06/30 | 460419 | systems/win32/miktex/tm/packages/miktex-doc.tar.lzma
-2020/06/30 | 45781 | systems/win32/miktex/tm/packages/miktex-m-tx-bin-2.9.tar.lzma
-2020/06/30 | 45294 | systems/win32/miktex/tm/packages/miktex-dvicopy-bin-2.9.tar.lzma
-2020/06/30 | 45056 | systems/win32/miktex/tm/packages/miktex-dvipng-bin-x64-2.9.tar.lzma
-2020/06/30 | 442576 | graphics/pgf/contrib/tikzducks/tikzducks-doc.pdf
-2020/06/30 | 434 | macros/latex/contrib/pm-isomath/README.txt
-2020/06/30 | 434306 | macros/generic/tracklang/tracklang.dtx
-2020/06/30 | 433964 | systems/texlive/tlnet/archive/xcharter.doc.r55698.tar.xz
-2020/06/30 | 43289 | systems/win32/miktex/tm/packages/miktex-expat-bin-2.9.tar.lzma
-2020/06/30 | 4310 | macros/generic/tracklang/CHANGES
-2020/06/30 | 43053 | systems/win32/miktex/tm/packages/miktex-zlib-bin-x64-2.9.tar.lzma
-2020/06/30 | 42689 | systems/win32/miktex/tm/packages/miktex-psutils-bin-2.9.tar.lzma
-2020/06/30 | 423 | systems/win32/miktex/setup/rpm/fedora/30/repodata/0a240a8eb5d6c8c97d6d8b88673cb8c44acc4535a9aae21f29e2f14de14fb3f5-other.xml.gz
-2020/06/30 | 42040 | systems/win32/miktex/tm/packages/miktex-synctex-bin-2.9.tar.lzma
-2020/06/30 | 41603 | graphics/pgf/contrib/tikzducks/tikzducks-doc.tex
-2020/06/30 | 410731 | systems/win32/miktex/tm/packages/dtk-bibliography.tar.lzma
-2020/06/30 | 40830 | systems/win32/miktex/tm/packages/miktex-dvipng-bin-2.9.tar.lzma
-2020/06/30 | 3982 | macros/context/contrib/context-vim/tex/context/third/vim/t-syntax-groups.mkiv
-2020/06/30 | 39315 | systems/win32/miktex/tm/packages/miktex-zlib-bin-2.9.tar.lzma
-2020/06/30 | 39312 | systems/win32/miktex/tm/packages/miktex-patgen-bin-x64.tar.lzma
-2020/06/30 | 39247 | macros/latex/contrib/l3backend.zip
-2020/06/30 | 392472 | systems/win32/miktex/tm/packages/miktex-cairo-bin-x64-2.9.tar.lzma
-2020/06/30 | 3915 | macros/context/contrib/context-vim/tex/context/third/vim/t-syntax-groups.mkii
-2020/06/30 | 3820 | macros/generic/tracklang/samples/animals/sample-animals-de-poly.pdf
-2020/06/30 | 3820 | macros/generic/tracklang/samples/animals/sample-animals2-de4.pdf
-2020/06/30 | 376 | macros/generic/tracklang/samples/regions/sample-regions2-map3.tex
-2020/06/30 | 3732 | macros/context/contrib/context-filter/tex/context/third/filter/t-module-catcodes.mkii
-2020/06/30 | 36945 | systems/win32/miktex/tm/packages/miktex-upmendex-bin-x64.tar.lzma
-2020/06/30 | 36855 | systems/win32/miktex/tm/packages/miktex-posix-bin-x64-2.9.tar.lzma
-2020/06/30 | 36364 | systems/win32/miktex/tm/packages/miktex-chktex-bin-x64-2.9.tar.lzma
-2020/06/30 | 360742 | systems/win32/miktex/tm/packages/miktex-pdftex-bin-x64-2.9.tar.lzma
-2020/06/30 | 359 | macros/generic/tracklang/samples/regions/sample-regions2-nomap.tex
-2020/06/30 | 359504 | macros/latex/contrib/nicematrix/nicematrix-french.pdf
-2020/06/30 | 3564 | macros/latex/contrib/shtthesis/README.md
-2020/06/30 | 3560 | macros/generic/tracklang/samples/animals/sample-animals2-poly.pdf
-2020/06/30 | 3556 | macros/generic/tracklang/samples/animals/sample-animals-poly.pdf
-2020/06/30 | 35182 | macros/latex/contrib/shtthesis/LICENSE
-2020/06/30 | 35179 | systems/win32/miktex/tm/packages/miktex-patgen-bin.tar.lzma
-2020/06/30 | 35148 | support/xml2pmx/doc/LICENSE
-2020/06/30 | 35045 | systems/win32/miktex/tm/packages/miktex-mspack-bin-x64-2.9.tar.lzma
-2020/06/30 | 35019 | macros/context/contrib/context-filter/doc/context/third/filter/filter.txt
-2020/06/30 | 349970 | systems/win32/miktex/tm/packages/metastr.tar.lzma
-2020/06/30 | 34770 | systems/win32/miktex/tm/packages/miktex-axohelp-bin-x64-2.9.tar.lzma
-2020/06/30 | 336 | systems/win32/miktex/setup/rpm/fedora/32/repodata/4b1519b72a946998e3bb9aaacf9b46f5d8f0a0a0f6aa8253bea4a6fa9fcde94e-other.xml.gz
-2020/06/30 | 3324 | support/xml2pmx/README
-2020/06/30 | 3312 | systems/texlive/tlnet/archive/langsci-avm.r55699.tar.xz
-2020/06/30 | 33117 | systems/win32/miktex/tm/packages/miktex-upmendex-bin.tar.lzma
-2020/06/30 | 33014 | macros/context/contrib/context-vim/doc/context/third/vim/vim.txt
-2020/06/30 | 3296 | macros/context/contrib/context-filter/tex/context/third/filter/t-module-catcodes.mkiv
-2020/06/30 | 329630 | systems/win32/miktex/tm/packages/miktex-cairo-bin-2.9.tar.lzma
-2020/06/30 | 327 | macros/generic/tracklang/samples/animals/sample-animals-babel.tex
-2020/06/30 | 326681 | systems/win32/miktex/tm/packages/miktex-pdftex-bin-2.9.tar.lzma
-2020/06/30 | 32426 | systems/win32/miktex/tm/packages/miktex-uriparser-bin-x64-2.9.tar.lzma
-2020/06/30 | 32307 | systems/win32/miktex/tm/packages/miktex-chktex-bin-2.9.tar.lzma
-2020/06/30 | 3205 | systems/win32/miktex/setup/rpm/fedora/28/repodata/afd364a7fbb766e11eb7223ae86703b52f218945fbb1c6ee1c5f8ffc15d2e3fa-primary.xml.gz
-2020/06/30 | 320324 | systems/texlive/tlnet/archive/metastr.doc.r55701.tar.xz
-2020/06/30 | 3182 | systems/win32/miktex/setup/rpm/fedora/30/repodata/7f9151d18cc843c75e881156aee5979a591753ba78f41d641a4e47b9868a4216-primary.xml.gz
-2020/06/30 | 3169 | systems/win32/miktex/setup/rpm/opensuse/15/repodata/13c8fc2db2adccdf673a7aa820ed1124edcdd696a0824ab7890c72123a034f0e-primary.xml.gz
-2020/06/30 | 31603 | systems/win32/miktex/setup/rpm/fedora/30/repodata/099ba385ac8b7a9649cea4dd85fb7d87e71aa4182d43c207763e7ea771b1bc95-filelists.sqlite.bz2
-2020/06/30 | 313 | macros/generic/tracklang/samples/animals/animals2-en-GB.ldf
-2020/06/30 | 31223 | systems/win32/miktex/tm/packages/miktex-mspack-bin-2.9.tar.lzma
-2020/06/30 | 31222 | systems/win32/miktex/setup/rpm/fedora/28/repodata/8861937dc3d3f0634e174754e483d124091eb55081b918d770f9f95554f8a65f-filelists.sqlite.bz2
-2020/06/30 | 31217 | systems/win32/miktex/tm/packages/miktex-posix-bin-2.9.tar.lzma
-2020/06/30 | 31189 | systems/win32/miktex/tm/packages/miktex-makeindex-bin-x64-2.9.tar.lzma
-2020/06/30 | 310 | macros/generic/tracklang/samples/animals/animals2-en-US.ldf
-2020/06/30 | 310815 | systems/win32/miktex/tm/packages/miktex-dvipdfmx-bin-x64-2.9.tar.lzma
-2020/06/30 | 30899 | systems/win32/miktex/tm/packages/miktex-autosp-bin-x64-2.9.tar.lzma
-2020/06/30 | 30874 | systems/win32/miktex/tm/packages/miktex-bzip2-bin-x64-2.9.tar.lzma
-2020/06/30 | 305018 | systems/win32/miktex/tm/packages/miktex-metapost-bin-x64-2.9.tar.lzma
-2020/06/30 | 30290826 | systems/win32/miktex/setup/deb/pool/universe/m/miktex/miktex_20.6.29-focal1_amd64.deb
-2020/06/30 | 30003356 | systems/win32/miktex/setup/deb/pool/universe/m/miktex/miktex_20.6.29-bionic1_amd64.deb
-2020/06/30 | 29828 | macros/luatex/generic/cloze/cloze.lua
-2020/06/30 | 2979 | systems/win32/miktex/setup/rpm/fedora/28/repodata/repomd.xml
-2020/06/30 | 2977 | systems/win32/miktex/setup/rpm/fedora/30/repodata/repomd.xml
-2020/06/30 | 2975 | systems/win32/miktex/setup/rpm/opensuse/15/repodata/repomd.xml
-2020/06/30 | 2975 | systems/win32/miktex/setup/rpm/fedora/32/repodata/repomd.xml
-2020/06/30 | 29642 | systems/win32/miktex/tm/packages/miktex-lacheck-bin-x64-2.9.tar.lzma
-2020/06/30 | 29556780 | systems/win32/miktex/setup/deb/pool/universe/m/miktex/miktex_20.6.29-stretch1_amd64.deb
-2020/06/30 | 29442584 | systems/win32/miktex/setup/deb/pool/universe/m/miktex/miktex_20.6.29-buster1_amd64.deb
-2020/06/30 | 29404 | systems/win32/miktex/tm/packages/miktex-axohelp-bin-2.9.tar.lzma
-2020/06/30 | 29072 | systems/win32/miktex/tm/packages/miktex-teckit-bin-x64-2.9.tar.lzma
-2020/06/30 | 29036 | systems/win32/miktex/tm/packages/miktex-fribidixetex-bin-x64-2.9.tar.lzma
-2020/06/30 | 28996398 | systems/win32/miktex/setup/deb/pool/universe/m/miktex/miktex_20.6.29-xenial1_amd64.deb
-2020/06/30 | 28399 | systems/win32/miktex/tm/packages/miktex-autosp-bin-2.9.tar.lzma
-2020/06/30 | 281738 | systems/win32/miktex/tm/packages/miktex-freetype2-bin-x64-2.9.tar.lzma
-2020/06/30 | 280136 | systems/win32/miktex/tm/packages/miktex-xetex-bin-x64-2.9.tar.lzma
-2020/06/30 | 27912 | systems/win32/miktex/tm/packages/miktex-lacheck-bin-2.9.tar.lzma
-2020/06/30 | 273938 | systems/win32/miktex/tm/packages/miktex-dvipdfmx-bin-2.9.tar.lzma
-2020/06/30 | 271 | macros/generic/tracklang/samples/animals/sample-animals2.tex
-2020/06/30 | 2709 | systems/win32/miktex/setup/rpm/fedora/32/repodata/26b2497097380b227669a654dcc7eb38bf87d2b6eafca63aa02e2abd76a825ab-primary.xml.gz
-2020/06/30 | 27051 | systems/win32/miktex/tm/packages/miktex-makeindex-bin-2.9.tar.lzma
-2020/06/30 | 27017 | systems/win32/miktex/tm/packages/miktex-bzip2-bin-2.9.tar.lzma
-2020/06/30 | 269301 | systems/win32/miktex/tm/packages/miktex-metapost-bin-2.9.tar.lzma
-2020/06/30 | 26821 | systems/win32/miktex/tm/packages/miktex-teckit-bin-2.9.tar.lzma
-2020/06/30 | 26619 | systems/win32/miktex/tm/packages/miktex-uriparser-bin-2.9.tar.lzma
-2020/06/30 | 2656367 | systems/win32/miktex/tm/packages/miktex-texworks-bin-x64-2.9.tar.lzma
-2020/06/30 | 26419776 | systems/win32/miktex/source/miktex-20.6.29.tar.xz
-2020/06/30 | 26000 | macros/generic/tracklang/samples/regions/sample-regions2-map.pdf
-2020/06/30 | 25852 | macros/generic/tracklang/samples/regions/sample-regions2-map2.pdf
-2020/06/30 | 257 | macros/generic/tracklang/samples/regions/sample-regions.tex
-2020/06/30 | 2556 | systems/win32/miktex/setup/rpm/opensuse/15/repodata/123449e8df275962b485a7d0d59f4fe62e32883bd5c96f5d9abec56d2fc629cf-filelists.xml.gz
-2020/06/30 | 25509 | systems/win32/miktex/tm/packages/miktex-fribidixetex-bin-2.9.tar.lzma
-2020/06/30 | 25468 | macros/generic/tracklang/samples/regions/sample-regions2-nomap.pdf
-2020/06/30 | 2533441 | systems/win32/miktex/tm/packages/miktex-texworks-bin-2.9.tar.lzma
-2020/06/30 | 2528 | macros/luatex/generic/cloze/README.md
-2020/06/30 | 25088 | macros/luatex/generic/cloze/cloze.dtx
-2020/06/30 | 250372 | systems/win32/miktex/tm/packages/miktex-xetex-bin-2.9.tar.lzma
-2020/06/30 | 249 | macros/generic/tracklang/samples/animals/animals-english.ldf
-2020/06/30 | 249 | macros/generic/tracklang/samples/animals/animals2-english.ldf
-2020/06/30 | 24924 | macros/generic/tracklang/samples/regions/sample-regions2-map3.pdf
-2020/06/30 | 24818 | systems/win32/miktex/source/CHANGELOG.md
-2020/06/30 | 246 | macros/generic/tracklang/samples/animals/animals-german.ldf
-2020/06/30 | 246 | macros/generic/tracklang/samples/animals/animals2-german.ldf
-2020/06/30 | 246783 | systems/win32/miktex/tm/packages/miktex-freetype2-bin-2.9.tar.lzma
-2020/06/30 | 243060 | systems/win32/miktex/tm/packages/miktex-pmx-bin-x64-2.9.tar.lzma
-2020/06/30 | 23771 | systems/win32/miktex/setup/rpm/fedora/30/repodata/2a71fb6a66f1f85bd66a47570ce1c9e22b0a9ebc45f66f88cc752d7c87f492fa-primary.sqlite.bz2
-2020/06/30 | 23585 | systems/win32/miktex/tm/packages/miktex-popt-bin-x64-2.9.tar.lzma
-2020/06/30 | 23569 | systems/win32/miktex/setup/rpm/fedora/28/repodata/a829c51e86c30a6c83627cc5cd669daaa5f68be522ed567f16b94da82e060845-primary.sqlite.bz2
-2020/06/30 | 23432 | systems/win32/miktex/setup/rpm/opensuse/15/repodata/07a3c1a5954bab8b31b58a2983950ab2e2494865394f6b3bbb5ddab45618bcca-primary.sqlite.bz2
-2020/06/30 | 23024 | systems/texlive/tlnet/archive/metastr.source.r55701.tar.xz
-2020/06/30 | 22968 | systems/win32/miktex/tm/packages/miktex-devnag-bin-x64-2.9.tar.lzma
-2020/06/30 | 22865380 | systems/win32/miktex/setup/rpm/fedora/28/miktex-20.6.29-1.fc28.x86_64.rpm
-2020/06/30 | 226 | macros/generic/tracklang/samples/regions/regions-IM.ldf
-2020/06/30 | 224021 | systems/win32/miktex/tm/packages/miktex-console-bin-x64-2.9.tar.lzma
-2020/06/30 | 223 | macros/generic/tracklang/samples/animals/sample-animals.tex
-2020/06/30 | 221 | macros/generic/tracklang/samples/regions/regions-US.ldf
-2020/06/30 | 221 | macros/generic/tracklang/samples/regions/regions-GB.ldf
-2020/06/30 | 221 | macros/generic/tracklang/samples/regions/regions-CA.ldf
-2020/06/30 | 221 | macros/generic/tracklang/samples/regions/regions-BE.ldf
-2020/06/30 | 221 | macros/generic/tracklang/samples/animals/animals-en-US.ldf
-2020/06/30 | 221 | macros/generic/tracklang/samples/animals/animals-en-GB.ldf
-2020/06/30 | 2207006 | macros/latex/contrib/shtthesis.zip
-2020/06/30 | 21945 | macros/generic/tracklang/samples/regions/sample-regions2-manx.pdf
-2020/06/30 | 2172646 | macros/latex/contrib/shtthesis/shtthesis-user-guide.pdf
-2020/06/30 | 2167 | macros/luatex/generic/cloze/cloze.ins
-2020/06/30 | 215 | macros/generic/tracklang/samples/animals/sample-animals2-poly.tex
-2020/06/30 | 214 | macros/generic/tracklang/samples/animals/sample-animals-poly.tex
-2020/06/30 | 21065120 | systems/win32/miktex/setup/rpm/opensuse/15/miktex-20.6.29-1.x86_64.rpm
-2020/06/30 | 210395 | systems/win32/miktex/tm/packages/miktex-omegaware-bin-x64-2.9.tar.lzma
-2020/06/30 | 20836876 | systems/win32/miktex/setup/rpm/fedora/30/miktex-20.6.29-1.fc30.x86_64.rpm
-2020/06/30 | 20810 | systems/win32/miktex/tm/packages/miktex-devnag-bin-2.9.tar.lzma
-2020/06/30 | 207428 | systems/win32/miktex/tm/packages/miktex-pmx-bin-2.9.tar.lzma
-2020/06/30 | 20415 | macros/context/contrib/context-filter/tex/context/third/filter/t-filter.mkiv
-2020/06/30 | 2038 | systems/win32/miktex/setup/deb/dists/stretch/InRelease
-2020/06/30 | 2034 | systems/win32/miktex/setup/deb/dists/xenial/InRelease
-2020/06/30 | 2034 | systems/win32/miktex/setup/deb/dists/buster/InRelease
-2020/06/30 | 2034 | systems/win32/miktex/setup/deb/dists/bionic/InRelease
-2020/06/30 | 2033265 | systems/win32/miktex/tm/packages/miktex-luatex-bin-x64-2.9.tar.lzma
-2020/06/30 | 2031428 | systems/texlive/tlnet/archive/xcharter.r55698.tar.xz
-2020/06/30 | 2030 | systems/win32/miktex/setup/deb/dists/focal/InRelease
-2020/06/30 | 20234 | systems/win32/miktex/setup/rpm/fedora/30/repodata/e4670559bc227e1f5909bbca921914e6c870a7eb01a70a5580ac86e9b15d94c2-filelists.xml.gz
-2020/06/30 | 201793 | systems/win32/miktex/tm/packages/miktex-console-bin-2.9.tar.lzma
-2020/06/30 | 19982 | systems/win32/miktex/tm/packages/miktex-popt-bin-2.9.tar.lzma
-2020/06/30 | 19897 | macros/generic/tracklang/samples/sample-tracklang6.pdf
-2020/06/30 | 19896 | systems/win32/miktex/setup/rpm/fedora/32/repodata/dd5c14515355a2772f4a9fea3b41733a3517395d3e5517d08898c5d502d3b499-filelists.sqlite.bz2
-2020/06/30 | 19814 | systems/win32/miktex/setup/rpm/fedora/28/repodata/661046fca0fadb0dfdc02568c8d19d0397041fad676f223808f070c419d5e3ac-filelists.xml.gz
-2020/06/30 | 19814 | macros/generic/tracklang/samples/sample-tracklang3.pdf
-2020/06/30 | 19802 | macros/generic/tracklang/samples/sample-tracklang2.pdf
-2020/06/30 | 196477 | systems/win32/miktex/tm/packages/miktex-mpfr-bin-2.9.tar.lzma
-2020/06/30 | 19552 | macros/generic/tracklang/samples/sample-tracklang.pdf
-2020/06/30 | 194 | macros/generic/tracklang/samples/animals/sample-animals2-de4.tex
-2020/06/30 | 193 | macros/generic/tracklang/samples/regions/regions-manx.ldf
-2020/06/30 | 193 | macros/generic/tracklang/samples/animals/sample-animals-de-poly.tex
-2020/06/30 | 193983 | systems/win32/miktex/tm/packages/miktex-pixman-bin-x64-2.9.tar.lzma
-2020/06/30 | 192567 | systems/win32/miktex/tm/packages/miktex-omegaware-bin-2.9.tar.lzma
-2020/06/30 | 189238 | systems/win32/miktex/tm/packages/miktex-mktex-bin-x64-2.9.tar.lzma
-2020/06/30 | 187686 | systems/win32/miktex/tm/packages/miktex-pixman-bin-2.9.tar.lzma
-2020/06/30 | 187223 | systems/win32/miktex/tm/packages/miktex-metafont-bin-x64-2.9.tar.lzma
-2020/06/30 | 186 | macros/generic/tracklang/samples/regions/sample-regions2.tex
-2020/06/30 | 18562890 | systems/win32/miktex/setup/rpm/fedora/32/miktex-20.6.29-1.fc32.x86_64.rpm
-2020/06/30 | 184475 | systems/win32/miktex/tm/packages/miktex-curl-bin-x64-2.9.tar.lzma
-2020/06/30 | 18112 | macros/context/contrib/context-filter/tex/context/third/filter/t-filter.mkii
-2020/06/30 | 180754 | systems/win32/miktex/tm/packages/miktex-mo-bin-x64-2.9.tar.lzma
-2020/06/30 | 178 | macros/generic/tracklang/samples/animals/sample-animals2-de3.tex
-2020/06/30 | 177541 | systems/win32/miktex/tm/packages/miktex-mpfr-bin-x64-2.9.tar.lzma
-2020/06/30 | 17750 | systems/win32/miktex/tm/packages/miktex-tex2xindy-bin-x64-2.9.tar.lzma
-2020/06/30 | 17632 | systems/win32/miktex/tm/packages/miktex-kpathsea-bin-x64-2.9.tar.lzma
-2020/06/30 | 173 | macros/generic/tracklang/samples/animals/sample-animals2-de.tex
-2020/06/30 | 1730592 | systems/win32/miktex/tm/packages/miktex-luatex-bin-2.9.tar.lzma
-2020/06/30 | 172 | macros/generic/tracklang/samples/animals/sample-animals-de.tex
-2020/06/30 | 171 | macros/generic/tracklang/samples/regions/regions-german.ldf
-2020/06/30 | 171228 | systems/win32/miktex/tm/packages/miktex-metafont-bin-2.9.tar.lzma
-2020/06/30 | 170837 | systems/win32/miktex/tm/packages/miktex-mktex-bin-2.9.tar.lzma
-2020/06/30 | 1705 | systems/win32/miktex/setup/deb/dists/xenial/universe/Contents-amd64.gz
-2020/06/30 | 1705 | systems/win32/miktex/setup/deb/dists/stretch/universe/Contents-amd64.gz
-2020/06/30 | 1705 | systems/win32/miktex/setup/deb/dists/buster/universe/Contents-amd64.gz
-2020/06/30 | 1705 | systems/win32/miktex/setup/deb/dists/bionic/universe/Contents-amd64.gz
-2020/06/30 | 17018 | macros/context/contrib/context-vim/tex/context/third/vim/vimtyping-default.css
-2020/06/30 | 169652 | systems/win32/miktex/tm/packages/miktex-curl-bin-2.9.tar.lzma
-2020/06/30 | 16914 | macros/generic/tracklang/samples/sample-tracklang5.pdf
-2020/06/30 | 1673 | systems/win32/miktex/setup/deb/dists/buster/universe/binary-amd64/Packages.bz2
-2020/06/30 | 166 | macros/generic/tracklang/samples/animals/sample-animals2-de2.tex
-2020/06/30 | 1661 | systems/win32/miktex/setup/deb/dists/stretch/universe/binary-amd64/Packages.bz2
-2020/06/30 | 165 | macros/generic/tracklang/samples/regions/regions-dutch.ldf
-2020/06/30 | 16563 | support/xml2pmx/doc/xml2pmx.pdf
-2020/06/30 | 165478 | systems/win32/miktex/tm/packages/miktex-tex-bin-x64-2.9.tar.lzma
-2020/06/30 | 164 | macros/generic/tracklang/samples/regions/regions-french.ldf
-2020/06/30 | 164 | macros/generic/tracklang/samples/regions/regions-english.ldf
-2020/06/30 | 1634 | systems/win32/miktex/setup/deb/dists/xenial/universe/binary-amd64/Packages.bz2
-2020/06/30 | 1621 | systems/win32/miktex/setup/deb/dists/bionic/universe/binary-amd64/Packages.bz2
-2020/06/30 | 16067 | systems/win32/miktex/tm/packages/miktex-tex2xindy-bin-2.9.tar.lzma
-2020/06/30 | 16063 | systems/win32/miktex/setup/rpm/fedora/32/repodata/37901e96d58e20160bde39942b6a56ab359205b5e22f36b87f6c6de8be0c6d02-primary.sqlite.bz2
-2020/06/30 | 1603 | graphics/pgf/contrib/tikzducks/t-tikzducks.mkiv
-2020/06/30 | 1602 | systems/win32/miktex/setup/deb/dists/focal/universe/Contents-amd64.gz
-2020/06/30 | 159812 | systems/win32/miktex/tm/packages/miktex-mo-bin-2.9.tar.lzma
-2020/06/30 | 15957 | systems/win32/miktex/tm/packages/miktex-kpathsea-bin-2.9.tar.lzma
-2020/06/30 | 158 | macros/generic/tracklang/samples/regions/sample-regions2-manx.tex
-2020/06/30 | 1553 | macros/generic/tracklang/tracklang.ins
-2020/06/30 | 154457 | systems/win32/miktex/tm/packages/miktex-hunspell-bin-x64-2.9.tar.lzma
-2020/06/30 | 153 | macros/generic/tracklang/samples/regions/regions-italian.ldf
-2020/06/30 | 151976 | systems/win32/miktex/tm/packages/miktex-fontconfig-bin-x64-2.9.tar.lzma
-2020/06/30 | 151708 | systems/win32/miktex/tm/packages/miktex-tex-bin-2.9.tar.lzma
-2020/06/30 | 1516 | systems/win32/miktex/setup/deb/dists/stretch/Release
-2020/06/30 | 1512 | systems/win32/miktex/setup/deb/dists/xenial/Release
-2020/06/30 | 1512 | systems/win32/miktex/setup/deb/dists/buster/Release
-2020/06/30 | 1512 | systems/win32/miktex/setup/deb/dists/bionic/Release
-2020/06/30 | 1508 | systems/win32/miktex/setup/deb/dists/focal/Release
-2020/06/30 | 14855 | macros/generic/tracklang/samples/animals/sample-animals-babel.pdf
-2020/06/30 | 14716 | macros/generic/tracklang/samples/regions/sample-regions2.pdf
-2020/06/30 | 1459 | macros/generic/tracklang/samples/sample-tracklang3.tex
-2020/06/30 | 1454 | macros/generic/tracklang/samples/sample-tracklang.tex
-2020/06/30 | 1454 | macros/generic/tracklang/samples/sample-tracklang2.tex
-2020/06/30 | 1428 | macros/latex/contrib/verifiche/verifiche.ins
-2020/06/30 | 1418 | systems/win32/miktex/setup/deb/dists/focal/universe/binary-amd64/Packages.bz2
-2020/06/30 | 141837 | systems/win32/miktex/tm/packages/miktex-hunspell-bin-2.9.tar.lzma
-2020/06/30 | 14123 | systems/win32/miktex/tm/packages/miktex-zzip-bin-x64-2.9.tar.lzma
-2020/06/30 | 1400073 | systems/win32/miktex/tm/packages/miktex-dvisvgm-bin-x64-2.9.tar.lzma
-2020/06/30 | 13625 | macros/generic/tracklang/samples/animals/sample-animals-de.pdf
-2020/06/30 | 13625 | macros/generic/tracklang/samples/animals/sample-animals2-de.pdf
-2020/06/30 | 13625 | macros/generic/tracklang/samples/animals/sample-animals2-de2.pdf
-2020/06/30 | 13607 | macros/generic/tracklang/samples/animals/sample-animals2-de3.pdf
-2020/06/30 | 13397 | fonts/erewhon/doc/erewhon-doc.tex
-2020/06/30 | 133711 | systems/win32/miktex/tm/packages/miktex-fontconfig-bin-2.9.tar.lzma
-2020/06/30 | 1325238 | systems/win32/miktex/tm/packages/miktex-runtime-bin-x64-2.9.tar.lzma
-2020/06/30 | 1323670 | macros/latex/contrib/nicematrix.zip
-2020/06/30 | 13161 | macros/generic/tracklang/samples/regions/sample-regions.pdf
-2020/06/30 | 13117 | systems/win32/miktex/tm/packages/miktex-zzip-bin-2.9.tar.lzma
-2020/06/30 | 130330 | systems/win32/miktex/tm/packages/miktex-dvips-bin-x64-2.9.tar.lzma
-2020/06/30 | 1266843 | systems/win32/miktex/tm/packages/miktex-dvisvgm-bin-2.9.tar.lzma
-2020/06/30 | 12656 | macros/generic/tracklang/samples/animals/sample-animals.pdf
-2020/06/30 | 12656 | macros/generic/tracklang/samples/animals/sample-animals2.pdf
-2020/06/30 | 126500 | systems/win32/miktex/tm/packages/langsci-avm.tar.lzma
-2020/06/30 | 1263 | graphics/pgf/contrib/tikzducks/tikzducks.sty
-2020/06/30 | 1262 | systems/win32/miktex/setup/deb/dists/buster/universe/binary-amd64/Packages.gz
-2020/06/30 | 1255 | systems/win32/miktex/setup/deb/dists/stretch/universe/binary-amd64/Packages.gz
-2020/06/30 | 1238 | systems/win32/miktex/setup/deb/dists/xenial/universe/binary-amd64/Packages.gz
-2020/06/30 | 1237 | systems/win32/miktex/setup/deb/dists/bionic/universe/binary-amd64/Packages.gz
-2020/06/30 | 1229 | systems/win32/miktex/setup/rpm/fedora/28/repodata/870b745b9f5fc9c35d00d8db14e9f67c14f56b83fd88c110126227bb9bc93bfd-other.sqlite.bz2
-2020/06/30 | 12231 | macros/latex/contrib/shtthesis/CHANGELOG.md
-2020/06/30 | 1215011 | install/macros/generic/tracklang.tds.zip
-2020/06/30 | 1209 | systems/win32/miktex/setup/rpm/opensuse/15/repodata/4ece123d4ba8ba94c14c862707d7856c3a85cb4dcadd0cad5338859b5bc2c757-other.sqlite.bz2
-2020/06/30 | 11 | macros/context/contrib/context-vim/VERSION
-2020/06/30 | 11 | macros/context/contrib/context-filter/VERSION
-2020/06/30 | 11972 | systems/win32/miktex/setup/rpm/fedora/32/repodata/5155474b1726feb7cb8c5e56e933b51c3e1d70ff3b4b2dbbbd28c553171e1018-filelists.xml.gz
-2020/06/30 | 1192130 | systems/win32/miktex/tm/packages/miktex-runtime-bin-2.9.tar.lzma
-2020/06/30 | 1179750 | macros/generic/tracklang.zip
-2020/06/30 | 117084 | systems/win32/miktex/tm/packages/miktex-gd-bin-x64-2.9.tar.lzma
-2020/06/30 | 115935 | systems/win32/miktex/tm/packages/miktex-dvips-bin-2.9.tar.lzma
-2020/06/30 | 114076 | systems/win32/miktex/tm/packages/miktex-gregorio-bin-x64-2.9.tar.lzma
-2020/06/30 | 11376 | systems/texlive/tlnet/archive/langsci-avm.source.r55699.tar.xz
-2020/06/30 | 1124 | macros/generic/tracklang/samples/regions/regions2.sty
-2020/06/30 | 112320 | systems/texlive/tlnet/archive/langsci-avm.doc.r55699.tar.xz
-2020/06/30 | 1109 | systems/win32/miktex/setup/deb/dists/focal/universe/binary-amd64/Packages.gz
-2020/06/30 | 1100 | support/xml2pmx/doc/xml2pmx.1
-2020/06/30 | 109690 | systems/win32/miktex/tm/packages/miktex-epstopdf-bin-x64-2.9.tar.lzma
-2020/06/30 | 109005 | systems/win32/miktex/tm/packages/miktex-jpeg-bin-x64-2.9.tar.lzma
-2020/06/30 | 10736 | systems/texlive/tlnet/archive/qrbill.source.r55700.tar.xz
-2020/06/30 | 1059647 | systems/win32/miktex/tm/packages/miktex-asymptote-bin-x64-2.9.tar.lzma
-2020/06/30 | 104590 | systems/win32/miktex/tm/packages/miktex-texware-bin-x64-2.9.tar.lzma
-2020/06/30 | 1041 | macros/generic/tracklang/samples/sample-tracklang6.tex
-2020/06/30 | 102702 | systems/win32/miktex/tm/packages/miktex-lua53-bin-x64-2.9.tar.lzma
-2020/06/30 | 1022504 | systems/win32/miktex/tm/packages/miktex-poppler-bin-x64-2.9.tar.lzma
-2020/06/30 | 101452 | systems/win32/miktex/tm/packages/miktex-mfware-bin-x64-2.9.tar.lzma
-2020/06/30 | 101040 | systems/win32/miktex/tm/packages/miktex-gd-bin-2.9.tar.lzma
diff --git a/graphics/asymptote/ChangeLog b/graphics/asymptote/ChangeLog
index 6260ef7552..67c57b47ef 100644
--- a/graphics/asymptote/ChangeLog
+++ b/graphics/asymptote/ChangeLog
@@ -1,3 +1,502 @@
+commit 695f398ded015ec27835b833f29d220794c45831
+Author: John Bowman <bowman@ualberta.ca>
+Date: Mon Jul 6 22:54:59 2020 -0600
+
+ Enable PDF transparency for SVG and HTML formats.
+
+commit 4ec6f561926704c685739dd77183e2c56929db80
+Author: John Bowman <bowman@ualberta.ca>
+Date: Mon Jul 6 22:44:19 2020 -0600
+
+ Only implement PDF transparency for PDF formats.
+
+commit f030d57672c300689ad4b955f8bd5ab897cfffc9
+Author: John Bowman <bowman@ualberta.ca>
+Date: Mon Jul 6 22:34:53 2020 -0600
+
+ Remove unused code.
+
+commit c1083e547bd5c43c2baf253d5ffbf376aa1b49eb
+Author: John Bowman <bowman@ualberta.ca>
+Date: Mon Jul 6 20:52:05 2020 -0600
+
+ Work around broken signals on MSWindows.
+
+commit 6e050f717ffeea7701c9de1e2b8ffe5ff9b9a7cb
+Author: John Bowman <bowman@ualberta.ca>
+Date: Mon Jul 6 00:04:25 2020 -0600
+
+ Fix tempdir.
+
+commit a6c626a111b49512bf8e54e4482d3aef47d63555
+Author: John Bowman <bowman@ualberta.ca>
+Date: Sun Jul 5 22:20:28 2020 -0600
+
+ Update documentation.
+
+commit 7b7b491898243d71f190b4ebad02e92805b8d0d1
+Author: John Bowman <bowman@ualberta.ca>
+Date: Sun Jul 5 21:34:08 2020 -0600
+
+ Document the Asymptote Web Application.
+
+commit ef354c08562686b6afdd5aafd6e63fe1edfdf0ef
+Author: John Bowman <bowman@ualberta.ca>
+Date: Sun Jul 5 20:20:09 2020 -0600
+
+ Remove unused variable.
+
+commit 6129a12bd26dd018d38cd96c62e8fa74b5cf36a9
+Author: John Bowman <bowman@ualberta.ca>
+Date: Sun Jul 5 20:11:27 2020 -0600
+
+ Fix pdfreload.
+
+commit fa3122974baecf2d7743e87705f3b12c913e560b
+Author: John Bowman <bowman@ualberta.ca>
+Date: Sun Jul 5 01:44:07 2020 -0600
+
+ Use custom tmpdir for dvisvgm to avoid permission conflicts.
+
+commit 042ab6b6973dc045ad80a5e99ecf29034f67416b
+Author: John Bowman <bowman@ualberta.ca>
+Date: Sun Jul 5 00:20:44 2020 -0600
+
+ Fix pdfoffsets.
+
+commit b081ac0d5b435bcb1531fd8d6211b552f62a8679
+Author: John Bowman <bowman@ualberta.ca>
+Date: Sat Jul 4 03:26:15 2020 -0600
+
+ Update dependencies.
+
+commit bd9c1e2def171eea72ea13f7755a2601da4401f8
+Author: John Bowman <bowman@ualberta.ca>
+Date: Fri Jul 3 01:46:42 2020 -0600
+
+ Fix fullscreen mode. The default maxviewport value of (0,0) now specifies
+ the screen dimensions.
+
+commit 499234d65838272830fc133635729be93474ebfa
+Author: John Bowman <bowman@ualberta.ca>
+Date: Thu Jul 2 22:55:56 2020 -0600
+
+ Remove X-server dependency for offscreen rendering.
+
+commit 217bb1c86beaa5daa7dbea6691a9a7afb088c355
+Author: John Bowman <bowman@ualberta.ca>
+Date: Thu Jul 2 14:36:45 2020 -0600
+
+ Remove obsolete offscreen setting.
+
+commit 1ddfc8e10bb10020c77b550217743b9b77f0a845
+Author: John Bowman <bowman@ualberta.ca>
+Date: Thu Jul 2 11:35:12 2020 -0600
+
+ Add missing conditionals; simplify code.
+
+commit c19d2327b109655e9a99c795bc2724738af3fc3c
+Author: John Bowman <bowman@ualberta.ca>
+Date: Thu Jul 2 11:20:01 2020 -0600
+
+ Support offscreen rendering again when configured with --enable-offscreen.
+
+commit b800078b4d81c126cf43984b12d876e919292e7c
+Author: John Bowman <bowman@ualberta.ca>
+Date: Thu Jul 2 00:14:30 2020 -0600
+
+ Work around FE_INVALID when using Gallium libGL.
+
+commit 6c6267318f959de91711984d192d96846fe11dae
+Author: John Bowman <bowman@ualberta.ca>
+Date: Mon Jun 29 01:38:31 2020 -0600
+
+ Fix warning message.
+
+commit 117081fc1c6909080df76502b15dfcb1576cd0c6
+Author: John Bowman <bowman@ualberta.ca>
+Date: Mon Jun 29 01:31:13 2020 -0600
+
+ Fix warning message.
+
+commit d573cbb922fac2f8106e70afdf9637e2ce2d6d36
+Author: John Bowman <bowman@ualberta.ca>
+Date: Mon Jun 29 00:48:08 2020 -0600
+
+ Fix documentation of mapTemplate.
+
+commit 9bdd507eabc2e5f9dbe2b3c2fde74c0552156372
+Author: John Bowman <bowman@ualberta.ca>
+Date: Mon Jun 29 00:39:47 2020 -0600
+
+ Illustrate how to create parametrized code by implementing a struct
+ mapping keys to values, with a specified default. Also implement mapArray,
+ simplifying the construction of general array mappings.
+
+commit 9cdbfd99e9e6bc80055c3929016d7a65e589f690
+Author: John Bowman <bowman@ualberta.ca>
+Date: Sat Jun 27 23:35:55 2020 -0600
+
+ Redefine map2 to map, T1 to mapFrom and T2 to mapTo.
+
+commit 24631469c445b7722566ccfe1b4a91e6cca70c19
+Author: John Bowman <bowman@ualberta.ca>
+Date: Fri Jun 26 21:23:38 2020 -0600
+
+ Add map2 code for defining T2[] map(T2 f(T1), T1[] a).
+
+commit 503273b5f076f3a46083922b6e0f8a892001a763
+Author: John Bowman <bowman@ualberta.ca>
+Date: Fri Jun 26 04:31:57 2020 -0600
+
+ Fix bug #162: opening .asy file in Xasy crashes on MSWindows.
+
+commit 7ddc5b161a2cb3394e6ae0b986c8714fc6ff1e0e
+Author: John Bowman <bowman@ualberta.ca>
+Date: Thu Jun 25 00:10:46 2020 -0600
+
+ Extend currentlight.background to 2D images; by default, use a white background for both 2D and 3D HTML images.
+
+commit 61624215084386cbba889dd008c95fcfa3f436e1
+Author: John Bowman <bowman@ualberta.ca>
+Date: Wed Jun 24 22:32:49 2020 -0600
+
+ Fix 2D html tags.
+
+commit 1b8c77abebeb4a3e65d1f30eda6d5b60ffe820f2
+Author: John Bowman <bowman@ualberta.ca>
+Date: Mon Jun 22 14:58:38 2020 -0600
+
+ Fix xasy svg shading.
+
+commit 96cf6bb0c46c830c3676a442900e4bd968e0a50c
+Author: John Bowman <bowman@ualberta.ca>
+Date: Mon Jun 22 01:38:25 2020 -0600
+
+ Fix Windows override in xasyconfig.cson.
+
+commit 448695a92747861476497f92e23e6d779596ed16
+Author: John Bowman <bowman@ualberta.ca>
+Date: Mon Jun 22 01:24:43 2020 -0600
+
+ Implement real abs2(pair) and real abs2(triple).
+
+commit 4e76a3267bb44d163378bd50f72eb6340089b469
+Author: John Bowman <bowman@ualberta.ca>
+Date: Mon Jun 22 00:04:38 2020 -0600
+
+ Fix deconstruction of png images into svg format.
+
+commit b1d4da9a0e0d69047df43c15bbe9b22f01ebb0d5
+Author: John Bowman <bowman@ualberta.ca>
+Date: Sun Jun 21 18:37:41 2020 -0600
+
+ Check array dimensions.
+
+commit 1264820193c3d27b79082431762636cb4c19b8ee
+Author: John Bowman <bowman@ualberta.ca>
+Date: Sun Jun 21 18:02:46 2020 -0600
+
+ Fix camera adjustment.
+
+commit 0353f3bd5edc99e5f83fdae04f7d14393dfa623d
+Author: John Bowman <bowman@ualberta.ca>
+Date: Sun Jun 21 16:39:19 2020 -0600
+
+ Improve detection of TeX errors.
+
+commit d0049ae28dcd4ee1664e27dff18a43dbbc7c8521
+Author: John Bowman <bowman@ualberta.ca>
+Date: Sun Jun 21 01:41:57 2020 -0600
+
+ Fix CPU to CPU optimization for Bezier curves by rendering one segment at a time.
+
+commit 6cafa5abb72d1ab2f69ab6ba9fc8ba7c4417bfe6
+Author: John Bowman <bowman@ualberta.ca>
+Date: Sun Jun 21 01:25:41 2020 -0600
+
+ Update asygl.
+
+commit 6a04bf13097bb8e196bdfcbf1f9c9b30fd5fe4b8
+Author: John Bowman <bowman@ualberta.ca>
+Date: Sun Jun 21 01:22:27 2020 -0600
+
+ Port CPU to GPU copying optimization to AsyGL library.
+
+commit 0fcf4e50d0fdaf43d839d15c8eea7ff99ab4ed71
+Author: John Bowman <bowman@ualberta.ca>
+Date: Sat Jun 20 00:01:45 2020 -0600
+
+ Update to new Ghostscript transparency model.
+
+commit d2e946715241e559433ae56b2cc726901b1474d6
+Author: John Bowman <bowman@ualberta.ca>
+Date: Fri Jun 19 19:12:15 2020 -0600
+
+ Output 2D html images using inline svg commands.
+
+commit 239b54d06b51b52b6fb1d7a929fada19039356a9
+Author: John Bowman <bowman@ualberta.ca>
+Date: Thu Jun 18 22:22:22 2020 -0600
+
+ Force PNG content to be embedded in SVG output.
+
+commit c1215bee4c483b75f547098fc0849e4f5277a404
+Author: John Bowman <bowman@ualberta.ca>
+Date: Thu Jun 18 18:55:12 2020 -0600
+
+ Fix tensor shading with latex engine and svg outformat.
+ Check for mismatched endspecial. Simplify code.
+
+commit cb9a4f90466dac50aeec00bd7dbb91cb609f5c0a
+Author: John Bowman <bowman@ualberta.ca>
+Date: Thu Jun 18 00:02:18 2020 -0600
+
+ Update asygl.
+
+commit d56cfbf30c5dfd26abdd13af139f2419ae28b3b1
+Author: John Bowman <bowman@ualberta.ca>
+Date: Thu Jun 18 00:01:46 2020 -0600
+
+ Fix WebGL shrink and expand.
+
+commit bb772d94c88a0968f744a02faadddbc0c4d214a4
+Author: John Bowman <bowman@ualberta.ca>
+Date: Wed Jun 17 22:00:11 2020 -0600
+
+ Increase WebGL precision of example.
+
+commit 55217bf80236b08d820ef235e84478100d094077
+Author: John Bowman <bowman@ualberta.ca>
+Date: Wed Jun 17 21:11:05 2020 -0600
+
+ Update asygl.
+
+commit 31d27c0d7a4dcb36f87ab2aa046371936dc6d176
+Author: John Bowman <bowman@ualberta.ca>
+Date: Wed Jun 17 21:10:09 2020 -0600
+
+ Extend WebGL viewport to edge of canvas; simplify code.
+
+commit 5b6237b879a56a222e9c3689181485646ab4ea51
+Author: John Bowman <bowman@ualberta.ca>
+Date: Wed Jun 17 16:04:49 2020 -0600
+
+ Update asygl.
+
+commit 07b4ae5679569041c070c6f50c0bd8eb3e0a97aa
+Author: John Bowman <bowman@ualberta.ca>
+Date: Wed Jun 17 16:04:03 2020 -0600
+
+ Fix WebGL aspect ratio and centering.
+
+commit c209a949e54d90bdf71a4d576602a6b004b894f3
+Author: John Bowman <bowman@ualberta.ca>
+Date: Wed Jun 17 10:57:13 2020 -0600
+
+ Update asygl.
+
+commit 9e93b99175d0aa06535022dbddeaebd7b75f4377
+Author: John Bowman <bowman@ualberta.ca>
+Date: Wed Jun 17 10:56:39 2020 -0600
+
+ Restore aspect ratio sizing code.
+
+commit eb022a5e1fc3c8bc2008e33980a47a99d269159b
+Author: John Bowman <bowman@ualberta.ca>
+Date: Wed Jun 17 08:30:47 2020 -0600
+
+ Update asygl.
+
+commit e773510775bf63cfb81fc44077c3651cccf49a9c
+Author: John Bowman <bowman@ualberta.ca>
+Date: Wed Jun 17 08:27:04 2020 -0600
+
+ Center html output in Javascript code.
+
+commit d604442f8a09550276cf03721ab3c71047eb9f6b
+Author: John Bowman <bowman@ualberta.ca>
+Date: Sun Jun 14 02:31:48 2020 -0600
+
+ Increase precision of planar Bezier surfaces in WebGL.
+
+commit 38a8732d7c292de07142e789a7abf6115a52ed82
+Author: John Bowman <bowman@ualberta.ca>
+Date: Tue Jun 2 11:49:16 2020 -0600
+
+ Revert "Center html output."
+
+ This reverts commit 8d6fcc11cbc1118f6f4253efb8766998f83425fe.
+
+commit 3546418498d27270de2ea77a8e59a97bc90697ef
+Author: John Bowman <bowman@ualberta.ca>
+Date: Sun May 24 23:03:01 2020 -0600
+
+ Remove clip from slopefield module.
+
+commit 8d6fcc11cbc1118f6f4253efb8766998f83425fe
+Author: John Bowman <bowman@ualberta.ca>
+Date: Sun May 24 21:31:48 2020 -0600
+
+ Center html output.
+
+commit 56f89ede630ce95f6d0e57c5adf58bc925229ad8
+Author: John Bowman <bowman@ualberta.ca>
+Date: Mon May 11 19:46:20 2020 -0600
+
+ Force copying of sorted transparent triangles to GPU.
+
+commit b44d17ae26dcd0f3d3ea63188f93528230390cfe
+Author: John Bowman <bowman@ualberta.ca>
+Date: Sun May 10 22:08:53 2020 -0600
+
+ Raise logo3 camera.
+
+commit d9bbb71b151c1ff1ee920045607240ed80ead95f
+Author: John Bowman <bowman@ualberta.ca>
+Date: Wed May 6 01:00:21 2020 -0600
+
+ Brighten default light Headlamp.
+
+commit d9b7e5f6759da978831a03be481f5b0712f77ba7
+Author: John Bowman <bowman@ualberta.ca>
+Date: Wed May 6 00:11:21 2020 -0600
+
+ Fix previous commit.
+
+commit a81b3656d2087a9f038fdd3417698d23d0518808
+Author: John Bowman <bowman@ualberta.ca>
+Date: Sun May 3 21:25:09 2020 -0600
+
+ Fix copying of materials from CPU to GPU.
+
+commit d536e5e45d45c7893d6703d8ef9c56c2df0d97b7
+Author: John Bowman <bowman@ualberta.ca>
+Date: Sun May 3 10:32:42 2020 -0600
+
+ Simplify code.
+
+commit a869eb33b2549b19fd67a64031d202a2fb834cd1
+Author: John Bowman <bowman@ualberta.ca>
+Date: Sun May 3 01:02:48 2020 -0600
+
+ Fix svg output for axialshade and radialshade.
+
+commit 90f4700de45c7b5a86c109d004209d8ef688bf88
+Author: John Bowman <bowman@ualberta.ca>
+Date: Sun May 3 00:21:51 2020 -0600
+
+ Work around dvisvgm --pdf limitations.
+
+commit 05faf64b39ec7ac03318a7b4c738cae9d107239a
+Author: John Bowman <bowman@ualberta.ca>
+Date: Fri May 1 04:31:10 2020 -0600
+
+ Copy vertex and material data from CPU to GPU only when necessary.
+
+commit 091d66b78d5f6283140d9d3f1ca776629e88360d
+Author: John Bowman <bowman@ualberta.ca>
+Date: Wed Apr 29 23:27:23 2020 -0600
+
+ Make svgemulation=true by default to emulate Gouraud shading in SVG;
+ remove obsolete experimental code.
+
+commit ada6af005b220947cd64c534d2f0e64f5b860b24
+Author: John Bowman <bowman@ualberta.ca>
+Date: Wed Apr 29 00:20:26 2020 -0600
+
+ Improve emulation of SVG Gouraud shading with option -svgemulation.
+
+commit fa31a4f26318806e76146fcdf4d5a38493ddcd17
+Author: John Bowman <bowman@ualberta.ca>
+Date: Mon Apr 27 09:04:14 2020 -0600
+
+ Fix typo in documentation.
+
+commit 154d7bbd45c8a2e3c92ed98ffdfb0d9614cab4dd
+Author: John Bowman <bowman@ualberta.ca>
+Date: Sun Apr 26 18:17:56 2020 -0600
+
+ Work around dvisvgm --pdf limitations; fix -fsvg -render=0.
+
+commit 90b198134af21c9989e904ee72b78779b7ecbb2d
+Author: John Bowman <bowman@ualberta.ca>
+Date: Sun Apr 26 15:56:54 2020 -0600
+
+ Fix segmentation fault; consolidate error messages.
+
+commit 1c15884c9505b3e2b01dfdc1bd21ace199d3b746
+Author: John Bowman <bowman@ualberta.ca>
+Date: Sat Apr 25 19:30:15 2020 -0600
+
+ Flatten a monochrome tensor patch with interior internal control points to a
+ filled cyclic path.
+
+commit cb4c2c03e7cd77adceeab539e0d173798abf9717
+Author: John Bowman <bowman@ualberta.ca>
+Date: Sat Apr 25 11:53:07 2020 -0600
+
+ Allow dvisvgm --pdf now that version 2.9.1 supports PNG images.
+
+commit 3063abbcfcf1d8b8b4fc6b67a37375bfc746f6cc
+Author: John Bowman <bowman@ualberta.ca>
+Date: Sat Apr 25 08:58:11 2020 -0600
+
+ Consistently use dvisvgm -v3 verbosity option.
+
+commit 21b9f1a684678f931d56c26ccb8ea7fb11f5769c
+Author: John Bowman <bowman@ualberta.ca>
+Date: Sat Apr 25 00:08:59 2020 -0600
+
+ Fix export of 3D rendered bitmaps to svg.
+
+commit 285f855a0312465f1c1d96757a5098061d929725
+Merge: 35428571 881b585a
+Author: John Bowman <bowman@ualberta.ca>
+Date: Mon Apr 13 14:56:25 2020 -0600
+
+ Merge pull request #151 from jsonn/patch-1
+
+ Check for libc++ directly, not for the kernel
+
+commit 881b585a2f8f0a927ce7d77c59eba0a4774ce98e
+Author: John Bowman <bowman@ualberta.ca>
+Date: Mon Apr 13 14:55:49 2020 -0600
+
+ Update comment.
+
+commit 44cb71efe77b4e7e9e12367bebcc39b0eebff767
+Author: Joerg Sonnenberger <joerg@bec.de>
+Date: Mon Apr 13 21:49:01 2020 +0200
+
+ Check for libc++ directly, not for the kernel
+
+commit 35428571776efdcaedcc9f920e927526849727a0
+Author: John Bowman <bowman@ualberta.ca>
+Date: Mon Apr 13 10:13:53 2020 -0600
+
+ Fix Bezier patch bounds bug introduced in bf3be19f7f1daf5730dabbf5c89e8a4f0f451a7d.
+
+commit 7f9480e35619e4cd6e7114cd025603c2e1937586
+Author: John Bowman <bowman@ualberta.ca>
+Date: Mon Apr 13 10:10:31 2020 -0600
+
+ Revert "Fix export bug."
+
+ This reverts commit 1566850db2aac0b78ec9806e35af514e7a185e63.
+
+commit decb4d5109744545082eb1843dcb2f1a52d4158c
+Author: John Bowman <bowman@ualberta.ca>
+Date: Fri Apr 3 08:39:40 2020 -0600
+
+ Add libtirpc dependency.
+
+commit 386b93b6d4770893d01ebc2ba25637546bca9f33
+Author: John Bowman <bowman@ualberta.ca>
+Date: Wed Mar 25 22:23:40 2020 -0600
+
+ Increment version to 2.66.
+
commit 1566850db2aac0b78ec9806e35af514e7a185e63
Author: John Bowman <bowman@ualberta.ca>
Date: Tue Mar 24 23:30:17 2020 -0600
diff --git a/graphics/asymptote/GUI/configs/xasyconfig.cson b/graphics/asymptote/GUI/configs/xasyconfig.cson
index de6e7b3e8f..c87f8c5b53 100644
--- a/graphics/asymptote/GUI/configs/xasyconfig.cson
+++ b/graphics/asymptote/GUI/configs/xasyconfig.cson
@@ -54,7 +54,7 @@ debugMode: true
# Overrides
-windows:
+Windows:
externalEditor: "notepad.exe"
Darwin:
diff --git a/graphics/asymptote/GUI/icons_rc.py b/graphics/asymptote/GUI/icons_rc.py
index f30a6bbc80..77097e5988 100644
--- a/graphics/asymptote/GUI/icons_rc.py
+++ b/graphics/asymptote/GUI/icons_rc.py
@@ -9,13 +9,13 @@
from PyQt5 import QtCore
qt_resource_data = b"\
-\x00\x00\x03\xe6\
+\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\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,60 +27,37 @@ qt_resource_data = b"\
\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\x02\xf2\
+\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\x05\x27\
\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\
+\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\
@@ -92,64 +69,140 @@ qt_resource_data = b"\
\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\x69\x72\x63\x6c\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\x30\x2c\x30\x2e\x34\x43\x34\x2e\x36\x39\x38\x2c\x30\x2e\
-\x34\x2c\x30\x2e\x34\x2c\x34\x2e\x36\x39\x38\x2c\x30\x2e\x34\x2c\
-\x31\x30\x43\x30\x2e\x34\x2c\x31\x35\x2e\x33\x30\x32\x2c\x34\x2e\
-\x36\x39\x38\x2c\x31\x39\x2e\x36\x2c\x31\x30\x2c\x31\x39\x2e\x36\
-\x63\x35\x2e\x33\x30\x31\x2c\x30\x2c\x39\x2e\x36\x2d\x34\x2e\x32\
-\x39\x38\x2c\x39\x2e\x36\x2d\x39\x2e\x36\x30\x31\x0d\x0a\x09\x43\
-\x31\x39\x2e\x36\x2c\x34\x2e\x36\x39\x38\x2c\x31\x35\x2e\x33\x30\
-\x31\x2c\x30\x2e\x34\x2c\x31\x30\x2c\x30\x2e\x34\x7a\x20\x4d\x31\
-\x30\x2c\x31\x37\x2e\x35\x39\x39\x63\x2d\x34\x2e\x31\x39\x37\x2c\
-\x30\x2d\x37\x2e\x36\x2d\x33\x2e\x34\x30\x32\x2d\x37\x2e\x36\x2d\
-\x37\x2e\x36\x53\x35\x2e\x38\x30\x32\x2c\x32\x2e\x34\x2c\x31\x30\
-\x2c\x32\x2e\x34\x63\x34\x2e\x31\x39\x37\x2c\x30\x2c\x37\x2e\x36\
-\x30\x31\x2c\x33\x2e\x34\x30\x32\x2c\x37\x2e\x36\x30\x31\x2c\x37\
-\x2e\x36\x0d\x0a\x09\x53\x31\x34\x2e\x31\x39\x37\x2c\x31\x37\x2e\
-\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\x01\x69\
+\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\x32\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\x36\x34\x43\x31\x35\x30\x2e\x34\x30\x31\x2c\x36\x34\
+\x2c\x36\x34\x2c\x31\x35\x30\x2e\x34\x30\x31\x2c\x36\x34\x2c\x32\
+\x35\x36\x63\x30\x2c\x31\x30\x35\x2e\x36\x30\x34\x2c\x38\x36\x2e\
+\x34\x30\x31\x2c\x31\x39\x32\x2c\x31\x39\x32\x2c\x31\x39\x32\x63\
+\x31\x38\x2e\x31\x33\x36\x2c\x30\x2c\x33\x32\x2d\x31\x33\x2e\x38\
+\x36\x34\x2c\x33\x32\x2d\x33\x32\x0d\x0a\x09\x09\x09\x63\x30\x2d\
+\x38\x2e\x35\x33\x31\x2d\x33\x2e\x31\x39\x38\x2d\x31\x36\x2d\x38\
+\x2e\x35\x33\x31\x2d\x32\x31\x2e\x33\x33\x33\x63\x2d\x35\x2e\x33\
+\x33\x33\x2d\x35\x2e\x33\x33\x34\x2d\x38\x2e\x35\x33\x31\x2d\x31\
+\x32\x2e\x38\x30\x33\x2d\x38\x2e\x35\x33\x31\x2d\x32\x31\x2e\x33\
+\x33\x34\x63\x30\x2d\x31\x38\x2e\x31\x33\x35\x2c\x31\x33\x2e\x38\
+\x36\x34\x2d\x33\x32\x2c\x33\x32\x2d\x33\x32\x68\x33\x38\x2e\x33\
+\x39\x36\x0d\x0a\x09\x09\x09\x63\x35\x38\x2e\x36\x36\x37\x2c\x30\
+\x2c\x31\x30\x36\x2e\x36\x36\x37\x2d\x34\x38\x2c\x31\x30\x36\x2e\
+\x36\x36\x37\x2d\x31\x30\x36\x2e\x36\x36\x36\x43\x34\x34\x38\x2c\
+\x31\x34\x30\x2e\x38\x30\x32\x2c\x33\x36\x31\x2e\x36\x30\x34\x2c\
+\x36\x34\x2c\x32\x35\x36\x2c\x36\x34\x7a\x20\x4d\x31\x33\x38\x2e\
+\x36\x36\x37\x2c\x32\x35\x36\x63\x2d\x31\x38\x2e\x31\x33\x36\x2c\
+\x30\x2d\x33\x32\x2d\x31\x33\x2e\x38\x36\x34\x2d\x33\x32\x2d\x33\
+\x32\x73\x31\x33\x2e\x38\x36\x34\x2d\x33\x32\x2c\x33\x32\x2d\x33\
+\x32\x0d\x0a\x09\x09\x09\x63\x31\x38\x2e\x31\x33\x35\x2c\x30\x2c\
+\x33\x32\x2c\x31\x33\x2e\x38\x36\x34\x2c\x33\x32\x2c\x33\x32\x53\
+\x31\x35\x36\x2e\x38\x30\x32\x2c\x32\x35\x36\x2c\x31\x33\x38\x2e\
+\x36\x36\x37\x2c\x32\x35\x36\x7a\x20\x4d\x32\x30\x32\x2e\x36\x36\
+\x37\x2c\x31\x37\x30\x2e\x36\x36\x37\x63\x2d\x31\x38\x2e\x31\x33\
+\x36\x2c\x30\x2d\x33\x32\x2d\x31\x33\x2e\x38\x36\x35\x2d\x33\x32\
+\x2d\x33\x32\x63\x30\x2d\x31\x38\x2e\x31\x33\x36\x2c\x31\x33\x2e\
+\x38\x36\x34\x2d\x33\x32\x2c\x33\x32\x2d\x33\x32\x0d\x0a\x09\x09\
+\x09\x63\x31\x38\x2e\x31\x33\x35\x2c\x30\x2c\x33\x32\x2c\x31\x33\
+\x2e\x38\x36\x34\x2c\x33\x32\x2c\x33\x32\x43\x32\x33\x34\x2e\x36\
+\x36\x37\x2c\x31\x35\x36\x2e\x38\x30\x32\x2c\x32\x32\x30\x2e\x38\
+\x30\x32\x2c\x31\x37\x30\x2e\x36\x36\x37\x2c\x32\x30\x32\x2e\x36\
+\x36\x37\x2c\x31\x37\x30\x2e\x36\x36\x37\x7a\x20\x4d\x33\x30\x39\
+\x2e\x33\x33\x33\x2c\x31\x37\x30\x2e\x36\x36\x37\x63\x2d\x31\x38\
+\x2e\x31\x33\x35\x2c\x30\x2d\x33\x32\x2d\x31\x33\x2e\x38\x36\x35\
+\x2d\x33\x32\x2d\x33\x32\x0d\x0a\x09\x09\x09\x63\x30\x2d\x31\x38\
+\x2e\x31\x33\x36\x2c\x31\x33\x2e\x38\x36\x35\x2d\x33\x32\x2c\x33\
+\x32\x2d\x33\x32\x63\x31\x38\x2e\x31\x33\x36\x2c\x30\x2c\x33\x32\
+\x2c\x31\x33\x2e\x38\x36\x34\x2c\x33\x32\x2c\x33\x32\x43\x33\x34\
+\x31\x2e\x33\x33\x33\x2c\x31\x35\x36\x2e\x38\x30\x32\x2c\x33\x32\
+\x37\x2e\x34\x36\x39\x2c\x31\x37\x30\x2e\x36\x36\x37\x2c\x33\x30\
+\x39\x2e\x33\x33\x33\x2c\x31\x37\x30\x2e\x36\x36\x37\x7a\x20\x4d\
+\x33\x37\x33\x2e\x33\x33\x33\x2c\x32\x35\x36\x0d\x0a\x09\x09\x09\
+\x63\x2d\x31\x38\x2e\x31\x33\x35\x2c\x30\x2d\x33\x32\x2d\x31\x33\
+\x2e\x38\x36\x34\x2d\x33\x32\x2d\x33\x32\x73\x31\x33\x2e\x38\x36\
+\x35\x2d\x33\x32\x2c\x33\x32\x2d\x33\x32\x63\x31\x38\x2e\x31\x33\
+\x36\x2c\x30\x2c\x33\x32\x2c\x31\x33\x2e\x38\x36\x34\x2c\x33\x32\
+\x2c\x33\x32\x53\x33\x39\x31\x2e\x34\x36\x39\x2c\x32\x35\x36\x2c\
+\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\x03\xf5\
\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\x20\x76\x69\x65\x77\x42\x6f\x78\x3d\x22\x30\x20\x30\
-\x20\x35\x31\x32\x20\x35\x31\x32\x22\x3e\x3c\x67\x20\x74\x72\x61\
+\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\x6c\x65\x66\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\x3c\
-\x70\x61\x74\x68\x20\x64\x3d\x22\x4d\x34\x2e\x33\x34\x20\x31\x35\
-\x2e\x36\x36\x41\x37\x2e\x39\x37\x20\x37\x2e\x39\x37\x20\x30\x20\
-\x30\x20\x30\x20\x39\x20\x31\x37\x2e\x39\x34\x56\x31\x30\x48\x35\
-\x56\x38\x68\x34\x56\x35\x2e\x38\x33\x61\x33\x20\x33\x20\x30\x20\
-\x31\x20\x31\x20\x32\x20\x30\x56\x38\x68\x34\x76\x32\x68\x2d\x34\
-\x76\x37\x2e\x39\x34\x61\x37\x2e\x39\x37\x20\x37\x2e\x39\x37\x20\
-\x30\x20\x30\x20\x30\x20\x34\x2e\x36\x36\x2d\x32\x2e\x32\x38\x6c\
-\x2d\x31\x2e\x34\x32\x2d\x31\x2e\x34\x32\x68\x35\x2e\x36\x36\x6c\
-\x2d\x32\x2e\x38\x33\x20\x32\x2e\x38\x33\x61\x31\x30\x20\x31\x30\
-\x20\x30\x20\x30\x20\x31\x2d\x31\x34\x2e\x31\x34\x20\x30\x4c\x2e\
-\x31\x20\x31\x34\x2e\x32\x34\x68\x35\x2e\x36\x36\x6c\x2d\x31\x2e\
-\x34\x32\x20\x31\x2e\x34\x32\x7a\x4d\x31\x30\x20\x34\x61\x31\x20\
-\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\
+\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\x2e\x33\x30\
+\x32\x2c\x36\x2e\x37\x37\x36\x63\x2d\x30\x2e\x31\x39\x36\x2d\x30\
+\x2e\x31\x39\x37\x2d\x30\x2e\x35\x31\x35\x2d\x30\x2e\x31\x39\x37\
+\x2d\x30\x2e\x37\x31\x2c\x30\x4c\x37\x2e\x37\x38\x35\x2c\x39\x2e\
+\x36\x34\x31\x63\x2d\x30\x2e\x31\x39\x36\x2c\x30\x2e\x31\x39\x39\
+\x2d\x30\x2e\x31\x39\x36\x2c\x30\x2e\x35\x32\x2c\x30\x2c\x30\x2e\
+\x37\x31\x37\x6c\x32\x2e\x38\x30\x37\x2c\x32\x2e\x38\x36\x34\x0d\
+\x0a\x09\x63\x30\x2e\x31\x39\x35\x2c\x30\x2e\x31\x39\x39\x2c\x30\
+\x2e\x35\x31\x34\x2c\x30\x2e\x31\x39\x38\x2c\x30\x2e\x37\x31\x2c\
+\x30\x63\x30\x2e\x31\x39\x36\x2d\x30\x2e\x31\x39\x37\x2c\x30\x2e\
+\x31\x39\x36\x2d\x30\x2e\x35\x31\x38\x2c\x30\x2d\x30\x2e\x37\x31\
+\x37\x4c\x39\x2c\x31\x30\x6c\x32\x2e\x33\x30\x32\x2d\x32\x2e\x35\
+\x30\x36\x43\x31\x31\x2e\x34\x39\x38\x2c\x37\x2e\x32\x39\x36\x2c\
+\x31\x31\x2e\x34\x39\x38\x2c\x36\x2e\x39\x37\x36\x2c\x31\x31\x2e\
+\x33\x30\x32\x2c\x36\x2e\x37\x37\x36\x7a\x0d\x0a\x09\x20\x4d\x31\
+\x30\x2c\x30\x2e\x34\x63\x2d\x35\x2e\x33\x30\x32\x2c\x30\x2d\x39\
+\x2e\x36\x2c\x34\x2e\x32\x39\x38\x2d\x39\x2e\x36\x2c\x39\x2e\x36\
+\x63\x30\x2c\x35\x2e\x33\x30\x33\x2c\x34\x2e\x32\x39\x38\x2c\x39\
+\x2e\x36\x2c\x39\x2e\x36\x2c\x39\x2e\x36\x73\x39\x2e\x36\x2d\x34\
+\x2e\x32\x39\x37\x2c\x39\x2e\x36\x2d\x39\x2e\x36\x43\x31\x39\x2e\
+\x36\x2c\x34\x2e\x36\x39\x38\x2c\x31\x35\x2e\x33\x30\x32\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\x2d\x34\x2e\x36\x31\x35\x2c\
+\x30\x2d\x38\x2e\x33\x35\x34\x2d\x33\x2e\x37\x34\x2d\x38\x2e\x33\
+\x35\x34\x2d\x38\x2e\x33\x35\x34\x63\x30\x2d\x34\x2e\x36\x31\x34\
+\x2c\x33\x2e\x37\x33\x39\x2d\x38\x2e\x33\x35\x34\x2c\x38\x2e\x33\
+\x35\x34\x2d\x38\x2e\x33\x35\x34\x63\x34\x2e\x36\x31\x33\x2c\x30\
+\x2c\x38\x2e\x33\x35\x34\x2c\x33\x2e\x37\x34\x2c\x38\x2e\x33\x35\
+\x34\x2c\x38\x2e\x33\x35\x34\x0d\x0a\x09\x43\x31\x38\x2e\x33\x35\
+\x34\x2c\x31\x34\x2e\x36\x31\x34\x2c\x31\x34\x2e\x36\x31\x33\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\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\
@@ -176,113 +229,34 @@ qt_resource_data = b"\
\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\
-\x00\x00\x04\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\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\x39\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\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\x0a\x3c\x73\x76\x67\x20\x76\x65\x72\
-\x73\x69\x6f\x6e\x3d\x22\x31\x2e\x31\x22\x0a\x09\x20\x69\x64\x3d\
-\x22\x73\x76\x67\x34\x36\x31\x39\x22\x20\x69\x6e\x6b\x73\x63\x61\
-\x70\x65\x3a\x76\x65\x72\x73\x69\x6f\x6e\x3d\x22\x30\x2e\x39\x31\
-\x2b\x64\x65\x76\x65\x6c\x2b\x6f\x73\x78\x6d\x65\x6e\x75\x20\x72\
-\x31\x32\x39\x31\x31\x22\x20\x73\x6f\x64\x69\x70\x6f\x64\x69\x3a\
-\x64\x6f\x63\x6e\x61\x6d\x65\x3d\x22\x74\x72\x69\x61\x6e\x67\x6c\
-\x65\x2d\x73\x74\x72\x6f\x6b\x65\x64\x2d\x31\x35\x2e\x73\x76\x67\
-\x22\x20\x78\x6d\x6c\x6e\x73\x3a\x63\x63\x3d\x22\x68\x74\x74\x70\
-\x3a\x2f\x2f\x63\x72\x65\x61\x74\x69\x76\x65\x63\x6f\x6d\x6d\x6f\
-\x6e\x73\x2e\x6f\x72\x67\x2f\x6e\x73\x23\x22\x20\x78\x6d\x6c\x6e\
-\x73\x3a\x64\x63\x3d\x22\x68\x74\x74\x70\x3a\x2f\x2f\x70\x75\x72\
-\x6c\x2e\x6f\x72\x67\x2f\x64\x63\x2f\x65\x6c\x65\x6d\x65\x6e\x74\
-\x73\x2f\x31\x2e\x31\x2f\x22\x20\x78\x6d\x6c\x6e\x73\x3a\x69\x6e\
-\x6b\x73\x63\x61\x70\x65\x3d\x22\x68\x74\x74\x70\x3a\x2f\x2f\x77\
-\x77\x77\x2e\x69\x6e\x6b\x73\x63\x61\x70\x65\x2e\x6f\x72\x67\x2f\
-\x6e\x61\x6d\x65\x73\x70\x61\x63\x65\x73\x2f\x69\x6e\x6b\x73\x63\
-\x61\x70\x65\x22\x20\x78\x6d\x6c\x6e\x73\x3a\x72\x64\x66\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\x30\x32\x2f\x32\x32\x2d\x72\x64\x66\
-\x2d\x73\x79\x6e\x74\x61\x78\x2d\x6e\x73\x23\x22\x20\x78\x6d\x6c\
-\x6e\x73\x3a\x73\x6f\x64\x69\x70\x6f\x64\x69\x3d\x22\x68\x74\x74\
-\x70\x3a\x2f\x2f\x73\x6f\x64\x69\x70\x6f\x64\x69\x2e\x73\x6f\x75\
-\x72\x63\x65\x66\x6f\x72\x67\x65\x2e\x6e\x65\x74\x2f\x44\x54\x44\
-\x2f\x73\x6f\x64\x69\x70\x6f\x64\x69\x2d\x30\x2e\x64\x74\x64\x22\
-\x20\x78\x6d\x6c\x6e\x73\x3a\x73\x76\x67\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\x0a\x09\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\x20\x77\x69\x64\x74\x68\x3d\x22\x36\
-\x34\x70\x78\x22\x20\x68\x65\x69\x67\x68\x74\x3d\x22\x36\x34\x70\
-\x78\x22\x0a\x09\x20\x76\x69\x65\x77\x42\x6f\x78\x3d\x22\x30\x20\
-\x30\x20\x31\x35\x20\x31\x35\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\x31\x35\x20\x31\x35\x3b\
-\x22\x20\x78\x6d\x6c\x3a\x73\x70\x61\x63\x65\x3d\x22\x70\x72\x65\
-\x73\x65\x72\x76\x65\x22\x3e\x0a\x3c\x70\x61\x74\x68\x20\x69\x64\
-\x3d\x22\x72\x65\x63\x74\x33\x33\x33\x38\x22\x20\x69\x6e\x6b\x73\
-\x63\x61\x70\x65\x3a\x63\x6f\x6e\x6e\x65\x63\x74\x6f\x72\x2d\x63\
-\x75\x72\x76\x61\x74\x75\x72\x65\x3d\x22\x30\x22\x20\x73\x6f\x64\
-\x69\x70\x6f\x64\x69\x3a\x6e\x6f\x64\x65\x74\x79\x70\x65\x73\x3d\
-\x22\x63\x63\x63\x63\x63\x63\x63\x63\x63\x63\x63\x63\x22\x20\x64\
-\x3d\x22\x4d\x37\x2e\x35\x32\x34\x33\x2c\x31\x2e\x35\x30\x30\x34\
-\x0a\x09\x43\x37\x2e\x32\x34\x32\x39\x2c\x31\x2e\x34\x39\x31\x33\
-\x2c\x36\x2e\x39\x37\x38\x37\x2c\x31\x2e\x36\x34\x32\x33\x2c\x36\
-\x2e\x38\x33\x33\x36\x2c\x31\x2e\x38\x39\x35\x32\x6c\x2d\x35\x2e\
-\x35\x2c\x39\x2e\x38\x36\x39\x32\x43\x31\x2e\x30\x32\x31\x38\x2c\
-\x31\x32\x2e\x33\x30\x37\x38\x2c\x31\x2e\x33\x39\x35\x2c\x31\x32\
-\x2e\x39\x39\x39\x39\x2c\x32\x2c\x31\x33\x68\x31\x31\x0a\x09\x63\
-\x30\x2e\x36\x30\x35\x2d\x30\x2e\x30\x30\x30\x31\x2c\x30\x2e\x39\
-\x37\x38\x32\x2d\x30\x2e\x36\x39\x32\x32\x2c\x30\x2e\x36\x36\x36\
-\x34\x2d\x31\x2e\x32\x33\x35\x35\x6c\x2d\x35\x2e\x35\x2d\x39\x2e\
-\x38\x36\x39\x32\x43\x38\x2e\x30\x33\x30\x32\x2c\x31\x2e\x36\x35\
-\x37\x39\x2c\x37\x2e\x37\x38\x38\x34\x2c\x31\x2e\x35\x30\x39\x32\
-\x2c\x37\x2e\x35\x32\x34\x33\x2c\x31\x2e\x35\x30\x30\x34\x7a\x20\
-\x4d\x37\x2e\x35\x2c\x33\x2e\x38\x39\x39\x33\x6c\x34\x2e\x31\x32\
-\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\
+\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\x05\xd4\
\x3c\
\x3f\x78\x6d\x6c\x20\x76\x65\x72\x73\x69\x6f\x6e\x3d\x27\x31\x2e\
@@ -379,246 +353,6 @@ qt_resource_data = b"\
\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\
-\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\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\x07\x80\
-\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\x31\x39\x33\x2e\x34\x36\
-\x2c\x32\x34\x39\x2e\x30\x35\x36\x63\x33\x2e\x37\x32\x33\x2d\x30\
-\x2e\x36\x37\x2c\x37\x2e\x35\x38\x39\x2d\x31\x2e\x30\x34\x31\x2c\
-\x31\x31\x2e\x35\x38\x36\x2d\x31\x2e\x30\x34\x31\x4c\x32\x30\x31\
-\x2e\x39\x32\x34\x2c\x32\x34\x38\x68\x31\x30\x33\x2e\x38\x32\x33\
-\x63\x34\x2e\x35\x30\x33\x2c\x30\x2c\x38\x2e\x38\x30\x36\x2d\x30\
-\x2e\x36\x31\x37\x2c\x31\x32\x2e\x39\x30\x38\x2d\x31\x2e\x37\x35\
-\x34\x0d\x0a\x09\x09\x63\x31\x39\x2e\x33\x37\x2d\x35\x2e\x33\x36\
-\x33\x2c\x33\x33\x2e\x33\x34\x35\x2d\x32\x32\x2e\x35\x33\x37\x2c\
-\x33\x33\x2e\x33\x34\x35\x2d\x34\x33\x2e\x36\x36\x33\x76\x2d\x33\
-\x30\x2e\x38\x32\x32\x76\x2d\x35\x36\x2e\x34\x30\x32\x63\x30\x2d\
-\x32\x34\x2e\x38\x33\x32\x2d\x32\x31\x2e\x31\x35\x2d\x34\x33\x2e\
-\x34\x38\x34\x2d\x34\x36\x2e\x32\x38\x39\x2d\x34\x37\x2e\x36\x30\
-\x36\x0d\x0a\x09\x09\x63\x2d\x31\x35\x2e\x39\x33\x31\x2d\x32\x2e\
-\x36\x32\x34\x2d\x33\x39\x2e\x32\x35\x38\x2d\x33\x2e\x38\x32\x37\
-\x2d\x35\x35\x2e\x30\x38\x39\x2d\x33\x2e\x37\x34\x39\x63\x2d\x31\
-\x35\x2e\x38\x32\x39\x2c\x30\x2e\x30\x38\x36\x2d\x33\x30\x2e\x39\
-\x38\x31\x2c\x31\x2e\x34\x30\x34\x2d\x34\x34\x2e\x32\x37\x37\x2c\
-\x33\x2e\x37\x34\x39\x43\x31\x36\x37\x2e\x31\x34\x33\x2c\x37\x34\
-\x2e\x35\x37\x36\x2c\x31\x36\x30\x2c\x38\x38\x2e\x39\x32\x38\x2c\
-\x31\x36\x30\x2c\x31\x31\x35\x2e\x33\x35\x39\x56\x31\x34\x34\x68\
-\x39\x36\x0d\x0a\x09\x09\x76\x31\x36\x48\x31\x32\x38\x2e\x38\x32\
-\x63\x2d\x33\x35\x2e\x36\x32\x38\x2c\x30\x2d\x36\x34\x2e\x35\x33\
-\x38\x2c\x34\x32\x2e\x35\x37\x31\x2d\x36\x34\x2e\x38\x31\x33\x2c\
-\x39\x35\x2e\x32\x34\x32\x43\x36\x34\x2e\x30\x30\x35\x2c\x32\x35\
-\x35\x2e\x34\x39\x35\x2c\x36\x34\x2c\x32\x35\x35\x2e\x37\x34\x37\
-\x2c\x36\x34\x2c\x32\x35\x36\x63\x30\x2c\x39\x2e\x35\x32\x33\x2c\
-\x30\x2e\x39\x34\x2c\x31\x38\x2e\x37\x32\x2c\x32\x2e\x36\x38\x35\
-\x2c\x32\x37\x2e\x34\x30\x34\x0d\x0a\x09\x09\x43\x37\x34\x2e\x36\
-\x34\x38\x2c\x33\x32\x33\x2e\x30\x37\x2c\x39\x39\x2e\x34\x35\x31\
-\x2c\x33\x35\x32\x2c\x31\x32\x38\x2e\x38\x32\x2c\x33\x35\x32\x48\
-\x31\x34\x34\x76\x2d\x32\x2e\x36\x36\x32\x76\x2d\x34\x33\x2e\x32\
-\x37\x33\x43\x31\x34\x34\x2c\x32\x37\x39\x2e\x32\x33\x38\x2c\x31\
-\x36\x34\x2e\x31\x34\x36\x2c\x32\x35\x34\x2e\x33\x33\x32\x2c\x31\
-\x39\x33\x2e\x34\x36\x2c\x32\x34\x39\x2e\x30\x35\x36\x7a\x20\x4d\
-\x32\x30\x33\x2e\x36\x35\x36\x2c\x31\x32\x37\x2e\x30\x30\x32\x0d\
-\x0a\x09\x09\x63\x2d\x39\x2e\x35\x39\x32\x2c\x30\x2d\x31\x37\x2e\
-\x33\x38\x34\x2d\x37\x2e\x37\x38\x35\x2d\x31\x37\x2e\x33\x38\x34\
-\x2d\x31\x37\x2e\x34\x30\x33\x63\x30\x2d\x39\x2e\x36\x36\x34\x2c\
-\x37\x2e\x37\x37\x34\x2d\x31\x37\x2e\x35\x32\x2c\x31\x37\x2e\x33\
-\x38\x34\x2d\x31\x37\x2e\x35\x32\x63\x39\x2e\x35\x37\x34\x2c\x30\
-\x2c\x31\x37\x2e\x33\x39\x39\x2c\x37\x2e\x38\x35\x35\x2c\x31\x37\
-\x2e\x33\x39\x39\x2c\x31\x37\x2e\x35\x32\x0d\x0a\x09\x09\x43\x32\
-\x32\x31\x2e\x30\x35\x36\x2c\x31\x31\x39\x2e\x32\x31\x37\x2c\x32\
-\x31\x33\x2e\x32\x34\x36\x2c\x31\x32\x37\x2e\x30\x30\x32\x2c\x32\
-\x30\x33\x2e\x36\x35\x36\x2c\x31\x32\x37\x2e\x30\x30\x32\x7a\x22\
-\x2f\x3e\x0d\x0a\x09\x3c\x70\x61\x74\x68\x20\x64\x3d\x22\x4d\x34\
-\x34\x33\x2e\x39\x35\x31\x2c\x32\x32\x32\x2e\x35\x34\x33\x43\x34\
-\x33\x34\x2e\x37\x38\x2c\x31\x38\x36\x2e\x30\x32\x31\x2c\x34\x31\
-\x31\x2e\x30\x33\x33\x2c\x31\x36\x30\x2c\x33\x38\x33\x2e\x31\x38\
-\x2c\x31\x36\x30\x48\x33\x36\x38\x76\x32\x2e\x36\x32\x36\x76\x33\
-\x38\x2e\x30\x34\x36\x63\x30\x2c\x33\x33\x2e\x39\x31\x35\x2d\x32\
-\x32\x2e\x32\x38\x36\x2c\x35\x38\x2e\x34\x37\x34\x2d\x34\x39\x2e\
-\x34\x38\x39\x2c\x36\x32\x2e\x36\x38\x31\x0d\x0a\x09\x09\x63\x2d\
-\x32\x2e\x37\x33\x37\x2c\x30\x2e\x34\x32\x34\x2d\x35\x2e\x34\x38\
-\x33\x2c\x30\x2e\x36\x34\x36\x2d\x38\x2e\x33\x30\x31\x2c\x30\x2e\
-\x36\x34\x36\x48\x32\x30\x36\x2e\x33\x35\x31\x63\x2d\x34\x2e\x35\
-\x31\x38\x2c\x30\x2d\x38\x2e\x39\x30\x34\x2c\x30\x2e\x35\x38\x34\
-\x2d\x31\x33\x2e\x30\x34\x39\x2c\x31\x2e\x36\x37\x32\x43\x31\x37\
-\x34\x2e\x31\x38\x2c\x32\x37\x30\x2e\x36\x38\x39\x2c\x31\x36\x30\
-\x2c\x32\x38\x36\x2e\x36\x2c\x31\x36\x30\x2c\x33\x30\x37\x2e\x32\
-\x33\x36\x76\x33\x32\x2e\x39\x32\x32\x0d\x0a\x09\x09\x76\x35\x34\
-\x2e\x33\x30\x35\x63\x30\x2c\x32\x34\x2e\x38\x33\x32\x2c\x32\x34\
-\x2e\x39\x37\x37\x2c\x33\x39\x2e\x34\x32\x36\x2c\x34\x39\x2e\x34\
-\x38\x31\x2c\x34\x36\x2e\x35\x35\x31\x63\x32\x39\x2e\x33\x32\x37\
-\x2c\x38\x2e\x35\x33\x31\x2c\x36\x31\x2e\x32\x36\x37\x2c\x31\x30\
-\x2e\x30\x36\x38\x2c\x39\x36\x2e\x33\x36\x36\x2c\x30\x43\x33\x32\
-\x39\x2e\x31\x35\x2c\x34\x33\x34\x2e\x33\x35\x34\x2c\x33\x35\x32\
-\x2c\x34\x32\x30\x2e\x38\x39\x33\x2c\x33\x35\x32\x2c\x33\x39\x34\
-\x2e\x34\x36\x33\x56\x33\x36\x38\x0d\x0a\x09\x09\x68\x2d\x39\x36\
-\x76\x2d\x31\x36\x68\x31\x32\x37\x2e\x31\x38\x63\x32\x35\x2e\x32\
-\x34\x2c\x30\x2c\x34\x37\x2e\x31\x30\x37\x2d\x32\x31\x2e\x33\x36\
-\x35\x2c\x35\x37\x2e\x38\x31\x34\x2d\x35\x32\x2e\x35\x34\x39\x43\
-\x34\x34\x35\x2e\x34\x37\x34\x2c\x32\x38\x36\x2e\x34\x30\x34\x2c\
-\x34\x34\x38\x2c\x32\x37\x31\x2e\x36\x34\x31\x2c\x34\x34\x38\x2c\
-\x32\x35\x36\x0d\x0a\x09\x09\x43\x34\x34\x38\x2c\x32\x34\x34\x2e\
-\x32\x33\x32\x2c\x34\x34\x36\x2e\x35\x36\x37\x2c\x32\x33\x32\x2e\
-\x39\x36\x32\x2c\x34\x34\x33\x2e\x39\x35\x31\x2c\x32\x32\x32\x2e\
-\x35\x34\x33\x7a\x20\x4d\x33\x30\x37\x2e\x38\x36\x37\x2c\x33\x38\
-\x32\x2e\x38\x32\x63\x39\x2e\x35\x39\x2c\x30\x2c\x31\x37\x2e\x33\
-\x38\x31\x2c\x37\x2e\x37\x38\x35\x2c\x31\x37\x2e\x33\x38\x31\x2c\
-\x31\x37\x2e\x34\x0d\x0a\x09\x09\x63\x30\x2c\x39\x2e\x36\x35\x2d\
-\x37\x2e\x37\x39\x31\x2c\x31\x37\x2e\x35\x32\x31\x2d\x31\x37\x2e\
-\x33\x38\x31\x2c\x31\x37\x2e\x35\x32\x31\x63\x2d\x39\x2e\x35\x37\
-\x37\x2c\x30\x2d\x31\x37\x2e\x33\x39\x39\x2d\x37\x2e\x38\x37\x31\
-\x2d\x31\x37\x2e\x33\x39\x39\x2d\x31\x37\x2e\x35\x32\x31\x43\x32\
-\x39\x30\x2e\x34\x36\x38\x2c\x33\x39\x30\x2e\x35\x39\x2c\x32\x39\
-\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\
-\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\
@@ -696,7 +430,148 @@ qt_resource_data = b"\
\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\
+\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\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\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\
@@ -728,27 +603,81 @@ qt_resource_data = b"\
\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\
+\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\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\xa2\
\x3c\
\x3f\x78\x6d\x6c\x20\x76\x65\x72\x73\x69\x6f\x6e\x3d\x22\x31\x2e\
@@ -874,60 +803,6 @@ qt_resource_data = b"\
\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\
@@ -961,16 +836,74 @@ qt_resource_data = b"\
\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\
+\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\x05\x27\
+\x00\x00\x03\x7c\
+\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\x34\x37\x2e\x31\x37\x36\x32\x20\x2d\x33\x32\x2e\x31\x32\x43\
+\x20\x34\x37\x2e\x31\x37\x36\x32\x20\x2d\x34\x30\x2e\x34\x33\x35\
+\x33\x20\x34\x30\x2e\x34\x33\x35\x33\x20\x2d\x34\x37\x2e\x31\x37\
+\x36\x32\x20\x33\x32\x2e\x31\x32\x20\x2d\x34\x37\x2e\x31\x37\x36\
+\x32\x43\x20\x32\x33\x2e\x38\x30\x34\x37\x20\x2d\x34\x37\x2e\x31\
+\x37\x36\x32\x20\x31\x37\x2e\x30\x36\x33\x37\x20\x2d\x34\x30\x2e\
+\x34\x33\x35\x33\x20\x31\x37\x2e\x30\x36\x33\x37\x20\x2d\x33\x32\
+\x2e\x31\x32\x43\x20\x31\x37\x2e\x30\x36\x33\x37\x20\x2d\x32\x33\
+\x2e\x38\x30\x34\x37\x20\x32\x33\x2e\x38\x30\x34\x37\x20\x2d\x31\
+\x37\x2e\x30\x36\x33\x37\x20\x33\x32\x2e\x31\x32\x20\x2d\x31\x37\
+\x2e\x30\x36\x33\x37\x43\x20\x34\x30\x2e\x34\x33\x35\x33\x20\x2d\
+\x31\x37\x2e\x30\x36\x33\x37\x20\x34\x37\x2e\x31\x37\x36\x32\x20\
+\x2d\x32\x33\x2e\x38\x30\x34\x37\x20\x34\x37\x2e\x31\x37\x36\x32\
+\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\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\
@@ -1002,59 +935,16 @@ qt_resource_data = b"\
\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\x32\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\x36\x34\x43\x31\x35\x30\x2e\x34\x30\x31\x2c\x36\x34\
-\x2c\x36\x34\x2c\x31\x35\x30\x2e\x34\x30\x31\x2c\x36\x34\x2c\x32\
-\x35\x36\x63\x30\x2c\x31\x30\x35\x2e\x36\x30\x34\x2c\x38\x36\x2e\
-\x34\x30\x31\x2c\x31\x39\x32\x2c\x31\x39\x32\x2c\x31\x39\x32\x63\
-\x31\x38\x2e\x31\x33\x36\x2c\x30\x2c\x33\x32\x2d\x31\x33\x2e\x38\
-\x36\x34\x2c\x33\x32\x2d\x33\x32\x0d\x0a\x09\x09\x09\x63\x30\x2d\
-\x38\x2e\x35\x33\x31\x2d\x33\x2e\x31\x39\x38\x2d\x31\x36\x2d\x38\
-\x2e\x35\x33\x31\x2d\x32\x31\x2e\x33\x33\x33\x63\x2d\x35\x2e\x33\
-\x33\x33\x2d\x35\x2e\x33\x33\x34\x2d\x38\x2e\x35\x33\x31\x2d\x31\
-\x32\x2e\x38\x30\x33\x2d\x38\x2e\x35\x33\x31\x2d\x32\x31\x2e\x33\
-\x33\x34\x63\x30\x2d\x31\x38\x2e\x31\x33\x35\x2c\x31\x33\x2e\x38\
-\x36\x34\x2d\x33\x32\x2c\x33\x32\x2d\x33\x32\x68\x33\x38\x2e\x33\
-\x39\x36\x0d\x0a\x09\x09\x09\x63\x35\x38\x2e\x36\x36\x37\x2c\x30\
-\x2c\x31\x30\x36\x2e\x36\x36\x37\x2d\x34\x38\x2c\x31\x30\x36\x2e\
-\x36\x36\x37\x2d\x31\x30\x36\x2e\x36\x36\x36\x43\x34\x34\x38\x2c\
-\x31\x34\x30\x2e\x38\x30\x32\x2c\x33\x36\x31\x2e\x36\x30\x34\x2c\
-\x36\x34\x2c\x32\x35\x36\x2c\x36\x34\x7a\x20\x4d\x31\x33\x38\x2e\
-\x36\x36\x37\x2c\x32\x35\x36\x63\x2d\x31\x38\x2e\x31\x33\x36\x2c\
-\x30\x2d\x33\x32\x2d\x31\x33\x2e\x38\x36\x34\x2d\x33\x32\x2d\x33\
-\x32\x73\x31\x33\x2e\x38\x36\x34\x2d\x33\x32\x2c\x33\x32\x2d\x33\
-\x32\x0d\x0a\x09\x09\x09\x63\x31\x38\x2e\x31\x33\x35\x2c\x30\x2c\
-\x33\x32\x2c\x31\x33\x2e\x38\x36\x34\x2c\x33\x32\x2c\x33\x32\x53\
-\x31\x35\x36\x2e\x38\x30\x32\x2c\x32\x35\x36\x2c\x31\x33\x38\x2e\
-\x36\x36\x37\x2c\x32\x35\x36\x7a\x20\x4d\x32\x30\x32\x2e\x36\x36\
-\x37\x2c\x31\x37\x30\x2e\x36\x36\x37\x63\x2d\x31\x38\x2e\x31\x33\
-\x36\x2c\x30\x2d\x33\x32\x2d\x31\x33\x2e\x38\x36\x35\x2d\x33\x32\
-\x2d\x33\x32\x63\x30\x2d\x31\x38\x2e\x31\x33\x36\x2c\x31\x33\x2e\
-\x38\x36\x34\x2d\x33\x32\x2c\x33\x32\x2d\x33\x32\x0d\x0a\x09\x09\
-\x09\x63\x31\x38\x2e\x31\x33\x35\x2c\x30\x2c\x33\x32\x2c\x31\x33\
-\x2e\x38\x36\x34\x2c\x33\x32\x2c\x33\x32\x43\x32\x33\x34\x2e\x36\
-\x36\x37\x2c\x31\x35\x36\x2e\x38\x30\x32\x2c\x32\x32\x30\x2e\x38\
-\x30\x32\x2c\x31\x37\x30\x2e\x36\x36\x37\x2c\x32\x30\x32\x2e\x36\
-\x36\x37\x2c\x31\x37\x30\x2e\x36\x36\x37\x7a\x20\x4d\x33\x30\x39\
-\x2e\x33\x33\x33\x2c\x31\x37\x30\x2e\x36\x36\x37\x63\x2d\x31\x38\
-\x2e\x31\x33\x35\x2c\x30\x2d\x33\x32\x2d\x31\x33\x2e\x38\x36\x35\
-\x2d\x33\x32\x2d\x33\x32\x0d\x0a\x09\x09\x09\x63\x30\x2d\x31\x38\
-\x2e\x31\x33\x36\x2c\x31\x33\x2e\x38\x36\x35\x2d\x33\x32\x2c\x33\
-\x32\x2d\x33\x32\x63\x31\x38\x2e\x31\x33\x36\x2c\x30\x2c\x33\x32\
-\x2c\x31\x33\x2e\x38\x36\x34\x2c\x33\x32\x2c\x33\x32\x43\x33\x34\
-\x31\x2e\x33\x33\x33\x2c\x31\x35\x36\x2e\x38\x30\x32\x2c\x33\x32\
-\x37\x2e\x34\x36\x39\x2c\x31\x37\x30\x2e\x36\x36\x37\x2c\x33\x30\
-\x39\x2e\x33\x33\x33\x2c\x31\x37\x30\x2e\x36\x36\x37\x7a\x20\x4d\
-\x33\x37\x33\x2e\x33\x33\x33\x2c\x32\x35\x36\x0d\x0a\x09\x09\x09\
-\x63\x2d\x31\x38\x2e\x31\x33\x35\x2c\x30\x2d\x33\x32\x2d\x31\x33\
-\x2e\x38\x36\x34\x2d\x33\x32\x2d\x33\x32\x73\x31\x33\x2e\x38\x36\
-\x35\x2d\x33\x32\x2c\x33\x32\x2d\x33\x32\x63\x31\x38\x2e\x31\x33\
-\x36\x2c\x30\x2c\x33\x32\x2c\x31\x33\x2e\x38\x36\x34\x2c\x33\x32\
-\x2c\x33\x32\x53\x33\x39\x31\x2e\x34\x36\x39\x2c\x32\x35\x36\x2c\
-\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\
+\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\x7d\
\x3c\
\x3f\x78\x6d\x6c\x20\x76\x65\x72\x73\x69\x6f\x6e\x3d\x22\x31\x2e\
@@ -1088,13 +978,13 @@ qt_resource_data = b"\
\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\
+\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\x03\x52\
@@ -1153,210 +1043,6 @@ qt_resource_data = b"\
\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\
-\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\
-\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\
-\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\x02\xfc\
-\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\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\
\x3c\
\x3f\x78\x6d\x6c\x20\x76\x65\x72\x73\x69\x6f\x6e\x3d\x22\x31\x2e\
@@ -1414,78 +1100,143 @@ qt_resource_data = b"\
\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\
+\x00\x00\x04\xca\
\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\
+\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\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\x39\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\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\x0a\x3c\x73\x76\x67\x20\x76\x65\x72\
+\x73\x69\x6f\x6e\x3d\x22\x31\x2e\x31\x22\x0a\x09\x20\x69\x64\x3d\
+\x22\x73\x76\x67\x34\x36\x31\x39\x22\x20\x69\x6e\x6b\x73\x63\x61\
+\x70\x65\x3a\x76\x65\x72\x73\x69\x6f\x6e\x3d\x22\x30\x2e\x39\x31\
+\x2b\x64\x65\x76\x65\x6c\x2b\x6f\x73\x78\x6d\x65\x6e\x75\x20\x72\
+\x31\x32\x39\x31\x31\x22\x20\x73\x6f\x64\x69\x70\x6f\x64\x69\x3a\
+\x64\x6f\x63\x6e\x61\x6d\x65\x3d\x22\x74\x72\x69\x61\x6e\x67\x6c\
+\x65\x2d\x73\x74\x72\x6f\x6b\x65\x64\x2d\x31\x35\x2e\x73\x76\x67\
+\x22\x20\x78\x6d\x6c\x6e\x73\x3a\x63\x63\x3d\x22\x68\x74\x74\x70\
+\x3a\x2f\x2f\x63\x72\x65\x61\x74\x69\x76\x65\x63\x6f\x6d\x6d\x6f\
+\x6e\x73\x2e\x6f\x72\x67\x2f\x6e\x73\x23\x22\x20\x78\x6d\x6c\x6e\
+\x73\x3a\x64\x63\x3d\x22\x68\x74\x74\x70\x3a\x2f\x2f\x70\x75\x72\
+\x6c\x2e\x6f\x72\x67\x2f\x64\x63\x2f\x65\x6c\x65\x6d\x65\x6e\x74\
+\x73\x2f\x31\x2e\x31\x2f\x22\x20\x78\x6d\x6c\x6e\x73\x3a\x69\x6e\
+\x6b\x73\x63\x61\x70\x65\x3d\x22\x68\x74\x74\x70\x3a\x2f\x2f\x77\
+\x77\x77\x2e\x69\x6e\x6b\x73\x63\x61\x70\x65\x2e\x6f\x72\x67\x2f\
+\x6e\x61\x6d\x65\x73\x70\x61\x63\x65\x73\x2f\x69\x6e\x6b\x73\x63\
+\x61\x70\x65\x22\x20\x78\x6d\x6c\x6e\x73\x3a\x72\x64\x66\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\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\x02\xf7\
+\x67\x2f\x31\x39\x39\x39\x2f\x30\x32\x2f\x32\x32\x2d\x72\x64\x66\
+\x2d\x73\x79\x6e\x74\x61\x78\x2d\x6e\x73\x23\x22\x20\x78\x6d\x6c\
+\x6e\x73\x3a\x73\x6f\x64\x69\x70\x6f\x64\x69\x3d\x22\x68\x74\x74\
+\x70\x3a\x2f\x2f\x73\x6f\x64\x69\x70\x6f\x64\x69\x2e\x73\x6f\x75\
+\x72\x63\x65\x66\x6f\x72\x67\x65\x2e\x6e\x65\x74\x2f\x44\x54\x44\
+\x2f\x73\x6f\x64\x69\x70\x6f\x64\x69\x2d\x30\x2e\x64\x74\x64\x22\
+\x20\x78\x6d\x6c\x6e\x73\x3a\x73\x76\x67\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\x0a\x09\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\x20\x77\x69\x64\x74\x68\x3d\x22\x36\
+\x34\x70\x78\x22\x20\x68\x65\x69\x67\x68\x74\x3d\x22\x36\x34\x70\
+\x78\x22\x0a\x09\x20\x76\x69\x65\x77\x42\x6f\x78\x3d\x22\x30\x20\
+\x30\x20\x31\x35\x20\x31\x35\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\x31\x35\x20\x31\x35\x3b\
+\x22\x20\x78\x6d\x6c\x3a\x73\x70\x61\x63\x65\x3d\x22\x70\x72\x65\
+\x73\x65\x72\x76\x65\x22\x3e\x0a\x3c\x70\x61\x74\x68\x20\x69\x64\
+\x3d\x22\x72\x65\x63\x74\x33\x33\x33\x38\x22\x20\x69\x6e\x6b\x73\
+\x63\x61\x70\x65\x3a\x63\x6f\x6e\x6e\x65\x63\x74\x6f\x72\x2d\x63\
+\x75\x72\x76\x61\x74\x75\x72\x65\x3d\x22\x30\x22\x20\x73\x6f\x64\
+\x69\x70\x6f\x64\x69\x3a\x6e\x6f\x64\x65\x74\x79\x70\x65\x73\x3d\
+\x22\x63\x63\x63\x63\x63\x63\x63\x63\x63\x63\x63\x63\x22\x20\x64\
+\x3d\x22\x4d\x37\x2e\x35\x32\x34\x33\x2c\x31\x2e\x35\x30\x30\x34\
+\x0a\x09\x43\x37\x2e\x32\x34\x32\x39\x2c\x31\x2e\x34\x39\x31\x33\
+\x2c\x36\x2e\x39\x37\x38\x37\x2c\x31\x2e\x36\x34\x32\x33\x2c\x36\
+\x2e\x38\x33\x33\x36\x2c\x31\x2e\x38\x39\x35\x32\x6c\x2d\x35\x2e\
+\x35\x2c\x39\x2e\x38\x36\x39\x32\x43\x31\x2e\x30\x32\x31\x38\x2c\
+\x31\x32\x2e\x33\x30\x37\x38\x2c\x31\x2e\x33\x39\x35\x2c\x31\x32\
+\x2e\x39\x39\x39\x39\x2c\x32\x2c\x31\x33\x68\x31\x31\x0a\x09\x63\
+\x30\x2e\x36\x30\x35\x2d\x30\x2e\x30\x30\x30\x31\x2c\x30\x2e\x39\
+\x37\x38\x32\x2d\x30\x2e\x36\x39\x32\x32\x2c\x30\x2e\x36\x36\x36\
+\x34\x2d\x31\x2e\x32\x33\x35\x35\x6c\x2d\x35\x2e\x35\x2d\x39\x2e\
+\x38\x36\x39\x32\x43\x38\x2e\x30\x33\x30\x32\x2c\x31\x2e\x36\x35\
+\x37\x39\x2c\x37\x2e\x37\x38\x38\x34\x2c\x31\x2e\x35\x30\x39\x32\
+\x2c\x37\x2e\x35\x32\x34\x33\x2c\x31\x2e\x35\x30\x30\x34\x7a\x20\
+\x4d\x37\x2e\x35\x2c\x33\x2e\x38\x39\x39\x33\x6c\x34\x2e\x31\x32\
+\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\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\x01\x69\
+\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\x20\x76\x69\x65\x77\x42\x6f\x78\x3d\x22\x30\x20\x30\
+\x20\x35\x31\x32\x20\x35\x31\x32\x22\x3e\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\x34\x2e\x33\x34\x20\x31\x35\
+\x2e\x36\x36\x41\x37\x2e\x39\x37\x20\x37\x2e\x39\x37\x20\x30\x20\
+\x30\x20\x30\x20\x39\x20\x31\x37\x2e\x39\x34\x56\x31\x30\x48\x35\
+\x56\x38\x68\x34\x56\x35\x2e\x38\x33\x61\x33\x20\x33\x20\x30\x20\
+\x31\x20\x31\x20\x32\x20\x30\x56\x38\x68\x34\x76\x32\x68\x2d\x34\
+\x76\x37\x2e\x39\x34\x61\x37\x2e\x39\x37\x20\x37\x2e\x39\x37\x20\
+\x30\x20\x30\x20\x30\x20\x34\x2e\x36\x36\x2d\x32\x2e\x32\x38\x6c\
+\x2d\x31\x2e\x34\x32\x2d\x31\x2e\x34\x32\x68\x35\x2e\x36\x36\x6c\
+\x2d\x32\x2e\x38\x33\x20\x32\x2e\x38\x33\x61\x31\x30\x20\x31\x30\
+\x20\x30\x20\x30\x20\x31\x2d\x31\x34\x2e\x31\x34\x20\x30\x4c\x2e\
+\x31\x20\x31\x34\x2e\x32\x34\x68\x35\x2e\x36\x36\x6c\x2d\x31\x2e\
+\x34\x32\x20\x31\x2e\x34\x32\x7a\x4d\x31\x30\x20\x34\x61\x31\x20\
+\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\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\
@@ -1517,31 +1268,28 @@ qt_resource_data = b"\
\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\x31\x37\x2e\x34\
-\x2c\x32\x32\x34\x48\x32\x38\x38\x56\x39\x34\x2e\x36\x63\x30\x2d\
-\x31\x36\x2e\x39\x2d\x31\x34\x2e\x33\x2d\x33\x30\x2e\x36\x2d\x33\
-\x32\x2d\x33\x30\x2e\x36\x63\x2d\x31\x37\x2e\x37\x2c\x30\x2d\x33\
-\x32\x2c\x31\x33\x2e\x37\x2d\x33\x32\x2c\x33\x30\x2e\x36\x56\x32\
-\x32\x34\x48\x39\x34\x2e\x36\x43\x37\x37\x2e\x37\x2c\x32\x32\x34\
-\x2c\x36\x34\x2c\x32\x33\x38\x2e\x33\x2c\x36\x34\x2c\x32\x35\x36\
-\x0d\x0a\x09\x63\x30\x2c\x31\x37\x2e\x37\x2c\x31\x33\x2e\x37\x2c\
-\x33\x32\x2c\x33\x30\x2e\x36\x2c\x33\x32\x48\x32\x32\x34\x76\x31\
-\x32\x39\x2e\x34\x63\x30\x2c\x31\x36\x2e\x39\x2c\x31\x34\x2e\x33\
-\x2c\x33\x30\x2e\x36\x2c\x33\x32\x2c\x33\x30\x2e\x36\x63\x31\x37\
-\x2e\x37\x2c\x30\x2c\x33\x32\x2d\x31\x33\x2e\x37\x2c\x33\x32\x2d\
-\x33\x30\x2e\x36\x56\x32\x38\x38\x68\x31\x32\x39\x2e\x34\x63\x31\
-\x36\x2e\x39\x2c\x30\x2c\x33\x30\x2e\x36\x2d\x31\x34\x2e\x33\x2c\
-\x33\x30\x2e\x36\x2d\x33\x32\x0d\x0a\x09\x43\x34\x34\x38\x2c\x32\
-\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\
+\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\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\x30\x2c\
+\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\
@@ -1553,112 +1301,60 @@ qt_resource_data = b"\
\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\
+\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\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\
-\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\x6c\x65\x66\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\x2e\x33\x30\
-\x32\x2c\x36\x2e\x37\x37\x36\x63\x2d\x30\x2e\x31\x39\x36\x2d\x30\
-\x2e\x31\x39\x37\x2d\x30\x2e\x35\x31\x35\x2d\x30\x2e\x31\x39\x37\
-\x2d\x30\x2e\x37\x31\x2c\x30\x4c\x37\x2e\x37\x38\x35\x2c\x39\x2e\
-\x36\x34\x31\x63\x2d\x30\x2e\x31\x39\x36\x2c\x30\x2e\x31\x39\x39\
-\x2d\x30\x2e\x31\x39\x36\x2c\x30\x2e\x35\x32\x2c\x30\x2c\x30\x2e\
-\x37\x31\x37\x6c\x32\x2e\x38\x30\x37\x2c\x32\x2e\x38\x36\x34\x0d\
-\x0a\x09\x63\x30\x2e\x31\x39\x35\x2c\x30\x2e\x31\x39\x39\x2c\x30\
-\x2e\x35\x31\x34\x2c\x30\x2e\x31\x39\x38\x2c\x30\x2e\x37\x31\x2c\
-\x30\x63\x30\x2e\x31\x39\x36\x2d\x30\x2e\x31\x39\x37\x2c\x30\x2e\
-\x31\x39\x36\x2d\x30\x2e\x35\x31\x38\x2c\x30\x2d\x30\x2e\x37\x31\
-\x37\x4c\x39\x2c\x31\x30\x6c\x32\x2e\x33\x30\x32\x2d\x32\x2e\x35\
-\x30\x36\x43\x31\x31\x2e\x34\x39\x38\x2c\x37\x2e\x32\x39\x36\x2c\
-\x31\x31\x2e\x34\x39\x38\x2c\x36\x2e\x39\x37\x36\x2c\x31\x31\x2e\
-\x33\x30\x32\x2c\x36\x2e\x37\x37\x36\x7a\x0d\x0a\x09\x20\x4d\x31\
-\x30\x2c\x30\x2e\x34\x63\x2d\x35\x2e\x33\x30\x32\x2c\x30\x2d\x39\
-\x2e\x36\x2c\x34\x2e\x32\x39\x38\x2d\x39\x2e\x36\x2c\x39\x2e\x36\
-\x63\x30\x2c\x35\x2e\x33\x30\x33\x2c\x34\x2e\x32\x39\x38\x2c\x39\
-\x2e\x36\x2c\x39\x2e\x36\x2c\x39\x2e\x36\x73\x39\x2e\x36\x2d\x34\
-\x2e\x32\x39\x37\x2c\x39\x2e\x36\x2d\x39\x2e\x36\x43\x31\x39\x2e\
-\x36\x2c\x34\x2e\x36\x39\x38\x2c\x31\x35\x2e\x33\x30\x32\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\x2d\x34\x2e\x36\x31\x35\x2c\
-\x30\x2d\x38\x2e\x33\x35\x34\x2d\x33\x2e\x37\x34\x2d\x38\x2e\x33\
-\x35\x34\x2d\x38\x2e\x33\x35\x34\x63\x30\x2d\x34\x2e\x36\x31\x34\
-\x2c\x33\x2e\x37\x33\x39\x2d\x38\x2e\x33\x35\x34\x2c\x38\x2e\x33\
-\x35\x34\x2d\x38\x2e\x33\x35\x34\x63\x34\x2e\x36\x31\x33\x2c\x30\
-\x2c\x38\x2e\x33\x35\x34\x2c\x33\x2e\x37\x34\x2c\x38\x2e\x33\x35\
-\x34\x2c\x38\x2e\x33\x35\x34\x0d\x0a\x09\x43\x31\x38\x2e\x33\x35\
-\x34\x2c\x31\x34\x2e\x36\x31\x34\x2c\x31\x34\x2e\x36\x31\x33\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\x03\x22\
+\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\x02\xf2\
\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\
@@ -1670,233 +1366,45 @@ qt_resource_data = b"\
\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\
+\x3d\x22\x43\x69\x72\x63\x6c\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\x30\x2c\x30\x2e\x34\x43\x34\x2e\x36\x39\x38\x2c\x30\x2e\
+\x34\x2c\x30\x2e\x34\x2c\x34\x2e\x36\x39\x38\x2c\x30\x2e\x34\x2c\
+\x31\x30\x43\x30\x2e\x34\x2c\x31\x35\x2e\x33\x30\x32\x2c\x34\x2e\
+\x36\x39\x38\x2c\x31\x39\x2e\x36\x2c\x31\x30\x2c\x31\x39\x2e\x36\
+\x63\x35\x2e\x33\x30\x31\x2c\x30\x2c\x39\x2e\x36\x2d\x34\x2e\x32\
+\x39\x38\x2c\x39\x2e\x36\x2d\x39\x2e\x36\x30\x31\x0d\x0a\x09\x43\
+\x31\x39\x2e\x36\x2c\x34\x2e\x36\x39\x38\x2c\x31\x35\x2e\x33\x30\
+\x31\x2c\x30\x2e\x34\x2c\x31\x30\x2c\x30\x2e\x34\x7a\x20\x4d\x31\
+\x30\x2c\x31\x37\x2e\x35\x39\x39\x63\x2d\x34\x2e\x31\x39\x37\x2c\
+\x30\x2d\x37\x2e\x36\x2d\x33\x2e\x34\x30\x32\x2d\x37\x2e\x36\x2d\
+\x37\x2e\x36\x53\x35\x2e\x38\x30\x32\x2c\x32\x2e\x34\x2c\x31\x30\
+\x2c\x32\x2e\x34\x63\x34\x2e\x31\x39\x37\x2c\x30\x2c\x37\x2e\x36\
+\x30\x31\x2c\x33\x2e\x34\x30\x32\x2c\x37\x2e\x36\x30\x31\x2c\x37\
+\x2e\x36\x0d\x0a\x09\x53\x31\x34\x2e\x31\x39\x37\x2c\x31\x37\x2e\
+\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\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\
+\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\x36\x2e\x32\x2e\x31\x2c\
+\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\
@@ -1908,39 +1416,33 @@ qt_resource_data = b"\
\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\
+\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\x64\
\x3c\
\x3f\x78\x6d\x6c\x20\x76\x65\x72\x73\x69\x6f\x6e\x3d\x22\x31\x2e\
@@ -2014,51 +1516,6 @@ qt_resource_data = b"\
\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\
@@ -2127,7 +1584,7 @@ qt_resource_data = b"\
\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\
+\x00\x00\x07\x80\
\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\
@@ -2158,71 +1615,222 @@ qt_resource_data = b"\
\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\
+\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\x31\x39\x33\x2e\x34\x36\
+\x2c\x32\x34\x39\x2e\x30\x35\x36\x63\x33\x2e\x37\x32\x33\x2d\x30\
+\x2e\x36\x37\x2c\x37\x2e\x35\x38\x39\x2d\x31\x2e\x30\x34\x31\x2c\
+\x31\x31\x2e\x35\x38\x36\x2d\x31\x2e\x30\x34\x31\x4c\x32\x30\x31\
+\x2e\x39\x32\x34\x2c\x32\x34\x38\x68\x31\x30\x33\x2e\x38\x32\x33\
+\x63\x34\x2e\x35\x30\x33\x2c\x30\x2c\x38\x2e\x38\x30\x36\x2d\x30\
+\x2e\x36\x31\x37\x2c\x31\x32\x2e\x39\x30\x38\x2d\x31\x2e\x37\x35\
+\x34\x0d\x0a\x09\x09\x63\x31\x39\x2e\x33\x37\x2d\x35\x2e\x33\x36\
+\x33\x2c\x33\x33\x2e\x33\x34\x35\x2d\x32\x32\x2e\x35\x33\x37\x2c\
+\x33\x33\x2e\x33\x34\x35\x2d\x34\x33\x2e\x36\x36\x33\x76\x2d\x33\
+\x30\x2e\x38\x32\x32\x76\x2d\x35\x36\x2e\x34\x30\x32\x63\x30\x2d\
+\x32\x34\x2e\x38\x33\x32\x2d\x32\x31\x2e\x31\x35\x2d\x34\x33\x2e\
+\x34\x38\x34\x2d\x34\x36\x2e\x32\x38\x39\x2d\x34\x37\x2e\x36\x30\
+\x36\x0d\x0a\x09\x09\x63\x2d\x31\x35\x2e\x39\x33\x31\x2d\x32\x2e\
+\x36\x32\x34\x2d\x33\x39\x2e\x32\x35\x38\x2d\x33\x2e\x38\x32\x37\
+\x2d\x35\x35\x2e\x30\x38\x39\x2d\x33\x2e\x37\x34\x39\x63\x2d\x31\
+\x35\x2e\x38\x32\x39\x2c\x30\x2e\x30\x38\x36\x2d\x33\x30\x2e\x39\
+\x38\x31\x2c\x31\x2e\x34\x30\x34\x2d\x34\x34\x2e\x32\x37\x37\x2c\
+\x33\x2e\x37\x34\x39\x43\x31\x36\x37\x2e\x31\x34\x33\x2c\x37\x34\
+\x2e\x35\x37\x36\x2c\x31\x36\x30\x2c\x38\x38\x2e\x39\x32\x38\x2c\
+\x31\x36\x30\x2c\x31\x31\x35\x2e\x33\x35\x39\x56\x31\x34\x34\x68\
+\x39\x36\x0d\x0a\x09\x09\x76\x31\x36\x48\x31\x32\x38\x2e\x38\x32\
+\x63\x2d\x33\x35\x2e\x36\x32\x38\x2c\x30\x2d\x36\x34\x2e\x35\x33\
+\x38\x2c\x34\x32\x2e\x35\x37\x31\x2d\x36\x34\x2e\x38\x31\x33\x2c\
+\x39\x35\x2e\x32\x34\x32\x43\x36\x34\x2e\x30\x30\x35\x2c\x32\x35\
+\x35\x2e\x34\x39\x35\x2c\x36\x34\x2c\x32\x35\x35\x2e\x37\x34\x37\
+\x2c\x36\x34\x2c\x32\x35\x36\x63\x30\x2c\x39\x2e\x35\x32\x33\x2c\
+\x30\x2e\x39\x34\x2c\x31\x38\x2e\x37\x32\x2c\x32\x2e\x36\x38\x35\
+\x2c\x32\x37\x2e\x34\x30\x34\x0d\x0a\x09\x09\x43\x37\x34\x2e\x36\
+\x34\x38\x2c\x33\x32\x33\x2e\x30\x37\x2c\x39\x39\x2e\x34\x35\x31\
+\x2c\x33\x35\x32\x2c\x31\x32\x38\x2e\x38\x32\x2c\x33\x35\x32\x48\
+\x31\x34\x34\x76\x2d\x32\x2e\x36\x36\x32\x76\x2d\x34\x33\x2e\x32\
+\x37\x33\x43\x31\x34\x34\x2c\x32\x37\x39\x2e\x32\x33\x38\x2c\x31\
+\x36\x34\x2e\x31\x34\x36\x2c\x32\x35\x34\x2e\x33\x33\x32\x2c\x31\
+\x39\x33\x2e\x34\x36\x2c\x32\x34\x39\x2e\x30\x35\x36\x7a\x20\x4d\
+\x32\x30\x33\x2e\x36\x35\x36\x2c\x31\x32\x37\x2e\x30\x30\x32\x0d\
+\x0a\x09\x09\x63\x2d\x39\x2e\x35\x39\x32\x2c\x30\x2d\x31\x37\x2e\
+\x33\x38\x34\x2d\x37\x2e\x37\x38\x35\x2d\x31\x37\x2e\x33\x38\x34\
+\x2d\x31\x37\x2e\x34\x30\x33\x63\x30\x2d\x39\x2e\x36\x36\x34\x2c\
+\x37\x2e\x37\x37\x34\x2d\x31\x37\x2e\x35\x32\x2c\x31\x37\x2e\x33\
+\x38\x34\x2d\x31\x37\x2e\x35\x32\x63\x39\x2e\x35\x37\x34\x2c\x30\
+\x2c\x31\x37\x2e\x33\x39\x39\x2c\x37\x2e\x38\x35\x35\x2c\x31\x37\
+\x2e\x33\x39\x39\x2c\x31\x37\x2e\x35\x32\x0d\x0a\x09\x09\x43\x32\
+\x32\x31\x2e\x30\x35\x36\x2c\x31\x31\x39\x2e\x32\x31\x37\x2c\x32\
+\x31\x33\x2e\x32\x34\x36\x2c\x31\x32\x37\x2e\x30\x30\x32\x2c\x32\
+\x30\x33\x2e\x36\x35\x36\x2c\x31\x32\x37\x2e\x30\x30\x32\x7a\x22\
+\x2f\x3e\x0d\x0a\x09\x3c\x70\x61\x74\x68\x20\x64\x3d\x22\x4d\x34\
+\x34\x33\x2e\x39\x35\x31\x2c\x32\x32\x32\x2e\x35\x34\x33\x43\x34\
+\x33\x34\x2e\x37\x38\x2c\x31\x38\x36\x2e\x30\x32\x31\x2c\x34\x31\
+\x31\x2e\x30\x33\x33\x2c\x31\x36\x30\x2c\x33\x38\x33\x2e\x31\x38\
+\x2c\x31\x36\x30\x48\x33\x36\x38\x76\x32\x2e\x36\x32\x36\x76\x33\
+\x38\x2e\x30\x34\x36\x63\x30\x2c\x33\x33\x2e\x39\x31\x35\x2d\x32\
+\x32\x2e\x32\x38\x36\x2c\x35\x38\x2e\x34\x37\x34\x2d\x34\x39\x2e\
+\x34\x38\x39\x2c\x36\x32\x2e\x36\x38\x31\x0d\x0a\x09\x09\x63\x2d\
+\x32\x2e\x37\x33\x37\x2c\x30\x2e\x34\x32\x34\x2d\x35\x2e\x34\x38\
+\x33\x2c\x30\x2e\x36\x34\x36\x2d\x38\x2e\x33\x30\x31\x2c\x30\x2e\
+\x36\x34\x36\x48\x32\x30\x36\x2e\x33\x35\x31\x63\x2d\x34\x2e\x35\
+\x31\x38\x2c\x30\x2d\x38\x2e\x39\x30\x34\x2c\x30\x2e\x35\x38\x34\
+\x2d\x31\x33\x2e\x30\x34\x39\x2c\x31\x2e\x36\x37\x32\x43\x31\x37\
+\x34\x2e\x31\x38\x2c\x32\x37\x30\x2e\x36\x38\x39\x2c\x31\x36\x30\
+\x2c\x32\x38\x36\x2e\x36\x2c\x31\x36\x30\x2c\x33\x30\x37\x2e\x32\
+\x33\x36\x76\x33\x32\x2e\x39\x32\x32\x0d\x0a\x09\x09\x76\x35\x34\
+\x2e\x33\x30\x35\x63\x30\x2c\x32\x34\x2e\x38\x33\x32\x2c\x32\x34\
+\x2e\x39\x37\x37\x2c\x33\x39\x2e\x34\x32\x36\x2c\x34\x39\x2e\x34\
+\x38\x31\x2c\x34\x36\x2e\x35\x35\x31\x63\x32\x39\x2e\x33\x32\x37\
+\x2c\x38\x2e\x35\x33\x31\x2c\x36\x31\x2e\x32\x36\x37\x2c\x31\x30\
+\x2e\x30\x36\x38\x2c\x39\x36\x2e\x33\x36\x36\x2c\x30\x43\x33\x32\
+\x39\x2e\x31\x35\x2c\x34\x33\x34\x2e\x33\x35\x34\x2c\x33\x35\x32\
+\x2c\x34\x32\x30\x2e\x38\x39\x33\x2c\x33\x35\x32\x2c\x33\x39\x34\
+\x2e\x34\x36\x33\x56\x33\x36\x38\x0d\x0a\x09\x09\x68\x2d\x39\x36\
+\x76\x2d\x31\x36\x68\x31\x32\x37\x2e\x31\x38\x63\x32\x35\x2e\x32\
+\x34\x2c\x30\x2c\x34\x37\x2e\x31\x30\x37\x2d\x32\x31\x2e\x33\x36\
+\x35\x2c\x35\x37\x2e\x38\x31\x34\x2d\x35\x32\x2e\x35\x34\x39\x43\
+\x34\x34\x35\x2e\x34\x37\x34\x2c\x32\x38\x36\x2e\x34\x30\x34\x2c\
+\x34\x34\x38\x2c\x32\x37\x31\x2e\x36\x34\x31\x2c\x34\x34\x38\x2c\
+\x32\x35\x36\x0d\x0a\x09\x09\x43\x34\x34\x38\x2c\x32\x34\x34\x2e\
+\x32\x33\x32\x2c\x34\x34\x36\x2e\x35\x36\x37\x2c\x32\x33\x32\x2e\
+\x39\x36\x32\x2c\x34\x34\x33\x2e\x39\x35\x31\x2c\x32\x32\x32\x2e\
+\x35\x34\x33\x7a\x20\x4d\x33\x30\x37\x2e\x38\x36\x37\x2c\x33\x38\
+\x32\x2e\x38\x32\x63\x39\x2e\x35\x39\x2c\x30\x2c\x31\x37\x2e\x33\
+\x38\x31\x2c\x37\x2e\x37\x38\x35\x2c\x31\x37\x2e\x33\x38\x31\x2c\
+\x31\x37\x2e\x34\x0d\x0a\x09\x09\x63\x30\x2c\x39\x2e\x36\x35\x2d\
+\x37\x2e\x37\x39\x31\x2c\x31\x37\x2e\x35\x32\x31\x2d\x31\x37\x2e\
+\x33\x38\x31\x2c\x31\x37\x2e\x35\x32\x31\x63\x2d\x39\x2e\x35\x37\
+\x37\x2c\x30\x2d\x31\x37\x2e\x33\x39\x39\x2d\x37\x2e\x38\x37\x31\
+\x2d\x31\x37\x2e\x33\x39\x39\x2d\x31\x37\x2e\x35\x32\x31\x43\x32\
+\x39\x30\x2e\x34\x36\x38\x2c\x33\x39\x30\x2e\x35\x39\x2c\x32\x39\
+\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\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\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\x02\xfc\
+\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\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\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\
@@ -2244,62 +1852,54 @@ qt_resource_data = b"\
\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\x34\x37\x2e\x31\x37\x36\x32\x20\x2d\x33\x32\x2e\x31\x32\x43\
-\x20\x34\x37\x2e\x31\x37\x36\x32\x20\x2d\x34\x30\x2e\x34\x33\x35\
-\x33\x20\x34\x30\x2e\x34\x33\x35\x33\x20\x2d\x34\x37\x2e\x31\x37\
-\x36\x32\x20\x33\x32\x2e\x31\x32\x20\x2d\x34\x37\x2e\x31\x37\x36\
-\x32\x43\x20\x32\x33\x2e\x38\x30\x34\x37\x20\x2d\x34\x37\x2e\x31\
-\x37\x36\x32\x20\x31\x37\x2e\x30\x36\x33\x37\x20\x2d\x34\x30\x2e\
-\x34\x33\x35\x33\x20\x31\x37\x2e\x30\x36\x33\x37\x20\x2d\x33\x32\
-\x2e\x31\x32\x43\x20\x31\x37\x2e\x30\x36\x33\x37\x20\x2d\x32\x33\
-\x2e\x38\x30\x34\x37\x20\x32\x33\x2e\x38\x30\x34\x37\x20\x2d\x31\
-\x37\x2e\x30\x36\x33\x37\x20\x33\x32\x2e\x31\x32\x20\x2d\x31\x37\
-\x2e\x30\x36\x33\x37\x43\x20\x34\x30\x2e\x34\x33\x35\x33\x20\x2d\
-\x31\x37\x2e\x30\x36\x33\x37\x20\x34\x37\x2e\x31\x37\x36\x32\x20\
-\x2d\x32\x33\x2e\x38\x30\x34\x37\x20\x34\x37\x2e\x31\x37\x36\x32\
-\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\
+\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\
+\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\xa2\
\x3c\
\x3f\x78\x6d\x6c\x20\x76\x65\x72\x73\x69\x6f\x6e\x3d\x27\x31\x2e\
@@ -2377,6 +1977,406 @@ qt_resource_data = b"\
\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\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\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\
+\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\
+\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\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\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\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\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\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\x02\xf7\
+\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\x31\x37\x2e\x34\
+\x2c\x32\x32\x34\x48\x32\x38\x38\x56\x39\x34\x2e\x36\x63\x30\x2d\
+\x31\x36\x2e\x39\x2d\x31\x34\x2e\x33\x2d\x33\x30\x2e\x36\x2d\x33\
+\x32\x2d\x33\x30\x2e\x36\x63\x2d\x31\x37\x2e\x37\x2c\x30\x2d\x33\
+\x32\x2c\x31\x33\x2e\x37\x2d\x33\x32\x2c\x33\x30\x2e\x36\x56\x32\
+\x32\x34\x48\x39\x34\x2e\x36\x43\x37\x37\x2e\x37\x2c\x32\x32\x34\
+\x2c\x36\x34\x2c\x32\x33\x38\x2e\x33\x2c\x36\x34\x2c\x32\x35\x36\
+\x0d\x0a\x09\x63\x30\x2c\x31\x37\x2e\x37\x2c\x31\x33\x2e\x37\x2c\
+\x33\x32\x2c\x33\x30\x2e\x36\x2c\x33\x32\x48\x32\x32\x34\x76\x31\
+\x32\x39\x2e\x34\x63\x30\x2c\x31\x36\x2e\x39\x2c\x31\x34\x2e\x33\
+\x2c\x33\x30\x2e\x36\x2c\x33\x32\x2c\x33\x30\x2e\x36\x63\x31\x37\
+\x2e\x37\x2c\x30\x2c\x33\x32\x2d\x31\x33\x2e\x37\x2c\x33\x32\x2d\
+\x33\x30\x2e\x36\x56\x32\x38\x38\x68\x31\x32\x39\x2e\x34\x63\x31\
+\x36\x2e\x39\x2c\x30\x2c\x33\x30\x2e\x36\x2d\x31\x34\x2e\x33\x2c\
+\x33\x30\x2e\x36\x2d\x33\x32\x0d\x0a\x09\x43\x34\x34\x38\x2c\x32\
+\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\
"
qt_resource_name = b"\
@@ -2384,56 +2384,52 @@ qt_resource_name = b"\
\x00\x6f\xa6\x53\
\x00\x69\
\x00\x63\x00\x6f\x00\x6e\x00\x73\
-\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\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\x0a\
-\x0f\x68\x53\xe7\
+\x00\x10\
+\x0c\x57\x65\x47\
\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\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\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\x1c\
+\x04\x66\xe1\x67\
\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\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\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\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\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\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\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\x11\
+\x0c\xdb\x38\xe7\
\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\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\
+\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\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\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\x12\
\x08\x55\xef\xc7\
\x00\x61\
@@ -2443,176 +2439,180 @@ qt_resource_name = b"\
\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\x19\
+\x0a\x43\x45\xc7\
\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\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\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\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\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\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\
-\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\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\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\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\x0a\
+\x0f\x68\x53\xe7\
\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\x15\
-\x0f\xc4\x59\xe7\
+\x00\x6e\x00\x63\x00\x68\x00\x6f\x00\x72\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\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\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\x08\
+\x08\xc8\x55\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\x61\x00\x76\x00\x65\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\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\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\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\x07\
+\x0c\xf8\x5a\x07\
+\x00\x65\
+\x00\x79\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\x68\x00\x61\x00\x6e\x00\x64\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\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\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\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\x08\
+\x0c\xf7\x55\x87\
+\x00\x74\
+\x00\x65\x00\x78\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\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\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\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\x09\
+\x0b\x9e\x89\x07\
+\x00\x63\
+\x00\x68\x00\x65\x00\x63\x00\x6b\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\
"
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\x04\x42\x00\x00\x00\x00\x00\x01\x00\x00\x5e\xa0\
+\x00\x00\x00\xe8\x00\x00\x00\x00\x00\x01\x00\x00\x0e\xf7\
+\x00\x00\x02\x80\x00\x00\x00\x00\x00\x01\x00\x00\x38\x63\
+\x00\x00\x05\xbe\x00\x00\x00\x00\x00\x01\x00\x00\x80\xc1\
+\x00\x00\x00\x6e\x00\x00\x00\x00\x00\x01\x00\x00\x07\xae\
+\x00\x00\x05\x98\x00\x01\x00\x00\x00\x01\x00\x00\x7e\x9c\
+\x00\x00\x01\x66\x00\x00\x00\x00\x00\x01\x00\x00\x22\x06\
+\x00\x00\x01\xe4\x00\x00\x00\x00\x00\x01\x00\x00\x2b\x0c\
+\x00\x00\x05\x10\x00\x00\x00\x00\x00\x01\x00\x00\x71\xc4\
+\x00\x00\x01\x02\x00\x00\x00\x00\x00\x01\x00\x00\x14\xcf\
+\x00\x00\x03\x60\x00\x00\x00\x00\x00\x01\x00\x00\x49\xc6\
+\x00\x00\x02\xfc\x00\x00\x00\x00\x00\x01\x00\x00\x41\xaa\
+\x00\x00\x01\x40\x00\x00\x00\x00\x00\x01\x00\x00\x1c\x38\
+\x00\x00\x03\x82\x00\x00\x00\x00\x00\x01\x00\x00\x4c\x93\
+\x00\x00\x04\xec\x00\x00\x00\x00\x00\x01\x00\x00\x6d\x83\
+\x00\x00\x02\xb2\x00\x00\x00\x00\x00\x01\x00\x00\x3a\xe4\
+\x00\x00\x01\xba\x00\x00\x00\x00\x00\x01\x00\x00\x28\x66\
+\x00\x00\x01\x90\x00\x00\x00\x00\x00\x01\x00\x00\x25\x40\
+\x00\x00\x04\x1c\x00\x00\x00\x00\x00\x01\x00\x00\x5a\x80\
+\x00\x00\x04\xae\x00\x00\x00\x00\x00\x01\x00\x00\x6a\x83\
+\x00\x00\x03\xdc\x00\x00\x00\x00\x00\x01\x00\x00\x53\x73\
+\x00\x00\x02\x5a\x00\x00\x00\x00\x00\x01\x00\x00\x35\xe6\
+\x00\x00\x03\x30\x00\x01\x00\x00\x00\x01\x00\x00\x46\x78\
+\x00\x00\x05\x46\x00\x00\x00\x00\x00\x01\x00\x00\x77\x8a\
+\x00\x00\x03\xc2\x00\x00\x00\x00\x00\x01\x00\x00\x50\x7d\
+\x00\x00\x02\x08\x00\x00\x00\x00\x00\x01\x00\x00\x2f\xe5\
+\x00\x00\x02\x40\x00\x00\x00\x00\x00\x01\x00\x00\x32\x66\
+\x00\x00\x02\xe6\x00\x00\x00\x00\x00\x01\x00\x00\x3e\x3a\
+\x00\x00\x05\xea\x00\x00\x00\x00\x00\x01\x00\x00\x83\xeb\
\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\x03\xf2\x00\x00\x00\x00\x00\x01\x00\x00\x56\x18\
+\x00\x00\x06\x02\x00\x00\x00\x00\x00\x01\x00\x00\x86\xfb\
+\x00\x00\x01\x18\x00\x00\x00\x00\x00\x01\x00\x00\x19\x7d\
+\x00\x00\x05\x30\x00\x00\x00\x00\x00\x01\x00\x00\x76\x6a\
+\x00\x00\x04\x9a\x00\x00\x00\x00\x00\x01\x00\x00\x66\x94\
+\x00\x00\x00\xac\x00\x00\x00\x00\x00\x01\x00\x00\x0b\xa7\
+\x00\x00\x03\x46\x00\x00\x00\x00\x00\x01\x00\x00\x48\x59\
+\x00\x00\x05\x6a\x00\x00\x00\x00\x00\x01\x00\x00\x7a\xd4\
+\x00\x00\x04\x6a\x00\x00\x00\x00\x00\x01\x00\x00\x66\x24\
+\x00\x00\x06\x2a\x00\x00\x00\x00\x00\x01\x00\x00\x8b\x4d\
+\x00\x00\x00\x36\x00\x00\x00\x00\x00\x01\x00\x00\x02\x83\
"
qt_resource_struct_v2 = b"\
@@ -2620,88 +2620,88 @@ qt_resource_struct_v2 = b"\
\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\x04\x42\x00\x00\x00\x00\x00\x01\x00\x00\x5e\xa0\
+\x00\x00\x01\x73\x27\xf0\x83\x5a\
+\x00\x00\x00\xe8\x00\x00\x00\x00\x00\x01\x00\x00\x0e\xf7\
+\x00\x00\x01\x73\x27\xf0\x83\x59\
+\x00\x00\x02\x80\x00\x00\x00\x00\x00\x01\x00\x00\x38\x63\
+\x00\x00\x01\x73\x27\xf0\x83\x58\
+\x00\x00\x05\xbe\x00\x00\x00\x00\x00\x01\x00\x00\x80\xc1\
+\x00\x00\x01\x73\x27\xf0\x83\x59\
+\x00\x00\x00\x6e\x00\x00\x00\x00\x00\x01\x00\x00\x07\xae\
+\x00\x00\x01\x73\x27\xf0\x83\x59\
+\x00\x00\x05\x98\x00\x01\x00\x00\x00\x01\x00\x00\x7e\x9c\
+\x00\x00\x01\x73\x27\xf0\x83\x59\
+\x00\x00\x01\x66\x00\x00\x00\x00\x00\x01\x00\x00\x22\x06\
+\x00\x00\x01\x73\x27\xf0\x83\x59\
+\x00\x00\x01\xe4\x00\x00\x00\x00\x00\x01\x00\x00\x2b\x0c\
+\x00\x00\x01\x73\x27\xf0\x83\x59\
+\x00\x00\x05\x10\x00\x00\x00\x00\x00\x01\x00\x00\x71\xc4\
+\x00\x00\x01\x73\x27\xf0\x83\x5a\
+\x00\x00\x01\x02\x00\x00\x00\x00\x00\x01\x00\x00\x14\xcf\
+\x00\x00\x01\x73\x27\xf0\x83\x59\
+\x00\x00\x03\x60\x00\x00\x00\x00\x00\x01\x00\x00\x49\xc6\
+\x00\x00\x01\x73\x27\xf0\x83\x59\
+\x00\x00\x02\xfc\x00\x00\x00\x00\x00\x01\x00\x00\x41\xaa\
+\x00\x00\x01\x73\x27\xf0\x83\x5a\
+\x00\x00\x01\x40\x00\x00\x00\x00\x00\x01\x00\x00\x1c\x38\
+\x00\x00\x01\x73\x27\xf0\x83\x59\
+\x00\x00\x03\x82\x00\x00\x00\x00\x00\x01\x00\x00\x4c\x93\
+\x00\x00\x01\x73\x27\xf0\x83\x59\
+\x00\x00\x04\xec\x00\x00\x00\x00\x00\x01\x00\x00\x6d\x83\
+\x00\x00\x01\x73\x27\xf0\x83\x5a\
+\x00\x00\x02\xb2\x00\x00\x00\x00\x00\x01\x00\x00\x3a\xe4\
+\x00\x00\x01\x73\x27\xf0\x83\x59\
+\x00\x00\x01\xba\x00\x00\x00\x00\x00\x01\x00\x00\x28\x66\
+\x00\x00\x01\x73\x27\xf0\x83\x59\
+\x00\x00\x01\x90\x00\x00\x00\x00\x00\x01\x00\x00\x25\x40\
+\x00\x00\x01\x73\x27\xf0\x83\x58\
+\x00\x00\x04\x1c\x00\x00\x00\x00\x00\x01\x00\x00\x5a\x80\
+\x00\x00\x01\x73\x27\xf0\x83\x59\
+\x00\x00\x04\xae\x00\x00\x00\x00\x00\x01\x00\x00\x6a\x83\
+\x00\x00\x01\x73\x27\xf0\x83\x59\
+\x00\x00\x03\xdc\x00\x00\x00\x00\x00\x01\x00\x00\x53\x73\
+\x00\x00\x01\x73\x27\xf0\x83\x5a\
+\x00\x00\x02\x5a\x00\x00\x00\x00\x00\x01\x00\x00\x35\xe6\
+\x00\x00\x01\x73\x27\xf0\x83\x59\
+\x00\x00\x03\x30\x00\x01\x00\x00\x00\x01\x00\x00\x46\x78\
+\x00\x00\x01\x73\x27\xf0\x83\x59\
+\x00\x00\x05\x46\x00\x00\x00\x00\x00\x01\x00\x00\x77\x8a\
+\x00\x00\x01\x73\x27\xf0\x83\x59\
+\x00\x00\x03\xc2\x00\x00\x00\x00\x00\x01\x00\x00\x50\x7d\
+\x00\x00\x01\x73\x27\xf0\x83\x59\
+\x00\x00\x02\x08\x00\x00\x00\x00\x00\x01\x00\x00\x2f\xe5\
+\x00\x00\x01\x73\x27\xf0\x83\x58\
+\x00\x00\x02\x40\x00\x00\x00\x00\x00\x01\x00\x00\x32\x66\
+\x00\x00\x01\x73\x27\xf0\x83\x59\
+\x00\x00\x02\xe6\x00\x00\x00\x00\x00\x01\x00\x00\x3e\x3a\
+\x00\x00\x01\x73\x27\xf0\x83\x59\
+\x00\x00\x05\xea\x00\x00\x00\x00\x00\x01\x00\x00\x83\xeb\
+\x00\x00\x01\x73\x27\xf0\x83\x59\
\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\x73\x27\xf0\x83\x59\
+\x00\x00\x03\xf2\x00\x00\x00\x00\x00\x01\x00\x00\x56\x18\
+\x00\x00\x01\x73\x27\xf0\x83\x59\
+\x00\x00\x06\x02\x00\x00\x00\x00\x00\x01\x00\x00\x86\xfb\
+\x00\x00\x01\x73\x27\xf0\x83\x59\
+\x00\x00\x01\x18\x00\x00\x00\x00\x00\x01\x00\x00\x19\x7d\
+\x00\x00\x01\x73\x27\xf0\x83\x58\
+\x00\x00\x05\x30\x00\x00\x00\x00\x00\x01\x00\x00\x76\x6a\
+\x00\x00\x01\x73\x27\xf0\x83\x5a\
+\x00\x00\x04\x9a\x00\x00\x00\x00\x00\x01\x00\x00\x66\x94\
+\x00\x00\x01\x73\x27\xf0\x83\x59\
+\x00\x00\x00\xac\x00\x00\x00\x00\x00\x01\x00\x00\x0b\xa7\
+\x00\x00\x01\x73\x27\xf0\x83\x59\
+\x00\x00\x03\x46\x00\x00\x00\x00\x00\x01\x00\x00\x48\x59\
+\x00\x00\x01\x73\x27\xf0\x83\x58\
+\x00\x00\x05\x6a\x00\x00\x00\x00\x00\x01\x00\x00\x7a\xd4\
+\x00\x00\x01\x73\x27\xf0\x83\x59\
+\x00\x00\x04\x6a\x00\x00\x00\x00\x00\x01\x00\x00\x66\x24\
+\x00\x00\x01\x73\x27\xf0\x83\x5a\
+\x00\x00\x06\x2a\x00\x00\x00\x00\x00\x01\x00\x00\x8b\x4d\
+\x00\x00\x01\x73\x27\xf0\x83\x5a\
+\x00\x00\x00\x36\x00\x00\x00\x00\x00\x01\x00\x00\x02\x83\
+\x00\x00\x01\x73\x27\xf0\x83\x59\
"
qt_version = [int(v) for v in QtCore.qVersion().split('.')]
diff --git a/graphics/asymptote/GUI/xasy2asy.py b/graphics/asymptote/GUI/xasy2asy.py
index 4b2d0274f7..b0486d07ad 100644
--- a/graphics/asymptote/GUI/xasy2asy.py
+++ b/graphics/asymptote/GUI/xasy2asy.py
@@ -716,7 +716,7 @@ class xasyItem(Qc.QObject):
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 @@ class xasyItem(Qc.QObject):
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))
diff --git a/graphics/asymptote/Makefile.in b/graphics/asymptote/Makefile.in
index 6488ca9b33..c15dd791f1 100644
--- a/graphics/asymptote/Makefile.in
+++ b/graphics/asymptote/Makefile.in
@@ -356,7 +356,7 @@ check-all: asy FORCE
./wce
$(MAKE) -C tests all
-glew.o: glew.c GL/glew.h
+glew.o: glew.c GL/glew.h GL/glew.c config.h
$(CC) -I. $(GLEWOPTS) -o glew.o -c glew.c
.SUFFIXES: .c .cc .o .d .ui .py
diff --git a/graphics/asymptote/ReleaseNotes b/graphics/asymptote/ReleaseNotes
index 0874938712..27f1cc94b8 100644
--- a/graphics/asymptote/ReleaseNotes
+++ b/graphics/asymptote/ReleaseNotes
@@ -1,3 +1,25 @@
+Release Notes for Version 2.66
+
+A bug in the Bezier patch bounds was fixed. Vertex and material data are
+copied from the CPU to GPU only when necessary. The default Headlamp light
+was brightened. WebGL output is centered in the viewport, extending to the
+canvas boundary; the precision of planar Bezier surfaces was increased
+to avoid artifacts. Fullscreen mode has been fixed; the new default
+maxviewport=(0,0) specifies the screen dimensions. Camera adjustment was fixed.
+Problems with Xasy and interactive signals under MSWindows were fixed.
+A background color for both 2D and 3D images can be specified with
+currentlight.background. Offscreen rendering on headless machines has been
+reinstated; while the setting offscreen has been removed, one can again
+configure asy for either onscreen or offscreen rendering. Clipping was removed from the slopefield module. Functions mapArray, mapTemplate, real abs2(pair),
+and real abs2(triple) were implemented. The new Ghostscript transparency model
+requires Ghostscript 9.52 or later. The detection of TeX errors was improved.
+An array segmentation fault was fixed; array dimensions are checked.
+Flattened monochrome tensor patches with interior internal control points are
+now drawn as filled cyclic paths. PDF offsets were fixed, along with the
+auto-reload feature for Acroread. SVG support was improved; 2D images can now
+be output in HTML format using inline SVG code, to support the
+Asymptote Web Application, a new cloud service at http://asymptote.ualberta.ca.
+
Release Notes for Version 2.65
A bug in rendering 2D preview images of a 3D scene was fixed.
diff --git a/graphics/asymptote/array.cc b/graphics/asymptote/array.cc
index 58c4371064..311e0cf822 100644
--- a/graphics/asymptote/array.cc
+++ b/graphics/asymptote/array.cc
@@ -10,6 +10,8 @@
namespace vm {
+const char *dereferenceNullArray="dereference of null array";
+
inline void checkBackSlice(Int left, Int right)
{
if (right < left)
@@ -156,10 +158,11 @@ void array::setSlice(Int left, Int right, array *a)
item copyItemToDepth(item i, size_t depth)
{
- if (depth == 0)
+ if(depth == 0)
return i;
- else
- return get<array *>(i)->copyToDepth(depth);
+ array* a=get<array*>(i);
+ if(a == 0) vm::error(dereferenceNullArray);
+ return a->copyToDepth(depth);
}
array *array::copyToDepth(size_t depth)
diff --git a/graphics/asymptote/array.h b/graphics/asymptote/array.h
index 58a97d7b25..cc39141768 100644
--- a/graphics/asymptote/array.h
+++ b/graphics/asymptote/array.h
@@ -14,6 +14,8 @@
namespace vm {
+extern const char *dereferenceNullArray;
+
// Arrays are vectors with push and pop functions.
class array : public mem::vector<item> {
bool cycle;
@@ -75,7 +77,7 @@ inline T read(const array &a, size_t i)
inline size_t checkArray(const vm::array *a)
{
- if(a == 0) vm::error("dereference of null array");
+ if(a == 0) vm::error(dereferenceNullArray);
return a->size();
}
diff --git a/graphics/asymptote/asy-keywords.el b/graphics/asymptote/asy-keywords.el
index ff2d1e952d..5cbcecfc8a 100644
--- a/graphics/asymptote/asy-keywords.el
+++ b/graphics/asymptote/asy-keywords.el
@@ -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.66")
(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 @@ and controls tension atleast curl if else while for do return break continue str
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 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 drawVertexBoxX 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 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 secondaryX 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 drawVertexBoxX 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 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 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 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 secondaryX 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 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 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 duplicateFuzz 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 signedtrailingzero 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 ))
diff --git a/graphics/asymptote/asy.list b/graphics/asymptote/asy.list
index f22515923f..0e801ac600 100644
--- a/graphics/asymptote/asy.list
+++ b/graphics/asymptote/asy.list
@@ -93,6 +93,8 @@ pair N;
bool view();
void usersetting();
pair S;
+real abs2(pair z);
+real abs2(triple v);
void nowarn(string s);
transform rotate(real angle, pair z=<default>);
int quotient(int x, int y);
@@ -383,10 +385,8 @@ bool EndArcArrow(picture, path, pen, marginT(path, pen));
bool EndArcArrow(picture, path, pen, marginT(path, pen))(arrowhead arrowhead=<default>, real size=<default>, real angle=<default>, filltype filltype=<default>, position position=<default>);
void tensorshade(frame f, path[] g, bool stroke=<default>, pen fillrule=<default>, pen[][] p, path[] b=<default>, pair[][] z=<default>, bool copy=<default>);
void tensorshade(picture pic=<default>, path[] g, bool stroke=<default>, pen fillrule=<default>, pen[][] p, path[] b=<default>, pair[][] z=<default>, bool copy=<default>);
-void tensorshade(frame f, path[] g, bool stroke=<default>, pen fillrule=<default>, pen[] p, path b=<default>, pair[] z);
-void tensorshade(picture pic=<default>, path[] g, bool stroke=<default>, pen fillrule=<default>, pen[] p, path b=<default>, pair[] z);
-void tensorshade(frame f, path[] g, bool stroke=<default>, pen fillrule=<default>, pen[] p, path b=<default>);
-void tensorshade(picture pic=<default>, path[] g, bool stroke=<default>, pen fillrule=<default>, pen[] p, path b=<default>);
+void tensorshade(frame f, path[] g, bool stroke=<default>, pen fillrule=<default>, pen[] p, path b=<default>, pair[] z=<default>);
+void tensorshade(picture pic=<default>, path[] g, bool stroke=<default>, pen fillrule=<default>, pen[] p, path b=<default>, pair[] z=<default>);
string[] split(string s, string delimiter=<default>);
void addSaveFunction(void s()());
object embed3(string, frame, string, string, string, light, projection);
@@ -731,7 +731,7 @@ pair sqrt(explicit pair z);
string[] spinner;
real[] times(path p, real x);
real[] times(path p, explicit pair z);
-void drawbeziertriangle(frame f, triple[][] p, triple center, bool straight, pen[] p, real opacity, real shininess, real metallic, real fresnel0, pen[] colors, int interaction, bool primitive=<default>);
+void drawbeziertriangle(frame f, triple[][] p, triple center, bool straight, pen[] p, real opacity, real shininess, real metallic, real fresnel0, pen[] colors, int interaction, int digits, bool primitive=<default>);
void Draw(picture pic=<default>, path g, pen p=<default>);
filltype Draw;
void Draw(picture pic=<default>, explicit path[] g, pen p=<default>);
@@ -805,7 +805,7 @@ real inf;
real arctime(path p, real l);
real arctime(path3 p, real dval);
pen palemagenta;
-void draw(frame f, triple[][] p, triple center, bool straight, pen[] p, real opacity, real shininess, real metallic, real fresnel0, pen[] colors, int interaction, bool primitive=<default>);
+void draw(frame f, triple[][] p, triple center, bool straight, pen[] p, real opacity, real shininess, real metallic, real fresnel0, pen[] colors, int interaction, int digits, bool primitive=<default>);
void draw(frame f, triple[] p, real[] knot, real[] weights=<default>, pen p);
void draw(frame f, triple[][] p, real[] uknot, real[] vknot, real[][] weights=<default>, pen[] p, real opacity, real shininess, real metallic, real fresnel0, pen[] colors);
void draw(frame f, triple[] v, int[][] vi, triple[] n, int[][] ni, pen[] p, real opacity, real shininess, real metallic, real fresnel0, pen[] c=<default>, int[][] ci=<default>);
@@ -989,13 +989,13 @@ bool alias(string[][] a, string[][] b);
bool alias(slice a, slice b);
bool alias(freezableBounds a, freezableBounds b);
bool alias(transformation a, transformation b);
-bool alias(scaleT a, scaleT b);
+bool alias(autoscaleT a, autoscaleT b);
bool alias(object[] a, object[] b);
bool alias(marker a, marker b);
bool alias(real[][] a, real[][] b);
bool alias(bool3 a, bool3 b);
bool alias(bool3[] a, bool3[] b);
-bool alias(autoscaleT a, autoscaleT b);
+bool alias(scaleT a, scaleT b);
bool alias(ScaleT a, ScaleT b);
bool alias(side a, side b);
bool alias(cputime a, cputime b);
@@ -1400,7 +1400,7 @@ projection operator init();
arrowhead operator init();
slice operator init();
transformation operator init();
-scaleT operator init();
+autoscaleT operator init();
marker operator init();
hsv operator init();
coords2 operator init();
@@ -1419,7 +1419,7 @@ bounds operator init();
Legend operator init();
position operator init();
bool3 operator init();
-autoscaleT operator init();
+scaleT operator init();
ScaleT operator init();
side operator init();
cputime operator init();
@@ -1595,7 +1595,7 @@ bool operator ==(file a, file b);
bool operator ==(path a, path b);
bool operator ==(path3 a, path3 b);
bool operator ==(bool3 a, bool3 b);
-bool operator ==(autoscaleT a, autoscaleT b);
+bool operator ==(scaleT a, scaleT b);
bool operator ==(ScaleT a, ScaleT b);
bool operator ==(side a, side b);
bool operator ==(cputime a, cputime b);
@@ -1628,7 +1628,7 @@ bool operator ==(bool a, bool3 b);
bool operator ==(slice a, slice b);
bool operator ==(freezableBounds a, freezableBounds b);
bool operator ==(transformation a, transformation b);
-bool operator ==(scaleT a, scaleT b);
+bool operator ==(autoscaleT a, autoscaleT b);
bool operator ==(marker a, marker b);
bool operator !=(bool a, bool b);
bool[] operator !=(bool a, bool[] b);
@@ -1667,7 +1667,7 @@ bool operator !=(file a, file b);
bool operator !=(path a, path b);
bool operator !=(path3 a, path3 b);
bool operator !=(bool3 a, bool3 b);
-bool operator !=(autoscaleT a, autoscaleT b);
+bool operator !=(scaleT a, scaleT b);
bool operator !=(ScaleT a, ScaleT b);
bool operator !=(side a, side b);
bool operator !=(cputime a, cputime b);
@@ -1700,7 +1700,7 @@ bool operator !=(bool a, bool3 b);
bool operator !=(slice a, slice b);
bool operator !=(freezableBounds a, freezableBounds b);
bool operator !=(transformation a, transformation b);
-bool operator !=(scaleT a, scaleT b);
+bool operator !=(autoscaleT a, autoscaleT b);
bool operator !=(marker a, marker b);
bool operator <(int a, int b);
bool[] operator <(int a, int[] b);
@@ -1812,6 +1812,7 @@ real interp(real a, real b, real t);
pair interp(explicit pair a, explicit pair b, real t);
triple interp(triple a, triple b, real t);
pen interp(pen a, pen b, real t);
+void mapArray(string From, string To);
frame Seascape(frame f);
bool interior(int windingnumber, pen fillrule);
real[] intersect(path p, path q, real fuzz=<default>);
@@ -1834,6 +1835,7 @@ pen adjust(pen p, real arclength, bool cyclic);
pair Align;
void exit();
real[] uniform(real a, real b, int n);
+void type(string type, string name);
pair viewportsize;
pair viewportmargin;
string VERSION;
@@ -2557,8 +2559,8 @@ line line(explicit side side);
line complementary(explicit line l);
line[] complementary(explicit segment s);
arc complementary(arc a);
-bool between(point M, point O, point N);
point ppoint(arc a, real x);
+bool between(point M, point O, point N);
path fromFocus(conic co, real angle1, real angle2, int n, bool direction);
bool sameside(point M, point N, point O);
bool sameside(point M, point P, line l);
@@ -3012,8 +3014,8 @@ real ScaleY(picture pic=<default>, real y);
void xaxisAt(picture pic=<default>, Label L=<default>, void axis(picture, axisT), real xmin=<default>, real xmax=<default>, pen p=<default>, void ticks(frame, transform, Label, pair, path, path, pen, bool(picture, path, pen, marginT(path, pen)), marginT(path, pen), ticklocate, int[], bool opposite=<default>)=<default>, bool arrow(picture, path, pen, marginT(path, pen))=<default>, marginT margin(path, pen)=<default>, bool above=<default>, bool opposite=<default>);
void yaxisAt(picture pic=<default>, Label L=<default>, void axis(picture, axisT), real ymin=<default>, real ymax=<default>, pen p=<default>, void ticks(frame, transform, Label, pair, path, path, pen, bool(picture, path, pen, marginT(path, pen)), marginT(path, pen), ticklocate, int[], bool opposite=<default>)=<default>, bool arrow(picture, path, pen, marginT(path, pen))=<default>, marginT margin(path, pen)=<default>, bool above=<default>, bool opposite=<default>);
void xaxis(picture pic=<default>, Label L=<default>, void axis(picture, axisT)=<default>, real xmin=<default>, real xmax=<default>, pen p=<default>, void ticks(frame, transform, Label, pair, path, path, pen, bool(picture, path, pen, marginT(path, pen)), marginT(path, pen), ticklocate, int[], bool opposite=<default>)=<default>, bool arrow(picture, path, pen, marginT(path, pen))=<default>, marginT margin(path, pen)=<default>, bool above=<default>);
-void yaxis(picture pic=<default>, Label L=<default>, void axis(picture, axisT)=<default>, real ymin=<default>, real ymax=<default>, pen p=<default>, void ticks(frame, transform, Label, pair, path, path, pen, bool(picture, path, pen, marginT(path, pen)), marginT(path, pen), ticklocate, int[], bool opposite=<default>)=<default>, bool arrow(picture, path, pen, marginT(path, pen))=<default>, marginT margin(path, pen)=<default>, bool above=<default>, bool autorotate=<default>);
tickvalues generateticks(int sign, Label F=<default>, string ticklabel(real)=<default>, int N, int n=<default>, real Step=<default>, real step=<default>, real Size=<default>, real size=<default>, transform T, pair side, path g, real limit, pen p, ticklocate locate, int[] divisor, bool opposite);
+void yaxis(picture pic=<default>, Label L=<default>, void axis(picture, axisT)=<default>, real ymin=<default>, real ymax=<default>, pen p=<default>, void ticks(frame, transform, Label, pair, path, path, pen, bool(picture, path, pen, marginT(path, pen)), marginT(path, pen), ticklocate, int[], bool opposite=<default>)=<default>, bool arrow(picture, path, pen, marginT(path, pen))=<default>, marginT margin(path, pen)=<default>, bool above=<default>, bool autorotate=<default>);
void checkconditionlength(int x, int y);
real xtrans(transform t, real x);
void Top(picture, axisT)(bool extend=<default>);
@@ -3304,6 +3306,7 @@ real LM_USERTOL;
real LM_DWARF;
void lm_print_quiet(int n_par, real[] par, int m_dat, real[] fvec, lm_data_type data, int iflag, int iter, int nfev);
void lm_print_default(int n_par, real[] par, int m_dat, real[] fvec, lm_data_type data, int iflag, int iter, int nfev);
+void mapTemplate(string name, string key, string value, string default);
real barmarksize(pen p=<default>);
real barmarksizefactor;
marker CrossIntervalMarker(int i=<default>, int n=<default>, real size=<default>, real space=<default>, real angle=<default>, pair offset=<default>, bool rotated=<default>, pen p=<default>, frame uniform=<default>, bool above=<default>);
@@ -3398,9 +3401,9 @@ real stepfactor;
RKTableau RK4;
real[] newton(int iterations=<default>, real[] f(real[]), real[][] jacobian(real[]), real[] t);
real phi1(real x);
+RKTableau RK3;
solution integrate(real y, real c=<default>, real f(real t, real y), real a, real b=<default>, real h=<default>, int n=<default>, bool dynamic=<default>, real tolmin=<default>, real tolmax=<default>, real dtmin=<default>, real dtmax=<default>, RKTableau tableau, bool verbose=<default>);
Solution integrate(real[] y, real[] f(real t, real[] y), real a, real b=<default>, real h=<default>, int n=<default>, bool dynamic=<default>, real tolmin=<default>, real tolmax=<default>, real dtmin=<default>, real dtmax=<default>, RKTableau tableau, bool verbose=<default>);
-RKTableau RK3;
void expfactors(real x, coefficients a);
real phi2(real x);
void report(real old, real h, real t);
@@ -3424,7 +3427,6 @@ real[] Coeff;
RKTableau PC;
RKTableau E_RK3BS;
pen[] Grayscale(int NColors=<default>);
-bounds Range(picture pic, real min, real max)(bool automin=<default>, real min=<default>, bool automax=<default>, real max=<default>);
pen[] Wheel(int NColors=<default>);
void image(frame f, real[][] data, pair initial, pair final, pen[] palette, bool transpose=<default>, transform t=<default>, bool copy=<default>, bool antialias=<default>);
void image(frame f, pen[][] data, pair initial, pair final, bool transpose=<default>, transform t=<default>, bool copy=<default>, bool antialias=<default>);
@@ -3435,6 +3437,7 @@ void image(picture pic=<default>, pen f(int, int), int width, int height, pair i
bounds image(picture pic=<default>, pair[] z, real[] f, bounds range(picture pic, real min, real max)=<default>, pen[] palette);
bounds image(picture pic=<default>, real[] x, real[] y, real[] f, bounds range(picture pic, real min, real max)=<default>, pen[] palette);
pen[] cmyk(pen[] Palette);
+bounds Range(picture pic, real min, real max)(bool automin=<default>, real min=<default>, bool automax=<default>, real max=<default>);
pen[] BWRainbow(int NColors, bool two);
pen[] BWRainbow(int NColors=<default>);
pen[] BWRainbow2(int NColors=<default>);
@@ -3461,8 +3464,8 @@ void add(string name, picture pic, pair lb=<default>, pair rt=<default>);
frame tiling(string name, picture pic, pair lb=<default>, pair rt=<default>);
picture tile(real Hx=<default>, real Hy=<default>, pen p=<default>, filltype filltype=<default>);
void grestore(picture pic=<default>);
-pen textpen;
void gsave(picture pic=<default>);
+pen textpen;
pair align;
rational[][] rationalidentity(int n);
int gcd(int m, int n);
@@ -3516,28 +3519,28 @@ void display(frame f, real margin=<default>, pair align=<default>, pen p=<defaul
void display(string[] s, real margin=<default>, string[] captions=<default>, string caption=<default>, pair align=<default>, pen p=<default>, pen figuremattpen=<default>, bool final=<default>);
void display(string s, string caption=<default>, pair align=<default>, pen p=<default>, pen figuremattpen=<default>, bool final=<default>);
void multifigure(string[] slist, string options=<default>, string caption=<default>, pair align=<default>, pen p=<default>, pen figuremattpen=<default>, bool step=<default>);
-int page;
void subitem(string s, pen p=<default>);
pen pagenumberpen;
pair pagenumberalign;
pair pagenumberposition;
void indexedfigure(string prefix, int first, int last, string options=<default>, string caption=<default>, pair align=<default>, pen p=<default>, pen figuremattpen=<default>, bool step=<default>);
string texcolor(pen p);
+int page;
void color(string name, string color);
pen foregroundcolor;
void bibliography(string name);
void bibliographystyle(string name);
int[] lastnode;
real aboveequationskip;
-void nextpage(pen p=<default>);
void asyfigure(string s, string options=<default>, string caption=<default>, pair align=<default>, pen p=<default>, pen figuremattpen=<default>, filltype filltype=<default>, bool newslide=<default>);
void asyfilecode(bool center=<default>, string s, string options=<default>, string caption=<default>, pair align=<default>, pen p=<default>, pen figuremattpen=<default>, real indent=<default>, real skip=<default>, filltype filltype=<default>, bool newslide=<default>);
bool itemstep;
real itemskip;
void remark(bool center=<default>, string s, pair align=<default>, pen p=<default>, real indent=<default>, bool minipage=<default>, real skip=<default>, filltype filltype=<default>, bool step=<default>);
-void filecode(bool center=<default>, string s, pen p=<default>, real indent=<default>, real skip=<default>, filltype filltype=<default>);
void usersetting();
bool landscape;
+void nextpage(pen p=<default>);
+void filecode(bool center=<default>, string s, pen p=<default>, real indent=<default>, real skip=<default>, filltype filltype=<default>);
real codeskip;
void newslide(bool stepping=<default>);
pen itempen;
@@ -3547,7 +3550,6 @@ void vbox(string s, pen p=<default>);
void asycode(bool center=<default>, string s, string options=<default>, string caption=<default>, string preamble=<default>, pair align=<default>, pen p=<default>, pen figuremattpen=<default>, real indent=<default>, real skip=<default>, filltype filltype=<default>, bool newslide=<default>);
void exitfunction();
bool havepagenumber;
-void item(string s, pen p=<default>, bool step=<default>);
real pageheight;
real pagewidth;
picture background;
@@ -3555,7 +3557,6 @@ void background();
pen backgroundcolor;
void normalvideo();
void title(string s, pair position=<default>, pair align=<default>, pen p=<default>, bool newslide=<default>);
-pen authorpen;
pen titlepen;
real titleskip;
pair dateskip;
@@ -3565,23 +3566,25 @@ void titlepage(string title, string author, string institution=<default>, string
pair titlepageposition;
pen codepen;
void erasestep(int erasenode);
-string cropcode(string s);
+void item(string s, pen p=<default>, bool step=<default>);
bool checkposition();
void setpens(pen red=<default>, pen blue=<default>, pen steppen=<default>);
void code(bool center=<default>, string s, pen p=<default>, real indent=<default>, real skip=<default>, filltype filltype=<default>);
transform tinv;
pair urlskip;
void numberpage(pen p=<default>);
-bool allowstepping;
-pair currentposition;
+pen authorpen;
pen urlpen;
int[] firstnode;
bool firststep;
+string cropcode(string s);
string asywrite(string s, string preamble=<default>);
pair startposition;
string oldbulletcolor;
string newbulletcolor;
pen datepen;
+bool allowstepping;
+pair currentposition;
void incrementposition(pair z);
pen institutionpen;
void skip(real n=<default>);
@@ -3611,9 +3614,10 @@ path curve(pair c, real f(real, real), pair a, pair b);
path curve(pair c, real f(real), pair a, pair b);
picture slopefield(real f(real, real), pair a, pair b, int nx=<default>, int ny=<default>, real tickfactor=<default>, pen p=<default>, bool arrow(picture, path, pen, marginT(path, pen))=<default>);
picture slopefield(real f(real), pair a, pair b, int nx=<default>, int ny=<default>, pen p=<default>, bool arrow(picture, path, pen, marginT(path, pen))=<default>);
-real B03(real t);
+int NULL_VERTEX;
patch[] maketriangle(path3 external, real f(triple), triple grad(triple), bool allowsubdivide=<default>);
real B23(real t);
+real B03(real t);
path3 pathinface(positionedvector v1, positionedvector v2, triple facenorm, triple edge1normout, triple edge2normout);
path3 pathinface(positionedvector v1, positionedvector v2, int face, int edge1face, int edge2face);
path3 bisector(path3 edgecycle, int[] savevertices);
@@ -3633,9 +3637,6 @@ triple normalout(int face);
patch[] quadpatches(path3 edgecycle, positionedvector[] corners, real f(triple), triple grad(triple), triple a, triple b, bool usetriangles);
int[] makecircle(edge[] edges);
real B13(real t);
-bool check_fpt_zero(triple testpoint, real f(triple), triple grad(triple));
-bool checkptincube(triple pt, triple a, triple b);
-bool checkpt(triple testpt, real f(triple), triple grad(triple), triple a, triple b);
int XLOW;
int YLOW;
int ZLOW;
@@ -3652,6 +3653,9 @@ string operator cast(positionedvector vv);
triple operator cast(evaluatedpoint p);
surface implicitsurface(real f(triple)=<default>, real ff(real, real, real)=<default>, triple a, triple b, int n=<default>, bool keyword overlapedges=<default>, int keyword nx=<default>, int keyword ny=<default>, int keyword nz=<default>, int keyword maxdepth=<default>, bool keyword usetriangles=<default>);
bool operator ==(edge a, edge b);
+bool check_fpt_zero(triple testpoint, real f(triple), triple grad(triple));
+bool checkptincube(triple pt, triple a, triple b);
+bool checkpt(triple testpt, real f(triple), triple grad(triple), triple a, triple b);
patch[] triangletoquads(path3 external, real f(triple), triple grad(triple), triple a, triple b);
patch trianglewithnormals(path3 external, triple n1, triple n2, triple n3);
evaluatedpoint[][][] make3dgrid(triple a, triple b, int nx, int ny, int nz, real f(triple), bool allowzero=<default>);
@@ -3660,7 +3664,6 @@ evaluatedpoint[][] slice(evaluatedpoint[][] a, int start1, int end1, int start2,
evaluatedpoint[][][] slice(evaluatedpoint[][][] a, int start1, int end1, int start2, int end2, int start3, int end3);
positionedvector[][] slice(positionedvector[][] a, int start1, int end1, int start2, int end2);
positionedvector[][][] slice(positionedvector[][][] a, int start1, int end1, int start2, int end2, int start3, int end3);
-int NULL_VERTEX;
revolution operator *(real[][] t, revolution r);
skeleton operator init();
revolution operator init();
@@ -3679,9 +3682,9 @@ int[] frequency(real[] data, real a, real b, int n);
int[][] frequency(real[] x, real[] y, real[] xbins, real[] ybins);
int[][] frequency(real[] x, real[] y, pair a, pair b, int nx, int ny=<default>);
int[][] frequency(pair[] z, pair a, pair b, int nx, int ny=<default>);
+real mean(real[] A);
void histogram(picture pic=<default>, real[] bins, real[] count, real low=<default>, pen fillpen=<default>, pen drawpen=<default>, bool bars=<default>, Label legend=<default>, real markersize=<default>);
void histogram(picture pic=<default>, real[] data, real a, real b, int n, bool normalize=<default>, real low=<default>, pen fillpen=<default>, pen drawpen=<default>, bool bars=<default>, Label legend=<default>, real markersize=<default>);
-real mean(real[] A);
int bins(real[] data, int max=<default>);
path topbox(pair a, pair b);
path halfbox(pair a, pair b);
@@ -3689,17 +3692,18 @@ real stdev(real[] A);
real variance(real[] A);
real legendmarkersize;
real variancebiased(real[] A);
+linefit operator init();
+real skewness(real[] A);
+linefit leastsquares(real[] x, real[] y);
real Gaussian(real x, real sigma);
real Gaussian(real x);
pair Gaussrandpair();
real Gaussrand();
-linefit operator init();
-real skewness(real[] A);
-linefit leastsquares(real[] x, real[] y);
real kurtosis(real[] A);
real kurtosisexcess(real[] A);
-Relation r4a;
pair[] endpoints(guide[] a);
+real hwratio;
+Relation r4a;
Relation r3;
picture tableau(frame[] cards, bool number=<default>);
pair min(pair[] z);
@@ -3707,31 +3711,31 @@ Component bp;
Component phi;
real gapfactor;
Component bm;
-Braid apply(Relation r, Braid b, int step, int place);
Relation operator -(Relation r);
Component operator init();
Braid operator init();
Relation operator init();
Syzygy operator init();
+Braid apply(Relation r, Braid b, int step, int place);
Relation r4b;
Component wye;
pair max(pair[] z);
-real hwratio;
-pen WildStrawberry;
pen Orchid;
+pen DarkOrchid;
pen Magenta;
pen BrickRed;
pen CadetBlue;
pen CarnationPink;
+pen WildStrawberry;
pen SpringGreen;
pen MidnightBlue;
pen OliveGreen;
pen Apricot;
-pen Salmon;
pen Cyan;
pen Red;
pen RawSienna;
pen Mahogany;
+pen Salmon;
pen Gray;
pen Plum;
pen BlueGreen;
@@ -3743,8 +3747,6 @@ pen Goldenrod;
pen ForestGreen;
pen BurntOrange;
pen Tan;
-pen Aquamarine;
-pen Lavender;
pen Brown;
pen RubineRed;
pen TealBlue;
@@ -3754,33 +3756,34 @@ pen Bittersweet;
pen Orange;
pen OrangeRed;
pen Fuchsia;
-pen Peach;
+pen Aquamarine;
pen PineGreen;
pen Dandelion;
+pen Lavender;
+pen Peach;
pen Black;
pen NavyBlue;
pen Rhodamine;
-pen YellowOrange;
-pen Maroon;
-pen YellowGreen;
pen ProcessBlue;
pen LimeGreen;
pen Green;
pen GreenYellow;
-pen Sepia;
+pen YellowOrange;
+pen Maroon;
+pen YellowGreen;
pen Emerald;
pen Mulberry;
pen RedViolet;
pen SkyBlue;
pen SeaGreen;
+pen Periwinkle;
+pen Sepia;
pen VioletRed;
pen Violet;
-pen Periwinkle;
-pen Thistle;
pen Yellow;
-pen DarkOrchid;
pen JungleGreen;
pen CornflowerBlue;
+pen Thistle;
pen RoyalBlue;
pen Melon;
pen RoyalPurple;
@@ -3812,34 +3815,32 @@ real degrees(rmf a, rmf b);
string VERSION;
pen Orchid;
pen Indigo;
-pen Seashell;
pen Beige;
+pen DarkOrchid;
pen SlateBlue;
pen SlateGray;
+pen Cornsilk;
pen Magenta;
-pen GhostWhite;
pen CadetBlue;
pen DeepPink;
pen SpringGreen;
pen MidnightBlue;
pen Olive;
+pen Seashell;
pen OliveDrab;
-pen Salmon;
-pen LavenderBlush;
-pen Wheat;
+pen GhostWhite;
pen Chocolate;
pen Cyan;
pen Gainsboro;
pen Ivory;
-pen PeachPuff;
pen PapayaWhip;
pen Red;
pen Pink;
pen MintCream;
pen DarkTurquoise;
-pen Lime;
-pen SteelBlue;
+pen Salmon;
pen Gray;
+pen LavenderBlush;
pen MediumBlue;
pen MediumOrchid;
pen MediumPurple;
@@ -3847,9 +3848,11 @@ pen MediumSeaGreen;
pen MediumSlateBlue;
pen MediumAquamarine;
pen MediumSpringGreen;
+pen Wheat;
pen MediumTurquoise;
pen MediumVioletRed;
pen Plum;
+pen PeachPuff;
pen Blue;
pen Gold;
pen BlueViolet;
@@ -3857,16 +3860,14 @@ pen Goldenrod;
pen ForestGreen;
pen Chartreuse;
pen NavajoWhite;
-pen LemonChiffon;
+pen Lime;
+pen SteelBlue;
pen Tan;
pen DarkMagenta;
pen AntiqueWhite;
-pen Aquamarine;
pen PaleTurquoise;
-pen Aqua;
pen IndianRed;
pen Crimson;
-pen Lavender;
pen Azure;
pen LawnGreen;
pen Brown;
@@ -3876,54 +3877,56 @@ pen DarkBlue;
pen Peru;
pen White;
pen Purple;
+pen LemonChiffon;
pen WhiteSmoke;
pen DimGray;
pen Orange;
pen OrangeRed;
pen Fuchsia;
+pen Aquamarine;
+pen Aqua;
pen Honeydew;
pen Bisque;
+pen Lavender;
pen RosyBrown;
-pen Sienna;
pen Black;
pen Khaki;
pen FireBrick;
pen Snow;
-pen Maroon;
-pen YellowGreen;
pen LimeGreen;
+pen Sienna;
pen OldLace;
-pen DarkOliveGreen;
-pen DarkOrange;
pen Green;
pen GreenYellow;
pen DarkCyan;
+pen Maroon;
pen FloralWhite;
pen DarkRed;
-pen Silver;
+pen YellowGreen;
pen BlanchedAlmond;
pen PowderBlue;
pen DarkGray;
pen DarkGreen;
pen DarkGoldenrod;
+pen DarkOliveGreen;
+pen DarkOrange;
pen SkyBlue;
pen SeaGreen;
pen DarkViolet;
pen Teal;
-pen Violet;
pen AliceBlue;
-pen SandyBrown;
pen HotPink;
pen DodgerBlue;
+pen Silver;
pen SaddleBrown;
pen Tomato;
pen DarkKhaki;
-pen DeepSkyBlue;
-pen Thistle;
pen LightBlue;
+pen Violet;
pen LightCoral;
pen Yellow;
pen LightCyan;
+pen SandyBrown;
pen PaleGreen;
pen Linen;
pen LightGoldenrodYellow;
@@ -3936,15 +3939,15 @@ pen LightSeaGreen;
pen Navy;
pen LightSkyBlue;
pen PaleVioletRed;
-pen DarkOrchid;
-pen Cornsilk;
pen CornflowerBlue;
pen LightSlateGray;
pen LightSteelBlue;
pen rgbint(int r, int g, int b);
pen LightYellow;
pen Coral;
+pen DeepSkyBlue;
pen MistyRose;
+pen Thistle;
pen DarkSalmon;
pen DarkSeaGreen;
pen RoyalBlue;
diff --git a/graphics/asymptote/asymptote.spec b/graphics/asymptote/asymptote.spec
index c481752d32..640de0e46c 100644
--- a/graphics/asymptote/asymptote.spec
+++ b/graphics/asymptote/asymptote.spec
@@ -3,7 +3,7 @@
%global __python %{__python3}
Name: asymptote
-Version: 2.65
+Version: 2.66
Release: 1%{?dist}
Summary: Descriptive vector graphics language
@@ -20,9 +20,11 @@ BuildRequires: gc-devel >= 6.7
BuildRequires: gsl-devel
BuildRequires: glm-devel
BuildRequires: tetex-latex
-BuildRequires: ghostscript >= 9.14
+BuildRequires: ghostscript >= 9.52
+BuildRequires: dvisvgm >= 2.9.1
BuildRequires: texinfo >= 4.7
BuildRequires: ImageMagick
+BuildRequires: libtirpc-devel
Requires: tetex-latex
Requires: freeglut-devel >= 3.0.0
diff --git a/graphics/asymptote/base/map.asy b/graphics/asymptote/base/map.asy
new file mode 100644
index 0000000000..2b2277b956
--- /dev/null
+++ b/graphics/asymptote/base/map.asy
@@ -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);
+}
+
diff --git a/graphics/asymptote/base/plain.asy b/graphics/asymptote/base/plain.asy
index 480780c458..141ccb8d13 100644
--- a/graphics/asymptote/base/plain.asy
+++ b/graphics/asymptote/base/plain.asy
@@ -32,9 +32,9 @@ include plain_filldraw;
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;
@@ -180,6 +180,19 @@ void eval(code s, bool embedded=false)
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()
{
diff --git a/graphics/asymptote/base/plain_picture.asy b/graphics/asymptote/base/plain_picture.asy
index 025e6741cf..c0c189ee69 100644
--- a/graphics/asymptote/base/plain_picture.asy
+++ b/graphics/asymptote/base/plain_picture.asy
@@ -1355,50 +1355,43 @@ void gouraudshade(picture pic=currentpicture, path[] g, bool stroke=false,
}
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) {
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);
}
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);
-}
-
-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)
-{
- tensorshade(pic,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(picture pic=currentpicture, path[] g, bool stroke=false,
pen fillrule=currentpen, pen[] p,
- path b=g.length > 0 ? g[0] : nullpath, pair[] z)
+ path b=nullpath, pair[] z=new pair[])
{
- tensorshade(pic,g,stroke,fillrule,new pen[][] {p},b,new pair[][] {z});
+ tensorshade(pic,g,stroke,fillrule,new pen[][] {p},b,
+ z.length > 0 ? new pair[][] {z} : new pair[][]);
}
// Smoothly shade the regions between consecutive paths of a sequence using a
diff --git a/graphics/asymptote/base/plain_shipout.asy b/graphics/asymptote/base/plain_shipout.asy
index e062a77546..388a03a557 100644
--- a/graphics/asymptote/base/plain_shipout.asy
+++ b/graphics/asymptote/base/plain_shipout.asy
@@ -86,14 +86,10 @@ void shipout(string prefix=defaultfilename, frame f,
}
}
- 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 @@ void shipout(string prefix=defaultfilename, picture pic=currentpicture,
}
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);
diff --git a/graphics/asymptote/base/slopefield.asy b/graphics/asymptote/base/slopefield.asy
index bdbb025267..e87e2cd36f 100644
--- a/graphics/asymptote/base/slopefield.asy
+++ b/graphics/asymptote/base/slopefield.asy
@@ -19,7 +19,6 @@ picture slopefield(real f(real,real), pair a, pair b,
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;
}
diff --git a/graphics/asymptote/base/three.asy b/graphics/asymptote/base/three.asy
index 75f758dd35..7a2b7ece06 100644
--- a/graphics/asymptote/base/three.asy
+++ b/graphics/asymptote/base/three.asy
@@ -2554,25 +2554,6 @@ private string Format(transform3 t, string sep=" ")
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);
@@ -2678,13 +2659,13 @@ struct scene
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;
diff --git a/graphics/asymptote/base/three_light.asy b/graphics/asymptote/base/three_light.asy
index 25db6ad6d2..46b0fef7d0 100644
--- a/graphics/asymptote/base/three_light.asy
+++ b/graphics/asymptote/base/three_light.asy
@@ -125,7 +125,7 @@ light White=light(new pen[] {rgb(0.38,0.38,0.45),rgb(0.6,0.6,0.67),
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;
diff --git a/graphics/asymptote/base/three_surface.asy b/graphics/asymptote/base/three_surface.asy
index 8348d7ac3a..7d64ad22d7 100644
--- a/graphics/asymptote/base/three_surface.asy
+++ b/graphics/asymptote/base/three_surface.asy
@@ -1374,6 +1374,10 @@ void draw3D(frame f, patch s, triple center=O, material m,
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 @@ void draw3D(frame f, patch s, triple center=O, material m,
(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 @@ void tensorshade(transform t=identity(), frame f, patch s,
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};
diff --git a/graphics/asymptote/base/webgl/asygl.js b/graphics/asymptote/base/webgl/asygl.js
index 619986d015..7944fbf1cd 100644
--- a/graphics/asymptote/base/webgl/asygl.js
+++ b/graphics/asymptote/base/webgl/asygl.js
@@ -36,4 +36,4 @@ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
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 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 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.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.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]}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&&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)<this.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[14],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]]}else 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]))<this.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(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)}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.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),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,rotMat,.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.viewport(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.addEventListener("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],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],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,A=r*l-n*h,P=d*p-c*u,T=d*v-m*u,D=d*g-f*u,y=c*v-m*p,R=c*g-f*p,I=m*g-f*v,z=x*I-w*R+M*y+b*D-S*T+A*P;if(!z)return null;return z=1/z,t[0]=(o*I-h*R+l*y)*z,t[1]=(r*R-a*I-n*y)*z,t[2]=(p*A-v*S+g*b)*z,t[3]=(m*S-c*A-f*b)*z,t[4]=(h*D-s*I-l*T)*z,t[5]=(i*I-r*D+n*T)*z,t[6]=(v*M-u*A-g*w)*z,t[7]=(d*A-m*M+f*w)*z,t[8]=(s*R-o*D+l*P)*z,t[9]=(a*D-i*R-n*P)*z,t[10]=(u*S-p*M+g*x)*z,t[11]=(c*M-d*S-f*x)*z,t[12]=(o*T-s*y-h*P)*z,t[13]=(i*y-a*T+r*P)*z,t[14]=(p*w-u*b-v*x)*z,t[15]=(d*b-c*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,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,x=void 0,w=void 0,M=void 0,b=void 0,S=void 0,A=void 0,P=void 0,T=void 0,D=void 0,y=void 0,R=void 0,I=void 0,z=void 0,O=void 0,E=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],x=e[6],w=e[7],M=e[8],b=e[9],S=e[10],A=e[11],P=n*n*c+d,T=s*n*c+o*l,D=o*n*c-s*l,y=n*s*c-o*l,R=s*s*c+d,I=o*s*c+n*l,z=n*o*c+s*l,O=s*o*c-n*l,E=o*o*c+d,t[0]=m*P+v*T+M*D,t[1]=f*P+g*T+b*D,t[2]=u*P+x*T+S*D,t[3]=p*P+w*T+A*D,t[4]=m*y+v*R+M*I,t[5]=f*y+g*R+b*I,t[6]=u*y+x*R+S*I,t[7]=p*y+w*R+A*I,t[8]=m*z+v*O+M*E,t[9]=f*z+g*O+b*E,t[10]=u*z+x*O+S*E,t[11]=p*z+w*O+A*E,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],x=e[15],w=i[0],M=i[1],b=i[2],S=i[3];return t[0]=w*a+M*o+b*c+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*d+b*u+S*x,w=i[4],M=i[5],b=i[6],S=i[7],t[4]=w*a+M*o+b*c+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*d+b*u+S*x,w=i[8],M=i[9],b=i[10],S=i[11],t[8]=w*a+M*o+b*c+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*d+b*u+S*x,w=i[12],M=i[13],b=i[14],S=i[15],t[12]=w*a+M*o+b*c+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*d+b*u+S*x,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,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 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();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.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]}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&&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)<this.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)}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,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 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]),A=new Split3(t[8],t[9],t[10],t[11]),P=new Split3(M,t[13],t[14],b),T=[x,g.m0,g.m3,g.m5,t[4],S.m0,S.m3,S.m5,t[8],A.m0,A.m3,A.m5,M,P.m0,P.m3,P.m5],D=[g.m5,g.m4,g.m2,w,S.m5,S.m4,S.m2,t[7],A.m5,A.m4,A.m2,t[11],P.m5,P.m4,P.m2,b],y=this.normal(T[12],T[13],T[14],T[15],T[11],T[7],T[3]);abs2(y)<=this.epsilon&&abs2(y=this.normal(T[12],T[13],T[14],T[15],T[2],T[1],T[0]))<=this.epsilon&&(y=this.normal(T[0],T[4],T[8],T[12],T[11],T[7],T[3]));let R=this.normal(D[3],D[2],D[1],D[0],D[4],D[8],D[12]);abs2(R)<=this.epsilon&&abs2(R=this.normal(D[3],D[2],D[1],D[0],D[13],D[14],D[15]))<=this.epsilon&&(R=this.normal(D[15],D[11],D[7],D[3],D[4],D[8],D[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(D[12],D[8],D[4],D[0]));z=[z[0]-I*t[0],z[1]-I*t[1],z[2]-I*t[2]]}else z=T[15];let O=[.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(T[3],T[7],T[11],T[15]));O=[O[0]-I*t[0],O[1]-I*t[1],O[2]-I*t[2]]}else O=D[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,y,t),w=this.data.Vertex(O,R,g);this.Render(T,e,i,x,w,n,s,z,O,l,d,!1,m,f,u,t,g),this.Render(D,w,x,a,r,O,z,o,h,!1,d,c,m,g,t,p,v)}else{let t=this.vertex(z,y),f=this.vertex(O,R);this.Render(T,e,i,t,f,n,s,z,O,l,d,!1,m),this.Render(D,f,t,a,r,O,z,o,h,!1,d,c,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]),A=new Split3(t[2],t[6],t[10],t[14]),P=new Split3(w,t[7],t[11],b),T=[x,t[1],t[2],w,g.m0,S.m0,A.m0,P.m0,g.m3,S.m3,A.m3,P.m3,g.m5,S.m5,A.m5,P.m5],D=[g.m5,S.m5,A.m5,P.m5,g.m4,S.m4,A.m4,P.m4,g.m2,S.m2,A.m2,P.m2,M,t[13],t[14],b],y=this.normal(T[0],T[4],T[8],T[12],T[13],T[14],T[15]);abs2(y)<=this.epsilon&&abs2(y=this.normal(T[0],T[4],T[8],T[12],T[11],T[7],T[3]))<=this.epsilon&&(y=this.normal(T[3],T[2],T[1],T[0],T[13],T[14],T[15]));let R=this.normal(D[15],D[11],D[7],D[3],D[2],D[1],D[0]);abs2(R)<=this.epsilon&&abs2(R=this.normal(D[15],D[11],D[7],D[3],D[4],D[8],D[12]))<=this.epsilon&&(R=this.normal(D[12],D[13],D[14],D[15],D[2],D[1],D[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(D[0],D[1],D[2],D[3]));z=[z[0]-I*t[0],z[1]-I*t[1],z[2]-I*t[2]]}else z=T[12];let O=[.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],w)<this.res2){let t=unit(this.differential(T[15],T[14],T[13],T[12]));O=[O[0]-I*t[0],O[1]-I*t[1],O[2]-I*t[2]]}else O=D[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,y,t),w=this.data.Vertex(O,R,g);this.Render(T,e,x,w,r,n,z,O,h,l,!1,c,m,f,t,g,v),this.Render(D,x,i,a,w,z,s,o,O,l,d,c,!1,t,u,p,g)}else{let t=this.vertex(z,y),f=this.vertex(O,R);this.Render(T,e,t,f,r,n,z,O,h,l,!1,c,m),this.Render(D,t,i,a,f,z,s,o,O,l,d,c,!1)}return}let S=new Split3(x,t[1],t[2],w),A=new Split3(t[4],t[5],t[6],t[7]),P=new Split3(t[8],t[9],t[10],t[11]),T=new Split3(M,t[13],t[14],b),D=new Split3(x,t[4],t[8],M),y=new Split3(S.m0,A.m0,P.m0,T.m0),R=new Split3(S.m3,A.m3,P.m3,T.m3),I=new Split3(S.m5,A.m5,P.m5,T.m5),z=new Split3(S.m4,A.m4,P.m4,T.m4),O=new Split3(S.m2,A.m2,P.m2,T.m2),E=new Split3(w,t[7],t[11],b),L=[x,S.m0,S.m3,S.m5,D.m0,y.m0,R.m0,I.m0,D.m3,y.m3,R.m3,I.m3,D.m5,y.m5,R.m5,I.m5],N=[D.m5,y.m5,R.m5,I.m5,D.m4,y.m4,R.m4,I.m4,D.m2,y.m2,R.m2,I.m2,M,T.m0,T.m3,T.m5],V=[I.m5,z.m5,O.m5,E.m5,I.m4,z.m4,O.m4,E.m4,I.m2,z.m2,O.m2,E.m2,T.m5,T.m4,T.m2,b],C=[S.m5,S.m4,S.m2,w,I.m0,z.m0,O.m0,E.m0,I.m3,z.m3,O.m3,E.m3,I.m5,z.m5,O.m5,E.m5],_=L[15],B=this.normal(L[0],L[4],L[8],L[12],L[13],L[14],L[15]);abs2(B)<this.epsilon&&abs2(B=this.normal(L[0],L[4],L[8],L[12],L[11],L[7],L[3]))<this.epsilon&&(B=this.normal(L[3],L[2],L[1],L[0],L[13],L[14],L[15]));let H=this.normal(N[12],N[13],N[14],N[15],N[11],N[7],N[3]);abs2(H)<this.epsilon&&abs2(H=this.normal(N[12],N[13],N[14],N[15],N[2],N[1],N[0]))<this.epsilon&&(H=this.normal(N[0],N[4],N[8],N[12],N[11],N[7],N[3]));let G=this.normal(V[15],V[11],V[7],V[3],V[2],V[1],V[0]);abs2(G)<this.epsilon&&abs2(G=this.normal(V[15],V[11],V[7],V[3],V[4],V[8],V[12]))<this.epsilon&&(G=this.normal(V[12],V[13],V[14],V[15],V[2],V[1],V[0]));let F=this.normal(C[3],C[2],C[1],C[0],C[4],C[8],C[12]);abs2(F)<this.epsilon&&abs2(F=this.normal(C[3],C[2],C[1],C[0],C[13],C[14],C[15]))<this.epsilon&&(F=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],_,V[4],V[8],V[12]),U=this.Epsilon,j=[.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(N[0],N[1],N[2],N[3]));j=[j[0]-U*t[0],j[1]-U*t[1],j[2]-U*t[2]]}else j=L[12];let k=[.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(V[12],V[8],V[4],V[0]));k=[k[0]-U*t[0],k[1]-U*t[1],k[2]-U*t[2]]}else k=N[15];let Y=[.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],w)<this.res2){let t=unit(this.differential(C[15],C[14],C[13],C[12]));Y=[Y[0]-U*t[0],Y[1]-U*t[1],Y[2]-U*t[2]]}else Y=V[3];let Z=[.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(L[3],L[7],L[11],L[15]));Z=[Z[0]-U*t[0],Z[1]-U*t[1],Z[2]-U*t[2]]}else Z=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(j,B,t),S=this.data.Vertex(k,H,g),A=this.data.Vertex(Y,G,x),P=this.data.Vertex(Z,F,w),T=this.data.Vertex(_,W,M);this.Render(L,e,b,T,P,n,j,_,Z,l,!1,!1,m,f,t,M,w),this.Render(N,b,i,S,T,j,s,k,_,l,d,!1,!1,t,u,g,M),this.Render(V,T,S,a,A,_,k,o,Y,!1,d,c,!1,M,g,p,x),this.Render(C,P,T,A,r,Z,_,Y,h,!1,!1,c,m,w,M,x,v)}else{let t=this.vertex(j,B),f=this.vertex(k,H),u=this.vertex(Y,G),p=this.vertex(Z,F),v=this.vertex(_,W);this.Render(L,e,t,v,p,n,j,_,Z,l,!1,!1,m),this.Render(N,t,i,f,v,j,s,k,_,l,d,!1,!1),this.Render(V,v,f,a,u,_,k,o,Y,!1,d,c,!1),this.Render(C,p,v,u,r,Z,_,Y,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],x=t[5],w=t[6],M=t[7],b=t[8],S=t[9],A=[.5*(S[0]+x[0]),.5*(S[1]+x[1]),.5*(S[2]+x[2])],P=[.5*(S[0]+b[0]),.5*(S[1]+b[1]),.5*(S[2]+b[2])],T=[.5*(x[0]+p[0]),.5*(x[1]+p[1]),.5*(x[2]+p[2])],D=[.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])],R=[.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])],O=[.5*(M[0]+w[0]),.5*(M[1]+w[1]),.5*(M[2]+w[2])],E=[.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]+w[0]),.5*(v[1]+w[1]),.5*(v[2]+w[2])],V=[.5*(A[0]+T[0]),.5*(A[1]+T[1]),.5*(A[2]+T[2])],C=[.5*(P[0]+y[0]),.5*(P[1]+y[1]),.5*(P[2]+y[2])],_=[.5*(T[0]+I[0]),.5*(T[1]+I[1]),.5*(T[2]+I[2])],B=[.5*D[0]+.25*(g[0]+u[0]),.5*D[1]+.25*(g[1]+u[1]),.5*D[2]+.25*(g[2]+u[2])],H=[.5*(y[0]+O[0]),.5*(y[1]+O[1]),.5*(y[2]+O[2])],G=[.5*R[0]+.25*(g[0]+M[0]),.5*R[1]+.25*(g[1]+M[1]),.5*R[2]+.25*(g[2]+M[2])],F=[.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*(E[0]+L[0]),.5*(E[1]+L[1]),.5*(E[2]+L[2])],U=[.5*(L[0]+N[0]),.5*(L[1]+N[1]),.5*(L[2]+N[2])],j=[.5*(G[0]+W[0]),.5*(G[1]+W[1]),.5*(G[2]+W[2])],k=[.5*(G[0]+U[0]),.5*(G[1]+U[1]),.5*(G[2]+U[2])],Y=[.5*(W[0]+U[0]),.5*(W[1]+U[1]),.5*(W[2]+U[2])],Z=[.5*(F[0]+H[0]),.5*(F[1]+H[1]),.5*(F[2]+H[2])],X=[.5*(C[0]+F[0]),.5*(C[1]+F[1]),.5*(C[2]+F[2])],q=[.5*(C[0]+H[0]),.5*(C[1]+H[1]),.5*(C[2]+H[2])],K=[.5*(V[0]+B[0]),.5*(V[1]+B[1]),.5*(V[2]+B[2])],$=[.5*(_[0]+B[0]),.5*(_[1]+B[1]),.5*(_[2]+B[2])],Q=[.5*(V[0]+_[0]),.5*(V[1]+_[1]),.5*(V[2]+_[2])],J=[f,E,I,W,[.5*(R[0]+E[0]),.5*(R[1]+E[1]),.5*(R[2]+E[2])],_,Y,j,$,Q],tt=[Y,U,k,N,[.5*(z[0]+O[0]),.5*(z[1]+O[1]),.5*(z[2]+O[2])],Z,w,O,H,q],et=[Q,K,V,X,[.5*(A[0]+D[0]),.5*(A[1]+D[1]),.5*(A[2]+D[2])],A,q,C,P,S],it=[q,X,Z,K,[.25*(T[0]+y[0]+L[0]+g[0]),.25*(T[1]+y[1]+L[1]+g[1]),.25*(T[2]+y[2]+L[2]+g[2])],k,Q,$,j,Y],at=this.normal(Y,k,Z,q,X,K,Q),rt=this.normal(q,X,K,Q,$,j,Y),nt=this.normal(Q,$,j,Y,k,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(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=Y;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),x=cross(g,u),w=cross(p,v);if(abs2(f=[x[0]+w[0],x[1]+w[1],x[2]+w[2]])>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 abs2(f=[x[0]+w[0]+S[0],x[1]+w[1]+S[1],x[2]+w[2]+S[2]])>this.epsilon?f:(x=cross(b,v),w=cross(g,M),abs2(f=[x[0]+w[0],x[1]+w[1],x[2]+w[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(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])],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)}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(!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)}notRendered(){this.transparent?transparentData.rendered=!1:triangleData.rendered=!1}}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.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),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,rotMat,.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.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/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.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}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{let t=canvasWidth/canvasHeight;canvasWidth=Math.max(window.innerWidth-windowTrim,windowTrim),canvasHeight=Math.max(window.innerHeight-windowTrim,windowTrim),!orthographic&&canvasWidth<canvasHeight*t&&(Zoom0*=canvasWidth/(canvasHeight*t))}canvas.width=canvasWidth,canvas.height=canvasHeight,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.addEventListener("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,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]=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 A=Tcorners(d,[-e,-e,c],[e,e,e]),T=A[0],D=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,T,D))}}}}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,x=t[i],w=x[0];w1=x[1],w2=x[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+w,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())}
diff --git a/graphics/asymptote/beziercurve.h b/graphics/asymptote/beziercurve.h
index 0ac07653e7..c05e939346 100644
--- a/graphics/asymptote/beziercurve.h
+++ b/graphics/asymptote/beziercurve.h
@@ -41,8 +41,13 @@ struct BezierCurve
material1Data.append(data);
}
+ void notRendered() {
+ material1Data.rendered=false;
+ }
+
void queue(const triple *g, bool straight, double ratio) {
data.clear();
+ notRendered();
Onscreen=true;
init(pixel*ratio);
render(g,straight);
diff --git a/graphics/asymptote/bezierpatch.cc b/graphics/asymptote/bezierpatch.cc
index bcdd238cca..ca16b9b765 100644
--- a/graphics/asymptote/bezierpatch.cc
+++ b/graphics/asymptote/bezierpatch.cc
@@ -1064,6 +1064,7 @@ void Triangles::queue(size_t nP, const triple* P, size_t nN, const triple* N,
if(!nN) return;
data.clear();
+ notRendered();
Onscreen=true;
transparent=Transparent;
diff --git a/graphics/asymptote/bezierpatch.h b/graphics/asymptote/bezierpatch.h
index 344df7e81a..2af678f9f8 100644
--- a/graphics/asymptote/bezierpatch.h
+++ b/graphics/asymptote/bezierpatch.h
@@ -141,9 +141,21 @@ struct BezierPatch
}
}
+ virtual void notRendered() {
+ if(transparent)
+ transparentData.rendered=false;
+ else {
+ if(color)
+ colorData.rendered=false;
+ else
+ materialData.rendered=false;
+ }
+ }
+
void queue(const triple *g, bool straight, double ratio, bool Transparent,
GLfloat *colors=NULL) {
data.clear();
+ notRendered();
Onscreen=true;
transparent=Transparent;
color=colors;
@@ -195,6 +207,13 @@ public:
triangleData.Append(data);
}
+ void notRendered() {
+ if(transparent)
+ transparentData.rendered=false;
+ else
+ triangleData.rendered=false;
+ }
+
};
extern void sortTriangles();
diff --git a/graphics/asymptote/configure b/graphics/asymptote/configure
index f9c5fcdaf4..f1ee0bf823 100755
--- a/graphics/asymptote/configure
+++ b/graphics/asymptote/configure
@@ -1,6 +1,6 @@
#! /bin/sh
# Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.69 for Asymptote 2.65.
+# Generated by GNU Autoconf 2.69 for Asymptote 2.66.
#
# Report bugs to <http://sourceforge.net/projects/asymptote>.
#
@@ -580,8 +580,8 @@ MAKEFLAGS=
# Identity of this package.
PACKAGE_NAME='Asymptote'
PACKAGE_TARNAME='asymptote'
-PACKAGE_VERSION='2.65'
-PACKAGE_STRING='Asymptote 2.65'
+PACKAGE_VERSION='2.66'
+PACKAGE_STRING='Asymptote 2.66'
PACKAGE_BUGREPORT='http://sourceforge.net/projects/asymptote'
PACKAGE_URL=''
@@ -1287,7 +1287,7 @@ if test "$ac_init_help" = "long"; then
# Omit some internal or obsolete options to make the list less imposing.
# This message is too long to be a string in the A/UX 3.1 sh.
cat <<_ACEOF
-\`configure' configures Asymptote 2.65 to adapt to many kinds of systems.
+\`configure' configures Asymptote 2.66 to adapt to many kinds of systems.
Usage: $0 [OPTION]... [VAR=VALUE]...
@@ -1352,7 +1352,7 @@ fi
if test -n "$ac_init_help"; then
case $ac_init_help in
- short | recursive ) echo "Configuration of Asymptote 2.65:";;
+ short | recursive ) echo "Configuration of Asymptote 2.66:";;
esac
cat <<\_ACEOF
@@ -1372,8 +1372,7 @@ Optional Features:
--enable-fftw[=yes] enable FFTW Library
--enable-gsl[=yes] enable GNU Scientific Library
--enable-gl[=yes] enable OpenGL Library
- --enable-offscreen[=no] enable experimental offscreen rendering using OSMesa
- library
+ --enable-offscreen[=no] use OSMesa library to implement offscreen rendering
--enable-openimageio[=no]
enable experimental OpenImageIO Library
@@ -1469,7 +1468,7 @@ fi
test -n "$ac_init_help" && exit $ac_status
if $ac_init_version; then
cat <<\_ACEOF
-Asymptote configure 2.65
+Asymptote configure 2.66
generated by GNU Autoconf 2.69
Copyright (C) 2012 Free Software Foundation, Inc.
@@ -2055,7 +2054,7 @@ cat >config.log <<_ACEOF
This file contains any messages produced by compilers while
running configure, to aid debugging if configure makes a mistake.
-It was created by Asymptote $as_me 2.65, which was
+It was created by Asymptote $as_me 2.66, which was
generated by GNU Autoconf 2.69. Invocation command line was
$ $0 $@
@@ -9267,7 +9266,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
# report actual input values of CONFIG_FILES etc. instead of their
# values after options handling.
ac_log="
-This file was extended by Asymptote $as_me 2.65, which was
+This file was extended by Asymptote $as_me 2.66, which was
generated by GNU Autoconf 2.69. Invocation command line was
CONFIG_FILES = $CONFIG_FILES
@@ -9329,7 +9328,7 @@ _ACEOF
cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
ac_cs_version="\\
-Asymptote config.status 2.65
+Asymptote config.status 2.66
configured by $0, generated by GNU Autoconf 2.69,
with options \\"\$ac_cs_config\\"
diff --git a/graphics/asymptote/configure.ac b/graphics/asymptote/configure.ac
index 1de9e84f87..24b6268d5f 100644
--- a/graphics/asymptote/configure.ac
+++ b/graphics/asymptote/configure.ac
@@ -3,7 +3,7 @@
# this file.
AC_PREREQ(2)
-AC_INIT([Asymptote],[2.65],[http://sourceforge.net/projects/asymptote])
+AC_INIT([Asymptote],[2.66],[http://sourceforge.net/projects/asymptote])
VERSION=$PACKAGE_VERSION
AC_SUBST(VERSION)
m4_include([ax_pthread.m4])
@@ -368,7 +368,7 @@ AC_ARG_ENABLE(gl,
[AS_HELP_STRING(--enable-gl[[[=yes]]],enable OpenGL Library)])
AC_ARG_ENABLE(offscreen,
-[AS_HELP_STRING(--enable-offscreen[[[=no]]],enable experimental offscreen rendering using OSMesa library)])
+[AS_HELP_STRING(--enable-offscreen[[[=no]]],use OSMesa library to implement offscreen rendering)])
AC_ARG_ENABLE(OpenImageIO,
[AS_HELP_STRING(--enable-openimageio[[[=no]]],enable experimental OpenImageIO Library)])
diff --git a/graphics/asymptote/doc/CAD.pdf b/graphics/asymptote/doc/CAD.pdf
index 2838bc8573..5e30ef61c7 100644
--- a/graphics/asymptote/doc/CAD.pdf
+++ b/graphics/asymptote/doc/CAD.pdf
Binary files differ
diff --git a/graphics/asymptote/doc/FAQ/asy-faq.info b/graphics/asymptote/doc/FAQ/asy-faq.info
index 94a02e1e38..d9a97cf406 100644
--- a/graphics/asymptote/doc/FAQ/asy-faq.info
+++ b/graphics/asymptote/doc/FAQ/asy-faq.info
@@ -10,7 +10,7 @@ END-INFO-DIR-ENTRY
File: asy-faq.info, Node: Top, Next: Question 1.1, Up: (dir)
ASYMPTOTE FREQUENTLY ASKED QUESTIONS
- 25 Mar 2020
+ 07 Jul 2020
This is the list of Frequently Asked Questions about Asymptote (asy).
diff --git a/graphics/asymptote/doc/TeXShopAndAsymptote.pdf b/graphics/asymptote/doc/TeXShopAndAsymptote.pdf
index 69297b6f4f..164f74c5bd 100644
--- a/graphics/asymptote/doc/TeXShopAndAsymptote.pdf
+++ b/graphics/asymptote/doc/TeXShopAndAsymptote.pdf
Binary files differ
diff --git a/graphics/asymptote/doc/asy-latex.pdf b/graphics/asymptote/doc/asy-latex.pdf
index 9a1ceaac57..73b71efbac 100644
--- a/graphics/asymptote/doc/asy-latex.pdf
+++ b/graphics/asymptote/doc/asy-latex.pdf
Binary files differ
diff --git a/graphics/asymptote/doc/asy.1 b/graphics/asymptote/doc/asy.1
index bd81c76742..9005b3c66c 100644
--- a/graphics/asymptote/doc/asy.1
+++ b/graphics/asymptote/doc/asy.1
@@ -170,7 +170,7 @@ Mask fpu exceptions; command-line only.
Maximum rendering tile size [(1024,768)].
.TP
.B \-maxviewport pair
-Maximum viewport size [(2048,2048)].
+Maximum viewport size [(0,0)].
.TP
.B \-multiline
Input code over multiple lines at the prompt [false].
@@ -184,9 +184,6 @@ Multisampling width for screen images [4].
.B \-offline
Produce offline html files [false].
.TP
-.B \-offscreen
-Use offscreen rendering [false].
-.TP
.B \-O,\-offset pair
PostScript offset [(0,0)].
.TP
@@ -248,7 +245,7 @@ WebGL touch screen shift mode delay [200].
Spin speed [60].
.TP
.B \-svgemulation
-Emulate unimplemented SVG shading [false].
+Emulate unimplemented SVG shading [true].
.TP
.B \-tabcompletion
Interactive prompt auto-completion [true].
diff --git a/graphics/asymptote/doc/asyRefCard.pdf b/graphics/asymptote/doc/asyRefCard.pdf
index 4ece2fff63..dbf6c0620a 100644
--- a/graphics/asymptote/doc/asyRefCard.pdf
+++ b/graphics/asymptote/doc/asyRefCard.pdf
Binary files differ
diff --git a/graphics/asymptote/doc/asymptote.pdf b/graphics/asymptote/doc/asymptote.pdf
index 55c056d405..485ce996c4 100644
--- a/graphics/asymptote/doc/asymptote.pdf
+++ b/graphics/asymptote/doc/asymptote.pdf
Binary files differ
diff --git a/graphics/asymptote/doc/asymptote.texi b/graphics/asymptote/doc/asymptote.texi
index ae0df15bec..2d25ff6fe9 100644
--- a/graphics/asymptote/doc/asymptote.texi
+++ b/graphics/asymptote/doc/asymptote.texi
@@ -11,7 +11,7 @@ This file documents @code{Asymptote}, version @value{VERSION}.
@url{https://asymptote.sourceforge.io}
-Copyright @copyright{} 2004-19 Andy Hammerlindl, John Bowman, and Tom Prince.
+Copyright @copyright{} 2004-20 Andy Hammerlindl, John Bowman, and Tom Prince.
@quotation
Permission is granted to copy, distribute and/or modify this document
@@ -142,6 +142,7 @@ Base modules
* 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
@@ -186,13 +187,19 @@ Graphical User Interface
@chapter Description
@cindex description
+@cindex @code{Asymptote Web Application}
@code{Asymptote} is a powerful descriptive vector graphics language that
provides a mathematical coordinate-based framework for technical drawing.
Labels and equations are typeset with @code{LaTeX}, for overall document
consistency, yielding the same high-quality level of typesetting that
@code{LaTeX} provides for scientific text. By default it produces
-@code{PostScript} output, but it can also generate any format that the
-@code{ImageMagick} package can produce.
+@code{PostScript} output, but it can also generate @code{PDF},
+@code{SVG}, @code{WebGL}, @code{PRC}, and any format that the
+@code{ImageMagick} package can produce. You can even try it out in your
+Web browser without installing it, using the @code{Asymptote Web
+Application}:
+
+@url{http://asymptote.ualberta.ca}
A major advantage of @code{Asymptote} over other graphics packages is
that it is a high-level programming language, as opposed to just a graphics
@@ -374,7 +381,7 @@ where @code{x.xx} denotes the latest version.
A working @TeX{} implementation (we recommend
@url{https://www.tug.org/texlive} or
@url{http://www.miktex.org}) will be required to typeset labels.
-You will also need to install @code{GPL Ghostscript} version 9.14 or
+You will also need to install @code{GPL Ghostscript} version 9.52 or
later from @url{http://downloads.ghostscript.com/public}.
To view @code{PostScript} output, you can install the
@@ -800,7 +807,7 @@ A concise introduction to @code{Asymptote} is given here.
For a more thorough introduction, see the excellent @code{Asymptote}
tutorial written by Charles Staats:
-@url{https://math.uchicago.edu/~cstaats/Charles_Staats_III/Notes_and_papers_files/asymptote_tutorial.pdf}
+@url{https://asymptote.sourceforge.io/asymptote.pdf}
Another @code{Asymptote} tutorial is available as a wiki,
with images rendered by an online Asymptote engine:
@@ -1009,7 +1016,7 @@ filldraw(unitcircle^^reverse(g),yellow,black);
@cindex @code{unitbox}
The @code{^^} operator is used by the @code{box(triple, triple)} function in
-the module @code{three.asy} to construct the edges of a
+the module @code{three} to construct the edges of a
cube @code{unitbox} without retracing steps (@pxref{three}):
@verbatiminclude cube.asy
@sp 1
@@ -1332,7 +1339,8 @@ void axialshade(picture pic=currentpicture, path g, bool stroke=false,
@noindent
The boolean parameters @code{extenda} and @code{extendb} indicate
whether the shading should extend beyond the axis endpoints @code{a}
-and @code{b}.
+and @code{b}. An example of axial shading is provided in the example file
+@code{@uref{https://asymptote.sourceforge.io/gallery/axialshade.svg,,axialshade}@uref{https://asymptote.sourceforge.io/gallery/axialshade.asy,,.asy}}.
@cindex @code{radialshade}
Radial gradient shading varying smoothly from
@@ -1374,11 +1382,11 @@ The edge flags used in Gouraud shading are documented here:
@cindex Coons shading
@cindex tensor product shading
@cindex @code{tensorshade}
-Tensor product shading using fill rule @code{fillrule} on patches
-bounded by the @math{n} cyclic paths of length 4 in path array @code{b},
-using the vertex colors specified in the @math{n \times 4} pen array
-@code{p} and internal control points in the @math{n \times 4}
-array @code{z}, is implemented with
+Tensor product shading using clipping path @code{g}, fill rule
+@code{fillrule} on patches bounded by the @math{n} cyclic paths of
+length 4 in path array @code{b}, using the vertex colors specified in
+the @math{n \times 4} pen array @code{p} and internal control points
+in the @math{n \times 4} array @code{z}, is implemented with
@verbatim
void tensorshade(picture pic=currentpicture, path[] g, bool stroke=false,
pen fillrule=currentpen, pen[][] p, path[] b=g,
@@ -2216,7 +2224,7 @@ current locale;
@item string time(string format="%a %b %d %T %Z %Y")
@cindex @code{time}
-@cindex @code{date}
+@cindex date
@cindex @code{strftime}
returns the current time formatted by the ANSI C routine
@code{strftime} according to the string @code{format} using the current
@@ -3101,7 +3109,7 @@ this may be changed with @code{defaultpen(pen)}.
The font setting of a pen is returned by
@code{string font(pen p=currentpen)}.
Support for standardized international characters is provided by the
-@code{unicode} package (@pxref{unicode}).
+@code{unicode} module (@pxref{unicode}).
@cindex @code{TeX fonts}
Alternatively, one may select a fixed-size @TeX{} font (on which
@@ -5275,19 +5283,19 @@ returns a new empty array of type @code{T[]};
@cindex @code{new}
@item new T[] @{list@}
returns a new array of type @code{T[]} initialized with @code{list} (a comma
-delimited list of elements).
+delimited list of elements);
@item new T[n]
returns a new array of @code{n} elements of type @code{T[]}.
These @code{n} array elements are not initialized unless they are arrays
-themselves (in which case they are each initialized to empty arrays).
+themselves (in which case they are each initialized to empty arrays);
@cindex @code{array}
@item T[] array(int n, T value, int depth=intMax)
returns an array consisting of @code{n} copies of @code{value}.
If @code{value} is itself an array, a deep copy of @code{value} is made
for each entry. If @code{depth} is specified, this deep copying only
-recurses to the specified number of levels.
+recurses to the specified number of levels;
@cindex @code{sequence}
@item int[] sequence(int n)
@@ -5307,7 +5315,12 @@ null array);
@item T[] map(T f(T), T[] a)
returns the array obtained by applying the function @code{f} to each
element of the array @code{a}. This is equivalent to
-@code{sequence(new T(int i) @{return f(a[i]);@},a.length)}.
+@code{sequence(new T(int i) @{return f(a[i]);@},a.length)};
+
+@cindex @code{map}
+@item T2[] map(T2 f(T1), T1[] a)
+constructed by calling mapArray("T1","T2"), returns the array obtained by
+applying the function @code{f} to each element of the array @code{a};
@cindex @code{reverse}
@item int[] reverse(int n)
@@ -5318,7 +5331,7 @@ returns a null array);
@item int[] complement(int[] a, int n)
returns the complement of the integer array @code{a} in
@code{@{0,1,2,...,n-1@}}, so that @code{b[complement(a,b.length)]} yields the
-complement of @code{b[a]}.
+complement of @code{b[a]};
@cindex @code{uniform}
@item real[] uniform(real a, real b, int n)
@@ -5333,7 +5346,7 @@ from the end of the array for the @code{-n}th value;
@cindex @code{findall}
@item int[] findall(bool[] a)
-returns the indices of all @code{true} values in the boolean array @code{a}.
+returns the indices of all @code{true} values in the boolean array @code{a};
@cindex @code{search}
@item int search(T[] a, T key)
@@ -5341,7 +5354,7 @@ For built-in ordered types @code{T}, searches a sorted array
@code{a} of @code{n} elements for k, returning the index @code{i}
if @code{a[i] <= key < a[i+1]}, @code{-1} if @code{key} is
less than all elements of @code{a}, or @code{n-1} if @code{key} is
-greater than or equal to the last element of @code{a}.
+greater than or equal to the last element of @code{a};
@cindex @code{search}
@item int search(T[] a, T key, bool less(T i, T j))
@@ -5393,51 +5406,51 @@ returns a copy of @code{a} sorted in ascending order such that
element @code{i} precedes element @code{j} if @code{less(i,j)} is
true, subject to (if @code{stable} is @code{true}) the stability constraint
that the original order of elements @code{i} and @code{j} is preserved if
-@code{less(i,j)} and @code{less(j,i)} are both @code{false}.
+@code{less(i,j)} and @code{less(j,i)} are both @code{false};
@cindex @code{transpose}
@item T[][] transpose(T[][] a)
-returns the transpose of @code{a}.
+returns the transpose of @code{a};
@cindex @code{transpose}
@item T[][][] transpose(T[][][] a, int[] perm)
returns the 3D transpose of @code{a} obtained by applying the permutation
-@code{perm} of @code{new int[]@{0,1,2@}} to the indices of each entry.
+@code{perm} of @code{new int[]@{0,1,2@}} to the indices of each entry;
@cindex @code{sum}
@item T sum(T[] a)
-For arithmetic types @code{T}, returns the sum of @code{a}.
+for arithmetic types @code{T}, returns the sum of @code{a}.
In the case where @code{T} is @code{bool}, the number of true elements in
-@code{a} is returned.
+@code{a} is returned;
@cindex @code{min}
@item T min(T[] a)
@item T min(T[][] a)
@item T min(T[][][] a)
-For built-in ordered types @code{T}, returns the minimum element of @code{a}.
+for built-in ordered types @code{T}, returns the minimum element of @code{a};
@cindex @code{max}
@item T max(T[] a)
@item T max(T[][] a)
@item T max(T[][][] a)
-For built-in ordered types @code{T}, returns the maximum element of @code{a}.
+for built-in ordered types @code{T}, returns the maximum element of @code{a};
@cindex @code{min}
@item T[] min(T[] a, T[] b)
-For built-in ordered types @code{T}, and arrays @code{a} and @code{b}
+for built-in ordered types @code{T}, and arrays @code{a} and @code{b}
of the same length, returns an array composed of the minimum of the
-corresponding elements of @code{a} and @code{b}.
+corresponding elements of @code{a} and @code{b};
@cindex @code{max}
@item T[] max(T[] a, T[] b)
-For built-in ordered types @code{T}, and arrays @code{a} and @code{b}
+for built-in ordered types @code{T}, and arrays @code{a} and @code{b}
of the same length, returns an array composed of the maximum of the
-corresponding elements of @code{a} and @code{b}.
+corresponding elements of @code{a} and @code{b};
@cindex @code{pairs}
@item pair[] pairs(real[] x, real[] y);
-For arrays @code{x} and @code{y} of the same length, returns the pair array
-@code{sequence(new pair(int i) @{return (x[i],y[i]);@},x.length)}.
+for arrays @code{x} and @code{y} of the same length, returns the pair array
+@code{sequence(new pair(int i) @{return (x[i],y[i]);@},x.length)};
@cindex @code{fft}
@item pair[] fft(pair[] a, int sign=1)
@@ -5459,21 +5472,21 @@ write(f/n);
@cindex @code{fft}
@item pair[][] fft(pair[][] a, int sign=1)
returns the unnormalized two-dimensional Fourier transform of @code{a}
-using the given @code{sign}.
+using the given @code{sign};
@cindex @code{fft}
@item pair[][][] fft(pair[][][] a, int sign=1)
returns the unnormalized three-dimensional Fourier transform of
-@code{a} using the given @code{sign}.
+@code{a} using the given @code{sign};
@cindex @code{dot}
@item real dot(real[] a, real[] b)
-returns the dot product of the vectors @code{a} and @code{b}.
+returns the dot product of the vectors @code{a} and @code{b};
@cindex @code{dot}
@item pair dot(pair[] a, pair[] b)
returns the complex dot product @code{sum(a*conj(b))} of the vectors
-@code{a} and @code{b}.
+@code{a} and @code{b};
@anchor{tridiagonal}
@cindex @code{tridiagonal}
@@ -5490,7 +5503,7 @@ is an @math{n} vector and @math{L} is the @math{n \times n} matrix
@end verbatim
For Dirichlet boundary conditions (denoted here by @code{u[-1]} and
@code{u[n]}), replace @code{f[0]} by @code{f[0]-a[0]u[-1]} and
-@code{f[n-1]-c[n-1]u[n]}; then set @code{a[0]=c[n-1]=0}.
+@code{f[n-1]-c[n-1]u[n]}; then set @code{a[0]=c[n-1]=0};
@cindex @code{solve}
@item real[] solve(real[][] a, real[] b, bool warn=true)
@@ -5511,7 +5524,7 @@ write(a*x);
If @code{a} is a singular matrix and @code{warn} is @code{false}, return an
empty array.
If the matrix @code{a} is tridiagonal, the routine @code{tridiagonal} provides
-a more efficient algorithm (@pxref{tridiagonal}).
+a more efficient algorithm (@pxref{tridiagonal});
@anchor{solve}
@cindex @code{solve}
@@ -5519,30 +5532,30 @@ a more efficient algorithm (@pxref{tridiagonal}).
Solve the linear equation @math{@code{a}x=@code{b}} and return the
solution @math{x}, where @code{a} is an @math{n \times n} matrix and
@code{b} is an @math{n \times m} matrix. If @code{a} is a singular
-matrix and @code{warn} is @code{false}, return an empty matrix.
+matrix and @code{warn} is @code{false}, return an empty matrix;
@cindex @code{identity}
@item real[][] identity(int n);
-returns the @math{n \times n} identity matrix.
+returns the @math{n \times n} identity matrix;
@cindex @code{diagonal}
@item real[][] diagonal(... real[] a)
-returns the diagonal matrix with diagonal entries given by a.
+returns the diagonal matrix with diagonal entries given by a;
@cindex @code{inverse}
@item real[][] inverse(real[][] a)
-returns the inverse of a square matrix @code{a}.
+returns the inverse of a square matrix @code{a};
@cindex @code{quadraticroots}
@item @code{real[] quadraticroots(real a, real b, real c);}
This numerically robust solver returns the real roots of the
quadratic equation @math{ax^2+bx+c=0}, in ascending order. Multiple
-roots are listed separately.
+roots are listed separately;
@cindex @code{quadraticroots}
@item @code{pair[] quadraticroots(explicit pair a, explicit pair b, explicit pair c);}
This numerically robust solver returns the complex roots of the
-quadratic equation @math{ax^2+bx+c=0}.
+quadratic equation @math{ax^2+bx+c=0};
@cindex @code{cubicroots}
@item @code{real[] cubicroots(real a, real b, real c, real d);}
@@ -6004,6 +6017,9 @@ code s=quote {
eval(s,true); // Outputs 1
@end verbatim
+One application of @code{eval} is the creation of parametrized Asymptote
+code, such as a map from one type to another (@pxref{map}).
+
@cindex @code{include}
To include the contents of an existing file @code{graph} verbatim (as if the
contents of the file were inserted at that point), use one of the forms:
@@ -6105,7 +6121,7 @@ void f();
for(int i=0; i < 10; ++i) {
int x=i;
if(x==5) {
- f=new void () { write(x); }
+ f=new void() {write(x);};
}
}
f();
@@ -6125,7 +6141,7 @@ void f() {
@end verbatim
@noindent
both @code{x} and @code{y} will be allocated in the same place, which is
-also where @code{f} is also allocated.
+also where @code{f} is allocated.
Statements may also be declared static, in which case they are run at the place
where the enclosing function or structure is defined.
@@ -6276,6 +6292,7 @@ Here now is @code{latexusage.tex}:
* 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
@@ -6328,14 +6345,14 @@ option to disable this feature.
@section @code{simplex}
@cindex @code{simplex}
@cindex @code{deferred drawing}
-This package solves the two-variable linear programming problem using the
+This module solves the two-variable linear programming problem using the
simplex method. It is used by the module @code{plain} for automatic
sizing of pictures.
@node math, interpolate, simplex, Base modules
@section @code{math}
@cindex @code{math}
-This package extends @code{Asymptote}'s mathematical capabilities with
+This module extends @code{Asymptote}'s mathematical capabilities with
useful functions such as
@table @code
@@ -6455,21 +6472,21 @@ hand.
@section @code{stats}
@cindex @code{stats}
@cindex @code{leastsquares}
-This package implements a Gaussian random number generator
+This module implements a Gaussian random number generator
and a collection of statistics routines, including @code{histogram}
and @code{leastsquares}.
@node patterns, markers, stats, Base modules
@section @code{patterns}
@cindex @code{patterns}
-This package implements @code{Postscript} tiling patterns and includes
+This module implements @code{Postscript} tiling patterns and includes
several convenient pattern generation routines.
@node markers, tree, patterns, Base modules
@section @code{markers}
@cindex @code{markers}
-This package implements specialized routines for marking paths and angles.
-The principal mark routine provided by this package is
+This module implements specialized routines for marking paths and angles.
+The principal mark routine provided by this module is
@verbatim
markroutine markinterval(int n=1, frame f, bool rotated=false);
@end verbatim
@@ -6513,7 +6530,7 @@ use of these markers:
@sp 1
@center @image{./markers1}
-This package also provides a routine for marking an angle @math{AOB}:
+This module also provides a routine for marking an angle @math{AOB}:
@cindex @code{markangle}
@verbatim
void markangle(picture pic=currentpicture, Label L="",
@@ -6528,10 +6545,30 @@ as illustrated in the example @code{@uref{https://asymptote.sourceforge.io/galle
@sp 1
@center @image{./markers2}
+@node map, tree, markers, Base modules
+@section @code{map}
+@cindex @code{map}
+This module creates a struct parameterized by the types specified in
+strings @code{key} and @code{value}, mapping keys to values with a
+specified default:
+@verbatim
+import map;
+
+mapTemplate(name="map",key="string",value="int",default="-1");
+
+map M;
+
+M.add("z",2);
+M.add("a",3);
+M.add("d",4);
+write(M.lookup("a"));
+write(M.lookup("y"));
+@end verbatim
+
@node tree, binarytree, markers, Base modules
@section @code{tree}
@cindex @code{tree}
-This package implements an example of a dynamic binary search tree.
+This module implements an example of a dynamic binary search tree.
@node binarytree, drawtree, tree, Base modules
@section @code{binarytree}
@@ -6558,14 +6595,14 @@ along with the corresponding equations, as illustrated in the example
@node feynman, roundedpath, syzygy, Base modules
@section @code{feynman}
@cindex @code{feynman}
-This package, contributed by Martin Wiebusch, is useful for drawing
+This module, contributed by Martin Wiebusch, is useful for drawing
Feynman diagrams, as illustrated by the examples @code{@uref{https://asymptote.sourceforge.io/gallery/eetomumu.svg,,eetomumu}@uref{https://asymptote.sourceforge.io/gallery/eetomumu.asy,,.asy}}
and @code{@uref{https://asymptote.sourceforge.io/gallery/fermi.svg,,fermi}@uref{https://asymptote.sourceforge.io/gallery/fermi.asy,,.asy}}.
@node roundedpath, animation, feynman, Base modules
@section @code{roundedpath}
@cindex @code{roundedpath}
-This package, contributed by Stefan Knorr, is useful for rounding the
+This module, contributed by Stefan Knorr, is useful for rounding the
sharp corners of paths, as illustrated in the example file @code{@uref{https://asymptote.sourceforge.io/gallery/roundpath.svg,,roundpath}@uref{https://asymptote.sourceforge.io/gallery/roundpath.asy,,.asy}}.
@node animation, embed, roundedpath, Base modules
@@ -6585,7 +6622,7 @@ movie.
@anchor{animate}
The related @code{animate} module, derived from the @code{animation}
module, generates higher-quality portable clickable @acronym{PDF} movies, with
-optional controls. This requires installing the package
+optional controls. This requires installing the module
@quotation
@url{http://mirror.ctan.org/macros/latex/contrib/animate/animate.sty}
@noindent
@@ -6646,7 +6683,7 @@ An example of embedding @code{U3D} code is provided in the file
@node slide, MetaPost, embed, Base modules
@section @code{slide}
@cindex @code{slide}
-This package provides a simple yet high-quality facility for making
+This module provides a simple yet high-quality facility for making
presentation slides, including portable embedded @acronym{PDF} animations (see
the file @code{@uref{https://asymptote.sourceforge.io/gallery/animations/slidemovies.pdf,,slidemovies}@uref{https://asymptote.sourceforge.io/gallery/animations/slidemovies.asy,,.asy}}). A simple example is provided in
@code{slidedemo.asy}.
@@ -6654,7 +6691,7 @@ the file @code{@uref{https://asymptote.sourceforge.io/gallery/animations/slidemo
@node MetaPost, unicode, slide, Base modules
@section @code{MetaPost}
@cindex @code{MetaPost}
-This package provides some useful routines to help @code{MetaPost} users
+This module provides some useful routines to help @code{MetaPost} users
migrate old @code{MetaPost} code to @code{Asymptote}. Further
contributions here are welcome.
@@ -6673,7 +6710,7 @@ can use the built-in explicit linear equation solver @code{solve} instead.
@section @code{unicode}
@cindex @code{unicode}
@cindex international characters
-Import this package at the beginning of the file to instruct
+Import this module at the beginning of the file to instruct
@code{LaTeX} to accept @code{unicode} (UTF-8) standardized international
characters.
@noindent
@@ -6738,7 +6775,7 @@ Here @code{justify} is one of @code{LeftJustified}, @code{Centered}, or
@code{RightJustified}. The @math{x} component of a shift transform
applied to the Label is interpreted as a shift along the curve, whereas
the @math{y} component is interpreted as a shift away from the curve.
-All other Label transforms are ignored. This package requires the
+All other Label transforms are ignored. This module requires the
@code{latex} tex engine and inherits the limitations of the
@code{PSTricks} @code{\pstextpath} macro.
@@ -6766,7 +6803,7 @@ Currently, annotations are only implemented for the @code{latex}
@node CAD, graph, annotate, Base modules
@section @code{CAD}
@cindex @code{CAD}
-This package, contributed by Mark Henning, provides basic pen
+This module, contributed by Mark Henning, provides basic pen
definitions and measurement functions for simple 2D CAD drawings
according to DIN 15. It is documented separately, in the file
@code{CAD.pdf}.
@@ -6775,7 +6812,7 @@ according to DIN 15. It is documented separately, in the file
@section @code{graph}
@cindex @code{graph}
@cindex 2D graphs
-This package implements two-dimensional linear and logarithmic graphs,
+This module implements two-dimensional linear and logarithmic graphs,
including automatic scale and tick selection (with the ability to
override manually). A graph is a @code{guide} (that can be drawn with
the draw command, with an optional legend) constructed with one of
@@ -7851,7 +7888,7 @@ and @code{three_light.asy}:
struct light {
real[][] diffuse;
real[][] specular;
- pen background=nullpen; // Background color of the 3D canvas.
+ pen background=nullpen; // Background color of the canvas.
real specularfactor;
triple[] position; // Only directional lights are currently implemented.
}
@@ -7871,9 +7908,12 @@ light nolight;
@end verbatim
@cindex @code{background}
@cindex @code{transparent}
-The @code{background} pen can be use to set the 3D @code{OpenGL}
-background colour (the default is white). In the case of
-3D @code{WebGL} images one can request a completely transparent background with
+The @code{currentlight.background} (or @code{background} member of the
+specified @code{light}) can be used
+to set the background colour for 2D (or 3D) images. The default
+background is white for @code{HTML} images and transparent for all
+other formats. One can request a completely transparent background for
+3D @code{WebGL} images with
@code{currentlight.background=black+opacity(0.0);}
Sample Bezier surfaces are
@@ -8686,7 +8726,7 @@ nonrendered @code{PostScript}) is available with the setting
@code{render=0}. This currently only works for piecewise planar
surfaces, such as those produced by the parametric @code{surface}
routines in the @code{graph3} module. Surfaces produced by the
-@code{solids} package will also be properly rendered if the parameter
+@code{solids} module will also be properly rendered if the parameter
@code{nslices} is sufficiently large.
@cindex hidden surface removal
@@ -8880,7 +8920,7 @@ This module, contributed by Philippe Ivaldi, can be used for drawing
@node solids, tube, grid3, Base modules
@section @code{solids}
@cindex @code{solids}
-This solid geometry package defines a structure @code{revolution} that
+This solid geometry module defines a structure @code{revolution} that
can be used to fill and draw surfaces of revolution. The following example
uses it to display the outline of a circular cylinder of radius 1
with axis @code{O--1.5unit(Y+Z)} with perspective projection:
@@ -8909,7 +8949,7 @@ struct skeleton {
@node tube, flowchart, solids, Base modules
@section @code{tube}
@cindex @code{tube}
-This package extends the @code{tube} surfaces constructed in
+This module extends the @code{tube} surfaces constructed in
@code{@uref{https://asymptote.sourceforge.io/gallery/3Dwebgl/three_arrows.html,,three_arrows}@uref{https://asymptote.sourceforge.io/gallery/3Dwebgl/three_arrows.asy,,.asy}} to arbitrary cross sections, colors, and spine
transformations. The routine
@verbatim
@@ -8970,7 +9010,7 @@ An example of @code{tube} is provided in the file
@node flowchart, contour, tube, Base modules
@section @code{flowchart}
@cindex @code{flowchart}
-This package provides routines for drawing flowcharts. The primary
+This module provides routines for drawing flowcharts. The primary
structure is a @code{block}, which represents a single block on the
flowchart. The following eight functions return a position on the appropriate
edge of the block, given picture transform @code{t}:
@@ -9105,7 +9145,7 @@ Here is a simple flowchart example (see also the example
@node contour, contour3, flowchart, Base modules
@section @code{contour}
@cindex @code{contour}
-This package draws contour lines.
+This module draws contour lines.
To construct contours corresponding to the values in a real array @code{c}
for a function @code{f} on @code{box(a,b)}, use the routine
@verbatim
@@ -9200,7 +9240,7 @@ Jonathan Shewchuk.
@node contour3, smoothcontour3, contour, Base modules
@section @code{contour3}
@cindex @code{contour3}
-This package draws surfaces described as the null space of real-valued
+This module draws surfaces described as the null space of real-valued
functions of @math{(x,y,z)} or @code{real[][][]} matrices.
Its usage is illustrated in the example file @code{@uref{https://asymptote.sourceforge.io/gallery/3Dgraphs/magnetic.html,,magnetic}@uref{https://asymptote.sourceforge.io/gallery/3Dgraphs/magnetic.asy,,.asy}}.
@@ -9398,11 +9438,10 @@ To produce @acronym{SVG} output, you will need @code{dvisvgm} (version
You might need to adjust the configuration variable @code{libgs} to
point to the location of your @code{Ghostscript} library
@code{libgs.so} (or to an empty string, depending on how
-@code{dvisvgm} was configured). The 2.8 version of @code{dvisvgm} can
-display SVG output (used by the @code{xasy} editor) for external
-vector @acronym{EPS} and @acronym{PDF} images included with the
-@code{graphic()} function, in addition to (using the @code{latex}
-@TeX{} engine) @acronym{PNG} and @acronym{JPEG} embedded raster images.
+@code{dvisvgm} was configured). The 2.9.1 version of @code{dvisvgm} can
+display @acronym{SVG} output (used by the @code{xasy} editor) for embedded
+@acronym{EPS}, @acronym{PDF}, @acronym{PNG}, and @acronym{JPEG} images
+included with the @code{graphic()} function.
@code{Asymptote} can also produce any output format supported
by the @code{ImageMagick} @code{convert} program (version 6.3.5 or
@@ -9863,6 +9902,9 @@ contributors include Orest Shardt, Jesse Frohlich, Michail Vidiassov,
Charles Staats, Philippe Ivaldi, Olivier Guib@'e, Radoslav Marinov,
Jeff Samuelson, Chris Savage, Jacques Pienaar, Mark Henning, Steve Melenchuk,
Martin Wiebusch, Stefan Knorr, and Supakorn ``Jamie'' Rassameemasmuang.
+Pedram Emami developed the @code{Asymptote Web Application} at
+@url{http://asymptote.ualberta.ca}.
+
@node Index, , Credits, Top
@unnumbered Index
diff --git a/graphics/asymptote/doc/png/asymptote.info b/graphics/asymptote/doc/png/asymptote.info
index a1ca677424..1625bec493 100644
--- a/graphics/asymptote/doc/png/asymptote.info
+++ b/graphics/asymptote/doc/png/asymptote.info
@@ -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.66.
<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 @@ File: asymptote.info, Node: Top, Next: Description, Prev: (dir), Up: (dir)
Asymptote
*********
-This file documents 'Asymptote', version 2.65.
+This file documents 'Asymptote', version 2.66.
<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 @@ Base modules
* 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
@@ -175,8 +176,12 @@ provides a mathematical coordinate-based framework for technical
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
@@ -332,7 +337,7 @@ self-extracting 'Asymptote' executable 'asymptote-x.xx-setup.exe', where
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'
@@ -652,7 +657,7 @@ A concise introduction to 'Asymptote' is given here. For a more
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.pdf>
Another 'Asymptote' tutorial is available as a wiki, with images
rendered by an online Asymptote engine:
@@ -820,8 +825,8 @@ of the paths:
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);
@@ -1051,7 +1056,8 @@ void axialshade(picture pic=currentpicture, path g, bool stroke=false,
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 +1085,10 @@ Illustrations of Gouraud shading are provided in the example file
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[][]);
@@ -2442,7 +2448,7 @@ with one or more color components equal to 1.
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::).
+ the 'unicode' module (*note unicode::).
Alternatively, one may select a fixed-size TeX font (on which
'fontsize' has no effect) like '"cmr12"' (12pt Computer Modern
@@ -4079,18 +4085,18 @@ of type 'T[]'.
'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,7 +4114,12 @@ of type 'T[]'.
'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
@@ -4117,7 +4128,7 @@ of type 'T[]'.
'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 +4140,13 @@ of type 'T[]'.
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 +4186,44 @@ of type 'T[]'.
'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
+ for arithmetic types 'T', returns the sum of 'a'. In the case
where 'T' is 'bool', the number of true elements in 'a' is
- returned.
+ returned;
'T min(T[] a)'
'T min(T[][] a)'
'T min(T[][][] a)'
- For built-in ordered types 'T', returns the minimum element of 'a'.
+ for built-in ordered types 'T', returns the minimum element of 'a';
'T max(T[] a)'
'T max(T[][] a)'
'T max(T[][][] a)'
- For built-in ordered types 'T', returns the maximum element of 'a'.
+ for built-in ordered types 'T', returns the maximum element of 'a';
'T[] min(T[] a, T[] b)'
- For built-in ordered types 'T', and arrays 'a' and 'b' of the same
+ for built-in ordered types 'T', and arrays 'a' and 'b' of the same
length, returns an array composed of the minimum of the
- corresponding elements of 'a' and 'b'.
+ corresponding elements of 'a' and 'b';
'T[] max(T[] a, T[] b)'
- For built-in ordered types 'T', and arrays 'a' and 'b' of the same
+ for built-in ordered types 'T', and arrays 'a' and 'b' of the same
length, returns an array composed of the maximum of the
- corresponding elements of 'a' and 'b'.
+ corresponding elements of 'a' and 'b';
'pair[] pairs(real[] x, real[] y);'
- For arrays 'x' and 'y' of the same length, returns the pair array
- 'sequence(new pair(int i) {return (x[i],y[i]);},x.length)'.
+ for arrays 'x' and 'y' of the same length, returns the pair array
+ 'sequence(new pair(int i) {return (x[i],y[i]);},x.length)';
'pair[] fft(pair[] a, int sign=1)'
returns the unnormalized Fast Fourier Transform of 'a' (if the
@@ -4230,18 +4241,18 @@ of type 'T[]'.
'pair[][] fft(pair[][] a, int sign=1)'
returns the unnormalized two-dimensional Fourier transform of 'a'
- using the given 'sign'.
+ using the given 'sign';
'pair[][][] fft(pair[][][] a, int sign=1)'
returns the unnormalized three-dimensional Fourier transform of 'a'
- using the given 'sign'.
+ using the given 'sign';
'real dot(real[] a, real[] b)'
- returns the dot product of the vectors 'a' and 'b'.
+ returns the dot product of the vectors 'a' and 'b';
'pair dot(pair[] a, pair[] b)'
returns the complex dot product 'sum(a*conj(b))' of the vectors 'a'
- and 'b'.
+ and 'b';
'real[] tridiagonal(real[] a, real[] b, real[] c, real[] f);'
Solve the periodic tridiagonal problem L'x'='f' and return the
@@ -4254,7 +4265,7 @@ of type 'T[]'.
[ c[n-1] a[n-1] b[n-1] ]
For Dirichlet boundary conditions (denoted here by 'u[-1]' and
'u[n]'), replace 'f[0]' by 'f[0]-a[0]u[-1]' and
- 'f[n-1]-c[n-1]u[n]'; then set 'a[0]=c[n-1]=0'.
+ 'f[n-1]-c[n-1]u[n]'; then set 'a[0]=c[n-1]=0';
'real[] solve(real[][] a, real[] b, bool warn=true)'
Solve the linear equation 'a'x='b' by LU decomposition and return
@@ -4270,31 +4281,31 @@ of type 'T[]'.
write(a*x);
If 'a' is a singular matrix and 'warn' is 'false', return an empty
array. If the matrix 'a' is tridiagonal, the routine 'tridiagonal'
- provides a more efficient algorithm (*note tridiagonal::).
+ provides a more efficient algorithm (*note tridiagonal::);
'real[][] solve(real[][] a, real[][] b, bool warn=true)'
Solve the linear equation 'a'x='b' and return the solution x, where
'a' is an n \times n matrix and 'b' is an n \times m matrix. If
'a' is a singular matrix and 'warn' is 'false', return an empty
- matrix.
+ matrix;
'real[][] identity(int n);'
- returns the n \times n identity matrix.
+ returns the n \times n identity matrix;
'real[][] diagonal(... real[] a)'
- returns the diagonal matrix with diagonal entries given by a.
+ returns the diagonal matrix with diagonal entries given by a;
'real[][] inverse(real[][] a)'
- returns the inverse of a square matrix 'a'.
+ returns the inverse of a square matrix 'a';
'real[] quadraticroots(real a, real b, real c);'
This numerically robust solver returns the real roots of the
quadratic equation ax^2+bx+c=0, in ascending order. Multiple roots
- are listed separately.
+ are listed separately;
'pair[] quadraticroots(explicit pair a, explicit pair b, explicit pair c);'
This numerically robust solver returns the complex roots of the
- quadratic equation ax^2+bx+c=0.
+ quadratic equation ax^2+bx+c=0;
'real[] cubicroots(real a, real b, real c, real d);'
This numerically robust solver returns the real roots of the cubic
@@ -4651,6 +4662,9 @@ code s=quote {
};
eval(s,true); // Outputs 1
+ One application of 'eval' is the creation of parametrized Asymptote
+code, such as a map from one type to another (*note map::).
+
To include the contents of an existing file 'graph' verbatim (as if
the contents of the file were inserted at that point), use one of the
forms:
@@ -4735,7 +4749,7 @@ void f();
for(int i=0; i < 10; ++i) {
int x=i;
if(x==5) {
- f=new void () { write(x); }
+ f=new void() {write(x);};
}
}
f();
@@ -4751,7 +4765,7 @@ void f() {
}
}
both 'x' and 'y' will be allocated in the same place, which is also
-where 'f' is also allocated.
+where 'f' is allocated.
Statements may also be declared static, in which case they are run at
the place where the enclosing function or structure is defined.
@@ -4985,6 +4999,7 @@ File: asymptote.info, Node: Base modules, Next: Options, Prev: LaTeX usage,
* 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
@@ -5040,9 +5055,9 @@ File: asymptote.info, Node: simplex, Next: math, Prev: plain, Up: Base modul
8.2 'simplex'
=============
-This package solves the two-variable linear programming problem using
-the simplex method. It is used by the module 'plain' for automatic
-sizing of pictures.
+This module solves the two-variable linear programming problem using the
+simplex method. It is used by the module 'plain' for automatic sizing
+of pictures.

File: asymptote.info, Node: math, Next: interpolate, Prev: simplex, Up: Base modules
@@ -5050,7 +5065,7 @@ File: asymptote.info, Node: math, Next: interpolate, Prev: simplex, Up: Base
8.3 'math'
==========
-This package extends 'Asymptote''s mathematical capabilities with useful
+This module extends 'Asymptote''s mathematical capabilities with useful
functions such as
'void drawline(picture pic=currentpicture, pair P, pair Q, pen p=currentpen);'
@@ -5152,7 +5167,7 @@ File: asymptote.info, Node: stats, Next: patterns, Prev: trembling, Up: Base
8.7 'stats'
===========
-This package implements a Gaussian random number generator and a
+This module implements a Gaussian random number generator and a
collection of statistics routines, including 'histogram' and
'leastsquares'.
@@ -5162,8 +5177,8 @@ File: asymptote.info, Node: patterns, Next: markers, Prev: stats, Up: Base m
8.8 'patterns'
==============
-This package implements 'Postscript' tiling patterns and includes
-several convenient pattern generation routines.
+This module implements 'Postscript' tiling patterns and includes several
+convenient pattern generation routines.

File: asymptote.info, Node: markers, Next: tree, Prev: patterns, Up: Base modules
@@ -5171,8 +5186,8 @@ File: asymptote.info, Node: markers, Next: tree, Prev: patterns, Up: Base mo
8.9 'markers'
=============
-This package implements specialized routines for marking paths and
-angles. The principal mark routine provided by this package is
+This module implements specialized routines for marking paths and
+angles. The principal mark routine provided by this module is
markroutine markinterval(int n=1, frame f, bool rotated=false);
which centers 'n' copies of frame 'f' within uniformly space intervals
in arclength along the path, optionally rotated by the angle of the
@@ -5200,7 +5215,7 @@ and 'TildeIntervalMarker' from the above frames. The example
[./markers1]
- This package also provides a routine for marking an angle AOB:
+ This module also provides a routine for marking an angle AOB:
void markangle(picture pic=currentpicture, Label L="",
int n=1, real radius=0, real space=0,
pair A, pair O, pair B, arrowbar arrow=None,
@@ -5212,17 +5227,38 @@ as illustrated in the example 'markers2.asy'.
[./markers2]

+File: asymptote.info, Node: map, Next: tree, Prev: markers, Up: Base modules
+
+8.10 'map'
+==========
+
+This module creates a struct parameterized by the types specified in
+strings 'key' and 'value', mapping keys to values with a specified
+default:
+import map;
+
+mapTemplate(name="map",key="string",value="int",default="-1");
+
+map M;
+
+M.add("z",2);
+M.add("a",3);
+M.add("d",4);
+write(M.lookup("a"));
+write(M.lookup("y"));
+
+
File: asymptote.info, Node: tree, Next: binarytree, Prev: markers, Up: Base modules
-8.10 'tree'
+8.11 'tree'
===========
-This package implements an example of a dynamic binary search tree.
+This module implements an example of a dynamic binary search tree.

File: asymptote.info, Node: binarytree, Next: drawtree, Prev: tree, Up: Base modules
-8.11 'binarytree'
+8.12 'binarytree'
=================
This module can be used to draw an arbitrary binary tree and includes an
@@ -5247,7 +5283,7 @@ add(pic2.fit(),(0,0),10S);

File: asymptote.info, Node: drawtree, Next: syzygy, Prev: binarytree, Up: Base modules
-8.12 'drawtree'
+8.13 'drawtree'
===============
This is a simple tree drawing module used by the example 'treetest.asy'.
@@ -5255,7 +5291,7 @@ This is a simple tree drawing module used by the example 'treetest.asy'.

File: asymptote.info, Node: syzygy, Next: feynman, Prev: drawtree, Up: Base modules
-8.13 'syzygy'
+8.14 'syzygy'
=============
This module automates the drawing of braids, relations, and syzygies,
@@ -5265,27 +5301,27 @@ along with the corresponding equations, as illustrated in the example

File: asymptote.info, Node: feynman, Next: roundedpath, Prev: syzygy, Up: Base modules
-8.14 'feynman'
+8.15 'feynman'
==============
-This package, contributed by Martin Wiebusch, is useful for drawing
+This module, contributed by Martin Wiebusch, is useful for drawing
Feynman diagrams, as illustrated by the examples 'eetomumu.asy' and
'fermi.asy'.

File: asymptote.info, Node: roundedpath, Next: animation, Prev: feynman, Up: Base modules
-8.15 'roundedpath'
+8.16 'roundedpath'
==================
-This package, contributed by Stefan Knorr, is useful for rounding the
+This module, contributed by Stefan Knorr, is useful for rounding the
sharp corners of paths, as illustrated in the example file
'roundpath.asy'.

File: asymptote.info, Node: animation, Next: embed, Prev: roundedpath, Up: Base modules
-8.16 'animation'
+8.17 'animation'
================
This module allows one to generate animations, as illustrated by the
@@ -5296,7 +5332,7 @@ MPEG movie.
The related 'animate' module, derived from the 'animation' module,
generates higher-quality portable clickable PDF movies, with optional
-controls. This requires installing the package
+controls. This requires installing the module
<http://mirror.ctan.org/macros/latex/contrib/animate/animate.sty>
(version 2007/11/30 or later) in a new directory 'animate' in the local
'LaTeX' directory (for example, in
@@ -5317,7 +5353,7 @@ described here:

File: asymptote.info, Node: embed, Next: slide, Prev: animation, Up: Base modules
-8.17 'embed'
+8.18 'embed'
============
This module provides an interface to the 'LaTeX' package (included with
@@ -5342,10 +5378,10 @@ animate::).

File: asymptote.info, Node: slide, Next: MetaPost, Prev: embed, Up: Base modules
-8.18 'slide'
+8.19 'slide'
============
-This package provides a simple yet high-quality facility for making
+This module provides a simple yet high-quality facility for making
presentation slides, including portable embedded PDF animations (see the
file 'slidemovies.asy'). A simple example is provided in
'slidedemo.asy'.
@@ -5353,10 +5389,10 @@ file 'slidemovies.asy'). A simple example is provided in

File: asymptote.info, Node: MetaPost, Next: unicode, Prev: slide, Up: Base modules
-8.19 'MetaPost'
+8.20 'MetaPost'
===============
-This package provides some useful routines to help 'MetaPost' users
+This module provides some useful routines to help 'MetaPost' users
migrate old 'MetaPost' code to 'Asymptote'. Further contributions here
are welcome.
@@ -5371,10 +5407,10 @@ equation solver 'solve' instead.

File: asymptote.info, Node: unicode, Next: latin1, Prev: MetaPost, Up: Base modules
-8.20 'unicode'
+8.21 'unicode'
==============
-Import this package at the beginning of the file to instruct 'LaTeX' to
+Import this module at the beginning of the file to instruct 'LaTeX' to
accept 'unicode' (UTF-8) standardized international characters. To use
Cyrillic fonts, you will need to change the font encoding:
import unicode;
@@ -5393,7 +5429,7 @@ texpreamble("\usepackage{CJK}

File: asymptote.info, Node: latin1, Next: babel, Prev: unicode, Up: Base modules
-8.21 'latin1'
+8.22 'latin1'
=============
If you don't have 'LaTeX' support for 'unicode' installed, you can
@@ -5404,7 +5440,7 @@ providing support for other ISO 8859 alphabets.

File: asymptote.info, Node: babel, Next: labelpath, Prev: latin1, Up: Base modules
-8.22 'babel'
+8.23 'babel'
============
This module implements the 'LaTeX' 'babel' package in 'Asymptote'. For
@@ -5415,7 +5451,7 @@ babel("german");

File: asymptote.info, Node: labelpath, Next: labelpath3, Prev: babel, Up: Base modules
-8.23 'labelpath'
+8.24 'labelpath'
================
This module uses the 'PSTricks' 'pstextpath' macro to fit labels along a
@@ -5427,13 +5463,13 @@ Here 'justify' is one of 'LeftJustified', 'Centered', or
'RightJustified'. The x component of a shift transform applied to the
Label is interpreted as a shift along the curve, whereas the y component
is interpreted as a shift away from the curve. All other Label
-transforms are ignored. This package requires the 'latex' tex engine
-and inherits the limitations of the 'PSTricks' '\pstextpath' macro.
+transforms are ignored. This module requires the 'latex' tex engine and
+inherits the limitations of the 'PSTricks' '\pstextpath' macro.

File: asymptote.info, Node: labelpath3, Next: annotate, Prev: labelpath, Up: Base modules
-8.24 'labelpath3'
+8.25 'labelpath3'
=================
This module, contributed by Jens Schwaiger, implements a 3D version of
@@ -5443,7 +5479,7 @@ provided in 'curvedlabel3.asy'.

File: asymptote.info, Node: annotate, Next: CAD, Prev: labelpath3, Up: Base modules
-8.25 'annotate'
+8.26 'annotate'
===============
This module supports PDF annotations for viewing with 'Adobe Reader',
@@ -5457,21 +5493,20 @@ and 'tex' TeX engines.

File: asymptote.info, Node: CAD, Next: graph, Prev: annotate, Up: Base modules
-8.26 'CAD'
+8.27 'CAD'
==========
-This package, contributed by Mark Henning, provides basic pen
-definitions and measurement functions for simple 2D CAD drawings
-according to DIN 15. It is documented separately, in the file
-'CAD.pdf'.
+This module, contributed by Mark Henning, provides basic pen definitions
+and measurement functions for simple 2D CAD drawings according to DIN
+15. It is documented separately, in the file 'CAD.pdf'.

File: asymptote.info, Node: graph, Next: palette, Prev: CAD, Up: Base modules
-8.27 'graph'
+8.28 'graph'
============
-This package implements two-dimensional linear and logarithmic graphs,
+This module implements two-dimensional linear and logarithmic graphs,
including automatic scale and tick selection (with the ability to
override manually). A graph is a 'guide' (that can be drawn with the
draw command, with an optional legend) constructed with one of the
@@ -6540,7 +6575,7 @@ following routines:

File: asymptote.info, Node: palette, Next: three, Prev: graph, Up: Base modules
-8.28 'palette'
+8.29 'palette'
==============
'Asymptote' can also generate color density images and palettes. The
@@ -6750,7 +6785,7 @@ pen[][] palette(real[][] f, pen[] palette);

File: asymptote.info, Node: three, Next: obj, Prev: palette, Up: Base modules
-8.29 'three'
+8.30 'three'
============
This module fully extends the notion of guides and paths in 'Asymptote'
@@ -6827,7 +6862,7 @@ and 'three_light.asy':
struct light {
real[][] diffuse;
real[][] specular;
- pen background=nullpen; // Background color of the 3D canvas.
+ pen background=nullpen; // Background color of the canvas.
real specularfactor;
triple[] position; // Only directional lights are currently implemented.
}
@@ -6844,9 +6879,11 @@ light Headlamp=light(gray(0.8),specular=gray(0.7),
currentlight=Headlamp;
light nolight;
- The 'background' pen can be use to set the 3D 'OpenGL' background
-colour (the default is white). In the case of 3D 'WebGL' images one can
-request a completely transparent background with
+ The 'currentlight.background' (or 'background' member of the
+specified 'light') can be used to set the background colour for 2D (or
+3D) images. The default background is white for 'HTML' images and
+transparent for all other formats. One can request a completely
+transparent background for 3D 'WebGL' images with
'currentlight.background=black+opacity(0.0);'
Sample Bezier surfaces are contained in the example files
@@ -7387,9 +7424,8 @@ position 'v' using pen 'p'.
three-dimensional nonrendered 'PostScript') is available with the
setting 'render=0'. This currently only works for piecewise planar
surfaces, such as those produced by the parametric 'surface' routines in
-the 'graph3' module. Surfaces produced by the 'solids' package will
-also be properly rendered if the parameter 'nslices' is sufficiently
-large.
+the 'graph3' module. Surfaces produced by the 'solids' module will also
+be properly rendered if the parameter 'nslices' is sufficiently large.
In the module 'bsp', hidden surface removal of planar pictures is
implemented using a binary space partition and picture clipping. A
@@ -7432,7 +7468,7 @@ add(faces);

File: asymptote.info, Node: obj, Next: graph3, Prev: three, Up: Base modules
-8.30 'obj'
+8.31 'obj'
==========
This module allows one to construct surfaces from simple obj files, as
@@ -7441,7 +7477,7 @@ illustrated in the example files 'galleon.asy' and 'triceratops.asy'.

File: asymptote.info, Node: graph3, Next: grid3, Prev: obj, Up: Base modules
-8.31 'graph3'
+8.32 'graph3'
=============
This module implements three-dimensional versions of the functions in
@@ -7607,7 +7643,7 @@ picture vectorfield(path3 vector(pair v), triple f(pair z), pair a, pair b,

File: asymptote.info, Node: grid3, Next: solids, Prev: graph3, Up: Base modules
-8.32 'grid3'
+8.33 'grid3'
============
This module, contributed by Philippe Ivaldi, can be used for drawing 3D
@@ -7636,10 +7672,10 @@ zaxis3(Label("$z$",position=EndPoint,align=(-1,0.5)),Bounds(Min,Min),

File: asymptote.info, Node: solids, Next: tube, Prev: grid3, Up: Base modules
-8.33 'solids'
+8.34 'solids'
=============
-This solid geometry package defines a structure 'revolution' that can be
+This solid geometry module defines a structure 'revolution' that can be
used to fill and draw surfaces of revolution. The following example
uses it to display the outline of a circular cylinder of radius 1 with
axis 'O--1.5unit(Y+Z)' with perspective projection:
@@ -7671,10 +7707,10 @@ struct skeleton {

File: asymptote.info, Node: tube, Next: flowchart, Prev: solids, Up: Base modules
-8.34 'tube'
+8.35 'tube'
===========
-This package extends the 'tube' surfaces constructed in
+This module extends the 'tube' surfaces constructed in
'three_arrows.asy' to arbitrary cross sections, colors, and spine
transformations. The routine
surface tube(path3 g, coloredpath section,
@@ -7722,10 +7758,10 @@ Further examples can be found at

File: asymptote.info, Node: flowchart, Next: contour, Prev: tube, Up: Base modules
-8.35 'flowchart'
+8.36 'flowchart'
================
-This package provides routines for drawing flowcharts. The primary
+This module provides routines for drawing flowcharts. The primary
structure is a 'block', which represents a single block on the
flowchart. The following eight functions return a position on the
appropriate edge of the block, given picture transform 't':
@@ -7838,12 +7874,12 @@ add(new void(picture pic, transform t) {

File: asymptote.info, Node: contour, Next: contour3, Prev: flowchart, Up: Base modules
-8.36 'contour'
+8.37 'contour'
==============
-This package draws contour lines. To construct contours corresponding
-to the values in a real array 'c' for a function 'f' on 'box(a,b)', use
-the routine
+This module draws contour lines. To construct contours corresponding to
+the values in a real array 'c' for a function 'f' on 'box(a,b)', use the
+routine
guide[][] contour(real f(real, real), pair a, pair b,
real[] c, int nx=ngraph, int ny=nx,
interpolate join=operator --, int subsample=1);
@@ -8017,17 +8053,17 @@ Shewchuk.

File: asymptote.info, Node: contour3, Next: smoothcontour3, Prev: contour, Up: Base modules
-8.37 'contour3'
+8.38 'contour3'
===============
-This package draws surfaces described as the null space of real-valued
+This module draws surfaces described as the null space of real-valued
functions of (x,y,z) or 'real[][][]' matrices. Its usage is illustrated
in the example file 'magnetic.asy'.

File: asymptote.info, Node: smoothcontour3, Next: slopefield, Prev: contour3, Up: Base modules
-8.38 'smoothcontour3'
+8.39 'smoothcontour3'
=====================
This module, written by Charles Staats, draws implicitly defined
@@ -8063,7 +8099,7 @@ explanation of the module's usage and pitfalls, are available at

File: asymptote.info, Node: slopefield, Next: ode, Prev: smoothcontour3, Up: Base modules
-8.39 'slopefield'
+8.40 'slopefield'
=================
To draw a slope field for the differential equation dy/dx=f(x,y) (or
@@ -8105,7 +8141,7 @@ draw(curve((0,0),func,(-3,-3),(3,3)),red);

File: asymptote.info, Node: ode, Prev: slopefield, Up: Base modules
-8.40 'ode'
+8.41 'ode'
==========
The 'ode' module, illustrated in the example 'odetest.asy', implements a
@@ -8170,12 +8206,11 @@ Options (negate by replacing - with -no):
-loop Loop 3D animations [false]
-m,-mask Mask fpu exceptions; command-line only
-maxtile pair Maximum rendering tile size [(1024,768)]
--maxviewport pair Maximum viewport size [(2048,2048)]
+-maxviewport pair Maximum viewport size [(0,0)]
-multiline Input code over multiple lines at the prompt [false]
-multipleView View output from multiple batch-mode files [false]
-multisample n Multisampling width for screen images [4]
-offline Produce offline html files [false]
--offscreen Use offscreen rendering [false]
-O,-offset pair PostScript offset [(0,0)]
-f,-outformat format Convert each output file to specified format
-o,-outname name Alternative output directory/filename
@@ -8196,7 +8231,7 @@ Options (negate by replacing - with -no):
-shiftHoldDistance n WebGL touch screen distance limit for shift mode [20]
-shiftWaitTime ms WebGL touch screen shift mode delay [200]
-spinstep deg/s Spin speed [60]
--svgemulation Emulate unimplemented SVG shading [false]
+-svgemulation Emulate unimplemented SVG shading [true]
-tabcompletion Interactive prompt auto-completion [true]
-tex engine latex|pdflatex|xelatex|lualatex|tex|pdftex|luatex|context|none [latex]
-thick Render thick 3D lines [true]
@@ -8276,10 +8311,9 @@ using the '-f' option (or 'outformat' setting).
later) from <https://dvisvgm.de>. You might need to adjust the
configuration variable 'libgs' to point to the location of your
'Ghostscript' library 'libgs.so' (or to an empty string, depending on
-how 'dvisvgm' was configured). The 2.8 version of 'dvisvgm' can display
-SVG output (used by the 'xasy' editor) for external vector EPS and PDF
-images included with the 'graphic()' function, in addition to (using the
-'latex' TeX engine) PNG and JPEG embedded raster images.
+how 'dvisvgm' was configured). The 2.9.1 version of 'dvisvgm' can
+display SVG output (used by the 'xasy' editor) for embedded EPS, PDF,
+PNG, and JPEG images included with the 'graphic()' function.
'Asymptote' can also produce any output format supported by the
'ImageMagick' 'convert' program (version 6.3.5 or later recommended; an
@@ -8628,7 +8662,9 @@ Prince. Sean Healy designed the 'Asymptote' logo. Other contributors
include Orest Shardt, Jesse Frohlich, Michail Vidiassov, Charles Staats,
Philippe Ivaldi, Olivier Guibe', Radoslav Marinov, Jeff Samuelson, Chris
Savage, Jacques Pienaar, Mark Henning, Steve Melenchuk, Martin Wiebusch,
-Stefan Knorr, and Supakorn "Jamie" Rassameemasmuang.
+Stefan Knorr, and Supakorn "Jamie" Rassameemasmuang. Pedram Emami
+developed the 'Asymptote Web Application' at
+<http://asymptote.ualberta.ca>.

File: asymptote.info, Node: Index, Prev: Credits, Up: Top
@@ -8678,9 +8714,9 @@ Index
* ---: Bezier curves. (line 84)
* -=: Self & prefix operators.
(line 6)
-* -c: Options. (line 194)
-* -l: Options. (line 213)
-* -u: Options. (line 204)
+* -c: Options. (line 192)
+* -l: Options. (line 211)
+* -u: Options. (line 202)
* -V: Configuring. (line 6)
* -V <1>: Drawing in batch mode.
(line 16)
@@ -8693,7 +8729,7 @@ Index
* 2D graphs: graph. (line 6)
* 3D graphs: graph3. (line 6)
* 3D grids: grid3. (line 6)
-* 3D PostScript: three. (line 636)
+* 3D PostScript: three. (line 638)
* :: Arithmetic & logical.
(line 61)
* ::: Bezier curves. (line 70)
@@ -8728,7 +8764,7 @@ Index
(line 35)
* accel: Paths and guides. (line 126)
* accel <1>: Paths and guides. (line 132)
-* accel <2>: three. (line 537)
+* accel <2>: three. (line 539)
* access: Import. (line 6)
* acknowledgments: Credits. (line 6)
* acos: Mathematical functions.
@@ -8741,8 +8777,8 @@ Index
(line 217)
* add <1>: Frames and pictures.
(line 231)
-* add <2>: three. (line 309)
-* addViews: three. (line 430)
+* add <2>: three. (line 311)
+* addViews: three. (line 432)
* adjust: Pens. (line 123)
* Ai: Mathematical functions.
(line 48)
@@ -8751,10 +8787,10 @@ Index
* Ai_deriv: Mathematical functions.
(line 48)
* alias: Structures. (line 62)
-* alias <1>: Arrays. (line 174)
+* alias <1>: Arrays. (line 179)
* Align: label. (line 12)
-* aligndir: Options. (line 186)
-* all: Arrays. (line 333)
+* aligndir: Options. (line 184)
+* all: Arrays. (line 338)
* Allow: Pens. (line 346)
* and: Bezier curves. (line 56)
* AND: Arithmetic & logical.
@@ -8766,22 +8802,22 @@ Index
* animation: animation. (line 6)
* animation <1>: animation. (line 6)
* annotate: annotate. (line 6)
-* antialias: three. (line 251)
-* antialias <1>: Options. (line 155)
+* antialias: three. (line 253)
+* antialias <1>: Options. (line 154)
* append: Files. (line 36)
* append <1>: Arrays. (line 39)
* arc: Paths and guides. (line 24)
* Arc: Paths and guides. (line 37)
-* arc <1>: three. (line 320)
+* arc <1>: three. (line 322)
* ArcArrow: draw. (line 26)
-* ArcArrow3: three. (line 603)
+* ArcArrow3: three. (line 605)
* ArcArrows: draw. (line 26)
-* ArcArrows3: three. (line 603)
+* ArcArrows3: three. (line 605)
* arclength: Paths and guides. (line 153)
-* arclength <1>: three. (line 537)
+* arclength <1>: three. (line 539)
* arcpoint: Paths and guides. (line 163)
* arctime: Paths and guides. (line 157)
-* arctime <1>: three. (line 537)
+* arctime <1>: three. (line 539)
* arguments: Default arguments. (line 6)
* arithmetic operators: Arithmetic & logical.
(line 6)
@@ -8795,10 +8831,10 @@ Index
* arrow keys: Drawing in interactive mode.
(line 11)
* arrow keys <1>: GUI usage. (line 6)
-* Arrow3: three. (line 603)
+* Arrow3: three. (line 605)
* arrows: draw. (line 26)
* Arrows: draw. (line 26)
-* Arrows3: three. (line 603)
+* Arrows3: three. (line 605)
* as: Import. (line 67)
* ascii: Data types. (line 308)
* ascii <1>: Data types. (line 308)
@@ -8818,9 +8854,10 @@ Index
* asy.vim: Editing modes. (line 32)
* asygl: Configuring. (line 72)
* asyinclude: LaTeX usage. (line 45)
+* Asymptote Web Application: Description. (line 6)
* asymptote.sty: LaTeX usage. (line 6)
* asymptote.xml: Editing modes. (line 48)
-* ASYMPTOTE_CONFIG: Options. (line 126)
+* ASYMPTOTE_CONFIG: Options. (line 125)
* atan: Mathematical functions.
(line 6)
* aTan: Mathematical functions.
@@ -8834,8 +8871,8 @@ Index
(line 276)
* attach <1>: LaTeX usage. (line 50)
* attach <2>: graph. (line 406)
-* autoadjust: three. (line 395)
-* autoimport: Options. (line 122)
+* autoadjust: three. (line 397)
+* autoimport: Options. (line 121)
* automatic scaling: graph. (line 690)
* automatic scaling <1>: graph. (line 690)
* axialshade: fill. (line 43)
@@ -8849,11 +8886,11 @@ Index
* background <1>: three. (line 97)
* background color: Frames and pictures.
(line 180)
-* BackView: three. (line 423)
+* BackView: three. (line 425)
* Bar: draw. (line 19)
-* Bar3: three. (line 603)
+* Bar3: three. (line 605)
* Bars: draw. (line 19)
-* Bars3: three. (line 603)
+* Bars3: three. (line 605)
* barsize: draw. (line 19)
* base modules: Base modules. (line 6)
* basealign: Pens. (line 181)
@@ -8862,30 +8899,30 @@ Index
(line 6)
* beep: Data types. (line 381)
* BeginArcArrow: draw. (line 26)
-* BeginArcArrow3: three. (line 603)
+* BeginArcArrow3: three. (line 605)
* BeginArrow: draw. (line 26)
-* BeginArrow3: three. (line 603)
+* BeginArrow3: three. (line 605)
* BeginBar: draw. (line 19)
-* BeginBar3: three. (line 603)
+* BeginBar3: three. (line 605)
* BeginDotMargin: draw. (line 42)
-* BeginDotMargin3: three. (line 619)
+* BeginDotMargin3: three. (line 621)
* BeginMargin: draw. (line 42)
-* BeginMargin3: three. (line 619)
+* BeginMargin3: three. (line 621)
* BeginPenMargin: draw. (line 42)
-* BeginPenMargin2: three. (line 619)
-* BeginPenMargin3: three. (line 619)
+* BeginPenMargin2: three. (line 621)
+* BeginPenMargin3: three. (line 621)
* BeginPoint: label. (line 55)
* Bessel: Mathematical functions.
(line 48)
* bevel: flowchart. (line 72)
* beveljoin: Pens. (line 149)
* Bezier curves: Bezier curves. (line 6)
-* Bezier patch: three. (line 116)
-* Bezier triangle: three. (line 116)
-* bezulate: three. (line 134)
+* Bezier patch: three. (line 118)
+* Bezier triangle: three. (line 118)
+* bezulate: three. (line 136)
* Bi: Mathematical functions.
(line 48)
-* Billboard: three. (line 507)
+* Billboard: three. (line 509)
* binary: Files. (line 76)
* binary format: Files. (line 76)
* binary operators: Arithmetic & logical.
@@ -8893,7 +8930,7 @@ Index
* binarytree: binarytree. (line 6)
* Bi_deriv: Mathematical functions.
(line 48)
-* black stripes: three. (line 251)
+* black stripes: three. (line 253)
* Blank: draw. (line 26)
* block.bottom: flowchart. (line 19)
* block.bottomleft: flowchart. (line 19)
@@ -8912,7 +8949,7 @@ Index
(line 6)
* Bottom: graph. (line 132)
* BottomTop: graph. (line 138)
-* BottomView: three. (line 423)
+* BottomView: three. (line 425)
* bounding box: Frames and pictures.
(line 180)
* Bounds: graph3. (line 21)
@@ -8920,8 +8957,8 @@ Index
(line 25)
* box <1>: Frames and pictures.
(line 130)
-* box <2>: three. (line 342)
-* box <3>: three. (line 344)
+* box <2>: three. (line 344)
+* box <3>: three. (line 346)
* bp: Drawing in batch mode.
(line 23)
* brace: Paths and guides. (line 51)
@@ -8939,7 +8976,7 @@ Index
* CAD: CAD. (line 6)
* calculateTransform: Frames and pictures.
(line 118)
-* camera: three. (line 389)
+* camera: three. (line 391)
* casts: Casts. (line 6)
* cbrt: Mathematical functions.
(line 6)
@@ -8947,7 +8984,7 @@ Index
* ceil: Mathematical functions.
(line 26)
* Center: label. (line 60)
-* center: three. (line 372)
+* center: three. (line 374)
* checker: Pens. (line 268)
* Chinese: unicode. (line 12)
* choose: Mathematical functions.
@@ -8956,7 +8993,7 @@ Index
(line 48)
* circle: Paths and guides. (line 10)
* Circle: Paths and guides. (line 18)
-* circle <1>: three. (line 316)
+* circle <1>: three. (line 318)
* circle <2>: flowchart. (line 61)
* circlebarframe: markers. (line 18)
* CJK: unicode. (line 12)
@@ -8977,26 +9014,26 @@ Index
* colorless: Pens. (line 57)
* colors: Pens. (line 54)
* comma: Files. (line 61)
-* comma-separated-value mode: Arrays. (line 365)
+* comma-separated-value mode: Arrays. (line 370)
* command-line options: Configuring. (line 89)
* command-line options <1>: Options. (line 6)
* comment character: Files. (line 16)
* compass directions: Labels. (line 18)
* Compiling from UNIX source: Compiling from UNIX source.
(line 6)
-* complement: Arrays. (line 140)
-* concat: Arrays. (line 170)
+* complement: Arrays. (line 145)
+* concat: Arrays. (line 175)
* conditional: Programming. (line 26)
* conditional <1>: Arithmetic & logical.
(line 61)
* config: Configuring. (line 72)
-* config <1>: Options. (line 126)
+* config <1>: Options. (line 125)
* configuration file: Configuring. (line 20)
-* configuration file <1>: Options. (line 126)
+* configuration file <1>: Options. (line 125)
* configuring: Configuring. (line 6)
* conj: Data types. (line 62)
* constructors: Structures. (line 91)
-* context: Options. (line 155)
+* context: Options. (line 154)
* continue: Programming. (line 48)
* continue <1>: Debugger. (line 31)
* contour: contour. (line 6)
@@ -9007,10 +9044,10 @@ Index
* convert: Configuring. (line 72)
* convert <1>: Files. (line 155)
* convert <2>: animation. (line 6)
-* convert <3>: Options. (line 155)
-* convertOptions: Options. (line 141)
-* Coons shading: fill. (line 77)
-* copy: Arrays. (line 167)
+* convert <3>: Options. (line 154)
+* convertOptions: Options. (line 140)
+* Coons shading: fill. (line 78)
+* copy: Arrays. (line 172)
* cos: Mathematical functions.
(line 6)
* Cos: Mathematical functions.
@@ -9025,16 +9062,16 @@ Index
* cross <2>: graph. (line 480)
* crossframe: markers. (line 22)
* crosshatch: Pens. (line 285)
-* csv: Arrays. (line 365)
+* csv: Arrays. (line 370)
* CTZ: Arithmetic & logical.
(line 68)
-* cubicroots: Arrays. (line 322)
+* cubicroots: Arrays. (line 327)
* curl: Bezier curves. (line 66)
* curl <1>: three. (line 6)
* curlSpecifier: Paths and guides. (line 408)
* currentlight: three. (line 76)
* currentpen: Pens. (line 6)
-* currentprojection: three. (line 420)
+* currentprojection: three. (line 422)
* curve: slopefield. (line 20)
* custom axis types: graph. (line 141)
* custom mark routine: graph. (line 577)
@@ -9046,7 +9083,7 @@ Index
* cyclic: Paths and guides. (line 85)
* cyclic <1>: Paths and guides. (line 376)
* cyclic <2>: Arrays. (line 39)
-* cyclic <3>: three. (line 537)
+* cyclic <3>: three. (line 539)
* Cyrillic: unicode. (line 7)
* dashdotted: Pens. (line 102)
* dashed: Pens. (line 102)
@@ -9060,7 +9097,7 @@ Index
* default arguments: Default arguments. (line 6)
* defaultformat: graph. (line 175)
* DefaultHead: draw. (line 26)
-* DefaultHead3: three. (line 603)
+* DefaultHead3: three. (line 605)
* defaultpen: Pens. (line 49)
* defaultpen <1>: Pens. (line 122)
* defaultpen <2>: Pens. (line 127)
@@ -9078,16 +9115,16 @@ Index
* delete: Files. (line 150)
* delete <1>: Arrays. (line 39)
* description: Description. (line 6)
-* diagonal: Arrays. (line 307)
+* diagonal: Arrays. (line 312)
* diamond: flowchart. (line 54)
* diffuse: three. (line 76)
* diffusepen: three. (line 66)
-* dimension: Arrays. (line 370)
+* dimension: Arrays. (line 375)
* dir: Search paths. (line 9)
* dir <1>: Data types. (line 90)
* dir <2>: Data types. (line 180)
* dir <3>: Paths and guides. (line 109)
-* dir <4>: three. (line 537)
+* dir <4>: three. (line 539)
* direction specifier: Bezier curves. (line 6)
* directory: Files. (line 25)
* dirSpecifier: Paths and guides. (line 390)
@@ -9099,14 +9136,14 @@ Index
* dot: draw. (line 82)
* dot <1>: Data types. (line 103)
* dot <2>: Data types. (line 193)
-* dot <3>: Arrays. (line 262)
-* dot <4>: Arrays. (line 265)
+* dot <3>: Arrays. (line 267)
+* dot <4>: Arrays. (line 270)
* DotMargin: draw. (line 42)
-* DotMargin3: three. (line 619)
+* DotMargin3: three. (line 621)
* DotMargins: draw. (line 42)
-* DotMargins3: three. (line 619)
+* DotMargins3: three. (line 621)
* dotted: Pens. (line 102)
-* double deferred drawing: three. (line 294)
+* double deferred drawing: three. (line 296)
* double precision: Files. (line 76)
* draw: Drawing commands. (line 31)
* draw <1>: draw. (line 6)
@@ -9114,15 +9151,15 @@ Index
* draw <2>: draw. (line 112)
* Draw <1>: Frames and pictures.
(line 160)
-* draw <3>: three. (line 142)
+* draw <3>: three. (line 144)
* drawing commands: Drawing commands. (line 6)
* drawline: math. (line 9)
* drawtree: drawtree. (line 6)
* dvips: Configuring. (line 72)
-* dvipsOptions: Options. (line 141)
+* dvipsOptions: Options. (line 140)
* dvisvgm: Configuring. (line 72)
-* dvisvgm <1>: Options. (line 160)
-* dvisvgmOptions: Options. (line 141)
+* dvisvgm <1>: Options. (line 159)
+* dvisvgmOptions: Options. (line 140)
* E: Labels. (line 18)
* E <1>: Mathematical functions.
(line 48)
@@ -9137,34 +9174,34 @@ Index
* else: Programming. (line 26)
* emacs: Editing modes. (line 6)
* embed: embed. (line 6)
-* Embedded: three. (line 507)
+* Embedded: three. (line 509)
* emissivepen: three. (line 66)
* empty: Frames and pictures.
(line 7)
* EndArcArrow: draw. (line 26)
-* EndArcArrow3: three. (line 603)
+* EndArcArrow3: three. (line 605)
* EndArrow: draw. (line 26)
-* EndArrow3: three. (line 603)
+* EndArrow3: three. (line 605)
* EndBar: draw. (line 19)
-* EndBar3: three. (line 603)
+* EndBar3: three. (line 605)
* EndDotMargin: draw. (line 42)
-* EndDotMargin3: three. (line 619)
+* EndDotMargin3: three. (line 621)
* endl: Files. (line 61)
* EndMargin: draw. (line 42)
-* EndMargin3: three. (line 619)
+* EndMargin3: three. (line 621)
* EndPenMargin: draw. (line 42)
-* EndPenMargin2: three. (line 619)
-* EndPenMargin3: three. (line 619)
+* EndPenMargin2: three. (line 621)
+* EndPenMargin3: three. (line 621)
* EndPoint: label. (line 55)
* envelope: Frames and pictures.
(line 25)
* environment variables: Configuring. (line 93)
* eof: Files. (line 93)
-* eof <1>: Arrays. (line 347)
+* eof <1>: Arrays. (line 352)
* eol: Files. (line 93)
-* eol <1>: Arrays. (line 347)
+* eol <1>: Arrays. (line 352)
* EPS: label. (line 78)
-* EPS <1>: Options. (line 155)
+* EPS <1>: Options. (line 154)
* erase: Drawing in interactive mode.
(line 11)
* erase <1>: Data types. (line 256)
@@ -9201,20 +9238,20 @@ Index
* extension: Paths and guides. (line 246)
* extension <1>: MetaPost. (line 10)
* external: embed. (line 11)
-* extrude: three. (line 531)
+* extrude: three. (line 533)
* F: Mathematical functions.
(line 48)
* fabs: Mathematical functions.
(line 6)
-* face: three. (line 644)
+* face: three. (line 645)
* factorial: Mathematical functions.
(line 39)
* Fedora: UNIX binary distributions.
(line 15)
* feynman: feynman. (line 6)
-* fft: Arrays. (line 240)
-* fft <1>: Arrays. (line 254)
-* fft <2>: Arrays. (line 258)
+* fft: Arrays. (line 245)
+* fft <1>: Arrays. (line 259)
+* fft <2>: Arrays. (line 263)
* FFTW: Compiling from UNIX source.
(line 63)
* file: Files. (line 6)
@@ -9232,12 +9269,12 @@ Index
* filloutside: fill. (line 27)
* fillrule: Pens. (line 164)
* find: Data types. (line 241)
-* find <1>: Arrays. (line 149)
-* findall: Arrays. (line 154)
+* find <1>: Arrays. (line 154)
+* findall: Arrays. (line 159)
* firstcut: Paths and guides. (line 262)
* fit: Frames and pictures.
(line 113)
-* fit3: three. (line 307)
+* fit3: three. (line 309)
* fixedscaling: Frames and pictures.
(line 81)
* floor: Mathematical functions.
@@ -9253,20 +9290,20 @@ Index
* fontsize: Pens. (line 192)
* for: Programming. (line 26)
* format: Data types. (line 289)
-* format <1>: Options. (line 155)
+* format <1>: Options. (line 154)
* forum: Help. (line 6)
* frame: Frames and pictures.
(line 7)
* freshnel0: three. (line 66)
* from: Import. (line 16)
-* FrontView: three. (line 423)
+* FrontView: three. (line 425)
* function declarations: Functions. (line 79)
-* Function shading: fill. (line 99)
-* function shading: fill. (line 99)
+* Function shading: fill. (line 100)
+* function shading: fill. (line 100)
* functions: Functions. (line 6)
* functions <1>: Mathematical functions.
(line 6)
-* functionshade: fill. (line 99)
+* functionshade: fill. (line 100)
* gamma: Mathematical functions.
(line 6)
* Gaussrand: Mathematical functions.
@@ -9278,17 +9315,17 @@ Index
* getstring: Files. (line 118)
* gettriple: Files. (line 118)
* git: Git. (line 6)
-* glOptions: three. (line 251)
-* glOptions <1>: Options. (line 141)
+* glOptions: three. (line 253)
+* glOptions <1>: Options. (line 140)
* GNU Scientific Library: Mathematical functions.
(line 48)
-* gouraudshade: fill. (line 62)
+* gouraudshade: fill. (line 63)
* Gradient: palette. (line 25)
* gradient shading: fill. (line 32)
* graph: graph. (line 6)
* graph3: graph3. (line 6)
* graphic: label. (line 78)
-* graphic <1>: Options. (line 160)
+* graphic <1>: Options. (line 159)
* graphical user interface: GUI. (line 6)
* gray: Pens. (line 25)
* grayscale: Pens. (line 25)
@@ -9301,7 +9338,7 @@ Index
(line 63)
* gsl: Mathematical functions.
(line 48)
-* gsOptions: Options. (line 141)
+* gsOptions: Options. (line 140)
* GUI: GUI. (line 6)
* GUI installation: GUI installation. (line 6)
* GUI usage: GUI usage. (line 6)
@@ -9319,30 +9356,30 @@ Index
* hex <1>: Pens. (line 64)
* hexadecimal: Data types. (line 305)
* hexadecimal <1>: Pens. (line 62)
-* hidden surface removal: three. (line 644)
+* hidden surface removal: three. (line 645)
* histogram: Mathematical functions.
(line 39)
* history: Files. (line 143)
* history <1>: Interactive mode. (line 54)
* historylines: Interactive mode. (line 57)
* HookHead: draw. (line 26)
-* HookHead3: three. (line 603)
+* HookHead3: three. (line 605)
* Horizontal: flowchart. (line 77)
-* HTML5: three. (line 220)
+* HTML5: three. (line 222)
* htmlviewer: Configuring. (line 20)
* htmlviewer <1>: Configuring. (line 43)
-* htmlviewerOptions: Options. (line 141)
-* hyperrefOptions: Options. (line 141)
+* htmlviewerOptions: Options. (line 140)
+* hyperrefOptions: Options. (line 140)
* hypot: Mathematical functions.
(line 6)
* I: Mathematical functions.
(line 48)
-* iconify: three. (line 251)
+* iconify: three. (line 253)
* identity: Transforms. (line 24)
* identity <1>: Mathematical functions.
(line 6)
-* identity <2>: Arrays. (line 304)
-* identity4: three. (line 475)
+* identity <2>: Arrays. (line 309)
+* identity4: three. (line 477)
* if: Programming. (line 26)
* IgnoreAspect: Frames and pictures.
(line 63)
@@ -9350,7 +9387,7 @@ Index
* image <1>: palette. (line 58)
* ImageMagick: Configuring. (line 72)
* ImageMagick <1>: animation. (line 6)
-* ImageMagick <2>: Options. (line 155)
+* ImageMagick <2>: Options. (line 154)
* images: palette. (line 6)
* implicit casts: Casts. (line 6)
* implicit linear solver: MetaPost. (line 10)
@@ -9359,7 +9396,7 @@ Index
* import: Import. (line 45)
* inches: Figure size. (line 18)
* incircle: Data types. (line 120)
-* include: Import. (line 126)
+* include: Import. (line 129)
* including images: label. (line 78)
* increasing: math. (line 55)
* inf: Data types. (line 35)
@@ -9378,7 +9415,7 @@ Index
* inside: Paths and guides. (line 294)
* inside <1>: Paths and guides. (line 299)
* inside <2>: Paths and guides. (line 305)
-* insphere: three. (line 566)
+* insphere: three. (line 568)
* inst: Debugger. (line 35)
* installation: Installation. (line 6)
* int: Data types. (line 30)
@@ -9398,23 +9435,23 @@ Index
* interpolate: interpolate. (line 6)
* intersect: Paths and guides. (line 195)
* intersect <1>: math. (line 13)
-* intersect <2>: three. (line 537)
+* intersect <2>: three. (line 539)
* intersectionpoint: Paths and guides. (line 238)
* intersectionpoint <1>: math. (line 17)
-* intersectionpoint <2>: three. (line 537)
+* intersectionpoint <2>: three. (line 539)
* intersectionpoints: Paths and guides. (line 242)
-* intersectionpoints <1>: three. (line 537)
-* intersectionpoints <2>: three. (line 550)
+* intersectionpoints <1>: three. (line 539)
+* intersectionpoints <2>: three. (line 552)
* intersections: Paths and guides. (line 206)
* intersections <1>: Paths and guides. (line 213)
-* intersections <2>: three. (line 537)
-* intersections <3>: three. (line 543)
+* intersections <2>: three. (line 539)
+* intersections <3>: three. (line 545)
* InTicks: graph3. (line 35)
* intMax: Data types. (line 30)
* intMin: Data types. (line 30)
* inverse: Transforms. (line 16)
-* inverse <1>: Arrays. (line 310)
-* invert: three. (line 465)
+* inverse <1>: Arrays. (line 315)
+* invert: three. (line 467)
* invisible: Pens. (line 43)
* isnan: Data types. (line 35)
* i_scaled: Mathematical functions.
@@ -9433,7 +9470,7 @@ Index
* keepAspect <1>: Frames and pictures.
(line 63)
* keepAspect <2>: LaTeX usage. (line 50)
-* keyboard bindings:: three. (line 198)
+* keyboard bindings:: three. (line 200)
* keys: Arrays. (line 39)
* keyword: Named arguments. (line 37)
* keyword-only: Named arguments. (line 37)
@@ -9446,7 +9483,7 @@ Index
* label <1>: label. (line 6)
* Label <1>: label. (line 14)
* Label <2>: graph. (line 330)
-* label <2>: three. (line 501)
+* label <2>: three. (line 503)
* labelpath: labelpath. (line 6)
* labelpath3: labelpath3. (line 6)
* labelx: graph. (line 330)
@@ -9455,7 +9492,7 @@ Index
(line 104)
* lastcut: Paths and guides. (line 266)
* lasy-mode: Editing modes. (line 6)
-* latex: Options. (line 155)
+* latex: Options. (line 154)
* LaTeX fonts: Pens. (line 206)
* LaTeX usage: LaTeX usage. (line 6)
* latexmk: LaTeX usage. (line 30)
@@ -9470,7 +9507,7 @@ Index
* LeftSide: label. (line 60)
* LeftTicks: graph. (line 160)
* LeftTicks <1>: graph. (line 233)
-* LeftView: three. (line 423)
+* LeftView: three. (line 425)
* legend: Drawing commands. (line 31)
* legend <1>: draw. (line 64)
* legend <2>: graph. (line 424)
@@ -9482,20 +9519,20 @@ Index
* length <3>: Paths and guides. (line 76)
* length <4>: Paths and guides. (line 373)
* length <5>: Arrays. (line 39)
-* length <6>: three. (line 537)
+* length <6>: three. (line 539)
* letter: Configuring. (line 66)
* lexorder: math. (line 63)
* lexorder <1>: math. (line 66)
-* libgs: Options. (line 160)
+* libgs: Options. (line 159)
* libm routines: Mathematical functions.
(line 6)
* libsigsegv: Functions. (line 100)
* libsigsegv <1>: Help. (line 27)
* light: three. (line 76)
* limits: graph. (line 639)
-* line: Arrays. (line 347)
-* line <1>: Arrays. (line 351)
-* line mode: Arrays. (line 347)
+* line: Arrays. (line 352)
+* line <1>: Arrays. (line 356)
+* line mode: Arrays. (line 352)
* Linear: graph. (line 690)
* linecap: Pens. (line 139)
* linejoin: Pens. (line 149)
@@ -9519,19 +9556,21 @@ Index
* longdashed: Pens. (line 102)
* longitude: Data types. (line 168)
* loop: Programming. (line 26)
-* lualatex: Options. (line 155)
-* luatex: Options. (line 155)
+* lualatex: Options. (line 154)
+* luatex: Options. (line 154)
* MacOS X binary distributions: MacOS X binary distributions.
(line 6)
* makepen: Pens. (line 321)
* map: Arrays. (line 131)
+* map <1>: Arrays. (line 136)
+* map <2>: map. (line 6)
* Margin: draw. (line 42)
* Margin <1>: draw. (line 42)
-* Margin3: three. (line 619)
-* Margin3 <1>: three. (line 619)
+* Margin3: three. (line 621)
+* Margin3 <1>: three. (line 621)
* Margins: draw. (line 42)
-* margins: three. (line 300)
-* Margins3: three. (line 619)
+* margins: three. (line 302)
+* Margins3: three. (line 621)
* mark: graph. (line 480)
* markangle: markers. (line 35)
* marker: graph. (line 480)
@@ -9546,14 +9585,14 @@ Index
* max: Paths and guides. (line 279)
* max <1>: Frames and pictures.
(line 7)
-* max <2>: Arrays. (line 221)
-* max <3>: Arrays. (line 231)
-* max <4>: three. (line 537)
+* max <2>: Arrays. (line 226)
+* max <3>: Arrays. (line 236)
+* max <4>: three. (line 539)
* maxbound: Data types. (line 134)
* maxbound <1>: Data types. (line 204)
-* maxtile: three. (line 251)
+* maxtile: three. (line 253)
* maxtimes: Paths and guides. (line 233)
-* maxviewport: three. (line 251)
+* maxviewport: three. (line 253)
* metallic: three. (line 66)
* MetaPost: MetaPost. (line 6)
* MetaPost ... : Bezier curves. (line 70)
@@ -9563,17 +9602,17 @@ Index
* MetaPost whatever: MetaPost. (line 10)
* Microsoft Windows: Microsoft Windows. (line 6)
* MidArcArrow: draw. (line 26)
-* MidArcArrow3: three. (line 603)
+* MidArcArrow3: three. (line 605)
* MidArrow: draw. (line 26)
-* MidArrow3: three. (line 603)
+* MidArrow3: three. (line 605)
* MidPoint: label. (line 55)
* midpoint: Paths and guides. (line 180)
* min: Paths and guides. (line 275)
* min <1>: Frames and pictures.
(line 7)
-* min <2>: Arrays. (line 216)
-* min <3>: Arrays. (line 226)
-* min <4>: three. (line 537)
+* min <2>: Arrays. (line 221)
+* min <3>: Arrays. (line 231)
+* min <4>: three. (line 539)
* minbound: Data types. (line 131)
* minbound <1>: Data types. (line 201)
* minipage: label. (line 116)
@@ -9582,16 +9621,16 @@ Index
* miterlimit: Pens. (line 159)
* mktemp: Files. (line 44)
* mm: Figure size. (line 18)
-* mobile browser: three. (line 220)
+* mobile browser: three. (line 222)
* mode: Files. (line 76)
* mode <1>: Files. (line 89)
* monotonic: graph. (line 36)
* mouse: GUI. (line 6)
-* mouse bindings: three. (line 179)
+* mouse bindings: three. (line 181)
* mouse wheel: GUI usage. (line 6)
* Move: Pens. (line 358)
* MoveQuiet: Pens. (line 364)
-* multisample: three. (line 172)
+* multisample: three. (line 174)
* N: Labels. (line 18)
* name: Files. (line 89)
* named arguments: Named arguments. (line 6)
@@ -9615,12 +9654,12 @@ Index
(line 154)
* nolight: three. (line 76)
* NoMargin: draw. (line 42)
-* NoMargin3: three. (line 619)
+* NoMargin3: three. (line 621)
* None: draw. (line 19)
* None <1>: draw. (line 26)
* none: Files. (line 61)
-* normal: three. (line 523)
-* nosafe: Options. (line 181)
+* normal: three. (line 525)
+* nosafe: Options. (line 179)
* NOT: Arithmetic & logical.
(line 68)
* notaknot: graph. (line 36)
@@ -9632,23 +9671,23 @@ Index
(line 140)
* nullpen <2>: Frames and pictures.
(line 149)
-* NURBS: three. (line 399)
-* O: three. (line 312)
+* NURBS: three. (line 401)
+* O: three. (line 314)
* obj: obj. (line 6)
-* oblique: three. (line 355)
-* obliqueX: three. (line 362)
-* obliqueY: three. (line 368)
-* obliqueZ: three. (line 355)
+* oblique: three. (line 357)
+* obliqueX: three. (line 364)
+* obliqueY: three. (line 370)
+* obliqueZ: three. (line 357)
* ode: ode. (line 6)
* offset: Pens. (line 123)
-* offset <1>: Options. (line 186)
+* offset <1>: Options. (line 184)
* OmitTick: graph. (line 223)
* OmitTickInterval: graph. (line 223)
* OmitTickIntervals: graph. (line 223)
* opacity: Pens. (line 237)
* opacity <1>: three. (line 66)
* open: Files. (line 12)
-* OpenGL: three. (line 172)
+* OpenGL: three. (line 174)
* operator: User-defined operators.
(line 6)
* operator +(...string[] a).: Data types. (line 283)
@@ -9665,15 +9704,15 @@ Index
* OR: Arithmetic & logical.
(line 68)
* orient: Data types. (line 108)
-* orient <1>: three. (line 554)
+* orient <1>: three. (line 556)
* orientation: Frames and pictures.
(line 104)
-* orthographic: three. (line 372)
-* outformat: three. (line 172)
+* orthographic: three. (line 374)
+* outformat: three. (line 174)
* outprefix: Frames and pictures.
(line 91)
* output: Files. (line 36)
-* output <1>: Options. (line 155)
+* output <1>: Options. (line 154)
* OutTicks: graph3. (line 35)
* overloading functions: Functions. (line 55)
* overwrite: Pens. (line 343)
@@ -9685,7 +9724,7 @@ Index
(line 186)
* pair: Figure size. (line 6)
* pair <1>: Data types. (line 46)
-* pairs: Arrays. (line 236)
+* pairs: Arrays. (line 241)
* paperheight: Configuring. (line 66)
* papertype: Configuring. (line 66)
* paperwidth: Configuring. (line 66)
@@ -9694,7 +9733,7 @@ Index
* parametrized curve: graph. (line 639)
* partialsum: math. (line 49)
* partialsum <1>: math. (line 52)
-* patch-dependent colors: three. (line 107)
+* patch-dependent colors: three. (line 109)
* path: Paths. (line 6)
* path <1>: Paths and guides. (line 7)
* path <2>: three. (line 42)
@@ -9706,38 +9745,38 @@ Index
* patterns: Pens. (line 254)
* patterns <1>: patterns. (line 6)
* PBR: three. (line 74)
-* PDF: Options. (line 155)
-* pdflatex: Options. (line 155)
-* pdfreloadOptions: Options. (line 141)
+* PDF: Options. (line 154)
+* pdflatex: Options. (line 154)
+* pdfreloadOptions: Options. (line 140)
* pdfviewer: Configuring. (line 20)
-* pdfviewerOptions: Options. (line 141)
+* pdfviewerOptions: Options. (line 140)
* pen: Pens. (line 6)
* PenMargin: draw. (line 42)
-* PenMargin2: three. (line 619)
-* PenMargin3: three. (line 619)
+* PenMargin2: three. (line 621)
+* PenMargin3: three. (line 621)
* PenMargins: draw. (line 42)
-* PenMargins2: three. (line 619)
-* PenMargins3: three. (line 619)
+* PenMargins2: three. (line 621)
+* PenMargins3: three. (line 621)
* periodic: graph. (line 36)
* perl: LaTeX usage. (line 30)
* perpendicular: geometry. (line 6)
-* perspective: three. (line 399)
+* perspective: three. (line 401)
* physically based rendering: three. (line 74)
* picture: Frames and pictures.
(line 39)
* picture alignment: Frames and pictures.
(line 231)
* piecewisestraight: Paths and guides. (line 92)
-* pixel: three. (line 626)
+* pixel: three. (line 628)
* Pl: Mathematical functions.
(line 48)
* plain: plain. (line 6)
-* planar: three. (line 116)
-* plane: three. (line 338)
-* planeproject: three. (line 520)
+* planar: three. (line 118)
+* plane: three. (line 340)
+* planeproject: three. (line 522)
* point: Paths and guides. (line 95)
* point <1>: Paths and guides. (line 379)
-* point <2>: three. (line 537)
+* point <2>: three. (line 539)
* polar: Data types. (line 148)
* polargraph: graph. (line 88)
* polygon: graph. (line 480)
@@ -9746,7 +9785,7 @@ Index
(line 104)
* position: three. (line 76)
* postcontrol: Paths and guides. (line 146)
-* postcontrol <1>: three. (line 537)
+* postcontrol <1>: three. (line 539)
* postfix operators: Self & prefix operators.
(line 19)
* postscript: Frames and pictures.
@@ -9755,10 +9794,10 @@ Index
* PostScript subpath: Paths. (line 23)
* pow10: Mathematical functions.
(line 6)
-* prc: three. (line 269)
+* prc: three. (line 271)
* precision: Files. (line 93)
* precontrol: Paths and guides. (line 139)
-* precontrol <1>: three. (line 537)
+* precontrol <1>: three. (line 539)
* prefix operators: Self & prefix operators.
(line 6)
* private: Structures. (line 6)
@@ -9766,15 +9805,15 @@ Index
* pstoedit: PostScript to Asymptote.
(line 6)
* psviewer: Configuring. (line 20)
-* psviewerOptions: Options. (line 141)
+* psviewerOptions: Options. (line 140)
* pt: Figure size. (line 18)
* public: Structures. (line 6)
* push: Arrays. (line 39)
* Python usage: Interactive mode. (line 72)
-* quadraticroots: Arrays. (line 313)
-* quadraticroots <1>: Arrays. (line 318)
+* quadraticroots: Arrays. (line 318)
+* quadraticroots <1>: Arrays. (line 323)
* quarticroots: math. (line 22)
-* quick reference: Description. (line 84)
+* quick reference: Description. (line 88)
* quit: Drawing in interactive mode.
(line 11)
* quit <1>: Interactive mode. (line 54)
@@ -9782,7 +9821,7 @@ Index
* quote: Import. (line 115)
* quotient: Arithmetic & logical.
(line 6)
-* radialshade: fill. (line 51)
+* radialshade: fill. (line 52)
* RadialShade: Frames and pictures.
(line 172)
* RadialShadeDraw: Frames and pictures.
@@ -9790,15 +9829,15 @@ Index
* radians: Mathematical functions.
(line 17)
* radius: Paths and guides. (line 135)
-* radius <1>: three. (line 537)
+* radius <1>: three. (line 539)
* Rainbow: palette. (line 12)
* rand: Mathematical functions.
(line 39)
* randMax: Mathematical functions.
(line 39)
-* read: Arrays. (line 387)
+* read: Arrays. (line 392)
* reading: Files. (line 12)
-* reading string arrays: Arrays. (line 357)
+* reading string arrays: Arrays. (line 362)
* readline: Files. (line 135)
* real: Data types. (line 35)
* realDigits: Data types. (line 35)
@@ -9808,7 +9847,7 @@ Index
* realmult: Data types. (line 100)
* rectangle: flowchart. (line 34)
* recursion: Functions. (line 100)
-* reference: Description. (line 84)
+* reference: Description. (line 88)
* reflect: Transforms. (line 42)
* Relative: label. (line 50)
* Relative <1>: label. (line 60)
@@ -9818,8 +9857,8 @@ Index
(line 6)
* rename: Files. (line 152)
* render: three. (line 46)
-* render <1>: three. (line 172)
-* render <2>: Options. (line 155)
+* render <1>: three. (line 174)
+* render <2>: Options. (line 154)
* replace: Data types. (line 269)
* resetdefaultpen: Pens. (line 370)
* rest arguments: Rest arguments. (line 6)
@@ -9830,8 +9869,8 @@ Index
* reverse: Data types. (line 265)
* reverse <1>: Paths and guides. (line 183)
* reverse <2>: Paths and guides. (line 382)
-* reverse <3>: Arrays. (line 136)
-* reverse <4>: three. (line 537)
+* reverse <3>: Arrays. (line 141)
+* reverse <4>: three. (line 539)
* rewind: Files. (line 93)
* rfind: Data types. (line 246)
* rgb: Pens. (line 30)
@@ -9843,9 +9882,9 @@ Index
* RightSide: label. (line 60)
* RightTicks: graph. (line 160)
* RightTicks <1>: graph. (line 233)
-* RightView: three. (line 423)
+* RightView: three. (line 425)
* Rotate: label. (line 36)
-* rotate: three. (line 491)
+* rotate: three. (line 493)
* Rotate(pair z): label. (line 39)
* round: Mathematical functions.
(line 26)
@@ -9858,7 +9897,7 @@ Index
* runtime imports: Import. (line 97)
* Russian: unicode. (line 7)
* S: Labels. (line 18)
-* safe: Options. (line 181)
+* safe: Options. (line 179)
* save: Frames and pictures.
(line 288)
* saveline: Files. (line 135)
@@ -9868,13 +9907,13 @@ Index
* scale <2>: Transforms. (line 36)
* scale <3>: graph. (line 690)
* Scale <1>: graph. (line 707)
-* scale <4>: three. (line 490)
-* scale3: three. (line 488)
+* scale <4>: three. (line 492)
+* scale3: three. (line 490)
* scaled graph: graph. (line 670)
* scientific graph: graph. (line 387)
* scroll: Files. (line 109)
-* search: Arrays. (line 157)
-* search <1>: Arrays. (line 163)
+* search: Arrays. (line 162)
+* search <1>: Arrays. (line 168)
* search paths: Search paths. (line 6)
* Seascape: Frames and pictures.
(line 110)
@@ -9890,7 +9929,7 @@ Index
(line 6)
* sequence: Arrays. (line 118)
* settings: Configuring. (line 20)
-* settings <1>: Options. (line 126)
+* settings <1>: Options. (line 125)
* sgn: Mathematical functions.
(line 26)
* shading: fill. (line 32)
@@ -9898,12 +9937,12 @@ Index
* shift: Transforms. (line 26)
* shift <1>: Transforms. (line 28)
* shift <2>: Transforms. (line 46)
-* shift <3>: three. (line 480)
+* shift <3>: three. (line 482)
* shiftless: Transforms. (line 46)
* shininess: three. (line 66)
* shipout: Frames and pictures.
(line 91)
-* showtarget: three. (line 372)
+* showtarget: three. (line 374)
* Si: Mathematical functions.
(line 48)
* signedint: Files. (line 76)
@@ -9923,9 +9962,9 @@ Index
* singlereal <1>: Files. (line 89)
* sinh: Mathematical functions.
(line 6)
-* SixViews: three. (line 438)
-* SixViewsFR: three. (line 438)
-* SixViewsUS: three. (line 438)
+* SixViews: three. (line 440)
+* SixViewsFR: three. (line 440)
+* SixViewsUS: three. (line 440)
* size: Figure size. (line 6)
* size <1>: Paths and guides. (line 81)
* size <2>: Paths and guides. (line 370)
@@ -9933,9 +9972,9 @@ Index
(line 48)
* size <4>: Frames and pictures.
(line 74)
-* size <5>: three. (line 537)
-* size <6>: Options. (line 155)
-* size3: three. (line 297)
+* size <5>: three. (line 539)
+* size <6>: Options. (line 154)
+* size3: three. (line 299)
* Slant: label. (line 42)
* slant: Transforms. (line 38)
* sleep: Data types. (line 375)
@@ -9951,11 +9990,11 @@ Index
(line 48)
* solid: Pens. (line 102)
* solids: solids. (line 6)
-* solve: Arrays. (line 282)
-* solve <1>: Arrays. (line 298)
-* sort: Arrays. (line 177)
-* sort <1>: Arrays. (line 181)
-* sort <2>: Arrays. (line 196)
+* solve: Arrays. (line 287)
+* solve <1>: Arrays. (line 303)
+* sort: Arrays. (line 182)
+* sort <1>: Arrays. (line 186)
+* sort <2>: Arrays. (line 201)
* specular: three. (line 76)
* specularfactor: three. (line 76)
* specularpen: three. (line 66)
@@ -9979,7 +10018,7 @@ Index
* stop: Debugger. (line 10)
* straight: Paths and guides. (line 88)
* Straight: graph. (line 30)
-* straight <1>: three. (line 537)
+* straight <1>: three. (line 539)
* strftime: Data types. (line 320)
* strftime <1>: Data types. (line 345)
* string: Data types. (line 207)
@@ -9991,21 +10030,21 @@ Index
* struct: Structures. (line 6)
* structures: Structures. (line 6)
* subpath: Paths and guides. (line 186)
-* subpath <1>: three. (line 537)
+* subpath <1>: three. (line 539)
* subpictures: Frames and pictures.
(line 113)
* substr: Data types. (line 261)
-* sum: Arrays. (line 211)
+* sum: Arrays. (line 216)
* superpath: Paths. (line 23)
* Suppress: Pens. (line 350)
* SuppressQuiet: Pens. (line 354)
* surface: three. (line 46)
-* surface <1>: three. (line 116)
-* surface <2>: three. (line 130)
+* surface <1>: three. (line 118)
+* surface <2>: three. (line 132)
* surface <3>: graph3. (line 99)
-* SVG: Options. (line 160)
+* SVG: Options. (line 159)
* system: Data types. (line 353)
-* system <1>: Options. (line 181)
+* system <1>: Options. (line 179)
* syzygy: syzygy. (line 6)
* tab: Files. (line 61)
* tab completion: Drawing in interactive mode.
@@ -10016,22 +10055,22 @@ Index
(line 20)
* tanh: Mathematical functions.
(line 6)
-* target: three. (line 372)
+* target: three. (line 374)
* tell: Files. (line 93)
* tension: Bezier curves. (line 56)
* tension <1>: three. (line 6)
* tensionSpecifier: Paths and guides. (line 402)
-* tensor product shading: fill. (line 77)
-* tensorshade: fill. (line 77)
-* tessellation: three. (line 142)
+* tensor product shading: fill. (line 78)
+* tensorshade: fill. (line 78)
+* tessellation: three. (line 144)
* tex: Frames and pictures.
(line 305)
-* tex <1>: Options. (line 155)
+* tex <1>: Options. (line 154)
* TeX fonts: Pens. (line 215)
* TeX string: Data types. (line 207)
* texcommand: Configuring. (line 72)
* TeXHead: draw. (line 26)
-* TeXHead3: three. (line 603)
+* TeXHead3: three. (line 605)
* texpath: Configuring. (line 72)
* texpath <1>: label. (line 113)
* texpreamble: Frames and pictures.
@@ -10041,13 +10080,13 @@ Index
* textbook graph: graph. (line 360)
* tgz: UNIX binary distributions.
(line 6)
-* thick: three. (line 154)
-* thin: three. (line 154)
+* thick: three. (line 156)
+* thin: three. (line 156)
* this: Structures. (line 6)
* three: three. (line 6)
-* ThreeViews: three. (line 438)
-* ThreeViewsFR: three. (line 438)
-* ThreeViewsUS: three. (line 438)
+* ThreeViews: three. (line 440)
+* ThreeViewsFR: three. (line 440)
+* ThreeViewsUS: three. (line 440)
* tick: graph. (line 330)
* ticks: graph. (line 160)
* Ticks: graph. (line 160)
@@ -10062,28 +10101,28 @@ Index
* times: Paths and guides. (line 220)
* times <1>: Paths and guides. (line 224)
* Top: graph. (line 135)
-* TopView: three. (line 423)
+* TopView: three. (line 425)
* trace: Debugger. (line 50)
* trailingzero: graph. (line 175)
* transform: Transforms. (line 6)
-* transform <1>: three. (line 512)
-* transform3: three. (line 475)
+* transform <1>: three. (line 514)
+* transform3: three. (line 477)
* transparency: Pens. (line 237)
* transparent: three. (line 97)
-* transpose: Arrays. (line 203)
-* transpose <1>: Arrays. (line 206)
+* transpose: Arrays. (line 208)
+* transpose <1>: Arrays. (line 211)
* tree: tree. (line 6)
* trembling: trembling. (line 6)
* triangle: geometry. (line 6)
-* triangles: three. (line 142)
+* triangles: three. (line 144)
* triangulate: contour. (line 149)
-* tridiagonal: Arrays. (line 269)
+* tridiagonal: Arrays. (line 274)
* trigonometric integrals: Mathematical functions.
(line 48)
* triple: Data types. (line 137)
* TrueMargin: draw. (line 42)
-* TrueMargin3: three. (line 619)
-* tube: three. (line 154)
+* TrueMargin3: three. (line 621)
+* tube: three. (line 156)
* tube <1>: tube. (line 6)
* tutorial: Tutorial. (line 6)
* type1cm: Pens. (line 192)
@@ -10092,22 +10131,22 @@ Index
* U3D: embed. (line 22)
* undefined: Paths and guides. (line 283)
* UnFill: draw. (line 26)
-* unfill: fill. (line 109)
+* unfill: fill. (line 110)
* UnFill <1>: Frames and pictures.
(line 165)
* UnFill <2>: Frames and pictures.
(line 168)
* unicode: unicode. (line 6)
-* uniform: Arrays. (line 145)
+* uniform: Arrays. (line 150)
* uninstall: Uninstall. (line 6)
* unique: math. (line 59)
* unit: Data types. (line 83)
* unit <1>: Data types. (line 173)
* unitbox: Paths. (line 44)
-* unitbox <1>: three. (line 344)
+* unitbox <1>: three. (line 346)
* unitcircle: Paths. (line 17)
* unitcircle <1>: Paths. (line 17)
-* unitcircle <2>: three. (line 312)
+* unitcircle <2>: three. (line 314)
* unitrand: Mathematical functions.
(line 39)
* unitsize: Figure size. (line 39)
@@ -10117,7 +10156,7 @@ Index
(line 6)
* unpacking: Rest arguments. (line 39)
* unravel: Import. (line 29)
-* up: three. (line 372)
+* up: three. (line 374)
* update: Files. (line 36)
* UpsideDown: Frames and pictures.
(line 104)
@@ -10138,38 +10177,38 @@ Index
* vectorfield: graph. (line 1004)
* vectorfield <1>: graph. (line 1043)
* vectorfield3: graph3. (line 157)
-* vectorization: Arrays. (line 326)
+* vectorization: Arrays. (line 331)
* verbatim: Frames and pictures.
(line 297)
-* vertex-dependent colors: three. (line 107)
+* vertex-dependent colors: three. (line 109)
* Vertical: flowchart. (line 77)
* Viewport: three. (line 76)
* viewportheight: LaTeX usage. (line 50)
-* viewportmargin: three. (line 300)
-* viewportsize: three. (line 300)
+* viewportmargin: three. (line 302)
+* viewportsize: three. (line 302)
* viewportwidth: LaTeX usage. (line 50)
-* views: three. (line 269)
+* views: three. (line 271)
* vim: Editing modes. (line 32)
* virtual functions: Structures. (line 181)
* void: Data types. (line 10)
* W: Labels. (line 18)
-* WebGL: three. (line 220)
+* WebGL: three. (line 222)
* whatever: Paths and guides. (line 246)
* Wheel: palette. (line 22)
* wheel mouse: GUI. (line 6)
* while: Programming. (line 48)
* White: three. (line 76)
-* white-space string delimiter mode: Arrays. (line 357)
+* white-space string delimiter mode: Arrays. (line 362)
* width: LaTeX usage. (line 50)
* windingnumber: Paths and guides. (line 283)
-* word: Arrays. (line 357)
+* word: Arrays. (line 362)
* write: Files. (line 53)
-* write <1>: Arrays. (line 396)
-* X: three. (line 312)
+* write <1>: Arrays. (line 401)
+* X: three. (line 314)
* xasy: GUI. (line 6)
* xaxis3: graph3. (line 7)
* xdr: Files. (line 76)
-* xelatex: Options. (line 155)
+* xelatex: Options. (line 154)
* XEquals: graph. (line 265)
* xequals: graph. (line 278)
* xlimits: graph. (line 639)
@@ -10178,10 +10217,10 @@ Index
* xpart: Data types. (line 94)
* xpart <1>: Data types. (line 184)
* xscale: Transforms. (line 30)
-* xscale3: three. (line 482)
+* xscale3: three. (line 484)
* xtick: graph. (line 330)
-* XY: three. (line 497)
-* XY <1>: three. (line 512)
+* XY: three. (line 499)
+* XY <1>: three. (line 514)
* XYEquals: graph3. (line 21)
* XYZero: graph3. (line 21)
* XZEquals: graph3. (line 21)
@@ -10191,7 +10230,7 @@ Index
(line 6)
* Y <1>: Mathematical functions.
(line 48)
-* Y <2>: three. (line 312)
+* Y <2>: three. (line 314)
* yaxis3: graph3. (line 7)
* YEquals: graph. (line 128)
* yequals: graph. (line 278)
@@ -10199,14 +10238,14 @@ Index
* ypart: Data types. (line 97)
* ypart <1>: Data types. (line 187)
* yscale: Transforms. (line 32)
-* yscale3: three. (line 484)
+* yscale3: three. (line 486)
* ytick: graph. (line 330)
-* YX: three. (line 512)
-* YZ: three. (line 512)
+* YX: three. (line 514)
+* YZ: three. (line 514)
* YZEquals: graph3. (line 21)
* YZero: graph. (line 123)
* YZZero: graph3. (line 21)
-* Z: three. (line 312)
+* Z: three. (line 314)
* zaxis3: graph3. (line 7)
* zeroTransform: Transforms. (line 44)
* zerowinding: Pens. (line 164)
@@ -10223,159 +10262,160 @@ Index
* zeta: Mathematical functions.
(line 48)
* zpart: Data types. (line 190)
-* zscale3: three. (line 486)
-* ZX: three. (line 512)
-* ZX <1>: three. (line 512)
-* ZY: three. (line 512)
+* zscale3: three. (line 488)
+* ZX: three. (line 514)
+* ZX <1>: three. (line 514)
+* ZY: three. (line 514)

Tag Table:
Node: Top570
-Node: Description7280
-Node: Installation11190
-Node: UNIX binary distributions12236
-Node: MacOS X binary distributions13366
-Node: Microsoft Windows13921
-Node: Configuring15128
-Node: Search paths19591
-Node: Compiling from UNIX source20430
-Node: Editing modes23492
-Node: Git25914
-Node: Uninstall26314
-Node: Tutorial26660
-Node: Drawing in batch mode27551
-Node: Drawing in interactive mode28427
-Node: Figure size29459
-Node: Labels31054
-Node: Paths31882
-Ref: unitcircle32498
-Node: Drawing commands34400
-Node: draw36115
-Ref: arrows37297
-Node: fill42795
-Ref: gradient shading43841
-Node: clip48357
-Node: label48944
-Ref: Label49544
-Node: Bezier curves55376
-Node: Programming59276
-Ref: array iteration61029
-Node: Data types61196
-Ref: format71858
-Node: Paths and guides76304
-Ref: circle76558
-Ref: extension86258
-Node: Pens93068
-Ref: fillrule100759
-Ref: basealign101663
-Ref: transparency104497
-Ref: makepen108091
-Ref: overwrite108975
-Node: Transforms110189
-Node: Frames and pictures112021
-Ref: envelope113179
-Ref: size114272
-Ref: unitsize115259
-Ref: shipout116332
-Ref: filltype118683
-Ref: add122096
-Ref: add about123038
-Ref: tex126068
-Node: Files126964
-Ref: cd127951
-Ref: scroll132636
-Node: Variable initializers135554
-Node: Structures138271
-Node: Operators145773
-Node: Arithmetic & logical146087
-Node: Self & prefix operators148457
-Node: User-defined operators149251
-Node: Implicit scaling150164
-Node: Functions150727
-Ref: stack overflow153869
-Node: Default arguments154151
-Node: Named arguments154907
-Node: Rest arguments157477
-Node: Mathematical functions160599
-Node: Arrays165256
-Ref: sort172364
-Ref: tridiagonal175275
-Ref: solve176506
-Node: Slices180646
-Node: Casts184554
-Node: Import186824
-Node: Static192082
-Node: LaTeX usage194975
-Node: Base modules201470
-Node: plain204027
-Node: simplex204701
-Node: math204975
-Node: interpolate207559
-Node: geometry207838
-Node: trembling208432
-Node: stats208701
-Node: patterns208961
-Node: markers209197
-Node: tree211059
-Node: binarytree211244
-Node: drawtree211911
-Node: syzygy212112
-Node: feynman212386
-Node: roundedpath212661
-Node: animation212944
-Ref: animate213365
-Node: embed214478
-Node: slide215432
-Node: MetaPost215764
-Node: unicode216483
-Node: latin1217357
-Node: babel217726
-Node: labelpath217956
-Node: labelpath3218777
-Node: annotate219088
-Node: CAD219558
-Node: graph219869
-Ref: ticks227030
-Ref: pathmarkers240768
-Ref: marker241239
-Ref: markuniform241593
-Ref: errorbars243401
-Ref: automatic scaling247880
-Node: palette259641
-Ref: images259759
-Ref: image263933
-Ref: logimage264454
-Ref: penimage265560
-Ref: penfunctionimage265823
-Node: three266595
-Ref: PostScript3D295892
-Node: obj297631
-Node: graph3297880
-Ref: GaussianSurface303163
-Node: grid3304313
-Node: solids305098
-Node: tube306091
-Node: flowchart308322
-Node: contour312931
-Node: contour3318251
-Node: smoothcontour3318564
-Node: slopefield320285
-Node: ode321775
-Node: Options322032
-Ref: configuration file328817
-Ref: settings328817
-Ref: texengines330081
-Ref: convert330081
-Node: Interactive mode333591
-Ref: history335741
-Node: GUI337044
-Node: GUI installation337595
-Node: GUI usage338326
-Node: PostScript to Asymptote339389
-Node: Help340148
-Node: Debugger341822
-Node: Credits343578
-Node: Index344595
+Node: Description7331
+Node: Installation11417
+Node: UNIX binary distributions12463
+Node: MacOS X binary distributions13593
+Node: Microsoft Windows14148
+Node: Configuring15355
+Node: Search paths19818
+Node: Compiling from UNIX source20657
+Node: Editing modes23719
+Node: Git26141
+Node: Uninstall26541
+Node: Tutorial26887
+Node: Drawing in batch mode27725
+Node: Drawing in interactive mode28601
+Node: Figure size29633
+Node: Labels31228
+Node: Paths32056
+Ref: unitcircle32672
+Node: Drawing commands34570
+Node: draw36285
+Ref: arrows37467
+Node: fill42965
+Ref: gradient shading44011
+Node: clip48625
+Node: label49212
+Ref: Label49812
+Node: Bezier curves55644
+Node: Programming59544
+Ref: array iteration61297
+Node: Data types61464
+Ref: format72126
+Node: Paths and guides76572
+Ref: circle76826
+Ref: extension86526
+Node: Pens93336
+Ref: fillrule101027
+Ref: basealign101931
+Ref: transparency104764
+Ref: makepen108358
+Ref: overwrite109242
+Node: Transforms110456
+Node: Frames and pictures112288
+Ref: envelope113446
+Ref: size114539
+Ref: unitsize115526
+Ref: shipout116599
+Ref: filltype118950
+Ref: add122363
+Ref: add about123305
+Ref: tex126335
+Node: Files127231
+Ref: cd128218
+Ref: scroll132903
+Node: Variable initializers135821
+Node: Structures138538
+Node: Operators146040
+Node: Arithmetic & logical146354
+Node: Self & prefix operators148724
+Node: User-defined operators149518
+Node: Implicit scaling150431
+Node: Functions150994
+Ref: stack overflow154136
+Node: Default arguments154418
+Node: Named arguments155174
+Node: Rest arguments157744
+Node: Mathematical functions160866
+Node: Arrays165523
+Ref: sort172810
+Ref: tridiagonal175721
+Ref: solve176952
+Node: Slices181092
+Node: Casts185000
+Node: Import187270
+Node: Static192660
+Node: LaTeX usage195546
+Node: Base modules202041
+Node: plain204649
+Node: simplex205323
+Node: math205596
+Node: interpolate208179
+Node: geometry208458
+Node: trembling209052
+Node: stats209321
+Node: patterns209580
+Node: markers209815
+Node: map211674
+Node: tree212098
+Node: binarytree212282
+Node: drawtree212949
+Node: syzygy213150
+Node: feynman213424
+Node: roundedpath213698
+Node: animation213980
+Ref: animate214401
+Node: embed215513
+Node: slide216467
+Node: MetaPost216798
+Node: unicode217516
+Node: latin1218389
+Node: babel218758
+Node: labelpath218988
+Node: labelpath3219808
+Node: annotate220119
+Node: CAD220589
+Node: graph220899
+Ref: ticks228059
+Ref: pathmarkers241797
+Ref: marker242268
+Ref: markuniform242622
+Ref: errorbars244430
+Ref: automatic scaling248909
+Node: palette260670
+Ref: images260788
+Ref: image264962
+Ref: logimage265483
+Ref: penimage266589
+Ref: penfunctionimage266852
+Node: three267624
+Ref: PostScript3D297044
+Node: obj298782
+Node: graph3299031
+Ref: GaussianSurface304314
+Node: grid3305464
+Node: solids306249
+Node: tube307241
+Node: flowchart309471
+Node: contour314079
+Node: contour3319398
+Node: smoothcontour3319710
+Node: slopefield321431
+Node: ode322921
+Node: Options323178
+Ref: configuration file329901
+Ref: settings329901
+Ref: texengines331165
+Ref: convert331165
+Node: Interactive mode334599
+Ref: history336749
+Node: GUI338052
+Node: GUI installation338603
+Node: GUI usage339334
+Node: PostScript to Asymptote340397
+Node: Help341156
+Node: Debugger342830
+Node: Credits344586
+Node: Index345694

End Tag Table
diff --git a/graphics/asymptote/drawfill.h b/graphics/asymptote/drawfill.h
index 4f7df49f96..c634ff6c07 100644
--- a/graphics/asymptote/drawfill.h
+++ b/graphics/asymptote/drawfill.h
@@ -62,7 +62,11 @@ public:
else drawSuperPathPenBase::bounds(b,iopipe,vbox,bboxstack);
}
- // Shading in SVG is incomplete and not supported at all by dvisvgm.
+ bool pdf() {
+ return settings::pdf(settings::getSetting<string>("tex"));
+ }
+
+ // Shading in SVG is incomplete and not supported at all by dvisvgm --pdf.
bool svgpng() {return true;}
virtual void beginshade(psfile *out)=0;
@@ -130,8 +134,8 @@ public:
: drawShade(src,stroke,pentype,key), a(a), extenda(extenda),
penb(penb), b(b), extendb(extendb) {}
- bool svgpng() {return false;}
-
+ bool svgpng() {return !extenda || !extendb || pdf();}
+
void palette(psfile *out);
void beginshade(psfile *out) {
@@ -156,7 +160,7 @@ public:
: drawAxialShade(src,stroke,pentype,a,extenda,penb,b,
extendb,key), ra(ra), rb(rb) {}
- bool svgpng() {return ra > 0.0;}
+ bool svgpng() {return a != b || ra > 0.0 || !extenda || !extendb || pdf();}
void beginshade(psfile *out) {
out->begingradientshade(false,colorspace,pentype,a,ra,penb,b,rb);
@@ -180,7 +184,7 @@ public:
: drawElement(key), drawShade(src,stroke,pentype,key), pens(pens),
vertices(vertices), edges(edges) {}
- bool svgpng() {return !settings::getSetting<bool>("svgemulation");}
+ bool svgpng() {return settings::getSetting<bool>("xasy") || !settings::getSetting<bool>("svgemulation") || pdf();}
void palette(psfile *out) {
out->gsave();
@@ -206,19 +210,14 @@ public:
const vm::array& boundaries, const vm::array& z,
const string& key="") :
drawShade(src,stroke,pentype,key), pens(pens), boundaries(boundaries),
- z(z) {}
-
- bool svgpng() {
- return pens.size() > 1 || !settings::getSetting<bool>("svgemulation");
+ z(z) {
}
void palette(psfile *out) {
out->gsave();
}
- void beginshade(psfile *out) {
- out->begintensorshade(pens,boundaries,z);
- }
+ void beginshade(psfile *out) {}
void shade(psfile *out) {
out->tensorshade(pentype,pens,boundaries,z);
diff --git a/graphics/asymptote/drawpath3.cc b/graphics/asymptote/drawpath3.cc
index 07c64ef1a9..7a6cf4513e 100644
--- a/graphics/asymptote/drawpath3.cc
+++ b/graphics/asymptote/drawpath3.cc
@@ -21,30 +21,16 @@ using namespace prc;
bool drawPath3::write(prcfile *out, unsigned int *, double, groupsmap&)
{
- Int n=g.length();
- if(n == 0 || invisible)
+ if(invisible)
return true;
if(straight) {
- triple *controls=new(UseGC) triple[n+1];
- for(Int i=0; i <= n; ++i)
- controls[i]=g.point(i);
-
- out->addLine(n+1,controls,diffuse);
+ triple controls[]={g.point((Int) 0),g.point((Int) 1)};
+ out->addLine(2,controls,diffuse);
} else {
- int m=3*n+1;
- triple *controls=new(UseGC) triple[m];
- controls[0]=g.point((Int) 0);
- controls[1]=g.postcontrol((Int) 0);
- size_t k=1;
- for(Int i=1; i < n; ++i) {
- controls[++k]=g.precontrol(i);
- controls[++k]=g.point(i);
- controls[++k]=g.postcontrol(i);
- }
- controls[++k]=g.precontrol(n);
- controls[++k]=g.point(n);
- out->addBezierCurve(m,controls,diffuse);
+ triple controls[]={g.point((Int) 0),g.postcontrol((Int) 0),
+ g.precontrol((Int) 1),g.point((Int) 1)};
+ out->addBezierCurve(4,controls,diffuse);
}
return true;
@@ -53,8 +39,7 @@ bool drawPath3::write(prcfile *out, unsigned int *, double, groupsmap&)
bool drawPath3::write(jsfile *out)
{
#ifdef HAVE_LIBGLM
- Int n=g.length();
- if(n == 0 || invisible)
+ if(invisible)
return true;
if(billboard) {
@@ -64,13 +49,11 @@ bool drawPath3::write(jsfile *out)
setcolors(false,diffuse,emissive,specular,shininess,metallic,fresnel0,out);
- for(Int i=0; i < n; ++i) {
- if(g.straight(i)) {
- out->addCurve(g.point(i),g.point(i+1),Min,Max);
- } else
- out->addCurve(g.point(i),g.postcontrol(i),
- g.precontrol(i+1),g.point(i+1),Min,Max);
- }
+ if(straight)
+ out->addCurve(g.point((Int) 0),g.point((Int) 1),Min,Max);
+ else
+ out->addCurve(g.point((Int) 0),g.postcontrol((Int) 0),
+ g.precontrol((Int) 1),g.point((Int) 1),Min,Max);
#endif
return true;
}
@@ -79,17 +62,14 @@ void drawPath3::render(double size2, const triple& b, const triple& B,
double perspective, bool remesh)
{
#ifdef HAVE_GL
- Int n=g.length();
- if(n == 0 || invisible) return;
+ if(invisible) return;
setcolors(false,diffuse,emissive,specular,shininess,metallic,fresnel0);
setMaterial(material1Data,drawMaterial1);
bool offscreen;
- if(gl::exporting)
- offscreen=false;
- else if(billboard) {
+ if(billboard) {
drawElement::centerIndex=centerIndex;
BB.init(center);
offscreen=bbox2(Min,Max,BB).offscreen();
@@ -99,29 +79,31 @@ void drawPath3::render(double size2, const triple& b, const triple& B,
if(offscreen) { // Fully offscreen
R.Onscreen=false;
R.data.clear();
+ R.notRendered();
return;
}
- for(Int i=0; i < n; ++i) {
- triple controls[]={g.point(i),g.postcontrol(i),g.precontrol(i+1),
- g.point(i+1)};
- triple *Controls;
- triple Controls0[4];
- if(billboard) {
- Controls=Controls0;
- for(size_t i=0; i < 4; i++) {
- Controls[i]=BB.transform(controls[i]);
- }
- } else
- Controls=controls;
+ triple controls[]={g.point((Int) 0),g.postcontrol((Int) 0),
+ g.precontrol((Int) 1),g.point((Int) 1)};
+ triple *Controls;
+ triple Controls0[4];
+ if(billboard) {
+ Controls=Controls0;
+ for(size_t i=0; i < 4; i++)
+ Controls[i]=BB.transform(controls[i]);
+ } else {
+ Controls=controls;
+ if(!remesh && R.Onscreen) { // Fully onscreen; no need to re-render
+ R.append();
+ return;
+ }
+ }
- double s=perspective ? Min.getz()*perspective : 1.0; // Move to glrender
-
- const pair size3(s*(B.getx()-b.getx()),s*(B.gety()-b.gety()));
+ double s=perspective ? Min.getz()*perspective : 1.0; // Move to glrender
- R.queue(controls,g.straight(i),size3.length()/size2);
- }
+ const pair size3(s*(B.getx()-b.getx()),s*(B.gety()-b.gety()));
+ R.queue(controls,straight,size3.length()/size2);
#endif
}
@@ -265,7 +247,7 @@ void drawPixel::render(double size2, const triple& b, const triple& B,
setMaterial(material0Data,drawMaterial0);
- if(!gl::exporting && bbox2(Min,Max).offscreen()) { // Fully offscreen
+ if(bbox2(Min,Max).offscreen()) { // Fully offscreen
R.data.clear();
return;
}
diff --git a/graphics/asymptote/drawpath3.h b/graphics/asymptote/drawpath3.h
index a4b6a94523..84456ad6f5 100644
--- a/graphics/asymptote/drawpath3.h
+++ b/graphics/asymptote/drawpath3.h
@@ -35,8 +35,11 @@ public:
BezierCurve R;
#endif
void init() {
- billboard=interaction == BILLBOARD &&
- !settings::getSetting<bool>("offscreen");
+#ifdef HAVE_LIBOSMESA
+ billboard=false;
+#else
+ billboard=interaction == BILLBOARD;
+#endif
centerIndex=0;
}
diff --git a/graphics/asymptote/drawsurface.cc b/graphics/asymptote/drawsurface.cc
index 34ea0a4aa4..a1cd5e7b07 100644
--- a/graphics/asymptote/drawsurface.cc
+++ b/graphics/asymptote/drawsurface.cc
@@ -31,6 +31,7 @@ size_t drawElement::lastcenterIndex=0;
const triple drawElement::zero;
using vm::array;
+using settings::getSetting;
#ifdef HAVE_LIBGLM
@@ -104,14 +105,14 @@ void drawBezierPatch::bounds(const double* t, bbox3& b)
double cz[16];
if(t == NULL) {
- for(int i=0; i < 16; ++i) {
+ for(unsigned int i=0; i < 16; ++i) {
triple v=controls[i];
cx[i]=v.getx();
cy[i]=v.gety();
cz[i]=v.getz();
}
} else {
- for(int i=0; i < 16; ++i) {
+ for(unsigned int i=0; i < 16; ++i) {
triple v=t*controls[i];
cx[i]=v.getx();
cy[i]=v.gety();
@@ -127,7 +128,7 @@ void drawBezierPatch::bounds(const double* t, bbox3& b)
c0=cy[0];
fuzz=Fuzz*run::norm(cy,16);
y=bound(cy,min,b.empty ? c0 : min(c0,b.bottom),fuzz,maxdepth);
- Y=boundtri(cy,max,b.empty ? c0 : max(c0,b.top),fuzz,maxdepth);
+ Y=bound(cy,max,b.empty ? c0 : max(c0,b.top),fuzz,maxdepth);
c0=cz[0];
fuzz=Fuzz*run::norm(cz,16);
@@ -232,11 +233,13 @@ bool drawBezierPatch::write(jsfile *out)
setcolors(colors,diffuse,emissive,specular,shininess,metallic,fresnel0,out);
+ out->precision(digits);
if(straight) {
triple Controls[]={controls[0],controls[12],controls[15],controls[3]};
out->addPatch(Controls,4,Min,Max,colors,4);
} else
out->addPatch(controls,16,Min,Max,colors,4);
+ out->precision(getSetting<Int>("digits"));
#endif
return true;
@@ -262,18 +265,17 @@ void drawBezierPatch::render(double size2, const triple& b, const triple& B,
}
bool offscreen;
- if(gl::exporting)
- offscreen=false;
- else if(billboard) {
+ if(billboard) {
drawElement::centerIndex=centerIndex;
BB.init(center);
offscreen=bbox2(Min,Max,BB).offscreen();
} else
offscreen=bbox2(Min,Max).offscreen();
-
+
if(offscreen) { // Fully offscreen
S.Onscreen=false;
S.data.clear();
+ S.notRendered();
return;
}
@@ -361,7 +363,7 @@ void drawBezierTriangle::bounds(const double* t, bbox3& b)
cz[i]=v.getz();
}
}
-
+
double c0=cx[0];
double fuzz=Fuzz*run::norm(cx,10);
x=boundtri(cx,min,b.empty ? c0 : min(c0,b.left),fuzz,maxdepth);
@@ -475,11 +477,13 @@ bool drawBezierTriangle::write(jsfile *out)
setcolors(colors,diffuse,emissive,specular,shininess,metallic,fresnel0,out);
+ out->precision(digits);
if(straight) {
triple Controls[]={controls[0],controls[6],controls[9]};
out->addPatch(Controls,3,Min,Max,colors,3);
} else
out->addPatch(controls,10,Min,Max,colors,3);
+ out->precision(getSetting<Int>("digits"));
#endif
return true;
@@ -505,9 +509,7 @@ void drawBezierTriangle::render(double size2, const triple& b, const triple& B,
}
bool offscreen;
- if(gl::exporting)
- offscreen=false;
- else if(billboard) {
+ if(billboard) {
drawElement::centerIndex=centerIndex;
BB.init(center);
offscreen=bbox2(Min,Max,BB).offscreen();
@@ -517,6 +519,7 @@ void drawBezierTriangle::render(double size2, const triple& b, const triple& B,
if(offscreen) { // Fully offscreen
S.Onscreen=false;
S.data.clear();
+ S.notRendered();
return;
}
@@ -974,9 +977,10 @@ void drawTriangles::render(double size2, const triple& b,
transparent=diffuse.A < 1.0;
- if(!gl::exporting && bbox2(Min,Max).offscreen()) { // Fully offscreen
+ if(bbox2(Min,Max).offscreen()) { // Fully offscreen
R.Onscreen=false;
R.data.clear();
+ R.notRendered();
return;
}
diff --git a/graphics/asymptote/drawsurface.h b/graphics/asymptote/drawsurface.h
index 607c9f0701..3b0ba2de83 100644
--- a/graphics/asymptote/drawsurface.h
+++ b/graphics/asymptote/drawsurface.h
@@ -45,6 +45,7 @@ protected:
size_t centerIndex;
triple Min,Max;
+ int digits;
bool primitive;
public:
@@ -59,19 +60,23 @@ public:
}
void init() {
- billboard=interaction == BILLBOARD &&
- !settings::getSetting<bool>("offscreen");
+#ifdef HAVE_LIBOSMESA
+ billboard=false;
+#else
+ billboard=interaction == BILLBOARD;
+#endif
centerIndex=0;
}
drawSurface(const vm::array& g, size_t ncontrols, triple center,
bool straight, const vm::array&p, double opacity,
double shininess, double metallic, double fresnel0,
- const vm::array &pens, Interaction interaction,
+ const vm::array &pens, Interaction interaction, int digits,
bool primitive=true, const string& key="") :
drawElement(key), ncontrols(ncontrols), center(center), straight(straight),
opacity(opacity), shininess(shininess), metallic(metallic),
- fresnel0(fresnel0), interaction(interaction), primitive(primitive) {
+ fresnel0(fresnel0), interaction(interaction), digits(digits),
+ primitive(primitive) {
init();
if(checkArray(&g) != 4 || checkArray(&p) != 3)
reportError(wrongsize());
@@ -109,7 +114,7 @@ public:
diffuse(s->diffuse), emissive(s->emissive), specular(s->specular),
colors(s->colors), opacity(s->opacity), shininess(s->shininess),
metallic(s->metallic), fresnel0(s->fresnel0), invisible(s->invisible),
- interaction(s->interaction), primitive(s->primitive) {
+ interaction(s->interaction), digits(s->digits), primitive(s->primitive) {
init();
if(s->controls) {
controls=new(UseGC) triple[ncontrols];
@@ -134,9 +139,9 @@ public:
drawBezierPatch(const vm::array& g, triple center, bool straight,
const vm::array&p, double opacity, double shininess,
double metallic, double fresnel0, const vm::array &pens,
- Interaction interaction, bool primitive) :
+ Interaction interaction, int digits, bool primitive) :
drawSurface(g,16,center,straight,p,opacity,shininess,metallic,fresnel0,
- pens,interaction,primitive) {}
+ pens,interaction,digits,primitive) {}
drawBezierPatch(const double* t, const drawBezierPatch *s) :
drawSurface(t,s) {}
@@ -168,9 +173,9 @@ public:
drawBezierTriangle(const vm::array& g, triple center, bool straight,
const vm::array&p, double opacity, double shininess,
double metallic, double fresnel0, const vm::array &pens,
- Interaction interaction, bool primitive) :
+ Interaction interaction, int digits, bool primitive) :
drawSurface(g,10,center,straight,p,opacity,shininess,metallic,fresnel0,
- pens,interaction,primitive) {}
+ pens,interaction,digits,primitive) {}
drawBezierTriangle(const double* t, const drawBezierTriangle *s) :
drawSurface(t,s) {}
diff --git a/graphics/asymptote/examples/Gouraud.asy b/graphics/asymptote/examples/Gouraud.asy
index d49813e5e6..7df039e04c 100644
--- a/graphics/asymptote/examples/Gouraud.asy
+++ b/graphics/asymptote/examples/Gouraud.asy
@@ -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);
diff --git a/graphics/asymptote/examples/axialshade.asy b/graphics/asymptote/examples/axialshade.asy
new file mode 100644
index 0000000000..97977b2aea
--- /dev/null
+++ b/graphics/asymptote/examples/axialshade.asy
@@ -0,0 +1,5 @@
+size(0,100);
+
+axialshade(unitsquare,red,(0,0),blue,(1,1));
+
+
diff --git a/graphics/asymptote/examples/logo3.asy b/graphics/asymptote/examples/logo3.asy
index c7947f1c41..d510e9afb7 100644
--- a/graphics/asymptote/examples/logo3.asy
+++ b/graphics/asymptote/examples/logo3.asy
@@ -3,7 +3,7 @@ import three;
//size(105,50,IgnoreAspect);
size(560,320,IgnoreAspect); // Fullsize
size3(140,80,15);
-currentprojection=perspective(-2,20,10,up=Y);
+currentprojection=perspective(-2,30,10,up=Y);
currentlight=White;
viewportmargin=(0,10);
diff --git a/graphics/asymptote/examples/soccerball.asy b/graphics/asymptote/examples/soccerball.asy
index 5cf0f01505..4612769833 100644
--- a/graphics/asymptote/examples/soccerball.asy
+++ b/graphics/asymptote/examples/soccerball.asy
@@ -1,6 +1,7 @@
import graph3;
size(400);
currentlight.background=palegreen;
+settings.digits=15;
defaultrender=render(compression=Zero,merge=true);
diff --git a/graphics/asymptote/examples/unitoctant.asy b/graphics/asymptote/examples/unitoctant.asy
index e84fdd537c..967f1a6123 100644
--- a/graphics/asymptote/examples/unitoctant.asy
+++ b/graphics/asymptote/examples/unitoctant.asy
@@ -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);
+
+
diff --git a/graphics/asymptote/examples/unitoctantx.asy b/graphics/asymptote/examples/unitoctantx.asy
new file mode 100644
index 0000000000..e84fdd537c
--- /dev/null
+++ b/graphics/asymptote/examples/unitoctantx.asy
@@ -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);
diff --git a/graphics/asymptote/fileio.h b/graphics/asymptote/fileio.h
index 1341d66b2d..762e541ad9 100644
--- a/graphics/asymptote/fileio.h
+++ b/graphics/asymptote/fileio.h
@@ -112,8 +112,16 @@ public:
standardEOF();
}
- void dimension(Int Nx=-1, Int Ny=-1, Int Nz=-1) {nx=Nx; ny=Ny; nz=Nz;}
-
+ void dimension(Int Nx=-1, Int Ny=-1, Int Nz=-1) {
+ if(Nx < -1 || Ny < -1 || Nz < -1) {
+ ostringstream buf;
+ buf << "Invalid array dimensions: " << Nx << ", " << Ny << ", " << Nz;
+ reportError(buf);
+ }
+
+ nx=Nx; ny=Ny; nz=Nz;
+ }
+
file(const string& name, bool check=true, Mode type=NOMODE, bool binary=false,
bool closed=false) :
name(name), check(check), type(type), linemode(false), csvmode(false),
diff --git a/graphics/asymptote/glew.c b/graphics/asymptote/glew.c
index 4bdea46b60..f6b50465b9 100644
--- a/graphics/asymptote/glew.c
+++ b/graphics/asymptote/glew.c
@@ -7,5 +7,9 @@
#endif
#ifdef HAVE_LIBGL
+#ifdef HAVE_LIBOSMESA
+#define GLEW_OSMESA
+#endif
+
#include "GL/glew.c"
#endif /* HAVE_LIBGL */
diff --git a/graphics/asymptote/glrender.cc b/graphics/asymptote/glrender.cc
index e86df78c55..9e9fb70629 100644
--- a/graphics/asymptote/glrender.cc
+++ b/graphics/asymptote/glrender.cc
@@ -24,6 +24,7 @@
#include "bbox3.h"
#include "drawimage.h"
#include "interact.h"
+#include "fpu.h"
namespace gl {
#ifdef HAVE_PTHREAD
@@ -79,9 +80,6 @@ vertexBuffer triangleData;
const size_t Nbuffer=10000;
const size_t nbuffer=1000;
-
-GLuint attributeBuffer;
-GLuint indicesBuffer;
}
#endif /* HAVE_GL */
@@ -103,12 +101,15 @@ size_t Nmaterials=1;
size_t nmaterials=48;
}
+extern void exitHandler(int);
+
namespace gl {
bool outlinemode=false;
bool glthread=false;
+bool glupdate=false;
+bool glexit=false;
bool initialize=true;
-bool exporting=false;
using camp::picture;
using camp::drawRawImage;
@@ -123,7 +124,8 @@ using settings::Setting;
bool Iconify=false;
bool ignorezoom;
-int Fitscreen;
+int Fitscreen=1;
+bool firstFit;
bool queueExport=false;
bool readyAfterExport=false;
@@ -141,8 +143,6 @@ int fullWidth,fullHeight;
int Width,Height;
double oWidth,oHeight;
int screenWidth,screenHeight;
-int maxWidth;
-int maxHeight;
int maxTileWidth;
int maxTileHeight;
@@ -206,8 +206,6 @@ const double *dprojView;
const double *dView;
double BBT[9];
-GLuint ubo;
-
unsigned int framecount;
template<class T>
@@ -313,6 +311,7 @@ bool Animate;
bool Step;
#ifdef HAVE_GL
+
void idle()
{
glutIdleFunc(NULL);
@@ -325,10 +324,12 @@ void home(bool webgl=false)
X=Y=cx=cy=0.0;
#ifdef HAVE_GL
#ifdef HAVE_LIBGLUT
- if(!webgl && !getSetting<bool>("offscreen"))
+#ifndef HAVE_LIBOSMESA
+ if(!webgl)
idle();
#endif
#endif
+#endif
dviewMat=dmat4(1.0);
dView=value_ptr(dviewMat);
viewMat=mat4(dviewMat);
@@ -392,7 +393,7 @@ GLuint initHDR() {
return tex;
}
-#endif
+#endif
GLint shaderProg,shaderProgColor;
void *glrenderWrapper(void *a);
@@ -479,10 +480,6 @@ void deleteShaders()
void setBuffers()
{
- glGenBuffers(1,&camp::attributeBuffer);
- glGenBuffers(1,&camp::indicesBuffer);
- glGenBuffers(1,&ubo);
-
GLuint vao;
glGenVertexArrays(1,&vao);
glBindVertexArray(vao);
@@ -498,7 +495,7 @@ void drawscene(int Width, int Height)
{
#ifdef HAVE_PTHREAD
static bool first=true;
- if(glthread && first && !getSetting<bool>("offscreen")) {
+ if(glthread && first) {
wait(initSignal,initLock);
endwait(initSignal,initLock);
first=false;
@@ -561,17 +558,15 @@ void Export()
(orthographic ? trOrtho : trFrustum)(tr,xmin,xmax,ymin,ymax,-zmax,-zmin);
size_t count=0;
- exporting=true;
do {
trBeginTile(tr);
+ fpu_trap(false); // Work around FE_INVALID in OSMesa.
drawscene(fullWidth,fullHeight);
+ fpu_trap(settings::trap());
++count;
} while (trEndTile(tr));
- exporting=false;
-
if(settings::verbose > 1)
- cout << count << " tile" << (count != 1 ? "s" : "") << " drawn"
- << endl;
+ cout << count << " tile" << (count != 1 ? "s" : "") << " drawn" << endl;
trDelete(tr);
picture pic;
@@ -594,18 +589,19 @@ void Export()
outOfMemory();
}
setProjection();
- bool offscreen=getSetting<bool>("offscreen");
+
+#ifndef HAVE_LIBOSMESA
#ifdef HAVE_LIBGLUT
- if(!offscreen)
glutPostRedisplay();
#endif
#ifdef HAVE_PTHREAD
- if(glthread && readyAfterExport && !offscreen) {
+ if(glthread && readyAfterExport) {
readyAfterExport=false;
endwait(readySignal,readyLock);
}
#endif
+#endif
}
void nodisplay()
@@ -631,11 +627,9 @@ inline unsigned int floorpow2(unsigned int n)
void quit()
{
#ifdef HAVE_LIBOSMESA
- if(getSetting<bool>("offscreen")) {
if(osmesa_buffer) delete[] osmesa_buffer;
if(ctx) OSMesaDestroyContext(ctx);
exit(0);
- }
#endif
#ifdef HAVE_LIBGLUT
if(glthread) {
@@ -650,7 +644,7 @@ void quit()
glutDisplayFunc(nodisplay);
endwait(readySignal,readyLock);
}
-#endif
+#endif
if(interact::interactive)
glutHideWindow();
} else {
@@ -683,9 +677,10 @@ void mode()
break;
}
#ifdef HAVE_LIBGLUT
- if(!getSetting<bool>("offscreen"))
+#ifndef HAVE_LIBOSMESA
glutPostRedisplay();
#endif
+#endif
}
// GUI-related functions
@@ -693,12 +688,12 @@ void mode()
bool capsize(int& width, int& height)
{
bool resize=false;
- if(width > maxWidth) {
- width=maxWidth;
+ if(width > screenWidth) {
+ width=screenWidth;
resize=true;
}
- if(height > maxHeight) {
- height=maxHeight;
+ if(height > screenHeight) {
+ height=screenHeight;
resize=true;
}
return resize;
@@ -745,10 +740,30 @@ void setsize(int w, int h, bool reposition=true)
glutPostRedisplay();
}
+void capzoom()
+{
+ static double maxzoom=sqrt(DBL_MAX);
+ static double minzoom=1.0/maxzoom;
+ if(Zoom <= minzoom) Zoom=minzoom;
+ if(Zoom >= maxzoom) Zoom=maxzoom;
+
+ if(Zoom != lastzoom) remesh=true;
+ lastzoom=Zoom;
+}
+
void fullscreen(bool reposition=true)
{
Width=screenWidth;
Height=screenHeight;
+ if(firstFit) {
+ if(Width < Height*Aspect)
+ Zoom *= Width/(Height*Aspect);
+ capzoom();
+ setProjection();
+ firstFit=false;
+ }
+ Xfactor=((double) screenHeight)/Height;
+ Yfactor=((double) screenWidth)/Width;
reshape0(Width,Height);
if(reposition)
glutPositionWindow(0,0);
@@ -772,15 +787,15 @@ void fitscreen(bool reposition=true)
oldHeight=Height;
int w=screenWidth;
int h=screenHeight;
- if(w >= h*Aspect) w=(int) (h*Aspect+0.5);
- else h=(int) (w/Aspect+0.5);
+ if(w > h*Aspect)
+ w=min((int) ceil(h*Aspect),w);
+ else
+ h=min((int) ceil(w/Aspect),h);
setsize(w,h,reposition);
break;
}
case 2: // Full screen
{
- Xfactor=((double) screenHeight)/Height;
- Yfactor=((double) screenWidth)/Width;
fullscreen(reposition);
break;
}
@@ -816,7 +831,7 @@ void nextframe(int)
{
#ifdef HAVE_PTHREAD
endwait(readySignal,readyLock);
-#endif
+#endif
double framedelay=getSetting<double>("framedelay");
if(framedelay > 0)
usleep((unsigned int) (1000.0*framedelay+0.5));
@@ -901,12 +916,26 @@ void update()
void updateHandler(int)
{
queueScreen=true;
+ remesh=true;
update();
if(interact::interactive || !Animate) {
glutShowWindow();
}
}
+void poll(int)
+{
+ if(glupdate) {
+ updateHandler(0);
+ glupdate=false;
+ }
+ if(glexit) {
+ exitHandler(0);
+ glexit=false;
+ }
+ glutTimerFunc(100.0,poll,0);
+}
+
void animate()
{
Animate=!Animate;
@@ -959,17 +988,6 @@ void pan(int x, int y)
update();
}
-void capzoom()
-{
- static double maxzoom=sqrt(DBL_MAX);
- static double minzoom=1.0/maxzoom;
- if(Zoom <= minzoom) Zoom=minzoom;
- if(Zoom >= maxzoom) Zoom=maxzoom;
-
- if(Zoom != lastzoom) remesh=true;
- lastzoom=Zoom;
-}
-
void zoom(int x, int y)
{
if(ignorezoom) {ignorezoom=false; y0=y; return;}
@@ -1380,17 +1398,21 @@ void setosize()
void exportHandler(int=0)
{
#ifdef HAVE_LIBGLUT
- bool offscreen=getSetting<bool>("offscreen");
- if(!Iconify && !offscreen)
+#ifndef HAVE_LIBOSMESA
+ if(!Iconify)
glutShowWindow();
-#endif
+#endif
+#endif
readyAfterExport=true;
Export();
+
#ifdef HAVE_LIBGLUT
- if(!Iconify && !offscreen)
+#ifndef HAVE_LIBOSMESA
+ if(!Iconify)
glutHideWindow();
-#endif
glutDisplayFunc(nodisplay);
+#endif
+#endif
}
static bool glinitialize=true;
@@ -1456,7 +1478,7 @@ void init()
#ifndef __APPLE__
glutInitContextProfile(GLUT_CORE_PROFILE);
-#endif
+#endif
glutInit(&argc,argv);
screenWidth=glutGet(GLUT_SCREEN_WIDTH);
@@ -1563,25 +1585,28 @@ void glrender(const string& prefix, const picture *pic, const string& format,
#ifdef HAVE_GL
#ifdef HAVE_PTHREAD
static bool initializedView=false;
-#endif
+#endif
- bool offscreen=getSetting<bool>("offscreen");
- if(offscreen && !webgl) {
+#ifdef HAVE_LIBOSMESA
+ if(!webgl) {
screenWidth=maxTileWidth;
screenHeight=maxTileHeight;
static bool osmesa_initialized=false;
if(!osmesa_initialized) {
osmesa_initialized=true;
+ fpu_trap(false); // Work around FE_INVALID.
init_osmesa();
+ fpu_trap(settings::trap());
}
}
-
+#else
if(glinitialize) {
if(!webgl) init();
Fitscreen=1;
}
#endif
+#endif
static bool initialized=false;
@@ -1606,23 +1631,25 @@ void glrender(const string& prefix, const picture *pic, const string& format,
// Alternatively, one can use -glOptions=-indirect (with a performance
// penalty).
pair maxViewport=getSetting<pair>("maxviewport");
- maxWidth=(int) ceil(maxViewport.getx());
- maxHeight=(int) ceil(maxViewport.gety());
+ int maxWidth=maxViewport.getx() > 0 ? (int) ceil(maxViewport.getx()) :
+ screenWidth;
+ int maxHeight=maxViewport.gety() > 0 ? (int) ceil(maxViewport.gety()) :
+ screenHeight;
if(maxWidth <= 0) maxWidth=max(maxHeight,2);
if(maxHeight <= 0) maxHeight=max(maxWidth,2);
+ if(screenWidth <= 0) screenWidth=maxWidth;
+ else screenWidth=min(screenWidth,maxWidth);
+ if(screenHeight <= 0) screenHeight=maxHeight;
+ else screenHeight=min(screenHeight,maxHeight);
+
fullWidth=(int) ceil(expand*width);
fullHeight=(int) ceil(expand*height);
-
+
if(webgl) {
Width=fullWidth;
Height=fullHeight;
} else {
- if(screenWidth <= 0) screenWidth=maxWidth;
- else screenWidth=min(screenWidth,maxWidth);
- if(screenHeight <= 0) screenHeight=maxHeight;
- else screenHeight=min(screenHeight,maxHeight);
-
Width=min(fullWidth,screenWidth);
Height=min(fullHeight,screenHeight);
@@ -1642,7 +1669,6 @@ void glrender(const string& prefix, const picture *pic, const string& format,
for(int i=0; i < 16; ++i)
T[i]=t[i];
- remesh=true;
Aspect=((double) Width)/Height;
if(maxTileWidth <= 0) maxTileWidth=screenWidth;
@@ -1654,33 +1680,40 @@ void glrender(const string& prefix, const picture *pic, const string& format,
if(View && settings::verbose > 1)
cout << "Rendering " << stripDir(prefix) << " as "
<< Width << "x" << Height << " image" << endl;
-#endif
+#endif
}
#ifdef HAVE_GL
- bool havewindow=initialized && glthread && !offscreen;
+ bool havewindow=initialized && glthread;
+#ifndef HAVE_LIBOSMESA
#ifdef HAVE_LIBGLUT
unsigned int displaymode=GLUT_DOUBLE | GLUT_RGBA | GLUT_DEPTH;
-#endif
+#endif
#ifdef __APPLE__
displaymode |= GLUT_3_2_CORE_PROFILE;
-#endif
+#endif
+#endif
camp::clearMaterialBuffer();
+#ifndef HAVE_LIBOSMESA
+
#ifdef HAVE_PTHREAD
- if(glthread && initializedView && !offscreen) {
- if(!View)
- readyAfterExport=queueExport=true;
+ if(glthread && initializedView) {
+ if(View) {
+#ifdef __MSDOS__ // Signals are unreliable in MSWindows
+ glupdate=true;
+#else
pthread_kill(mainthread,SIGUSR1);
+#endif
+ } else readyAfterExport=queueExport=true;
return;
}
-#endif
+#endif
#ifdef HAVE_LIBGLUT
- if(!offscreen) {
if(View) {
int x,y;
if(havewindow)
@@ -1702,8 +1735,8 @@ void glrender(const string& prefix, const picture *pic, const string& format,
while(true) {
if(multisample > 0)
glutSetOption(GLUT_MULTISAMPLE,multisample);
-#endif
-#endif
+#endif
+#endif
string title=string(settings::PROGRAM)+": "+prefix;
window=glutCreateWindow(title.c_str());
@@ -1724,8 +1757,8 @@ void glrender(const string& prefix, const picture *pic, const string& format,
}
break;
}
-#endif
-#endif
+#endif
+#endif
if(settings::verbose > 1 && samples > 1)
cout << "Multisampling enabled with sample width " << samples
<< endl;
@@ -1734,11 +1767,14 @@ void glrender(const string& prefix, const picture *pic, const string& format,
} else if(!havewindow) {
glutInitWindowSize(maxTileWidth,maxTileHeight);
glutInitDisplayMode(displaymode);
+ fpu_trap(false); // Work around FE_INVALID in Gallium
window=glutCreateWindow("");
+ fpu_trap(settings::trap());
glutHideWindow();
}
- }
#endif // HAVE_LIBGLUT
+#endif // HAVE_LIBOSMESA
+
initialized=true;
GLint val;
@@ -1762,17 +1798,18 @@ void glrender(const string& prefix, const picture *pic, const string& format,
glClearColor(Background[0],Background[1],Background[2],Background[3]);
#ifdef HAVE_LIBGLUT
- if(!offscreen) {
- Animate=getSetting<bool>("autoplay") && glthread;
-
- if(View) {
- if(!getSetting<bool>("fitscreen"))
- Fitscreen=0;
- fitscreen();
- setosize();
- }
+#ifndef HAVE_LIBOSMESA
+ Animate=getSetting<bool>("autoplay") && glthread;
+
+ if(View) {
+ if(!getSetting<bool>("fitscreen"))
+ Fitscreen=0;
+ firstFit=true;
+ fitscreen();
+ setosize();
}
#endif
+#endif
glEnable(GL_BLEND);
glEnable(GL_DEPTH_TEST);
@@ -1781,25 +1818,34 @@ void glrender(const string& prefix, const picture *pic, const string& format,
glBlendFunc(GL_SRC_ALPHA,GL_ONE_MINUS_SRC_ALPHA);
mode();
- if(View && !offscreen) {
+#ifdef HAVE_LIBOSMESA
+ View=false;
+#endif
+
+ if(View) {
#ifdef HAVE_LIBGLUT
#ifdef HAVE_PTHREAD
initializedView=true;
-#endif
+#endif
glutReshapeFunc(reshape);
glutKeyboardFunc(keyboard);
glutMouseFunc(mouse);
glutDisplayFunc(display);
+#ifdef __MSDOS__
+ if(glthread && interact::interactive)
+ poll(0);
+#endif
+
glutMainLoop();
#endif // HAVE_LIBGLUT
} else {
- if(glthread && !offscreen) {
+ if(glthread) {
if(havewindow) {
readyAfterExport=true;
#ifdef HAVE_PTHREAD
pthread_kill(mainthread,SIGUSR1);
-#endif
+#endif
} else {
initialized=true;
readyAfterExport=true;
@@ -1836,16 +1882,21 @@ string getCenterIndex(size_t const& index) {
}
template<class T>
-void registerBuffer(const std::vector<T>& buffervector, GLuint bufferIndex,
- GLint type=GL_ARRAY_BUFFER) {
+void registerBuffer(const std::vector<T>& buffervector, GLuint& bufferIndex,
+ bool copy, GLenum type=GL_ARRAY_BUFFER) {
if(!buffervector.empty()) {
+ if(bufferIndex == 0) {
+ glGenBuffers(1,&bufferIndex);
+ copy=true;
+ }
glBindBuffer(type,bufferIndex);
- glBufferData(type,buffervector.size()*sizeof(T),
- buffervector.data(),GL_STATIC_DRAW);
+ if(copy)
+ glBufferData(type,buffervector.size()*sizeof(T),
+ buffervector.data(),GL_STATIC_DRAW);
}
}
-void setUniforms(const vertexBuffer& data, GLint shader)
+void setUniforms(vertexBuffer& data, GLint shader)
{
bool normal=shader != pixelShader;
@@ -1883,8 +1934,9 @@ void setUniforms(const vertexBuffer& data, GLint shader)
GLuint binding=0;
GLint blockindex=glGetUniformBlockIndex(shader,"MaterialBuffer");
glUniformBlockBinding(shader,blockindex,binding);
- registerBuffer(data.materials,gl::ubo,GL_UNIFORM_BUFFER);
- glBindBufferBase(GL_UNIFORM_BUFFER,binding,gl::ubo);
+ bool copy=gl::remesh || data.partial || !data.rendered;
+ registerBuffer(data.materials,data.materialsBuffer,copy,GL_UNIFORM_BUFFER);
+ glBindBufferBase(GL_UNIFORM_BUFFER,binding,data.materialsBuffer);
glUniformMatrix4fv(glGetUniformLocation(shader,"projViewMat"),1,GL_FALSE,
value_ptr(gl::projViewMat));
@@ -1908,17 +1960,17 @@ void drawBuffer(vertexBuffer& data, GLint shader)
const size_t bytestride=color ? sizeof(VertexData) :
(normal ? sizeof(vertexData) : sizeof(vertexData0));
- if(color) registerBuffer(data.Vertices,attributeBuffer);
- else if(normal) registerBuffer(data.vertices,attributeBuffer);
- else registerBuffer(data.vertices0,attributeBuffer);
+ bool copy=gl::remesh || data.partial || !data.rendered;
+ if(color) registerBuffer(data.Vertices,data.VerticesBuffer,copy);
+ else if(normal) registerBuffer(data.vertices,data.verticesBuffer,copy);
+ else registerBuffer(data.vertices0,data.vertices0Buffer,copy);
- registerBuffer(data.indices,indicesBuffer,GL_ELEMENT_ARRAY_BUFFER);
+ registerBuffer(data.indices,data.indicesBuffer,copy,GL_ELEMENT_ARRAY_BUFFER);
- glBindBuffer(GL_ARRAY_BUFFER,attributeBuffer);
- glBindBuffer(GL_ELEMENT_ARRAY_BUFFER,indicesBuffer);
-
camp::setUniforms(data,shader);
+ data.rendered=true;
+
glVertexAttribPointer(positionAttrib,3,GL_FLOAT,GL_FALSE,bytestride,
(void *) 0);
glEnableVertexAttribArray(positionAttrib);
@@ -1987,6 +2039,7 @@ void drawColor()
void drawTriangle()
{
drawBuffer(triangleData,transparentShader);
+ triangleData.rendered=false; // Force copying of sorted triangles to GPU.
triangleData.clear();
}
@@ -1995,6 +2048,7 @@ void drawTransparent()
sortTriangles();
glDepthMask(GL_FALSE); // Enable transparency
drawBuffer(transparentData,transparentShader);
+ transparentData.rendered=false; // Force copying of sorted triangles to GPU.
glDepthMask(GL_TRUE); // Disable transparency
transparentData.clear();
}
@@ -2015,14 +2069,23 @@ void clearMaterialBuffer()
material.reserve(nmaterials);
materialMap.clear();
materialIndex=0;
+
+ material0Data.partial=false;
+ material1Data.partial=false;
+ materialData.partial=false;
+ colorData.partial=false;
+ triangleData.partial=false;
+ transparentData.partial=false;
}
void setMaterial(vertexBuffer& data, draw_t *draw)
{
if(materialIndex >= data.materialTable.size() ||
data.materialTable[materialIndex] == -1) {
- if(data.materials.size() >= Maxmaterials)
+ if(data.materials.size() >= Maxmaterials) {
+ data.partial=true;
(*draw)();
+ }
size_t size0=data.materialTable.size();
data.materialTable.resize(materialIndex+1);
for(size_t i=size0; i < materialIndex; ++i)
diff --git a/graphics/asymptote/glrender.h b/graphics/asymptote/glrender.h
index dff344b6c5..0fd2e6bdbd 100644
--- a/graphics/asymptote/glrender.h
+++ b/graphics/asymptote/glrender.h
@@ -23,7 +23,6 @@
#include <csignal>
#define GLEW_NO_GLU
-//#define GLEW_OSMESA
#ifdef __MSDOS__
#define GLEW_STATIC
@@ -109,7 +108,6 @@ namespace gl {
extern bool outlinemode;
extern bool wireframeMode;
-extern bool exporting;
extern bool orthographic;
extern double xmin,xmax;
@@ -270,7 +268,14 @@ public:
class vertexBuffer {
public:
- GLint type;
+ GLenum type;
+
+ GLuint verticesBuffer;
+ GLuint VerticesBuffer;
+ GLuint vertices0Buffer;
+ GLuint indicesBuffer;
+ GLuint materialsBuffer;
+
std::vector<vertexData> vertices;
std::vector<VertexData> Vertices;
std::vector<vertexData0> vertices0;
@@ -279,7 +284,18 @@ public:
std::vector<Material> materials;
std::vector<GLint> materialTable;
- vertexBuffer(GLint type=GL_TRIANGLES) : type(type) {}
+ bool rendered; // Are all patches in this buffer fully rendered?
+ bool partial; // Does buffer contain incomplete data?
+
+ vertexBuffer(GLint type=GL_TRIANGLES) : type(type),
+ verticesBuffer(0),
+ VerticesBuffer(0),
+ vertices0Buffer(0),
+ indicesBuffer(0),
+ materialsBuffer(0),
+ rendered(false),
+ partial(false)
+ {}
void clear() {
vertices.clear();
@@ -342,7 +358,6 @@ public:
a[n+i]=b[i]+offset;
}
- // append array b onto array a
void append(const vertexBuffer& b) {
appendOffset(indices,b.indices,vertices.size());
vertices.insert(vertices.end(),b.vertices.begin(),b.vertices.end());
diff --git a/graphics/asymptote/jsfile.cc b/graphics/asymptote/jsfile.cc
index 93451b0f0d..4849940ba9 100644
--- a/graphics/asymptote/jsfile.cc
+++ b/graphics/asymptote/jsfile.cc
@@ -10,17 +10,23 @@ using namespace settings;
namespace camp {
-void jsfile::copy(string name) {
+void jsfile::copy(string name, bool header)
+{
std::ifstream fin(locateFile(name).c_str());
string s;
+ if(header) getline(fin,s);
while(getline(fin,s))
out << s << newl;
}
-void jsfile::open(string name) {
+void jsfile::header(string name)
+{
out.open(name);
out << "<!DOCTYPE html>" << newl << newl;
-
+}
+
+void jsfile::comment(string name)
+{
out << "<!-- Use the following line to embed this file within another web page:" << newl
<< newl
<< "<iframe src=\"" << name
@@ -29,16 +35,52 @@ void jsfile::open(string name) {
<< "\" frameborder=\"0\"></iframe>" << newl
<< newl
<< "-->" << newl << newl;
+}
- out.precision(getSetting<Int>("digits"));
+void jsfile::meta(string name, bool svg)
+{
out << "<html lang=\"\">" << newl
<< newl
<< "<head>" << newl
<< "<title>" << stripExt(name) << "</title>" << newl
<< newl
- << "<meta http-equiv=\"content-type\" content=\"text/html; charset=utf-8\"/>" << newl
- << "<meta name=\"viewport\" content=\"user-scalable=no\"/>" << newl
+ << "<meta http-equiv=\"content-type\" content=\"text/html; charset=utf-8\"/>" << newl;
+ if(svg) {
+ out << "<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>"
+ << newl << "</head>";
+ } else {
+ out << "<meta name=\"viewport\" content=\"user-scalable=no\"/>";
+ }
+ out << newl << newl;
+}
+
+void jsfile::footer(string name)
+{
+ out << newl << "</body>"
+ << newl << newl << "</html>"
<< newl;
+ out.flush();
+ if(verbose > 0)
+ cout << "Wrote " << name << endl;
+}
+
+void jsfile::svgtohtml(string prefix)
+{
+ string name=buildname(prefix,"html");
+ header(name);
+ meta(name);
+ out << "<body>" << newl << newl;
+ copy(locateFile(auxname(prefix,"svg")),true);
+ footer(name);
+}
+
+void jsfile::open(string name)
+{
+ header(name);
+ comment(name);
+ meta(name,false);
+
+ out.precision(getSetting<Int>("digits"));
if(getSetting<bool>("offline")) {
out << "<script>" << newl;
@@ -99,7 +141,8 @@ void jsfile::open(string name) {
out << "];" << newl << newl;
}
-jsfile::~jsfile() {
+void jsfile::finish(string name)
+{
size_t ncenters=drawElement::center.size();
if(ncenters > 0) {
out << "Centers=[";
@@ -108,15 +151,13 @@ jsfile::~jsfile() {
out << newl << "];" << newl;
}
out << "</script>"
- << newl << newl << "</head>"
+ << newl << "</head>"
<< newl << newl << "<body style=\"overflow: hidden;\" onload=\"webGLStart();\">"
<< newl << "<canvas id=\"Asymptote\" width=\""
<< gl::fullWidth << "\" height=\"" << gl::fullHeight
<< "\" style=\"border: none;\">"
- << newl << "</canvas>"
- << newl << "</body>"
- << newl << newl << "</html>"
- << newl;
+ << newl << "</canvas>";
+ footer(name);
}
void jsfile::addColor(const prc::RGBAColour& c)
diff --git a/graphics/asymptote/jsfile.h b/graphics/asymptote/jsfile.h
index b0b70972af..28b7778b9c 100644
--- a/graphics/asymptote/jsfile.h
+++ b/graphics/asymptote/jsfile.h
@@ -14,10 +14,20 @@ class jsfile {
public:
jsfile() {}
- ~jsfile();
+ ~jsfile() {}
+ void precision(int digits) {out.precision(digits);}
+
void open(string name);
- void copy(string name);
+ void header(string name);
+ void meta(string name, bool scalable=true);
+ void comment(string name);
+ void finish(string name);
+ void footer(string name);
+
+ void svgtohtml(string name);
+
+ void copy(string name, bool header=false);
void addColor(const prc::RGBAColour& c);
void addIndices(const uint32_t *I);
diff --git a/graphics/asymptote/main.cc b/graphics/asymptote/main.cc
index 486e84ef78..bc5e7df048 100644
--- a/graphics/asymptote/main.cc
+++ b/graphics/asymptote/main.cc
@@ -50,6 +50,10 @@ using namespace settings;
using interact::interactive;
+namespace gl {
+extern bool glexit;
+}
+
namespace run {
void purge();
}
@@ -179,8 +183,12 @@ void *asymain(void *A)
}
#ifdef HAVE_GL
#ifdef HAVE_PTHREAD
- if(gl::glthread && !getSetting<bool>("offscreen")) {
+ if(gl::glthread) {
+#ifdef __MSDOS__ // Signals are unreliable in MSWindows
+ gl::glexit=true;
+#else
pthread_kill(gl::mainthread,SIGURG);
+#endif
pthread_join(gl::mainthread,NULL);
}
#endif
@@ -216,7 +224,7 @@ int main(int argc, char *argv[])
#endif
gl::glthread=usethreads ? getSetting<bool>("threads") : false;
#if HAVE_PTHREAD
-
+#ifndef HAVE_LIBOSMESA
if(gl::glthread) {
pthread_t thread;
try {
@@ -237,6 +245,7 @@ int main(int argc, char *argv[])
}
}
#endif
+#endif
gl::glthread=false;
#endif
asymain(&args);
diff --git a/graphics/asymptote/parser.cc b/graphics/asymptote/parser.cc
index c12a47c50e..60123250ed 100644
--- a/graphics/asymptote/parser.cc
+++ b/graphics/asymptote/parser.cc
@@ -58,8 +58,7 @@ int fpeek(int fd)
size_t pipe_input(char *buf, size_t max_size)
{
if(hangup && fpeek(fd) == EOF) {hangup=false; return 0;}
- fgets(buf,max_size-1,fin);
- return strlen(buf);
+ return strlen(fgets(buf,max_size-1,fin));
}
} // namespace yy
diff --git a/graphics/asymptote/picture.cc b/graphics/asymptote/picture.cc
index da05346733..046ae4a106 100644
--- a/graphics/asymptote/picture.cc
+++ b/graphics/asymptote/picture.cc
@@ -371,7 +371,6 @@ void texinit()
mem::vector<string> cmd;
cmd.push_back(texprogram());
- string texfatal;
if(context) {
cmd.push_back("--pipe");
} else {
@@ -392,10 +391,9 @@ void texinit()
}
}
cmd.push_back("\\scrollmode");
- texfatal="Transcript written on "+jobname+".log.\n";
}
- pd.tex.open(cmd,"texpath",texpathmessage(),Strdup(texfatal));
+ pd.tex.open(cmd,"texpath");
pd.tex.wait("\n*");
pd.tex << "\n";
texdocumentclass(pd.tex,true);
@@ -437,6 +435,30 @@ int opentex(const string& texname, const string& prefix, bool dvi)
return status;
}
+char *dvisvgmCommand(mem::vector<string>& cmd, const string &in, const string& out)
+{
+ cmd.push_back(getSetting<string>("dvisvgm"));
+ cmd.push_back("-n");
+ cmd.push_back("-v3");
+ string libgs=getSetting<string>("libgs");
+ if(!libgs.empty())
+ cmd.push_back("--libgs="+libgs);
+ push_split(cmd,getSetting<string>("dvisvgmOptions"));
+ char *tmpdir=mkdtemp(StrdupMalloc(tempdir+"/dvisvgmXXXXXX"));
+ if(tmpdir)
+ cmd.push_back("--tmpdir="+string(tmpdir));
+ cmd.push_back("-o"+out);
+ cmd.push_back(in);
+ return tmpdir;
+}
+
+void rmtmpdir(char *tmpdir)
+{
+ if(tmpdir) {
+ recursive_delete(tmpdir);
+ free(tmpdir);
+ }
+}
bool picture::texprocess(const string& texname, const string& outname,
const string& prefix, const pair& bboxshift,
@@ -459,14 +481,7 @@ bool picture::texprocess(const string& texname, const string& outname,
mem::vector<string> cmd;
if(svg) {
- cmd.push_back(getSetting<string>("dvisvgm"));
- cmd.push_back("-n");
- cmd.push_back("-v0");
- string libgs=getSetting<string>("libgs");
- if(!libgs.empty())
- cmd.push_back("--libgs="+libgs);
- push_split(cmd,getSetting<string>("dvisvgmOptions"));
- cmd.push_back("-o"+outname);
+ char *tmpdir=dvisvgmCommand(cmd,dviname,outname);
ostringstream buf;
bbox B=svgbbox(b,bboxshift);
buf << "--bbox="
@@ -475,8 +490,8 @@ bool picture::texprocess(const string& texname, const string& outname,
<< B.right << "bp "
<< B.top << "bp";
cmd.push_back(buf.str());
- cmd.push_back(dviname);
status=System(cmd,0,true,"dvisvgm");
+ rmtmpdir(tmpdir);
if(!keep)
unlink(dviname.c_str());
} else {
@@ -605,10 +620,9 @@ int picture::epstopdf(const string& epsname, const string& pdfname)
cmd.push_back("-dNOPAUSE");
cmd.push_back("-dBATCH");
cmd.push_back("-P");
- if(safe) {
+ if(safe)
cmd.push_back("-dSAFER");
- cmd.push_back("-dDELAYSAFER"); // Support transparency extensions.
- }
+ cmd.push_back("-dALLOWPSTRANSPARENCY"); // Support transparency extensions.
cmd.push_back("-sDEVICE=pdfwrite");
cmd.push_back("-dEPSCrop");
cmd.push_back("-dSubsetFonts=true");
@@ -643,7 +657,7 @@ int picture::epstopdf(const string& epsname, const string& pdfname)
return status;
}
-int picture::pdftoeps(const string& pdfname, const string& epsname)
+int picture::pdftoeps(const string& pdfname, const string& epsname, bool eps)
{
mem::vector<string> cmd;
cmd.push_back(getSetting<string>("gs"));
@@ -655,7 +669,11 @@ int picture::pdftoeps(const string& pdfname, const string& epsname)
if(safe)
cmd.push_back("-dSAFER");
string texengine=getSetting<string>("tex");
- cmd.push_back("-sDEVICE="+getSetting<string>("epsdriver"));
+
+ if(eps)
+ cmd.push_back("-sDEVICE="+getSetting<string>("epsdriver"));
+ else
+ cmd.push_back("-sDEVICE=ps2write");
cmd.push_back("-sOutputFile="+stripDir(epsname));
cmd.push_back(stripDir(pdfname));
@@ -676,20 +694,16 @@ bool picture::reloadPDF(const string& Viewer, const string& outname) const
{
static bool needReload=true;
static bool haveReload=false;
-
- // Send javascript code to redraw picture.
- picture f;
- string name=getPath()+string("/")+outname;
- f.append(new drawVerbatim(TeX,"\\ \\pdfannot width 0pt height 0pt { /AA << /PO << /S /JavaScript /JS (try{reload('"+
- name+"');} catch(e) {} closeDoc(this);) >> >> }"));
+
string reloadprefix="reload";
if(needReload) {
needReload=false;
- string texengine=getSetting<string>("tex");
- Setting("tex")=string("pdflatex");
- haveReload=f.shipout(NULL,reloadprefix,"pdf",false,false);
- Setting("tex")=texengine;
+ string name=getPath()+string("/")+outname;
+ // Write javascript code to redraw picture.
+ runString("settings.tex='pdflatex'; tex('\\ \\pdfannot width 0pt height 0pt { /AA << /PO << /S /JavaScript /JS (try{reload(\""+name+"\");} catch(e) {} closeDoc(this);) >> >> }'); shipout('"+reloadprefix+"',wait=false,view=false);erase();exit();",false);
+ haveReload=true;
}
+
if(haveReload) {
mem::vector<string> cmd;
push_command(cmd,Viewer);
@@ -705,17 +719,10 @@ bool picture::reloadPDF(const string& Viewer, const string& outname) const
int picture::epstosvg(const string& epsname, const string& outname)
{
mem::vector<string> cmd;
- cmd.push_back(getSetting<string>("dvisvgm"));
- cmd.push_back("-n");
+ char *tmpdir=dvisvgmCommand(cmd,epsname,outname);
cmd.push_back("-E");
- cmd.push_back("--verbosity=3");
- string libgs=getSetting<string>("libgs");
- if(!libgs.empty())
- cmd.push_back("--libgs="+libgs);
- push_split(cmd,getSetting<string>("dvisvgmOptions"));
- cmd.push_back("-o"+outname);
- cmd.push_back(epsname);
int status=System(cmd,2,true,"dvisvgm");
+ rmtmpdir(tmpdir);
if(!getSetting<bool>("keep"))
unlink(epsname.c_str());
return status;
@@ -724,17 +731,10 @@ int picture::epstosvg(const string& epsname, const string& outname)
int picture::pdftosvg(const string& pdfname, const string& outname)
{
mem::vector<string> cmd;
- cmd.push_back(getSetting<string>("dvisvgm"));
- cmd.push_back("-n");
+ char *tmpdir=dvisvgmCommand(cmd,pdfname,outname);
cmd.push_back("--pdf");
- cmd.push_back("--verbosity=3");
- string libgs=getSetting<string>("libgs");
- if(!libgs.empty())
- cmd.push_back("--libgs="+libgs);
- push_split(cmd,getSetting<string>("dvisvgmOptions"));
- cmd.push_back("-o"+outname);
- cmd.push_back(pdfname);
int status=System(cmd,2,true,"dvisvgm");
+ rmtmpdir(tmpdir);
if(status == 0 && !getSetting<bool>("keep"))
unlink(pdfname.c_str());
return status;
@@ -764,10 +764,9 @@ bool picture::postprocess(const string& prename, const string& outname,
bool wait, bool view, bool pdftex,
bool epsformat, bool svg)
{
- static mem::map<CONST string,int> pids;
int status=0;
- bool pdfformat=(settings::pdf(getSetting<string>("tex"))
- && outputformat == "") || outputformat == "pdf";
+ bool pdf=settings::pdf(getSetting<string>("tex"));
+ bool pdfformat=(pdf && outputformat == "") || outputformat == "pdf";
mem::vector<string> cmd;
if(pdftex || !epsformat) {
@@ -779,12 +778,16 @@ bool picture::postprocess(const string& prename, const string& outname,
} else status=epstopdf(prename,outname);
} else if(epsformat) {
if(svg) {
- status=pdftosvg(prename,outname);
- if(status != 0) { // Dvisvgm version < 2.4 doesn't support --pdf
- string epsname=stripExt(prename)+".eps";
- status=pdftoeps(prename,epsname);
+ bool haveShading=pdf && havepng();
+ if(!haveShading)
+ status=pdftosvg(prename,outname);
+ if(haveShading || status != 0) {
+ // Dvisvgm version < 2.4 doesn't support --pdf
+ // Dvisvgm --pdf doesn't support shading
+ string psname=stripExt(prename)+".ps";
+ status=pdftoeps(prename,psname,false);
if(status != 0) return false;
- status=epstosvg(epsname,outname);
+ status=epstosvg(psname,outname);
}
epsformat=false;
} else
@@ -834,8 +837,21 @@ bool picture::postprocess(const string& prename, const string& outname,
if(verbose > 0)
cout << "Wrote " << outname << endl;
+
+ return display(outname,outputformat,wait,view,epsformat);
+}
+
+bool picture::display(const string& outname, const string& outputformat,
+ bool wait, bool view, bool epsformat)
+{
+ int status=0;
+ static mem::map<CONST string,int> pids;
bool View=settings::view() && view;
+
if(View) {
+ bool pdf=settings::pdf(getSetting<string>("tex"));
+ bool pdfformat=(pdf && outputformat == "") || outputformat == "pdf";
+
if(epsformat || pdfformat) {
// Check to see if there is an existing viewer for this outname.
mem::map<CONST string,int>::iterator p=pids.find(outname);
@@ -853,7 +869,8 @@ bool picture::postprocess(const string& prename, const string& outname,
if(running) {
// Tell gv/acroread to reread file.
if(Viewer == "gv") kill(pid,SIGHUP);
- else if(pdfreload) reloadPDF(Viewer,outname);
+ else if(pdfreload)
+ reloadPDF(Viewer,outname);
} else {
mem::vector<string> cmd;
push_command(cmd,Viewer);
@@ -880,7 +897,7 @@ bool picture::postprocess(const string& prename, const string& outname,
}
}
} else {
- if(outputformat == "svg")
+ if(outputformat == "svg" || outputformat == "html")
htmlView(outname);
else {
mem::vector<string> cmd;
@@ -897,17 +914,40 @@ bool picture::postprocess(const string& prename, const string& outname,
}
string Outname(const string& prefix, const string& outputformat,
- bool standardout)
+ bool standardout, string aux="")
{
- return standardout ? "-" : buildname(prefix,outputformat,"");
+ return standardout ? "-" : buildname(prefix,outputformat,aux);
}
bool picture::shipout(picture *preamble, const string& Prefix,
const string& format, bool wait, bool view)
{
+ bool keep=getSetting<bool>("keep");
+
+ string aux="";
b=bounds();
+ bool empty=b.empty;
+
+ string outputformat=format.empty() ? defaultformat() : format;
+
+ bool htmlformat=outputformat == "html";
+ if(htmlformat) {
+ outputformat="svg";
+ aux="_";
+ if(view) view=false;
+ else htmlformat=false;
+ }
+
+ bool svgformat=outputformat == "svg";
string texengine=getSetting<string>("tex");
+ string texengineSave;
+
+ if(!empty && svgformat && texengine == "latex" && havepng()) {
+ texengineSave=texengine;
+ Setting("tex")=texengine="pdflatex";
+ }
+
bool usetex=texengine != "none";
bool TeXmode=getSetting<bool>("inlinetex") && usetex;
bool pdf=settings::pdf(texengine);
@@ -916,25 +956,22 @@ bool picture::shipout(picture *preamble, const string& Prefix,
string prefix=standardout ? standardprefix : stripExt(Prefix);
string preformat=nativeformat();
- string outputformat=format.empty() ? defaultformat() : format;
bool epsformat=outputformat == "eps";
bool pdfformat=pdf || outputformat == "pdf";
- bool svgformat=outputformat == "svg";
bool dvi=false;
- bool svg=svgformat && usetex && !(pdf && havepng()) &&
+ bool svg=svgformat && usetex &&
(!have3D() || getSetting<double>("render") == 0.0);
if(svg) {
if(pdf) epsformat=true;
else dvi=true;
}
-
- string outname=Outname(prefix,outputformat,standardout);
+
+ string outname=Outname(prefix,outputformat,standardout,aux);
string epsname=epsformat ? (standardout ? "" : outname) :
auxname(prefix,"eps");
bool Labels=labels || TeXmode;
- bool empty=b.empty;
if(outputformat == "png" && (b.right-b.left < 1.0 || b.top-b.bottom < 1.0))
empty=true;
@@ -983,8 +1020,9 @@ bool picture::shipout(picture *preamble, const string& Prefix,
bboxshift +=
pair((aligndir.getx()+0.5)*xexcess,(aligndir.gety()+0.5)*yexcess);
}
- }
-
+ } else if(svg)
+ bboxshift += pair(-b.left,b.top);
+
bool status=true;
string texname;
@@ -1003,7 +1041,6 @@ bool picture::shipout(picture *preamble, const string& Prefix,
bbox bshift=b;
-// transparency=false;
int svgcount=0;
typedef mem::list<drawElement *> clipstack;
@@ -1124,20 +1161,18 @@ bool picture::shipout(picture *preamble, const string& Prefix,
}
if(Labels) {
- tex->beginlayer(pdf ? pdfname : psname,postscript);
+ if(!svg || pdf)
+ tex->beginlayer(pdf ? pdfname : psname,postscript);
} else out.grestore();
out.epilogue();
out.close();
-// if(out.Transparency())
-// transparency=true;
-
if(Labels) {
tex->resetpen();
if(pdf && !b.empty) {
status=(epstopdf(psname,pdfname) == 0);
- if(!getSetting<bool>("keep")) unlink(psname.c_str());
+ if(!keep) unlink(psname.c_str());
}
if(status) {
@@ -1175,7 +1210,7 @@ bool picture::shipout(picture *preamble, const string& Prefix,
status=texprocess(texname,dvi ? outname : prename,prefix,
bboxshift,dvi);
delete tex;
- if(!getSetting<bool>("keep")) {
+ if(!keep) {
for(mem::list<string>::iterator p=files.begin(); p != files.end();
++p)
unlink(p->c_str());
@@ -1185,7 +1220,7 @@ bool picture::shipout(picture *preamble, const string& Prefix,
if(context) prename=stripDir(prename);
status=postprocess(prename,outname,outputformat,wait,
view,pdf && Labels,epsformat,svg);
- if(pdfformat && !getSetting<bool>("keep")) {
+ if(pdfformat && !keep) {
unlink(auxname(prefix,"m9").c_str());
unlink(auxname(prefix,"pbsdat").c_str());
}
@@ -1195,6 +1230,17 @@ bool picture::shipout(picture *preamble, const string& Prefix,
if(!status) reportError("shipout failed");
+ if(!texengineSave.empty()) Setting("tex")=texengineSave;
+
+ if(htmlformat) {
+ jsfile out;
+ out.svgtohtml(prefix);
+ string name=buildname(prefix,"html");
+ display(name,"html",wait,true,false);
+ if(!keep)
+ unlink(outname.c_str());
+ }
+
return true;
}
@@ -1261,21 +1307,11 @@ bool picture::shipout3(const string& prefix, const string& format,
bool webgl=format == "html";
-#ifndef HAVE_GL
- if(!webgl && !getSetting<bool>("offscreen"))
- camp::reportError("to support onscreen rendering, please install glut library, run ./configure, and recompile");
-#endif
-
#ifndef HAVE_LIBGLM
if(webgl)
camp::reportError("to support WebGL rendering, please install glm header files, run ./configure, and recompile");
#endif
-#ifndef HAVE_LIBOSMESA
- if(getSetting<bool>("offscreen"))
- camp::reportError("to support offscreen rendering; please install OSMesa library, run ./configure --enable-offscreen, and recompile");
-#endif
-
picture *pic = new picture;
matrixstack ms;
@@ -1310,7 +1346,10 @@ bool picture::shipout3(const string& prefix, const string& format,
#endif
#ifdef HAVE_GL
- bool offscreen=getSetting<bool>("offscreen");
+ bool offscreen=false;
+#ifdef HAVE_LIBOSMESA
+ offscreen=true;
+#endif
#ifdef HAVE_PTHREAD
bool animating=getSetting<bool>("animating");
bool Wait=!interact::interactive || !View || animating;
@@ -1386,8 +1425,7 @@ bool picture::shipout3(const string& prefix, const string& format,
assert(*p);
(*p)->write(&js);
}
- if(verbose > 0)
- cout << "Wrote " << name << endl;
+ js.finish(name);
if(View)
htmlView(name);
return true;
diff --git a/graphics/asymptote/picture.h b/graphics/asymptote/picture.h
index 58223caf37..01d47008ab 100644
--- a/graphics/asymptote/picture.h
+++ b/graphics/asymptote/picture.h
@@ -65,15 +65,11 @@ public:
// Compute bounds on ratio (x,y)/z for 3d picture (not cached).
pair ratio(double (*m)(double, double));
- bool Transparency() {
- return transparency;
- }
-
int epstosvg(const string& epsname, const string& outname);
int pdftosvg(const string& pdfname, const string& outname);
int epstopdf(const string& epsname, const string& pdfname);
- int pdftoeps(const string& pdfname, const string& epsname);
+ int pdftoeps(const string& pdfname, const string& epsname, bool eps=true);
bool texprocess(const string& texname, const string& tempname,
const string& prefix, const pair& bboxshift, bool svgformat);
@@ -82,6 +78,9 @@ public:
const string& outputformat, bool wait, bool view,
bool pdftex, bool epsformat, bool svg);
+ bool display(const string& outname, const string& outputformat,
+ bool wait, bool view, bool epsformat);
+
// Ship the picture out to PostScript & TeX files.
bool shipout(picture* preamble, const string& prefix,
const string& format, bool wait=false, bool view=true);
diff --git a/graphics/asymptote/pipestream.cc b/graphics/asymptote/pipestream.cc
index a809302bf5..2375a98d42 100644
--- a/graphics/asymptote/pipestream.cc
+++ b/graphics/asymptote/pipestream.cc
@@ -41,8 +41,7 @@ void pipeHandler(int)
}
void iopipestream::open(const mem::vector<string> &command, const char *hint,
- const char *application, const char *Fatal,
- int out_fileno)
+ const char *application, int out_fileno)
{
if(pipe(in) == -1) {
ostringstream buf;
@@ -90,7 +89,6 @@ void iopipestream::open(const mem::vector<string> &command, const char *hint,
Running=true;
pipeopen=true;
pipein=true;
- fatal=Fatal;
block(false,true);
}
@@ -184,15 +182,13 @@ void iopipestream::wait(const char *prompt)
{
sbuffer.clear();
size_t plen=strlen(prompt);
- size_t flen=strlen(fatal);
do {
readbuffer();
+ if(*buffer == 0) camp::reportError(sbuffer);
sbuffer.append(buffer);
if(tailequals(sbuffer.c_str(),sbuffer.size(),prompt,plen)) break;
- if(*fatal && tailequals(sbuffer.c_str(),sbuffer.size(),fatal,flen))
- camp::reportError(sbuffer);
} while(true);
}
diff --git a/graphics/asymptote/pipestream.h b/graphics/asymptote/pipestream.h
index 59252e468e..26eae7a611 100644
--- a/graphics/asymptote/pipestream.h
+++ b/graphics/asymptote/pipestream.h
@@ -38,22 +38,19 @@ protected:
bool Running;
bool pipeopen;
bool pipein;
- const char *fatal;
public:
void open(const mem::vector<string> &command, const char *hint=NULL,
- const char *application="", const char *fatal="",
- int out_fileno=STDOUT_FILENO);
+ const char *application="", int out_fileno=STDOUT_FILENO);
bool isopen() {return pipeopen;}
iopipestream(): pid(0), pipeopen(false) {}
iopipestream(const mem::vector<string> &command, const char *hint=NULL,
- const char *application="", const char *fatal="",
- int out_fileno=STDOUT_FILENO) :
+ const char *application="", int out_fileno=STDOUT_FILENO) :
pid(0), pipeopen(false) {
- open(command,hint,application,fatal,out_fileno);
+ open(command,hint,application,out_fileno);
}
void eof();
diff --git a/graphics/asymptote/psfile.cc b/graphics/asymptote/psfile.cc
index 8adce3855d..a34059c5fb 100644
--- a/graphics/asymptote/psfile.cc
+++ b/graphics/asymptote/psfile.cc
@@ -43,7 +43,7 @@ void checkColorSpace(ColorSpace colorspace)
psfile::psfile(const string& filename, bool pdfformat)
: filename(filename), pdfformat(pdfformat), pdf(false),
- transparency(false), buffer(NULL), out(NULL)
+ buffer(NULL), out(NULL)
{
if(filename.empty()) out=&cout;
else out=new ofstream(filename.c_str());
@@ -207,12 +207,14 @@ void psfile::setopacity(const pen& p)
{
if(p.blend() != lastpen.blend()) {
*out << "/" << p.blend() << " .setblendmode" << newl;
- transparency=true;
}
- if(p.opacity() != lastpen.opacity()) {
- *out << p.opacity() << " .setopacityalpha" << newl;
- transparency=true;
+ string outputformat=settings::getSetting<string>("outformat");
+ if(p.opacity() != lastpen.opacity() &&
+ (pdf || outputformat == "pdf" || outputformat == "html" ||
+ outputformat == "svg")) {
+ *out << p.opacity() << " .setfillconstantalpha" << newl
+ << p.opacity() << " .setstrokeconstantalpha" << newl;
}
lastpen.settransparency(p);
diff --git a/graphics/asymptote/psfile.h b/graphics/asymptote/psfile.h
index 8a76e4ae83..f85b7bc652 100644
--- a/graphics/asymptote/psfile.h
+++ b/graphics/asymptote/psfile.h
@@ -103,7 +103,6 @@ public:
string filename;
bool pdfformat; // Is final output format PDF?
bool pdf; // Output direct PDF?
- bool transparency; // Is transparency used?
unsigned char *buffer;
size_t count;
@@ -162,10 +161,6 @@ public:
*out << newl;
}
-// bool Transparency() {
-// return transparency;
-// }
-
void write(pair z) {
*out << " " << z.getx() << " " << z.gety();
}
@@ -287,9 +282,6 @@ public:
virtual void gouraudshade(const pen& pentype, const vm::array& pens,
const vm::array& vertices, const vm::array& edges);
- virtual void begintensorshade(const vm::array& pens,
- const vm::array& boundaries,
- const vm::array& z) {}
virtual void tensorshade(const pen& pentype, const vm::array& pens,
const vm::array& boundaries, const vm::array& z);
diff --git a/graphics/asymptote/revision.cc b/graphics/asymptote/revision.cc
index 07385bb81a..401bc74f65 100644
--- a/graphics/asymptote/revision.cc
+++ b/graphics/asymptote/revision.cc
@@ -1,2 +1,2 @@
-const char *REVISION="2.65";
+const char *REVISION="2.66";
const char *AsyGLVersion="1.00";
diff --git a/graphics/asymptote/runarray.cc b/graphics/asymptote/runarray.cc
index 5478028e4e..199303ae14 100644
--- a/graphics/asymptote/runarray.cc
+++ b/graphics/asymptote/runarray.cc
@@ -739,18 +739,19 @@ void copyArray(stack *Stack)
Int depth=vm::pop<Int>(Stack,Int_MAX);
array * a=vm::pop<array *>(Stack);
#line 669 "runarray.in"
+ if(a == 0) vm::error(dereferenceNullArray);
if(depth < 0) error("cannot copy to a negative depth");
if(depth > typeDepth) depth=typeDepth;
{Stack->push<array*>(a->copyToDepth(depth)); return;}
}
// Read an element from an array. Checks for initialization & bounds.
-#line 676 "runarray.in"
+#line 677 "runarray.in"
void arrayRead(stack *Stack)
{
Int n=vm::pop<Int>(Stack);
array * a=vm::pop<array *>(Stack);
-#line 677 "runarray.in"
+#line 678 "runarray.in"
item& i=arrayRead(a,n);
if (i.empty()) {
ostringstream buf;
@@ -761,37 +762,37 @@ void arrayRead(stack *Stack)
}
// Slice a substring from an array.
-#line 688 "runarray.in"
+#line 689 "runarray.in"
void arraySliceRead(stack *Stack)
{
Int right=vm::pop<Int>(Stack);
Int left=vm::pop<Int>(Stack);
array * a=vm::pop<array *>(Stack);
-#line 689 "runarray.in"
+#line 690 "runarray.in"
checkArray(a);
{Stack->push(a->slice(left, right)); return;}
}
// Slice a substring from an array. This implements the cases a[i:] and a[:]
// where the endpoint is not given, and assumed to be the length of the array.
-#line 696 "runarray.in"
+#line 697 "runarray.in"
void arraySliceReadToEnd(stack *Stack)
{
Int left=vm::pop<Int>(Stack);
array * a=vm::pop<array *>(Stack);
-#line 697 "runarray.in"
+#line 698 "runarray.in"
size_t len=checkArray(a);
{Stack->push(a->slice(left, (Int)len)); return;}
}
// Read an element from an array of arrays. Check bounds and initialize
// as necessary.
-#line 704 "runarray.in"
+#line 705 "runarray.in"
void arrayArrayRead(stack *Stack)
{
Int n=vm::pop<Int>(Stack);
array * a=vm::pop<array *>(Stack);
-#line 705 "runarray.in"
+#line 706 "runarray.in"
item& i=arrayRead(a,n);
if (i.empty()) i=new array(0);
{Stack->push(i); return;}
@@ -799,13 +800,13 @@ void arrayArrayRead(stack *Stack)
// Write an element to an array. Increase size if necessary.
// TODO: Add arrayWriteAndPop
-#line 713 "runarray.in"
+#line 714 "runarray.in"
void arrayWrite(stack *Stack)
{
item value=vm::pop(Stack);
Int n=vm::pop<Int>(Stack);
array * a=vm::pop<array *>(Stack);
-#line 714 "runarray.in"
+#line 715 "runarray.in"
size_t len=checkArray(a);
bool cyclic=a->cyclic();
if(cyclic && len > 0) n=imod(n,len);
@@ -819,27 +820,27 @@ void arrayWrite(stack *Stack)
{Stack->push(value); return;}
}
-#line 728 "runarray.in"
+#line 729 "runarray.in"
void arraySliceWrite(stack *Stack)
{
array * src=vm::pop<array *>(Stack);
Int right=vm::pop<Int>(Stack);
Int left=vm::pop<Int>(Stack);
array * dest=vm::pop<array *>(Stack);
-#line 729 "runarray.in"
+#line 730 "runarray.in"
checkArray(src);
checkArray(dest);
dest->setSlice(left, right, src);
{Stack->push<array*>(src); return;}
}
-#line 736 "runarray.in"
+#line 737 "runarray.in"
void arraySliceWriteToEnd(stack *Stack)
{
array * src=vm::pop<array *>(Stack);
Int left=vm::pop<Int>(Stack);
array * dest=vm::pop<array *>(Stack);
-#line 737 "runarray.in"
+#line 738 "runarray.in"
checkArray(src);
size_t len=checkArray(dest);
dest->setSlice(left, (Int) len, src);
@@ -847,20 +848,20 @@ void arraySliceWriteToEnd(stack *Stack)
}
// Returns the length of an array.
-#line 745 "runarray.in"
+#line 746 "runarray.in"
void arrayLength(stack *Stack)
{
array * a=vm::pop<array *>(Stack);
-#line 746 "runarray.in"
+#line 747 "runarray.in"
{Stack->push<Int>((Int) checkArray(a)); return;}
}
// Returns an array of integers representing the keys of the array.
-#line 751 "runarray.in"
+#line 752 "runarray.in"
void arrayKeys(stack *Stack)
{
array * a=vm::pop<array *>(Stack);
-#line 752 "runarray.in"
+#line 753 "runarray.in"
size_t size=checkArray(a);
array *keys=new array();
@@ -874,33 +875,33 @@ void arrayKeys(stack *Stack)
}
// Return the cyclic flag for an array.
-#line 766 "runarray.in"
+#line 767 "runarray.in"
void arrayCyclicFlag(stack *Stack)
{
array * a=vm::pop<array *>(Stack);
-#line 767 "runarray.in"
+#line 768 "runarray.in"
checkArray(a);
{Stack->push<bool>(a->cyclic()); return;}
}
-#line 772 "runarray.in"
+#line 773 "runarray.in"
void arraySetCyclicFlag(stack *Stack)
{
array * a=vm::pop<array *>(Stack);
bool b=vm::pop<bool>(Stack);
-#line 773 "runarray.in"
+#line 774 "runarray.in"
checkArray(a);
a->cyclic(b);
{Stack->push<bool>(b); return;}
}
// Check to see if an array element is initialized.
-#line 780 "runarray.in"
+#line 781 "runarray.in"
void arrayInitializedHelper(stack *Stack)
{
array * a=vm::pop<array *>(Stack);
Int n=vm::pop<Int>(Stack);
-#line 781 "runarray.in"
+#line 782 "runarray.in"
size_t len=checkArray(a);
bool cyclic=a->cyclic();
if(cyclic && len > 0) n=imod(n,len);
@@ -910,62 +911,62 @@ void arrayInitializedHelper(stack *Stack)
}
// Returns the initialize method for an array.
-#line 791 "runarray.in"
+#line 792 "runarray.in"
void arrayInitialized(stack *Stack)
{
array * a=vm::pop<array *>(Stack);
-#line 792 "runarray.in"
+#line 793 "runarray.in"
{Stack->push<callable*>(new thunk(new bfunc(arrayInitializedHelper),a)); return;}
}
// The helper function for the cyclic method that sets the cyclic flag.
-#line 797 "runarray.in"
+#line 798 "runarray.in"
void arrayCyclicHelper(stack *Stack)
{
array * a=vm::pop<array *>(Stack);
bool b=vm::pop<bool>(Stack);
-#line 798 "runarray.in"
+#line 799 "runarray.in"
checkArray(a);
a->cyclic(b);
}
// Set the cyclic flag for an array.
-#line 804 "runarray.in"
+#line 805 "runarray.in"
void arrayCyclic(stack *Stack)
{
array * a=vm::pop<array *>(Stack);
-#line 805 "runarray.in"
+#line 806 "runarray.in"
{Stack->push<callable*>(new thunk(new bfunc(arrayCyclicHelper),a)); return;}
}
// The helper function for the push method that does the actual operation.
-#line 810 "runarray.in"
+#line 811 "runarray.in"
void arrayPushHelper(stack *Stack)
{
array * a=vm::pop<array *>(Stack);
item x=vm::pop(Stack);
-#line 811 "runarray.in"
+#line 812 "runarray.in"
checkArray(a);
a->push(x);
{Stack->push(x); return;}
}
// Returns the push method for an array.
-#line 818 "runarray.in"
+#line 819 "runarray.in"
void arrayPush(stack *Stack)
{
array * a=vm::pop<array *>(Stack);
-#line 819 "runarray.in"
+#line 820 "runarray.in"
{Stack->push<callable*>(new thunk(new bfunc(arrayPushHelper),a)); return;}
}
// The helper function for the append method that appends b to a.
-#line 824 "runarray.in"
+#line 825 "runarray.in"
void arrayAppendHelper(stack *Stack)
{
array * a=vm::pop<array *>(Stack);
array * b=vm::pop<array *>(Stack);
-#line 825 "runarray.in"
+#line 826 "runarray.in"
checkArray(a);
size_t size=checkArray(b);
for(size_t i=0; i < size; i++)
@@ -973,20 +974,20 @@ void arrayAppendHelper(stack *Stack)
}
// Returns the append method for an array.
-#line 833 "runarray.in"
+#line 834 "runarray.in"
void arrayAppend(stack *Stack)
{
array * a=vm::pop<array *>(Stack);
-#line 834 "runarray.in"
+#line 835 "runarray.in"
{Stack->push<callable*>(new thunk(new bfunc(arrayAppendHelper),a)); return;}
}
// The helper function for the pop method.
-#line 839 "runarray.in"
+#line 840 "runarray.in"
void arrayPopHelper(stack *Stack)
{
array * a=vm::pop<array *>(Stack);
-#line 840 "runarray.in"
+#line 841 "runarray.in"
size_t asize=checkArray(a);
if(asize == 0)
error("cannot pop element from empty array");
@@ -994,22 +995,22 @@ void arrayPopHelper(stack *Stack)
}
// Returns the pop method for an array.
-#line 848 "runarray.in"
+#line 849 "runarray.in"
void arrayPop(stack *Stack)
{
array * a=vm::pop<array *>(Stack);
-#line 849 "runarray.in"
+#line 850 "runarray.in"
{Stack->push<callable*>(new thunk(new bfunc(arrayPopHelper),a)); return;}
}
// The helper function for the insert method.
-#line 854 "runarray.in"
+#line 855 "runarray.in"
void arrayInsertHelper(stack *Stack)
{
array * a=vm::pop<array *>(Stack);
array * x=vm::pop<array *>(Stack);
Int i=vm::pop<Int>(Stack);
-#line 855 "runarray.in"
+#line 856 "runarray.in"
size_t asize=checkArray(a);
checkArray(x);
if(a->cyclic() && asize > 0) i=imod(i,asize);
@@ -1019,39 +1020,39 @@ void arrayInsertHelper(stack *Stack)
}
// Returns the insert method for an array.
-#line 865 "runarray.in"
+#line 866 "runarray.in"
void arrayInsert(stack *Stack)
{
array * a=vm::pop<array *>(Stack);
-#line 866 "runarray.in"
+#line 867 "runarray.in"
{Stack->push<callable*>(new thunk(new bfunc(arrayInsertHelper),a)); return;}
}
// Returns the delete method for an array.
-#line 871 "runarray.in"
+#line 872 "runarray.in"
void arrayDelete(stack *Stack)
{
array * a=vm::pop<array *>(Stack);
-#line 872 "runarray.in"
+#line 873 "runarray.in"
{Stack->push<callable*>(new thunk(new bfunc(arrayDeleteHelper),a)); return;}
}
-#line 876 "runarray.in"
+#line 877 "runarray.in"
void arrayAlias(stack *Stack)
{
array * b=vm::pop<array *>(Stack);
array * a=vm::pop<array *>(Stack);
-#line 877 "runarray.in"
+#line 878 "runarray.in"
{Stack->push<bool>(a==b); return;}
}
// Return array formed by indexing array a with elements of integer array b
-#line 882 "runarray.in"
+#line 883 "runarray.in"
void arrayIntArray(stack *Stack)
{
array * b=vm::pop<array *>(Stack);
array * a=vm::pop<array *>(Stack);
-#line 883 "runarray.in"
+#line 884 "runarray.in"
size_t asize=checkArray(a);
size_t bsize=checkArray(b);
array *r=new array(bsize);
@@ -1069,13 +1070,13 @@ void arrayIntArray(stack *Stack)
// returns the complement of the integer array a in {0,2,...,n-1},
// so that b[complement(a,b.length)] yields the complement of b[a].
-#line 901 "runarray.in"
+#line 902 "runarray.in"
// Intarray* complement(Intarray *a, Int n);
void gen_runarray32(stack *Stack)
{
Int n=vm::pop<Int>(Stack);
Intarray * a=vm::pop<Intarray *>(Stack);
-#line 902 "runarray.in"
+#line 903 "runarray.in"
size_t asize=checkArray(a);
array *r=new array(0);
bool *keep=new bool[n];
@@ -1092,12 +1093,12 @@ void gen_runarray32(stack *Stack)
}
// Generate the sequence {f(i) : i=0,1,...n-1} given a function f and integer n
-#line 919 "runarray.in"
+#line 920 "runarray.in"
void arraySequence(stack *Stack)
{
Int n=vm::pop<Int>(Stack);
callable * f=vm::pop<callable *>(Stack);
-#line 920 "runarray.in"
+#line 921 "runarray.in"
if(n < 0) n=0;
array *a=new array(n);
for(Int i=0; i < n; ++i) {
@@ -1109,12 +1110,12 @@ void arraySequence(stack *Stack)
}
// Return the array {0,1,...n-1}
-#line 932 "runarray.in"
+#line 933 "runarray.in"
// Intarray* sequence(Int n);
void gen_runarray34(stack *Stack)
{
Int n=vm::pop<Int>(Stack);
-#line 933 "runarray.in"
+#line 934 "runarray.in"
if(n < 0) n=0;
array *a=new array(n);
for(Int i=0; i < n; ++i) {
@@ -1124,12 +1125,12 @@ void gen_runarray34(stack *Stack)
}
// Apply a function to each element of an array
-#line 943 "runarray.in"
+#line 944 "runarray.in"
void arrayFunction(stack *Stack)
{
array * a=vm::pop<array *>(Stack);
callable * f=vm::pop<callable *>(Stack);
-#line 944 "runarray.in"
+#line 945 "runarray.in"
size_t size=checkArray(a);
array *b=new array(size);
for(size_t i=0; i < size; ++i) {
@@ -1140,13 +1141,13 @@ void arrayFunction(stack *Stack)
{Stack->push<array*>(b); return;}
}
-#line 955 "runarray.in"
+#line 956 "runarray.in"
void arraySort(stack *Stack)
{
bool stable=vm::pop<bool>(Stack,true);
callable * less=vm::pop<callable *>(Stack);
array * a=vm::pop<array *>(Stack);
-#line 956 "runarray.in"
+#line 957 "runarray.in"
array *c=copyArray(a);
compareFunc=less;
FuncStack=Stack;
@@ -1155,13 +1156,13 @@ void arraySort(stack *Stack)
{Stack->push<array*>(c); return;}
}
-#line 965 "runarray.in"
+#line 966 "runarray.in"
void arraySearch(stack *Stack)
{
callable * less=vm::pop<callable *>(Stack);
item key=vm::pop(Stack);
array * a=vm::pop<array *>(Stack);
-#line 966 "runarray.in"
+#line 967 "runarray.in"
size_t size=a->size();
compareFunc=less;
FuncStack=Stack;
@@ -1179,12 +1180,12 @@ void arraySearch(stack *Stack)
{Stack->push<Int>(0); return;}
}
-#line 984 "runarray.in"
+#line 985 "runarray.in"
// bool all(boolarray *a);
void gen_runarray38(stack *Stack)
{
boolarray * a=vm::pop<boolarray *>(Stack);
-#line 985 "runarray.in"
+#line 986 "runarray.in"
size_t size=checkArray(a);
bool c=true;
for(size_t i=0; i < size; i++)
@@ -1192,12 +1193,12 @@ void gen_runarray38(stack *Stack)
{Stack->push<bool>(c); return;}
}
-#line 993 "runarray.in"
+#line 994 "runarray.in"
// boolarray* !(boolarray* a);
void gen_runarray39(stack *Stack)
{
boolarray* a=vm::pop<boolarray*>(Stack);
-#line 994 "runarray.in"
+#line 995 "runarray.in"
size_t size=checkArray(a);
array *c=new array(size);
for(size_t i=0; i < size; i++)
@@ -1205,12 +1206,12 @@ void gen_runarray39(stack *Stack)
{Stack->push<boolarray*>(c); return;}
}
-#line 1002 "runarray.in"
+#line 1003 "runarray.in"
// Int sum(boolarray *a);
void gen_runarray40(stack *Stack)
{
boolarray * a=vm::pop<boolarray *>(Stack);
-#line 1003 "runarray.in"
+#line 1004 "runarray.in"
size_t size=checkArray(a);
Int sum=0;
for(size_t i=0; i < size; i++)
@@ -1218,11 +1219,11 @@ void gen_runarray40(stack *Stack)
{Stack->push<Int>(sum); return;}
}
-#line 1011 "runarray.in"
+#line 1012 "runarray.in"
void arrayConcat(stack *Stack)
{
array * a=vm::pop<array *>(Stack);
-#line 1012 "runarray.in"
+#line 1013 "runarray.in"
// a is an array of arrays to be concatenated together.
// The signature is
// T[] concat(... T[][] a);
@@ -1249,11 +1250,11 @@ void arrayConcat(stack *Stack)
{Stack->push<array*>(result); return;}
}
-#line 1039 "runarray.in"
+#line 1040 "runarray.in"
void array2Transpose(stack *Stack)
{
array * a=vm::pop<array *>(Stack);
-#line 1040 "runarray.in"
+#line 1041 "runarray.in"
size_t asize=checkArray(a);
array *c=new array(0);
for(size_t i=0; i < asize; i++) {
@@ -1280,12 +1281,12 @@ void array2Transpose(stack *Stack)
// permutation (021 or 120, etc; original is 012).
// Transpose by sending respective members to the permutated locations:
// return the array obtained by putting a[i][j][k] into position perm{ijk}.
-#line 1067 "runarray.in"
+#line 1068 "runarray.in"
void array3Transpose(stack *Stack)
{
array * perm=vm::pop<array *>(Stack);
array * a=vm::pop<array *>(Stack);
-#line 1068 "runarray.in"
+#line 1069 "runarray.in"
const size_t DIM=3;
if(checkArray(perm) != DIM) {
@@ -1369,13 +1370,13 @@ void array3Transpose(stack *Stack)
// Find the index of the nth true value in a boolean array or -1 if not found.
// If n is negative, search backwards.
-#line 1152 "runarray.in"
+#line 1153 "runarray.in"
// Int find(boolarray *a, Int n=1);
void gen_runarray44(stack *Stack)
{
Int n=vm::pop<Int>(Stack,1);
boolarray * a=vm::pop<boolarray *>(Stack);
-#line 1153 "runarray.in"
+#line 1154 "runarray.in"
size_t size=checkArray(a);
Int j=-1;
if(n > 0)
@@ -1392,12 +1393,12 @@ void gen_runarray44(stack *Stack)
}
// Find all indices of true values in a boolean array.
-#line 1170 "runarray.in"
+#line 1171 "runarray.in"
// Intarray* findall(boolarray *a);
void gen_runarray45(stack *Stack)
{
boolarray * a=vm::pop<boolarray *>(Stack);
-#line 1171 "runarray.in"
+#line 1172 "runarray.in"
size_t size=checkArray(a);
array *b=new array(0);
for(size_t i=0; i < size; i++) {
@@ -1410,13 +1411,13 @@ void gen_runarray45(stack *Stack)
// construct vector obtained by replacing those elements of b for which the
// corresponding elements of a are false by the corresponding element of c.
-#line 1184 "runarray.in"
+#line 1185 "runarray.in"
void arrayConditional(stack *Stack)
{
array * c=vm::pop<array *>(Stack);
array * b=vm::pop<array *>(Stack);
array * a=vm::pop<array *>(Stack);
-#line 1185 "runarray.in"
+#line 1186 "runarray.in"
size_t size=checkArray(a);
array *r=new array(size);
if(b && c) {
@@ -1440,22 +1441,22 @@ void arrayConditional(stack *Stack)
}
// Return an n x n identity matrix.
-#line 1209 "runarray.in"
+#line 1210 "runarray.in"
// realarray2* identity(Int n);
void gen_runarray47(stack *Stack)
{
Int n=vm::pop<Int>(Stack);
-#line 1210 "runarray.in"
+#line 1211 "runarray.in"
{Stack->push<realarray2*>(Identity(n)); return;}
}
// Return the inverse of an n x n matrix a using Gauss-Jordan elimination.
-#line 1215 "runarray.in"
+#line 1216 "runarray.in"
// realarray2* inverse(realarray2 *a);
void gen_runarray48(stack *Stack)
{
realarray2 * a=vm::pop<realarray2 *>(Stack);
-#line 1216 "runarray.in"
+#line 1217 "runarray.in"
size_t n=checkArray(a);
double *A;
copyArray2C(A,a,true,0,NoGC);
@@ -1468,14 +1469,14 @@ void gen_runarray48(stack *Stack)
// Solve the linear equation ax=b by LU decomposition, returning the
// solution x, where a is an n x n matrix and b is an array of length n.
// If no solution exists, return an empty array.
-#line 1229 "runarray.in"
+#line 1230 "runarray.in"
// realarray* solve(realarray2 *a, realarray *b, bool warn=true);
void gen_runarray49(stack *Stack)
{
bool warn=vm::pop<bool>(Stack,true);
realarray * b=vm::pop<realarray *>(Stack);
realarray2 * a=vm::pop<realarray2 *>(Stack);
-#line 1230 "runarray.in"
+#line 1231 "runarray.in"
size_t n=checkArray(a);
if(n == 0) {Stack->push<realarray*>(new array(0)); return;}
@@ -1527,14 +1528,14 @@ void gen_runarray49(stack *Stack)
// Solve the linear equation ax=b by LU decomposition, returning the
// solution x, where a is an n x n matrix and b is an n x m matrix.
// If no solution exists, return an empty array.
-#line 1282 "runarray.in"
+#line 1283 "runarray.in"
// realarray2* solve(realarray2 *a, realarray2 *b, bool warn=true);
void gen_runarray50(stack *Stack)
{
bool warn=vm::pop<bool>(Stack,true);
realarray2 * b=vm::pop<realarray2 *>(Stack);
realarray2 * a=vm::pop<realarray2 *>(Stack);
-#line 1283 "runarray.in"
+#line 1284 "runarray.in"
size_t n=checkArray(a);
if(n == 0) {Stack->push<realarray2*>(new array(0)); return;}
@@ -1596,12 +1597,12 @@ void gen_runarray50(stack *Stack)
}
// Compute the determinant of an n x n matrix.
-#line 1345 "runarray.in"
+#line 1346 "runarray.in"
// real determinant(realarray2 *a);
void gen_runarray51(stack *Stack)
{
realarray2 * a=vm::pop<realarray2 *>(Stack);
-#line 1346 "runarray.in"
+#line 1347 "runarray.in"
real *A;
copyArray2C(A,a);
size_t n=checkArray(a);
@@ -1616,13 +1617,13 @@ void gen_runarray51(stack *Stack)
{Stack->push<real>(det); return;}
}
-#line 1361 "runarray.in"
+#line 1362 "runarray.in"
// realarray* *(realarray2 *a, realarray *b);
void gen_runarray52(stack *Stack)
{
realarray * b=vm::pop<realarray *>(Stack);
realarray2 * a=vm::pop<realarray2 *>(Stack);
-#line 1362 "runarray.in"
+#line 1363 "runarray.in"
size_t n=checkArray(a);
size_t m=checkArray(b);
array *c=new array(n);
@@ -1640,13 +1641,13 @@ void gen_runarray52(stack *Stack)
{Stack->push<realarray*>(c); return;}
}
-#line 1380 "runarray.in"
+#line 1381 "runarray.in"
// realarray* *(realarray *a, realarray2 *b);
void gen_runarray53(stack *Stack)
{
realarray2 * b=vm::pop<realarray2 *>(Stack);
realarray * a=vm::pop<realarray *>(Stack);
-#line 1381 "runarray.in"
+#line 1382 "runarray.in"
size_t n=checkArray(a);
if(n != checkArray(b)) error(incommensurate);
real *A;
@@ -1674,62 +1675,62 @@ void gen_runarray53(stack *Stack)
{Stack->push<realarray*>(c); return;}
}
-#line 1409 "runarray.in"
+#line 1410 "runarray.in"
// Intarray2* *(Intarray2 *a, Intarray2 *b);
void gen_runarray54(stack *Stack)
{
Intarray2 * b=vm::pop<Intarray2 *>(Stack);
Intarray2 * a=vm::pop<Intarray2 *>(Stack);
-#line 1410 "runarray.in"
+#line 1411 "runarray.in"
{Stack->push<Intarray2*>(mult<Int>(a,b)); return;}
}
-#line 1414 "runarray.in"
+#line 1415 "runarray.in"
// realarray2* *(realarray2 *a, realarray2 *b);
void gen_runarray55(stack *Stack)
{
realarray2 * b=vm::pop<realarray2 *>(Stack);
realarray2 * a=vm::pop<realarray2 *>(Stack);
-#line 1415 "runarray.in"
+#line 1416 "runarray.in"
{Stack->push<realarray2*>(mult<real>(a,b)); return;}
}
-#line 1419 "runarray.in"
+#line 1420 "runarray.in"
// pairarray2* *(pairarray2 *a, pairarray2 *b);
void gen_runarray56(stack *Stack)
{
pairarray2 * b=vm::pop<pairarray2 *>(Stack);
pairarray2 * a=vm::pop<pairarray2 *>(Stack);
-#line 1420 "runarray.in"
+#line 1421 "runarray.in"
{Stack->push<pairarray2*>(mult<pair>(a,b)); return;}
}
-#line 1424 "runarray.in"
+#line 1425 "runarray.in"
// triple *(realarray2 *t, triple v);
void gen_runarray57(stack *Stack)
{
triple v=vm::pop<triple>(Stack);
realarray2 * t=vm::pop<realarray2 *>(Stack);
-#line 1425 "runarray.in"
+#line 1426 "runarray.in"
{Stack->push<triple>(*t*v); return;}
}
-#line 1429 "runarray.in"
+#line 1430 "runarray.in"
// realarray2* AtA(realarray2 *a);
void gen_runarray58(stack *Stack)
{
realarray2 * a=vm::pop<realarray2 *>(Stack);
-#line 1430 "runarray.in"
+#line 1431 "runarray.in"
{Stack->push<realarray2*>(AtA<real>(a)); return;}
}
-#line 1434 "runarray.in"
+#line 1435 "runarray.in"
// pair project(triple v, realarray2 *t);
void gen_runarray59(stack *Stack)
{
realarray2 * t=vm::pop<realarray2 *>(Stack);
triple v=vm::pop<triple>(Stack);
-#line 1435 "runarray.in"
+#line 1436 "runarray.in"
size_t n=checkArray(t);
if(n != 4) error(incommensurate);
array *t0=read<array*>(t,0);
@@ -1754,13 +1755,13 @@ void gen_runarray59(stack *Stack)
}
// Compute the dot product of vectors a and b.
-#line 1460 "runarray.in"
+#line 1461 "runarray.in"
// real dot(realarray *a, realarray *b);
void gen_runarray60(stack *Stack)
{
realarray * b=vm::pop<realarray *>(Stack);
realarray * a=vm::pop<realarray *>(Stack);
-#line 1461 "runarray.in"
+#line 1462 "runarray.in"
size_t n=checkArrays(a,b);
real sum=0.0;
for(size_t i=0; i < n; ++i)
@@ -1769,13 +1770,13 @@ void gen_runarray60(stack *Stack)
}
// Compute the complex dot product of vectors a and b.
-#line 1470 "runarray.in"
+#line 1471 "runarray.in"
// pair dot(pairarray *a, pairarray *b);
void gen_runarray61(stack *Stack)
{
pairarray * b=vm::pop<pairarray *>(Stack);
pairarray * a=vm::pop<pairarray *>(Stack);
-#line 1471 "runarray.in"
+#line 1472 "runarray.in"
size_t n=checkArrays(a,b);
pair sum=zero;
for(size_t i=0; i < n; ++i)
@@ -1790,7 +1791,7 @@ void gen_runarray61(stack *Stack)
// [ a[2] b[2] c[2] ]
// [ ... ]
// [ c[n-1] a[n-1] b[n-1] ]
-#line 1486 "runarray.in"
+#line 1487 "runarray.in"
// realarray* tridiagonal(realarray *a, realarray *b, realarray *c, realarray *f);
void gen_runarray62(stack *Stack)
{
@@ -1798,7 +1799,7 @@ void gen_runarray62(stack *Stack)
realarray * c=vm::pop<realarray *>(Stack);
realarray * b=vm::pop<realarray *>(Stack);
realarray * a=vm::pop<realarray *>(Stack);
-#line 1487 "runarray.in"
+#line 1488 "runarray.in"
size_t n=checkArrays(a,b);
checkEqual(n,checkArray(c));
checkEqual(n,checkArray(f));
@@ -1895,7 +1896,7 @@ void gen_runarray62(stack *Stack)
}
// Root solve by Newton-Raphson
-#line 1584 "runarray.in"
+#line 1585 "runarray.in"
// real newton(Int iterations=100, callableReal *f, callableReal *fprime, real x, bool verbose=false);
void gen_runarray63(stack *Stack)
{
@@ -1904,7 +1905,7 @@ void gen_runarray63(stack *Stack)
callableReal * fprime=vm::pop<callableReal *>(Stack);
callableReal * f=vm::pop<callableReal *>(Stack);
Int iterations=vm::pop<Int>(Stack,100);
-#line 1586 "runarray.in"
+#line 1587 "runarray.in"
static const real fuzz=1000.0*DBL_EPSILON;
Int i=0;
size_t oldPrec=0;
@@ -1950,7 +1951,7 @@ void gen_runarray63(stack *Stack)
// Root solve by Newton-Raphson bisection
// cf. routine rtsafe (Press et al., Numerical Recipes, 1991).
-#line 1632 "runarray.in"
+#line 1633 "runarray.in"
// real newton(Int iterations=100, callableReal *f, callableReal *fprime, real x1, real x2, bool verbose=false);
void gen_runarray64(stack *Stack)
{
@@ -1960,7 +1961,7 @@ void gen_runarray64(stack *Stack)
callableReal * fprime=vm::pop<callableReal *>(Stack);
callableReal * f=vm::pop<callableReal *>(Stack);
Int iterations=vm::pop<Int>(Stack,100);
-#line 1634 "runarray.in"
+#line 1635 "runarray.in"
static const real fuzz=1000.0*DBL_EPSILON;
size_t oldPrec=0;
if(verbose)
@@ -2046,7 +2047,7 @@ void gen_runarray64(stack *Stack)
// In this implementation, the binary search is interleaved
// with a modified version of quadratic interpolation.
// This is a C++ port of the Asymptote routine written by Charles Staats III.
-#line 1720 "runarray.in"
+#line 1721 "runarray.in"
// real _findroot(callableReal *f, real a, real b, real tolerance, real fa, real fb);
void gen_runarray65(stack *Stack)
{
@@ -2056,7 +2057,7 @@ void gen_runarray65(stack *Stack)
real b=vm::pop<real>(Stack);
real a=vm::pop<real>(Stack);
callableReal * f=vm::pop<callableReal *>(Stack);
-#line 1722 "runarray.in"
+#line 1723 "runarray.in"
if(fa == 0.0) {Stack->push<real>(a); return;}
if(fb == 0.0) {Stack->push<real>(b); return;}
@@ -2148,7 +2149,7 @@ void gen_runarray65(stack *Stack)
{Stack->push<real>(a-(b-a)/(fb-fa)*fa); return;}
}
-#line 1814 "runarray.in"
+#line 1815 "runarray.in"
// real simpson(callableReal *f, real a, real b, real acc=DBL_EPSILON, real dxmax=0);
void gen_runarray66(stack *Stack)
{
@@ -2157,7 +2158,7 @@ void gen_runarray66(stack *Stack)
real b=vm::pop<real>(Stack);
real a=vm::pop<real>(Stack);
callableReal * f=vm::pop<callableReal *>(Stack);
-#line 1816 "runarray.in"
+#line 1817 "runarray.in"
real integral;
if(dxmax <= 0) dxmax=fabs(b-a);
callable *oldFunc=Func;
@@ -2170,13 +2171,13 @@ void gen_runarray66(stack *Stack)
}
// Compute the fast Fourier transform of a pair array
-#line 1829 "runarray.in"
+#line 1830 "runarray.in"
// pairarray* fft(pairarray *a, Int sign=1);
void gen_runarray67(stack *Stack)
{
Int sign=vm::pop<Int>(Stack,1);
pairarray * a=vm::pop<pairarray *>(Stack);
-#line 1830 "runarray.in"
+#line 1831 "runarray.in"
#ifdef HAVE_LIBFFTW3
unsigned n=(unsigned) checkArray(a);
array *c=new array(n);
@@ -2206,13 +2207,13 @@ void gen_runarray67(stack *Stack)
}
// Compute the fast Fourier transform of a 2D pair array
-#line 1860 "runarray.in"
+#line 1861 "runarray.in"
// pairarray2* fft(pairarray2 *a, Int sign=1);
void gen_runarray68(stack *Stack)
{
Int sign=vm::pop<Int>(Stack,1);
pairarray2 * a=vm::pop<pairarray2 *>(Stack);
-#line 1861 "runarray.in"
+#line 1862 "runarray.in"
#ifdef HAVE_LIBFFTW3
size_t n=checkArray(a);
size_t m=n == 0 ? 0 : checkArray(read<array*>(a,0));
@@ -2257,13 +2258,13 @@ void gen_runarray68(stack *Stack)
}
// Compute the fast Fourier transform of a 3D pair array
-#line 1906 "runarray.in"
+#line 1907 "runarray.in"
// pairarray3* fft(pairarray3 *a, Int sign=1);
void gen_runarray69(stack *Stack)
{
Int sign=vm::pop<Int>(Stack,1);
pairarray3 * a=vm::pop<pairarray3 *>(Stack);
-#line 1907 "runarray.in"
+#line 1908 "runarray.in"
#ifdef HAVE_LIBFFTW3
size_t n=checkArray(a);
array *a0=read<array*>(a,0);
@@ -2320,12 +2321,12 @@ void gen_runarray69(stack *Stack)
{Stack->push<pairarray3*>(c); return;}
}
-#line 1964 "runarray.in"
+#line 1965 "runarray.in"
// Intarray2* triangulate(pairarray *z);
void gen_runarray70(stack *Stack)
{
pairarray * z=vm::pop<pairarray *>(Stack);
-#line 1965 "runarray.in"
+#line 1966 "runarray.in"
size_t nv=checkArray(z);
// Call robust version of Gilles Dumoulin's port of Paul Bourke's
// triangulation code.
@@ -2359,12 +2360,12 @@ void gen_runarray70(stack *Stack)
{Stack->push<Intarray2*>(t); return;}
}
-#line 1999 "runarray.in"
+#line 2000 "runarray.in"
// real norm(realarray *a);
void gen_runarray71(stack *Stack)
{
realarray * a=vm::pop<realarray *>(Stack);
-#line 2000 "runarray.in"
+#line 2001 "runarray.in"
size_t n=checkArray(a);
real M=0.0;
for(size_t i=0; i < n; ++i) {
@@ -2374,12 +2375,12 @@ void gen_runarray71(stack *Stack)
{Stack->push<real>(M); return;}
}
-#line 2010 "runarray.in"
+#line 2011 "runarray.in"
// real norm(realarray2 *a);
void gen_runarray72(stack *Stack)
{
realarray2 * a=vm::pop<realarray2 *>(Stack);
-#line 2011 "runarray.in"
+#line 2012 "runarray.in"
size_t n=checkArray(a);
real M=0.0;
for(size_t i=0; i < n; ++i) {
@@ -2393,12 +2394,12 @@ void gen_runarray72(stack *Stack)
{Stack->push<real>(M); return;}
}
-#line 2025 "runarray.in"
+#line 2026 "runarray.in"
// real norm(triplearray2 *a);
void gen_runarray73(stack *Stack)
{
triplearray2 * a=vm::pop<triplearray2 *>(Stack);
-#line 2026 "runarray.in"
+#line 2027 "runarray.in"
size_t n=checkArray(a);
real M=0.0;
for(size_t i=0; i < n; ++i) {
@@ -2412,12 +2413,12 @@ void gen_runarray73(stack *Stack)
{Stack->push<real>(sqrt(M)); return;}
}
-#line 2040 "runarray.in"
+#line 2041 "runarray.in"
// real change2(triplearray2 *a);
void gen_runarray74(stack *Stack)
{
triplearray2 * a=vm::pop<triplearray2 *>(Stack);
-#line 2041 "runarray.in"
+#line 2042 "runarray.in"
size_t n=checkArray(a);
if(n == 0) {Stack->push<real>(0.0); return;}
@@ -2438,13 +2439,13 @@ void gen_runarray74(stack *Stack)
{Stack->push<real>(M); return;}
}
-#line 2062 "runarray.in"
+#line 2063 "runarray.in"
// triple minbezier(triplearray2 *P, triple b);
void gen_runarray75(stack *Stack)
{
triple b=vm::pop<triple>(Stack);
triplearray2 * P=vm::pop<triplearray2 *>(Stack);
-#line 2063 "runarray.in"
+#line 2064 "runarray.in"
size_t N;
real *A=copyTripleArray2Components(P,N);
bound_double *B=bounddouble(N);
@@ -2455,13 +2456,13 @@ void gen_runarray75(stack *Stack)
{Stack->push<triple>(b); return;}
}
-#line 2074 "runarray.in"
+#line 2075 "runarray.in"
// triple maxbezier(triplearray2 *P, triple b);
void gen_runarray76(stack *Stack)
{
triple b=vm::pop<triple>(Stack);
triplearray2 * P=vm::pop<triplearray2 *>(Stack);
-#line 2075 "runarray.in"
+#line 2076 "runarray.in"
size_t N;
real *A=copyTripleArray2Components(P,N);
bound_double *B=bounddouble(N);
@@ -2472,13 +2473,13 @@ void gen_runarray76(stack *Stack)
{Stack->push<triple>(b); return;}
}
-#line 2086 "runarray.in"
+#line 2087 "runarray.in"
// pair minratio(triplearray2 *P, pair b);
void gen_runarray77(stack *Stack)
{
pair b=vm::pop<pair>(Stack);
triplearray2 * P=vm::pop<triplearray2 *>(Stack);
-#line 2087 "runarray.in"
+#line 2088 "runarray.in"
size_t N;
triple *A=copyTripleArray2C(P,N);
real fuzz=Fuzz*norm(A,N);
@@ -2489,13 +2490,13 @@ void gen_runarray77(stack *Stack)
{Stack->push<pair>(b); return;}
}
-#line 2098 "runarray.in"
+#line 2099 "runarray.in"
// pair maxratio(triplearray2 *P, pair b);
void gen_runarray78(stack *Stack)
{
pair b=vm::pop<pair>(Stack);
triplearray2 * P=vm::pop<triplearray2 *>(Stack);
-#line 2099 "runarray.in"
+#line 2100 "runarray.in"
size_t N;
triple *A=copyTripleArray2C(P,N);
bound_triple *B=boundtriple(N);
@@ -2506,11 +2507,11 @@ void gen_runarray78(stack *Stack)
{Stack->push<pair>(b); return;}
}
-#line 2110 "runarray.in"
+#line 2111 "runarray.in"
// realarray* _projection();
void gen_runarray79(stack *Stack)
{
-#line 2111 "runarray.in"
+#line 2112 "runarray.in"
#ifdef HAVE_GL
array *a=new array(14);
gl::projection P=gl::camera();
@@ -2559,153 +2560,153 @@ void gen_runarray_venv(venv &ve)
REGISTER_BLTIN(run::copyArrayValue,"copyArrayValue");
#line 664 "runarray.in"
REGISTER_BLTIN(run::copyArray,"copyArray");
-#line 675 "runarray.in"
+#line 676 "runarray.in"
REGISTER_BLTIN(run::arrayRead,"arrayRead");
-#line 687 "runarray.in"
+#line 688 "runarray.in"
REGISTER_BLTIN(run::arraySliceRead,"arraySliceRead");
-#line 694 "runarray.in"
+#line 695 "runarray.in"
REGISTER_BLTIN(run::arraySliceReadToEnd,"arraySliceReadToEnd");
-#line 702 "runarray.in"
+#line 703 "runarray.in"
REGISTER_BLTIN(run::arrayArrayRead,"arrayArrayRead");
-#line 711 "runarray.in"
+#line 712 "runarray.in"
REGISTER_BLTIN(run::arrayWrite,"arrayWrite");
-#line 728 "runarray.in"
+#line 729 "runarray.in"
REGISTER_BLTIN(run::arraySliceWrite,"arraySliceWrite");
-#line 736 "runarray.in"
+#line 737 "runarray.in"
REGISTER_BLTIN(run::arraySliceWriteToEnd,"arraySliceWriteToEnd");
-#line 744 "runarray.in"
+#line 745 "runarray.in"
REGISTER_BLTIN(run::arrayLength,"arrayLength");
-#line 750 "runarray.in"
+#line 751 "runarray.in"
REGISTER_BLTIN(run::arrayKeys,"arrayKeys");
-#line 765 "runarray.in"
+#line 766 "runarray.in"
REGISTER_BLTIN(run::arrayCyclicFlag,"arrayCyclicFlag");
-#line 772 "runarray.in"
+#line 773 "runarray.in"
REGISTER_BLTIN(run::arraySetCyclicFlag,"arraySetCyclicFlag");
-#line 779 "runarray.in"
+#line 780 "runarray.in"
REGISTER_BLTIN(run::arrayInitializedHelper,"arrayInitializedHelper");
-#line 790 "runarray.in"
+#line 791 "runarray.in"
REGISTER_BLTIN(run::arrayInitialized,"arrayInitialized");
-#line 796 "runarray.in"
+#line 797 "runarray.in"
REGISTER_BLTIN(run::arrayCyclicHelper,"arrayCyclicHelper");
-#line 803 "runarray.in"
+#line 804 "runarray.in"
REGISTER_BLTIN(run::arrayCyclic,"arrayCyclic");
-#line 809 "runarray.in"
+#line 810 "runarray.in"
REGISTER_BLTIN(run::arrayPushHelper,"arrayPushHelper");
-#line 817 "runarray.in"
+#line 818 "runarray.in"
REGISTER_BLTIN(run::arrayPush,"arrayPush");
-#line 823 "runarray.in"
+#line 824 "runarray.in"
REGISTER_BLTIN(run::arrayAppendHelper,"arrayAppendHelper");
-#line 832 "runarray.in"
+#line 833 "runarray.in"
REGISTER_BLTIN(run::arrayAppend,"arrayAppend");
-#line 838 "runarray.in"
+#line 839 "runarray.in"
REGISTER_BLTIN(run::arrayPopHelper,"arrayPopHelper");
-#line 847 "runarray.in"
+#line 848 "runarray.in"
REGISTER_BLTIN(run::arrayPop,"arrayPop");
-#line 853 "runarray.in"
+#line 854 "runarray.in"
REGISTER_BLTIN(run::arrayInsertHelper,"arrayInsertHelper");
-#line 864 "runarray.in"
+#line 865 "runarray.in"
REGISTER_BLTIN(run::arrayInsert,"arrayInsert");
-#line 870 "runarray.in"
+#line 871 "runarray.in"
REGISTER_BLTIN(run::arrayDelete,"arrayDelete");
-#line 876 "runarray.in"
+#line 877 "runarray.in"
REGISTER_BLTIN(run::arrayAlias,"arrayAlias");
-#line 881 "runarray.in"
+#line 882 "runarray.in"
REGISTER_BLTIN(run::arrayIntArray,"arrayIntArray");
-#line 899 "runarray.in"
+#line 900 "runarray.in"
addFunc(ve, run::gen_runarray32, IntArray(), SYM(complement), formal(IntArray(), SYM(a), false, false), formal(primInt(), SYM(n), false, false));
-#line 918 "runarray.in"
+#line 919 "runarray.in"
REGISTER_BLTIN(run::arraySequence,"arraySequence");
-#line 931 "runarray.in"
+#line 932 "runarray.in"
addFunc(ve, run::gen_runarray34, IntArray(), SYM(sequence), formal(primInt(), SYM(n), false, false));
-#line 942 "runarray.in"
+#line 943 "runarray.in"
REGISTER_BLTIN(run::arrayFunction,"arrayFunction");
-#line 955 "runarray.in"
+#line 956 "runarray.in"
REGISTER_BLTIN(run::arraySort,"arraySort");
-#line 965 "runarray.in"
+#line 966 "runarray.in"
REGISTER_BLTIN(run::arraySearch,"arraySearch");
-#line 984 "runarray.in"
+#line 985 "runarray.in"
addFunc(ve, run::gen_runarray38, primBoolean(), SYM(all), formal(booleanArray(), SYM(a), false, false));
-#line 993 "runarray.in"
+#line 994 "runarray.in"
addFunc(ve, run::gen_runarray39, booleanArray(), SYM_LOGNOT, formal(booleanArray(), SYM(a), false, false));
-#line 1002 "runarray.in"
+#line 1003 "runarray.in"
addFunc(ve, run::gen_runarray40, primInt(), SYM(sum), formal(booleanArray(), SYM(a), false, false));
-#line 1011 "runarray.in"
+#line 1012 "runarray.in"
REGISTER_BLTIN(run::arrayConcat,"arrayConcat");
-#line 1039 "runarray.in"
+#line 1040 "runarray.in"
REGISTER_BLTIN(run::array2Transpose,"array2Transpose");
-#line 1063 "runarray.in"
+#line 1064 "runarray.in"
REGISTER_BLTIN(run::array3Transpose,"array3Transpose");
-#line 1150 "runarray.in"
+#line 1151 "runarray.in"
addFunc(ve, run::gen_runarray44, primInt(), SYM(find), formal(booleanArray(), SYM(a), false, false), formal(primInt(), SYM(n), true, false));
-#line 1169 "runarray.in"
+#line 1170 "runarray.in"
addFunc(ve, run::gen_runarray45, IntArray(), SYM(findall), formal(booleanArray(), SYM(a), false, false));
-#line 1182 "runarray.in"
+#line 1183 "runarray.in"
REGISTER_BLTIN(run::arrayConditional,"arrayConditional");
-#line 1208 "runarray.in"
+#line 1209 "runarray.in"
addFunc(ve, run::gen_runarray47, realArray2(), SYM(identity), formal(primInt(), SYM(n), false, false));
-#line 1214 "runarray.in"
+#line 1215 "runarray.in"
addFunc(ve, run::gen_runarray48, realArray2(), SYM(inverse), formal(realArray2(), SYM(a), false, false));
-#line 1226 "runarray.in"
+#line 1227 "runarray.in"
addFunc(ve, run::gen_runarray49, realArray(), SYM(solve), formal(realArray2(), SYM(a), false, false), formal(realArray(), SYM(b), false, false), formal(primBoolean(), SYM(warn), true, false));
-#line 1279 "runarray.in"
+#line 1280 "runarray.in"
addFunc(ve, run::gen_runarray50, realArray2(), SYM(solve), formal(realArray2(), SYM(a), false, false), formal(realArray2(), SYM(b), false, false), formal(primBoolean(), SYM(warn), true, false));
-#line 1344 "runarray.in"
+#line 1345 "runarray.in"
addFunc(ve, run::gen_runarray51, primReal(), SYM(determinant), formal(realArray2(), SYM(a), false, false));
-#line 1361 "runarray.in"
+#line 1362 "runarray.in"
addFunc(ve, run::gen_runarray52, realArray(), SYM_TIMES, formal(realArray2(), SYM(a), false, false), formal(realArray(), SYM(b), false, false));
-#line 1380 "runarray.in"
+#line 1381 "runarray.in"
addFunc(ve, run::gen_runarray53, realArray(), SYM_TIMES, formal(realArray(), SYM(a), false, false), formal(realArray2(), SYM(b), false, false));
-#line 1409 "runarray.in"
+#line 1410 "runarray.in"
addFunc(ve, run::gen_runarray54, IntArray2(), SYM_TIMES, formal(IntArray2(), SYM(a), false, false), formal(IntArray2(), SYM(b), false, false));
-#line 1414 "runarray.in"
+#line 1415 "runarray.in"
addFunc(ve, run::gen_runarray55, realArray2(), SYM_TIMES, formal(realArray2(), SYM(a), false, false), formal(realArray2(), SYM(b), false, false));
-#line 1419 "runarray.in"
+#line 1420 "runarray.in"
addFunc(ve, run::gen_runarray56, pairArray2(), SYM_TIMES, formal(pairArray2(), SYM(a), false, false), formal(pairArray2(), SYM(b), false, false));
-#line 1424 "runarray.in"
+#line 1425 "runarray.in"
addFunc(ve, run::gen_runarray57, primTriple(), SYM_TIMES, formal(realArray2(), SYM(t), false, false), formal(primTriple(), SYM(v), false, false));
-#line 1429 "runarray.in"
+#line 1430 "runarray.in"
addFunc(ve, run::gen_runarray58, realArray2(), SYM(AtA), formal(realArray2(), SYM(a), false, false));
-#line 1434 "runarray.in"
+#line 1435 "runarray.in"
addFunc(ve, run::gen_runarray59, primPair(), SYM(project), formal(primTriple(), SYM(v), false, false), formal(realArray2(), SYM(t), false, false));
-#line 1459 "runarray.in"
+#line 1460 "runarray.in"
addFunc(ve, run::gen_runarray60, primReal(), SYM(dot), formal(realArray(), SYM(a), false, false), formal(realArray(), SYM(b), false, false));
-#line 1469 "runarray.in"
+#line 1470 "runarray.in"
addFunc(ve, run::gen_runarray61, primPair(), SYM(dot), formal(pairArray(), SYM(a), false, false), formal(pairArray(), SYM(b), false, false));
-#line 1479 "runarray.in"
+#line 1480 "runarray.in"
addFunc(ve, run::gen_runarray62, realArray(), SYM(tridiagonal), formal(realArray(), SYM(a), false, false), formal(realArray(), SYM(b), false, false), formal(realArray(), SYM(c), false, false), formal(realArray(), SYM(f), false, false));
-#line 1583 "runarray.in"
+#line 1584 "runarray.in"
addFunc(ve, run::gen_runarray63, primReal(), SYM(newton), formal(primInt(), SYM(iterations), true, false), formal(realRealFunction(), SYM(f), false, false), formal(realRealFunction(), SYM(fprime), false, false), formal(primReal(), SYM(x), false, false), formal(primBoolean(), SYM(verbose), true, false));
-#line 1630 "runarray.in"
+#line 1631 "runarray.in"
addFunc(ve, run::gen_runarray64, primReal(), SYM(newton), formal(primInt(), SYM(iterations), true, false), formal(realRealFunction(), SYM(f), false, false), formal(realRealFunction(), SYM(fprime), false, false), formal(primReal(), SYM(x1), false, false), formal(primReal(), SYM(x2), false, false), formal(primBoolean(), SYM(verbose), true, false));
-#line 1712 "runarray.in"
+#line 1713 "runarray.in"
addFunc(ve, run::gen_runarray65, primReal(), SYM(_findroot), formal(realRealFunction(), SYM(f), false, false), formal(primReal(), SYM(a), false, false), formal(primReal(), SYM(b), false, false), formal(primReal(), SYM(tolerance), false, false), formal(primReal(), SYM(fa), false, false), formal(primReal(), SYM(fb), false, false));
-#line 1814 "runarray.in"
+#line 1815 "runarray.in"
addFunc(ve, run::gen_runarray66, primReal(), SYM(simpson), formal(realRealFunction(), SYM(f), false, false), formal(primReal(), SYM(a), false, false), formal(primReal(), SYM(b), false, false), formal(primReal(), SYM(acc), true, false), formal(primReal(), SYM(dxmax), true, false));
-#line 1828 "runarray.in"
+#line 1829 "runarray.in"
addFunc(ve, run::gen_runarray67, pairArray(), SYM(fft), formal(pairArray(), SYM(a), false, false), formal(primInt(), SYM(sign), true, false));
-#line 1859 "runarray.in"
+#line 1860 "runarray.in"
addFunc(ve, run::gen_runarray68, pairArray2(), SYM(fft), formal(pairArray2(), SYM(a), false, false), formal(primInt(), SYM(sign), true, false));
-#line 1905 "runarray.in"
+#line 1906 "runarray.in"
addFunc(ve, run::gen_runarray69, pairArray3(), SYM(fft), formal(pairArray3(), SYM(a), false, false), formal(primInt(), SYM(sign), true, false));
-#line 1964 "runarray.in"
+#line 1965 "runarray.in"
addFunc(ve, run::gen_runarray70, IntArray2(), SYM(triangulate), formal(pairArray(), SYM(z), false, false));
-#line 1999 "runarray.in"
+#line 2000 "runarray.in"
addFunc(ve, run::gen_runarray71, primReal(), SYM(norm), formal(realArray(), SYM(a), false, false));
-#line 2010 "runarray.in"
+#line 2011 "runarray.in"
addFunc(ve, run::gen_runarray72, primReal(), SYM(norm), formal(realArray2(), SYM(a), false, false));
-#line 2025 "runarray.in"
+#line 2026 "runarray.in"
addFunc(ve, run::gen_runarray73, primReal(), SYM(norm), formal(tripleArray2(), SYM(a), false, false));
-#line 2040 "runarray.in"
+#line 2041 "runarray.in"
addFunc(ve, run::gen_runarray74, primReal(), SYM(change2), formal(tripleArray2(), SYM(a), false, false));
-#line 2062 "runarray.in"
+#line 2063 "runarray.in"
addFunc(ve, run::gen_runarray75, primTriple(), SYM(minbezier), formal(tripleArray2(), SYM(p), false, false), formal(primTriple(), SYM(b), false, false));
-#line 2074 "runarray.in"
+#line 2075 "runarray.in"
addFunc(ve, run::gen_runarray76, primTriple(), SYM(maxbezier), formal(tripleArray2(), SYM(p), false, false), formal(primTriple(), SYM(b), false, false));
-#line 2086 "runarray.in"
+#line 2087 "runarray.in"
addFunc(ve, run::gen_runarray77, primPair(), SYM(minratio), formal(tripleArray2(), SYM(p), false, false), formal(primPair(), SYM(b), false, false));
-#line 2098 "runarray.in"
+#line 2099 "runarray.in"
addFunc(ve, run::gen_runarray78, primPair(), SYM(maxratio), formal(tripleArray2(), SYM(p), false, false), formal(primPair(), SYM(b), false, false));
-#line 2110 "runarray.in"
+#line 2111 "runarray.in"
addFunc(ve, run::gen_runarray79, realArray(), SYM(_projection));
}
diff --git a/graphics/asymptote/runarray.in b/graphics/asymptote/runarray.in
index 8a33fc0954..293c628f18 100644
--- a/graphics/asymptote/runarray.in
+++ b/graphics/asymptote/runarray.in
@@ -667,6 +667,7 @@ array* :copyArrayValue(Int n, item value, Int depth=Int_MAX, Int typeDepth)
// automatically pushed on the stack and is not visible to the user.
array* :copyArray(array *a, Int depth=Int_MAX, Int typeDepth)
{
+ if(a == 0) vm::error(dereferenceNullArray);
if(depth < 0) error("cannot copy to a negative depth");
if(depth > typeDepth) depth=typeDepth;
return a->copyToDepth(depth);
diff --git a/graphics/asymptote/runfile.cc b/graphics/asymptote/runfile.cc
index bdf9826d63..557aef90a0 100644
--- a/graphics/asymptote/runfile.cc
+++ b/graphics/asymptote/runfile.cc
@@ -573,21 +573,23 @@ void gen_runfile42(stack *Stack)
{Stack->push<Int>(rc); return;}
}
-// Create a unique temporary file name.
+// Create a uniquely named temporary file.
#line 352 "runfile.in"
// string mktemp(string s);
void gen_runfile43(stack *Stack)
{
string s=vm::pop<string>(Stack);
#line 353 "runfile.in"
- char *S=Strdup(s+"XXXXXX");
+ char *S=StrdupMalloc(s+"XXXXXX");
int fd=mkstemp(S);
if(fd < 0) {
ostringstream buf;
buf << "Could not create unique temporary filename based on " << s;
error(buf);
}
- {Stack->push<string>(S); return;}
+ string T(S);
+ free(S);
+ {Stack->push<string>(T); return;}
}
} // namespace run
diff --git a/graphics/asymptote/runfile.in b/graphics/asymptote/runfile.in
index d9186eee6d..39eb464c28 100644
--- a/graphics/asymptote/runfile.in
+++ b/graphics/asymptote/runfile.in
@@ -348,15 +348,17 @@ Int rename(string from, string to)
return rc;
}
-// Create a unique temporary file name.
+// Create a uniquely named temporary file.
string mktemp(string s)
{
- char *S=Strdup(s+"XXXXXX");
+ char *S=StrdupMalloc(s+"XXXXXX");
int fd=mkstemp(S);
if(fd < 0) {
ostringstream buf;
buf << "Could not create unique temporary filename based on " << s;
error(buf);
}
- return S;
+ string T(S);
+ free(S);
+ return T;
}
diff --git a/graphics/asymptote/runlabel.cc b/graphics/asymptote/runlabel.cc
index 1f7ea7417e..3e2c2730db 100644
--- a/graphics/asymptote/runlabel.cc
+++ b/graphics/asymptote/runlabel.cc
@@ -168,8 +168,8 @@ array *readpath(const string& psname, bool keep, bool pdf=false,
if(s.empty()) break;
if(!pdf) gs << newl;
-// Workaround broken stringstream container in MacOS 10.9 libc++.
-#if defined(__APPLE__) || defined(__FreeBSD__) || defined(__FreeBSD_kernel__ )
+// Workaround broken stringstream container in libc++.
+#ifdef _LIBCPP_VERSION
for(string::iterator i=s.begin(); i != s.end(); ++i) {
if(isalpha(*i) && *i != 'e') {buf << " ";}
buf << *i;
diff --git a/graphics/asymptote/runlabel.in b/graphics/asymptote/runlabel.in
index 9503a0b0ee..978d7d97f9 100644
--- a/graphics/asymptote/runlabel.in
+++ b/graphics/asymptote/runlabel.in
@@ -122,8 +122,8 @@ array *readpath(const string& psname, bool keep, bool pdf=false,
if(s.empty()) break;
if(!pdf) gs << newl;
-// Workaround broken stringstream container in MacOS 10.9 libc++.
-#if defined(__APPLE__) || defined(__FreeBSD__) || defined(__FreeBSD_kernel__ )
+// Workaround broken stringstream container in libc++.
+#ifdef _LIBCPP_VERSION
for(string::iterator i=s.begin(); i != s.end(); ++i) {
if(isalpha(*i) && *i != 'e') {buf << " ";}
buf << *i;
diff --git a/graphics/asymptote/runpair.cc b/graphics/asymptote/runpair.cc
index e5c0b4e6a6..63088b4896 100644
--- a/graphics/asymptote/runpair.cc
+++ b/graphics/asymptote/runpair.cc
@@ -168,72 +168,81 @@ void gen_runpair6(stack *Stack)
}
#line 84 "runpair.in"
-// pair sqrt(explicit pair z);
+// real abs2(pair z);
void gen_runpair7(stack *Stack)
{
pair z=vm::pop<pair>(Stack);
#line 85 "runpair.in"
+ {Stack->push<real>(z.abs2()); return;}
+}
+
+#line 89 "runpair.in"
+// pair sqrt(explicit pair z);
+void gen_runpair8(stack *Stack)
+{
+ pair z=vm::pop<pair>(Stack);
+#line 90 "runpair.in"
{Stack->push<pair>(Sqrt(z)); return;}
}
// Return the angle of z in radians.
-#line 90 "runpair.in"
+#line 95 "runpair.in"
// real angle(pair z, bool warn=true);
-void gen_runpair8(stack *Stack)
+void gen_runpair9(stack *Stack)
{
bool warn=vm::pop<bool>(Stack,true);
pair z=vm::pop<pair>(Stack);
-#line 91 "runpair.in"
+#line 96 "runpair.in"
{Stack->push<real>(z.angle(warn)); return;}
}
// Return the angle of z in degrees in the interval [0,360).
-#line 96 "runpair.in"
+#line 101 "runpair.in"
// real degrees(pair z, bool warn=true);
-void gen_runpair9(stack *Stack)
+void gen_runpair10(stack *Stack)
{
bool warn=vm::pop<bool>(Stack,true);
pair z=vm::pop<pair>(Stack);
-#line 97 "runpair.in"
+#line 102 "runpair.in"
{Stack->push<real>(principalBranch(degrees(z.angle(warn)))); return;}
}
// Convert degrees to radians.
-#line 102 "runpair.in"
+#line 107 "runpair.in"
// real radians(real degrees);
-void gen_runpair10(stack *Stack)
+void gen_runpair11(stack *Stack)
{
real degrees=vm::pop<real>(Stack);
-#line 103 "runpair.in"
+#line 108 "runpair.in"
{Stack->push<real>(radians(degrees)); return;}
}
// Convert radians to degrees.
-#line 108 "runpair.in"
+#line 113 "runpair.in"
// real degrees(real radians);
-void gen_runpair11(stack *Stack)
+void gen_runpair12(stack *Stack)
{
real radians=vm::pop<real>(Stack);
-#line 109 "runpair.in"
+#line 114 "runpair.in"
{Stack->push<real>(degrees(radians)); return;}
}
// Convert radians to degrees in [0,360).
-#line 114 "runpair.in"
+#line 119 "runpair.in"
// real Degrees(real radians);
-void gen_runpair12(stack *Stack)
+void gen_runpair13(stack *Stack)
{
real radians=vm::pop<real>(Stack);
-#line 115 "runpair.in"
+#line 120 "runpair.in"
{Stack->push<real>(principalBranch(degrees(radians))); return;}
}
-#line 119 "runpair.in"
+#line 124 "runpair.in"
// real Sin(real deg);
-void gen_runpair13(stack *Stack)
+void gen_runpair14(stack *Stack)
{
real deg=vm::pop<real>(Stack);
-#line 120 "runpair.in"
+#line 125 "runpair.in"
int n=(int) (deg/90.0);
if(deg == n*90.0) {
int m=n % 4;
@@ -245,12 +254,12 @@ void gen_runpair13(stack *Stack)
{Stack->push<real>(sin(radians(deg))); return;}
}
-#line 132 "runpair.in"
+#line 137 "runpair.in"
// real Cos(real deg);
-void gen_runpair14(stack *Stack)
+void gen_runpair15(stack *Stack)
{
real deg=vm::pop<real>(Stack);
-#line 133 "runpair.in"
+#line 138 "runpair.in"
int n=(int) (deg/90.0);
if(deg == n*90.0) {
int m=n % 4;
@@ -262,12 +271,12 @@ void gen_runpair14(stack *Stack)
{Stack->push<real>(cos(radians(deg))); return;}
}
-#line 145 "runpair.in"
+#line 150 "runpair.in"
// real Tan(real deg);
-void gen_runpair15(stack *Stack)
+void gen_runpair16(stack *Stack)
{
real deg=vm::pop<real>(Stack);
-#line 146 "runpair.in"
+#line 151 "runpair.in"
int n=(int) (deg/90.0);
if(deg == n*90.0) {
int m=n % 4;
@@ -279,206 +288,206 @@ void gen_runpair15(stack *Stack)
{Stack->push<real>(tan(radians(deg))); return;}
}
-#line 158 "runpair.in"
+#line 163 "runpair.in"
// real aSin(real x);
-void gen_runpair16(stack *Stack)
+void gen_runpair17(stack *Stack)
{
real x=vm::pop<real>(Stack);
-#line 159 "runpair.in"
+#line 164 "runpair.in"
{Stack->push<real>(degrees(asin(x))); return;}
}
-#line 163 "runpair.in"
+#line 168 "runpair.in"
// real aCos(real x);
-void gen_runpair17(stack *Stack)
+void gen_runpair18(stack *Stack)
{
real x=vm::pop<real>(Stack);
-#line 164 "runpair.in"
+#line 169 "runpair.in"
{Stack->push<real>(degrees(acos(x))); return;}
}
-#line 168 "runpair.in"
+#line 173 "runpair.in"
// real aTan(real x);
-void gen_runpair18(stack *Stack)
+void gen_runpair19(stack *Stack)
{
real x=vm::pop<real>(Stack);
-#line 169 "runpair.in"
+#line 174 "runpair.in"
{Stack->push<real>(degrees(atan(x))); return;}
}
-#line 173 "runpair.in"
+#line 178 "runpair.in"
// pair unit(pair z);
-void gen_runpair19(stack *Stack)
+void gen_runpair20(stack *Stack)
{
pair z=vm::pop<pair>(Stack);
-#line 174 "runpair.in"
+#line 179 "runpair.in"
{Stack->push<pair>(unit(z)); return;}
}
-#line 178 "runpair.in"
+#line 183 "runpair.in"
// pair dir(real degrees);
-void gen_runpair20(stack *Stack)
+void gen_runpair21(stack *Stack)
{
real degrees=vm::pop<real>(Stack);
-#line 179 "runpair.in"
+#line 184 "runpair.in"
{Stack->push<pair>(expi(radians(degrees))); return;}
}
-#line 183 "runpair.in"
+#line 188 "runpair.in"
// pair dir(explicit pair z);
-void gen_runpair21(stack *Stack)
+void gen_runpair22(stack *Stack)
{
pair z=vm::pop<pair>(Stack);
-#line 184 "runpair.in"
+#line 189 "runpair.in"
{Stack->push<pair>(unit(z)); return;}
}
-#line 188 "runpair.in"
+#line 193 "runpair.in"
// pair expi(real angle);
-void gen_runpair22(stack *Stack)
+void gen_runpair23(stack *Stack)
{
real angle=vm::pop<real>(Stack);
-#line 189 "runpair.in"
+#line 194 "runpair.in"
{Stack->push<pair>(expi(angle)); return;}
}
-#line 193 "runpair.in"
+#line 198 "runpair.in"
// pair exp(explicit pair z);
-void gen_runpair23(stack *Stack)
+void gen_runpair24(stack *Stack)
{
pair z=vm::pop<pair>(Stack);
-#line 194 "runpair.in"
+#line 199 "runpair.in"
{Stack->push<pair>(exp(z)); return;}
}
-#line 198 "runpair.in"
+#line 203 "runpair.in"
// pair log(explicit pair z);
-void gen_runpair24(stack *Stack)
+void gen_runpair25(stack *Stack)
{
pair z=vm::pop<pair>(Stack);
-#line 199 "runpair.in"
+#line 204 "runpair.in"
{Stack->push<pair>(pair(log(z.length()),z.angle())); return;}
}
-#line 203 "runpair.in"
+#line 208 "runpair.in"
// pair sin(explicit pair z);
-void gen_runpair25(stack *Stack)
+void gen_runpair26(stack *Stack)
{
pair z=vm::pop<pair>(Stack);
-#line 204 "runpair.in"
+#line 209 "runpair.in"
{Stack->push<pair>(sin(z)); return;}
}
-#line 208 "runpair.in"
+#line 213 "runpair.in"
// pair cos(explicit pair z);
-void gen_runpair26(stack *Stack)
+void gen_runpair27(stack *Stack)
{
pair z=vm::pop<pair>(Stack);
-#line 209 "runpair.in"
+#line 214 "runpair.in"
{Stack->push<pair>(pair(cos(z.getx())*cosh(z.gety()),-sin(z.getx())*sinh(z.gety()))); return;}
}
// Complex Gamma function
-#line 214 "runpair.in"
+#line 219 "runpair.in"
// pair gamma(explicit pair z);
-void gen_runpair27(stack *Stack)
+void gen_runpair28(stack *Stack)
{
pair z=vm::pop<pair>(Stack);
-#line 215 "runpair.in"
+#line 220 "runpair.in"
{Stack->push<pair>(gamma(z)); return;}
}
-#line 219 "runpair.in"
+#line 224 "runpair.in"
// pair conj(pair z);
-void gen_runpair28(stack *Stack)
+void gen_runpair29(stack *Stack)
{
pair z=vm::pop<pair>(Stack);
-#line 220 "runpair.in"
+#line 225 "runpair.in"
{Stack->push<pair>(conj(z)); return;}
}
-#line 224 "runpair.in"
+#line 229 "runpair.in"
// pair realmult(pair z, pair w);
-void gen_runpair29(stack *Stack)
+void gen_runpair30(stack *Stack)
{
pair w=vm::pop<pair>(Stack);
pair z=vm::pop<pair>(Stack);
-#line 225 "runpair.in"
+#line 230 "runpair.in"
{Stack->push<pair>(pair(z.getx()*w.getx(),z.gety()*w.gety())); return;}
}
// To avoid confusion, a dot product requires explicit pair arguments.
-#line 230 "runpair.in"
+#line 235 "runpair.in"
// real dot(explicit pair z, explicit pair w);
-void gen_runpair30(stack *Stack)
+void gen_runpair31(stack *Stack)
{
pair w=vm::pop<pair>(Stack);
pair z=vm::pop<pair>(Stack);
-#line 231 "runpair.in"
+#line 236 "runpair.in"
{Stack->push<real>(dot(z,w)); return;}
}
// Return the 2D scalar cross product z.x*w.y-z.y*w.x.
-#line 236 "runpair.in"
+#line 241 "runpair.in"
// real cross(explicit pair z, explicit pair w);
-void gen_runpair31(stack *Stack)
+void gen_runpair32(stack *Stack)
{
pair w=vm::pop<pair>(Stack);
pair z=vm::pop<pair>(Stack);
-#line 237 "runpair.in"
+#line 242 "runpair.in"
{Stack->push<real>(cross(z,w)); return;}
}
-#line 241 "runpair.in"
+#line 246 "runpair.in"
// pair bezier(pair a, pair b, pair c, pair d, real t);
-void gen_runpair32(stack *Stack)
+void gen_runpair33(stack *Stack)
{
real t=vm::pop<real>(Stack);
pair d=vm::pop<pair>(Stack);
pair c=vm::pop<pair>(Stack);
pair b=vm::pop<pair>(Stack);
pair a=vm::pop<pair>(Stack);
-#line 242 "runpair.in"
+#line 247 "runpair.in"
real onemt=1-t;
real onemt2=onemt*onemt;
{Stack->push<pair>(onemt2*onemt*a+t*(3.0*(onemt2*b+t*onemt*c)+t*t*d)); return;}
}
-#line 248 "runpair.in"
+#line 253 "runpair.in"
// pair bezierP(pair a, pair b, pair c, pair d, real t);
-void gen_runpair33(stack *Stack)
+void gen_runpair34(stack *Stack)
{
real t=vm::pop<real>(Stack);
pair d=vm::pop<pair>(Stack);
pair c=vm::pop<pair>(Stack);
pair b=vm::pop<pair>(Stack);
pair a=vm::pop<pair>(Stack);
-#line 249 "runpair.in"
+#line 254 "runpair.in"
{Stack->push<pair>(3.0*(t*t*(d-a+3.0*(b-c))+t*(2.0*(a+c)-4.0*b)+b-a)); return;}
}
-#line 253 "runpair.in"
+#line 258 "runpair.in"
// pair bezierPP(pair a, pair b, pair c, pair d, real t);
-void gen_runpair34(stack *Stack)
+void gen_runpair35(stack *Stack)
{
real t=vm::pop<real>(Stack);
pair d=vm::pop<pair>(Stack);
pair c=vm::pop<pair>(Stack);
pair b=vm::pop<pair>(Stack);
pair a=vm::pop<pair>(Stack);
-#line 254 "runpair.in"
+#line 259 "runpair.in"
{Stack->push<pair>(6.0*(t*(d-a+3.0*(b-c))+a+c)-12.0*b); return;}
}
-#line 258 "runpair.in"
+#line 263 "runpair.in"
// pair bezierPPP(pair a, pair b, pair c, pair d);
-void gen_runpair35(stack *Stack)
+void gen_runpair36(stack *Stack)
{
pair d=vm::pop<pair>(Stack);
pair c=vm::pop<pair>(Stack);
pair b=vm::pop<pair>(Stack);
pair a=vm::pop<pair>(Stack);
-#line 259 "runpair.in"
+#line 264 "runpair.in"
{Stack->push<pair>(6.0*(d-a)+18.0*(b-c)); return;}
}
@@ -503,63 +512,65 @@ void gen_runpair_venv(venv &ve)
#line 79 "runpair.in"
addFunc(ve, run::gen_runpair6, primReal(), SYM(abs), formal(primPair(), SYM(z), false, false));
#line 84 "runpair.in"
- addFunc(ve, run::gen_runpair7, primPair(), SYM(sqrt), formal(primPair(), SYM(z), false, true));
+ addFunc(ve, run::gen_runpair7, primReal(), SYM(abs2), formal(primPair(), SYM(z), false, false));
#line 89 "runpair.in"
- addFunc(ve, run::gen_runpair8, primReal(), SYM(angle), formal(primPair(), SYM(z), false, false), formal(primBoolean(), SYM(warn), true, false));
-#line 95 "runpair.in"
- addFunc(ve, run::gen_runpair9, primReal(), SYM(degrees), formal(primPair(), SYM(z), false, false), formal(primBoolean(), SYM(warn), true, false));
-#line 101 "runpair.in"
- addFunc(ve, run::gen_runpair10, primReal(), SYM(radians), formal(primReal(), SYM(degrees), false, false));
-#line 107 "runpair.in"
- addFunc(ve, run::gen_runpair11, primReal(), SYM(degrees), formal(primReal(), SYM(radians), false, false));
-#line 113 "runpair.in"
- addFunc(ve, run::gen_runpair12, primReal(), SYM(Degrees), formal(primReal(), SYM(radians), false, false));
-#line 119 "runpair.in"
- addFunc(ve, run::gen_runpair13, primReal(), SYM(Sin), formal(primReal(), SYM(deg), false, false));
-#line 132 "runpair.in"
- addFunc(ve, run::gen_runpair14, primReal(), SYM(Cos), formal(primReal(), SYM(deg), false, false));
-#line 145 "runpair.in"
- addFunc(ve, run::gen_runpair15, primReal(), SYM(Tan), formal(primReal(), SYM(deg), false, false));
-#line 158 "runpair.in"
- addFunc(ve, run::gen_runpair16, primReal(), SYM(aSin), formal(primReal(), SYM(x), false, false));
+ addFunc(ve, run::gen_runpair8, primPair(), SYM(sqrt), formal(primPair(), SYM(z), false, true));
+#line 94 "runpair.in"
+ addFunc(ve, run::gen_runpair9, primReal(), SYM(angle), formal(primPair(), SYM(z), false, false), formal(primBoolean(), SYM(warn), true, false));
+#line 100 "runpair.in"
+ addFunc(ve, run::gen_runpair10, primReal(), SYM(degrees), formal(primPair(), SYM(z), false, false), formal(primBoolean(), SYM(warn), true, false));
+#line 106 "runpair.in"
+ addFunc(ve, run::gen_runpair11, primReal(), SYM(radians), formal(primReal(), SYM(degrees), false, false));
+#line 112 "runpair.in"
+ addFunc(ve, run::gen_runpair12, primReal(), SYM(degrees), formal(primReal(), SYM(radians), false, false));
+#line 118 "runpair.in"
+ addFunc(ve, run::gen_runpair13, primReal(), SYM(Degrees), formal(primReal(), SYM(radians), false, false));
+#line 124 "runpair.in"
+ addFunc(ve, run::gen_runpair14, primReal(), SYM(Sin), formal(primReal(), SYM(deg), false, false));
+#line 137 "runpair.in"
+ addFunc(ve, run::gen_runpair15, primReal(), SYM(Cos), formal(primReal(), SYM(deg), false, false));
+#line 150 "runpair.in"
+ addFunc(ve, run::gen_runpair16, primReal(), SYM(Tan), formal(primReal(), SYM(deg), false, false));
#line 163 "runpair.in"
- addFunc(ve, run::gen_runpair17, primReal(), SYM(aCos), formal(primReal(), SYM(x), false, false));
+ addFunc(ve, run::gen_runpair17, primReal(), SYM(aSin), formal(primReal(), SYM(x), false, false));
#line 168 "runpair.in"
- addFunc(ve, run::gen_runpair18, primReal(), SYM(aTan), formal(primReal(), SYM(x), false, false));
+ addFunc(ve, run::gen_runpair18, primReal(), SYM(aCos), formal(primReal(), SYM(x), false, false));
#line 173 "runpair.in"
- addFunc(ve, run::gen_runpair19, primPair(), SYM(unit), formal(primPair(), SYM(z), false, false));
+ addFunc(ve, run::gen_runpair19, primReal(), SYM(aTan), formal(primReal(), SYM(x), false, false));
#line 178 "runpair.in"
- addFunc(ve, run::gen_runpair20, primPair(), SYM(dir), formal(primReal(), SYM(degrees), false, false));
+ addFunc(ve, run::gen_runpair20, primPair(), SYM(unit), formal(primPair(), SYM(z), false, false));
#line 183 "runpair.in"
- addFunc(ve, run::gen_runpair21, primPair(), SYM(dir), formal(primPair(), SYM(z), false, true));
+ addFunc(ve, run::gen_runpair21, primPair(), SYM(dir), formal(primReal(), SYM(degrees), false, false));
#line 188 "runpair.in"
- addFunc(ve, run::gen_runpair22, primPair(), SYM(expi), formal(primReal(), SYM(angle), false, false));
+ addFunc(ve, run::gen_runpair22, primPair(), SYM(dir), formal(primPair(), SYM(z), false, true));
#line 193 "runpair.in"
- addFunc(ve, run::gen_runpair23, primPair(), SYM(exp), formal(primPair(), SYM(z), false, true));
+ addFunc(ve, run::gen_runpair23, primPair(), SYM(expi), formal(primReal(), SYM(angle), false, false));
#line 198 "runpair.in"
- addFunc(ve, run::gen_runpair24, primPair(), SYM(log), formal(primPair(), SYM(z), false, true));
+ addFunc(ve, run::gen_runpair24, primPair(), SYM(exp), formal(primPair(), SYM(z), false, true));
#line 203 "runpair.in"
- addFunc(ve, run::gen_runpair25, primPair(), SYM(sin), formal(primPair(), SYM(z), false, true));
+ addFunc(ve, run::gen_runpair25, primPair(), SYM(log), formal(primPair(), SYM(z), false, true));
#line 208 "runpair.in"
- addFunc(ve, run::gen_runpair26, primPair(), SYM(cos), formal(primPair(), SYM(z), false, true));
+ addFunc(ve, run::gen_runpair26, primPair(), SYM(sin), formal(primPair(), SYM(z), false, true));
#line 213 "runpair.in"
- addFunc(ve, run::gen_runpair27, primPair(), SYM(gamma), formal(primPair(), SYM(z), false, true));
-#line 219 "runpair.in"
- addFunc(ve, run::gen_runpair28, primPair(), SYM(conj), formal(primPair(), SYM(z), false, false));
+ addFunc(ve, run::gen_runpair27, primPair(), SYM(cos), formal(primPair(), SYM(z), false, true));
+#line 218 "runpair.in"
+ addFunc(ve, run::gen_runpair28, primPair(), SYM(gamma), formal(primPair(), SYM(z), false, true));
#line 224 "runpair.in"
- addFunc(ve, run::gen_runpair29, primPair(), SYM(realmult), formal(primPair(), SYM(z), false, false), formal(primPair(), SYM(w), false, false));
+ addFunc(ve, run::gen_runpair29, primPair(), SYM(conj), formal(primPair(), SYM(z), false, false));
#line 229 "runpair.in"
- addFunc(ve, run::gen_runpair30, primReal(), SYM(dot), formal(primPair(), SYM(z), false, true), formal(primPair(), SYM(w), false, true));
-#line 235 "runpair.in"
- addFunc(ve, run::gen_runpair31, primReal(), SYM(cross), formal(primPair(), SYM(z), false, true), formal(primPair(), SYM(w), false, true));
-#line 241 "runpair.in"
- addFunc(ve, run::gen_runpair32, primPair(), SYM(bezier), formal(primPair(), SYM(a), false, false), formal(primPair(), SYM(b), false, false), formal(primPair(), SYM(c), false, false), formal(primPair(), SYM(d), false, false), formal(primReal(), SYM(t), false, false));
-#line 248 "runpair.in"
- addFunc(ve, run::gen_runpair33, primPair(), SYM(bezierP), formal(primPair(), SYM(a), false, false), formal(primPair(), SYM(b), false, false), formal(primPair(), SYM(c), false, false), formal(primPair(), SYM(d), false, false), formal(primReal(), SYM(t), false, false));
+ addFunc(ve, run::gen_runpair30, primPair(), SYM(realmult), formal(primPair(), SYM(z), false, false), formal(primPair(), SYM(w), false, false));
+#line 234 "runpair.in"
+ addFunc(ve, run::gen_runpair31, primReal(), SYM(dot), formal(primPair(), SYM(z), false, true), formal(primPair(), SYM(w), false, true));
+#line 240 "runpair.in"
+ addFunc(ve, run::gen_runpair32, primReal(), SYM(cross), formal(primPair(), SYM(z), false, true), formal(primPair(), SYM(w), false, true));
+#line 246 "runpair.in"
+ addFunc(ve, run::gen_runpair33, primPair(), SYM(bezier), formal(primPair(), SYM(a), false, false), formal(primPair(), SYM(b), false, false), formal(primPair(), SYM(c), false, false), formal(primPair(), SYM(d), false, false), formal(primReal(), SYM(t), false, false));
#line 253 "runpair.in"
- addFunc(ve, run::gen_runpair34, primPair(), SYM(bezierPP), formal(primPair(), SYM(a), false, false), formal(primPair(), SYM(b), false, false), formal(primPair(), SYM(c), false, false), formal(primPair(), SYM(d), false, false), formal(primReal(), SYM(t), false, false));
+ addFunc(ve, run::gen_runpair34, primPair(), SYM(bezierP), formal(primPair(), SYM(a), false, false), formal(primPair(), SYM(b), false, false), formal(primPair(), SYM(c), false, false), formal(primPair(), SYM(d), false, false), formal(primReal(), SYM(t), false, false));
#line 258 "runpair.in"
- addFunc(ve, run::gen_runpair35, primPair(), SYM(bezierPPP), formal(primPair(), SYM(a), false, false), formal(primPair(), SYM(b), false, false), formal(primPair(), SYM(c), false, false), formal(primPair(), SYM(d), false, false));
+ addFunc(ve, run::gen_runpair35, primPair(), SYM(bezierPP), formal(primPair(), SYM(a), false, false), formal(primPair(), SYM(b), false, false), formal(primPair(), SYM(c), false, false), formal(primPair(), SYM(d), false, false), formal(primReal(), SYM(t), false, false));
+#line 263 "runpair.in"
+ addFunc(ve, run::gen_runpair36, primPair(), SYM(bezierPPP), formal(primPair(), SYM(a), false, false), formal(primPair(), SYM(b), false, false), formal(primPair(), SYM(c), false, false), formal(primPair(), SYM(d), false, false));
}
} // namespace trans
diff --git a/graphics/asymptote/runpair.in b/graphics/asymptote/runpair.in
index 46231c02d8..c0b205787d 100644
--- a/graphics/asymptote/runpair.in
+++ b/graphics/asymptote/runpair.in
@@ -81,6 +81,11 @@ real abs(pair z)
return z.length();
}
+real abs2(pair z)
+{
+ return z.abs2();
+}
+
pair sqrt(explicit pair z)
{
return Sqrt(z);
diff --git a/graphics/asymptote/runpicture.cc b/graphics/asymptote/runpicture.cc
index 413634b7bb..334a79c7ac 100644
--- a/graphics/asymptote/runpicture.cc
+++ b/graphics/asymptote/runpicture.cc
@@ -369,16 +369,17 @@ void gen_runpicture13(stack *Stack)
#line 233 "runpicture.in"
array *(*copyarray)(array *a)=copy ? copyArray : nop;
array *(*copyarray2)(array *a)=copy ? copyArray2 : nop;
- if(b == NULL) b=g;
- size_t n=checkArrays(p,b);
+ size_t n=checkArrays(p,b ? b : g);
+ array& G=*copyarray(g);
+ array& B=b ? *copyarray(b) : G;
size_t nz=checkArray(z);
if(nz != 0)
checkEqual(nz,n);
- f->append(new drawTensorShade(*copyarray(g),stroke,fillrule,*copyarray2(p),
- *copyarray(b),*copyarray2(z)));
+ f->append(new drawTensorShade(G,stroke,fillrule,*copyarray2(p),B,
+ *copyarray2(z)));
}
-#line 245 "runpicture.in"
+#line 246 "runpicture.in"
// void functionshade(picture *f, patharray *g, bool stroke=false, pen fillrule=CURRENTPEN, string shader=emptystring, bool copy=true);
void gen_runpicture14(stack *Stack)
{
@@ -388,14 +389,14 @@ void gen_runpicture14(stack *Stack)
bool stroke=vm::pop<bool>(Stack,false);
patharray * g=vm::pop<patharray *>(Stack);
picture * f=vm::pop<picture *>(Stack);
-#line 248 "runpicture.in"
+#line 249 "runpicture.in"
array *(*copyarray)(array *a)=copy ? copyArray : nop;
f->append(new drawFunctionShade(*copyarray(g),stroke,fillrule,shader));
}
// Clip a picture to a superpath using the given fill rule.
// Subsequent additions to the picture will not be affected by the clipping.
-#line 255 "runpicture.in"
+#line 256 "runpicture.in"
// void clip(picture *f, patharray *g, bool stroke=false, pen fillrule=CURRENTPEN, bool copy=true);
void gen_runpicture15(stack *Stack)
{
@@ -404,13 +405,13 @@ void gen_runpicture15(stack *Stack)
bool stroke=vm::pop<bool>(Stack,false);
patharray * g=vm::pop<patharray *>(Stack);
picture * f=vm::pop<picture *>(Stack);
-#line 257 "runpicture.in"
+#line 258 "runpicture.in"
array *(*copyarray)(array *a)=copy ? copyArray : nop;
drawClipBegin *begin=new drawClipBegin(*copyarray(g),stroke,fillrule,true);
f->enclose(begin,new drawClipEnd(true,begin));
}
-#line 263 "runpicture.in"
+#line 264 "runpicture.in"
// void beginclip(picture *f, patharray *g, bool stroke=false, pen fillrule=CURRENTPEN, bool copy=true);
void gen_runpicture16(stack *Stack)
{
@@ -419,57 +420,57 @@ void gen_runpicture16(stack *Stack)
bool stroke=vm::pop<bool>(Stack,false);
patharray * g=vm::pop<patharray *>(Stack);
picture * f=vm::pop<picture *>(Stack);
-#line 265 "runpicture.in"
+#line 266 "runpicture.in"
array *(*copyarray)(array *a)=copy ? copyArray : nop;
f->append(new drawClipBegin(*copyarray(g),stroke,fillrule,false));
}
-#line 270 "runpicture.in"
+#line 271 "runpicture.in"
// void endclip(picture *f);
void gen_runpicture17(stack *Stack)
{
picture * f=vm::pop<picture *>(Stack);
-#line 271 "runpicture.in"
+#line 272 "runpicture.in"
f->append(new drawClipEnd(false));
}
-#line 275 "runpicture.in"
+#line 276 "runpicture.in"
// void gsave(picture *f);
void gen_runpicture18(stack *Stack)
{
picture * f=vm::pop<picture *>(Stack);
-#line 276 "runpicture.in"
+#line 277 "runpicture.in"
f->append(new drawGsave());
}
-#line 280 "runpicture.in"
+#line 281 "runpicture.in"
// void grestore(picture *f);
void gen_runpicture19(stack *Stack)
{
picture * f=vm::pop<picture *>(Stack);
-#line 281 "runpicture.in"
+#line 282 "runpicture.in"
f->append(new drawGrestore());
}
-#line 285 "runpicture.in"
+#line 286 "runpicture.in"
// void begingroup(picture *f);
void gen_runpicture20(stack *Stack)
{
picture * f=vm::pop<picture *>(Stack);
-#line 286 "runpicture.in"
+#line 287 "runpicture.in"
f->append(new drawBegin());
}
-#line 290 "runpicture.in"
+#line 291 "runpicture.in"
// void endgroup(picture *f);
void gen_runpicture21(stack *Stack)
{
picture * f=vm::pop<picture *>(Stack);
-#line 291 "runpicture.in"
+#line 292 "runpicture.in"
f->append(new drawEnd());
}
-#line 295 "runpicture.in"
+#line 296 "runpicture.in"
// void _begingroup3(picture *f, string name, real compression, real granularity, bool closed, bool tessellate, bool dobreak, bool nobreak, triple center, Int interaction);
void gen_runpicture22(stack *Stack)
{
@@ -483,62 +484,62 @@ void gen_runpicture22(stack *Stack)
real compression=vm::pop<real>(Stack);
string name=vm::pop<string>(Stack);
picture * f=vm::pop<picture *>(Stack);
-#line 298 "runpicture.in"
+#line 299 "runpicture.in"
f->append(new drawBegin3(name,compression,granularity,
closed,tessellate,dobreak,nobreak,
center,(Interaction) intcast(interaction)));
}
-#line 304 "runpicture.in"
+#line 305 "runpicture.in"
// void endgroup3(picture *f);
void gen_runpicture23(stack *Stack)
{
picture * f=vm::pop<picture *>(Stack);
-#line 305 "runpicture.in"
+#line 306 "runpicture.in"
f->append(new drawEnd3());
}
-#line 309 "runpicture.in"
+#line 310 "runpicture.in"
// void add(picture *dest, picture *src);
void gen_runpicture24(stack *Stack)
{
picture * src=vm::pop<picture *>(Stack);
picture * dest=vm::pop<picture *>(Stack);
-#line 310 "runpicture.in"
+#line 311 "runpicture.in"
dest->add(*src);
}
-#line 314 "runpicture.in"
+#line 315 "runpicture.in"
// void prepend(picture *dest, picture *src);
void gen_runpicture25(stack *Stack)
{
picture * src=vm::pop<picture *>(Stack);
picture * dest=vm::pop<picture *>(Stack);
-#line 315 "runpicture.in"
+#line 316 "runpicture.in"
dest->prepend(*src);
}
-#line 319 "runpicture.in"
+#line 320 "runpicture.in"
// void postscript(picture *f, string s);
void gen_runpicture26(stack *Stack)
{
string s=vm::pop<string>(Stack);
picture * f=vm::pop<picture *>(Stack);
-#line 320 "runpicture.in"
+#line 321 "runpicture.in"
f->append(new drawVerbatim(PostScript,s));
}
-#line 324 "runpicture.in"
+#line 325 "runpicture.in"
// void tex(picture *f, string s);
void gen_runpicture27(stack *Stack)
{
string s=vm::pop<string>(Stack);
picture * f=vm::pop<picture *>(Stack);
-#line 325 "runpicture.in"
+#line 326 "runpicture.in"
f->append(new drawVerbatim(TeX,s));
}
-#line 329 "runpicture.in"
+#line 330 "runpicture.in"
// void postscript(picture *f, string s, pair min, pair max);
void gen_runpicture28(stack *Stack)
{
@@ -546,11 +547,11 @@ void gen_runpicture28(stack *Stack)
pair min=vm::pop<pair>(Stack);
string s=vm::pop<string>(Stack);
picture * f=vm::pop<picture *>(Stack);
-#line 330 "runpicture.in"
+#line 331 "runpicture.in"
f->append(new drawVerbatim(PostScript,s,min,max));
}
-#line 334 "runpicture.in"
+#line 335 "runpicture.in"
// void tex(picture *f, string s, pair min, pair max);
void gen_runpicture29(stack *Stack)
{
@@ -558,33 +559,33 @@ void gen_runpicture29(stack *Stack)
pair min=vm::pop<pair>(Stack);
string s=vm::pop<string>(Stack);
picture * f=vm::pop<picture *>(Stack);
-#line 335 "runpicture.in"
+#line 336 "runpicture.in"
f->append(new drawVerbatim(TeX,s,min,max));
}
-#line 339 "runpicture.in"
+#line 340 "runpicture.in"
// void texpreamble(string s);
void gen_runpicture30(stack *Stack)
{
string s=vm::pop<string>(Stack);
-#line 340 "runpicture.in"
+#line 341 "runpicture.in"
string t=s+"\n";
processDataStruct &pd=processData();
pd.TeXpipepreamble.push_back(t);
pd.TeXpreamble.push_back(t);
}
-#line 347 "runpicture.in"
+#line 348 "runpicture.in"
// void deletepreamble();
void gen_runpicture31(stack *)
{
-#line 348 "runpicture.in"
+#line 349 "runpicture.in"
if(getSetting<bool>("inlinetex")) {
unlink(buildname(outname(),"pre").c_str());
}
}
-#line 354 "runpicture.in"
+#line 355 "runpicture.in"
// void _labelpath(picture *f, string s, string size, path g, string justify, pair offset, pen p);
void gen_runpicture32(stack *Stack)
{
@@ -595,40 +596,40 @@ void gen_runpicture32(stack *Stack)
string size=vm::pop<string>(Stack);
string s=vm::pop<string>(Stack);
picture * f=vm::pop<picture *>(Stack);
-#line 356 "runpicture.in"
+#line 357 "runpicture.in"
f->append(new drawLabelPath(s,size,g,justify,offset,p));
}
-#line 360 "runpicture.in"
+#line 361 "runpicture.in"
// void texreset();
void gen_runpicture33(stack *)
{
-#line 361 "runpicture.in"
+#line 362 "runpicture.in"
processDataStruct &pd=processData();
pd.TeXpipepreamble.clear();
pd.TeXpreamble.clear();
pd.tex.pipeclose();
}
-#line 368 "runpicture.in"
+#line 369 "runpicture.in"
// void layer(picture *f);
void gen_runpicture34(stack *Stack)
{
picture * f=vm::pop<picture *>(Stack);
-#line 369 "runpicture.in"
+#line 370 "runpicture.in"
f->append(new drawLayer());
}
-#line 373 "runpicture.in"
+#line 374 "runpicture.in"
// void newpage(picture *f);
void gen_runpicture35(stack *Stack)
{
picture * f=vm::pop<picture *>(Stack);
-#line 374 "runpicture.in"
+#line 375 "runpicture.in"
f->append(new drawNewPage());
}
-#line 378 "runpicture.in"
+#line 379 "runpicture.in"
// void _image(picture *f, realarray2 *data, pair initial, pair final, penarray *palette=NULL, transform t=identity, bool copy=true, bool antialias=false);
void gen_runpicture36(stack *Stack)
{
@@ -640,14 +641,14 @@ void gen_runpicture36(stack *Stack)
pair initial=vm::pop<pair>(Stack);
realarray2 * data=vm::pop<realarray2 *>(Stack);
picture * f=vm::pop<picture *>(Stack);
-#line 381 "runpicture.in"
+#line 382 "runpicture.in"
array *(*copyarray)(array *a)=copy ? copyArray : nop;
array *(*copyarray2)(array *a)=copy ? copyArray2 : nop;
f->append(new drawPaletteImage(*copyarray2(data),*copyarray(palette),
t*matrix(initial,final),antialias));
}
-#line 388 "runpicture.in"
+#line 389 "runpicture.in"
// void _image(picture *f, penarray2 *data, pair initial, pair final, transform t=identity, bool copy=true, bool antialias=false);
void gen_runpicture37(stack *Stack)
{
@@ -658,13 +659,13 @@ void gen_runpicture37(stack *Stack)
pair initial=vm::pop<pair>(Stack);
penarray2 * data=vm::pop<penarray2 *>(Stack);
picture * f=vm::pop<picture *>(Stack);
-#line 390 "runpicture.in"
+#line 391 "runpicture.in"
array *(*copyarray2)(array *a)=copy ? copyArray2 : nop;
f->append(new drawNoPaletteImage(*copyarray2(data),t*matrix(initial,final),
antialias));
}
-#line 396 "runpicture.in"
+#line 397 "runpicture.in"
// void _image(picture *f, callablePen *F, Int width, Int height, pair initial, pair final, transform t=identity, bool antialias=false);
void gen_runpicture38(stack *Stack)
{
@@ -676,36 +677,36 @@ void gen_runpicture38(stack *Stack)
Int width=vm::pop<Int>(Stack);
callablePen * F=vm::pop<callablePen *>(Stack);
picture * f=vm::pop<picture *>(Stack);
-#line 398 "runpicture.in"
+#line 399 "runpicture.in"
f->append(new drawFunctionImage(Stack,F,width,height,
t*matrix(initial,final),antialias));
}
-#line 403 "runpicture.in"
+#line 404 "runpicture.in"
// string nativeformat();
void gen_runpicture39(stack *Stack)
{
-#line 404 "runpicture.in"
+#line 405 "runpicture.in"
{Stack->push<string>(nativeformat()); return;}
}
-#line 408 "runpicture.in"
+#line 409 "runpicture.in"
// bool latex();
void gen_runpicture40(stack *Stack)
{
-#line 409 "runpicture.in"
+#line 410 "runpicture.in"
{Stack->push<bool>(latex(getSetting<string>("tex"))); return;}
}
-#line 413 "runpicture.in"
+#line 414 "runpicture.in"
// bool pdf();
void gen_runpicture41(stack *Stack)
{
-#line 414 "runpicture.in"
+#line 415 "runpicture.in"
{Stack->push<bool>(pdf(getSetting<string>("tex"))); return;}
}
-#line 418 "runpicture.in"
+#line 419 "runpicture.in"
// void _shipout(string prefix=emptystring, picture *f, picture *preamble=NULL, string format=emptystring, bool wait=false, bool view=true, transform T=identity);
void gen_runpicture42(stack *Stack)
{
@@ -716,7 +717,7 @@ void gen_runpicture42(stack *Stack)
picture * preamble=vm::pop<picture *>(Stack,NULL);
picture * f=vm::pop<picture *>(Stack);
string prefix=vm::pop<string>(Stack,emptystring);
-#line 421 "runpicture.in"
+#line 422 "runpicture.in"
if(prefix.empty()) prefix=outname();
picture *result=new picture;
@@ -762,7 +763,7 @@ void gen_runpicture42(stack *Stack)
result->shipout(preamble,prefix,format,wait,view);
}
-#line 467 "runpicture.in"
+#line 468 "runpicture.in"
// void shipout3(string prefix, picture *f, string format=emptystring, real width, real height, real angle, real zoom, triple m, triple M, pair shift, pair margin, realarray2 *t, realarray *background, triplearray *lights, realarray2 *diffuse, realarray2 *specular, bool view=true);
void gen_runpicture43(stack *Stack)
{
@@ -783,7 +784,7 @@ void gen_runpicture43(stack *Stack)
string format=vm::pop<string>(Stack,emptystring);
picture * f=vm::pop<picture *>(Stack);
string prefix=vm::pop<string>(Stack);
-#line 472 "runpicture.in"
+#line 473 "runpicture.in"
size_t n=checkArrays(lights,diffuse);
checkEqual(n,checkArray(specular));
@@ -803,24 +804,24 @@ void gen_runpicture43(stack *Stack)
delete[] T;
}
-#line 492 "runpicture.in"
+#line 493 "runpicture.in"
// void shipout3(string prefix, picture *f, string format=defaultformat3);
void gen_runpicture44(stack *Stack)
{
string format=vm::pop<string>(Stack,defaultformat3);
picture * f=vm::pop<picture *>(Stack);
string prefix=vm::pop<string>(Stack);
-#line 493 "runpicture.in"
+#line 494 "runpicture.in"
f->shipout3(prefix,format);
}
-#line 497 "runpicture.in"
+#line 498 "runpicture.in"
// void xmap(string key, transform t=identity);
void gen_runpicture45(stack *Stack)
{
transform t=vm::pop<transform>(Stack,identity);
string key=vm::pop<string>(Stack);
-#line 498 "runpicture.in"
+#line 499 "runpicture.in"
xmap_t &xmap=processData().xmap;
xmap_t::iterator p=xmap.find(key);
if(p != xmap.end())
@@ -832,14 +833,14 @@ void gen_runpicture45(stack *Stack)
}
}
-#line 510 "runpicture.in"
+#line 511 "runpicture.in"
// void deconstruct(picture *f, picture *preamble=NULL, transform T=identity);
void gen_runpicture46(stack *Stack)
{
transform T=vm::pop<transform>(Stack,identity);
picture * preamble=vm::pop<picture *>(Stack,NULL);
picture * f=vm::pop<picture *>(Stack);
-#line 511 "runpicture.in"
+#line 512 "runpicture.in"
unsigned level=0;
string prefix=outname();
@@ -895,14 +896,14 @@ void gen_runpicture46(stack *Stack)
if(!Delete) {
drawElement *e=t.isIdentity() ? *p : (*p)->transformed(t);
group->append(e);
- if((*p)->endclip()) clip=true;
- ostringstream buf;
- buf << prefix << "_" << arg;
- string outname=buildname(buf.str(),xformat);
- group->shipout(preamble,outname,xformat,false,false);
bbox b=group->bounds();
- if(!b.empty) {
- fprintf(pipeout,"KEY=%s%d\n",e->KEY.c_str(),clip);
+ if(!b.empty && b.right > b.left && b.top > b.bottom) {
+ if((*p)->endclip()) clip=true;
+ ostringstream buf;
+ buf << prefix << "_" << arg;
+ string outname=buildname(buf.str(),xformat);
+ group->shipout(preamble,outname,xformat,false,false);
+ fprintf(pipeout,"KEY=%s%d\n",e->KEY.c_str(),clip || f->havepng());
const char *oldlocale=setlocale(LC_NUMERIC,NULL);
bool override=oldlocale && strcmp(oldlocale,"C") != 0;
@@ -934,7 +935,7 @@ void gen_runpicture46(stack *Stack)
// Three-dimensional picture and surface operations
// Bezier curve
-#line 606 "runpicture.in"
+#line 607 "runpicture.in"
// void _draw(picture *f, path3 g, triple center=Zero, penarray *p, real opacity, real shininess, real metallic, real fresnel0, Int interaction=0);
void gen_runpicture47(stack *Stack)
{
@@ -947,18 +948,21 @@ void gen_runpicture47(stack *Stack)
triple center=vm::pop<triple>(Stack,Zero);
path3 g=vm::pop<path3>(Stack);
picture * f=vm::pop<picture *>(Stack);
-#line 609 "runpicture.in"
- if(g.size() > 0)
- f->append(new drawPath3(g,center,*p,opacity,shininess,metallic,fresnel0,
+#line 610 "runpicture.in"
+ size_t n=g.size();
+ for(unsigned int i=0; i < n; ++i)
+ f->append(new drawPath3(g.subpath((Int) i,Int(i+1)),center,*p,opacity,
+ shininess,metallic,fresnel0,
(Interaction) intcast(interaction)));
}
// Bezier patch
-#line 616 "runpicture.in"
-// void draw(picture *f, triplearray2 *P, triple center, bool straight, penarray *p, real opacity, real shininess, real metallic, real fresnel0, penarray *colors, Int interaction, bool primitive=false);
+#line 619 "runpicture.in"
+// void draw(picture *f, triplearray2 *P, triple center, bool straight, penarray *p, real opacity, real shininess, real metallic, real fresnel0, penarray *colors, Int interaction, Int digits, bool primitive=false);
void gen_runpicture48(stack *Stack)
{
bool primitive=vm::pop<bool>(Stack,false);
+ Int digits=vm::pop<Int>(Stack);
Int interaction=vm::pop<Int>(Stack);
penarray * colors=vm::pop<penarray *>(Stack);
real fresnel0=vm::pop<real>(Stack);
@@ -970,18 +974,20 @@ void gen_runpicture48(stack *Stack)
triple center=vm::pop<triple>(Stack);
triplearray2 * P=vm::pop<triplearray2 *>(Stack);
picture * f=vm::pop<picture *>(Stack);
-#line 620 "runpicture.in"
+#line 623 "runpicture.in"
f->append(new drawBezierPatch(*P,center,straight,*p,opacity,shininess,
metallic,fresnel0,*colors,
- (Interaction) intcast(interaction),primitive));
+ (Interaction) intcast(interaction),
+ digits,primitive));
}
// Bezier triangle
-#line 627 "runpicture.in"
-// void drawbeziertriangle(picture *f, triplearray2 *P, triple center, bool straight, penarray *p, real opacity, real shininess, real metallic, real fresnel0, penarray *colors, Int interaction, bool primitive=false);
+#line 631 "runpicture.in"
+// void drawbeziertriangle(picture *f, triplearray2 *P, triple center, bool straight, penarray *p, real opacity, real shininess, real metallic, real fresnel0, penarray *colors, Int interaction, Int digits, bool primitive=false);
void gen_runpicture49(stack *Stack)
{
bool primitive=vm::pop<bool>(Stack,false);
+ Int digits=vm::pop<Int>(Stack);
Int interaction=vm::pop<Int>(Stack);
penarray * colors=vm::pop<penarray *>(Stack);
real fresnel0=vm::pop<real>(Stack);
@@ -993,15 +999,15 @@ void gen_runpicture49(stack *Stack)
triple center=vm::pop<triple>(Stack);
triplearray2 * P=vm::pop<triplearray2 *>(Stack);
picture * f=vm::pop<picture *>(Stack);
-#line 632 "runpicture.in"
+#line 636 "runpicture.in"
f->append(new drawBezierTriangle(*P,center,straight,*p,opacity,shininess,
metallic,fresnel0,*colors,
(Interaction) intcast(interaction),
- primitive));
+ digits,primitive));
}
// General NURBS curve
-#line 640 "runpicture.in"
+#line 644 "runpicture.in"
// void draw(picture *f, triplearray *P, realarray *knot, realarray *weights=emptyarray, pen p);
void gen_runpicture50(stack *Stack)
{
@@ -1010,12 +1016,12 @@ void gen_runpicture50(stack *Stack)
realarray * knot=vm::pop<realarray *>(Stack);
triplearray * P=vm::pop<triplearray *>(Stack);
picture * f=vm::pop<picture *>(Stack);
-#line 642 "runpicture.in"
+#line 646 "runpicture.in"
f->append(new drawNurbsPath3(*P,knot,weights,p));
}
// General NURBS surface
-#line 647 "runpicture.in"
+#line 651 "runpicture.in"
// void draw(picture *f, triplearray2 *P, realarray *uknot, realarray *vknot, realarray2 *weights=emptyarray, penarray *p, real opacity, real shininess,real metallic, real fresnel0, penarray *colors);
void gen_runpicture51(stack *Stack)
{
@@ -1030,13 +1036,13 @@ void gen_runpicture51(stack *Stack)
realarray * uknot=vm::pop<realarray *>(Stack);
triplearray2 * P=vm::pop<triplearray2 *>(Stack);
picture * f=vm::pop<picture *>(Stack);
-#line 650 "runpicture.in"
+#line 654 "runpicture.in"
f->append(new drawNurbs(*P,uknot,vknot,weights,*p,opacity,shininess,
metallic,fresnel0,*colors));
}
// Sphere primitive
-#line 656 "runpicture.in"
+#line 660 "runpicture.in"
// void drawSphere(picture *f, realarray2 *t, bool half=false, penarray *p, real opacity, real shininess, real metallic, real fresnel0, Int type);
void gen_runpicture52(stack *Stack)
{
@@ -1049,13 +1055,13 @@ void gen_runpicture52(stack *Stack)
bool half=vm::pop<bool>(Stack,false);
realarray2 * t=vm::pop<realarray2 *>(Stack);
picture * f=vm::pop<picture *>(Stack);
-#line 659 "runpicture.in"
+#line 663 "runpicture.in"
f->append(new drawSphere(*t,half,*p,opacity,shininess,metallic,fresnel0,
intcast(type)));
}
// Cylinder primitive
-#line 665 "runpicture.in"
+#line 669 "runpicture.in"
// void drawCylinder(picture *f, realarray2 *t, penarray *p, real opacity, real shininess, real metallic, real fresnel0, bool core=false);
void gen_runpicture53(stack *Stack)
{
@@ -1067,12 +1073,12 @@ void gen_runpicture53(stack *Stack)
penarray * p=vm::pop<penarray *>(Stack);
realarray2 * t=vm::pop<realarray2 *>(Stack);
picture * f=vm::pop<picture *>(Stack);
-#line 668 "runpicture.in"
+#line 672 "runpicture.in"
f->append(new drawCylinder(*t,*p,opacity,shininess,metallic,fresnel0,core));
}
// Disk primitive
-#line 673 "runpicture.in"
+#line 677 "runpicture.in"
// void drawDisk(picture *f, realarray2 *t, penarray *p, real opacity, real shininess, real metallic, real fresnel0);
void gen_runpicture54(stack *Stack)
{
@@ -1083,12 +1089,12 @@ void gen_runpicture54(stack *Stack)
penarray * p=vm::pop<penarray *>(Stack);
realarray2 * t=vm::pop<realarray2 *>(Stack);
picture * f=vm::pop<picture *>(Stack);
-#line 675 "runpicture.in"
+#line 679 "runpicture.in"
f->append(new drawDisk(*t,*p,opacity,shininess,metallic,fresnel0));
}
// Tube primitive
-#line 680 "runpicture.in"
+#line 684 "runpicture.in"
// void drawTube(picture *f, triplearray *g, real width, penarray *p, real opacity, real shininess, real metallic, real fresnel0, triple min, triple max, bool core=false);
void gen_runpicture55(stack *Stack)
{
@@ -1103,13 +1109,13 @@ void gen_runpicture55(stack *Stack)
real width=vm::pop<real>(Stack);
triplearray * g=vm::pop<triplearray *>(Stack);
picture * f=vm::pop<picture *>(Stack);
-#line 683 "runpicture.in"
+#line 687 "runpicture.in"
f->append(new drawTube(*g,width,*p,opacity,shininess,metallic,fresnel0,
min,max,core));
}
// Draw pixel
-#line 689 "runpicture.in"
+#line 693 "runpicture.in"
// void drawpixel(picture *f, triple v, pen p, real width=1.0);
void gen_runpicture56(stack *Stack)
{
@@ -1117,12 +1123,12 @@ void gen_runpicture56(stack *Stack)
pen p=vm::pop<pen>(Stack);
triple v=vm::pop<triple>(Stack);
picture * f=vm::pop<picture *>(Stack);
-#line 690 "runpicture.in"
+#line 694 "runpicture.in"
f->append(new drawPixel(v,p,width));
}
// Draw triangles
-#line 695 "runpicture.in"
+#line 699 "runpicture.in"
// void draw(picture *f, triplearray *v, Intarray2 *vi, triplearray *n, Intarray2 *ni, penarray *p, real opacity, real shininess, real metallic, real fresnel0, penarray *c=emptyarray, Intarray2 *ci=emptyarray);
void gen_runpicture57(stack *Stack)
{
@@ -1138,63 +1144,63 @@ void gen_runpicture57(stack *Stack)
Intarray2 * vi=vm::pop<Intarray2 *>(Stack);
triplearray * v=vm::pop<triplearray *>(Stack);
picture * f=vm::pop<picture *>(Stack);
-#line 700 "runpicture.in"
+#line 704 "runpicture.in"
f->append(new drawTriangles(*v,*vi,*n,*ni,*p,opacity,shininess,metallic,
fresnel0,*c,*ci));
}
-#line 705 "runpicture.in"
+#line 709 "runpicture.in"
// triple min3(picture *f);
void gen_runpicture58(stack *Stack)
{
picture * f=vm::pop<picture *>(Stack);
-#line 706 "runpicture.in"
+#line 710 "runpicture.in"
{Stack->push<triple>(f->bounds3().Min()); return;}
}
-#line 710 "runpicture.in"
+#line 714 "runpicture.in"
// triple max3(picture *f);
void gen_runpicture59(stack *Stack)
{
picture * f=vm::pop<picture *>(Stack);
-#line 711 "runpicture.in"
+#line 715 "runpicture.in"
{Stack->push<triple>(f->bounds3().Max()); return;}
}
-#line 715 "runpicture.in"
+#line 719 "runpicture.in"
// triple size3(picture *f);
void gen_runpicture60(stack *Stack)
{
picture * f=vm::pop<picture *>(Stack);
-#line 716 "runpicture.in"
+#line 720 "runpicture.in"
bbox3 b=f->bounds3();
{Stack->push<triple>(b.Max()-b.Min()); return;}
}
-#line 721 "runpicture.in"
+#line 725 "runpicture.in"
// pair minratio(picture *f);
void gen_runpicture61(stack *Stack)
{
picture * f=vm::pop<picture *>(Stack);
-#line 722 "runpicture.in"
+#line 726 "runpicture.in"
{Stack->push<pair>(f->ratio(::min)); return;}
}
-#line 726 "runpicture.in"
+#line 730 "runpicture.in"
// pair maxratio(picture *f);
void gen_runpicture62(stack *Stack)
{
picture * f=vm::pop<picture *>(Stack);
-#line 727 "runpicture.in"
+#line 731 "runpicture.in"
{Stack->push<pair>(f->ratio(::max)); return;}
}
-#line 731 "runpicture.in"
+#line 735 "runpicture.in"
// bool is3D(picture *f);
void gen_runpicture63(stack *Stack)
{
picture * f=vm::pop<picture *>(Stack);
-#line 732 "runpicture.in"
+#line 736 "runpicture.in"
{Stack->push<bool>(f->have3D()); return;}
}
@@ -1232,105 +1238,105 @@ void gen_runpicture_venv(venv &ve)
addFunc(ve, run::gen_runpicture12, primVoid(), SYM(gouraudshade), formal(primPicture(), SYM(f), false, false), formal(pathArray() , SYM(g), false, false), formal(primBoolean(), SYM(stroke), true, false), formal(primPen(), SYM(fillrule), true, false), formal(penArray() , SYM(p), false, false), formal(IntArray(), SYM(edges), false, false), formal(primBoolean(), SYM(copy), true, false));
#line 230 "runpicture.in"
addFunc(ve, run::gen_runpicture13, primVoid(), SYM(tensorshade), formal(primPicture(), SYM(f), false, false), formal(pathArray() , SYM(g), false, false), formal(primBoolean(), SYM(stroke), true, false), formal(primPen(), SYM(fillrule), true, false), formal(penArray2() , SYM(p), false, false), formal(pathArray() , SYM(b), true, false), formal(pairArray2(), SYM(z), true, false), formal(primBoolean(), SYM(copy), true, false));
-#line 245 "runpicture.in"
+#line 246 "runpicture.in"
addFunc(ve, run::gen_runpicture14, primVoid(), SYM(functionshade), formal(primPicture(), SYM(f), false, false), formal(pathArray() , SYM(g), false, false), formal(primBoolean(), SYM(stroke), true, false), formal(primPen(), SYM(fillrule), true, false), formal(primString() , SYM(shader), true, false), formal(primBoolean(), SYM(copy), true, false));
-#line 253 "runpicture.in"
+#line 254 "runpicture.in"
addFunc(ve, run::gen_runpicture15, primVoid(), SYM(clip), formal(primPicture(), SYM(f), false, false), formal(pathArray() , SYM(g), false, false), formal(primBoolean(), SYM(stroke), true, false), formal(primPen(), SYM(fillrule), true, false), formal(primBoolean(), SYM(copy), true, false));
-#line 263 "runpicture.in"
+#line 264 "runpicture.in"
addFunc(ve, run::gen_runpicture16, primVoid(), SYM(beginclip), formal(primPicture(), SYM(f), false, false), formal(pathArray() , SYM(g), false, false), formal(primBoolean(), SYM(stroke), true, false), formal(primPen(), SYM(fillrule), true, false), formal(primBoolean(), SYM(copy), true, false));
-#line 270 "runpicture.in"
+#line 271 "runpicture.in"
addFunc(ve, run::gen_runpicture17, primVoid(), SYM(endclip), formal(primPicture(), SYM(f), false, false));
-#line 275 "runpicture.in"
+#line 276 "runpicture.in"
addFunc(ve, run::gen_runpicture18, primVoid(), SYM(gsave), formal(primPicture(), SYM(f), false, false));
-#line 280 "runpicture.in"
+#line 281 "runpicture.in"
addFunc(ve, run::gen_runpicture19, primVoid(), SYM(grestore), formal(primPicture(), SYM(f), false, false));
-#line 285 "runpicture.in"
+#line 286 "runpicture.in"
addFunc(ve, run::gen_runpicture20, primVoid(), SYM(begingroup), formal(primPicture(), SYM(f), false, false));
-#line 290 "runpicture.in"
+#line 291 "runpicture.in"
addFunc(ve, run::gen_runpicture21, primVoid(), SYM(endgroup), formal(primPicture(), SYM(f), false, false));
-#line 295 "runpicture.in"
+#line 296 "runpicture.in"
addFunc(ve, run::gen_runpicture22, primVoid(), SYM(_begingroup3), formal(primPicture(), SYM(f), false, false), formal(primString() , SYM(name), false, false), formal(primReal(), SYM(compression), false, false), formal(primReal(), SYM(granularity), false, false), formal(primBoolean(), SYM(closed), false, false), formal(primBoolean(), SYM(tessellate), false, false), formal(primBoolean(), SYM(dobreak), false, false), formal(primBoolean(), SYM(nobreak), false, false), formal(primTriple(), SYM(center), false, false), formal(primInt(), SYM(interaction), false, false));
-#line 304 "runpicture.in"
+#line 305 "runpicture.in"
addFunc(ve, run::gen_runpicture23, primVoid(), SYM(endgroup3), formal(primPicture(), SYM(f), false, false));
-#line 309 "runpicture.in"
+#line 310 "runpicture.in"
addFunc(ve, run::gen_runpicture24, primVoid(), SYM(add), formal(primPicture(), SYM(dest), false, false), formal(primPicture(), SYM(src), false, false));
-#line 314 "runpicture.in"
+#line 315 "runpicture.in"
addFunc(ve, run::gen_runpicture25, primVoid(), SYM(prepend), formal(primPicture(), SYM(dest), false, false), formal(primPicture(), SYM(src), false, false));
-#line 319 "runpicture.in"
+#line 320 "runpicture.in"
addFunc(ve, run::gen_runpicture26, primVoid(), SYM(postscript), formal(primPicture(), SYM(f), false, false), formal(primString() , SYM(s), false, false));
-#line 324 "runpicture.in"
+#line 325 "runpicture.in"
addFunc(ve, run::gen_runpicture27, primVoid(), SYM(tex), formal(primPicture(), SYM(f), false, false), formal(primString() , SYM(s), false, false));
-#line 329 "runpicture.in"
+#line 330 "runpicture.in"
addFunc(ve, run::gen_runpicture28, primVoid(), SYM(postscript), formal(primPicture(), SYM(f), false, false), formal(primString() , SYM(s), false, false), formal(primPair(), SYM(min), false, false), formal(primPair(), SYM(max), false, false));
-#line 334 "runpicture.in"
+#line 335 "runpicture.in"
addFunc(ve, run::gen_runpicture29, primVoid(), SYM(tex), formal(primPicture(), SYM(f), false, false), formal(primString() , SYM(s), false, false), formal(primPair(), SYM(min), false, false), formal(primPair(), SYM(max), false, false));
-#line 339 "runpicture.in"
+#line 340 "runpicture.in"
addFunc(ve, run::gen_runpicture30, primVoid(), SYM(texpreamble), formal(primString() , SYM(s), false, false));
-#line 347 "runpicture.in"
+#line 348 "runpicture.in"
addFunc(ve, run::gen_runpicture31, primVoid(), SYM(deletepreamble));
-#line 354 "runpicture.in"
+#line 355 "runpicture.in"
addFunc(ve, run::gen_runpicture32, primVoid(), SYM(_labelpath), formal(primPicture(), SYM(f), false, false), formal(primString() , SYM(s), false, false), formal(primString() , SYM(size), false, false), formal(primPath(), SYM(g), false, false), formal(primString() , SYM(justify), false, false), formal(primPair(), SYM(offset), false, false), formal(primPen(), SYM(p), false, false));
-#line 360 "runpicture.in"
+#line 361 "runpicture.in"
addFunc(ve, run::gen_runpicture33, primVoid(), SYM(texreset));
-#line 368 "runpicture.in"
+#line 369 "runpicture.in"
addFunc(ve, run::gen_runpicture34, primVoid(), SYM(layer), formal(primPicture(), SYM(f), false, false));
-#line 373 "runpicture.in"
+#line 374 "runpicture.in"
addFunc(ve, run::gen_runpicture35, primVoid(), SYM(newpage), formal(primPicture(), SYM(f), false, false));
-#line 378 "runpicture.in"
+#line 379 "runpicture.in"
addFunc(ve, run::gen_runpicture36, primVoid(), SYM(_image), formal(primPicture(), SYM(f), false, false), formal(realArray2(), SYM(data), false, false), formal(primPair(), SYM(initial), false, false), formal(primPair(), SYM(final), false, false), formal(penArray() , SYM(palette), true, false), formal(primTransform(), SYM(t), true, false), formal(primBoolean(), SYM(copy), true, false), formal(primBoolean(), SYM(antialias), true, false));
-#line 388 "runpicture.in"
+#line 389 "runpicture.in"
addFunc(ve, run::gen_runpicture37, primVoid(), SYM(_image), formal(primPicture(), SYM(f), false, false), formal(penArray2() , SYM(data), false, false), formal(primPair(), SYM(initial), false, false), formal(primPair(), SYM(final), false, false), formal(primTransform(), SYM(t), true, false), formal(primBoolean(), SYM(copy), true, false), formal(primBoolean(), SYM(antialias), true, false));
-#line 396 "runpicture.in"
+#line 397 "runpicture.in"
addFunc(ve, run::gen_runpicture38, primVoid(), SYM(_image), formal(primPicture(), SYM(f), false, false), formal(penFunction(), SYM(f), false, false), formal(primInt(), SYM(width), false, false), formal(primInt(), SYM(height), false, false), formal(primPair(), SYM(initial), false, false), formal(primPair(), SYM(final), false, false), formal(primTransform(), SYM(t), true, false), formal(primBoolean(), SYM(antialias), true, false));
-#line 403 "runpicture.in"
+#line 404 "runpicture.in"
addFunc(ve, run::gen_runpicture39, primString() , SYM(nativeformat));
-#line 408 "runpicture.in"
+#line 409 "runpicture.in"
addFunc(ve, run::gen_runpicture40, primBoolean(), SYM(latex));
-#line 413 "runpicture.in"
+#line 414 "runpicture.in"
addFunc(ve, run::gen_runpicture41, primBoolean(), SYM(pdf));
-#line 418 "runpicture.in"
+#line 419 "runpicture.in"
addFunc(ve, run::gen_runpicture42, primVoid(), SYM(_shipout), formal(primString() , SYM(prefix), true, false), formal(primPicture(), SYM(f), false, false), formal(primPicture(), SYM(preamble), true, false), formal(primString() , SYM(format), true, false), formal(primBoolean(), SYM(wait), true, false), formal(primBoolean(), SYM(view), true, false), formal(primTransform(), SYM(t), true, false));
-#line 467 "runpicture.in"
+#line 468 "runpicture.in"
addFunc(ve, run::gen_runpicture43, primVoid(), SYM(shipout3), formal(primString() , SYM(prefix), false, false), formal(primPicture(), SYM(f), false, false), formal(primString() , SYM(format), true, false), formal(primReal(), SYM(width), false, false), formal(primReal(), SYM(height), false, false), formal(primReal(), SYM(angle), false, false), formal(primReal(), SYM(zoom), false, false), formal(primTriple(), SYM(m), false, false), formal(primTriple(), SYM(m), false, false), formal(primPair(), SYM(shift), false, false), formal(primPair(), SYM(margin), false, false), formal(realArray2(), SYM(t), false, false), formal(realArray(), SYM(background), false, false), formal(tripleArray(), SYM(lights), false, false), formal(realArray2(), SYM(diffuse), false, false), formal(realArray2(), SYM(specular), false, false), formal(primBoolean(), SYM(view), true, false));
-#line 492 "runpicture.in"
+#line 493 "runpicture.in"
addFunc(ve, run::gen_runpicture44, primVoid(), SYM(shipout3), formal(primString() , SYM(prefix), false, false), formal(primPicture(), SYM(f), false, false), formal(primString() , SYM(format), true, false));
-#line 497 "runpicture.in"
+#line 498 "runpicture.in"
addFunc(ve, run::gen_runpicture45, primVoid(), SYM(xmap), formal(primString() , SYM(key), false, false), formal(primTransform(), SYM(t), true, false));
-#line 510 "runpicture.in"
+#line 511 "runpicture.in"
addFunc(ve, run::gen_runpicture46, primVoid(), SYM(deconstruct), formal(primPicture(), SYM(f), false, false), formal(primPicture(), SYM(preamble), true, false), formal(primTransform(), SYM(t), true, false));
-#line 602 "runpicture.in"
+#line 603 "runpicture.in"
addFunc(ve, run::gen_runpicture47, primVoid(), SYM(_draw), formal(primPicture(), SYM(f), false, false), formal(primPath3(), SYM(g), false, false), formal(primTriple(), SYM(center), true, false), formal(penArray() , SYM(p), false, false), formal(primReal(), SYM(opacity), false, false), formal(primReal(), SYM(shininess), false, false), formal(primReal(), SYM(metallic), false, false), formal(primReal(), SYM(fresnel0), false, false), formal(primInt(), SYM(interaction), true, false));
-#line 615 "runpicture.in"
- addFunc(ve, run::gen_runpicture48, primVoid(), SYM(draw), formal(primPicture(), SYM(f), false, false), formal(tripleArray2(), SYM(p), false, false), formal(primTriple(), SYM(center), false, false), formal(primBoolean(), SYM(straight), false, false), formal(penArray() , SYM(p), false, false), formal(primReal(), SYM(opacity), false, false), formal(primReal(), SYM(shininess), false, false), formal(primReal(), SYM(metallic), false, false), formal(primReal(), SYM(fresnel0), false, false), formal(penArray() , SYM(colors), false, false), formal(primInt(), SYM(interaction), false, false), formal(primBoolean(), SYM(primitive), true, false));
-#line 626 "runpicture.in"
- addFunc(ve, run::gen_runpicture49, primVoid(), SYM(drawbeziertriangle), formal(primPicture(), SYM(f), false, false), formal(tripleArray2(), SYM(p), false, false), formal(primTriple(), SYM(center), false, false), formal(primBoolean(), SYM(straight), false, false), formal(penArray() , SYM(p), false, false), formal(primReal(), SYM(opacity), false, false), formal(primReal(), SYM(shininess), false, false), formal(primReal(), SYM(metallic), false, false), formal(primReal(), SYM(fresnel0), false, false), formal(penArray() , SYM(colors), false, false), formal(primInt(), SYM(interaction), false, false), formal(primBoolean(), SYM(primitive), true, false));
-#line 639 "runpicture.in"
+#line 618 "runpicture.in"
+ addFunc(ve, run::gen_runpicture48, primVoid(), SYM(draw), formal(primPicture(), SYM(f), false, false), formal(tripleArray2(), SYM(p), false, false), formal(primTriple(), SYM(center), false, false), formal(primBoolean(), SYM(straight), false, false), formal(penArray() , SYM(p), false, false), formal(primReal(), SYM(opacity), false, false), formal(primReal(), SYM(shininess), false, false), formal(primReal(), SYM(metallic), false, false), formal(primReal(), SYM(fresnel0), false, false), formal(penArray() , SYM(colors), false, false), formal(primInt(), SYM(interaction), false, false), formal(primInt(), SYM(digits), false, false), formal(primBoolean(), SYM(primitive), true, false));
+#line 630 "runpicture.in"
+ addFunc(ve, run::gen_runpicture49, primVoid(), SYM(drawbeziertriangle), formal(primPicture(), SYM(f), false, false), formal(tripleArray2(), SYM(p), false, false), formal(primTriple(), SYM(center), false, false), formal(primBoolean(), SYM(straight), false, false), formal(penArray() , SYM(p), false, false), formal(primReal(), SYM(opacity), false, false), formal(primReal(), SYM(shininess), false, false), formal(primReal(), SYM(metallic), false, false), formal(primReal(), SYM(fresnel0), false, false), formal(penArray() , SYM(colors), false, false), formal(primInt(), SYM(interaction), false, false), formal(primInt(), SYM(digits), false, false), formal(primBoolean(), SYM(primitive), true, false));
+#line 643 "runpicture.in"
addFunc(ve, run::gen_runpicture50, primVoid(), SYM(draw), formal(primPicture(), SYM(f), false, false), formal(tripleArray(), SYM(p), false, false), formal(realArray(), SYM(knot), false, false), formal(realArray(), SYM(weights), true, false), formal(primPen(), SYM(p), false, false));
-#line 646 "runpicture.in"
+#line 650 "runpicture.in"
addFunc(ve, run::gen_runpicture51, primVoid(), SYM(draw), formal(primPicture(), SYM(f), false, false), formal(tripleArray2(), SYM(p), false, false), formal(realArray(), SYM(uknot), false, false), formal(realArray(), SYM(vknot), false, false), formal(realArray2(), SYM(weights), true, false), formal(penArray() , SYM(p), false, false), formal(primReal(), SYM(opacity), false, false), formal(primReal(), SYM(shininess), false, false), formal(primReal(), SYM(metallic), false, false), formal(primReal(), SYM(fresnel0), false, false), formal(penArray() , SYM(colors), false, false));
-#line 655 "runpicture.in"
+#line 659 "runpicture.in"
addFunc(ve, run::gen_runpicture52, primVoid(), SYM(drawSphere), formal(primPicture(), SYM(f), false, false), formal(realArray2(), SYM(t), false, false), formal(primBoolean(), SYM(half), true, false), formal(penArray() , SYM(p), false, false), formal(primReal(), SYM(opacity), false, false), formal(primReal(), SYM(shininess), false, false), formal(primReal(), SYM(metallic), false, false), formal(primReal(), SYM(fresnel0), false, false), formal(primInt(), SYM(type), false, false));
-#line 664 "runpicture.in"
+#line 668 "runpicture.in"
addFunc(ve, run::gen_runpicture53, primVoid(), SYM(drawCylinder), formal(primPicture(), SYM(f), false, false), formal(realArray2(), SYM(t), false, false), formal(penArray() , SYM(p), false, false), formal(primReal(), SYM(opacity), false, false), formal(primReal(), SYM(shininess), false, false), formal(primReal(), SYM(metallic), false, false), formal(primReal(), SYM(fresnel0), false, false), formal(primBoolean(), SYM(core), true, false));
-#line 672 "runpicture.in"
+#line 676 "runpicture.in"
addFunc(ve, run::gen_runpicture54, primVoid(), SYM(drawDisk), formal(primPicture(), SYM(f), false, false), formal(realArray2(), SYM(t), false, false), formal(penArray() , SYM(p), false, false), formal(primReal(), SYM(opacity), false, false), formal(primReal(), SYM(shininess), false, false), formal(primReal(), SYM(metallic), false, false), formal(primReal(), SYM(fresnel0), false, false));
-#line 679 "runpicture.in"
+#line 683 "runpicture.in"
addFunc(ve, run::gen_runpicture55, primVoid(), SYM(drawTube), formal(primPicture(), SYM(f), false, false), formal(tripleArray(), SYM(g), false, false), formal(primReal(), SYM(width), false, false), formal(penArray() , SYM(p), false, false), formal(primReal(), SYM(opacity), false, false), formal(primReal(), SYM(shininess), false, false), formal(primReal(), SYM(metallic), false, false), formal(primReal(), SYM(fresnel0), false, false), formal(primTriple(), SYM(min), false, false), formal(primTriple(), SYM(max), false, false), formal(primBoolean(), SYM(core), true, false));
-#line 688 "runpicture.in"
+#line 692 "runpicture.in"
addFunc(ve, run::gen_runpicture56, primVoid(), SYM(drawpixel), formal(primPicture(), SYM(f), false, false), formal(primTriple(), SYM(v), false, false), formal(primPen(), SYM(p), false, false), formal(primReal(), SYM(width), true, false));
-#line 694 "runpicture.in"
+#line 698 "runpicture.in"
addFunc(ve, run::gen_runpicture57, primVoid(), SYM(draw), formal(primPicture(), SYM(f), false, false), formal(tripleArray(), SYM(v), false, false), formal(IntArray2(), SYM(vi), false, false), formal(tripleArray(), SYM(n), false, false), formal(IntArray2(), SYM(ni), false, false), formal(penArray() , SYM(p), false, false), formal(primReal(), SYM(opacity), false, false), formal(primReal(), SYM(shininess), false, false), formal(primReal(), SYM(metallic), false, false), formal(primReal(), SYM(fresnel0), false, false), formal(penArray() , SYM(c), true, false), formal(IntArray2(), SYM(ci), true, false));
-#line 705 "runpicture.in"
+#line 709 "runpicture.in"
addFunc(ve, run::gen_runpicture58, primTriple(), SYM(min3), formal(primPicture(), SYM(f), false, false));
-#line 710 "runpicture.in"
+#line 714 "runpicture.in"
addFunc(ve, run::gen_runpicture59, primTriple(), SYM(max3), formal(primPicture(), SYM(f), false, false));
-#line 715 "runpicture.in"
+#line 719 "runpicture.in"
addFunc(ve, run::gen_runpicture60, primTriple(), SYM(size3), formal(primPicture(), SYM(f), false, false));
-#line 721 "runpicture.in"
+#line 725 "runpicture.in"
addFunc(ve, run::gen_runpicture61, primPair(), SYM(minratio), formal(primPicture(), SYM(f), false, false));
-#line 726 "runpicture.in"
+#line 730 "runpicture.in"
addFunc(ve, run::gen_runpicture62, primPair(), SYM(maxratio), formal(primPicture(), SYM(f), false, false));
-#line 731 "runpicture.in"
+#line 735 "runpicture.in"
addFunc(ve, run::gen_runpicture63, primBoolean(), SYM(is3D), formal(primPicture(), SYM(f), false, false));
}
diff --git a/graphics/asymptote/runpicture.in b/graphics/asymptote/runpicture.in
index 2fa501f22a..d5c94badc3 100644
--- a/graphics/asymptote/runpicture.in
+++ b/graphics/asymptote/runpicture.in
@@ -233,13 +233,14 @@ void tensorshade(picture *f, patharray *g, bool stroke=false,
{
array *(*copyarray)(array *a)=copy ? copyArray : nop;
array *(*copyarray2)(array *a)=copy ? copyArray2 : nop;
- if(b == NULL) b=g;
- size_t n=checkArrays(p,b);
+ size_t n=checkArrays(p,b ? b : g);
+ array& G=*copyarray(g);
+ array& B=b ? *copyarray(b) : G;
size_t nz=checkArray(z);
if(nz != 0)
checkEqual(nz,n);
- f->append(new drawTensorShade(*copyarray(g),stroke,fillrule,*copyarray2(p),
- *copyarray(b),*copyarray2(z)));
+ f->append(new drawTensorShade(G,stroke,fillrule,*copyarray2(p),B,
+ *copyarray2(z)));
}
void functionshade(picture *f, patharray *g, bool stroke=false,
@@ -564,14 +565,14 @@ void deconstruct(picture *f, picture *preamble=NULL, transform T=identity)
if(!Delete) {
drawElement *e=t.isIdentity() ? *p : (*p)->transformed(t);
group->append(e);
- if((*p)->endclip()) clip=true;
- ostringstream buf;
- buf << prefix << "_" << arg;
- string outname=buildname(buf.str(),xformat);
- group->shipout(preamble,outname,xformat,false,false);
bbox b=group->bounds();
- if(!b.empty) {
- fprintf(pipeout,"KEY=%s%d\n",e->KEY.c_str(),clip);
+ if(!b.empty && b.right > b.left && b.top > b.bottom) {
+ if((*p)->endclip()) clip=true;
+ ostringstream buf;
+ buf << prefix << "_" << arg;
+ string outname=buildname(buf.str(),xformat);
+ group->shipout(preamble,outname,xformat,false,false);
+ fprintf(pipeout,"KEY=%s%d\n",e->KEY.c_str(),clip || f->havepng());
const char *oldlocale=setlocale(LC_NUMERIC,NULL);
bool override=oldlocale && strcmp(oldlocale,"C") != 0;
@@ -607,33 +608,36 @@ void _draw(picture *f, path3 g, triple center=Zero, penarray *p,
real opacity, real shininess, real metallic, real fresnel0,
Int interaction=0)
{
- if(g.size() > 0)
- f->append(new drawPath3(g,center,*p,opacity,shininess,metallic,fresnel0,
+ size_t n=g.size();
+ for(unsigned int i=0; i < n; ++i)
+ f->append(new drawPath3(g.subpath((Int) i,Int(i+1)),center,*p,opacity,
+ shininess,metallic,fresnel0,
(Interaction) intcast(interaction)));
}
// Bezier patch
void draw(picture *f, triplearray2 *P, triple center, bool straight,
penarray *p, real opacity, real shininess, real metallic,
- real fresnel0, penarray *colors, Int interaction,
+ real fresnel0, penarray *colors, Int interaction, Int digits,
bool primitive=false)
{
f->append(new drawBezierPatch(*P,center,straight,*p,opacity,shininess,
metallic,fresnel0,*colors,
- (Interaction) intcast(interaction),primitive));
+ (Interaction) intcast(interaction),
+ digits,primitive));
}
// Bezier triangle
void drawbeziertriangle(picture *f, triplearray2 *P, triple center,
bool straight, penarray *p, real opacity,
real shininess, real metallic, real fresnel0,
- penarray *colors, Int interaction,
+ penarray *colors, Int interaction, Int digits,
bool primitive=false)
{
f->append(new drawBezierTriangle(*P,center,straight,*p,opacity,shininess,
metallic,fresnel0,*colors,
(Interaction) intcast(interaction),
- primitive));
+ digits,primitive));
}
// General NURBS curve
diff --git a/graphics/asymptote/runtriple.cc b/graphics/asymptote/runtriple.cc
index 3e0b71bdf7..eefd6beaae 100644
--- a/graphics/asymptote/runtriple.cc
+++ b/graphics/asymptote/runtriple.cc
@@ -171,189 +171,198 @@ void gen_runtriple9(stack *Stack)
}
#line 70 "runtriple.in"
-// real polar(triple v, bool warn=true);
+// real abs2(triple v);
void gen_runtriple10(stack *Stack)
{
- bool warn=vm::pop<bool>(Stack,true);
triple v=vm::pop<triple>(Stack);
#line 71 "runtriple.in"
- {Stack->push<real>(v.polar(warn)); return;}
+ {Stack->push<real>(abs2(v)); return;}
}
#line 75 "runtriple.in"
-// real azimuth(triple v, bool warn=true);
+// real polar(triple v, bool warn=true);
void gen_runtriple11(stack *Stack)
{
bool warn=vm::pop<bool>(Stack,true);
triple v=vm::pop<triple>(Stack);
#line 76 "runtriple.in"
+ {Stack->push<real>(v.polar(warn)); return;}
+}
+
+#line 80 "runtriple.in"
+// real azimuth(triple v, bool warn=true);
+void gen_runtriple12(stack *Stack)
+{
+ bool warn=vm::pop<bool>(Stack,true);
+ triple v=vm::pop<triple>(Stack);
+#line 81 "runtriple.in"
if(!warn && v.getx() == 0.0 && v.gety() == 0.0) {Stack->push<real>(0.0); return;}
{Stack->push<real>(v.azimuth()); return;}
}
-#line 81 "runtriple.in"
+#line 86 "runtriple.in"
// real colatitude(triple v, bool warn=true);
-void gen_runtriple12(stack *Stack)
+void gen_runtriple13(stack *Stack)
{
bool warn=vm::pop<bool>(Stack,true);
triple v=vm::pop<triple>(Stack);
-#line 82 "runtriple.in"
+#line 87 "runtriple.in"
if(!warn && v.getx() == 0.0 && v.gety() == 0.0 && v.getz() == 0.0) {Stack->push<real>(0.0); return;}
{Stack->push<real>(degrees(v.polar())); return;}
}
-#line 87 "runtriple.in"
+#line 92 "runtriple.in"
// real latitude(triple v, bool warn=true);
-void gen_runtriple13(stack *Stack)
+void gen_runtriple14(stack *Stack)
{
bool warn=vm::pop<bool>(Stack,true);
triple v=vm::pop<triple>(Stack);
-#line 88 "runtriple.in"
+#line 93 "runtriple.in"
if(!warn && v.getx() == 0.0 && v.gety() == 0.0 && v.getz() == 0.0) {Stack->push<real>(0.0); return;}
{Stack->push<real>(90.0-degrees(v.polar())); return;}
}
// Return the longitude of v in [0,360).
-#line 94 "runtriple.in"
+#line 99 "runtriple.in"
// real longitude(triple v, bool warn=true);
-void gen_runtriple14(stack *Stack)
+void gen_runtriple15(stack *Stack)
{
bool warn=vm::pop<bool>(Stack,true);
triple v=vm::pop<triple>(Stack);
-#line 95 "runtriple.in"
+#line 100 "runtriple.in"
if(!warn && v.getx() == 0.0 && v.gety() == 0.0) {Stack->push<real>(0.0); return;}
{Stack->push<real>(principalBranch(degrees(v.azimuth()))); return;}
}
-#line 100 "runtriple.in"
+#line 105 "runtriple.in"
// triple unit(triple v);
-void gen_runtriple15(stack *Stack)
+void gen_runtriple16(stack *Stack)
{
triple v=vm::pop<triple>(Stack);
-#line 101 "runtriple.in"
+#line 106 "runtriple.in"
{Stack->push<triple>(unit(v)); return;}
}
-#line 105 "runtriple.in"
+#line 110 "runtriple.in"
// real dot(triple u, triple v);
-void gen_runtriple16(stack *Stack)
+void gen_runtriple17(stack *Stack)
{
triple v=vm::pop<triple>(Stack);
triple u=vm::pop<triple>(Stack);
-#line 106 "runtriple.in"
+#line 111 "runtriple.in"
{Stack->push<real>(dot(u,v)); return;}
}
-#line 110 "runtriple.in"
+#line 115 "runtriple.in"
// triple cross(triple u, triple v);
-void gen_runtriple17(stack *Stack)
+void gen_runtriple18(stack *Stack)
{
triple v=vm::pop<triple>(Stack);
triple u=vm::pop<triple>(Stack);
-#line 111 "runtriple.in"
+#line 116 "runtriple.in"
{Stack->push<triple>(cross(u,v)); return;}
}
-#line 115 "runtriple.in"
+#line 120 "runtriple.in"
// triple dir(explicit triple z);
-void gen_runtriple18(stack *Stack)
+void gen_runtriple19(stack *Stack)
{
triple z=vm::pop<triple>(Stack);
-#line 116 "runtriple.in"
+#line 121 "runtriple.in"
{Stack->push<triple>(unit(z)); return;}
}
-#line 120 "runtriple.in"
+#line 125 "runtriple.in"
// triple expi(real polar, real azimuth);
-void gen_runtriple19(stack *Stack)
+void gen_runtriple20(stack *Stack)
{
real azimuth=vm::pop<real>(Stack);
real polar=vm::pop<real>(Stack);
-#line 121 "runtriple.in"
+#line 126 "runtriple.in"
{Stack->push<triple>(expi(polar,azimuth)); return;}
}
-#line 125 "runtriple.in"
+#line 130 "runtriple.in"
// triple dir(real colatitude, real longitude);
-void gen_runtriple20(stack *Stack)
+void gen_runtriple21(stack *Stack)
{
real longitude=vm::pop<real>(Stack);
real colatitude=vm::pop<real>(Stack);
-#line 126 "runtriple.in"
+#line 131 "runtriple.in"
{Stack->push<triple>(expi(radians(colatitude),radians(longitude))); return;}
}
-#line 130 "runtriple.in"
+#line 135 "runtriple.in"
// triple realmult(triple u, triple v);
-void gen_runtriple21(stack *Stack)
+void gen_runtriple22(stack *Stack)
{
triple v=vm::pop<triple>(Stack);
triple u=vm::pop<triple>(Stack);
-#line 131 "runtriple.in"
+#line 136 "runtriple.in"
{Stack->push<triple>(triple (u.getx()*v.getx(),u.gety()*v.gety(),u.getz()*v.getz())); return;}
}
// Return the component of vector v perpendicular to a unit vector u.
-#line 136 "runtriple.in"
+#line 141 "runtriple.in"
// triple perp(triple v, triple u);
-void gen_runtriple22(stack *Stack)
+void gen_runtriple23(stack *Stack)
{
triple u=vm::pop<triple>(Stack);
triple v=vm::pop<triple>(Stack);
-#line 137 "runtriple.in"
+#line 142 "runtriple.in"
{Stack->push<triple>(perp(v,u)); return;}
}
-#line 141 "runtriple.in"
+#line 146 "runtriple.in"
// triple bezier(triple a, triple b, triple c, triple d, real t);
-void gen_runtriple23(stack *Stack)
+void gen_runtriple24(stack *Stack)
{
real t=vm::pop<real>(Stack);
triple d=vm::pop<triple>(Stack);
triple c=vm::pop<triple>(Stack);
triple b=vm::pop<triple>(Stack);
triple a=vm::pop<triple>(Stack);
-#line 142 "runtriple.in"
+#line 147 "runtriple.in"
real onemt=1-t;
real onemt2=onemt*onemt;
{Stack->push<triple>(onemt2*onemt*a+t*(3.0*(onemt2*b+t*onemt*c)+t*t*d)); return;}
}
-#line 148 "runtriple.in"
+#line 153 "runtriple.in"
// triple bezierP(triple a, triple b, triple c, triple d, real t);
-void gen_runtriple24(stack *Stack)
+void gen_runtriple25(stack *Stack)
{
real t=vm::pop<real>(Stack);
triple d=vm::pop<triple>(Stack);
triple c=vm::pop<triple>(Stack);
triple b=vm::pop<triple>(Stack);
triple a=vm::pop<triple>(Stack);
-#line 149 "runtriple.in"
+#line 154 "runtriple.in"
{Stack->push<triple>(3.0*(t*t*(d-a+3.0*(b-c))+t*(2.0*(a+c)-4.0*b)+b-a)); return;}
}
-#line 153 "runtriple.in"
+#line 158 "runtriple.in"
// triple bezierPP(triple a, triple b, triple c, triple d, real t);
-void gen_runtriple25(stack *Stack)
+void gen_runtriple26(stack *Stack)
{
real t=vm::pop<real>(Stack);
triple d=vm::pop<triple>(Stack);
triple c=vm::pop<triple>(Stack);
triple b=vm::pop<triple>(Stack);
triple a=vm::pop<triple>(Stack);
-#line 154 "runtriple.in"
+#line 159 "runtriple.in"
{Stack->push<triple>(6.0*(t*(d-a+3.0*(b-c))+a+c)-12.0*b); return;}
}
-#line 158 "runtriple.in"
+#line 163 "runtriple.in"
// triple bezierPPP(triple a, triple b, triple c, triple d);
-void gen_runtriple26(stack *Stack)
+void gen_runtriple27(stack *Stack)
{
triple d=vm::pop<triple>(Stack);
triple c=vm::pop<triple>(Stack);
triple b=vm::pop<triple>(Stack);
triple a=vm::pop<triple>(Stack);
-#line 159 "runtriple.in"
+#line 164 "runtriple.in"
{Stack->push<triple>(6.0*(d-a)+18.0*(b-c)); return;}
}
@@ -384,39 +393,41 @@ void gen_runtriple_venv(venv &ve)
#line 65 "runtriple.in"
addFunc(ve, run::gen_runtriple9, primReal(), SYM(abs), formal(primTriple(), SYM(v), false, false));
#line 70 "runtriple.in"
- addFunc(ve, run::gen_runtriple10, primReal(), SYM(polar), formal(primTriple(), SYM(v), false, false), formal(primBoolean(), SYM(warn), true, false));
+ addFunc(ve, run::gen_runtriple10, primReal(), SYM(abs2), formal(primTriple(), SYM(v), false, false));
#line 75 "runtriple.in"
- addFunc(ve, run::gen_runtriple11, primReal(), SYM(azimuth), formal(primTriple(), SYM(v), false, false), formal(primBoolean(), SYM(warn), true, false));
-#line 81 "runtriple.in"
- addFunc(ve, run::gen_runtriple12, primReal(), SYM(colatitude), formal(primTriple(), SYM(v), false, false), formal(primBoolean(), SYM(warn), true, false));
-#line 87 "runtriple.in"
- addFunc(ve, run::gen_runtriple13, primReal(), SYM(latitude), formal(primTriple(), SYM(v), false, false), formal(primBoolean(), SYM(warn), true, false));
-#line 93 "runtriple.in"
- addFunc(ve, run::gen_runtriple14, primReal(), SYM(longitude), formal(primTriple(), SYM(v), false, false), formal(primBoolean(), SYM(warn), true, false));
-#line 100 "runtriple.in"
- addFunc(ve, run::gen_runtriple15, primTriple(), SYM(unit), formal(primTriple(), SYM(v), false, false));
+ addFunc(ve, run::gen_runtriple11, primReal(), SYM(polar), formal(primTriple(), SYM(v), false, false), formal(primBoolean(), SYM(warn), true, false));
+#line 80 "runtriple.in"
+ addFunc(ve, run::gen_runtriple12, primReal(), SYM(azimuth), formal(primTriple(), SYM(v), false, false), formal(primBoolean(), SYM(warn), true, false));
+#line 86 "runtriple.in"
+ addFunc(ve, run::gen_runtriple13, primReal(), SYM(colatitude), formal(primTriple(), SYM(v), false, false), formal(primBoolean(), SYM(warn), true, false));
+#line 92 "runtriple.in"
+ addFunc(ve, run::gen_runtriple14, primReal(), SYM(latitude), formal(primTriple(), SYM(v), false, false), formal(primBoolean(), SYM(warn), true, false));
+#line 98 "runtriple.in"
+ addFunc(ve, run::gen_runtriple15, primReal(), SYM(longitude), formal(primTriple(), SYM(v), false, false), formal(primBoolean(), SYM(warn), true, false));
#line 105 "runtriple.in"
- addFunc(ve, run::gen_runtriple16, primReal(), SYM(dot), formal(primTriple(), SYM(u), false, false), formal(primTriple(), SYM(v), false, false));
+ addFunc(ve, run::gen_runtriple16, primTriple(), SYM(unit), formal(primTriple(), SYM(v), false, false));
#line 110 "runtriple.in"
- addFunc(ve, run::gen_runtriple17, primTriple(), SYM(cross), formal(primTriple(), SYM(u), false, false), formal(primTriple(), SYM(v), false, false));
+ addFunc(ve, run::gen_runtriple17, primReal(), SYM(dot), formal(primTriple(), SYM(u), false, false), formal(primTriple(), SYM(v), false, false));
#line 115 "runtriple.in"
- addFunc(ve, run::gen_runtriple18, primTriple(), SYM(dir), formal(primTriple(), SYM(z), false, true));
+ addFunc(ve, run::gen_runtriple18, primTriple(), SYM(cross), formal(primTriple(), SYM(u), false, false), formal(primTriple(), SYM(v), false, false));
#line 120 "runtriple.in"
- addFunc(ve, run::gen_runtriple19, primTriple(), SYM(expi), formal(primReal(), SYM(polar), false, false), formal(primReal(), SYM(azimuth), false, false));
+ addFunc(ve, run::gen_runtriple19, primTriple(), SYM(dir), formal(primTriple(), SYM(z), false, true));
#line 125 "runtriple.in"
- addFunc(ve, run::gen_runtriple20, primTriple(), SYM(dir), formal(primReal(), SYM(colatitude), false, false), formal(primReal(), SYM(longitude), false, false));
+ addFunc(ve, run::gen_runtriple20, primTriple(), SYM(expi), formal(primReal(), SYM(polar), false, false), formal(primReal(), SYM(azimuth), false, false));
#line 130 "runtriple.in"
- addFunc(ve, run::gen_runtriple21, primTriple(), SYM(realmult), formal(primTriple(), SYM(u), false, false), formal(primTriple(), SYM(v), false, false));
+ addFunc(ve, run::gen_runtriple21, primTriple(), SYM(dir), formal(primReal(), SYM(colatitude), false, false), formal(primReal(), SYM(longitude), false, false));
#line 135 "runtriple.in"
- addFunc(ve, run::gen_runtriple22, primTriple(), SYM(perp), formal(primTriple(), SYM(v), false, false), formal(primTriple(), SYM(u), false, false));
-#line 141 "runtriple.in"
- addFunc(ve, run::gen_runtriple23, primTriple(), SYM(bezier), formal(primTriple(), SYM(a), false, false), formal(primTriple(), SYM(b), false, false), formal(primTriple(), SYM(c), false, false), formal(primTriple(), SYM(d), false, false), formal(primReal(), SYM(t), false, false));
-#line 148 "runtriple.in"
- addFunc(ve, run::gen_runtriple24, primTriple(), SYM(bezierP), formal(primTriple(), SYM(a), false, false), formal(primTriple(), SYM(b), false, false), formal(primTriple(), SYM(c), false, false), formal(primTriple(), SYM(d), false, false), formal(primReal(), SYM(t), false, false));
+ addFunc(ve, run::gen_runtriple22, primTriple(), SYM(realmult), formal(primTriple(), SYM(u), false, false), formal(primTriple(), SYM(v), false, false));
+#line 140 "runtriple.in"
+ addFunc(ve, run::gen_runtriple23, primTriple(), SYM(perp), formal(primTriple(), SYM(v), false, false), formal(primTriple(), SYM(u), false, false));
+#line 146 "runtriple.in"
+ addFunc(ve, run::gen_runtriple24, primTriple(), SYM(bezier), formal(primTriple(), SYM(a), false, false), formal(primTriple(), SYM(b), false, false), formal(primTriple(), SYM(c), false, false), formal(primTriple(), SYM(d), false, false), formal(primReal(), SYM(t), false, false));
#line 153 "runtriple.in"
- addFunc(ve, run::gen_runtriple25, primTriple(), SYM(bezierPP), formal(primTriple(), SYM(a), false, false), formal(primTriple(), SYM(b), false, false), formal(primTriple(), SYM(c), false, false), formal(primTriple(), SYM(d), false, false), formal(primReal(), SYM(t), false, false));
+ addFunc(ve, run::gen_runtriple25, primTriple(), SYM(bezierP), formal(primTriple(), SYM(a), false, false), formal(primTriple(), SYM(b), false, false), formal(primTriple(), SYM(c), false, false), formal(primTriple(), SYM(d), false, false), formal(primReal(), SYM(t), false, false));
#line 158 "runtriple.in"
- addFunc(ve, run::gen_runtriple26, primTriple(), SYM(bezierPPP), formal(primTriple(), SYM(a), false, false), formal(primTriple(), SYM(b), false, false), formal(primTriple(), SYM(c), false, false), formal(primTriple(), SYM(d), false, false));
+ addFunc(ve, run::gen_runtriple26, primTriple(), SYM(bezierPP), formal(primTriple(), SYM(a), false, false), formal(primTriple(), SYM(b), false, false), formal(primTriple(), SYM(c), false, false), formal(primTriple(), SYM(d), false, false), formal(primReal(), SYM(t), false, false));
+#line 163 "runtriple.in"
+ addFunc(ve, run::gen_runtriple27, primTriple(), SYM(bezierPPP), formal(primTriple(), SYM(a), false, false), formal(primTriple(), SYM(b), false, false), formal(primTriple(), SYM(c), false, false), formal(primTriple(), SYM(d), false, false));
}
} // namespace trans
diff --git a/graphics/asymptote/runtriple.in b/graphics/asymptote/runtriple.in
index f196b8f4a5..b15cecab01 100644
--- a/graphics/asymptote/runtriple.in
+++ b/graphics/asymptote/runtriple.in
@@ -67,6 +67,11 @@ real abs(triple v)
return v.length();
}
+real abs2(triple v)
+{
+ return abs2(v);
+}
+
real polar(triple v, bool warn=true)
{
return v.polar(warn);
diff --git a/graphics/asymptote/settings.cc b/graphics/asymptote/settings.cc
index 6ae84b6136..30562cc08e 100644
--- a/graphics/asymptote/settings.cc
+++ b/graphics/asymptote/settings.cc
@@ -245,6 +245,7 @@ const string guisuffix="gui";
const string standardprefix="out";
string initdir;
+string tempdir;
string historyname;
// Local versions of the argument list.
@@ -1186,7 +1187,7 @@ void initSettings() {
"Convert each output file to specified format",
""));
addOption(new boolSetting("svgemulation", 0,
- "Emulate unimplemented SVG shading", false));
+ "Emulate unimplemented SVG shading", true));
addOption(new boolSetting("prc", 0,
"Embed 3D PRC graphics in PDF output", true));
addOption(new boolSetting("toolbar", 0,
@@ -1204,15 +1205,13 @@ void initSettings() {
"Antialiasing width for rasterized output", 2));
addOption(new IntSetting("multisample", 0, "n",
"Multisampling width for screen images", 4));
- addOption(new boolSetting("offscreen", 0,
- "Use offscreen rendering",false));
addOption(new boolSetting("twosided", 0,
"Use two-sided 3D lighting model for rendering",
true));
addOption(new pairSetting("position", 0, "pair",
"Initial 3D rendering screen position"));
addOption(new pairSetting("maxviewport", 0, "pair",
- "Maximum viewport size",pair(2048,2048)));
+ "Maximum viewport size",pair(0,0)));
addOption(new pairSetting("viewportmargin", 0, "pair",
"Horizontal and vertical 3D viewport margin",
pair(0.5,0.5)));
@@ -1229,7 +1228,7 @@ void initSettings() {
addOption(new boolSetting("autobillboard", 0,
"3D labels always face viewer by default", true));
addOption(new boolSetting("threads", 0,
- "Use POSIX threads for 3D rendering", !msdos));
+ "Use POSIX threads for 3D rendering", true));
addOption(new boolSetting("fitscreen", 0,
"Fit rendered image to screen", true));
addOption(new boolSetting("interactiveWrite", 0,
@@ -1522,6 +1521,9 @@ void initDir() {
mask=umask(0);
if(mask == 0) mask=0027;
umask(mask);
+ tempdir=Getenv("TEMP",true);
+#else
+ tempdir="/tmp";
#endif
if(access(initdir.c_str(),F_OK) == 0) {
if(verbose > 1)
diff --git a/graphics/asymptote/settings.h b/graphics/asymptote/settings.h
index 7db42e599f..99136a8df8 100644
--- a/graphics/asymptote/settings.h
+++ b/graphics/asymptote/settings.h
@@ -51,6 +51,7 @@ bool warn(const string& s);
extern string systemDir;
extern string docdir;
extern const string dirsep;
+extern string tempdir;
extern bool safe;
diff --git a/graphics/asymptote/shaders.h b/graphics/asymptote/shaders.h
index 1ffa9c0027..be2441a66b 100644
--- a/graphics/asymptote/shaders.h
+++ b/graphics/asymptote/shaders.h
@@ -12,7 +12,7 @@
#ifdef __MSDOS__
#undef _WIN32
-#include "GL/wglew.h"
+#include <GL/wglew.h>
#include <GL/wglext.h>
#endif
diff --git a/graphics/asymptote/stack.cc b/graphics/asymptote/stack.cc
index 7ffb6bcb59..3c56e5e048 100644
--- a/graphics/asymptote/stack.cc
+++ b/graphics/asymptote/stack.cc
@@ -32,6 +32,8 @@ void breakpoint(vm::stack *Stack, absyntax::runnable *r);
namespace vm {
+const char *dereferenceNullPointer="dereference of null pointer";
+
mem::list<bpinfo> bplist;
namespace {
@@ -428,7 +430,7 @@ void stack::runWithOrWithoutClosure(lambda *l, vars_t vars, vars_t parent)
case inst::fieldpush: {
vars_t frame = pop<vars_t>();
if (!frame)
- error("dereference of null pointer");
+ error(dereferenceNullPointer);
push(FRAMEVAR(frame, get<Int>(i)));
break;
}
@@ -436,7 +438,7 @@ void stack::runWithOrWithoutClosure(lambda *l, vars_t vars, vars_t parent)
case inst::fieldsave: {
vars_t frame = pop<vars_t>();
if (!frame)
- error("dereference of null pointer");
+ error(dereferenceNullPointer);
FRAMEVAR(frame, get<Int>(i)) = top();
break;
}
@@ -446,7 +448,7 @@ void stack::runWithOrWithoutClosure(lambda *l, vars_t vars, vars_t parent)
#error NOT REIMPLEMENTED
vars_t frame = pop<vars_t>();
if (!frame)
- error("dereference of null pointer");
+ error(dereferenceNullPointer);
FRAMEVAR(get<Int>(i)) = pop();
break;
}
diff --git a/graphics/asymptote/texfile.cc b/graphics/asymptote/texfile.cc
index 790ed180d9..9fe8118911 100644
--- a/graphics/asymptote/texfile.cc
+++ b/graphics/asymptote/texfile.cc
@@ -78,22 +78,17 @@ void texfile::prologue()
<< height << "bp]" << newl
<< "\\setuppapersize[asy][asy]" << newl;
} else if(settings::pdf(texengine)) {
- double voffset=0.0;
- if(settings::latex(texengine)) {
- if(height < 12.0) voffset=height-12.0;
- } else if(height < 10.0) voffset=height-10.0;
-
if(width > 0)
*out << "\\pdfpagewidth=" << width << "bp" << newl;
*out << "\\ifx\\pdfhorigin\\undefined" << newl
<< "\\hoffset=-1in" << newl
- << "\\voffset=" << voffset-72.0 << "bp" << newl;
+ << "\\voffset=-1in" << newl;
if(height > 0)
*out << "\\pdfpageheight=" << height << "bp"
<< newl;
*out << "\\else" << newl
<< "\\pdfhorigin=0bp" << newl
- << "\\pdfvorigin=" << voffset << "bp" << newl;
+ << "\\pdfvorigin=0bp" << newl;
if(height > 0)
*out << "\\pdfpageheight=" << height << "bp" << newl;
*out << "\\fi" << newl;
@@ -307,8 +302,8 @@ void texfile::put(const string& label, const transform& T, const pair& z,
*out << "\\ASYalign";
if(trans) *out << "T";
- *out << "(" << (z.getx()-Hoffset)*ps2tex
- << "," << (z.gety()-box.bottom)*ps2tex
+ *out << "(" << (z.getx()-hoffset())*ps2tex
+ << "," << (z.gety()-voffset())*ps2tex
<< ")(" << align.getx()
<< "," << align.gety()
<< ")";
@@ -342,6 +337,8 @@ void svgtexfile::beginspecial()
void svgtexfile::endspecial()
{
+ if(!inspecial)
+ reportError("endspecial without matching beginspecial");
inspecial=false;
*out << "}\\catcode`\\#=6%" << newl;
out->setf(std::ios::fixed);
@@ -409,8 +406,8 @@ void svgtexfile::dot(path p, pen q, bool newPath)
*out << "<circle ";
clippath();
pair z=p.point((Int) 0);
- *out << "cx='" << z.getx()*ps2tex
- << "' cy='" << -z.gety()*ps2tex
+ *out << "cx='" << (z.getx()-offset.getx())*ps2tex
+ << "' cy='" << (-z.gety()+offset.gety())*ps2tex
<< "' r='" << 0.5*q.width()*ps2tex;
}
@@ -526,19 +523,19 @@ void svgtexfile::begingradientshade(bool axial, ColorSpace colorspace,
{
string type=axial ? "linear" : "radial";
beginspecial();
+ begintransform();
*out << "<" << type << "Gradient id='grad" << gradientcount;
if(axial) {
- *out << "' x1='" << a.getx()*ps2tex << "' y1='" << -a.gety()*ps2tex
- << "' x2='" << b.getx()*ps2tex << "' y2='" << -b.gety()*ps2tex;
+ *out << "' x1='" << a.getx()*ps2tex << "' y1='" << (box.top-a.gety())*ps2tex
+ << "' x2='" << b.getx()*ps2tex << "' y2='" << (box.top-b.gety())*ps2tex;
} else {
- *out << "' cx='" << b.getx()*ps2tex << "' cy='" << -b.gety()*ps2tex
+ *out << "' cx='" << b.getx()*ps2tex << "' cy='" << (box.top-b.gety())*ps2tex
<< "' r='" << rb*ps2tex;
}
*out <<"' gradientUnits='userSpaceOnUse'>" << nl
<< "<stop offset='0' stop-color='#" << rgbhex(pena) << "'/>" << nl
<< "<stop offset='1' stop-color='#" << rgbhex(penb) << "'/>" << nl
<< "</" << type << "Gradient>" << nl;
- begintransform();
beginpath();
}
@@ -569,20 +566,22 @@ void svgtexfile::gouraudshade(const pen& p0, const pair& z0,
const pen& p2, const pair& z2)
{
string hex[]={rgbhex(p0),rgbhex(p1),rgbhex(p2)};
- pair Z[]={z0,z1,z2};
- *out << "<defs>" << nl
- << "<filter id='colorAdd'>" << nl
- << "<feBlend in='SourceGraphic' in2='BackgroundImage'/>" << nl
- << "</filter>";
+ *out << "<defs>" << nl;
+
+ pair Z0=(z0-offset)*ps2tex;
+ pair Z1=(z1-offset)*ps2tex;
+ pair Z2=(z2-offset)*ps2tex;
+
+ pair Z[]={Z0,Z1,Z2};
for(size_t k=0; k < 3; ++k) {
pair z=Z[k];
pair opp=closest(Z[(k+1) % 3],Z[(k+2) % 3],z);
*out << "<linearGradient id='grad-" << gouraudcount << "-" << k
<< "' gradientUnits='userSpaceOnUse'" << nl
- << " x1='" << z.getx()*ps2tex << "' y1='" << -z.gety()*ps2tex
- << "' x2='" << opp.getx()*ps2tex << "' y2='" << -opp.gety()*ps2tex
+ << " x1='" << z.getx() << "' y1='" << -z.gety()
+ << "' x2='" << opp.getx() << "' y2='" << -opp.gety()
<< "'>" << nl
<< "<stop offset='0' stop-color='#" << hex[k]
<< "' stop-opacity='1'/>" << nl
@@ -590,22 +589,35 @@ void svgtexfile::gouraudshade(const pen& p0, const pair& z0,
<< "' stop-opacity='0'/>" << nl
<< "</linearGradient>" << nl;
}
- *out << "<polygon ";
+
+ *out << "<polygon points='"
+ << Z0.getx() << "," << -Z0.gety() << " "
+ << Z1.getx() << "," << -Z1.gety() << " "
+ << Z2.getx() << "," << -Z2.gety() << "'"
+ << " id='triangle-" << gouraudcount << "' />" << nl;
+
+ for(unsigned vertex=0; vertex < 3; ++vertex)
+ *out << "<use xlink:href='#triangle-" << gouraudcount
+ << "' fill='url(#grad-" << gouraudcount << "-" << vertex
+ << ")' id='triangle-" << gouraudcount << "-" << vertex << "' />"
+ << nl;
+
+ *out << "<filter id='Gouraud-" << gouraudcount << "'>" << nl;
+
+ for(unsigned vertex=0; vertex < 3; ++vertex)
+ *out << "<feImage xlink:href='#triangle-" << gouraudcount << "-" << vertex
+ << "' result='layer" << vertex << "' x='0' y='0' />" << nl;
+
+ *out << "<feComposite in='layer0' in2='layer1' operator='arithmetic' k1='0' k2='1' k3='1' k4='0' result='temp'/>" << nl
+ << "<feComposite in='temp' in2='layer2' operator='arithmetic' k1='0' k2='1' k3='1' k4='0' result='temp2' />" << nl
+ << "<feComposite in='temp2' in2='SourceGraphic' operator='arithmetic' k1='0' k2='1' k3='1' k4='0'/>" << nl
+ << "</filter>" << nl
+ << "</defs>" << nl
+ << "<rect width='100\\percent' height='100\\percent' fill='none' ";
clippath();
- *out << "id='triangle" << gouraudcount << "' points='"
- << z0.getx()*ps2tex << "," << -z0.gety()*ps2tex << " "
- << z1.getx()*ps2tex << "," << -z1.gety()*ps2tex << " "
- << z2.getx()*ps2tex << "," << -z2.gety()*ps2tex << "'/>" << nl
- << "</defs>" << nl;
- *out << "<use xlink:href='#triangle" << gouraudcount
- << "' fill='url(#grad-" << gouraudcount << "-"
- << "0)'/>" << nl
- << "<use xlink:href='#triangle" << gouraudcount
- << "' fill='url(#grad-" << gouraudcount << "-"
- << "1)' filter='url(#colorAdd)'/>" << nl
- << "<use xlink:href='#triangle" << gouraudcount
- << "' fill='url(#grad-" << gouraudcount << "-"
- << "2)' filter='url(#colorAdd)'/>" << nl;
+ *out << " filter='url(#Gouraud-" << gouraudcount << ")'"
+ << "/>" << nl;
+
++gouraudcount;
}
@@ -667,67 +679,4 @@ void svgtexfile::gouraudshade(const pen& pentype,
endspecial();
}
-void svgtexfile::begintensorshade(const vm::array& pens,
- const vm::array& boundaries,
- const vm::array& z)
-{
- beginspecial();
- *out << "<defs>" << nl;
-
- path g=read<path>(boundaries,0);
- pair Z[]={g.point((Int) 0),g.point((Int) 3),g.point((Int) 2),
- g.point((Int) 1)};
-
- array *pi=read<array *>(pens,0);
- if(checkArray(pi) != 4)
- reportError("specify 4 pens for each path");
- string hex[]={rgbhex(read<pen>(pi,0)),rgbhex(read<pen>(pi,3)),
- rgbhex(read<pen>(pi,2)),rgbhex(read<pen>(pi,1))};
-
- *out << "<filter id='colorAdd'>" << nl
- << "<feBlend in='SourceGraphic' in2='BackgroundImage'/>" << nl
- << "</filter>";
-
- pair mean=0.25*(Z[0]+Z[1]+Z[2]+Z[3]);
- for(size_t k=0; k < 4; ++k) {
- pair opp=(k % 2 == 0) ? Z[(k+2) % 4] : mean;
- *out << "<linearGradient id='grad" << tensorcount << "-" << k
- << "' gradientUnits='userSpaceOnUse'" << nl
- << " x1='" << Z[k].getx()*ps2tex << "' y1='" << -Z[k].gety()*ps2tex
- << "' x2='" << opp.getx()*ps2tex << "' y2='" << -opp.gety()*ps2tex
- << "'>" << nl
- << "<stop offset='0' stop-color='#" << hex[k]
- << "' stop-opacity='1'/>" << nl
- << "<stop offset='1' stop-color='#" << hex[k]
- << "' stop-opacity='0'/>" << nl
- << "</linearGradient>" << nl;
- }
- beginpath();
-}
-
-void svgtexfile::tensorshade(const pen& pentype, const vm::array& pens,
- const vm::array& boundaries, const vm::array& z)
-{
- *out << "' id='path" << tensorcount << "'";
- fillrule(pentype);
- endpath();
- *out << "</defs></g>" << nl;
- begintransform();
- *out << "<use xlink:href='#path" << tensorcount
- << "' fill='url(#grad" << tensorcount << "-"
- << "0)'/>" << nl
- << "<use xlink:href='#path" << tensorcount
- << "' fill='url(#grad" << tensorcount << "-"
- << "2)' filter='url(#colorAdd)'/>" << nl
- << "<use xlink:href='#path" << tensorcount
- << "' fill='url(#grad" << tensorcount << "-"
- << "1)' filter='url(#colorAdd)'/>" << nl
- << "<use xlink:href='#path" << tensorcount
- << "' fill='url(#grad" << tensorcount << "-"
- << "3)' filter='url(#colorAdd)'/>" << nl;
-
- ++tensorcount;
- endspecial();
-}
-
} //namespace camp
diff --git a/graphics/asymptote/texfile.h b/graphics/asymptote/texfile.h
index cc9ffd8285..791e8dca64 100644
--- a/graphics/asymptote/texfile.h
+++ b/graphics/asymptote/texfile.h
@@ -246,7 +246,8 @@ public:
void miniprologue();
void writeshifted(path p, bool newPath=true);
- double hoffset() {return Hoffset;}
+ virtual double hoffset() {return Hoffset;}
+ virtual double voffset() {return box.bottom;}
// Draws label transformed by T at position z.
void put(const string& label, const transform& T, const pair& z,
@@ -264,6 +265,7 @@ class svgtexfile : public texfile {
size_t tensorcount;
bool inspecial;
static string nl;
+ pair offset;
public:
svgtexfile(const string& texname, const bbox& box, bool pipe=false) :
texfile(texname,box,pipe) {
@@ -272,6 +274,12 @@ public:
gouraudcount=0;
tensorcount=0;
inspecial=false;
+
+ *out << "\\catcode`\\%=12" << newl
+ << "\\def\\percent{%}" << newl
+ << "\\catcode`\\%=14" << newl;
+
+ offset=pair(box.left,box.top);
}
void writeclip(path p, bool newPath=true) {
@@ -281,9 +289,12 @@ public:
void dot(path p, pen, bool newPath=true);
void writeshifted(pair z) {
- write(conj(z)*settings::ps2tex);
+ write(conj(shift(-offset)*z)*settings::ps2tex);
}
+ double hoffset() {return Hoffset+offset.getx();}
+ double voffset() {return box.bottom+offset.gety();}
+
void translate(pair z) {}
void concat(transform t) {}
@@ -362,12 +373,6 @@ public:
void gouraudshade(const pen& pentype, const vm::array& pens,
const vm::array& vertices, const vm::array& edges);
- void begintensorshade(const vm::array& pens,
- const vm::array& boundaries,
- const vm::array& z);
- void tensorshade(const pen& pentype, const vm::array& pens,
- const vm::array& boundaries, const vm::array& z);
-
void beginclip();
void endclip0(const pen &p);
diff --git a/graphics/asymptote/util.cc b/graphics/asymptote/util.cc
index 2d66fb2316..e455ab940a 100644
--- a/graphics/asymptote/util.cc
+++ b/graphics/asymptote/util.cc
@@ -23,6 +23,7 @@
#include <unistd.h>
#include <cstring>
#include <algorithm>
+#include <dirent.h>
#include "util.h"
#include "settings.h"
@@ -31,6 +32,7 @@
#include "interact.h"
using namespace settings;
+using camp::reportError;
bool False=false;
@@ -380,6 +382,58 @@ const char *setPath(const char *s, bool quiet)
return p;
}
+void fatal(const char *msg, const char *s=NULL)
+{
+ ostringstream buf;
+ buf << msg;
+ if(s) {
+ buf << " " << getPath();
+ if(*s) buf << "/";
+ buf << s;
+ }
+ buf << ": " << strerror(errno) << endl;
+ camp::reportError(buf);
+}
+
+void empty_current_dir()
+{
+ static struct stat buf;
+ DIR *dir=opendir(".");
+ if(dir == NULL) fatal("Cannot open directory","");
+ dirent *p;
+ while((p=readdir(dir)) != NULL) {
+ if(strcmp(p->d_name,".") == 0 || strcmp(p->d_name,"..") == 0) continue;
+ if(lstat(p->d_name,&buf) == 0) {
+ if(S_ISDIR(buf.st_mode)) {
+ if(chdir(p->d_name)) fatal("Cannot change directory to",p->d_name);
+ empty_current_dir();
+ if(chdir(".."))
+ fatal("Cannot change to parent directory of",p->d_name);
+ if(rmdir(p->d_name))
+ fatal("Cannot remove directory",p->d_name);
+ } else {
+ if(unlink(p->d_name)) fatal("Cannot remove file",p->d_name);
+ }
+ }
+ }
+ if(closedir(dir)) fatal("Invalid current directory stream descriptor");
+}
+
+void recursive_delete(char *name)
+{
+ static struct stat buf;
+ if(lstat(name,&buf) == 0) {
+ if(S_ISDIR(buf.st_mode)) {
+ const char *path=getPath();
+ if(chdir(name)) fatal("Cannot change directory to",name);
+ empty_current_dir();
+ if(chdir(path)) fatal("Cannot change to directory","");
+ if(rmdir(name)) fatal("Cannot remove directory", name);
+ }
+ else unlink(name);
+ }
+}
+
void push_command(mem::vector<string>& a, const string& s)
{
a.push_back(s);
diff --git a/graphics/asymptote/util.h b/graphics/asymptote/util.h
index d07c543258..2816c771d7 100644
--- a/graphics/asymptote/util.h
+++ b/graphics/asymptote/util.h
@@ -125,6 +125,7 @@ const char *startPath();
const char* setPath(const char *s, bool quiet=false);
const char *changeDirectory(const char *s);
extern char *startpath;
+extern void recursive_delete(char *name);
void backslashToSlash(string& s);
void spaceToUnderscore(string& s);
diff --git a/graphics/asymptote/webgl/gl.js b/graphics/asymptote/webgl/gl.js
index e2053f3161..a7cf6a5862 100644
--- a/graphics/asymptote/webgl/gl.js
+++ b/graphics/asymptote/webgl/gl.js
@@ -79,11 +79,6 @@ let viewParam = {
zmin:0,zmax:0
};
-let positionBuffer;
-let materialBuffer;
-let colorBuffer;
-let indexBuffer;
-
let remesh=true;
let wireframe=0;
let mouseDownOrTouchActive=false;
@@ -158,15 +153,6 @@ function deleteShaders()
gl.deleteProgram(pixelShader);
}
-// Create buffers for the patch and its subdivisions.
-function setBuffers()
-{
- positionBuffer=gl.createBuffer();
- materialBuffer=gl.createBuffer();
- colorBuffer=gl.createBuffer();
- indexBuffer=gl.createBuffer();
-}
-
function noGL() {
if (!gl)
alert("Could not initialize WebGL");
@@ -241,7 +227,6 @@ function initGL()
initShaders();
}
- setBuffers();
indexExt=gl.getExtension("OES_element_index_uint");
TRIANGLES=gl.TRIANGLES;
@@ -280,6 +265,20 @@ function getShader(gl,shaderScript,type,options=[])
return shader;
}
+function registerBuffer(buffervector,bufferIndex,copy,type=gl.ARRAY_BUFFER)
+{
+ if(buffervector.length > 0) {
+ if(bufferIndex == 0) {
+ bufferIndex=gl.createBuffer();
+ copy=true;
+ }
+ gl.bindBuffer(type,bufferIndex);
+ if(copy)
+ gl.bufferData(type,buffervector,gl.STATIC_DRAW);
+ }
+ return bufferIndex;
+}
+
function drawBuffer(data,shader,indices=data.indices)
{
if(data.indices.length == 0) return;
@@ -288,9 +287,9 @@ function drawBuffer(data,shader,indices=data.indices)
setUniforms(data,shader);
- gl.bindBuffer(gl.ARRAY_BUFFER,positionBuffer);
- gl.bufferData(gl.ARRAY_BUFFER,new Float32Array(data.vertices),
- gl.STATIC_DRAW);
+ let copy=remesh || data.partial || !data.rendered;
+ data.verticesBuffer=registerBuffer(new Float32Array(data.vertices),
+ data.verticesBuffer,copy);
gl.vertexAttribPointer(positionAttribute,3,gl.FLOAT,false,
normal ? 24 : 16,0);
if(normal && Lights.length > 0)
@@ -298,22 +297,22 @@ function drawBuffer(data,shader,indices=data.indices)
else if(pixel)
gl.vertexAttribPointer(widthAttribute,1,gl.FLOAT,false,16,12);
- gl.bindBuffer(gl.ARRAY_BUFFER,materialBuffer);
- gl.bufferData(gl.ARRAY_BUFFER,new Int16Array(data.materialIndices),
- gl.STATIC_DRAW);
+ data.materialsBuffer=registerBuffer(new Int16Array(data.materialIndices),
+ data.materialsBuffer,copy);
gl.vertexAttribPointer(materialAttribute,1,gl.SHORT,false,2,0);
+
if(shader == colorShader || shader == transparentShader) {
- gl.bindBuffer(gl.ARRAY_BUFFER,colorBuffer);
- gl.bufferData(gl.ARRAY_BUFFER,new Uint8Array(data.colors),
- gl.STATIC_DRAW);
+ data.colorsBuffer=registerBuffer(new Uint8Array(data.colors),
+ data.colorsBuffer,copy);
gl.vertexAttribPointer(colorAttribute,4,gl.UNSIGNED_BYTE,true,0,0);
}
- gl.bindBuffer(gl.ELEMENT_ARRAY_BUFFER,indexBuffer);
- gl.bufferData(gl.ELEMENT_ARRAY_BUFFER,
- indexExt ? new Uint32Array(indices) :
- new Uint16Array(indices),gl.STATIC_DRAW);
+ data.indicesBuffer=registerBuffer(indexExt ? new Uint32Array(indices) :
+ new Uint16Array(indices),
+ data.indicesBuffer,copy,
+ gl.ELEMENT_ARRAY_BUFFER);
+ data.rendered=true;
gl.drawElements(normal ? (wireframe ? gl.LINES : data.type) : gl.POINTS,
indices.length,
@@ -325,15 +324,24 @@ let TRIANGLES;
class vertexBuffer {
constructor(type) {
this.type=type ? type : TRIANGLES;
+
+ this.verticesBuffer=0;
+ this.materialsBuffer=0;
+ this.colorsBuffer=0;
+ this.indicesBuffer=0;
+
+ this.rendered=false; // Are all patches in this buffer fully rendered?
+ this.partial=false; // Does buffer contain incomplete data?
+
this.clear();
}
+
clear() {
this.vertices=[];
this.materialIndices=[];
this.colors=[];
this.indices=[];
this.nvertices=0;
-
this.materials=[];
this.materialTable=[];
}
@@ -422,7 +430,7 @@ function append(a,b)
a[n+i]=b[i];
}
-// efficiently append array b onto array a
+// efficiently append array b onto array a with offset
function appendOffset(a,b,o)
{
let n=a.length;
@@ -488,8 +496,10 @@ class Geometry {
setMaterial(data,draw) {
if(data.materialTable[this.MaterialIndex] == null) {
- if(data.materials.length >= Nmaterials)
+ if(data.materials.length >= Nmaterials) {
+ data.partial=true;
draw();
+ }
data.materialTable[this.MaterialIndex]=data.materials.length;
data.materials.push(Materials[this.MaterialIndex]);
}
@@ -510,6 +520,7 @@ class Geometry {
if(this.offscreen(v)) { // Fully offscreen
this.data.clear();
+ this.notRendered();
return;
}
@@ -517,8 +528,7 @@ class Geometry {
let P;
if(this.CenterIndex == 0) {
- if(!remesh && this.Onscreen) {
- // Fully onscreen; no need to re-render
+ if(!remesh && this.Onscreen) { // Fully onscreen; no need to re-render
this.append();
return;
}
@@ -537,6 +547,7 @@ class Geometry {
this.Epsilon=FillFactor*res;
this.data.clear();
+ this.notRendered();
this.Onscreen=true;
this.process(P);
}
@@ -765,6 +776,15 @@ class BezierPatch extends Geometry {
materialData.append(this.data);
}
+ notRendered() {
+ if(this.transparent)
+ transparentData.rendered=false;
+ else if(this.color)
+ colorData.rendered=false;
+ else
+ materialData.rendered=false;
+ }
+
Render(p,I0,I1,I2,I3,P0,P1,P2,P3,flat0,flat1,flat2,flat3,C0,C1,C2,C3) {
let d=this.Distance(p);
if(d[0] < this.res2 && d[1] < this.res2) { // Bezier patch is flat
@@ -1683,6 +1703,10 @@ class BezierCurve extends Geometry {
material1Data.append(this.data);
}
+ notRendered() {
+ material1Data.rendered=false;
+ }
+
Render(p,I0,I1) {
let p0=p[0];
let p1=p[1];
@@ -1747,6 +1771,10 @@ class Pixel extends Geometry {
append() {
material0Data.append(this.data);
}
+
+ notRendered() {
+ material0Data.rendered=false;
+ }
}
class Triangles extends Geometry {
@@ -1833,6 +1861,14 @@ class Triangles extends Geometry {
else
triangleData.append(this.data);
}
+
+ notRendered() {
+ if(this.transparent)
+ transparentData.rendered=false;
+ else
+ triangleData.rendered=false;
+ }
+
}
function home()
@@ -2435,6 +2471,7 @@ function drawColor()
function drawTriangle()
{
drawBuffer(triangleData,transparentShader);
+ triangleData.rendered=false; // Force copying of sorted triangles to GPU.
triangleData.clear();
}
@@ -2479,6 +2516,8 @@ function drawTransparent()
gl.depthMask(false); // Enable transparency
drawBuffer(transparentData,transparentShader,Indices);
+ // Force copying of sorted triangles to GPU.
+ transparentData.rendered=false;
gl.depthMask(true); // Disable transparency
}
transparentData.clear();
@@ -2497,8 +2536,8 @@ function drawBuffers()
function draw()
{
if(embedded) {
- offscreen.width=canvas.width;
- offscreen.height=canvas.height;
+ offscreen.width=canvasWidth;
+ offscreen.height=canvasHeight;
setViewport();
}
@@ -2511,7 +2550,7 @@ function draw()
drawBuffers();
if(embedded) {
- context.clearRect(0,0,canvas.width,canvas.height);
+ context.clearRect(0,0,canvasWidth,canvasHeight);
context.drawImage(offscreen,0,0);
}
@@ -2585,21 +2624,20 @@ function setViewport()
{
gl.viewportWidth=canvasWidth;
gl.viewportHeight=canvasHeight;
- gl.viewport(0,0,gl.viewportWidth,gl.viewportHeight);
- gl.scissor(0,0,gl.viewportWidth,gl.viewportHeight);
+ gl.viewport(0.5*(canvas.width-canvasWidth),0.5*(canvas.height-canvasHeight),
+ canvasWidth,canvasHeight);
+ gl.scissor(0,0,canvas.width,canvas.height);
}
function setCanvas()
{
- canvas.width=canvasWidth;
- canvas.height=canvasHeight;
if(embedded) {
- offscreen.width=canvasWidth;
- offscreen.height=canvasHeight;
+ canvas.width=offscreen.width=canvasWidth;
+ canvas.height=offscreen.height=canvasHeight;
}
size2=Math.hypot(canvasWidth,canvasHeight);
- halfCanvasWidth=0.5*canvasWidth;
- halfCanvasHeight=0.5*canvasHeight;
+ halfCanvasWidth=0.5*canvas.width;
+ halfCanvasHeight=0.5*canvas.height;
}
function setsize(w,h)
@@ -2644,22 +2682,17 @@ function webGLInit()
canvasWidth *= window.devicePixelRatio;
canvasHeight *= window.devicePixelRatio;
} else {
- canvas.width=Math.max(window.innerWidth-windowTrim,windowTrim);
- canvas.height=Math.max(window.innerHeight-windowTrim,windowTrim);
-
let Aspect=canvasWidth/canvasHeight;
- if(canvas.width > canvas.height*Aspect)
- canvas.width=Math.min(canvas.height*Aspect,canvas.width);
- else
- canvas.height=Math.min(canvas.width/Aspect,canvas.height);
-
- if(canvas.width > 0)
- canvasWidth=canvas.width;
+ canvasWidth=Math.max(window.innerWidth-windowTrim,windowTrim);
+ canvasHeight=Math.max(window.innerHeight-windowTrim,windowTrim);
- if(canvas.height > 0)
- canvasHeight=canvas.height;
+ if(!orthographic && canvasWidth < canvasHeight*Aspect)
+ Zoom0 *= canvasWidth/(canvasHeight*Aspect);
}
+ canvas.width=canvasWidth;
+ canvas.height=canvasHeight;
+
setCanvas();
ArcballFactor=1+8*Math.hypot(viewportmargin[0],viewportmargin[1])/size2;
diff --git a/macros/latex/contrib/reledmac/README.md b/macros/latex/contrib/reledmac/README.md
index 0f7cc5c528..e23ad45e65 100644
--- a/macros/latex/contrib/reledmac/README.md
+++ b/macros/latex/contrib/reledmac/README.md
@@ -58,7 +58,7 @@ The distribution consists of the following files:
# Installation
-- run: `latex reledmac.ins` (which will generate `reledmac.sty`) and `latex reledpar.ins` (which will generate `reledmac.sty`)
+- run: `latex reledmac.ins` (which will generate `reledmac.sty`) and `latex reledpar.ins` (which will generate `reledpar.sty`)
- move `reledmac.sty` and `reledpar.sty` to a location where LaTeX will find it (for more information on this see the FAQ).
To generate a second copy of the manual (which is already supplied as a PDF file):
diff --git a/macros/latex/contrib/reledmac/doc-more/page-typesetting-columns.pdf b/macros/latex/contrib/reledmac/doc-more/page-typesetting-columns.pdf
index b10da75d71..0327b10bdf 100644
--- a/macros/latex/contrib/reledmac/doc-more/page-typesetting-columns.pdf
+++ b/macros/latex/contrib/reledmac/doc-more/page-typesetting-columns.pdf
Binary files differ
diff --git a/macros/latex/contrib/reledmac/examples/1-criticalendnotes.pdf b/macros/latex/contrib/reledmac/examples/1-criticalendnotes.pdf
index dccd97e9b1..ffa19b186b 100644
--- a/macros/latex/contrib/reledmac/examples/1-criticalendnotes.pdf
+++ b/macros/latex/contrib/reledmac/examples/1-criticalendnotes.pdf
Binary files differ
diff --git a/macros/latex/contrib/reledmac/examples/1-criticalnotes.pdf b/macros/latex/contrib/reledmac/examples/1-criticalnotes.pdf
index fb18651f4f..a632114824 100644
--- a/macros/latex/contrib/reledmac/examples/1-criticalnotes.pdf
+++ b/macros/latex/contrib/reledmac/examples/1-criticalnotes.pdf
Binary files differ
diff --git a/macros/latex/contrib/reledmac/examples/1-sidenotes.pdf b/macros/latex/contrib/reledmac/examples/1-sidenotes.pdf
index a6888ed131..9a46a910eb 100644
--- a/macros/latex/contrib/reledmac/examples/1-sidenotes.pdf
+++ b/macros/latex/contrib/reledmac/examples/1-sidenotes.pdf
Binary files differ
diff --git a/macros/latex/contrib/reledmac/examples/1-tabular.pdf b/macros/latex/contrib/reledmac/examples/1-tabular.pdf
index 65f433667a..f754fb92d5 100644
--- a/macros/latex/contrib/reledmac/examples/1-tabular.pdf
+++ b/macros/latex/contrib/reledmac/examples/1-tabular.pdf
Binary files differ
diff --git a/macros/latex/contrib/reledmac/examples/1-verses-doublenumbering.pdf b/macros/latex/contrib/reledmac/examples/1-verses-doublenumbering.pdf
index a93554b608..a8caba9384 100644
--- a/macros/latex/contrib/reledmac/examples/1-verses-doublenumbering.pdf
+++ b/macros/latex/contrib/reledmac/examples/1-verses-doublenumbering.pdf
Binary files differ
diff --git a/macros/latex/contrib/reledmac/examples/1-verses.pdf b/macros/latex/contrib/reledmac/examples/1-verses.pdf
index a1aa153d96..372064051d 100644
--- a/macros/latex/contrib/reledmac/examples/1-verses.pdf
+++ b/macros/latex/contrib/reledmac/examples/1-verses.pdf
Binary files differ
diff --git a/macros/latex/contrib/reledmac/examples/2-antilabe.pdf b/macros/latex/contrib/reledmac/examples/2-antilabe.pdf
index b7bd76aa9f..962601c4d2 100644
--- a/macros/latex/contrib/reledmac/examples/2-antilabe.pdf
+++ b/macros/latex/contrib/reledmac/examples/2-antilabe.pdf
Binary files differ
diff --git a/macros/latex/contrib/reledmac/examples/2-cross_referencing.pdf b/macros/latex/contrib/reledmac/examples/2-cross_referencing.pdf
index 854fce7062..7a6d630686 100644
--- a/macros/latex/contrib/reledmac/examples/2-cross_referencing.pdf
+++ b/macros/latex/contrib/reledmac/examples/2-cross_referencing.pdf
Binary files differ
diff --git a/macros/latex/contrib/reledmac/examples/2-footnote_spacing.pdf b/macros/latex/contrib/reledmac/examples/2-footnote_spacing.pdf
index c377bab626..5b3be98f48 100644
--- a/macros/latex/contrib/reledmac/examples/2-footnote_spacing.pdf
+++ b/macros/latex/contrib/reledmac/examples/2-footnote_spacing.pdf
Binary files differ
diff --git a/macros/latex/contrib/reledmac/examples/2-glossaries.pdf b/macros/latex/contrib/reledmac/examples/2-glossaries.pdf
index 623ad12cd6..9a7897a258 100644
--- a/macros/latex/contrib/reledmac/examples/2-glossaries.pdf
+++ b/macros/latex/contrib/reledmac/examples/2-glossaries.pdf
Binary files differ
diff --git a/macros/latex/contrib/reledmac/examples/2-indexing.pdf b/macros/latex/contrib/reledmac/examples/2-indexing.pdf
index 1d4a3cacaa..bd988943f8 100644
--- a/macros/latex/contrib/reledmac/examples/2-indexing.pdf
+++ b/macros/latex/contrib/reledmac/examples/2-indexing.pdf
Binary files differ
diff --git a/macros/latex/contrib/reledmac/examples/2-lemma_disambigution.pdf b/macros/latex/contrib/reledmac/examples/2-lemma_disambigution.pdf
index 9bd04a64d7..cc21ccb463 100644
--- a/macros/latex/contrib/reledmac/examples/2-lemma_disambigution.pdf
+++ b/macros/latex/contrib/reledmac/examples/2-lemma_disambigution.pdf
Binary files differ
diff --git a/macros/latex/contrib/reledmac/examples/2-line_numbers_in_header.pdf b/macros/latex/contrib/reledmac/examples/2-line_numbers_in_header.pdf
index 7aaf529add..6a47482810 100644
--- a/macros/latex/contrib/reledmac/examples/2-line_numbers_in_header.pdf
+++ b/macros/latex/contrib/reledmac/examples/2-line_numbers_in_header.pdf
Binary files differ
diff --git a/macros/latex/contrib/reledmac/examples/2-linespacing.pdf b/macros/latex/contrib/reledmac/examples/2-linespacing.pdf
index 761a03ff4a..5346163ee7 100644
--- a/macros/latex/contrib/reledmac/examples/2-linespacing.pdf
+++ b/macros/latex/contrib/reledmac/examples/2-linespacing.pdf
Binary files differ
diff --git a/macros/latex/contrib/reledmac/examples/2-manuscript-apparatus.pdf b/macros/latex/contrib/reledmac/examples/2-manuscript-apparatus.pdf
index 6a191eb00e..434c24a7d6 100644
--- a/macros/latex/contrib/reledmac/examples/2-manuscript-apparatus.pdf
+++ b/macros/latex/contrib/reledmac/examples/2-manuscript-apparatus.pdf
Binary files differ
diff --git a/macros/latex/contrib/reledmac/examples/2-notes-width.pdf b/macros/latex/contrib/reledmac/examples/2-notes-width.pdf
index 36151a373f..a5bc61e982 100644
--- a/macros/latex/contrib/reledmac/examples/2-notes-width.pdf
+++ b/macros/latex/contrib/reledmac/examples/2-notes-width.pdf
Binary files differ
diff --git a/macros/latex/contrib/reledmac/examples/2-one_series_per_pstart.pdf b/macros/latex/contrib/reledmac/examples/2-one_series_per_pstart.pdf
index 916c773fc7..81b1fdfae3 100644
--- a/macros/latex/contrib/reledmac/examples/2-one_series_per_pstart.pdf
+++ b/macros/latex/contrib/reledmac/examples/2-one_series_per_pstart.pdf
Binary files differ
diff --git a/macros/latex/contrib/reledmac/examples/2-performances.pdf b/macros/latex/contrib/reledmac/examples/2-performances.pdf
index 76bb2a2435..2431038e61 100644
--- a/macros/latex/contrib/reledmac/examples/2-performances.pdf
+++ b/macros/latex/contrib/reledmac/examples/2-performances.pdf
Binary files differ
diff --git a/macros/latex/contrib/reledmac/examples/2-reledmac-right-to-left.pdf b/macros/latex/contrib/reledmac/examples/2-reledmac-right-to-left.pdf
index 744ba3fd42..f4894533f5 100644
--- a/macros/latex/contrib/reledmac/examples/2-reledmac-right-to-left.pdf
+++ b/macros/latex/contrib/reledmac/examples/2-reledmac-right-to-left.pdf
Binary files differ
diff --git a/macros/latex/contrib/reledmac/examples/2-subdivision-number-in-header.pdf b/macros/latex/contrib/reledmac/examples/2-subdivision-number-in-header.pdf
index d50d0a92ea..1bd75aa4bc 100644
--- a/macros/latex/contrib/reledmac/examples/2-subdivision-number-in-header.pdf
+++ b/macros/latex/contrib/reledmac/examples/2-subdivision-number-in-header.pdf
Binary files differ
diff --git a/macros/latex/contrib/reledmac/examples/2-titles_in_line_numbering_with_notes.pdf b/macros/latex/contrib/reledmac/examples/2-titles_in_line_numbering_with_notes.pdf
index a7ba16cabf..d32e42cbb9 100644
--- a/macros/latex/contrib/reledmac/examples/2-titles_in_line_numbering_with_notes.pdf
+++ b/macros/latex/contrib/reledmac/examples/2-titles_in_line_numbering_with_notes.pdf
Binary files differ
diff --git a/macros/latex/contrib/reledmac/examples/2-titles_not_in_line_numbering.pdf b/macros/latex/contrib/reledmac/examples/2-titles_not_in_line_numbering.pdf
index 081a30ffce..12a988d76c 100644
--- a/macros/latex/contrib/reledmac/examples/2-titles_not_in_line_numbering.pdf
+++ b/macros/latex/contrib/reledmac/examples/2-titles_not_in_line_numbering.pdf
Binary files differ
diff --git a/macros/latex/contrib/reledmac/examples/3-reledpar_columns_different_languages.pdf b/macros/latex/contrib/reledmac/examples/3-reledpar_columns_different_languages.pdf
index 401717d26e..5c3865e263 100644
--- a/macros/latex/contrib/reledmac/examples/3-reledpar_columns_different_languages.pdf
+++ b/macros/latex/contrib/reledmac/examples/3-reledpar_columns_different_languages.pdf
Binary files differ
diff --git a/macros/latex/contrib/reledmac/examples/3-reledpar_mwe.pdf b/macros/latex/contrib/reledmac/examples/3-reledpar_mwe.pdf
index 06c982fb04..77202d9937 100644
--- a/macros/latex/contrib/reledmac/examples/3-reledpar_mwe.pdf
+++ b/macros/latex/contrib/reledmac/examples/3-reledpar_mwe.pdf
Binary files differ
diff --git a/macros/latex/contrib/reledmac/examples/3-reledpar_pages_different_languages_lualatex.pdf b/macros/latex/contrib/reledmac/examples/3-reledpar_pages_different_languages_lualatex.pdf
index fd03df4386..af531d011a 100644
--- a/macros/latex/contrib/reledmac/examples/3-reledpar_pages_different_languages_lualatex.pdf
+++ b/macros/latex/contrib/reledmac/examples/3-reledpar_pages_different_languages_lualatex.pdf
Binary files differ
diff --git a/macros/latex/contrib/reledmac/examples/3-reledpar_same_page_number_in_both_side.pdf b/macros/latex/contrib/reledmac/examples/3-reledpar_same_page_number_in_both_side.pdf
index 0258b56ddb..630f293ca6 100644
--- a/macros/latex/contrib/reledmac/examples/3-reledpar_same_page_number_in_both_side.pdf
+++ b/macros/latex/contrib/reledmac/examples/3-reledpar_same_page_number_in_both_side.pdf
Binary files differ
diff --git a/macros/latex/contrib/reledmac/examples/3-reledpar_sync_setting_advancedshifted-nomax.pdf b/macros/latex/contrib/reledmac/examples/3-reledpar_sync_setting_advancedshifted-nomax.pdf
index bc2ed01370..5c4f31cc77 100644
--- a/macros/latex/contrib/reledmac/examples/3-reledpar_sync_setting_advancedshifted-nomax.pdf
+++ b/macros/latex/contrib/reledmac/examples/3-reledpar_sync_setting_advancedshifted-nomax.pdf
Binary files differ
diff --git a/macros/latex/contrib/reledmac/examples/3-reledpar_sync_setting_advancedshifted.pdf b/macros/latex/contrib/reledmac/examples/3-reledpar_sync_setting_advancedshifted.pdf
index 72a5f352fb..5dd12288de 100644
--- a/macros/latex/contrib/reledmac/examples/3-reledpar_sync_setting_advancedshifted.pdf
+++ b/macros/latex/contrib/reledmac/examples/3-reledpar_sync_setting_advancedshifted.pdf
Binary files differ
diff --git a/macros/latex/contrib/reledmac/examples/3-reledpar_sync_setting_default.pdf b/macros/latex/contrib/reledmac/examples/3-reledpar_sync_setting_default.pdf
index cf2de2b4b3..ea0c19cee9 100644
--- a/macros/latex/contrib/reledmac/examples/3-reledpar_sync_setting_default.pdf
+++ b/macros/latex/contrib/reledmac/examples/3-reledpar_sync_setting_default.pdf
Binary files differ
diff --git a/macros/latex/contrib/reledmac/examples/3-reledpar_sync_setting_nomax-shifted.pdf b/macros/latex/contrib/reledmac/examples/3-reledpar_sync_setting_nomax-shifted.pdf
index 6a19592d4e..69c0be0328 100644
--- a/macros/latex/contrib/reledmac/examples/3-reledpar_sync_setting_nomax-shifted.pdf
+++ b/macros/latex/contrib/reledmac/examples/3-reledpar_sync_setting_nomax-shifted.pdf
Binary files differ
diff --git a/macros/latex/contrib/reledmac/examples/3-reledpar_sync_setting_nomax.pdf b/macros/latex/contrib/reledmac/examples/3-reledpar_sync_setting_nomax.pdf
index 1f3ec24494..2b06c26c29 100644
--- a/macros/latex/contrib/reledmac/examples/3-reledpar_sync_setting_nomax.pdf
+++ b/macros/latex/contrib/reledmac/examples/3-reledpar_sync_setting_nomax.pdf
Binary files differ
diff --git a/macros/latex/contrib/reledmac/examples/3-reledpar_sync_setting_nosync.pdf b/macros/latex/contrib/reledmac/examples/3-reledpar_sync_setting_nosync.pdf
index 3ec42aa6ab..0f3f3d83f7 100644
--- a/macros/latex/contrib/reledmac/examples/3-reledpar_sync_setting_nosync.pdf
+++ b/macros/latex/contrib/reledmac/examples/3-reledpar_sync_setting_nosync.pdf
Binary files differ
diff --git a/macros/latex/contrib/reledmac/examples/3-reledpar_sync_setting_shifted.pdf b/macros/latex/contrib/reledmac/examples/3-reledpar_sync_setting_shifted.pdf
index f0caef7ce7..6338e3533f 100644
--- a/macros/latex/contrib/reledmac/examples/3-reledpar_sync_setting_shifted.pdf
+++ b/macros/latex/contrib/reledmac/examples/3-reledpar_sync_setting_shifted.pdf
Binary files differ
diff --git a/macros/latex/contrib/reledmac/examples/4-reledpar_column_mix_with_not_column-continuous-numbering.pdf b/macros/latex/contrib/reledmac/examples/4-reledpar_column_mix_with_not_column-continuous-numbering.pdf
index 212f9151d9..4b5c178133 100644
--- a/macros/latex/contrib/reledmac/examples/4-reledpar_column_mix_with_not_column-continuous-numbering.pdf
+++ b/macros/latex/contrib/reledmac/examples/4-reledpar_column_mix_with_not_column-continuous-numbering.pdf
Binary files differ
diff --git a/macros/latex/contrib/reledmac/examples/4-reledpar_column_mix_with_not_column.pdf b/macros/latex/contrib/reledmac/examples/4-reledpar_column_mix_with_not_column.pdf
index ab84f8e685..0bddffc700 100644
--- a/macros/latex/contrib/reledmac/examples/4-reledpar_column_mix_with_not_column.pdf
+++ b/macros/latex/contrib/reledmac/examples/4-reledpar_column_mix_with_not_column.pdf
Binary files differ
diff --git a/macros/latex/contrib/reledmac/examples/4-reledpar_columns_alignment.pdf b/macros/latex/contrib/reledmac/examples/4-reledpar_columns_alignment.pdf
index 98dcd6ea33..e3629fc2f1 100644
--- a/macros/latex/contrib/reledmac/examples/4-reledpar_columns_alignment.pdf
+++ b/macros/latex/contrib/reledmac/examples/4-reledpar_columns_alignment.pdf
Binary files differ
diff --git a/macros/latex/contrib/reledmac/examples/4-reledpar_columns_titles_in_line_numbering_with_notes.pdf b/macros/latex/contrib/reledmac/examples/4-reledpar_columns_titles_in_line_numbering_with_notes.pdf
index 769841f922..4057be0095 100644
--- a/macros/latex/contrib/reledmac/examples/4-reledpar_columns_titles_in_line_numbering_with_notes.pdf
+++ b/macros/latex/contrib/reledmac/examples/4-reledpar_columns_titles_in_line_numbering_with_notes.pdf
Binary files differ
diff --git a/macros/latex/contrib/reledmac/examples/4-reledpar_inside-outside-columns.pdf b/macros/latex/contrib/reledmac/examples/4-reledpar_inside-outside-columns.pdf
index 462bdbaf31..eff50e7f80 100644
--- a/macros/latex/contrib/reledmac/examples/4-reledpar_inside-outside-columns.pdf
+++ b/macros/latex/contrib/reledmac/examples/4-reledpar_inside-outside-columns.pdf
Binary files differ
diff --git a/macros/latex/contrib/reledmac/examples/4-reledpar_one_series_per_pstart.pdf b/macros/latex/contrib/reledmac/examples/4-reledpar_one_series_per_pstart.pdf
index 9462e80ff9..fb1d23ba7a 100644
--- a/macros/latex/contrib/reledmac/examples/4-reledpar_one_series_per_pstart.pdf
+++ b/macros/latex/contrib/reledmac/examples/4-reledpar_one_series_per_pstart.pdf
Binary files differ
diff --git a/macros/latex/contrib/reledmac/examples/4-reledpar_pages_long_notes.pdf b/macros/latex/contrib/reledmac/examples/4-reledpar_pages_long_notes.pdf
index c12b0ba298..ed24286b37 100644
--- a/macros/latex/contrib/reledmac/examples/4-reledpar_pages_long_notes.pdf
+++ b/macros/latex/contrib/reledmac/examples/4-reledpar_pages_long_notes.pdf
Binary files differ
diff --git a/macros/latex/contrib/reledmac/examples/4-reledpar_pages_notes_leftpage.pdf b/macros/latex/contrib/reledmac/examples/4-reledpar_pages_notes_leftpage.pdf
index 985eac0641..303499d2e0 100644
--- a/macros/latex/contrib/reledmac/examples/4-reledpar_pages_notes_leftpage.pdf
+++ b/macros/latex/contrib/reledmac/examples/4-reledpar_pages_notes_leftpage.pdf
Binary files differ
diff --git a/macros/latex/contrib/reledmac/examples/4-reledpar_pages_paragraph_separator_between.pdf b/macros/latex/contrib/reledmac/examples/4-reledpar_pages_paragraph_separator_between.pdf
index d3e31ef72b..3a3e97fa6a 100644
--- a/macros/latex/contrib/reledmac/examples/4-reledpar_pages_paragraph_separator_between.pdf
+++ b/macros/latex/contrib/reledmac/examples/4-reledpar_pages_paragraph_separator_between.pdf
Binary files differ
diff --git a/macros/latex/contrib/reledmac/examples/4-reledpar_pages_titles_in_line_numbering_with_notes.pdf b/macros/latex/contrib/reledmac/examples/4-reledpar_pages_titles_in_line_numbering_with_notes.pdf
index 00d215c393..c18113d2af 100644
--- a/macros/latex/contrib/reledmac/examples/4-reledpar_pages_titles_in_line_numbering_with_notes.pdf
+++ b/macros/latex/contrib/reledmac/examples/4-reledpar_pages_titles_in_line_numbering_with_notes.pdf
Binary files differ
diff --git a/macros/latex/contrib/reledmac/examples/4-reledpar_titles_not_in_line_numbering.pdf b/macros/latex/contrib/reledmac/examples/4-reledpar_titles_not_in_line_numbering.pdf
index c412099075..e86ba5639d 100644
--- a/macros/latex/contrib/reledmac/examples/4-reledpar_titles_not_in_line_numbering.pdf
+++ b/macros/latex/contrib/reledmac/examples/4-reledpar_titles_not_in_line_numbering.pdf
Binary files differ
diff --git a/macros/latex/contrib/reledmac/examples/4-reledpar_verse_text_between.pdf b/macros/latex/contrib/reledmac/examples/4-reledpar_verse_text_between.pdf
index 222dc9efd6..e3ff587d44 100644
--- a/macros/latex/contrib/reledmac/examples/4-reledpar_verse_text_between.pdf
+++ b/macros/latex/contrib/reledmac/examples/4-reledpar_verse_text_between.pdf
Binary files differ
diff --git a/macros/latex/contrib/reledmac/makefile b/macros/latex/contrib/reledmac/makefile
index 5d220304f1..3cdab48b54 100644
--- a/macros/latex/contrib/reledmac/makefile
+++ b/macros/latex/contrib/reledmac/makefile
@@ -17,7 +17,7 @@ all: test reledmac.sty reledpar.sty reledmac.pdf reledpar.pdf migration.pdf di
doc: *.pdf
test: *dtx
- l3build check
+ l3build check -H --show-log-on-error
migration.pdf: migration.dtx
pdflatex $<
diff --git a/macros/latex/contrib/reledmac/migration.pdf b/macros/latex/contrib/reledmac/migration.pdf
index e711378aeb..38c4a5b1dc 100644
--- a/macros/latex/contrib/reledmac/migration.pdf
+++ b/macros/latex/contrib/reledmac/migration.pdf
Binary files differ
diff --git a/macros/latex/contrib/reledmac/reledmac.dtx b/macros/latex/contrib/reledmac/reledmac.dtx
index c5bb0685d8..a568f76f44 100644
--- a/macros/latex/contrib/reledmac/reledmac.dtx
+++ b/macros/latex/contrib/reledmac/reledmac.dtx
@@ -558,6 +558,8 @@
% \changes{v2.33.1}{2020/06/06}{Fix a spacing bug when the argument of \protect\cs{antilabe} contains more than one word.}
% \changes{v2.34.0}{2020/06/24}{Add \protect\cs{Xpstartonlyfirst} and \protect\cs{Xstanzaonlyfirst}.}
% \changes{v2.34.0}{2020/06/24}{Add \protect\cs{Xpstartseparator}.}
+% \changes{v2.34.1}{2020/06/30}{Fix bug with page number when using stanazindentsrepetition, bug introduced in v2.33.0}
+% \changes{v2.34.2}{2020/07/06}{Fix bug with tabular environment, in some specific use case, added in v2.32.7}
% Typeset scholarly editions with \LaTeX\thanks{This file (\dtxfilename)
% has version number \fileversion, last revised \filedate.}}
%
@@ -2736,7 +2738,7 @@
% They allow one to add any arbitrary code just before the footnotes are added in the list of footnotes.
% The main use is to insert text direction code.
% For example, if you edit right-to-left text with \package{bidi}, but want your critical footnote be left-to-right, use \cs{Xbeforeinserting}{\cs{LTR}}.
-% You should also use \cs{Xwraplemma} to ensure your lemmas are right-to-left in a left-to-right paragraph (\reff{Xwraplemma})).
+% You should also use \cs{Xwraplemma} to ensure your lemmas are right-to-left in a left-to-right paragraph (\reff{Xwraplemma}).
%
% Note that the changes are local to the footnote.
%
@@ -4398,7 +4400,7 @@
% \begin{macrocode}
%<*code>
\NeedsTeXFormat{LaTeX2e}
-\ProvidesPackage{reledmac}[2020/06/24 v2.34.0 typesetting critical editions]%
+\ProvidesPackage{reledmac}[2020/07/06 v2.34.2 typesetting critical editions]%
% \end{macrocode}
%
% \subsection{Package options}
@@ -15455,7 +15457,7 @@
% \begin{macro}{\newhooktoggle@series@reload}
% \changes{v1.13.0}{2014/09/16}{Add \protect\cs{newhookcommand@toggle@reload}}
% \protect\cs{newhookcommand@toggle@reload} does the same thing as \protect\cs{newhooktoggle@series}
-% but the commands created by this macro also reload the series arrangement, depending of type os notes
+% but the commands created by this macro also reload the series arrangement, depending of type of notes
% \begin{macrocode}
\newcommand{\newhooktoggle@series@reload}[2]{%
\global\expandafter\newcommandx\expandafter*\csname #1\endcsname[2][1,2={true},usedefault]{%
@@ -18810,12 +18812,13 @@
}%
}{%
\ifcsdef{sza@\number\stanza@modulo @}{%
- \count0=\numexpr%
+ \parindent=\csname sza@%
+ \the\numexpr%
\stanza@modulo%
- 1%
+ \value{startstanzaindentsrepetition}%
\relax%
- \parindent=\csname sza@\number\count0 @\endcsname\stanzaindentbase%
+ @\endcsname\stanzaindentbase%
\managestanza@modulo%
}%
{%
@@ -19530,7 +19533,9 @@
%
% \begin{macrocode}
\newcommand{\l@dcollect@body}[1]{%
- \\%Ensure that we don't have spurious indentation at the very first line, caused by some text before.
+ \ifvmode\else%
+ \\%Ensure that we don't have spurious indentation at the very first line, caused by some text before.
+ \fi%
\l@denvbody{\expandafter#1\expandafter{\the\l@denvbody}}%
\edef\processl@denvbody{\the\l@denvbody\noexpand\end{\@currenvir}}%
\l@denvbody\@emptytoks \def\l@dbegin@stack{b}%
diff --git a/macros/latex/contrib/reledmac/reledmac.pdf b/macros/latex/contrib/reledmac/reledmac.pdf
index d257666811..c8bdfbb9da 100644
--- a/macros/latex/contrib/reledmac/reledmac.pdf
+++ b/macros/latex/contrib/reledmac/reledmac.pdf
Binary files differ
diff --git a/macros/latex/contrib/reledmac/reledpar.pdf b/macros/latex/contrib/reledmac/reledpar.pdf
index 63b5af32b6..44c2757a2d 100644
--- a/macros/latex/contrib/reledmac/reledpar.pdf
+++ b/macros/latex/contrib/reledmac/reledpar.pdf
Binary files differ
diff --git a/macros/latex/contrib/semantex/README.md b/macros/latex/contrib/semantex/README.md
index 9b7c6e4617..fc47222981 100644
--- a/macros/latex/contrib/semantex/README.md
+++ b/macros/latex/contrib/semantex/README.md
@@ -1,10 +1,12 @@
SemanTeX - object-oriented mathematics
--------------------------------------
-The SemanTeX package for LaTeX delivers a more semantic, systematized way of writing mathematics compared to the ordinary math syntax. The system is
-object-oriented and uses keyval syntax, and everything is highly
-customizable. At the same time, care has been taken to make it the syntax as
-intuitive, natural, practical, and lightweight as possible.
+The SemanTeX package for LaTeX delivers a more semantic,
+systematized way of writing mathematics compared to the
+ordinary math syntax in LaTeX. The system uses keyval syntax
+and is highly customizable. At the same time, care has been
+taken to make it the syntax as simple, natural, practical,
+and lightweight as possible.
----------------------------------------------------------------
SemanTeX --- object-oriented mathematics
diff --git a/macros/latex/contrib/semantex/semantex.pdf b/macros/latex/contrib/semantex/semantex.pdf
index 4f4e3b00c9..8c9f32df7e 100644
--- a/macros/latex/contrib/semantex/semantex.pdf
+++ b/macros/latex/contrib/semantex/semantex.pdf
Binary files differ
diff --git a/macros/latex/contrib/semantex/semantex.sty b/macros/latex/contrib/semantex/semantex.sty
index 3ed17fb64a..1fb42b0bbd 100644
--- a/macros/latex/contrib/semantex/semantex.sty
+++ b/macros/latex/contrib/semantex/semantex.sty
@@ -1,5 +1,5 @@
\RequirePackage{expl3,xparse}
-\ProvidesExplPackage{semantex}{2020/07/06}{0.2alpha}{}
+\ProvidesExplPackage{semantex}{2020/07/07}{0.201alpha}{}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
diff --git a/macros/latex/contrib/semantex/semantex.tex b/macros/latex/contrib/semantex/semantex.tex
index c273d1dcec..2a3bee0153 100644
--- a/macros/latex/contrib/semantex/semantex.tex
+++ b/macros/latex/contrib/semantex/semantex.tex
@@ -34,7 +34,7 @@
\usepackage[nameinlink]{cleveref}
-\title{Seman\!\TeX: Semantic mathematics (v$0.2\alpha$)}
+\title{Seman\!\TeX: Semantic mathematics (v$0.201\alpha$)}
\date{\today}
\author{Sebastian Ørsted (\href{mailto:sorsted@gmail.com}{sorsted@gmail.com})}
@@ -288,8 +288,11 @@ $ \vh[inverseimage]{\sheafF}[spar,stalk=\vp]
% Now we create a couple of variables of the class \MyVar:
\NewObject\MyVar\vf{f}
-\NewObject\MyVarr\vg{g}
+\NewObject\MyVar\vg{g}
\NewObject\MyVar\vh{h}
+\NewObject\MyVar\vn{n}
+\NewObject\MyVar\vp{p}
+\NewObject\MyVar\vU{U}
\NewObject\MyVar\sheafF{\mathcal{F}}
% Now we set up the class \MyVar:
@@ -310,92 +313,20 @@ $ \vh[inverseimage]{\sheafF}[spar,stalk=\vp]
{res}{ return ,symbolputright ={|}, lower ={#1} },
},
}
+
+\begin{document}
+
+$ \vf[conj,der=\vn] $
+
+$ \vg[inv,res=\vU]{x} $
+
+$ \vh[inverseimage]{\sheafF}[spar,stalk=\vp]
+ = \sheafF[stalk=\vh{\vp}] $
+
+\end{document}
\end{lstlisting}
\endgroup
-%\begingroup
-% \SetupClass\MyVar{
-% singlekeys={
-% {inverseimage}{upper={-1},nopar},
-% },
-% valuekeys={
-% {stalk}{lower=#1},
-% {res}{ return,symbolputright={|}, lower={#1} },
-% },
-% argvaluekeys={
-% {coef}{othersep={;}{#1}},
-% },
-% }
-%
-% Traditional math notation in \TeX\ is not particularly semantic -- you usually type the raw \emph{notation} rather than the underlying
-% \emph{meaning} of your math.
-% Take, for instance, the following equations from algebraic geometry:
-% \begin{align*}
-% \vf[inverseimage]{\sheafF}[spar,stalk=\vp]
-% &=
-% \sheafF[stalk=\vf{\vp}] ,
-% \\
-% \sheafreg[\vU]
-% &=
-% \sheafreg[\vX,res=\vU] ,
-% \\
-% \sheafHom{ \sheafF , \sheafG }{\vU}
-% &=
-% \Hom[\sheafreg[\vU]]{ \sheafF[res=\vU] , \sheafG[res=\vU] } ,
-% \\
-% \co{0}{\vU,coef=\sheafreg[\vX]}
-% &= \sheafreg[\vX]{\vU}
-% .
-% \end{align*}
-% Here, \( \sheafF \) and~\( \sheafG \)
-% are sheaves on some scheme~\( \vX \),
-% \( \sheafreg[\vX] \)~is the structure sheaf,
-% and~\( \vU \subset \vX \) an open subset.
-% In traditional \TeX, you would probably define a collection of commands \lstinline!\sheafF!, \lstinline!\sheafG!, \lstinline!\sheafreg!, and~\lstinline!\sheafHom! for~\( \sheafF \),~\( \sheafG \), \( \sheafreg \), and~\( \sheafHom \) and then proceed
-% something like
-% \begin{lstlisting}
-%(f^{-1}\sheafF)_{p}=\sheafF_{f(p)},
-%\sheafreg_{U} = \sheafreg_{X}|_{U},
-%\sheafHom( \sheafF , \sheafG)(U)
-% = \Hom_{\sheafreg_{X} ( \sheafF|_{U} , \sheafG|_{V} ),
-% H^{0}(U;\sheafF) = \sheafF(U).
-% \end{lstlisting}
-% For more than~90~\% of all mathematicians, this solution will be completely satisfactory; it prints what it is supposed to, and that's that.
-% If this is how you feel, there is absolutely no reason for you to continue reading. This package is for the remaining less than~10~\% who would prefer to write
-% something like the following instead:
-% \begin{lstlisting}
-%\vf[inverseimage]{ \sheafF }[spar,stalk=\vp]
-% = \sheafF[ stalk=\vf{\vp} ] ,
-%\sheafreg[\vU] = \sheafreg[ \vX, res=\vU ],
-%\sheafHom{ \sheafF , \sheafG }{\vU}
-% = \Hom[\sheafreg[\vU]]{ \sheafF[res=\vU], \sheafG[res=\vU] },
-%\co{0}{ \vU, coef=\sheafreg[\vX] } = \sheafreg[\vX]{\vU}.
-% \end{lstlisting}
-%
-% A lot of comments are in order.
-% The whole syntax will be explained in later chapters, but let us take a moment to look at these examples and understand the logic.
-% First of all, what is up with all the~\lstinline!v!'s in the command names \lstinline!\vf!, \lstinline!\vX!, \lstinline!\vU!? The~\lstinline!v!~stands for \textquote{variable}, and it is the prefix I recommend using for all standard variables. So for all letters in the alphabet, uppercase and lowercase, as well as the Greek ones, there will be a command: \lstinline!\va!, \lstinline!\vA!, \lstinline!\vb!, \lstinline!\vB!,~etc.
-% It is not always necessary to use them; for instance, in the above example, both \lstinline!\vX! and \lstinline!\vU! could have been replaced by simply~\lstinline!X!,~\lstinline!U! without changing anything. This is because we did not apply any arguments to these symbols. However, for the sake of consistency, I prefer to switch completely to using commands instead of writing the symbols directly.
-% How \emph{you} use the system is completely up to you.
-%
-% In \semantex, all entries are being built up from the inside and out.
-% The basic syntax layout for most \semantex commands is
-% \begin{lstlisting}
-%\⟨object⟩[⟨options⟩]{⟨argument⟩}
-% \end{lstlisting}
-% Let us try focusing on the first example from above:
-% \begin{LTXexample}
-%$\vf[inverseimage]{\sheafF}[spar,stalk=\vp]$
-% \end{LTXexample}
-% You always start with a central piece: a \emph{⟨symbol⟩}.
-% In the case of~\lstinline!\vf!, the symbol is~\( f \). After the symbol follows the options we apply to it, written in brackets~\lstinline![...]!. In this case, we the option~\lstinline!inverseimage!. This tells \semantex that we want the inverse image functor~\( \vf[inverseimage] \), so it adds a superscript~\lstinline!-1! to the symbol. After this, we apply the function~\lstinline!\vf[inverseimage]! to something, namely the sheaf~{$\sheafF$}. This is done by enclosing them in braces~\lstinline!{...}!.\footnote{You should be aware that this argument in braces~\texttt{\{...\}} is \emph{optional}. You can simply write~\texttt{$\backslash$vf[inverseimage]} if you want, and it will produce~\smash{\( \vf[inverseimage] \)}.}
-%
-%
-% Next, we want to take the stalk of this sheaf at the point~\( \vp \). If we simply wrote~\lstinline!\vf[inverseimage]{\sheafF}[stalk=\vp]!, we would get~\smash{\( \vf[inverseimage]{\sheafF}[stalk=\vp] \)}, which looks confusing. So we want to enclose~\smash{\( \vf[inverseimage]{\sheafF} \)} in parentheses before taking the stalk. This is done with the key~\lstinline!spar! (an abbreviation for \textquote{symbol parentheses}).
-% This key takes whatever has been typed so far, symbol and indices, and adds parentheses around it (of course, type and size is adjustable).
-% This~\lstinline!spar! is a key you fill find yourself using a lot.
-%\endgroup
-
\chapter{Getting started}
To get started using \semantex, load down the package
@@ -2220,7 +2151,7 @@ As you see, we use the \lstinline!d!~key to tell the command what superscript it
\chapter{Bugs}
-Lots of things can be improved in the system, including the order in which things are being expanded internally. I am not going to explain this is detail for now, but hope to correct this in the future. For now, the system seems to work fine as long as you do \enquote{normal} things and insert~\lstinline!\noexpand!'s whenever something goes wrong. The only real bug that I currently know of occurs if you use the key~\lstinline!Othersep! in a heading. Then it all dies painfully.
+Lots of things can be improved in the system, including the order in which things are being expanded internally. I am not going to explain this is detail for now, but hope to correct this in the future. For now, the system seems to work fine as long as you do \enquote{normal} things and insert~\lstinline!\noexpand!'s whenever something goes wrong. The only real bug that I currently know of occurs if you use the key~\lstinline!Otherspar! in a heading. Then it all dies painfully.
Then again, why the heck would you do that in the first place? Who scales parentheses in headings?
%\input{testground}
diff --git a/macros/latex/required/babel/base/README.md b/macros/latex/required/babel/base/README.md
index 9d4077cf82..6ac28f4107 100644
--- a/macros/latex/required/babel/base/README.md
+++ b/macros/latex/required/babel/base/README.md
@@ -1,4 +1,4 @@
-## Babel 3.45
+## Babel 3.46
This package manages culturally-determined typographical (and other)
rules, and hyphenation patterns for a wide range of languages. Many
@@ -7,9 +7,9 @@ lualatex out of the box. A few even work with plain formats.
The latest stable version is available on <https://ctan.org/pkg/babel>.
-Changes in version 3.45 are described in:
+Changes in version 3.46 are described in:
-https://github.com/latex3/babel/wiki/What's-new-in-babel-3.45
+https://github.com/latex3/babel/wiki/What's-new-in-babel-3.46
Included is a set of ini files for about 200 languages.
@@ -44,6 +44,19 @@ respective authors.
### Latest changes
```
+3.46 2020-07-06
+ - \BabelEnsureInfo now loads the basic data for the requested
+ languages immediately (formerly it was done at the end of the
+ preamble).
+ - Fixes:
+ - Getting rid of the hyphen in XeTeX was not working as
+ expected. A new procedure has been devised.
+ - tag.bcp47 now contains what its name promises, instead of
+ just the language subtag (#70).
+ - Locale info was not loaded if the name had uppercase letters
+ in some OSs (#80).
+ - The [..|..] syntax in ini dates didn't recognize 'digits'.
+
3.45 2020-06-10
- Minor fixes in Hindi, Ancient Greek, Macedonian.
- Improvements in Kurdish, Marathi.
@@ -58,6 +71,7 @@ respective authors.
\babelprehyphenation (it was ignoring too much).
- An error related to \bbl@foreign@x could be raised in some
rare cases.
+See https://github.com/latex3/babel/wiki/What's-new-in-babel-3.45
3.44 2020-05-13
- WARNING. If you need the Portuguese style you must update
diff --git a/macros/latex/required/babel/base/babel.dtx b/macros/latex/required/babel/base/babel.dtx
index 8ffa9a1360..736f7e25bf 100644
--- a/macros/latex/required/babel/base/babel.dtx
+++ b/macros/latex/required/babel/base/babel.dtx
@@ -31,7 +31,7 @@
%
% \iffalse
%<*filedriver>
-\ProvidesFile{babel.dtx}[2020/06/10 v3.45 The Babel package]
+\ProvidesFile{babel.dtx}[2020/07/07 v3.46 The Babel package]
\documentclass{ltxdoc}
\GetFileInfo{babel.dtx}
\usepackage{fontspec}
@@ -1312,7 +1312,7 @@ _\babelprovide[import, main]{georgian}_
longer be valid when you read this manual, if the packages involved
han been updated). The Harfbuzz renderer has still some issues, so as
a rule of thumb prefer the default renderer, and resort to Harfbuzz
- only if the former does work for you. Fortunately, fonts can be
+ only if the former does not work for you. Fortunately, fonts can be
loaded twice with different renderers; for example:
\begin{verbatim}
\babelfont[spanish]{rm}{FreeSerif}
@@ -2041,7 +2041,7 @@ also the package \textsf{combofont} for a complementary approach.}
\Describe\babelfont{\oarg{language-list}\marg{font-family}%
\oarg{font-options}\marg{font-name}}
-
+
\begin{note}
See the note in the previous section about some issues in
specific languages.
@@ -2452,6 +2452,13 @@ values of this locale; with |fonts|, the fonts are changed to those of
this locale (as set with |\babelfont|). This option is not compatible
with |mapfont|. Characters can be added with |\babelcharproperty|.
+\begin{note}
+ An alternative approach with \luatex{} and Harfbuzz is the font
+ option |RawFeature={multiscript=auto}|. It does not switch the
+ \babel{} language and therefore the line breaking rules, but in many
+ cases it could be enough.
+\end{note}
+
\Describe{mapfont=}{\texttt{direction}}
Assigns the font for the writing direction of this language (only with
|bidi=basic|). Whenever possible, instead of this option use |onchar|,
@@ -2637,9 +2644,9 @@ be printed with the numeral style |digits|.
date corresponding to the Gregorian calendar and other lunisolar systems
with the following command.
-\Describe{\localedate}{\o{calendar=.., variant=..}%
- {\m{year}\m{month}\m{day}}}
-
+\Describe{\localedate}{\oarg{calendar=.., variant=..}%
+ {\marg{year}\m{month}\m{day}}}
+
By default the calendar is the Gregorian, but a |ini| files may define
strings for other calendars (currently |ar|, |ar-|*, |he|, |fa|, |hi|.)
In the latter case, the three arguments are the year, the month, and
@@ -2677,8 +2684,8 @@ respectively.
\Describe{\localeinfo}{\marg{field}}
\New{3.38} If an |ini| file has been loaded for the current language,
-you may access the information stored in it. This macros is fully
-expandable and the available fields are:
+you may access the information stored in it. This macro is fully
+expandable, and the available fields are:
\begin{description}
\itemsep=-\parskip
\item[|name.english|] as provided by the Unicode CLDR.
@@ -2686,16 +2693,23 @@ expandable and the available fields are:
%%% activated because the bug in \languagename is far from trivial.
\item[|tag.ini|] is the tag of the |ini| file (the way this
file is identified in its name).
-\item[|tag.bcp47|] is the BCP 47 language tag.
+\item[|tag.bcp47|] is the full BCP 47 tag (see the warning below).
+\item[|language.tag.bcp47|] is the BCP 47 language tag.
\item[|tag.opentype|] is the tag used by OpenType (usually, but not
always, the same as BCP 47).
-\item[|script.name|] as provided by the Unicode CLDR.
-\item[|script.tag.bcp47|] is the BCP 47 language tag of the script
+\item[|script.name|], as provided by the Unicode CLDR.
+\item[|script.tag.bcp47|] is the BCP 47 tag of the script
used by this locale.
\item[|script.tag.opentype|] is the tag used by OpenType (usually,
but not always, the same as BCP 47).
\end{description}
+\begin{warning}
+ \New{3.46} As of version 3.46 |tag.bcp47| returns the full BCP 47
+ tag. Formerly it returned just the language subtag, which was clearly
+ counterintuitive.
+\end{warning}
+
\Describe{\getlocaleproperty}{\marg{macro}\marg{locale}\marg{property}}
\New{3.42} The value of any locale property as set by the |ini| files
@@ -2976,6 +2990,18 @@ The behaviour is adjusted with |\babeladjust| with the following parameters:
\texttt{bcp47-}. You may change it with this key.
\end{description}
+\New{3.46} If an |ldf| file has been loaded, you can enable the
+corresponding language tags as selector names with:
+\begin{verbatim}
+\babeladjust{ bcp47.toname = on }
+\end{verbatim}
+(You can deactivate it with |off|.) So, if |dutch| is one of the
+package (or class) options, you can write |\selectlanguage{nl}|. Note
+the language name does not change (in this example is still |dutch|),
+but you can get it with |\localeinfo| or |\getlanguageproperty|. It
+must be turned on explicitly for similar reasons to those explained
+above.
+
\subsection{Selecting scripts}
Currently \babel{} provides no standard interface to select
@@ -4656,8 +4682,8 @@ help from Bernd Raichle, for which I am grateful.
% \section{Tools}
%
% \begin{macrocode}
-%<<version=3.45>>
-%<<date=2020/06/10>>
+%<<version=3.46>>
+%<<date=2020/07/07>>
% \end{macrocode}
%
% \textbf{Do not use the following macros in \texttt{ldf} files. They
@@ -10265,7 +10291,8 @@ help from Bernd Raichle, for which I am grateful.
\let\bbl@KVP@onchar\@nil
\let\bbl@KVP@alph\@nil
\let\bbl@KVP@Alph\@nil
- \let\bbl@KVP@info\@nil % Ignored with import? Or error/warning?
+ \let\bbl@KVP@labels\@nil
+ \bbl@csarg\let{KVP@labels*}\@nil
\bbl@forkv{#1}{% TODO - error handling
\in@{/}{##1}%
\ifin@
@@ -10279,7 +10306,7 @@ help from Bernd Raichle, for which I am grateful.
{\ifx\bbl@initoload\relax
\begingroup
\def\BabelBeforeIni##1##2{\gdef\bbl@KVP@import{##1}\endinput}%
- \InputIfFileExists{babel-#2.tex}{}{}%
+ \bbl@input@ini{#2}%
\endgroup
\else
\xdef\bbl@KVP@import{\bbl@initoload}%
@@ -10312,36 +10339,8 @@ help from Bernd Raichle, for which I am grateful.
\\\bbl@toglobal\<bbl@ensure@\languagename\space>}%
% At this point all parameters are defined if 'import'. Now we
% execute some code depending on them. But what about if nothing was
- % imported? We just load the very basic parameters: ids and a few
- % more.
- \bbl@ifunset{bbl@lname@#2}% TODO. Duplicated
- {\def\BabelBeforeIni##1##2{%
- \begingroup
- \catcode`\[=12 \catcode`\]=12 \catcode`\==12
- \catcode`\;=12 \catcode`\|=12 %
- \let\bbl@ini@captions@aux\@gobbletwo
- \def\bbl@inidate ####1.####2.####3.####4\relax ####5####6{}%
- \bbl@read@ini{##1}{basic data}%
- \bbl@exportkey{chrng}{characters.ranges}{}%
- \bbl@exportkey{dgnat}{numbers.digits.native}{}%
- \bbl@exportkey{prehc}{typography.prehyphenchar}{}%
- \bbl@exportkey{lnbrk}{typography.linebreaking}{h}%
- \bbl@exportkey{lfthm}{typography.lefthyphenmin}{2}%
- \bbl@exportkey{rgthm}{typography.righthyphenmin}{3}%
- \bbl@exportkey{hyphr}{typography.hyphenrules}{}%
- \bbl@exportkey{hyotl}{typography.hyphenate.other.locale}{}%
- \bbl@exportkey{hyots}{typography.hyphenate.other.script}{}%
- \bbl@exportkey{intsp}{typography.intraspace}{}%
- \ifx\bbl@initoload\relax\endinput\fi
- \endgroup}%
- \begingroup % boxed, to avoid extra spaces:
- \ifx\bbl@initoload\relax
- \setbox\z@\hbox{\InputIfFileExists{babel-#2.tex}{}{}}%
- \else
- \setbox\z@\hbox{\BabelBeforeIni{\bbl@initoload}{}}%
- \fi
- \endgroup}%
- {}%
+ % imported? We just load the very basic parameters.
+ \bbl@load@basic{#2}%
% == script, language ==
% Override the values from ini or defines them
\ifx\bbl@KVP@script\@nil\else
@@ -10549,7 +10548,7 @@ help from Bernd Raichle, for which I am grateful.
\let\BabelBeforeIni\@gobbletwo
\chardef\atcatcode=\catcode`\@
\catcode`\@=11\relax
- \InputIfFileExists{babel-\bbl@cs{rqtex@\languagename}.tex}{}{}%
+ \bbl@input@ini{\bbl@cs{rqtex@\languagename}}%
\catcode`\@=\atcatcode
\let\atcatcode\relax
\fi}%
@@ -10620,9 +10619,9 @@ help from Bernd Raichle, for which I am grateful.
\expandafter\bbl@tempb\bbl@captionslist\@empty
\else
\ifx\bbl@initoload\relax
- \bbl@read@ini{\bbl@KVP@captions}{data}% Here letters cat = 11
+ \bbl@read@ini{\bbl@KVP@captions}0% Here letters cat = 11
\else
- \bbl@read@ini{\bbl@initoload}{data}% Here all letters cat = 11
+ \bbl@read@ini{\bbl@initoload}0% Here all letters cat = 11
\fi
\bbl@after@ini
\bbl@savestrings
@@ -10636,33 +10635,7 @@ help from Bernd Raichle, for which I am grateful.
\bbl@savedate
\fi
\bbl@endcommands
- \bbl@ifunset{bbl@lname@#1}% TODO. Duplicated
- {\def\BabelBeforeIni##1##2{%
- \begingroup
- \catcode`\[=12 \catcode`\]=12 \catcode`\==12
- \catcode`\;=12 \catcode`\|=12 %
- \let\bbl@ini@captions@aux\@gobbletwo
- \def\bbl@inidate ####1.####2.####3.####4\relax ####5####6{}%
- \bbl@read@ini{##1}{basic data}%
- \bbl@exportkey{prehc}{typography.prehyphenchar}{}%
- \bbl@exportkey{lnbrk}{typography.linebreaking}{h}%
- \bbl@exportkey{lfthm}{typography.lefthyphenmin}{2}%
- \bbl@exportkey{rgthm}{typography.righthyphenmin}{3}%
- \bbl@exportkey{hyotl}{typography.hyphenate.other.locale}{}%
- \bbl@exportkey{hyots}{typography.hyphenate.other.script}{}%
- \bbl@exportkey{intsp}{typography.intraspace}{}%
- \bbl@exportkey{chrng}{characters.ranges}{}%
- \bbl@exportkey{dgnat}{numbers.digits.native}{}%
- \ifx\bbl@initoload\relax\endinput\fi
- \endgroup}%
- \begingroup % boxed, to avoid extra spaces:
- \ifx\bbl@initoload\relax
- \setbox\z@\hbox{\InputIfFileExists{babel-#1.tex}{}{}}%
- \else
- \setbox\z@\hbox{\BabelBeforeIni{\bbl@initoload}{}}%
- \fi
- \endgroup}%
- {}%
+ \bbl@load@basic{#1}%
\bbl@exp{%
\gdef\<#1hyphenmins>{%
{\bbl@ifunset{bbl@lfthm@#1}{2}{\bbl@cs{lfthm@#1}}}%
@@ -10674,7 +10647,7 @@ help from Bernd Raichle, for which I am grateful.
\def\bbl@provide@renew#1{%
\ifx\bbl@KVP@captions\@nil\else
\StartBabelCommands*{#1}{captions}%
- \bbl@read@ini{\bbl@KVP@captions}{data}% Here all letters cat = 11
+ \bbl@read@ini{\bbl@KVP@captions}0% Here all letters cat = 11
\bbl@after@ini
\bbl@savestrings
\EndBabelCommands
@@ -10687,6 +10660,44 @@ help from Bernd Raichle, for which I am grateful.
\fi
% == hyphenrules ==
\bbl@provide@hyphens{#1}}
+% Load the basic parameters (ids, typography, counters, and a few
+% more), while captions and dates are left out. But it may happen some
+% data has been loaded before automatically, so we first discard the
+% saved values.
+\def\bbl@load@basic#1{%
+ \bbl@ifunset{bbl@inidata@\languagename}{}%
+ {\getlocaleproperty\bbl@tempa{\languagename}{identification/load.level}%
+ \ifcase\bbl@tempa\else
+ \bbl@csarg\let{lname@\languagename}\relax
+ \fi}%
+ \bbl@ifunset{bbl@lname@#1}%
+ {\def\BabelBeforeIni##1##2{%
+ \begingroup
+ \catcode`\[=12 \catcode`\]=12 \catcode`\==12
+ \catcode`\;=12 \catcode`\|=12 %
+ \let\bbl@ini@captions@aux\@gobbletwo
+ \def\bbl@inidate ####1.####2.####3.####4\relax ####5####6{}%
+ \bbl@read@ini{##1}0%
+ \bbl@exportkey{prehc}{typography.prehyphenchar}{}%
+ \bbl@exportkey{lnbrk}{typography.linebreaking}{h}%
+ \bbl@exportkey{lfthm}{typography.lefthyphenmin}{2}%
+ \bbl@exportkey{rgthm}{typography.righthyphenmin}{3}%
+ \bbl@exportkey{hyphr}{typography.hyphenrules}{}%
+ \bbl@exportkey{hyotl}{typography.hyphenate.other.locale}{}%
+ \bbl@exportkey{hyots}{typography.hyphenate.other.script}{}%
+ \bbl@exportkey{intsp}{typography.intraspace}{}%
+ \bbl@exportkey{chrng}{characters.ranges}{}%
+ \bbl@exportkey{dgnat}{numbers.digits.native}{}%
+ \ifx\bbl@initoload\relax\endinput\fi
+ \endgroup}%
+ \begingroup % boxed, to avoid extra spaces:
+ \ifx\bbl@initoload\relax
+ \bbl@input@ini{#1}%
+ \else
+ \setbox\z@\hbox{\BabelBeforeIni{\bbl@initoload}{}}%
+ \fi
+ \endgroup}%
+ {}}
% \end{macrocode}
%
% The |hyphenrules| option is handled with an auxiliary macro.
@@ -10737,6 +10748,8 @@ help from Bernd Raichle, for which I am grateful.
\ifx\bbl@readstream\@undefined
\csname newread\endcsname\bbl@readstream
\fi
+\def\bbl@input@ini#1{%
+ \bbl@exp{\lowercase{\\\InputIfFileExists{babel-#1.tex}{}{}}}}
\def\bbl@inipreread#1=#2\@@{%
\bbl@trim@def\bbl@tempa{#1}% Redundant below !!
\bbl@trim\toks@{#2}%
@@ -10757,14 +10770,18 @@ help from Bernd Raichle, for which I am grateful.
is not complete.}%
{Fix the name or reinstall babel.}%
\else
- \bbl@exp{\def\\\bbl@inidata{\\\bbl@elt{identificacion}{tag.ini}{#1}}}%
+ \bbl@exp{\def\\\bbl@inidata{%
+ \\\bbl@elt{identification}{tag.ini}{#1}%
+ \\\bbl@elt{identification}{load.level}{#2}}}%
\let\bbl@section\@empty
\let\bbl@savestrings\@empty
\let\bbl@savetoday\@empty
\let\bbl@savedate\@empty
\let\bbl@inireader\bbl@iniskip
- \bbl@info{Importing #2 for \languagename\\%
- from babel-#1.ini. Reported}%
+ \bbl@info{Importing
+ \ifcase#2 \or font and identification \or basic \fi
+ data for \languagename\\%
+ from babel-#1.ini. Reported}%
\loop
\if T\ifeof\bbl@readstream F\fi T\relax % Trick, because inside \loop
\endlinechar\m@ne
@@ -10898,13 +10915,16 @@ help from Bernd Raichle, for which I am grateful.
\bbl@exportkey{elname}{identification.name.english}{}%
\bbl@exp{\\\bbl@exportkey{lname}{identification.name.opentype}%
{\csname bbl@elname@\languagename\endcsname}}%
- \bbl@exportkey{lbcp}{identification.tag.bcp47}{}%
+ \bbl@exportkey{lbcp}{identification.tag.bcp47}{}% TODO
\bbl@exportkey{lotf}{identification.tag.opentype}{dflt}%
\bbl@exportkey{esname}{identification.script.name}{}%
\bbl@exp{\\\bbl@exportkey{sname}{identification.script.name.opentype}%
{\csname bbl@esname@\languagename\endcsname}}%
\bbl@exportkey{sbcp}{identification.script.tag.bcp47}{}%
- \bbl@exportkey{sotf}{identification.script.tag.opentype}{DFLT}}
+ \bbl@exportkey{sotf}{identification.script.tag.opentype}{DFLT}%
+ \ifbbl@bcptoname
+ \bbl@csarg\xdef{bcp@map@\bbl@cl{lbcp}}{\languagename}%
+ \fi}
\let\bbl@inikv@typography\bbl@inikv
\let\bbl@inikv@characters\bbl@inikv
\let\bbl@inikv@numbers\bbl@inikv
@@ -11056,7 +11076,7 @@ help from Bernd Raichle, for which I am grateful.
% \begin{macrocode}
\let\bbl@calendar\@empty
\newcommand\BabelDateSpace{\nobreakspace}
-\newcommand\BabelDateDot{.\@}
+\newcommand\BabelDateDot{.\@} % TODO. \let instead of repeating
\newcommand\BabelDated[1]{{\number#1}}
\newcommand\BabelDatedd[1]{{\ifnum#1<10 0\fi\number#1}}
\newcommand\BabelDateM[1]{{\number#1}}
@@ -11095,7 +11115,8 @@ help from Bernd Raichle, for which I am grateful.
% Note after \bbl@replace \toks@ contains the resulting string.
% TODO - Using this implicit behavior doesn't seem a good idea.
\bbl@replace@finish@iii\bbl@toreplace}
-\def\bbl@datecntr[#1|#2]{\localenumeral{#2}{#1}}
+\def\bbl@datecntr{\expandafter\bbl@xdatecntr\expandafter}
+\def\bbl@xdatecntr[#1|#2]{\localenumeral{#2}{#1}}
% \end{macrocode}
%
% Language and Script values to be used when defining a font or
@@ -11116,9 +11137,40 @@ help from Bernd Raichle, for which I am grateful.
\bbl@ifunset{bbl@prehc@#1}{}%
{\bbl@exp{\\\bbl@ifblank{\bbl@cs{prehc@#1}}}%
{}%
- {\bbl@csarg\bbl@add@list{lsys@#1}{HyphenChar="200B}}}%
+ {\ifx\bbl@xenohyph\@undefined
+ \let\bbl@xenohyph\bbl@xenohyph@d
+ \ifx\AtBeginDocument\@notprerr
+ \expandafter\@secondoftwo % to execute right now
+ \fi
+ \AtBeginDocument{%
+ \expandafter\bbl@add
+ \csname selectfont \endcsname{\bbl@xenohyph}%
+ \expandafter\selectlanguage\expandafter{\languagename}%
+ \expandafter\bbl@toglobal\csname selectfont \endcsname}%
+ \fi}}%
\fi
\bbl@csarg\bbl@toglobal{lsys@#1}}
+\def\bbl@ifset#1#2#3{% TODO. Move to the correct place.
+ \bbl@ifunset{#1}{#3}{\bbl@exp{\\\bbl@ifblank{#1}}{#3}{#2}}}
+\def\bbl@xenohyph@d{%
+ \bbl@ifset{bbl@prehc@\languagename}%
+ {\ifnum\hyphenchar\font=\defaulthyphenchar
+ \iffontchar\font\bbl@cl{prehc}\relax
+ \hyphenchar\font\bbl@cl{prehc}\relax
+ \else\iffontchar\font"200B
+ \hyphenchar\font"200B
+ \else
+ \bbl@error
+ {Neither 0 nor ZERO WIDTH SPACE are available\\%
+ in the current font, and therefore the hyphen\\%
+ will be printed. Try with 'HyphenChar', but be\\%
+ aware this setting is not safe (see the manual).}%
+ {See the manual.}%
+ \hyphenchar\font\defaulthyphenchar
+ \fi\fi
+ \fi}%
+ {\hyphenchar\font\defaulthyphenchar}}
+ % \fi}
% \end{macrocode}
%
% The following |ini| reader ignores everything but the
@@ -11136,10 +11188,10 @@ help from Bernd Raichle, for which I am grateful.
\bbl@add\bbl@secpost@identification{\closein\bbl@readstream }%
\catcode`\[=12 \catcode`\]=12 \catcode`\==12
\catcode`\;=12 \catcode`\|=12 %
- \bbl@read@ini{##1}{font and identification data}%
+ \bbl@read@ini{##1}1%
\endinput % babel- .tex may contain onlypreamble's
\endgroup}% boxed, to avoid extra spaces:
- {\setbox\z@\hbox{\InputIfFileExists{babel-#1.tex}{}{}}}}
+ {\bbl@input@ini{#1}}}
% \end{macrocode}
%
% Alphabetic counters must be converted from a space separated list to
@@ -11212,18 +11264,21 @@ help from Bernd Raichle, for which I am grateful.
\@namedef{bbl@info@tag.ini}{lini}
\@namedef{bbl@info@name.english}{elname}
\@namedef{bbl@info@name.opentype}{lname}
-\@namedef{bbl@info@tag.bcp47}{lbcp}
-\@namedef{bbl@info@tag.opentype}{lotf}
+\@namedef{bbl@info@tag.bcp47}{lbcp} % TODO
+\@namedef{bbl@info@tag.opentype}{lotf}
\@namedef{bbl@info@script.name}{esname}
\@namedef{bbl@info@script.name.opentype}{sname}
\@namedef{bbl@info@script.tag.bcp47}{sbcp}
\@namedef{bbl@info@script.tag.opentype}{sotf}
\let\bbl@ensureinfo\@gobble
\newcommand\BabelEnsureInfo{%
- \def\bbl@ensureinfo##1{%
- \ifx\InputIfFileExists\@undefined\else % not in plain
- \bbl@ifunset{bbl@lname@##1}{\bbl@ini@basic{##1}}{}%
- \fi}}
+ \ifx\InputIfFileExists\@undefined\else
+ \def\bbl@ensureinfo##1{%
+ \bbl@ifunset{bbl@lname@##1}{\bbl@ini@basic{##1}}{}}%
+ \fi
+ \bbl@foreach\bbl@loaded{{%
+ \def\languagename{##1}%
+ \bbl@ensureinfo{##1}}}}
% \end{macrocode}
%
% More general, but non-expandable, is |\getlocaleproperty|. To inspect
@@ -11247,6 +11302,7 @@ help from Bernd Raichle, for which I am grateful.
\string#1 will be set to \relax}%
{Perhaps you misspelled it.}%
\fi}
+\let\bbl@ini@loaded\@empty
\newcommand\LocaleForEach{\bbl@foreach\bbl@ini@loaded}
% \end{macrocode}
%
@@ -11327,6 +11383,13 @@ help from Bernd Raichle, for which I am grateful.
\let\bbl@autoload@bcpoptions\@empty
\@namedef{bbl@ADJ@autoload.bcp47.options}#1{%
\def\bbl@autoload@bcpoptions{#1}}
+\newif\ifbbl@bcptoname
+\@namedef{bbl@ADJ@bcp47.toname@on}{%
+ \bbl@bcptonametrue
+ \BabelEnsureInfo
+ }
+\@namedef{bbl@ADJ@bcp47.toname@off}{%
+ \bbl@bcptonamefalse}
% TODO: use babel name, override
%
% As the final task, load the code for lua.
@@ -21278,27 +21341,9 @@ Babel.cjk_breaks = {
}%
}
%
-\def\UseTextSymbol#1#2{%
-% \let\@curr@enc\cf@encoding
-% \@use@text@encoding{#1}%
- #2%
-% \@use@text@encoding\@curr@enc
-}
-\def\UseTextAccent#1#2#3{%
-% \let\@curr@enc\cf@encoding
-% \@use@text@encoding{#1}%
-% #2{\@use@text@encoding\@curr@enc\selectfont#3}%
-% \@use@text@encoding\@curr@enc
-}
-\def\@use@text@encoding#1{%
-% \edef\f@encoding{#1}%
-% \xdef\font@name{%
-% \csname\curr@fontshape/\f@size\endcsname
-% }%
-% \pickup@font
-% \font@name
-% \@@enc@update
-}
+\def\UseTextSymbol#1#2{#2}
+\def\UseTextAccent#1#2#3{}
+\def\@use@text@encoding#1{}
\def\DeclareTextSymbolDefault#1#2{%
\DeclareTextCommandDefault#1{\UseTextSymbol{#2}#1}%
}
diff --git a/macros/latex/required/babel/base/babel.ins b/macros/latex/required/babel/base/babel.ins
index a188dd14b3..5c8abdc75d 100644
--- a/macros/latex/required/babel/base/babel.ins
+++ b/macros/latex/required/babel/base/babel.ins
@@ -26,7 +26,7 @@
%% and covered by LPPL is defined by the unpacking scripts (with
%% extension .ins) which are part of the distribution.
%%
-\def\filedate{2020/06/10}
+\def\filedate{2020/07/07}
\def\batchfile{babel.ins}
\input docstrip.tex
diff --git a/macros/latex/required/babel/base/babel.pdf b/macros/latex/required/babel/base/babel.pdf
index 6f4f2ecabf..0a1444e583 100644
--- a/macros/latex/required/babel/base/babel.pdf
+++ b/macros/latex/required/babel/base/babel.pdf
Binary files differ
diff --git a/macros/latex/required/babel/base/bbcompat.dtx b/macros/latex/required/babel/base/bbcompat.dtx
index dbfa43a2a1..84777f9f2a 100644
--- a/macros/latex/required/babel/base/bbcompat.dtx
+++ b/macros/latex/required/babel/base/bbcompat.dtx
@@ -30,7 +30,7 @@
%
% \iffalse
%<*dtx>
-\ProvidesFile{bbcompat.dtx}[2020/06/10 v3.45]
+\ProvidesFile{bbcompat.dtx}[2020/07/07 v3.46]
%</dtx>
%
%% File 'bbcompat.dtx'
diff --git a/systems/texlive/tlnet/tlpkg/TeXLive/TLUtils.pm b/systems/texlive/tlnet/tlpkg/TeXLive/TLUtils.pm
index cddf93f635..b66774755b 100644
--- a/systems/texlive/tlnet/tlpkg/TeXLive/TLUtils.pm
+++ b/systems/texlive/tlnet/tlpkg/TeXLive/TLUtils.pm
@@ -1,4 +1,4 @@
-# $Id: TLUtils.pm 55178 2020-05-17 16:46:24Z karl $
+# $Id: TLUtils.pm 55776 2020-07-07 22:32:40Z karl $
# TeXLive::TLUtils.pm - the inevitable utilities for TeX Live.
# Copyright 2007-2020 Norbert Preining, Reinhard Kotucha
# This file is licensed under the GNU General Public License version 2
@@ -6,7 +6,7 @@
package TeXLive::TLUtils;
-my $svnrev = '$Revision: 55178 $';
+my $svnrev = '$Revision: 55776 $';
my $_modulerevision = ($svnrev =~ m/: ([0-9]+) /) ? $1 : "unknown";
sub module_revision { return $_modulerevision; }
@@ -341,10 +341,9 @@ sub platform_name {
if ($OS eq "darwin") {
# We have two versions of Mac binary sets.
- # 10.10/Yosemite and newer (Yosemite specially left over):
- # -> x86_64-darwin [MacTeX]
- # 10.6/Snow Leopard through 10.10/Yosemite:
- # -> x86_64-darwinlegacy if 64-bit
+ # 10.x and newer -> x86_64-darwin [MacTeX]
+ # 10.6/Snow Leopard through 10.x -> x86_64-darwinlegacy, if 64-bit
+ # x changes every year. In 2020 (Big Sur) Apple started with 11.x.
#
# (BTW, uname -r numbers are larger by 4 than the Mac minor version.
# We don't use uname numbers here.)
@@ -356,13 +355,16 @@ sub platform_name {
# returns "10.x" values), and sysctl (processor hardware).
chomp (my $sw_vers = `sw_vers -productVersion`);
my ($os_major,$os_minor) = split (/\./, $sw_vers);
- if ($os_major != 10) {
+ if ($os_major < 10) {
warn "$0: only MacOSX is supported, not $OS $os_major.$os_minor "
. " (from sw_vers -productVersion: $sw_vers)\n";
return "unknownmac-unknownmac";
}
- if ($os_minor >= $mactex_darwin) {
- ; # current version, default is ok (x86_64-darwin).
+ if ($os_major >= 11) {
+ $CPU = "x86_64";
+ $OS = "darwin";
+ } elsif ($os_minor >= $mactex_darwin) {
+ ; # sufficiently new 10.x, default is ok (x86_64-darwin).
} elsif ($os_minor >= 6 && $os_minor < $mactex_darwin) {
# in between, x86 hardware only. On 10.6 only, must check if 64-bit,
# since if later than that, always 64-bit.
diff --git a/systems/texlive/tlnet/tlpkg/installer/ctan-mirrors.pl b/systems/texlive/tlnet/tlpkg/installer/ctan-mirrors.pl
index f1c653a8cd..907ab6ec40 100644
--- a/systems/texlive/tlnet/tlpkg/installer/ctan-mirrors.pl
+++ b/systems/texlive/tlnet/tlpkg/installer/ctan-mirrors.pl
@@ -63,9 +63,17 @@ $mirrors = {
'Europe' => {
'Austria' => {
'https://mirror.easyname.at/ctan/' => 1,
+ 'https://mirror.kumi.systems/ctan/' => 1,
+ },
+ 'Belarus' => {
+ 'https://mirror.datacenter.by/pub/mirrors/CTAN/' => 1,
},
'Czech Republic' => {
'http://ftp.cvut.cz/tex-archive/' => 1,
+ 'https://mirrors.nic.cz/tex-archive/' => 1,
+ },
+ 'Denmark' => {
+ 'https://mirrors.dotsrc.org/ctan/' => 1,
},
'Finland' => {
'https://ftp.funet.fi/pub/TeX/CTAN/' => 1,
@@ -74,7 +82,12 @@ $mirrors = {
'France' => {
'http://ctan.mines-albi.fr/' => 1,
'http://mirrors.standaloneinstaller.com/ctan/' => 1,
+ 'https://ctan.crest.fr/tex-archive/' => 1,
+ 'https://ctan.tetaneutral.net/' => 1,
+ 'https://distrib-coffee.ipsl.jussieu.fr/pub/mirrors/ctan/' => 1,
+ 'https://mirror.ibcp.fr/pub/CTAN/' => 1,
'https://mirrors.chevalier.io/CTAN/' => 1,
+ 'https://mirrors.ircam.fr/pub/CTAN/' => 1,
},
'Germany' => {
'ftp://ftp.fu-berlin.de/tex/CTAN/' => 1,
@@ -85,7 +98,11 @@ $mirrors = {
'https://ctan.mc1.root.project-creative.net/' => 1,
'https://ctan.mirror.norbert-ruehl.de/' => 1,
'https://ctan.net/' => 1,
+ 'https://ctan.space-pro.be/tex-archive/' => 1,
'https://ftp.agdsn.de/pub/mirrors/latex/dante/' => 1,
+ 'https://ftp.fau.de/ctan/' => 1,
+ 'https://ftp.gwdg.de/pub/ctan/' => 1,
+ 'https://ftp.rrze.uni-erlangen.de/ctan/' => 1,
'https://ftp.rrzn.uni-hannover.de/pub/mirror/tex-archive/' => 1,
'https://ftp.tu-chemnitz.de/pub/tex/' => 1,
'https://mirror.informatik.hs-fulda.de/tex-archive/' => 1,
@@ -93,18 +110,29 @@ $mirrors = {
},
'Greece' => {
'http://ftp.ntua.gr/mirror/ctan/' => 1,
+ 'https://ftp.cc.uoc.gr/mirrors/CTAN/' => 1,
},
'Hungary' => {
'https://mirror.szerverem.hu/ctan/' => 1,
},
+ 'Italy' => {
+ 'https://ctan.mirror.garr.it/mirrors/CTAN/' => 1,
+ },
'Netherlands' => {
'http://ctan.cs.uu.nl/' => 1,
+ 'https://ftp.snt.utwente.nl/pub/software/tex/' => 1,
+ 'https://mirror.koddos.net/CTAN/' => 1,
+ },
+ 'Norway' => {
+ 'https://ctan.uib.no/' => 1,
},
'Poland' => {
'ftp://ftp.gust.org.pl/TeX/' => 1,
+ 'https://sunsite.icm.edu.pl/pub/CTAN/' => 1,
},
'Portugal' => {
'https://ftp.eq.uc.pt/software/TeX/' => 1,
+ 'https://mirrors.up.pt/pub/CTAN/' => 1,
},
'Romania' => {
'https://mirrors.nxthost.com/ctan/' => 1,
@@ -122,6 +150,13 @@ $mirrors = {
},
'Spain' => {
'https://ctan.javinator9889.com/' => 1,
+ 'https://osl.ugr.es/CTAN/' => 1,
+ },
+ 'Sweden' => {
+ 'https://ftp.acc.umu.se/mirror/CTAN/' => 1,
+ },
+ 'United Kingdom' => {
+ 'https://anorien.csc.warwick.ac.uk/mirrors/CTAN/' => 1,
},
},
'North America' => {
@@ -129,16 +164,23 @@ $mirrors = {
'http://ctan.mirror.colo-serv.net/' => 1,
'http://ctan.mirror.globo.tech/' => 1,
'http://ctan.mirror.rafal.ca/' => 1,
+ 'https://ctan.math.ca/tex-archive/' => 1,
+ 'https://mirror.its.dal.ca/ctan/' => 1,
+ 'https://muug.ca/mirror/ctan/' => 1,
+ },
+ 'Costa Rica' => {
+ 'https://mirrors.ucr.ac.cr/CTAN/' => 1,
},
'USA' => {
'http://ctan.math.utah.edu/ctan/tex-archive/' => 1,
'http://ctan.math.washington.edu/tex-archive/' => 1,
'http://ctan.mirrors.hoobly.com/' => 1,
- 'http://mirror.las.iastate.edu/tex-archive/' => 1,
'http://mirror.utexas.edu/ctan/' => 1,
- 'http://mirrors.concertpass.com/tex-archive/' => 1,
'http://mirrors.ibiblio.org/pub/mirrors/CTAN/' => 1,
- 'http://mirrors.rit.edu/CTAN/' => 1,
+ 'https://ctan.math.illinois.edu/' => 1,
+ 'https://mirror.las.iastate.edu/tex-archive/' => 1,
+ 'https://mirrors.concertpass.com/tex-archive/' => 1,
+ 'https://mirrors.rit.edu/CTAN/' => 1,
},
},
'Oceania' => {
diff --git a/systems/texlive/tlnet/tlpkg/texlive.tlpdb b/systems/texlive/tlnet/tlpkg/texlive.tlpdb
index d362e8bed8..6feeedf76b 100644
--- a/systems/texlive/tlnet/tlpkg/texlive.tlpdb
+++ b/systems/texlive/tlnet/tlpkg/texlive.tlpdb
@@ -26,11 +26,11 @@ depend container_split_src_files/1
depend frozen/0
depend minrelease/2016
depend release/2020
-depend revision/55767
+depend revision/55776
name 00texlive.image
category TLCore
-revision 55763
+revision 55777
shortdesc TeX Live files only in the source repository
longdesc The files here are not copied by the installer and containers
longdesc are not built for them; they exist only in the source
@@ -4223,7 +4223,7 @@ depend setting_available_architectures:aarch64-linux amd64-freebsd amd64-netbsd
name 00texlive.installer
category TLCore
-revision 55754
+revision 55769
shortdesc TeX Live standalone installer package
longdesc This package defines the files to go into the installer
longdesc archives (install-tl-unx.tar.gz, install-tl.zip) built by the
@@ -8117,7 +8117,7 @@ catalogue-version 1.4
name accessibility
category Package
-revision 52650
+revision 55777
shortdesc Create tagged and structured PDF files
relocated 1
longdesc The accessibility package is intended to create tagged,
@@ -8125,17 +8125,27 @@ longdesc structured PDF documents from LaTeX source code. It allows to
longdesc produce tagged PDF output following Adobe's PDF-1.5 and 1.6
longdesc specifications. This package is predominantly targeted at
longdesc documents produced using the KOMA-Script document classes.
-containersize 13324
-containerchecksum f0d198f630c3184f649232fa51860b3dcbb845832c1441dd4f6513d4fae21716d3c75f4f405258a78bcb3918f7a59d19b3c8ea814896e5536a2c58daf0386279
+longdesc However, the author told us towards the end of June 2020:
+longdesc "Based on feedback to the 'accessibility' package and
+longdesc discussions with a few folks, I'd like to discourage people
+longdesc from using the package any more. It's evident that it's not
+longdesc going to work in it's current form, and I don't have the skills
+longdesc or time to update it. I know the general concept is very
+longdesc important, and so I'm looking at getting support from various
+longdesc funding agencies to employ someone to completely refactor the
+longdesc code in a more future-proof fashion. I'll coordinate this with
+longdesc the core LaTeX Team once I have more solid ideas."
+containersize 13628
+containerchecksum 6cbc455f40a6aeb5862bbed64e6ec111d497f1948fa6eb83d26fc04c85c1145437005aa046e20eae70f177ff04c7084f03c2d4b3234be6c6ece822d6f366520f
doccontainersize 496876
-doccontainerchecksum 8248afcbcebcc179d438bd4394de64f8bcc6b07095d5ae4146f6a10f73eaebdd6bceba6fbf4e441a434d5e72bce0995281249dac321bcfda24074e9ba2085373
+doccontainerchecksum 261d13857558973edb692ed320745173a5006d0cd23418e926be5398b4f3a2da0a670e3a08a26083381e830f4bd327eaa4451822ef096612a7a3c3492833c328
docfiles size=566
RELOC/doc/latex/accessibility/CHANGELOG.md
RELOC/doc/latex/accessibility/README.md details="Readme"
RELOC/doc/latex/accessibility/accessibility-Anleitung-DE.pdf details="Package documentation" language="de"
RELOC/doc/latex/accessibility/accessibility.pdf details="Package documentation" language="en"
srccontainersize 31060
-srccontainerchecksum 9a5b277ff4897b4b0c9ffd471fc923ca821bce1912aec64b742268042ad46a588624d64c3eab09704e0719b8fbf35452136ad10c21e7550c92909ca8d75f4c8e
+srccontainerchecksum a7218b14ca307c9e02f6c562db3bb381a8a57ff758fecfc36f758bb70a151ca83e3401c7e2254ad2f75fe62d762cedec0746b07f5f5f6b82982675f42faa4e31
srcfiles size=36
RELOC/source/latex/accessibility/accessibility.dtx
RELOC/source/latex/accessibility/accessibility.ins
@@ -23336,7 +23346,7 @@ catalogue-version 0.1c
name asymptote
category TLCore
-revision 54567
+revision 55777
shortdesc 2D and 3D TeX-Aware Vector Graphics Language
longdesc Asymptote is a powerful descriptive vector graphics language
longdesc for technical drawing, inspired by MetaPost but with an
@@ -23344,10 +23354,10 @@ longdesc improved C++-like syntax. Asymptote provides for figures the
longdesc same high-quality level of typesetting that LaTeX does for
longdesc scientific text.
depend asymptote.ARCH
-containersize 359664
-containerchecksum 6a281b9c208f34a3d3ec98597f4a65e011a80f7f07858c60bec0491c6e6fb918e4cf5a3dea002e12c1775c39f6493d9a0a28ce0b8fb7a1e7ff5d8d4346e9649f
+containersize 359672
+containerchecksum a35cf798d75cf4b77a3c3e9e181996026a9701cf31db1f8f7b61cd4a2a89daa2754f0647eb904beea986438b63a9ab85e78e8cc5c6a8bd13c98460d50a71f2ce
doccontainersize 2386940
-doccontainerchecksum d8d5f63808fb74522e2a4f28cd84630897ad57b67451301522b8a9d60e44cab4561a7f67ebebcb2b1a822ee20404a8654a2cb3e1204b75ed52b4d65d8340e5a0
+doccontainerchecksum ae516f703880bed7ac091f578df8e6b9693aae35e80366dacb5eaaef8290604ce588fc36dd6e6865ac5689b467977d3f64b04625eece0c1093b6a293012f7f63
docfiles size=1274
texmf-dist/doc/asymptote/CAD.pdf details="Using Asymptote for 2D CAD"
texmf-dist/doc/asymptote/TeXShopAndAsymptote.pdf
@@ -23866,7 +23876,7 @@ catalogue-contact-repository https://github.com/vectorgraphics/asymptote
catalogue-ctan /graphics/asymptote
catalogue-license lgpl3
catalogue-topics graphics graphics-engn
-catalogue-version 2.65
+catalogue-version 2.66
name asymptote-by-example-zh-cn
category Package
@@ -26089,7 +26099,7 @@ catalogue-version 1.0
name babel
category Package
-revision 55508
+revision 55777
shortdesc Multilingual support for Plain TeX or LaTeX
relocated 1
longdesc This package manages culturally-determined typographical (and
@@ -26102,22 +26112,22 @@ longdesc has to be done for each language. Included is also a set of ini
longdesc files for about 200 languages. Many language styles work with
longdesc pdfLaTeX, as well as with XeLaTeX and LuaLaTeX, out of the box.
longdesc A few even work with plain formats.
-containersize 167376
-containerchecksum 5089c5d5a96d977b9940d696e9011a8362770794d83da69184863528c8350bbc94c0a401eb03cd7c2889aebf2264a8bd2afea80853a18761011d3fd0db140127
-doccontainersize 781056
-doccontainerchecksum 2981ddf74aa009095305a4456143a97fe22c3172e8de2b04688559d201b71d4a941ac9d505ebb9d615995f28a0fa3975527bf913bdbd3da24fd9e101941bfcba
+containersize 168260
+containerchecksum 9c27eff221d261c70d1aaba825a408ba685d9f8045a93321a99968ee34617bdbf228b2a214482446640b2e8210341c380913915db896e17c60d0dc68637e6275
+doccontainersize 783828
+doccontainerchecksum 445779a1c111c15d83d6e276cbf9c90bb96c4203c5568c7db6866c00c90794d3ff026cf3fe0d23aeb03710a694a1f71bea4cf3d5386b3c6c8de833796cb538d8
docfiles size=197
RELOC/doc/latex/babel/README.md details="Readme"
RELOC/doc/latex/babel/babel.pdf details="Package documentation"
-srccontainersize 653560
-srccontainerchecksum 59f36d4e1324a6b60b735dd8fa5fd883d3f959bb342e426cdaa65c4d2cb5e64135d30cf981a5062c74ab547cd8f347353977aba931ac98718a9bd38867e669bc
-srcfiles size=359
+srccontainersize 660616
+srccontainerchecksum b2f10b78fa428add06ffa43107d2ebcbfe9060722027db7faae076a6e420f2d9b50ff51179c563dbe85250615c38ab7616b6bfea81eb1df2d6d8454869370a14
+srcfiles size=360
RELOC/source/latex/babel/babel.dtx
RELOC/source/latex/babel/babel.ins
RELOC/source/latex/babel/bbcompat.dtx
RELOC/source/latex/babel/bbidxglo.dtx
RELOC/source/latex/babel/locale.zip
-runfiles size=918
+runfiles size=923
RELOC/makeindex/babel/bbglo.ist
RELOC/makeindex/babel/bbind.ist
RELOC/tex/generic/babel/UKenglish.sty
@@ -26816,7 +26826,7 @@ catalogue-contact-repository https://github.com/latex3/babel
catalogue-ctan /macros/latex/required/babel/base
catalogue-license lppl1.3
catalogue-topics multilingual
-catalogue-version 3.45
+catalogue-version 3.46
name babel-albanian
category Package
@@ -32145,16 +32155,16 @@ catalogue-version 0.2
name beebe
category Package
-revision 54760
+revision 55769
catalogue biblio
shortdesc A collection of bibliographies
relocated 1
longdesc A collection of BibTeX bibliographies on TeX-related topics
longdesc (including, for example, spell-checking and SGML). Each
longdesc includes a LaTeX wrapper file to typeset the bibliography.
-containersize 825348
-containerchecksum c47c9c195eb47c05dca145a1ce88f94ec6d62d13891836adfe79f118a9c4feba81135f6e2ef6491a88e466f72680ba26484532a227124cd9d28dac723013e8cd
-runfiles size=2026
+containersize 825728
+containerchecksum 8f9c8373c389ae054db001a2f9a8e6cc9d8ff666df53bdcceafe4460211e557f066779aebccb7edfcf2372042022356eaf006ccb5e6180e137511ba9483ce1b8
+runfiles size=2027
RELOC/bibtex/bib/beebe/epodd.bib
RELOC/bibtex/bib/beebe/font.bib
RELOC/bibtex/bib/beebe/printing-history.bib
@@ -36793,7 +36803,7 @@ catalogue-version 1.2.0
name biblatex-swiss-legal
category Package
-revision 55643
+revision 55777
shortdesc Bibliography and citation styles following Swiss legal practice
relocated 1
longdesc The package provides BibLaTeX bibliography and citation styles
@@ -36804,9 +36814,9 @@ longdesc ng-biblatex-swiss-legal-not-displayed-correctly the package is
longdesc at present outdated and does not work properly with newer
longdesc versions of BibLaTeX.
containersize 18148
-containerchecksum 5266292a7440e4d15e65734e3a546ecff8893eef995923d56834738927c19472500d3ced232d63e1e1f8fcb3bba4e0907bf6c9904d0e2c82640fedf9fa330045
+containerchecksum 7f573330e671738f0a8984108fd434abdb3b0aa8799b19529503c731662f2ec9e96385298f8a7b7dff0c337df03766955613fe188dedffa3642f17c3cc9c9319
doccontainersize 513436
-doccontainerchecksum 1ba06f9248c6066900917f8ea4dd0f53d234990df33da2eab79d44b3c05bc61e7a9c9460eb7f35919311ee1808d1f7c5452e1206dde4e86f8cb6ccb8266177fc
+doccontainerchecksum 16e7080ecb37bc22a3e4cbe34d26ca810207ceecb943c7823cea9b186e5964ec201799487706decab97407dd14a27d79761e08604844dd70a0ef0c62d6f28814
docfiles size=145
RELOC/doc/latex/biblatex-swiss-legal/README details="Readme (French and English)"
RELOC/doc/latex/biblatex-swiss-legal/biblatex-swiss-legal.pdf details="Package documentation (French)" language="fr"
@@ -54114,7 +54124,7 @@ catalogue-version 9.3
name circuitikz
category Package
-revision 55620
+revision 55777
shortdesc Draw electrical networks with TikZ
relocated 1
longdesc The package provides a set of macros for naturally typesetting
@@ -54123,11 +54133,11 @@ longdesc networks. It is designed as a tool that is easy to use, with a
longdesc lean syntax, native to LaTeX, and directly supporting PDF
longdesc output format. It has therefore been based on the very
longdesc impressive PGF/TikZ package.
-containersize 129012
-containerchecksum be2cfcf30cb83f0afe3125fdcb4145d086404040029d8931619a49285e980a2017dea8ced19eee235f8f659209d47fde6e717c77acadf951906506a91bb3668d
-doccontainersize 1089192
-doccontainerchecksum 8eaca8959f1e182d54c4adb1ff2e52e30217f32e7f29ebd2cf9379538bdc74711e1698ce10b3baaac7a7a5b6b64eed01f6107fce24848f7f9d80aa1934c55611
-docfiles size=352
+containersize 131876
+containerchecksum 197d55984711597f12335e8fa1744d2407e8664234cee4c277286974fe7e2e1d1426a124848972126545f72f55dd7d42609672a5507164f2eae08fd606afd94e
+doccontainersize 1106784
+doccontainerchecksum e82658c7d5cfb252a4d8382b55f18007c8c95bb890ac421e84613dd4cb571606d83c0487545973de735f246a88befbd1ddee8bb03aaa571ca1a47fca6c8183ce
+docfiles size=358
RELOC/doc/context/third/circuitikz/circuitikz-context.pdf
RELOC/doc/context/third/circuitikz/circuitikz-context.tex
RELOC/doc/generic/circuitikz/CHANGELOG.md
@@ -54137,7 +54147,7 @@ docfiles size=352
RELOC/doc/latex/circuitikz/circuitikzmanual.tex
RELOC/doc/latex/circuitikz/compatibility.tex
RELOC/doc/latex/circuitikz/ctikzmanutils.sty
-runfiles size=2308
+runfiles size=2311
RELOC/tex/context/third/circuitikz/t-circuitikz-0.8.3.tex
RELOC/tex/context/third/circuitikz/t-circuitikz-0.9.3.tex
RELOC/tex/context/third/circuitikz/t-circuitikz-0.9.6.tex
@@ -54174,7 +54184,7 @@ catalogue-contact-repository https://github.com/circuitikz/circuitikz
catalogue-ctan /graphics/pgf/contrib/circuitikz
catalogue-license lppl gpl
catalogue-topics graphics diagram-circ pgf-tikz
-catalogue-version 1.2.0
+catalogue-version 1.2.1
name cite
category Package
@@ -101991,7 +102001,7 @@ catalogue-topics font font-type1 font-archaic
name eplain
category Package
-revision 55758
+revision 55777
shortdesc Extended plain TeX macros
longdesc An extended version of the plain TeX format, adding support for
longdesc bibliographies, tables of contents, enumerated lists, verbatim
@@ -102018,9 +102028,9 @@ depend tex-ini-files
depend unicode-data
execute AddFormat name=eplain engine=pdftex patterns=language.dat options="-translate-file=cp227.tcx *eplain.ini" fmttriggers=babel,cm,hyphen-base,latex-fonts,l3backend,l3kernel,l3packages,tex-ini-files,unicode-data,dehyph,hyph-utf8,knuth-lib,plain
containersize 42240
-containerchecksum 9b9b7a3fdd1c5b7e74c2f4246e294263d8871cd3b6ed59c89e6e42b4708aca32e4f33dbf2d7674229b3f10e3dc375128911e9ec3039629a2582e47a5030f6143
+containerchecksum 514323869bb17d1a20c94bd823d10ec2049e74989ad24f7c988f0c328b069e7b00ad4ad69a93f75c1b3746067cb7e0baa085f2526ee30109f56024b050c20f6a
doccontainersize 982708
-doccontainerchecksum aad76160d9b783b72c6e11568d9b3404c06ce2a87172a69c313af8834503ef0716fc32719e420d3f0b20ea41391450ab261fb25706caae6333360268460df6ce
+doccontainerchecksum 2f4b6970da58407626a551c9a5a040e74bd039dd2ebff7b50d93f79302c534c819479c810bcc8100ef37e44f9891282ebffddc1fb0e6efcc5ba297313bd581ea
docfiles size=528
texmf-dist/doc/eplain/AUTHORS
texmf-dist/doc/eplain/COPYING
@@ -102040,8 +102050,8 @@ docfiles size=528
texmf-dist/doc/info/eplain.info
texmf-dist/doc/man/man1/eplain.1
texmf-dist/doc/man/man1/eplain.man1.pdf
-srccontainersize 396576
-srccontainerchecksum 63224ef7a0b051a40f725801cba6341c3e688276d273d26875038e108fcb1ff3b2bd34db01c055353bdae03528870888e83bded473ed4468214f1e1cdbb2e2f8
+srccontainersize 396580
+srccontainerchecksum adcd20a82081be082562383b5a4a51dc49af080d5ef5ab8d1bfcd7bde0cceb75c645c131a4c83ada1b1c8cdb6c733b8aa6f30004ae479cd92bb374c55fa3c71d
srcfiles size=136
texmf-dist/source/eplain/eplain-source-3.11.zip
texmf-dist/source/eplain/xeplain.tex
@@ -102055,7 +102065,7 @@ catalogue-contact-home http://tug.org/eplain/
catalogue-contact-repository https://tug.org/svn/eplain/
catalogue-contact-support https://lists.tug.org/tex-eplain
catalogue-ctan /macros/eplain
-catalogue-license gpl2+ gpl2+
+catalogue-license gpl2+
catalogue-topics plain-ext format
catalogue-version 3.11
@@ -111866,7 +111876,7 @@ catalogue-version 1.0a
name feyn
category Package
-revision 45679
+revision 55777
shortdesc A font for in-text Feynman diagrams
relocated 1
longdesc Feyn may be used to produce relatively simple Feynman diagrams
@@ -111875,10 +111885,10 @@ longdesc is good at drawing large diagrams for figures, the present
longdesc package and its fonts allow diagrams within equations or text,
longdesc at a matching size. The fonts are distributed as Metafont
longdesc source, and macros for their use are also provided.
-containersize 13544
-containerchecksum 56e7d5b875db6eb6e5ad2b07d5696fa4fc6cea7d0f0f9d691bdec0fb90f16bbcac0c9f20f8f16bde20eabf98f72fbbd75831af1191b229cd7acca60bb2edda28
-doccontainersize 516516
-doccontainerchecksum df4454efa6f9130fac5ee2986abdd8eacb42063930ee194b65d94a1e1a90460c4116fd62da232f01f94fad63d9eaef627655aedadaaf034f910ebb97b40a7792
+containersize 13492
+containerchecksum 445d071bf76adb0c8ed89d294eff3129a1903624a1ca4dbfd5d83016edaccd5e2f8758273d8ef382696e8d3c9270526eb77ad2021b51f6df7e91c5c7a138d2c9
+doccontainersize 516512
+doccontainerchecksum e3202a822e034c179f399856ee57836950fb0e0cc0f664cf7155b6d5110762fbe26da596ea0e9fafe4bacce330ee57bfea1bec1ba2d16d4aad01dc868b00c2c9
docfiles size=150
RELOC/doc/fonts/feyn/LICENCE
RELOC/doc/fonts/feyn/README details="Package Readme"
@@ -111897,7 +111907,7 @@ docfiles size=150
RELOC/doc/fonts/feyn/sample-vertex.png
RELOC/doc/fonts/feyn/style.css
srccontainersize 16212
-srccontainerchecksum fbfa44afe7f1ae10566d736cadd02a3d9f562b19d25b2f23b1dc27fefc77d6b7af550e7161bba7c62d63f3c75d8b704dfdc3befadef9ad42ed42e42000ab4557
+srccontainerchecksum 64fbe2a9ce848bc5d862d5c74a59d007300c3e83b97b26f8ce8bbbda53931e563f6a1f8d406a43b6473564e5ebf4afcbf2c753fb763dd1be59ddafb8329e6e75
srcfiles size=16
RELOC/source/fonts/feyn/feyn.drv
RELOC/source/fonts/feyn/feyn.dtx
@@ -111936,9 +111946,7 @@ runfiles size=42
RELOC/fonts/tfm/public/feyn/feynx18.tfm
RELOC/fonts/tfm/public/feyn/feynx24.tfm
RELOC/tex/latex/feyn/feyn.sty
-catalogue-contact-bugs https://bitbucket.org/nxg/feyn/issues
catalogue-contact-home http://purl.org/nxg/dist/feyn
-catalogue-contact-repository https://bitbucket.org/nxg/feyn/
catalogue-ctan /fonts/feyn
catalogue-license bsd
catalogue-topics graphics-use physics font font-mf
@@ -158102,7 +158110,7 @@ catalogue-version 1.2
name latex-tds
category Package
-revision 54758
+revision 55777
shortdesc A structured copy of the LaTeX distribution
relocated 1
longdesc This bundle provides a set of zip file modules containing
@@ -158114,16 +158122,16 @@ longdesc performs the same service for Knuth's software distribution.
longdesc This bundle has been moved to the /obsolete branch of the
longdesc archive as of April 2020 because the LaTeX files are now very
longdesc much out of date.
-containersize 648
-containerchecksum 4caf8f27e6da57d48f4a04b69ca93ab7234b50bf2bbff39b1b58ee87eb8b7973a0fb7f61724106e96a2fd0b349fe26c92d675c1e5ae1779d5f0d6b6ebc0dca89
-doccontainersize 84088
-doccontainerchecksum 0d9d906aa3a966a1a1d6cefa4af3bc0cba31061fed86510ff5867080f9fd06bb3e7d2b5d282bb7f1f35b263ef0cc7b671efa79acff1a7674eb8b0d1866e37241
+containersize 644
+containerchecksum c519ca499399845e26a0ce86452b50283df3bceabc1e35186fa14253e682d6b8f9fbe7ba6857f478d765ee8a8c90fd5d4c717b8e31bb0e84df4d8f4f8cdbf53e
+doccontainersize 84092
+doccontainerchecksum 5d1f3f4e0d9491f8272dfa7a675dce11b3b27230bba10373b63906468012fcd1da17d1793ca57e8ae4ad51ffffa2799c769e70befd84b12b20899bd4ac557741
docfiles size=50
RELOC/doc/latex/latex-tds/README details="Readme"
RELOC/doc/latex/latex-tds/README.html
RELOC/doc/latex/latex-tds/README.pdf
-srccontainersize 128300
-srccontainerchecksum 145f8ee093da2bb7c0d858b4901053198d940f72ad9e8287b97f10ae4b4b8a1391bf145c584e9564173136e39c753d06e34c684d28fb3349cdbad4755536e944
+srccontainersize 128296
+srccontainerchecksum b99ef070ff70c055aaa13c12e04f1c26fbfda4b663ab98b03b053de76e4ffc80afcaabc7b53633e38a7ad67fa650ef9ede55fd1c924fcbff31c17cf5edfbd73a
srcfiles size=112
RELOC/source/latex/latex-tds/README-docinfo.html
RELOC/source/latex/latex-tds/README.asciidoc
@@ -158176,7 +158184,7 @@ srcfiles size=112
RELOC/source/latex/latex-tds/tex/tools.tex
catalogue-ctan /obsolete/macros/latex/contrib/latex-tds
catalogue-license lppl1.3
-catalogue-topics distribution obsolete
+catalogue-topics obsolete
name latex-tools-dev
category Package
@@ -176239,28 +176247,28 @@ catalogue-version 0.7
name luabibentry
category Package
-revision 31783
+revision 55777
shortdesc Repeat BibTeX entries in a LuaLaTeX document body
relocated 1
longdesc The package reimplements bibentry, for use in LuaLaTeX.
-containersize 2368
-containerchecksum 00349f5a6f5ecd5478bb718bcfc419953db4f90c9b2a70aab2e2bbce4395d189066b39cca743e5b790f588a3f2a17047a6e233258c4ef389ad6fc5338184af69
-doccontainersize 144328
-doccontainerchecksum 9ec19b99275e3117f07e445e2c039bd504537fd470f62fb7f7f7fc428842ba86ebdbf0bd6a6be7a3b1b99100d209c6c47a9795c776287206afe331601222acad
+containersize 2344
+containerchecksum ea46242da727c40f24fa232e1cd1db4bdaa7391aa372ae7dcb0210e2755fdfa2155de5c80a61b0c4554ab1c23a14bf286d00f07b34aef5edf416ac6b06f031ac
+doccontainersize 144332
+doccontainerchecksum 9b4954e294173699cef6ba965948bbc2518d42158c3f80cfa5bec17c5e58166240f8c8d3864f5dda94ae325aef688db7003138ccdf3d6eb249b544baa72ec13e
docfiles size=41
RELOC/doc/lualatex/luabibentry/News
RELOC/doc/lualatex/luabibentry/README details="Readme"
RELOC/doc/lualatex/luabibentry/luabibentry.pdf details="Package documentation"
-srccontainersize 5428
-srccontainerchecksum 628ff69779b5eba6056bb49b3bdb4017a10c3c4afd710319de9ac3168ffa44782969ed67399f8c1a945cbf77f1bc44ea33b0776a9f1f14aa2e5e29afb8cea544
+srccontainersize 5424
+srccontainerchecksum d43a9d2024e5293966335df592451e3bd44e3f3522a06163c93da3d242b3e70377dda3612333a64e57d9db8ae8052753cebe9a73e01125b41e495c7a0f3a7592
srcfiles size=4
RELOC/source/lualatex/luabibentry/Makefile
RELOC/source/lualatex/luabibentry/luabibentry.dtx
runfiles size=2
RELOC/tex/lualatex/luabibentry/luabibentry.lua
RELOC/tex/lualatex/luabibentry/luabibentry.sty
-catalogue-contact-repository https://github.com/latextemplates/luabibentry
-catalogue-contact-support https://github.com/latextemplates/luabibentry/issues
+catalogue-contact-bugs https://github.com/koppor/luabibentry/issues
+catalogue-contact-repository https://github.com/koppor/luabibentry
catalogue-ctan /macros/luatex/latex/luabibentry
catalogue-license lppl1.3
catalogue-topics cite-supp luatex use-lua
@@ -201604,18 +201612,17 @@ catalogue-version 2.0
name newcomputermodern
category Package
-revision 55651
+revision 55777
shortdesc Computer Modern fonts including matching non-latin alphabets
relocated 1
longdesc This is a new assembly of Computer Modern fonts plus glyphs for
-longdesc non latin alphabets which are considered compatible in style to
-longdesc CM fonts. The fonts contain Latin and accented Latin letters
-longdesc and combinations, Greek (monotonic and polytonic), and
-longdesc Cyrillic.
+longdesc non Latin alphabets which are considered compatible in style to
+longdesc CM fonts. In addition to the Regular weight of Computer Modern,
+longdesc it provides a Book weight for heavier printing.
containersize 4363084
-containerchecksum 82baf8ffb4c4ea5fbebe8c04ec80e0c6b31c5496cfcfc24d8087efc66d954e2081928e57b6e120bd50c440316edb62e86f9fcb4bbb98b39daa82b6fa67a6cb2d
-doccontainersize 90516
-doccontainerchecksum 40a7ed45594849dd72552d07555459d40f70c496749ccd87e68593c5d01ba14a78508e62037d0a0b9fb3f9de37b12644ab58eb1843aaad0aa57779832f3f5abd
+containerchecksum 8a376789a802d3233a62a5131511c2646fe9f9be716c2b2ca21d4fe5ae1be2a02574c5aee4ccb5f80b81df863bced3b2be7897178a2d92b373bcede79a47b7a2
+doccontainersize 90520
+doccontainerchecksum 1e9b774c85fb68919000615ff7feb06e93e78f0fda80531155816e723ad14c182f2a04c108933ae59f1b058917cfd836ce758896c935ea109cb982df3a794163
docfiles size=26
RELOC/doc/fonts/newcomputermodern/README details="Readme"
RELOC/doc/fonts/newcomputermodern/newcomputermodern-sample.pdf details="Font samples"
@@ -201649,7 +201656,7 @@ runfiles size=3032
RELOC/tex/latex/newcomputermodern/NewComputerModernSansBook.fontspec
catalogue-ctan /fonts/newcomputermodern
catalogue-license gfl
-catalogue-topics font font-cm font-body font-proportional font-mono font-serif font-sans font-multilingual font-greek font-cyrillic font-maths font-otf
+catalogue-topics font font-cm font-body font-proportional font-mono font-serif font-sans font-multilingual font-greek font-cyrillic font-hebrew font-maths font-otf cherokee
catalogue-version 2.0
name newenviron
@@ -227096,23 +227103,23 @@ binfiles arch=x86_64-solaris size=631
name pdftexcmds
category Package
-revision 55693
+revision 55777
shortdesc LuaTeX support for pdfTeX utility functions
relocated 1
longdesc LuaTeX provides most of the commands of pdfTeX 1.40. However, a
longdesc number of utility functions are not available. This package
longdesc tries to fill the gap and implements some of the missing
longdesc primitives using Lua.
-containersize 6320
-containerchecksum 6a63eaddb0f7dcf7f678e53f4f5ef9e2aa2df71eb2f84169284b08bfdea373f100b86ce799bdbf84bf7b3d578269f550b068bd88c89cb8bc92b1cc2b21614482
+containersize 6316
+containerchecksum 91054b61b76382813d80e873d908cc07f8571b7651f49a3dc3e87063507af43bf31107c34187b703b0c4462eafe0cd605159803c72cbf2821cf6ab3afb78fc6d
doccontainersize 379844
-doccontainerchecksum fd7c9df5d9480acdec5008f928dd8431068fa2c7b30c57b07024d5c14ffa61cf5468e758973e7d82429691f4661864a9bed848cbe5705b2333100679a2b5ce61
+doccontainerchecksum a16db56366e80b1694b78919a245336c37690ea9a1305a606a3bfa85a73c854e92d1cd8b9ddb0bdfdea82f1ef684d06d8b4649e4111c39f24f321dbcb01aa036
docfiles size=96
RELOC/doc/generic/pdftexcmds/README.md details="Readme"
RELOC/doc/generic/pdftexcmds/pdftexcmds.bib
RELOC/doc/generic/pdftexcmds/pdftexcmds.pdf details="Package documentation"
-srccontainersize 14048
-srccontainerchecksum dee57433d1f6c520b5bae7dfb98bf01ef9d7fdd033104bf60914b30db136cef24966a7d36e3dfad9533e70a6b526500703ca6029fa11c583bb92c4a3542a1a9a
+srccontainersize 14052
+srccontainerchecksum f3e62a5f9029f71c652105b137048cef4f5562dd0848bb7a94d251e2af579c394322a70f40aadbed3ac56312005d59124ef3fd5a2436127a72c430d344ecede1
srcfiles size=16
RELOC/source/generic/pdftexcmds/pdftexcmds.dtx
runfiles size=8
@@ -227120,7 +227127,7 @@ runfiles size=8
RELOC/tex/generic/pdftexcmds/pdftexcmds.sty
catalogue-contact-bugs https://github.com/ho-tex/pdftexcmds/issues
catalogue-contact-repository https://github.com/ho-tex/pdftexcmds
-catalogue-ctan /macros/latex/contrib/pdftexcmds
+catalogue-ctan /macros/generic/pdftexcmds
catalogue-license lppl1.3c
catalogue-topics macro-supp macro-gen
catalogue-version 0.33
@@ -250323,7 +250330,7 @@ catalogue-version 1.0h
name reledmac
category Package
-revision 55653
+revision 55777
shortdesc Typeset scholarly editions
relocated 1
longdesc A package for typesetting scholarly critical editions,
@@ -250332,10 +250339,10 @@ longdesc itself was a LaTeX port of the plain TeX EDMAC macros. The
longdesc package supports indexing by page and by line numbers, and
longdesc simple tabular- and array-style environments. The package is
longdesc distributed with the related reledpar package.
-containersize 54008
-containerchecksum 1497788060c45f06ec6a398efd0dc04cc244e64de4ae6627b8eaf3f4de1ce8ce68b395e027f65c3b72ac0cbaf9c1a75204fa88f48089e74de604f1b1e742de78
-doccontainersize 8681020
-doccontainerchecksum 7ef2c9aebdf38a4b7362477939f0c0f242debd00fd833f1dbef5dd0305042008e8c19ced466edfc0319717d81b7539c61ada92d3b1f97faf87d7a03f6438f22f
+containersize 54032
+containerchecksum c8096417756ea5f0204d7c2be4817fa41dca8d2bc8792270c2a91fd0f2a40e75791a9fc1e79a134cf46166bb297c7354576bd0a7689a8c562fd242744a019a7a
+doccontainersize 8679968
+doccontainerchecksum 18c55fb0d671787998c9a321e8b4c578aa78ec876227ccd30c83597b34a0b9ae30164466bd6737d47dc7a9157455237e40d2859971fb79cab55cc400118b1325
docfiles size=2599
RELOC/doc/latex/reledmac/README.md details="Readme"
RELOC/doc/latex/reledmac/doc-include/migrate-mac.dtx
@@ -250442,8 +250449,8 @@ docfiles size=2599
RELOC/doc/latex/reledmac/migration.pdf
RELOC/doc/latex/reledmac/reledmac.pdf details="Package documentation"
RELOC/doc/latex/reledmac/reledpar.pdf
-srccontainersize 206004
-srccontainerchecksum 995c44b7c819464ef7e70b3195861b204cf98af2427177d990dc905c8c19e1e13eaab4bd0943ee0ee05038e36a99ccb32805c01d33a6e4f9ce9da31b71182803
+srccontainersize 206020
+srccontainerchecksum e57b705b5e70255633c1b4c49fe7cbf97ba6f80a3a3330bb6b656dce660c59001eb13f4ee39905e539ba0fad66ce6e485d423343e2fab0495c02421875bb5649
srcfiles size=293
RELOC/source/latex/reledmac/migration.dtx
RELOC/source/latex/reledmac/reledmac.dtx
@@ -250460,7 +250467,7 @@ catalogue-contact-support http://geekographie.maieul.net/146
catalogue-ctan /macros/latex/contrib/reledmac
catalogue-license lppl1.3
catalogue-topics crit-ed
-catalogue-version 2.34.0
+catalogue-version 2.34.2
name relenc
category Package
@@ -260827,8 +260834,8 @@ catalogue-version 0.302
name semantex
category Package
-revision 55765
-shortdesc Object-oriented mathematics
+revision 55777
+shortdesc Semantic mathematics
relocated 1
longdesc The SemanTeX package for LaTeX delivers a more semantic,
longdesc systematized way of writing mathematics compared to the
@@ -260836,11 +260843,11 @@ longdesc ordinary math syntax. The system is object-oriented and uses
longdesc keyval syntax, and everything is highly customizable. At the
longdesc same time, care has been taken to make the syntax as intuitive,
longdesc natural, practical, and lightweight as possible.
-containersize 17332
-containerchecksum efc1d566e6a9257b66ca44c847f8903c4d20a83b62e13128c531cecf672e45f149b061d5a401a4567ec34bca819b57315bdc9876ee1849ffc217e902f65d08c4
-doccontainersize 249820
-doccontainerchecksum c0a4fbf3799c0d1168965be9ed491a2e8bca032824b626f1443021df74345790a87c796d67ea410b2e50b77e452814e4677be3fd22783a9e7dc3b63ccf126d88
-docfiles size=78
+containersize 17336
+containerchecksum 8a0146a2ca78c2e43059662e20574bf288bd088ec34fb05012d3b843c1b5284c295ed53e725c6aa12486618625e1df400a97bc8d21e7eaa84553c86cfd4663d7
+doccontainersize 249764
+doccontainerchecksum 71330af27e729836975dbb03e230d4c139b363a694dd5714fc1da5be3fbecda971e6a647246ea5d5200815821556ae1d4614242fe80bef3094db1f5b6757a617
+docfiles size=77
RELOC/doc/latex/semantex/README.md details="Readme"
RELOC/doc/latex/semantex/semantex.pdf details="Package documentation"
RELOC/doc/latex/semantex/semantex.tex
@@ -260849,7 +260856,7 @@ runfiles size=40
catalogue-ctan /macros/latex/contrib/semantex
catalogue-license lppl1.3c
catalogue-topics maths expl3
-catalogue-version 0.2alpha
+catalogue-version 0.201alpha
name semantic
category Package
@@ -277713,7 +277720,7 @@ binfiles arch=x86_64-solaris size=1
name tex4ht
category Package
-revision 55734
+revision 55775
shortdesc Convert (La)TeX to HTML/XML
longdesc A converter from TeX and LaTeX to SGML-based formats such as
longdesc (X)HTML, MathML, OpenDocument, and DocBook, providing a
@@ -277728,10 +277735,10 @@ longdesc restricted-syntax systems such as hyperlatex and gellmu. Note
longdesc that CTAN no longer holds the definitive sources of the
longdesc package: see the 'Readme' file.
depend tex4ht.ARCH
-containersize 881432
-containerchecksum abe236ca855779aed9363f8f91e90b3d23c8601fcbd78c10b94105324131b9f4b04afa247bcbe35a6a51a59afd05a32f2c27c2fb051dedc27be48bd885728be6
+containersize 882236
+containerchecksum 8865cbdee117c95f1e475cfd14ed95317c0cd79133743cb13656e388cf52da72b6dba6b4c499b8569328d1a4bef9b99b772713841832911a7f2e30b31c7bd7ef
doccontainersize 135724
-doccontainerchecksum a072d3934c9e5fe50e59789e81a9888578a7482ff82d80ebc32fd6184fa0ba70b59827252a6844667f8651a604af4408dd28719fbff17463b88d109c189caec1
+doccontainerchecksum 95f3191bec335c9db2d561d6a9ae6479af8df13b29c05676a6ea3b190377fc12c9d064f9b811cb7dbbce6dfe9747cafb70daaed846bc9bcd22c9f6854e11f6cb
docfiles size=258
texmf-dist/doc/generic/tex4ht/Makefile
texmf-dist/doc/generic/tex4ht/TeX4ht-doc.tex
@@ -286180,7 +286187,7 @@ docfiles size=368
name texlive-scripts
category TLCore
-revision 55754
+revision 55769
shortdesc TeX Live infrastructure programs
longdesc Includes install-tl, tl-portable, rungs, etc.; not needed for
longdesc tlmgr to run but still ours. Not included in tlcritical.
@@ -286188,10 +286195,10 @@ depend texlive-scripts.ARCH
depend texlive.infra
execute addMap mathpple.map
postaction shortcut type=menu name="TeX Live command-line" cmd=TEXDIR/tlpkg/installer/tl-cmd.bat
-containersize 131676
-containerchecksum 5f9805f440ffe6e758e67b58ebc449a86eceed5cf80d47aa8ab8881ab3d3a39b3452fd0180cd8e90539e4bad362e27891cf1f724386605f1962e9079b3d9bf37
+containersize 131996
+containerchecksum 109155220059f573978c1079f6dfc4aa9226fc2c5fcf52086400b01fddf0dd95f03d35cce717a4c1ce06a0127a9f912e738afd2470fdb36b4785f936fdc24727
doccontainersize 218656
-doccontainerchecksum 56ab0f81559096e65dbf3273944d0edd19ab271a57f23272bfe61cd5007e1d53facc596791facf038f269183507988a40fcc6872d847fe3c424e1f913447dd93
+doccontainerchecksum e67f9d507f7c912c0c6ced9eefee484165bd68e4de2901f1ba4e61ea0ae3d3398e5453b66f33de0805db75746819e2d3d28da4ad1de1d91ebf6abac50b273037
docfiles size=141
texmf-dist/doc/man/man1/fmtutil-sys.1
texmf-dist/doc/man/man1/fmtutil-sys.man1.pdf
@@ -287410,7 +287417,7 @@ binfiles arch=x86_64-solaris size=101
name texliveonfly
category Package
-revision 26313
+revision 55777
shortdesc On-the-fly download of missing TeX live packages
longdesc The package provides a script that performs 'on the fly'
longdesc downloads of missing packages, while a document is being
@@ -287422,17 +287429,17 @@ longdesc --arguments="-synctex=1 -interaction=nonstopmode", which may
longdesc all be changed). The script is designed to work on Linux
longdesc distributions.
depend texliveonfly.ARCH
-containersize 6148
-containerchecksum e02a1214775f209c0698e62fb7f0ae91c9ad14024c076dd6a5ca73fad4c92ebbf9bbb0f281869cb0c073538c66edae2af23245f1bd0e1f939c80841269625af6
+containersize 6132
+containerchecksum 63353a768b700ea11982e9552046dfd1dc3d844883f03099833cabe2af5ccddecebd7ef737fbcd256c90304174165a4d283d4912f8311508e61c723d751619a7
doccontainersize 700
-doccontainerchecksum f89f82a59f726b226101275b1aeaec00b99ea1302ee5ff8c021e4696b4abad39d1a95b544a4bc45483440591e1266cfba4d5c3c3bbc769f193671a46aa7458b2
+doccontainerchecksum 46d57a6ebd68a56d55ccddc68006693fcbad8ed8f809243a3ffac7adb82da58cbc28239b57556d5d8d6388ea034b6571557588ff9365d4891145d5cc3fabfaea
docfiles size=1
texmf-dist/doc/support/texliveonfly/README details="Readme"
runfiles size=5
texmf-dist/scripts/texliveonfly/texliveonfly.py
catalogue-ctan /support/texliveonfly
catalogue-license gpl3
-catalogue-topics distribution
+catalogue-topics install-mgmt
name texliveonfly.aarch64-linux
category Package
@@ -288982,7 +288989,7 @@ catalogue-version 1.6
name textpos
category Package
-revision 50988
+revision 55777
shortdesc Place boxes at arbitrary positions on the LaTeX page
relocated 1
longdesc A package to facilitate placement of boxes at absolute
@@ -288990,10 +288997,10 @@ longdesc positions on the LaTeX page. There are several reasons why this
longdesc might be useful, an important one being to help the creation of
longdesc large-format conference posters. The package depends on
longdesc everyshi and keyval.
-containersize 3944
-containerchecksum 430c373d2c228615ecc9c46c10a99ce5394ff0497e9a375eec3c4e409452e006979501f7d18c5f603055c9ddb57b7c0687cf0a9273761d23aec75ed64c032200
-doccontainersize 315020
-doccontainerchecksum 5fdd14982f8b783f6b42197fb483eebb62f40c7e6f80648cfe7b7a356ae3fd243b4133a050cd84d2c8893460c15e717a21a70a5e1e0e31d52275f4a206956eb9
+containersize 3892
+containerchecksum 8ce53b9e8799c2a7996e3ec3941fa80a40dbd28b196e117fde693011fdf0e4525dd4ebae7b61aa187f7cc497a9fc9295383f777ce476cf3365691245a8c38e7c
+doccontainersize 315024
+doccontainerchecksum e43a2c75b8c43cf240912782b8787df7a216a2788b549825ffc4c1cb6bcec0477c61a2bee1b42efde1ede29ce0a7d75222be5b8ac5cff9d2916d1fea521a8320
docfiles size=98
RELOC/doc/latex/textpos/LICENCE
RELOC/doc/latex/textpos/README details="Package README"
@@ -289015,16 +289022,14 @@ docfiles size=98
RELOC/doc/latex/textpos/textpos.html details="Version history, etc. (HTML)"
RELOC/doc/latex/textpos/textpos.pdf details="Package documentation (PDF)"
srccontainersize 22860
-srccontainerchecksum c4afcb5134b7618a9397f40e6e633d126f2803e15783b9ce6a26c82fb21d0ad226d65fa9e90e60ca5a1ccbaaa3a436712ee15d8fd13a6acc5cae7af8150da6cc
+srccontainerchecksum 8f6e736e37b47e946d8e171dc42628e6fe3e5bcf917f3befb24dfdcad2d68d11d553b14d4e9622e08f0d5de83bdf54160293bb7db00961cca5cd2ed7d247b946
srcfiles size=21
RELOC/source/latex/textpos/textpos.drv
RELOC/source/latex/textpos/textpos.dtx
RELOC/source/latex/textpos/textpos.ins
runfiles size=3
RELOC/tex/latex/textpos/textpos.sty
-catalogue-contact-bugs https://bitbucket.org/nxg/textpos/issues/
catalogue-contact-home http://purl.org/nxg/dist/textpos
-catalogue-contact-repository https://bitbucket.org/nxg/textpos/
catalogue-ctan /macros/latex/contrib/textpos
catalogue-license lppl1.3
catalogue-topics layout
@@ -309556,7 +309561,7 @@ catalogue-version 3.4
name urlbst
category Package
-revision 54512
+revision 55777
shortdesc Web support for BibTeX
longdesc Supports a new BibTeX 'webpage' entry type and 'url',
longdesc 'lastchecked', and 'eprint' and 'DOI' fields. The Perl script
@@ -309564,10 +309569,10 @@ longdesc urlbst can be used to add this support to an arbitrary .bst
longdesc file which has a reasonably conventional structure. The result
longdesc is meant to be robust rather than pretty.
depend urlbst.ARCH
-containersize 13704
-containerchecksum a5159b6766e157b0ace9a62752dae9c6e4396e0fd7fe28a290c5bf5ca2c7977b893025d34fb8200a9d8ffcbdc90bb3580850c37735cd3247b1d98d077eeac400
-doccontainersize 238152
-doccontainerchecksum df1f0f81d7bb5d2ff057f3b1958585da4a6f97315c4dd57a805179cff2f19a6c946966b16372156efe9ae3afb6dd18228295d7a32d9e1966230941092cfe460c
+containersize 13668
+containerchecksum 86b600d8beecbf310596915225ae58502d7b5e92783522beec0c6ed365a44e058cb97bc2d016d66ef9a26196b33277c93f82957ee557348ef170a11d58ba30a9
+doccontainersize 238148
+doccontainerchecksum 07cffb5192991e30fd7d6823435718b241841f709f5bef86ff7e0a69102ec93d513282aaf8f046a6205a56997b7ff3ba9442446254467f4490e537a4874a7a31
docfiles size=82
texmf-dist/doc/bibtex/urlbst/LICENCE-gpl-2.0.txt
texmf-dist/doc/bibtex/urlbst/LICENCE-lppl.txt
@@ -309579,7 +309584,7 @@ docfiles size=82
texmf-dist/doc/bibtex/urlbst/urlbst.pdf details="Package documentation (PDF format)"
texmf-dist/doc/bibtex/urlbst/urlbst.tex
srccontainersize 22884
-srccontainerchecksum d2e490fa955bd7c20963c6ea815d2fad9baa560cffe447110bf5d31dca4bb135e1691077708cd79dc189daee88665279fcb6d2a191b28a5c4feae75b277c3e64
+srccontainerchecksum eb93a704fe994add75e3cd5202bd5a5fc9e388d35f125fa60bbeeae09bc20d223fc8e34d9899d6f378938f33ae29b96a67b3a1fc3a46782a1caff030975738a4
srcfiles size=25
texmf-dist/source/bibtex/urlbst/Makefile.in
texmf-dist/source/bibtex/urlbst/configure
@@ -309590,9 +309595,7 @@ runfiles size=41
texmf-dist/bibtex/bst/urlbst/plainurl.bst
texmf-dist/bibtex/bst/urlbst/unsrturl.bst
texmf-dist/scripts/urlbst/urlbst
-catalogue-contact-bugs https://bitbucket.org/nxg/urlbst/issues
catalogue-contact-home http://purl.org/nxg/dist/urlbst
-catalogue-contact-repository https://bitbucket.org/nxg/urlbst/
catalogue-ctan /biblio/bibtex/contrib/urlbst
catalogue-license gpl2 lppl
catalogue-topics bibtex-sty
@@ -311994,24 +311997,34 @@ catalogue-version 1.2
name verifiche
category Package
-revision 55720
+revision 55777
+shortdesc A LaTeX package to typeset (Italian) high school tests
relocated 1
-containersize 3464
-containerchecksum a7d78f420062d421c29ad43e19db13ec7d0e6f1d5df9b5c0559990334088bea03a4226ae5259a9af84190898e64743a7c9935f2f84554a8f2a4148252f4e7282
+longdesc The purpose of this package is to manage the exercises for a
+longdesc test, their points, levels of difficulty, and solutions. Some
+longdesc typical formats of exercises are already implemented: Plain
+longdesc exercise "Complete the Text" "True or false" Closed questions
+longdesc Open questions "Find the error"
+containersize 3704
+containerchecksum b189256a2ce37350376795404289c19f40d816a7bb922e8f3572faabd69ac5e88b358f4f69d231d49d3f4355bb98bc665b208eac93a358bd18e9fa24ef64dc66
doccontainersize 679736
-doccontainerchecksum 819d663d7eda31932a41c4312d18de2143810408c1b795ea53d9c55cc7e21fb1f1a90873f3f5da24d4b62a56b4098bb9f95dfb9a1f118d7f547877e57a0601ef
+doccontainerchecksum 6b3d1aa5f7b25bcd720dd337de7e571b505d7cc75cbcf8e6a9526e47ce00edb9340c1a4ad56d8553186fca6103038b60cd4b9310c284c4d975549985beaeb35b
docfiles size=170
- RELOC/doc/latex/verifiche/Esempio.pdf
+ RELOC/doc/latex/verifiche/Esempio.pdf details="Example of use" language="it"
RELOC/doc/latex/verifiche/Esempio.tex
- RELOC/doc/latex/verifiche/README.md
- RELOC/doc/latex/verifiche/verifiche.pdf
+ RELOC/doc/latex/verifiche/README.md details="Readme"
+ RELOC/doc/latex/verifiche/verifiche.pdf details="Package documentation" language="it"
srccontainersize 12744
-srccontainerchecksum 84f03e7a1050925aee6c6e722b3b3b92d6390c6464e23bba87ad1c64cef8da9be97aba2c6eab3dad2b5d2994e27fad808d006c8d76fdda6ee071bc3001e540d2
+srccontainerchecksum 2281f1f110a011b5f55e8948b72ec61e6375b1f804b1e3a7a28db043eae622a435096fbbcab06fd3416a2857f4bde33a863a505d2c2e71f7fba62132c45b331c
srcfiles size=13
RELOC/source/latex/verifiche/verifiche.dtx
RELOC/source/latex/verifiche/verifiche.ins
runfiles size=3
RELOC/tex/latex/verifiche/verifiche.sty
+catalogue-ctan /macros/latex/contrib/verifiche
+catalogue-license lppl1.3
+catalogue-topics exam exercise
+catalogue-version 2.2
name verse
category Package
@@ -312093,7 +312106,7 @@ catalogue-version 0.55
name versonotes
category Package
-revision 51568
+revision 55777
shortdesc Display brief notes on verso pages
relocated 1
longdesc This package allows you to place notes on the verso pages of an
@@ -312101,27 +312114,25 @@ longdesc otherwise single-sided document. If, in the run of text, you
longdesc include a call to the macro \versonote{This is a remark}, then
longdesc that text will be placed on the opposite (ie, 'verso') page,
longdesc lined up with the macro call.
-containersize 2680
-containerchecksum 3b1a33af069abaf1bca5d70c64f3f9034efd10c2104814c3db5360377cf67dde56794f950b1a96a5fd44c0fa3460922887ce97fa1a3eea31b54ce1f16c88977b
+containersize 2632
+containerchecksum adda8d14021b5dd1fabad9348b0a9c1e6a1c0c77030afdf304a014883e19600e07ba64b4224319470b418d2822ccc08413dde791801f3f21da34b0d08c21cde2
doccontainersize 210048
-doccontainerchecksum 1f27cadfa8160bc5ebfe6cf93aa617b7a1a751d98d7e7dac052cfc50a450d57967104fcab00d89feb08d0e0cc62551738eee5e17e8f65889e9f32d4e6d2d220e
+doccontainerchecksum bb2dcb4163ca05501a73b45f2dad0d8e410525805612ce6fd1033fa4773c6e1213edbcc51e541b66545becef2a160c8b403ed6a54c882421ef11293fe222b639
docfiles size=58
RELOC/doc/latex/versonotes/LICENCE.txt
RELOC/doc/latex/versonotes/README details="Readme"
RELOC/doc/latex/versonotes/sample.pdf details="Example of usage"
RELOC/doc/latex/versonotes/sample.tex
RELOC/doc/latex/versonotes/versonotes.pdf details="Package documentation"
-srccontainersize 8208
-srccontainerchecksum e2f738d24b1a1fb8f16bd61ce86f21ee8896fa7236c61fcf8949ad411daf675f9128c4d48cb4a13df7cbd9066769a10e1f6ab6d17b2dd4f0d9188c9c21a33e70
+srccontainersize 8212
+srccontainerchecksum ba566ae4827fc08f2403657f869ac3581c1f00daf70b4859775d0fe1c550212d98a4f78e3ecb0d74a5c298ef054b22c9ebd0bde410ccd241d6b863caa364d6fe
srcfiles size=8
RELOC/source/latex/versonotes/versonotes.drv
RELOC/source/latex/versonotes/versonotes.dtx
RELOC/source/latex/versonotes/versonotes.ins
runfiles size=2
RELOC/tex/latex/versonotes/versonotes.sty
-catalogue-contact-bugs https://bitbucket.org/nxg/versonotes/issues
catalogue-contact-home https://nxg.me.uk/dist/versonotes/
-catalogue-contact-repository https://bitbucket.org/nxg/versonotes
catalogue-ctan /macros/latex/contrib/versonotes
catalogue-license lppl1.3
catalogue-topics notes
diff --git a/systems/texlive/tlnet/tlpkg/texlive.tlpdb.md5 b/systems/texlive/tlnet/tlpkg/texlive.tlpdb.md5
index 67d1f75f20..d349ee48fc 100644
--- a/systems/texlive/tlnet/tlpkg/texlive.tlpdb.md5
+++ b/systems/texlive/tlnet/tlpkg/texlive.tlpdb.md5
@@ -1 +1 @@
-d0ac4c3d7ff4cd8eb85038a74c694f8e texlive.tlpdb
+f20b1eca4aaa4521aade6fa3f8a3df30 texlive.tlpdb
diff --git a/systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512 b/systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512
index 902cb24337..5be97f2410 100644
--- a/systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512
+++ b/systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512
@@ -1 +1 @@
-6b016e17f5983cc2c9354a582625dbfbab7ccfdd1a42097eb3c98ba9c28a1c6b0fb89ad749d28b8c78ee146299301a74af95275ca853f5107cfffb6a5df87033 texlive.tlpdb
+ca254693ab6b0ec6868ef47526bc50e66e1254568c0a95964185b110cfe07ad9b178c8369c537db2bbeab0393328f6058d2a0616cca7f2d6e126c4be15dacffb texlive.tlpdb
diff --git a/systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512.asc b/systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512.asc
index 8342e1d780..9cb85cce04 100644
--- a/systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512.asc
+++ b/systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512.asc
@@ -1,10 +1,10 @@
-----BEGIN PGP SIGNATURE-----
-iQEcBAEBCgAGBQJfA7oxAAoJEEzhh34ZQ4xwoG0H/iczOFSx7ANWR3ba3TIDhEdP
-u5FArFWJMja+t0Zy95Xp2predFY7UAAakzoIaZpTYLfAOdVrzi+XgTqigyrWQ/P5
-wLYL4G/baseQqmUk1luzMSQASvOqiunWQUshVohqwh3cj/2GnWkEWEEW81+ch1Dr
-oUNH/a+QxjtAGxWJ7ACDgUEm3/34kDn1FU1zVUxVdUYHlVGEE21Jnp0o9doOUl9F
-QAbcvkvybMqKhxi3ByHs2ZcdRkwvOvl8CDUYNDVDxkPZ3m8vNFHh639MdrCgr/QO
-X8LfVW+fpYanYHr0E+2tl21mlTA5+7bI2fT27SLIZT9lUrZQkOxzh52HrrexQCo=
-=7WfC
+iQEcBAEBCgAGBQJfBQwaAAoJEEzhh34ZQ4xw0ikIAIHqtfN/ODZ/uLzl0Vu2CFge
+e8+Yh1rY+6YpqS79GDZtj36n/L2XvMCX9ecS93ywnO5KoRgPYyzlf5OlkBriNBRM
+mau+ON1eSS1j7oMa1mDoesVvcgHEZRYMnJH50h38ZGGChUYzMq6PFpegbNi/mChW
+l4etybtlCm1ceaSP+4aQWQMH3PYC3PrjAh1lJBDSujq2nHhHMXdkAajD4wOJYKtg
+RAexf745Tk21joH/ztlCzAOgwt5jnjYgciR+S70Xbcg5Yt63Q7BxOACodfXWbDxi
+CuLHJn/qmLwXogkblqxzC5J4mjsTCgHpusaTNCZDW4IONVKwHlciJhw8X28b3Mg=
+=+GQ5
-----END PGP SIGNATURE-----
diff --git a/systems/texlive/tlnet/tlpkg/texlive.tlpdb.xz b/systems/texlive/tlnet/tlpkg/texlive.tlpdb.xz
index 9530ec9cf4..17eeae25de 100644
--- a/systems/texlive/tlnet/tlpkg/texlive.tlpdb.xz
+++ b/systems/texlive/tlnet/tlpkg/texlive.tlpdb.xz
Binary files differ
diff --git a/systems/win32/miktex/tm/packages/next/pr.ini b/systems/win32/miktex/tm/packages/next/pr.ini
index a52184af7f..a4c58ffdfd 100644
--- a/systems/win32/miktex/tm/packages/next/pr.ini
+++ b/systems/win32/miktex/tm/packages/next/pr.ini
@@ -1,13 +1,13 @@
[repository]
-date=1594066510
+date=1594152913
lastupd=miktex-arctrl-bin-2.9 miktex-arctrl-bin-x64-2.9 miktex-asymptote-bin-2.9 miktex-asymptote-bin-x64-2.9 miktex-autosp-bin-2.9 miktex-autosp-bin-x64-2.9 miktex-axohelp-bin-2.9 miktex-axohelp-bin-x64-2.9 miktex-bibarts-bin-2.9 miktex-bibarts-bin-x64-2.9 miktex-bibtex-bin-2.9 miktex-bibtex-bin-x64-2.9 miktex-bibtex8bit-bin-2.9 miktex-bibtex8bit-bin-x64-2.9 miktex-bzip2-bin-2.9 miktex-bzip2-bin-x64-2.9 miktex-cairo-bin-2.9 miktex-cairo-bin-x64-2.9 miktex-chktex-bin-2.9 miktex-chktex-bin-x64-2.9
-lstdigest=ec863003e3c859d88c2c394f708c13cc
+lstdigest=f157daec440f3117bcdd63cb83b7f160
numpkg=3946
relstate=next
-version=7492
+version=7493
;;;;This configuration file is signed by a MiKTeX maintainer. The signature follows.
;;;;-----BEGIN MIKTEX SIGNATURE-----
-;;;; signature/miktex: pa4UcVmBDcwJAU4yBDnk9mwJMwJ2OCyop/THLK6Sb7YOsVEfBg0L8KMKxyiW2vTqFfttZa+bSs8qf1+AnCVaxuRStDnCVgmz8/EhWME3w0TrhNR7jwIsNrHziGW5oHXHFX2NcAHFgaQOlYiVbrAI7HdT3iN0YDD/dIixLeOg8Tv/KoJ9R1QT/HMeeyQHaAhhwNZ9NVUXDr6oD79IUpDdb1yzzNSTAFY7JZRiUW4FkUZNpsc0sCeXOQCodb713foNaXMaFlc2MEI34Qp1saF9xQ7K2wrRK8LwIVqAzM1B35Mln31oyTmwiO0IdOf8va5MzXcm+ADlXwh19BP8NUYluQ==
+;;;; signature/miktex: LPy0zNXkmre+KOWclW5Hp1PbtKBgBP2IxtL7OhR0GpS+3zKFkNb56ip+5Ljq4z0o3WJOCT6nV3llc1ccTz8ZBitbR+LlppKsAVF9zInpilVirOfwpWUmvUm6XsIs8ipLw0nQ+qHZSVjvo6vas6aclWioUIlOUBuqSlo2jRUkYqjicZnWJWwQDWs6WE/W1a+fd5o0d/kbQowECtsLVi0yC4bOiE1qtBRVKf4CogZbHT7wwg+i9LIszs+caDo51IZk+xpJrJK2sxAZWkseonFX08812lHXmNJ2KSTiQqrR+vaBQ1YowRBJjLoW9XIcwh9Nbu5HSFM2fdqT/xm7EycuUQ==
;;;;-----END MIKTEX SIGNATURE-----
diff --git a/systems/win32/miktex/tm/packages/pr.ini b/systems/win32/miktex/tm/packages/pr.ini
index eecddf8a9a..47844e2681 100644
--- a/systems/win32/miktex/tm/packages/pr.ini
+++ b/systems/win32/miktex/tm/packages/pr.ini
@@ -1,13 +1,13 @@
[repository]
-date=1594066286
+date=1594152679
lastupd=beamerappendixnote bubblesort draftwatermark etbb expkv fbb mnras richtext verifiche xits babel-french cloze erewhon l3backend nicematrix pm-isomath shtthesis tikzducks tracklang dtk-bibliography
-lstdigest=f9311b0b476a0690c16bccdda6a08424
+lstdigest=e67b3da81525a3e4f939fe7695c9d9ce
numpkg=3941
relstate=stable
-version=7492
+version=7493
;;;;This configuration file is signed by a MiKTeX maintainer. The signature follows.
;;;;-----BEGIN MIKTEX SIGNATURE-----
-;;;; signature/miktex: OH9PoqgzToR8o+z5A1Xz+XHt7fJEU+WEXguIyogrzVK9JH73YhmSfIrGE5k+mp4wCHV0D+xXc+GQbBVbYJruQJ+hrXoV1DEeEL3LQrJ+FtfPg7bgH9dpXM5V73Rt0yF/Tzd4+4G0U6YHtFMNRpI0YpY7DKKYCvanwgt1orOOtmGHwZE6Ro9pivD82qoVmDodSnEdOdpyoFWfUVKaLPl493Mvep/m518RJzVZLNqDmExwmu+H6Zk4On6oqC5pAoa5fYwz+0jkDprpGDli4x3MVbe6A3XEoOaDvkPwasTej4LHZi3QDIWcetwygLQsx8MzhOTu2FZyqNZcawXr4CjuMQ==
+;;;; signature/miktex: p4YQgJ64hFhQzOF/ENtrs6TNUAmcyVi2cUv3KeAOULPtmtTEiLfq2wRiUy5BM5GNrcjPE4mfYkYA3eYr9Pd3fMvF29KIHQPwunxdW8bhTIWcUY6jAm5dfqlyw1dzmwfdGDr2QpONgiLO3IznFWg8RDJlnV2QTN2Q0kGgtZi4woDYbGP4uQak6B+Hs9E8GVbaWrpyk2V0WQtMSgo9vL8fGK2uChhIqLnt1d/hQjCawkOmMbfciVNTswCO4TrAwYeFebIKCU8ihbz/nE722lisJ/rLXsbVZpYtISo4BeL3Sab/39pcNuxTOoIWiLb1qeiXhYeauN4BLt1bssNyTLT41A==
;;;;-----END MIKTEX SIGNATURE-----
diff --git a/systems/win32/w32tex/ChangeLog b/systems/win32/w32tex/ChangeLog
index b50978994c..b16b0fed39 100644
--- a/systems/win32/w32tex/ChangeLog
+++ b/systems/win32/w32tex/ChangeLog
@@ -1,5 +1,39 @@
W32TeX (x86 & x64) ChangeLog
+[2020/07/07]
+(01) aleph-w32.tar.xz
+ Update aleph.dll.
+(02) context.tar.xz
+ ConTeXt version: 2020.07.06 19:25.
+(03) jtex-w32.tar.xz
+ Update nttjtex.dll.
+(04) pdftex-w32.tar.xz
+ Update pdftex.dll.
+(05) pgfcontrib.tar.xz
+ Update circuitikz.
+(06) ptex-w32.tar.xz
+ Update ptex.dll and eptex.dll.
+(07) uptex-w32.tar.xz
+ Update uptex.dll and euptex.dll.
+(08) web2c-w32.tar.xz
+ Update tex.dll.
+(09) xetex-w32.tar.xz
+ Update xetex.dll.
+(10) win64/aleph-w64.tar.xz
+ Update aleph.dll.
+(11) win64/jtex-w64.tar.xz
+ Update nttjtex.dll.
+(12) win64/pdftex-w64.tar.xz
+ Update pdftex.dll.
+(13) win64/ptex-w64.tar.xz
+ Update ptex.dll and eptex.dll.
+(14) win64/uptex-w64.tar.xz
+ Update uptex.dll and euptex.dll.
+(15) win64/web2c-w64.tar.xz
+ Update tex.dll.
+(16) win64/xetex-w64.tar.xz
+ Update xetex.dll.
+
[2020/07/06]
(01) context.tar.xz
ConTeXt version: 2020.07.05 23:00.
diff --git a/timestamp b/timestamp
index 6d450168a5..ebc6c016d4 100644
--- a/timestamp
+++ b/timestamp
@@ -2,4 +2,4 @@
# The source CTAN of this site's material:
dante.ctan.org
# The year-month-day-hour-minute of this site's material:
-2020-07-07-02-02
+2020-07-08-02-02